Keep in mind that propper modeling fixes a big deal of these problems. also you can set renderes per objects, instead of the whole scenery. take a detailed look at Rob's room demo code...
Fabrice On Feb 1, 2010, at 11:49 AM, Aurélien Nauwelaers wrote: > The default renderer has inaccurate but fast z-sorting. You need to > switch to a better but slower renderer. You can do this by typing : > _view3D.renderer = Renderer.CORRECT_Z_ORDER; > or > _view3D.renderer = Renderer.INTERSECTING_OBJECTS; (recalculates meshes > when intersections are detected, but needs a lot of processing power). > > Hope this helps. > BTW I'm french too ;) > > On 31 jan, 22:27, loiseleur <[email protected]> wrote: >> Hello, >> >> I'm quite new to Away3D and i'm testing a few stuff for a future >> project. >> Before, i used a little papervision3D but this time my client want me >> to work with away3D >> I made a 3D model with blender (quite simple because 3D is not really >> my friend ^-^) and I load its in flash. >> Unitl this, no problem. >> >> But when rendering in flash, the result is a little bit uggly as you >> can see here (the first image is blender model and the other four >> the .swf) :http://beta.loiseleur.org/away3D/ >> >> I don't really konw why but the wheels, the body and the ground are >> mixing together. >> I try to find a solution on the net (and in class documentation) with >> no results... >> >> Here is the code if necessary (maybe i made a mistake) : >> >> public class Trial extends MovieClip { >> >> ///////////// >> // PROPERTIES >> private var _scene3D :Scene3D; >> private var _camera3D :Camera3D; >> private var _view3D :View3D; >> private var _container3D :ObjectContainer3D; >> private var _collada :Collada; >> private var _loader :Loader3D; >> private var _model :Object3D; >> ///////////// >> >> ///////////// >> //// METHODES >> >> ///////////// Loader3DEvent.LOAD_SUCCESS >> private function onDAESuccess( >> p_eventObject:Loader3DEvent):void { >> >> // shortcut to collada 3D object >> _model = _loader.handle; >> >> // update car material >> var wcm:WireColorMaterial = new WireColorMaterial( >> 0xFF6666, >> { wirecolor:0xFF8888 } ) >> >> _model.materialLibrary.getMaterial('car_png_001').material = wcm; >> } >> >> ///////////// Event.ENTER_FRAME >> private function onRender( p_eventObject:Event ):void { >> /* >> _container3D.yaw ( 5 ); >> _container3D.roll ( 5 ); >> _container3D.pitch( 5 ); >> */ >> >> // render 3D scene >> _view3D.render(); >> } >> >> ///////////// >> private function createScene():void { >> >> // create an object container to group the objects >> on the scene >> _container3D = new ObjectContainer3D(); >> _scene3D.addChild( _container3D ); >> >> // collada >> _collada = new Collada(); >> _collada.scaling = 400; >> _collada.centerMeshes = true; >> >> _loader = new Loader3D(); >> _loader.loadGeometry( "car.dae", _collada ); >> _loader.addEventListener( Loader3DEvent.LOAD_SUCCESS, >> onDAESuccess ); >> _container3D.addChild( _loader ); >> } >> >> ///////////// >> private function init3D():void { >> >> // create a new scene where all the 3D object will >> be rendered >> _scene3D = new Scene3D(); >> >> // create a new camera, passing some initialisation >> parameters >> _camera3D = new Camera3D({zoom:15, focus:30, x:100, >> y:300, >> z:-200}); >> _camera3D.lookAt( new Number3D( 0, 0, 0 ) ); >> >> // create a new view that encapsulates the scene and >> the camera >> _view3D = new View3D( { scene:_scene3D, >> camera:_camera3D } ); >> >> // center the viewport to the middle of the stage >> _view3D.x = 300; >> _view3D.y = 200; >> addChild(_view3D); >> } >> ///////////// >> >> ///////////// >> // CONSTRUCTOR >> public function Trial(){ >> >> // initialise Away3D >> init3D(); >> >> // create the 3D objects >> createScene(); >> >> // render >> addEventListener( Event.ENTER_FRAME, onRender ); >> } >> ///////////// >> >> } >> >> Thanks for the answers and thanks for this great tool. ;) >> Sorry for my English but i'm french...
