Z-バッファ法


 Z-バッファ法(デプスバッファ法)は、表示しようとする面のZ値(視点からの奥行き)を各画素ごとに蓄える方法である。各々の面を透視投影面に投影し、その面が占める画素の位置に、その面のZ値を格納する。この際、すでに格納されている面があれば、そのZ値と比較し、小さい方の面の情報を記憶する。

図4.3
図 Z-バッファ法による隠面消去

 各画素について奥行きを記憶するZバッファと(図参照)、画像(表示する色)を記憶するフレームバッファを準備しておき、次の手順で計算する。

 (1) スクリーンの全画素を背景色に初期化する。また、Z-バッファの全画素を最遠点(Z=∞)に初期化する。

 (2) 面をスクリーンに表示する際、計算点のZ値(付録3参照)が、以前に書き込まれていたZ値より小さい場合、すなわち新しい点が視点からみて手前にある場合、Z値を更新する。

 (3) 同時に、フレームバッファに蓄えているその点における画素の色も更新し、それを表示する。

 (4) 処理を、表示すべきすべての面の全画素について行うと、最終的に隠面消去した画像が得られる。

この方法はアルゴリズムが簡単で、ハードウェア化に向いている。また、この方法は大きな記憶容量を必要するが、メモリの低廉価に伴いグラフィクワークステーションでリアルタイム処理可能なハードとして標準装備されることが多くなった。この方法は、各画素ごとにZ値を求めるので複数の面が相互に干渉する場合でも適用できる。しかし、影や反射屈折の処理はできない


このページはCG教科書(西田著)からの抜粋である。