如何将资源绑定到D3D12中的不同着色器阶段?DirectX 12资源绑定
我写了两个着色器,一个vertexshader和一个pixelshader:
这里是顶点着色器:
//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的常量缓冲区分别包含统一变量。问题是这两个缓冲区都绑定到了0号插槽。绑定资源时,我必须使用ID3D12RootSignature接口,它可以将资源绑定到资源插槽。如何将顶点着色器的$ Params缓冲区仅绑定到像素着色器的顶点着色器和Pixel着色器的$ Params缓冲区?
由于提前,
Philinator