fwalker 发表于 2023-3-10 13:21

研究一下unity官方的Visual Effect Graph案例(其一)

示例项目:

https://github.com/Unity-Technologies/VisualEffectGraph-Samples
案例一:UnityLogo




第一反应,哇,好xx炫酷!但是性能很惨,有大约75w个粒子,开销要15ms。

       这个特效可以大体可以分为2部分,一是一个绕着中心无规则旋转的球,大量生成粒子。一是那个logo作为力场,吸附这些发射出来的离散的粒子。一开始我以为logo就是一个简单的正方体,然后以边作为吸附区域。然后发现是一张3D的Texture。


      还有一个引力场每帧直接作用于每个粒子,产生扰动。





关闭该力场后特效失去灵魂

    产生粒子的球体还能与粒子发生碰撞。





把摩擦力设为8以后会变成烟花...小本子记下来说不定用得到...


   有关颜色,我一开始觉得有光照...看了文档才知道粒子颜色由两个东西控制,一是周期的颜色变化,从紫色到红色。


      一是通过曲线控制,改变球体周围的颜色产生伪光照的效果。(很聪明的作法)
      有关时间,特效的周期,官方特地说了下用Total Time(Per-Particle),不要用(Total Time),我试了下,用Total Time球的运动真的是离散的...


案例二:Morphing Face



      一开始我觉得是小正方体拉伸产生的形变,(因为形变剧烈,内部的面露出来了,所以变黑了..)场景里有冷暖灯。仔细看了下是正方体变成狭长长方体然后稍微改变一下朝向,那还应该有个移动的光源。然后找了半天没发现那个移动的光源...结合上一个案列,那应该是是变成正方体时额外加了颜色做出伪光照的效果...



Visual Effect Graph自带的模型转换点缓存的工具

      官方用Houdini生成点缓存导入(没说是不是直接导入就能用),不过也可以从Window/Visual Effects/Utilities/Point Cache Bake Tool打开自带的工具生成。



使用Point Cache节点来使用点缓存数据



顶点的法线会作为拉长后的长方体颜色


      意思是houdini生成的点缓存法线方向都一样是吧...


      循环这次用了这个节点,从-12到12之间不断插值并输出并且2.5秒循环一次。
案例三:Butterflies



      这个特效比较炫技...我一直在想把蝴蝶做成prefab了用脚本控制运动轨迹会不会更省一点。
      蝴蝶的翅膀是带透明通道的贴图,中间部分是mesh。



蝴蝶在水平方向上朝向速度方向,在垂直方向上角度固定



身体部分有个向上的偏移并不与速度方向完全一致

场景里面有个扰动场但是影响很小,关了也看不出任何变化


蝴蝶的主要移动方式还是随机改变力的方向,然后限制最大速度。


翅膀的扇动与整体的前进使用了正弦函数,来表现蝴蝶运动克服空气阻力的效果。就是让蝴蝶动起来不那么平滑。

zt3ff3n 发表于 2023-3-10 13:25

连线的拖尾怎么做啊

LiteralliJeff 发表于 2023-3-10 13:30

大佬点缓存技术怎么做
页: [1]
查看完整版本: 研究一下unity官方的Visual Effect Graph案例(其一)