Papervision3D初步

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项目的动态效果,有知道的麻烦请告知一下。

posted @ 2012-05-03 17:45  百折不回  阅读(1510)  评论(1编辑  收藏  举报