Particle Universe

http://eric.nothing.blog.163.com/blog/#m=0&t=1&c=fks_084066080082081066080084082095085086085065083094082069084

1.Particle Universe_界面介绍  

2010-11-08 17:10:30|  分类: Particle Univers |  标签:particle  universe  翻译  eric  特效   |字号 订阅

 
 

 

 

Editor-编辑

     启动编辑器之后,显示一个类似如下图所示的屏幕。默认情况下,在左边列表框中包含大量 precreated(预定义)的粒子系统脚本。

Menu-菜单

顶部的菜单栏包含几个图标编辑器功能的快速访问。从左到右这些函数是:

NEW(新建):创建一个新的'empty'(空)微粒系统。

Load(加载):加载粒子世界脚本(*pu或*pua)文件。该脚本文件可能包含多个粒子系统定义,都包含在列表中后加载的脚本文件。如果已在类表中的粒子系统,相同的名称是仍然加载的,但前面的名称的前缀是 ‘Copyof’。

Add resource location(增加资源地点):使它可能以挑选一个完全目录。为编辑所知的所有资源在这个目录里被加载。这不仅包括*.pu或*.pua文件,而且还包括 

1。材质文件(*material),有关纹理

2。捕捉(*.mesh)文件,描述3D对象。

3。纹理,实现图像文件。

由‘添加资源位置’功能添加的资源位置是被用于存储和使用在编辑器重新启动时。该菜单包含一个配置屏幕,它可以再次取消选择资源的位置,此功能在也可以在Tools>Options找到。

在启动编辑器时也使用一些默认资源位置。这些资源位置包含在mediapack和核心媒体文件里。这些包含默认资源位置的文件叫resources.cfg。

Compile(编译):如果选择了脚本选项卡,就可以使用此功能(请参阅本章后面章节),已更改的脚本可以通过按编译图标(或F5键)进行验证。

这下面6个图标是‘游戏’图标。他们代表(从左到右):

  Rewind-选择在名单的上个微粒系统

  Play-开始当前微粒系统

  Record-记录当前微粒系统;这保存'playing'微粒系统的一系列的图像文件。

  Pause-停留一个使用的微粒系统。

  Stop-终止一个使用的微粒系统

  Wind-选择在名单的下个微粒系统

 

Camera reset(照相机重置):还原的 初始照相机设置,用在呈现窗口中的相机如果已移动、旋转或缩放。

  实际上,照相机不会移动。但粒子系统是节点连接移动或旋转。

      *.pu文件时一个 规则微粒宇宙脚本文件。*.pua文件时一个别名文件,包括是在其他的预定义的脚本,在其他的*.pu文件中重用

 

Background colour(背景颜色):更改呈现窗口颜色

粒子系统表

 

粒子系统列表显示所有已加载的粒子系统。选定的条目是积极的粒子系统。

在列表框中,用鼠标右键单击一个粒子系统,就会显示出一个小菜单

 

  Play-开始运行

  Clone item-拷贝活跃微粒系统,前缀‘Copyof’

  Remove from list-从列表中移除粒子系统,但其不会从任何文件中删除,包括粒子系统脚本。

 Render-tab

 

1.Particle Universe_界面介绍 - 變革 -   Erīc.[MITHRIL]
 

呈现选项是当前粒子系统查看的主要窗口。该照相机可以移动,旋转或缩放,从不同角度去观看这个粒子系统,只要用鼠标,拖动鼠标并按住鼠标左键,就可以移动相机,拖动鼠标并按住鼠标右键,转动照相机,鼠标滚轮是用来缩放的。

Edit-tab

 

 

 

 

1.Particle Universe_界面介绍 - 變革 -   Erīc.[MITHRIL]

 

 
 在编辑选项被用的时间最多(除非有人找到更舒适的使用脚本)。这个窗口用来直观的连接一个粒子系统包含的所有组件。每个组件都有自己的函数(和作用),大部分组件都可以被配置来执行一个专门的工作。

 

 System component-系统组件

系统组件式最高层次组件,并且包含发射、Affectors、观察员等。系统组件可以被视为包括创建、显示、和影响粒子所需组件的容器。

 

Technique component-技术组件

技术组件的使用可以显示一个系统中的粒子不同材料(纹理)。每个技术都具有自己的渲染器,并使用其自己的材料。通过多种技术相结合成一个系统,这样就可以创造复杂的粒子系统。

 

Renderer component-渲染器组件

一个渲染器是由渲染视觉颗粒负责。而渲染器决定粒子的外观怎样。这就是说,改变传统渲染一位这会有一个完全不同德粒子呈现。

 

Emitter component-发射器组件

发射器是负责排放粒子

 

Affctor component-影响器组件 

这些组件修改(影响)对自己的颗粒

 

Observer component-观察组件

观察者用于观察是否发生了某些条件/事件。这种情况往往与有关的粒子的状态(一个粒子过期?),但也可以是对其他情况进行验证,例如验证“X”的时间是否启动粒子系统已超出了。

 

Event Handler component-事件处理程序组件

事件处理程序可用于执行某一事件发生的任务,在事件发生时观察者观察的信号,事件处理程序执行这一行动。

 

Behaviour component-行为组件

行为组件可以增加另外的行为到微粒上。例如附从行为,使一个技术的微粒附从另个技术的微粒(微粒是另个微粒的奴隶)。

 

Extern component-外部组件

一个外部组件形成外部组件和一种技术之间的桥梁。例如,Physx外部组件(还不支持此版本的编辑器中但PhysxTM支持的插件)。

 

编辑选项也包含一个浮动工具栏。这个工具栏备用与增加组件到编辑窗口和建立或取消组件之间的连接。

在编辑选项卡控件是简单的。选择左侧的工具栏图标创建某些组件。右边的图标是连接和断开连接的组件。

通过按下左鼠标键,并拖着鼠标光标,然后释放鼠标键,可以选择一组组件。当光标形状改为()。再次可以移动矩形按住左边的鼠标键并拖动。

  请注意:光标必须在画布上且并不是一个组件的部分。可以作为一个组的删除组件,作为一个组进行选择,然后按删除键。

通过滚轮的方式(或PAGE_UP/PAGE_DOWN键)编辑选项卡窗口可以缩放。

Script-tab -脚本

脚本选项是粒子系统的另一种表现形式。粒子系统创建的编辑选项可以在脚本选项卡中查看或改变。编辑选项的表现形式和脚本所做的任何改动同步。该脚本可以存储为*.pu文件。此外可以通过游戏内插件加载脚本。

如果选中了此选项,在菜单栏中的编译图标仅只有一个作用。

     注意: 脚本手册--以HTML格式--包括在‘manual’的目录中。

 

Options(选择项)

'Options'窗口可以在菜单找到,在‘Tools’-‘options’并且包含每次使用应用开始的设置。它包括三个选项。

 

Auto rendering on/off-打开/关闭自动播放

如果选择了主屏幕上的渲染选项,在粒子系统重新启动时自动是选中此选项。

如果添加了新的资源loctions(地址类型) 他们会列出在此选项上,取消选中的这些不再使用的资源loctions(地址类型)的方法。所以这样的脚本、网格、材料和纹理在这些目录中是不可见的。

 

记录选项包含用于记录(导出)设置一系列的粒子系统的图像文件。

output directory-包含引起的图象文件目录

image size-图象文件的宽度和高度

image type-生成 .png, .jpg 或 .tiff文件

frames per second-确定动画的速度。如果设置足够高的话,它会生成更多的图象文件。

Filter-支持3个类型

   1. No diltering-没有筛选

   2. Alpha form luminance:添加了一个alpha值。基于RGB值强度计算alpha 值。如果图像生成的alpha 通道,请使用.png 或.tiff 格式。

   3. Alpha from background colour:alpha值设置最高是所提供的图象像素的颜色相同的背景颜色。

Calibration pause-记录在运行时不完全执行,因为它需要一些时间来生成图象文件,尤其是当图象尺寸大。此设置需要每一个图像文件后写一个简单的暂停,以确保没有抖动的图象系列。

 

Runtime plugin-运行插件

宇宙粒子插件是一个可加载在Ogre渲染引擎的DLL(动态链接库)(在Windows?的情况下)。Visual Studio解决方案文件和所有的C++代码包括在软件包。该插件的目录结构,反映该目录Ogre结构

   注意:在旧版本的宇宙粒子插件的子目录中载有媒体目录,包括所有材料、脚本和网状文件。这些文件现在包含在编辑器的一部分。这是仅剩的媒体问题的核心着色器。

 

  API参考--以HTML格式--包括在某个插件子文件夹(\Docs)。

                                                                                                                                                  

                                                                                                                                                                           Translated by Eric

 

2.Particle Universe_基础粒子系统创建  

2010-11-08 17:15:55|  分类: Particle Univers |  标签:教程  particle  eric  universe  特效   |字号 订阅

 
 

第一次课程会一步步的讲解创建基本的粒子系统,后面的章节中我们就会一笔带过。

首先,通过左边的的'NEW'创建一个新的粒子系统

一个粒子系统能存在运行的基础组件:技术组件、发射组件和输出程序组件(a Technique-, an Emitter, and a Renderer component.)。在浮动工具栏上选择这三个组件。

编辑选项包含四个可以在附近移动的组件。

系统组件总是存在,不能删除。它包含一个小呈现窗口。可以立即查看更改。

单击连接组件图标()。选择系统(System)组件,移动鼠标光标(连接的电线光标),并选择(Technique)技术组件部分,同时将渲染(Renderer.)和技术(Technique)连接起来。

如果发射器(Emitter)与技术(Technique)连接时将显示一个弹出窗口。连接组件上下是相关的。一种技术可以包括一个发射器,但是一个发射器也可以发射一个技术,要选择适合的'include'连接。

单击图标或鼠标右键设置会恢复默认模式的鼠标光标。选择技术(点击Technique图标即可),技术的属性显示在屏幕的左边。更改Material(材料)属性为Select PUMediaPack/Flare_01。

看看在脚码选项里面的脚码。

返回到编辑选项或渲染选项,并按粒子系统开始,它就会显示成下面的图形。

通过单击工具栏上的图标()添加新的Affector(影响器)。更改颜色属性,连接颜色Affector(Colour Affector)到技术器(Technique)。

选择颜色Affector并选择时间和颜色(Time and Colour)属性。按照下面按钮插入一个新条目。再按一次。添加第二个项。如果你展开时间和颜色属性(按+)显示2项,既符合价值

0[(255,255,255);255]。

展开两分词条,并且展开颜色实例。你按颜色RGB 选项按钮,弹出一个colourpickr(颜色选择)对话框。首先选择一种黑色为第一词条(entry),紫色为第二词条,就会显示下面的数字。

改变第二个词条的时间间隔(Time instance)为1。两个词条的代表价值就是0[(255, 255, 255); 255]和1 [(237, 5, 232); 255],因此意味着所有粒子以一种黑颜色开始并且以一种紫颜色结束。

the Time instance subproperty代表了粒子的运动周期。

开始运行粒子系统,你会看到下列的图像。

现在,我们进行大的改动,更改一些性能。选择发射器的类型(Emitter type,),改变它的速度(Velocity)、粒子排放率(Emission rate)和粒子尺寸(particle dimensions.),这三个性能就是所谓的'动态属性',这意味着它的值可以是:

1. 固定值

2. 最大值和最小值之间的任意值

3. 遵循一条曲线的一个值,这条曲线是由控制点的方法决定的(线性或样条)。

4. 由正弦或平方形成的摆动值。

再添加一个Affector,一样把它和Technique连接。改变它的类型为LinearForce,设置Force cector为 100;-100;0。

脚本看起来类似与下面生成的Technique-,Emitter-和Affector类型。

运行这个粒子系统应该可以呈现出下面的图象。

返回脚本项,改变Technique性能为main_technique,改变Emittr名字为 emit_flares,改变Affectors为change_colour和apply_force。快速浏览下脚本显示。

现在在脚本里改变着个粒子系统的名字为MyFlares并且编译这个粒子系统,检查是否有错误。在菜单栏上按这个图标()编译。

会出现如下的一个信息对话框。

随着改变系统的名称左边的列表框的名称也更新了。

 

注意:改变编辑选项上的名称系统不会承认的(

 

Translated by Eric

目前)。

3.Basic collision基础碰撞  

2010-11-08 17:19:45|  分类: Particle Univers |  标签:basic  collision  particle  universe   |字号 订阅

 
 

粒子宇宙既支持基础碰撞也支持高等碰撞。高等碰撞是PhysX?技术实现的,而PhysX?是由粒子宇宙支持的。PhysX?技术将在下节课中讲解。

基本的碰撞是一个内建的功能,也可以用在高等碰撞被修正的地方。主要有四种碰撞类型。

1.  Plane collision-平面碰撞—表示一个平面形状的物体和一个粒子碰撞。Plane collision是实现是在Plane Collider(type of Affector)方法。

2.  Box collision-盒子碰撞—表示一个盒子形状的物体和粒子碰撞。盒碰撞可以由Box Collider和Box Collider Extern二种方法实现,这第一种是Affector的类型,和Plane collision类似。第二种碰撞是一个Extern(外部) 碰撞,具有相似的特征,但它需要添加才可以连接到Ogre::SceneNode上,二中碰撞都可以附加在可独立移动的节点上。使用时第二种碰撞需要一些额外的外部编码。

3.  Sphere collision-球碰撞—表示一个求装物体和粒子碰撞。Sphere collision由Affector类型里的Sphere collision实现,还可以由Extern里的Sphere collision Extern实现。

4.  Interparticle Collision-粒子间的碰撞—粒子碰撞是一些粒子它们自己相互碰撞。如果添加一个Interparticle Collision(Affector类型)到Technique里。它们将会发生碰撞。Interparticle Collision是很可怕的,如果不正确的调整的话。例如发出100个粒子,那么就会完成100X100个粒子的碰撞分裂。

这是一种空间散列技术的使用。

Spatial Hashing (空间散列技术)

这是一组物体在3D单元格空间中的检测技术。在一个单元格中的粒子很接近,所以要检查在该单元格粒子间的粒子碰撞。使用这些设置的困难是获取正确的单元格尺寸。(没有太多的粒子在一个单元格中,也不具有几个粒子的很多单元格)。粒子宇宙的未来版本将包括一个计算最优值的分析工具。

若要完成碰撞功能,Collision Acoidance (碰撞避免)Affector是值得一提。如果使用它,则粒子(在一个Technique里)会尽量避开彼此。避免碰撞是粒子行为(flocking behaviour)的一部分,我们在在其它章节将会处理。

我们采用example_017,来演示仪个简单的平面对撞机。也可以采用example_019,它里面包含一个箱撞。当这些粒子和箱子一碰撞时,这OnCollision Observer就会与DoAffector Handle连接使它们变为红色。

       一种叫做散列细胞重叠的空间,可用于对附近细胞粒子碰撞进行检查。

现在我们来创建一个同样的系统。

转到Edit-tab和添加一些组件。

 1 x Technique

 1 x Sphere Renderer

 1 x Box Emitter

 1 x Geometry Rotator (Affector)

 1 x Linear Force Affector

 2 Plane Colliders

把它们连接在一起按照下面的图象

按照下面的脚本改变设置:

开始粒子系统,篮球是在Z方向发射且与名字为‘Wall(墙)’的平面碰撞,它们弹出后又与名字为'Floor(地板)'进行平面碰撞。

现在给Technique添加一个包含一个DoPlacement Particle Handler的OnCollision Observer。

此外再添加一个新的Technique, Billboard Renderer 和 Point Emitter(名称为FlareEmitter)Emission rate 的值设为0。这意味着,Emitter启动了,但默认情况下不会发射出粒子。 连接到此点的DoPlacement Particle Handler 到这Point Emitter。

edit-tab就像下面连接一样

再看下是否和下面的脚本一样:

当篮球撞击到Plane Colliders ,它将会被OnCollision Observer发觉。就会激活DoPlacement Particle Handler,此刻就会出现一个闪光在撞击点上。

 

4.Observers and Event Handlers(观察和执行)  

2010-11-08 17:26:47|  分类: Particle Univers |  标签:observer  handlers  technique  粒子  particle   |字号 订阅

 
 

除了发射粒子和影响它们,粒子宇宙也可以观察和运行某些操作,当一个特定事件发生的时候。Observer不仅仅局限于观察,它还包括在粒子宇宙包里。但是,当生成的验证随机值超出预定的值时候。OnRandom Observer 例外。

一个Observer必须包括在Technique。每个Observer都可能包含数个Handlers(当事件重现执行任务时)。

请看example_008。这个Technique包含了一个OnQuota Observer。这意味着,一旦所排放的粒子的定额到达了,这个Handler程序就被激活,这个定额值是在Technique里已经定义了的。这个例子中,它的Visual partcle quota(视觉粒子限量)设置的是200,这就是说,如果有200个粒子已经发出去,那么Handler(处理程序)就会被激活。

这个Handler的类型是DoEnable Component ,当事件重现时Emitter 是不工作的。右击DoEnable Component查看它的连接,它使‘包括’在OnQuota Observer里,还有个'emable'是连接到Emitter。设置这个‘Enable component‘的属性为False。

在下课中,我们重头开始创建一个具有Observer和Handler的粒子系统。

用一Technique,一个Billboard Renderer,一个Point Emitter,一个OnTime Observer和一个DoFreeze Handler创建一个粒子系统。

   Technique的Material设置为ParticleUniverse/GreenBall。

   Point Emitter里的Angle设置为360  Time to live 设置为 10

   OnTime Observer里 On time compare设置为Greater than、On time thershold设置为5

   Since start system 设置为True。

   编辑项里看起来就像下面这样。

 

  运行粒子系统,并等待至少5秒,会发生什么事情?所有方向发射出绿色的球,距开始时间大于5秒的时候。就会有时间触发处理程序,冻结所有粒子。
 

5.Particle Universe_Lesson 5-7  

2010-11-08 17:47:20|  分类: Particle Univers |  标签:粒子系统  emitted  base  lod  纹理   |字号 订阅

 
 
第五课:Emission of non-visual particles(发射非可视颗粒)
除了发射粒子以外,Emitter也可能发出其他的Emitters,Techniques 和 Affectors(只适合Affectors使用这位置的产物)。插入式也支持其他的发射系统,但不建议使用(性能和内存的原因);因此它不支持编辑器。
有几个表现非可视粒子排放的示例脚本。粒子系统里'PUMediaPack/CanOfWorms' 和 'example_024'是典型的例子。
建立一个系统用emitted Emitters是容易的,转到Edit-tab和选择一个Technique、一个Point Emitter、一个Box Emitter和一个Renderer。这个Point Emitter命名为'Emitted'
(被发射的发射器),Box Emitter命名为‘Base’(这是个基础发射器,发射这个Point Emitters)。连接所有组件就像下图
让‘Base’和'Emitted'建立连接。就突然出来了2个不同的连接方式。‘Base’发射‘Emitted’或'Emitted'发射‘Base’。二个可能的连接都可以被建立,并且会出现不同德结果。我们要做的是让‘Base’发射‘Emitted’。
 
二个发射器间的连接有二种方式,当连接时,会有个提示框弹出,有二种选择:
· Emitted emits Base
· Emitted emitted by Base
Or
· Base emits Emitted
· Base emitted by Emitted
这种类型的连接将会被红线标示出来
添加一些属性:
· Technique, Material with value PUMediaPack/Flare_04
· Box Emitter ‘Base’, Emission rate with value 1
如果现在运行系统,你会看到这个被发出的发射器会发出一组照明弹。
 
忠告:如果你发射组件,其中包括发射器,它们交上发出的其他组件,预分配对象的数目可以变得很大,使用Technique中的..._定额管理去管理它,这会在未来的版本中,一个分析工具,将确定最佳的配额设置(已经在插件中实现)。
 
第六课:Texture animation(纹理动画)
 
从1.0版就开始支持图纹理。它们的使用是非常方便的,因为它能将图像的不同部分分配给每个粒子,(也可能是一个粒子)。一般来说,一个粒子的颗粒纹理总是在一个相同技术。这是因为只有一个材料可以在技术中使用。但是如果你使用不同的紫外线集(uv-sets)(一个纹理坐标)为每一个粒子,这些粒子就会表现不同。
 
定义这些紫外线坐标是通过在呈现器中使用的属性纹理坐标行和纹理坐标列。这两种属性划分纹理坐标集的矩阵中。每个组获取自己的索引。所以,如果坐标行设置为4,纹理坐标列也设置为4的话,这个纹理就分为了一个4X4矩阵坐标集[0..15]。 
 
下面是一个小例子(脚本设计如下)
 
你可以进一步添加TextureAnimator。该TextureAnimator是在Affector中,它使显示不同紫外线集(uv-sets),就好像一场电影。如果TextureAnimator添加在上面的脚本,它被设置为循环通过uvsets[0..16]你可以看到每个粒子的动画
粒子宇宙系统包不仅仅只有一个脚本(example_029)。我们可以轻松的创建图集纹理,有一个AtlasTextureTool添加到粒子宇宙包,它可以把很多图像连在一起并且创建包含所有图像的一个大的图像。
 
第七课:Particle System LOD
 
粒子系统的LOD(Level Of Detail=细节等级)。用于减少资源的使用,这样系统性能就不会下降太多。例如相机和粒子系统的距离很大的时候,用户不会看到不同,因为大距离的粒子都呈现在Billboards(广告牌)。
 
必须认识到的是,多摄像头设置的LOD特性是不工作。这种做法的好处以支持LOD多个摄像头功能,因为复杂性变大。如果现在又多个摄像头,你还必须设置主照相机的名称在粒子系统里(脚本里是这样做的'main_camera_name')。
 
粒子系统支持2种LOD方式:
1.分离LOD,利用很多技术的使用
2.使用一个匀变函数
 
Discrete LOD(分离LOD)
第一,在系统中必须设置Lod距离属性。此属性控制不同的技术开始生效的距离。
第二,Lod索引被分配给每个技术在系统中。
LOD 等级应用的距离是由包含的粒子系统的 Lod 距离属性决定的。具有三个离散 LOD 级别的粒子系统的布置如下所示。
 
该系统的平滑层次细节属性是应用的平稳过渡技术。只要另一个技术细节层次过渡很快生效后,以前的技术所排放的粒子依然在,而且不会被立即销毁。光滑平面细节性能可以确保这些粒子仍然存在,即使另个技术被激活。这些也一样会粒子生存到他们的一个周期。主摄像头名称叫做"Playercam"是用来计算到粒子系统的距离,这个距离是用来执行细节粒子层次的过渡。
1.如果粒子系统和"Playercam"距离是在0-800之间,索引为0的技术就处于被激活状态。
2.如果粒子系统和"Playercam"距离是在800-2200之间,索引为1的技术就处于被激活状态
3.如果粒子系统和"Playercam"距离超过了2200,索引为2的技术就处于被激活状态。
 
Ramp Function(匀变函数)
用它代替离散的LOD等级,也可以影响特定的属性,如果相机移动的话。在下面的例子中,当相机变的更近的时候发射率上升,当相机移开时发射率就降低了。可以用“camera_dependency”和插于运算符<<做到,并且可以在脚本中定义。不过编辑器目前不支持这点。
 
 

6.Particle Universe_Lesson 8-10  

2010-11-08 17:48:47|  分类: Particle Univers |  标签:affector  flocking  ogre  粒子系统  particle   |字号 订阅

 
 

第八课:(Complex steuctures)复杂结构

Flocking(禽群)
粒子系统包含一些影响器,它们组合、执行Flocking(禽群)行为。Flocking(禽群)
是大量自我推进的有共同行为的实体。比喻大量鸟,昆虫和鱼。Flocking(禽群)有3部分组成:
1. Separation(分开)-避开邻近的东西(短距离相互排斥)
2. Alignment(直线排列)-引导物体接近邻近物体的平均标题(steer towards average    heading of neighbours)
3. Cohesion(凝聚)-引导物体接近邻近物体的平均位置(远距离就会吸引过来)
   
   在粒子宇宙系统中example_027方案中这三个元件是被实施的,粒子宇宙插件包展示了3个影响器是如何使用组合来实施这3个元件的,CollisionAvoidance Affector和the
VelocityMatching Affector用空间散列功能使技术不得不设置正确的空间散列属性以达到最佳的性能。
1. 碰撞闪避影响器(CollisionAvoidance Affector)(分开)
2. 相同速度影响器(VelocityMatching Affector)(直线排列)
3. 群集中心位置影响器(FlockCentering Affector)(凝聚)
  
Flip Flop(双稳态多谐振荡器)
在某些情况下,很多力量是随时间而改变,需要一个机制应用于粒子系统,风力发电就是这样一个粒子。这可以通过使用某种perbutation(改变,交换)或噪声影响器,但因为粒子世界目前省略了这,Flip Flop(双稳态多谐振荡器)机制可以用来代替。
其基本原理是在某一事件的情况下多个影响器(Affectors)启用或禁用。看看以下来自例子‘PUMediaPack/Snow’的摘要。
 
根据一个随机值,名为“WindLeft”的线性力Affector(Linear Force Affector)影响器是启用(WindRight是禁用),反之亦然。
 
Emission chain(链发射
Example_024是一个很好的链发射的例子,从一个技术发射出另一种技术。发出的技术还包括一个发射器(Emitter),它能再发射另个技术等等。在编辑项目(Edit-tab)里是用明显的红色线连接起的。
 
第九课:记录(Recording)
 
记录的功能是产生一系列的启动的粒子系统不同格式的图像文件,快速教程里我们已经讨论过记录选项卡的配置屏幕(按钮)
 
输出产生的一系列的图象文件至少有3中情况中被用
图像来自于粒子系统的系列行动,它可能利用这些图像做为一种'粒子系统的顶替者'类型。
如果你建立(代码)一个BillboardSet(公告牌)刚刚就一个公告牌,这种材质可以被利用,它里面包含了一系列的图片和动画。
这种替代方法是从粒子宇宙包中图纹理工具去创建一个图纹理。创建一个系统,发出一个广告牌粒子与TextureAnimator(动画质感)结合。
在视频编辑软件中使用的图像。这超出了本手册,但及个编辑包支持一系列的图像文件导入。记录的粒子系统可以与其他视频混合。因为可以使用alph通道或特定背景颜色生成的图象
这是非常适合视频编辑目的的。
 
第十课  Material files and meshes (材质文件和模型
看Ogre网站,创建材质和模型在Ogre.mesh格式中。过后填充。
 

7. Usage of the plugin in Ogre(使用插件)  

2010-11-08 17:50:08|  分类: Particle Univers |  标签:图集  png  图像  plugin  插件   |字号 订阅

 
 

Setup plugin(调试插件)
首先安装粒子宇宙系统包,再创建以下目录结构:
 Particle Universe
   Particle Universe Editor
   Particle Universe Plugin
      ogre
宇宙粒子编辑器的目录包含了编辑器的可执行文件。该宇宙粒子插件目录包含在Ogre结构插件。如果你要使用它,用ogre需要复制整个'ogre'的结果与它粘贴在你的应用程序结构。
 
安装插件是简单的,编辑代码,如果你使用的是调试版本添加入口Plugin=ParticleUniverse_d到这个Plugins.cfg文件,或者Plugin=ParticleUniverse为发布版本。
如果你要创建并启动你代码中的粒子系统,你可以这样做:
 

 
如果你想停止或是删除它,要这样做:
 

 
Atlas Image Tool(图集图像工具)
 
地图图像工具,用于创建图集图象(纹理),它是由宇宙粒子插件支持的。例如,一个图集纹理与动画纹理结合。 影响器使用一个图集纹理和部分纹理(纹理定义的坐标)来创建一个动画。
 
图集图象工具是一个命令行工具,它读取一个配置文件和创建一个图集纹理。
语法:
AtlasImageTool configFileName(配置文件名)
 
Example(例子):
C:\ AtlasImageTool atlas.cfg
 
图集图像的创建
 
配置文件包含一个图集纹理创建所需的设置。
Example:
// Set the path of all image files  设置所有图像文件的路径
ImagePath = ../../images
// Define the input files    确定输入文件
InputImage = flare.png; smoke.png; smoke.png
// Alpha correction    初始值?      
Alpha = 1.0; 1.0; 0.0
// Define the output (atlas) file   确定输出文件
OutputImage = interpolate.png
 
1.ImagePath 是一个关键字,标识图像的存储位置的相对目录。
2.InputImage 是一个关键字,标识的图像文件构建的地图图像的列表。一个限制是所有的图像文件具有相同      的尺寸(宽度和高度)、相同的格式和没有(mipmap)纹理反走样
3.Alpha是一个可选的关键字,它标识值的列表。每个值是被用于和其相关的图像文件的初始组件上。
4.OutputImage是关键词,辨认被生成图集图像的名字。
 
Interpolation between images(图像之间的插入)
 
一项可选功能,生成指定输入图像之间的图像框架。如果image1.png和image2.png都被输入图像关键词定义,并且0和10帧分配给它(通过框架关键词的办法?),图像框架1到9是自己生成的。图像被内插在image1.png和 image2.png之间。
 
// Define the input files  输入文件
InputImage = image1.png; image2.png
 
// Relate every inputfile to a frame (intermediate frames are interpolated)连起   每个输入到框架
Frame = 0; 10
 
5.Frame(框架)是一个关键词,标识framenumbers(数字框架?)列表,并将这列表与输入图像连接起来。
 
Runtime analysis(运行时分析)
 
文件ParticleUniversePrerequisites.h包含#define PU_LOG_DEBUG指令,确定运行时间
调试信息是否开或关。它可以用于确定配额的最佳值,在一个技术里。 如果微粒系统运行,并且PU_LOG_DEBUG被定义,发射的视觉粒子、发射的放射器、发射的技术和发射出的影响器的最大数字是适当的。当粒子系统停止时,这些数据写到.log文件(日志文件),可以用来设置配额的值。
 
这将是整合在宇宙的粒子编译器的未来版本。

 

 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

posted on 2019-01-31 20:48  jack船长大哥  阅读(800)  评论(1编辑  收藏  举报

导航