Hallo Leute,
Ich hebe, wie der Title des Threads schon lautet, eine kleine Frage zu Pixelshadern in HLSL (Shader Model 4.0).
Und zwar wie ein PS aussehen würde, der wie die Fixed-Function-Pipeline mit dem FVF (Position, Farbe, Textur-Koordinaten) funktioniert.
zuerst würde man denken, dass folgender Shader sich genau so verhält:
|
HLSL-Quelltext
|
1
2
3
4
5
6
7
|
Texture2D myTexture : register(t0);
SamplerState mySampler : register(s0);
float4 ps_main(float4 pos : POSITION, float4 diffuse : COLOR, float2 tex : TEXCOORD) : SV_TARGET
{
return myTexture.Sample(mySampler, tex) * diffuse;
}
|
Jedoch wird (logischerweise) nur Schwarz ausgegeben, wenn keine Textur angegeben ist.
Bei der FFP wurde allerdings dann nur die Streufarbe ausgegeben.
Kann man dieses Verhalten irgendwie in einen Shader packen oder muss man es in 2 Shader aufteilen?
So habe ich es bis jetzt gemacht, finde es aber schlecht gelöst.
Danke
P.S.: Sorry wenn die Frage etwas dumm ist. Bin ein Shader-Anfänger