Unity VFX -- (5)VFX Graph基础

这篇具有很好参考价值的文章主要介绍了Unity VFX -- (5)VFX Graph基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在Unity中,还有一种完全不同的创建VFX的工作流,VFX Graph。VFX Graph能够生成出和粒子系统相同或更好的效果。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        相比于粒子系统,VFX Graph的一个最大的好处是它能够在保持应用良好性能的情况下,模拟出多得多的粒子。对于VFX艺术家来说,他们的主要职责之一是确保他们制作的特效不会影响应用整体的可用性和帧率,因此性能优化是非常重要的。

VFX Graph和粒子系统不同之处

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        VFX Graph是基于节点的(node-based) 编辑器。相比于基于组件的(component)粒子系统来说,它看起来更加复杂。

VFX Graph的优点

        VFX Graph能够同时处理百万级别的粒子,而粒子系统同时能处理的粒子数要小于VFX Graph。

        VFX Graph产生处更加复杂的效果,比如开头的那个精灵,对于粒子系统来说几乎是不可能实现的。

VFX Graph的缺点

        VFX Graph对于初学者来说,上手难度相比于粒子系统来说更大。

        VFX Graph有更严格的硬件需求(具体的硬件需求和相关文档,可以参考这个链接Requirements and compatibility | Visual Effect Graph | 12.0.0),在部分设备上可能无法使用。

        VFX Graph运行在GPU上,Unity的物理计算被放到了CPU上,因此VFX Graph的粒子不能和应用的其它物理效果进行交互(比如和地面产生碰撞)。粒子系统是跑在CPU上的,因此它们能够和基于物理的(physics-based)组件进行交互。

VFX Graph和粒子系统该如何选

        如果我们的经验很丰富并且需要创建出非常复杂的效果,或者效果需要百万级别的粒子支撑,可以选择VFX Graph。

        如果我们并非专家,并且只想创建出一些简单的效果,这些效果能跑在所有设备上,或者效果需要和场景中其它基于物理的物体进行交互,则使用粒子系统。

        下面两张图是一个天气效果的对比,这个效果需要模拟的粒子数量是100万个,分别用粒子系统和VFX Graph来实现。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        粒子系统只有可怜的5.6FPS。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        VFX Graph在模拟出百万粒子的情况下,仍然有100 FPS的表现。

摆放一个VFX Graph特效到场景中

         1. 将前面笔记中所制作的环境粒子关闭掉(Inspector中设置为inactive即可)。

        2. 在Assets ->  CreativeCore_VFX -> VFX -> Samples中,拖动天气VFX Graph预制体中的一个(案例选的是Snow_VFXGraph_Prefab.prefab)到Heirarchy中。

        3. 将这个新添加的物体位置移动到空中,让场景看起来像是在下雨或下雪。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

打开VFX Graph编辑器窗口

        1. 选中VFX Graph物体的情况下,定位到它的Visual Effect组件,这个组件的图标是一个小灯。

        2. 选择Edit按钮打开VFX Graph窗口

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        3. 重新安排一下窗口布局,能够同时看到VFX Graph和场景。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

VFX Graph编辑器移动导览

         在开始编辑VFX Graph之前,我们可以先尝试着在编辑器区域进行移动导览,熟悉一下。和Shader Graph或者动画状态机编辑器类似,VFX Graph中主要的导览方式有:

        平移(Pan): 按住鼠标中间并拖动,或者按住Alt(Windows)或Option(MAC),点击鼠标并拖动。

        缩放(Zoom): 滚动鼠标滚轮。

        聚焦和放大(Focus and zoom in):选中一个元素按F键。

        适应窗口(Fit to window):按A键。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

         我们先来整体看看VFX Graph,它有四个主要的节点,从上到下垂直分布。这四个默认的节点被称为上下文节点(Context Nodes,或简称Context)。

浏览VFX Graph上下文

Spawn Context

        第一个上下文,控制粒子的生成,和粒子系统的Emission模块功能类似。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        默认情况下,一个新的VFX Graph使用常数的粒子产生速度(spawn rate),但我们可以改为变量方式、周期方式或bursts方式,正如之前烟雾特效所做的类似。

        1. 调整Rate属性,让VFX Graph版本的特效和之前用粒子系统做的天气特效的Rate一致。

                这里的spawn rate可以设置到一个很大的值,同时对FPS影响较小。

Initialize Particle Context

        初始化粒子上下文控制粒子最初在哪里出现,以及如何出现。这个上下文包含了许多粒子系统主模块中的相同的属性,包括粒子的初始大小,形状,速度,生命周期和最大数量等。它也包含了粒子系统中Shape的等价属性,定义了粒子产生的容器的形状。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        2. 配置初始化粒子上下文,让VFX Graph版本的效果和原来粒子系统所做的天气效果看起来差不多。

Update Particle Context

        更新粒子上下文控制着粒子从产生到消失期间粒子的变化。这个更新操作每一帧都会运行。包含了和粒子系统里类似的属性:Color over Lifetime, Size over Lifetime,Noise(VFX Graph里叫做Trubulence)以及Texture Sheet Animation(VFX Graph里叫做Flipbook Player)。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        每种行为能够在上下文中作为一个新的Block被添加进来。比如上图的Turbulence就是一个Block。

        3. 尝试通过在Context中点击右键并选择Create Block来使用创建新的Block。我们可以通过子菜单里的搜索框来搜索要添加的Block。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

Output Particle Context

        输出粒子上下文控制每个粒子的外观,和粒子系统里的Renderer模块功能类似。在这里我们可以为粒子指定材质。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        4. 配置输出粒子上下文,让VFX Graph版本的效果和原来粒子系统所做的天气效果看起来差不多。

创建一个全新的VFX Graph

        1. 在Project窗口(注意不是Heirarchy)中,点击右键,选择Create -> Visual Effects -> Visual Effect Graph,然后将这个新建的VFX Graph放到Heirarchy中。然后再场景中将其移动到你想要放置的位置。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        2. 在Project窗口中双击VFX Graph打开VFX Graph编辑器窗口。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        3. 尝试修改一些Block,看看能不能达到你想要的效果,比如爆炸的礼花效果。

查看一个复杂的VFX Graph

        接下来我们来看一个专业级的VFX Graph例子,来感受一下复杂的VFX Graph长什么样。

        1. 在主菜单中,选择Window -> Package Manager,然后选择Visual Effect Graph。在右边的面板中,展开Samples,然后选择Import导入VisualEffectGraph Additions。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        2. 样例会自动导入到我们在Project窗口中打开的目录中。找到Bonfire(可以直接在Project window的搜索框中搜索),将其拖入到Hierarchy中。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

         3. 在Project窗口中,双击Bonfire打开VFX Graph编辑器,来看看graph。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        和粒子系统的子系统的概念类似,bonfire也是由几个子图构成:Smoke,Flames 和Sparks。每个子图通过一个节点分组(node group)连接到了一起,中间还增加了随机的风向。

        我们还注意到,这些VFX Graphs使用了Operators,Operators是连接到main context的更小的节点。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        Operators允许我们使用数学计算和逻辑表达式来自定义行为,对于更加复杂效果的模拟来说至关重要。 

        VFX Graph能够很轻易地和快速地变得复杂。随着复杂度的增加,效果也会变得更加复杂丰富。

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

挑战:用VFX Graph制作出前面用粒子系统制作出的火堆和烟雾效果

vfx graph,Unity笔记,unity,VFXGraph,VFX,粒子

        关于VFX Graph更详细的说明,可以参考官方文档:

 Visual Effect Graph | Visual Effect Graph | 6.9.2-preview文章来源地址https://www.toymoban.com/news/detail-691921.html

到了这里,关于Unity VFX -- (5)VFX Graph基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity - Shader Graph 中的 Flipbook 节点算法BUG - Unity_Flipbook_float

    Unity : 2020.3.37f1 比如,我有 flipx : 10, flipy : 4, flipidx : 10 (其实是编号,不是索引) 应该是采样到是 10 的位置 到时结果采样到的是:20 的位置 Bug Flipbook

    2024年02月14日
    浏览(34)
  • Unity Shader Graph Ase三者分别有什么不一样的地方?

    着色器 (Shader) 应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务的时使用的指令,用于计算机图形的颜色或明暗。但近来,它也能用于处理一些特殊的效果,或者视频后处理。通俗的说,着色器告诉电脑如何用特有的一种方法去描绘物体。作为渲染器的一部

    2024年02月12日
    浏览(44)
  • 【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例

    前言 Unity2018版本之后推出了一款名为 Shader Graph 的可编程渲染管线工具。 这个工具可以通过可视化界面拖拽来实现着色器的创建和编辑,大大简化了着色器的制作过程,同时着色效果编译显示也快。 下面就来介绍一下Shader Graph的基本信息及使用方法,上手非常简单,一起来

    2024年02月08日
    浏览(39)
  • 【unity实战】使用shader和shader Graph实现2d图片描边效果(附源码)

    最近在学习shader Graph相关内容,其实关于实现2d图片描边效果,网上可以看到很多教程,但是我发现大多数都是基于比较老旧的2018unity版本,可是我们实际开发使用可能是比较新的2021及以上版本,差别还是有的,实际在升级或者使用过程中,会遇到诸多问题,而且也很少有人

    2024年02月16日
    浏览(56)
  • 【Unity Shader Graph URP渲染管线下的自定义半透明效果_半透明案例分享】

    URP的渲染管线下 在项目设置里找到“Graphic” 找到URP Asset文件 索引到Renderer List文件——“ForwardRenderer” 在这个“ForwardRenderer”文件里找到“Add Renderer Feature” 添加一个渲染对象,类似下图:Render Object (Experimental) 如图设置,将“Event”设置成 AfterRenderingSkybox ,然后“Layer M

    2024年02月09日
    浏览(59)
  • 【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)

    最近在学习shader Graph相关内容,其实关于实现2d图片描边效果,网上可以看到很多教程,但是我发现大多数都是基于比较老旧的2018unity版本,可是我们实际开发使用可能是比较新的2021及以上版本,差别还是有的,实际在升级或者使用过程中,会遇到诸多问题,而且也很少有人

    2024年01月21日
    浏览(66)
  • 图匹配(Graph Matching)入门学习笔记——以《Factorized Graph Matching》为例(一)

    这篇文章本身是图匹配经典论文《Factorized Graph Matching》的阅读笔记,后来发现该文介绍并串联了许多图匹配相关的知识,甚至可以看作一个小小的综述性文章,因此就作为图匹配的学习笔记了。因为笔者本人才疏学浅,对于图匹配也是刚刚开始接触,所以文章内容难免存在纰

    2024年01月20日
    浏览(43)
  • 论文笔记 Graph Attention Networks

    2018 ICLR 无法完成inductive任务 inductive任务是指: 训练阶段与测试阶段需要处理的graph不同。 通常是训练阶段只是在子图上进行,测试阶段需要处理未知的顶点。 GGN 的参数依赖于邻接矩阵A/拉普拉斯矩阵L,所以换了一张图,就会有不同的A和L 处理有向图的瓶颈,不容易实现分

    2024年02月12日
    浏览(39)
  • Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

    一、属性介绍 1、主面板Particle System (1)Duration:粒子发射周期 图中,5.00即在发射5秒后进入下一个粒子发射周期。若没有勾选Looping,则5秒后粒子会停止发射。 (2)Looping:粒子按照周期循环发射 让粒子发射时间循环起来,一直发射粒子。 (3)Prewarm:预热系统 开始播放粒

    2024年02月04日
    浏览(53)
  • 论文笔记:Multiplex Heterogeneous Graph Convolutional Network

    导致很难捕获到跨不同关系的异构结构信号 什么是多类型节点之间多重网络的关系异质性? 首先要知道什么是多重网络(multiplex network),在一个网络中,用户可能会对一个商品有多种交互,比如点击、购买、评论,这些交互都形成了用户节点与商品节点交互的边,但这些边的

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包