D3D12のさまざまなシェーダステージにリソースをバインドするにはどうすればよいですか?私は2つのシェーダ、1 vertexshaderと1 pixelshader書いDirectX 12リソースバインディング
:ここ
は、頂点シェーダである:ここで
//VertexShader.vs
float4 main(float3 posL : POSITION, uniform float4x4 gWVP) : SV_POSITION
{
return mul(float4(posL, 1.0f), gWVP);
}
はPixelshaderです:
//PixelShader.ps
float4 main(float4 PosH : SV_POSITION, uniform float4 Color) : SV_Target
{
return Color;
}
私はこれら二つのシェーダをコンパイルする場合D3DCompile
関数を使用して、D3DReflect
とそれを反映させ、BoundResorcesメンバーが両方とも持っているシェーダの説明で調べます$ Paramsと呼ばれる定数バッファにはuniform変数がそれぞれ含まれています。問題は、これらのバッファの両方がスロット0にバインドされていることです。リソースをバインドするときは、リソースをリソーススロットにバインドできるID3D12RootSignatureインターフェイスを使用する必要があります。頂点シェーダの$ Paramsバッファを、ピクセルシェーダの頂点シェーダとピクセルシェーダの$ Paramsバッファにのみバインドするにはどうすればよいですか?事前に
おかげで、DX12で
Philinator