0

D3D11_INPUT_ELEMENT_DESC 構造体の要素の型や順序に関連する懸念事項 (パフォーマンスなど) はありますか? たとえば、次のように定義された入力レイアウトがあります。

D3D11_INPUT_ELEMENT_DESC QuadInputLayoutDescription[] = {
    { "PRECT",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, 0,                               D3D11_INPUT_PER_INSTANCE_DATA, 1 },
    { "DEPTH",  0, DXGI_FORMAT_R32_FLOAT,           0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
    { "TEXID",  0, DXGI_FORMAT_R32_UINT,            0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
    { "SLICE",  0, DXGI_FORMAT_R32_FLOAT,           0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
    { "UVRCT",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
    { "COLOR",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 } };

TEXID要素がここUINTではなく型であることは重要FLOATですか? 4 つのコンポーネントのベクトル構造体 (float4) に対する「アライメント」が優先されます。R32G32B32A32_FLOATレイアウトの最初にすべての をまとめて「パック」する必要がありますか? 何かパッドが入っていますか?

4

1 に答える 1

1

入力レイアウトの主なパフォーマンスの問題は、変換前および変換後の頂点キャッシュを通過する必要があるデータの量に直接影響するため、それらの合計サイズです。歴史的に、アイデアの合計サイズは 32 バイトまたは 64 バイトです。

それ以外の場合、通常、使用する型によってパフォーマンスが大きく変わることはありません。使用されるタイプの制限は、ターゲット ハードウェアの機能レベルです。

于 2014-06-26T18:50:18.840 に答える