È possibile utilizzare più trame purché il loro conteggio non superi le specifiche del proprio profilo shader. Ecco un esempio: Codice HLSL:
Texture2D diffuseTexture : register(t0);
Texture2D anotherTexture : register(t1);
codice C++:
devcon->V[P|D|G|C|H]SSetShaderResources(texture_index, 1, &texture);
Così, per esempio per il codice HLSL sopra di esso sarà:
devcon->PSSetShaderResources(0, 1, &diffuseTextureSRV);
devcon->PSSetShaderResources(1, 1, &anotherTextureSRV); (SRV stands for Shader Texture View)
O:
ID3D11ShaderResourceView * textures[] = { diffuseTextureSRV, anotherTextureSRV};
devcon->PSSetShaderResources(0, 2, &textures);
I nomi HLSL possono essere arbi trary e non deve corrispondere a nessun nome specifico - solo gli indici contano. Mentre "register (tXX);" non sono richieste dichiarazioni, ti consiglio di usarle per evitare confusione su quale texture corrisponda a quale slot.
stai provando a fare fusione/multi-texturing? –