
Directx
未知道的事
这个作者很懒,什么都没留下…
展开
-
DX12阅读笔记_第六章_01
第五章01被我吃了第六章目标:1.发现用于定义、存储和绘制几何数据的Direct3D接口方法。2.了解如何编写基本的顶点和像素着色器。3.了解如何使用管道状态对象配置渲染管道。4.了解如何创建常量缓冲区数据并将其绑定到管道,并熟悉根签名(root signature)。1.顶点和输入布局两种顶点格式:struct Vertex1 { XMFLOAT3 Pos; XMFLOAT4 Color; };struct Vertex2{ XMFLOAT3 Pos; XMFL原创 2020-11-02 16:37:26 · 271 阅读 · 1 评论 -
DX12阅读笔记_第五章_02
5.3.2:128位颜色它是常见的合并一个额外的颜色的格式,多出来的部分称为alpha。alpha组件通常用来表示颜色的不透明度,这在混合中很有用(第10章)。包含alpha分量,表示可以用4维颜色向量(r, g, b, a)表示一种颜色,其中0≤r, g, b, a≤1。这样就可以使用XMVECTOR类型在代码中表示一种颜色,就能利用到SIMD。对于componentwise multiplication,DirectX数学库提供了以下函数:XMVECTOR XM_CALLCONV XMColorMo原创 2020-10-19 10:23:33 · 2511 阅读 · 0 评论 -
DX12阅读笔记_第四章_End
4.4 计时和动画为了正确地制作动画,我们将需要跟踪时间。我们需要测量动画帧之间流逝的时间。如果帧率很高,帧之间的时间间隔会很短;因此,我们需要一个高精度的定时器。注意看GameTimer 类4.4.1 计时器性能性能计时器以称为计数的单位来衡量时间。 我们使用QueryPerformanceCounter函数获得性能计时器的当前时间值(以计数为单位)。为了获得性能计时器的频率(每秒计数),我们使用QueryPerformanceFrequency函数。QueryPerformanceCount原创 2020-09-27 08:53:41 · 212 阅读 · 1 评论 -
DX12阅读笔记_第四章_3
初始化Direct3D的过程可以分解为以下几个步骤:使用D3D12CreateDevice函数创建ID3D12Device。创建ID3D12Fence对象和查询描述符大小。检查4X MSAAquality level支持。创建命令队列、命令列表分配器和主命令列表。描述并创建交换链。创建应用程序需要的描述符堆。调整后缓冲区的大小,并创建一个渲染目标视图到后缓冲区。创建深度/模板缓冲区及其关联的深度/模板视图。设置视口和scissor rectangles。1-3点的具体实现内容可以查看原创 2020-09-25 08:57:18 · 244 阅读 · 0 评论 -
DX12阅读笔记_第四章_2
4.2 GPU与CPU的交互GPU与CPU并行工作,有时需要同步。为了获得最佳性能,我们的目标是尽可能地保持两者的忙碌,并尽量减少同步。GPU有一个命令队列。CPU使用命令列表通过Direct3D API向队列提交命令。一旦一组命令被提交到命令队列,它们不会立即被GPU执行。它们一直在队列中,直到GPU准备好处理它们,因为GPU很可能忙于处理之前插入的命令。创建命令队列的方法:Microsoft::WRL::ComPtr<ID3D12CommandQueue> mCommandQueu原创 2020-09-24 16:32:13 · 268 阅读 · 0 评论 -
DX12阅读笔记_第四章_1
DX12出来许久直到现在才来读一读··。顺便复习一下DX相关知识吧。直接从第四章开始。第四章开头提出本章的知识点:了解Direct3D在3D硬件编程中的作用2.理解COM在Direct3D中扮演的角色3.学习基本的图形概念,如二维图像如何存储,页面翻转,深度缓冲,多采样,以及CPU和GPU如何交互4.了解如何使用性能计数器函数获得高分辨率计时器读数5.来了解如何初始化Direct3D6.熟悉本书所有演示使用的应用程序框架的一般结构第一点:(1) Direct3D是一个低级的图形API原创 2020-09-22 00:23:03 · 336 阅读 · 0 评论