- 浏览: 379181 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (121)
- flex及Flash3D表现研究 (6)
- papervision3D研究 (26)
- flashParticle粒子系统 (9)
- Papervision3d动力学研究 (6)
- flex知识 (14)
- as3程序基础 (11)
- flex组件样式演示 (3)
- flex与PHP、mySQL学习 (0)
- flex声音表现研究 (0)
- flex整站开发研究 (0)
- flex开发市场 (0)
- flash cs3教程 (1)
- flex与flash文件的交互 (2)
- flex、flash资源集 (1)
- flash cs4研究 (1)
- flash游戏编程 (0)
- DirectX游戏编程 (3)
- silverlight研究 (4)
- Java学习 (2)
- 数学知识 (1)
- VC++ (3)
- 行业信息 (2)
- away3d (6)
- alternativa3d (1)
- Pixel Bender 研究 (0)
- 随笔 (1)
- Google O3D (1)
- Javascript (1)
- iphone 3d游戏开发 (6)
- Html 5 3d (3)
- Unity3d手机游戏开发 (5)
最新评论
-
3580737:
在哪里看看
AS3的深度管理及排序 -
yangyang111310:
我靠 哥们 行不行啊
flex + tomcat + myEclipse环境配置与使用(三) -
jjjkkk:
nice 感谢 flash player的版本真DT
Flash Player10 Debug版--正式版 -
lattimore:
Excellent
从3dsmax导出Dae模型到papervision3D -
ytdalin21:
合作很愉快,技术都挺靠谱!下次继续合作!
papervision dae animation(DAE角色动画控制)
我们一般在构建papervision3D构架的时候需要创建下面是个基本的框架元素:
视图viewport >> 场景scene >> 相机camera >> 渲染器renderer
从Viewport3D的定义
我们可以看到Viewport3D是继承之Sprite,它具有了Sprite的所有属性和方法。
同时它实现(implements)了IViewport3D的接口方法。
现在papervision3D给我们提供了一个BasicView,它包含了我们需要的所有元素。
我们看看BasicView的构造函数
BasicView继承自AbstractView(抽象类视图,我们可以这么理解,但是AbstractView是继承自Sprite的)
BasicView(基本视图)和AbstractView(抽象类视图)都实现了统一的接口方法IView。
大家先看看BasicView的全部代码:
它内含了
继续分析:
下面的三个函数:
实现了IView接口函数
见IView接口类代码如下:
BasicView的构造函数:
分析一下参数:
BasicView(视图的长-默认640,视图的宽-默认480,是否随着舞台缩放,场景是否可以交互,摄像机的类型-默认类型是Target类型)
pv3d的在线帮助文件中描述如下:
最终这些参数会在生成viewport3D对象的时候直接作为它的参数传给viewport3D的构造函数了。
视图viewport >> 场景scene >> 相机camera >> 渲染器renderer
private var viewport:Viewport3D; private var scene:Scene3D; private var camera:FreeCamera3D; private var renderer:BasicRenderEngine;
从Viewport3D的定义
public class Viewport3D extends Sprite implements IViewport3D
我们可以看到Viewport3D是继承之Sprite,它具有了Sprite的所有属性和方法。
同时它实现(implements)了IViewport3D的接口方法。
现在papervision3D给我们提供了一个BasicView,它包含了我们需要的所有元素。
我们看看BasicView的构造函数
public class BasicView extends AbstractView implements IView
BasicView继承自AbstractView(抽象类视图,我们可以这么理解,但是AbstractView是继承自Sprite的)
public class AbstractView extends Sprite implements IView
BasicView(基本视图)和AbstractView(抽象类视图)都实现了统一的接口方法IView。
大家先看看BasicView的全部代码:
package org.papervision3d.view { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.core.proto.CameraObject3D; import org.papervision3d.core.view.IView; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; /** * @Author Ralph Hauwert */ public class AbstractView extends Sprite implements IView { protected var _camera:CameraObject3D; protected var _height:Number; protected var _width:Number; public var scene:Scene3D; public var viewport:Viewport3D; public var renderer:BasicRenderEngine; public function AbstractView() { super(); } public function startRendering():void { addEventListener(Event.ENTER_FRAME, onRenderTick); viewport.containerSprite.cacheAsBitmap = false; } public function stopRendering(reRender:Boolean = false, cacheAsBitmap:Boolean = false):void { removeEventListener(Event.ENTER_FRAME, onRenderTick); if(reRender){ onRenderTick(); } if(cacheAsBitmap){ viewport.containerSprite.cacheAsBitmap = true; }else{ viewport.containerSprite.cacheAsBitmap = false; } } public function singleRender():void { onRenderTick(); } protected function onRenderTick(event:Event = null):void { renderer.renderScene(scene, _camera, viewport); } public function get camera():CameraObject3D { return _camera; } public function set viewportWidth(width:Number):void { _width = width; viewport.width = width; } public function get viewportWidth():Number { return _width; } public function set viewportHeight(height:Number):void { _height = height; viewport.height = height; } public function get viewportHeight():Number { return _height; } } }
它内含了
protected var _camera:CameraObject3D; //(保护属性)相机 protected var _height:Number; //(保护属性)画布的宽 protected var _width:Number; // (保护属性) 画布的高 public var scene:Scene3D; // (公开属性) 三维场景 public var viewport:Viewport3D; // (公开属性) 三维视图 public var renderer:BasicRenderEngine; // (公开属性) 渲染器
继续分析:
//继承Sprite的构造方法 public function AbstractView() { super(); }
下面的三个函数:
function singleRender():void; function startRendering():void; function stopRendering(reRender:Boolean = false, cacheAsBitmap:Boolean = false):void; }
实现了IView接口函数
见IView接口类代码如下:
package org.papervision3d.core.view { /** * @Author Ralph Hauwert */ public interface IView { function singleRender():void; function startRendering():void; function stopRendering(reRender:Boolean = false, cacheAsBitmap:Boolean = false):void; } }
BasicView的构造函数:
public function BasicView(viewportWidth:Number = 640, viewportHeight:Number = 480, scaleToStage:Boolean = true, interactive:Boolean = false, cameraType:String = "Target")
分析一下参数:
BasicView(视图的长-默认640,视图的宽-默认480,是否随着舞台缩放,场景是否可以交互,摄像机的类型-默认类型是Target类型)
pv3d的在线帮助文件中描述如下:
Parameters viewportWidth:Number (default = 640) — Width of the viewport viewportHeight:Number (default = 480) — Height of the viewport scaleToStage:Boolean (default = true) — Whether you viewport should scale with the stage interactive:Boolean (default = false) — Whether your scene should be interactive cameraType:String (default = "Target") — A String for the type of camera.
最终这些参数会在生成viewport3D对象的时候直接作为它的参数传给viewport3D的构造函数了。
viewport = new Viewport3D(viewportWidth, viewportHeight, scaleToStage, interactive);
发表评论
-
papervision3d-shaders-bumpmap 凹凸材质的实现
2009-10-11 13:56 1638... -
PaperVision3D里实现移动物体
2009-09-30 21:37 2261在PaperVision3D里实现移动物体的移动,下面是一个测 ... -
papervision dae animation(DAE角色动画控制)
2009-09-28 23:49 4235【http://www.bvumedia.com---flas ... -
AS3D寻路演示
2009-09-03 00:07 1778操作说明: Clear 清空目前的设置 Wall 单击这个标 ... -
Papervision3d在平面上点击生成物体
2009-08-15 17:34 1908下面我们练习Papervision3d在平面上点击生成一个物体 ... -
Papervision3dMultiView(多视窗视图)
2009-08-14 23:52 1612【http://www.bvumedia.com---flas ... -
COLLADA - 交互3D数字资产交换方案
2009-08-09 22:16 1576【http://www.newflash3d.com---f ... -
Papervision3d 分层(ViewportLayer)的概念示范
2009-08-05 20:54 1460我们在Papervision3d中有些 ... -
Glow Cube for Papervision3D 2.0 (发光箱体练习)
2009-08-05 20:15 1868【http://www.newflash3d.com---fl ... -
Papervision3d 与tweener类结合实现相机的运动变化
2009-08-01 17:52 1512通过Papervision3d 与tweener类结合实现相机 ... -
Papervision3d QuadTree四叉树相机的示例
2009-07-31 22:50 1927【http://www.newflash3d.com---fl ... -
papervision3d游戏人物旋转全方位观察(papervision3d camera orbit)
2009-07-25 01:10 3313Flash做3d三维游戏的可能性探讨:游戏人物的展示 【htt ... -
从3dsmax导出Dae模型到papervision3D
2009-07-24 20:28 9261从外部的三维软件,如3dsmax导入模型到papervisio ... -
papervision3d相机旋转(papervision3d camera orbit)
2009-05-21 22:26 4085代码如下: package { import flas ... -
RenderSessionData类分析
2009-02-15 23:39 1040RenderSessionData类分析 (渲染会话数据) 代 ... -
一步一步走进Papervision3D的世界(一):
2009-02-14 01:40 1400这个任务的确很深重,要一步步的深入。。。。。。不管怎么说,pa ... -
Papervision3D拖动物体
2009-01-13 02:29 2633【http://www.newflash3d.com---fl ... -
papervision3D深入研究之一:关于视图View
2009-01-12 12:23 1434在papervision3D的核心类里,papervision ... -
papervision3D核心结构分析(一、基本包和类)
2008-12-23 13:53 2563【http://www.newflash3d.com---fl ... -
从3dsmax烘培到papervision3D(二、输出和导入模型)
2008-12-23 01:43 3985接着从3dsmax烘培到papervision3D(一)说,我 ...
相关推荐
创建一个Papervision 3D项目的第一步是构建基本的框架类。这涉及继承自`Sprite`类、声明必要的Papervision 3D变量(如Viewport3D、Scene3D等)、初始化这些变量以及渲染场景。 - **步骤概述**: 1. **继承自Sprite*...
通过研究这些源码,开发者不仅可以掌握Papervision3D的基本用法,还能了解到如何将3D元素与2D界面融合,创建出富有层次感的Web应用。此外,对于想要深入了解3D图形编程的人来说,这些实例也是深入研究Papervision3D...
### Papervision3D.Essentials - 关键知识点解析 #### 一、Papervision3D概述 - **定义**: Papervision3D是一种强大的实时3D引擎,专为Flash设计。它能够将外部创建的3D模型渲染成Flash内容,无需终端用户下载或...
这个教程集合提供了深入学习Papervision3D所需的知识,包括PV3D的基本概念、对象模型、渲染技术以及与Flex框架的集成。 1. **Papervision3D基础**:Papervision3D是Flash平台上的3D引擎,它允许开发者在网页和桌面...
- **基本形状**:讲解如何使用Papervision3D创建常见的3D几何体,如立方体、球体、圆柱等。 - **操作3D对象**:介绍如何在3D空间中移动、旋转和平移这些基本形状。 #### 5. 材质 - **材质定义**:解释Papervision...
本学习资料主要涵盖了Papervision3D的基本概念、使用方法以及实例应用,旨在帮助初学者和有经验的开发人员深入理解这一强大的3D引擎。 1. **Papervision3D基础知识** - **ActionScript 3.0**: Papervision3D是建立...
Papervision3D的核心理念是提供一个强大的框架,让开发者能够轻松地创建互动式3D内容,如游戏、模拟、数据可视化和动态图形。 1. **基本概念** - **ActionScript 3.0**: Flash平台的编程语言,与AS2相比,具有更高...
首先,让我们深入理解PaperVision3D的基本概念。PaperVision3D使用ActionScript 3.0(AS3.0)进行编程,这是一种面向对象的脚本语言,相较于AS2.0,其性能显著提升,内存管理更加高效。通过PaperVision3D,开发者...
Papervision3D(简称PV3D)是Flash平台上最早的3D渲染引擎之一,它为开发者提供了在Web浏览器中构建三维互动体验的能力。这本书的中文翻译版本,对于国内的开发人员来说,无疑是一个学习PV3D技术的重要资源。 1. **...
《PaperVision3D SDK在Flex环境中的应用与实践》 PaperVision3D(简称PV3D)是一款基于Adobe Flex和ActionScript 3.0的开源3D图形库,它为Web开发者提供了在Flash Player环境中构建三维图形和交互式应用程序的能力...
标题"papervision3D"指的是这个框架的核心主题,即Papervision3D库,它是一个开源项目,由Carlos Ulloa领导的团队开发。Papervision3D为开发人员提供了一个完整的3D生态系统,包括场景管理、光照、纹理、摄像机控制...
在《初识Papervision3D》的博文中,作者可能会详细介绍如何设置基本的3D场景,包括初始化渲染器、创建摄像机和光源,以及添加3D对象。此外,还会涉及如何编写简单的动画,例如物体的平移、旋转等。博主可能会分享...
《Papervision3D——探索Flash3D引擎的魅力》 在数字媒体的世界里,Flash以其广泛的应用和灵活的表现力,一直是网页动画和互动设计的重要工具。然而,随着技术的发展,用户对三维(3D)视觉体验的需求日益增长,这...
《PV3d Papervision3D API文档与全景案例解析》 Papervision3D(PV3D)是一款强大的开源3D图形引擎,专为Adobe Flash平台设计,支持ActionScript 3.0(AS3),是Flash AS3中实现3D效果的重要工具。在本文中,我们将...
《Papervision3D API详解》 Papervision3D(PV3D)是Flash平台上的一款强大的3D图形库,它允许开发者在网页上创建丰富的、交互式的三维图形和应用程序。...希望本文对你的Papervision3D学习之路有所帮助。
Papervision3D_2.0.869.swc