6
votes

i was wondering what those input and output semantics in HLSL are for? i.e. why do i have to write that TEXCOORD0;

struct VS_OUTPUT 
{
   float2 tc : TEXCOORD0; 
};

when the type and the name are already given?

1

1 Answers

4
votes

Semantics let the shader know where to read or write data from. They correspond to parts of the vertex structure or certain values.

In your example above, the value of tc comes from the first texture coordinate component.

For info on semantics and what they mean, check here: http://msdn.microsoft.com/en-us/library/bb509647(v=vs.85).aspx

In the vertex shader, the data will be coming from the FVF or vertex declaration.