(57)【要約】【課題】従来は、物体データ毎の頂点数のバラツキが大きい場合、特定の頂点処理ユニットに処理が集中し、頂点処理ユニットを並列化したメリットが十分に生かせない。【解決手段】物体データ分配部１１は、入力されたシーンデータの先頭部がシーンヘッダ及び物体ヘッダのいずれであるか判定し、シーンヘッダが入力されたと判定したときには、頂点カウント部１２−０〜１２−３をそれぞれリセットする。また、シーンデータ入力部１０内の物体データ分配部１１は、入力されたシーンデータが物体ヘッダであると判定したときには、頂点カウント部１２−０〜１２−３の積算値のうち、最も積算値が小さな頂点カウント部のみへ物体データを出力する。その頂点カウント部は入力物体データの頂点の数を積算して、対応する頂点処理ユニットへ物体データを出力する。【選択図】　　　　　　図１
2004110330.tif 000002
【特許請求の範囲】
【請求項１】
入力された物体データに基づき、３次元形状物体の透視変換を複数の頂点処理ユニットで並列に行うようにした画像生成装置において、
前記複数の頂点処理ユニットに、１対１に対応して設けられた複数の頂点カウント部と、
前記物体データと各物体データの先頭に付加された物体ヘッダとを含み、シーンが変化した場合には更に前記物体ヘッダの先頭にシーンヘッダが付加されるシーンデータを入力として受け、前記複数の頂点カウンタ部をリセットするか、所定の頂点カウンタ部へ入力物体データを分配出力する物体データ分配部と
を備え、前記頂点カウント部は、入力された前記物体データの頂点数を積算すすると共に、入力された前記物体データを対応して設けられた一の前記頂点処理ユニットに出力し、前記物体データ分配部は、入力された前記シーンデータの先頭部が前記シーンヘッダであるときには前記複数の頂点カウント部をそれぞれリセットし、入力された前記シーンデータの先頭部が前記物体ヘッダであるときには、前記複数の頂点カウント部の積算値を大小比較し、最も小さな積算値を示す頂点カウント部へ該物体ヘッダに続く入力物体データを分配出力することを特徴とする画像生成装置。
【請求項２】
入力された物体データに基づき、３次元形状物体の透視変換を複数の頂点処理ユニットで並列に行うようにした画像生成装置で用いられるコンピュータプログラムであって、
コンピュータを、
入力された物体データの頂点数を積算すると共に、入力された物体データを前記複数の頂点処理ユニットのうち対応して設けられた一の頂点処理ユニットへ出力する複数の頂点カウント手段と、
前記物体データと各物体データの先頭に付加された物体ヘッダとを含み、シーンが変化した場合には更に前記物体ヘッダの先頭にシーンヘッダが付加されるシーンデータを入力として受け、入力された前記シーンデータの先頭部が前記シーンヘッダであることを検出したときには、前記複数の頂点カウント手段をそれぞれリセットするリセット手段と、
入力された前記シーンデータの先頭部が前記物体ヘッダであることを検出したときには、前記複数の頂点カウント手段の積算値を大小比較する比較手段と、
前記比較手段により最も小さな積算値を示す頂点カウント手段へ、前記物体ヘッダに続く入力物体データを分配出力する物体データ分配手段と
して機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像生成装置及びコンピュータプログラムに係り、特に複数の頂点処理ユニットでコンピュータグラフィックスによる３次元形状物体の透視変換を並列に行う画像生成装置及びコンピュータプログラムに関する。
【０００２】
【従来の技術】
コンピュータグラフィックス（ＣＧ）における画像生成装置では、３次元形状物体を３次元空間に配置した基本形状である複数の多角形によって表現し、３次元空間における視点位置、光源位置を決め、視点から見た画像を生成する。近年の画像生成装置では、表示の高画質化が益々要求されるようになり、そのため上記の多角形数の飛躍的増加のために処理能力の高速化が要求されている。
【０００３】
そこで、処理能力の高速化のために、複数の頂点処理ユニットで３次元形状物体の透視変換を並列に行うようにした画像生成装置が従来より知られている（特許文献１参照）。図３はこの従来の画像生成装置の一例のブロック図を示す。同図において、シーンデータはシーンデータ入力部１内の物体データ分配部２に供給され、ここで次段の４つの頂点処理ユニット３−０、３−１、３−２、３−３に順次巡回的に物体データを供給する。
【０００４】
４並列に設けられた頂点処理ユニット３−０、３−１、３−２、３−３のそれぞれは、入力された物体データに対して、その多角形の頂点、光源、視点を定義した３次元座標を、視点が原点で視線の向きがＺ軸と平行な３次元座標（視点座標系）に変換するモデリング・視野変換を行った後、光源座標、光線の向き、光源の種類、光源の色、多角形の頂点座標、多角形の法線ベクトル、多角形が表現している物体の色から多角形の頂点における輝度を計算する頂点輝度計算を行い、続いて視点座標系において視点から見てスクリーンを透視した空間の透視座標系への変換（透視変換）を行う。
【０００５】
上記の処理を行う頂点処理ユニット３−０、３−１、３−２、３−３のそれぞれから処理後の物体データが出力され、通信バス４を介して画素処理ユニット５−０、５−１、５−２、５−３に供給される。画素処理ユニットの並列数は、画面の分割数に等しく、ここでは画面を４分割表示する例を示している。
【０００６】
画素処理ユニット５−０、５−１、５−２、５−３のそれぞれにおいては、入力された物体データに対して、透視座標系において所定の範囲から出ている多角形のクリッピングを行うＸＹＺ面クリッピング、透視座標系のデータをスクリーン座標系に変換するビューポート変換、多角形頂点の輝度とＺ値（奥行き値）とを内挿して、多角形内部の画素の輝度とＺ値を求める頂点輝度・Ｚ値内挿、内挿で求めたＺ値とフレームバッファからのＺ値とを比較し、Ｚ値比較により内挿で求めたＺ値の方が小さい時にのみ、上記のフレームバッファに内挿で求めた輝度とＺ値を書き込むという、一連の公知の処理を順次に行う。
【０００７】
このようにして画素処理ユニット５−０、５−１、５−２、５−３のそれぞれにおいて、すべてのシーンデータを処理して得られた輝度データは、画像出力部６を通して出力される。この従来の画像生成装置によれば、物体データ毎の透視変換を行う頂点処理ユニットを複数（図３の例では４つ）並列に設けて並列処理を行うと共に、画素処理ユニットも複数（図３の例では４つ）並列に設けて並列処理を行うようにしたため、高速に画像生成を行うことができる。
【０００８】
【特許文献１】
特開２００１−３５７４１２号公報（第３−４頁、図１）
【０００９】
【発明が解決しようとする課題】
上記の従来の画像生成装置では、物体データ分配部２に頂点処理ユニットの並列数分カウントできるカウントを持ち、物体データ分配部２に物体データが入力されると、そのカウントの現在のカウント値を１だけインクリメントし、そのカウント値に応じた順番の頂点処理ユニットに物体データを分配する。従って、図３の従来の画像生成装置では、頂点処理ユニットが３−０〜３−３の４つ並列に設けられているので、物体データ分配部２は２ビットのバイナリカウンタを持ち、物体データが入力される毎にカウント値が０、１、２、３、０、１、・・・と順次巡回的に変化し、そのカウント値に対応する頂点処理ユニット３−０、３−１、３−２、３−３、３−０、３−１、・・・に物体データが順次に分配入力される。
【００１０】
しかるに、上記の従来の画像生成装置では、物体データ毎の頂点数のバラツキが大きい場合、特定の頂点処理ユニットに処理が集中し、頂点処理ユニットを並列化したメリットが十分に生かせないという問題がある。
【００１１】
本発明は以上の点に鑑みなされたもので、物体データ毎の頂点数のバラツキが大きい場合でも、特定の頂点処理ユニットに処理が集中しないようにし、もって画像生成を高速化し得る画像生成装置及びコンピュータプログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的を達成するため、本発明の画像生成装置は、入力された物体データに基づき、３次元形状物体の透視変換を複数の頂点処理ユニットで並列に行うようにした画像生成装置において、複数の頂点処理ユニットに、１対１に対応して設けられた複数の頂点カウント部と、物体データと各物体データの先頭に付加された物体ヘッダとを含み、シーンが変化した場合には更に物体ヘッダの先頭にシーンヘッダが付加されるシーンデータを入力として受け、複数の頂点カウンタ部をリセットするか、所定の頂点カウンタ部へ入力物体データを分配出力する物体データ分配部とを備え、頂点カウント部は、入力された物体データの頂点数を積算すすると共に、入力された物体データを対応して設けられた一の頂点処理ユニットに出力し、物体データ分配部は、入力されたシーンデータの先頭部がシーンヘッダであるときには複数の頂点カウント部をそれぞれリセットし、入力されたシーンデータの先頭部が物体ヘッダであるときには、複数の頂点カウント部の積算値を大小比較し、最も小さな積算値を示す頂点カウント部へ該物体ヘッダに続く入力物体データを分配出力する構成としたものである。
【００１３】
この発明では、頂点カウント部が複数の頂点処理ユニットのうち対応して設けられている頂点処理ユニットに入力される物体データの頂点の積算値をカウントしており、新たな物体データの入力時は複数の頂点カウント部の積算値を大小比較して最も小さな積算値を示す頂点カウント部へ新たな物体データを出力するようにしたため、それまでに入力された物体データの頂点の数の積算値が最も少ない頂点カウント部を通して対応する頂点処理ユニットへ新たな物体データを入力することができる。
【００１４】
また、上記の目的を達成するため、本発明のコンピュータプログラムは、入力された物体データに基づき、３次元形状物体の透視変換を複数の頂点処理ユニットで並列に行うようにした画像生成装置で用いられるコンピュータプログラムであって、コンピュータを、入力された物体データの頂点数を積算すると共に、入力された物体データを複数の頂点処理ユニットのうち対応して設けられた一の頂点処理ユニットへ出力する複数の頂点カウント手段と、物体データと各物体データの先頭に付加された物体ヘッダとを含み、シーンが変化した場合には更に物体ヘッダの先頭にシーンヘッダが付加されるシーンデータを入力として受け、入力されたシーンデータの先頭部がシーンヘッダであることを検出したときには、複数の頂点カウント手段をそれぞれリセットするリセット手段と、入力されたシーンデータの先頭部が物体ヘッダであることを検出したときには、複数の頂点カウント手段の積算値を大小比較する比較手段と、比較手段により最も小さな積算値を示す頂点カウント手段へ、物体ヘッダに続く入力物体データを分配出力する物体データ分配手段として機能させることを特徴とする。
【００１５】
この発明では、頂点カウント手段が複数の頂点処理ユニットのうち対応して設けられている頂点処理ユニットに入力される物体データの頂点の積算値をカウントしており、新たな物体データの入力時は複数の頂点カウント手段の積算値を大小比較して最も小さな積算値を示す頂点カウント手段へ新たな物体データを出力するようにしたため、それまでに入力された物体データの頂点の数の積算値が最も少ない頂点カウント手段へ新たな物体データを入力する処理をコンピュータに行わせることができる。
【００１６】
【発明の実施の形態】
次に、本発明の実施の形態について図面と共に説明する。図１は本発明になる画像生成装置の一実施の形態のブロック図を示す。同図中、図３と同一構成部分には同一符号を付し、その説明を省略する。図１において、画像生成装置は、シーンデータ入力部１０と、並列に設けられた頂点処理ユニット３−０〜３−３と、通信バス４と、通信バス４を通して頂点処理ユニット３−０〜３−３から物体データが入力される並列に設けられた画素処理ユニット５−０〜５−３と、画素処理ユニット５−０〜５−３からの輝度データを入力として受け、画像データとして出力する画像出力部６とから構成されている。
【００１７】
本実施の形態の画像生成装置は、シーンデータ入力部１０の構成に特徴があり、頂点処理ユニット３−０〜３−３以降の処理は従来の画像生成装置と同様である。シーンデータ入力部１０は、シーンデータを入力として受け、物体データを分配する物体データ分配部１１と、物体データ分配部１１に対して並列に設けられた頂点カウント部１２−０、１２−１、１２−２及び１２−３とから構成されている。頂点カウント部１２−０〜１２−３は、頂点処理ユニット３−０〜３−３に１対１に対応して設けられている。
【００１８】
次に、本実施の形態の動作について、図２のフローチャートを併せ参照して説明する。図１のシーンデータ入力部１０に入力されるシーンデータの先頭には、シーンの最初を示す所定の固定パターンのシーンヘッダが付加されている。また、シーンデータには物体データが含まれており、物体データには物体の頂点座標・頂点連結情報を含んでいる。また、物体データの先頭には所定の固定パターンの物体ヘッダが付加されている。すなわち、シーンデータは、物体データと各物体データの先頭に付加された物体ヘッダとを含み、シーンが変化した場合には更に物体ヘッダの先頭にシーンヘッダが付加された構成で、シーンデータの先頭部には、シーンヘッダ又は物体ヘッダが付加されている。
【００１９】
シーンデータ入力部１０内の物体データ分配部１１は、入力されたシーンデータの先頭部がシーンヘッダ及び物体ヘッダのいずれであるか判定する（ステップＳ１、Ｓ３）。シーンヘッダが入力されたと判定したときには、頂点カウント部１２−０〜１２−３をそれぞれリセットする（ステップＳ２）。また、シーンデータ入力部１０内の物体データ分配部１１は、入力されたシーンデータが物体ヘッダであると判定したときには、まず、頂点カウント部１２−０〜１２−３のうち、最も積算値（カウント値）が小さい頂点カウント部が第１の頂点カウント部１２−０であるかどうか判定する（ステップＳ４）。
【００２０】
頂点カウント部１２−０の積算値が最も小であれば、頂点カウント部１２−０に物体データを配分する（ステップＳ５）。頂点カウント部１２−０は入力された物体データが示す物体の頂点数を積算すると共に、入力された物体データを頂点処理ユニット３−０へ出力する（ステップＳ６）。
【００２１】
一方、物体データ分配部１１は、ステップＳ４で最も積算値（カウント値）が小さい頂点カウント部が第１の頂点カウント部１２−０でないと判定したときには、最も積算値（カウント値）が小さい頂点カウント部が第２の頂点カウント部１２−１であるかどうか判定する（ステップＳ７）。
【００２２】
頂点カウント部１２−１の積算値が最も小であれば、頂点カウント部１２−１に物体データを配分する（ステップＳ８）。頂点カウント部１２−１は入力された物体データが示す物体の頂点数を積算すると共に、入力された物体データを頂点処理ユニット３−１へ出力する（ステップＳ９）。
【００２３】
一方、物体データ分配部１１は、ステップＳ７で最も積算値（カウント値）が小さい頂点カウント部が第２の頂点カウント部１２−１でないと判定したときには、最も積算値（カウント値）が小さい頂点カウント部が第３の頂点カウント部１２−２であるかどうか判定する（ステップＳ１０）。
【００２４】
頂点カウント部１２−２の積算値が最も小であれば、頂点カウント部１２−２に物体データを配分する（ステップＳ１１）。頂点カウント部１２−２は入力された物体データが示す物体の頂点数を積算すると共に、入力された物体データを頂点処理ユニット３−２へ出力する（ステップＳ１２）。
【００２５】
一方、物体データ分配部１１は、ステップＳ１０で最も積算値（カウント値）が小さい頂点カウント部が第３の頂点カウント部１２−２でないと判定したときには、最も積算値（カウント値）が小さい頂点カウント部が第４の頂点カウント部１２−３であるとみなして、頂点カウント部１２−３に物体データを配分する（ステップＳ１３）。頂点カウント部１２−３は入力された物体データが示す物体の頂点数を積算すると共に、入力された物体データを頂点処理ユニット３−３へ出力する（ステップＳ１４）。
【００２６】
ステップＳ２、Ｓ３、Ｓ６、Ｓ９、Ｓ１２及びＳ１４のうち、いずれか一のステップの処理が終了すると、ステップＳ１に戻り、物体データ分配部１１は処理を最初から繰り返す。
【００２７】
このように、本実施の形態によれば、物体データ分配部１１が頂点処理ユニット３−０〜３−３に１対１に対応して４つ設けられた頂点カウント部１２−０〜１２−３の、対応して設けられた頂点処理ユニット３−０〜３−３に対して分配入力した物体データの頂点の積算数を示す積算値を大小比較し、最も積算値の小さな頂点カウント部に物体データを分配入力するようにしたため、頂点処理ユニット３−０〜３−３のうち、処理している物体データの頂点の積算数の最も小さな一の頂点処理ユニットに物体データが常に入力され、その結果、物体毎の頂点数のバラツキが大きい場合でも、特定の頂点処理ユニットに処理が集中しないようにできる。これにより、頂点処理ユニット３−０〜３−３はそれぞれ分散して頂点処理を並列に行うことができるので、画像生成の高速化が可能となる。
【００２８】
なお、上記のシーンデータ入力部１０の物体データ分配部１１及び頂点カウント部１２−０〜１２−３の動作を、コンピュータプログラムによりコンピュータのソフトウェア動作で行わせることもできる。
【００２９】
なお、本発明は上記の実施の形態に限定されるものではなく、例えば頂点処理ユニットの数は４以外の複数であってもよく、画素処理ユニットの数も４以外の複数であってもよい。ただし、頂点カウント部の並列数は、頂点処理ユニットの並列数と同数とする必要がある。
【００３０】
【発明の効果】
以上説明したように、本発明によれば、頂点カウント部が複数の頂点処理ユニットのうち対応して設けられている頂点処理ユニットに入力される物体データの頂点の積算値をカウントしており、新たな物体データの入力時は、それまでに入力された物体データの頂点の数の積算値が最も少ない頂点カウント部へ新たな物体データを入力するようにしたため、物体データ毎の頂点数のバラツキが大きい場合でも、特定の頂点処理ユニットに処理が集中しないようにでき、この結果、複数の頂点処理ユニットを常時並列に動作させることができ、画像生成の高速化を実現できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態のブロック図である。
【図２】図１の要部の動作説明用フローチャートである。
【図３】従来の一例のブロック図である。
【符号の説明】
３−０〜３−３　頂点処理ユニット
４　通信バス
５−０〜５−３　画素処理ユニット
６　画像出力部
１０　シーンデータ入力部
１１　物体データ分配部
１２−０〜１２−３　頂点カウント部
【図１】
2004110330.tif 000003
【図２】
2004110330.tif 000004
【図３】
2004110330.tif 000005