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

Posted hyhy904

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是用两个shader来实现,球的shader跟两个胶囊体相关的知识,希望对你有一定的参考价值。

代码如下:
胶囊体(先渲染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跟两个胶囊体的主要内容,如果未能解决你的问题,请参考以下文章

系统学习Shader与后处理第2篇:uv控制之water

Unity高斯模糊Shader

shader编程-二维空间中使用矩阵实现物体的旋转缩放平移变换(WebGL-Shader开发基础03)

shader编程-二维空间中使用矩阵实现物体的旋转缩放平移变换(WebGL-Shader开发基础03)

用shader实现流动的水面(webgl)

shader几何运算效果