Shader "Sectioning"
{
Properties
{
_Color("Main Color", Color) = (1,1,1,1)
_ClipYPos("ClipYPosition",Float) = 1
_MainTex("Main Texture", 2D) = "white"{}
[KeywordEnum(None, Z, Y, X)]_Mode("Mode", Float) = 0
}
SubShader
{
Pass
{
Cull off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _Color;
float _ClipYPos;
sampler2D _MainTex;
half4 _MainTex_ST;
float _Mode;
struct vertexOutput
{
float4 pos : SV_POSITION;
float4 posInObjectCoords : TEXCOORD1;
float2 uv : TEXCOORD0;
};
vertexOutput vert(appdata_full input)
{
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.uv = TRANSFORM_TEX(input.texcoord, _MainTex);
output.posInObjectCoords = mul(unity_ObjectToWorld,input.vertex);
return output;
}
fixed4 frag(vertexOutput input) : SV_Target
{
float clipxyz;
if (_Mode == 1) {
clipxyz = input.posInObjectCoords.z - _ClipYPos + 0.5f;
}
if (_Mode == 2) {
clipxyz = input.posInObjectCoords.y - _ClipYPos + 0.5f;
}
if (_Mode == 3) {
clipxyz = input.posInObjectCoords.x - _ClipYPos + 0.5f;
}
if (clipxyz > 0.0&&_Mode != 0)
{
discard;
}
fixed4 col = _Color;
return col;
}
ENDCG
}
}
}