Direct X 12 3D的初始化

D3D的初始化

 

CPU与GPU间的同步

围栏用ID3DFence接口表示

 

 

视图==描述符 描述内存的数据类型等信息

 

在使用深度缓冲区之前,先创建相关的深度视图并把它绑定在渲染流水线上。创建渲染目标视图同理。

 

frames per second FPS 每秒渲染帧数 流畅度的标杆

 

封装隐藏实现细节 把精力集中在需要关注的特定主题上

 

顶点 与 索引

 

四个顶点有两组索引 组成两个三角形

把复用的三角形顶点数据转换为索引这种数据结构

 

输入布局描述

描述顶点的类型格式等数值的类型

 

在D12所有资源用ID3D12Resource接口表示 

GPU资源都存在堆(heap)中,其本质是具有特定属性的GPU显存块。

default heap 向这堆提交的资源唯有GPU可以访问

Upload heap 向这堆提交的资源都要经CPU传至GPU (常量缓冲区)

Read-back heap 向这堆提交的资源都需要由CPU读取的资源

 

系统内存  —> 上传缓冲区 —> 顶点缓冲区 —> 顶点缓冲区视图 —> 输入槽

 

常量缓冲区由CPU每帧更新一次 创建到上传堆

 

根签名:执行绘制命令之前 资源会被映射到着色器对应的输入寄存器,类似于函数签名,参数列表以及返回值

 

.cso (compiled share object)已编译的着色器对象 离线编译生成

 

流水线状态对象(Pipeline State Object)集合了大量的流水线状态信息,为了保证性能我们将所有这些对象都集中在一起,一并送至渲染流水线。尽量减少PSO次数。

 

D3D实际上是一个状态机(state machine),里面的实物保持着他们的状态,直至我们将其改变。

 

D3D初始化步骤:

1.用D3D12CreateDevice函数创建 ID3D12Device接口实例

2.创建一个ID3D12Fence对象,并查询描述符大小

3.依次创建命令队列,命令列表分配器和主命令列表

4.描述并创建交换链

5.创建应用程序所需要的描述符堆

7.调整后台缓冲区大小,并为它创建渲染目标视图RTV

8.创建深度缓冲区以及关联深度视图DSV

9.设置视口和裁切矩形

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值