Ich versuche, eine Textur zu rendern, die durch einen Pixel-Shader geleitet wird.Übergeben von Textur durch Shader DirectX 9
Derzeit mein Shader ist wie folgt:
float4 EffectProcess(float2 Tex : TEXCOORD0) : COLOR0
{
return float4(1,0,0,1);
}
technique MyTechnique
{
pass p0
{
VertexShader = null;
PixelShader = compile ps_2_0 EffectProcess();
}
}
Wie Sie sehen können, ist es eine sehr grundlegende Shader, der macht, dass die Pixel zwingt rot.
UINT uiPasses = 0;
res= g_lpEffect->Begin(&uiPasses, 0);
for (UINT uiPass = 0; uiPass < uiPasses; uiPass++)
{
res = g_lpEffect->BeginPass(uiPass);
res = sprite->Begin(D3DXSPRITE_SORT_TEXTURE);
res = sprite->Draw(tex, NULL, 0x0, 0x0, 0xFFFFFFFF);
res = sprite->End();
res = g_lpEffect->EndPass();
}
res = g_lpEffect->End();
Und Ich zeichne die Textur mit dem Shader wie so. Ich bin mir nicht sicher, ob dies der richtige Weg ist und habe sehr wenig Ressourcen zu diesem Thema gefunden.
Der Shader wird korrekt erstellt und auch die Textur, alle Aufrufe geben ein Ergebnis von S_OK zurück, aber wenn ich den Code ausführe, wird die Textur perfekt angezeigt, ohne von Rot überschrieben zu werden.
Ich habe meinen eigenen Sprite Shader erstellt, um das zu tun, was ich machen wollte. –