2015-06-03 2 views
0

Я новичок в CG и делаю простой шейдер. Я не могу понять, что означает этот кодНе могу понять семантику CG

float4 vert(float4 vertexPos : POSITION) : SV_POSITION { 
    ... 
} 

Скорее этот момент: мы объявили параметр с типом float4.Question: что это

«: ПОЗИЦИЯ» и этот «: SV_POSITION "

Или дать ссылки для этого

заранее спасибо!

ответ

2

Просто подумал, что следующее может быть полезно для понимания.

Источник: 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 вызывает «основной цвет вершин». Цветовая интерполяция для треугольника или другого геометрического примитива во время растеризации зависит от примитивных цветов примитива.

+0

Но как насчет ": SV_POSITION" – Coffeeman

+0

http://www.gamedev.net/topic/579610-hlsl-semantics-position-vs-sv_position/ – Vasif

Смежные вопросы