Papervision3D简介
Papervision3D(简称PV3D)是一个开源的遵循MIT协议的使用AS3代码写成的3D引擎,具体请参见http://blog.papervision3d.org/,百度百科上对PV3D有简要的介绍,关于PV3D的一些示例请参见http://blog.davr.org/pv3d-examples/与http://mrdoob.com/,绚丽的三维效果绝会让你惊诧不已。
Papervision3D中的几个基本概念
Scene3D:简单的理解为3D场景。它实际上是一个“空”的三维空间(因为空所以也就不可见了),用于承载所有的可见元素(各种物体),这就好比宇宙中的某一个立体空间,地球以及地表所有的地物、生物都是这个空间中的元素。你希望渲染出来的所有元素,都必须先添加到Scene中。
Viewport3D:视口。相当于一个位于视点与3D场景中间的“取景器”,透射视图下“取景器”后面可视区域内的元素才会被渲染出来,被“取景器”所遮挡的元素不参与渲染。
Camera:相机。它是3D场景中的视点,可以在3D空间里任意移动相机的位置。想象一下上面所说的宇宙空间,相机就相当于你的“眼睛”。
BasicRenderEngine:PV3D中另一个非常重要的概念,即使你已经建立了场景,视口,或者镜头,但你必须使用一个渲染引擎来渲染所有的东西。它通过相机和视口来决定渲染的元素,可以在任何时候使用渲染引擎来进行渲染工作。
构建第一个PV3D应用
BasicView是继承于flash.display.Sprite的一个子类,它提供了一个快速建立PV3D项目的模板,使用该类可以方便的创建场景、视口、相机等元素并进行渲染。在此借用BasicView来开发第一个PV3D应用。
首先在官网上下载PV3D3.0.swc文件备用。
在Flash Builder中新建一个ActionScript项目PV3D_01,将PV3D3.0.swc文件添包含到项目中。设置项目属性,在项目属性对话框中选择左侧ActionScript构建路径,然后选择右侧的库路径面板,为项目添加SWC文件,将PV3D3.0.swc添加进来。
整个项目代码如下:
package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.materials.BitmapFileMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView; public class PV3D_01 extends BasicView { protected var plane:Plane; protected var fileMaterial:BitmapFileMaterial; public function PV3D_01() { super(); //利用图片创建一个双面材质 fileMaterial = new BitmapFileMaterial("Me.jpg"); fileMaterial.doubleSided = true; //使用fileMaterial创建一个plane plane = new Plane(fileMaterial, 500, 500, 4, 4); scene.addChild(plane); //开始渲染 startRendering(); } override protected function onRenderTick(event:Event = null):void { super.onRenderTick(event); //旋转plane plane.yaw(2); } } }
千万不要忘记将创建的plane对象添加到场景中,确认代码无误后就可以测试一下了,显示结果是一个水平翻转的图片。
悲催,我不知道怎么在这里直接展示ActionScript项目的动态效果,有知道的麻烦请告知一下。