Для Cg/HLSL вершинных программ
СеткаОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь данные вершин передаются в качестве входных данных функции вершинного шейдера. Для каждого ввода должна быть указана семантика: например, ввод POSITION — это позиция вершины, а NORMAL — нормаль вершины.
Часто входные данные вершин объявляются в структуре, а не перечисляются по одному. Несколько часто используемых структур вершин определены в включаемом файле UnityCG.cginc, и в большинстве случаев достаточно просто их использовать. Структуры:
appdata_base: позиция, нормаль и одна координата текстуры.appdata_tan: положение, касательная, нормаль и одна координата текстуры.appdata_full: положение, касательная, нормаль, четыре координаты текстуры и цвет.
Пример. Этот шейдерпрограмма, работающая на графическом процессоре. Подробнее
См. в Словарь окрашивает сетку на основе нормалей и использует appdata_base в качестве ввода вершинной программы:
Shader "VertexInputSimple" {
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f {
float4 pos : SV_POSITION;
fixed4 color : COLOR;
};
v2f vert (appdata_base v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.color.xyz = v.normal * 0.5 + 0.5;
o.color.w = 1.0;
return o;
}
fixed4 frag (v2f i) : SV_Target { return i.color; }
ENDCG
}
}
}
Чтобы получить доступ к различным данным вершин, вам необходимо самостоятельно объявить структуру вершин или добавить входные параметры в вершинный шейдер. Данные вершин идентифицируются с помощью семантики Cg/HLSL и должны быть из следующего списка:
POSITION— позиция вершины, обычноfloat3илиfloat4. .NORMAL– нормаль вершины, обычноfloat3.TEXCOORD0– первая координата UV, обычноfloat2,float3. илиfloat4.TEXCOORD1,TEXCOORD2иTEXCOORD3— 2-й, 3-й и 4-е UV-координаты соответственно.КАСАТЕЛЬНЫЙ– это касательный вектор (используемый для сопоставления нормалей), обычноfloat4.COLOR— цвет каждой вершины, обычноfloat4.
Когда данные меша содержат меньше компонентов, чем требуется входным данным вершинного шейдера, остальные заполняются нулями, за исключением компонента .w, значение которого по умолчанию равно 1. Для Например, координаты текстуры сетки часто представляют собой 2D-векторы только с компонентами x и y. Если вершинный шейдер объявляет ввод float4 с семантикой TEXCOORD0, значение, полученное < b>вершинный шейдерПрограмма, которая запускается для каждой вершины 3D-модели во время рендеринга модели. Подробнее
См. в Словарь будет содержать (x,y,0,1).
Примеры использования этих методов для визуализации данных вершин во встроенном конвейере рендеринга см. в разделе Визуализация данных вершин. р>

