Fabrice

Thank you - I will think about the Null material further, and the CentralLibrary angle.

Meanwhile how do you Scale BSPTrees? Whatever I have tried throwing at an AWD file, it appears exactly same on screen ( whereas it's accompanying Collada DAE, does scale as expected ).

Cheers

;j

On 9 Sep 2010, at 22:06, Fabrice3D wrote:

I actually like the idea of a null material. :)
you actually just need to copy a simple materail and avoid draw functions.

to apply however, you'd be better off to add a function that parses the entire main array centralLibrary to set these. plus if you keep a simple parallele array to this, you can restore at zero pain when you show it back.

Fabrice

On Sep 9, 2010, at 10:12 PM, [email protected] wrote:

As well as trying to hide the BSPTree, I am also having no luck in scaling the AWD file at runtime.

Is there a simple way of rescaling and then hiding a standard AWD file, so it can be used inside a complex collada model?

Cheers

;j

On 9 Sep 2010, at 20:13, [email protected] wrote:

I am trying to hide a simple BSPTree's material when it is only used for BSP and a separate more complex model is used for the visual.

My initial approach was to modify AWData to make it store the BSPTree with the material ( currently it seems to store null as the mesh ), but the material id name does not seem to be stored on the handle, so you have to trace out the name so after some modifications I was able to hack hiding....

(CentralMaterialLibrary.getBSPTreeFromMaterialName( 'building' ) as BSPTree ).replaceMaterial (CentralMaterialLibrary.getMaterial( 'building' ), new MovieMaterial(new MovieClip()), true );

but this is probably not really cutting down on render. Looking in BSPTree I found I could directly modify the material of each face to reduce rendering, so my current solution is to add this method to BSPTree, when loaded I can access it via (AWData.handle as BSPTree).hide();

        public function hide()
        {

            var loop:int = _faces.length;
            var face: Face;
            var wire: WireframeMaterial = new WireframeMaterial();
            wire.wireAlpha = 0;
            for(var i:int = 0;i<loop;++i)
            {
                face = _faces[i];
                face.back = null;
                // minimize drawn faces
                face.invert();
                face.material = wire;

            }

        }

I am considering creating a NullMaterial as currently when I set face.material = null it trys to be too helpful and instead renders a color wireframe, for the moment alpha simple wireframe inverted with no back is probably lowest overhead.

Maybe I am missing something obvious, but if you try to visible false the whole BSPTree then I think it stops doing BSP collisions, maybe there is already a solution.... or a better approach.

Cheers

:j





Reply via email to