Pixel Shader 3.0 unexpected results

Started by
0 comments, last by Adam_42 12 years, 2 months ago
Just when I think I understand shaders they throw me a curveball every time.

This seems SO simple. I have a Vector 3:
pos=new Vector3(1024,1024,1024);
and a shader constant float3 EyePosition
I assign my Vector3 to my shader constant just before the draw call:
[font="Consolas"][size="2"][font="Consolas"][size="2"]Effect.Parameters[[/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"EyePosition"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]].SetValue(pos);[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]This variable is not used or altered anyplace else, in either the program or in the shader.[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]BUT, when I debug the pixel shader in PIX it shows EyePosition= (414.855, 823.112, 1024.000, 0.000);[/font][/font]

[font="Consolas"][size="2"][font="Consolas"][size="2"]Can somebody please explain to me WHY (tF!) my constant is getting changed? Is the interpolater being invoked for some reason? I hate asking dumb questions but I can't see any logical explanation for this whatsoever.[/font][/font]

[font="Consolas"][size="2"][font="Consolas"][size="2"]Thanks[/font][/font]
Advertisement
It is possible the compiler has optimized away the constant if you don't use it anywhere.

If you're still seeing the same results when it gets used and affects that shader output, it might be best to post a complete compilable shader so other people can try it for themselves.

This topic is closed to new replies.

Advertisement