【发布时间】:2018-09-23 10:49:07
【问题描述】:
我的 DirectX11 C++ 引擎使用 uint16_t(短)作为顶点索引缓冲区,一切正常。
我已经改进了我使用的模型,现在它们的索引已超过 64k。
我已将所有对我的索引缓冲区的引用从 short 更改为 uint32_t 并且渲染已损坏。
我的变量定义是:
ID3D11Buffer *IndexBuffer; //DirectX Index Buffer
vector<int32_t> primitiveIndices; //Vector array of indicies formally
我终于换行了
Context->IASetIndexBuffer(IndexBuffer, DXGI_FORMAT_R16_UINT, 0);
到
Context->IASetIndexBuffer(IndexBuffer, DXGI_FORMAT_R8G8B8A8_UINT, 0);
这样做是为了允许 32 位索引。但是它无法渲染。 我也更新了
D3D11_BUFFER_DESC::ByteWidth
相应地。
欢迎任何建议。
【问题讨论】:
标签: c++ directx index-buffer