Bạn có thể sử dụng nhiều họa tiết miễn là số lượng của chúng không vượt quá thông số kỹ thuật của tiểu sử người đổ bóng. Dưới đây là một ví dụ: HLSL Code:
Texture2D diffuseTexture : register(t0);
Texture2D anotherTexture : register(t1);
C++ Code:
devcon->V[P|D|G|C|H]SSetShaderResources(texture_index, 1, &texture);
Vì vậy, ví dụ cho mã HLSL trên nó sẽ là:
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);
Tên HLSL có thể là arbi trary và không phải tương ứng với bất kỳ tên cụ thể nào - chỉ các chỉ mục quan trọng. Trong khi "đăng ký (tXX);" tuyên bố không bắt buộc, tôi khuyên bạn nên sử dụng chúng để tránh nhầm lẫn về kết cấu tương ứng với vị trí nào.
bạn đang cố gắng pha trộn/đa kết cấu? –