(57)【特許請求の範囲】
【請求項１】
タイル・ベース・レンダリング・システムにおいて、パラメータ・メモリ使用量を低減させるための方法であって、
プリミッティブ／コマンド・フェッチ・ユニットが、位置データをメモリ内の格納された静的幾何学的形状から取り出し、
第１の変換ユニットが、前記取り出された位置データを画面空間に変換し、
タイリング・ユニットが、前記画面空間の位置データを用いて、各矩形領域について、
前記位置データが取り出された前記メモリ内の静的幾何学的形状データへの対応するポインタ・リストをコンパイルし、
タンリングされたパラメータ・フェッチ・ユニットが、各リストから、各矩形領域のポインタ・データを取り出し、
変換されていない幾何学的形状フェッチ・ユニットが、各リストについて、前記取り出されたポインタ・データに対応する静的幾何学的形状データを前記メモリから取り出し、
第２の変換ユニットが、前記こうして取り出された位置の幾何学的形状データを画面空間に変換し、
前記第２の変換ユニットが、隠面消去を適用する前に、属性処理を適用し、
前記第２の変換ユニットが、前記変換されたデータをバッファにレンダリングして表示する、
ステップを含むことを特徴とする方法。
【請求項２】
前記隠面消去ステップの後に、ライティング又は属性処理ステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記幾何学的形状データを画面空間画像データに変換するステップは、変換されたデータをキャッシュ内に格納するステップを含み、前記幾何学的形状データを取り出すステップは、取り出されるデータが前記キャッシュ内に存在するかどうかを確認するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記変換された位置データは、矩形領域の処理中に二度目の変換を行う必要がないように、パラメータ・バッファに書き込まれることを特徴とする、請求項１に記載の方法。
【請求項５】
第２のメモリから動的幾何学的形状データを取り出すステップと、
前記取り出されたデータを、画面データ位置及び画像データに変換するステップと、
をさらに含み、
前記コンパイルするステップは、動的幾何学的形状データ及び変換されていない静的幾何学的形状データについての画像空間データへのポインタのリストを含み、
前記変換された動的幾何学的形状データを格納するステップを含み、
前記変換されていない静的幾何学的形状データを取り出すステップは、変換された動的幾何学的形状データを取り出すステップをさらに含むことを特徴とする、前記請求項１から４のいずれかに記載の方法。
【請求項６】
パラメータ・メモリが低減されたタイル・ベース・レンダリング・システムであって、
メモリ内に格納された静的幾何学的形状データから位置データを取り出すための手段と、
前記取り出された位置データを画面空間に変換するための手段と、
前記画面空間の位置データを用いて、各矩形領域について、前記位置が取り出された前記メモリ内の静的幾何学的形状データへの対応するポインタ・リストをコンパイルするための手段と、
各リストから、各矩形領域のポインタ・データを取り出すための手段と、
各リストについての前記取り出されたポインタに対応する静的幾何学的形状データをメモリから取り出すための手段と、
前記こうして取り出された位置の幾何学的形状データを画面空間に変換するための手段と、
前記変換されたデータをバッファにレンダリングして表示するための手段と、
を含むことを特徴とするレンダリング・システム。
【請求項７】
隠面消去のための手段の後に、ライティング又は属性処理を適用するための手段を含むことを特徴とする、請求項６に記載のレンダリング・システム。
【請求項８】
前記幾何学的形状データを画面空間に変換するための手段は、変換されたデータをキャッシュ内に格納するための手段を含み、前記幾何学的形状データを取り出すための手段は、取り出されるデータが前記キャッシュ内に存在するかどうかを確認するための手段を含むことを特徴とする、請求項６に記載のレンダリング・システム。
【請求項９】
前記矩形領域の処理中、後の変換が必要とされないように、変換された位置データをパラメータ・バッファに書き込むための手段を含むことを特徴とする、請求項６に記載のレンダリング・システム。
【請求項１０】
第２のメモリから動的幾何学的形状データを取り出すための手段と、
前記取り出された動的幾何学的形状データを画面空間の位置及び画像データに変換するための手段と、
をさらに含み、
前記画像空間データへのポインタのリストをコンパイルするための手段は、動的幾何学的形状データ及び静的幾何学的形状データについての画面空間データへのポインタのリストを含ませるための手段を含み、
変換された動的幾何学的形状データを格納するための手段を含み、
前記変換されていない静的幾何学的形状データを取り出すための手段は、変換された動的幾何学的形状データを取り出すための手段をさらに含むことを特徴とする、請求項６から請求項９までのいずれかに記載のレンダリング・システム。
【請求項１１】
請求項６から１０までのいずれかに記載されるタイル・ベース・レンダリング・システムにおいて、パラメータ・メモリ使用量を低減させるための方法。
【請求項１２】
パラメータ・メモリが低減された請求項６から１０までのいずれかに記載されるレンダリング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元のコンピュータ・グラフィックス・レンダリング・システムに関し、特定的には、タイル・ベースのレンダリング・システムにおいて変換されていない（ｕｎｔｒａｎｓｆｏｒｍｅｄ）表示リストを用いて、３次元グラフィック画像をレンダリングすることに関連した方法及び装置に関する。
【背景技術】
【０００２】
タイル・ベース・レンダリング・システムは周知のものであり、これらは、ラスタ化プロセスの効率を高めるために、画像を複数の矩形のブロック又はタイルに分割する。
【０００３】
図１は、従来のタイル・ベース・レンダリング・システムを示す。タイル・ベース・レンダリング・システムは、幾何学的形状（ｇｅｏｍｅｔｒｙ）処理段階及びラスタ化段階の２段階で動作する。幾何学的形状処理段階の間、プリミティブ／コマンド・フェッチ・ユニット１００が、メモリからコマンド及びプリミティブ・データを取り出し、これを、幾何学的形状データ１１０をメモリからフェッチし、それを変換ユニット１１５に渡す幾何学的形状フェッチ・ユニット１０５に渡す。これにより、プリミティブ及びコマンド・データが画面空間に変換され、周知の方法を用いて、必要に応じて、いずれかのライティング（ｌｉｇｈｔｉｎｇ）／属性処理が適用される。結果として得られるデータは、周知の方法を用いて、不可視のあらゆる幾何学的形状を選別するカリング・ユニット１２０に渡される。カリング・ユニットは、あらゆる残りの幾何学的形状データを変換されたパラメータ・バッファ１３５に書き込み、同じく、残りの幾何学的形状の位置データをタイリング・ユニット１２５に渡し、このタイリング・ユニット１２５は、タイリングされた幾何学的形状リスト１３０に書き込まれる、各タイルについての画面空間オブジェクト・リストの組を生成する。各々のオブジェクト・リストは、そのタイル内に全体的又は部分的に存在する変換されたプリミティブへの参照を含む。リストは、画面上のあらゆるタイルについて存在するが、幾つかのオブジェクト・リストは、その中にデータを有さない場合もある。このプロセスは、シーン内の全ての幾何学的形状が処理されるまで続く。
【０００４】
ラスタ化段階の間、オブジェクト・リストは、最初にオブジェクト参照を、次に参照されたオブジェクト・データをフェッチし、それらを、最終シーンに寄与しない面を消去する（通常は、それらは別の面で隠されるので）隠面消去ユニット（ＨＳＲ）１４５に与える、タイリングされたパラメータ・フェッチ・ユニット１４０によりフェッチされる。ＨＳＲユニットは、タイル内の各プリミティブを処理し、可視プリミティブ／ピクセルに関するデータだけをテクスチャリング及びシェーディング・ユニット（ＴＳＵ）１５０に渡す。ＴＳＵは、ＨＳＲユニットからデータを取得し、それを用いてテクスチャをフェッチし、周知の技術を用いて、可視オブジェクト内の各ピクセルにシェーディングを適用する。次に、ＴＳＵは、テクスチャリングされ、シェーディングされたデータを、アルファ・テスト／フォギング／アルファ・ブレンディング・ユニット１５５に与える。このことにより、同じく周知の技法を用いて、表面に透明性／不透明性の度合を適用することが可能になる。アルファ・ブレンディングは、オンチップ・タイル・バッファ１６０を用いて実行され、これにより、この操作のために外部メモリにアクセスする必要が排除される。ＴＳＵ及びアルファ・テスト／フォギング／アルファ・ブレンド・ユニットは、本質的に完全にプログラム可能であることに留意されたい。
【０００５】
各タイルが完成すると、結果として得られるデータをレンダリングされたシーン・バッファ１７０に書き込む前に、ピクセル処理ユニット１６５が、パッキング及びアンチエイリアス・フィルタリングといったいずれかの必要なバックエンド・プロセスを実行し、いつでも表示できる状態にする。
【０００６】
一般的には、最新のコンピュータ・グラフィックス・アプリケーションは、あるシーン全体を通して又は複数のシーンにわたって静的なままである膨大な量の幾何学的形状を用いるが、この幾何学的形状データは、グラフィック処理ユニットにローカルなメモリ内に典型的に常駐する静的な頂点バッファとして一般に知られるものの中に格納される。現在のタイル・ベース・システムは、このデータを画面空間に変換し、結果として得られる幾何学的形状を、大量の付加的な記憶領域及びメモリ帯域幅を消費する場合があるパラメータ・バッファ／タイリングされた画面空間幾何学的形状リスト内に格納する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】英国特許出願  第ＧＢ−Ａ−２４３０５１３号
【発明の概要】
【０００８】
本発明の好ましい実施形態は、タイル・ベースのレンダリング・システムが、タイリングされた画面空間の幾何学的形状に対して必要とされる記憶領域の量が低減された状態で動作するのを可能にする方法及び装置を提供する。このことは、シーンの幾何学的形状を表すために、変換されていない表示リストを用いることによって達成される。これにより、入ってくるシーンの幾何学的形状が静的であり、従って、幾何学的形状処理段階及びラスタ化段階の両方においてこれを参照できるという事実を利用することによって、図１の変換されたパラメータ・バッファ１３５に対する必要性がなくなる。
【０００９】
ここで、本発明の好ましい実施形態を、添付の図面を参照して、一例として詳細に説明する。
【図面の簡単な説明】
【００１０】
【図１】従来のタイル・ベース・レンダリング・システムを示す。
【図２】変換されていない表示リストを用いるタイル・ベース・レンダリング・システムを示す。
【図３】遅延型ライティング／属性処理を示す。
【図４】システムへの変換されたデータ・キャッシュの付加を示す。
【図５】ハイブリッド式変換された表示リスト／変換されていない表示リスト・ベースのタイル・ベース・レンダリング・システムを示す。
【発明を実施するための形態】
【００１１】
図２は、変換されていない表示リストをサポートするように修正されたタイル・ベース・レンダリング・システムを示す。幾何学的形状処理段階の間に、プリミティブ／コマンド・フェッチ・ユニット２００は、メモリからコマンド及びプリミティブ・データを取り出し、これを、静的な幾何学的形状データの位置部分をメモリ２１０からフェッチし、それを変換１ユニット２１５に渡す、位置データ・フェッチ・ユニット２０５に渡す。これは、プリミティブを画面空間内に変換するのみであり、即ち、図１のシステムにおいて行なわれるいずれのライティング／属性処理も適用しない。結果として得られる画面空間の位置データは、図１のシステムと同じ方法でいずれの幾何学的形状も選別するカリング・ユニット２２０に渡される。図１のシステムとは異なり、カリング・ユニットは、残りの幾何学的形状データを変換されたパラメータ・バッファに書き込むのではなく、代わりに、残りの幾何学的形状の位置データをタイリングされたユニット２２５に渡すのみである。
【００１２】
図１のシステムにおいて、タイリング・ユニットは、変換されたパラメータ・バッファ内に格納された変換された幾何学的形状への参照を生成し、新しいシステムにおいて、タイリング・ユニットは、既に述べたように、タイリングされた幾何学的形状リスト２３０に書き込まれた変換されていない静的幾何学的形状データへの参照を生成する。これらの参照は、メモリ２１０内の幾何学的形状データへのポインタの形態である。このプロセスは、シーン内の全ての幾何学的形状が処理されるまで続く。
【００１３】
ラスタ化段階の間、各タイルについてのオブジェクト・リストは、タイリングされたパラメータ・フェッチ・ユニット２４０によってフェッチされ、このタイリングされたパラメータ・フェッチ・ユニット２４０は、静的幾何学的形状の参照（ポインタ）を、全体の幾何学的形状リストから変換されていない幾何学的形状フェッチ・ユニット２４５に与え、この幾何学的形状フェッチ・ユニット２４５は、変換されていない静的幾何学的形状データをメモリ２１０からフェッチし、変換２ユニット２５０に渡す。変換２ユニットは、取り出されたデータを画面空間に再変換し、いずれかの必要とされるライティング／属性処理等を幾何学的形状に適用する。次に、変換された幾何学的形状は、図１のシステムにおけるものと同様に、最終シーンに寄与しない面を消去する隠面消去ユニット（ＨＳＲ）２５５に渡される。残りのステージ２６０乃至２８０は全て、上述のように、（図１の）ステージ１５０乃至１７０と同じ方法で動作する。
【００１４】
さらなる最適化において、隠面消去が実行された後に必要とされる、いずれのライティング処理又は属性処理を遅延させることも可能である。このことは、この処理が、処理量及び電力消費の両方を著しく改善する、最終シーン内で可視である幾何学的形状にのみ適用されることを意味する。図３は、遅延型のライティング／属性処理を実施するシステムに対する修正を示す。ユニット３００及び３０５は、図２のユニット２４０及び２４５について説明されたように動作し、図２のユニット２５０とは異なり、変換２ユニット３１０は、位置データを隠面消去ユニット３１５に渡す前にこれを変換するだけである。隠面消去ユニットによって発せられた可視プリミティブは、次に、いずれかのライティング／属性処理が実行される変換３ユニット３２０に渡される。ユニット３２５乃至３５０の動作は、図１のユニット１４５乃至１７０と同じである。
【００１５】
上述の３つの変換ユニットの各々は全て、特許文献１に記載されたものに類似した単一の「ユニバーサル」ユニットにおいて実装できることに留意されたい。上記の手法は、変換されたパラメータ・バッファに対する必要性をなくすが、それらは、両方の段階において位置データを変換することを必要とし、かつ、幾何学的形状のいずれか一部が重複するあらゆるタイルについて変換を繰り返す必要があるという不利な点を有する。図４は、ラスタ化段階においてデータを再変換する回数を最小にするためにキャッシュを付加する、変換されていない表示リスト・システムのラスタ化段階に対する修正を示す。図４は、非遅延型のライティング／属性処理システムに対する修正を示すが、この修正は、いずれに対しても等しく適用可能であることに留意すべきである。図２におけるように、タイリングされたパラメータ・フェッチ・ユニット４００は、メモリから、幾何学的形状処理段階において生成されたタイリングされたオブジェクト・リスト参照をフェッチする。この参照は、オブジェクト参照に対応するエントリが、変換されたデータ・キャッシュ・メモリ４１０内に存在するかどうかを確認するキャッシュ制御ユニット４０５に渡され、存在する場合には、キャッシュ制御ユニットは、キャッシュからデータを読み出し、それを隠面消去ユニット４２５に渡す。キャッシュ内に対応するエントリが存在しない場合、キャッシュ制御ユニットは、メモリからデータをフェッチし、それを変換２ユニット４２０に渡す、変換されていない幾何学的形状フェッチ・ユニット４１５に参照を発行する。変換２ユニットは、幾何学的形状データを変換し、該幾何学的形状データに必要とされるあらゆるライティング／属性処理を適用し、次に、それをキャッシュ制御ユニットに戻す。次に、キャッシュ制御ユニットは、それを隠面消去ユニットに渡す前に、将来の参照のために変換されたデータ・キャッシュ・メモリに付加する。ユニット４２５乃至４５０の動作は、図１のユニット１４５乃至１７０と同じである。
【００１６】
上記の手法に用いられる付加的な幾何学的形状処理パスをなくすために、位置変換の結果は、第２のパスで用いるパラメータ・バッファ内に格納することができる。これは結果的に、変換されたパラメータ記憶領域に対する必要性をもたらすが、位置データを何回も変換することと比べれば、有用なトレードオフと考えることができる。アプリケーションが、シーンの間に頂点データを更新する場合があるが、この種の頂点データは、動的と呼ばれることが多く、このような状況においては、従来のタイル・ベース・レンダリング装置のように、データを変換し、パラメータ・バッファに複写しなければならないことにも留意すべきである。
【００１７】
図５は、変換されていない表示リスト及び変換された表示リストの両方の使用を可能にするハイブリッド・システムを示す。幾何学的形状処理段階の間、プリミティブ／コマンド・フェッチ・ユニット５００は、メモリからコマンド及びプリミティブ・データを取り出し、これを幾何学的形状フェッチ・ユニット５０５に渡し、この幾何学的形状フェッチ・ユニット５０５は、動的幾何データ５０７及び静的幾何データ５１０の両方をメモリからフェッチし、それらを変換１ユニット５１５に渡す。
【００１８】
動的幾何学的形状の場合、変換１ユニットは、前述したように静的幾何学的形状についてのみ位置を変換する従来のタイル・ベース・レンダリング・システムのように、位置を変換し、あらゆる必要なライティング／属性処理を適用する。結果として得られるデータは、周知の方法を用いて、可視ではない任意の幾何学的形状を選別するカリング・ユニット５２０に渡される。カリング・ユニットは、あらゆる残りの動的幾何学的形状及び静的位置データを、変換されたパラメータ・バッファ５３５に書き込み、また、残りの幾何学的形状の位置データを、タイリング・ユニット５２５に渡し、このタイリング・ユニット５２５は、タイリングされた幾何学的形状リスト５３０に書き込まれる各タイルについての１組の画面オブジェクト・リストを生成する。タイリングされた幾何学的形状リストは、どの幾何学的形状が動的であり、どれが静的であるかを示すことに留意すべきである。図２におけるように、タイリングされたパラメータ・フェッチ・ユニット５４０は、メモリから、幾何学的形状処理段階において生成されたタイリングされたオブジェクト・リストの参照をフェッチする。参照は、オブジェクト参照に対応するエントリが変換されたデータ・キャッシュ・メモリ５５０内に存在するかどうかを確認するキャッシュ制御ユニット５４５に渡され、存在する場合、キャッシュ制御ユニットは、キャッシュからデータを読み出し、それを隠面消去ユニット５６５に渡す。キャッシュ内に対応するエントリが存在しない場合、キャッシュ制御ユニットは、タイリングされた参照リストに示されたタイプに基づいて、変換されたパラメータ・フェッチ・ユニット５４７又は変換されていない幾何学的形状フェッチ・ユニット５５５のいずれかに参照を発行する。変換された幾何学的形状は、変換されたパラメータ・フェッチ・ユニットによってフェッチされ、キャッシュ制御ユニットに戻され、変換されていない幾何学的形状は、変換されていない幾何学的形状フェッチ・ユニットによってフェッチされ、キャッシュ制御ユニットに戻される前に、変換２ユニット５６０によって処理される。両方の幾何学的形状タイプが、次に、隠面消去ユニットに渡される前に、制御ユニットによってキャッシュに書き込まれる。全ての後続のユニット５６５乃至５９０は、図１のユニット１４５乃至１７０について前述したように動作する。
【符号の説明】
【００１９】
１００、２００、５００：プリミティブ／コマンド・フェッチ・ユニット
１０５、５０５：幾何フェッチ・ユニット
１１０：幾何データ・メモリ
１１５：変換ユニット
１２０、２２０、５２０：カリング・ユニット
１２５、２２５、５２５：タイリング・ユニット
１３０、２３０、５３０：タイリングされた幾何学的形状リスト
１３５、５３５：変換されたパラメータ・バッファ
１４０、２４０、３００、４００、５４０：タイリングされたパラメータ・フェッチ・ユニット
１４５、２５５、３１５、４２５、５６５：隠面消去ユニット（ＨＳＲ）
１５０、２６０、３２５、４３０、５７０：テクスチャリング及びシェーディング・ユニット（ＴＳＵ）
１５５、２６５、３３０、４３５、５７５：アルファ・テスト／フォギング／アルファ・ブレンディング・ユニット
１６０、２７０、３３５、４４０、５８０：蓄積バッファ（オンチップ・タイル・バッファ）
１６５、２７５、３４０、４４５、５８５：ピクセル処理ユニット
１７０、２８０、３４５、４５０、５９０：レンダリングされたシーン・バッファ
２０５：位置データ・フェッチ・ユニット
２１０、５１０：静的幾何学的形状データ・メモリ
２１５、５１５：変換１ユニット
２４５、３０５、４１５、５５５：変換されていない幾何学的形状フェッチ・ユニット
２５０、３１０、４２０、５６０：変換２ユニット
３２０：変換３ユニット
４０５、５４５：キャッシュ制御ユニット
４１０、５５０：変換されたデータ・キャッシュ・メモリ
５０７：動的幾何学的形状データ・メモリ
５３５：パラメータ・バッファ
５４７：変換されたパラメータ・フェッチ・ユニット
【図１】
0005461516.tif 000002
【図２】
0005461516.tif 000003
【図３】
0005461516.tif 000004
【図４】
0005461516.tif 000005
【図５】
0005461516.tif 000006