JP5847159B2 - タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション - Google Patents

タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション Download PDF

Info

Publication number
JP5847159B2
JP5847159B2 JP2013506739A JP2013506739A JP5847159B2 JP 5847159 B2 JP5847159 B2 JP 5847159B2 JP 2013506739 A JP2013506739 A JP 2013506739A JP 2013506739 A JP2013506739 A JP 2013506739A JP 5847159 B2 JP5847159 B2 JP 5847159B2
Authority
JP
Japan
Prior art keywords
tile
data
primitive
list
domain
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.)
Active
Application number
JP2013506739A
Other languages
English (en)
Other versions
JP2013527526A (ja
Inventor
ジョン ウィリアム ホーソン
ジョン ウィリアム ホーソン
Original Assignee
イマジネイション テクノロジーズ リミテッド
イマジネイション テクノロジーズ リミテッド
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 イマジネイション テクノロジーズ リミテッド, イマジネイション テクノロジーズ リミテッド filed Critical イマジネイション テクノロジーズ リミテッド
Publication of JP2013527526A publication Critical patent/JP2013527526A/ja
Application granted granted Critical
Publication of JP5847159B2 publication Critical patent/JP5847159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Description

本発明は、3次元コンピュータ・グラフィックスのレンダリング・システムに関し、特に、タイル・ベース・レンダリング・システムにおいてサーフェスのパッチをテッセレートするための方法及び装置に関する。
高次サーフェスは、コンピュータ・グラフィックス業界においては周知の技術である。多項式の関数である高次サーフェス、即ち「パッチ」は、典型的には、曲面の挙動を記述するために用いられる制御点の集合を、変数「t」(2次元でプロットされる曲線の場合)又は2つの変数u、v(3次元でプロットされる曲線の場合)と曲線のサーフェスとの間の周知の数学的パラメータ関係の観点から定義する。図1は、3Dコンピュータ・グラフィックス内で用いられる高次サーフェス型式の周知の例であるベジエパッチを示す。ベジエ面110上の点P100は、パラメータ座標u、v120(ドメイン座標としても知られる)及び対応する制御点ki,j130の関数によって定義され、
Figure 0005847159
ここで、A及びBは、
Figure 0005847159
と定義される定数である。
P(u,v)の値は、制御点ki,j130によって表されるハル140内にあることに留意されたい。これは、1つの可能なサーフェス形成の一例に過ぎず、他に多くの可能性があることにも留意されたい。
テッセレーションは、サーフェスを、元のサーフェスの面上にあり、かつその境界内にある、幾つかのより小さな隣接するサーフェスにさらに分割する周知の技術である。図2は、バイナリ分割を用いる、ベジエパッチのドメイン点のテッセレーションを示す。16個のドメイン点を有し、各軸上の間隔が0.25であるテッセレートされていないドメイン200は、テッセレートされたパッチ内の点の最小数を表し、これはベジエ面内の点の数と同じである。1レベルのテッセレーションが210において適用され、その結果、元の点の集合のそれぞれの隣接した点の対の間の中点に位置する間隔にて生成されたドメイン点のさらなる集合が得られる。第2のレベルのテッセレーション220は、210において生成されたこれらの点の間にさらなる中点の集合を導入する。このプロセスが、用途によって定まる適切な所望のレベルのテッセレーションが達成されるまで繰り返される。この手法は、多くの方法のうちの可能な1つの方法を表すものであり、単なる例としてここで提示されるものであることに留意されたい。
マイクロソフトのDx11アプリケーション・プログラミング・インターフェース(API)は、グラフィックス・ハードウェア・パイプライン内でパッチを実装するためのプログラム可能な手法を導入する。図3は、Dx11 APIによって要求されるパイプラインを示す。頂点シェーダ段階300は、パッチの個別の制御点の集合を取得し、それらに対して、当業者に周知の方式でプログラム可能ハードウェアを用いて任意の数学的変換を適用する。変換された制御点は、次にハル・シェーダ110に渡され、ハル・シェーダは、そのパッチのエッジのためのテッセレーション係数を計算し、変換された制御点に対して、アプリケーション定義されたさらなる修正を適用する。
パッチのためのエッジ・テッセレーション係数は、テッセレーション・ユニット320に渡される。テッセレーション・ユニットは、ドメイン・テッセレーションと連結性テッセレーションの2つの部分に分けられる。ドメイン・テッセレーションは、図2に関して説明された方式と同様であるがDX11 APIによって規定された特定の手法を用いる方式で、与えられたテッセレーション係数に基づいて、パッチを「ドメイン」点として知られる幾つかの点にさらに分割する。連結性テッセレーションは、得られた「ドメイン」点をどのように組み合わせ又は連結して、テッセレートされたプリミティブを作成するかを決定する。ドメイン・テッセレーションと同様に、これを実施する方法はマイクロソフトのDx11によって定められており、当業者はそれに精通しているであろう。
テッセレートされたドメイン点は、ドメイン・シェーダ330に渡され、ドメイン・シェーダは、それらテッセレートされたドメイン点を、プログラム可能な方式でハル・シェーダによって作成された制御点と組み合わせる。典型的には、ドメイン・シェーダは、図1に関して上で説明したベジエパッチのような周知の曲面形成を適用することになる。得られた値は、次に、変位マッピングのような周知の技術を用いてさらに修正することができる。変位マッピングは、高次サーフェス・テッセレーションの結果をテクスチャ・マップからサンプリングされた高さによって変位させる技術である。変位マッピングは、典型的には、曲面上の点が、容易に定義可能な「ハル」内にはもはや存在しないことを意味する。
タイル・ベース・レンダリング・システムは周知である。これらは、画像を複数の矩形ブロック、即ちタイルにさらに分割する。これを行い、その後でテクスチャリング及びシェーディングを実行する1つの方法が、図4において概略的に示される。これらの技術は周知である。
タイル・ベース・レンダリングは、一般に2つの相に分けられ、その第1相は、以下の操作を実行するジオメトリ処理相として知られる。
最初に、プリミティブ/コマンド・フェッチ・ユニットが、コマンド及びプリミティブ・データをメモリから取り出し、これをジオメトリ処理ユニットに渡す。ジオメトリ処理ユニットは、プリミティブ及びコマンド・データを周知の方法を用いて画面空間に変換する。
このデータは、次にタイリング・ユニットに供給され、タイリング・ユニットは、画面空間ジオメトリからのオブジェクト・データを、定義された矩形領域、即ちタイルの集合の各々についてのオブジェクト・リスト内に挿入する。各タイルについてのタイル・オブジェクト・リストは、そのタイル内に全体的に又は部分的に存在するプリミティブを含む。タイル・オブジェクト・リストは、画面上の全てのタイルについて存在するが、いくつかのオブジェクト・リストは、その中にデータを有さないこともある。
タイル・ベース・レンダリングの第2相は、一般に、以下の操作を実行するラスタ化相と呼ばれる。
オブジェクト・リストは、タイル・パラメータ・フェッチ・ユニットによってフェッチされ、タイル・パラメータ・フェッチ・ユニットは、それらをタイルごとに隠面除去ユニット(HSR)に供給し、HSRは、最終的なシーンに寄与しない(普通は、それらが別のサーフェスによって覆い隠されるという理由で)サーフェスを除去する。HSRユニットは、タイル内の各プリミティブを処理し、可視ピクセルに関するデータのみをシェーディング・ユニットに渡す。
シェーディング・ユニットは、HSRからデータを取得し、そのデータを使用して、テクスチャ・ユニットを用いてテクスチャをフェッチし、周知の技術を用いて、可視オブジェクト内の各ピクセルにシェーディングを適用する。シェーディング・ユニットは次に、テクスチャ処理及びシェーディングが施されたデータをオン・チップのタイル・バッファに送る。操作はオン・チップのタイル・バッファに適用されるので、これに関連付けられる外部メモリの帯域幅は排除される。
各タイルが仕上がったら、得られたデータは外部のシーン・バッファに書き込まれる。
タイル・ベース・レンダリング・システムにDx11プログラム可能テッセレーション・パイプラインを追加することは、最初に十分なテッセレートを行って上述の型式の変位マッピングを適用しないと、パッチ・データをタイリングすることは不可能であることを意味する。この結果として、タイリングされた画面空間パラメータのリスト204に関連付けられるメモリ及び帯域幅の要件の著しい増大がもたらされる。
本発明の好ましい実施形態は、パッチ・データをタイリングされた画面空間パラメータのバッファへと展開(expand)することに関連付けられるメモリ及び帯域幅のコストを伴わずに、タイル・ベース・レンダリング・システムがプログラム可能なテッセレーション/高次サーフェス及び変位マッピングをサポートすることを可能にする、方法及び装置を提供する。このことは、テッセレーション・プロセスを以下の3つの相に分けることによって達成される。
・位置テッセレーション及びタイリング
・位置テッセレーション及び隠面除去
・位置及び属性テッセレーション並びにシェーディング
第1相は、タイル・ベース・レンダリング・システムのジオメトリ処理相内で行われ、各タイルに重なるパッチを構成するプリミティブを参照して、タイリングされた画面空間ジオメトリのリストを作成する。展開されたジオメトリは、この段階ではパラメータ・バッファ内に書き込まれない。これは、パッチの頂点シェーディング及びハル・シェーディングを完全に実行し、ハル・シェーダの出力データを画面空間パラメータ・バッファに書き込むことによって行われる。テッセレーション・ユニットのドメイン・テッセレーション部分は、次に、パッチを構成する全てのドメイン点を作成し、連結性テッセレーション部分は、パッチを構成するプリミティブのインデックス付きリストを作成する。ドメイン・シェーダ330は、図3のドメイン・シェーダの位置部分のみを実行してプリミティブの位置データを作成し、次にこれをインデックス付きリストと共に用いて、テッセレートされたプリミティブをタイリングする。この相の結果は、テッセレートされたプリミティブのプリミティブ・インデックスのタイルごとのリストであり、ハル・シェーダの結果は、パラメータ・バッファに1回書き込まれる。テッセレートされたプリミティブ・インデックスのリストは圧縮することができることに留意されたい。
第2相及び第3相は両方とも、タイル・ベース・レンダリングのラスタ化相の間に行われる。
第2相は、パッチ・データに対して隠面除去を実行する。これは、ドメイン点を再計算すること、及び、各タイル内に存在するテッセレートされたプリミティブについて、ドメイン・シェーダの位置のみの部分を実行することによって行われる。これは、可視プリミティブのリストを作成する。
第3相は、隠面除去後に残ったプリミティブについてドメイン点を再計算する。次にドメイン・シェーダがこれらの点に完全に適用され、即ち、頂点属性も計算される。得られたプリミティブは、通常どおりパイプラインの下流へと渡される。第3相は、隠面除去後に実行されるので、残ったプリミティブをその完全な限度まで処理するために必要とされる作業量は、それらのプリミティブが前の2つの相のいずれかにおいて完全に処理される場合と比べて少ない。
一実施形態において、おそらく多少の効率の損失を伴うが、第1相及び第2相を組み合わせて単一の相にすることができる。
ここで本発明の好ましい実施形態を、添付の図面を参照して、例として詳細に説明する。
ベジエパッチを示す。 テッセレーションのプロセスを示す。 Dx11プログラム可能テッセレーション・パイプラインを示す。 上述のような既知のタイル・ベース・レンダリング・システムの概略図を示す。 本発明の実施形態におけるタイリング相を示す。 本発明の実施形態の隠面除去相を示す。 本発明の実施形態における属性相を示す。 本発明の実施形態をサポートするように改変されたタイル・ベース・レンダリング・システムを示す。
図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へと渡され、そこで通常のピクセル・シェーディングが通常のタイル・ベース・レンダリング・デバイスと同様に実行される。
100:ベジエ面上の点P
110:ベジエ面
120:パラメータ座標(ドメイン座標)
130:制御点
140:ハル
200:テッセレートされていないドメイン
210:テッセレーションの第1のレベル
220:テッセレーションの第2のレベル

Claims (18)

  1. タイル・ベースの3次元コンピュータ・グラフィックス・レンダリング・システムにおいてサーフェスのパッチをテッセレートするための方法であって、
    パッチを構成するテッセレートされたプリミティブについてのプリミティブ・インデックスのタイルごとのリストを導出するステップと、
    前記パッチの前記プリミティブに対して隠面除去を実行するステップと、
    前記隠面除去後に残ったプリミティブのドメイン点を導出するステップと、
    表示のために、前記プリミティブをシェーディングするステップと
    を含むことを特徴とする方法。
  2. 前記プリミティブ・インデックスのタイルごとのリストを導出するステップは、
    パッチ・データを受け取ることと、
    前記パッチ・データから、ドメイン点テッセレーション・データ及び連結性テッセレーション・データを決定することと、
    前記ドメイン点データ及び前記連結性テッセレーション・データによって要求されるプリミティブを画面空間に投影することと、
    このようにして前記投影されたデータから、前記プリミティブ・インデックスのタイルごとのリストを決定することと
    を含むことを特徴とする、請求項1に記載の方法。
  3. 前記隠面除去のステップは、パッチのドメイン点データを再計算することと、前記ドメイン点データに関連付けられた位置データから、プリミティブがタイル内で可視であるかどうかを決定することと、可視プリミティブのタイルごとのリストを導出することとを含むことを特徴とする、請求項2に記載の方法。
  4. 前記隠面除去後に残ったプリミティブのドメイン点データを導出するステップは、前記ドメイン点データを再計算することと、前記シェーディング・ステップにおいて用いるためにドメイン点の完全な頂点属性を導出することとを含むことを特徴とする、請求項3に記載の方法。
  5. 前記テッセレートされたプリミティブについてのプリミティブ・インデックスのタイルごとのリストを得るステップは、ハル・シェーディング・ユニットからの出力を画面空間ジオメトリ・バッファに提供することを特徴とする、請求項1〜請求項4のいずれかに記載の方法。
  6. 前記プリミティブ・インデックスのタイルごとのリストを導出するステップは、不可視のテッセレートされたデータをいずれも、これらが前記プリミティブ・インデックスのタイルごとのリストに含まれないように除去するステップを含むことを特徴とする、請求項1〜請求項5のいずれかに記載の方法。
  7. それぞれのタイルごとのリストについてのプリミティブ・インデックスの前記リストは、前記テッセレートされたプリミティブについての圧縮又は非圧縮インデックス・データを含むことを特徴とする、請求項6に記載の方法。
  8. 前記隠面除去を実行するステップは、予め生成された頂点についてキャッシュ・メモリ内にデータを格納するステップを含むことを特徴とする、請求項1〜請求項7のいずれかに記載の方法。
  9. 前記隠面除去後に残ったプリミティブのドメイン点を導出するステップは、プリミティブ頂点についてキャッシュ内にインデックス・データを格納するステップを含むことを特徴とする、請求項1〜請求項8のいずれかに記載の方法。
  10. タイル・ベースの3次元コンピュータ・グラフィックス・レンダリング・システムにおいてサーフェスのパッチをテッセレートするための装置であって、
    パッチを構成するテッセレートされたプリミティブについてのプリミティブ・インデックスのタイルごとのリストを導出するための手段(402)と、
    前記パッチの前記プリミティブに対して隠面除去を実行するための手段(435)と、
    前記隠面除去後に残ったプリミティブのドメイン点を導出するための手段と、
    表示のために、前記プリミティブをシェーディングするための手段(445)
    を含むことを特徴とする装置。
  11. 前記プリミティブ・インデックスのタイルごとのリストを導出するための手段は、
    パッチ・データを受け取るための手段と、
    前記パッチ・データから、ドメイン点テッセレーション・データ及び連結性テッセレーション・データを決定するための手段(510、515)と、
    前記ドメイン点データ及び前記連結性テッセレーション・データによって要求されるプリミティブを画面空間に投影するための手段(530)と、
    このようにして前記投影されたデータから、前記プリミティブ・インデックスのタイルごとのリストを決定するための手段(535)
    を含むことを特徴とする、請求項10に記載の装置。
  12. 前記隠面除去を実行するための手段は、パッチのドメイン点データを再計算するための手段と、前記ドメイン点データと関連付けられた位置データから、どこで前記プリミティブがタイル内で可視であるかを決定するための手段と、可視プリミティブのタイルごとのリストを決定するための手段とを含むことを特徴とする、請求項11に記載の装置。
  13. 前記隠面除去後に残ったプリミティブのドメイン点データを導出するための手段は、前記ドメイン点データを再計算するための手段と、前記シェーディング・ステップにおいて用いるためにドメイン点の完全な頂点属性データを導出するための手段とを含むことを特徴とする、請求項12に記載の装置。
  14. テッセレートされたプリミティブについてのプリミティブ・インデックスのタイルごとのリストを導出するための前記手段は、出力データを画面空間ジオメトリ・バッファに提供するハル・シェーディング・ユニット(505)を含むことを特徴とする、請求項10〜請求項13のいずれかに記載の装置。
  15. 前記プリミティブ・インデックスのタイルごとのリストを導出するための手段(525)は、不可視のテッセレートされたデータをいずれも、これらが前記プリミティブ・インデックスのタイルごとのリストに含まれないように除去するための手段を含むことを特徴とする、請求項10〜請求項14のいずれかに記載の装置。
  16. それぞれのタイルごとのリストについてのプリミティブ・インデックスの前記リストは、前記テッセレートされたプリミティブについての圧縮又は非圧縮インデックス・データを含むことを特徴とする、請求項15に記載の装置。
  17. 前記隠面除去を実行するための手段は、予め生成された頂点についてキャッシュ・メモリ(522)を含むことを特徴とする、請求項10〜請求項16のいずれかに記載の装置。
  18. 前記隠面除去後に残ったプリミティブのドメイン点を導出するための手段は、プリミティブ頂点についてキャッシュ内にインデックス・データを格納するための手段(540)を含むことを特徴とする、請求項10〜請求項17のいずれかに記載の装置。
JP2013506739A 2010-04-30 2011-04-28 タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション Active JP5847159B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1007348.4 2010-04-30
GBGB1007348.4A GB201007348D0 (en) 2010-04-30 2010-04-30 Programmable tessellation in a tile based rendering system
PCT/GB2011/000673 WO2011135316A2 (en) 2010-04-30 2011-04-28 Tessellation of patches of surfaces in a tile based rendering system

Publications (2)

Publication Number Publication Date
JP2013527526A JP2013527526A (ja) 2013-06-27
JP5847159B2 true JP5847159B2 (ja) 2016-01-20

Family

ID=42289978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013506739A Active JP5847159B2 (ja) 2010-04-30 2011-04-28 タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション

Country Status (6)

Country Link
US (5) US9818222B2 (ja)
EP (1) EP2564376B1 (ja)
JP (1) JP5847159B2 (ja)
CN (1) CN103180882B (ja)
GB (2) GB201007348D0 (ja)
WO (1) WO2011135316A2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
GB201104066D0 (en) * 2011-03-09 2011-04-20 Imagination Tech Ltd Compression of a tessellated primitive index list in a tile rendering system
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
WO2013101177A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Reducing the domain shader/tessellatorinvocations
US9449419B2 (en) 2012-03-30 2016-09-20 Intel Corporation Post tessellation edge cache
US10559123B2 (en) * 2012-04-04 2020-02-11 Qualcomm Incorporated Patched shading in graphics processing
US9922442B2 (en) * 2012-07-18 2018-03-20 Arm Limited Graphics processing unit and method for performing tessellation operations
US9076260B2 (en) 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9082204B2 (en) 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9142060B2 (en) 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
GB2500284B (en) 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
US10438314B2 (en) * 2012-10-26 2019-10-08 Nvidia Corporation Two-pass cache tile processing for visibility testing in a tile-based architecture
GB2545589A (en) 2012-11-02 2017-06-21 Imagination Tech Ltd On demand geometry and acceleration structure creation
GB2509113B (en) * 2012-12-20 2017-04-26 Imagination Tech Ltd Tessellating patches of surface data in tile based computer graphics rendering
US9087410B2 (en) * 2013-01-17 2015-07-21 Qualcomm Incorporated Rendering graphics data using visibility information
US9123168B2 (en) 2013-01-30 2015-09-01 Qualcomm Incorporated Output ordering of domain coordinates for tessellation
KR102053351B1 (ko) 2013-08-12 2019-12-06 삼성전자주식회사 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들
KR102109130B1 (ko) 2013-08-12 2020-05-08 삼성전자주식회사 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
KR102066533B1 (ko) * 2013-11-19 2020-01-16 삼성전자 주식회사 도메인 쉐이딩 방법과 이를 수행하는 장치들
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9773294B2 (en) * 2014-07-03 2017-09-26 Mediatek Inc. Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof
US9824412B2 (en) * 2014-09-24 2017-11-21 Intel Corporation Position-only shading pipeline
US20160093102A1 (en) * 2014-09-25 2016-03-31 Peter L. Doyle Efficient tessellation cache
KR102327144B1 (ko) 2014-11-26 2021-11-16 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법
KR20160063081A (ko) * 2014-11-26 2016-06-03 삼성전자주식회사 선택적 테셀레이션 방법 및 장치
US9659407B2 (en) 2015-01-26 2017-05-23 MediaTek Singapore, Pte. Lte. Preemptive flushing of spatial selective bins for deferred graphics processing
GB2542131B (en) * 2015-09-08 2019-09-11 Imagination Tech Ltd Graphics processing method and system for processing sub-primitives
GB2542133B (en) 2015-09-08 2020-05-27 Imagination Tech Ltd Graphics processing method and system for processing sub-primitives
US9760986B2 (en) * 2015-11-11 2017-09-12 General Electric Company Method and system for automated shaped cooling hole measurement
KR102381945B1 (ko) 2015-11-18 2022-04-01 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
WO2018031904A1 (en) * 2016-08-12 2018-02-15 Siemens Product Lifecycle Management Software Inc. Computer aided design with high resolution lattice structures using graphics processing units (gpu)
US9953395B2 (en) * 2016-08-29 2018-04-24 Intel Corporation On-die tessellation distribution
GB2560709B (en) * 2017-03-14 2021-02-24 Imagination Tech Ltd Graphics processing method and system for processing sub-primitives

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
GB2416100B (en) * 2002-03-26 2006-04-12 Imagination Tech Ltd 3D computer graphics rendering system
US7109987B2 (en) * 2004-03-02 2006-09-19 Ati Technologies Inc. Method and apparatus for dual pass adaptive tessellation
US7468726B1 (en) * 2005-12-01 2008-12-23 Nvidia Corporation Culling in a vertex processing unit
US9947130B2 (en) * 2008-01-23 2018-04-17 Intel Corporation Method, apparatus, and computer program product for improved graphics performance

Also Published As

Publication number Publication date
JP2013527526A (ja) 2013-06-27
US9818222B2 (en) 2017-11-14
GB2480012A (en) 2011-11-02
US20110267346A1 (en) 2011-11-03
CN103180882A (zh) 2013-06-26
US11861792B2 (en) 2024-01-02
US20240290035A1 (en) 2024-08-29
US20250139900A1 (en) 2025-05-01
EP2564376A2 (en) 2013-03-06
GB201007348D0 (en) 2010-06-16
US11610368B2 (en) 2023-03-21
CN103180882B (zh) 2016-03-23
EP2564376B1 (en) 2020-03-11
US20180033196A1 (en) 2018-02-01
US12190449B2 (en) 2025-01-07
US20230230323A1 (en) 2023-07-20
WO2011135316A3 (en) 2013-04-11
WO2011135316A2 (en) 2011-11-03
GB201107278D0 (en) 2011-06-15
GB2480012B (en) 2012-10-10

Similar Documents

Publication Publication Date Title
JP5847159B2 (ja) タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション
US11922534B2 (en) Tile based computer graphics
US20230351678A1 (en) Hidden culling in tile-based computer generated images
JP6563048B2 (ja) スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
TWI839352B (zh) 圖形處理器、數據處理器、及其等的操作方法
US8497876B2 (en) Infinite complexity deep-framebuffer rendering
US20160267709A1 (en) Graphics processing system
KR20150039495A (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
KR20110093404A (ko) 3차원 그래픽스 랜더링 장치 및 그 방법
CN114730452A (zh) 减少带宽曲面细分因子
KR20160068204A (ko) 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체
KR102512521B1 (ko) 텍스쳐 처리 방법 및 장치
CN107949867A (zh) 用于渲染数据的方法、计算机程序产品、显示单元和车辆
JP7100624B2 (ja) 優先プリミティブバッチのビニング及びソートを用いたハイブリッドレンダリング
KR20150042095A (ko) 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법
US10089783B2 (en) Graphics processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150824

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: 20151026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151124

R150 Certificate of patent or registration of utility model

Ref document number: 5847159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250