Просто подумал, что следующее может быть полезно для понимания.
Источник: http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter02.html
struct C2E1v_Output {
float4 position : POSITION;
float4 color : COLOR;
};
C2E1v_Output C2E1v_green(float2 position : POSITION)
{
C2E1v_Output OUT;
OUT.position = float4(position, 0, 1);
OUT.color = float4(0, 1, 0, 1); // RGBA green
return OUT;
}
2.1.6 Семантика
двоеточие и специальное слово, известное как семантическая, следовать позиции и цвета элементы структуры C2E1v_Output. Семантика - это, в некотором смысле, клей, который связывает программу Cg с остальной частью графического конвейера. Семантика POSITION и COLOR указывают аппаратный ресурс, который передает соответствующий член, когда программа Cg возвращает свою структуру вывода. Они указывают, как связанные с ними переменные соединяются с остальной частью графического конвейера.
Семантика POSITION (в данном случае в структуре вывода, используемой программой вершин Cg) является положением пространства клипа для преобразованной вершины. Более поздние этапы графического контура будут использовать выходной вектор, связанный с этой семантикой, как пост-преобразование, положение пространства клипов вершины для примитивной сборки, обрезки и растеризации. Вы познакомитесь с этим фрагментом позже в этой главе и более формально в главе 4. В настоящее время вы можете рассматривать положение пространства клипа 2D-вершины просто как его положение в окне.
Семантика COLOR в этом контексте - это то, что Direct3D называет «диффузным цветом вершин», а OpenGL вызывает «основной цвет вершин». Цветовая интерполяция для треугольника или другого геометрического примитива во время растеризации зависит от примитивных цветов примитива.
Но как насчет ": SV_POSITION" – Coffeeman
http://www.gamedev.net/topic/579610-hlsl-semantics-position-vs-sv_position/ – Vasif