unity粒子系统自带了软粒子shader,目的是当粒子的billboard与场景中的多边形相交时,产生一个过渡,避免出现生硬的边界
本文还原一下这个shader处理方式
运行效果图如下:

基本原理就是,在shader的片元处理阶段,判断当前像素点的视深,与_CameraDepthTexture里的深度差值,
如果深度小于某个阀值,对alpha进行加一个衰减,产生过渡效果
对应的shader代码如下:
Shader "lsc/UnlitShader_softparticle"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader

本文介绍了Unity粒子系统中软粒子效果的实现原理,通过使用内置的软粒子shader,当粒子与场景多边形相交时,创建平滑过渡,避免边界生硬。关键在于在片元着色器中比较像素深度,计算透明度衰减,从而达到视觉上的融合效果。
最低0.47元/天 解锁文章
880

被折叠的 条评论
为什么被折叠?



