Unity Shader之几何着色器(Geometry Shader)实现面片飞散的爆炸效果
前言 上篇文章初学集合着色器实现了草地效果,这篇再次使用GS实现一个“爆炸效果”。为什么要加上引号呢,因为实现的其实不是一个传统的爆炸效果,更类似于面片向外扩散消失的一种科幻效果,其实通过修改面片大小,颜色和扩散方向,还可以模拟复仇者联盟三最后人化为灰烬的效果。 为什么要实现这个效果呢,实际上我最早知道几何着色器是下载了一个K神实现的开源demo,然后看到了一个非常酷炫的传送特效。 当时我第一感受就是“这尼玛也太太太太帅了吧!!!我什么时候也可以写出这种特效??!!” 感谢这是个开源Demo我可以看到其中的源码,我把下载地址提供给大家 点我点我 。这个网站还有很多同样酷炫的demo可供学习。这个特效其实使用的就是GS,然后通过调整面片的大小方向等来将物体“打碎”成粒子,再将粒子“重组”成物体。其实仔细观察“打碎”这个过程,有一部分图元用来表现传送了,还有一些细小的图元好像是粉末一样向外挥发掉了,我这次实现的就是后者这个效果,传送效果我以后会补上的。 实现 我其实参考大佬代码实现的Demo不是很复杂,直接放上代码吧。 Shader "MyShader/Explosion" { Properties { _Color ( "Color Tint" , Color ) = ( 1 , 1 , 1 , 1 ) _Emission1 ( "Emission1" , Color ) = ( 1