# 粒子系统管理

# 功能说明

在真实世界中,存在一些动态的显示效果,如烟花、降雨、降雪、喷泉等。粒子系统管理功能为用户提供添加这些显示特效的方式,同时用户可自定义动态显示效果。

MapGIS系统中,将所有的动态显示特效模拟为若干个粒子的规律运动。如烟花可认为是若干个烟火粒子由中心点向四周扩散的过程;降雨可认为是若干个雨滴粒子由平面向下运动的过程。

从粒子运动轨迹上来分析,可将粒子特效划分为两个过程:产生和运动过程。产生即粒子的发射过程,由发射器控制,如粒子个数,初始运动角度等。运动过程会受环境的影响,由影响器来控制,如运动过程中受力大小及方向(类似现实世界中风),运动过程中颜色变化等。

# 操作说明

1. 预览场景视图,启动"三维编辑面板" -> "三维显示"->"粒子系统"功能,弹出如下所示功能面板:

1. 添加粒子模型。点击可选择粒子特效类型,在场景视图中交互选择粒子模型位置,即可成功添加。系统提供烟花、烟雾、降雨、喷泉和降雪五种类型,同时用户可自定义类型。MapGIS中,为简化用户操作步骤,烟花、烟雾、降雨、喷泉和降雪五种类型只放开了常用的参数,用户可便捷查看粒子特效。当用户对显示特效要求较为详细时,可通过自定义方式生成;

2. 在管理列表中,可对粒子模型进行如下操作:

  • 【移除粒子】:点击工具条“移除粒子模型”功能,或在粒子节点右键菜单中选择该功能,可移除粒子模型;
  • 【重命名】:可对新建的粒子重命名;
  • 【添加效果】:当用户选择自定义粒子时,可在粒子节点右键菜单中选择“添加效果”功能。

提示:

一个粒子特效可包含一个或多个显示效果。如烟花绽放时,可同时有若干个烟花在空中绽放;如降雨时,雨点在空中落下,在地面上会生成水纹。

下面以烟花特效为例,对默认粒子特效的参数进行说明,对于自定义的粒子特效,可在参数说明中查看详细信息。

一、烟花

烟花可看做是若干个小粒子向四周扩散的结果。参数及显示效果如下所示:

  • 【位置】:设置烟花中心点的的X/Y/Z点坐标,默认取用户在场景中交互选择的点坐标,也可手动修改;
  • 【缩放比】:设置烟花的缩放比。如当数据显示范围较大时,可适当增加缩放比,保证烟花在数据显示范围内的大小显示效果合适;
  • 【发射器高度(相对于粒子系统)】:设置烟花中心点相对位置z值高度,是对z高度的微调;
  • 【发射密度(每秒发射粒子数)】:此处可设置烟花中粒子的个数,个数越多,烟花显示效果越密;
  • 【最大偏移角】:烟花中粒子向四周扩散的最大角度,由于烟花是四周扩散,最大偏移角为180度,不可修改。

提示:

烟雾、降雨、喷泉和降雪四种特效与烟花特效的设置参数设置基本一致。

二、自定义粒子

用户在实际应用中,会涉及的动态特效远不止系统提供五种,因此提供了自定义粒子,用户可基于提供的5种粒子,实现所需的动态显示特效。如树叶飘落,可利用降雪效果,将粒子图片改为树叶图片,再微调其他参数即可。粒子特效中涉及所有参数设置如下:

(1)常规参数

常规参数主要是指粒子位置、大小、格式、发射类型等通用的参数信息。

  • 【位置】:设置粒子效果中心点的的X/Y/Z点坐标,默认取用户在场景中交互选择的点坐标,也可手动修改;
  • 【缩放比】:设置粒子效果的缩放比。如当数据显示范围较大时,可适当增加缩放比,保证粒子特效在数据显示范围内的大小显示效果合适;
  • 【允许包含的最大粒子数】:在动态显示粒子特效时,允许场景中出现粒子最大个数,当超出这个值时,早期生成的粒子会自动消失。如烟花特效,此处是代表场景视图中允许的火花最大个数,当超出设置值时,早期生成的烟花会先消失;
  • 【发射器类型】:设置粒子特效扩散类型,系统提供点和盒子两种类型:
  • 点类型:粒子特效是由一点向四周扩散,如烟花、烟雾、喷泉;
  • 盒子类型:粒子特效是由一个面向某一个方向扩散,如降雨、降雪。
  • 【粒子高宽/宽度】:粒子特效中每一个粒子的高宽,单位与场景中单位保持一致。如降雨特效中的雨滴大小;
  • 【纹理图片】:粒子特效中每一个粒子的图片,可通过关联其他效果图片。如降雪特效中雪花的效果图片;
  • 【旋转角度】:纹理图片显示时的旋转角度;
  • 【叠加模式】:粒子最终显示效果时纹理图片与场景叠加显示效果,此处可设置两者叠加显示关系;
  • 【公告板类型】:目前MapGIS里面的粒子,渲染都是采用的公告板类型渲染方式,即每一颗粒子相当于一块发射出去的公告板,公告板即纹理图片。公告板会按照某一个点或者一个方向旋转,使得尽可能的正对相机(即用户通过屏幕看到的效果),看上去有3D效果。一般情况下,采用标准点方向。
  • 标准点:公告板总是完全面对摄像机,无论怎样改变视角始终会看到公告板全部样子;
  • 公共方向:所有的粒子(公告板)按照一个固定的用户设定的轴旋转显示,只有摄像机正对这个显示轴时,才可以看到公告板全部样子,在其他角度只能看到部分效果。如x=0,y=0,z=1时,轴方向与z抽重合,此时用户在平视状态下可查看纹理图片全部效果,但俯视时看到的图片是倾斜的;
  • 自身方向:所有的粒子(公告板)按照自身的前进方向也就是粒子发射时方向作为一个固定轴旋转。如降雪特效,雪花向下运动,与公共方向时x=0,y=0,z=1效果一致;
  • 垂直方向时:所有的粒子(公告板)垂直于一个固定的方向或者自身前进方向,此时粒子不会旋转,需要使用双面材质才能在背后看见。

(2)发射器参数

  • 【发射器位置】:设置粒子发射位置相对常规参数中xyz的位置。粒子特效的最终位置是由xyz位置值与发射器位置共同决定的。

提示:

放烟花时,鞭炮放置在地上,空中有若干个烟花绽放,可用一个烟花特效包含若干个效果来实现。系统参数中的xyz位置参数即控制鞭炮的位置,不同烟花效果的发射器位置有所差异,即可实现空中若干个烟花同时绽放。

  • 【发射器方向】:设置粒子初始运动方向。如降雨和降雪,粒子是向下运动,发射器方向为x=0,y=0,z=-1;如喷泉特效,粒子初始向上运动,发射器方向为x=0,y=0,z=1;
  • 【发射器高度/宽度】:采用盒子类型发射器时,可设置盒子发射器的高宽。如降雨特效,宽度越大,降雨的范围越广;
  • 【每秒发射粒子数】:每一秒发射粒子个数。如降雪特效,个数越多,即雪花越密,雪越大;
  • 【最大偏移角度】:粒子在发射过程中,最大偏移角度。如烟花特效,粒子是向四周发射扩散的,最大偏移角度为180;
  • 【起始/终止色】:粒子发射时的颜色,会根据起始/终止色,随机选取粒子的发射颜色;
  • 【发射时速度】:粒子发射时速度,系统会根据速度范围随机选取粒子的发射速度;
  • 【生存时间】:粒子生存的时间。如烟花特效,烟火绽放过程中会慢慢消逝,可通过生存时间来控制消逝的时间;
  • 【活动时间】:发射器处于活动状态的时间。如降雨,可能执行1个小时后会停止,这个参数可通过活动时间控制。当值为0时,表示粒子活动永不停止;
  • 【发射器延迟时间】:发射器每次发射粒子的时间间隔。如烟花特效,烟花是间隔几秒绽放一次。

(3)影响器参数

  • 【线性作用力】:粒子在运动过程中,可以给它一个指定方向的作用力。如喷泉特效,水柱是向上发射后向下回落的,发射器的方向是向上,但若想水柱向下回落,需要给它一个向下的线性作用力。即xy值为0,z值为负。负表示向下,值越大,喷泉受到向下的作用力越大,越早向下回落;

  • 【随机作用力】:粒子在运动过程中,可以给它一个随机方向的作用力,“大小”表示随机作用力的大小,“比例”表示受随机作用力粒子的个数百分比。如雪花特效,雪花向下飘落,由于受风向影响,雪花向下飘落的方向是随机的。可以给他一个随机的作用力,让雪花在向下飘落的过程,方向会受随机作用力的影响而略有差异;

  • 【是否保持粒子速度】:采用“随机作用力”方式时,勾选此功能,粒子在运动过程中速度保持一致;否则由于受到随机作用力的影响,不同方向的粒子速度有所差异;

  • 【单次颜色渐变】:粒子在运动过程中,可采用渐变色显示。A1代表RGB值的增量,R1、G1、B1分别代表RGB值。如默认A1=50,R1=0,G1=0,B1=0,表示初始颜色为黑色(RGB均为0),每一秒RGB值增量50,5秒后,颜色为接近白色(RGB值为250);

  • 【二次颜色渐变】:二次渐变与单次颜色渐变原理相同。是在单次颜色渐变的基础上,再增加一个颜色渐变,在粒子的生存时间内,指定还剩一段时间时,激活第二个颜色改变状态;

  • 【插值颜色】:指定在某段时间内粒子的颜色值,最多支持六个。时间超过粒子的生存时间则无效;

  • 【启动缩放】:勾选此功能,粒子在运动过程中会按照指定比例放大。如烟雾特效,烟在运动的过程中扩散,会慢慢变大,可通过此参数控制;

  • 【启动旋转】:勾选此功能,粒子在运动过程中会随机旋转。

  • 【反射效果】:粒子在运动的过程中,可设置一个反射面和作用力,使粒子运动产生反弹的效果。“反射点位置”决定反射平面的位置;“反射平面法向量”决定了反射平面的方向,如X=0,Y=0,Z=1,表示反射平面正向上;“弹力”决定了粒子沿反射平面方向受到的作用力大小。如喷泉特效,水柱向上运动后,由于受到向下的影响力,会向下回落,但落到地面后会向上溅起一点水珠,可将地面设置为反射平面,反射平面法向量向上,给予一定作用力即可实现。