热门搜索:安全 黑客 方法 简单方法 部分 官方 国防 相信 盲目 广告 写给 科大
设计专区导航: Photoshop CorelDraw Fireworks 视角 网站设计 欣赏 3ds Max Flash AutoCAD Maya 音频视频 其他 设计资讯
您现在的位置:嘉文IT资讯网 >> 设计专区 >> 3D/动画 >> Flash >> 浏览文章
Flash |
Flash AS3.0教程:Papervision3D基本原理
作者:佚名 日期:2010年08月09日 来源:本站原创  【字体: 】   我要评论(5)
核心提示: 每个Papervision3D程序都要依赖于4个类,Viewport3D, Scene3D, Camera3D ,和BasicRenderEngine. 先看一下,下面就是经典的papervision3D程序格式: package{ import flash.display.Sprite; import org.papervision3d.c
每个Papervision3D程序都要依赖于4个类,Viewport3D, Scene3D, Camera3D ,和BasicRenderEngine.
先看一下,下面就是经典的papervision3D程序格式:

package{
import
flash.display.Sprite;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
public class Main extends Sprite{
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera:Camera3D;
private var renderer:BasicRenderEngine;

public function Main(){
initPapervision3D();
}

private function initPapervision3D():void{
viewport = new Viewport3D();
addChild(viewport);

scene = new Scene3D();
camera = new Camera3D();
renderer = new BasicRenderEngine();

renderer.renderScene(scene, camera, viewport);
}
}
}

  Viewport3D:(3D视窗)

  Viewport3D就象是papervision3D世界中的一个窗口.窗口允许你看到外面,但他们没提供其它函数.你可以定位一个窗口在墙上, 改变它的宽度和高度,同样的道理也存在于Viewport3D上,你可以改变Viewport3D的x,y,width,height.,它的功能就是在它里面放一个3D场景.要使用Viewport3D,创建它并将它放在舞台上.
private var viewport:Viewport3D = new Viewport3D();
addChild(viewport);
查看下面的Viewport3D的省缺参数,你可以根据自已的喜好来调节.
Viewport3D(viewportWidth:Number = 640, viewportHeight:Number = 480,
autoScaleToStage:Boolean = false, interactive:Boolean = false,
autoClipping:Boolean = true, autoCulling:Boolean = true)

  Scene3D:(3D场景)

  继续使用窗口的比喻,一个Scene3D将包含你通过窗口看到的所有东西.地面,天空及之间的所有东西.然而,这个Scene3D仍然是一个空的3D空间,你不得不添加地面,天空,树等到你的Scene3D.下面创建了一个Scene3D.
private var scene:Scene3D = new Scene3D();

  Camera3D(3D照相机)

  一个窗口和窗外的世界是漂亮的, 但如果没有一个人来兴赏它们的漂亮则毫无意义.你很幸运,Papervision3D开发者创建了照相机,捕获这一切的动作.一个Camera3D允许你根据你想捕获的动作设置其x,y,z属性.想象一下第一人称的枪和飞行模似器.(一个三维游戏,译者注).你移动你的角色围绕周围的空间调整当前的位置. 同样的主意也可用于Camera3D,你可以在整个场景移动相机调节当前位置.

  Papervision3D提供三个照相机来实现不同的功能.

  Camera3D:需要一个看着的目标,无论在任何位置都看着这个目标.

  FreeCamera3D:在3D空间的每一个角度和方向自由移动.包含的方法如:yaw(), pitch(), and roll()来调节相机的视角,而moveForward(), moveBackward(); moveLeft(), moveRight(), moveUp(), and moveDown() 基于视觉调整相机的位置.例如,你将相机放到一个站立的人面前,然后调用moveBackward(),你将移动并远离人的脸.另一方面,如果你将相机定位到人的头上,调用 pitch()向下倾斜看到人的头发,然后调用moveBackward()方法,你将远离人的头发到天空中去.
FrustumCamera3D:象FreeCamera3D一样的移动,但只能是视窗中提供的对象,你可以调节远距离和近距离.

BasicRenderEngine
在papervision3D世界中你是神.你可以随心所欲地开始和停止引擎.BasicRenderEngine通过你选择的Viewport3D中Camera3D的位置的Scene3D.

private var renderer:BasicRenderEngine = new BasicRenderEngine(); 
//通常在场景的 Event.ENTER_FRAME 事件中 
renderer.renderScene( scene, camera, 
viewport ); 

即使你有多个场景,视窗或照相机,你也只需用一个BasicRenderEngine来渲染3D效果:

//A snippet of multiple scenes, cameras, and viewport handled by one 
renderer renderer.renderScene( scene, camera, viewport ); 
renderer.renderScene( scene2, camera2, viewport2 );

Tags:系统 | 安全 | 编程 | 数据库 | 设计 | 网络 | 通信 | 办公 | 服务器 | 软件应用
发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
上一篇:Flash AS3教程:组件的组合运用制作FLV播放器
下一篇:没有了
相关文章列表
·Flash AS3教程:组件的组合运用制
·Adobe Flash CS5可将动画转为HTM
·Flash 播放进度控制实例
·flash 组件开发
·Adobe Flash Builder 4功能改进
·Flash cs5 新增的功能
·Flash AS3.0教程:Papervision3D
·Flash动画基础知识
·Flash打造图片平面墙
·Flash的FC模拟器
网友评论
最新新闻
· Flash AS3.0教程:Papervision3D
· Flash AS3教程:组件的组合运用制
· Flash CS4入门教程:下雪效果的制
· Adobe Flash CS5可将动画转为HTM
· Flash 播放进度控制实例
· Flash动画基础知识
· flash 组件开发
· Flash打造图片平面墙
· Adobe Flash Builder 4功能改进
· Flash的FC模拟器
推荐新闻
热门新闻
· Flash AS3.0教程:Papervision3D
· Flash AS3教程:组件的组合运用制
· Flash CS4入门教程:下雪效果的制
· Adobe Flash CS5可将动画转为HTM
· Flash 播放进度控制实例
· Flash动画基础知识
· flash 组件开发
· Flash打造图片平面墙

关于我们 | 联系我们 | 版权申明 | 广告服务 | 网站地图 | 免责条款

Copyright 2010-2015 Powered by jiawenit.com,嘉文网络科技开发 All Rights Reserved.
服务电话:15095181829 E-Mail:suijiawen@163.com
售前咨询服务QQ:点击这里给我发消息 售后服务技术支持QQ: 点击这里给我发消息点击这里给我发消息