|目次 または フレームありの目次|


4.2 隠面(線)消去アルゴリズムの分類

 隠線消去や隠面消去について、多くの手法が開発されており、その分類も種々考えられる。判定を行う空間で分類すると、画像空間アルゴリズム(image space algorithm)、物体空間アルゴリズム(object space algorithm)、および優先順位アルゴリズム(priority algorithm)に分類できる。画像空間アルゴリズムおよび物体空間アルゴリズムは、それぞれ判定をスクリーン上を基本に行うか、3次元空間で行うかである。優先順位法は、3次元空間で前後関係を求めておき、スクリーン上で遠方のものから順に重ね描きする方法である。ここでは、処理領域によって分類する場合で説明する。すなわち、画素単位、走査線単位、領域単位、および画面単位のものに分けて概説する。

 (1) 画素単位

 スクリーン上の各画素について可視となる物体を抽出する方法である。この分類に属す方法として、Z-バッファ法(Z-buffer algorithm)とレイトレーシング法(ray tracing algorithm)がある。前者は、表示しようとする面の視点からの奥行き(Z値)を各画素ごとに蓄える方法である。記憶されているZ値と表示しようとする面のZ値を比較することで可視面を判定する方法である。後者は、各画素と視点とを結ぶ視線を考え、視線と交差する面のうち最も手前の面を表示する方法である。これらの方法の詳細は後述する。

 (2) 走査線単位(スキャンライン法)

 この手法は、各走査線と視点を含む平面によってスライスされた2次元的なウィンドウを考え、このウィンドウと交差する物体の面との交線を抽出し、視点から見える部分を表示するものである。面の一様性を利用できるので、アルゴリズムはやや複雑であるが、記憶容量は少なくてすむ。アルゴリズムの性質上、ラスタ型CRT上への表示に適しており、プロッタのようなベクトル方式のものには不向きである。なお、前述のZ-バッファ法や次の領域細分法を スキャンライン単位に行なうものも開発されている。

 (3) 領域単位(領域細分法)

 表示画面を順次細分する方法であり、各々のウィンドウについて、システムがあらかじめ用意したアルゴリズムを用いて物体の面または線分が判別できるまで、この細分を繰り返す。その度合は、システムがもつアルゴリズムの複雑さに依存し、簡単なものほど細分割の必要がある。

 (4) 画面単位(優先順位法)

 あらかじめ表示物体の総てについて、相互位置関係を調べ、視点からの奥行き情報をテーブルに準備しておく方法である。視点から遠い順に面を塗りつぶす操作を繰り返すことにより、遠方のものは手前のものに塗りつぶされ、最終的には手前の面(即ち可視面)がスクリーンに表示される。 この方法は油絵を描くように下から順に重ね描きすることからペインターズアルゴリズム(Painter's algorithm)とも呼ばれる。また、スキャンライン単位に重ね描きすることもある。この方法には、物体データ作成時に適当に分割された3次元空間領域に各々の物体を割り付ける方法と、視点が与えられた後に奥行きの順位を求める方法がある。(文献1参照)。

 (1)-(4)は各々独自に用いることができるが、各々の特性を生かして、より写実的な表示をするために、これらの手法の併用または画像合成法が使われるようになった。曲面に対しては、多角形で近似した後に上記の種々の方法が適用されるが、近似しない方法については文献2を参照されたい。最近幾つか開発されている。次に、上の分類のうち代表的な方法について説明する。


前のページへ 次のページへ