I'm playing around a bit with sm 3.0 in RenderMonkey and noticed something odd. I'm using the following shaders:
def c10, 0, 0.5, 1, 0
m4x4 o0, v0, c0
mov o1, c10
mov oC0, v0
As expected, I get a light blue object: RGB = (0, 0.5, 1). But the odd thing is that the pixel shader input declaration has no effect on the color. The following two declarations give me the same light blue:
So how exactly do individual components map from the vertex shader to the pixel shader?
Any insights much appreciated. :worthy:
I think I figured it out. The semantics just define a mapping between the o# and v# registers (vertex shader output registers to pixel shader input registers). They don't map specific components, just whole registers. So the 'light blue shader' above even works with just "dcl_color0 v0", the rest is redundant (but might make it easier to understand the shader).