Można używać wielu tekstur, o ile ich liczba nie przekracza specyfikacji profilu cieniowania. Oto przykład: Kod HLSL:
Texture2D diffuseTexture : register(t0);
Texture2D anotherTexture : register(t1);
C++ Kod:
devcon->V[P|D|G|C|H]SSetShaderResources(texture_index, 1, &texture);
Tak na przykład dla powyższego kodu HLSL to będzie:
devcon->PSSetShaderResources(0, 1, &diffuseTextureSRV);
devcon->PSSetShaderResources(1, 1, &anotherTextureSRV); (SRV stands for Shader Texture View)
OR:
ID3D11ShaderResourceView * textures[] = { diffuseTextureSRV, anotherTextureSRV};
devcon->PSSetShaderResources(0, 2, &textures);
Nazwy HLSL mogą być arbi trary i nie musi odpowiadać żadnej konkretnej nazwie - liczy się tylko indeks. Podczas "register (tXX);" oświadczenia nie są wymagane, polecam ich użycie, aby uniknąć nieporozumień co do tekstury odpowiadającej wybranemu miejscu.
Czy próbujesz zrobić mieszanie/wielowarstwowe? –