JP2001126083A - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JP2001126083A
JP2001126083A JP30327899A JP30327899A JP2001126083A JP 2001126083 A JP2001126083 A JP 2001126083A JP 30327899 A JP30327899 A JP 30327899A JP 30327899 A JP30327899 A JP 30327899A JP 2001126083 A JP2001126083 A JP 2001126083A
Authority
JP
Japan
Prior art keywords
data
processing
command
polygon
matrix
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.)
Withdrawn
Application number
JP30327899A
Other languages
English (en)
Inventor
Yusuke Shimizu
祐介 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sega Corp
Original Assignee
Sega Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sega Corp filed Critical Sega Corp
Priority to JP30327899A priority Critical patent/JP2001126083A/ja
Publication of JP2001126083A publication Critical patent/JP2001126083A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 ジオメトリブロックの回路規模を小さくす
る。 【解決手段】 ジオメトリブロック31を専用ハードウ
ェア演算器52と汎用マイクロコンピュータ43とを含
む構成とし、比較的使用頻度が高く高速性が要求される
機能については専用ハードウェア演算器52で処理し、
比較的使用頻度が低く高度な演算または柔軟性が要求さ
れる機能については汎用マイクロコンピュータ43で処
理する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ジオメトリブロッ
クを有する画像処理装置に関し、特に、ジオメトリブロ
ックで実行される処理を、処理内容に応じてジオメトリ
ブロックが内蔵する専用ハードウェア演算器と汎用マイ
クロコンピュータとにそれぞれ分担させることにより、
ジオメトリブロックの回路規模を小さくし、その結果、
価格を低く抑えることができるようにした画像処理装置
に関する。
【0002】
【従来の技術】ゲーム装置やシミュレーション装置は、
オペレータの操作入力に応答してゲームプログラムまた
はシミュレーションプログラムを実行することにより、
ゲーム等の進行に対応する画像を生成し、表示する。そ
のために、それらの内部に画像処理装置および表示装置
を内蔵している。
【0003】この画像処理装置は、ジオメトリブロッ
ク、レンダリング(描画)ブロック、及び表示ブロック
等から構成される。ジオメトリブロックは専用のハード
ウェア演算器で構成されており、ローカル座標で定義さ
れているオブジェクトを構成するポリゴンデータを、3
次元のワールド座標に変換し、更に表示画面などの2次
元のスクリーン座標に透視変換する。ジオメトリブロッ
クは、これ以外にも比較的使用頻度が低く柔軟性が要求
される機能や高度な演算処理(例えば、曲線及び曲面の
生成処理、物体同士が衝突したときの反転方向の処理
等)についても処理を行う。レンダリングブロックは、
2次元のスクリーン座標に透視変換されたポリゴンデー
タから、テクスチャ(オブジェクトの表面の色や模様
等)データを含むピクセル(画素)単位の画像データを
生成する。表示ブロックは、レンダリングブロックで生
成された1フレーム分のデジタル形式の画像データをア
ナログ信号に変換し、その画像データを表示装置に供給
し、画像を表示させる。
【0004】
【発明が解決しようとする課題】しかしながら、前述の
比較的使用頻度が低く柔軟性が要求される機能や高度な
演算処理についても、ジオメトリブロックを構成する専
用のハードウェア演算器で処理するとなると、専用ハー
ドウェア演算器の回路規模が大きくなり、その結果、価
格が高くなるという課題があった。
【0005】そこで、本発明の目的は、専用ハードウェ
ア演算器の回路規模を大きくすることなく、比較的使用
頻度が低く柔軟性が要求される機能や高度な演算処理に
ついても処理することができるジオメトリブロックを有
する画像処理装置を提供することにある。
【0006】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明の第1の側面は、ジオメトリ演算処理を実
行するジオメトリブロックを有する画像処理装置におい
て、前記ジオメトリブロックは、比較的使用頻度が高く
高速性が要求される処理を行う回路を有する専用ハード
ウェア演算器と、比較的使用頻度が低く高度な演算また
は柔軟性が要求される処理をソフトウェアによって実行
するマイクロコンピュータとを有し、前記専用ハードウ
ェア演算器は少なくともマトリクス演算器を有すること
を特徴とする。
【0007】上記本発明によれば、ジオメトリブロック
の回路規模を小さくしつつ、高い機能を維持することが
できる。また、頻度が高い機能を専用ハードウェア演算
器で実現させたので、全体の処理速度を上げることがで
きる。
【0008】上記の目的を達成するために、本発明の第
2の側面は、画像処理コマンドに応答して、ポリゴンの
頂点データに対するマトリクス演算及び透視変換を有す
るジオメトリ演算処理を行うジオメトリブロックにおい
て、前記画像処理コマンドをデコードするコマンドデコ
ーダと、前記コマンドデコーダから供給される第1の画
像処理コマンドに応答して、当該第1の画像処理コマン
ドに対応するプログラムを実行して前記ポリゴンの頂点
データを有する描画コマンドを生成するマイクロコンピ
ュータと、前記コマンドデコーダ又は前記マイクロコン
ピュータから供給され、前記ポリゴンの頂点データを有
する描画コマンドを含む第2の画像処理コマンドに応答
して、前記ポリゴンの位置情報を有する変換マトリクス
と前記頂点データに対して前記マトリクス演算を行い、
更に三次元座標から二次元座標への透視変換を行う専用
ハードウェア演算器とを有することを特徴とする。
【0009】上記本発明によれば、ジオメトリブロック
の回路規模を小さくしつつ、高い機能を維持することが
できる。また、頻度が高いマトリクス演算、透視変換を
専用ハードウェア演算器で実現させたので、全体の処理
速度を上げることができる。
【0010】更に、上記第2の発明において、その好ま
しい態様は、前記第1の画像処理コマンドには、少なく
とも(1)与えられた制御点に対する曲線または曲面を
求め、当該曲線または曲面に沿ったポリゴンデータを生
成する曲線・曲面生成処理、(2)ポリゴンの発生位
置、変化方向を有するデータを与えられ、複数フレーム
におけるポリゴンを生成するパーティクル処理、(3)
光源の射影位置及び方向と、光源を遮る物体のデータを
与えられ、シャドーボリュームを構成するポリゴンを生
成するボリューム生成処理、(4)位置及び方向を含む
発生源データとそれに対する力学的データに従って動的
に変化するポリゴンを生成するダイナミクス処理、
(5)オブジェクトの基準サイズデータとそれを拡大縮
小するスケールデータ及びオフセットデータから、オブ
ジェクトの詳細度データを生成するオブジェクトLOD処
理、(6)オブジェクトの位置と形状、サイズデータか
ら、当該オブジェクトが表示画面外に位置するか否かを
検出するオブジェクトカリング処理のうちのいずれか一
つの処理コマンドを有することを特徴とする。
【0011】上記本発明によれば、比較的使用頻度が低
く複雑な処理を専用ハードウェア演算器ではなく、マイ
クロコンピュータに処理させるようにしたので、専用ハ
ードウェア演算器の回路規模を大きくしないで、ジオメ
トリブロックの処理能力を向上させることができる。
【0012】更に、上記第2の発明において、その好ま
しい態様は、前記専用ハードウェア演算器は、第1のマ
トリクスデータが供給されるベクトルバスと第2のマト
リクスデータが供給されるマトリクスバスとに接続さ
れ、前記第1及び第2のマトリクスデータを乗算するマ
トリクス演算器を有し、座標変換処理時には、前記ベク
トルバスに座標変換対象データを供給し、前記マトリク
スバスに座標変換マトリクスを供給し、補間演算時に
は、前記ベクトルバスに混合比率を供給し、前記マトリ
クスバスに補間演算対象データを供給するデータ供給手
段を有することを特徴とする。
【0013】上記本発明によれば、頂点の補間演算を専
用ハードウェア演算器内のマトリクス演算器で実行する
ようにしたので、専用ハードウェア演算器の回路規模を
大きくしないで、処理能力を向上させることができる。
【0014】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態例を説明する。しかしながら、かかる実施の形
態例が、本発明の技術的範囲を限定するものではない。
【0015】図1は、本発明を適用した画像処理装置1
の一実施の形態の構成を示すブロック図である。オペレ
ータは、コントローラ11を操作することにより操作コ
マンドを入力する。オペレータにより入力された操作コ
マンドは、入出力部12に供給され、システムバス20
を介して、メインCPU (Central Processing Unit)17
に供給される。メインCPU17は、操作コマンドが供給
されると、ROM(Read Only Memory)16からゲームプロ
グラムを読み出し、実行する。その結果、ゲームの進行
に対応したオブジェクトを構成するポリゴンデータが生
成され、適宜、RAM(Random Access Memory)15に格納
される。音声処理部13には、メインCPU17からゲー
ムの進行に対応した音声データが供給される。音声処理
部13は、供給された音声データに所定の処理を施し、
その音声をスピーカ14から出力する。
【0016】オペレータによりオブジェクトを移動させ
る操作コマンドが入力されると、ゲームプログラムは、
その操作コマンドを処理し、オブジェクトを移動させ
る。オブジェクトを移動させるためには、ゲームプログ
ラムが、オブジェクト移動のための回転成分と平行移動
成分とを有する座標変換マトリクスを生成し、ジオメト
リブロック31に、ローカル座標で定義されているオブ
ジェクトを構成するポリゴンデータとともに供給する。
【0017】ジオメトリブロック31は、ローカル座標
で定義されているオブジェクトを構成するポリゴンデー
タに座標変換マトリクスを乗算するマトリクス演算を行
う。これにより、3次元のワールド座標内における移動
後のポリゴンの位置が求められる。そして、ジオメトリ
ブロック31は、そのポリゴンに対して透視変換を行っ
て、表示画面の2次元のスクリーン座標に対応したポリ
ゴンデータを生成し、そのポリゴンデータを描画ブロッ
ク32に供給する。
【0018】描画ブロック32は、レンダリング処理部
であり、2次元のスクリーン座標のポリゴンデータか
ら、テクスチャデータを含むピクセル(画素)単位の画
像データを生成し、その画像データを表示ブロック33
に供給する。表示ブロック33は、描画ブロック32か
ら供給された1フレーム分のデジタル形式の画像データ
をアナログ信号に変換し、その画像データに従って画像
をCRT(Cathode Ray Tube)19に表示させる。
【0019】次に、ジオメトリブロック31の構成につ
いて説明する。図2は、ジオメトリブロック31の構成
例を示している。ジオメトリコマンドRAM41には、メ
インCPU17からシステムバス20を介して供給される
描画コマンドが格納される。コマンドデコーダ51は、
ジオメトリコマンドRAM41に格納されている描画コマ
ンドを読み出し、デコードする。そして、コマンドデコ
ーダ51は、描画コマンドがハードウェアで定義済みの
コマンドであるか、またはハードウェアで未定義のコマ
ンドであるかを判定し、ハードウェアで定義済みのコマ
ンドであると判定した場合、その描画コマンドを専用ハ
ードウェア演算器52に供給し、ハードウェアで未定義
のコマンドであると判定した場合、その描画コマンドを
マイコンインタフェース54を介して汎用マイコン43
に供給する。即ち、コマンドデコーダ51は、専用ハー
ドウェア演算器52で行う処理と汎用マイコン43で行
う処理の振り分けを行っている。
【0020】尚、ここで、専用ハードウェア演算器52
と汎用マイコン43とに分けて処理を行うのは、専用ハ
ードウェア演算器52の回路規模をより小さくするため
である。専用ハードウェア演算器52には、頻繁に実行
される定型的な処理(例えば、後述するマトリクス演
算、頂点の補間演算、透視変換、及びクリッピング等)
を行わせ、汎用マイコン43には、頻度が少なく小規模
の専用ハードウェア演算器52での処理に不向きな、例
えば、曲線・曲面生成処理等の高度な演算処理を実行さ
せる。これにより、専用ハードウェア演算器52で行う
処理を限定することができ、その結果、専用ハードウェ
ア演算器52の回路規模をより小さくすることができ
る。更に、汎用性の低い演算処理を汎用マイコン43に
処理させることで、ジオメトリブロック31を多機能に
することができる。また、専用ハードウェア演算器52
で行う処理と汎用マイコン43で行う処理の振り分けを
行うコマンドデコーダ51は、高速性が要求されるた
め、ハード化されている。
【0021】専用ハードウェア演算器52は、供給され
た描画コマンドに従って、所定の演算処理を実行する。
一方、汎用マイコン43は、描画コマンドが供給される
と、ローカルRAM44に予め格納されている各描画コマ
ンドに対応したプログラムを読み出し、そのプログラム
に従って所定の演算処理を実行する。専用ハードウェア
演算器52または汎用マイコン43で処理された演算結
果は、結果出力インタフェース53を介して描画ブロッ
ク32に供給される。
【0022】尚、図2の構成では、ジオメトリコマンド
RAM41とローカルRAM44とをそれぞれ別々に設けるよ
うにしたが、よりコストを削減するために、1つのRAM
で構成することも可能である。
【0023】次に、画像処理部18の処理動作につい
て、図3のフローチャートを参照して説明する。図3
は、画像処理部18の処理動作を説明するためのフロー
チャートである。
【0024】先ず、コマンドデコーダ51は、ジオメト
リコマンドRAM41に格納されているコマンドを読み出
し、デコードする(ステップS1)。そして、コマンド
デコーダ51は、解読結果に基づいて、その処理が汎用
マイコン43での処理か否かを判定する(ステップS
2)。
【0025】ステップS2において、汎用マイコン43
での処理と判定された場合、コマンドデコーダ51は、
そのコマンドをマイコンインタフェース54を介して汎
用マイコン43に供給する。汎用マイコン43は、供給
されたコマンドに従って所定の処理を行い、ポリゴンデ
ータを生成し、生成したポリゴンデータを専用ハードウ
ェア演算器52に供給する(ステップS3)。
【0026】ステップS2において、汎用マイコン43
での処理ではないと判定された場合、ステップS4に進
み、コマンドデコーダ51は、そのコマンド及びポリゴ
ンデータを専用ハードウェア演算器52に供給する。専
用ハードウェア演算器52は、供給されたコマンドに従
って、マトリクス演算、頂点の補間演算、透視変換、及
びクリッピング等を行う。
【0027】専用ハードウェア演算器52で処理された
演算結果は、結果出力インタフェース53を介して描画
ブロック32に供給され、レンダリングが行われる(ス
テップS5)。即ち、描画ブロック32は、2次元のス
クリーン座標のポリゴンデータから、テクスチャデータ
を含むピクセル(画素)単位の画像データを生成し、そ
の画像データを表示ブロック33に供給する。
【0028】表示ブロック33は、描画ブロック32か
ら供給された1フレーム分のデジタル形式の画像データ
をアナログ信号に変換し、その画像データに従って画像
をCRT(Cathode Ray Tube)19に表示させる(ステップ
S6)。そして、ステップS1に戻り、それ以降の処理
が繰り返し実行される。
【0029】以上の通り、専用ハードウェア演算器52
は、所定の画像処理を経て生成される3Dのポリゴンデ
ータに対してマトリクス演算、透視変換という典型的な
ジオメトリブロックの処理を頻繁に行う。一方、汎用マ
イコン43は、その3Dのポリゴンデータを生成する前
段階の種々の処理を行い、専用ハードウェア演算器52
が処理できるポリゴンデータを生成する。
【0030】[ハードウェア演算器]次に、専用ハードウ
ェア演算器52における具体的な処理について、図4を
参照しながら説明する。図4は、専用ハードウェア演算
器52の構成例を示している。
【0031】専用ハードウェア演算器52は、第1に、
ローカル座標で定義されているオブジェクトを構成する
ポリゴンデータを、ゲームの進行に伴う回転と移動量を
示す座標変換マトリクスによって座標変換するマトリク
ス変換処理と、第2に、マトリクス変換された3次元の
ワールド座標内のポリゴンデータを、表示画面内の2次
元のスクリーン座標に変換する透視変換処理を行う。第
1のマトリクス変換処理は、マトリクス演算器63によ
り実行され、第2の透視変換処理は、ポリゴン生成部7
0により実行される。
【0032】マトリクスレジスタ67には、マトリクス
変換処理を行う場合に利用される座標変換マトリクスが
格納される。マトリクス変換処理のためのマトリクス演
算は、マトリクス演算器63により実行される。その場
合、マトリクス演算器63には、一方で、コマンドデコ
ーダ51または頂点バッファ68からベクトルデータセ
レクタ62を介して座標変換対象データが供給され、他
方で、マトリクスレジスタ67からマトリクスデータセ
レクタ69を介して座標変換マトリクスが供給される。
そして、マトリクス演算器63での演算結果が、結果デ
ータセレクタ66を介して頂点バッファ68に格納され
る。
【0033】一般にポリゴンは、その頂点データにより
定義される。頂点データには、例えば、座標値、法線ベ
クトル、カラーデータ、テクスチャ座標等の属性データ
が含まれる。マトリクス変換処理の場合、マトリクス演
算器63で頂点の座標値に座標変換マトリクスが乗算さ
れ、座標変換された頂点座標値が生成され、結果データ
セレクタ66を介して頂点バッファ68に格納される。
また、マトリクス演算器63で法線ベクトルに座標変換
マトリクスが乗算され、座標変換された法線ベクトルが
ベクトル正規化演算器65に供給され、ベクトル正規化
演算器65で座標変換された法線ベクトルが正規化さ
れ、結果データセレクタ66を介して頂点バッファ68
に格納される。さらに、その他の属性データに関して
も、必要に応じて座標変換マトリクスが乗算され、結果
データセレクタ66を介して頂点バッファ68に格納さ
れる。
【0034】尚、上記マトリクス変換処理におけるマト
リクス演算器63の使用は、従来のジオメトリプロセッ
サにおいても行われている。
【0035】マトリクス変換処理が終了すると、ポリゴ
ン生成部70は、頂点バッファ68から3次元のワール
ド座標のポリゴンデータを読み出し、そのポリゴンデー
タを表示画面内の2次元のスクリーン座標に透視変換す
る。このとき、表示画面の内外に跨いで存在するポリゴ
ンデータに関しては、表示画面の外側のポリゴンデータ
が切り取られ(クリッピング処理)、表示画面の内側の
ポリゴンデータのみが新たなデータとして定義される。
また、全ての領域が表示画面の外側に位置するポリゴン
データは除外される(カリング処理)。透視変換後の2
次元のスクリーン座標のポリゴンデータは、結果出力イ
ンタフェース53に供給される。
【0036】透視投影演算器64は、頂点データに含ま
れるテクスチャ座標の透視変換を行う。また、オブジェ
クトの移動量を算出するのにも利用される。
【0037】図4の専用ハードウェア演算器52の特徴
的な構成は、マトリクス演算器63を座標変換のための
マトリクス変換処理に利用するとともに、それ以外の例
えば、補間演算にも利用できるように、ベクトルデータ
セレクタ62及びマトリクスデータセレクタ69を設け
たことにある。
【0038】例えば、補間演算を行う場合は、混合比設
定部61が生成する混合比率データを、ベクトルデータ
セレクタ62が選択して、ベクトルバスVBを介してマ
トリクス演算器63に供給する。この混合比率は、コマ
ンドデコーダ51から与えられた後述する混合比率生成
データに従って、混合比設定部61が生成する。一方、
マトリクスデータセレクタ69は、頂点バッファ68に
予め格納されている補間演算対象データを選択し、マト
リクスバスMBを介してマトリクス演算器63に供給す
る。マトリクス演算器63は、補間演算対象データと混
合比率データとを積算して、その演算結果を頂点バッフ
ァ68に格納する。頂点に対する補間演算は、さまざま
な処理において行われる要素処理である。例えば、ポリ
ゴンを細分化して形状を丸くするサブディビジョン・サ
ーフェース処理では、頂点の中点や重心を求めるとき、
補間演算が必要になる。
【0039】座標変換処理のためのマトリクス変換の演
算及びサブディビジョン・サーフェース処理のための補
間演算について、以下に具体的に説明する。この説明に
より、これらの演算が同じマトリクス演算器63を利用
して処理されることが理解される。図5は座標変換処理
を行う場合のマトリクス演算器63の構成を示してお
り、図6は補間演算を行う場合のマトリクス演算器63
の構成を示している。
【0040】[座標変換]オブジェクトを構成するポリゴ
ンは、通常、ローカル座標内で定義される。また、ポリ
ゴンは、そのポリゴンを構成する頂点データにより定義
される。ゲームプログラム等を実行することにより、オ
ブジェクトは所定の回転及び移動を行う。この場合の、
ローカル座標内での頂点データ(VX,VY,VZ)を要
素とする4行1列のマトリクスに、回転及び移動量を設
定した座標変換マトリクスMmn,Tm(m=0,1,
2,n=0,1,2)を各行の要素とする3行4列のマ
トリクスを乗算することで、座標変換後のワールド座標
(V’X,V’Y,V’Z)が求められる。この演算式
は、次の(1)式で表される。
【0041】
【数1】 上記(1)式において、Tenbは、平行移動を許可する
(=1)か許可しない(=0)かを示すデータであり、
頂点座標などに対する座標変換の場合は、Tenb=1で
平行移動が許可されるが、法線ベクトルなどに対する座
標変換の場合は、Tenb=0で平行移動が禁止される。
法線ベクトルの場合は、回転成分により座標変換されれ
ばよく、平行移動は必要ないからである。
【0042】図5は、上記の座標変換処理を行う場合の
マトリクス演算器63の構成を示している。マトリクス
演算器63は、(1)式の演算を行うために、3層構造
で構成され、x成分のマトリクス演算器63Xと、y成
分のマトリクス演算器63Yと、z成分のマトリクス演
算器63Zとを有する。それぞれのマトリクス演算器は
同じ構成であり、例えば、図5に示すように、4つの乗
算器81乃至84と、それらの乗算結果の和を求める加
算器85とを有する。4本のベクトルバスVBから、座
標変換対象データとして、例えば、頂点座標V(VX
Y,VZ)と平行移動の有無を示すデータTenbとが、
3層のマトリクス演算器63X,63Y,及び63Zに
共通に供給される。また、4本のマトリクスバスMBか
ら、座標変換マトリクスの各行データMm0,Mm1
m2,及びTmが、各層のマトリクス演算器に別々に供
給される。x成分のマトリクス演算器63Xでは、それ
ぞれのバスから供給されたデータが、乗算器81乃至8
4で乗算され、それらの乗算結果(Mm0×Vx),(M
m1×Vy),(Mm2×Vz),及び(Tm×Tenb)が、加
算器85で加算されて、変換後の頂点座標V’Xが求め
られる。y成分のマトリクス演算器63Yと、z成分の
マトリクス演算器63Zでも、変換後の頂点座標
V’Y,V’Zが同様にして求められる。
【0043】[補間演算]補間演算は、例えば、サブディ
ビジョン・サーフェース処理において繰り返し行われ
る。サブディビジョン・サーフェース処理とは、角張っ
たポリゴンを細分化し、補間演算することにより、丸み
を帯びたポリゴンに変形する処理である。細分化のため
には、ポリゴンの頂点間のエッジの中点を求めたり、ポ
リゴンの中点を求める必要があり、これらの中点は、混
合比率を全て等しくした補間演算により求められる。こ
れらの中点が、細分化されたポリゴンの頂点になる。ま
た、それらの中点と頂点とを所定の混合比率で補間演算
することにより、新たな補間された中点や頂点(細分化
されたポリゴンの頂点)が求められる。
【0044】図7は、ポリゴンの細分化と重み付け補間
を説明するための図である。ここで、重み付け補間と
は、所定の混合比率で補間演算することであり、加重平
均演算と同じである。図7を参照しながら、四角形のポ
リゴンに対するサブディビジョン・サーフェース処理を
説明する。
【0045】図7(A)は、頂点p0乃至p3からなる
四角形のポリゴンである。頂点p0乃至p3は、それぞ
れ頂点座標を有する。図7(B)には、頂点間のエッジ
(辺)の中点e0乃至e3と、ポリゴンの中点(中心)
qとが示されている。エッジの中点e0は、次の(2)
式により求められる。
【0046】e0=(p0+p1)/2 …(2) その他の中点e1乃至e3についても同様にして求めら
れる。ポリゴンの中点qは、次の(3)式により求めら
れる。
【0047】 q=(p0+p1+p2+p3)/4 …(3) 上記(2)式及び(3)式を利用することで、頂点デー
タのうち、頂点座標、法線ベクトル、テクスチャ座標、
頂点カラーデータ等について、中点e0乃至e3及び中
点qにおける頂点データが求められる。
【0048】上記で求められたエッジの中点e0乃至e
3とポリゴンの中点qを結ぶことで、図7(C)のよう
にポリゴンが4つのポリゴンに細分化される。このよう
に細分化された後、エッジの中点e0乃至e3が、所定
の重み付けで加重平均されて、補間されたエッジの中点
e’0乃至e’3が求められる。エッジの中点の補間
は、その中点e0を求めたときに用いた2つの頂点p0
及びp1と、エッジの中点e0とつながりがあるポリゴ
ンの中点qとを所定の混合比率で補間する処理である。
即ち、その演算式は、混合比率が全て等しい場合、次の
(4)式で表される。
【0049】 e’0=(p0+p1+q)/(2+1)=(p0+p1+q)/3…(4) 一般に、上記の混合比率は、サブディビジョン・サーフ
ェース処理の処理に応じて与えられる定数であり、どの
程度丸みを帯びさせるかにより、混合比率は異なる。上
記の(4)式のように、混合比率を1/3にすると、図
7(D)に示される通り、エッジの中点e0がポリゴン
の中点qに対して1:2の位置に移動して、新たな補間
されたエッジの中点e’0になる。
【0050】最後に、頂点の補間を行う。頂点p0の補
間は、対象の頂点p0と、その頂点p0とつながりがあ
るエッジの中点の補間された点e’0及びe’3とを、
所定の混合比率で補間する処理である。例えば、頂点p
0をエッジの中点の補間された点e’0,e’3に対し
て2:1で補間する場合の演算式は、次の(5)式で表
される。
【0051】 p’0=(p0+2(e’0+e’3))/(1+2×2) =(p0+2(e’0+e’3))/5 =p0/5+2(e’0+e’3)/5 …(5) 上記(5)式の場合、混合比率は1/5と2/5の補間
演算(加重平均演算)である。その結果、図7(E)に
示される通り、丸みを帯びた4つのポリゴンが形成され
る。以上が、サブディビジョン・サーフェース処理の例
である。2:1で補間したことより、頂点p’0は、よ
りポリゴンの中点qに近い点になる。
【0052】上記(2)乃至(4)式は、いずれも混合
比率が1/2,1/3,1/4の補間演算(重み付けが
全て等しい加重平均演算)であり、(5)式は混合比率
が1/5と2/5の補間演算(加重平均演算)である。
【0053】図8は、六面体に対する細分化と補間を説
明するための図である。六面体に対してサブディビジョ
ン・サーフェース処理を行って、丸みを帯びた立方体に
する場合について説明する。この場合も、手順は図7と
同様に、頂点pにより定義された6つのポリゴンからな
る六面体に対して、エッジの中点eとポリゴンの中点q
を求めてポリゴンを細分化し(図8(B))、エッジの
中点を補間して新たなエッジの中点e’を求め(図8
(C))、更に、頂点を補間して新たな頂点p’を求め
る(図8(D))。そして、細分化された新たなポリゴ
ンにより、より丸みを帯びたオブジェクトが生成され
る。それぞれの演算は、次の通りである。
【0054】先ず、エッジの中点は、上記(2)式によ
り求められる。そして、ポリゴンの中点qは、次の
(6)式により求められる。
【0055】
【数2】 この(6)式も上記(3)式と同じである。
【0056】次に、エッジの中点の補間は、中点を求め
るときに用いた2つの頂点と、エッジの中点とつながり
があるポリゴンの中点q(合計Q)とを所定の混合比率
で補間することで行われる。即ち、補間されたエッジの
中点e’は、次の(7)式により求められる。
【0057】
【数3】 この(7)式は、エッジの中点eとポリゴンの中点qの
合計Qとを2:1に補間する演算式である。図8(B)
に示される通り、エッジの中点e0に対する補間は、頂
点p0及びp1と、ポリゴンの中点q0及びq1とが利
用され、上記(8)式に示される通り、これらを1/4
の混合比率で補間演算することで求められる。
【0058】最後に、頂点の補間は、図8(D)に示さ
れる通り、頂点p0とつながりがあるエッジの中点e’
0,e’1,及びe’2を所定の混合比率で補間するこ
とで行われる。補間後のエッジの中点e’の合計Eを利
用すると、補間された頂点p’は、次の(9)式により
求められる。
【0059】
【数4】 この(9)式は、補間後のエッジの中点e’の合計Eと
頂点p0とを1:2で補間する演算式である。補間後の
頂点p’0は、上記(10)式により求められ、図8
(D)に示される通り、内部の新しい点p’0になる。
上記(10)式は、混合比率が1/7と2/7の補間演
算である。
【0060】以上、サブディビジョン・サーフェース処
理における補間演算例について説明した。このように、
サブディビジョン・サーフェース処理を行うためには、
4段階の補間演算を行う必要がある。そして、その補間
演算は、補間対象の座標データと混合比率とを、乗算し
て加算するマトリクス演算に置き換えることができる。
【0061】即ち、補間対象の頂点座標(Vmx,Vmy
mz)(m=0乃至3)をマトリクスとし、それぞれの
補間の混合比率をRm(m=0乃至3)とすると、補間
後の頂点座標(V’x,V’y,V’z)は、次の(1
1)式で表すことができる。
【0062】
【数5】 この(11)式から理解される通り、補間演算は、補間
対象の頂点データを各行の要素とする3行4列のマトリ
クスと、混合比率を各要素とする4行1列のマトリクス
との乗算である。
【0063】図6は、補間演算の場合のマトリクス演算
器63の構成を示している。上記(11)式を実行する
ためには、各マトリクス演算器63X,63Y,63Z
のベクトルバスVBに混合比率R0乃至R3を共通に供給
し、各演算器それぞれのマトリクスバスMBに補間対象
の頂点座標や中点座標データV0x乃至V3xをそれぞれ供
給すれば、演算器それぞれのその積算及び加算後の値
V’x(V’y,V’z)は、上記の各種の補間演算結果
と一致する。上記(11)式に示される通り、4つのバ
スと乗算器81乃至84を全て利用すると、4点の補間
対象座標に対して補間演算を行うことができ、必要に応
じて、その補間対象座標の数が選択される。
【0064】補間演算の混合比率Rは、図4に示した通
り、混合比設定部61により求められる。混合比設定部
61には、コマンドデコーダ51から重み値αと除数n
とが与えられる。上記の補間演算式は、次の(12)式
に置き換えることができる。
【0065】
【数6】 上記(12)式において、α=1,n=2とすると、
(2)式の補間式になる。また、α=1,n=4とする
と、(3)式の補間式になる。更に、α=1,n=3と
すると、(4)式の補間式になる。そして、α=6/
7,n=3とすると、(10)式の補間式になる。従っ
て、重み値αと除数nを定義すると、(2)式、(3)
式、(4)式、(10)式に対して汎用的にその混合比
率を設定することができる。即ち、α/nと(1−α)
とが混合比率Rに該当する。上記の重み値αと除数nを
供給されることで、混合比設定部61は、混合比率を生
成し、ベクトルバスVBに供給することができる。
【0066】以上、専用ハードウェア演算器52での具
体的な処理について説明した。上述したように、専用ハ
ードウェア演算器52は専用のハードウェアで構成さ
れ、ポリゴンデータの処理において頻繁に実行されるマ
トリクス演算、透視変換、及びクリッピング等の定型処
理を行う。このため、高速処理が可能である。また、頂
点の補間演算をマトリクス演算器63に実行させること
ができ、回路規模を大きくしないで処理能力を向上させ
ることができる。
【0067】[汎用マイクロコンピュータ]次に、汎用マ
イコン43での具体的な処理について説明する。汎用マ
イコン43では、後述する曲線・曲面生成処理、パーテ
ィクル処理、ボリューム生成処理、ダイナミクス処理、
オブジェクトLOD処理、及びオブジェクトカリング処理
等が行われる。これらの処理は、前述の定型処理と異な
り、比較的使用頻度が低く複雑な処理であるので、専用
ハードウェア演算器52ではなく、汎用マイコン43に
処理させる。これにより、専用ハードウェア演算器52
の回路規模を大きくしないで、ジオメトリブロック31
の処理能力を向上させることができる。
【0068】図9は、汎用マイコン43の構成例を示し
ている。図9の汎用マイコン43において、プログラム
カウンタ91のアドレスに従って、プログラムメモリ9
2からプログラムの命令が順次読み出される。読み出さ
れた命令はバス96を介して命令デコーダ93に供給さ
れ、命令デコーダ93は供給された命令の処理内容を解
読(デコード)する。命令デコーダ93の解読結果に応
じて、演算論理ユニット(ALU:Arithmetic and Logic Un
it)95が必要な処理を実行する。演算論理ユニット9
5での処理結果はバス96を介してレジスタ群94に格
納され、必要に応じて読み出される。
【0069】次に、汎用マイコン43の処理動作につい
て、図10のフローチャートを参照しながら説明する。
先ず、汎用マイコン43は、コマンドデコーダ51から
の通知をマイコンインタフェース54を介して受け取り
(ステップS11)、その通知内容を解析する(ステッ
プS12)。
【0070】そして、汎用マイコン43は、通知内容に
基づいて、コマンドがハードウェア演算器52で未定義
のコマンドであるか否かを判定する(ステップS1
3)。この判定処理は、コマンドデコーダ51から汎用
マイコン43に送信されてきたコマンドが、本当に専用
ハードウェア演算器52で処理不能であるかを確認する
ために行われる。
【0071】ステップS13において、コマンドが専用
ハードウェア演算器52で未定義のコマンドではない
(専用ハードウェア演算器52で定義済みのコマンドで
ある)と判定された場合、何らかの処理エラーと考えら
れるので、汎用マイコン43はメインCPU17へエラー
を通知(ステップS17)し、処理は終了される。
【0072】ステップS13において、コマンドが専用
ハードウェア演算器52で未定義のコマンドであると判
定された場合、汎用マイコン43で処理できる可能性が
あるので、汎用マイコン43はそのコマンドの内容を解
析(ステップS14)し、ソフトウェアによる処理のコ
マンドであるか否かを判定する(ステップS15)。
【0073】ステップS15において、コマンドがソフ
トウェアによる処理のコマンドではないと判定された場
合、汎用マイコン43では処理できないので、汎用マイ
コン43はメインCPU17へエラーを通知(ステップS
17)し、処理は終了される。
【0074】一方、ステップS15において、コマンド
がソフトウェアによる処理のコマンドであると判定され
た場合、汎用マイコン43はそのコマンドに応じて、プ
ログラムメモリ92内のソフトウェアに従って所望の処
理を実行(ステップS16)し、処理動作は終了され
る。
【0075】次に、図10のステップS16におけるコ
マンド処理(ソフトウェアによるジオメトリブロック3
1の処理)の6つの具体例について、図11乃至図26
を参照して説明する。
【0076】最初に、汎用マイコン43におけるコマン
ド処理の第1例として、曲線・曲面生成処理について説
明する。図11は、曲線・曲面生成処理を説明するため
の図である。曲線・曲面生成処理とは、コマンドデータ
を構成する制御点データに基づいて曲線や曲面を生成
し、対応するポリゴンデータを生成する処理のことであ
る。ここでは、曲線・曲面生成のためのアルゴリズムと
してNURBSを用いる。尚、NURBSは、曲線・曲面生成のた
めのアルゴリズムの一手法であり、勿論、これ以外の例
えば、ベジェ、スプライン、メタボール、フラクタル等
を用いても良い。
【0077】図11(A)では、制御点データ1乃至4
から曲線101が生成される様子を示している。制御点
データは、属性データとして重み値を有しており、この
重み値により曲線101がどこを通るかが決定される。
図11(B)では、図11(A)と同様に、N個の制御
点データから曲面102が生成される様子を示してい
る。曲面102からは曲面102にほぼ近い形状のポリ
ゴンパッチ103が生成される。これは、専用ハードウ
ェア演算器52がポリゴンデータしか処理できないため
に行われる。
【0078】図12は、曲線・曲面生成処理で利用され
るコマンドデータの一例を示している。図12に示され
る通り、コマンドには、上述のNURBSが書き込まれてい
る。アトリビュートの色及びテクスチャは、曲面に貼り
付けられるデータのことである。制御点の数Nは、曲線
や曲面を生成するときに利用される制御点データの総数
を示している。制御点データは座標値、重み値、及び階
数を含んでいる。座標値は制御点データの座標値のこと
であり、重み値や階数は生成される曲線が制御点データ
の位置座標からどれだけ離れた所を通るかを示す値であ
る。例えば、図11(A)においては、制御点データ1
及び3の重み値が小さいため、曲線101は制御点デー
タ1及び3からやや離れた所を通っている。これに対し
て、制御点データ2及び4の重み値は大きいため、曲線
101は制御点データ2及び4のすぐ近くを通っている
ことが分かる。
【0079】図13は、汎用マイコン43における曲線
・曲面生成処理を説明するためのフローチャートであ
る。汎用マイコン43はコマンドデコーダ51から図1
2に示すようなコマンドデータ(NURBS)を受け取る
と、制御点データに基づいて曲線・曲面を計算する(ス
テップS21)。そして、汎用マイコン43は曲線・曲
面の計算結果に基づいて、図11に示すようなポリゴン
パッチを生成(ステップS22)し、ポリゴンパッチに
対応するポリゴンコマンドを生成する(ステップS2
3)。このポリゴンデータは、3D座標におけるポリゴ
ンの頂点データを含んでいる。汎用マイコン43は生成
したポリゴンコマンドをコマンドデコーダ51に送信
し、その後の処理(座標変換や透視変換)を専用ハード
ウェア演算器52に実行(ステップS24)させ、曲線
・曲面生成処理は終了される。
【0080】次に、汎用マイコン43におけるコマンド
処理の第2例として、パーティクル処理について説明す
る。図14は、パーティクル処理を説明するための図で
ある。パーティクル処理とは、コマンドデータに従っ
て、各時刻(フレーム)における炎、火花、噴水等の位
置を計算し、その位置に対応するポリゴンデータを生成
する処理のことである。ここでは、炎を例に説明する。
図14(A)乃至(D)に示される通り、蝋燭の炎の粒
子が発生してから消えるまでの間、各時刻において炎の
粒子の位置は異なる。このため、各時刻における炎の粒
子の位置を計算し、これに対応するポリゴンデータを生
成しなければならない。このために、パーティクル処理
は行われる。
【0081】図15は、パーティクル処理で利用される
コマンドデータの一例を示している。図15に示される
通り、コマンドには、上述のParticleが書き込まれてい
る。アトリビュートの色及びテクスチャは、生成された
ポリゴンデータに貼り付けられるデータである。パーテ
ィクル制御モードには、炎が指定されている。データの
座標とは、例えば、図14(A)に示すように、蝋燭の
炎が発生するスタートの位置座標のことであり、方向と
は、炎が発生する向きのことである。速度とは、炎の速
さのことであり、寿命とは、炎が発生してから消えるま
での時間のことであり、数とは、炎の粒子の発生数のこ
とである。ワークエリアアドレスには、前回のフレーム
の画像データを格納したフレームメモリのアドレスが書
き込まれており、この画像データが次のフレームの画像
データの生成のために必要に応じて用いられる。
【0082】図16は、汎用マイコン43におけるパー
ティクル処理を説明するためのフローチャートである。
汎用マイコン43はコマンドデコーダ51から図15に
示すようなコマンドデータ(Particle)を受け取ると、
データに基づいてパーティクル位置を計算する(ステッ
プS31)。そして、汎用マイコン43はパーティクル
位置の計算結果に基づいて、ポリゴンパッチを生成(ス
テップS32)し、ポリゴンパッチに対応するポリゴン
コマンドを生成する(ステップS33)。このポリゴン
コマンドは、3D座標におけるポリゴンの頂点データを
含んでいる。汎用マイコン43は生成したポリゴンコマ
ンドをコマンドデコーダ51に送信し、その後の処理
(座標変換や透視変換)を専用ハードウェア演算器52
に実行(ステップS34)させ、パーティクル処理は終
了される。
【0083】次に、汎用マイコン43におけるコマンド
処理の第3例として、ボリューム生成処理について説明
する。図17はボリューム生成処理を説明するための図
である。ボリューム生成処理とは、光源と物体によって
生じる仮想的な空間(ボリューム)を生成する処理のこ
とである。図17の例では、光源111から照射された
光が物体112によって遮られ、シャドーボリューム1
13を形成している様子を示している。ボリュームに
は、シャドーボリューム以外に、例えば、ライトボリュ
ーム、フォグボリューム等がある。
【0084】図18は、ボリューム生成処理で利用され
るコマンドデータの一例を示している。図18に示され
る通り、コマンドには、ボリュームを生成するVolume G
enが書き込まれている。アトリビュートの色及びテクス
チャは、生成されたボリュームに貼り付けられるデータ
である。射影データとは、例えば、図17の光源111
に関するデータのことである。射影データの座標は、光
源111の位置を示す座標のことであり、方向や長さは
光源111の光の向きや長さのことである。形状定義デ
ータの数Nは、光を遮る物体の総数を示しており、図1
7の例では、光を遮る物体として物体112が1つ与え
られている。形状データの座標は、物体112の位置を
示す座標のことである。光源(射影データ)111と物
体(形状データ)112とがコマンドデータとして与え
られることにより、シャドーボリューム113が生成さ
れる。
【0085】図19は、汎用マイコン43におけるボリ
ューム生成処理を説明するためのフローチャートであ
る。汎用マイコン43はコマンドデコーダ51から図1
8に示すようなコマンドデータ(Volume Gen)を受け取
ると、データに基づいて、例えば、図17に示すような
シャドーボリューム113のボリューム形状を計算する
(ステップS41)。そして、汎用マイコン43はボリ
ューム形状の計算結果に基づいて、シャドーボリューム
113を構成するポリゴンであるボリュームパッチを生
成(ステップS42)し、ボリュームパッチ(ポリゴ
ン)に対応するボリュームコマンドを生成する(ステッ
プS43)。このボリュームコマンドには、ボリューム
パッチの3D座標における頂点データが含まれる。汎用
マイコン43は生成したボリュームコマンドをコマンド
デコーダ51に送信し、その後の処理(座標変換や透視
変換)をハードウェア演算器52に実行(ステップS4
4)させ、ボリューム生成処理は終了される。
【0086】次に、汎用マイコン43におけるコマンド
処理の第4例として、ダイナミクス処理について説明す
る。図20は、ダイナミクス処理を説明するための図で
ある。ダイナミクス処理とは、物体(波、風)が水面
(髪の毛、衣服)に対して及ぼす力学的な影響を考慮し
た処理のことである。力学的な影響とは、例えば、粘
性、弾性、摩擦、重力、モーメント(回転、慣性)等に
よる影響のことである。図20の例では、水面122に
石(物体)121が投げ込まれる様子を示している。こ
のとき、石121の大きさや投げ込まれる位置により、
水面122に発生する波の様子が違ってくる。
【0087】図21は、ダイナミクス処理で利用される
コマンドデータの一例を示している。図21に示される
通り、コマンドには、Dynamicsが書き込まれている。ア
トリビュートの色及びテクスチャは、生成されたポリゴ
ンに貼り付けられるデータである。ダイナミクス制御モ
ードは、水面の波が指定されている。これにより、石1
21が投げ込まれたときの水面122の波が受ける影響
が計算される。粘性係数とは、水の粘性係数のことであ
り、反射係数とは、石121が水面122と衝突したと
きの反射係数のことである。発振源定義データの数N
は、石121の総数のことである。発振源データの座標
とは、石121が投げ込まれたときの位置を示す座標の
ことであり、方向とは、石121が投げ込まれる向きの
ことであり、強度とは、石の種類(小さな石、大きな
石)に応じた水面の波の強さのことである。ワークエリ
アアドレスは、前回求めた計算結果データを利用すると
きに用いられる。
【0088】図22は、汎用マイコン43におけるダイ
ナミクス処理を説明するためのフローチャートである。
汎用マイコン43はコマンドデコーダ51から図21に
示すようなコマンドデータ(Dynamics)を受け取ると、
データに基づいて、ダイナミクス(力学的応答)を計算
(ステップS51)し、物体の形状(変形)を計算する
(ステップS52)。そして、汎用マイコン43は上記
計算結果に基づいて、ポリゴンパッチを生成(ステップ
S53)し、ポリゴンパッチに対応するポリゴンコマン
ドを生成する(ステップS54)。このポリゴンコマン
ドは、3D座標におけるポリゴンの頂点データを含んで
いる。汎用マイコン43は生成したポリゴンコマンドを
コマンドデコーダ51に送信し、その後の処理(座標変
換や透視変換)をハードウェア演算器52に実行(ステ
ップS55)させ、ダイナミクス処理は終了される。
【0089】次に、汎用マイコン43におけるコマンド
処理の第5例として、オブジェクトLOD(Level Of Detai
l)処理について説明する。オブジェクトLOD処理とは、
大きく表示される物体には詳細なオブジェクトデータを
使用し、小さく表示される物体には、単純化したオブジ
ェクトデータを使用する処理のことである。これによ
り、演算及び描画性能の効率化を図ることができる。
【0090】図23は、オブジェクトLOD処理で利用さ
れるコマンドデータの一例を示している。図23に示さ
れる通り、コマンドには、Object LODが書き込まれてい
る。基準データとは、対象となるオブジェクトに関する
データのことである。座標とは、対象となるオブジェク
トの中心座標のことであり、形状及びサイズとは、対象
となるオブジェクトの形状及びサイズのことである。制
御データのスケール及びオフセットは、オブジェクトLO
Dを算出するときに利用されるパラメータである。オブ
ジェクトLODは、具体的には、次の(13)式により求
められる。
【0091】 オブジェクトLOD=(スケール×基準データの描画サイズ係数)+オフセット …(13) オブジェクトデータアドレスには、オブジェクトのLOD
値に応じたオブジェクトデータが格納されているアドレ
スが書き込まれており、必要に応じて参照される。
【0092】図24は、汎用マイコン43におけるオブ
ジェクトLOD処理を説明するためのフローチャートであ
る。汎用マイコン43はコマンドデコーダ51から図2
3に示すようなコマンドデータ(Object LOD)を受け取
ると、基準データ及び制御データに基づいて、オブジェ
クトLODを計算する(ステップS61)。そして、汎用
マイコン43は算出したオブジェクトLODに応じたオブ
ジェクト描画コマンドを生成(ステップS62)し、生
成したオブジェクト描画コマンドをコマンドデコーダ5
1に送信し、その後の処理を専用ハードウェア演算器5
2に実行(ステップS63)させ、オブジェクトLOD処
理は終了される。専用ハードウェア演算器52は、この
オブジェクトLODのコマンドと、別途与えられるポリゴ
ンの頂点データとに従って、定型処理を行う。
【0093】次に、汎用マイコン43におけるコマンド
処理の第6例として、オブジェクトカリング処理につい
て説明する。オブジェクトカリング処理とは、画面外な
どで表示されないポリゴンを省略する処理のことであ
る。この処理により、ジオメトリブロック31や描画ブ
ロック32での表示されないポリゴンに対する無駄な処
理を省き、それらブロックでの演算及び描画性能の効率
化を図ることができる。
【0094】図25は、オブジェクトカリング処理で利
用されるコマンドデータの一例を示している。図25に
示される通り、コマンドには、Object Cullが書き込ま
れている。基準データとは、対象となるオブジェクトに
関するデータのことである。座標とは、対象となるオブ
ジェクトの中心座標のことであり、形状及びサイズと
は、対象となるオブジェクトの形状及びサイズのことで
ある。オブジェクトデータアドレスには、オブジェクト
データが格納されているアドレスが書き込まれており、
対象となるオブジェクトを表示する場合に利用される。
【0095】図26は、汎用マイコン43におけるオブ
ジェクトカリング処理を説明するためのフローチャート
である。汎用マイコン43はコマンドデコーダ51から
図25に示すようなコマンドデータ(Object Cull)を
受け取ると、基準データに基づいて、対象となるオブジ
ェクトが画面の外か否かの判定を行う(ステップS7
1)。ステップS71において、対象となるオブジェク
トが画面内であると判定された場合、オブジェクトは表
示されるので、汎用マイコン43はオブジェクト描画コ
マンドを生成(ステップS72)し、生成したオブジェ
クト描画コマンドをコマンドデコーダ51に送信し、そ
の後の処理をハードウェア演算器52に実行(ステップ
S73)させ、オブジェクトカリング処理は終了され
る。ステップS71において、対象となるオブジェクト
が画面の外であると判定された場合、オブジェクトは表
示されないので、対象となるオブジェクトは省略され
る。
【0096】以上説明した、ジオメトリブロック31に
対する第1及び第2の描画コマンドを発行するメイン描
画プログラムが、図1のROM16内に格納される。更
に、ROM16内には、第1の画像処理コマンドに応答し
て、(1)与えられた制御点に対する曲線または曲面を
求め、当該曲線または曲面に沿ったポリゴンデータを生
成する曲線・曲面生成処理、(2)ポリゴンの発生位
置、変化方向を有するデータを与えられ、複数フレーム
におけるポリゴンを生成するパーティクル処理、(3)
光源の射影位置及び方向と、光源を遮る物体のデータを
与えられ、シャドーボリュームを構成するポリゴンを生
成するボリューム生成処理、(4)位置及び方向を含む
発生源データとそれに対する力学的データに従って動的
に変化するポリゴンを生成するダイナミクス処理、
(5)オブジェクトの基準サイズデータとそれを拡大縮
小するスケールデータ及びオフセットデータから、オブ
ジェクトの詳細度データを生成するLOD処理、(6)オ
ブジェクトの位置と形状、サイズデータから、当該オブ
ジェクトが表示画面外に位置するか否かを検出するオブ
ジェクトカリング処理、のうちのいずれか一つの処理を
ジオメトリブロック31内のマイクロコンピュータ43
に実行させるサブルーチンプログラムも格納される。こ
れらのサブルーチンプログラムは、電源投入時にマイク
ロコンピュータ43にバス45を介して接続されるロー
カルRAM44にダウンロードされ、マイクロコンピュー
タ43にによって実行される。また、第2の画像処理コ
マンドは、上記した通り、ハードウェア演算器52によ
り処理される。
【0097】尚、本発明の保護範囲は、上記の実施の形
態に限定されず、特許請求の範囲に記載された発明とそ
の均等物に及ぶものである。
【0098】
【発明の効果】以上の如く、本発明によれば、ジオメト
リブロックを専用ハードウェア演算器と汎用マイクロコ
ンピュータとを含む構成とし、比較的使用頻度が高く高
速性が要求される機能については専用ハードウェア演算
器で処理し、比較的使用頻度が低く高度な演算または柔
軟性が要求される機能については汎用マイクロコンピュ
ータで処理するようにしたので、ジオメトリブロックの
回路規模を小さくしつつ、高い機能を維持することがで
きる。また、頻度が高い機能を専用ハードウェア演算器
で実現させたので、全体の処理速度を上げることができ
る。
【図面の簡単な説明】
【図1】本発明を適用した画像処理装置1の一実施の形
態の構成を示すブロック図である。
【図2】図1のジオメトリブロック31の構成例を示す
図である。
【図3】図1の画像処理部18の処理動作を説明するた
めのフローチャートである。
【図4】図2の専用ハードウェア演算器52の構成例を
示す図である。
【図5】座標変換を行う場合のマトリクス演算器63の
構成を示す図である。
【図6】補間演算を行う場合のマトリクス演算器63の
構成を示す図である。
【図7】ポリゴンの細分化と重み付け補間を説明するた
めの図である。
【図8】六面体の細分化と補間を説明するための図であ
る。
【図9】汎用マイコン43のハードウェアの構成例を示
す図である。
【図10】汎用マイコン43の処理動作を説明するため
のフローチャートである。
【図11】曲線・曲面生成処理を説明するための図であ
る。
【図12】曲線・曲面生成処理のコマンド例を示す図で
ある。
【図13】汎用マイコン43におけるコマンド処理の第
1例(曲線・曲面生成処理)を説明するためのフローチ
ャートである。
【図14】パーティクル処理を説明するための図であ
る。
【図15】パーティクル処理のコマンド例を示す図であ
る。
【図16】汎用マイコン43におけるコマンド処理の第
2例(パーティクル処理)を説明するためのフローチャ
ートである。
【図17】ボリューム生成処理を説明するための図であ
る。
【図18】ボリューム生成処理のコマンド例を示す図で
ある。
【図19】汎用マイコン43におけるコマンド処理の第
3例(ボリューム生成処理)を説明するためのフローチ
ャートである。
【図20】ダイナミクス処理を説明するための図であ
る。
【図21】ダイナミクス処理のコマンド例を示す図であ
る。
【図22】汎用マイコン43におけるコマンド処理の第
4例(ダイナミクス処理)を説明するためのフローチャ
ートである。
【図23】オブジェクトLOD処理のコマンド例を示す図
である。
【図24】汎用マイコン43におけるコマンド処理の第
5例(オブジェクトLOD処理)を説明するためのフロー
チャートである。
【図25】オブジェクトカリング処理のコマンド例を示
す図である。
【図26】汎用マイコン43におけるコマンド処理の第
6例(オブジェクトカリング処理)を説明するためのフ
ローチャートである。
【符号の説明】
1 画像処理装置 17 メインCPU 31 ジオメトリブロック 41 ジオメトリコマンドRAM 42 ジオメトリプロセッサ 43 汎用マイクロコンピュータ 44 ローカルRAM 51 コマンドデコーダ 52 専用ハードウェア演算器 53 結果出力インタフェース 54 マイコンインタフェース

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 ジオメトリ演算処理を実行するジオメト
    リブロックを有する画像処理装置において、 前記ジオメトリブロックは、比較的使用頻度が高く高速
    性が要求される処理を行う回路を有する専用ハードウェ
    ア演算器と、比較的使用頻度が低く高度な演算または柔
    軟性が要求される処理をソフトウェアによって実行する
    マイクロコンピュータとを有し、前記専用ハードウェア
    演算器は少なくともマトリクス演算器を有することを特
    徴とする画像処理装置。
  2. 【請求項2】 前記比較的使用頻度が高く高速性が要求
    される処理は、少なくとも、マトリクス演算処理、頂点
    の補間演算処理、パースペクティブ変換処理、及びクリ
    ッピング処理のうちのいずれか1つであり、前記比較的
    使用頻度が低く高度な演算または柔軟性が要求される処
    理は、少なくとも、曲線・曲面生成処理、パーティクル
    処理、ボリューム生成処理、ダイナミクス処理、オブジ
    ェクトLOD処理、及びオブジェクトカリング処理のうち
    のいずれか1つであることを特徴とする請求項1に記載
    の画像処理装置。
  3. 【請求項3】 前記ジオメトリブロックは、前記専用ハ
    ードウェア演算器で処理する処理コマンドと前記マイク
    ロコンピュータで処理する処理コマンドを振り分けるコ
    マンドデコーダと、 前記専用ハードウェア演算器での処理結果と前記マイク
    ロコンピュータでの処理結果とを統合して出力する結果
    出力インタフェースとを更に有することを特徴とする請
    求項1または2に記載の画像処理装置。
  4. 【請求項4】 前記マイクロコンピュータは、メインの
    シーケンスを制御するメインCPUとは別のものであるこ
    とを特徴とする請求項1、2、または3に記載の画像処
    理装置。
  5. 【請求項5】 画像処理コマンドに応答して、ポリゴン
    の頂点データに対するマトリクス演算及び透視変換を有
    するジオメトリ演算処理を行うジオメトリブロックにお
    いて、 前記画像処理コマンドをデコードするコマンドデコーダ
    と、 前記コマンドデコーダから供給される第1の画像処理コ
    マンドに応答して、当該第1の画像処理コマンドに対応
    するプログラムを実行して前記ポリゴンの頂点データを
    有する描画コマンドを生成するマイクロコンピュータ
    と、 前記コマンドデコーダ又は前記マイクロコンピュータか
    ら供給され、前記ポリゴンの頂点データを有する描画コ
    マンドを含む第2の画像処理コマンドに応答して、前記
    ポリゴンの位置情報を有する変換マトリクスと前記頂点
    データに対して前記マトリクス演算を行い、更に三次元
    座標から二次元座標への透視変換を行う専用ハードウェ
    ア演算器とを有することを特徴とするジオメトリブロッ
    ク。
  6. 【請求項6】 請求項5において、 前記第1の画像処理コマンドには、少なくとも (1)与えられた制御点に対する曲線または曲面を求
    め、当該曲線または曲面に沿ったポリゴンデータを生成
    する曲線・曲面生成処理、 (2)ポリゴンの発生位置、変化方向を有するデータを
    与えられ、複数フレームにおけるポリゴンを生成するパ
    ーティクル処理、 (3)光源の射影位置及び方向と、光源を遮る物体のデ
    ータを与えられ、シャドーボリュームを構成するポリゴ
    ンを生成するボリューム生成処理、 (4)位置及び方向を含む発生源データとそれに対する
    力学的データに従って動的に変化するポリゴンを生成す
    るダイナミクス処理、 (5)オブジェクトの基準サイズデータとそれを拡大縮
    小するスケールデータ及びオフセットデータから、オブ
    ジェクトの詳細度データを生成するオブジェクトLOD処
    理、 (6)オブジェクトの位置と形状、サイズデータから、
    当該オブジェクトが表示画面外に位置するか否かを検出
    するオブジェクトカリング処理のうちのいずれか一つの
    処理コマンドを有することを特徴とするジオメトリブロ
    ック。
  7. 【請求項7】 請求項5において、 前記専用ハードウェア演算器は、第1のマトリクスデー
    タが供給されるベクトルバスと第2のマトリクスデータ
    が供給されるマトリクスバスとに接続され、前記第1及
    び第2のマトリクスデータを乗算するマトリクス演算器
    を有し、座標変換処理時には、前記ベクトルバスに座標
    変換対象データを供給し、前記マトリクスバスに座標変
    換マトリクスを供給し、補間演算時には、前記ベクトル
    バスに混合比率を供給し、前記マトリクスバスに補間演
    算対象データを供給するデータ供給手段を有することを
    特徴とするジオメトリブロック。
  8. 【請求項8】 画像処理コマンドに応答して、ポリゴン
    の頂点データに対するマトリクス演算及び透視変換を有
    するジオメトリ演算処理を行うジオメトリブロックであ
    って、第1の画像処理コマンドに応答して、当該第1の
    画像処理コマンドに対応するプログラムを実行して前記
    ポリゴンの頂点データを有する描画コマンドを生成する
    マイクロコンピュータと、前記ポリゴンの頂点データを
    有する描画コマンドを含む第2の描画処理コマンドに応
    答して、前記ポリゴンの位置情報を有する変換マトリク
    スと前記頂点データに対して前記マトリクス演算を行う
    ハードウェア演算器とを有するジオメトリブロックに対
    する描画プログラムを記録した記録媒体において、 前記第1の画像処理コマンド及び第2の描画処理コマン
    ドをコンピュータ発生させるメイン描画プログラムコー
    ドと、 前記第1の画像処理コマンドに応答して、 (1)与えられた制御点に対する曲線または曲面を求
    め、当該曲線または曲面に沿ったポリゴンデータを生成
    する曲線・曲面生成処理、 (2)ポリゴンの発生位置、変化方向を有するデータを
    与えられ、複数フレームにおけるポリゴンを生成するパ
    ーティクル処理、 (3)光源の射影位置及び方向と、光源を遮る物体のデ
    ータを与えられ、シャドーボリュームを構成するポリゴ
    ンを生成するボリューム生成処理、 (4)位置及び方向を含む発生源データとそれに対する
    力学的データに従って動的に変化するポリゴンを生成す
    るダイナミクス処理、 (5)オブジェクトの基準サイズデータとそれを拡大縮
    小するスケールデータ及びオフセットデータから、オブ
    ジェクトの詳細度データを生成するLOD処理、 (6)オブジェクトの位置と形状、サイズデータから、
    当該オブジェクトが表示画面外に位置するか否かを検出
    するオブジェクトカリング処理のうちのいずれか一つの
    処理を前記マイクロコンピュータに実行させるサブルー
    チンコードを有することを特徴とする描画プログラムを
    記録した記録媒体。
JP30327899A 1999-10-26 1999-10-26 画像処理装置 Withdrawn JP2001126083A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30327899A JP2001126083A (ja) 1999-10-26 1999-10-26 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30327899A JP2001126083A (ja) 1999-10-26 1999-10-26 画像処理装置

Publications (1)

Publication Number Publication Date
JP2001126083A true JP2001126083A (ja) 2001-05-11

Family

ID=17919049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30327899A Withdrawn JP2001126083A (ja) 1999-10-26 1999-10-26 画像処理装置

Country Status (1)

Country Link
JP (1) JP2001126083A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188502A (ja) * 2006-01-11 2007-07-26 Samsung Electronics Co Ltd パーティクルのレンダリング方法およびシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188502A (ja) * 2006-01-11 2007-07-26 Samsung Electronics Co Ltd パーティクルのレンダリング方法およびシステム

Similar Documents

Publication Publication Date Title
US8144158B2 (en) Display system having floating point rasterization and floating point framebuffering
JP3021368B2 (ja) 画素の法線ベクトルを用いたバンプマッピングレンダリング方法及びそれを具現するレンダリング装置
JP4678963B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
US7256781B2 (en) Image processing apparatus and method of same
US5956042A (en) Graphics accelerator with improved lighting processor
JP3453119B2 (ja) 情報記憶媒体及びゲーム装置
US5892516A (en) Perspective texture mapping circuit having pixel color interpolation mode and method thereof
JPH0935084A (ja) 画像情報処理装置及び画像情報処理方法
JP2001126083A (ja) 画像処理装置
JPH11212955A (ja) 演算装置および画像処理装置
JP3979162B2 (ja) 画像処理装置およびその方法
JP2004317878A (ja) グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム
JPH06266852A (ja) 画像合成装置
JP4886691B2 (ja) 多層反射シェーディング画像生成方法及びコンピュータ
JPH06301792A (ja) テクスチャマッピング装置
JP2002245469A (ja) 演算装置、演算処理方法及び画像処理装置
JP3556517B2 (ja) 3次元画像処理装置
JP4106719B2 (ja) 画像処理装置
JP4483026B2 (ja) 図形情報変換装置、図形情報変換方法及び記録媒体
JPH11306381A (ja) グラフィック演算装置およびその方法
JP2006163532A (ja) 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法
JP2001118049A (ja) マトリクス演算器を有する画像処理装置
JP4698894B2 (ja) グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム
JP4554834B2 (ja) 画像処理装置及び方法並びにそのプログラム
JPH10222690A (ja) 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070109