タイルベースの3次元コンピュータグラフィックスレンダリングシステムにおいてサーフェスのパッチをテッセレートするための方法であって、パッチを構成するテッセレートされたプリミティブについてのプリミティブインデックスのタイルごとのリストを導出するステップと、前記パッチに対して隠面除去を実行するステップと、前記隠面除去後に残ったプリミティブのドメイン点を導出するステップと、表示のために、前記プリミティブをシェーディングするステップとを含むことを特徴とする方法。前記プリミティブインデックスのタイルごとのリストを導出するステップは、プリミティブデータを受け取ることと、前記プリミティブデータから、ドメイン点テッセレーションデータ及び連結性テッセレーションデータを決定することと、前記ドメイン点データ及び前記連結性テッセレーションデータによって要求されるプリミティブを画面空間に投影することと、このようにして前記投影されたデータから、前記プリミティブインデックスのタイルごとのリストを決定することとを含むことを特徴とする、請求項1に記載の方法。前記隠面除去のステップは、パッチのドメイン点データを再計算することと、前記ドメイン点データに関連付けられた位置データから、プリミティブがタイル内で可視であるかどうかを決定することと、可視プリミティブのタイルごとのリストを導出することとを含むことを特徴とする、請求項2に記載の方法。前記隠面除去後に残ったプリミティブのドメイン点データを導出するステップは、前記ドメイン点データを再計算することと、前記シェーディングステップにおいて用いるためにドメイン点の完全な頂点属性を導出することとを含むことを特徴とする、請求項3に記載の方法。前記テッセレートされたプリミティブについてのプリミティブインデックスのタイルごとのリストを得るステップは、ハルシェーディングユニットからの出力を画面空間ジオメトリバッファに提供することを特徴とする、請求項1~請求項4のいずれかに記載の方法。前記プリミティブインデックスのタイルごとのリストを導出するステップは、不可視のテッセレートされたデータをいずれも、これらが前記プリミティブインデックスのタイルごとのリストに含まれないように除去するステップを含むことを特徴とする、請求項1~請求項5のいずれかに記載の方法。それぞれのタイルごとのリストについてのプリミティブインデックスの前記リストは、前記テッセレートされたプリミティブについての圧縮又は非圧縮インデックスデータを含むことを特徴とする、請求項6に記載の方法。前記隠面除去を実行するステップは、予め生成された頂点についてキャッシュメモリ内にデータを格納するステップを含むことを特徴とする、請求項1~請求項7のいずれかに記載の方法。前記隠面除去後に残ったプリミティブのドメイン点を導出するステップは、プリミティブ頂点についてキャッシュ内にインデックスデータを格納するステップを含むことを特徴とする、請求項1~請求項8のいずれかに記載の方法。タイルベースの3次元コンピュータグラフィックスレンダリングシステムにおいてサーフェスのパッチをテッセレートするための装置であって、パッチを構成するテッセレートされたプリミティブについてのプリミティブインデックスのタイルごとのリストを導出するための手段と、前記パッチに対して隠面除去を実行するための手段と、前記隠面除去後に残ったプリミティブのドメイン点を導出するための手段と、表示のために、前記プリミティブをシェーディングするための手段とを含むことを特徴とする装置。前記プリミティブインデックスのタイルごとのリストを導出するための手段は、プリミティブデータを受け取るための手段と、前記プリミティブデータから、ドメイン点テッセレーションデータ及び連結性テッセレーションデータを決定するための手段と、前記ドメイン点データ及び前記連結性テッセレーションデータによって要求されるプリミティブを画面空間に投影するための手段と、このようにして前記投影されたデータから、前記プリミティブインデックスのタイルごとのリストを決定するための手段とを含むことを特徴とする、請求項10に記載の装置。前記隠面除去を実行するための手段は、パッチのドメイン点データを再計算するための手段と、前記ドメイン点データと関連付けられた位置データから、どこで前記プリミティブがタイル内で可視であるかを決定するための手段と、可視プリミティブのタイルごとのリストを決定するための手段とを含むことを特徴とする、請求項11に記載の装置。前記隠面除去後に残ったプリミティブのドメイン点データを導出するための手段は、前記ドメイン点データを再計算するための手段と、前記シェーディングステップにおいて用いるためにドメイン点の完全な頂点属性データを導出するための手段とを含むことを特徴とする、請求項12に記載の装置。テッセレートされたプリミティブについてのプリミティブインデックスのタイルごとのリストを導出するための前記手段は、出力データを画面空間ジオメトリバッファに提供するハルシェーディングユニットを含むことを特徴とする、請求項10~請求項13のいずれかに記載の装置。前記プリミティブインデックスのタイルごとのリストを導出するための手段は、不可視のテッセレートされたデータをいずれも、これらが前記プリミティブインデックスのタイルごとのリストに含まれないように除去するための手段を含むことを特徴とする、請求項10~請求項14のいずれかに記載の装置。それぞれのタイルごとのリストについてのプリミティブインデックスの前記リストは、前記テッセレートされたプリミティブについての圧縮又は非圧縮インデックスデータを含むことを特徴とする、請求項15に記載の装置。前記隠面除去を実行するための手段は、予め生成された頂点についてキャッシュメモリ内にデータを格納するための手段を含むことを特徴とする、請求項10~請求項16のいずれかに記載の装置。前記隠面除去後に残ったプリミティブのドメイン点を導出するための手段は、プリミティブ頂点についてキャッシュ内にインデックスデータを格納するための手段を含むことを特徴とする、請求項10~請求項17のいずれかに記載の装置。図5は、本発明を具体化する、プログラム可能なテッセレーションプリミティブをタイルベースレンダリングシステム内で処理するために提案されるシステムのタイリング相を示す。頂点シェーディングユニット500及びハルシェーディングユニット506は、Dx11に関して上述したように動作する。ハルシェーディングユニットは、計算されたエッジテッセレーション係数を、ドメインテッセレーションユニット510及び連結性テッセレーションユニット515の両方に渡す。ハルシェーダは、処理された制御点のデータをドメインシェーダ520にも渡す。連結性テッセレーションユニット515は、三角形の頂点インデックスを計算する。これらのインデックスは、ドメインテッセレーションユニットからの生成されたドメイン点に対するドメインシェーダの作用によって生成された頂点を参照する。頂点インデックスは、ドメインシェーディングユニットによって予め生成された頂点値をキャッシュするキャッシュユニット522に渡される。キャッシュは必ずしも必要とされるものではないが、テッセレートされたパッチを構成するプリミティブが相互接続されているという性質は、キャッシュの存在が、ドメインシェーディングユニットを通じて処理される頂点の数を著しく減らすことができることを意味することに留意されたい。キャッシュ内に頂点が存在しない場合には、これをドメインシェーディングユニットから得るように要求することができる。ドメインシェーディングユニットは、頂点データの位置部分のみを処理する。テッセレートされたジオメトリをタイリングするために必要とされるのは、この部分のみである。キャッシュユニット8は、プリミティブを構成する頂点をクリッピング及びカリングユニット525に順送りにし、クリッピング及びカリングユニットは、背面のプリミティブ、画面からはみ出したプリミティブ、又はサブピクセルのプリミティブ即ち、不可視のプリミティブをいずれも除去する。残ったプリミティブはいずれも投影ユニット530に渡され、投影ユニットは、プリミティブ/頂点を画面空間に変換して、これらをタイリング/ユニット535によってタイリングすることができるようにする。タイリングユニットは、各タイル内にどのプリミティブが存在するかを判断し、タイルインデックスのリストをインデックス圧縮ユニット540に渡す。インデックス圧縮ユニットは、周知の方法を用いてインデックスストリームを圧縮する。圧縮されたインデックスは、タイルごとのジオメトリリスト545に書き込まれ、ハルシェーディングユニット505の出力に対する参照も共に書き込まれる。プリミティブインデックスは圧縮しなくてもよいが、これは好ましい特徴であることにも留意されたい。このプロセスが、シーン内の全てのパッチに対して繰り返される。シーンは、全体がパッチベースプリミティブで構成される必要はなく、従来の三角形、線又は点に基づくジオメトリもシーン内に含まれてもよく、これらのプリミティブは、通常のタイルベースレンダリングシステムの場合と同様に処理されることができることに留意されたい。上述の方法は、タイリングされたジオメトリのリストのために、生成されたプリミティブの連結性情報を格納するが、連結性情報を有さない一意の頂点のリストのみを格納することもできることにも留意されたい。次にこの情報を用いて、後続のパスにおいて連結性情報を再生することができる。図6は、図4の後に実行される、パッチベースジオメトリのためのラスタ化プロセスの隠面除去相を示す。タイルパラメータフェッチユニット600は、ハルシェーダ生成データ、及び、各タイルについてのインデックスの圧縮リストを、ジオメトリバッファ600図5からフェッチする。このハルシェーダ生成データのエッジテッセレーション係数成分は、ドメインテッセレーションユニット610に渡され、制御点データは、ドメインシェーディングユニット620に渡される。ハルシェーダの制御点データの位置部分のみが、タイルパラメータフェッチユニットによってフェッチされることに留意されたい。現在のタイル内に存在するパッチによって生成されたプリミティブのインデックスの圧縮されたリストは、インデックスをキャッシュユニット615に渡す前にそれらを復元するインデックス復元ユニット605に渡される。キャッシュユニット615は、何回も参照される頂点を一回だけ生成すればよいように、ドメインシェーディングユニット620によって予め生成された頂点のデータを収容する。キャッシュユニットが要求された頂点のデータを持っていない場合には、キャッシュユニットは、ドメインシェーダ620からのデータを要求し、ドメインシェーダは、対応する頂点位置を生成する前に、根底にあるドメイン点データを求めてドメインテッセレーションユニットからのデータを要求する。タイリング相の場合と同様に、ドメインシェーダは、頂点の位置成分のみを生成し続けることに留意されたい。キャッシュユニット615は、プリミティブの頂点をクリッピング及びカリングユニット625に渡し、ここでなんらかのクリッピングがそのプリミティブに対して再度実行される。クリッピング及びカリングユニットによって生成された頂点は、次に、それらを画面空間に変換する投影ユニット630に渡される。画面空間の頂点/プリミティブは、次に、通常のタイルベースレンダリングシステムの場合と同じように動作する隠面除去ユニット635に渡される。隠面除去ユニットは、次に、可視プリミティブインデックスのリスト及びパッチ参照を次の動作相に渡す。図7は、パッチベースデータのためのラスタ化プロセスの属性相を示す。タイルベースパラメータフェッチユニット700は、パッチデータに対する参照、及び、現在のタイル内のパッチからの可視プリミティブのインデックスのリストを受け取る。タイルベースパラメータフェッチユニットは、パッチによって参照されるハルシェーダデータをフェッチし、エッジテッセレーション係数をドメインテッセレーションユニット705に渡し、制御点データをドメインシェーディングユニット715に渡す。この相において、パラメータフェッチユニット700は、制御点に関連付けられた全てのデータを取り出し、それをドメインシェーディングユニット710に渡すことに留意されたい。プリミティブ頂点のインデックスデータは、キャッシュユニット715に渡され、キャッシュユニットは、前の相の場合と同様に、ドメインシェーダによって予め生成された頂点に関するデータを収容する。頂点が存在しない場合には、キャッシュユニットは、ドメインシェーダユニットがそれを生成することを要求する。この相において、ドメインシェーディングユニットは、全ての頂点成分を生成するために必要とされるコードを実行する。キャッシュユニットは次に、前の相における場合と同様にプリミティブ頂点をクリッピング、カリング及び投影ユニット720及び725に渡し、それらは、その後シェーディングユニット730に渡され、そこで通常のタイルベースレンダリングプロセスの場合と同様に処理される。図8は、上述の3相プロセスを用いたテッセレーションをサポートするように修正されたタイルベースレンダリングシステムを示す。プリミティブ/コマンドフェッチユニット800は、最初に、プリミティブ及び状態情報をアプリケーションからフェッチし、それらをシェーディングユニット805に提供する。シェーディングユニットは、相1に関して説明したように、頂点シェーディング及びハルシェーディングを実行する。シェーディングユニットは、次に、ハルシェーディングデータをドメインテッセレーションユニット825及び連結性テッセレーションユニット830に渡し、同じデータをパラメータバッファ860に書き出す。ドメインテッセレーションユニットは、次にドメイン点を生成し、これらはシェーディングユニットへとフィードバックされ、シェーディングユニットは、ドメインシェーダの位置部分を適用し、生成された頂点をキャッシュユニット850に送る。連結性テッセレーションユニット830は、プリミティブインデックスをキャッシュユニットに送る。参照された頂点は、次にクリッピング及びカリングユニット855に送られ、そこで不可視のサブピクセル、非サンプル、交差した及び背面のプリミティブがカリングされ、なんらかの必要とされるクリッピングが適用される。得られた頂点は、それらを画面空間に投影する投影ユニット815に渡される。得られた画面空間プリミティブは、次にタイリングユニット865に渡され、相1に関して上で説明したように生成されたタイルごとのプリミティブリストがパラメータバッファ860に書き込まれる。このプロセスは、通常のタイルベースレンダリングの場合と同様に、シーン内の全てのプリミティブに対して繰り返される。ラスタ化は、通常のタイルベースレンダリングデバイスと同様に、タイルごとに実行される。オブジェクトリストは、タイルパラメータフェッチユニット835によってフェッチされ、タイルパラメータフェッチユニットは、通常のプリミティブ型式については、通常のタイルベースレンダリングデバイスに関して説明したように、それらをタイルごとにHSRユニットに供給する。タイルパラメータフェッチユニットは、パッチベースプリミティブに遭遇した場合には、テッセレーションプロセスの相1において発せられた、関連付けられたハルシェーダ出力データをシェーディングユニット805へとロードする。タイルパラメータフェッチユニットは、次に、ドメインシェーダがその上で動作する必要があるテッセレートされたドメインからの頂点のインデックスを、ドメインテッセレーションユニット825に送る。ドメインテッセレーションユニットは、供給されたインデックスに対応するテッセレートされたドメイン内のu、vの値を生成し、それらをシェーディングユニット805に渡し、シェーディングユニットは、テッセレーションプロセスの相2に関して説明されたようにドメインシェーダの位置部分を適用する。生成された位置の値は、次にキャッシュユニット850に渡される。ドメインシェーディングされた頂点位置は、カリング及びクリッピングユニットによってキャッシュ850から読み出され、カリング及びクリッピングユニットは、クリッピングされない/カリングされないプリミティブを投影ユニット870に渡し、投影ユニットは、頂点を画面空間に投影する。得られた画面空間プリミティブは、次に隠面除去ユニット840に戻され、そこで、通常のタイルベースレンダリングと同様に隠面除去が実行される。隠面除去後に可視のプリミティブはいずれも、タイルパラメータフェッチユニット835に戻され、タイルパラメータフェッチユニットは、残ったプリミティブのインデックスをドメインテッセレーションユニット825に対して発行する。得られたドメイン点は、再びシェーディングユニット805に渡され、シェーディングユニットは、いまや、完全なドメインシェーダを適用して、必要とされる全ての点及びテクスチャの座標値を作成する。作成された値は、FPU845に戻される前に、キャッシュブロック、クリッピング/カリングブロック及び投影ブロックに渡される。FPUは、属性のイテレーションをいくらでも実行し、これは次にシェーディングユニット805へと渡され、そこで通常のピクセルシェーディングが通常のタイルベースレンダリングデバイスと同様に実行される。