`

pv3d入门及贴图

阅读更多

http://dmh2002.com/post/67.html

  首先,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);       
    }

   显示效果:http://flex.unbe.cn/PV3D/Try06_ColorMaterial2/Main.swf

  
现在可以开始讲讲基本的材质贴图了。其实我们上面的程序就已用到了线框材质贴图。
  
除了线框材质外,PV3D还支持颜色材质,位图材质等,所有这些材质贴图的类都在org.papervision3d.materials 包里。
   试试位图文件材质,把new ColorMaterial(0xFFFF00);改成new BitmapFileMaterial(”texture.jpg”);
   这里的”texture.jpg”是我的贴图文件路径,你需要根据你的需要设置,记得这个路径是url格式,不是文件系统路径。
   显示效果:http://flex.unbe.cn/PV3D/Try06_ColorMaterial4/Main.swf

   dmh2002注:本文在原文基础上略有改变,如果需要以上代码的完整源文件,可参看
   Papervision3D入门-创建PV3D基本内置模型(球体,立方体,柱状体等)

   原文地址:http://www.unbe.cn/blog/?p=321

分享到:
评论

相关推荐

    PV3D入门之BOY(源码)

    【PV3D入门之BOY(源码)】是一篇关于使用PV3D(Panda3D)框架进行3D编程的教程,其中"BOY"可能是项目或示例的名称。PV3D,全称Panda3D for Python,是Python的一个3D渲染引擎,它基于C++的Panda3D库,为开发者提供了...

    pv3D, DAE贴图

    在3D图形渲染领域,pv3D和DAE模型贴图是两个重要的概念,它们在构建虚拟场景和游戏开发中发挥着关键作用。本文将详细阐述这两个技术,并结合实际应用来解析它们的工作原理和实现方法。 pv3D,全称为Papervision3D,...

    pv3d加载,DAE文件,贴图

    4. **pv3D中的贴图处理**:在pv3D中,贴图的加载和应用涉及到几个关键步骤: - 加载纹理图像:首先需要获取模型所需的纹理图片,并使用Image对象加载。 - 创建纹理对象:在WebGL中,每个贴图都需要一个对应的...

    pv3d安装,简单运用的实例

    总的来说,这个压缩包提供了一个完整的PV3D入门示例,涵盖了安装、基本代码结构、资源管理和最终输出等方面,非常适合对PV3D感兴趣的初学者进行实践和学习。通过深入研究这些文件,你将能够掌握PV3D的基础知识,并...

    开源3d引擎 pv3d源文件(AS3.0版)及demo.rar

    《开源3D引擎PV3D在AS3.0中的应用详解》 PV3D,全称为Papervision3D,是一款基于ActionScript 3.0的开源3D图形渲染引擎,它允许开发者在Adobe Flash平台上创建丰富的3D交互内容。PV3D的出现极大地拓宽了Flash的使用...

    PV3D太阳系

    "PV3D太阳系"是一个基于PV3D( Papervision3D)技术构建的交互式3D模拟项目,主要用于展示太阳系中的行星运动。PV3D是ActionScript 3(AS3)的一个库,它为Flash平台提供了强大的3D图形渲染能力。在这个项目中,...

    pv3d类和3D模型和贴图以及简单测试代码

    在“pv3d类和3D模型和贴图以及简单测试代码”这个主题中,我们将关注`pv3d`的核心组件,3D模型的导入,贴图的应用,以及如何通过简单的测试代码来实现3D场景。 首先,`pv3d`类库是基于AS3的,这意味着它可以直接在...

    PV3D学习资料-----PV3D Essentials(汉语)

    **PV3D学习资料——PV3D Essentials(汉语)** PV3D,全称为Papervision3D,是一款强大的开源3D图形引擎,专为Adobe Flash平台设计。它允许开发者在网页上创建复杂的3D场景,游戏以及交互式应用程序,从而突破了...

    pv3d flash 3d源码

    **PV3D Flash 3D 源码详解** PV3D,全称为Papervision3D,是一个开源的Flash 3D图形渲染引擎,它允许开发者在Adobe Flash Player环境中构建复杂的三维交互式应用程序。PV3D为Web开发者提供了一个强大的工具,使他们...

    PV3D官网 海底世界效果

    【PV3D与Flash技术】 PV3D全称为Papervision3D,是一个基于Adobe Flash平台的开源三维(3D)图形库。这个技术允许开发者在网页上创建丰富的、交互式的3D场景,为用户提供一种超越传统2D体验的新颖视觉效果。PV3D在...

    PV3D中文手册

    **PV3D中文手册**是针对PV3D(Pervasive 3D)技术的一份详细文档,旨在帮助用户理解并有效地使用这个强大的3D图形编程库。PV3D是基于ActionScript 3的,因此它与Adobe Flash Player和Adobe AIR平台紧密集成,允许...

    pv3d最新资源包

    "pv3d最新资源包"是一个集合了PV3D(Player3D)最新开发资源的压缩文件,这个包是在09版本的基础上进行了更新,确保所有内容都是最新的。PV3D是一种基于Adobe Flash Platform的3D图形编程库,它允许开发者在Flash ...

    PV3D实例—交互

    在“Papervision3D入门-基础交互式PV3D程序.doc”文档中,可能包含了以下内容: 1. **基础交互组件**:讲解如何创建基本的交互元素,例如点击事件监听器,通过添加鼠标事件处理函数来响应用户的点击行为。 2. **...

    用于flash中的PV3D 组件包

    在给定的“用于flash中的PV3D组件包”中,我们将探讨PV3D(Papervision3D)如何与Flex结合,以及如何利用它来创建震撼的3D效果。 PV3D是Adobe Flash平台上的一款强大的3D引擎,它为开发者提供了在Flash Player中...

    pv3d简单全景

    本项目“pv3d简单全景”显然是使用PV3D库来构建一个基本的全景体验,下面我们将详细探讨相关的知识点。 1. **PV3D库**:Papervision3D是AS3中的一个强大工具,它为开发人员提供了一个在Flash中创建3D图形的平台。PV...

    as3pv3d开发引擎

    **PV3D(Paper Vision 3D)**是基于Adobe Flash Platform的AS3(ActionScript 3)3D开发框架,它为Web开发者提供了一种在Flash Player环境中创建交互式三维图形的可能性。PV3D的强大之处在于,它允许开发者利用...

    pv3d文档(chm)

    **PV3D文档(chm)** PV3D全称为Papervision3D,是一个开源的Flash平台3D图形库,允许开发者在Adobe Flash Player环境中创建丰富的三维交互体验。这个"PV3D help (英文) CHM格式 API帮助文档"是针对Papervision3D的...

    PV3D的SWC、AS文件和英文API

    **PV3D技术详解** PV3D,全称 Papervision3D,是一款基于Adobe Flash Platform的开源3D图形库,允许开发者在Flash Player或Adobe AIR环境中创建丰富的三维交互体验。SWC和AS文件是PV3D开发中的关键组件。 **SWC...

    pv3d开发工具as3 编写的

    PV3D(Papervision3D)是一种基于ActionScript 3.0的开源库,用于在Adobe Flash环境中创建3D图形和交互式应用程序。它为开发者提供了在Web上构建三维场景、游戏以及复杂的可视化应用的可能性。AS3(ActionScript 3.0...

Global site tag (gtag.js) - Google Analytics