|
原文指路:
Unity目前提供两种创建粒子系统的工具:内置粒子系统和VFX Graph。在2021 LTS或更新版本中,两个系统都与内置渲染管线,URP和HDRP兼容。
Built-in Particle System
内置粒子系统为您提供了对系统和其包含的粒子的完全读/写访问权限,这些粒子可以通过C#脚本访问。您可以使用Particle System API来为您的粒子系统创建自定义行为
Particle System component可以在Inspector中修改,其具有功能强大的一系列属性,并且被组织成了modules以便于使用
在这些模块中,您可以定义粒子的发射速率和持续时间、发射器的形状以及粒子在其生命周期内的外观、运动和行为(appearance, movement, and behavior)。
除此之外,内置粒子系统包含了Renderer module,您可以访问该模块的设置来确定如何对粒子的面片或网格(quad or mesh)进行变换、着色或被其他粒子覆盖(transformed, shaded, or overdrawn by other particles )。您甚至可以渲染粒子的轨迹。
Lights module是一个快速为粒子效果添加实时光照的方法。它可以用来使系统向周围环境投射光照,例如火、烟花或闪电。在这里,您可以让灯光从它们附加的粒子上继承各种属性(you can have the lights inherit a variety of properties from the particles they are attached to)
为了将每个粒子的信息传递给自定义shader或C#脚本,需要启用顶点数据流(vertex data streams)。还有一些关键功能,包括Force Field component(用于在粒子系统中对粒子施加力),C# Job System(用于编写性能良好的C#行为)。
内置粒子系统的优点包括多平台的支持,对内置渲染管线的支持,与Unity物理系统的集成,粒子光支持(particle light),通过C#脚本访问单个粒子数据的功能以及对许多具有内置粒子的Prefab的项目的强大的可扩展性(robust scalability for projects that have many Prefabs with built-in particles .)。
VFX Graph
VFX Graph 可以使用基于节点的可视逻辑(node-based visual logic)创作效果,您可以用它来创建简单的效果以及复杂的模拟。Unity将VFX Graphs存储在Visual Effect Assets中,您可以在Visual Effect Component上使用它。实际上,您可以在场景中多次使用Visual Effect Asset。
VFX Graph在GPU上模拟粒子行为,因而允许它模拟比内置粒子系统数量更多的粒子。但是,由于VFX Graph在GPU上模拟,因此它仅在可计算的平台(compute-capable platforms)上工作。
VFX Graph有下列优点:
- 更多和粒子和更快的模拟
- 可定制行为customizable behaviors
- 可扩展性(用于创建子图、模板等)(extensibility (to create subgraphs, templates, etc .))
- 可以访问摄像机缓冲区(HDRP)(camera buffer access (for HDRP))
- 原生Shader Graph集成
你可以将任意用Shader Graph创建的自定义shader应用到目标的VFX Graph中。这些shader可以使用新的光照模型,例如HDRP头发或布料,或者它们可以在顶点级别(vertex level)修改粒子,以实现诸如拍动翅膀的鸟类、像肥皂泡沫般摇摆的粒子等效果
VFX Graph components
VFX Graph与Shader Graph有许多相似之处,,面是对VFX Graph基本组件的简要解释:contexts, blocks, nodes, and properties .
Contexts代表粒子生成过程中的操作顺序
- Spawn:控制粒子生成
- Initialize:控制粒子的初始值
- Update:控制粒子行为随时间的变化
- Output:控制最后的粒子如何被渲染到屏幕上
Blocks是添加到各个context的操作(类似于C#中调用的函数)。可以通过在Context上按空格键或右键单击并选择Create Block来添加Block
Nodes可以将一些单独的操作连接起来来完成一个复杂的计算,类似Shader Garph中的Node。它可以用来替代驱动Block属性的变量
Properties表示可以被添加到Blackboard(就是左边这个框)中且可以在graph中使用的数据。当属性被设置为exposed,它就可以通过VFX Graph editor之外的Inspector或C#脚本修改
要获取更多信息,查看https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@12.1/manual/GettingStarted.html
后处理Post-processing
Unity提供了各种后处理效果,可以在很短的时间内大大改善应用程序的外观。您可以使用这些效果来模拟物理摄像机和电影属性,或创建风格化的视觉效果。
流行的效果包括景深(Depth of Field)、暗角(Vignette)、色调映射(包括自定义LUT)(Tonemapping (including custom LUTs))、阴影/中间色/高光(Shadows/Midtones/Highlights)、分离色调(Split Toning)、色差(Chromatic aberration - Wikipedia)以及对比度和饱和度(contrast and saturation)等典型颜色调整。
要了解更多后处理特效以及其他HDRP功能,查看Lighting & rendering tutorial for HDRP | Unite Now 2020 - YouTube
后处理的渲染管线解决方案
内置渲染管线默认不包括后处理解决方案,要在内置渲染管线中使用后处理效果,需要下载Post-Processing package
同时,URP和HDRP都有自己的后处理解决方案,不需要额外的包。SRP的实现中用了Volume组件,你也可以像添加其他Volume Override一样将后处理效果添加到相机上。
更多资料
电子书:The definitive guide to creating advanced visual effects in Unity
Steam 上的 Spaceship - Visual Effect Graph Demo (steampowered.com)
Making of The Heretic: The VFX-driven character Morgan | Unity Blog
(12) Getting started with the Particle System | Unite Now 2020 - YouTube
(12) Intro to the Post-Processing Stack | Unite Now 2020 - YouTube |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|