关于VFX Graph的学习

关于VFX Graph的学习

转载自我的有道云笔记,目前内容不多,后续如果继续使用会更新。

前言

出于实习工作需要和毕设需要,我开始使用VFXGraph。

以前准备第一批作品集的时候,就简单地使用过,但是只是跟着教程一顿乱连,很多地方没有理解。

始终跟着GabrielAguiarPro这位在学,好记性不如烂笔头,记录一下遇到的问题和解决方式吧,切莫反复踩坑。

在VFX中模拟Particle System的拉伸Billboard(Stretched Billboard)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当视角和平面夹角较大,会使其在Y轴方向有拉伸。

这个效果在VFX没有自带的模块,需要用脚本传入Y轴的拉伸值,直接接入到VFX文件的SetScale的Y轴上:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本来在VFX文件中计算就好了,但是VFX只能获取Scene中的Main Camera,如此,在Scene下就看不到效果了,调试很困难,于是写一个脚本计算Y轴拉伸,再传入VFX中:

using System.Collections;using System.Collections.Generic;using UnityEngine;using Sirenix.OdinInspector;using UnityEngine.VFX;[ExecuteAlways]public class Camera_Angle_To_Effects_Stretch : MonoBehaviour{public VisualEffect vfx;public Vector2 stretchRange = new Vector2(0.2f, 1f);private Camera _camera{​    get{​      \#if UNITY_EDITOR​      return UnityEditor.SceneView.lastActiveSceneView.camera;​      \#else​      return Camera.main;​      \#endif​    }}private void Update() {​    setValue();}public void setValue(){​    vfx.SetFloat("Y轴拉伸", Yrotate2Strech(_camera.transform.eulerAngles.y));}private float Yrotate2Strech(float eulerAnglesY){​    eulerAnglesY %= 180;​    float strech = Mathf.Lerp(stretchRange.x, stretchRange.y, Mathf.Abs(Mathf.Sin(eulerAnglesY * Mathf.Deg2Rad)));​    return strech;}}

如此便能做到类似的效果。

在VFX中使用Particle System中的噪声——Turbulence、湍流

使用Turbulence(湍流)节点:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在VFX中模拟Particle System中的随距离发射

这一点在原版中很容易实现:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但是VFX中需要以下操作:

\1. 在发射器中加入随距离发射

\2. 把Local空间的原点、也就是特效物体在Scene中显示的轴心位置,转换到世界空间,然后传入发射器的Position接入口。

\3. 初始化时,更改粒子的位置到本地空间的原点

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

【待完善】关于粒子贴花

和URP笔记中记录的贴花很像,在制作一些需要贴地的效果、如:地裂、地面灼烧痕迹时有用,因为其可以适配地形。

在VFX中,OutPut节点类里有一种就是贴花输出节点,可以用此输出节点来制作贴花效果。

我认为目前贴花效果存在一些根本问题。如果我想制作地裂,同时地裂的上方有玩家或者怪物,那么贴花会把效果也投射到玩家或怪物身上,造成穿帮。

关于这一点,必然是有解决办法的,但是目前从组件的面板来看我没有找到,需要再学习。

……待补充

在VFX中实现Particle System中的拖尾

在原版中,拖尾有以下属性:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

挑些比较重要的聊一聊:

l Mode:有粒子和丝带两种。粒子模式是常用的模式,类似一个子发射器,当父粒子运动,拖尾就会根据父粒子运动的距离产生粒子。丝带模式没有用过,感觉很混乱。粒子之间会被直线的Quad连接。

l LifeTime:拖尾粒子的生命周期,直接决定了拖尾的长度,因为如果生命短,留存的就短,看上去粒子的拖尾自然就短了。

l Minimum Vertex Distance:最小顶点距离。不是说它是子发射器吗,那么运动多远才产生新的粒子,就是由这个参数决定。如果值很大,会导致拖尾新顶点产生稀疏,在一些高频变化的场合会出现走样。但是如果值很小,又会导致产生太多拖尾粒子,造成性能开销。

l Texture Mode:纹理模式,一般来说都是用拉伸的模式。不知道底层是怎么实现的,但是可以这么理解:

所有的拖尾粒子所覆盖的区域,作为一整个Mesh片,然后Texture Mode决定这个Mesh中贴图的Tilling。

在VFX中,没有做好的模块,需要使用GPU事件来制作拖尾,基本的思路为:

生成头粒子 ——> 在头粒子的Update中添加触发器 ——> 使用该触发器输出的GPU事件发射拖尾粒子(拖尾粒子系统的类型需要为Strip、即条带,可以通过Ribbon的模板创建) ——> 使用拖尾粒子系统的context控制拖尾的性质

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Strip模板的粒子系统类似原版的拉伸的纹理模式,如果需要调整个拖尾的Tilling,可以换节点的输出节点的UV模式到Scale。

再来聊一下如何做到类似原Trail系统的更改:

l 更改拖尾粒子的密度:对应原系统的Minimum Vertex Distance参数的修改,其修改方法为:在头粒子的触发器中,更改触发率:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里有随时间和随距离两种模式,估计Rate的单位是每秒或者每米(这是不合逻辑的,因为触发器在UpadateContext中,每帧执行一次)

发射粒子的频率越高,拖尾条带也越顺滑,但是性能的开销也越大。

l 调拖尾长度的逻辑和原版一样,拖尾粒子的寿命直接决定拖尾的长短。

l 例子拖尾默认并每不会连接上头粒子,因为缺少一步位置的继承:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很多属性可以使用Inherit关键字来从头粒子获取。

由于拖尾粒子的特殊的条带渲染模式,生命周期的属性实际表现为对应到拖尾长度的表现。

如我把拖尾粒子的生命周期颜色改为前白后黑,那么表现为拖尾离头粒子近处白远处黑。这很好理解,不多赘述。直接记住这一点可以加快某些效果的分析过程。

【待完善】在VFX中实现子发射器

原版:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

子发射器很好理解,就是以父粒子为中心,开始发射一个新的子粒子系统。

有一个条件控制什么时候发射,官方的有以下几种:

……

生成Shader时,出现无法打开包的问题

Output Particle Quad’: Couldn’t open include file ‘Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl’

环境:

Unity 2021.3.4f1

VFX12.1.7

这是Unity的Bug,在Player Setting中的安卓的图形API中删去OpenGLSE即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【方法】ZIP压缩文件的密码如何设置和取消?

ZIP是一种常见的压缩文件格式,今天来分享一下,ZIP压缩文件如何设置密码保护,以及如何取消密码,不清楚的小伙伴一起来看看吧! 设置ZIP文件密码: 想要给ZIP压缩包设置密码,需要用到支持ZIP格式的…

记一次 .NET某企业数字化平台 崩溃分析

一:背景 1. 讲故事 前些天群里有一个朋友说他们软件会偶发崩溃,想分析看看是怎么回事,所幸的是自己会抓dump文件,有了dump就比较好分析了,接下来我们开始吧。 二:WinDbg 分析 1. 程序为什么会崩溃 win…

2024-BurpSuite快速配置Jython插件环境

文章目录 前言一、下载Jython二、配置Python environment 前言 很多插件需要python环境,Burpsuite本身是支持java的,Jython就是java和python的结合。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载Jython https://ww…

.NET调用阿里云人脸核身服务端 (ExecuteServerSideVerification)简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 功能说明 该功能是输入核验人的姓名和身份证以及人脸照片,去阿里库里面匹配,3个信息是否一致,一致则验证通过,需要注意的是,人脸有遮挡,或者刘海&#xff0…

吴恩达2022机器学习专项课程C2W2:2.17 TensorFlow实现 2.18 训练细节

这里写目录标题 本周任务TensorFlow训练神经网络模型的简要过程训练模型的三个步骤1.自行训练逻辑回归模型2.TensorFlow训练神经网络模型 TensorFlow训练神经网络模型的代码含义1.定义模型2.指定损失函数和成本函数3.最小化成本函数 总结QuizQuiz1Quiz2 本周任务 神经网络如何…

汇聚荣科技有限公司怎么样?

在众多企业中,汇聚荣科技有限公司以其独特的发展模式和市场定位引起了人们的关注。对于这个问题,答案并非简单的好与坏,而需要从多个维度进行深入分析。 一、公司背景与发展历程汇聚荣科技有限公司成立于何年何地,由谁创立&#x…

40岁的戴尔在AI时代翻红了

戴尔公司股价创历史新高,市值达1138亿美元,涨幅110%。戴尔向AI押注多年,收购企业转型,成为数据基础设施厂商。AI服务器销售增长,分析师看好戴尔未来发展。 5月24日美股收盘,很多人可能不太关注的戴尔公司股…

Matlab进阶绘图第57期—带填充纹理的横向柱状图

带填充纹理的横向柱状图是通过在原始横向柱状图的基础上添加不同的纹理得到的,可以很好地解决由于颜色区分不足而导致的对象识别困难问题。 由于Matlab中未提供纹理填充选项,因此需要大家自行设法解决。 本文使用Kesh Ikuma制作的hatchfill2工具&#…

别人不愿意教,那我来教你Simulink建模(二)【语法知识】【原创分享】

文章目录 前言节点和状态的区别?local 和非 local 的区别?事件的作用?Bus 总线?Memory 模块?caller用法?自己瞎练习的(我也不知道为啥会多出来.h文件)自己瞎练习的(这个没有多出来.h文件)autosar实例学习前言 继续更新去年的博文系列,请君切记,师父领进门修行在个…

echarts- 热力图, k线图,雷达图

热力图 热力图可以看成是一种矩形的散点图。 热力图的矩形受itemStyle的影响。 通常配合visualmap组件来根据值的大小做颜色的变化。 热力图主要通过颜色去表现数值的大小,必须要配合 visualMap 组件使用。 visualMap:视觉映射组件 let options {tooltip: {},xAx…

取代pip,Python依赖管理的终极武器:Poetry

大家好,使用python过程中,包管理是一个永恒的话题。从早期的setuptools到后来的pip,再到现在的Poetry,开发者们一直在寻找更高效、更稳定、更可依赖的包管理方案。今天,我们就来聊聊这个现代Python项目的管理神器——P…

【全开源】CMS内容管理系统源码(ThinkPHP+FastAdmin)

基于ThinkPHPFastAdmin的CMS内容管理系统,自定义内容模型、自定义单页、自定义表单、专题、统计报表、会员发布等 提供全部前后台无加密源代码和数据库私有化部署,UniAPP版本提供全部无加密UniAPP源码。 ​构建高效内容管理的基石 一、引言&#xff1a…

深入分析 Android Activity (六)

文章目录 深入分析 Android Activity (六)1. Activity 的权限管理1.1 在 Manifest 文件中声明权限1.2 运行时请求权限1.3 处理权限请求结果1.4 处理权限的最佳实践 2. Activity 的数据传递2.1 使用 Intent 传递数据2.2 使用 Bundle 传递复杂数据 3. Activity 的动画和过渡效果3…

Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明 一、简单介绍 二、分箱、离散化、线性…

使用 Ollama框架 下载和使用 Llama3 AI大模型的完整指南

🏡作者主页:点击! 🤖AI大模型部署与应用专栏:点击! ⏰️创作时间:2024年5月24日20点59分 🀄️文章质量:96分 目录 💥Ollama介绍 主要特点 主要优点 应…

【应用层】域名系统DNS

目录 1、互联网的域名结构 2、域名服务器 域名系统 DNS (Domain Name System) 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址,域名系统其实就是名字系统。 互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统&#xff0c…

Facebook的心灵之镜:探寻数字社交的灵魂深处

在当今数字化时代,社交媒体已经成为了人们生活的一部分,而Facebook作为其中的佼佼者,更是承载了数以亿计的用户情感和交流。然而,Facebook不仅仅是一个简单的社交平台,它更像是一面心灵之镜,反映着数字社交…

充电宝哪个牌子好用?充电宝品牌怎么选?充电宝最好的牌子排名

现在市面上的充电宝品牌琳琅满目,但并不是所有的充电宝都安全可靠。据央视的一个报道,市面上有35%充电宝质量是不过关的!充电宝买不对就非常容易出现爆炸的一个情况,所以大家对选充电宝不仅能保障设备的安全。那么,充电宝哪个牌子…

IP地址在广告行业中的重要地位

新时代,广告已经成为了企业推广产品的必要手段,而企业想要广告效果好,就要做到精准投放营销广告,将“花钱”的广告精准送到产品的受众用户面前,让收益大于花销,而归根究底就是广告转化率与回报率是否达到预…

Leetcode刷题笔记2:数组基础2

导语 leetcode刷题笔记记录,本篇博客记录数组基础1部分的题目,主要题目包括: 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 知识点 滑动窗口 所谓滑动窗口,就是不断的调节子序列的起始位…