DirectX索引缓冲区->索引缓冲区的开始

时间:2020-10-27 06:28:17

标签: c++ directx-11

我目前正在使用Direct11图形API,我想知道为什么索引缓冲区具有此公式?

索引缓冲区的开始=索引缓冲区的基地址+偏移量(字节)+ StartIndexLocation * ElementSize(字节);

我想知道这是什么意思。有人请帮助我

完整参考文档-> https://docs.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-resources-buffers-intro

1 个答案:

答案 0 :(得分:0)

您要获取的索引取决于以下数据。

  1. 索引缓冲区的内容。

  2. 您已传递给Offset
  3. IASetIndexBuffer。该值以字节为单位。

  4. 提交抽奖电话(例如StartIndexLocation)时已通过的
  5. DrawIndexed。那是在元素中,而不是字节中。 Direct3D 11仅支持uint16_tuint32_t索引格式,这意味着公式中的元素大小为2或4个字节,具体取决于您在{{1}的Format参数中传递的内容}。

调用IASetIndexBuffer后,GPU在执行您所要求的操作时,它将这些数据组合以从索引缓冲区中获取连续范围的基元。公式指定了该范围的起始位置。