当前位置:网站首页>使用ShaderGraph制作边缘融合粒子Shader的启示

使用ShaderGraph制作边缘融合粒子Shader的启示

2022-06-24 23:04:00 ttod

先上图:

启示一:

粒子生命周期Color控制的是Vertex Color的值,所以要想让使用这个Shader的粒子能够控制生命周期的颜色,需要使用Vertex Color节点与Color节点和SampleTexture2D节点相乘。 

启示二:

节点SceneDepth在Eye选项下是基于视角的原始深度值,也就是基于摄像机空间的位置的Z坐标的绝对值,不是0,1范围内的深度值。ScreenPosition使用Raw选项时,A分量是当前渲染内容的Z坐标的绝对值,由于是粒子系统,该渲染应该是处于透明渲染阶段,如果该像素点深度检测通过,说明A分量小于对应原始深度值,可以根据两者的差值影响该像素的透明值。

启示三:

如果使用Lit形式的ShaderGraph模板,粒子会受到灯光影响,由于粒子总是朝向摄像机,这可能导致从不同的方向观察粒子时亮度明显变化,所以使用了Unlit模板的粒子,这里只让环境光来影响粒子的亮度,本来以为应该使用Ambient节点的Color/Sky输出来与颜色相乘,但是这个Ambient节点不按我的理解输出,总是输出0,根本没法用。谷歌上搜索了一下国外的帖子,有人说Baked GI节点输出的亮度是环境光的亮度,我试了一下,用这个与原色相乘,果然正确!这咋回事呢?有大神给科普一下吧,不胜感激!

原网站

版权声明
本文为[ttod]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ttod/article/details/125431868