LITTLE CLAP
ベタ塗り3Dデータを表示する 2010/11/19
 FLASHでの3Dデータの表示に挑戦しています。今回はベタ塗りです。
動作確認 素のベタ塗り
 マウスでドラッグすると回転します。
 操作していない間は右に回転し続けます。動きがカクカクなのは放置時の処理負荷を上げないためです。  真っ白で形状が分かりにくくなりました。
動作確認 面単位で明るさを変える
 モデル読み込み時に、各面に適当な濃さの色を与えています。
 形状が分かるようになり、またベタ塗りの処理が正しく動作していることが確認できます。
説明
 3Dモデリングソフト「メタセコイア」のサンプルデータを拝借しました。
 前回線を引いていた代わりに、beginFill→3点指定→endFillの流れで三角形をベタ塗りしています。
 ワイヤーでなく面になったことで陰面処理が必要になります。3点の平均z値が大きい順になるようにソートしてから描画する「zソート」という手法を使用しました。この方法では大きさの異なり近接して重なる面で誤判断を起こすことがありますが、他に代替案もなく困りものです。
 このデータは表向きの面で覆った閉鎖形状となっているため、裏面を非表示にして描画コストを減らす「カリング」という手法を使用しました。zソートより前にカリングを行っています。
今後の展開
 光源方向を向いている面が明るくなるような処理を実装します。
inserted by FC2 system