JP2011510396A - グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト - Google Patents
グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト Download PDFInfo
- Publication number
- JP2011510396A JP2011510396A JP2010543083A JP2010543083A JP2011510396A JP 2011510396 A JP2011510396 A JP 2011510396A JP 2010543083 A JP2010543083 A JP 2010543083A JP 2010543083 A JP2010543083 A JP 2010543083A JP 2011510396 A JP2011510396 A JP 2011510396A
- Authority
- JP
- Japan
- Prior art keywords
- representation
- basic primitive
- vertex
- subjecting
- sorting
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000004590 computer program Methods 0.000 title claims abstract description 6
- 238000012216 screening Methods 0.000 claims abstract description 45
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 4
- 239000012634 fragment Substances 0.000 description 19
- 238000012360 testing method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
デジタル表現されたグラフィックの生成のパフォーマンスを改善する方法。本方法は:基本プリミティブの第一の表現を受領し;バーテックス位置決定に関連付けられた命令の組を提供し;前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記の取得された命令の組を実行して、前記基本プリミティブの第二の表現を提供し;前記基本プリミティブの前記第二の表現を選別プロセスにかけることを含む。対応する装置およびコンピュータ・プログラム・プロダクトも提示される。
Description
本発明は、デジタル表現されたグラフィックに、より詳細にはデジタル表現されたグラフィックを生成するパフォーマンスの改善のための方法、装置およびコンピュータ・プログラム・プロダクトに関する。
コンピュータ・グラフィックのようなデジタル表現されたグラフィックは継続的にパフォーマンスを改善してきている。1980年代および1990年代には、グラフィック・アクセラレータをもつ、コンピュータおよびゲーム・コンソール用ディスプレイ・アダプターが現れ、グラフィック生成において中央処理装置(CPU)の負荷を軽減した。最初はディスプレイ・アダプターは2Dグラフィックの加速をもたらしたが、結局はディスプレイ・アダプターは加速3Dグラフィックのサポートをも含むようになった。現代のディスプレイ・アダプターは、しばしばグラフィック処理ユニット(GPU: graphics processing unit)と称される処理ユニットを使う。
3Dグラフィックの複雑さのため、今日のGPUはその処理パワーのかなりの部分を3Dグラフィックに関係する計算を実行するために使う。
ディスプレイ・アダプターに関する継続的な問題はパフォーマンスである。常に、より高いフレーム・レート(毎秒レンダリングされる画面画像数)、より高い解像度およびより高い画像品質を要求する新たなアプリケーションやゲームが登場し、その結果、各画面画像はできるだけ短い時間でレンダリングされることが要求される。換言すれば、パフォーマンスを上げることは常に重要だということである。
パフォーマンスを上げるために知られている一つの方法は、より高いクロック・スピードを可能にする、パイプライニングするまたは並列計算を活用することによってGPUの処理パワーを上げることである。しかしながら、これはしばしばより多くの発熱につながり、結果として電力消費が多くなり、GPUを冷ますためのファンの雑音が大きくなる。電力消費と発熱はモバイル装置にとっては重要な制約となり、ボトルネックとなる。さらに、各GPUのクロック・スピードには限界がある。
したがって、依然として、デジタル表現されたグラフィックにおけるパフォーマンスを改善する能力が不十分であるという問題がある。
上記に鑑み、本発明の一つの目的は、上で論じた問題を解決するまたは少なくとも軽減することである。
第一の側面によれば、本発明は、デジタル表現されたグラフィックの生成のパフォーマンスを改善する方法によって実現される。本方法は:基本プリミティブの第一の表現を受領し;バーテックス位置決定に関連付けられた命令の組を提供し;前記基本プリミティブの前記第一の表現に対して、有界算術(bounded arithmetic)を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供し;前記基本プリミティブの前記第二の表現を選別(culling)プロセスにかけることを含む。基本プリミティブに対して選別を実行することは、基本プリミティブおよび基本プリミティブの表現がグラフィック・パイプラインの最初に破棄され得、これがパフォーマンスの利得につながるという点で有利である。さらに、完全にレンダリングされた画像において見えない表面の大半は前記プロセスにおいて後段に転送されず、これもパフォーマンスの利得につながる。換言すれば、全基本プリミティブに対して選別を実行することは、見えない表面の大半のテッセレーション(tessellation)が避けられ、これがパフォーマンスの利得につながるという点で有利である。
コンピュータ・グラフィックでは、バーテックス(vertex)は、空間内のある位置に関連付けられたデータを含む。たとえば、バーテックスは、プリミティブのコーナーに関連付けられた全データであってもよい。バーテックスは、三つの空間座標のみならず、色、反射属性、テクスチャおよび表面法線といった、オブジェクトを正しくレンダリングするために必要な他のグラフィック情報とも関連付けられる。
バーテックスの接続された集合が、プリミティブを定義するために使用できる。プリミティブ(primitive)は、たとえば、三角形、四角形、多角形〔ポリゴン〕または他の幾何学的な形であってもよく、あるいはまた、プリミティブは空間内の面または点であってもよい。三角形として表現されるプリミティブは、たとえば三つのバーテックスをもち、四角形は四つのバーテックスをもつ。
本方法は、前記基本プリミティブの前記第一の表現から少なくとも一つのバーテックスを選択し、前記少なくとも一つのバーテックスの第一の表現に対して、バーテックス位置決定に関連付けられた命令の組を実行して、前記少なくとも一つのバーテックスの第二の表現を提供し、前記少なくとも一つのバーテックスの前記第二の表現を選別プロセスにかけることを含んでいてもよく、前記選別プロセスの帰結は、前記少なくとも一つのバーテックスを選別するという決定および前記少なくとも一つのバーテックスを選別しないという決定のうちの一つを含み、前記選別プロセスの帰結が前記少なくとも一つのバーテックスを選別するという決定を含む場合に:基本プリミティブの第一の表現を受領する前記段階;バーテックス位置決定に関連付けられた命令の組を提供する前記段階;前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供する前記段階;および前記基本プリミティブの前記第二の表現を選別プロセスにかける前記段階を実行する。これは、パフォーマンス利得につながるので、有利である。たとえば、前記選別プロセスの帰結が、前記少なくとも一つのバーテックスを選別しないという決定である場合には、前記第一の側面による方法に比べて、キャパシティ的に高価でない方法を与える。
本方法は、前記基本プリミティブの前記第二の表現を囲むバウンディング・ボリュームを決定し;前記バウンディング・ボリュームを選別プロセスにかけることを含みうる。これは、あらかじめ設定された限界が与えられる必要がなく、バウンディング・ボリュームが自動的に決定されるという点で有利である。
本方法は、テッセレーション・プロセスを実行することを含みうる。ここで、前記テッセレーション・プロセスは、前記選別プロセスの帰結に基づく。よって、選別はテッセレーションの前に実行される。選別後にテッセレーションを実行することは、より少数の基本プリミティブがテッセレーションされるのでパフォーマンスの利得につながり、よって有利である。前記選別プロセスは、第二の表現がかけられる選別プロセスおよび/または前記バウンディング・ボリュームがかけられる選別プロセスであることができる。
本方法は、前記選別プロセスが置換可能であることを含みうる。前記選別プロセスがたとえばユーザーによって修正されてもよいという点で有利である。前記選別プロセスが置換可能であるということは、第一の側面の全実施形態に当てはまる。
本方法は、有界算術が、テイラー算術(Taylor arithmetic)、区間算術(interval arithmetic)およびアフィン算術(affine arithmetic)の群からの少なくとも一つであることを含みうる。これは、本方法が柔軟であり、種々の型の有界算術をサポートし、一つの型の有界算術に制約されないという点で有利である。テッセレーションにおいてよく使われる曲面および細分方式がしばしば多項式に基づくので、テイラー・モデルを使うことが好ましい。もう一つの利点は、多項式計算はテイラー・モデル(十分高い次数であるとする)によって厳密に表現でき、このことが非常に緊密な(tight)限界につながるということである。
本方法は、前記バウンディング・ボリュームの決定がさらに、前記第二の表現の最小および最大を計算することを含むということを含みうる。これは、バウンディング・ボリュームを決定するためのパフォーマンス効率のよい方法であるという点で有利である。
本方法は、前記第二の表現が、位置限界(positional bound)および法線限界(normal bound)の群のうちの少なくとも一つであるということを含みうる。位置限界および法線限界は、たとえば基本プリミティブの第一の表現の位置または範囲を決定するために使用されうる。さらなる利点は、位置限界および法線限界が自動的に決定されるということである。
本方法は、前記命令の組を実行することがさらに:バーテックス位置決定に関連付けられた前記命令の組から第二の命令の組を導出し、前記第二の命令の組を実行して法線限界を与えることを含むということを含みうる。これは、前記第二の組の命令が自動的に導出され、さらに法線限界が自動的に計算されるという点で有利である。
本方法は、前記バウンディング・ボリュームを前記選別プロセスにかけることがさらに、前記バウンディング・ボリュームをビュー錐台選別(view frustum culling)にかける、前記バウンディング・ボリュームを裏面選別(back-face culling)にかけるおよび前記バウンディング・ボリュームを隠蔽選別(occlusion culling)にかけることのうちの少なくとも一つを実行することを含むということを含みうる。この利点は、多くの異なる選別技法が適用可能であるということである。
本方法は、前記第二の表現(位置限界または法線限界である)を前記選別プロセスにかけることがさらに、前記位置限界をビュー錐台選別にかける、前記位置限界または前記法線限界を裏面選別にかけるおよび前記位置限界を隠蔽選別にかけることのうちの少なくとも一つを実行することを含むということを含みうる。この利点は、多くの異なる選別技法が適用可能であるということである。
本方法は、前記選別プロセスの帰結が前記基本プリミティブを破棄するという決定およびテッセレーション因子の一つを含むということを含みうる。基本プリミティブを破棄することは、レンダリングすべき基本プリミティブが一つ少なくなるということを含意し、それはパフォーマンスを高めるので、有利である。
本方法は、前記選別プロセスの帰結がテッセレーション因子を含む場合に、テッセレーション・プロセスを実行することを含みうる。これは、テッセレーションされないまたはより少なくテッセレーションされる基本プリミティブ毎についてパフォーマンスの利得があるという点で有利である。前記選別プロセスの帰結が前記基本プリミティブを破棄するという決定である場合、テッセレーション・プロセスは実行されない。
第二の側面によれば、本発明は、デジタル表現されたグラフィックを生成するよう適応された装置であって、デジタル表現されたグラフィックの生成のパフォーマンスを改善する回路を有する装置によって実現される。前記回路は:基本プリミティブの第一の表現を受領し;バーテックス位置決定に関連付けられた命令の組を提供し;前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供し;前記基本プリミティブの前記第二の表現を選別プロセスにかけるよう適応されている。
本発明の第二の側面は、本発明の第一の側面の特徴のいずれに対応する特徴のいかなる組み合わせを用いて具現されることもできることを注意しておく。
第一の側面の利点は、第二の側面にも等しく当てはまる。
第三の側面によれば、本発明は、コンピュータ可読記憶媒体上に記憶され、プロセッサ上で実行されたときに本発明の第一の側面に基づく方法を実行するコンピュータ・プログラム・コードを有するコンピュータ・プログラム・プロダクトによって実現される。第一の側面の利点は、第三の側面にも等しく当てはまる。
本発明の他の目的、特徴および利点は、以下の詳細な開示から、付属の請求項から、また図面から、明白となるであろう。
一般に、請求項において使われているすべての用語は、本稿において明示的に他の定義がされているのでない限り、当該技術分野におけるその通常の意味に従って解釈されるべきである。「ある/該[要素、装置、コンポーネント、手段、段階など]」というあらゆる言及は、そうでないとの明示的な陳述がない限り、そのような要素、装置、コンポーネント、手段、段階などの少なくとも一つのインスタンスに言及するオープンなものとして解釈されるべきである。本稿に開示されるどの方法のステップも、明示的に述べられているのでない限り、開示されている厳密な順序で実行される必要はない。
本発明の他の特徴および利点は、付属の図面の参照のもとに、現在のところ好ましい実施形態の以下の詳細な記述から明白となるであろう。
Berz, M., and Hoffst¨atter, G., Computation and Application of Taylor Polynomials with Interval Remainder Bounds, 『Reliable Computing』, 4, 1, 73-97, 1998
Hungerb¨uhler, R., and Garloff, J., Bounds for the Range of a Bivariate Polynomial over a Triangle, 『Reliable Computing』, 4, 1, 3-13, 1998
本発明は、本発明のある種の実施形態を示す付属の図面を参照しつつ以下により十全に記述される。しかしながら、本発明は、数多くの異なる形において具現されうるものであり、本稿に記載される実施形態に限定されると解釈すべきではない。これらの実施形態は、本開示が十全であり完備となり、本発明の範囲を当業者に十全に伝えるべく例として与えられているものである。同様の参照符号は全体を通じて同様の要素を指す。
図1は、当業者には既知の従来式のディスプレイ・アダプターにおける種々のエンティティがどのように相互作用するかを示すブロック図である。従来技術に基づくディスプレイ・アダプターは、テッセレータ(tessellator)120、バーテックス・シェーダー(vertex shader)130、三角形通過ユニット(triangle traversal unit)140およびフラグメント・シェーダー(fragment shader)150を含みうる。従来技術に基づくディスプレイのこれらのエンティティは当業者にはよく知られている。
テッセレータ120への入力110は基本プリミティブであり、これは三角形、四角形または他の幾何学的な形であってもよい。テッセレーションは、多くの、より小さな、しばしば接続されたプリミティブが生成されることを含意する。たとえば、基本三角形(すなわち基本プリミティブ)がテッセレータ120において基本三角形を覆う100×100の、より小さな、接続された三角形に分割される。これらのより小さな三角形のバーテックスの位置は、バーテックス・シェーダー・ユニット130において計算でき、それにより曲がった表面が形成される。
種々の型のテッセレーションが存在する。たとえば、一様テッセレーション(uniform tessellation)、部分テッセレーション(fractional tessellation)および適応テッセレーション(adaptive tessellation)である。
バーテックス・シェーダー・ユニット130は、テッセレータ120から全バーテックスについての重心座標を受信し、たとえばバーテックスの位置p(u,v)を重心座標(u,v)の関数として計算する。
三角形通過ユニット140は、接続されたコントローラによって指示されるようにポリゴンをセットアップすることを受け持つ。いかなる多角形でも使用できるが、三角形が一般に使用される。各ポリゴンについて、三角形通過ユニット140は、レンダリングされるべきポリゴンを一つまたは複数のタイルに分割する。ここで、各タイルには少なくとも部分的には前記ポリゴンが重なる。一般に、タイルは、フラグメントの群である。タイルは、いくつかのフラグメントを含む二次元長方形である。これらのフラグメントのそれぞれがピクセルに対応し、そのピクセルをレンダリングするためおよびそのピクセルが画面上にレンダリングされるべきかどうかを試験するために要求される全データを含む。タイルの一般的なサイズは8×8フラグメントであるが、任意のタイル・サイズが本発明の範囲内である。
三角形通過ユニット140のもう一つの重要なタスクは、レンダリングされる幾何学的プリミティブ(たとえば三角形)内にあるフラグメントを見出すことである。これは、当業者には既知の多様な技法を使ってできる。
フラグメント・シェーダー150は、このユニットに渡される各フラグメントについてフラグメント・シェーダー・プログラムを実行する。これらのフラグメントのそれぞれがピクセルに対応し、そのピクセルをレンダリングするためおよびそのピクセルが画面上にレンダリングされるべきかどうかを試験するために要求される全データを含む。フラグメント・データは、ラスタ位置、奥行き(depth)、色、テクスチャ座標、ステンシル、アルファ(ブレンディングのために使用される)などを含む。一つ一つの全ピクセルについて、複数のフラグメント・サンプルが存在してもよい。
フラグメントはさらに処理される。これはたとえば、以前に評価された色をテクスチャと組み合わせる、また霧のような効果を加える、また可能な場合にはレンダリングされる必要のないフラグメントを識別する、すなわちフラグメント選別のためである。
フラグメント・シェーダー150はさらに、フラグメントが目標バッファに書き込まれる前に、奥行き試験、アルファ試験およびブレンディングを実行してもよい。
従来技術に基づくディスプレイ・アダプターからの出力150はディスプレイ上に表示されうる。
ここから、本発明について述べる。
本発明に基づくデジタル表現されたグラフィックを生成するよう適応された装置の種々の実施形態について、以下で図2を参照しつつ述べる。本装置は、デジタル表現されたグラフィックの生成のパフォーマンスを改善する回路を有する。前記装置は、ディスプレイ・アダプターとして具現されてもよく、以下ではディスプレイ・アダプターと称される。
図2aは、本発明に基づくディスプレイ・アダプター205の実施形態を示すブロック図である。ディスプレイ・アダプター205は、基本プリミティブ選別回路212をなす、デジタル表現されたグラフィックの生成のパフォーマンスを改善する回路を有する。
基本プリミティブ選別回路212への入力210は、基本プリミティブの第一の表現である。コンピュータ・グラフィックの分野における幾何学的プリミティブは、通例、システムが扱える、たとえば描画または記憶することのできる原子的な幾何学的オブジェクトと解釈される。他のすべてのグラフィック要素はこれらのプリミティブから構築される。
基本プリミティブは、多くの、より小さな、三角形のような幾何学的プリミティブに分割〔テッセレーション〕できる好適な幾何学的表現である。基本プリミティブは分割されていない。基本プリミティブの例は、三角形、四角形、直線、曲線、ベジェ面などである。
ポリゴンは、接続されたバーテックスの組を使って定義される。たとえば三角形は三つのバーテックスを有し、四角形は四つのバーテックスを有する。コンピュータ・グラフィックでは、バーテックスは、三つの空間座標のみならず、色、反射属性、テクスチャおよび面法線といった、オブジェクトを正しくレンダリングするために必要な他のグラフィック情報とも関連付けられる。
基本プリミティブの第一の表現は、属性の集合であってもよい。属性の集合は、たとえば、制御点、バーテックス位置、法線、テクスチャ座標などの群からの一つであってもよい。たとえば、三角形は、三つのバーテックス位置を使って記述でき、四角形ポリゴンは四つのバーテックス位置を使って記述できる。各バーテックス位置は、法線およびテクスチャ座標といった、他の属性と関連付けられていてもよい。もう一つの例は、ベジェ三角形またはパッチであり、これは一組のバーテックス位置および制御点を使って記述できる。
基本プリミティブ選別ユニット212において、選別は、基本プリミティブに対して、および基本プリミティブの表現に対して実行される。基本選別ユニットからの出力222は、基本プリミティブが破棄されるべきであるということであってもよい。別の実施例では、出力222は、テッセレーション因子が生成されるということであってもよい。テッセレーション因子は、基本プリミティブが破棄されるべきであることを指示する値に設定されてもよい。あるいはまた、テッセレーション因子は、基本プリミティブが破棄されることができないことを示す値に設定されてもよい。さらに、テッセレーション因子は、基本プリミティブがテッセレーションされるべきではない、粗くテッセレーションされるべきである、あるいは低レートでテッセレーションされるべきであることを示す値に設定されてもよい。
基本プリミティブ選別の詳細および効果については、図3aおよび図3bとの関連でさらに後述する。
ディスプレイ・アダプター205からの出力224はディスプレイ上に表示されうる。
もう一つの実施形態では、図2bを参照するに、ディスプレイ・アダプター205は、基本プリミティブ選別ユニット212およびテッセレータ214を有する。テッセレータ214は、図1を参照して上記したテッセレータ120と同様の型であってもよい。
基本プリミティブ選別ユニット212、基本プリミティブ選別ユニット212への入力210およびディスプレイ・アダプター205からの出力224は図2aとの関連で前述した。
テッセレータ214が基本プリミティブ選別ユニット212から、基本プリミティブと、該基本プリミティブがテッセレーションされるべきではないことを示すテッセレーション因子とを受け取る場合、テッセレータは基本プリミティブをテッセレーションしない。
テッセレータ214が基本プリミティブ選別ユニット212から、基本プリミティブを受け取るが、該基本プリミティブがテッセレーションされるべきではないことを示すテッセレーション因子を受け取らない場合は、テッセレータ214は基本プリミティブをテッセレーションする。
図2cは、本発明のある実施形態において、ディスプレイ・アダプター205内の種々のエンティティがどのように相互作用しうるかを示すブロック図である。ディスプレイ・アダプター205は、基本プリミティブ選別ユニット212、テッセレータ214、バーテックス・シェーダー216、三角形通過ユニット218およびフラグメント・シェーダー220を有する。エンティティ214、216、218および220は、図1を参照して前述したのと同様の型であってもよい。
基本プリミティブ選別ユニット212、基本プリミティブ選別ユニット212への入力210およびディスプレイ・アダプター205からの出力224は図2aとの関連で前述した。
さらにもう一つの実施形態では、図2dを参照するに、ディスプレイ・アダプター205は、基本プリミティブ選別ユニット212、テッセレータ214、バーテックス・シェーダー216、三角形通過ユニット218、プログラム可能選別ユニット(PCU: programmable culling unit)226およびフラグメント・シェーダー220を有する。エンティティ214、216、218および220は、図1を参照して前述したのと同じまたは同様の型であってもよい。基本プリミティブ選別ユニット212、基本プリミティブ選別ユニット212への入力210およびディスプレイ・アダプター205からの出力224は図2aとの関連で前述した。
プログラム可能選別ユニット226では、選別は、置換可能な選別モジュールとしても知られる置換可能な選別プログラムに従って実行される。選別プログラムの詳細および効果は、非公開のスウェーデン特許出願SE0700162-1においてより詳細に説明されており、その内容はここに参照によって組み込まれる。
図2aのディスプレイ・アダプター205はさらに、基本プリミティブ探査ユニット211を有していてもよい(図2eを参照)。基本プリミティブ探査ユニット211は、基本プリミティブの少なくとも一つのバーテックスが選別されることができるかどうかを検査するよう構成される。前記少なくとも一つのバーテックスは、たとえば、基本プリミティブのバーテックスまたは基本プリミティブの中心であることができる。基本プリミティブの前記少なくとも一つのバーテックスが選別されることができない場合、そのことはその基本プリミティブが選別されることができないということを含意し、その場合、基本プリミティブ選別はキャパシティを要求するので、基本プリミティブ選別ユニット212において基本プリミティブ選別を実行しないほうがよい。
図2fに示されるように、図2bのディスプレイ・アダプター205はさらに、基本プリミティブ探査ユニット211を有していてもよい。さらに、図2cのディスプレイ・アダプター205が基本プリミティブ探査ユニット211を有していてもよい(図2gを参照)。図2dのディスプレイ・アダプター205が基本プリミティブ探査ユニットを有していてもよい(図2hを参照)。
図3aは、図2a、2b、2cおよび2dの基本プリミティブ選別ユニット212において実行されることのできる基本プリミティブ選別プログラムについてのフローチャートを示している。
ステップ310では、基本プリミティブの第一の表現が受領される。
ステップ320では、命令の組が提供される。提供された命令の組は、バーテックス位置決定と関連付けられる。バーテックス位置は、たとえば、バーテックス・シェーダー・ユニット216との関連で全バーテックスについての重心座標を使ってp(u,v)として計算される。前記命令の組は、バーテックス・シェーダー・ユニット216において実行できるバーテックス・シェーダー・プログラムから導かれるまたは取り出される。前記命令の組は、次いで、解析され、バーテックス位置を計算するために使われるすべての命令、算術命令が単離される。これらの命令は、有界算術、たとえばテイラー算術、区間算術、アフィン算術または当業者に既知の別の好適な算術に対して作用するよう再定義される。ある実施形態では、これらの命令は、(浮動小数点数ではなく)テイラー・モデルに対して作用するよう再定義され、新たな命令への入力がテイラー・モデルに再定義される。
後続のステップの理解を助けるため、テイラー・モデルの簡単な説明をしておく。
テイラー・モデルでは区間が使われ、区間について、次の記法が使用される:
u∈[u0,u1]としてn+1回微分可能な関数f(u)を与えられると、fのテイラー・モデルはテイラー多項式Tfおよび区間残余項(^付きのrf)から構成される。ここでチルダ付きのfで記される、定義域u∈[u0,u1]上でのn次のテイラー・モデルは:
ステップ330では、提供された命令の組が、有界算術を使って、基本プリミティブの第一の表現に対して実行される。前記命令の組のこの実行の帰結は、基本プリミティブの第二の表現である。
基本プリミティブの前記第二の表現は、テイラー・モデルであってもよく、バーテックス位置属性の多項式近似であってもよい。より具体的には、ステップ330からの出力は、四つのテイラー・モデルである位置限界:
ステップ330において使われる有界算術は、たとえばテイラー算術、区間算術、アフィン算術または当業者に既知の他の好適な算術であってもよい。
ある実施形態では、前記基本プリミティブの前記第二の表現は法線限界であってもよい。パラメータ表現された面について、規格化していない法線、ベクトルnは:
ある実施形態では、前記命令の組を実行するステップ330は、ステップ331を含む(図3b参照)。ステップ331は、バーテックス位置決定に関連する前記命令の組から第二の命令の組を導出することを含む。前記第二の命令の組は、バーテックス・シェーダー・ユニット216において実行されるバーテックス・シェーダー・プログラムから取得され、それらの命令は解析され、バーテックス位置を計算するために使われるすべての命令、算術命令が単離される。それらの命令は(浮動小数点数ではなく)テイラー・モデルに対して作用するよう再定義され、新しい命令への入力がテイラー・モデルに再定義される。次いで第二の命令の組が、法線限界を与えるために実行される。
オブジェクトの集合についてのバウンディング・ボリューム(bounding volume)は、その集合中のオブジェクトの和集合を完全に含む閉じた体積である。バウンディング・ボリュームはさまざまな形、たとえば直方体または長方形のような箱形、球、円柱、ポリトープおよび凸包でありうる。
ある実施形態では、前記基本プリミティブの前記第二の表現を囲むバウンディング・ボリュームが決定され(図3b、ステップ350)、バウンディング・ボリュームが選別プロセスにかけられる。選別プロセスについては、ステップ340との関連でさらに述べる。
本発明のバウンディング・ボリュームは、緊密なバウンディング・ボリュームである。バウンディング・ボリュームが緊密(tight)であるとは、バウンディング・ボリュームの面積または体積ができる限り小さいが、それでも前記基本プリミティブの前記第二の表現を完全に囲んでいることを含意する。
ある実施形態では、バウンディング・ボリュームは、前記第二の表現の最小および最大を計算することによって決定される(ステップ351)。
前記基本プリミティブの前記第二の表現は、冪型のテイラー多項式であってもよい。
バウンディング・ボリュームを決定する一つの方法は、テイラー多項式の導関数を計算し、それにより前記第二の表現の最小および最大を見出すことによってであってもよい。
バウンディング・ボリュームを決定するもう一つの方法は、次のようなものであってもよい。テイラー多項式をベルンシュタイン形式に変換する。ベルンシュタイン基底の凸包属性のために多項式の実際の表面または曲線がベルンシュタイン基底において得られる制御点の凸包内にあることが保証されるという事実のため、バウンディング・ボリュームは、各次元において最小および最大の制御点値を見出すことによって計算される。式(3)をベルンシュタイン基底に変換すると、
バウンディング・ボックスを計算するため、単に各次元x,y,z,wについて全pijにわたる最小値および最大値が計算される。これがクリップ空間においてバウンディング・ボックス
を与える。ここで、各要素は区間であり、たとえば
である。
ステップ340では、基本プリミティブの前記第二の表現は、選別プロセスにかけられる。
選別は、見えないオブジェクトまたはオブジェクト部分を描画するのを避けるために実行される。
従来技術のGPUは、テッセレーションされたポリゴン上で選別を実行する。本発明は、選別を、テッセレーションがそもそも行われる前に実行する。これはパフォーマンスの利得につながる。
このアプローチでは、上記で導出された位置限界、法線限界およびバウンディング・ボリュームは、基本プリミティブに対して異なる選別技法を適用するために使われる。
ある実施形態では、前記位置限界または前記バウンディング・ボリュームを使ってビュー錐台選別が実行される(ステップ341、図3b)。
ある実施形態では、前記法線限界、前記位置限界および前記バウンディング・ボリュームの群からの少なくとも一つを使って、裏面選別が実行される(ステップ342、図3b)。
ある実施形態では、前記位置限界または前記バウンディング・ボリュームを使って、隠蔽選別が実行される(ステップ343、図3b)。
ある実施形態では、ステップ341〜343の少なくとも一つが実行される。
以下に開示される選別技法は、限定するものと解釈すべきではなく、例として与えられるものである。当業者には、裏面選別、隠蔽選別およびビュー錐台選別が以下に述べるのとは異なるさまざまな技法を使って実行されうることは明らかである。
ビュー錐台選別は、見えるオブジェクト、すなわち現在のビュー錐台内に位置するオブジェクトだけが描画されるという事実に基づく選別技法である。ビュー錐台は、モデル化された世界において、画面上に現れうる空間領域として定義されうる。錐台の外のオブジェクトを描画することは、どうせ見えないので時間と資源の無駄になる。オブジェクトが完全にビュー錐台の外にあれば、そのオブジェクトは見えないので、破棄できる。
ある実施形態では、バウンディング・ボリュームの位置限界が、ビュー錐台の面に対して試験される。バウンディング・ボリューム(^付きのb)は均一なクリップ空間にあるので、試験はクリップ空間において実行されてもよい。面‐ボックス試験のための標準的な最適化が使用されうる。その場合、バウンディング・ボリュームはバウンディング・ボックスであり、バウンディング・ボリュームの単一のコーナーだけが面方程式を評価するために使われる。その際、各面試験は、加算および比較に帰着する。たとえば、該ボリュームが左面の外側にあるかどうかの試験は、
裏面選別は、見る者と反対側を向いているオブジェクト、すなわち法線ベクトルが見る者と反対方向であるオブジェクトを破棄する。これらのオブジェクトは可視ではなく、よって描画する必要はない。
面上の点、ベクトルp(u,v)が与えられたとき、裏面選別は、一般に:
c=p(u,v)・n(u,v) 式(8)
として計算される。ここで、ベクトルn(u,v)は(u,v)における法線ベクトルである。c>0であれば、ベクトルp(u,v)は(u,v)のその特定の値については裏向きである。よって、この公式は、単一の法線しかもたない三角形全体を選別するために使用されることもできる。ドット積のテイラー・モデル(式(5)および式(8)参照)は:
c=p(u,v)・n(u,v) 式(8)
として計算される。ここで、ベクトルn(u,v)は(u,v)における法線ベクトルである。c>0であれば、ベクトルp(u,v)は(u,v)のその特定の値については裏向きである。よって、この公式は、単一の法線しかもたない三角形全体を選別するために使用されることもできる。ドット積のテイラー・モデル(式(5)および式(8)参照)は:
別の実施形態では、裏面条件が満たされているかどうかを検査するために、法線について区間限界(interval bounds)が計算される。
隠蔽選別は、隠蔽されるオブジェクトが破棄されることを含意する。以下では、バウンディング・ボックスについて隠蔽選別を記述するが、当業者には、他の型のバウンディング・ボリュームに対して隠蔽選別を実行することも可能であることは明らかである。
隠蔽選別技法は、奥行きバッファにおいて単一の追加レベルが使われる(8×8ピクセル・タイル)だけであるという点を除いて、階層的奥行きバッファリング(hierarchical depth buffering)とよく似ている。各タイルに、最大奥行き値Ztile maxが記憶される。これは、三角形をラスタ化するときに使われる、GPUにおける標準的な技法である。クリップ空間バウンディング・ボックスbは投影され、この軸整列されたボックスに重なるすべてのタイルが訪問される。各タイルにおいて、古典的な隠蔽選抜試験が実行される:Zbox min≧Ztile max。これは、この比較が満たされた場合、そのボックスが現在のタイルのところで隠蔽されることを示す。ボックスの最小奥行きZbox minはクリップ空間バウンディング・ボックスから得られ、タイルの最大奥行きZtile maxは階層的奥行きバッファ(これは現在のGPUにすでに存在している)から得られる。タイルが隠蔽されていないと見出されるとすぐに試験は打ち切ることができること、また、階層的奥行きバッファへのさらなるレベルの追加はストレートにできることを注意しておく。隠蔽選別試験は、テッセレーションされるべき三角形のバウンディング・ボックスの非常に安価な前置ラスタ化手段と見ることができる。これはタイル・ベースで作用するので、隠蔽問い合わせほど高価でない。
ある実施形態では、選別プロセスは置換可能である。これは、基本プリミティブ選別ユニット212は、ユーザー定義された選別プロセスを与えられてもよいことを含意する。
選別プロセスを実行するステップ340(および350)は、種々の帰結をもちうる。ある実施形態では、選別プロセスの帰結は、基本プリミティブが破棄されるべきであるというものであってもよい。別の実施形態では、選別プロセスの帰結は、テッセレーション因子が生成されるというものであってもよい。このテッセレーション因子は、基本プリミティブが破棄されるべきであることを示す値に設定されてもよい。あるいはまた、テッセレーション因子は、基本プリミティブが破棄されることができないことを示す値に設定されてもよい。さらに、テッセレーション因子は、基本プリミティブがテッセレーションされるべきではないことを示す値に設定されてもよい。
ある実施形態では、選別プロセスを実行するステップ340(および350)ののち、選別プロセスの実行の結果がテッセレータ214に送られる。テッセレーション・プロセスが実行される(図3b、ステップ360)。テッセレータ214が基本プリミティブと、該基本プリミティブがテッセレーションされるべきではないことを示すテッセレーション因子とを受け取る場合、テッセレータは基本プリミティブをテッセレーションしない。
テッセレータ214が、選別プロセスにおいて破棄されなかった基本プリミティブを受け取るが、該基本プリミティブがテッセレーションされるべきではないことを示すテッセレーション因子を受け取らない場合は、テッセレータ214は基本プリミティブをテッセレーションする。
図3aおよび3bとの関連で述べたステップは、本発明の装置205において実行されてもよい。
図4は、図3aおよび3bのステップの結果を示している。図4aは、基本三角形405の形の基本プリミティブを描いている。図4bは、バーテックス・シェーダー・ユニット216(およびテッセレーション周波数)によって決定される基本三角形405にわたる結果として得られる生成された面410を示している。図4cでは、基本三角形405がテイラー形式(多項式415および区間残余420、425)で表されており、こうして面410の保守的な推定が得られている。図4dでは、テイラー多項式が、効率的な範囲制限(range bounding)のために、(凸包属性を使って)ベルンシュタイン形430に展開されている。図4eでは、区間残余項420、425がテイラー・モデルからベルンシュタイン限界430に加えられ、こうして保守的な面限界445、450が得られる。
図5は、図2のディスプレイ・アダプター205を具現する典型的な汎用コンピュータ583の全体的なアーキテクチャを示している。コンピュータ583は、ソフトウェア命令を実行できる、CPUのようなコントローラ570を有する。コントローラ570は、ランダム・アクセス・メモリ(RAM)のような揮発性メモリ571およびディスプレイ・アダプター500に接続される。このディスプレイ・アダプターは図2のディスプレイ・アダプター205に対応する。ディスプレイ・アダプター500は今度はCRTモニタ、LCDモニタなどといったディスプレイ576に接続される。コントローラ570は、ハード・ドライブまたはフラッシュ・メモリのような持続性記憶装置573およびCD,DVD,HD-DVDもしくはブルーレイのような光メディアの読み出しおよび/または書き込み器のような光学式記憶装置574にも接続されている。ローカル・エリア・ネットワーク、広域ネットワーク(たとえばインターネット)、無線ローカル・エリア・ネットワークまたは無線都市圏ネットワークのようなネットワーク582へのアクセスを提供するために、ネットワーク・インターフェース581もコントローラ570に接続されている。周辺インターフェース577、たとえばユニバーサル・シリアル・バス(universal serial bus)、無線ユニバーサル・シリアル・バス、ファイアワイヤ(firewire)、RS232シリアル、セントロニクス(Centronics)パラレル、PS/2の型のインターフェースを通じて、コントローラ570はマウス578、キーボード579またはジョイスティック、プリンタ、スキャナなどを含む他の任意の周辺機器と通信できる。
本発明を具現するために上記では汎用コンピュータが記載されているが、本発明は、デジタル・グラフィック、特に3Dグラフィックが利用されるいかなる環境においても、たとえばゲーム・コンソール、携帯電話、MP3プレーヤーなどにおいても、同様によく具現できる。
本発明はさらに、ずっと汎用のアーキテクチャにおいて具現されてもよい。該アーキテクチャは、たとえば、任意の型のプログラムを実行できる多くの小さなプロセッサ・コアからなっていてもよい。これは、よりハードウェア中心のGPUとは対照的に、一種のソフトウェアGPUを含意する。
本発明は、上記で、若干の実施形態を参照して述べてきた。しかしながら、当業者にはすぐ理解されるであろうように、上記に開示されたもの以外の実施形態も、付属の特許請求項によって定義される本発明の範囲内で、同様に可能である。
Claims (15)
- デジタル表現されたグラフィックの生成のパフォーマンスを改善する方法であって:
基本プリミティブの第一の表現を受領する段階と;
バーテックス位置決定に関連する命令の組を提供する段階と;
前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供する段階と;
前記基本プリミティブの前記第二の表現を選別プロセスにかける段階とを含む、
方法。 - 請求項1記載の方法であって、さらに:
前記基本プリミティブの前記第一の表現から少なくとも一つのバーテックスを選択する段階と、
前記少なくとも一つのバーテックスの第一の表現に対して、バーテックス位置決定に関連する命令の組を実行して、前記少なくとも一つのバーテックスの第二の表現を提供する段階と、
前記少なくとも一つのバーテックスの前記第二の表現を選別プロセスにかける段階とを含み、ここで、前記選別プロセスの結果は
前記少なくとも一つのバーテックスを選別するという決定および
前記少なくとも一つのバーテックスを選別しないという決定のうちの一つを含み、
前記選別プロセスの結果が前記少なくとも一つのバーテックスを選別するという決定を含む場合に:
基本プリミティブの第一の表現を受領する前記段階;
バーテックス位置決定に関連する命令の組を提供する前記段階;
前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供する前記段階;および
前記基本プリミティブの前記第二の表現を選別プロセスにかける前記段階を実行する、
方法。 - 請求項1または2記載の方法であって、さらに:
前記基本プリミティブの前記第二の表現を囲むバウンディング・ボリュームを決定する段階と;
前記バウンディング・ボリュームを選別プロセスにかける段階とを含む、
方法。 - 請求項1ないし3のうちいずれか一項記載の方法であって、さらに、テッセレーション・プロセスを実行する段階を含み、ここで、前記テッセレーション・プロセスは、前記選別プロセスの結果に基づく、方法。
- 前記選別プロセスが置換可能である、請求項1ないし4のうちいずれか一項記載の方法。
- 前記有界算術が、テイラー算術、区間算術およびアフィン算術の群からの少なくとも一つである、請求項1ないし5のうちいずれか一項記載の方法。
- 請求項3記載の方法であって、前記バウンディング・ボリュームを決定する段階がさらに、前記第二の表現の最小および最大を計算することを含む、方法。
- 前記第二の表現が、位置限界および法線限界の群からの少なくとも一つである、請求項1ないし7のうちいずれか一項記載の方法。
- 請求項1記載の方法であって、前記命令の組を実行する段階がさらに:
バーテックス位置決定に関連する前記命令の組から第二の命令の組を導出する段階と、
前記第二の命令の組を実行して法線限界を与える段階とを含む、
方法。 - 請求項3記載の方法であって、前記バウンディング・ボリュームを前記選別プロセスにかける段階がさらに、
前記バウンディング・ボリュームをビュー錐台選別にかけること、
前記バウンディング・ボリュームを裏面選別にかけること、および
前記バウンディング・ボリュームを隠蔽選別にかけること、
のうちの少なくとも一つを実行することを含む、方法。 - 請求項8記載の方法であって、前記第二の表現を前記選別プロセスにかける段階がさらに、
前記位置限界をビュー錐台選別にかけること、
前記位置限界または前記法線限界を裏面選別にかけること、および
前記位置限界を隠蔽選別にかけること、
のうちの少なくとも一つを実行することを含む、
方法。 - 前記選別プロセスの結果が、
前記基本プリミティブを破棄するという決定および
テッセレーション因子
の一つを含む、請求項1ないし11のうちいずれか一項記載の方法。 - 請求項12記載の方法であって、前記選別プロセスの結果がテッセレーション因子を含む場合に、テッセレーション・プロセスを実行することをさらに含む、方法。
- デジタル表現されたグラフィックを生成するよう適応された装置であって、デジタル表現されたグラフィックの生成のパフォーマンスを改善する回路を有する装置であって、前記回路は:
基本プリミティブの第一の表現を受領し;
バーテックス位置決定に関連する命令の組を提供し;
前記基本プリミティブの前記第一の表現に対して、有界算術を使って前記命令の組を実行して、前記基本プリミティブの第二の表現を提供し;
前記基本プリミティブの前記第二の表現を選別プロセスにかけるよう適応されている、
装置。 - コンピュータ可読記憶媒体上に記憶され、プロセッサ上で実行されたときに請求項1ないし13のうちいずれか一項記載の方法を実行するコンピュータ・プログラム・コードを有するコンピュータ・プログラム・プロダクト。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0800165A SE532399C2 (sv) | 2008-01-23 | 2008-01-23 | Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik |
US6263508P | 2008-01-29 | 2008-01-29 | |
SE0801742A SE0801742L (sv) | 2008-07-30 | 2008-07-30 | Förfarande, apparat och datorprogramprodukt för förbättrad grafikprestanda |
PCT/SE2009/000022 WO2009093956A1 (en) | 2008-01-23 | 2009-01-23 | Method, apparatus, and computer program product for improved graphics performance |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012209479A Division JP5518967B2 (ja) | 2008-01-23 | 2012-09-24 | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011510396A true JP2011510396A (ja) | 2011-03-31 |
Family
ID=40901330
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010543083A Pending JP2011510396A (ja) | 2008-01-23 | 2009-01-23 | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
JP2012209479A Active JP5518967B2 (ja) | 2008-01-23 | 2012-09-24 | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012209479A Active JP5518967B2 (ja) | 2008-01-23 | 2012-09-24 | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
Country Status (7)
Country | Link |
---|---|
US (4) | US9947130B2 (ja) |
JP (2) | JP2011510396A (ja) |
CN (1) | CN102016928B (ja) |
DE (1) | DE112009000180T5 (ja) |
GB (1) | GB2468994B (ja) |
HK (1) | HK1156428A1 (ja) |
WO (1) | WO2009093956A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015528598A (ja) * | 2012-08-09 | 2015-09-28 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Gpuアクセラレーテッドパスレンダリング |
US9619853B2 (en) | 2012-08-09 | 2017-04-11 | Qualcomm Incorporated | GPU-accelerated path rendering |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010048093A2 (en) * | 2008-10-20 | 2010-04-29 | Intel Corporation | Graphics processing using culling on groups of vertices |
US8542492B2 (en) * | 2009-12-10 | 2013-09-24 | Richard Anthony Dunn, JR. | Scalable up and down nesting integrated electronic enclosures with form factors including asteroids and/or dumbbells and/or approximated tessellation(s)/tiling(s) or combinations thereof with thermal management, wiring, sliding fit, manual and/or automated full range vertical to horizontal positioning, access and structural systems for individual modules and intra-and inter-planar stacks, columns, rows, arrays and associated infrastructures |
US8144147B2 (en) * | 2010-04-07 | 2012-03-27 | Intel Corporation | Hierarchical bounding of displaced parametric surfaces |
GB201007348D0 (en) | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US20110285736A1 (en) | 2010-05-21 | 2011-11-24 | Kilgard Mark J | Decomposing cubic bèzier segments for tessellation-free stencil filling |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
GB2509113B (en) | 2012-12-20 | 2017-04-26 | Imagination Tech Ltd | Tessellating patches of surface data in tile based computer graphics rendering |
US9483861B2 (en) * | 2013-03-15 | 2016-11-01 | Qualcomm Incorporated | Tile-based rendering |
KR102109130B1 (ko) | 2013-08-12 | 2020-05-08 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들 |
KR102066533B1 (ko) | 2013-11-19 | 2020-01-16 | 삼성전자 주식회사 | 도메인 쉐이딩 방법과 이를 수행하는 장치들 |
GB2526359B (en) * | 2014-05-23 | 2020-07-22 | Advanced Risc Mach Ltd | Graphics processing systems |
WO2016105218A1 (en) * | 2014-12-23 | 2016-06-30 | Intel Corporation | Facilitating culling of composite objects in graphics processing units when such objects produce no visible change in graphics images |
US20160259404A1 (en) | 2015-03-05 | 2016-09-08 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10838207B2 (en) | 2015-03-05 | 2020-11-17 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10180734B2 (en) | 2015-03-05 | 2019-01-15 | Magic Leap, Inc. | Systems and methods for augmented reality |
KR102381945B1 (ko) | 2015-11-18 | 2022-04-01 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 |
US10909711B2 (en) | 2015-12-04 | 2021-02-02 | Magic Leap, Inc. | Relocalization systems and methods |
KR102626821B1 (ko) | 2016-08-02 | 2024-01-18 | 매직 립, 인코포레이티드 | 고정-거리 가상 및 증강 현실 시스템들 및 방법들 |
US10812936B2 (en) | 2017-01-23 | 2020-10-20 | Magic Leap, Inc. | Localization determination for mixed reality systems |
JP7009495B2 (ja) | 2017-03-17 | 2022-01-25 | マジック リープ, インコーポレイテッド | 多ソース仮想コンテンツ合成を伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法 |
CN110431599B (zh) | 2017-03-17 | 2022-04-12 | 奇跃公司 | 具有虚拟内容扭曲的混合现实系统及使用该系统生成虚拟内容的方法 |
JP7009494B2 (ja) | 2017-03-17 | 2022-01-25 | マジック リープ, インコーポレイテッド | カラー仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツ生成する方法 |
US10614611B2 (en) * | 2017-04-07 | 2020-04-07 | Intel Corporation | Apparatus and method for implementing bounding volume hierarchy (BVH) operations on tesselation hardware |
US10373365B2 (en) * | 2017-04-10 | 2019-08-06 | Intel Corporation | Topology shader technology |
EP3827584A4 (en) | 2018-07-23 | 2021-09-08 | Magic Leap, Inc. | INTRA-FIELD SUB-CODE SYNCHRONIZATION IN SEQUENTIAL FIELD DISPLAYS |
JP7304934B2 (ja) | 2018-07-23 | 2023-07-07 | マジック リープ, インコーポレイテッド | 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法 |
US10831503B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Saving and restoring machine state between multiple executions of an instruction |
US10831478B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Sort and merge instruction for a general-purpose processor |
US10831502B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Migration of partially completed instructions |
US10832465B2 (en) * | 2018-12-13 | 2020-11-10 | Advanced Micro Devices, Inc. | Use of workgroups in pixel shader |
US20220319091A1 (en) * | 2021-03-31 | 2022-10-06 | Advanced Micro Devices, Inc. | Post-depth visibility collection with two level binning |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006318066A (ja) * | 2005-05-10 | 2006-11-24 | Digital Media Professional:Kk | 幾何演算装置 |
JP2007164557A (ja) * | 2005-12-15 | 2007-06-28 | Namco Bandai Games Inc | プログラム、情報記録媒体および画像生成システム |
JP2007310797A (ja) * | 2006-05-22 | 2007-11-29 | Sony Computer Entertainment Inc | オクルージョンカリング方法および描画処理装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2271260A (en) * | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
GB9716251D0 (en) * | 1997-08-01 | 1997-10-08 | Philips Electronics Nv | Attribute interpolation in 3d graphics |
JP2975336B2 (ja) * | 1998-01-09 | 1999-11-10 | コナミ株式会社 | 3次元ビデオゲームにおける衝突検出方法及びこれを用いたビデオゲーム装置並びに3次元ビデオゲームにおける衝突検出プログラムを記録したコンピュータ読み取り可能な媒体 |
US6717578B1 (en) * | 1998-02-17 | 2004-04-06 | Sun Microsystems, Inc. | Graphics system with a variable-resolution sample buffer |
US6359629B1 (en) * | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
US6462740B1 (en) * | 1999-07-30 | 2002-10-08 | Silicon Graphics, Inc. | System for in-scene cloth modification |
JP4253190B2 (ja) | 2001-02-01 | 2009-04-08 | メンタル イメージズ ゲーエムベーハー | 細分表面における滑らかな特徴線の生成 |
JP4803909B2 (ja) * | 2001-06-21 | 2011-10-26 | 株式会社バンダイナムコゲームス | 画像生成システム、プログラム及び情報記憶媒体 |
US6809738B2 (en) * | 2001-12-21 | 2004-10-26 | Vrcontext S.A. | Performing memory management operations to provide displays of complex virtual environments |
US20030117398A1 (en) * | 2001-12-21 | 2003-06-26 | Hubrecht Alain Yves Nestor | Systems and methods for rendering frames of complex virtual environments |
NZ540742A (en) * | 2002-11-15 | 2007-10-26 | Sunfish Studio Inc | Visible surface determination system & methodology in computer graphics using interval analysis |
US20050122338A1 (en) * | 2003-12-05 | 2005-06-09 | Michael Hong | Apparatus and method for rendering graphics primitives using a multi-pass rendering approach |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
US7847798B1 (en) * | 2006-10-24 | 2010-12-07 | Adobe Systems Incorporated | Clipping and culling artwork using a graphics processing unit |
CN1949272A (zh) * | 2006-11-23 | 2007-04-18 | 北京航空航天大学 | 基于视域剔除和图像缓存技术的复杂场景快速绘制方法 |
EP2122577B1 (en) | 2007-01-24 | 2018-03-07 | Swiftfoot Graphics Ab | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program |
US7948489B1 (en) * | 2007-05-30 | 2011-05-24 | Adobe Systems Incorporated | Minimizing tessellation of surfaces |
CN100568289C (zh) * | 2007-07-13 | 2009-12-09 | 威盛电子股份有限公司 | 计算机绘图元素描绘方法及装置 |
US8044971B2 (en) * | 2008-01-31 | 2011-10-25 | Arm Norway As | Methods of and apparatus for processing computer graphics |
-
2009
- 2009-01-23 US US12/864,113 patent/US9947130B2/en active Active
- 2009-01-23 DE DE112009000180T patent/DE112009000180T5/de not_active Ceased
- 2009-01-23 CN CN200980103541.4A patent/CN102016928B/zh not_active Expired - Fee Related
- 2009-01-23 GB GB1012145.7A patent/GB2468994B/en not_active Expired - Fee Related
- 2009-01-23 WO PCT/SE2009/000022 patent/WO2009093956A1/en active Application Filing
- 2009-01-23 JP JP2010543083A patent/JP2011510396A/ja active Pending
-
2011
- 2011-10-07 HK HK11110654.3A patent/HK1156428A1/xx not_active IP Right Cessation
-
2012
- 2012-09-24 JP JP2012209479A patent/JP5518967B2/ja active Active
-
2016
- 2016-12-31 US US15/396,569 patent/US10373370B2/en active Active
-
2019
- 2019-01-15 US US16/248,712 patent/US11361498B2/en active Active
- 2019-01-15 US US16/248,713 patent/US11222462B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006318066A (ja) * | 2005-05-10 | 2006-11-24 | Digital Media Professional:Kk | 幾何演算装置 |
JP2007164557A (ja) * | 2005-12-15 | 2007-06-28 | Namco Bandai Games Inc | プログラム、情報記録媒体および画像生成システム |
JP2007310797A (ja) * | 2006-05-22 | 2007-11-29 | Sony Computer Entertainment Inc | オクルージョンカリング方法および描画処理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015528598A (ja) * | 2012-08-09 | 2015-09-28 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Gpuアクセラレーテッドパスレンダリング |
US9619853B2 (en) | 2012-08-09 | 2017-04-11 | Qualcomm Incorporated | GPU-accelerated path rendering |
Also Published As
Publication number | Publication date |
---|---|
HK1156428A1 (en) | 2012-06-08 |
JP5518967B2 (ja) | 2014-06-11 |
US20110018874A1 (en) | 2011-01-27 |
WO2009093956A1 (en) | 2009-07-30 |
JP2012252725A (ja) | 2012-12-20 |
US11361498B2 (en) | 2022-06-14 |
DE112009000180T5 (de) | 2011-03-31 |
US11222462B2 (en) | 2022-01-11 |
US10373370B2 (en) | 2019-08-06 |
CN102016928A (zh) | 2011-04-13 |
WO2009093956A8 (en) | 2010-09-10 |
GB201012145D0 (en) | 2010-09-01 |
US9947130B2 (en) | 2018-04-17 |
CN102016928B (zh) | 2014-01-08 |
US20170109921A1 (en) | 2017-04-20 |
GB2468994B (en) | 2012-11-28 |
US20190172253A1 (en) | 2019-06-06 |
GB2468994A (en) | 2010-09-29 |
US20190172254A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5518967B2 (ja) | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト | |
JP5111638B2 (ja) | パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法 | |
US8654122B2 (en) | Method, apparatus, and computer program product for improved graphics performance | |
US10032308B2 (en) | Culling objects from a 3-D graphics pipeline using hierarchical Z buffers | |
US10497085B2 (en) | Graphics processing method and system | |
US10593096B2 (en) | Graphics processing employing cube map texturing | |
US10140750B2 (en) | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program | |
JP6863693B2 (ja) | グラフィックス処理システムおよび方法 | |
US20090046098A1 (en) | Primitive binning method for tile-based rendering | |
US10592242B2 (en) | Systems and methods for rendering vector data on static and dynamic-surfaces using screen space decals and a depth texture | |
US20100097377A1 (en) | Graphics Processing Using Culling on Groups of Vertices | |
US20140176544A1 (en) | Tessellating patches of surface data in tile based computer graphics rendering | |
US10249077B2 (en) | Rendering the global illumination of a 3D scene | |
US20070268291A1 (en) | Occlusion Culling Method and Rendering Processing Apparatus | |
US20070268290A1 (en) | Reduced Z-Buffer Generating Method, Hidden Surface Removal Method and Occlusion Culling Method | |
KR20150060026A (ko) | 이전 커맨드 정보를 이용하여 현재 커맨드를 처리하는 방법 및 장치. | |
JP2008305347A (ja) | 干渉判定情報の生成方法及び装置 | |
JP5106992B2 (ja) | 霧効果を考慮して3次元グラフィックスデータをレンダリングする方法及び装置 | |
JP6205200B2 (ja) | ソート機能を持つ画像処理装置及び画像処理方法 | |
SE532399C2 (sv) | Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik | |
Knuth et al. | A Hybrid Ambient Occlusion Technique for Dynamic Scenes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120228 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120605 |