-1

私の DirectX11 C++ エンジンは、頂点インデックス バッファに uint16_t (short) を使用し、すべて正常に機能していました。

私が使用するモデルを進化させたところ、現在では 64,000 を超えるインデックスで成長しています。

インデックス バッファへのすべての参照を 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

によると。

どんなアドバイスでも大歓迎です。

4

1 に答える 1