山大2020年项目实训------6月29日
今天的任务是将窗户做成类似任意门的样子。效果如下:
实现前效果:
实现后:
这个主要是通过编写MaskShader实现隐藏物体遮挡效果
代码如下:
Shader “MASK/MaskShader”
{
SubShader
{
Tags{ “RenderType” = “Opaque” “Queue” = “Geometry-3” }
ColorMask 0
ZWrite on
CGINCLUDE
#include “UnityCG.cginc”
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 pos : SV_POSITION;
};
v2f vert(appdata v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
return o;
}
half4 frag(v2f i) : SV_Target
{
return half4(0,0,0,0);
}
ENDCG
Pass
{
Stencil
{
Ref 1
Comp always
Pass replace
}
Cull Front
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
ENDCG
}
}
}