flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:为什么离摄像机近的三角形会不显示

为什么离摄像机近的三角形会不显示
flab3d (2009-03-10 09:33:55)

[code]
package {
     import flash.display.Sprite;
     import flash.events.*;
     
     import org.papervision3d.cameras.Camera3D;
     import org.papervision3d.cameras.SpringCamera3D;
     import org.papervision3d.core.math.Number3D;
     import org.papervision3d.materials.WireframeMaterial;
     import org.papervision3d.objects.primitives.PaperPlane;
     import org.papervision3d.objects.primitives.Plane;
     import org.papervision3d.render.BasicRenderEngine;
     import org.papervision3d.scenes.Scene3D;
     import org.papervision3d.view.Viewport3D;
     
     [SWF(width="400", height="250", backgroundColor="#000000", frameRate="60")]
     public class FlyPlane extends Sprite
     {
           public var springCamera:SpringCamera3D=new SpringCamera3D();
           public var camera:Camera3D=new Camera3D();
           public var viewport:Viewport3D=new Viewport3D(640,480,true,true);
           public var scene:Scene3D=new Scene3D();
           public var render:BasicRenderEngine=new BasicRenderEngine();
           public var plane:Plane=new Plane(new WireframeMaterial() ,100000,100000,10,10);
           public var flyPlane:PaperPlane=new PaperPlane(new WireframeMaterial());
           public var flyFlag:int=0;
           public function FlyPlane()
           {
                 init();
           }
           public function init():void{
                 //camera.z=-4000;
                 //camera.fov=15;
                 springCamera.target=flyPlane;
                 springCamera.mass = 10;
                 springCamera.damping = 10;
                 springCamera.stiffness = 5;
                 //camera.lookOffset = new Number3D(0, 0, 500);
                 springCamera.positionOffset = new Number3D(0, 0, -500);
                 
                 camera.y=200;
                 
                 flyPlane.y=100;
                 flyPlane.material.doubleSided=true;
                 plane.material.doubleSided=true;
                 scene.addChild(flyPlane);
                 plane.rotationX=90;
                 scene.addChild(plane);
                 addChild(viewport);
                 stage.addEventListener(Event.ENTER_FRAME,stageEnterFrameHandler);
                 stage.addEventListener(KeyboardEvent.KEY_DOWN,stageKeyDownHandler);
                 stage.addEventListener(KeyboardEvent.KEY_UP,stageKeyUpHandler);
           }
           public function stageEnterFrameHandler(e:Event):void{
                 render.renderScene(scene,camera,viewport);
                 fly();
                 //plane.rotationX++;
                 camera.z+=10;
           }
           public function stageKeyDownHandler(e:KeyboardEvent):void{
                 
           }
           public function stageKeyUpHandler(e:KeyboardEvent):void{
           
           }
           public function fly():void{
                 switch(flyFlag){
                       case 1:flyPlane.z+=100;break;
                       case 5:flyPlane.z+=10;break;
                 }
           }
     }
}

[/code]
代码如上,为什么当摄像机移动时,屏幕下方的块总是不显示?


flash 3d 研究所 DDM君
(2009-03-10 10:17:17)
这篇教程中间一点有讲
http://www.flab3d.com/tutorials_06_Zsorting.php


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了