Решил тут сделать шейдер, который выворачивал бы модель наизнанку при определенном условии.
Если я правильно понял, то тут нужно работать с нормалями, это так?
Если да, то как определить значение нормали в базовом состоянии?
Пока что имею только это, но не работает
Синтаксис:
Используется glsl
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 = mul( UNITY_MATRIX_MVP, v.vertex);
o.color.xyz = v.normal * 0.5 + 0.5;
o.color.w = 1.0;
if(v.normal.x < 0)
{
v.normal.x *= -1;
}
return o;
}
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : SV_POSITION;
fixed4 color : COLOR;
};
v2f vert(appdata v)
{
v2f o;
o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
o.color.xyz = v.normal * 0.5 + 0.5;
o.color.w = 1.0;
if(v.normal.x < 0)
{
v.normal.x *= -1;
}
return o;
}