上一篇我们主要讲解了Shape形状模块,以及Emission发射模块,这是粒子系统中最为重要的两个模块,学会了它们我们足以做出惊艳的效果,比如霰弹枪的发射,蘑菇蛋的冲击波等等。本篇讲的内容依旧重要,它可以让做出的效果更加绚丽,也就是与材质光照渲染相关的Renderer模块、再附加一个Custom Data自定义数据模块。
- 前言
- 本系列提要
- 一、Renderer模块
- 1.渲染模式讲解
- 2.属性讲解
- 二、Custom Data模块
- 三、总结和参考资料
- 1.总结
- 2.参考资料
Unity粒子系统专题博客共分成十二篇来讲解: 【本篇为第四篇】
- 第一篇(点击直达):粒子系统概述
- 第二篇(点击直达):主模块
- 第三篇(点击直达):Emission、Shape模块
- 第四篇(点击直达):Renderer、Custom Data模块
- 第五篇(点击直达):Noise模块
- 第六篇(点击直达):生命周期相关模块
- 第七篇(点击直达):Collision、Triggers模块
- 第八篇(点击直达):Inherit Velocity、Sub Emitters模块
- 第九篇(点击直达):Texture Sheet Animation模块
- 第十篇(点击直达):Light、Trails模块
- 第十一篇(点击直达):粒子系统力场(Force Field)组件和External Forces模块
- 第十二篇(点击直达):案例与应用
前排提醒:本文仅代表个人观点,以供交流学习,若有不同意见请评论留言,笔者一定好好学习,天天向上。
Unity版本[2019.4.10f1] 梦小天幼 & 禁止转载
视频讲解: 【详解Unity】粒子系统(四) | Particle System | Renderer模块讲解 | 哔哩哔哩
一、Renderer模块该模块决定了粒子的图像或网格如何被其他粒子变换、着色和过度绘制。(说人话:如何变得更好看),Unity会默认启用该模块。
1.渲染模式讲解该模块的第一个属性Render Mode,共有六个选项分别是:(Unity通过该选项来控制粒子如何被图像或网格渲染)
- Billboard 公告牌
- Strectched Billboard 拉伸公告牌
- Horizontal Billboard 水平公告牌
- Vertical Billboard 垂直公告牌
- Mesh 网格
- None 虚无
前四个的粒子都是2D形式,也就是图片,而选择第五个Mesh,则会让你通过选择网格来确定粒子的3D形式。None选项无视即可。如下图(第一张为2D粒子,第二张为3D粒子形式)
下面我们来详细说明一下,前四种的区别: Billboard:粒子朝向渲染对齐方向(默认朝向摄像机),也就是无论如何移动,粒子都是面向玩家摄像机的。
Stretched Billboard:保证朝向的情况下(粒子依旧面对相机),对粒子进行特殊拉伸,但可以调节更多的参数。该选项更多用于营造速度感。比如下雨之类的。
通过摄像机移动拉伸粒子 通过粒子速度来决定粒子拉伸程度 通过速度方向比例拉伸粒子,一般调节这个和上一个参数(这里解释随便看看,没啥意义,自己动手调就明白啥意思了)
Horizontal Billboard:水平设置粒子。如魔法阵,水平于地面
Vertical Billboard:垂直设置粒子。如。。。。不知道举啥例子。。
2.属性讲解 参数描述Normal Direction法线方向,指定如何计算图片的照明,值1按照扁平四边形计算照明,值0按照球形进行照片。Material选择图片或Mesh的材质Trail Material拖尾材质,比如流星的尾焰,启用Trail模块该属性生效 Sort Mode排序模式,Unity使用粒子系统绘制和叠加粒子的顺序By Distance按照粒子距活动摄像机的距离Oldest in Front生命周期最长的先被渲染Youngest in Front生命周期最短的先被渲染 参数描述Sorting Fudge粒子系统与粒子系统之间的渲染次序。值越小,优先级越高。Min Particle Size单个粒子的最小粒度,占据视口多少,Mesh渲染模式不可用Max Particle Size单个粒子的最大粒度,占据视口多少,Mesh渲染模式不可用***Render Alignment渲染对齐方向Render Alignment - View面向摄像机Render Alignment - World与世界轴对齐Render Alignment - Local与挂载游戏对象的transform组件对齐Render Alignment - Facing面向由活动摄像机的游戏对象的tansform组件定义的直接位置Render Alignment - Velocity与其速度矢量方向相同***Flip使一些粒子水平/垂直翻转,值越大,翻转次数越多Allow Roll控制面向摄像机的粒子是否可以围绕摄像机的Z轴旋转Pivot修改旋转粒子的中心轴心点,此值是粒子大小的乘数Visualize Pivot在“Scene窗口”中预览每个粒子枢轴点***Masking设置粒子与Sprite遮罩交互时的行为方式Masking - No Masking默认选项,粒子系统不与场景中任何Sprite遮罩交互Masking - Visible Inside Masking粒子在Sprite遮罩内部可见Masking - Visible Outside Masking粒子在Sprite遮罩外部可见***Apply Active Color Space应用活动色彩空间,在线性色彩空间中渲染时,系统会在将粒子颜色上传到 GPU 之前,先从伽马空间转换粒子颜色。Custom Vertex Streams自定义顶点流,涉及到东西太多,详情参阅:https://docs.unity3d.com/2022.2/Documentation/Manual/PartSysVertexStreams.html***Cast Shadows是否启用阴影Off禁用此粒子系统的阴影On启用Two Sided双面投射阴影,允许从粒子任意一侧投射阴影Shadows Only仅阴影可见,粒子不可见***Receive Shadows规定阴影是否可以投射到粒子上,只有不透明材质才可以接受阴影Shadow Bias阴影偏移***Motion Vectors设定是否使用运动矢量跟踪此粒子系统的变换组件从一帧到下一帧的每像素屏幕空间运动Camera Motion Only仅使用相机移动来跟踪运动Per Object Motion使用特定过程跟踪此渲染器的运动Force No Motion不跟踪***Sorting Layer ID此渲染器排序图层的名称Order In Layer此渲染器在排序图层中的顺序Light Probes光照探针,基于探头的照明插值模式,光照探针属于光照系统,详情参阅:https://docs.unity3d.com/2022.2/Documentation/Manual/LightProbes.htmlReflection Probes反射探针,详情参阅:https://docs.unity3d.com/2022.2/Documentation/Manual/ReflectionProbes.html该模块涉及到的知识点太多了,读者挑几个能看懂的记住即可。记得实践结合,由于篇幅限制,很多属性没有放上例图来讲解。若有疑问可在评论区提出,一起交流学习。
二、Custom Data模块Custom Data 模块允许您在 Editor 中定义要附加到粒子的自定义数据格式。
自定义数据可以有两种形式,Vector和Color
该模块和Renderer模块的Custom Vertex Streams作用差不多
有关如何发送自定义数据到着色器,请参阅:https://docs.unity3d.com/cn/2022.2/Manual/PartSysVertexStreams.html
三、总结和参考资料 1.总结无总结
2.参考资料[1].Unity官方.官方手册-粒子系统模块-Renderer模块 [2].Unity官方.官方手册-粒子系统模块-Custom Data模块 [3].bYsdTd.Billboards 技术在Unity 中的几种使用方法 [4].BeaverJoe.粒子系统实际案例中的碰撞与交互(Bilibili) [5].iwiniwin.Unity遮罩之Mask、RectMask2D与Sprite Mask适用场景分析
