pv3d入门及贴图
发布时间:2020-12-15 06:28:23 所属栏目:百科 来源:网络整理
导读:首先,PV3D的3D舞台需要一个容器,用来容纳整个3D舞台。 这个容器至少是Sprite类型的,因为Sprite是AS3或者说Flash9里,显示对象的最小单位,这也是我们的主类一定要继承自Sprite的原因,因为它需要被显示。 // 创建3D舞台的容器_container = new Sprite();_
首先,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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |