シェーダープロファイルの仕様を超えない限り、複数のテクスチャを使用できます。次に例を示します。HLSLコード:
Texture2D diffuseTexture : register(t0);
Texture2D anotherTexture : register(t1);
C ++コード:
devcon->V[P|D|G|C|H]SSetShaderResources(texture_index, 1, &texture);
したがって、たとえば上記のHLSLコードの場合、次のようになります。
devcon->PSSetShaderResources(0, 1, &diffuseTextureSRV);
devcon->PSSetShaderResources(1, 1, &anotherTextureSRV); (SRV stands for Shader Texture View)
また:
ID3D11ShaderResourceView * textures[] = { diffuseTextureSRV, anotherTextureSRV};
devcon->PSSetShaderResources(0, 2, &textures);
HLSL名は任意であり、特定の名前に対応する必要はありません。重要なのはインデックスのみです。「register(tXX);」の間 ステートメントは必須ではありません。どのテクスチャがどのスロットに対応するかについて混乱を避けるために、ステートメントを使用することをお勧めします。