JPH11272883A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法Info
- Publication number
- JPH11272883A JPH11272883A JP7631298A JP7631298A JPH11272883A JP H11272883 A JPH11272883 A JP H11272883A JP 7631298 A JP7631298 A JP 7631298A JP 7631298 A JP7631298 A JP 7631298A JP H11272883 A JPH11272883 A JP H11272883A
- Authority
- JP
- Japan
- Prior art keywords
- mask
- polygon
- data
- mask data
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
リゴンのブレンディング処理、光源による陰影処理を効
率的に行う。 【解決手段】ポリゴンの表示画面内の位置データを含む
ポリゴンデータにより、表示画面内のポリゴンの有効ピ
クセル領域を示す第1のマスクデータと有効ピクセル毎
の表示画面内の奥行きを示すZ値とを生成し、第1のマ
スクデータの有効ピクセル領域のうち既に処理済の他の
ポリゴンのZ値よりも小さいZ値のピクセルの領域を有
効ピクセル領域とする第2のマスクデータを生成し、生
成された第2のマスクデータの有効領域を生成済の他の
ポリゴンの第2のマスクデータの有効領域から削除して
トランスマスクデータを生成し、それをポリゴン毎に行
うマスク生成工程により生成されたトランスマスクデー
タが示す有効領域について、各ポリゴンのレンダリング
処理を行う。
Description
用した画像処理装置に関し、特に、レンダリング処理に
おける複数のポリゴンの処理及び陰面処理の演算を少な
いハードウエアでより効率的に行うことができる画像処
理装置、その画像処理方法及びその画像処理プログラム
を記録した記録媒体に関する。
は、ゲーム装置やシミュレーション装置等で広く利用さ
れる。かかる画像処理装置では、表示されるオブジェク
トを形成するポリゴンが、ゲームプログラムやシミュレ
ーションプログラムにより生成される。このポリゴンデ
ータは、通常その頂点毎のパラメータを含む。頂点パラ
メータは、例えば、頂点の三次元空間内の座標や、頂点
のテクスチャー座標、法線ベクトル、透明度を表すアル
ファ値、色関連データが含まれる。
示画面内のポリゴンをクリッピングにより選択し、それ
らの選択されたポリゴンについて、頂点の三次元座標が
視点位置に従って表示画面上の二次元座標と奥行きを示
すZ値とに透視変換される。その後、レンダリング処理
により表示画面内に表示されるポリゴンのピクセルにお
ける画像データが求められる。この画像データは、例え
ばRGBの色データを有する。
ゴン内のピクセルのパラメータの演算は、通常、ラスタ
スキャン法によりポリゴン内のピクセル座標を特定し、
そのピクセル座標に従い頂点パラメータを補間演算す
る。即ち、頂点座標とピクセル座標から内分比を求め、
その内分比に従って上記した頂点パラメータを補間演算
する。
ム単位で処理される。レンダリング処理において、表示
すべきポリゴンをピクセル毎に判定する陰面処理の為
に、ポリゴンのピクセルの奥行きを示すZ値が利用され
る。Z値を比較して、最もZ値が小さい(表示画面内で
最も手前)場合に、その色データをフレームバッファメ
モリに格納する。従って、フレームバッファメモリに書
き込まれたピクセルのZ値を格納するZ値バッファメモ
リが利用される。
における補間演算では、頂点間を結ぶ直線上のエッジ点
の座標やパラメータを演算し、両側のエッジ点から内部
のピクセルの座標やパラメータを演算する。かかる補間
演算では、通常除算演算を含み、かかる除算演算はコン
ピュータの演算回路にとって最も負荷の大きい演算であ
る。しかも、ラスタスキャンに伴う補間演算は頻繁に行
われるので、上記の負荷の高い演算はできれば避けるべ
きである。
では、Z値比較を行って、表示画面の手前側のポリゴン
のピクセルを有効にする。かかる演算処理において、例
えばZ値バッファメモリに最も手前のピクセルのZ値を
記憶して、逐次フレームバッファメモリに画像データを
記憶することが行われる。かかる方法では、より奥に位
置するポリゴンに対する画像データの生成とフレームバ
ッファメモリへの画像データの書込みの処理工程が、後
で処理され、より手前に位置するポリゴンの存在により
無駄になることがあり、処理の効率を下げる原因とな
る。
に表示すべきピクセルが決定するまで、ピクセル毎のポ
リゴンのIDをZ値バッファメモリに記憶しておくこと
が考えられるが、かかる方法でも、Z値バッファメモリ
へのポリゴンIDの書込み処理が無駄になることがあ
り、同様に処理の効率を下げる原因となる。
ポリゴンのレンダリング処理では、表示画面の奥側に位
置するポリゴンの色と手前側に位置する半透明ポリゴン
の色とをブレンディングする必要がある。かかる場合
は、半透明ポリゴンのZ値に従って一旦ソーティングし
てから、奥側から順にブレンディング処理を行う。しか
し、かかるソーティング処理は、Z値の比較等を伴い処
理の効率を下げる原因となる。
される影の部分については、光源からの光に従ってその
輝度を上げる等の処理を行わない影処理(影を付ける処
理)が必要である。かかる影処理は、複雑なアルゴリズ
ムが種々提案されているが、いずれも複雑な演算を必要
とし、処理の効率を下げる原因となっている。
題を解決し、処理効率の高いレンダリング処理が可能な
画像処理装置、その画像処理方法及びその画像処理プロ
グラムを記録した記録媒体を提供することにある。
レンダリング処理を効率良く行うことが可能な画像処理
装置、その画像処理方法及びその画像処理プログラムを
記録した記録媒体を提供することにある。
レンダリング処理を効率良く行うことが可能な画像処理
装置、その画像処理方法及びその画像処理プログラムを
記録した記録媒体を提供することにある。
における影処理を効率良く行うことが可能な画像処理装
置、その画像処理方法及びその画像処理プログラムを記
録した記録媒体を提供することにある。
に、本発明は、ピクセルに対応して有効か無効か、或い
は奇数か偶数かなどの2値データを保存するマスクレジ
スタを有効に利用して、それらのマスクデータに対する
排他処理、排他的論理和処理、論理和処理等を行って、
不透明ポリゴンの陰面処理、半透明ポリゴンのブレンデ
ィング処理、影の領域を求める影処理を効率的に行う。
為の画像データを生成する画像処理方法において、前記
ポリゴンの表示画面内の位置データを含むポリゴンデー
タから、表示画面内の前記ポリゴンの有効ピクセル領域
を示す第1のマスクデータと該有効ピクセル毎の表示画
面内の奥行きを示すZ値とを生成し、該第1のマスクデ
ータの有効ピクセル領域のうち既に処理済の他のポリゴ
ンのZ値よりも手前側のZ値のピクセルの領域を有効ピ
クセル領域とする第2のマスクデータを生成し、生成さ
れた第2のマスクデータの有効領域を生成済の他のポリ
ゴンの第2のマスクデータの有効領域から削除する排他
処理を行って新たな第2のマスクデータを生成し、上記
新たな第2のマスクデータの生成をポリゴン毎に行うマ
スク生成工程と、前記マスク生成工程により生成された
前記新たな第2のマスクデータに従って、該新たな第2
のマスクデータが示す有効領域について、前記各ポリゴ
ンのレンダリング処理を行うレンダリング処理工程とを
有することを特徴とする。
陰面処理を行うにあたり、第2のマスクデータによる排
他処理を利用することで、それぞれのポリゴンの有効領
域を新たな第2のマスクデータとして効率的に求めるこ
とができる。この第2のマスクデータは、最終的にレン
ダリング処理に利用されるものであり、以下に示される
実施の形態例ではトランスマスクに格納される。
示する為の画像データを生成する画像処理方法におい
て、前記半透明ポリゴンの表示画面内の位置データを含
むポリゴンデータから、表示画面内の前記半透明ポリゴ
ンの有効ピクセル領域を示す第1のマスクデータと該有
効ピクセル毎の表示画面内の奥行きを示す半透明Z値と
を生成し、該第1のマスクデータの有効ピクセル領域の
うち既に処理済の他の半透明ポリゴンの半透明Z値より
も奥側の半透明Z値のピクセルの領域を有効ピクセル領
域とする第2のマスクデータを生成し、生成された第2
のマスクデータの有効領域を生成済の他の半透明ポリゴ
ンの第2のマスクデータの有効領域から削除する排他処
理を行って新たな第2のマスクデータを生成し、上記新
たな第2のマスクデータの生成を半透明ポリゴン毎に行
うマスク生成工程と、前記マスク生成工程で生成された
前記新たな第2のマスクデータに従って、該新たな第2
のマスクデータが示す有効領域について、画像データを
生成する前記各ポリゴンのレンダリング処理を行うレン
ダリング処理工程とを有し、前記マスク生成工程で、更
に、前記第1のマスクデータの有効領域から前記新たな
第2のマスクデータの有効領域を削除する排他処理を行
って新たな第1のマスクデータを生成し、前記新たな第
1のマスクデータに基づいて次の前記新たな第2のマス
クデータを生成し、前記レンダリング処理工程で、前記
次の新たな第2のマスクデータに従って前記レンダリン
グ処理を行うことを特徴とする。
ついて表示画面内で最も奥側に位置する領域を逆陰面処
理と排他処理により新たな第2のマスクデータとして効
率的に求めることができる。この第1のマスクデータ
は、処理すべき領域を示すマスクデータであり、以下に
示される実施の形態例ではエリアマスクに格納される。
また、第2のマスクデータは、最終的にレンダリング処
理に利用されるものであり、以下に示される実施の形態
例ではトランスマスクに格納される。
の新たな第2のマスクデータの生成工程が、前記新たな
第1のマスクデータから有効領域がなくなるまで繰り返
されることを特徴とする。単にかかる工程を繰り返すこ
とにより、重なり合った半透明ポリゴンのブレンディン
グ処理を効率的に行うことができる。
域を表示する為の画像データを生成する画像処理方法に
おいて、シャドーボリュームを規定するシャドーポリゴ
ンの表示画面内の位置データを含むシャドーポリゴンデ
ータから、表示画面内の前記シャドーポリゴンの有効ピ
クセル領域を示す第1のマスクデータと該有効ピクセル
毎の表示画面内の奥行きを示すZ値とを生成し、前記第
1のマスクデータの有効ピクセル領域のうち前記描画対
象ポリゴンのZ値より手前側(または奥側)のZ値のピ
クセルの領域を有効ピクセル領域とする第2のマスクデ
ータを生成し、視線方向であって前記描画対象ポリゴン
と視点(または無限遠)との間に位置するシャドーポリ
ゴンの枚数の奇偶データを有する影処理マスクデータの
該奇偶データを、前記第2のマスクデータの有効領域に
ついて奇偶反転して新たな影処理マスクデータを生成
し、上記影処理マスクデータの生成を前記シャドーボリ
ュームを規定する全てのシャドーポリゴンに対して行う
マスク生成工程と、前記マスク生成工程で生成された前
記影処理マスクデータに従って、レンダリング処理を行
うレンダリング処理工程とを有することを特徴とする。
領域を影処理マスクデータとして効率的に求めることが
できる。この影処理マスクデータは、描画対象ポリゴン
上の影の領域を示すマスクデータであり、以下に示す本
実施の形態例では、エリアマスク領域に格納される。
スクデータの生成がシャドーボリュームの数だけ繰り返
し行われ、それぞれ生成された影処理マスクデータを最
後に論理和処理して合成影処理マスクデータを生成し、
前記のレンダリング処理工程で、その合成影処理マスク
データに従って影処理が行われる。
て図面に従って説明する。しかしながら、本発明の技術
的範囲がその実施の形態に限定されるものではない。
全体構成図である。図1の例は、ゲームプログラムやシ
ミュレーションプログラムに従ってポリゴンデータや視
点データなどを生成するCPU40と、そのポリゴンデ
ータに含まれる頂点の三次元座標から、表示画面内に位
置するポリゴンの表示画面内の二次元座標に透視変換を
行うジオメトリ処理部48と、ジオメトリ処理部48が
生成するポリゴンデータにしたがってレンダリングすべ
きポリゴンのピクセルを示すトランスマスクなどの各種
マスクを生成するマスク生成部50と、マスク生成部5
0により生成されたトランスマスクやライトマスクなど
を供給されて、ピクセルの画像データを生成するレンダ
リング処理部62と、レンダリング処理部62により生
成された画像データが保存されるフレームバッファメモ
リ66とを有する。
する為に、RAM42、ゲームプログラムが格納される
ROM44、オペレータにより操作される操作部47か
らの操作信号を取り込む入力バッファ46とが、例えば
共通のバスにより接続される。また、ジオメトリ処理部
48には、ポリゴンデータを格納しておくポリゴンバッ
ファ49が接続される。また、レンダリング処理部62
には、テクスチャーデータが格納されるテクスチャーバ
ッファメモリ64が接続される。そして、フレームバッ
ファメモリ66の画像データが、CRTなどの表示装置
68に供給される。
を示す図である。図2のマスク生成部50の例は、ジオ
メトリ生成部48により生成されたポリゴンデータが供
給され保存されるプリミティブバッファ52を有する。
このプリミティブバッファ52は、ポリゴンデータ以外
にも直線や点などの表示される要素のデータも供給され
て保存する。直線や点の場合も、前述のジオメトリ処理
部48で、その三次元データが表示画面の二次元座標に
透視変換される。
スクレジスタ、トランスマスクレジスタ533、エリア
マスクレジスタ534を有し、マスクレジスタ内のビッ
トデータに対して排他処理を行う排他処理部531と排
他的論理和の処理を行う排他的論理和処理部532とを
少なくとも有する。これらの処理部531,532の入
力側と出力側にはマルチプレクサ540〜545が設け
られ、これらのマルチプレクサの接続を適宜変更するこ
とにより、処理対象となる入力または出力マスクデータ
を選択することができる。
ム内を細分化したフラグメント領域内の全てのピクセル
に対するビットデータを有するレジスタである。従っ
て、後述する通りフラグメント領域が8×8の64ピク
セルを有する領域の場合は、マスクレジスタは64ビッ
トのレジスタの集合である。即ち、64個の2値データ
であり、より具体的には「1」と「0」の2値データを
64個有する。
最終的に生成されたマスクデータを格納し、レンダリン
グ処理部62にトランスファーされる。或いは、トラン
スマスクレジスタ533は、最終的なマスクデータを生
成する過程で、半透明(translucent 、トランスルーセ
ント) ポリゴンの描画位置のデータを格納する。更に、
エリアマスクレジスタ534は、例えばポリゴンの描画
対象の領域のデータを格納する。或いは、影処理におけ
るシャドーポリゴンの領域のデータ(影処理マスクデー
タ)を一時的に格納する。
スクレジスタとを有するマスクコントロール部53は、
上記のフラグメント領域の64ピクセルに対応して、6
5セット有する。即ち、64ピクセル全てが異なるポリ
ゴンになっても、トランスマスクレジスタ533やエリ
アマスクレジスタ534が対応できる様に構成される。
処理マスクデータを格納する場合は、シャドーボリュー
ムの個数分だけ利用される。そして、それらのエリアマ
スクレジスタ543は、論理和処理部538により論理
和処理されて、レンダリング処理部に合成影処理マスク
データとして供給される。
クデータは、供給されるマスクデータと或いはお互いの
マスクデータと排他処理、排他的論理和処理或いは論理
和処理される。そしてそれらの処理されたマスクデータ
が、再度所定のマスクレジスタに保存され、或いはレン
ダリング処理部に供給される。上記の処理は、排他処理
部531、排他的論理和処理部532及び論理和処理部
538で行われる。
て、I1 ・(!I2 )を出力する。ここで、!I2 はI
2 の否定論理を意味する。また、排他的論理和処理部5
32は、入力I1 I2 に対して、{I1 ・(!I2 )}
+{!I1 ・(I2 )}を出力する。更に論理和処理部
538は、入力I1 I2 ... I65に対して、I1 +I 2
+....+I65を出力する。2値データであるマスクデー
タに対する上記の論理演算は、簡単な論理回路により行
うことが可能である。
説明する。ジオメトリ処理部48で生成されたポリゴン
データは、プリミティブバッファ52に供給され、保存
される。そして、フラクタル処理に必要なポリゴンデー
タはフラクタルセットアップ部54に与えられる。ま
た、エリアマスクレジスタ内のエリアマスクデータが、
マルチプレクサ546を経由して、フラクタル処理部5
5に与えられる。
明するが、フラクタル処理部55を利用することで、ポ
リゴンデータからフラグメント領域内のピクセルがいず
れのポリゴンに属するかの演算、その場合の各ピクセル
のZ値等のポリゴンデータの補間演算などを比較的容易
に且つ短時間で行うことができる。
スクデータは、比較部56にて、Z値比較処理に従っ
て、所定の処理が施されたマスクデータに加工され、再
度マスクコントローラ部53に供給される。従って、比
較部56内には、Z比較器564、トランスZ値比較器
565が設けられる。それらの比較器564,565
は、不透明ポリゴンのZ値を保存するZ値レジスタ56
1と、半透明ポリゴンのZ値等を保存するトランスZ値
レジスタ562とを参照する。
は、後述するマスク生成の詳細な説明によってより明確
化される。
るポリゴンデータの例を示す図である。図3には、二つ
のポリゴンID0,ID1のデータ例が示される。ポリ
ゴンは、通常ラスタスキャン法や補間法での演算を簡単
にするために、3角形で形成される。従って、それぞれ
のポリゴンは頂点00,01,02及び頂点10,1
1,12を有する。そして、各頂点のパラメータとし
て、表示画面上での二次元座標(x、y)と表示画面内
の奥行きを示すZ値、そのポリゴンに与えられるテクス
チャを示すテクスチャ座標(Tx、Ty)、三次元空間
内での法線ベクトル(Nx,Ny,Nz)、透明度を示
すα値及び色データが含まれる。法線ベクトルにより光
源に対する処理が行われ、透明度を示すα値により半透
明ポリゴンに対するブレンディング処理が行われる。
リゴンの属性を示すフィルタイプデータが含まれる。フ
ィルタイプデータには、例えば、不透明ポリゴン、半透
明ポリゴン、シャドーボリュームを構成するシャドーポ
リゴンなどである。本実施の形態例では、これらのポリ
ゴンの属性に応じて異なる処理が施される。
対する描画処理、半透明ポリゴンに対する描画処理及び
影処理に対する描画処理を理解するためには、マスクレ
ジスタに格納されるマスクデータと、それを効果的に生
成するフラクタル処理を説明する必要がある。フラクタ
ル処理とは、逐語的にいえば、自己相似的に処理するこ
とをいう。この処理は、ポリゴン内の各ピクセルのデー
タを演算する為に利用されるラスタスキャン法に代わる
方法である。
さい相似形に分裂しピクセルの座標データを求める方法
(以下単にフラクタル法と称する。)について説明する
図である。この図には、表示画面の一部のあるフラグメ
ント領域20内の8×8のピクセルの座標を求める方法
が示される。図4Aには、フラグメント領域20内の中
心P0 に対して、それぞれ中心P1 、P2 、P3 、P4
の領域に4分割した状態が示される。中心P0 の座標
(x0 ,y0 )に対して、4分割後の中心P1 、P2 、
P3 、P4 の座標は、フラグメント20の一辺の長さを
単純に8とすると、 P1 =(x0 −2,y0 −2)=(x1 ,y1 ) P2 =(x0 −2,y0 +2)=(x2 ,y2 ) P3 =(x0 +2,y0 +2)=(x3 ,y3 ) P4 =(x0 +2,y0 −2)=(x4 ,y4 ) で求められる。この演算には、除算は含まれず単に加算
と減算だけからなる。
P3 、P4 それぞれの領域を4分割し、フラグメント領
域20を新たな中心P11、P12、P13、P14、P21、P
22...P43、P44の領域に16分割した状態が示され
る。それぞれの分割後の領域の中心P11、P12、...
P43、P44の座標は、 P11=(x1 −1,y1 −1)=(x11,y11) P12=(x1 −1,y1 +1)=(x11,y11) P43=(x4 +1,y4 +1)=(x43,y43) P44=(x4 +1,y4 −1)=(x44,y44) で求められる。
P13、...P42、P43、P44それぞれの領域を4分割
し、フラグメント領域20を新たな中心P111 、
P112 ...P 443 、P444 の領域に64分割した状態
が示される。それぞれの分割後の領域の中心P111 、P
112 、P443 、P444 の座標は、 P111 =(x11−0.5,y11−0.5)=(x111 ,
y111 ) P112 =(x11−0.5,y11+0.5)=(x111 ,
y111 ) P443 =(x44+0.5,y44+0.5)=(x443 ,
y443 ) P444 =(x44+0.5,y44−0.5)=(x444 ,
y444 ) で求められる。
ラクタル法によれば、フラグメント領域20を1領域、
4領域、16領域、そして64領域と、それぞれの領域
を更に小さい相似形の領域に分割していく。このフラク
タル法によれば、それぞれの領域の表示画面での座標値
は、上記した通り加算と減算だけで次々に求めることが
できる。しかも、このフラクタル法によれば、図4Cに
示される通り、フラグメント領域20内のピクセルに対
応できる64個の微小領域に対して、同時にその座標値
や色関連データ等の属性データを求めることができる。
その演算の回数は、上記した通り、3階層の演算で行う
ことができ、それぞれの演算は並列演算が可能である。
このことは、この演算回路を構成する場合、並列演算器
を3階層に形成すればよいことを意味する。この演算回
路の構成については、後述する。
域内の中心P0 をスタートにして、64個のピクセルの
表示画面内の座標を加算と減算により簡単に求めること
ができる。そこで、レンダリング処理の為に、各ピクセ
ルにどのポリゴンの色をつければよいかを示すマスクデ
ータを生成する必要がある。別の言葉でいえば、ポリゴ
ン内に位置するピクセルを検出する必要がある。
のポリゴン10内に位置するか否かの判断のアルゴリズ
ムについて説明する図である。二次元座標内の三点L,
M,Nを頂点とする三角形の各辺LM,MN,NLにつ
いて、三角形の単位法線ベクトルを(a1 ,b1 )、
(a2 ,b2 )、(a3 ,b3 )と、座標の原点から各
辺に下ろした垂線の距離をc1 、c2 、c3 とする。こ
の場合、任意の点P(x,y)が三角形の内部に位置す
るか外部に位置するかは、次の式の値dが負か正かによ
り判断できる。
(x,y)が三角形の内部に位置することは、数学的に
自明である。かかる、アルゴリズムは、任意の点がある
多角形の内部に位置するか否かの判断を行う場合に利用
される。
4個のピクセルがあるポリゴンの内部に属するか否かの
演算を行うことができる。例えば、点P0 に対しては、 d1 =a1 x0 +b1 y0 +c1 d2 =a2 x0 +b2 y0 +c2 d3 =a3 x0 +b3 y0 +c3 を演算して、d1 ,d2 ,d3 が共に負になるか否かの
判断を行えば良い。
P4 の領域があるポリゴンの内部に属するか否かの演算
は、点P1 に対しては、 d1 =a1 x1 +b1 y1 +c1 =a1 (x0 -2)+b1 (y0 -2)+c1 d2 =a2 x1 +b2 y1 +c2 =a2 (x0 -2)+b2 (y0 -2)+c2 d3 =a3 x1 +b3 y1 +c3 =a3 (x0 -2)+b3 (y0 -2)+c3 である。結局、点P0 の時に求めたd1 、d2 、d3 に
対して、それぞれ d1 =d1 −2a1 −2b1 d2 =d2 −2a2 −2b2 d3 =d3 −2a3 −2b3 という単純な減算を行うことで求めることができる。
P12、P13、P14、P21、P22...P 43、P44の領域
についても、点P1 、P2 、P3 、P4 の時に求めたd
1 、d2、d3 に対して簡単な減算を行うことで求める
ことができる。例えば、中心P11の場合は、 d1 =d1 −a1 −b1 d2 =d2 −a2 −b2 d3 =d3 −a3 −b3 により求められる。
112 ...P443 、P444 の領域についても簡単に演算
を行うことができる。例えば、中心P111 の場合は、 d1 =d1 −0.5a1 −0.5b1 d2 =d2 −0.5a2 −0.5b2 d3 =d3 −0.5a3 −0.5b3 により求められる。
ンの内部に属するか否かの判断の為の演算は、フラクタ
ル法を利用することにより、極めて簡単に行うことがで
きる。
PG1,PG2,PG3が表示される例を示す図であ
る。この図6に示される通り、表示画面30は、複数の
フラグメント領域FMに分割されている。そこで、中央
付近のフラグメントFM9においては、ポリゴンPG
1,PG2の一部が位置している。このフラグメントF
M9を拡大すると、図6の左下の図になる。図に示され
る通り、64個のピクセルP1 〜P64に分割されてい
る。その場合、ピクセルP1 〜P4 、P9 〜P15、P 17
〜P24、P25〜P32が、ポリゴンPG1に属する。更
に、ピクセルP24、P31、P32、P38〜P40、P45〜P
48、P51〜P56、P58〜P64が、ポリゴンPG2に属す
る。
クセルP1 〜P64がポリゴンに属するか否かの演算が、
フレーム内のポリゴン全てに対して行われることで、フ
ラグメント領域20内において、ポリゴンの位置が確認
される。図6の右下に示される通り、フラグメント領域
FM9において、ポリゴンPG1とPG2の位置が確認
される。図中、一部分で二つのポリゴンPG1とPG2
とが重なりあう。
法は、ポリゴン内のピクセルの座標を求めることで、各
ピクセルにどのポリゴンの色を与えるかを求める。これ
に対して、上記の方法では、フラグメント領域内の全て
のピクセルについて、その座標データを求めてその座標
データからポリゴン内に位置するか否かの判断を行うこ
とで、各ピクセルにどのポリゴンの色を与えれば良いか
を求めることができる。
本的な処理は、重なりあうポリゴンについて、どのポリ
ゴンを表示すべきかの判定をピクセル毎に行うことであ
る。その為に、各ポリゴンのZ値を比較して、Z値が最
も小さい(手前側の)ポリゴンを選択するアルゴリズム
が知られている。或いは、半透明のポリゴンをレンダリ
ングする時は、例えば奥側に位置するポリゴンの色デー
タにそれと重なる手前側のポリゴンの色データを、手前
側のポリゴンの透明度α値に従ってブレンディングする
ことが行われる。その場合も、Z値が比較される。
ルにおけるポリゴンのZ値を求める必要がある。このポ
リゴン毎のZ値の計算は、上記のフラクタル処理を行う
場合に、非常に簡単に行うことができる。
Z0 は、次の演算式で求めることができる。
zは、ポリゴンの1平面からユニークにきまる定数であ
る。具体的には、(∂z/∂x)はポリゴンの平面のX
軸方向の傾きであり、(∂z/∂y)はポリゴンの平面
のY軸方向の傾きである。また、czは原点における平
面のZ値である。
分割した領域の例えば中心P1 のZ値Z1 は、 Z1 =Z0 −2(∂z/∂x)−2(∂z/∂y) で求められる。更に16分割した領域の例えば中心P11
のZ値Z11は、 Z11=Z1 −(∂z/∂x)−(∂z/∂y) で求められ、更に64分割した領域の例えば中心P111
のZ値Z111 は、 Z111 =Z11−0.5(∂z/∂x)−0.5(∂z/
∂y) で求められる。従って、座標の場合と同様に、加算と減
算により64個のピクセルにおけるポリゴンのZ値を簡
単に求めることができる。
がポリゴンに属するか否かの判定と共に、そのピクセル
のポリゴンのZ値の演算とを同時に行うこともできる。
かかる演算は、フラグメント領域内において、ポリゴン
の個数分だけ繰り返される。フレーム内の全てのポリゴ
ンに対して、上記の演算が行われると、そのフラグメン
ト領域内における、各ピクセルの表示すべきポリゴンと
そのZ値とが求められる。
は、ポリゴン内を走査して、その座標とZ値を演算し、
各ピクセルの表示すべきポリゴンとそのZ値とが求めら
れるが、上記した通りその演算には除算が含まれ、コン
ピュータからなる演算器にとって演算時間が長くなる。
それに対して、上記のフラクタル法を使用することによ
り、その演算には基本的に加算と減算しか含まれない。
従って、その演算時間は極めて短くなる。また、後述す
る通り、フラクタル法によれば、64ピクセルの場合
は、並列演算を3階層だけ行うことにより64個分の座
標、ポリゴン、Z値を求めることができる。従って、そ
の点においても演算に要する時間を短くすることができ
る。
成例を示す図である。図中、フラクタル処理に必要な初
期値を求めるフラクタルセットアップ54から処理中の
フラグメント領域の中心点での初期値が、フラクタル処
理器の最初のフラクタル分割器FR0 に供給される。こ
の初期値は、例えば、フラグメント領域の中心点P0の
二次元座標(x0 ,y0 )、処理中のポリゴンに対する
ポリゴン内か外かの判定値d1 ,d2 ,d3 、及びZ0
値である。そして、フラクタル分割器FR0 では、点P
0 の初期値から、4分割した点P1 、P2 、P3 、P4
での二次元座標(x1 ,y1 )〜(x4 ,y4 )、その
座標が処理中のポリゴンに対するポリゴン内か外かの判
定値d1 ,d2 ,d3 (4種類)、及びZ値Z1 〜Z4
が求められる。この演算は、既に説明した通り、初期値
に対して加算と減算だけで構成される。
は、4点P1 、P2 、P3 、P4 での二次元座標
(x1 ,y1 )〜(x4 ,y4 )、その座標が処理中の
ポリゴンに対するポリゴン内か外かの判定値d1 ,
d2 ,d3 (4種類)、及びZ値Z1 〜Z4 から、それ
ぞれ4分割した点P11、P12、P13、P14...P43、
P44のでの同様の値が演算される。
ル分割器FR11〜FR14では、点P 11〜P14の二次元座
標(x11,y11)〜(x14,y14)、その座標が処理中
のポリゴンに対するポリゴン内か外かの判定値d1 ,d
2 ,d3 (4種類)、及びZ値Z11〜Z14から、更に分
割した点P111 ,P112 〜P143 ,P144 に対する同様
の値が求められる。
P21〜P24の同様の値から、更に分割した点P211 ,P
212 〜P243 ,P244 の同様の値が求められる。フラク
タル分割器FR31〜FR34及びFR41〜FR44において
も、同様の演算が行われる。
44では、それぞれのピクセル毎に設けたd1 ,d2 ,d
3 が全て負か否かの判断が行われる。全て負の場合は、
そのピクセルは処理中のポリゴン内に属することにな
る。そこで、更に、そのピクセルのZ値をZ値レジスタ
561内のZ値と比較する。或いは、ピクセルのZ値を
トランスZ値レジスタ内のZ値と比較する。若しくは、
シャドーボリュームのIDと比較する。そして、例えば
不透明ポリゴン内のピクセルのZ値がZ値レジスタ56
1内のZ値よりも小さい場合は、そのポリゴンが表示画
面内で手前に位置することを意味するので、ピクセルの
Z値がZ値レジスタ561に記録される。同時に、マス
クレジスタ60の対応するマスクレジスタ533〜53
7にデータが書き込まれる。
示したフラクタル処理器の通り、加算と減算の単純な演
算を並列的に行うことができる。従って、1つのフラグ
メント領域について、各ピクセル毎の描画すべきポリゴ
ンを求める演算を、初期値が与えられてから、この例で
は3階層の演算で完了することができる。それは、パイ
プライン処理におけるレイテンシーを短くすることがで
きることを意味する。単純に1ピクセル毎に処理する場
合に64回同じ演算を行うことに比較すると、フラクタ
ル処理を利用する場合は演算時間を飛躍的に短縮するこ
とができる。
例を示す図である。この図には、最下位層のフラクタル
分割器FR11〜FR44が示される。このマスクレジスタ
は、64ビットのフラグビットが格納されるレジスタで
構成される。フラグメント領域が64ピクセルで構成さ
れる場合は、そのレジスタが64+1個設けられる。そ
して、各レジスタにポリゴンが割り当てられる。
がフラクタルセットアップ部54に供給された時、フラ
クタル処理器55内で64ピクセルがポリゴンPG1に
属するか否かの判断がなされて、ポリゴンPG1内に属
することが判明すると、ポリゴンPG1が割り当てられ
ているマスクレジスタ601の対応するピクセルのフラ
グビットが「1」にされる。或いは、ピクセルのZ値が
Z値レジスタのZ値よりも小さい(手前側の)場合は、
ポリゴンPG1が割り当てられているマスクレジスタ6
01(PG1)内の対応するピクセルのフラグビットが
「1」にされる。その結果、そのピクセルはポリゴンP
G1に属するデータであることが、或いはそのピクセル
は表示対象のポリゴンPG1内のピクセルであることが
記録される。即ち、フラグビットが「1」のピクセルが
そのポリゴンの有効ピクセル領域を意味する。
ので、マスクレジスタは、最大で64個必要になる。そ
して、演算中に使用される1つのマスクレジスタを加え
て、合計65個のマスクレジスタが設けられる。
チャート図である。上記したフラクタル処理が図9のフ
ローチャート図によって、より明確に理解される。ステ
ップS30にてフラグメント領域が指定され、フレーム
内のポリゴンデータがジオメトリ処理部48からプリミ
ティブバッファ52に供給される(S32)。この場
合、例えば頂点座標とそのZ値が与えられる。かかるポ
リゴンデータはマスクコントロール部53からフラクタ
ルセットアップ部54に供給され、フラグメント領域の
中心点P0 に対して、d値とZ値の初期値が求められる
(S34)。その演算式は、すでに説明した通りであ
る。
えば全てのピクセルが有効領域となっているマスクデー
タをフラクタル処理部55に供給する。フラクタル処理
部55では、上記の中心点P0 に対するd値とZ値の初
期値から、4分割のフラクタ処理(S36)、16分割
のフラクタ処理(S38)、そして64分割のフラクタ
処理(S40)が行われる。その結果、フラグメント領
域内のピクセル毎のd 1 、d2 、d3 及びZ値が求めら
れる。そして、d1 、d2 、d3 値が全て負か否かの判
断により、そのピクセルが処理中のポリゴンの内部に属
するか否かの判断が行われる(S42)。d1 、d2 、
d3 値が全て負の場合は、ピクセルがポリゴン内部に属
する。従って、d値が全て負にならないピクセルは上記
マスクデータの有効領域から削除(データ「0」)され
る。
561のZ値と比較される(S44)。Z値がZ値レジ
スタ内のZ値より小さい(手前側の)場合は、そのZ値
がZ値レジスタ561に格納され、マスクレジスタの対
応するレジスタにフラグ「1」が格納される(S4
6)。
Z値がトランスZ値レジスタ562のZ値と比較される
(S44)。Z値がZ値レジスタ内のZ値より大きい
(奥側の)場合は、そのZ値がトランスZ値レジスタ5
62に格納され、マスクレジスタの対応するレジスタに
フラグ「1」が格納される(S46)。
る処理に応じて異なる。上記のステップS44、S46
は、図2において比較部56が処理する。
ンのどのピクセルを描画すべきか、或いは有効にすべき
かをフラグビットで記録する。従って、マスクレジスタ
は、ポリゴンの描画領域をマスクする機能或いはポリゴ
ンの有効領域をマスクする機能を持つ。そして、フラグ
ビットは1と0のデータであるので、複数のマスクデー
タに対して所定の論理計算を行う場合は、単にAND,
OR,NAND,NORなどの論理ゲート回路を利用す
ることができる。従って、かかるマスクデータに対する
排他処理、排他的論理和処理及び論理和処理の演算は、
簡単な論理ゲート回路により、短時間で効率的に行うこ
とができる。
生成されるフラグメント領域内のマスクデータが明確に
なった。そこで、以下に、フレーム内に含まれる不透明
マスク、半透明マスク及びシャドーボリュームに対する
描画処理について説明する。
処理の全体の流れを示すフローチャート図である。この
例では、フレーム内に不透明ポリゴンと、半透明ポリゴ
ンとが存在し、更に光源による影処理が施される場合
に、上記したフラクタル処理を利用してマスクデータを
適宜生成して効率的に描画処理を行う。
8から不透明ポリゴンのデータを順次供給されて、不透
明ポリゴンについての処理を行う(S10、S12)。
概略的に説明すると、不透明ポリゴンの場合は、Z値が
小さい(手前にある)ピクセルが最終的に描画されるピ
クセルである。従って、フラクタル処理を利用して不透
明ポリゴン内の有効ピクセル領域を検出し同時にそのZ
値を求める。そして、そのZ値がZ値レジスタ561内
のZ値より小さい場合は、ポリゴンに対するトランスマ
スクデータを「1」にし、Z値レジスタ内のZ値を書き
換える。その結果、ポリゴン毎に描画すべきピクセルの
データがトランスマスクデータとして生成される(S1
0)。このトランスマスクデータは、それまでに生成さ
れた別の不透明マスクのトランスマスクデータと排他処
理されて保存される(S12)。
0,S12が行われると、次に、ジオメトリ処理部48
から光源からの光線が遮断された影空間であるシャドー
ボリュームを規定するシャドーポリゴンのデータがマス
ク生成部50に供給される。マスク生成部50では、影
処理が行われ、不透明ポリゴン上であって光源からの光
が照射されない影の領域を示す影処理マスクデータが生
成される(S14)。
データと、影処理により求められエリアマスク内に格納
された影処理マスクデータとから、不透明ポリゴンのレ
ンダリング処理が行われる(S16)。具体的には、マ
スクコントロール部53内のトランスマスクレジスタ5
33のトランスマスクデータとエリアマスクレジスタ5
34の影処理マスクデータとが、レンダリング処理部6
2に供給される。レンダリング処理部62では、トラン
スマスクデータで示された有効ピクセル領域に対応する
ポリゴンの画像データを生成して、フレームバッファ6
6に記録する。また、画像データの生成は、ピクセルの
テクスチャ座標からテクスチャバッファ64内のテクス
チャデータを取得し、また、色データから色データを取
得し、法線ベクトルを利用して光源処理を施す。即ち、
光源からの光が照射される領域では、例えば輝度値を高
くする。また、影処理マスクデータに従う光源からの光
が照射されない領域では、光源による処理を行わない。
(S18)。ここでの半透明ポリゴンとは、不透明でも
透明でもないポリゴンであり、透明度α値が最大のポリ
ゴンを含むポリゴンである。半透明ポリゴンの場合は、
その透明度に応じて奥側に位置するポリゴンの色とブレ
ンディング処理を行う必要がある。そこで、本実施の形
態例では、後述するアルゴリズムにより、表示画面内の
最も奥に位置する半透明ポリゴンの領域を示すトランス
マスクを最初に生成する(S18)。そして、マスクコ
ントロール部53がそのトランスマスクデータをレンダ
リング処理部52に与える。そして、レンダリング処理
部52では、フレームバッファ66内の画像データと処
理中の半透明ポリゴンの色データとでブレンディング処
理を行う(S20)。そのブレンディング処理された画
像データが再度フレームバッファ66に格納される。
ゴンの重なりの全ての層に対して繰り返して行われる。
そして、最後にフレームバッファ66内の画像データ
が、表示装置68に供給され、表示される(S22)。
体的な例を利用して詳細に説明する。
明ポリゴンの処理を説明する為の例を示す図である。図
11(A)には、表示画面101の例が示される。この
表示画面101内には、ポリゴンA、ポリゴンB及びポ
リゴンCが図示される通り一部重なっている。図11
(B)は、表示画面101の中央水平線に沿ったポリゴ
ンの奥行きの関係を示す。即ち、ポリゴンAは最も奥
(Z値最大)に位置し、ポリゴンB、CはポリゴンAよ
りも手前側に位置するが、互いに交差している。
が重なりあう領域は、奥側に位置するポリゴンの領域を
消去する陰面消去処理が行われる。最も一般的な方法
は、ラスタスキャン法によりそれぞれのポリゴンのピク
セルのZ値を求め、Z値レジスタに既に書き込まれたZ
値と比較するZバッファ法である。
ンの処理のフローチャート図である。本実施の形態例の
不透明ポリゴンの処理は、フラクタル処理を利用してト
ランスマスクデータを生成する手法を利用する。図2に
示された、マスクコントロール部53では、トランスマ
スクレジスタ533と排他処理部531とが使用され、
比較器56では、不透明ポリゴンZ値レジスタ561
と、Z比較器564とが使用される。そして、不透明ポ
リゴンのデータに従って、フラクタル処理部55でポリ
ゴン領域を示すマスクデータを生成し、Z比較器564
により陰面消去処理して奥側に位置する領域をマスクデ
ータから削除して、それぞれのトランスマスクレジスタ
に保存する。また、各不透明ポリゴンのトランスマスク
データは、それぞれ排他処理部531により排他処理さ
れ、再度トランスマスクレジスタ533に保存される。
上記の処理が全ての不透明ポリゴンに対して行われる。
そして、最終的に形成されたトランスマスクレジスタの
マスクデータがレンダリング処理部52に転送される。
合のトランスマスクデータの変化を示す図である。ま
た、図34〜37は、図12のフローチャートの各処理
におけるデータの流れを示す図である。図34は、ステ
ップS50〜S55の処理を、図35,36は、ステッ
プS56の処理を、そして、図37はステップS57の
処理をそれぞれ示す。これらの図12〜16、34〜3
7を参照しながら、不透明ポリゴンの処理を説明する。
い。仮に、図11の例のポリゴンA,B,Cの順番に処
理されるとする。先ず、ポリゴンAについて、プリミテ
ィブバッファ52は、ジオメトリ処理部48からポリゴ
ンデータであるプリミティブデータまたはそのIDを受
け取り、保存する(S50)。そして、プリミティブバ
ッファ52は、ポリゴンデータのうちフラクタル処理に
必要なデータをフラクタルセットアップ部54に供給す
る。このフラクタル処理に必要なデータとは、例えば、
頂点パラメータの内の表示座標(X,Y)及びZ値であ
る(S51)。マスクコントロール部53は、空いてい
るエリアマスクレジスタ534にマスクパターンをセッ
トして、フラクタル処理部55に初期マスクデータとし
て供給する(S52)。
102を示すデータである。最初の処理では、初期マス
クデータは全てのビットが有効「1」にセットされる。
図13以下、黒い部分は有効領域であることを示す。
領域判定の為の初期値を求め、フラクタル処理部55に
供給する(S53)。この初期値は、図9のステップS
3で示された通り、d1,d2,d3,(∂z/∂
x)、(∂z/∂y)、czなどである。そして、フラ
クタル処理部55は、初期値をもとに領域判定のフラク
タル処理を行いマスクデータを求め、初期マスクデータ
と論理積演算する。フラクタル処理部55は、更にピク
セルのZ値演算をフラクタル処理で求める(S54)。
かかる領域判定のフラクタル処理とZ値演算のフラクタ
ル処理は、既に説明した通りである。
れたマスクデータは、図13のマスクデータ103に示
される通りである。ポリゴンAは、最初のポリゴンであ
るので、全ての領域が有効領域として判定される。かか
るマスクデータ103及びZ値は、比較器56のZ比較
器564に与えられる。
求めたZ値とZレジスタ561のZ値と比較し、陰面消
去処理によりマスクデータ103から陰の領域を削りマ
スクコントロール部53に与える。また、有効な領域に
対応するZ値を不透明ポリゴンZ値レジスタ561に保
存、更新する(S55)。この場合も、最初のポリゴン
であるので陰面消去処理によっても削られる領域はな
く、Z比較器564から出力されるマスクデータは、図
13のマスク104の如くなる。このマスク104はマ
スクコントロール部53に与えられる。
給されたマスク104のデータをトランスマスクレジス
タ533に保存し(S56、図35)、他のトランスマ
スクレジスタのマスクデータと排他処理を行い、他のマ
スクデータを削除する(S56、図36)。即ち、マス
ク104がポリゴンAに対応するトランスマスクレジス
タ533に記録される。また、他のポリゴンは未だ処理
されていないので、他のトランスマスクレジスタは存在
しない。従って、ここでは他のトランスマスクとの排他
処理は行われない。
ゴンBについても、ポリゴンAと同様に、図12中のス
テップS50からS56の処理が行われる。図14に、
ポリゴンBの場合の、ステップS52での初期値マスク
107、ステップS54でフラクタル処理部が生成した
マスク108及びステップS55でZ比較器564が生
成してトランスマスクレジスタに保存されるマスク10
9が示される。そして、ステップS56にて、排他処理
部531は、ポリゴンBのトランスマスク109とポリ
ゴンAのトランスマスクレジスタ内のマスク104との
排他処理演算を行い、重なり合う領域をポリゴンAのト
ランスマスク104から削除し、図16に示される新た
なトランスマスク105を生成し、ポリゴンAのトラン
スマスクレジスタ533に保存する。
値比較の結果有効となった領域を有するので、先に処理
されたポリゴンAのトランスマスク104と重なる領域
は、ポリゴンAのトランスマスク104から削除され
て、新たなトランスマスク105(図15)となる。
比較部56から供給されるポリゴンBのトランスマスク
データと、すでに保存されているポリゴンAのトランス
マスクレジスタ533内のトランスマスクデータとの間
で行われる。処理されたポリゴンAのトランスマスクデ
ータは、再度トランスマスクレジスタ533内に保存さ
れる。また、ポリゴンBのトランスマスクデータは、異
なるレイヤー内のトランスマスクレジスタ533内に保
存される。
スマスク109と104との排他処理は、有効領域のデ
ータを「1」とすると、(109)・(!104)なる
論理演算である。トランスマスク109とトランスマス
ク104の反転データとの論理積である。尚、本明細書
内にて!は、反転論理を意味し、(!104)は(10
4)の反転或いは否定ビットを意味する。
ゴンCについても、ポリゴンAと同様に、図12中のス
テップS50からS56の処理が行われる。図15に、
ポリゴンCの場合の、ステップS52での初期マスク1
11、ステップS54でフラクタル処理部が生成したマ
スク112及びステップS55でZ比較器564が生成
してトランスマスクレジスタに保存されるマスク113
が示される。ポリゴンCの場合は、Z比較による陰面消
去処理にて、処理済のポリゴンBの背面の領域が削除さ
れ、マスク113が生成される。そして、ステップS5
6にて、排他処理部531は、ポリゴンCのトランスマ
スク104とポリゴンAのトランスマスクレジスタ内の
マスク105との排他処理演算を行い、重なり合う領域
をポリゴンAのトランスマスク105から削除し、図1
6に示される新たなトランスマスク106を生成し、ポ
リゴンAのトランスマスクレジスタ533に保存する。
同様に、排他処理部531は、ポリゴンCのトランスマ
スク104とポリゴンBのトランスマスクレジスタ内の
マスク109との排他処理演算を行い、重なり合う領域
をポリゴンBのトランスマスク109から削除し、図1
6に示される新たなトランスマスク110を生成し、ポ
リゴンBのトランスマスクレジスタ533に保存する。
で、最終的に各トランスマスクレジスタ内のトランスマ
スク106(ポリゴンA)、トランスマスク110(ポ
リゴンB)及びトランスマスク113(ポリゴンC)の
データが、それぞれのポリゴンデータと共にレンダリン
グ処理部62に出力される(S57、図37)。
ランスマスク106に従って、レンダリングすべき領域
について、ポリゴンデータから画像データを演算で求
め、フレームバッファ66に書き込む。同様に、ポリゴ
ンB、Cのトランスマスク110,113に従って、レ
ンダリングすべき領域について、画像データを求め、フ
レームバッファ66に書き込む。トランスマスク10
6,110,113はそれぞれ排他処理済であるので、
重なり合う領域は存在しない。従って、レンダリング処
理部での画像データを求める演算処理は無駄なく行われ
る。
れる場合は、それぞれのトランスマスクレジスタは64
ビットのデータから構成される。従って、上記の排他処
理部531は、64組の排他論理(A・!IN、B・!
IN、C・!IN)の演算回路を有する。即ち、トラン
スマスク105は論理演算A・!Bにより求められ、ト
ランスマスク106は論理演算A・!Cにより求められ
る。また、トランスマスク110は論理演算B・!Cに
より求められる。尚、上記のA,B,Cはそれぞれポリ
ゴンA,B,Cのトランスマスクデータを、!B、!C
はそれぞれポリゴンB、Cのトランスマスクデータの反
転データを示す。
は、トランスマスクレジスタを利用して、それぞれのポ
リゴンの有効領域を示すマスクデータを生成し、Z値比
較による陰面消去処理により手前側に位置する有効領域
を示すマスクデータをトランスマスクとして生成し、そ
のトランスマスクと他のポリゴンのトランスマスクとの
排他処理を行う。特に、ポリゴンの処理の順番に起因し
て必要になる処理済のポリゴンのトランスマスクとの陰
面消去処理は、排他処理用の論理回路を利用することで
容易に実現できる。更に、フラクタル処理を利用するこ
とにより、ポリゴンの存在領域の判定とZ値の演算を短
時間で行うことも可能になる。
明ポリゴンの処理を説明する為の例を示す図である。図
17(A)には、表示画面201の例が示される。この
表示画面201内には、半透明ポリゴンE、半透明ポリ
ゴンF、半透明ポリゴンG及び不透明ポリゴンDが、図
示される通り一部重なりあっている。図17(B)は、
表示画面201の中央水平線に沿ったポリゴンの奥行き
の関係を示す。即ち、ポリゴンEは最も奥(Z値最大)
に位置し、ポリゴンF、GはポリゴンEよりも手前側に
位置するが、互いに交差している。そして、不透明ポリ
ゴンDが最も手前(Z値最小)に位置する。
1に不透明ポリゴンにより隠れている部分は、レンダリ
ング処理の対象から除かれる。第2に、半透明ポリゴン
の重なり合った領域は、それぞれの色データを手前側の
半透明ポリゴンの透明度α値にしたがってブレンディン
グ処理する必要がある。しかも、重なり合った領域の色
データの演算は、常に、奥側のポリゴンの色データXに
手前側のポリゴンの色データYを透明度α値にしたがっ
て求められることが必要である。即ち、重なり合った領
域の色データYYの演算は、YY=α・X+(1−α)
・Yである。従って、重なり合う領域では、奥側のポリ
ゴンの色データを含む画像データが先に生成され、手前
側のポリゴンの色データを含む画像データが後で生成さ
れて、ブレンディング処理されることが必要である。
示画面201に示された不透明ポリゴンDと半透明ポリ
ゴンE,F,Gの画像処理を行う場合は、最初に不透明
ポリゴンの処理を行い、その後、半透明ポリゴンの処理
を行う。しかも、半透明ポリゴンについて、表示画面内
のZ方向で最も奥にある1枚目のポリゴンの領域を最初
にレンダリング処理し、その後、逐次2枚目のポリゴン
の領域、3枚目のポリゴンの領域についてレンダリング
処理を行う。そして、全てのポリゴンの領域が処理され
るまで続ける。
れている領域を削除する処理は、上記してきた不透明ポ
リゴンのZ値レジスタ561のZ値と比較する陰面消去
処理により実現可能である。一方、重なりあう半透明ポ
リゴンの奥側の領域は、半透明ポリゴンのZ値が格納さ
れるトランスZ値レジスタ562のトランス(透明)Z
値と比較しZ値が大きい場合に有効とする逆陰面消去処
理により、検出することができる。それと同時に、不透
明ポリゴンの画像処理でも行った通り、一旦生成された
トランスマスクを利用して、既に生成された他の半透明
ポリゴンのトランスマスクと排他処理を行うことで、処
理の順番にかかわらず、有効な最も奥側の領域を検出す
ることができる。
ル部53は、トランスマスクレジスタ533と、エリア
マスクレジスタ534と排他処理部531とを使用す
る。トランスマスクレジスタとエリアマスクレジスタ
は、不透明ポリゴンの場合と同様に、64ピクセルのフ
ラグメント領域の場合は、64+1の65組の64ビッ
トのレジスタで構成される。また、比較器56は、不透
明ポリゴンのZ値を格納するZ値レジスタ561と、半
透明ポリゴンのトランスZ値を格納するトランスZ値レ
ジスタ562と、Z比較器564とトランスZ比較器5
65とを利用する。エリアマスクとは、半透明ポリゴン
の描画処理すべき領域を示すマスク(第1のマスク)で
ある。従って、最初の処理では不透明ポリゴンにより隠
れている領域を除いた全ての領域にビットデータ「1」
が記録される。また、トランスマスクとは、レンダリン
グ処理部に供給される半透明(トランスルーセント)ポ
リゴンのレンダリング対象領域を示すマスク(第2のマ
スク)である。そして、トランスマスクによりレンダリ
ング処理される毎に、エリアマスクからレンダリング済
のトランスマスクの領域が削除される。最後にエリアマ
スクが全て無効になると、半透明ポリゴンの画像処理が
終了する。エリアマスクからトランスマスクの領域を削
除する演算は、排他処理部531により行われる。そし
て、処理の必要上、同時に2つのマスクレジスタ53
3,534が使用される。
ローチャート(1)を示す図である。図19は、同フロ
ーチャート(2)を示す図である。更に、図20〜22
は、表示画面の奥から1枚目の領域を有効領域とするト
ランスマスクの生成処理を行う時のエリアマスクとトラ
ンスマスクの変化を示す図である。図23,24は、表
示画面の奥から2枚目の領域を有効領域とするトランス
マスクの生成処理を行う時のエリアマスクとトランスマ
スクの変化を示す図である。そして、図25,26は、
表示画面の奥から3枚目の領域のトランスマスク生成の
処理を行う時のエリアマスクとトランスマスクの変化を
示す図である。そして、図27は、図20〜26の全て
を表示する図である。図27を適宜参照することで、画
像処理の理解を容易にする。更に、図38〜42は、図
18,19の半透明ポリゴンの処理フローチャートに対
応した図2のマスク生成部50内のデータの流れを示す
図である。
ンの画像処理を説明する。前提として、不透明ポリゴン
の画像処理を終了している。また、半透明ポリゴンの処
理の順番は特に問わない。仮に、図17の例のポリゴン
E,F,Gの順番に処理されるとする。先ず、ポリゴン
Eについて、プリミティブバッファ52は、ジオメトリ
処理部48から半透明ポリゴンデータであるプリミティ
ブデータまたはそのIDを受け取り、保存する(S5
0)。そして、プリミディブバッファ52は、ポリゴン
データのうちフラクタル処理に必要なデータをフラクタ
ルセットアップ部54に供給する。このフラクタル処理
に必要なデータとは、例えば、頂点パラメータの内の表
示座標及びZ値である(S51)。マスクコントロール
部53は、空いているマスクレジスタ534にマスクパ
ターンをセットして、フラクタル処理部55に初期マス
クデータとして供給する(S52)。
202を示すデータである。最初の処理では、初期マス
クデータは全てのビットが有効「1」にセットされる。
領域判定の為の初期値を求め、フラクタル処理部55に
供給する(S53)。この初期値は、図9のステップS
3で示された通り、d1,d2,d3,(∂z/∂
x)、(∂z/∂y)、czなどである。そして、フラ
クタル処理部55は、初期値をもとに領域判定のフラク
タル処理を行いマスクデータを求め、初期マスクデータ
と論理積演算する。フラクタル処理部55は、更にピク
セルのZ値演算をフラクタル処理で求める(S54)。
かかるマスクデータ及びZ値は、比較器56のZ比較器
564に与えられる。
求めたピクセルのZ値と不透明ポリゴンのZ値レジスタ
561のZ値と比較し、陰面消去処理によりマスクデー
タから不透明ポリゴンDの陰になっている領域を削り、
エリアマスクとしてマスクコントロール部53に与え
る。具体的には、ピクセルのZ値が不透明ポリゴンのZ
値レジスタ561のZ値よりも小さい場合に有効、大き
い場合に無効とされる。これが条件1である(S6
0)。この場合、エリアマスクは図20中のマスク20
4の通りになる。かかるエリアマスク204は、ポリゴ
ンEの領域から手前側の不透明ポリゴンDの領域の部分
が削除されていて、半透明ポリゴンのレンダリング対象
領域を示す。このエリアマスク204はマスクコントロ
ール部53に与えられる。
タル処理で求めたピクセルのZ値と半透明ポリゴンのト
ランスZ値レジスタ562のトランスZ値と比較し、逆
陰面消去処理によりエリアマスクから他の半透明ポリゴ
ンの手前の領域を削り、トランスマスク203−Pとし
てマスクコントロール部53に与える。具体的には、ピ
クセルのZ値がトランスZ値レジスタ562のZ値より
も大きい場合に有効、小さい場合に無効とされる。これ
が条件2である。また、有効な領域に対応するトランス
Z値をトランスZ値レジスタ562に保存、更新する
(S61)。この場合は、最初の半透明ポリゴンEであ
るので、エリアマスク204の全ての領域がトランスマ
スク203−Pの領域となる。以上のステップS50〜
S61でのデータの流れが、図38に示される。
エリアマスクデータ204をエリアマスクレジスタ53
4に、トランスマスクデータ203−Pをトランスマス
クレジスタ533に保存する(S62、図39)。ま
た、マスクコントロール部53は、トランスマスク20
3−Pについて、他のトランスマスクレジスタのトラン
スマスクデータと排他処理を行い、他のトランスマスク
を削除する。この排他処理は、排他処理部531により
行われる(S62、図40)。但し、半透明ポリゴンE
は最初のポリゴンであるので、他の生成済のトランスマ
スクは存在しないので、この時点では排他処理は行われ
ない。
21に示される様に行われる。半透明ポリゴンFについ
ても、図18のステップS50〜S54及びS60〜6
2の処理が行われる。その結果、不透明ポリゴンと陰面
消去処理されて条件1を満たすエリアマスク207が生
成される(S60)。更に、処理済の半透明ポリゴンと
の逆陰面消去処理により、上記条件2を満たすトランス
マスク206−Pが生成される(S61)。トランスマ
スク206−Pから理解される通り、より奥側に位置す
る半透明ポリゴンEの領域が削除されている。そして、
マスクコントロール部53は、そのポリゴンFのトラン
スマスク206−Pと、既に生成されている他のポリゴ
ンEのトランスマスク203−Pとで排他処理を行う
(S62、図40)。その結果、両トランスマスク20
3−Pと206−Pとの間で重なり合う領域は存在しな
いので、ポリゴンEのトランスマスク203−Pは変更
ない。
図22に示される様に行われる。半透明ポリゴンGにつ
いても、図18のステップS50〜S54及びS60〜
62の処理が行われる。その結果、不透明ポリゴンと陰
面消去処理されて条件1を満たすエリアマスク210が
生成される(S60)。更に、処理済の半透明ポリゴン
との逆陰面消去処理により、上記条件2を満たすトラン
スマスク209−Pが生成される(S61)。トランス
マスク209−Pから理解される通り、より奥側に位置
する半透明ポリゴンEの領域が削除されている。
のポリゴンGのトランスマスク209−Pと、既に生成
されている他のポリゴンEのトランスマスク203−P
とで排他処理を行う(S62、図40)。その結果、両
トランスマスク203−Pと209−Pとの間で重なり
合う領域は存在しないので、最終的なポリゴンEのトラ
ンスマスク203(図20)は変更ない。同様に、マス
クコントロール部53は、そのポリゴンGのトランスマ
スク209−Pと、既に生成されている他のポリゴンF
のトランスマスク206−Pとで排他処理を行う(S6
2、図40)。その結果、両トランスマスク206−P
と209−Pとの間で重なり合う領域が、先に処理され
ていたポリゴンFのトランスマスク206−Pから削除
される(図21の領域206D)。最終的なポリゴンF
のトランスマスク206が、図21に示される通り生成
される。また、ポリゴンGのトランスマスク209−P
は、最後の半透明ポリゴンであるので、そのまま最終の
トランスマスク209となる。
が小さい)と条件2(他の半透明ポリゴンよりもZ値が
大きい)とを満たすポリゴンE,F,Gの領域が、それ
ぞれトランスマスク203,206,209に示され
る。かかる領域は、図17から明らかな通り、表示画面
の最も奥に位置する1枚目の領域を示す。
る通り、マスクコントロール部53は、トランスマスク
レジスタ533にそれぞれ保存されている有効なトラン
スマスク203,206,209のデータを、そのポリ
ゴンデータと共にレンダリング処理部62に出力する
(S63、図41)。そして、レンダリング処理部62
では、トランスマスクの有効領域について、色データを
含む画像データを演算して求め、フレームバッファ66
に保存する。かかる画像データの色データは、後で、よ
り手前に位置する半透明ポリゴンの色データとブレンデ
ィング処理される。以上で、1枚目の領域の画像処理が
終了した。
19のフローチャートのステップS64〜S75により
行われる。
にあたり、描画すべき領域を示すエリアマスク204,
207,210から、すでに1枚目の領域として描画済
の領域であるトランスマスク203,206,209の
領域が削除される。即ち、マスクコントロール部53
は、排他処理部531により、エリアマスクレジスタ5
34のそれぞれのポリゴンのエリアマスクデータとトラ
ンスマスクレジスタ533の対応するポリゴンのトラン
スマスクデータとの排他論理(AM・!TM、但しAM
はエリアマスクデータで、!TMはトランスマスクデー
タの反転データ)演算を行い、その結果をエリアマスク
レジスタ534に保存する(S64、図41))。
スZ値レジスタ562をクリアする。即ち、レジスタ5
62のビットデータを全て「0」にする(S65)。以
上で、半透明ポリゴンの2枚目の領域の判定の準備が整
った。
理におけるエリアマスクとトランスマスクを示し、図2
4は、半透明ポリゴンGの2枚目の処理におけるエリア
マスクとトランスマスクを示す。上記したステップS6
4の排他処理により、表示画面の最も奥に位置する半透
明ポリゴンEのエリアマスク204は、トランスマスク
203と一致し、全て削除されて、2枚目以降の処理は
不要である。ポリゴンFはそのエリアマスク211の領
域が、ポリゴンGはそのエリアマスク214の領域がそ
れぞれ未描画の領域である。
2を参照して説明すると、プリミティブバッファ52
は、ポリゴンデータのうちフラクタル処理に必要なデー
タをフラクタルセットアップ部54に供給する(S6
6)。この処理は、ステップS51と同様である。ま
た、マスクコントロール部53は、フラクタル処理部5
5にエリアマスクレジスタ534内のエリアマスクのデ
ータ(初期マスクデータ)を供給する(S67)。即
ち、ポリゴンFの場合はエリアマスク211、ポリゴン
Gの場合はエリアマスク214である。そして、フラク
タルセットアップ部54は、領域判定の為の初期値を求
め、フラクタル処理部55に供給する(S68)。この
処理は、ステップS53と同様である。
をもとに領域判定のフラクタル処理を行いマスクデータ
を求め、エリアマスクデータ211または214と論理
積演算し、更にピクセルのZ値演算をフラクタル処理で
求める(S69)。Z比較器564は、不透明ポリゴン
のZ値レジスタ561のZ値と比較し、陰面消去処理に
よりマスクデータから陰の領域を削り、エリアマスク2
13または216をマスクコントロール部に与える(S
70)。ここの処理は、上記した条件1を満たす領域の
判定である。
ジスタ562のトランスZ値と比較し、エリアマスク2
13または216からZ値が小さいより手前の領域を削
りトランスマスク212または215を生成し、マスク
コントロール部に与える。また、Z値が大きい奥側のZ
値をトランスZ値レジスタ562に保存、更新する(S
71)。即ち、上記の条件2を満足する領域を検出す
る。ポリゴンFから先に処理されたとすると、そのトラ
ンスマスク212ーPは、エリアマスク213と同じで
ある。また、その後に処理されるポリゴンGのトランス
マスク215ーPは、より奥に位置するポリゴンFの領
域(図24中の領域215D)が逆陰面消去処理により
削除される。
給されたエリアマスクデータ213または216をエリ
アマスクレジスタ534に、トランスマスクデータ21
2−Pまたは215−Pをトランスマスクレジスタ53
3にそれぞれ保存する(S72、図39)。そして、他
のトランスマスクレジスタのトランスマスクデータと排
他処理を行い、重なった領域を他のトランスマスクから
削除する(S72、図40)。その結果、先に処理され
たポリゴンFのトランスマスク212−Pからポリゴン
Gのトランスマスク215−Pと重なった領域(図23
中の領域212D)が削除され、トランスマスク212
となる。
ポリゴンGとの処理が終わると、2枚目の最終トランス
マスク212,215が確定したことになる。そこで、
マスクコントロール部53は、トランスマスクレジスタ
533内の有効なトランスマスク212,215とポリ
ゴンデータをレンダリング処理部62に出力する(S7
3、図41)。
とポリゴンデータとから2枚目の色データを演算し、既
に保存しているフレームバッファ66の画像データの色
データに対して、2枚目のポリゴンの透明度α値に従っ
て、上記した通りブレンディング処理を行う。その結果
得られた色データは再度フレームバッファ66に保存さ
れる。
ール部53は、エリアマスク213,216から既に描
画されたトランスマスク212,215の領域を削除す
る為に、排他処理部531により排他処理を行う(S7
4、図41)。その結果、図25,26に示される通
り、未描画領域を示すエリアマスク217,220がそ
れぞれ生成される。その後、3枚目の領域についての処
理が行われる。3枚目の領域の処理も、2枚目の領域の
処理と同様に、トランスZ値レジスタ562をクリアし
(S65)、ステップS66からS72が実行される。
その結果、図25,26に示される通り、エリアマスク
219,222とトランスマスク218,221とがそ
れぞれ生成され、それぞれのレジスタに保存される。
効なトランスマスク218,221とそのポリゴンデー
タをレンダリング処理部62に出力する(S73、図4
1)。レンダリング処理部62は、トランスマスク21
8,221の領域について、ブレンディング処理を行っ
て、色データを含む画像データを再度フレームバッファ
66に保存する。
リアマスク219,222から描画済の領域を示すトラ
ンスマスク218,221を削除すると(S74、図4
1)、有効なエリアマスクは消滅する。即ち、全ての描
画すべき領域の処理が終了したことになる(S75)。
て、不透明ポリゴンに対する陰面消去処理を行うため
に、条件1を満たすエリアマスクを生成した。しかし、
不透明ポリゴンが存在せず、半透明ポリゴンのみの場合
は、条件1の処理は省略される。
は、エリアマスクレジスタ534とトランスマスクレジ
スタ533とを同時に利用して、描画すべきポリゴンの
領域を奥側から順にトランスマスクレジスタ533に生
成し、レンダリング処理部に供給する。そして、描画す
べきポリゴンの領域をエリアマスクレジスタ534に保
存し、レンダリング処理した領域を逐次削除していく。
そして、エリアマスクレジスタ534の有効領域がなく
なるまで、処理を繰り返す。2種類のマスクレジスタと
排他処理部とを利用するだけで、半透明ポリゴンの処理
を効率的に行うことができる。
る。影処理では、光源からの光がポリゴンによって遮断
された領域を検出し、その領域については光源による処
理を行わない。従って、その領域は輝度が低いままとな
り、表示された時に影の領域として表示される。
処理を説明したが、同様のハードウエアを利用して物体
の影を描くことができるシャドーポリゴン法が提案され
ている。例えば、特開平2-73479 である。かかるシャド
ーポリゴン法は、シャドーボリュームと呼ばれる影付け
の為の仮想の物体を利用する。シャドーボリュームと
は、光源と物体によって生じる影空間であり、そのシャ
ドーボリュームの内側がその物体の影になる領域であ
り、その外側は光源の光が照射される領域である。
あり、それを構成する複数の側面はシャドーポリゴンと
呼ばれる半無限の多角形である。但し、コンピュータを
利用した実際の画像処理においては、シャドーボリュー
ムは、有限な多面体として、シャドーポリゴンは有限の
多角形として処理される。従って、シャードーボリュー
ムは複数のシャードーポリゴンで構成され、シャドーポ
リゴンを通常のポリゴンと同様に取り扱い、影処理を行
うことができる。
アマスク534、排他的論理和処理部532及び論理和
処理部538とを利用する。本実施の形態例の説明をす
る前に、上記の特開平2-73479 のアルゴリズムについて
簡単に説明する。
成するシャドーポリゴンを利用した陰影処理を示す図で
ある。この例では、光源LS1,LS2,LS3により
形成されるシャドーボリュームSV1,SV2,SV3
が、不透明ポリゴンP1,P2,P3により生成され
る。図中、左側の無限遠に光源が存在するので、不透明
ポリゴンP1,P2,P3の右側にそれぞれシャドーボ
リュームSV1,SV2,SV3が生成される。また、
図中、シャドーボリュームの断面が示され、従って、シ
ャドーボリュームSV1はシャドーポリゴンSP11,
SP12により形成され、シャドーボリュームSV2は
シャドーポリゴンSP21,SP22により形成され、
シャドーボリュームSV3はシャドーポリゴンSP3
1,SP32により形成される。
の外の位置の視点1にあるとする。シャドーボリューム
の中に位置する陰の領域か、外に位置する光が照射され
ている領域かを検出するためには、視点1からZ軸の方
向(矢印方向)にシャドーポリゴンを通過したか否かを
カウントし、そのカウント値が偶数か奇数かを検出す
る。図28に示される通り、視点1が、シャドーボリュ
ームの外側に位置する場合は、偶数がシャドーボリュー
ムの外の領域、奇数がシャドーボリュームの中の領域で
あることが理解される。
否かの判断をするためには、そのポリゴンの位置よりも
手前、即ちポリゴンの位置と視点の位置の間に存在する
シャドーポリゴンの数をカウントし、そのカウント値が
偶数であれば影の領域内、奇数であれば影の領域外であ
るとすれば良い。但し、視点2の如くシャドーボリュー
ムSV1,SV2が重なる領域が存在する場合は、上記
偶数、奇数の判断はできなくなる。その場合は、いずれ
か1つのシャドーボリュームについてのみ判断し、後に
残りのシャドーボリュームについて判断する必要があ
る。
ュームSV3を横切るポリゴンP4が存在するとする
と、ポリゴンP4の領域a−bは、視点1との間にシャ
ドーポリゴンSP31,SP32が2枚存在するので、
シャドーボリュームSV3の外の領域と判断される。ま
た、ポリゴンP4に領域b−cは、視点1との間にシャ
ドーポリゴンSP32が1枚存在するので、シャドーボ
リュームSV3の中の領域と判断される。そして、領域
c−dは、視点1との間にシャドーポリゴンが存在しな
いので、シャドーボリュームSV3の外と判断される。
ーポリゴンを利用した影処理は、上記説明したZ値を利
用した陰面消去法と同様の方法を利用し、例えば視点と
の間に何枚のシャドーポリゴンが存在するかをカウント
することで行うことができる。
る場合は、上記の奇数と偶数に対して、それぞれ影の領
域外と影の領域内との関係が視点がシャドーボリューム
外に位置する場合と逆になる。
シャドーポリゴンを検出する逆陰面消去法と同様の方法
が利用できる。即ち、ポリゴンP4と無限遠との間にあ
るシャドーポリゴンの数をカウントすることで、同様に
ポリゴンP4の領域がシャドーボリューム内に位置する
か否かを検出できる。従って、その場合は、ポリゴンP
4のZ値よりも大きいZ値を有するシャドーポリゴンの
領域が、奇偶転換の対象領域となる。
マスク生成部を利用して、フラクタル処理によるシャド
ーポリゴンの有効領域をエリアマスクに生成し、視点と
の間のシャドーポリゴンの枚数の奇数か偶数かを格納す
る影処理マスクデータを生成してエリアマスクレジスタ
に保存することを基本とする。或いは、無限遠との間の
シャドーポリゴンの枚数の奇数か偶数かを格納する影処
理マスクデータを生成してエリアマスクレジスタに保存
することを基本とする。更に、上記の影処理マスクデー
タをシャドーボリューム毎に生成し、最後の全てのシャ
ドーボリュームに対応する影処理マスクデータの論理和
をとり、合成された影処理マスクデータを生成してレン
ダリング処理部に供給する。シャドーボリュームが重な
り合う領域はいずれにしても影になるので、それぞれの
シャドーボリュームにより影になる領域を影処理マスク
データとして別々に求めて、最後の論理和をとる。ま
た、影処理の前に不透明ポリゴンのレンダリングが終了
し、そのZ値が不透明ポリゴンZ値レジスタ561に格
納されていることを前提とする。
部50において、マスクコントロール部53の排他的論
理和処理部532、論理和処理部538、シャドーボリ
ューム毎に設けられたエリアマスクレジスタ534が利
用される。また、比較部56の、不透明ポリゴンZ値レ
ジスタ561とZ値比較器564とが利用されるだけで
ある。
図である。図29(A)は、表示画面内のシャドーボリ
ュームSV1,SV2と、通常ポリゴンP1,P2とか
らなる例であり、図29(B)は、Z値方向のシャドー
ボリュームSV1,SV2を構成するシャドーポリゴン
の位置関係を示す。シャドーボリュームSV1,SV2
は、いずれも三角錐であり、それぞれ画面前方のシャド
ーポリゴン1F、2Fと、画面後方の左右のシャドーポ
リゴン1L、1R及び2L、2Rで構成される。
る。また、図31、図32は、図29の例を影処理によ
り処理した場合の影処理マスクデータのエリアマスクを
示す図である。そして、図33は、最後に合成された合
成影処理マスクデータを示す図である。更に、図43〜
45は、図30のフローチャートの各データの流れを示
す図である。
ーボリューム毎に不透明ポリゴンと視点あるいは無限遠
との間に位置するシャドーポリゴンを検出し、その個数
が奇数か偶数かを格納する影処理マスクデータ(エリア
マスクデータ)に対して、その検出された領域について
奇数と偶数との反転処理を、排他的論理和処理により行
う。この処理を全てのシャドーボリュームに対して繰り
返し行い、最後に、それぞれのシャドーボリューム毎に
生成したエリアマスクレジスタ内の影処理マスクデータ
を、論理和処理部538で処理して、合成された影処理
マスクデータを生成し、レンダリング処理部に供給す
る。以下、図30のフローチャートに従って、及び図3
1〜33及び図43〜45を参照して影処理を詳細に説
明する。
終了していることが前提である。ステップS100〜S
104は、半透明ポリゴンの画像処理の場合とほぼ同じ
であるが、影処理の場合は対象がシャドーポリゴンとな
る点で異なる。先ず、シャドーポリゴン1Fについて、
プリミティブバッファ52は、ジオメトリ処理部48か
らシャドーポリゴンデータであるプリミティブデータま
たはそのIDを受け取り、保存する(S100)。そし
て、プリミティブバッファ52は、ポリゴンデータを記
憶し、ポリゴンデータのうちフラクタル処理に必要なデ
ータをフラクタルセットアップ部54に供給する。この
フラクタル処理に必要なデータとは、例えば、頂点パラ
メータの内の表示座標及びZ値である(S101)。プ
リミティブバッファ52は、空いているエリアマスクレ
ジスタにマスクパターンをセットして、フラクタル処理
部55に初期マスクデータとして供給する(S10
2)。この初期マスクデータは、全てのビットが有効
「1」にセットされる。
領域判定の為の初期値を求め、フラクタル処理部55に
供給する(S103)。この初期値は、図9のステップ
S3で示された通り、d1,d2,d3,(∂z/∂
x)、(∂z/∂y)、czなどである。そして、フラ
クタル処理部55は、初期値をもとに領域判定のフラク
タル処理を行いマスクデータを求め、初期マスクデータ
と論理積演算する。フラクタル処理部55は、更にピク
セルのZ値演算をフラクタル処理で求める(S10
4)。かかるマスクデータ及びZ値は、比較器56のZ
比較器564に与えられる。
求めたピクセルのZ値と不透明ポリゴンのZ値レジスタ
561のZ値と比較し、陰面消去処理によりマスクデー
タから不透明ポリゴンP1,P2の陰になっている領域
を削り、図31のエリアマスク402としてマスクコン
トロール部53に与える(S105、図43)。ここで
の陰面消去処理は、具体的にはシャドーポリゴンのピク
セルのZ値がZ値レジスタのZ値よりも小さい領域を有
効にする処理である。或いは、前述の通り逆陰面消去処
理により、ピクセルのZ値がZ値レジスタのZ値よりも
大きい領域を有効にする処理でも良い。前者の場合は、
不透明ポリゴンと視点との間に存在するシャドーポリゴ
ンの領域を有効領域とするアルゴリズムである。後者
は、不透明ポリゴンと無限遠との間を有効領域とする逆
のアルゴリズムである。
リゴンをカウントする前者の処理では、ピクセルのZ値
がZ値レジスタのZ値よりも小さい場合に有効、大きい
場合に無効とされ、エリアマスクは図31中のマスク4
02の通りになる。かかるエリアマスク402は、シャ
ドーポリゴン1Fの領域から手前側の不透明ポリゴンP
1,P2の領域の部分が削除され、シャドーポリゴンの
影処理対象領域を示す。
他的論理和処理部532により、比較器56から供給さ
れたエリアマスクデータ402と既に保存されているエ
リアマスクレジスタ534内のマスクデータとの排他的
論理和処理を行い、エリアマスクレジスタ534に保存
する(S106、図44)。エリアマスクレジスタ53
4の初期値は全て、例えば偶数を示す「0」である。従
って、上記の排他的論理和処理により、比較器から供給
されたエリアマスク402の有効領域は、奇数を示す
「1」に転換される。即ち、ここでの排他的論理和処理
は、不透明ポリゴンと視点(或いは無限遠)との間に位
置するシャドーポリゴンの数の奇数か偶数かのデータを
反転する処理である。本明細書では、かかる排他的論理
和処理を奇偶転換処理と称する。その結果、図31に示
されるエリアマスク402が生成される。最初のシャド
ーポリゴン1Fであるので、エリアマスク402は、シ
ャドーポリゴン1Fの形状と同じである。
ャドーポリゴン1Lが、上記と同様にステップS100
〜S106に従って処理される。ステップS105によ
りマスクコントロール部53に供給されるマスクデータ
は、図31の307の如くなる。このマスクデータ30
7に示される領域が、シャドーポリゴン1Lのうち不透
明ポリゴンP1,P2と視点との間に位置する領域であ
る。そして、マスクデータ402と307との排他的論
理和処理(EOR)による奇偶転換処理の結果、図31
に示されるエリアマスク403が生成される(S10
6、図44)。
ドーポリゴン1RがステップS100〜S106に従っ
て処理される。シャドーポリゴン1Rのマスクデータ3
11がマスクコントロール部53に供給され、マスクデ
ータ403との排他的論理和処理による奇偶転換処理の
結果、図31に示されるエリアマスク404が生成され
る。以上でシャドーボリュームSV1のIDを有するシ
ャドーポリゴンの処理が完了し、エリアマスク404が
シャドーボリュームSV1により形成される影の領域を
示す。従って、このエリアマスク404が影処理マスク
としてエリアマスクレジスタ534に保存される(S1
06、図44)。
有するシャドーポリゴン2F、2L、2Rが同様にステ
ップS100〜S106に従って処理される。この影処
理では、シャドーボリュームの重なり合う領域を考慮す
ることなく、陰面消去処理と奇偶転換処理が行われて、
図32に示す通り、エリアマスク405,406,40
7が順次生成される。エリアマスク407がシャドーボ
リュームSV2により形成される影の領域を示す。従っ
て、このエリアマスク407が影処理マスクとしてシャ
ドーポリゴンSV2に対応するエリアマスクレジスタ5
34に保存される。
ク)はシャドーボリュームに対応してそれぞれ生成され
る。そして、全てのシャドーボリュームのポリゴンが終
了すると(S107)、マスクコントロール部53は、
論理和処理部538によりシャドーボリュームID毎の
エリアマスクレジスタ534のマスクデータの論理和を
とり、合成された影処理マスクを生成し、レンダリング
処理部62に供給する(S108、図45)。図31の
エリアマスク404と図32のエリアマスク407との
論理和処理の結果、図33のライトマスク408が生成
される。異なるシャドーボリュームにより生成される影
の領域(影処理マスクの有効領域)は、重なりあう領域
もやはり影の領域となる。
ダリング処理部に供給され、不透明ポリゴンのトランス
マスクと共にレンダリング処理に利用される。その結
果、光源に対する影を有効に表現することができる。
ーム毎に影処理マスクに相当するエリアマスクを生成
し、最後の全てのエリアマスクの論理和処理を行うだけ
でよいので、効率的な処理を可能にする。
6は、本実施の形態例の画像処理を汎用コンピュータを
利用してソフトウエアにより行う場合の構成例を示す図
である。汎用コンピュータを利用して画像処理を行う場
合は、画像処理の演算は記録媒体内に格納されたプログ
ラムに従って行われる。従って、画像処理プログラムを
コンピュータが読み取り可能な記録媒体に格納すること
で、汎用コンピュータは画像処理専用コンピュータとし
て動作する。画像処理プログラムは、上記したフローチ
ャート等で説明した各手順をコンピュータに実行させ
る。また、各マスクデータ間の論理積処理、排他処理、
排他的論理和処理、論理和処理は、コンピュータの演算
機能を利用することができる。
AM71、ゲームプログラムや画像処理プログラムが格
納されたROM72が、バス76に接続される。また、
バス76に接続された入出力部73は、操作者が操作す
る操作部74に接続され、操作信号を入力する。また、
画像処理の為に、RAM71内にポリゴンデータを記憶
するプリミティブバッファ52,不透明ポリゴンZ値レ
ジスタ561、トランスZ値レジスタ562、各マスク
レジスタ533,534、テクスチャーマップメモリ6
4が設けらる。また、フレームバッファメモリ66は、
バス76に接続され、外部の表示装置68にも接続され
る。
72内に格納されているが、それ以外に、外部のCDR
OMや磁気テープなどの記録媒体75からRAM71内
に画像処理プログラムをインストールすることもでき
る。
定の領域内のピクセル毎に有効または無効を示すマス
ク、奇数または偶数を示すマスクを利用して、排他処
理、排他的論理和処理、論理和処理を行うことで、比較
的単純な論理演算により画像処理を行うことができる。
利用することで、所定の領域内のポリゴンの領域を示す
エリアマスクを効率的に生成することができ、その後エ
リアマスクを利用して、上記の論理演算を行って画像処
理を行うことができる。
理において、Z値を利用した陰面消去法を利用して各ポ
リゴン毎に有効領域を示すトランスマスクを生成し、更
にトランスマスク間の排他処理を行うことで、表示され
るべき有効領域を有するポリゴン毎のトランスマスクを
効率的に形成することができる。そして、そのトランス
マスクを利用してレンダリング処理を行うことができ
る。
て、Z値を利用した陰面消去法を利用して不透明ポリゴ
ンにより隠される領域を除去したエリアマスクを生成
し、Z値の大きい順に抽出する逆陰面消去法により、表
示画面の奥側の半透明ポリゴンの領域を抽出してトラン
スマスクを生成し、更にトランスマスク間で排他処理を
行うことで、互いに重なりある領域を適宜処理すること
ができる。そして、表示画面の奥側から順番にトランス
マスクを生成してレンダリング処理するので、半透明ポ
リゴンに必要なブレンディング処理を効率的に行うこと
ができる。
ーボリューム毎に描画ポリゴンと視点(或いは無限遠)
との間のシャドーポリゴンの位置を陰面処理によりマス
クデータとして求め、排他的論理和処理によりシャドー
ポリゴンの枚数を奇数か偶数かを示す影処理マスクデー
タを求めてエリアマスクレジスタに保存する。そして、
最後にシャドーボリューム毎に求めた影処理マスクデー
タの論理和処理により影となる合成された影処理マスク
データを生成することができる。従って、簡単な論理演
算により効率的に陰影処理を行うことができる。
ある。
ータの例を示す図である。
0内に位置するか否かの判断のアルゴリズムについて説
明する図である。
2,PG3が表示される例を示す図である。
る。
る。
図である。
す図である。
ローチャート図である。
の変化を示す図である。
の変化を示す図である。
の変化を示す図である。
の変化を示す図である。
す図である。
ローチャート図(1)である。
ローチャート図(2)である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの変化を示す図である。
トランスマスクの全体の変化を示す図である。
ーポリゴンを利用した陰影処理を示す図である。
マスクを示す図である。
マスクを示す図である。
合成影処理マスクを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
部50内のデータの流れを示す図である。
タの流れを示す図である。
タの流れを示す図である。
タの流れを示す図である。
タを利用してソフトウエアにより行う場合の構成例を示
す図である。
Claims (26)
- 【請求項1】複数のポリゴンを表示する為の画像データ
を生成する画像処理装置において、 前記ポリゴンの表示画面内の位置データを含むポリゴン
データから、表示画面内の前記ポリゴンの有効ピクセル
領域を示す第1のマスクデータと該有効ピクセル毎の表
示画面内の奥行きを示すZ値とを生成し、該第1のマス
クデータの有効ピクセル領域のうち既に処理済の他のポ
リゴンのZ値よりも手前側のZ値のピクセルの領域を有
効ピクセル領域とする第2のマスクデータを生成し、生
成された第2のマスクデータの有効領域を生成済の他の
ポリゴンの第2のマスクデータの有効領域から削除する
排他処理を行って新たな第2のマスクデータを生成し、
上記新たな第2のマスクデータの生成をポリゴン毎に行
うマスク生成部と、 前記マスク生成部から供給される新たな第2のマスクデ
ータに従って、該新たな第2のマスクデータが示す有効
領域について、前記各ポリゴンのレンダリング処理を行
うレンダリング処理部とを有する画像処理装置。 - 【請求項2】請求項1において、 前記マスク生成部は、所定の表示画面領域に対して、フ
ラクタル的に該領域をより小さい相似形に分裂しなが
ら、前記位置データに従って当該分裂された領域が前記
ポリゴンの内部に位置するか否かを順次検出し、該分裂
されたピクセル毎に検出された前記第1のマスクデータ
を生成するフラクタル処理部を有する画像処理装置。 - 【請求項3】複数の半透明ポリゴンを表示する為の画像
データを生成する画像処理装置において、 前記半透明ポリゴンの表示画面内の位置データを含むポ
リゴンデータから、表示画面内の前記半透明ポリゴンの
有効ピクセル領域を示す第1のマスクデータと該有効ピ
クセル毎の表示画面内の奥行きを示す半透明Z値とを生
成し、該第1のマスクデータの有効ピクセル領域のうち
既に処理済の他の半透明ポリゴンの半透明Z値よりも奥
側の半透明Z値のピクセルの領域を有効ピクセル領域と
する第2のマスクデータを生成し、生成された第2のマ
スクデータの有効領域を生成済の他の半透明ポリゴンの
第2のマスクデータの有効領域から削除する排他処理を
行って新たな第2のマスクデータを生成し、上記新たな
第2のマスクデータの生成を半透明ポリゴン毎に行うマ
スク生成部と、 前記マスク生成部から供給される前記新たな第2のマス
クデータに従って、該新たな第2のマスクデータが示す
有効領域について、画像データを生成する前記各ポリゴ
ンのレンダリング処理を行うレンダリング処理部とを有
し、 前記マスク生成部は、更に、前記第1のマスクデータの
有効領域から前記新たな第2のマスクデータの有効領域
を削除する排他処理を行って新たな第1のマスクデータ
を生成し、前記新たな第1のマスクデータに基づいて次
の前記新たな第2のマスクデータを生成し、 前記レンダリング処理部は、前記次の新たな第2のマス
クデータに従って前記レンダリング処理を行う画像処理
装置。 - 【請求項4】請求項3において 前記マスク生成部は、 前記第1のマスクデータの有効領域から前記新たな第2
のマスクデータの有効領域を削除する排他処理を行って
新たな第1のマスクデータを生成し、前記新たな第1の
マスクデータに基づいて次の前記新たな第2のマスクデ
ータを生成することを、 前記新たな第1のマスクデータから有効領域がなくなる
まで、繰り返し行うことを特徴とする画像処理装置。 - 【請求項5】請求項3または4において前記レンダリン
グ処理部は、前記次の新たな第2のマスクデータに従っ
て行うレンダリング処理において、前に供給した前記新
たな第2のマスクデータの有効領域と前記次の新たな第
2のマスクデータの有効領域とで重なる領域に、所定の
ブレンディング処理を行うことを特徴とする画像処理装
置。 - 【請求項6】請求項3または4において、 前記マスク生成部は、前記表示画面内の前記半透明ポリ
ゴンの有効ピクセル領域を示す第1のマスクデータを、
不透明ポリゴンの有効ピクセル領域のZ値よりも手前側
のZ値のピクセル領域を有効領域とすることで生成する
ことを特徴とする画像処理装置。 - 【請求項7】請求項3または4において、 前記マスク生成部は、所定の表示画面領域に対して、フ
ラクタル的に該領域をより小さい相似形に分裂しなが
ら、前記位置データに従って当該分裂された領域が前記
ポリゴンの内部に位置するか否かを順次検出し、該分裂
されたピクセル毎に検出された前記第1のマスクデータ
を生成するフラクタル処理部を有する画像処理装置。 - 【請求項8】請求項3または4において、 前記マスク生成部及びレンダリング処理部は、更に、請
求項1に記載のマスクデータの生成及びレンダリング処
理を、前記半透明ポリゴンの処理を行う前に行うことを
特徴とする画像処理装置。 - 【請求項9】描画対象ポリゴン上の影領域を表示する為
の画像データを生成する画像処理装置において、 シャドーボリュームを規定するシャドーポリゴンの表示
画面内の位置データを含むシャドーポリゴンデータか
ら、表示画面内の前記シャドーポリゴンの有効ピクセル
領域を示す第1のマスクデータと該有効ピクセル毎の表
示画面内の奥行きを示すZ値とを生成し、前記第1のマ
スクデータの有効ピクセル領域のうち前記描画対象ポリ
ゴンのZ値より手前側(または奥側)のZ値のピクセル
の領域を有効ピクセル領域とする第2のマスクデータを
生成し、視線方向であって前記描画対象ポリゴンと視点
(または無限遠)との間に位置するシャドーポリゴンの
枚数の奇偶データを有する影処理マスクデータの該奇偶
データを、前記第2のマスクデータの有効領域について
奇偶反転して新たな影処理マスクデータを生成し、上記
影処理マスクデータの生成を前記シャドーボリュームを
規定する全てのシャドーポリゴンに対して行うマスク生
成部と、 前記マスク生成部から供給される前記影処理マスクデー
タに従って、レンダリング処理を行うレンダリング処理
部とを有する画像処理装置。 - 【請求項10】請求項9において、 複数のシャドーボリュームが存在し、 前記マスク生成部は、前記複数のシャドーボリュームに
対してそれぞれ前記影処理マスクデータを生成し、該複
数の影処理マスクデータの有効領域を重ね合わせた有効
領域を有する合成影処理マスクデータを生成し、 該合成影処理マスクデータを前記レンダリング処理部
に、前記供給用の影処理マスクデータとして供給する画
像処理装置。 - 【請求項11】請求項9または10において、 前記レンダリング処理部は、前記供給された影処理マス
クデータに従って、該影処理マスクデータが示す有効領
域について、前記描画対象ポリゴン上に影領域を表示す
るレンダリング処理を行うことを特徴とする画像処理装
置。 - 【請求項12】請求項9または10において、 前記マスク生成部は、所定の表示画面領域に対して、フ
ラクタル的に該領域をより小さい相似形に分裂しなが
ら、前記位置データに従って当該分裂された領域が前記
シャドーポリゴンの内部に位置するか否かを順次検出
し、該分裂されたピクセル毎に検出された前記第1のマ
スクデータを生成するフラクタル処理部を有する画像処
理装置。 - 【請求項13】請求項9または10において、 前記マスク生成部は、更に、請求項1に記載のマスクデ
ータの生成を、前記シャドーポリゴンの処理を行う前に
行うことを特徴とする画像処理装置。 - 【請求項14】請求項9または10において、 前記マスク生成部及びレンダリング処理部は、更に、請
求項3に記載の半透明ポリゴンについてのマスクデータ
の生成及びレンダリング処理を、前記シャドーポリゴン
の処理を行った後に行うことを特徴とする画像処理装
置。 - 【請求項15】複数のポリゴンを表示する為の画像デー
タを生成する画像処理方法において、 前記ポリゴンの表示画面内の位置データを含むポリゴン
データから、表示画面内の前記ポリゴンの有効ピクセル
領域を示す第1のマスクデータと該有効ピクセル毎の表
示画面内の奥行きを示すZ値とを生成し、該第1のマス
クデータの有効ピクセル領域のうち既に処理済の他のポ
リゴンのZ値よりも手前側のZ値のピクセルの領域を有
効ピクセル領域とする第2のマスクデータを生成し、生
成された第2のマスクデータの有効領域を生成済の他の
ポリゴンの第2のマスクデータの有効領域から削除する
排他処理を行って新たな第2のマスクデータを生成し、
上記新たな第2のマスクデータの生成をポリゴン毎に行
うマスク生成工程と、 前記マスク生成工程により生成された前記新たな第2の
マスクデータに従って、該新たな第2のマスクデータが
示す有効領域について、前記各ポリゴンのレンダリング
処理を行うレンダリング処理工程とを有する画像処理方
法。 - 【請求項16】複数の半透明ポリゴンを表示する為の画
像データを生成する画像処理方法において、 前記半透明ポリゴンの表示画面内の位置データを含むポ
リゴンデータから、表示画面内の前記半透明ポリゴンの
有効ピクセル領域を示す第1のマスクデータと該有効ピ
クセル毎の表示画面内の奥行きを示す半透明Z値とを生
成し、該第1のマスクデータの有効ピクセル領域のうち
既に処理済の他の半透明ポリゴンの半透明Z値よりも奥
側の半透明Z値のピクセルの領域を有効ピクセル領域と
する第2のマスクデータを生成し、生成された第2のマ
スクデータの有効領域を生成済の他の半透明ポリゴンの
第2のマスクデータの有効領域から削除する排他処理を
行って新たな第2のマスクデータを生成し、上記新たな
第2のマスクデータの生成を半透明ポリゴン毎に行うマ
スク生成工程と、 前記マスク生成工程で生成された前記新たな第2のマス
クデータに従って、該新たな第2のマスクデータが示す
有効領域について、画像データを生成する前記各ポリゴ
ンのレンダリング処理を行うレンダリング処理工程とを
有し、 前記マスク生成工程で、更に、前記第1のマスクデータ
の有効領域から前記新たな第2のマスクデータの有効領
域を削除する排他処理を行って新たな第1のマスクデー
タを生成し、前記新たな第1のマスクデータに基づいて
次の前記新たな第2のマスクデータを生成し、 前記レンダリング処理工程で、前記次の新たな第2のマ
スクデータに従って前記レンダリング処理を行う画像処
理方法。 - 【請求項17】請求項16において前記マスク生成工程
では、更に、 前記第1のマスクデータの有効領域から前記新たな第2
のマスクデータの有効領域を削除する排他処理を行って
新たな第1のマスクデータを生成し、前記新たな第1の
マスクデータに基づいて次の前記新たな第2のマスクデ
ータを生成することを、 前記新たな第1のマスクデータから有効領域がなくなる
まで、繰り返し行うことを特徴とする画像処理方法。 - 【請求項18】請求項16または17において前記レン
ダリング処理工程で、前記次の新たな第2のマスクデー
タに従って行うレンダリング処理において、前に供給し
た前記新たな第2のマスクデータの有効領域と前記次の
新たな第2のマスクデータの有効領域とで重なる領域
に、所定のブレンディング処理を行うことを特徴とする
画像処理方法。 - 【請求項19】描画対象ポリゴン上の影領域を表示する
為の画像データを生成する画像処理方法において、 シャドーボリュームを規定するシャドーポリゴンの表示
画面内の位置データを含むシャドーポリゴンデータか
ら、表示画面内の前記シャドーポリゴンの有効ピクセル
領域を示す第1のマスクデータと該有効ピクセル毎の表
示画面内の奥行きを示すZ値とを生成し、前記第1のマ
スクデータの有効ピクセル領域のうち前記描画対象ポリ
ゴンのZ値より手前側(または奥側)のZ値のピクセル
の領域を有効ピクセル領域とする第2のマスクデータを
生成し、視線方向であって前記描画対象ポリゴンと視点
(または無限遠)との間に位置するシャドーポリゴンの
枚数の奇偶データを有する影処理マスクデータの該奇偶
データを、前記第2のマスクデータの有効領域について
奇偶反転して新たな影処理マスクデータを生成し、上記
影処理マスクデータの生成を前記シャドーボリュームを
規定する全てのシャドーポリゴンに対して行うマスク生
成工程と、 前記マスク生成工程で生成された前記影処理マスクデー
タに従って、レンダリング処理を行うレンダリング処理
工程とを有する画像処理方法。 - 【請求項20】請求項19において、 複数のシャドーボリュームが存在し、 前記マスク生成工程で、更に、前記複数のシャドーボリ
ュームに対してそれぞれ前記影処理マスクデータを生成
し、該複数の影処理マスクデータの有効領域を重ね合わ
せた有効領域を有する合成影処理マスクデータを生成
し、 前記レンダリング処理工程で、該合成影処理マスクデー
タを前記影処理マスクデータとして取り扱って前記レン
ダリング処理を行うことを特徴とする画像処理方法。 - 【請求項21】請求項19または20において、 前記レンダリング処理工程は、前記影処理マスクデータ
に従って、該影処理マスクデータが示す有効領域につい
て、前記描画対象ポリゴン上に影領域を表示するレンダ
リング処理を行うことを特徴とする画像処理方法。 - 【請求項22】複数のポリゴンを表示する為の画像デー
タを生成する画像処理手順をコンピュータに実行させる
画像処理プログラムを記録した該コンピュータ読み取り
可能な記録媒体において、 前記画像処理手順は、 前記ポリゴンの表示画面内の位置データを含むポリゴン
データを供給され、表示画面内の前記ポリゴンの有効ピ
クセル領域を示す第1のマスクデータと該有効ピクセル
毎の表示画面内の奥行きを示すZ値とを生成し、該第1
のマスクデータの有効ピクセル領域のうち既に処理済の
他のポリゴンのZ値よりも手前側のZ値のピクセルの領
域を有効ピクセル領域とする第2のマスクデータを生成
し、生成された第2のマスクデータの有効領域を生成済
の他のポリゴンの第2のマスクデータの有効領域から削
除する排他処理を行って新たな第2のマスクデータを生
成し、上記新たな第2のマスクデータの生成をポリゴン
毎に行うマスク生成手順と、 前記マスク生成手順により生成された新たな第2のマス
クデータに従って、該新たな第2のマスクデータが示す
有効領域について、前記各ポリゴンのレンダリング処理
を行うレンダリング処理手順とを有する画像処理プログ
ラムを記録した記録媒体。 - 【請求項23】複数の半透明ポリゴンを表示する為の画
像データを生成する画像処理手順をコンピュータに実行
させる画像処理プログラムを記録した該コンピュータ読
み取り可能な記録媒体において、 前記画像処理手順は、 前記半透明ポリゴンの表示画面内の位置データを含むポ
リゴンデータから、表示画面内の前記半透明ポリゴンの
有効ピクセル領域を示す第1のマスクデータと該有効ピ
クセル毎の表示画面内の奥行きを示す半透明Z値とを生
成し、該第1のマスクデータの有効ピクセル領域のうち
既に処理済の他の半透明ポリゴンの半透明Z値よりも奥
側の半透明Z値のピクセルの領域を有効ピクセル領域と
する第2のマスクデータを生成し、生成された第2のマ
スクデータの有効領域を生成済の他の半透明ポリゴンの
第2のマスクデータの有効領域から削除する排他処理を
行って新たな第2のマスクデータを生成し、上記新たな
第2のマスクデータの生成を半透明ポリゴン毎に行うマ
スク生成手順と、 前記マスク生成手順で生成された前記新たな第2のマス
クデータに従って、該新たな第2のマスクデータが示す
有効領域について、画像データを生成する前記各ポリゴ
ンのレンダリング処理を行うレンダリング処理手順とを
有し、 前記マスク生成手順で、更に、前記第1のマスクデータ
の有効領域から前記新たな第2のマスクデータの有効領
域を削除する排他処理を行って新たな第1のマスクデー
タを生成し、前記新たな第1のマスクデータに基づいて
次の前記新たな第2のマスクデータを生成し、 前記レンダリング処理手順で、前記次の新たな第2のマ
スクデータに従って前記レンダリング処理を行う画像処
理プログラムを記録した記録媒体。 - 【請求項24】請求項23において前記マスク生成手順
では、更に、前記第1のマスクデータの有効領域から前
記新たな第2のマスクデータの有効領域を削除する排他
処理を行って新たな第1のマスクデータを生成し、前記
新たな第1のマスクデータに基づいて次の前記新たな第
2のマスクデータを生成することを、前記新たな第1の
マスクデータから有効領域がなくなるまで、繰り返し行
うことを特徴とする画像処理プログラムを記録した記録
媒体。 - 【請求項25】描画対象ポリゴン上の影領域を表示する
為の画像データを生成する画像処理手順をコンピュータ
に実行させる画像処理プログラムを記録した該コンピュ
ータ読み取り可能な記録媒体において、 前記画像処理手順は、 シャドーボリュームを規定するシャドーポリゴンの表示
画面内の位置データを含むシャドーポリゴンデータか
ら、表示画面内の前記シャドーポリゴンの有効ピクセル
領域を示す第1のマスクデータと該有効ピクセル毎の表
示画面内の奥行きを示すZ値とを生成し、前記第1のマ
スクデータの有効ピクセル領域のうち前記描画対象ポリ
ゴンのZ値より手前側(または奥側)のZ値のピクセル
の領域を有効ピクセル領域とする第2のマスクデータを
生成し、視線方向であって前記描画対象ポリゴンと視点
(または無限遠)との間に位置するシャドーポリゴンの
枚数の奇偶データを有する影処理マスクデータの該奇偶
データを、前記第2のマスクデータの有効領域について
奇偶反転して新たな影処理マスクデータを生成し、上記
影処理マスクデータの生成を前記シャドーボリュームを
規定する全てのシャドーポリゴンに対して行うマスク生
成手順と、 前記マスク生成手順で生成された前記影処理マスクデー
タに従って、レンダリング処理を行うレンダリング処理
手順とを有する画像処理プログラムを記録した記録媒
体。 - 【請求項26】請求項25において、 複数のシャドーボリュームが存在し、 前記マスク生成手順で、更に、前記複数のシャドーボリ
ュームに対してそれぞれ前記影処理マスクデータを生成
し、該複数の影処理マスクデータの有効領域を重ね合わ
せた有効領域を有する合成影処理マスクデータを生成
し、 前記レンダリング処理手順で、該合成影処理マスクデー
タを前記影処理マスクデータとして取り扱って前記レン
ダリング処理を行うことを特徴とする画像処理プログラ
ムを記録した記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7631298A JP4035649B2 (ja) | 1998-03-24 | 1998-03-24 | 画像処理装置及び画像処理方法 |
US09/184,240 US6320580B1 (en) | 1997-11-07 | 1998-11-02 | Image processing apparatus |
GB0002522A GB2351217B (en) | 1997-11-07 | 1998-11-03 | Image processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7631298A JP4035649B2 (ja) | 1998-03-24 | 1998-03-24 | 画像処理装置及び画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11272883A true JPH11272883A (ja) | 1999-10-08 |
JP4035649B2 JP4035649B2 (ja) | 2008-01-23 |
Family
ID=13601866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7631298A Expired - Fee Related JP4035649B2 (ja) | 1997-11-07 | 1998-03-24 | 画像処理装置及び画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4035649B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717575B2 (en) | 2000-02-17 | 2004-04-06 | Sony Computer Entertainment Inc. | Image drawing method, image drawing apparatus, recording medium, and program |
KR100907154B1 (ko) * | 2001-11-27 | 2009-07-09 | 소니 컴퓨터 엔터테인먼트 인코포레이티드 | 영상 처리 장치와 그의 구성요소, 렌더링 방법 |
-
1998
- 1998-03-24 JP JP7631298A patent/JP4035649B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717575B2 (en) | 2000-02-17 | 2004-04-06 | Sony Computer Entertainment Inc. | Image drawing method, image drawing apparatus, recording medium, and program |
KR100907154B1 (ko) * | 2001-11-27 | 2009-07-09 | 소니 컴퓨터 엔터테인먼트 인코포레이티드 | 영상 처리 장치와 그의 구성요소, 렌더링 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP4035649B2 (ja) | 2008-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6320580B1 (en) | Image processing apparatus | |
US11734879B2 (en) | Graphics processing using directional representations of lighting at probe positions within a scene | |
US6744430B1 (en) | Image processing method and its apparatus | |
JP2690110B2 (ja) | 走査変換方法 | |
US6774910B2 (en) | Method and system for providing implicit edge antialiasing | |
JPH0727581B2 (ja) | 図形処理装置 | |
US20170372509A1 (en) | Culling objects from a 3-d graphics pipeline using hierarchical z buffers | |
JPH11515121A (ja) | スパンおよびサブスパン・ソーティング・レンダリング・システムのための方法および装置 | |
JP2008077627A (ja) | 3次元画像のレンダリングにおける早期zテスト方法およびシステム | |
US8698799B2 (en) | Method and apparatus for rendering graphics using soft occlusion | |
JP2002531905A (ja) | ボクセル空間から透視描画を形成する方法 | |
US20120249742A1 (en) | Method for visualizing freeform surfaces by means of ray tracing | |
US5280568A (en) | Method and apparatus for drawing a surface model by assigning a drawing priority to each primitive surface model which provides a portion of the surface model | |
US8648874B2 (en) | Method and system for providing edge antialiasing | |
JPH11272883A (ja) | 画像処理装置及び画像処理方法 | |
JPH09330422A (ja) | 3次元グラフィック表示方法および表示システム | |
Kim et al. | Fast volume rendering with interactive classification | |
JP3258286B2 (ja) | 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置 | |
GB2331217A (en) | Image processor | |
CN114119936A (zh) | 三维形状数据的处理装置与处理方法以及计算机可读介质 | |
JP2021033375A (ja) | 三次元形状データの編集装置、及び三次元形状データの編集プログラム | |
KR20000068191A (ko) | 영상 프리미티브의 고속 처리 | |
JP4106719B2 (ja) | 画像処理装置 | |
JP4042377B2 (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JPH11328427A (ja) | 多角形分割描画装置、多角形分割描画方法および記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050324 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070918 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071015 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101109 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |