JP5111638B2 - パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法 - Google Patents

パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法 Download PDF

Info

Publication number
JP5111638B2
JP5111638B2 JP2011084835A JP2011084835A JP5111638B2 JP 5111638 B2 JP5111638 B2 JP 5111638B2 JP 2011084835 A JP2011084835 A JP 2011084835A JP 2011084835 A JP2011084835 A JP 2011084835A JP 5111638 B2 JP5111638 B2 JP 5111638B2
Authority
JP
Japan
Prior art keywords
graphics processor
patch
cone
parametric
control points
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 - Fee Related
Application number
JP2011084835A
Other languages
English (en)
Other versions
JP2011238213A (ja
Inventor
ムンクバーグ、ジャコブ
ハセルグレン、ジョン
トス、ロバート
アケナイン−モラー、トマス
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2011238213A publication Critical patent/JP2011238213A/ja
Application granted granted Critical
Publication of JP5111638B2 publication Critical patent/JP5111638B2/ja
Expired - Fee Related 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/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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
    • 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/30Polynomial surface description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Image Generation (AREA)

Description

本願は、概してグラフィックス処理に係り、詳しくは、相互的、リアルタイム、およびオフライン/フィルム描画等の描画システムのテセレーションに係る。
現代のグラフィックスプロセッサは、多くの小さな三角形に曲線をテセレーションするための専用ハードウェアを含む。DirectX11アプリケーションプログラミングインタフェース(「DX11」)(API)は、ハルシェーダ、固定機能テセレータ、およびドメインシェーダという3つの新しい段階をグラフィックスパイプラインに加えてテセレーションをサポートしている。ハルシェーダは、パッチごとに一度、および制御ポイントごとに一度実行され、通常は、テセレーション係数の計算および制御ポイントベースの変更に利用されている。固定機能テセレータは、テセレーション係数を入力として利用して、入力プリミティブのドメインにおける大きな頂点位置のセットおよび頂点間の接続情報を生成する。接続情報により多くの小さな三角形が生成される。ドメインシェーダは、テセレータが頂点位置を生成するたびに一度実行される。通常のドメインシェーダの用途は、パラメトリック曲線の位置および法線を、例えば一式の制御ポイント、重心座標および詳細なテクスチャを入力として利用して評価することである。出力は、一式の属性で定義される、配置された頂点である。属性の1つは位置であるが、シェーダはさらに、配置頂点の法線/接線/二重接線/テクスチャ座標/色/透明性その他の属性を算出することもできる。
コーナ制御ポイントおよびベクトルbおよびtを示しており、パッチのコーナ間にベクトルを形成することでOBB軸を導出することができる。 上の行の2つの離散配置ピークを有する三次多項式をバウンディングする25のステップを経て形成されるバウンドの一例を示しており、軸がベジエ曲線の制御ポイントにより決定されるAABBを利用する左画像およびOBBを利用する右画像が示され、下の行により配置シェーダにパーリンノイズが加えられている。 同じ数のサブディビジョンを有するAABB対OBBバウンディングの三次元の一例を示す。 左端の画像が正規化前の通常のパッチを示し、中間画像では各制御ポイントが正規化されて単位球体にマッピングされており、最後に右端の画像が、パッチの正規化された保守的なバウンドである法線の錐体によりバウンディングされる投影を示すような、通常のパッチの通常のバウンディング法を示している。 TおよびBが示す2つのパラメトリック導関数についてバウンディング錐体が与えられた場合に、T内の任意のベクトルよびB内の任意のベクトルの外積をバウンディングする錐体が導出されてNとして示されることを示している。 ボックスサイズを、16個のサブディビジョンステップの実行によりソート基準としてバウンディングするスクリーンスペースを利用する2つの異なるビューを示し、その結果サブディビジョンの密度に生じる差異を示している。 本発明の一実施形態における配置ベジエ曲線(Bezier surface)パッチのバウンディングおよびバウンディングアルゴリズムを示すフローチャートである。 一実施形態における配置ベジエパッチのOBBを見つけることにより、配置パッチのバウンドを計算するより詳細なフローを示すフロー図である。 制御ポイントを利用してベースパッチのOBBを定義する一実施形態を示すフローチャートである。 正規化された法線を見つける一実施形態を示すフローチャートである。 正規化された法線を見つける別の実施形態を示すフローチャートである。 本発明の一実施形態のハードウェアを示す。
ドメインシェーダ評価の数を低減させることで、グラフィックスパイプラインのその段階で必要となる計算リソースが低減される。これは、最終画像に貢献しないパッチをカリングすることにより行うことができる。このカリング処理を効率的に行うべく、配置曲線の階層的バウンドを計算するアルゴリズムを利用することができる。
さらにタイルベースの描画アーキテクチャにおいては、入力プリミティブのバウンドが、入力プリミティブをタイルへと効率的にソートするために必要となる。「バウンディングボリューム」とは、ボックスまたは球体といった、別のオブジェクトを包含する、ボリュームを有するオブジェクトのことである。ドメインシェーダはプログラム可能であるので、出力位置の保守的且つタイトなバウンドを提供することが難しく、これにより、生成された小さな三角形を個々にタイルにソートする必要が生じる。この処理により、タイルキューにおいてメモリ要件が増加して、利用帯域幅が増加し、パッチのプリミティブレベルにおけるオクルージョンカリング処理の効率性が下がる。
この代わりに、これらバウンドは、ユーザが指定するパラメータを利用せずに、ドメインシェーダのみに基づきオンザフライで(ブロック12)計算することもできる(図7参照)。次いで、プリミティブをより小さなサブパッチへと分割して階層を生成する際にこのバウンドを適合的に改良してよい。一実施形態では、アルゴリズムにより、効率的な正規のバウンディング、配置テクスチャの配向されたバウンディングボックスおよび最小最大ミップマップ階層を利用して、動的配置パラメトリック曲線の保守的且つタイトなバウンディングが実行される(例えばベジエパッチ等)。パッチをカリングする(ブロック16)。カリングしない場合には、プリミティブをテセレーションおよびドメインシェーディングにかける(ブロック18)。
パッチをテセレータに送信する必要がないので、一部の実施形態ではパッチにおいてドメインシェーダおよびテセレータ処理の両方が低減しうる。入力パッチをカリングする場合には、一部の実施形態ではテセレーションもドメインシェーディングも行わなくてよい場合もある。同様に、サブパッチをカリングする場合には、一部の実施形態ではこれ以上そのサブパッチに処理を行わないようにすることもできる。そうではない場合には、サブパッチをテセレーションして、ドメインシェーディングにかける。
二重曲線(bi-cubic)ベジエパッチのコレクションは、滑らかな曲線を生成するために行われることの多い描画プリミティブである。公知のアルゴリズムを利用して、カットマル−クラークサブディビジョン曲線をこれらのパラメトリックパッチのコレクションへと変換して、且つ、再帰的なサブディビジョンプロセスの限界面を忠実に近似することができる。通常、高い解像度のテクスチャからの配置をパッチの法線ベクトルの方向に加えることで、最終的な曲線の詳細を増加させている。
配置を有するベジエパッチは、APIの描画においてドメインシェーダで利用されてよい。ベジエパッチは、その制御ポイントによりコンパクトに表され、このパラメトリック曲線表現は、(再帰的なサブディビジョン曲線とは異なり)並列に効率的に評価することができる。
ベジエパッチp(u,v)は、パラメトリック曲線であり、つまり、2つのパラメトリック座標uおよびvで定義される曲線である。「ベースパッチ」という用語は、まだ配置されていないベジエパッチのことであり、最終的に配置された曲線と区別される。パラメトリック座標(u,v)の配置ベジエパッチを評価するドメインシェーダは、ベースパッチ位置p(u,v)、ベースパッチの正規化された法線
Figure 0005111638
および(通常は)テクスチャからとった配置値t(u,v)を算出する。配置がベースパッチの法線方向に行われている場合には、ドメインシェーダ(モデルビュープロジェクションマトリックスで乗算される前)は、以下のようになる。
Figure 0005111638
d(u,v)をモデルビュープロジェクションマトリックスMで乗算すると、均一な座標でクリップスペース位置qが以下のように得られる。
Figure 0005111638
正規化されたデバイス座標は、sx=qx/qwおよびsy=qy/qwで与えられる。
パラメトリックドメインにおけるq(u,v)の保守的なバウンドは、a<=u<=bである場合、c<=v<=dとなってよい。
次に、p(u,v)のバウンディング方法を説明する。ベジエパッチは、凸形状のハル特性を有し、その制御ポイントを利用することで簡単にバウンディングすることができる。ベジエパッチについて軸が合わせられたバウンディングボックス(AABB)を見つけることで、1制御ポイントについて3つの最小処理および3つの最大処理を行うことができる。
ベジエサブディビジョン処理を繰り返すことで、分割されたパッチの制御ポイントケージは、急速にその下にあるベースパッチに向かって収束する。さらに各ステップで元のパッチがpAおよびpBの2つに再帰的に分割される場合には、pAを生成するために必要となるド・カステリョ処理ステップにより、pBの制御ポイントが副産物として生成される。これは効率的な実装といえよう。
べースパッチ定義された軸の制御ポイントから、配向されたバウンディングボックス(OBB)の軸を導出することができる。このボックスは、AABBよりもタイトにベースパッチを包含することができる。同一の反復における分割で生じた2つのパッチ各々について、両ベースパッチ、正規のパッチ、および配置テクスチャおよびルックアップを改良する。図7のブロック12に示す配置曲線のバウンドを計算するのに利用されるステップを示す図8を参照すると、ベースパッチがある軸沿いにベジエサブディビジョン法を利用して分割されている。ブロック14に示すベースパッチのバウンディングには、OBB軸を制御ポイントから見つけ、全ての制御ポイントをこれらの軸に投影する処理が含まれる。各軸沿いの最小および最大値は、制御ポイントを全て含むOBBを導出するべく配置されており、ベジエパッチの凸形状のハル特性は、曲線がこのOBBに含まれていることを意味している。
次にブロック15に示すように、配置の最小および最大値を、最小/最大テクスチャ階層で探す。そしてダイアモンド19で配置がゼロであるか判断する。配置がゼロである場合には、モデルビュープロジェクションをパッチのバウンディングボックスの8つのコーナに適用して(ブロック20)、バウンドを戻す(ブロック23)。配置がゼロではない場合には、モデルビュープロジェクション変換を行う(ブロック20)前に以下にTPATCHおよびNPATCHと称して説明される技術の一方を利用して正規のバウンディングをブロック21で行い、バウンドを戻す(ブロック23)。最後にブロック23でモデルビュープロジェクション変換を行う。
ベジエパッチにおいては、コーナ制御ポイント間のベクトル(図1)を合計して2つの軸を得る(図9のブロック24)。(m+1)x(n+1)制御ポイントを有するパッチを想定すると、4つのコーナ制御ポイントC0,0cm,0,c0,n、およびcm,nとなり、以下の2つのベクトルが形成される。
Figure 0005111638
Figure 0005111638
tおよびbは、それぞれuおよびvのパラメトリック方向において適切な平均勾配として考えることができる。これらは直交しない。これらの外積(図9のブロック26)によって第3の軸「n=bのtとの外積」が生じる。直交する座標系を形成するべく、x=t、y=tのnとの外積、およびz=nと設定することで、各ベクトルを正規化する(図9のブロック28)。最終的に生じる座標系は、
Figure 0005111638
となる。これにより、殆どのケースでAABBを利用するときと比べてバウンディングボックスのサイズが低減する。制御ポイントケージに基づいて、より精密なOBB適合スキームを導出することもできるが、実際には、上述した簡単な方法で、曲線をタイトにバウンディングするOBBの軸を生成することができる。AABBおよびOBBによるバウンディング間の品質の差異は、曲線について図2で強調表示されており、ベジエパッチについて図3で強調表示されている。不完全なケースについては単にAABBを利用する。以下に示すように、OBB軸も正規のバウンディングアルゴリズムで非常に有用である。
ドメインにおいてパッチ法線
Figure 0005111638
をバウンディングすることは、ベース位置p(u,v)のバウンディングよりもかなり難易度が高い。法線方向は、ベースパッチp(u,v)の2つのパラメトリック導関数の外積として計算される。
ベジエ曲線のテンソル積の標準記法に従って、ベジエパッチp(u,v):R?Rが以下のように定義される。
Figure 0005111638
上の式においてci,jは制御ポイント、mおよびnはパラメトリック座標uおよびvそれぞれにおけるパッチの度合いを示す。Bi(u)およびBj(v)は、バーンスタイン多項式である。
偏導関数は以下のように表すことができる。
Figure 0005111638
Figure 0005111638
ここでは以下が成り立つ。
Figure 0005111638
Figure 0005111638
i,j、およびbi,jは、ベースパッチの制御ポイント間の(スケーリングされた)差異を表すのでベクトルである。曲線法線(正規化前のもの)は、以下のように定義される。
Figure 0005111638
正規化された法線は以下のようにして求められる。
Figure 0005111638
p(u,v)の二重次数がパラメトリック座標の(m,n)である場合には、第一次パラメトリック導関数は(m−1,n)次および(m,n−1)次である。以下に示すように、パッチの外積をとった後のパッチの二重次数は、(m+n−1,m+n−1)となる。従って、双三次ベジエパッチの法線方向を表すパッチによって、二重次数(5,5)を正確に表現する必要が出てくる。
配置を適用するには正規化された法線が必要となる。正規化処理(数式11)では、副式
Figure 0005111638
を正確に表すために二重次数2(m+n−1,m+n−1)が必要となる。双三次ベジエパッチでは、これらの項を、二重次数(10,10)ベジエパッチとして正確に表すことができる。多くの場合、この処理は高価なので不可能である(11・11=121制御ポイント)。最後に、逆数平方根が、バーンスタイン多項式では正確に表すことができない。加えて、オペランドが法線の長さの二乗であることから、逆数平方根のオペランドは常にゼロ以上ではなくてはならない。この条件を満たさない場合には、infまたはNaNが生じうる。従って
Figure 0005111638
のバウンディングされた表現は、厳密にゼロを超える値ではなくてはならない。3つの二乗された項(実数)の合計の平方根がゼロ以上であるべきであることから、一見これは些細なことに思われる。しかし、バウンディングのために制御ポイントケージのバウンディングボックスを利用する実際のケースでは、全ての制御ポイントが正の値をとることは保証できないので、難しい。
以下に、上述した問題の殆どが回避されている法線のバウンディングアルゴリズムを示す。まとめると、法線のベクトルベジエパッチを、パラメトリック導関数から導出して(図10のブロック32)、その制御ポイントを単位球体に投影して(図10のブロック34)、単位球体におけるその立体角をOBB座標フレームにバウンディングすることで(図10のブロック36)、正規化された法線の保守的なバウンドが得られる。これを法線のバウンディング法NPATCHと称する。
法線が以下として定義されたことを想起されたい。
Figure 0005111638
以下はバーンスタイン多項式の積についての公式である。
Figure 0005111638
これを利用すると、数式12は以下のように表される。
Figure 0005111638
これは、制御ベクトルvp,qを有する二重次数(m+n−1,m+n−1)のパッチであり、以下のように表すことができる。
Figure 0005111638
パッチにおいてベースパッチの法線を保守的にバウンディングするには、正規化後の法線が単位長を有するという事実を用いることができる。従って制御ベクトルvp,qを正規化して、それらを単位球体上のポイントとして表すこととする。
これらバウンドを導出する手っ取り早い方法としては、パッチの法線の近似値であるOBB座標フレームにおける
Figure 0005111638
軸を利用して、任意の正規化された制御ポイントと
Figure 0005111638
軸との間の最小スカラー積を単に計算する、というものがある。これにより、正規化された方向を包含する錐体の半角のコサイン値が求まる。これは図4に示されている。
双三次ベジエパッチにおいては、vp,qの算出には、144個の外積が含まれる。2項式の係数は、小さなルックアップテーブルで予め計算しておくことができる。
しかし、方向がパラメトリック座標に対応する全ての相関が失われることになる。この方法がどのくらいタイトであるかは、非正規の法線が許容範囲内で良好にバウンディングされているか否かにかかっており、これは大きなドメインでは難しくなり、サブドメインが縮小されると容易となる。
より粗いバウンドは、2つの接する錐体を第一次パラメトリック導関数パッチ
Figure 0005111638
の制御ポイントから形成することで、これよりも手っ取り早く得ることができる(数式6および7を参照のこと)。この導関数パッチの制御ポイントは、単位球体上で正規化およびバウンディングされて(図4を参照のこと)、2つの錐体
Figure 0005111638
が形成される。錐体Tは、正規化された軸
Figure 0005111638
および半角αにより定義される。
錐体TおよびB同士が重ならない場合には、2つのベクトルについて可能性のある全ての外積をバウンディングする錐体N
Figure 0005111638
を、各TおよびBから1つずつ構築することができる。軸
Figure 0005111638
は、t×bの方向にあり、その半角θは、
Figure 0005111638
で与えられる。 ここで
Figure 0005111638
が、
Figure 0005111638
および
Figure 0005111638
にそれぞれ平行な錐体の軸の間の2つの角度のうちの小さいものに相当する。錐体Nは、パッチの全ての正規化された法線をバウンディングする。錐体T、B,およびNを図5に示す。
上述した
Figure 0005111638
および
Figure 0005111638
軸を、錐体TおよびBの軸として利用して、錐体の角度は、パラメトリック導関数のパッチの制御ポイントから錐体TおよびBについて見つけることができる(図11のブロック40)。円錐角のコサイン
Figure 0005111638
は単に、
Figure 0005111638
軸とタンジェントパッチからの任意の正規化された制御ポイントとの最小ドット積である。
正規の錐体は、錐体TおよびBの外積の計算により導出される(図11のブロック42)。OBB座標フレームで表される正規化された法線のバウンドは以下のようになる。
Figure 0005111638
ここで、θは、正規な錐体Nの錐体の半角である。等式
Figure 0005111638
を利用することで、三角関数を利用せずとも正規な円錐角を利用して正規化された法線のバウンドを導出することができる(図11のブロック44)。この方法をTPATChと称する。
2つの接する錐体同士が重ならないように注意を払う必要がある。錐体は、
Figure 0005111638
となる場合に重なり、与えられたα<pi、α<pi、およびβ<piは以下のように書き直すことができる。
Figure 0005111638
この条件が満たされる場合、あるいは、
Figure 0005111638
である場合には、OBB座標フレームの単位ボックスを戻す。単位ボックスは2つの極限の頂点(−1,−1,−1)および(+1,+1,+1)を有する。しかし、OBB座標フレームがローカル曲線接点、従法線、およびベースパッチの法線の近似から計算されることから、この事象が生じることは、曲線がきついパッチを除いては稀である。
テクスチャルックアップのバウンディング法には、2つの他のミップマップ階層を維持する必要がある。第1のミップマップ階層は、各テクスチャフットプリントおよびレベルの最大配置値を格納し、第2のミップマップ階層は、フットプリントの最小配置値を格納する。概してパラメトリック間隔が低減するとテクスチャバウンドも低減する。
配置ベクトルの最後のバウンドである
Figure 0005111638
は、テクスチャルックアップ[tmin,tmax]からの間隔を、各軸に沿って正規化された法線ベクトルの間隔倍したものである。表記
Figure 0005111638
を利用して間隔が定義されており、ここで
Figure 0005111638
は下限であり、
Figure 0005111638
は上限であり、2つの間隔の乗算を以下に示す。
Figure 0005111638
従ってoのx成分の間隔のバージョンは以下のようになる。
Figure 0005111638
上式は他の成分についても当てはまる。テクスチャ配置が厳密に正の値である場合には、数式20をさらに最適化することができる。
殆どのドメインシェーダの最終ステップは、クリップスペースへのマトリックス変換であり、qについての取得バウンドの残りの部分はモデルビュープロジェクションマトリックスであり、これはパラメトリックドメインには依存せず、定数とみなすことができる。この、定数であるマトリックスは、配置されたパッチdから得られるOBBの8つのコーナで簡単に乗算することができ、これによりクリップスペース位置qのバウンドが生成される(最終ステップは、予めテセレーションされたソートおよびレイトレーシング用の階層バウンドを利用する場合には不要である)。
パッチに対して最初に粗い分割を行う場合には、一部の実施形態でサブドメインのバウンディングボックスの優先キューを維持することができる。例えばこの代わりに、各サブパッチを、各サブパッチが、ボリューム、表面積、あるいは投影面積等において「十分小さくなるまで」、複数のより小さいサブパッチに分割することができる。以下の各分割ステップでは、キューの最上位エレメントをとりこれをさらに分割して、分割されたボックスをキューに挿入して戻す。
正確なソート基準はアプリケーションに応じて変わり、バウンディングボックスのスクリーンスペースの範囲、深さの値、またはビューフラスタム・カリングのための円台の平面を交差する優先ボックスを含んでよい。図6は、ビューに応じた分割基準を示す。
ビューフラスタム・カリングでは、OBBコーナ(クリップスペースにおける)を、円台の平面を基準としてテストする。分割基準は、カメラの円台をまたぐサブパッチを優先するよう設計されており、これによりクリップ平面外における配置を効率的にカリングすることができる。パッチのクリップテスト結果も、パッチ全体を完全にビューフラスタム内に収めるように利用することができ、これにより、パッチから形成される三角形のクリップテストをしなくてよい場合もでてくる。
粗い深さのバッファが与えられている場合、サブパッチは、そのバウンディングボックスが既に描画されたプリミティブにより全体的に閉塞されている場合にカリングすることができる。利用される分割基準は、カメラにより近いサブパッチを先ず処理して、パイプラインのラスター処理に送ることでzカリングの可能性を高める、というものであってよい。
バックフェースカリングは、幾何学上の法線を配置の後に効率的にバウンディングすることが難しいことから、最も難しい種類のカリングである。しかしテセレーション率、正規のバウンドおよびタイトな配置間隔が与えられる場合、配置された曲線法線を導出することができる。さらに分割基準は、法線のばらつきが高い対象パッチに対して適合させることでき、サブパッチのバックフェースカリングの確率を上げることができる。
配置されたベジエパッチのバウンディング表現を計算した後で、予めテセレーションしたタイルへのソートにバウンドを利用することができる。タイルの重なりは、最大のスクリーンスペースを有するバウンディングボックスの階層的分割により低減させることができる。
レイトレーシングが行われる環境では、分割基準は各OBBの表面積全体を低減させるように適合され、これは表面積における経験則が加速データ構造を構築することと類似している。衝突検知においては、低減されたOBBのボリュームに対して分割基準を適合させる。
階層的なバウンディングボリュームは、カリングにおいて、および、タイルへのソートおよびレイトレーシングにおいて利用可能である。ここで説明する方法を利用することで、電子データをディスプレイに表示するための視覚可能な形態に変換することができる。
DX−11テセレーションパイプライン段階を効率的にサポートするべく、タイリングアーキテクチャにおいては、テセレーションおよびドメインシェーディングを行う前に、配置された曲線のバウンドが必要となる。これらのバウンドは、配置されたベジエパッチをテセレーションを行う必要なくビンする(つまり、プリミティブをタイル特定キューへソートすること)ために利用することができる。その後、テセレーションおよびドメインシェーディングを、必要に応じて必要なときに行う。階層的なバウンドの利用はビニング、ビューフラスタム・カリング、オクルージョンカリング、およびバックフェースカリングに有用である。
ここで説明するグラフィックス処理技術は、様々なハードウェアアーキテクチャに実装することができる。例えばグラフィックス機能はチップセット内に集積することができる。あるいは、別個のグラフィックスプロセッサを利用することもできる。また別の実施形態では、グラフィックス機能は汎用プロセッサ(マルチコアプロセッサを含む)により実装されてもよい。
図12に示すコンピュータシステム130は、バス104によりチップセットコアロジック110に連結されたハードドライブ134および取り外し可能媒体136を含んでよい。キーボードおよびマウス120、あるいはその他の従来のコンポーネントは、チップセットコアロジックへバス108を介して連結されていてよい。一実施形態でコアロジックは、グラフィックスプロセッサ112に、バス105およびメインのホストプロセッサ100を介して連結されてよい。グラフィックスプロセッサ112はさらに、バス106を介してフレームバッファ114に連結されてよい。フレームバッファ114は、バス107によりディスプレイスクリーン118に連結されてよい。一実施形態では、グラフィックスプロセッサ112は、シムド(SIMD)アーキテクチャを利用するマルチスレッド、マルチコアの並列プロセッサであってよい。
ソフトウェア実装の場合には、関連コードを任意の適切な半導体、磁気、または光学メモリに(例えば、メインメモリ132、またはグラフィックスプロセッサ内の利用可能なメモリに)格納してよい。従って一実施形態では、図7から図11に示すシーケンスを実行するコードを、機械またはコンピュータ可読媒体(例えばメモリ132またはグラフィックスプロセッサ112)に格納することができ、一実施形態においてはプロセッサ100またはグラフィックスプロセッサ112により実行可能であってよい。
図8から図11はフローチャートである。一部の実施形態では、これらフローチャートに示したシーケンスはハードウェア、ソフトウェア、またはファームウェアにより実装することができる。ソフトウェアによる実施形態では、半導体メモリ、磁気メモリ、または光学メモリ等のコンピュータ可読媒体を利用して命令を格納し、プロセッサにより実行されると、図8から図11に示すフローチャートのうち1以上に示されるシーケンスを実行してよい。
本明細書において「一実施形態」「1つの実施形態」といった言い回しは、その実施形態との関連で記載された特定の特徴、構造、または特性が、本発明の範囲内である少なくとも1つの実装例に含まれていることを意味する。従って「一実施形態」「1つの実施形態」といった言い回しは必ずしも同じ実施形態を表さない。さらに特定の特徴、構造、または特性は、例示された特定の実施形態以外の他の適切な形態で実装することもでき、本願の請求項にはこれら全ての形態が含まれるものとする。
本発明を限られた数の実施形態に関して説明してきたが、当業者にとってはこれに基づく数多くの変形例が明らかである。添付請求項は、本発明の真の精神および範囲内に含まれるこれら全ての変形例および変更例を含むことを意図している。

Claims (12)

  1. グラフィックスプロセッサを用いて、配置されたパラメトリック曲線においてバウンドを計算し、より小さなサブパッチに分割する方法であって、
    前記グラフィックスプロセッサが、ベースパッチで定義された軸の制御ポイントにおいて、前記制御ポイントのベクトル間の平均をとって2つの軸を得て、前記2つの軸の外積をとり、各ベクトルを正規化してオブジェクト指向のバウンディングボックス座標系を形成する段階と、
    前記グラフィックスプロセッサが、パラメータ導関数から正規のベクトルベジエパッチを導出して、単位球体上に制御ポイントを投影して、オブジェクト指向のバウンディングボックス座標の単位球体上に立体角を用いて、前記単位球体を錐体に分割し、前記パッチにベースパッチの正規化された法線のバウンドを、前記錐体の軸から、与える段階
    を備える方法。
  2. グラフィックスプロセッサを用いて、配置されたパラメトリック曲線においてバウンドを計算し、より小さなサブパッチに分割する方法であって、
    前記グラフィックスプロセッサが、ベースパッチで定義された軸の制御ポイントにおいて、前記制御ポイントのベクトル間の平均をとって2つの軸を得て、前記2つの軸の外積をとり、各ベクトルを正規化してオブジェクト指向のバウンディングボックス座標系を形成する段階と、
    前記グラフィックスプロセッサが、ベースパッチの正規化された法線のバウンドを導出するために錐体を利用する段階
    を備える方法。
  3. グラフィックスプロセッサを用いて、配置されたパラメトリック曲線においてバウンドを計算し、より小さなサブパッチに分割する方法であって、
    前記グラフィックスプロセッサが、ベースパッチで定義された軸の制御ポイントにおいて、前記制御ポイントのベクトル間の平均をとって2つの軸を得て、前記2つの軸の外積をとり、各ベクトルを正規化してオブジェクト指向のバウンディングボックス座標系を形成する段階と、
    前記グラフィックスプロセッサが、1つのパラメトリック方向における導関数から第1の錐体を形成して、異なるパラメトリック方向における導関数から第2の錐体を形成して、前記座標における前記第1の錐体および前記第2の錐体の外積を計算することで第3の錐体を形成する段階
    を備える方法。
  4. 前記配置されたパラメトリック曲線においてバウンドを計算し、より小さなサブパッチに分割する方法には、位置、法線、およびテクスチャに関するバウンドを改良することが含まれる請求項1から3のいずれか一項に記載の方法。
  5. 前記グラフィックスプロセッサが、アプリケーションが定義する閾値に達するまでベジエ分割を繰り返し適用する段階を備える請求項1から4のいずれか一項に記載の方法。
  6. 前記グラフィックスプロセッサが、サブパッチのカリング、テセレーション、およびドメインシェーディングを行う段階を備える請求項1から5のいずれか一項に記載の方法。
  7. 前記グラフィックスプロセッサが、レイトレーシング用にバウンディングボリューム階層を構築する段階を備える請求項1から6のいずれか一項に記載の方法。
  8. 前記グラフィックスプロセッサが、前記曲線をコンピュータディスプレイに表示可能な視覚形態に変換する段階を備える請求項1から7のいずれか一項に記載の方法。
  9. グラフィックスプロセッサと、
    前記グラフィックスプロセッサに連結され、前記グラフィックスプロセッサに請求項1から3のいずれか一項に記載の方法を用いて、配置されたパラメトリック曲線においてバウンドを計算させ、より小さなサブパッチに分割させるストレージと
    を備える装置。
  10. 配置された前記パラメトリック曲線においてバウンドを計算し、より小さなサブパッチに分割することから生じる画像を表示するディスプレイを備える請求項に記載の装置。
  11. 前記ストレージは、位置、法線、およびテクスチャに関するバウンドを改良する命令を格納する請求項9または10に記載の装置。
  12. 前記ストレージは、アプリケーションが定義する閾値に達するまでベジエ分割を繰り返し適用する命令を格納する請求項9から11のいずれか一項に記載の装置。
JP2011084835A 2010-04-07 2011-04-06 パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法 Expired - Fee Related JP5111638B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/755,506 US8144147B2 (en) 2010-04-07 2010-04-07 Hierarchical bounding of displaced parametric surfaces
US12/755,506 2010-04-07

Publications (2)

Publication Number Publication Date
JP2011238213A JP2011238213A (ja) 2011-11-24
JP5111638B2 true JP5111638B2 (ja) 2013-01-09

Family

ID=44072155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011084835A Expired - Fee Related JP5111638B2 (ja) 2010-04-07 2011-04-06 パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法

Country Status (6)

Country Link
US (2) US8144147B2 (ja)
JP (1) JP5111638B2 (ja)
CN (1) CN102214369B (ja)
DE (1) DE102011016347A1 (ja)
GB (1) GB2479461B (ja)
TW (1) TWI443602B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8570324B2 (en) * 2009-10-12 2013-10-29 Nvidia Corporation Method for watertight evaluation of an approximate catmull-clark surface
US9449420B2 (en) 2011-12-30 2016-09-20 Intel Corporation Reducing the domain shader/tessellator invocations
FR2991448B1 (fr) * 2012-06-01 2015-01-09 Centre Nat Rech Scient Procede de mesures tridimensionnelles par stereo-correlation utilisant une representation parametrique de l'objet mesure
KR101980200B1 (ko) * 2012-07-12 2019-05-20 삼성전자주식회사 베이지어 커브에 대한 타일 비닝을 수행하는 그래픽 처리 장치 및 방법
US9275498B2 (en) * 2012-08-09 2016-03-01 Qualcomm Incorporated GPU-accelerated path rendering
US9619853B2 (en) 2012-08-09 2017-04-11 Qualcomm Incorporated GPU-accelerated path rendering
CN103226846B (zh) * 2013-03-22 2015-10-28 浙江工业大学 一种基于手绘线条的三维雕刻方法
US9401034B2 (en) * 2013-04-30 2016-07-26 Microsoft Technology Licensing, Llc Tessellation of two-dimensional curves using a graphics pipeline
KR102104057B1 (ko) 2013-07-09 2020-04-23 삼성전자 주식회사 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들
CN103345529B (zh) * 2013-07-24 2017-02-08 中国科学院自动化研究所 一种基于贝塞尔曲线的多指标观测数据排序方法和装置
KR102109130B1 (ko) * 2013-08-12 2020-05-08 삼성전자주식회사 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
KR102066533B1 (ko) 2013-11-19 2020-01-16 삼성전자 주식회사 도메인 쉐이딩 방법과 이를 수행하는 장치들
CN104616343B (zh) * 2015-01-20 2017-09-22 武汉大势智慧科技有限公司 一种纹理实时采集在线映射的方法和***
GB2552260B (en) 2015-06-05 2019-04-10 Imagination Tech Ltd Tessellation method
GB2539042B (en) 2015-06-05 2019-08-21 Imagination Tech Ltd Tessellation method using displacement factors
US10037625B2 (en) * 2016-09-15 2018-07-31 Intel Corporation Load-balanced tessellation distribution for parallel architectures
WO2018118009A1 (en) * 2016-12-19 2018-06-28 Hewlett-Packard Development Company, L.P. Arrangement determination for 3d fabricated parts
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10846914B2 (en) * 2018-01-11 2020-11-24 Sony Interactive Entertainment Inc. Back-facing patch culling with displacement
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication
US11928391B2 (en) * 2019-04-02 2024-03-12 Autodesk, Inc. Hybrid surface modelling with subdivision surfaces and NURBS surfaces
CN113628316B (zh) * 2020-05-08 2023-12-01 辉达公司 使用射线锥进行各向异性纹理滤波的技术
US11443475B2 (en) * 2020-05-08 2022-09-13 Nvidia Corporation Techniques for ray cone tracing and texture filtering
US11315299B1 (en) * 2020-11-13 2022-04-26 Unity Technologies Sf Method for computation of local densities for virtual fibers
US11908063B2 (en) * 2021-07-01 2024-02-20 Adobe Inc. Displacement-centric acceleration for ray tracing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357600A (en) * 1992-10-15 1994-10-18 Sun Microsystems, Inc. Method and apparatus for the rendering of curved surfaces using a cone of normals
US5638503A (en) * 1994-07-07 1997-06-10 Adobe Systems, Inc. Method and apparatus for generating bitmaps from outlines containing bezier curves
JP3436008B2 (ja) * 1996-08-20 2003-08-11 富士ゼロックス株式会社 描画処理装置
US6256038B1 (en) * 1998-12-10 2001-07-03 The Board Of Trustees Of The Leland Stanford Junior University Parameterized surface fitting technique having independent control of fitting and parameterization
US6429867B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. System and method for generating and playback of three-dimensional movies
US6556206B1 (en) * 1999-12-09 2003-04-29 Siemens Corporate Research, Inc. Automated viewpoint selection for 3D scenes
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
US6738062B1 (en) * 2001-01-10 2004-05-18 Nvidia Corporation Displaced subdivision surface representation
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
JP4421203B2 (ja) * 2003-03-20 2010-02-24 株式会社東芝 管腔状構造体の解析処理装置
US7483024B2 (en) * 2003-12-31 2009-01-27 Autodesk, Inc. Accelerated ray-object intersection
WO2005081683A2 (en) * 2004-02-12 2005-09-09 Pixar Method and apparatus for multiresolution geometry caching based on ray differentials
US7292250B2 (en) * 2004-03-31 2007-11-06 Dreamworks Animation, Llc Character deformation pipeline for computer-generated animation
US8217938B2 (en) * 2007-05-31 2012-07-10 Ford Global Technologies, Llc Method and apparatus for determining item orientation
JP2009086842A (ja) * 2007-09-28 2009-04-23 Fujitsu Ltd ハーネス設計支援装置及び方法及びプログラム
US9947130B2 (en) * 2008-01-23 2018-04-17 Intel Corporation Method, apparatus, and computer program product for improved graphics performance
US8698802B2 (en) * 2009-10-07 2014-04-15 Nvidia Corporation Hermite gregory patch for watertight tessellation

Also Published As

Publication number Publication date
TW201205500A (en) 2012-02-01
CN102214369A (zh) 2011-10-12
US20120154399A1 (en) 2012-06-21
CN102214369B (zh) 2014-03-05
JP2011238213A (ja) 2011-11-24
GB2479461A (en) 2011-10-12
US20110248997A1 (en) 2011-10-13
TWI443602B (zh) 2014-07-01
DE102011016347A1 (de) 2011-12-08
GB2479461B (en) 2012-12-19
GB201105960D0 (en) 2011-05-18
US8144147B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
JP5111638B2 (ja) パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法
US8743114B2 (en) Methods and systems to determine conservative view cell occlusion
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
JP5518967B2 (ja) グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
JP5120926B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP4643271B2 (ja) 区間解析を使用するコンピュータ・グラフィックスの際の可視面決定システムおよび方法
JP4938850B2 (ja) 拡張型頂点キャッシュを備えたグラフィック処理装置
Sheffer et al. Robust spherical parameterization of triangular meshes
US12014457B2 (en) Importance sampling for determining a light map
US9367943B2 (en) Seamless fracture in a production pipeline
US9508191B2 (en) Optimal point density using camera proximity for point-based global illumination
US7843463B1 (en) System and method for bump mapping setup
US8384715B2 (en) View-dependent rendering of parametric surfaces
US10249077B2 (en) Rendering the global illumination of a 3D scene
US20070216680A1 (en) Surface Detail Rendering Using Leap Textures
US6650324B1 (en) Defining surface normals in a 3D surface mesh
Bruijns Quadratic Bezier triangles as drawing primitives
US7454320B1 (en) System and method for calculating partial differential equations in a hardware graphics pipeline
Vyatkin GPU-based volume-oriented rendering of functionally defined objects.
Lee et al. Evaluation of high order approximating normals for Marching Cubes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5111638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees