Страница 1 из 1

Просвятите нуба

СообщениеДобавлено: 31 окт 2018, 20:34
Mr_Progger
Доброго дня. Взялся изучать шейдеры
Разбираю пример
Скрытый текст:
Shader "Debug/Normals" {
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"

// vertex input: position, normal
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};

struct v2f {
float4 pos : SV_POSITION;
fixed4 color : COLOR;
};

v2f vert (appdata 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
}
}
}

Растолкуйте пожалуйста что такое SV_Target SV_POSITION NORMAL POSITION

Re: Просвятите нуба

СообщениеДобавлено: 31 окт 2018, 20:53
seaman
float4 - это массив из 4 float-ов. Что они представляют шейдеру показывают семантики.
Некоторые семантики описаны тут: https://docs.unity3d.com/Manual/SL-Vert ... nputs.html
Вообще это понятно из самого слова "NORMAL" "POSITION"...
SV_ - означает в координатах экрана.
SV_TARGET - цель - экран (т.е. результат функции отображается на экране).
Бывает еще _ST - это scale/translate

Re: Просвятите нуба

СообщениеДобавлено: 02 ноя 2018, 10:32
Mr_Progger
seaman писал(а):float4 - это массив из 4 float-ов. Что они представляют шейдеру показывают семантики.
Некоторые семантики описаны тут: https://docs.unity3d.com/Manual/SL-Vert ... nputs.html
Вообще это понятно из самого слова "NORMAL" "POSITION"...
SV_ - означает в координатах экрана.
SV_TARGET - цель - экран (т.е. результат функции отображается на экране).
Бывает еще _ST - это scale/translate

Из названий смысл примерно ясен. Не до конца понятно что именно происходит когда указываем "NORMAL" "POSITION" и т.д. Я правильно понимаю если например укажем float4 vertex : POSITION, в переменную vertex компилятор сам положит координаты каждого вертекса(вершины)? А когда указываем float uv : TEXCOORD0; соответственен координаты точек текстуры?
Если префикс SV_, то наоборот, пикселю присваиваем значения переменой?
Если не трудно ткните где можно более подробно почитать про это все, без мат части нехрена не понятно читать документацию

Re: Просвятите нуба

СообщениеДобавлено: 02 ноя 2018, 19:56
seaman
А смысл, если Вы и мое сообщение прочитать не смогли....