どうもpapervision3d関連のネタはリソースが少なく、需要があるっぽいので、
たまには人の役にたちそうなことを書くだけ書いておきます。
■material関連
Google SketchUpのcolladaを読み込むと
SketchUpの書き出しが下手なのか、
Colladaクラス内のパース処理がうまくいっていないのかわからないけれど
materialが反映されないかった。
なので以下のように手動でmaterial(今回はColorMaterial)を割り当てた。
var colladaObj:Collada; //すでに読み込み済みのColladaオブジェクト
var material:ColorMaterial = new ColorMaterial(myColor); //myColorは任意の色
var myMaterials:MaterialsList = new MaterialsList();
for each(var child in colladaObj.children){
for each(var grandchild in child.children){
for ( var materialName in grandchild.materials.materialsByName){
myMaterials.addMaterial(material, materialName);
}
grandchild.materials = myMaterials;
}
}
■z-sort関連
Google SketchUpのcolladaを読み込むとz-sortがメチャメチャになった。
DisplayObject3Dクラスのproject()関数内をtraceしてみると
"Camera"という名前のオブジェクトが返す値(おそらくscreenZの値)がNaNになってしまっている。
この"Camera"はいったい何に使われるのかよくわからないが、
なくなっても大丈夫っぽかったので、削除した。
for (var childName in colladaObj.children){
if(childName=="Camera"){
colladaObj.removeChild(colladaObj.getChildByName(childName));
}
}
まだ制作途中なので、以上のことで何か不具合おこったら追記します。