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...
