首先,PV3D的3D舞台需要一个容器,用来容纳整个3D舞台。 这个容器至少是Sprite类型的,因为Sprite是AS3或者说Flash9里,显示对象的最小单位,这也是我们的主类一定要继承自Sprite的原因,因为它需要被显示。
// 创建3D舞台的容器
_container = new Sprite();
_container.x = 100;
_container.y = 100;
//将它显示出来
addChild( _container );
然后,需要一个3D舞台。
// 创建3D舞台,并将容器_container 作为参数传入
_scene = new MovieScene3D( _container );
接着,我们需要在舞台上放一个摄像头,他代表我们的眼睛,他能看到的就是你看到的。
// 创建摄像头
_camera = new Camera3D();
_camera.z = -500;
_camera.zoom = 5;
//把摄像头看到的显示出来
_scene.renderCamera(_camera);
现在我们需要有一个3D对象,把它显示出来我们才算成功。PV3D的所有3D对象都是继承自displayObject3D,就像Flash里的Sprite一样它是最小单位。
考虑到我们程序的通用性,我们的显示对象使用displayObject3D类型,后面初始化时候你可以把它初始化成任意displayObject3D的子类型对象。
光一个3D显示对象还是不够的,它需要有个“皮”,你才能看到它,所以,我们同时需要一个材质贴图 (至少需要一个,如果是立方体,就需要六个面的贴图)。
PV3D中所有材质贴图的基类是MaterialObject3D,所以考虑到通用性…..我就不多说了。
//黑色的线框材质
_material = new WireframeMaterial( 0x000000) ;
//弄个球玩玩
_displayObj = new Sphere( _material, 80 , 10 , 10 ) ;
//把显示对象添加到舞台
_scene.addChild ( _displayObj) ;
//把摄像头看到的显示出来
_scene.renderCamera ( _camera) ;
现在我们要让球动起来。 PV3D主要是以帧为单位来控制变化,所以我们需要一个方法可以控制到每一帧。
AS3中我们只要注册一个Event.ENTER_FRAME事件的监听程序就可以监听到每一帧开始的时刻。
然后,我们可以在我们的监听函数里,做我们需要做的,比如计算,或着让显示对象移动旋转等。
而PV3D要求每次舞台发生变化时都要显式的调用舞台对象的renderCamera,重新绘制,否则内容始终是不重绘的。
//加入监听
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame);
//监听执行方法
private function OnEnterFrame(event:Event):void
{
//让显示物体动起来
_displayObj.rotationX += 5;
_displayObj.rotationY += 5;
//舞台更新显示
_scene.renderCamera(_camera);
}
分享到:
相关推荐
【PV3D入门之BOY(源码)】是一篇关于使用PV3D(Panda3D)框架进行3D编程的教程,其中"BOY"可能是项目或示例的名称。PV3D,全称Panda3D for Python,是Python的一个3D渲染引擎,它基于C++的Panda3D库,为开发者提供了...
在3D图形渲染领域,pv3D和DAE模型贴图是两个重要的概念,它们在构建虚拟场景和游戏开发中发挥着关键作用。本文将详细阐述这两个技术,并结合实际应用来解析它们的工作原理和实现方法。 pv3D,全称为Papervision3D,...
4. **pv3D中的贴图处理**:在pv3D中,贴图的加载和应用涉及到几个关键步骤: - 加载纹理图像:首先需要获取模型所需的纹理图片,并使用Image对象加载。 - 创建纹理对象:在WebGL中,每个贴图都需要一个对应的...
总的来说,这个压缩包提供了一个完整的PV3D入门示例,涵盖了安装、基本代码结构、资源管理和最终输出等方面,非常适合对PV3D感兴趣的初学者进行实践和学习。通过深入研究这些文件,你将能够掌握PV3D的基础知识,并...
《开源3D引擎PV3D在AS3.0中的应用详解》 PV3D,全称为Papervision3D,是一款基于ActionScript 3.0的开源3D图形渲染引擎,它允许开发者在Adobe Flash平台上创建丰富的3D交互内容。PV3D的出现极大地拓宽了Flash的使用...
"PV3D太阳系"是一个基于PV3D( Papervision3D)技术构建的交互式3D模拟项目,主要用于展示太阳系中的行星运动。PV3D是ActionScript 3(AS3)的一个库,它为Flash平台提供了强大的3D图形渲染能力。在这个项目中,...
在“pv3d类和3D模型和贴图以及简单测试代码”这个主题中,我们将关注`pv3d`的核心组件,3D模型的导入,贴图的应用,以及如何通过简单的测试代码来实现3D场景。 首先,`pv3d`类库是基于AS3的,这意味着它可以直接在...
**PV3D学习资料——PV3D Essentials(汉语)** PV3D,全称为Papervision3D,是一款强大的开源3D图形引擎,专为Adobe Flash平台设计。它允许开发者在网页上创建复杂的3D场景,游戏以及交互式应用程序,从而突破了...
**PV3D Flash 3D 源码详解** PV3D,全称为Papervision3D,是一个开源的Flash 3D图形渲染引擎,它允许开发者在Adobe Flash Player环境中构建复杂的三维交互式应用程序。PV3D为Web开发者提供了一个强大的工具,使他们...
【PV3D与Flash技术】 PV3D全称为Papervision3D,是一个基于Adobe Flash平台的开源三维(3D)图形库。这个技术允许开发者在网页上创建丰富的、交互式的3D场景,为用户提供一种超越传统2D体验的新颖视觉效果。PV3D在...
**PV3D中文手册**是针对PV3D(Pervasive 3D)技术的一份详细文档,旨在帮助用户理解并有效地使用这个强大的3D图形编程库。PV3D是基于ActionScript 3的,因此它与Adobe Flash Player和Adobe AIR平台紧密集成,允许...
"pv3d最新资源包"是一个集合了PV3D(Player3D)最新开发资源的压缩文件,这个包是在09版本的基础上进行了更新,确保所有内容都是最新的。PV3D是一种基于Adobe Flash Platform的3D图形编程库,它允许开发者在Flash ...
在“Papervision3D入门-基础交互式PV3D程序.doc”文档中,可能包含了以下内容: 1. **基础交互组件**:讲解如何创建基本的交互元素,例如点击事件监听器,通过添加鼠标事件处理函数来响应用户的点击行为。 2. **...
在给定的“用于flash中的PV3D组件包”中,我们将探讨PV3D(Papervision3D)如何与Flex结合,以及如何利用它来创建震撼的3D效果。 PV3D是Adobe Flash平台上的一款强大的3D引擎,它为开发者提供了在Flash Player中...
本项目“pv3d简单全景”显然是使用PV3D库来构建一个基本的全景体验,下面我们将详细探讨相关的知识点。 1. **PV3D库**:Papervision3D是AS3中的一个强大工具,它为开发人员提供了一个在Flash中创建3D图形的平台。PV...
**PV3D(Paper Vision 3D)**是基于Adobe Flash Platform的AS3(ActionScript 3)3D开发框架,它为Web开发者提供了一种在Flash Player环境中创建交互式三维图形的可能性。PV3D的强大之处在于,它允许开发者利用...
**PV3D文档(chm)** PV3D全称为Papervision3D,是一个开源的Flash平台3D图形库,允许开发者在Adobe Flash Player环境中创建丰富的三维交互体验。这个"PV3D help (英文) CHM格式 API帮助文档"是针对Papervision3D的...
**PV3D技术详解** PV3D,全称 Papervision3D,是一款基于Adobe Flash Platform的开源3D图形库,允许开发者在Flash Player或Adobe AIR环境中创建丰富的三维交互体验。SWC和AS文件是PV3D开发中的关键组件。 **SWC...
PV3D(Papervision3D)是一种基于ActionScript 3.0的开源库,用于在Adobe Flash环境中创建3D图形和交互式应用程序。它为开发者提供了在Web上构建三维场景、游戏以及复杂的可视化应用的可能性。AS3(ActionScript 3.0...