- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Pv3D10.粒子
10 粒子
?
粒子是2D图形,它们相对于3D坐标系定位,但不使用透视投影。换句话说,粒子始终面对摄像机。另一个粒子的特点是,它们是轻量级的物体。由于你的3D应用程序性能受三角形数很大影响,因此粒子的轻量使得它们能成为很好的工作伙伴。在这一章中,我们将讨论为什么使用粒子,然后通过一些例子,一步一步演示如何创建它们。
?
本章包括以下内容:
?
什么是粒子,以及为什么使用它们
如何创建粒子和应用粒子材质(materials)
给粒子添加交互性
如何创建粒子域
使用Flint粒子系统
?
在我们研究如何创建粒子前,让我们看看它们是什么以及我们如何使用它们。
?
什么是粒子以及为什么使用它们
?
如果你有玩过3D游戏,你肯定看到过粒子起作用。许多3D游戏使用的粒子模拟各种现象(多半是自然现象)如爆炸,落叶,和血液飞溅。
?
在Papervision3D,一个粒子可以被描述为一个二维图形,可以相对于一个3D点缩放和定位。可以设想为一个轻量级的平面,始终面对着摄像头。本章主要讨论了以下两方面的粒子使用:
?
告示牌(Billboarding),用于削减你的场景中三角形数量的技术
创建自然现象,通常是在粒子系统的帮助下完成
?
这两个方面并不互相排斥。但是,当讨论Papervision3D里的粒子时,这种分类是一个很好的起点。
?
告示牌
?
假设你想要在你的场景中有一些树。要创建树木,你可能需要许多多边形。但是,渲染树木对用户的计算机来说可能会相当困难,具体随场景中的其它对象而异。或者假设你想加上1000个反光球。创建1000个有渲染的球体也将非常消耗CPU。一种处理这种情况的技术就是使用粒子。
?
现在,假设我们有一个反光球的2D图形。通过相对于3D坐标系定位和缩放2D维图形,你可以得到这是一个3D物体的错觉。这样,你将极大地削减多边形。这种用面对摄像机的2D图形代替3D物体的技术就叫告示牌。
?
看看以下图片,这是一个Papervision3D场景的截图。它展示了三个反光球,似乎是3D空间中的3D物体。但是它们不是创建于Papervision3D或建模程序中的球体。它们是简单的2D图形,创建于图形编辑程序。
?
?
告示牌有利有弊。使用2D图形代替有很多三角形的3D物体给了渲染器一个轻得多的工作负荷。但是,告示牌粒子可能看起来比3D物体真实感更少,有两个原因。首先,你不能绕着一个粒子移动摄像机,以得到一个不同角度的视图,而3D物体可以。其次,虽然先前截图里的粒子看起来像反光的球,但是不管摄像机在哪里,反光看起来总会是一样的,这会导致真实感比实时渲染的球体更少。
?
谈到真实感,粒子不需要成为烘培渲染(baked shading)的图形。在这章里,我们将看到仅有圆形或方形组成的粒子。但是,在你的场景中产生,定位及缩放很多这些粒子仍然能创建漂亮强烈的3D体验,比如,用来暗示一片星域。以下截图也是从Papervision3D场景中获得的。
?
?
就像我们将在例子里看到的,创建像前面截图里展示的粒子星域在Papervision3D里相当简单。但是创建现象,如爆炸,落雪,或喷泉要更复杂,需要相当高级的编码,这是粒子系统起作用的地方。
?
粒子系统
?
有很多途径来定义什么是粒子系统。让我们总结下所有定义共有的东西:
?
粒子系统模拟有机现象(organic phenomena),如烟火和落叶。
粒子系统产生和移动一批小物体(粒子)。
粒子有属性,如速度和加速度。
有一内置随机元素在一定的限制下操作粒子属性,这些限制通常由程序设置。
粒子有生命周期——它们被创建,根据特性移动,然后销毁。
?
通常,由发射器(emitter)产生粒子,并初始化每个粒子的属性。以下截图展示了一个在粒子系统帮助下创建的喷泉:
?
?
Papervision3D不包括粒子系统,但是在这章结尾,我们将看一看一个外部开源类库Flint,它能很好的和Papervision3D一起使用。
?
我们已经讨论了什么是粒子,以及用它们来做什么。该是融合这些想法到一些实际例子并看看怎样在Papervision3D里创建粒子的时候了。
?
创建粒子
?
创建和显示粒子的过程看起来如下:
?
创建粒子材质
创建Particles实例,这会被用来包含和渲染粒子。
使用Particle类实例化一个粒子(或者大约,一整群),传递材质,尺寸,以及位置作为其参数。
使用addParticle()方法添加粒子到Particles对象。
?
前两步的顺序可以交换,因为粒子材质和Particles实例不需要彼此。
?
使用Particles类,还有Par
您可能关注的文档
最近下载
- 明代故宫、孔府旧藏服饰.pdf VIP
- 中考物理总复习《力学》专项练习题(附答案).docx
- 2025年春新人教PEP版英语三年级下册课件 Revision Going to a school fair-第2课时.pptx
- 春节文艺活动劳务合同6篇.docx
- 局领导班子成员之间相互批评意见清单(6).doc VIP
- 2025年1月最新版化危为安ccsc每日答题题库和配套答案(持续更新中).docx
- 应用数理统计基础课后习题答案(全)-庄楚强.pdf
- 《民法典》无效合同处理规则适用要点解析.docx
- 农商银行董事会换届工作报告(三年工作总结及下届工作思路).docx
- 2023-2024学年江苏省盐城市高二下学期6月期末考试化学试题(解析版).docx
文档评论(0)