Zバッファの泣き所

3Dグラフィックを実現するグラフィックカードは、一般的にZバッファをベースに動作しています。メモリーが限られていた3Dグラフィックの黎明期は、ポリゴンの前後判断がもっとも難しい問題でした。現在は、潤沢なメモリーが利用できるようになり、高速で確実に前後判断ができるZバッファという仕組みが使われています。

このZバッファ、原理的にシンプルでしかも強力です。

Z停止
Zバッファを停止した場合の画面です。手前のキャラから描いています。後ろのキャラクターが、後から描かれるため、手前のキャラクターを上書きしてしまいます。これだと前後関係がおかしいことになります。

Z有効
Zバッファへの書き込みを有効にすると、前後判断が適切に行われ、前後関係が正しく描かれます。Zバッファは、画面のピクセル単位で判断できるため、どんなに複雑な形でも正しく描画できます。

このZバッファ、画面のピクセル単位で比較するという原理からくる大きな弱点が存在します。

判断失敗
それは、写真のように半透明の場合です。
手前の半透明キャラが先に描かれると、後から描く奥のキャラクターは、手前のキャラが前方にいると判断して重なる部分が描画されません。半透明に透けて見えるようになるのが好ましいのですが。

半透明を多用するパーティクルやガラスは、このような理由で前後判断ができません。ただし、どんな場合でも逃げ道はあるもので、ある種のトリックを使うと、「前後判断をしている」風の描画を実現できます。これは、次回のアップデータで提供できる予定です。