引擎粒子系统说文明档.docxVIP

  • 9
  • 0
  • 约2.24万字
  • 约 21页
  • 2017-03-04 发布于四川
  • 举报
引擎粒子系统说文明档

粒子系统说明文档v2(增加文档结构图)粒子系统粒子系统是引擎中的一个子系统,也是一个比较核心的基本系统,它用来生成批量或大规模的粒子元素,并自动控制粒子的各个属性、运动轨迹和生命期。粒子系统也是一个动画系统,可以自动控制粒子的运动轨迹和生命期,这些控制属性可以作为脚本文件供开发者设置,而不需要修改程序。常用的适用场景包括泡泡、烟雾、烟花、花瓣、落叶、雪花等具有大量的粒子元素特征的场景。也可以单纯作为动画系统来控制场景中的单个元素,即粒子数量为1。粒子系统脚本文件粒子系统脚本文件就是定义了粒子系统并设置粒子系统各属性和配置的脚本文件。粒子系统脚本文件被粒子系统解析器加载并解析。通过此文件的配置可以定义并生成灵活多样的粒子场景,方便开发者根据需要快速定义粒子场景。粒子系统解析器粒子系统解析器用于解析粒子系统脚本文件,加载正确有效的粒子系统。开发者不需要关心解析器细节,只要写好脚本文件即可。粒子系统定义在粒子系统脚本文件中按以下格式便可定义一个粒子系统:particle_systemname{......}其中,particle_system和name之间为单个或多个空格或tab符号,particle_system为关键字,解析器仅以此关键字识别粒子系统。name为具体的粒子系统名称,当有多个粒子系统时,此名称必须唯一,若存在同名的粒子系统,则后续定义的同名粒子系统无效。花括号{}里面包括了粒子系统的属性及其两种核心组件(发射器和修改器)的定义。以下是一个完整粒子系统的简单示例。particle_system Easy3d/Example{material 1particle_width1particle_height1quota16stacks4slices3emitter Point b0{nameb0angle360emission_rate120position-40 0 40time_to_live5direction1 1 1tex_coord_index10}affector LinearForce{force_vector0 0 -100force_applicationadd}}其中,emitter是发射器,用来发射粒子。affector是修改器,用来在粒子生命期内动态修改粒子的属性,以改变粒子的位置、方向、大小等,从而形成一定的轨迹和动画效果。一个粒子系统中可以有多个发射器和修改器,这两个内容将在后续单独列出来介绍。定义多个粒子系统粒子系统脚本文件中可以按以下格式定义多个粒子系统:particle_system ParticleSystem1{……}particle_system ParticleSystem2{……}......小助手:多个粒子系统中,后续的同名粒子系统无效。粒子系统属性粒子系统包括很多参数,每一个参数都表示一种属性,以下对常用属性进行说明。粒子的纹理资源material : 粒子系统中用于渲染所有粒子的纹理资源(The index of the material to be used to render all particles in this system)。该属性值是整数,表示纹理图片在壁纸所有纹理图片数组中的索引,该值取决于壁纸资源配置(wallpaper.conf)中的wallpaper_other_non_background_images设置(该值罗列了壁纸工程中除了背景图片以外的所有纹理图片资源,按罗列顺序,对应的索引值从1开始,0对应背景图片)。小助手:粒子系统可以设置多张纹理图片以差异化粒子的视觉效果,比如,不同发射器发射出来的粒子不一样,或者粒子纹理在多张纹理图片中随机选择。在这些情况下,可以把多张纹理图片组合成一张图片,但必须保证每个纹理图片在整个图片中占用的长度和宽度相同,即是将一张大的透明图片均匀分割成多行多列,每个位置放一个纹理图片。此时,需要设置stacks和slices属性分别指定material纹理资源的行数和列数。stacks :纹理资源中的行(The stack of texture tiles)。该属性值是整数,表示纹理图片中切割的行数。slices : 纹理资源中的列(The slice of texture tiles)。该属性值是整数,表示纹理图片中切割的列数。is_emitting: 设置粒子系统加载场景时是否发射粒子,该属性是bool值,true为发射,false为不发射粒子的尺寸particle_width: 由粒子系统全局控制的粒子的绝对宽度(The width of particles in world units)。该属性值是浮点数,表示粒子的初始绝对宽度(强调初始,是因为有相应的修改器可以动态改变粒子的尺寸)。particle_he

文档评论(0)

1亿VIP精品文档

相关文档