找回密码
 立即注册
查看: 308|回复: 0

unity——用Shader做出怪物灰飞烟灭的效果

[复制链接]
发表于 2022-10-9 13:35 | 显示全部楼层 |阅读模式
Shader可以做出一些炫酷的效果出来,
我这里也用Shader做了一个怪物灰飞烟灭的效果,一起来看看吧。




刚开始这四个怪物在跳舞,然后跳舞结束就灰飞烟灭了。怪物变成了一堆沙粒,粉末消失无踪。那么这个效果是怎么做的呢?我们接下来说下原理。
在我们写Shader脚本时候,大部分时间大家用顶点函数和片元函数就能搞定很多的需求。然后部分人就以为Shader里面就只有顶点函数和片元函数了。其实除了他们,还有其他一些函数,也是非常有用的,就比如我们今天这个效果,就用到了其他的函数:几何函数或者叫它几何着色器。我们都知道顶点函数是处理模型顶点相关的,片元函数是处理像素相关的。那么这个几何函数是干嘛的呢?通过名字就应该知道,和几何相关,它呢其实是处理图元相关的函数,其实说白了就是处理三角形的。我们都知道模型是由网格组成的,那么网格又是又无数的三角形组成的。任何的物体都能由无数的三角形组成。好了,这个点就说到这里了,我们接下来说下这个效果的原理。




这是正常的三角形勾勒的模型。下面是点图元:


然后现在大概的模型轮廓还是看的见一些,接下来就是让它灰飞烟灭,那么怎么做呢?飘散嘛,很简单,他们现在聚在一起了,我就让他们分散远离,飘散而去。那么是谁远离(运动)呢?很明显,是让顶点进行移动。那么在这里我们可以用一个物理学公式来计算顶点的位移。最终我们就完成了这个效果了。完整代码如下:


这就是几何函数的内容,也是本次特效的关键所在。其他的不重要,都是常规的渲染物体的写法。这个效果函数非常的不错的。
加入我的学习交流群
给你分享更多游戏源码及其他学习素材

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 22:08 , Processed in 0.122853 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表