代码之家  ›  专栏  ›  技术社区  ›  Mark

DirectX大型模型> 64K C++

  •  -1
  • Mark  · 技术社区  · 6 年前

    我的DIXTX11 C++引擎使用顶点索引缓冲区的UTI1616T(短),所有的工作都很好。

    我已经将对索引缓冲区的所有引用从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
    

    相应地。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Michael Kenzel    6 年前

    DXGI_FORMAT_R8G8B8A8_UINT 作为索引缓冲区格式?如果你 check the documentation ,您将发现只有两种有效格式 IASetIndexBuffer() std::uint32_t 然后使用相应的DXGI格式 DXGI_FORMAT_R32_UINT . 除此之外,我强烈建议 use a debug context 并在调试时查看调试输出