(57)【特許請求の範囲】
【請求項１】
３次元空間中に配置した物体を基本形状である多角形の集まりとして定義し、格子状に並んだ画素で構成される画面上の各画素位置に対応した、視点からの距離を表す奥行き値および輝度値を格納するバッファを用いて、前記奥行き値に基づいて隠面消去した画像を生成する画像生成装置において、
前記多角形の頂点の透視変換を物体毎に並列に実行することにより、前記物体毎に透視変換した物体データを生成する複数の頂点処理ユニットと、
透視座標系における画面をｍ分割し（ｍは２以上の整数）、ｍ分割したそれぞれの画面毎に、下記ステップ１）〜４）を並列に実行する複数の画素処理ユニットと、を設けると共に、
前記複数の頂点処理ユニットからの前記物体毎に透視変換して生成された前記物体データが、通信バスを介し全ての前記複数の画素処理ユニットに転送されるように接続したことを特徴とする画像生成装置：
１）前記分割した画面の外側に、前記物体毎に透視変換して生成された複数の前記物体データに基づく多角形が出ているか否かを判定し、
２）前記画面の外側に前記多角形の全体が出ている場合にはその多角形を破棄し、
３）前記画面の外側に前記多角形の一部が出ている場合には、その出ている部分のみを破棄し、
４）前記画面内に存在する多角形内部の画素毎に輝度及び奥行き値を算出し、該算出した奥行き値が、前記バッファに格納されている、対応する画素の奥行き値より小さいときは、その算出した奥行き値及び輝度を前記バッファに書き込む。
【請求項２】
３次元空間中に配置した物体を基本形状である多角形の集まりとして定義し、格子状に並んだ画素で構成される画面上の各画素位置に対応した、視点からの距離を表す奥行き値および輝度値を格納するバッファを用いて、前記奥行き値に基づいて隠面消去した画像を生成する画像生成方法において、
前記多角形の頂点の透視変換を物体毎に並列に実行することにより、前記物体毎に透視変換した物体データを生成し、
透視座標系における画面をｍ分割し（ｍは２以上の整数）、ｍ分割したそれぞれの画面毎に、下記ステップ１）〜４）を並列に実行することを特徴とする画像生成方法：
１）前記分割した画面の外側に、前記物体毎に透視変換して生成された複数の前記物体データに基づく多角形が出ているか否かを判定し、
２）前記画面の外側に前記多角形の全体が出ている場合にはその多角形を破棄し、
３）前記画面の外側に前記多角形の一部が出ている場合には、その出ている部分のみを破棄し、
４）前記画面内に存在する多角形内部の画素毎に輝度及び奥行き値を算出し、該算出した奥行き値が、前記バッファに格納されている、対応する画素の奥行き値より小さいときは、その算出した奥行き値及び輝度を前記バッファに書き込む。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータグラフィクスにおける３次元形状物体の画像生成装置及び方法に関する。
【０００２】
【従来の技術】
コンピュータグラフィックス（ＣＧ）における一般的な画像生成方法では、物体を３次元空間に配置した複数の多角形によって表現し、３次元空間における視点位置、光源位置を決め、視点から見た画像を生成する。図４はこのような画像生成方法を実施する装置の構成を示すブロック図である。
【０００３】
シーンデータは、物体を表現した多角形の頂点座標や物体の色といった物体データ、視点座標・視線の向き・視点からスクリーンまでの距離・スクリーンの中心から端までの距離といった視点データ、光源座標・光線の向き・平行光源や点光源といった光源の種類や光源の色といった光源データから成る。そのようなシーンデータをシーンデータ入力部１０１から入力して、シーンバッファ１０２に格納する。
【０００４】
モデリング・視野変換部１０３は、シーンバッファ１０２からシーンデータを読み出し、多角形の頂点、光源、視点を定義した３次元座標を、図５（ａ）に示すように、視点が原点で視線の向きがＺ軸（ＺＥ軸）と平行な３次元座標(視点座標系)に変換する。
【０００５】
頂点輝度計算部１０４は、光源座標、光線の向き、光源の種類、光源の色、多角形の頂点座標、多角形の法線ベクトル、多角形が表現している物体の色から多角形の頂点における輝度を計算する。
透視変換部１０５は、図５（ａ）に示すように視点座標系のＺＥ軸方向にＺＥ軸と垂直なスクリーン(画面)ＳＣを定義し、視点座標系において視点から見てスクリーンＳＣを透視した空間を、スクリーンＳＣの横がＸＰ＝−１〜１、スクリーンＳＣの縦がＹＰ＝−１〜１、ＺＥ軸とスクリーンＳＣの交点Ｐ０が原点Ｏ、ＺＥ軸の無限大がＺＰ＝１になる変換を行なう。この変換により、図５（ｂ）に示す透視座標系が得られる。
【０００６】
ＸＹＺ面クリッピング部１０６は、透視座標系においてＸＰ＝−１〜１、ＹＰ＝−１〜１、ＺＰ＝０〜１の範囲から多角形全体が出ている場合には、その多角形を破棄し、多角形の一部が出ている場合には、その出ている部分のみを破棄する。
【０００７】
ビューポート変換部１０７は、図５（ｂ）（ｃ）に示すように、透視座標系においてＸＰ＝−１〜１、ＹＰ＝−１〜１で表されたスクリーンＳＣを、ＸＳ＝０〜ＶＳＸ（＝横の画素数−１）, ＹＳ＝ＶＳＹ（＝縦の画素数−１）〜０に変換し、透視座標系においてＺＰ＝０〜１で表された奥行きを、ＺＳ＝０〜ＶＳＺ（＝２32−１）といった整数に変換する。変換後の座標系をスクリーン座標系と呼ぶ。図５（ｃ）において（ＶＣＸ、ＶＣＹ）は、ビューポートの中心座標である。
【０００８】
頂点輝度・Ｚ値内挿部１０８は、多角形頂点の輝度とＺ値（奥行き値）を内挿して、多角形内部の画素の輝度とＺ値を求める。
Ｚ値比較部１０９は、多角形内部の画素について、内挿で求めたＺ値とＺ・フレームバッファ１１０から読み出したＺ値とを比較し、内挿で求めたＺ値が小さい場合はＺ・フレームバッファ１１０に内挿で求めたＺ値と、内挿で求めた輝度とを書き込む。内挿で求めたＺ値が大きい場合は、バッファ１１０への書き込みは行なわない。なお、Ｚ・フレームバッファ１１０は、シーンデータをモデリング・視野変換部１０３に入力する前に初期化を行なう。
すべてのシーンデータの処理が終ったら、画像出力部１１１は、Ｚ・フレームバッファ１１０から輝度データを読み出して出力する。
【０００９】
【発明が解決しようとする課題】
従来より処理能力の高い画像生成装置を実現しようとする場合、並列化が有効である。モデリング・視野変換部１０３から頂点輝度・Ｚ値内挿部１０８までは物体単位での並列化が可能だが、Ｚ値比較部１０９は、物体単位では処理を並列化できない問題があった。
本発明はこの点に着目してなされたものであり、処理の並列化を適切に行い、高速化を図ることができる画像生成装置及び方法を提供するとを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するため請求項１に記載の発明は、３次元空間中に配置した物体を基本形状である多角形の集まりとして定義し、格子状に並んだ画素で構成される画面上の各画素位置に対応した、視点からの距離を表す奥行き値および輝度値を格納するバッファを用いて、前記奥行き値に基づいて隠面消去した画像を生成する画像生成装置において、前記多角形の頂点の透視変換を物体毎に並列に実行することにより、前記物体毎に透視変換した物体データを生成する複数の頂点処理ユニットと、透視座標系における画面をｍ分割し（ｍは２以上の整数）、ｍ分割したそれぞれの画面毎に、下記ステップ１）〜４）を並列に実行する複数の画素処理ユニットと、を設けると共に、前記複数の頂点処理ユニットからの前記物体毎に透視変換して生成された前記物体データが、通信バスを介し全ての前記複数の画素処理ユニットに転送されるように接続したことを特徴とする：１）前記分割した画面の外側に、前記物体毎に透視変換して生成された複数の前記物体データに基づく多角形が出ているか否かを判定し、２）前記画面の外側に前記多角形の全体が出ている場合にはその多角形を破棄し、３）前記画面の外側に前記多角形の一部が出ている場合には、その出ている部分のみを破棄し、４）前記画面内に存在する多角形内部の画素毎に輝度及び奥行き値を算出し、該算出した奥行き値が、前記バッファに格納されている、対応する画素の奥行き値より小さいときは、その算出した奥行き値及び輝度を前記バッファに書き込む。
請求項２に記載の発明は、３次元空間中に配置した物体を基本形状である多角形の集まりとして定義し、格子状に並んだ画素で構成される画面上の各画素位置に対応した、視点からの距離を表す奥行き値および輝度値を格納するバッファを用いて、前記奥行き値に基づいて隠面消去した画像を生成する画像生成方法において、前記多角形の頂点の透視変換を物体毎に並列に実行することにより、前記物体毎に透視変換した物体データを生成し、透視座標系における画面をｍ分割し（ｍは２以上の整数）、ｍ分割したそれぞれの画面毎に、下記ステップ１）〜４）を並列に実行することを特徴とする：１）前記分割した画面の外側に、前記物体毎に透視変換して生成された複数の前記物体データに基づく多角形が出ているか否かを判定し、２）前記画面の外側に前記多角形の全体が出ている場合にはその多角形を破棄し、３）前記画面の外側に前記多角形の一部が出ている場合には、その出ている部分のみを破棄し、４）前記画面内に存在する多角形内部の画素毎に輝度及び奥行き値を算出し、該算出した奥行き値が、前記バッファに格納されている、対応する画素の奥行き値より小さいときは、その算出した奥行き値及び輝度を前記バッファに書き込む。
【００１１】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
図１は本発明の一実施形態にかかる画像生成装置の構成を示す図であり、この装置は、シーンデータ入力部１と、同様の処理を並列に実行する２つの頂点処理ユニット２Ａ，２Ｂと、通信バス４と、同様の処理を並列に実行する２つの画素処理ユニット５Ａ，５Ｂと、画像出力部７とからなる。
【００１２】
頂点処理ユニット２Ａ，２Ｂは、それぞれシーンバッファ２１と、モデリング・視野変換部２２と、頂点輝度計算部２３と、透視変換部２４と、通信バスバッファ２５とからなり、画素処理ユニット５Ａ，５Ｂは、それぞれ通信バスバッファ５１と、ＸＹＺ面クリッピング部５２と、ビューポート変換部５３と、頂点輝度・Ｚ値内挿部５４と、Ｚ値比較部５５と、Ｚ・フレームバッファ５６とからなる。
【００１３】
図１の装置では、シーンデータをシーンデータ入力部１から入力して、それぞれの頂点処理ユニット２Ａ，２Ｂのシーンバッファ２１に格納する。頂点処理ユニット２Ａ，２Ｂは、物体毎に処理を行うので、頂点処理ユニット２Ａのシーンバッファ２１には、頂点処理ユニット２Ａで処理する物体データを格納し、頂点処理ユニット２Ｂのシーンバッファ２１には、頂点処理ユニット２Ａで処理する物体データを格納する。
【００１４】
視点データ及び光源データは、頂点処理ユニット２Ａ，２Ｂとも使用するので、両方のシーンバッファ２１に格納する。
頂点処理ユニット中のモデリング・視野変換部２２、頂点輝度計算部２３、透視変換部２４は，従来例と同様の機能を有する。したがって、透視変換部２４から透視変換後の物体データが出力され、通信バスバッファ２５に格納され、通信バス４を介して全ての画素処理ユニット５Ａ，５Ｂの通信バスバッファ５１に転送される。
【００１５】
画素処理ユニット５Ａ，５ＢのＸＹＺ面クリッピング部５２は、通信バスバッファ５１から物体データを読み込む。画素処理ユニットの並列数は、画面の分割数と一致させる。すなわち図１に示す構成は、画面を図２に示すように２分割する場合に対応している。
【００１６】
図２（ａ）に示すように垂直方向の分割を行なう場合、画素処理ユニット５ＡのＸＹＺ面クリッピング部５２は、透視座標系においてＸＰ＝−１〜１，ＹＰ＝−１〜０，ＺＰ＝０〜１の範囲から多角形全体が出ている場合には、その多角形を破棄し、多角形の一部が出ている場合には、その出ている部分のみを破棄する。
【００１７】
画素処理ユニット５Ａのビューポート変換部５３は、透視座標系においてＸＰ＝−１〜１，ＹＰ＝−１〜０で表されたスクリーンＳＣの半分を、ＸＳ＝０〜（横の画素数−１）, ＹＳ＝（ 縦の画素数／２−１）〜０に変換し、透視座標系においてＺＰ＝０〜１で表された奥行きを、ＺＳ＝０〜（２32−１）といった整数に変換する。
【００１８】
一方画素処理ユニット５ＢのＸＹＺ面クリッピング部５２は、透視座標系においてＸＰ＝−１〜１，ＹＰ＝０〜１，ＺＰ＝０〜１の範囲から多角形全体が出ている場合には、その多角形を破棄し、多角形の一部が出ている場合には、その出ている部分のみを破棄する。
【００１９】
画素処理ユニット５Ｂのビューポート変換部５３は、透視座標系においてＸＰ＝−１〜１，ＹＰ＝０〜１で表されたスクリーンＳＣの半分を、ＸＳ＝０〜（横の画素数−１）, ＹＳ＝（ 縦の画素数／２−１）〜０に変換し、透視座標系においてＺＰ＝０〜１で表された奥行きを、ＺＳ＝０〜（２32−１）といった整数に変換する。
【００２０】
また図４（ｂ）に示すように水平方向の分割を行なう場合、画素処理ユニット５ＡのＸＹＺ面クリッピング部５２は、透視座標系においてＸＰ＝−１〜０，ＹＰ＝−１〜１，ＺＰ＝０〜１の範囲から多角形全体が出ている場合には、その多角形を破棄し、多角形の一部が出ている場合には、その出ている部分のみを破棄する。
【００２１】
画素処理ユニット５Ａのビューポート変換部５３は、透視座標系においてＸＰ＝−１〜０，ＹＰ＝−１〜１で表されたスクリーンＳＣの半分を、ＸＳ＝０〜（横の画素数／２−１）, ＹＳ＝（ 縦の画素数−１）〜０に変換し、透視座標系においてＺＰ＝０〜１で表された奥行きを、ＺＳ＝０〜（２32−１）といった整数に変換する。
【００２２】
画素処理ユニット５ＢのＸＹＺ面クリッピング部５２は、透視座標系においてＸＰ＝０〜１，ＹＰ＝−１〜１，ＺＰ＝０〜１の範囲から多角形全体が出ている場合には、その多角形を破棄し、多角形の一部が出ている場合には、その出ている部分のみを破棄する。
【００２３】
画素処理ユニット５Ｂのビューポート変換部５３は、透視座標系においてＸＰ＝０〜１，ＹＰ＝−１〜１で表されたスクリーンＳＣの半分を、ＸＳ＝０〜（横の画素数／２−１）, ＹＳ＝（ 縦の画素数−１）〜０に変換し、透視座標系においてＺＰ＝０〜１で表された奥行きを、ＺＳ＝０〜（２32−１）といった整数に変換する。
【００２４】
画素処理ユニット５Ａ，５Ｂ内の頂点輝度・Ｚ値内挿部５４及びＺ値比較部５５は、図４に示した従来技術の頂点輝度・Ｚ値内挿部１０８及びＺ値比較部１０９と同様の機能を有しており、その説明を省略する。各画素処理ユニットのＺ・フレームバッファ５６の容量は従来例の１／２で良い。
【００２５】
すべてのシーンデータの処理が終ったら、画像出力部７は全ての画像処理ユニットのＺ・フレームバッファから輝度データを読み出して出力する。
以上のように本実施形態では、物体毎の座標系変換を行う頂点処理ユニットを２つ並列に設けるとともに、画面を２分割し、分割した部分毎の処理を行う画素処理ユニットを分割数に等しい数だけ設けて並列に動作させるようにしたので、従来より高速に画像生成を行うことが可能となる。
【００２６】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、画面を２分割する例を示したが、分割数はこれに限るものではなく、２以上の任意の数にすることができる。例えば画面を４分割する場合は、画素処理ユニットを４個使用し、並列に動作させればよい。画面分割は、縦・横とも可能なので、分割方法は図３（ａ），（ｂ），（ｃ）のいずれでも良い。また頂点処理ユニットの数も２個に限るものではなく、２以上の任意の数にすることができる。
【００２７】
【発明の効果】
以上詳述したように本発明によれば、多角形の頂点の透視変換を物体毎に並列に実行することにより、物体毎に透視変換した物体データが生成され、透視座標系における画面がｍ分割され、ｍ分割されたそれぞれの画面毎に、下記ステップ１）〜４）が並列に実行される：１）前記分割した画面の外側に、前記物体毎に透視変換して生成された複数の前記物体データに基づく多角形が出ているか否かを判定し、２）前記画面の外側に前記多角形の全体が出ている場合にはその多角形を破棄し、３）前記画面の外側に前記多角形の一部が出ている場合には、その出ている部分のみを破棄し、４）前記画面内に存在する多角形内部の画素毎に輝度及び奥行き値を算出し、該算出した奥行き値が、前記バッファに格納されている、対応する画素の奥行き値より小さいときは、その算出した奥行き値及び輝度を前記バッファに書き込む。
すなわち本発明によれば、物体単位での処理の並列化と、分割した画面毎の処理の並列化とが組み合わせて実現され、３次元画像生成を高速に行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる画像生成装置の構成を示すブロック図である。
【図２】画面を２分割する方法を示す図である。
【図３】画面を４分割する方法を示す図である。
【図４】従来の画像生成装置の構成を示すブロック図である。
【図５】座標系の変換を説明するための図である。
【符号の説明】
１  シーンデータ入力部
２Ａ，２Ｂ  頂点処理ユニット
４  通信バス
５Ａ，５Ｂ  画素処理ユニット
７  画像出力部
５６  Ｚ・フレームバッファ
【図１】
0003724340.tif 000002
【図２】
0003724340.tif 000003
【図３】
0003724340.tif 000004
【図４】
0003724340.tif 000005
【図５】
0003724340.tif 000006