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
呈现选项是当前粒子系统查看的主要窗口。该照相机可以移动,旋转或缩放,从不同角度去观看这个粒子系统,只要用鼠标,拖动鼠标并按住鼠标左键,就可以移动相机,拖动鼠标并按住鼠标右键,转动照相机,鼠标滚轮是用来缩放的。
Edit-tab
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.Particle Universe_Lesson 5-7
2010-11-08 17:47:20| 分类: Particle Univers | 标签:粒子系统 emitted base lod 纹理 |字号大中小 订阅
6.Particle Universe_Lesson 8-10
2010-11-08 17:48:47| 分类: Particle Univers | 标签:affector flocking ogre 粒子系统 particle |字号大中小 订阅
第八课:(Complex steuctures)复杂结构
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