DirectX 索引缓冲区 -> 索引缓冲区开始
DirectX Index Buffer -> Start of Index Buffer
我目前正在处理 Direct11 图形 API,我想知道为什么索引缓冲区有这个公式?
索引缓冲区开始 = 索引缓冲区基地址 + 偏移量(字节)+ StartIndexLocation * ElementSize(字节);
我想知道这是什么意思。有人请帮我解决这个问题
您要获取的索引取决于以下数据。
索引缓冲区的内容。
Offset
你已经传给了 IASetIndexBuffer
。该值以字节为单位。
StartIndexLocation
表示你在提交draw call时已经通过了,比如DrawIndexed
。那个是元素,而不是字节。 Direct3D 11 仅支持 uint16_t
和 uint32_t
索引格式,这意味着公式中的元素大小为 2 或 4 个字节,具体取决于您在 [=11= 的 Format
参数中传递的内容].
在您调用DrawIndexed
之后,当GPU 执行您要求的操作时,它会将这些数据组合起来,从索引缓冲区中获取连续范围的图元。该公式指定该范围的起始位置。
我目前正在处理 Direct11 图形 API,我想知道为什么索引缓冲区有这个公式?
索引缓冲区开始 = 索引缓冲区基地址 + 偏移量(字节)+ StartIndexLocation * ElementSize(字节);
我想知道这是什么意思。有人请帮我解决这个问题
您要获取的索引取决于以下数据。
索引缓冲区的内容。
Offset
你已经传给了IASetIndexBuffer
。该值以字节为单位。StartIndexLocation
表示你在提交draw call时已经通过了,比如DrawIndexed
。那个是元素,而不是字节。 Direct3D 11 仅支持uint16_t
和uint32_t
索引格式,这意味着公式中的元素大小为 2 或 4 个字节,具体取决于您在 [=11= 的Format
参数中传递的内容].
在您调用DrawIndexed
之后,当GPU 执行您要求的操作时,它会将这些数据组合起来,从索引缓冲区中获取连续范围的图元。该公式指定该范围的起始位置。