2008年12月29日

レベルオブディテール   

・・・とは本来、距離に応じてポリゴン数を削減したモデルに切り替える技術ですが、ここでは思い切ってビルボードに差し替えてます。ぶちさば様Romanaでも使われてますね。
ロードオブディングス
→ソース

最初にモデルを全方位からレンダリングしたテクスチャを作成して、ビルボードに割り当ててます。
距離の測定にはZバッファを使うのが一番良いんですが、どうも E3DGetScreenPos3 scid, -1, (ビルボードID), scx, scy, scz, 0, 1 が機能してないような・・・なので、カメラからの距離を測定して判定しています。あと E3DGetBBox も機能してないと思います。

しょせんビルボード(板ポリ)なので、視差の違いはどうしても出てしまいます(方位分割数を増やしても上下の角度はいかんとも)もっとも角度の検出は計算を間違えてるかもしれません。ビルボードのサイズ計算も一考の余地ありですね(モデルの厚みを計算に入れてないので)
また仮に運良く視点が一致しても、ライティングが完全には一致しません。emi と amb をモデルとビルボードで揃えればある程度は近くなりますが。

・・・手間かかった割には効果が薄かったかも(笑)切り替え時にフェードすればもうちょっとマシかもしれません


タグ:サンプル
posted by ぼおんぼおん。 at 18:01 | 東京 ☀ | Comment(0) | 小ネタ的なもの | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。