如何将资源绑定到 D3D12 中的不同着色器阶段?
我写了两个着色器,一个顶点着色器和一个像素着色器:
这是顶点着色器:
//VertexShader.vs
float4 main(float3 posL : POSITION, uniform float4x4 gWVP) : SV_POSITION
{
return mul(float4(posL, 1.0f), gWVP);
}
这是像素着色器:
//PixelShader.ps
float4 main(float4 PosH : SV_POSITION, uniform float4 Color) : SV_Target
{
return Color;
}
如果我用函数编译这两个着色器D3DCompile
并用 反映它D3DReflect
并检查着色器描述中的 BoundResorces 成员,它们都有一个名为 $Params 的常量缓冲区,分别包含统一变量。问题是这两个缓冲区都绑定到插槽 0。绑定资源时,我必须使用 ID3D12RootSignature 接口,该接口可以将资源绑定到资源插槽。如何将顶点着色器的 $Params 缓冲区仅绑定到顶点着色器,将像素着色器的 $Params 缓冲区仅绑定到像素着色器?
提前致谢,
集邮者