解決方法の一つはオブジェクトをレンダリングするレイヤーを複数持たせ、明示的に前後関係をコントロールすることみたいだ。
この手法を行うには FastRenderer というレンダリングクラスを使う。
FastRenderer にはわたしが使っているバージョン 1.0.0 の時点ではバグがあるようである。
FastRenderer クラス (away3dlite/core/render) の collectFaces(object:Object3D) メソッドの以下の処理
for each (child in children) {
if(child.layer)
child.layer.graphics.clear();
collectFaces(child);
}
これは、本来こうならなければならないはずだ。
for each (child in children) {
if(child.layer)
child.layer.graphics.clear();
}
for each (child in children) {
collectFaces(child);
}
ライブラリにこの修正を加え、作ってみたテストコンテンツが以下の通り。
ソースコードも添付した:ソースコード
サンプルコンテンツを別ウィンドウで開く
0 件のコメント:
コメントを投稿