自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (28)
  • 收藏
  • 关注

原创 games101 作业3

games 101的作业3,对之前的知识做了总结和归纳,对贴图知识补充了个人的理解。

2024-01-22 20:05:33 954

原创 OpenGL 着色器程序的保存和加载(二进制)

为了提高OpenGL 着色器程序的编译和链接速度,我们可以将程序保存为二进制进行加载,可以大幅度提升加载效率。

2023-12-08 10:33:48 299

原创 games101 作业2

注意:顶点坐标都是浮点数,但是我们计算出的包围盒必须是整型。左上角下取整,右下角上去整。因为我们判断的是一个像素的中心点是否在三角形内部,所以需要给x,y 分别加0.5,即。只需要计算出三角形的三个顶点坐标中,x最大最小值,y最大最小值。注意:如果当前z值小于深度缓冲区的深度值,一定要更新深度缓冲区。最常用最高效的有两种:重心坐标法和向量叉积。插值运算使用代码框架,所以这块比较简单。其实方法有很多种,具体可以参考这个。中存放的就是三角形的三个顶点。

2023-09-17 23:16:33 953

原创 games101作业1

观察变换完成后,将物体投影到相机坐标系中。然后在相机坐标系中进行投影变换:正交投影或者透视投影。绕Y轴的旋转矩阵( 注意这里的sin符号和其他两种情况不同,是因为右手坐标系,从+x->+z旋转,Y轴和拇指方向相反)都是正值进行推导的,同时,glm的透视投影中还进行了NDC坐标转换,而NDC坐标系是左手坐标系。透视投影可以看作是将视锥体的大端进行压缩成长方体视窗体。注意:需要将角度转为弧度。此时投影矩阵就算推到完毕,但是投影接口的参数是:张角。课程中还讲到了绕X 轴的旋转矩阵。根据课程中的推导过程:其中。

2023-09-02 18:36:13 213

原创 games101-作业0

作业0

2023-08-20 18:36:20 141

原创 games101-windows环境配置(CMake+vcpkg+VS2019)

在windows 下配置games101的作业环境,使用vcpkg+cmake+vs2019

2023-08-20 17:33:14 414

原创 QML 入门

QML 中基本组件介绍,并附有代码示例

2023-07-18 14:41:44 392

原创 c++ 获取系统时间us

【代码】c++ 获取系统时间us。

2023-06-20 15:19:04 256

原创 获取并打印Win32窗口的像素点

获取窗口指定位置的像素值,并返回16进制字符串

2023-04-21 12:02:12 169

原创 图形渲染技术-目标变换

鼠标拖动目标进行平移和八方向缩放

2022-10-29 22:58:07 518

原创 DirectX11-鼠标拾取

DirectX 11 中鼠标拾取的方法和几个注意点

2022-09-21 21:52:15 262

原创 DirectX11-硬件多实例渲染

多实例渲染的简要步骤

2022-08-20 19:48:24 475

原创 __stdcall

c++中约定的函数调用方式

2022-08-11 17:40:17 230

原创 颜色空间/格式转换:YUV-RGB

YUV-RGB转换

2022-05-17 18:16:39 575

原创 颜色空间/格式转换:HSL-RGB

颜色空间--HSL定义转换HLSL 实现本文章主要介绍HSL颜色空间和RGB颜色空间的区别和用途,以及如何利用HLSL着色器语言进行互转。定义HSL即色相、饱和度、亮度(英语:Hue, Saturation, Lightness)。色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。可以说和光谱对应。取值为0-360度。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(V),亮度(L),取0-100%。如图所示,圆柱从低向上,表示亮度,由中轴向

2022-05-17 14:44:26 2692

原创 DirectX11-流输出阶段

流输出阶段我们通过渲染管线的流输出阶段让GPU将几何着色器输出的顶点集合写入到指定的顶点缓冲区,如下图所示。1.用来接收流输出的顶点集合的顶点缓冲区描述符需要指定D3D11_BIND_STREAM_OUTPUT绑定标记。比如 // 设置顶点缓冲区描述 D3D11_BUFFER_DESC vbd; ZeroMemory(&vbd, sizeof(vbd)); vbd.Usage = D3D11_USAGE_DEFAULT; // 这里需要允许流输出阶段通过GPU写入 vbd.ByteW

2022-05-13 14:30:13 374

原创 DirectX 11共享纹理加锁

共享纹理使用场景:当硬解码的纹理跨两个device对象(对应一张显卡)传递,比如解码是device1,渲染是device2,此时需要通过共享纹理将解码得到的纹理先拷贝到共享纹理上,然后获取纹理句柄,将该句柄传递给渲染的device2,渲染的device2打开该句柄就可以得到一个纹理进行采样渲染了。具体步骤如下:1.获取解码的纹理。ID3D11VideoDecoderOutputView* srcSurface = (ID3D11VideoDecoderOutputView*)(uintptr_t)f

2022-04-28 20:09:56 2480 3

原创 DirectX-BasicEffect

BasicEffect 的主要功能1.管理/修改常量缓冲区的内容,并应用(Apply)变更 :BasicEffect::Impl(变换矩阵,纹理资源,常量参数)2.编译HLSL着色器而不是fx文件 (InitAll:CreateVertexShader)3.管理/使用四种渲染状态4.切换渲染模式(涉及到渲染管线各种资源的绑定、切换)5.仅更新修改的变量所对应的常量缓冲区块整个过程,BasicEffect 是一个单例,接口的调用需要传入设备上下文。外部调用就需要关心常量缓冲区 着色器 渲染状态

2022-02-22 16:29:00 111

原创 c++获取系统时间

#include <chrono>unsigned long long getLocalTimeUs() // us{ typedef std::chrono::time_point<std::chrono::system_clock, std::chrono::microseconds> microClock_type; //获取当前时间点,windows system_clock是100纳秒级别的(不同系统不一样,自己按照介绍的方法测试),所以要转换

2022-01-05 11:29:23 837

原创 DirectX 3D中的混合

D3D中的混合指的是目标像素(后台缓冲)与源像素(光栅化像素)混合(blend)输出的过程。一、影响最终的混合后输出结果的因素有个:混合因子,混合方法。1)混合因子混合因子共有15个。注意:有些混合因子以_COLOR结尾,有的以_ALPHA结尾。其中以_COLOR结尾的混合因子不能用于APPHA混合方程混合因子分为源混合因子,目标混合因子。区别在于,前者指定的是源像素的比例,后者指定的是目标像素的比例。2)混合方法混合方法有5中,一般常用的就是加、减、乘。3)混合因子与混合方法的常用组合

2021-12-16 09:29:44 2377

原创 YUV RGB 相互转换矩阵

yuv rgb 在不同色域下的格式转换

2021-12-06 14:36:22 1671

原创 贝塞尔曲线打断生成两个贝塞尔曲线

问题:如何将一个三阶贝塞尔曲线打断生成两个三阶贝塞尔曲线,生成的两条贝塞尔曲线与原来的贝塞尔曲线重合?输入:一条贝塞尔曲线的四个控制点P1,C1,C2,P2,和一个打断点E(E在曲线上)输出:两条贝塞尔曲线:P1,F,I,EE,J,H,P2解决大致分为两步第一步:求出E点对应的贝塞尔曲线的参数e第二步:根据e计算出四个控制点F,I,J,H依次多个点打断,红色线表示原始贝塞尔,蓝色线是打断的两个贝塞尔曲线,效果如下:蓝色线和红色线基本重合。原理解析:如图的红色曲线就是原始贝塞尔曲线,加入

2021-10-28 11:16:05 873 2

原创 DirectX 3D 绘制纹理

绘制纹理基于上一节绘制简单矩形的流程,绘制纹理只需要修改和补充以下几点1.着色器加入纹理、纹理坐标信息和采样器//头文件Cube.hlsliTexture2D g_Tex : register(t0);SamplerState g_SamLinear : register(s0);struct VertexIn{ float3 posL : POSITION; float2 tex : TEXCOORD;};struct VertexOut{ float4 posH

2021-09-22 21:41:02 338

原创 DirectX 3D 简单渲染流程

阅读了 龙书网页版前六章,通过渲染一个三角形,总结渲染的最简步骤。创建窗口。创建设备和上下文。创建交换链和渲染视图。创建顶点着色器。创建并绑定输入布局。创建片段着色器。创建顶点、索引、常量缓冲区,并填充和绑定。设置图元拓扑(图元类型)。将着色器和常量缓冲区绑定到渲染管线。清空渲染视图。绘制呈现转到步骤10....

2021-09-17 11:04:10 1551

原创 并行任务串行执行

多线程 :并行任务串行执行#mermaid-svg-CuNURoDGeOsz9g8s .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-CuNURoDGeOsz9g8s .label text{fill:#333}#mermaid-svg-CuNURoDGeOsz9g8s .node rect,#mermaid-

2021-09-01 16:13:05 357

原创 时间格式化为QString

QString date = QString(("%1:%2:%3")).arg(hours,2, 10, QLatin1Char('0')) .arg(minutes,2, 10, QLatin1Char('0')).arg(senconds,2,10, QLatin1Char('0'));

2021-06-11 15:34:49 544 1

原创 C++ 生产者消费者

#include <queue>#include <condition_variable>#include <mutex>#include <thread>#include <windows.h>using namespace std;queue<int> buffer;condition_variable m_notFull;condition_variable m_notEmpty;mutex mtx;void

2021-06-01 20:59:20 205

原创 c++ 获取函数调用时间间隔

static SYSTEMTIME sys; static WORD before; static WORD cur; GetLocalTime(&sys); cur = sys.wMinute * 60 + sys.wSecond * 1000 + sys.wMilliseconds; std::cout << "updateFrame internal:" << cur - before << std::endl...

2021-05-21 16:23:13 350

原创 CMake 配置 HLSL文件 属性

set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/HLSL/Video_VS.hlsl PROPERTIES VS_SHADER_FLAGS "/Fh \"$(OutDir)%(Filename).cso\"" VS_SHADER_TYPE Vertex VS_SHADER_MODEL 5.0 VS_SHADER_ENTRYPOINT main)set_source_files_properties(${CMAKE_CURRENT_LIST_DIR

2021-05-19 12:01:23 664

原创 QComboBox 利用model存放用户自定义数据

QComboBox 利用QStandardItemModel 存放用户自定义的结构体QStandardItemModel* model = new QStandardItemModel();struct myData { int x; int y; QString name; };std::map<std::string, myData> city = { {"001",{1,2,"xi'an"}}, {"002",{2,3,"beijing"}} };for (auto it =

2021-05-13 15:24:47 2208

原创 OpenGL 几何知识

一 、引言二 、坐标系以及变换三、向量什么是向量向量的提出向量的运算运算的物理意义和几何意义四、矩阵五、齐次坐标六、平移旋转缩放七、变换1.线性变换和非线性变换线性空间中的变换:正交变换酉变换(幺正变换)相似变换几何中的变换:保角变换仿射变换射影变换 (平行投影和透视投影)拓扑变换七、三维旋转1.欧拉角2.四元数...

2021-03-15 14:25:04 260

原创 OpenGL 简介

OpenGL 是什么OpenGL能做什么?OpenGL 历史OpenGL发展OpenGL 学习路线

2021-03-12 20:29:28 272

原创 QML 自定义控件集合

QML 自定义控件将日常使用的控件进行优化和扩展1.可两端对齐的Textimport QtQuick 2.15import QtQuick.Window 2.12import QtQuick.Controls 2.15import QtQuick.Layouts 1.3ApplicationWindow { visible: true width: 600 height: 400 title: qsTr("Hello World") color: "gr

2021-01-28 11:27:21 370

原创 QML ScrollView 实现Flick功能

import QtQuick 2.12import QtQuick.Window 2.12import QtPositioning 5.2import QtQuick.Controls 2.15import QtQuick.Layouts 1.3Window { visible: true width: 640 height: 480 title: qsTr("Hello World") color: "#2E2F30"// Flicka.

2020-11-19 17:40:42 696

原创 QSGNode 类结构

QSGNode 类结构参考文档#mermaid-svg-8wBsMu6Ed8ZlzY44 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-8wBsMu6Ed8ZlzY44 .label text{fill:#333}#mermaid-svg-8wBsMu6Ed8ZlzY44 .node rect,#merma

2020-08-18 18:11:06 729 1

原创 自定义QLineEdit,限制n个字符,一个中文相当于两个字符

#ifndef LINEEDIT_H#define LINEEDIT_H#include <QWidget>#include<QLineEdit>namespace Ui {class LineEdit;}const unsigned DEFAULT_MAXCHARS = 10;class LineEdit : public QLineEdit{ ...

2019-06-14 21:35:19 1192

原创 踩坑(GLFW + OpenGL)

一、使用命令绘制图形:1.使用opengl命令绘制图形时(比如:glColor3f,glVertex3f..等),编译阶段会报链接错误,此时在链接器中添加opengl32.lib就可以解决这个问题2.使用GLFW + opengl命令绘制图形时,可能会出不来图案,此时注释掉glfw的版本设置或者调整其主次版本。//glfwWindowHint(GLFW_CONTEXT_VERS...

2019-04-09 09:06:10 4287 2

原创 用自定义信号(不仅仅是点击)触发QTableView的带有图标的单元格处于编辑状态

有时可能不想通过鼠标点击QTableView的单元格使其处于编辑状态,而是想通过绑定槽函数的方式去实现。下面进行说明:openPersistentEditor(Index);打开编辑closePersistentEditor(Index);关闭编辑我的表格第一列的单元格需要编辑,并且单元格内有图标,编辑时图标消失,完成时图标显示。打开编辑比较好处理,主要是关闭编辑,需要重写...

2019-03-01 14:09:12 2905 2

原创 boost::property_tree::ptree 创建和解析json数组

boost::property_tree::ptree 对简单的json处理我觉得还可以,对于数组的处理网上有些代码可能不适合新版本的boost。比如push_back(); 第二个参数很多代码都是字符串,可是我目前使用的代码要求第二个参数必须是boost::property_tree::ptree,如果你用字符串报错,那么可以试试我的方法。头文件#include <boost/p...

2019-02-22 11:54:33 7738 1

原创 c++ 类成员函数指针(qt 信号)存放在容器中

 有时候相似的类成员函数太多,想要批量处理,又不想用if-else 或者switch处理,此时我们可以将类成员函数指针存放在一个容器中,map 或者vector中,这样就可以通过key 或者下标批量调用这些成员函数了,很方便。下面的例子将qt 中的信号存放在了vector中。//widget.h#ifndef WIDGET_H#define WIDGET_H#include &lt;...

2019-02-15 16:57:18 1694

OpenGL加载Obj模型和纹理贴图

基于Qt+OpenGL 实现的3D模型obj文件加载以及纹理贴图,未使用第三方库,根据obj文件的格式,逐行解析并读取,加载到顶点缓冲区中,适合学习OBJ模型加载的同学参考。

2023-05-27

msvsmon vs 远程调试包

vs 远程调试包,下载即可运行,不用安装!x64

2023-05-16

ffmpeg 命令行工具 ffmpeg ffplay ffprobe

ffmpeg 命令工具,可以编辑音视频 也可以播放音视频,也可以查看音视频的基本信息。配置在本地系统上,就是一个强大的音视频播放器,做简单的音视频编辑足够使用了。

2023-01-29

WPSWPP.CHM.rar

WPS开发文档

2021-11-03

bezierCurve.rar

一条贝塞尔曲线,选取一点,打断生成两条贝塞尔曲线并原曲线重合。QML + js代码实现

2021-10-28

ffmpeg学习资料.rar

ffmpeg 学习资料 ffplay源码等

2021-10-09

DirectXTex-master.zip

DirectXTex 官方源代码

2021-09-28

TscanCode.zip

c++ 代码扫描工具

2021-07-26

DirectX11-With-Windows-SDK-master.zip

d3d11 完整demo

2021-05-28

VS+OpenGL+GLFW+FFmpeg.rar

基于GLFW和FFmpeg 实现的最简单的播放器,利用opengl渲染。

2021-04-20

GPlayer.rar

一个简单的播放器ffmpeg+opengl+qt

2021-04-10

LeetCode.vscode-leetcode-0.17.0.vsix

vs code LeetCode 插件

2021-04-05

单元测试 catch.hpp

c++ 单元测试工具

2021-02-20

VulkanSDK-1.2.162.1-Installer.exe

vulkanSDK

2021-02-07

ScaleCanvas

基于QML 中的Flickable,利用Scale,通过动态修改origin,实现基于鼠标位置的缩放

2020-11-27

Sphere.rar

球体便面贴纹理,通过计算纹理坐标和球体坐标进行纹理贴图,效果还可以,一个简单的例子,其中的图片路径是本地绝对路径,

2019-12-27

SelectListView.qml (QML ListView 多选)

Qml 中的listview 默认不提供多选 Ctrl + A 全选, Shift +点击 范围选择, Ctrl+ 点击 多选 ,这个资源中实现了这几种选择,除了框选。

2019-10-16

QFtpServer-master-git.zip

利用qt实现的ftp服务器,打开直接可以运行,网上大多都是ftp客户端,这个是服务端。

2019-09-10

depends_x64.rar

利用这个下程序可以查看dll文件依赖的第三方库,和函数接口等

2019-09-10

WPS二次开发接口.rar

WPS二次开发接口,很全的,能够获取office中的每个元素,比如ppt,可以获取每页ppt(Slide) 和页内的每个元素(Shape),shape的动画和大小等参数。

2019-09-10

QtWord.rar

利用Qt显示word文档,保持word文档原生的特效和显示内容。

2019-09-10

ffmpeg-20181202-72b047a-win64-static.zip

windows 64位的ffmpeg静态库,主要有ffmpeg.exe ffplay.exe ffprobe.exe

2019-08-29

WPS 开发接口.rar

WPS 开发API,包含所有的WPS 对象模型,API是chm格式的文件。

2019-08-29

K-Lite_Codec_Pack_1509_Standard.exe

一个编解码工具,底层使用ffmpeg,当时用Qt的例子的时候,有些格式的视频可能打不开,安装这个一切搞定。

2019-08-02

HTML5Point_SDK_4.2.96 (1).exe

HTML5Point_SDK_4.2.96安装包,Window平台 64位。 HTML5Point将ppt转为HTML5!

2019-07-31

Visio2010.rar

txt文档存放的是visio2010 64位压缩包百度云盘连接和提取码,可直接下载

2019-04-17

LearnOpenGL-master.zip

LearnOpenGL CN官网教程(https://learnopengl-cn.github.io/)对应的源码,可以直接运行的源码。

2019-03-07

QtAV 播放器

一个不错的播放器,Qt实现,使用多用不同渲染和解码方式,硬解、软解、OpenGL加速等,可以直接运行,而且还有完整的源码,不错的资源。

2019-03-07

assimp-3.3.1.tar.gz

一个非常流行的模型导入库是Assimp,它是Open Asset Import Library(开放的资产导入库)的缩写。Assimp能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结构中。

2019-03-07

SSD-Tensorflow-demo.py

从GitHub上下载的windows版 SSD-TensorFlow,直接运行notebook文件可能会出错,这里提供一个可以直接运行的demo.py文件

2018-01-11

python-3.5.2-embed-amd64.zip

安装python opencv后,导入cv2后出现DLL文件找不到,此时需要将python3.dll文件复制到Anaconda3文件夹下就可以了

2018-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除