the function of Cull is to discard the certain face of the object. this discarded face will not be rendered.
next, i will explain how to use this world in shader.
1/ first give a simple shader that is just render a texture to a object.
Shader "Course/SimpleShader"
{
Properties
{
_MainTex("MainTex",2D)="white"{} //main texture to paste on the object
}
SubShader
{
Pass
{
// defaut is Cull Back
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// application data this the sel-defined model data
// we just use localPosition and uv
struct AppData
{
float4 localPosition:POSITION;
float2 uv:TEXCOORD2;
};
// vertex shader pass v2f to fragment shader
struct v2f
{
float4 position:SV_POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(AppData appData)
{
v2f v;
v.position = UnityObjectToClipPos(appData.localPosition);
v.uv = appData.uv;
return v;
}
sampler2D _MainTex;
fixed4 frag(v2f i):SV_Target
{
fixed4 color = tex2D(_MainTex, i.uv);
return color;
}
ENDCG
}
}
}
we should put the Cull between the SubShader and Pass segment. or you can put it in between Pass and CGPROGRAM.
we can not put it between CGPROGRAM and ENDCG
we can assign the Key-Value in the following formats.
Cull Off
Cull Back
Cull Front
or write nothing, this is equal to Cull Back
next, you can create a plane and material and use the above shader to the material. then drag the material to the plane.
last, change the view position in the unity’s scene view. let’s take the value to
Cull Back.
the effect is :
the front face is rendered.
the back frace is not rendered.