Wie kann ich Ressourcen an verschiedene Shaderstufen in D3D12 binden?DirectX 12 Ressourcenbindung
Ich schrieb zwei Shadern, ein Vertexshader und einen Pixelshader:
Hier ist der Vertex-Shader:
//VertexShader.vs
float4 main(float3 posL : POSITION, uniform float4x4 gWVP) : SV_POSITION
{
return mul(float4(posL, 1.0f), gWVP);
}
Hier ist der Pixelshader:
//PixelShader.ps
float4 main(float4 PosH : SV_POSITION, uniform float4 Color) : SV_Target
{
return Color;
}
Wenn ich diese beiden Shadern kompilieren mit der D3DCompile
Funktion und spiegeln Sie es mit der D3DReflect
und untersuchen Sie die BoundResorces Mitglied in der Shader-Beschreibung, die sie beide haben Ein konstanter Puffer namens $ Params mit enthält jeweils die einheitliche Variable. Das Problem ist, dass diese beiden Puffer an Steckplatz 0 gebunden sind. Beim Binden von Ressourcen muss ich die ID3D12RootSignature-Schnittstelle verwenden, die Ressourcen an die Ressourcensteckplätze binden kann. Wie kann ich den $ Params-Puffer des Vertex-Shaders nur an den Vertex-Shader und den $ Params-Puffer des Pixel-Shaders nur an den Pixel-Shader binden?
Vielen Dank im Voraus,
Philinator