Hey guy could you send that dae to me? i'll take a look btw, what you target version? away3d fp9, fp10?
cheers On 20 February 2010 03:14, Joshua Granick <[email protected]> wrote: > Anyone else? Is this a bug in the Collada class? > > > > On Fri, 19 Feb 2010 10:01:32 -0800, Reinorvak <[email protected]> > wrote: > > For most of the materials loaded in, they get turned into a >> ColorMaterial, however, when I specified a texture it actually made it >> through as a texture Material according to the MaterialLibrary from >> away3D. >> >> I understand the method of looking through the materialLibrary and >> changing the materials there however, the Collada loader actually gets >> stuck when loading the models through with a texture applied to them. >> I went into the Collada load functionality and checked the material >> and it was correct on file path, material type, etc. But, since it >> gets stuck it never reaches my OnSuccess function for when the Collada >> is done parsing the .dae. >> >> I'm using the same kind of method except the object is an Away3D >> extended object. >> >> Just to reiterate, the texture's properties from maya are loaded with >> the Collada loader with the correct file path. They're relative paths >> according to where the model is located. The Collada parse just gets >> stuck on the load when trying to load the model with a texture. >> >> On Feb 19, 12:22 pm, "Joshua Granick" <[email protected]> >> wrote: >> >>> If you load and parse a Collada which has several textures specified, >>> will it leave out the materials, or will it load the materials, but as a >>> Wireframe Color or something instead? >>> >>> Whenever I need to swap out a texture at runtime, I run a for each loop >>> over the materialLibrary property. It's possible that if you load an object >>> and don't pass a material, the for each loop (or for in loop) might still >>> have an entry for each referenced material in the model. Then it's just a >>> matter of linking up the correct file path to that material. >>> >>> At that point, since you might know the name of the material you need, >>> there might be a way to get that URL off of the object, or you might have a >>> library you can reference which will define the file path for that material >>> name. That would make it possible to share textures across different >>> objects. On the other hand, I guess that still is hard-coding URL paths. >>> >>> I am using a unique class with Flash embed code for each model I'm using >>> in my current project, because each one needs to have additional code >>> information for how it interacts inside the environment I've created. If you >>> just needed to load a lot of objects, I can see how this would be difficult. >>> >>> So if you use the standard Collada.load method, it doesn't load the >>> textures, you said? Are you sure that it is finding the textures? Are the >>> paths to the material images correct inside the Collada? Are they relative? >>> >>> On Fri, 19 Feb 2010 06:16:05 -0800, Reinorvak <[email protected]> >>> wrote: >>> > Yeah, that is what I was doing previously, but this ended up being a >>> > hard-coded kind of method since each model would have a specific >>> > texture. I was looking for a more dynamic way of going about this as >>> > we're going to have tons of individual models and textures. >>> >>> > Alright let me explain a bit more on how this is working. Currently I >>> > have two classes running about being the Item class, which contains >>> > all the model data. Then there is my own MatLibrary. I use the >>> > MatLibrary to load texture's at run time and place them on the model. >>> > However, this requires that I know which texture goes where on the >>> > model, as there can be multiple texture's per single model. As is >>> > such, I'd like to further separate the need to externally load >>> > texture's when loading a model, as want to load it with the Collada >>> > loader, not using the bitmap parameter. >>> >>> > Currently, this is whats happening in code: >>> >>> > On the load call: >>> > public function loadModel(url:String):void >>> > { >>> > m_url = url; >>> > var loader:Object3DLoader = Collada.load("Models/test/chair/ >>> > box_test.dae"); >>> > loader.addOnSuccess(onSuccess); >>> > loader.addOnError(onError); >>> > } >>> >>> > Pretty much just making a basic load call with Collada and setting up >>> > event handlers. >>> >>> > On the load Success: >>> >>> > override protected function onSuccess(e:LoaderEvent) >>> > { >>> > m_model = (e.loader.handle as ObjectContainer3D); >>> > m_model.ownCanvas =true; >>> > m_model.renderer = renderer; >>> > addChild(m_model); >>> >>> > for(var i = 0; i < m_textureNames.length; ++i) >>> > { >>> > fcsMaterialLibrary.getInstance().addEventListener( >>> "LoadComplete" + >>> > m_textureNames[i], initMaterial); >>> > } >>> > fcsMaterialLibrary.getInstance().CreateMultiMaterial(m_model, >>> > m_textureNames); >>> > } >>> >>> > Turn the model that has been loaded into an object of the class, and >>> > then continue on to load the Array of textures. The textures are hard- >>> > coded for the time being, and I can get them to show up on the model >>> > with some tricks. But what I'd like to do is remove the need for the >>> > MaterialLibrary, and just have all texture's loaded on the collada >>> > load without having the load the texture beforehand. >>> >>> > Thanks again in advance. >>> >>> > On Feb 18, 4:58 pm, "Joshua Granick" <[email protected]> wrote: >>> >> FYI, you can parse on your own like this: >>> >>> >> Collada.parse (MeshClass, { material: MaterialClass } ); >>> >>> >> or >>> >>> >> var material:BitmapMaterial = new BitmapMaterial (Cast.bitmap >>> (MaterialClass), { smoothing: true } ); >>> >> Collada.parse (MeshClass, { material: material } ); >>> >>> >> That works great if you're embedding. I don't use the built-in load >>> method, but if you need the Collada and UV to be outside Flash at runtime, >>> you can load them using a URLLoader for the mesh and Loader for the UV, then >>> parse it like this. You wouldn't need to cast the material as a bitmap since >>> that's how it comes from the Loader, and I think you could just pass the >>> text value into the first parameter of the parse method >>> >>> >> Hope this helps you get up and running >>> >>> >> On Thu, 18 Feb 2010 13:28:38 -0800, Reinorvak < >>> [email protected]> wrote: >>> >> > Greetings again everyone, >>> >>> >> > Recently, I've come across the problem of trying to load a pre- >>> >> > textured model into away3d using the Collada format. I believe I've >>> >> > read on something like this before, but couldn't find the post so >>> just >>> >> > point me in the direction if its already been resolved. >>> >>> >> > Here's the thing. When I load the model into away3d, the parse >>> >> > constantly gets stuck on the notifyProgress function. The parser >>> will >>> >> > first fire a notifySuccess, but then continues to call the >>> >> > notifyProgess and continues parsing the collada file, after getting >>> >> > out of its notifyProgress loop. This process will continue forever, >>> >> > and I'll never get my models on screen. >>> >>> >> > However, should I not set the texture material onto the model, it >>> >> > loads just fine and goes on its way. So, I'm not sure if this is a >>> >> > problem with the .dae file, which it seems to be, or with something >>> in >>> >> > away3d. Either way, I need models to be able to load textures from >>> >> > Maya using this collada format. Any help will be appreciated and >>> >> > thanks in advance. >>> >>> >> > P.S. I'll keep looking on my own for the solution in the mean time. >>> >>> >> > Rein >>> >>> >>> -- katopz http://www.sleepydesign.com
