Zバッファ法と Zソート法

Zバッファ法は一番手前のピクセルを描画
Zバッファ法は一番手前のピクセルを描画。

通常は Zバッファ法でレンダリングされます。Zバッファ法はスクリーンのピクセルごとに前後関係を判定し、描画します。前後を判定するための Z深度(カメラからの奥行き)を保存する領域を Zバッファと呼びます(関連ページ:Z Fighting)。 Zバッファを利用して深度を比較することで、最終的に深度が浅い(手前)のポリゴン(ピクセル)が描画されます。

Zバッファ法は、常に一番手前のポリゴンを描画します。このアルゴリズムでは、後ろの物体が透けるような半透明表現ができません。そのため、透明度を含むモデルはZソート法と呼ばれる別の仕組みでレンダリングされます。

 
Zソート法は、遠いモデルから順に描画
Zソート法は、遠いモデルから順に描画。

Zソート法では、カメラから遠い距離にあるモデルから順に描画していきます。そのため、手前のモデルが透明であれば、奥のモデルが透けて描画されます。

Zソート法は Zバッファ法のように完全な前後関係を処理することが出来ません。細長いモデル同士が重なっていれば、本来は遠くにあるべきポリゴンが、手前に描画されるということもあります。カメラの位置と、モデルの中心との距離でのみ前後関係を判定し、ポリゴン同士の前後関係を判定しないためです。

SOLAでは、Zバッファ法のレンダリングに加え、透明度を含むモデルを描画する際にZソート法を使用します。

 

Zソート法を理解したモデリングを

動作サンプル
クリックして、動作サンプルを確認。

Zソート法のアルゴリズムを理解すれば、「Zソート法でポリゴンの前後関係がおかしくなる」という問題を解決できます。

Zソート法に適したモデリングを理解していただくために、動作サンプルを用意しています。左スクリーンが何も考えずにモデリングしたもの、右スクリーンが Zソート法にあわせてモデリングしたものです。左スクリーンはポリゴンの前後関係が破綻していますが、右スクリーンは正常に描画されています。(*すべてのマテリアルは微妙な透明に設定しています。通常は、透明でないモデルは Zバッファ法で正しく描画されます。)

Zソート法を理解したモデリングとは、モデルの中心をコントロールすることです。サンプルでは「中心を表示」をクリックすると、モデルの中心が表示されます。左スクリーンの壁モデル(緑)はひとつのモデルですが、右スクリーンの壁モデルは三つに分割されていることが分かります。このように、意図的にモデルの中心を操作することで、Zソート法の問題を解決できます。

また、モデルのマテリアルにひとつでも透明なマテリアルが含まれていると、モデル自体が Zソート法でレンダリングされます。透明でないマテリアルのはずのポリゴンも前後関係が正しくなくなる場合があるのでご注意ください。透明度を含むマテリアルと、含まないマテリアルを混在させたモデルは作成しない方が良いでしょう。

SOLA サポートセンター > SOLA 5 > Tips > Z ソート描画法