1/3
2/3
3/3
Unity VFX--快速上手概览(Visual Effect Graph)
有机紫菜
2021年11月09日 20:51
  • Spawn(类似于 Awake() 调用)----开始时调用.

  • Initialize(Start() 调用)----初始化时候调用

  • Update(Update() 运行时调用)

  • Output(定义生成的粒子如何渲染到屏幕上)

整体粒子创建思想脉络.

  1. 首先确定粒子外观形态,是条还是网格,还是点,还是直线.还是普通粒子sprite

  2. 然后确定粒子动态.

  3. 确定粒子初始化,诞生时带的变化---大小,位置,速度,颜色,旋转.

  4. 确定粒子颜色,朝向,update中的力等等.

  5. 最终渲染输出形态.

鼠标右键--新建节点内容

新建节点Node

  1. Context(情景)---输入,输出,产生,更新等主题块.

  2. Operator(操作)---大部分的粒子操作东西都在这里

  3. System(系统模版)---几个范例,其中有GPU event等模块,通常用这个创建模版.

  4. Misc(其他)---组Group框体.打组用的

  5. 新建Sticky node---便条备注.

界面其他

标题栏部分的AUTO--Compile---SAVE---分别是自动编译模式,和编译,保存.--show in project点击后如下图.

其中预热时间,影响粒子释放效果,比如全局的灰尘粒子,可以再这里设置时间.

初始化事件名称.

Context(情景)

Initialize Particle 初始化粒子

Initialize Particle strip 初始化条带粒子

output mesh---目前就只是直接渲染一个网格.

output particle distortion mesh----失真输出,

output particle distortion quad--失真输出固定形状.

output particle Forward decal---贴花.

output particle line--线段

output particle lit mesh---就是一个基础lit模型----接受光照影响.可调整粗糙度和金属度

output particle lit octagon 八角形LIT

output particle lit quad--基础四方模型LIT

output particle lit triangle--三角形LIT

output particle MESH---直接上mesh模型

output particle octagon---八角形菱形--不能调金属和糙度---

output particle point---点输出

output particle quad---最常用的--四方格图片粒子.类似sprite

output particle triangle--三角面的贴图粒子.

八角形有助于减少渲染透明部分的开销

lit 适合那些对灯光有反应的粒子.

BLOCK(块)

块部分.

  • Attribute---属性部分调整

  • Collision---碰撞部分

  • Flipbook---序列帧

  • Force---力场

  • GPU Event--GPU粒子事件

  • Implicit--隐式操作

  • Kill---消灭粒子

  • Orientation---粒子朝向

  • Output--输出

  • Position---位置

  • Size---大小

  • Spawn---产生

  • Velocity---速度矢量

Operator(操作节点)

  • Attribute--属性调节部分

  • Bitwise--二进制位操作--操作一些bit数据

  • Builtin--内建指令--系统时间啊啥的.

  • Camera--摄影机转换操作

  • Color--颜色转换部分--彩色转luma-亮度,RGB转HSV

  • Inline--内嵌的操作节点,包括一切的可暴露属性.包括bool和V1,2,3这些基础属性.

  • Logic---逻辑运算符,与或非

  • Math---数学操作

  • Noise--噪点噪波.

  • Random--随机数值操作

  • Sampling---采样

  • Spawn--获取目前粒子产生状态,产生数量,德尔塔时间.

  • Utility--多功能--目前就一个点缓存.存储2d图或者mesh的点数据.

Output Event Handlers

输出事件管理---管理输出事件的.比如进入一个区域触发一个事件.给粒子.PlayAudio之类的事件

线渲染可以做到很多事情

Mesh sampling(网格采样)

---后面是相对高级的粒子采样方式,初学可以跳过不看了.

网格采样.

只能从网格中获取点,目前不能获得三角形拓扑结构.

2个方式

  • The Position (Mesh) Block.

  • The Sample Mesh Operator.

矢量场文件是.VF格式的,UNITY支持

https://blog.csdn.net/m0_48782520/article/details/107498313

Signed Distance Fields (SDFs) 符号距离场

符号距离场---就是对网格生成简化模型类似LOD,节省粒子缓存。能够实现一些,数学形状搞不定的网格类型

Blender插件【Blender - UE4 - FGA Vector Field Editor】

Unity插件【FGAImporter】

https://github.com/the40san/FGAImportergithub.com/the40san/FGAImporter

Point Caches

点缓存也和上面一样.为了实现网格的粒子.--放松会有更均匀的点间隔.

需要烘培.点缓存包括了物体的法线.

可以用点缓存做复杂网格的粒子效果。

每个点有列表,可以用index查询位置,法线,颜色信息.---点缓存导入后.

点缓存,可以依靠DCC软件.比如Houdini.或者内置软件---Unity内置了.在vfx里面直接打开就能烘培了,.

烘培出的point catch如下图这样使用,形状就是网格的形状,或者贴图的形状,----这个太好玩了.

采样节点咋用

扭曲空气效果---很适合火焰啊啥的,热失真的效果

黑色薄雾

贴花粒子.必须相交于物体才会显示到物体上,

线段输出

网格输出

小技巧

1.线条可以构成圆环,曲线等等

2.序列帧烟雾,可以在初始化时加入set Tex index Random,set angle.z,set alpha random,size random来随机化.

3.烟雾淡出可改颜色set color live time最后改透明度

4.叶子可用lit quad输出,filpbook ,叶子的图有点特殊.大小随生命灭掉--淡入淡出

5.风的条带可以不给update的力,粒子本身给力

6.锁链可以动态链接,用粒子做锁链可以上下浮动

7.线条可以有链接对象,做闪电等

8.线条的端点暂时不知道咋弄出来的