In meinem Fall habe ich festgestellt, dass sich die Farbe des Lichts im Pixelshader unterschiedlich verhält, je nachdem, ob ich eine x64- oder x86-Exe erstelle. Wenn ich beispielsweise die Umgebungslichtfarbe auf Rot einstelle:
Code: Alles auswählen
float3 ia = float3(1.0, 0.0, 0.0); // Umgebungslichtfarbe
Sehen nicht beleuchtete Stellen rot aus. Jedoch, wenn ich stattdessen versuche, die Umgebungslichtfarbe von einem Eingabewert zu lesen:
Sind unbeleuchtet Stellen scwharz.
Meine Shaderstruktur sieht dabei wie folgt aus:
Code: Alles auswählen
struct PS_INPUT
{
float3 position : POSITION;
float4 color : COLOR;
float3 normal : NORMAL;
float3 lightposition : TEXCOORD0;
float3 lightcolor : TEXCOORD1;
};
Warum führt das Lesen von input.lightcolor zu diesem unerwarteten Verhalten, und wie kann dieses Problem behoben werden?