`

D5的PV3D日记—DAY1

    博客分类:
  • pv3d
阅读更多

D5的PV3D日记—DAY1


让我的DAE动起来



渲染3D场景的必备工具:

摄象机、舞台、物体、渲染器。

所以,必须要通过PV3D来实现这些东西。在PV3D 2.0中,已经不需要在定义一个Sprite来做3D的“容器”,取而代之的是Viewport3D对象:
复制内容到剪贴板
代码:
import org.papervision3d.view.Viewport3D;
......
public var pViewPort:Viewport3D;

......

public function init():void
{
        pViewPort = new Viewport3D();
        addChild(pViewPort);
        ......
}
接下来,我们可以去实现摄象机、舞台和渲染器:
复制内容到剪贴板
代码:
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
......
public function init():void
{
        ......
        scene = new Scene3D();  //实现3D场景
        camera = new Camera3D(); // 实现3D摄象机
        camera.z = -5;       
                       
        renderer = new BasicRenderEngine(); //实现渲染引擎
        ......
}
这些内容都有了之后,就可以渲染场景啦,渲染的命令非常简单:
复制内容到剪贴板
代码:
renderer.renderScene(scene,camera,pViewPort);
整理一下~本段的代码如下:
复制内容到剪贴板
代码:
packge
{
        import org.papervision3d.cameras.Camera3D;
        import org.papervision3d.render.BasicRenderEngine;
        import org.papervision3d.scenes.Scene3D;
        import org.papervision3d.view.Viewport3D;

        public class Hello3D extends Sprite
        {
                public var scene:Scene3D;
                public var camera:Camera3D;
                public var pViewPort:Viewport3D;
                public var renderer:BasicRenderEngine;

                public function Hello3D()
                {
                        build3D();
                }
               
                private function build3D():void
                {
                        pViewPort = new Viewport3D();
                        addChild(pViewPort);
                       
                        scene = new Scene3D();
                        camera = new Camera3D();
                        camera.z = -5;       
                       
                        renderer = new BasicRenderEngine();
                }

        }

}
但是这样舞台上是什么都没有的,所以就算渲染也渲染不出什么东西来,嘿嘿。我们需要一个主角来进行渲染。开启SWFIT3D 5.0,随便拖一个正方体出来,然后保存为PV3D的格式,即可在保存目录中找到*.dae文件。把它拿到刚才编写的代码这边来用一下吧。

要导入并渲染dae文件,我们首先要声明DAE对象,并告诉他DAE文件的路径:
复制内容到剪贴板
代码:
import org.papervision3d.objects.parsers.DAE;
.......
        public var daeFile:DAE;
        daeFile = new DAE();
        daeFile.load("box.dae");
......
接下来,我们要把这个DAE对象加到场景中去
复制内容到剪贴板
代码:
scene.addChild(daeFile);
再测试影片,还是什么都没有吗?奇怪吧?我也在这里耽误了很久。原来PV3D是不会自动给DAE加材质的,所以,渲染出来的实际是一个透明的东西。我们下面来给这个CUBE加个简单的材质
复制内容到剪贴板
代码:
        import org.papervision3d.materials.ColorMaterial;
        import org.papervision3d.materials.utils.MaterialsList;
......
        public var cm:ColorMaterial;
......
        cm = new ColorMaterial(0xcccccc, .85, true);
                       
        daeFile = new DAE();
        daeFile.load("box.dae",new MaterialsList({all:cm}));
最终的代码看起来应该是这样的:
复制内容到剪贴板
代码:
package
{
        import flash.display.Sprite;
        import flash.events.Event;
        // 包含PV3D相关的东东
        import org.papervision3d.cameras.Camera3D;
        import org.papervision3d.materials.ColorMaterial;
        import org.papervision3d.materials.utils.MaterialsList;
        import org.papervision3d.objects.parsers.DAE;
        import org.papervision3d.render.BasicRenderEngine;
        import org.papervision3d.scenes.Scene3D;
        import org.papervision3d.view.Viewport3D;
       
        public class Hello3D extends Sprite
        {
                public var scene:Scene3D;                        // 场景
                public var camera:Camera3D;                        // 摄象机
                public var daeFile:DAE;                        // DAE
                public var pViewPort:Viewport3D;                // 视点
                public var renderer:BasicRenderEngine;                // 渲染引擎
                public var cm:ColorMaterial;                        // 材质
               
                public function Hello3D()
                {
                        build3D();
                        buildObject();
                }
               
                private function build3D():void
                {
                        pViewPort = new Viewport3D();        // 声明视点
                        addChild(pViewPort);
                       
                        scene = new Scene3D();                // 声明场景
                        camera = new Camera3D();                // 声明摄影机
                        camera.z = -5;                        // 焦距。。我的理解,自己调整来的,呵呵
                       
                        renderer = new BasicRenderEngine();        // 渲染引擎
                }
               
                private function buildObject():void
                {
                        cm = new ColorMaterial(0xcccccc, .85, true);                // 材质
                       
                        daeFile = new DAE();
                        daeFile.load("box.dae",new MaterialsList({all:cm}));        // 加载模型
                       
                        scene.addChild(daeFile);                                // 放进舞台
                       
                        this.addEventListener(Event.ENTER_FRAME,loop_rander);        // 触发动作
                }
               
                public function loop_rander(e:Event):void
                {
                        daeFile.rotationZ+=2;
                        daeFile.rotationY+=2;
                        daeFile.rotationX+=2;
                        renderer.renderScene(scene,camera,pViewPort);        // 将DAE旋转,并渲染
                }
        }
}
附件中有代码下载,包含DAE文件,不过不包含PV3D,开发环境为FLEX3

PV3D 2.0的打包可以到论坛3D专区下载。地址www.d5power.com
分享到:
评论

相关推荐

    D5Rpg 网页游戏开发套件

    1. **跨平台支持**:D5Rpg支持多种浏览器和操作系统,包括Windows、MacOS以及各种主流移动设备,确保游戏能在多个平台上顺畅运行。 2. **图形化编辑器**:内含直观的图形用户界面,使得开发者无需编写大量代码,...

    D5rpg网页游戏引擎

    D5rpg网页游戏引擎是一款专门用于开发2D角色扮演游戏(RPG)的网页平台,它为开发者提供了高效且易用的工具集,使得创建互动性强、画面精美的在线游戏成为可能。这款引擎的核心特性包括JavaScript编程语言的支持、...

    NXP NCj29D5 uwb DS652612-NCJ29D5 D-Type- Product Data Sheet(1.2)

    NXP NCJ29D5是一款集成度极高的单芯片脉冲无线电超宽带(IR-UWB)低功耗收发器集成电路,专为满足汽车环境中的安全测距应用而设计。该器件符合IEEE 802.15.4 HRP UWB PHY标准以及IEEE草案802.15.4z BPRF/HPRF UWB ...

    D5Power  API说明文档

    1. **图形和渲染**:API可能包含用于绘制2D和3D图形的方法,如精灵渲染、纹理映射、光照和阴影效果、动画控制等。开发者可以通过这些接口创建复杂的游戏场景和角色。 2. **物理引擎**:为了实现真实感的交互,D5...

    d5a3310——omron微动开关.pdf

    1. **D5A-1100/D5A-1200**:适用于M5柱塞型,重复精度1μm以下,动作力0.29N至0.49N。 2. **D5A-2100/D5A-2200**:同样适用于M5柱塞型,但重复精度放宽至3μm以下。 3. **D5A-3200/D5A-3300**:M8柱塞型,重复精度1...

    D5Fusion(3D家居设计工具)v0.9.5免费安装版(附使用手册)

    D5 Fusion是一款专为家居设计打造而成的设计软件,软件现在已经支持导入Sketchup文件,并且Sketchup文件进行3D渲染处理,操作简单,使用方便,需要的朋友可以前来本站下载。 软件介绍 D5 FUSION是一套空间设计VR...

    Suunto松拓SUUNTO D5用户手册.pdf

    Suunto松拓SUUNTO D5用户手册 Suunto松拓SUUNTO D5用户手册是为用户提供的详细指导手册,旨在帮助用户快速熟悉和掌握SUUNTO D5设备的使用。下面是根据手册中的标题、描述、标签和部分内容生成的相关知识点: 一、...

    D5rpg地图编辑器

    1. 地图绘制:D5rpg地图编辑器提供了丰富的地形元素,如草地、森林、山丘、水域等,设计者可以通过简单的拖放操作,快速构建出多样的地形地貌。同时,编辑器支持自定义贴图,使得地图设计更具个性化。 2. 层级管理...

    Deli得力DL-D5S&D5F智能云考勤机说明书.pdf

    1. 产品介绍:DL-D5S&D5F智能云考勤机是一种智能的云考勤机,具有摄像头、电源插孔、Reset(复位)孔、安装卡口、液晶屏、支架等组件。 2. 安装指南:在安装考勤机前,请检查产品外观是否完好无损,清点所有配件。...

    [影音娱乐]D5Power DotK 网页游戏引擎 v0.4_d5power.zip

    1. **引擎概述**: D5Power DotK 是D5Game公司推出的一款网页游戏开发框架,它基于JavaScript和HTML5技术,支持跨平台运行,可在各种现代浏览器中流畅运行。其核心设计理念是简化游戏开发流程,让开发者能够专注于...

    D5Rpg游戏开发套件

    《D5Rpg游戏开发套件详解》 D5Rpg是一款专为游戏开发者设计的高效、便捷的游戏开发工具,其核心目标是帮助开发者快速构建2D角色扮演游戏(RPG)。该开发套件包含了丰富的源码和实用工具,旨在简化游戏开发流程,...

    D5power 5.3

    1. **场景构建**:它提供了丰富的3D建模工具和素材库,用户可以通过拖放方式轻松创建游戏场景。编辑器支持光照、纹理、物理等高级设置,确保了场景的真实感和交互性。 2. **角色与动画**:内置的角色编辑器允许...

    Fast-Report For D5

    FastReport For D5

    影驰gts450重炮手D5 bios

    影驰gts450512MBTC1G重炮手D5 bios, 512MBTC1G原版提取,可用于假卡恢复

    D5Power RPG网页游戏引擎

    1. 资源编辑器:D5RpgEditor.swf是D5Power的资源编辑工具,用于图形、音频、脚本等游戏资源的导入、编辑和导出,大大提升了开发效率。 2. EditorUI:这部分包含用户界面的定义和控制,允许开发者定制编辑器的外观和...

    S—D5舵机资料

    1. **飞思卡尔智能车比赛**:作为指定配件之一,S-D5舵机被广泛应用于智能车的转向控制,确保车辆能够精确地按照预定路径行驶。 2. **小型机器人项目**:无论是教育机器人还是娱乐机器人,S-D5舵机都能提供可靠的...

    文件的d5验证

    1. **生成MD5值**:文件创建者或发布者首先计算原始文件的MD5值,这通常通过运行MD5计算软件完成。 2. **发布MD5值**:将生成的MD5值公布在可信赖的源上,以便用户下载后进行比对。 3. **下载文件**:用户从网络上...

    EhLib v4.5.55 Full Source for D5-D2009

    EhLib v4.5.55 Full Source for D5-D2009 我上传资源到此只是为了方便自己,不是为了分享,更不是为大家服务,虽然你有权下载,但那仅仅出于您自愿。至于该资源原作者,如果认为我侵犯您的利益,请找CSDN官方删除...

    Nikon D5 SDK

    尼康D5 SDK(Software Development Kit)是一款专为摄影师、软件开发者和图像处理专业人士设计的工具包,旨在帮助他们利用尼康D5高级数码单反相机的功能进行深度开发和定制。尼康D5 SDK提供了丰富的API(应用程序...

    友晶DE1-D5M verilog程序

    标题中的“友晶DE1-D5M verilog程序”指的是基于友晶科技(Altera)的DE1开发板,利用D5M图像传感器进行图像采集,并通过Verilog硬件描述语言编程,实现图像数据的处理和VGA显示。Verilog是一种广泛应用的硬件描述...

Global site tag (gtag.js) - Google Analytics