PV3D: Access, Swap & Replace Collada / Dae-Material

Wow. In Papervision3D, the function to replace materials on a cube I’ve mentioned earlier also works on Collada models, which I wouldn’t have expected. Considering how well implemented Collada is (in all engines I’ve tried), I was seriously expecting that this isn’t possible. But it is. Just be sure to get the right material name and it works like a blast. Collada files are XML-based, so the name can be traced rather quickly:

<library_materials>
   <material id="_1_-_Default-material" name="_1_-_Default">
     <instance_effect url="#_1_-_Default"/>
   </material>
 </library_materials>

It’s the id, not the name. You can also trace it from AS3 with:

trace(dae.materials);

, which is surprisingly simple. Replacing it works the same way as with a cube:

dae.replaceMaterialByName(material, "_1_-_Default-material");

I suppose this was especially easy because I used a UV-Mapped model with only one material, but it should work the same for models with multiple materials.

  1. With the bases loaded you struck us out with that asnewr!

  1. No trackbacks yet.

*