//отобразить пиксель текстуры или нет
Clip(bool?-1:0);
\n\n
язык высокоуровневого шейдера, который используется с программируемыми шейдерами в DirectX
//отобразить пиксель текстуры или нет
Clip(bool?-1:0);
это инстанс шейдера
файл с расширением .mat
экземпляр какого-то шейдера, в котором мы заранее настраиваем значения свойств этого шейдера.
«/» слеш в имени шейдера
разбирает парсингом как меню
чем больше слешей, тем больше вложенностей в меню имени шейдера
Плюсы
Минус
требуется только бинарный шейдер компилировать
Shader "Custom/World/Cut"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_pov("pov", int) = 0
_pos("Vector",vector) = (0,0,0,0)
}
SubShader
{
CGPROGRAM
//surface
#pragma surface surf Lambert
//model
#pragma target 3.0
//vars
sampler2D _MainTex;
int _pov;
fixed4 _pos;
struct Input
{
float2 uv_MainTex;
float3 worldPos;
};
void surf(Input IN, inout SurfaceOutput o)
{
switch (_pov)
{
case 0:
clip(IN.worldPos.z > _pos.z ? 1 : -1);
break;
case 1:
clip(IN.worldPos.x < _pos.x ? 1 : -1);
break;
case 2:
clip(IN.worldPos.z > _pos.z ? 1 : -1);
break;
case 3:
clip(IN.worldPos.x < _pos.x ? 1 : -1);
break;
}
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
}
ENDCG
}
FallBack "Diffuse"
}