1 Reply Latest reply: Nov 6, 2011 1:57 PM by pdesmeules RSS

    DAE loaded successfully but scaled

    pdesmeules Community Member

      Hi, I successfully loaded a dae model I did in 3dsmax. The model doesn't have the same dimensions in the proscenium viewport than in max.  I wonder if there is a way to load it in the correct scale i.e. the one I work with in max.

       

      I tried to scale the model to its correct dimensions using the newly created sceneMesh boundingBox and a strange thing happens. If I access the sceneMesh boundingBox just after loading to calculate the scale ratios, the scale transformation (mesh.transform.appendScale...) won't apply. If I hardcode the scale ratios without accessing the sceneMesh boundingBox, It works.

       

      How should I do to scale my model in its original dimensions ?

       

      You can reproduce by replacing onLoad mehod of Tutorial08_LoadedAnimation by this one. The model is scaled by a factor of 2 (x,y,z). If you uncomment the two lines above, you'll see that the model is not scaled at all + it is broken.

       

      public function onLoad( event:Event ):void {

                                    var node:SceneMesh = new SceneMesh();

                                    scene.addChild( mesh );

                                    var manifest:ModelManifest = loader.model.addTo( mesh );

                                    var bounds:BoundingBox = new BoundingBox();

                                    //bounds = mesh.boundingBox;

                                    //mesh.transform.appendScale(18 / (bounds.maxX - bounds.minX),12 / (bounds.maxY - bounds.minY), 12 / (bounds.maxZ - bounds.minZ));

                                    mesh.transform.appendScale(2,2,2);

       

                                    animations = loader.model.animations;

                                    for each ( var anim:AnimationController in animations ) {

                                              anim.bind( scene );

                                    }

       

                                    for each ( var material:Material in manifest.materials )

                                    {

                                              trace( material );

                                    }

       

                                    initialized = true;

                          }