消融这个效果算得上游戏开发中用的比较多的一个效果,表现游戏对象消失的时候经常用到,这个效果实现也非常简单,因此在《UnityShader入门精要》中也就短短几句话讲完了,这里我想针对书中的效果详细讲解一下。
Shader源代码,我这里就不贴出源代码了,可以照着看。
消融效果的核心是使用clip函数,将小于阈值的像素裁剪掉
首先Disslove中包含两个Pass,一个前向渲染、一个阴影渲染,我们下面挨个解析。
参数说明
与消融效果相关的主要有噪声图、阈值。这两个就能实现消融,书中额外使用了Burn Line Width、Burn First Color、Burn Second Color来实现消融前表面先烧焦的效果。
噪声图
这里使用的噪声图类似高斯噪声图,使用这类噪声图可以让消融过渡更加平滑均匀。虽然本书讲的是消融效果,但是我觉得噪声图的选择使用也是一门很值得研究的门道。只要大体符合高斯噪声图规律就能实现比较好的效果。我们只要去拾取噪声图中的像素点,就能发现它们是梯度增加或减少点,这正符合烧毁东西的规律,从多个点扩散

文章详细介绍了Unity游戏中消融效果的实现,主要利用clip函数和噪声图,通过调整阈值和噪声图来模拟物体消失的过程。此外,还讨论了如何通过顶点和片元着色器计算光照,以及使用pow函数增强颜色对比度以模拟烧焦效果。
最低0.47元/天 解锁文章
1917

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



