码迷,mamicode.com
首页 > 其他好文 > 详细

这是用两个shader来实现,球的shader跟两个胶囊体

时间:2019-08-05 19:05:53      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:bsp   targe   coder   ack   clip   replace   胶囊   clu   实现   

代码如下:
胶囊体(先渲染Geometry+1):

Shader "SoulCoder/Mask" {
SubShader {
Tags { "RenderType"="Opaque" "Queue"="Geometry+1"}
ColorMask 0
ZWrite off
Stencil {
Ref 1
Comp always
Pass replace
}

CGINCLUDE
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(1,1,0,1);
}
ENDCG

Pass {
Cull Front
ZTest Less

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
ENDCG
}
Pass {
Cull Back
ZTest Greater

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
ENDCG
}
}
}

--------------------- 

这是用两个shader来实现,球的shader跟两个胶囊体

标签:bsp   targe   coder   ack   clip   replace   胶囊   clu   实现   

原文地址:https://www.cnblogs.com/hyhy904/p/11304663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!