struct appdata // Vertex Input structure
{
float4 vertex:POSITION;
float3 normal:NORMAL;
float2 uv:TEXCOORD0;
float2 normUV:TEXCOORD1;
float4 tangent:TANGENT; // касательная
};
7) Чтобы правильно перевести закодированную нормаль в мировые координаты, нам нужна матрица перехода. Считать её мы будет в вертексном шейдере и передавать в пиксельный. Для более удобного представления этой матрицы мы введем 3 переменных типа float3, каждая из которых будет считаться строкой матрицы перехода.
// Vertex output structure
struct v2f
{
float4 pos:SV_POSITION;
float2 uv:TEXCOORD0;
float4 worldPos:TEXCOORD1;
float4 worldNormal:TEXCOORD2;
float2 normUV:TEXCOORD3;
float3 tspace1 :TEXCOORD4; // первая строка матрицы
float3 tspace2 :TEXCOORD5; // вторая строка матрицы
float3 tspace3 : TEXCOORD6; // третья строка матрицы
};