ここでは、Z深度に起因する描画問題の紹介と、その解決方法をご紹介します。

ノコギリ歯みたいなギザギザのエッジと破れた面

ノコギリ歯みたいなギザギザのエッジと破れた面
ギザギザエッジと破れたポリゴン

このノコギリ歯のようなギザギザの描画が、Z深度の代表的な問題です。本来は真っ直ぐ描画されるはずの稜線がガタガタなったり、平らなはずの面が破れたような表現なったりします。

問題は、コンピュータが面の奥行きを計算できないために起こります。そのため、どちらが手前に来る面なのか判別できないがために、交互に面を描画したようなギザギザや破れが発生します。

これらは、Z深度が足りないことが原因です。

 

Z深度とは(デプスバッファ)

Z深度の設定
Z深度の設定は、その他 > レンダラー > depth

Z深度は、奥行き情報を保存する領域です。 SOLAはこの奥行き情報を使って、ポリゴンの前後関係を判定し、描画します。しかし、無限の奥行きを表現できる分けではありません。ハードウェアの設定に依りますが、16bitもしくは 24bit、32bitの奥行きを持てます。16bitだと、65,536の分解能、24bitだと 16,777,216の分解能があります。

この分解能を超えた奥行きを描画すると、ギザギザエッジ、面の破れが発生します。この現象を「Z深度が足りない」と表現します。

 

カメラのクリッピングで Z深度を調整

nearClipの設定
nearClipの設定は、ビュー> カメラ から

では、Z深度が足り場合、どうしたら良いでしょうか。カメラの表示域を狭めると、Z深度の分解能の中で充分な奥行きを描画できるようになります(カメラのクリッピング)。

カメラのクリッピング開始位置は、ビュー > カメラ > "nearClip"で設定します。一般に、単位系に"meterUnit"と同じ値にすると良好です。

"farClip"プロパティは、クリッピング終了位置です。カメラは、"nearClip"と"farClip"間の奥行きを Z深度で分解します。

また、"farClip"プロパティより遠方のポリゴンは描画されません。ポリゴン数やノード数が多い場合に活用すると、フレームレートの向上に効果的です。

 
SOLA サポートセンター > SOLA 5 > Tips > Z Fighting