Rest Term

Simple Level of Detail – pv3d

Papervision3DでLevel of Detail(LOD)のテスト。
LODとは視点からの距離に応じて描画する3Dオブジェクトの頂点数(ポリゴン数)を増減させるテクニックのこと。

----> Simple Level of Detail Demo <----
カーソルキーの上下で操作してみてください。
ドキュメントクラスのソースコードも上げておきます。

pv3d 2.0 GreatWhiteには、
org.papervision3d.objects.special.SimpleLevelOfDetail
というクラスがあるので今回はこれを使います。
Papervision LOD - SimpleLevelOfDetailのサンプルソースはSimpleとは言いづらいものだったので、
これをSimpleに書き直し。機能だけを見るための最低限のテストです。

LevelOfDetailクラスの使い方はとても簡単で、コンストラクタは

objectsにディテールの違うマテリアルを入れておきます。

materialsはWireframeMaterialでもBitmapFileMaterialでもなんでも。
unshiftなので、配列の先頭に近いほど高精度のモデルが入ってます。
このfor文だと8段階のLODになります。
minDepth、maxDepthはそのまま。それぞれ最小深度、最大深度を表します。
この範囲でモデルのディテールが変わっていきます。
最後のdistancesはどの深度でディテールを切り替えるかを指定します。例えば、

この場合、深度1000未満ならobjects[0]、1000以上1500未満ならobjects[1]、、、という具合です。
あとはこのSimpleLevelOfDetailインスタンスをsceneにaddChild。

ひさびさにpv3d触りました。
BasicViewを使えば短くシンプルに書けますね。
今回は地味なデモだったけど、エフェクト系のやつも今度作ってみよう。

あわせて読む:

 

Tags: ,

Comments: 1

Leave a reply »

 
  • […] Simple Level of Detail – pv3d – Rest Term Papervision3DでLevel of Detail(LOD)のテスト。 LODとは視点からの距離に応じて描画する3Dオブジェクトの頂点数(ポリゴン数)を増減させるテクニックのこと。 […]

     
     
     
  • Leave a Reply
     
    Your gravatar
    Your Name