Thank you Rob, now it works. Cheers, ConteZero
On Oct 11, 6:21 pm, Rob Bateman <[email protected]> wrote: > Hey ConteZero > > sorting bug should now be fixed in the svn, along with the crash bug (that > was previously mentioned in another mail). please update your source and let > us know if that fixes the problem! > > cheers > > Rob > > > > On Sun, Oct 11, 2009 at 9:10 AM, ConteZero <[email protected]> wrote: > > > I've updated Away3d Lite to svn revision r1941 (quad support is > > fantastic), but I've found a sorting problem. > > If you mix on the same scene a primitive based on quad (cube6) with a > > triangle based primitive (cone), sorting is wrong, quad primitive is > > always rendered in front of the other primitive. > > I've modified the Basic_SceneSetup file to show the problem. > > I've also found a crash bug (not present in old revisions), to avoid > > crash I've added a render() call after primitive creation. > > > package > > { > > import away3dlite.cameras.*; > > import away3dlite.containers.*; > > import away3dlite.materials.*; > > import away3dlite.primitives.*; > > > import net.hires.debug.Stats; > > > import flash.display.*; > > import flash.events.*; > > > [SWF(backgroundColor="#000000", frameRate="60", quality="MEDIUM", > > width="800", height="600")] > > > public class Basic_SceneSetup extends Sprite > > { > > //signature swf > > [Embed(source="assets/signature_lite.swf", symbol="Signature")] > > public static var SignatureSwf:Class; > > > //engine variables > > private var scene:Scene3D; > > private var camera:Camera3D; > > private var view:View3D; > > > //signature variables > > private var Signature:Sprite; > > private var SignatureBitmap:Bitmap; > > > //material objects > > private var material:ColorMaterial; > > > //scene objects > > private var plane:Plane; > > private var cone:Cone; > > private var cube:Cube6; > > > /** > > * Constructor > > */ > > public function Basic_SceneSetup() > > { > > init(); > > } > > > /** > > * Global initialise function > > */ > > private function init():void > > { > > initEngine(); > > initMaterials(); > > initObjects(); > > initListeners(); > > } > > > /** > > * Initialise the engine > > */ > > private function initEngine():void > > { > > scene = new Scene3D(); > > > //camera = new Camera3D({z:-1000}); > > camera = new Camera3D(); > > camera.z = -2000; > > > //view = new View3D({scene:scene, camera:camera}); > > view = new View3D(); > > view.scene = scene; > > view.camera = camera; > > view.camera.x = 300; > > > //view.addSourceURL("srcview/index.html"); > > addChild(view); > > > //add signature > > Signature = Sprite(new SignatureSwf()); > > SignatureBitmap = new Bitmap(new BitmapData > > (Signature.width, Signature.height, true, 0)); > > stage.quality = StageQuality.HIGH; > > SignatureBitmap.bitmapData.draw(Signature); > > stage.quality = StageQuality.MEDIUM; > > addChild(SignatureBitmap); > > > addChild(new Stats()); > > } > > > /** > > * Initialise the materials > > */ > > private function initMaterials():void > > { > > material = new ColorMaterial(0xCC0000); > > } > > > /** > > * Initialise the scene objects > > */ > > private function initObjects():void > > { > > //plane = new Plane({material:material, width:500, > > height:500, > > yUp:false, bothsides:true}); > > plane = new Plane(); > > plane.material = material; > > plane.width = 500; > > plane.height = 500; > > plane.yUp = false; > > plane.bothsides = true; > > plane.z = 600; > > // scene.addChild(plane); > > cone = new Cone(); > > cone.height = 200; > > cone.radius = 100; > > cone.z = -200; > > scene.addChild(cone); > > // view.render(); > > cube = new Cube6(); > > cube.width = 200; > > cube.height = 200; > > cube.depth = 200; > > cube.z = 200; > > scene.addChild(cube); > > view.render();//added to avoid player crash > > } > > > /** > > * Initialise the listeners > > */ > > private function initListeners():void > > { > > addEventListener(Event.ENTER_FRAME, onEnterFrame); > > stage.addEventListener(Event.RESIZE, onResize); > > onResize(); > > } > > > /** > > * Navigation and render loop > > */ > > private function onEnterFrame( e:Event ):void > > { > > // plane.rotationY += 2; > > > view.render(); > > } > > > /** > > * stage listener for resize events > > */ > > private function onResize(event:Event = null):void > > { > > view.x = stage.stageWidth / 2; > > view.y = stage.stageHeight / 2; > > SignatureBitmap.y = stage.stageHeight - Signature.height; > > } > > } > > } > > -- > Rob Bateman > Flash Development & Consultancy > > [email protected]
