개수가 쉐이더 프로파일 사양을 초과하지 않는 한 여러 텍스처를 사용할 수 있습니다. 다음은 그 예이다 : 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)
OR :
ID3D11ShaderResourceView * textures[] = { diffuseTextureSRV, anotherTextureSRV};
devcon->PSSetShaderResources(0, 2, &textures);
HLSL 이름은 arbi 일 수 있습니다. trary이고 특정 이름과 일치 할 필요는 없습니다. 색인 만 중요합니다. "register (tXX);" 문이 필요하지 않습니다. 어떤 텍스쳐가 어떤 슬롯에 해당하는지 혼란을 피하기 위해 사용하는 것이 좋습니다.
블렌딩/멀티 텍스처링을 시도하고 있습니까? –