JP3645024B2 - 描画装置及び描画方法 - Google Patents
描画装置及び描画方法 Download PDFInfo
- Publication number
- JP3645024B2 JP3645024B2 JP02033296A JP2033296A JP3645024B2 JP 3645024 B2 JP3645024 B2 JP 3645024B2 JP 02033296 A JP02033296 A JP 02033296A JP 2033296 A JP2033296 A JP 2033296A JP 3645024 B2 JP3645024 B2 JP 3645024B2
- Authority
- JP
- Japan
- Prior art keywords
- texture
- polygon
- processing
- data
- command
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータを用いた映像機器であるグラフィックコンピュータ、特殊効果装置、ビデオゲーム機等に用いられる描画装置及び描画方法に関する。
【0002】
【従来の技術】
従来、家庭用TVゲーム機やパーソナルコンピュータあるいはグラフィックコンピュータなどにおいて、テレビジョン受像機やモニタ受像機あるいは陰極線管(CRT: Cathode Ray Tube)ディスプレイ装置などに出力して表示する画像のデータすなわち表示出力画像データを生成する画像生成装置では、央演算処理装置(CPU: Central Processing Unit)とフレームバッファの間に専用の描画装置を設けることにより、高速処理を可能にしている。
【0003】
すなわち、上記画像生成装置において、CPU側では、画像を生成する際に、直接フレームバッファをアクセスするのではなく、座標変換やクリッピング、光源計算等のジオメトリ処理を行い、3角形や4角形などの基本的な単位図形(ポリゴン)の組み合わせとして3次元モデルを定義して3次元画像を描画するための描画命令を作成し、その描画命令を描画装置に送る。例えば、3次元のオブジェクトを表示する場合は、オブジェクトを複数のポリゴンに分解して、各ポリゴン対応する描画命令をCPUから描画装置に転送する。そして、描画装置は、CPUから送られてきた描画命令を解釈して、頂点の色データと奥行きを示すZ値から、ポリゴンを構成する全ての画素の色とZ値を考慮して、画素データをフレームバッファに書き込むレンダリング処理を行い、フレームバッファに図形を描画する。なお、上記Z値は、視点からの奥行き方向の距離を示す情報である。
【0004】
例えば、上記画像生成装置において、3次元のオブジェクトを表示する場合は、オブジェクトを複数のポリゴンに分解して、各ポリゴンに対応する描画命令をCPUから描画装置に転送する。この際に、オブジェクトをより実際に近く表現するするために、テクスチャマッピングやミップマッピングと呼ばれる手法が採用されている。さらに、色変換データを記憶したカラールックアップテーブル(CLUT:Color Lock Up Table)を介して画像の色データを変換することにより、表示色を変化させる手法も広く知られている。
【0005】
ここで、テクスチャマッピングとは、テクスチャソース画像として別に用意された2次元画像(絵柄)すなわちテクスチャパターンを物体を構成するポリゴンの表面に張り付ける技術である。また、ミップマッピングは、3次元モデルに近づいたり、そから遠ざかった場合に、ポリゴンの張り付ける絵柄が不自然にならないように画素データを補間するようにしたテクスチャマッピングの手法の1つである。
【0006】
【発明が解決しようとする課題】
ところで、画像の描画速度は、描画エンジンにおける各ポリゴンに対するテクスチャマッピングやミップマッピング等の処理速度に依存する。また、画像の描画速度は、描画エンジンからフレームバッファへの書き込み速度に影響され、フレームバッファのアクセス速度が遅いと描画速度が低下することになる。従って、描画速度を高めるために高価な高速メモリを大容量のフレームバッファに用いることはシステムの価格の高騰につながり、安価なダイナミックランダムアクセスメモリ(DRAM: Dynamic Random Access Memory)等のメモリを用いるとシステムの描画速度が遅くなる、という欠点がある。
【0007】
そこで、本発明は、上述したような実情に鑑みてなされたものであり、次のような目的を有する。
【0008】
すなわち、本発明の目的は、安価なDRAM等のメモリをフレームバッファとして用いても、描画速度を高速に維持できるような描画装置及び描画方法を提供することにある。
【0009】
また、本発明の他の目的は、描画手段によりテクスチャマッピング処理を行う描画装置において、描画手段を停止させることなく描画処理を行うことができるようにした描画装置及び描画方法を提供することにある。
【0010】
さらに、本発明の他の目的は、描画手段によりミップマッピング処理を行う描画装置において、テクスチャメモリのアクセス回数及びアクセス時間を減らして、全体の描画速度を上げることができるようにした描画装置及び描画方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明に係る描画装置は、描画対象となる図形の頂点のテクスチャ座標が含まれた描画命令の入力を受け付ける命令受付手段と、ミップマップによるテクスチャマッピングを伴う上記図形の描画処理を行う描画手段と、この描画手段とパイプラインで構成された前処理手段とを有し、上記前処理手段は、上記命令受付手段で受け付けた描画命令を上記描画手段よりも先読みし、所定のメモリ領域に保持されている複数のテクスチャデータから上記先読みした描画命令に基づいて上記描画手段が上記図形にミップマッピングするうえで必要となる解像度に対応するテクスチャデータのみを選択し、選択したテクスチャデータを上記描画手段がアクセス可能なテクスチャキャッシュに転送することを特徴とする。
【0013】
また、本発明に係る描画方法は、ミップマップによるテクスチャマッピングを伴う図形の描画処理を行う描画手段、及び、この描画手段とパイプラインで構成された前処理手段を有する描画装置により実行される描画方法であって、上記前処理手段が、描画対象となる図形の頂点のテクスチャ座標が含まれた描画命令を上記描画手段よりも先読みし、所定のメモリ領域に保持されている複数のテクスチャデータから上記先読みした描画命令に基づいて上記描画手段が上記図形にミップマッピングするうえで必要となる解像度に対応するテクスチャデータのみを選択し、選択したテクスチャデータを上記描画手段がアクセス可能なテクスチャキャッシュに転送する段階と、上記描画手段が、上記テクスチャキャッシュにキャッシュされているテクスチャデータによりテクスチャマッピングを行い、これにより生成された上記図形の画素データを所定の画像メモリに描画する段階とを有することを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について、図面を参照しながら説明する。
【0016】
本発明に係る描画装置は、例えば図1に示すような構成のビデオゲーム装置に適用される。本発明に係る描画方法は、このビデオゲーム装置において実施される。
【0017】
このビデオゲーム装置は、例えば光学ディスク等の補助記憶装置に記憶されているゲームプログラムを読み出して実行することにより、使用者からの指示に応じてゲームを行うものであって、図1に示すような構成を有している。
【0018】
すなわち、このビデオゲーム装置は、2種類のバスすなわち、メインバス1とサブバス2を備える。
【0019】
上記メインバス1とサブバス2は、バスコントローラ10を介して接続されている。
【0020】
そして、上記メインバス1には、マイクロプロセッサなどからなる主中央演算処理装置(メインCPU:Central Processing Unit)11、ランダムアクセスメモリ(RAM: Random Access Memory)からなる主記憶装置(メインメモリ)12、主ダイナミックメモリアクセスメモリコントローラ(メインDMAC:Dinamic Memory Access Controller)13、MPEGデコーダ(MDEC:MPEG Decorder)14及び画像処理装置(GPU:Graphic Processing Unit)15が接続されている。また、上記サブバス2には、マイクロプロセッサなどからなる副中央演算処理装置(サブCPU:Central Processing Unit)21、ランダムアクセスメモリ(RAM:Random Access Memory)からなる副記憶装置(サブメモリ)22、副ダイナミックメモリアクセスメモリコントローラ(サブDMAC:Dinamic Memory Access Controller )23、オペレーティングシステム等のプログラムが格納されたリードオンリーメモリ(ROM: Read Only Memory)24、音声処理装置(SPU:Sound Processing Unit)25、通信制御部(ATM:Asynchronous Transimission mode)26、補助記憶装置27及び入力デバイス28が接続されている。
【0021】
上記バスコントローラ10は、メインバス1とサブバス2との間のスイッチングを行う上記メインバス1上のデバイスであって、初期状態ではオープンになっている。
【0022】
また、上記メインCPU11は、上記メインメモリ12上のプログラムで動作する上記メインバス1上のデバイスである。このメインCPU11は、起動時には上記バスコントローラ10がオープンになっていることにより、上記サブバス2上のROM24からブートプログラムを読み込んで実行し、補助記憶装置27からアプリケーションプログラム及び必要なデータを上記メインメモリ12や上記サブバス2上のデバイスにロードする。このメインCPU11には、座標変換等の処理を行うジオミトリトランスファエンジン(GTE:Geometry Transfer Engine )17が搭載されている。上記GTE17は、例えば複数の演算を並列に実行する並列演算機構を備え、上記メインCPU11からの演算要求に応じて座標変換,光源計算,行列あるいはベクトルなどの演算を高速に行う。そして、上記メインCPU11は、上記GTE17による演算結果に基づいて3角形や4角形などの基本的な単位図形(ポリゴン)の組み合わせとして3次元モデルを定義して3次元画像を描画するための各ポリゴンに対応する描画命令を作成し、この描画命令をパケット化してコマンドパケットとして上記GPU15に送る。
【0023】
また、上記メインDMAC13は、メインバス1上のデバイスを対象とするDMA転送の制御等を行う上記メインバス1上のデバイスである。このメインDMAC13は、、上記バスコントローラ10がオープンになっているときにはサブバス2上のデバイスも対象とする。
【0024】
また、上記GPU15は、レンダリングプロセッサとして機能する上記メインバス1上のデバイスである。このGPU15は、メインCPU11又はメインDMAC13からコマンドパケットとして送られてきた描画命令を解釈して、頂点の色データと奥行きを示すZ値から、ポリゴンを構成する全ての画素の色とZ値を考慮して、画素データをフレームバッファ18に書き込むレンダリング処理を行う。
【0025】
また、上記MDEC14は、CPUと並列に動作可能なI/O接続デバイスであって、画像伸張エンジンとして機能する上記メインバス1上のデバイスである。このMPEGデコーダ(MDEC: )14は、離散コサイン変換などの直行変換により圧縮されて符号化された画像データを復号化する。
【0026】
また、上記サブCPU21は、上記サブメモリ22上のプログラムで動作する上記サブバス2上のデバイスである。
【0027】
また、上記サブDMAC23は、サブバス2上のデバイスを対象とするDMA転送の制御等を行う上記サブバス2上のデバイスである。このサブDMAC23は、上記バスコントローラ10がクローズなっているときにのみバス権利を獲得することができる。
【0028】
また、上記SPU25は、サウンドロセッサとして機能する上記サブバス2上のデバイスである。このSPU25は、上記サブCPU21又はサブDMAC23からコマンドパケットとして送られてくるサウンドコマンドに応じて、サウンドメモリ29から音声データ読み出して出力する。
【0029】
また、上記ATM26は、サブバス2上の通信用デバイスである。
【0030】
また、上記補助記憶装置27は、サブバス2上のデータ入力デバイスであって、ディスクドライブなどからなる。
【0031】
さらに、上記入力デバイス28は、サブバス2上のコントロールパッド、マウスなどのマンマシンインターフェースや、画像入力、音声入力などの他の機器からの入力用デバイスである。
【0032】
すなわち、このビデオゲーム装置では、座標変換やクリッピング、光源計算等のジオメトリ処理を行い、3角形や4角形などの基本的な単位図形(ポリゴン)の組み合わせとして3次元モデルを定義して3次元画像を描画するための描画命令を作成し、各ポリゴンに対応する描画命令をコマンドパケットとしてメインバス1に送出するジオメトリ処理系が上記メインバス1上のメインCPU11及びGTU17などにより構成され、上記ジオメトリ処理系からの描画命令に基づいて各ポリゴンの画素データを生成してフレームバッファ18に書き込むレンダリング処理を行い、フレームバッファ18に図形を描画するレンダリング処理系が上記GPU15により構成されている。
【0033】
以下、上述したGPU15について具体的に説明する。
【0034】
上記GPU15は、その具体的な構成を図2に示してあるように、上記メインバス1に接続されたパケットエンジン31を備え、上記メインCPU11又はメインDMAC13から上記メインバス1を介して上記パケットエンジン31にコマンドパケットとして送られてくる描画命令に従って、プリプロセッサ32と描画エンジン33により各ポリゴンの画素データを上記フレームバッファ18に書き込むレンダリング処理を行い、上記フレームバッファ18に描画された画像の画素データを読み出して表示制御部(CRTC:CRT Controler)34を介してビデオ信号として図示しないテレビジョン受像機やモニタ受像機に供給するようになっている。
【0035】
上記パケットエンジン31は、上記メインCPU11又はメインDMAC13から上記メインバス1を介して送られてくるコマンドパケットを上記パケットエンジン31により図示しないレジスタ上に展開する。
【0036】
また、上記プリプロセッサ32は、上記パケットエンジン31にコマンドパケットとして送られてきた描画命令に従ってポリゴンデータを生成して後述するポリゴンの分割処理などの所定の前処理をポリゴンデータに施し、上記描画エンジン33が必要とする各ポリゴンの頂点座標情報、テクスチャやミップマップテクスチャのアドレス情報、ピクセルインターリーブの制御情報などの各種データを生成する。
【0037】
さらに、上記描画エンジン33は、上記プリプロセッサ32に接続されたN個のポリゴンエンジン33A1,33A2・・・33ANと、各ポリゴンエンジン33A1,33A2・・・33ANに接続されたN個のテクスチャエンジン33B1,33B2・・・33BNと、各テクスチャエンジン33B1,33B2・・・33BNに接続された第1のバススイッチャ33Cと、この第1のバススイッチャ33Cに接続されたM個のピクセルエンジン33D1,33D2・・・33DMと、各ピクセルエンジン33D1,33D2・・・33DMに接続された第2のバススイッチャ33Eと、この第2のバススイッチャ33Eに接続されたテクスチャキャッシュ33Fと、このテクスチャキャッシュ33Fに接続されたCLUTキャッシュ33Gを備える。
【0038】
この描画エンジン33において、上記N個のポリゴンエンジン33A1,33A2・・・33ANは、上記プリプロセッサ32により前処理が施されたポリゴンデータに基づいて、上記N個のポリゴンエンジン33A1,33A2・・・33ANは、描画命令に応じたポリゴンを順次生成してポリゴン毎にシェーディング処理などを並列処理により行う。
【0039】
また、上記N個のテクスチャエンジン33B1,33B2・・・33BNは、上記ポリゴンエンジン33A1,33A2・・・33ANにより生成されたポリゴン毎に、上記テクスチャキャッシュ33Fからカラールックアップテーブル(CLUT:Color Lock Up Table)キャッシュ33Gを介して与えられるテクスチャデータに基づいて、テクスチャマッピング処理やミップマップ処理を並列処理により行う。
【0040】
ここで、上記テクスチャキャッシュ33Fには、上記N個のテクスチャエンジン33B1,33B2・・・33BNが処理するポリゴンに張り付けるテクスチャやミップマップテクスチャのアドレス情報が上記プリプロセッサ32から事前に与えられ、上記アドレス情報に基づいて上記フレームバッファ18上のテクスチャ領域からテクスチャマッピング処理に必要なテクスチャデータが転送されるとともに、該当するテクスチャデータからミップマッピング処理に必要となる解像度のデータのみが選択されてミップマップテクスチャデータとして転送される。さらに、上記CLUTキャッシュ33Gには、上記ポリゴンの描画を行なう際に参照すべきCLUTデータが上記フレームバッファ18上のCLUT領域から転送される。
【0041】
上記N個のテクスチャエンジン33B1,33B2・・・33BNによりテクスチャマッピング処理やミップマップ処理が施されたポリゴンデータは、上記第1のバススイッチャ33Cを介してM個のピクセルエンジン33D1,33D2・・・33DMに転送される。
【0042】
上記M個のピクセルエンジン33D1,33D2・・・33DMは、Zバッファ処理やアンチエリアシング処理等の各種画像処理を並列処理により行い、M個の画素データを生成する。
【0043】
そして、上記M個のピクセルエンジン33D1,33D2・・・33DMで生成されたM個の画素データは、この第2のバススイッチャ33Eを介して上記フレームバッファ18に書き込まれる。
【0044】
ここで、上記第2のバススイッチャ33Eは、上記プリプロセッサ32からピクセルインターリーブの制御情報が供給されており、上記M個のピクセルエンジン33D1,33D2・・・33DMで生成されたM個の画素データのうちのL個の画素データを上記制御情報に基づいて選択することにより、上記フレームバッファ18上に描画するポリゴンの形状に応じたM個の記憶場所をアクセス単位として画素データをM個づつ書き込むピクセルインターリーブ処理を行う機能を有している。
【0045】
上記描画エンジン33は、上記プリプロセッサ32により前処理が施されたポリゴンデータに基づいて、各ポリゴンの全ての画素データを生成して上記フレームバッファ18に書き込むことにより、上記描画命令によりポリゴンの組合せとして定義された画像を上記フレームバッファ18上に描画する。そして、上記フレームバッファ18に描画された画像の画素データを読み出してCRTC34を介してビデオ信号として図示しないテレビジョン受像機やモニタ受像機に供給する。
【0046】
このような構成のGPU15において、上記プリプロセッサ32は、例えば、ポリゴンの頂点座標[(X0,Y0),(X1,Y1),(X2,Y2)]及び各頂点のテクスチャ座標[(U0,V0),(U1,V1),(U2,V2)]に基づいて、上記N個のテクスチャエンジン33B1,33B2・・・33BNが処理するポリゴンに貼り付けるテクスチャの先読みを行うためのアドレス情報を生成し、また、ポリゴンの辺の傾き[(X1−X0)/(Y1−Y0),(X2−X0)/(Y2−Y0),(X1−X2)/(Y1−Y2)]、テクスチャアドレスの傾き[(U1−U0)/(Y1−Y0),(U2−U0)/(Y2−Y0),(U1−U2)/(Y1−Y2)],[(V1−V0)/(Y1−Y0),(V2−V0)/(Y2−Y0),(V1−V2)/(Y1−Y2)]・・・、ポリゴンの面積などからミップマップの選択情報を再生して、これらの情報をテクスチャキャッシュ33Fに供給する。
また、ポリゴンの頂点座標[(X0,Y0),(X1,Y1),(X2,Y2)]を左エッジの頂点順(X0,Y0)→(X1,Y1)→(X2,Y2)又は右エッジの頂点順(X2,Y2)→(X1,Y1)→(X0,Y0)でソーティングしたり、両端点のスキャンやテクスチャアドレスのスキャンを行う。
【0047】
そして、上記プリプロセッサ32は、ポリゴンデータを前処理した情報を図示しないワークメモリに蓄えておき、描画エンジン33が次のポリゴンを処理できるようにになった段階で、1ポリゴンを処理できる情報をワークメモリから上記N個のポリゴンエンジン33A1,33A2・・・33ANに転送する。これにより、上記描画エンジン33は、新たなポリゴンの描画処理を開始する。
【0048】
すなわち、このGPU15では、その基本的な構成を図3に示すように、上記プリプロセッサ32と描画エンジン33でパイプラインにより描画処理を行い、描画命令によりポリゴンの組合せとして定義された画像を上記フレームバッファ18上に描画する。
【0049】
このパイプライン処理による描画処理を再度説明する。
【0050】
上記プリプロセッサ32は、上述のようにポリゴンデータに所定前処理を施し、上記描画エンジン33が必要とする各ポリゴンの頂点座標情報、テクスチャやミップマップテクスチャのアドレス情報、ピクセルインターリーブの制御情報などの各種データを上記描画エンジン33に供給する。
【0051】
上記描画エンジン33は、上記プリプロセッサ32からデータを受け取り、必要とするテクスチャデータをテクスチャキャッシュ33Fから読み出し、画素データを生成して上記フレームバッファ18に書き込む。上記テクスチャキャッシュ33Fは、上記プリプロセッサ32における前処理により算出された必要とするテクスチャアドレスに対応するテクスチャ領域のテクスチャデータを上記フレームバッファ18から読み出す。テクスチャデータの読み出しは、描画エンジン33が実際に必要とする前に完了するように行われる。また、ミップマッピング処理で必要とする解像度に対応するテクスチャデータのみを上記テクスチャ領域から読み込むことにより、上記テクスチャ領域のアクセス回数を減らすことができる。
【0052】
なお、上記テクスチャキャッシュ33F内のデータ構造は、その一例を図4に示してあるように、テクスチャアドレスからなるタグ部TAG、必要となるテクスチャデータが格納されておいる格納部DATA、未だテクスチャデータが使用されていないことを示すフラグLを有する。そして、上記テクスチャキャッシュ33は、フラグLがリセットされたエントリを使用すべく、上記フレームバッファ18のテクスチャ領域からテクスチャデータを読み込み、そのフラグLをセットする。描画エンジン33は、フラグLがセットされているエントリから該当するテクスチャデータを読み出して描画処理を行い、描画を終了してそのテクスチャデータをもはや必要としなくなった段階でそのエントリのフラグlをリセットする。
【0053】
このようにテクスチャマッピング処理を行う描画装置において、プリプロセッサ32と描画エンジン33をパイプラインで構成し、テクスチャメモリすなわち上記フレームバッファ18上のテクスチャ領域から上記描画エンジン33が必要とするテクスチャデータを上記プリプロセッサ32による前処理の段階でキャッシュメモリ33Fに転送することによって、上記描画エンジン33を停止させることなく描画処理を行うことができる。また、ミップマッピング処理で必要とする解像度に対応するテクスチャデータのみを上記テクスチャ領域から読み込むことにより、上記テクスチャ領域のアクセス回数及びアクセス時間を減らすことができ、全体の描画速度を上げることができる。
【0054】
なお、上記プリプロセッサ32におけるポリゴンの分割処理は、例えば図5のに示すフローチャートに従って行われる。
【0055】
すなわち、ポリゴンの分割処理は、ポリゴンの数を示すポリゴンカウントCを1に初期設定して開始される。
【0056】
そして、第1の処理ステップS1では、ポリゴンを分割する必要があるか否かの判定処理を行う。この処理ステップS1における判定処理では、例えば、描画エンジン33においてこれから処理するポリゴンがテクスチャキャッシュ33F内に収まる否かを判定する。この判定処理は、例えばポリゴンの頂点のテクスチャ座標[(U0,V0),(U1,V1),(U2,V2)]を算出して、全てが1テクスチャページ内に収まっているか否かを判定すればよい。
【0057】
そして、上記処理ステップS1における判定結果が「NO」すなわちポリゴンを分割する必要がある場合には、次の処理ステップS2に進んで、ポリゴンのN分割処理を行う。この処理ステップS2におけるポリゴンのN分割処理は、例えば次に示すように、ポリゴンの全ての辺を中点で分割することにより行われる。
【0058】
X0’=(X0+X1)/2
Y0’=(Y0+Y1)/2
Z0’=(Z0+Z1)/2
X1’=(X1+X2)/2
Y1’=(Y1+Y2)/2
Z1’=(Z1+Z2)/2
X2’=(X2+X0)/2
Y2’=(Y2+Y0)/2
Z2’=(Z2+Z0)/2
U0’=(U0+U1)/2
V0’=(V0+V1)/2
Z0’=(Z0+Z1)/2
U1’=(U1+U2)/2
V1’=(V1+V2)/2
Z1’=(Z1+Z2)/2
U2’=(U2+U0)/2
V2’=(V2+V0)/2
Z2’=(Z2+Z0)/2
R0’=(R0+R1)/2
G0’=(G0+G1)/2
B0’=(B0+B1)/2
R1’=(R1+R2)/2
G1’=(G1+G2)/2
B1’=(B1+B2)/2
R2’=(R2+R0)/2
G2’=(G2+G0)/2
B2’=(B2+B0)/2
すなわち、この処理ステップS2におけるポリゴンのN分割処理では、ポリゴンの全ての辺を中点で分割することにより、例えば三角形のポリゴンはN=4個の新たなポリゴンに分割される。
【0059】
次の処理ステップS2では、ポリゴンカウントCをC=C+N−1としてポリゴンの数を変更する。そして、最初の処理ステップS1に戻り、分割された新たなポリゴンをさらに分割する必要があるか否かの判定処理を行い、分割した新たなポリゴンが上記テクスチャキャシュ内に収まるようになるまで、上記各処理ステップS1〜S3を繰り返し行う。
【0060】
また、上記処理ステップS1における判定結果が「YES」すなわちポリゴンを分割する必要がない場合には次の処理ステップS4に進む。
【0061】
この処理ステップS4では、ポリゴンエンジン33A1,33A2・・・33ANPに1ポリゴン分の前処理情報を渡して、レンダリング処理を開始させ、レンダリング処理の終了を待つことなく次の処理ステップS5に進む。
【0062】
この処理ステップS5では、ポリゴンカウントCをデクリメントする。
【0063】
次の処理ステップS6では、ポリゴンカウントCが「0」になったか否かの判定処理を行う。そして、この処理ステップS6における判定結果が「NO」すなわちC≠0で処理すべきポリゴンがある場合には最初の処理ステップS1に戻って、次のポリゴンの処理に入る。また、この処理ステップS6における判定結果が「YES」すなわち全てのポリゴンをレンダリングして分割すべきポリゴンが無くなれば、処理を終了する。
【0064】
すなわち、上記プリプロセッサ32では、描画エンジン33においてこれから処理するポリゴンがテクスチャキャッシュ33F内に収まる否か(以下、判定条件1という)を判定し、その判定結果に基づいて分割処理を行うことによって、分割した新たなポリゴンが上記テクスチャキャシュ33F内に収まるように上記描画命令に基づくポリゴンを複数に分割する。これにより、上記描画エンジン33において、テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるテクスチャデータに基づいてテクスチャマッピグ処理を確実且つ効率よく行うことができる。
【0065】
ここで、上記プリプロセッサ32におけるポリゴンの分割処理では、上述の最初の処理ステップS1においてポリゴン内の画素数が規定値以下であるか否か(以下、判定条件2という)によりポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、分割した新たなポリゴン内の画素数が上記規定値以下となるように処理ステップS2で上記描画命令に基づくポリゴンを2次元空間で複数に分割しても良い。これにより、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化することができる。なお、上記ポリゴン内の画素数は、例えば、そのポリゴンの頂点の外積値として面積を求め、その値が適正な値よりも小さいか否かにより判定することができる。
【0066】
また、上記プリプロセッサ32におけるポリゴンの分割処理では、上述の処理ステップS2において上記描画命令に基づくポリゴンを3次元空間で複数に分割するようにしても良い。
【0067】
この場合、上述の処理ステップS1において、ポリゴンの頂点のZ値の最小値と最大値との差が適正な範囲内に収まっているか否か(以下、判定条件3という)により、ポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、分割した新たなポリゴン内の画素数が上記規定範囲内に収まるように上記処理ステップS2で上記描画命令に基づくポリゴンを3次元空間で複数に分割して、1ポリゴンの大きさを制限することによって、テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるテクスチャデータに基づいてテクスチャの歪みの少ない状態でテクスチャマッピグ処理を行うことができる。
【0068】
また、この場合、上述の処理ステップS1において、ポリゴンの頂点のZ値の最小値と最大値で参照するミップマップテクスチャを跨いでいるか否か(以下、判定条件4という)によりポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、分割した新たなポリゴンがミップマップテクスチャを跨がないように、上記処理ステップS2で上記描画命令に基づくポリゴンを3次元空間で複数に分割して、1ポリゴンの参照するミップマップテクスチャの参照範囲を制限を制限することによって、テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるミップマップテクスチャデータに基づいてミップマッピング処理を効率よく行うことができる。
【0069】
さらに、この場合、上述の処理ステップS1において、ポリゴン内の画素数が規定値以下であるか否かにより、ポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、分割した新たなポリゴン内の画素数が上記規定値以下となるように上記描画命令に基づくポリゴンを上記処理ステップS2により3次元空間で複数に分割するようにしても良い。
【0070】
また、上述の処理ステップS1において、ポリゴンに対する描画エンジン33に描画処理時間を例えばポリゴン内の画素数に基づいて予測し、当該プリプロセッサ32による前処理時間と上記描画エンジン33による描画処理時間がバランスいるか否か(以下、判定条件5という)により、ポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、当該プリプロセッサ32による前処理時間と上記描画エンジン33による描画処理時間がバランスするように上記描画命令に基づくポリゴンを上記処理ステップS2で複数に分割するようにしても良い。これにより、上記プリプロセッサ32と描画エンジン33の各処理時間のバランスを保ち、上記プリプロセッサ32と描画エンジン33とパイプラインで構成して効率よく高速描画処理を行うことができる。
【0071】
また、上述の処理ステップS1において、描画エンジン33で処理するポリゴンがピクセルインターリーブ処理に適した形状であるか否か(以下、判定条件6という)により、ポリゴンを分割する必要があるか否かを判定し、その判定結果に基づいて、上記処理ステップS2により上記描画命令に基づくポリゴンをピクセルインターリーブ処理に適した形状の複数の新たなポリゴンに分割するようにしても良い。これにより、描画エンジン33でフレームバッファ18を効率よくアクセスして高速の描画処理を行うことができる。
【0072】
さらに、上述の処理ステップS1において、上述の各種判定条件を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが各種判定条件を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割するようにしても良い。
【0073】
すなわち、上述の処理ステップS1において、上記判定条件1と判定条件2を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが上記判定条件1と判定条件2を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割することにより、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化し、上記テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるテクスチャデータに基づいてテクスチャマッピグ処理を確実且つ効率よく行うことができる。
【0074】
また、上述の処理ステップS1において、上記判定条件1と判定条件3を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが上記判定条件1と判定条件3を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割することにより、上記テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるテクスチャデータに基づいてテクスチャの歪みの少ない状態でテクスチャマッピグ処理を確実且つ効率よく行うことができる。さらに、上記判定条件2を組み合わせるようにすれば、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化して、テクスチャマッピグ処理を行うことができる。
【0075】
また、上述の処理ステップS1において、上記判定条件1と判定条件4を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが上記判定条件1と判定条件4を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割することにより、上記テクスチャキャッシュ33FからCLUTチャッシュ33Gを介して読み出されるテクスチャデータに基づいて、ミップマッピング処理を確実且つ効率よく行うことができる。さらに、上記判定条件2や判定条件3を組み合わせて、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化したり、テクスチャの歪みを軽減するようにしても良い。
【0076】
また、上述の処理ステップS1において、上記判定条件1と判定条件5を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが上記判定条件1と判定条件5を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割することにより、上記プリプロセッサ32と描画エンジン33の各処理時間のバランスを保ちパイプラインで効率よく高速のテクスチャマッピグ処理を行うことができる。さらに、上記判定条件2や判定条件3を組み合わせて、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化したり、テクスチャの歪みを軽減するようにしても良い。上記判定条件4を組み合わせて、ミップマッピング処理を行うようにしても良い。
【0077】
さらに、上述の処理ステップS1において、上記判定条件1と判定条件6を組み合わせてポリゴンを分割する必要があるか否かを判定して、その判定結果に基づいて、分割した新たなポリゴンが上記判定条件1と判定条件6を満たすように上記描画命令に基づくポリゴンを上記処理ステップS2により複数に分割することにより、描画エンジン33でテクスチャマッピグ処理を確実且つ効率よく行UTOともに、フレームバッファ18を効率よくアクセスして高速の描画処理を行うことができる。さらに、上記判定条件2や判定条件3を組み合わせて、上記描画エンジン33において処理するポリゴンの大きさすなわち画素数を均等化したり、テクスチャの歪みを軽減するようにしても良い。上記判定条件4を組み合わせてミップマッピング処理を行うようにしたり、上記判定条件5を組み合わせてパイプラインによる高速化を図るようにしても良い。
【0078】
なお、上述した第2のバススイッチャ33Eにおけるピクセルインターリーブ処理は、次のようにして行われる。
【0079】
すなわち、第2のバススイッチャ33Eは、図6に示すように、上記図2に示したプリプロセッサ32の出力が供給される制御回路101と、制御回路101の出力が供給されるセレクタ102と、セレクタ102の出力が各々供給される複数のマルチプレクサ/デマルチプレクサ(MUX:Multiplexer/DMUX:Demultiplexer)103a,103b,103c,103d,・・・とを備えている。
【0080】
そして、MUX/DMUX103a,103b,103c,103d,・・・は、各々、上記図2に示したフレームバッファ18と描画エンジン33に接続されている。
【0081】
ここで、フレームバッファ18は、複数のメモリバンク[1],[2],・・・,[X],・・・,[L]からなり、複数のメモリバンク[1],[2],・・・,[X],・・・,[L]は、各々、16個のアドレスで現される矩形(以下、インターリーブパターンと言う。)の各アドレスを同時にアクセスすることができるようになされている。
【0082】
したがって、フレームバッファ18の、例えば、メモリバンク[X]は、アドレスA0 〜A15をアクセスするための16個の入出力ポートP0 〜P15を備えており、複数のMUX/DMUX103a,103b,103c,103d,・・・のうちの4個のMUX/DMUX103a,103b,103c,103dは、各々、16個の入出力ポートP0〜P15と接続されている。
【0083】
また、4個のMUX/DMUX103a,103b,103c,103dは、描画エンジン33の4個のピクセルエンジン33DX1,33DX2,33DX3,33DX4と対応して接続されている。
【0084】
なお、メモリバンク[X]以外の他の各メモリバンクは、上述したメモリバンク[X]と同様の構成をしているため、その詳細な説明は省略する。また、第2のバススイッチャ33Eが行う上記他の各メモリバンクに対するアクセス処理についても、後述する第2のバススイッチャ33Eが行うメモリバンク[X]に対するアクセス処理と同様であるため、以下の説明では、第2のバススイッチャ33Eが行うメモリバンク[X]に対するアクセス処理についてのみ説明する。
【0085】
まず、第2のバススイッチャ33Eの一連の動作について説明する。
【0086】
例えば、メモリバンク[X]上に描画するポリゴンの形状が図7に示すような三角形TABC (第1のポリゴンの形状)であった場合、先ず、プリプロセッサ32から制御回路101には、ピクセルインターリーブの制御情報が供給される。
【0087】
制御回路101は、プリプロセッサ32からのピクセルインターリーブの制御情報に基いて、三角形TABC 内部をアクセスする際に用いるインターリーブパターンを、例えば、(4×4)のインターリーブパターンPに切り換える。
【0088】
なお、制御回路101におけるインターリーブパターンの切換方法についての詳細は後述する。
【0089】
そして、制御回路101は、(4×4)のインターリーブパターンPを用いて、メモリバンク[X]上に形成される複数のインターリーブパターンのうち、アクセスすべきインターリーブパターン、すなわち三角形TABC 内部を全てアクセスすることができるようなインターリーブパターンを検出する。
【0090】
したがって、三角形TABC では、メモリバンク[X]上の各インターリーブパターンをP(x方向のパターンインデックス,y方向のパターンインデックス)で示した場合、図8に示すように、
で示される合計20個のインターリーブパターンが検出される。
【0091】
そして、制御回路101は、上述のようにして検出した20個のインターリーブパターンを示すパターン情報をインターリーブパターン単位でセレクタ102に供給する。また、1アドレス単位でメモリアクセスを行う場合には、制御回路101は、三角形TABC の形状に基いたマスク情報をセレクタ102に供給する。
【0092】
セレクタ102は、制御回路101からインターリーブパターン単位で供給されたパターン情報に基いて、アクセスすべき(4×4)のインターリーブパターンPに対応したアドレスをMUX/DMUX103a,103b,103c,103dに指定する。
【0093】
また、セレクタ102は、制御回路101からマスク情報が供給された場合には、そのマスク情報に基いて、図9に示すように、(4×4)のインターリーブパターンPのなかでマスクを行った結果得られるアクセスすべきアドレスをMUX/DMUX103a,103b,103c,103dに指定する。したがって、例えば、図10に示すように、上記図9に示したP(4,1)で示されるインターリーブパターン内のアドレスA0 〜A15において、マスクを行った結果得られるアクセスすべきアドレスは、A4,A5,A6,A8,A9,A10,A13,A14,A15(斜線部分)となる。
【0094】
MUX/DMUX103a,103b,103c,103dは、各々、メモリバンク[X]のアドレスA0 〜A15のうち、セレクタ102により指定されたアドレスをアクセスする。
【0095】
ここで、上述したように、ピクセルエンジン33DX1,33DX2,33DX3,33DX4からMUX/DMUX103a,103b,103c,103dには、各々、画素データが供給されるようになされている。
【0096】
そこで、例えば、MUX/DMUX103aは、セレクタ102により指定されたアドレスをアクセスすることにより、入出力ポートP0 〜P15のうち上記アドレスに対応した入出力ポートを介して、ピクセルエンジンXaからの画素データをメモリバンク[X]の上記アドレスにより示される領域に書き込む。
【0097】
また、MUX/DMUX103aは、セレクタ102により指定されたアドレスをアクセスすることにより、入出力ポートP0 〜P15のうち上記アドレスに対応した入出力ポートを介して、メモリバンク[X]の上記アドレスにより示される領域に書き込まれているデータを読み出す。そして、MUX/DMUX103aは、メモリバンク[X]から読み出したデータに対して所定の処理を行う。
【0098】
なお、MUX/DMUX103b〜103dの動作については、上述したMUX/DMUX103aの動作と同様であるため、その詳細な説明は省略する。
【0099】
つぎに、上述した制御回路101におけるインターリーブパターンの切換方法について具体的に説明する。
【0100】
まず、メモリバンク[X]上に描画するポリゴンの形状が、例えば、図11に示すようにな横長の三角形TDEF (第2のポリゴンの形状)であり、三角形TDEF を(4×4)のインターリーブパターンPでアクセスする場合のアクセス回数について説明する。
【0101】
この場合、アクセスすべきインターリーブパターンの個数は、図12に示すように、
の合計17個となる。
【0102】
すなわち、(4×4)のインターリーブパターンPで三角形TDEF をアクセスする場合、三角形TDEF 内部を全てアクセスするためのアクセス回数は、17回となる。
【0103】
また、1アドレス単位でアクセスする場合には、上述した三角形TABC のアクセス時と同様に、図13に示すように、(4×4)のインターリーブパターンPのなかでマスクを行うことにより、必要なメモリアドレスのみをアクセスすることとなる。
【0104】
つぎに、図14に示すように、三角形TDEF を(8×2)のインターリーブパターンP1 でアクセスする場合、アクセスすべきインターリーブパターンの個数は、図15に示すように、
の合計15個となる。
【0105】
すなわち、(8×2)のインターリーブパターンP1 で三角形TDEF をアクセスする場合、三角形TDEF 内部を全てアクセスするためのアクセス回数は、15回となる。
【0106】
また、1アドレス単位でアクセスする場合には、上述した三角形TABC のアクセス時と同様に、図16に示すように、(8×2)のインターリーブパターンP1 のなかでマスクを行うことにより、必要なメモリアドレスのみをアクセスすることとなる。
【0107】
つぎに、図17に示すように、三角形TDEF を(16×1)のインターリーブパターンP2 でアクセスする場合、アクセスすべきインターリーブパターンの個数は、図18に示すように、
の合計18個となる。
【0108】
すなわち、(16×1)のインターリーブパターンP2 で三角形TDEF をアクセスする場合、三角形TDEF 内部を全てアクセスするためのアクセス回数は、18回となる。
【0109】
また、1アドレス単位でアクセスする場合には、上述した三角形TABC のアクセス時と同様に、図19に示すように、(8×2)のインターリーブパターンP2 のなかでマスクを行うことにより、必要なメモリアドレスのみをアクセスすることとなる。
【0110】
上述のように、(4×4)のインターリーブパターンPで三角形TDEF をアクセスする場合のアクセス回数は17回、(8×2)のインターリーブパターンP1で三角形TDEF をアクセスする場合のアクセス回数は15回、(16×1)のインターリーブパターンP2 で三角形TDEF をアクセスする場合のアクセス回数は18回となり、この結果、(8×2)のインターリーブパターンP1 で三角形TDEF をアクセスする場合のアクセス回数が最少のアクセス回数となる。したがって、三角形TDEF に対する適切なインターリーブパターンは、(8×2)のインターリーブパターンP1ということがわかる。
【0111】
そこで、制御回路101は、メモリバンク[X]をアクセスする際に用いるインターリーブパターンを、アクセスするポリゴンの形状に応じた適切なインターリーブパターンに切り換えるために、以下のような処理を行う。
【0112】
例えば、メモリバンク[X]上に描画するポリゴンの形状が図20に示すような三角形THIJ であった場合、先ず、制御回路101には、上述したように、プリプロセッサ32からピクセルインターリーブの制御情報が供給される。このピクセルインターリーブの制御情報は、例えば、三角形THIJのの3つの頂点H,I,Jのxy座標H(Xh,Yh),I(Xi,Yi),J(Xj,Yj)等の情報である。
【0113】
次に、制御回路101は、上記図20に示すように、プリプロセッサ32からのピクセルインターリーブの制御情報を用いて、三角形THIJ の縦横比Rを、X方向の最大値MAXx及び最少値MINx、Y方向の最大値MAXy及び最少値MINyを持って、
なる演算により求める。
【0114】
なお、三角形THIJ では、
MAXx=Xj
MINx=Xi
MAXy=Yh
MINy=Yi
となる。
【0115】
そして、制御回路101は、上述のようにして求めた縦横比Rに応じて、図21に示すような、(1×16)、(2×8)、(4×4)、(8×2)、(16×1)の5種類のインターリーブパターンPa〜Peのうち適切なインターリーブパターンを選出し、三角形THIJ をアクセスする際に用いるインターリーブパターンを、選出したインターリーブパターンに切り換える。
【0116】
ここで、制御回路101は、表1に示すような、縦横比Rとインターリーブパターンと対応表からなるテーブルを有している。このテーブルには、縦横比Rに応じた適切なインターリーブパターン、すなわちアクセス回数が最小となるようなインターリーブパターンが予め設定されている。したがって、制御回路101は、上記テーブルを用いることにより、上述のようにして得られた縦横比Rに基いた適切なインターリーブパターンを選出することとなる。
【0117】
【表1】
【0118】
上述のように、第2のバススイッチャ33Eでは、メモリバンク[X]上に描画するポリゴンの形状に応じて、上記図21に示したような5種類のインターリーブパターンPa〜Peから適切なインターリーブパターンを選出し、選出したインターリーブパターンでメモリバンク[X]をアクセスするため、最小のアクセス回数でメモリバンク[X]上に上記ポリゴンを描画することができる。したがって、第2のバススイッチャ33Eは、メモリアクセスを効率良く行うことができる。
【0119】
また、GPU15は、上述のような、メモリアクセスの効率化を図った第2のバススイッチャ33Eにより、フレームバッファ18をアクセスしてデータ処理を行うため、そのデータ処理を効率良く行うことができる。
【0120】
【発明の効果】
本発明に係る描画装置及び描画方法では、描画手段がテクスチャマッピング処理に必要とするテクスチャデータを前処理手段による前処理の段階でテクスチャメモリからテクスチャキャシュに転送し、上記前処理手段と描画手段をパイプラインで動作させることによって、上記描画手段を停止させることなく描画処理を行うことができる。
【0121】
また、本発明に係る描画装置及び描画方法では、描画手段がミップチャマッピング処理を行うに必要となる解像度のデータを上記前処理手段による前処理の段階でテクスチャメモリ上のテクスチャデータから選択してテクスチャキャシュに転送することによって、上記テクスチャメモリのアクセス回数及びアクセス時間を減らすことができ、全体の描画速度を上げることができる。
【図面の簡単な説明】
【図1】本発明を適用したビデオゲーム装置の構成を示すブロック図である。
【図2】上記ビデオゲーム装置におけるGPUの具体的な構成を示すブロック図である。
【図3】上記GPUの基本的な構成を示すブロック図である。
【図4】上記GPUにおけるテクスチャキャッシュ内のデータ構造の一例を示す図である。
【図5】上記GPUにおけるプリプロセッサによるポリゴンの分割処理を示すフローチャートである。
【図6】上記ビデオゲーム装置における第2のバススイッチャの構成を示すブロック図である。
【図7】上記ビデオゲーム装置におけるフレームバッファのメモリバンク上に描画する第1のポリゴンの形状内部をアクセスする場合について説明するための図である。
【図8】上記第1のポリゴンの形状内部をアクセスする際のアクセスすべきインターリーブパターンを説明するための図である。
【図9】上記第1のポリゴンの形状内部をアクセスする際に、1アドレス単位でアクセスする場合のマスク処理について説明するための図である。
【図10】上記マスク処理により得られたアクセスアドレスを説明するための図である。
【図11】上記フレームバッファのメモリバンク上に描画する第2のポリゴンの形状内部を(4×4)のインターリーブパターンでアクセスする場合について説明するための図である。
【図12】上記第2のポリゴンの形状内部を(4×4)のインターリーブパターンでアクセスする場合のアクセスすべきインターリーブパターンを説明するための図である。
【図13】上記第2のポリゴンの形状内部を(4×4)のインターリーブパターン内で1アドレス単位でアクセスする場合のマスク処理について説明するための図である。
【図14】上記第2のポリゴンの形状内部を(8×2)のインターリーブパターンでアクセスする場合について説明するための図である。
【図15】上記第2のポリゴンの形状内部を(8×2)のインターリーブパターンでアクセスする場合のアクセスすべきインターリーブパターンを説明するための図である。
【図16】上記第2のポリゴンの形状内部を(8×2)のインターリーブパターン内で1アドレス単位でアクセスする場合のマスク処理について説明するための図である。
【図17】上記第2のポリゴンの形状内部を(16×1)のインターリーブパターンでアクセスする場合について説明するための図である。
【図18】上記第2のポリゴンの形状内部を(16×1)のインターリーブパターンでアクセスする場合のアクセスすべきインターリーブパターンを説明するための図である。
【図19】上記第2のポリゴンの形状内部を(16×1)のインターリーブパターン内で1アドレス単位でアクセスする場合のマスク処理について説明するための図である。
【図20】上記フレームバッファのメモリバンク上に描画するポリゴンの形状の縦横比を算出する処理を説明するための図である。
【図21】16アドレスを有する5種類のインターリーブパターンを示したパターン図である。
【符号の説明】
1 メインバス、11 メインCPU、12 メインメモリ、13 メインDMAC、 15 GPU、17 GTE、18 フレームバッファ、31 パケットエンジン、32 プリプロセッサ、33 描画エンジン、33A1,33A2・・・33AN ポリゴンエンジン、33B1,33B2・・・33BN テクスチャエンジン、33C 第1のバススイッチャ、33D1,33D2・・・33DM、33E 第2のバススイッチャ、33F テクスチャキャッシュ
Claims (2)
- 描画対象となる図形の頂点のテクスチャ座標が含まれた描画命令の入力を受け付ける命令受付手段と、ミップマップによるテクスチャマッピングを伴う上記図形の描画処理を行う描画手段と、この描画手段とパイプラインで構成された前処理手段とを有し、
上記前処理手段は、上記命令受付手段で受け付けた描画命令を上記描画手段よりも先読みし、所定のメモリ領域に保持されている複数のテクスチャデータから上記先読みした描画命令に基づいて上記描画手段が上記図形にミップマッピングするうえで必要となる解像度に対応するテクスチャデータのみを選択し、選択したテクスチャデータを上記描画手段がアクセス可能なテクスチャキャッシュに転送することを特徴とする、
描画装置。 - ミップマップによるテクスチャマッピングを伴う図形の描画処理を行う描画手段、及び、この描画手段とパイプラインで構成された前処理手段を有する描画装置により実行される描画方法であって、
上記前処理手段が、描画対象となる図形の頂点のテクスチャ座標が含まれた描画命令を上記描画手段よりも先読みし、所定のメモリ領域に保持されている複数のテクスチャデータから上記先読みした描画命令に基づいて上記描画手段が上記図形にミップマッピングするうえで必要となる解像度に対応するテクスチャデータのみを選択し、選択したテクスチャデータを上記描画手段がアクセス可能なテクスチャキャッシュに転送する段階と、
上記描画手段が、上記テクスチャキャッシュにキャッシュされているテクスチャデータによりテクスチャマッピングを行い、これにより生成された上記図形の画素データを所定の画像メモリに描画する段階とを有することを特徴とする、
描画方法。
Priority Applications (10)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02033296A JP3645024B2 (ja) | 1996-02-06 | 1996-02-06 | 描画装置及び描画方法 |
| CN97190237A CN1099655C (zh) | 1996-02-06 | 1997-02-06 | 图像绘制装置及图像绘制方法 |
| KR1019970706721A KR100422082B1 (ko) | 1996-02-06 | 1997-02-06 | 묘화장치및묘화방법 |
| DE69739337T DE69739337D1 (de) | 1996-02-06 | 1997-02-06 | Apparat und verfahren zum zeichnen |
| PCT/JP1997/000297 WO1997029457A1 (en) | 1996-02-06 | 1997-02-06 | Apparatus and method for drawing |
| EP97902600A EP0820037B1 (en) | 1996-02-06 | 1997-02-06 | Apparatus and method for drawing |
| US08/930,648 US6157384A (en) | 1996-02-06 | 1997-02-06 | Apparatus and method for drawing |
| CA002216915A CA2216915C (en) | 1996-02-06 | 1997-02-06 | Picture drawing apparatus and picture drawing method |
| MXPA/A/1997/007540A MXPA97007540A (es) | 1996-02-06 | 1997-10-01 | Aparato y metodo para dibujar imagenes |
| US09/630,248 US7081894B1 (en) | 1996-02-06 | 2000-08-01 | Picture drawing apparatus and picture drawing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02033296A JP3645024B2 (ja) | 1996-02-06 | 1996-02-06 | 描画装置及び描画方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09212680A JPH09212680A (ja) | 1997-08-15 |
| JP3645024B2 true JP3645024B2 (ja) | 2005-05-11 |
Family
ID=12024191
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02033296A Expired - Lifetime JP3645024B2 (ja) | 1996-02-06 | 1996-02-06 | 描画装置及び描画方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US6157384A (ja) |
| EP (1) | EP0820037B1 (ja) |
| JP (1) | JP3645024B2 (ja) |
| KR (1) | KR100422082B1 (ja) |
| CN (1) | CN1099655C (ja) |
| CA (1) | CA2216915C (ja) |
| DE (1) | DE69739337D1 (ja) |
| WO (1) | WO1997029457A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9881392B2 (en) | 2014-07-02 | 2018-01-30 | Samsung Electronics Co., Ltd. | Mipmap generation method and apparatus |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3645024B2 (ja) * | 1996-02-06 | 2005-05-11 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置及び描画方法 |
| JP4314655B2 (ja) * | 1998-03-04 | 2009-08-19 | ソニー株式会社 | 画像処理装置 |
| US6445386B1 (en) * | 1999-01-15 | 2002-09-03 | Intel Corporation | Method and apparatus for stretch blitting using a 3D pipeline |
| NZ513144A (en) * | 1999-02-05 | 2003-05-30 | Samsung Electronics Co Ltd | Image texture retrieving method and apparatus thereof |
| US7583270B2 (en) | 1999-03-02 | 2009-09-01 | Sony Corporation | Image processing apparatus |
| JP2001079263A (ja) * | 1999-09-16 | 2001-03-27 | Sega Corp | ゲーム装置、データ処理方法、及び情報記録媒体 |
| JP2001118082A (ja) * | 1999-10-15 | 2001-04-27 | Toshiba Corp | 描画演算処理装置 |
| US7184059B1 (en) * | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
| US6894693B1 (en) * | 2001-02-09 | 2005-05-17 | Vicarious Visions Inc. | Management of limited resources in a graphics system |
| GB2374775B (en) | 2001-04-19 | 2005-06-15 | Discreet Logic Inc | Rendering animated image data |
| JP2003030677A (ja) * | 2001-07-19 | 2003-01-31 | Namco Ltd | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム |
| JP3838086B2 (ja) * | 2001-12-12 | 2006-10-25 | ソニー株式会社 | 画像処理装置およびその方法 |
| JP2005100176A (ja) * | 2003-09-25 | 2005-04-14 | Sony Corp | 画像処理装置およびその方法 |
| CN101006471B (zh) * | 2004-06-16 | 2010-09-01 | Nxp股份有限公司 | 反向纹理映射三维图形系统 |
| USD529506S1 (en) * | 2005-04-11 | 2006-10-03 | Microsoft Corporation | Image for a portion of a display screen |
| USD528549S1 (en) * | 2005-04-11 | 2006-09-19 | Microsoft Corporation | Transitional image for a portion of a display screen |
| USD529035S1 (en) * | 2005-04-11 | 2006-09-26 | Microsoft Corporation | Image for a portion of a display screen |
| US7348988B2 (en) * | 2005-05-06 | 2008-03-25 | Via Technologies, Inc. | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment |
| CN101174331B (zh) * | 2006-11-01 | 2011-07-27 | 深圳市蓝韵实业有限公司 | 一种医学影像最大密度投影生成方法 |
| KR100818286B1 (ko) | 2006-11-23 | 2008-04-01 | 삼성전자주식회사 | 안개 효과를 고려하여 3차원 그래픽스 데이터를 렌더링하는방법 및 장치 |
| KR101427408B1 (ko) * | 2008-05-30 | 2014-08-07 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 스케일링가능하고 통합된 컴퓨팅 시스템 |
| US20090309896A1 (en) * | 2008-05-30 | 2009-12-17 | Advanced Micro Devices, Inc. | Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache |
| US8502832B2 (en) | 2008-05-30 | 2013-08-06 | Advanced Micro Devices, Inc. | Floating point texture filtering using unsigned linear interpolators and block normalizations |
| US8754895B2 (en) * | 2008-09-09 | 2014-06-17 | Sony Corporation | Pipelined image processing engine |
| CN102034263B (zh) * | 2010-11-03 | 2012-11-28 | 北京航空航天大学 | 一种基于错切变形的并行体绘制系统 |
| US20120232988A1 (en) * | 2011-03-08 | 2012-09-13 | Ruiduo Yang | Method and system for generating dynamic ads within a video game of a portable computing device |
| CN108287718B (zh) * | 2017-05-27 | 2022-05-17 | 深圳市创梦天地科技有限公司 | 基于游戏引擎的特效编辑方法及装置 |
| CN108242070A (zh) * | 2017-10-09 | 2018-07-03 | 北京车和家信息技术有限公司 | 一种图像绘制方法、图像绘制装置和计算机设备 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5361386A (en) * | 1987-12-04 | 1994-11-01 | Evans & Sutherland Computer Corp. | System for polygon interpolation using instantaneous values in a variable |
| US5222205A (en) * | 1990-03-16 | 1993-06-22 | Hewlett-Packard Company | Method for generating addresses to textured graphics primitives stored in rip maps |
| US5251296A (en) * | 1990-03-16 | 1993-10-05 | Hewlett-Packard Company | Methods and apparatus for generating arbitrarily addressed, arbitrarily shaped tiles in computer graphics systems |
| US5179638A (en) * | 1990-04-26 | 1993-01-12 | Honeywell Inc. | Method and apparatus for generating a texture mapped perspective view |
| US5307450A (en) * | 1991-02-19 | 1994-04-26 | Silicon Graphics, Inc. | Z-subdivision for improved texture mapping |
| US5388206A (en) * | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
| JPH06251166A (ja) * | 1993-02-25 | 1994-09-09 | Toshiba Corp | 画像処理装置 |
| GB2278524B (en) * | 1993-05-28 | 1997-12-10 | Nihon Unisys Ltd | Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency |
| JPH07230555A (ja) * | 1993-12-22 | 1995-08-29 | Matsushita Electric Ind Co Ltd | ミップマップ画像生成装置および生成方法 |
| US5461712A (en) * | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
| US5815168A (en) * | 1995-06-23 | 1998-09-29 | Cirrus Logic, Inc. | Tiled memory addressing with programmable tile dimensions |
| US6111584A (en) * | 1995-12-18 | 2000-08-29 | 3Dlabs Inc. Ltd. | Rendering system with mini-patch retrieval from local texture storage |
| JP3645024B2 (ja) * | 1996-02-06 | 2005-05-11 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置及び描画方法 |
| JPH09212146A (ja) * | 1996-02-06 | 1997-08-15 | Sony Computer Entertainment:Kk | アドレス発生装置及び画像表示装置 |
| US6222561B1 (en) * | 1998-09-17 | 2001-04-24 | International Business Machines Corporation | Render optimization using page alignment techniques |
-
1996
- 1996-02-06 JP JP02033296A patent/JP3645024B2/ja not_active Expired - Lifetime
-
1997
- 1997-02-06 KR KR1019970706721A patent/KR100422082B1/ko not_active Expired - Lifetime
- 1997-02-06 EP EP97902600A patent/EP0820037B1/en not_active Expired - Lifetime
- 1997-02-06 WO PCT/JP1997/000297 patent/WO1997029457A1/ja not_active Ceased
- 1997-02-06 US US08/930,648 patent/US6157384A/en not_active Expired - Lifetime
- 1997-02-06 DE DE69739337T patent/DE69739337D1/de not_active Expired - Lifetime
- 1997-02-06 CA CA002216915A patent/CA2216915C/en not_active Expired - Lifetime
- 1997-02-06 CN CN97190237A patent/CN1099655C/zh not_active Expired - Lifetime
-
2000
- 2000-08-01 US US09/630,248 patent/US7081894B1/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9881392B2 (en) | 2014-07-02 | 2018-01-30 | Samsung Electronics Co., Ltd. | Mipmap generation method and apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2216915C (en) | 2008-04-22 |
| CN1183154A (zh) | 1998-05-27 |
| EP0820037B1 (en) | 2009-04-01 |
| US7081894B1 (en) | 2006-07-25 |
| KR100422082B1 (ko) | 2004-06-04 |
| WO1997029457A1 (en) | 1997-08-14 |
| CA2216915A1 (en) | 1997-08-14 |
| EP0820037A1 (en) | 1998-01-21 |
| CN1099655C (zh) | 2003-01-22 |
| MX9707540A (es) | 1997-11-29 |
| EP0820037A4 (en) | 2002-04-17 |
| US6157384A (en) | 2000-12-05 |
| KR19980703317A (ko) | 1998-10-15 |
| DE69739337D1 (de) | 2009-05-14 |
| JPH09212680A (ja) | 1997-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3645024B2 (ja) | 描画装置及び描画方法 | |
| JP3519199B2 (ja) | 画像生成装置 | |
| CN1938730B (zh) | 基于寄存器的对纹理请求的排队 | |
| US20030174136A1 (en) | Multipurpose memory system for use in a graphics system | |
| US7170512B2 (en) | Index processor | |
| EP1312047B1 (en) | Apparatus and method for rendering antialiased image | |
| JPH09500462A (ja) | 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム | |
| KR100471905B1 (ko) | 메모리액세스방법및데이터처리장치 | |
| JPH09179999A (ja) | 画像生成方法およびその装置 | |
| US6992673B2 (en) | Memory access device, semiconductor device, memory access method, computer program and recording medium | |
| JP3548648B2 (ja) | 描画装置及び描画方法 | |
| JP3934111B2 (ja) | 描画装置及び描画方法 | |
| JP3971448B2 (ja) | 描画装置及び描画方法 | |
| JP3468985B2 (ja) | グラフィック描画装置、グラフィック描画方法 | |
| JP4482996B2 (ja) | データ記憶装置とその方法および画像処理装置 | |
| JPH09166975A (ja) | 画像生成装置及び画像生成方法 | |
| JP2000148114A (ja) | 画像生成装置および画像生成方法 | |
| JP2003022696A (ja) | テスト回路および画像処理装置 | |
| MXPA97007540A (es) | Aparato y metodo para dibujar imagenes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040713 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040910 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041102 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050104 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050112 |
|
| 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: 20050201 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050202 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080210 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120210 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120210 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130210 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 9 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |