Hi justin, I'll look at it when tomorrow, just arrived... Good input in there (iphone hasn't loaded all message tho)
Was nice meeting you. :) Fabrice Sent from an iPhone missing Flash On Sep 30, 2010, at 19:22, "[email protected]" <[email protected]> wrote: > Hi Fabrice > > It was nice to meet you at Flash on the beach, Rob introduced me. We > discussed briefly AWD file materials. Unfortunately I did not have info to > hand to get across some problems with awd materials I have had, so let me try > to explain maybe I misunderstood, you seemed to suggest it was already fixed, > I have looked at the SVN briefly and the issues do not seem to be addressed > for what I was trying to explain, but I did not remember the details so I > probably did not manage to explain at the time and some of what you mentioned > I did not follow. Let me explain what I have been looking at. > > AWData loads AWD file and creates BSPtree to be used for BSPCollision. > > On line 248 of AWData > CentralMaterialLibrary.addMaterial(matBitmap, null, filename, line); > Ok not ideal... it's saving the material to a central library so we can > access it later.... > 1) but the filename is not the whole path? So you could easily overwrite > materials if you have a complex system. > 2) It's passing null for the mesh, so there is no way to relate the mesh and > the material, since many BSPtree's only have a single material it make sense > that you may want a simple way to change it or replace it with a null > material, but would have no idea of the current material used, replace > material in BSPTree assumes you know the material. > So as a quick fix, I store the material above this line... > if( filename != '' ) { var storeFileName:String = filename; var > storeMatBitmap: Material = matBitmap; } > Then making the material more available (line315 on svn of AWData...) > if (isBSP){ > if( storeFileName != '' ) > { > CentralMaterialLibrary.addTree( storeFileName, tree ); > tree.storeMaterial = matBitmap; > } > _container = tree; > }else > Then in CentralMaterialLibrary I added these... > public static function addTree( id: String, tree: BSPTree ):void > { > CentralMaterialLibrary[id][1] = tree; > } > /** > * Returns a BSPTree for the given name reference in the library. > */ > public static function getBSPTreeFromMaterialName(id:String):BSPTree > { > if (CentralMaterialLibrary[id]) > return CentralMaterialLibrary[id][1]; > > return null; > } > And in BSPTree I added quite a lot of stuff for my needs... > public var storeMaterial: Material; > > public var _ghostMaterial: GhostMaterial = null; > > private var _reveal: Boolean = true; > public function set reveal( reveal_: Boolean ) > { > trace( 'setting reveal!' + reveal_ ); > _reveal = reveal_; > if( _reveal == true ) > { > trace('showing') > show(); > }
