(57)【特許請求の範囲】
【請求項１】
３次元空間に配置された物体を近似する多角形を、視点を原点とする視点座標系に設定するモデリング・視野変換部と、
前記視点座標系のＺ軸に垂直な方向にスクリーンを定め、前記スクリーンより前記視点に近い側に存在する前記多角形のデータを破棄するＺ面クリッピング部と、
前記多角形の頂点の輝度を算出する頂点輝度計算部と、
前記視点座標系を透視座標系に変換する透視変換部と、
前記スクリーンが分割された複数の分割スクリーンのそれぞれに対応し、前記分割スクリーンごとに並列処理を行えるように並列に設けられた複数のデータ処理部と、
前記複数のデータ処理部により算出されたデータを選択し出力する出力セレクタとを、
有するものであって、
前記複数のデータ処理部の各々が、
前記透視変換部によって前記透視座標系に変換された前記多角形のデータに関して、前記分割スクリーンの前記透視座標系におけるＸ座標及びＹ座標の範囲の外にある前記多角形のデータを破棄するＸＹ面クリッピング部と、
前記透視座標系からスクリーン座標系への変換を行うビューポート変換部と、
前記頂点輝度計算部で求めた前記輝度及び前記スクリーン座標系上での前記多角形の頂点のＺ軸方向の座標値を内挿して、前記多角形の内部の点の輝度及び前記多角形の内部の点のＺ軸方向の座標値を算出する頂点輝度・Ｚ値内挿部と、
あらかじめＺ値が記憶されているＺバッファと、
前記多角形の内部の点のＺ軸方向の座標値と前記Ｚ値の大きさとを比較するＺ値比較部と、
前記Ｚ値比較部での比較結果に応じて、前記頂点輝度・Ｚ値内挿部で求めた前記多角形の内部の点の輝度を記憶するフレームバッファとにより構成され、
前記各Ｚ値比較部での比較の結果、前記多角形の内部の点のＺ軸方向の座標値が前記Ｚバッファに記憶されているＺ値より小さい場合、前記多角形の内部の点の輝度を前記フレームバッファに記憶し、前記多角形の内部の点のＺ軸方向の座標値を前記Ｚ値として前記Ｚバッファに記憶するよう構成された図形データ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｚバッファ法により陰面消去を行って３次元図形を２次元表示するために図形データを処理する図形データ処理装置に関する。
【０００２】
【従来の技術】
コンピュータグラフィックス（ＣＧ）の一般的な図形データ処理装置は、物体を３次元空間に配置した複数のポリゴンと呼ばれる多角形によって表現し、３次元空間における視点位置、光源位置を決め、視点から見た画像を生成する。
【０００３】
図２は、従来の図形データ処理装置の一実施例を示す構成図である。従来の図形データ処理装置は、モデリング・視野変換部１０、Ｚ面クリッピング部１２、頂点輝度計算部１４、透視変換部１６、ＸＹ面クリッピング部１８、ビューポート変換部２０、頂点輝度・Ｚ値内挿部２２、Ｚ値比較部２４、Ｚバッファ２６、フレームバッファ２８、出力部３０により構成されている。
【０００４】
まず、物体を表現した多角形の頂点座標や物体の色、視点座標、視線の向き、光源座標、光線の向き、光源の種類（平行光源、点光源）、光源の色などの生成したい画像の基本的なデータとなるシーンデータをモデリング・視野変換部１０に入力する。モデリング・視野変換部１０において、多角形、光源、視点の位置を定義した３次元座標を、視点を原点としＺ軸が視線の向きと平行な３次元座標に変換する。変換後の３次元座標系を視点座標系と呼ぶ。
【０００５】
Ｚ面クリッピング部１２において、視点座標系のＺ軸に垂直なスクリーンを定義する。視点から見てスクリーンを含む平面の手前に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。頂点輝度計算部１４において、光源座標、光線の向き、光源の種類、光源の色、多角形の頂点座標、多角形の法線ベクトル、多角形が表現している物体の色などのシーンデータから、多角形の頂点における輝度を計算する。
【０００６】
図３は座標変換の説明図である。透視変換部１６において、視点座標系を透視座標系に変換する。透視座標系は視点から見てスクリーンを透視した空間を、スクリーンの横をＸ＝−１からＸ＝１の範囲、スクリーンの縦をＹ＝−１からＹ＝１の範囲、Ｚ軸とスクリーンの交点を原点、Ｚ軸方向に無限大の位置をＺ＝１と定める座標系である。斜線部がスクリーンに投影され表示される空間である。ＸＹ面クリッピング部１８において、透視座標系のＸＹ座標であるＸ＝−１からＸ＝１の範囲、Ｙ＝−１からＹ＝１の範囲の外側に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。
【０００７】
ビューポート変換部２０において、透視座標系からスクリーン座標系への変換を行う。スクリーン座標系はスクリーンのピクセル数を考慮して、ＸＹ座標をスクリーンのピクセル数に合わせ、Ｚ軸方向をＺ＝０からＺ＝２３２−１の範囲の整数値となるように定める座標系である。透視座標系においてＸ＝−１からＸ＝１の範囲、Ｙ＝−１からＹ＝１の範囲で表されたスクリーンを、Ｘ＝０からＸ＝｛横のピクセル数−１｝の範囲、Ｙ＝｛縦のピクセル数−１｝からＹ＝０の範囲に変換する。また、透視座標系においてＺ＝０からＺ＝１の範囲で表された奥行きを、Ｚ＝０からＺ＝２３２−１の範囲の整数値となるように変換する。２３２は一般にＺバッファのビット数が４バイト＝３２ビットであることによるものである。
【０００８】
頂点輝度・Ｚ値内挿部２２において、頂点輝度計算部１４で求めた多角形頂点の輝度及び多角形の頂点のＺ軸方向の座標値を内挿して、多角形の内部の点での輝度とＺ軸方向の座標値を算出する。このＺ軸方向の座標値をＺ値と呼ぶ。Ｚ値比較部２４において、頂点輝度・Ｚ値内挿部２２で求めたスクリーン上のピクセルに対応したＺ値とＺバッファ２６に記憶されているＺ値とを比較する。頂点輝度・Ｚ値内挿部２２で求めたＺ値の方が小さい場合には、Ｚバッファ２６に内挿で求めたＺ値を記憶させ、フレームバッファ２８に内挿で求めた輝度を記憶させる。頂点輝度・Ｚ値内挿部２２で求めたＺ値の方が大きい場合は、Ｚバッファ２６、フレームバッファ２８への記憶は行わない。なお、Ｚバッファ２６、フレームバッファ２８はシーンデータをモデリング・視野変換部１０に入力する前にあらかじめ初期化されている。
【０００９】
このようにＺバッファに最新のＺ値を記憶させて、そのＺ値を用いて陰面消去を行う。すべての多角形に関して、Ｚ値を算出しＺバッファ２６に記憶されているＺ値と比較する処理が終了したら、フレームバッファ２８から出力部３０を通じて、スクリーン上の各ピクセルに対応した輝度を表示データとして出力する。
【００１０】
【発明が解決しようとする課題】
Ｚバッファやフレームバッファは画像化しようとする画面全体のＺ値や輝度を記憶しなければならず、多角形単位で並列処理することはできない。したがって、Ｚ値比較部において、スクリーン上のピクセルに対応したＺ値とＺバッファに記憶されているＺ値とを比較する処理も、多角形単位で並列化することができない。このため、Ｚ値を記憶するＺバッファやフレームバッファには大容量のメモリが必要であった。
【００１１】
本発明は、Ｚバッファ法により陰面消去を行って画像を表示するために、図形データを処理する処理能力の高い図形データ処理装置を提供することを目的としている。
【００１２】
【課題を解決するための手段】
本発明では、上記従来の問題を鑑み、スクリーンを分割して分割スクリーンごとに処理を行うようにデータ処理部を並列化する。各分割スクリーンに対応したデータ処理部ごとにクリッピングを行って、Ｚバッファ法によりスクリーン上のピクセルに対応したＺ値とＺバッファに記憶されているＺ値との比較を行う。
【００１３】
すなわち本発明によれば、３次元空間に配置された物体を近似する多角形を、視点を原点とする視点座標系に設定するモデリング・視野変換部と、
前記視点座標系のＺ軸に垂直な方向にスクリーンを定め、前記スクリーンより前記視点に近い側に存在する前記多角形のデータを破棄するＺ面クリッピング部と、
前記多角形の頂点の輝度を算出する頂点輝度計算部と、
前記視点座標系を透視座標系に変換する透視変換部と、
前記スクリーンが分割された複数の分割スクリーンのそれぞれに対応し、前記分割スクリーンごとに並列処理を行えるように並列に設けられた複数のデータ処理部と、
前記複数のデータ処理部により算出されたデータを選択し出力する出力セレクタとを、
有するものであって、
前記複数のデータ処理部の各々が、
前記透視変換部によって前記透視座標系に変換された前記多角形のデータに関して、前記分割スクリーンの前記透視座標系におけるＸ座標及びＹ座標の範囲の外にある前記多角形のデータを破棄するＸＹ面クリッピング部と、
前記透視座標系からスクリーン座標系への変換を行うビューポート変換部と、
前記頂点輝度計算部で求めた前記輝度及び前記スクリーン座標系上での前記多角形の頂点のＺ軸方向の座標値を内挿して、前記多角形の内部の点の輝度及び前記多角形の内部の点のＺ軸方向の座標値を算出する頂点輝度・Ｚ値内挿部と、
あらかじめＺ値が記憶されているＺバッファと、
前記多角形の内部の点のＺ軸方向の座標値と前記Ｚ値の大きさとを比較するＺ値比較部と、
前記Ｚ値比較部での比較結果に応じて、前記頂点輝度・Ｚ値内挿部で求めた前記多角形の内部の点の輝度を記憶するフレームバッファとにより構成され、
前記各Ｚ値比較部での比較の結果、前記多角形の内部の点のＺ軸方向の座標値が前記Ｚバッファに記憶されているＺ値より小さい場合、前記多角形の内部の点の輝度を前記フレームバッファに記憶し、前記多角形の内部の点のＺ軸方向の座標値を前記Ｚ値として前記Ｚバッファに記憶するよう構成された図形データ処理装置が提供される。
【００１４】
【発明の実施の形態】
図１は、本発明の図形データ処理装置に係る一実施形態を示す構成図である。本発明の図形データ処理装置は、モデリング・視野変換部１０、Ｚ面クリッピング部１２、頂点輝度計算部１４、透視変換部１６、出力セレクタ３４と複数のデータ処理部３２により構成されている。各データ処理部３２は、ＸＹ面クリッピング部１８、ビューポート変換部２０、頂点輝度・Ｚ値内挿部２２、Ｚ値比較部２４、Ｚバッファ２６、フレームバッファ２８により構成されている。データ処理部３２は画像の分割数だけ必要となる。すなわち、画像をｎ分割する場合はデータ処理部もｎ個必要となる。本実施例では、画像を横に２分割し、２つのデータ処理部３２Ａ、データ処理部３２Ｂを設ける場合を説明する。
【００１５】
モデリング・視野変換部１０から透視変換部１６までの処理過程は従来と同様である。透視変換部１６から出力されたデータは、データ処理部３２Ａ及びデータ処理部３２ＢのＸＹ面クリッピング部１８に送られる。透視変換部１６から出力されたデータは、後述の処理により分割スクリーンごとにデータが分けられ、並列処理される。
【００１６】
図４（ａ）は、横に２分割されたスクリーンの模式図である。図４（ｂ）は縦に２分割されたスクリーンの模式図である。図４（ａ）に示すようにスクリーンを横に２分割する場合を説明する。データ処理部３２Ａ、３２Ｂは、図４（ａ）の分割スクリーンＡ、Ｂに対応している。データ処理部３２ＡのＸＹ面クリッピング部１８において、透視座標系のＸＹ座標であるＸ＝−１からＸ＝１の範囲、Ｙ＝−１からＹ＝０の範囲の外側に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。
【００１７】
また、データ処理部３２ＢのＸＹ面クリッピング部１８において、透視座標系のＸＹ座標であるＸ＝−１からＸ＝１の範囲、Ｙ＝０からＹ＝１の範囲の外側に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。
【００１８】
データ処理部３２Ａのビューポート変換部２０は、透視座標系においてＸ＝−１からＸ＝１の範囲、Ｙ＝−１からＹ＝０の範囲で表されたスクリーンを、Ｘ＝０からＸ＝｛横のピクセル数−１｝の範囲、Ｙ＝｛縦のピクセル数／２−１｝からＹ＝０の範囲に、透視座標系においてＺ＝０からＺ＝１の範囲で表された奥行きを、Ｚ＝０からＺ＝２３２−１の範囲の整数値に変換する。
【００１９】
データ処理部３２Ｂのビューポート変換部２０は、透視座標系においてＸ＝−１からＸ＝１の範囲、Ｙ＝０からＹ＝１の範囲で表されたスクリーンを、Ｘ＝０からＸ＝｛横のピクセル数−１｝の範囲、Ｙ＝｛縦のピクセル数／２−１｝からＹ＝０の範囲に、透視座標系においてＺ＝０からＺ＝１の範囲で表された奥行きを、Ｚ＝０から２３２−１の範囲の整数値に変換する。
【００２０】
データ処理部中の頂点輝度・Ｚ値内挿部２２での処理からフレームバッファ２８への書き込みまでは従来と同様である。このようにして、各分割スクリーンに対応して、各データ処理部単位で各分割スクリーンのピクセルに対して並列処理を行う。すべてのシーンデータの処理が終了したら、出力セレクタ３４を通じて、２つのフレームバッファ２８から各分割スクリーンの表示データを出力する。
【００２１】
次に、図４（ｂ）に示すようにスクリーンを縦に２分割する場合を説明する。スクリーンを横に２分割した場合と同様、各データ処理部３２Ａ、３２Ｂは図４（ｂ）の分割スクリーンＡ、Ｂに対応している。ＸＹ面クリッピング部１８で多角形を破棄する範囲、ビューポート変換部２０で変換する座標系が、スクリーンを横に２分割した場合と異なっている。
【００２２】
スクリーンを縦に２分割する場合、データ処理部３２ＡのＸＹ面クリッピング部１８において、透視座標系のＸＹ座標であるＸ＝−１からＸ＝０の範囲、Ｙ＝−１からＹ＝１の範囲の外側に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。
【００２３】
また、データ処理部３２ＢのＸＹ面クリッピング部１８において、透視座標系のＸＹ座標であるＸ＝０からＸ＝１の範囲、Ｙ＝−１からＹ＝１の範囲の外側に多角形全体が出ている場合、その多角形を破棄し、多角形の一部が出ている場合、出ている部分のみを破棄する。
【００２４】
データ処理部３２Ａのビューポート変換部２０において、透視座標系からスクリーン座標系への変換を行う場合、透視座標系においてＸ＝−１からＸ＝０の範囲、Ｙ＝−１からＹ＝１の範囲で表されたスクリーンを、Ｘ＝０からＸ＝｛横のピクセル数／２−１｝の範囲、Ｙ＝｛縦のピクセル数／２−１｝からＹ＝０の範囲に変換する。また、透視座標系においてＺ＝０からＺ＝１の範囲で表された奥行きを、Ｚ＝０からＺ＝２３２−１の範囲の整数値となるように変換する。
【００２５】
また、データ処理部３２Ｂのビューポート変換部２０において、透視座標系からスクリーン座標系への変換を行う場合、透視座標系においてＸ＝０からＸ＝１の範囲、Ｙ＝−１からＹ＝１の範囲で表されたスクリーンを、Ｘ＝０からＸ＝｛横のピクセル数／２−１｝、Ｙ＝｛縦のピクセル数−１｝からＹ＝０の範囲に変換する。また、透視座標系においてＺ＝０からＺ＝１の範囲で表された奥行きを、Ｚ＝０からＺ＝２３２−１の範囲の整数値となるように変換する。
【００２６】
上記のように横又は縦にスクリーンを２分割した場合、データ処理部の有するＸＹ面クリッピング部１８、ビューポート変換部２０、頂点輝度・Ｚ値内挿部２２、Ｚ値比較部２４、Ｚバッファ２６、フレームバッファ２８の容量が従来の１／２の容量であっても、従来と同程度の画像処理能力を有する。
【００２７】
図５は４分割されたスクリーンの模式図である。上記の実施例では、画像を２分割しているので２つのデータ処理部３２Ａ、３２Ｂを使用しているが、図５に示すように画像を４分割することも可能である。この場合も４つのデータ処理部を使用して、各分割スクリーンのデータを並列処理する。このスクリーン分割は縦分割又は横分割のどちらも可能であり、その分割パターンは図５（ａ）、図５（ｂ）、図５（ｃ）に示すパターンのいずれも可能である。
【００２８】
また、スクリーンをＮ分割して、各分割スクリーンのデータをＮ個のデータ処理部で並列処理することも可能である。この場合、データ処理部の有するＸＹ面クリッピング部１８、ビューポート変換部２０、頂点輝度・Ｚ値内挿部２２、Ｚ値比較部２４、Ｚバッファ２６、フレームバッファ２８の容量が従来の１／Ｎの容量であっても、従来と同程度の画像処理能力を有し、特にＺバッファ２６、フレームバッファ２８の容量が小さい場合に効果を奏する。
【００２９】
【発明の効果】
本発明では、スクリーンを分割して分割スクリーンごとに処理を行うようにデータ処理部を並列化し、各分割スクリーンに対応したデータ処理部ごとにクリッピングを行うので、スクリーン上のピクセルに対応したＺ値とＺバッファに記憶されているＺ値との比較を分割スクリーンごとに行うことができる。分割スクリーンごとに並列処理を行うことによって、従来よりも処理能力の高い図形データ処理装置を実現することができる。また、分割スクリーンごとにＺバッファやフレームバッファが存在するので、１つのＺバッファ、１つのフレームバッファに対して大きな容量を必要としないという効果がある。
【図面の簡単な説明】
【図１】本発明の図形データ処理装置に係る一実施形態を示す構成図である。
【図２】従来の図形データ処理装置の一実施形態を示す構成図である。
【図３】座標変換の説明図である。
【図４】横又は縦に２分割されたスクリーンの模式図である。
【図５】４分割されたスクリーンの模式図である。
【符号の説明】
１０  モデリング・視野変換部
１２  Ｚ面クリッピング部
１４  頂点輝度計算部
１６  透視変換部
１８  ＸＹ面クリッピング部
２０  ビューポート変換部
２２  頂点輝度・Ｚ値内挿部
２４  Ｚ値比較部
２６  Ｚバッファ
２８  フレームバッファ
３０  出力部
３２  データ処理部
３４  出力セレクタ
【図１】
0003587105.tif 000002
【図２】
0003587105.tif 000003
【図３】
0003587105.tif 000004
【図４】
0003587105.tif 000005
【図５】
0003587105.tif 000006