Unity VFX -- (3)创建环境粒子系统

news2025/1/16 6:00:36

        粒子系统中最常用也最重要的一种使用场景是实现天气效果。只需要做很少修改,场景就能很快从蓝天白云变成雪花飘舞。

         和之前看到的粒子系统从一个源头发出粒子的情况不同,天气效果完全围绕着场景。

新增和放置一个新的粒子系统

        为了创建下雨或下雪的天气效果,首先我们要创建一个新的粒子系统物体,并将其放到天空中,让其粒子从天空朝向地面发出。

        1. 在项目窗口中,进入Assets > CreativeCore_VFX > Scenes,打开TutorialScene_VFX_Outdoor场景。

        2. 在Hierarchy窗口中,点击右键,选择Effects -> Particls System

        默认情况下,这会创建一个向天空发射粒子的粒子系统。 

        3.  在Hierarchy中,右键点击新建的粒子系统,选择Rename,将其重命名为FX_Snow或FX_Rain。

        FX是Effects的简称。我们还可能会看到SFX,表示Special Effects。

        4. 我们要让例子系统从天空朝向地面。在粒子系统游戏物体的Transform组件中,设置它的Position到X=0,Y=10,Z=0,并且将Rotation设置为X=90,Y=0,Z=0。

         5. 点击运行按钮,预览一下效果。目前这个效果看起来有那么一点点像一个天气效果了,但还需要做些细微调整。

配置主模块属性

        一个粒子系统由一些列不同的模块所控制,每一个模块控制粒子系统不同方面的效果。在Inspector中,第一个模块是主模块(main module)。这是我们第一个要编辑的模块,它包含了最重要的粒子属性比如大小、速度和生命周期。

        1. 主模块是Particle System组件的第一个模块,其名字和游戏物体的名字(本例是FX_Snow)是一样的,点击它将其展开。

        2. 为了修改粒子的大小,在主模块里调整Start Size属性,案例中设置为0.1用于小雪花。

             这里的名字里有Start,表示我们还有能力随着时间调整粒子的大小。下图是Start Size为1.0和0.1时的效果对比

        3. 我们可以使用Start Speed来修改粒子的速度。例子中我们将其从5降为了1,让其看起来好像是缓慢飘落,如果对于雨滴,则可以适当增加这个速度。

         但是现在我们会看到一个问题,“雪花”飘落的速度是减慢了,但是好像它们没办法落到地面了。

        如果我们增加Start Speed,比如修改为10,此时雪花还会以较快速度穿出地面

        4. 为了解决这个问题,我们需要调整粒子的生命周期(lifetime)属性。我们还是将粒子速度调低,然后将Start Lifetime从5秒调整到更大的值,让“雪花”看起来正好能飘落到地上(可能会稍微穿过地面一点)。

 

        点击运行按钮,看看效果,此时我们会发现一个严重的问题。场景运行后,我们要等较长的时间来看到雪花效果。这是因为粒子从高处产生,慢慢落下。

        5. 在主模块中,我们启用Prewarm属性。这个属性表示在场景启动的时候,粒子系统预先会走完一个完整的周期。勾选后再次看看效果。

        接下来,我们要去配置一下其它模块,让粒子以相同的方向向下运动。

配置Shape和Emiision模块

        首先我们来看在新建粒子系统的时候,默认就启用的Shape和Emission模块。

        这两个模块一起工作,用来控制有多少粒子被发射(Emission),以及产生粒子的容器的形状(Shape)。

        首先,我们将粒子的形状修改为平坦的、矩形的、类似于一片云的形状。

        1. 展开Shape模块,此时注意观察场景视图,我们会看到一个锥形的东西。我们将Shape属性从Cone改为Box。

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== 编辑

        现在锥形的东西已经变成了一个盒子,注意此时雪花掉落的大小和方向也有了变化。但现在这个盒子还是太小,我们要调整一下它的大小。

        注意:如果我们无法看到这个锥形或盒子的外观,需要启用场景视图的右上角的Gizmos。

        2. 增加这个盒子的大小,通过改变Shape的Scale属性,将其设置为X=10,Y=10,Z=1

         此时,“雪花”飘落的更加分散了,但看起来也更稀疏了。我们要增加粒子系统的发射速率。

        3. 展开Emission模块,增加Rate Over Time属性,从每秒10个例子增加到一个150-1000左右个例子,这个值根据我们要表现的效果来调整。

        此时我们可以看到,“雪花”变密集了,但是又出现了一个新问题。“雪花”的出现变成了一段一段的,看起来非常奇怪。

         这是因为屏幕上粒子的数量已经超出了粒子系统限制的粒子最大数量导致的。

        4. 在主模块中,将Max Particle属性从1000改到10000,这样就能解决上面的问题了。

        现在看起来似乎解决了问题,但Emission Rate和Max Particles的值很大。在实际项目中,这样做的性能消耗会让运行的机器足够喝一壶了。在实际项目中,VFX艺术家的一个非常大的工作是要确保在视觉效果足够好的情况下,还能做到性能最优。目前我们所使用的这种解决方案显然会降低应用的性能(关于VFX性能优化的东西不在本笔记讨论范围内)。

        目前,“雪花”看起来比较好了,但观察单片雪花的形状是一个圆形,并不像雪花的形状。

        下面我们使用Renderer模块来解决这个问题。

配置Renderer模块

        最后一个要修改的模块(也是默认启用的模块)是Renderer。这个模块控制了粒子如何被绘制,包括它的纹理。

        当前我们的“雪花”所使用的是默认的ParticlsUnit材质。

        1. 展开Renderer模块,然后在Material属性处,点击圆形选择按钮,选择SnowMaterial(如果是雨滴效果选择RaindropMaterial)。

        修改后,看看效果。

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

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

相关文章

【从零开始学Skynet】基础篇(三):服务模块常用API

1、服务模块 Skynet提供了开启服务和发送消息的API,必须要先掌握它们。列出了Skynet中8个最重要的API,PingPong程序会用到它们。 Lua API说明newservice(name, ...) 启动一个名为 name 的新服务,并返回服务的地址。 start(func) …

【学习笔记】unity脚本学习(二)(Time时间体系、Random随机数、Mathf数学运算)

目录Time时间体系timeScalemaximumDeltaTimefixedDeltaTimecaptureDeltaTimedeltaTime整体展示Random随机数Mathf数学运算IMathf.Round()Mathf.Ceil() Mathf.CeilToInt()Mathf.SignMathf.ClampMathf数学运算II-曲线变换Lerp 线性插值LerpAngleSmoothDamp疑问:Smooth…

自己动手写编译器:DFA跳转表的压缩算法

在编译器开发体系中有两套框架,一个叫"lex && yacc", 另一个名气更大叫llvm,这两都是开发编译器的框架,我们只要设置好配置文件,那么他们就会生成相应的编译器代码,通常是c或者c代码,然后…

AI自动寻路AStar算法【图示讲解原理】

文章目录AI自动寻路AStar算法背景AStar算法原理AStar寻路步骤AStar具体寻路过程AStar代码实现运行结果AI自动寻路AStar算法 背景 AI自动寻路的算法可以分为以下几种: 1、A*算法:A*算法是一种启发式搜索算法,它利用启发函数(heu…

Jmeter接口测试和性能测试

目前最新版本发展到5.0版本,需要Java7以上版本环境,下载解压目录后,进入\apache-jmeter-5.0\bin\,双击ApacheJMeter.jar文件启动JMemter。 1、创建测试任务 添加线程组,右击测试计划,在快捷菜单单击添加-…

STM32F103RCT6驱动SG90舵机-完成正反转角度控制

一、SG90舵机介绍 SG90是一种微型舵机,也被称为伺服电机。它是一种小型、低成本的直流电机,通常用于模型和机器人控制等应用中。SG90舵机可以通过电子信号来控制其精确的位置和速度。它具有体积小、重量轻、响应快等特点,因此在各种小型机械…

亚马逊测评只能下单上好评?卖家倾向养号测评还有这些骚操作

亚马逊测评这对于绝大部分亚马逊卖家来说都不陌生,如今的亚马逊市场也很多卖家都在用测评科技来打造爆款。不过很多对于亚马逊测评的认知只停留在简单的刷销量,上好评。殊不知亚马逊养号测评还有其它强大的骚操作。 亚马逊自养号测评哪些功能呢&#xf…

PyTorch 深度学习实战 |用 TensorFlow 训练神经网络

为了更好地理解神经网络如何解决现实世界中的问题,同时也为了熟悉 TensorFlow 的 API,本篇我们将会做一个有关如何训练神经网络的练习,并以此为例,训练一个类似的神经网络。我们即将看到的神经网络,是一个预训练好的用…

【深度学习】【分布式训练】Collective通信操作及Pytorch示例

相关博客 【深度学习】【分布式训练】Collective通信操作及Pytorch示例 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试 【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介…

第02章_变量与运算符

第02章_变量与运算符 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 1. 关键字(keyword) 定义:被Java语言赋予了特殊含义,用做专门…

银河麒麟服务器ky10 sp3 x86 pgadmin使用

目录 打开网页并登录 连接数据库 备份数据库 还原数据库 打开网页并登录 打开浏览器,输入127.0.0.1:5050,输入用户名和密码登录, 我这边设置的用户名是123456qq.com,密码是 123456 连接数据库 右键选择register-Server 输…

Html5版飞机大战游戏中(Boss战)制作

内容在“60行代码,制作飞机大战游戏”的基础上,继续追加入了Boss战的功能。 boss的血量默认设置为100了,可以二次开发调整……(^_^) 玩起来有一定难度哈。 试玩地址:点击试玩 实现功能 添加玩家飞机,并进行控制Boss能…

vue+MapboxGL:从0 到1 搭建开发环境

本系列教程是在vue2.X的基础上加载mapbox 程序,来开发各种示例程序。 安装顺序 1,下载安装nodejs 下载地址:https://nodejs.org/en/download/ 根据用户自己的机器情况进行选择不同版本的软件下载。 本教程示例采用是是windows 64位系统软件。 安装过程很简单,一路下一步…

vue-router3.0处理页面滚动部分源码分析

在使用vue-router3.0时候,会发现不同的路由之间来回切换,会滚动到上次浏览的位置,今天就来看看这部分的vue-router中的源码实现。 无论是基于hash还是history的路由切换,都对滚动进行了处理,这里分析其中一种即可。 无…

TeeChart Pro ActiveX 2023.3.20 Crack

TeeChart Pro ActiveX 图表组件库提供数百种 2D 和 3D 图形样式、56 种数学和统计函数供您选择,以及无限数量的轴和 14 个工具箱组件。图表控件可以有效地用于创建多任务仪表板。 插件的多功能性 ActiveX 图表控件作为服务器端库中的 Web 图表、脚本化 ASP 图表或桌…

0201概述和结构-索引-MySQL

文章目录1 概述1.1 介绍1.2 优缺点2 索引结构2.1 BTree索引2.2 hash索引2.3 对比3 索引分类3.1 通用分类3.2 InnoDB存储引擎分类4 思考题后记1 概述 1.1 介绍 索引是帮忙MySQL 高效获取数据的数据结构(有序)。在数据之外,数据系统还维护着满…

【CF1764C】Doremy‘s City Construction(二分图,贪心)

【题目描述】 有nnn个点,每个点的点权为aia_iai​,你可以在任意两个点之间连边,最终连成的图需要满足:不存在任意的三个点,满足au≤av≤awa_u\le a_v\le a_wau​≤av​≤aw​(非降序)且边(u,v)(…

『pyqt5 从0基础开始项目实战』06. 获取选中多行table 重新初始化数据(保姆级图文)

目录导包和框架代码重新初始化绑定点击事件获取当前选中的所有行id实现初始化数据完整代码main.pythreads.py总结欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中 导包和框架代码 请查…

案例分享 | 金融业智能运维AIOps怎么做?看这一篇就够了

​构建双态IT系统,AIOps已经是必然的选择。运维数字化转型已是大势所趋,实体业务的逐步线上化对IT系统的稳定与安全提出更高要求,同时随着双态IT等复杂系统的建立,如何平衡IT运维效率与成本成为区域性银行面临的重要问题&#xff…

Windows编程基础

Windows编程基础 Unit1应用程序分类 控制台程序:Console Dos程序,本身没有窗口,通过windows Dos窗口执行 窗口程序 拥有自己的窗口,可以与用户交互 库程序 存放代码、数据的程序,执行文件可以从中取出代码执行和获取…