Рубрики
Component "Material" (.mat) HLSL

Material «понятие»

CGPROGRAM CG декларативная часть программа
#pragma vertex vert
struct appdata
struct v2f

  • appdata
    это то, что нам приходит из приложения
    поступает в vertex программу
  • наш mesh приходит как совокупность вертексов float4
  • у каждого вертекса есть uv координаты float2
struct appdata{
float4 vertex:POSITION;
float2 uv:TEXCOORD0;
}

берём и используем положение нашего вертекса v.vertex и выполняем UnityObjectToClipPos преобразование из мировых координат в координаты камеры производит умножение матрицы и получаем координаты в экранном пространстве

v2f vert(appdata v){
 v2f o;
 o.vertex = UnityObjectToClipPos(v.vertex);
 o.uv = v.uv;
 return o;
}

формируется некий out структура v2f, которая будет интерполироваться, она может содержать только float, которые автоматически интерполируются для всех точек на этапе Растеризации, которые появляются из треугольника. Потом из вертексов v2f сложится треугольник и эти значения будут интерполироваться по точкам этого треугольника.

  • v2f
    это данные или интерполятор, которые будут перенесены из vertex программы в frag программу
struct v2f{
float4 vertex:SV_POSITION;
float2 uv:TEXCOORD0;
}