4 如何显示PV3D中的3D物体
来源:互联网 发布:梦100日日树涉数据 编辑:程序博客网 时间:2024/05/23 11:46
如何显示PV3D中的3D物体
在PV3D中有四大核心类,分别是:
Ø Scene3D场景类。所有3D物体的容器,要想在Flash中显示,就必须将3D物体添加到场景中。
Ø Viewport3D窗口类。它规定了摄像机能拍摄的范围,超出这个范围的3D物体将不会显示。同时摄像机将拍摄的物体映射到窗口中。
Ø Camera3D摄像机类。拍摄场景中的3D物体。
Ø BasicRenderEngine基本渲染引擎类。将摄像机拍摄的物体显示在窗口中。
要在Flash中显示3D物体,就要使用这四个类。
我们主要关注一下Viewport3D类,它保存引擎将3D场景中的三维图像映射到Flash的二维平面的图像。相当于我们的显示器,我们经常看到3D游戏画面是三维的,但显示器是平面的,3D引擎的作用就是产生这个视觉效果。
也就是说场景中的3D物体将会被映射到窗口中。
下面为创建窗口代码:
Viewport3D(vidth, height, resize, false);
Ø 创建窗口有4个参数,前2个位指定窗口大小,为0时,默认为整个stage尺寸。
Ø 第3个参数为窗口大小改变时是否会重绘。
Ø 最后1个参数指示是否相应鼠标事件。
为了清楚的了解PV3D中的对象是如何在Flash中显示的,我们来看一段代码。
代码清单1
package{ import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import flash.display.StageAlign; import flash.display.StageScaleMode; /** * ... * @author yl */ [SWF(width="640",height="480",backgroundColor="#FFFFFF")] public class Main extends Sprite { private var sphere:Sphere//定义一个球体 //定义四大核心类 private var scene:Scene3D; private var viewport:Viewport3D; private var camera:Camera3D; private var render:BasicRenderEngine; public function Main():void { if(stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE,init); //entry point stage.scaleMode= StageScaleMode.NO_SCALE; stage.align= StageAlign.TOP_LEFT; scene= new Scene3D(); viewport= new Viewport3D(640, 480); camera= new Camera3D(); render= new BasicRenderEngine(); sphere= new Sphere(null, 320, 12, 8); //将生成的球体加载进场景,以便摄像机能拍摄到 scene.addChild(sphere); //由于PV3D中的物体都被映射到窗口,因此只需要将窗口加载进文档类即可 addChild(viewport); //将摄像机拍摄到场景中的物体映射到窗口中 render.renderScene(scene,camera, viewport); } }}
运行效果如下。
下面我们通过一幅图来了解PV3D中的3D物体是如何在Flash舞台显示的。
使用PV3D要使用4个核心类,摄像头通过窗口将场景中的3D物体(3D物体需要通过addChild方法加载进场景中)拍摄下来,渲染器将拍摄下来的3D物体转换为2D物体,并映射到窗口中。最后,将窗口加载到文档类(FD中为启动类)中显示。
- 4 如何显示PV3D中的3D物体
- ugui物体随着摄像机跟随3d场景物体显示
- 3 Flash如何显示物体
- pv3d 做的3d game
- 如何在3D场景中选择物体并显示轮廓效果
- unity 3d如何隐藏物体
- [Unity 3D教程]教你如何在3D场景中选择物体并显示轮廓效果
- 【flash】pv3d制作3d模型查看器
- 实现3d物体与Ugui的混合显示
- 3D物体
- 渲染管线计算机如何绘制3d物体
- Unity如何限制3D物体的旋转角度
- papervision3d 中的坐标(3) 3D物体与坐标
- 3D场景中选取场景中的物体。
- 3D场景中的物体跟随鼠标移动
- unity3D 旋转3D物体
- 【Unity 3D 5.6版本使用(3)】点击物体弹出窗口显示状态
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果
- 注意 ExecuteNonQuery() 返回值 问题
- 数字证书在WEB应用中登录 .
- POJ 2251 Dungeon Master BFS
- Huffman压缩解压的思考
- jQuery.validate 用法
- 4 如何显示PV3D中的3D物体
- 架构设计:生产者/消费者模式
- shared pool的优化
- 我的Android学习笔记之三:文档编辑器
- LINUX共享库:LD_LIBRARY_PATH和ld.conf
- OSI模型
- 浏览器引擎相关资料
- LCA问题 poj1330 / poj1470
- 关于盘点的设计