首页 >> 知识 >> Unity 粒子特效遮罩(ParticleMask)

Unity 粒子特效遮罩(ParticleMask)

1.需求:

游戏中粒子特效能实现非常好的效果,但是由于粒子特效是独立的系统,Unity自带的Mask普通的遮罩,遮不住粒子特效。

2.实现原理:

通过shader把超出范围的粒子纹理(Texture),改成透明颜色,以实现遮住粒子特效的功能。

3.关键Shader代码

fixed4 frag (v2f i) : SV_Target{#ifdef SOFTPARTICLES_ONfloat sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)));float partZ = i.projPos.z;float fade = saturate (_InvFade * (sceneZ-partZ));i.color.a *= fade;#endiffixed4 col = 2.0f * i.color * _TintColor * tex2D(_MainTex, i.texcoord);col.a *= (i.vpos.x >= _MinX);col.a *= (i.vpos.x = _MinY);col.a *= (i.vpos.y
网站地图