DX12学习笔记(龙书)(小点9:索引和索引缓冲区)

讲到6.3点,索引和索引缓冲区了。

为了方便,在小点8说到的顶点函数用来创建缓冲区的函数也可以拿来用(泛型)。
在绑定视图的时候,和顶点不一样。

typedef struct D3D12_INDEX_BUFFER_VIEW
{
	D3D13_GPU_VIRTUAL_ADDRESS BufferLocation;//位置
	UINT SizeInBytes;//大小
	DXGI FORMAT Format;//格式,但必须是DXGI_FORMAT_R16_UINT,或DXGI_FORMAT_R32_UINT两种类型。
}

D3D12_INDEX_BUFFER_VIEW idv;
ibv赋值。(以上3)
mCommandList->IASetIndexBuffer(&ibv);//比起顶点的,少了前面两个参数。

画画

DrawIndexedInstanced(
UINT IndexCountPerInstance,//索引数量
UINT InstanceCount,//实例化技术相关。暂时为1
UINT StartIndexLocation,//指向索引缓冲区中的某个元素,将其标记为欲读的起始索引。
INT BaseVertexLocation,//在本次绘制调用读取顶点之前,为每个索引加上此整数值。**!!与顶点相关**这一条与顶点相关。
UINT StartInstanceLocation//实例化技术相关,暂时为0
);

特此注意一下,StartIndexLocation,是这个数据在全局缓冲区中的起始位置。如果在画立方体之前画了球体,那就是sphere起始索引+sphere的索引数量,再开始画box
而BaseVertexLocation则是有关于顶点的一个点。当我们要画box的时候,这个点也必须移到box的顶点位置才可以噢。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值