Hi all
i using last away3d from svn and have trouble with z-sorting
take a look image(http://img528.imageshack.us/img528/7465/zsorttrouble.jpg)
for best understanding.
why if the camera is close to plane, plane breaks(1) and what happens
with moon if plane overrides moon(2).

Source code:
import away3d.containers.*;
import away3d.core.base.*;
import away3d.primitives.*;
import away3d.materials.*;
import away3d.core.utils.Cast;
import away3d.cameras.*;
import away3d.core.render.*;
import away3d.core.math.Number3D;

var move:Boolean = false;
var staticMove:Boolean = false;
var lastPanAngle:Number;
var lastTiltAngle:Number;
var lastMouseX:Number;
var lastMouseY:Number;

var scene:Scene3D;
var camera:HoverCamera3D;
var trackingItem:Cube;
var view:View3D;
var globe:Sphere;
var moon:Sphere;
var bgPlane:Plane;

initEngine();
initObjects();
initListeners();


function initEngine():void
{
        stage.align = StageAlign.TOP_LEFT;
        scene = new Scene3D();
        
        trackingItem = new Cube();
        trackingItem.width = trackingItem.depth = trackingItem.height = 5;
        trackingItem.x = 0;
        trackingItem.y = 0;
        trackingItem.z = 0;
        trackingItem.alpha = 0;
        
        camera = new HoverCamera3D();
        camera.z = -1400;
        camera.target = trackingItem;
        camera.panangle = 0;
        camera.tiltangle = 0;
        camera.targetpanangle = 0;
        camera.targettiltangle = 0;
        view = new View3D({stats:false, scene:scene, camera:camera,
renderer:Renderer.CORRECT_Z_ORDER});
        view.x = 495;
        view.y = 325;
        addChild(view);
}

function initObjects():void
{               
        globe = new Sphere({ownCanvas:true, material:"blue#white",
radius:150, segmentsH:18, segmentsW:26});
        view.scene.addChild(globe);
        
        moon = new Sphere({ownCanvas:true, material:"yellow#white",
radius:50, x:200, y:50, z:-300, segmentsH:6, segmentsW:6});
        view.scene.addChild(moon);
        
        bgPlane = new Plane({ownCanvas:true,
material:"CCCCCC#white",width:4000,height:4000,x:0,y:-150,z:0,segmentsW:4,
segmentsH:4});
        view.scene.addChild(bgPlane);
}

function initListeners():void
{
        addEventListener(Event.ENTER_FRAME, Update);
        stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
        stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
}

function MouseDown(event:MouseEvent):void
{
        lastPanAngle = camera.targetpanangle;
        lastTiltAngle = camera.targettiltangle;
        lastMouseX = stage.mouseX;
        lastMouseY = stage.mouseY;
        move = true;
}

function MouseUp(event:MouseEvent):void
{
        move = false;
}

function Update(event:Event):void
{
        var cameraSpeed:Number = 0.3;
        if (move)
        {
                camera.targetpanangle = cameraSpeed*(stage.mouseX - lastMouseX) 
+
lastPanAngle;
                camera.targettiltangle = cameraSpeed*(stage.mouseY - 
lastMouseY) +
lastTiltAngle;
        }
        
        camera.hover();
        view.render();
}

CORRECT_Z_ORDER and INTERSECTING_OBJECTS can't help =(
Сan you help me?

Reply via email to