JP2011528823A - Gpuベジエ・パスのラスター化 - Google Patents

Gpuベジエ・パスのラスター化 Download PDF

Info

Publication number
JP2011528823A
JP2011528823A JP2011518922A JP2011518922A JP2011528823A JP 2011528823 A JP2011528823 A JP 2011528823A JP 2011518922 A JP2011518922 A JP 2011518922A JP 2011518922 A JP2011518922 A JP 2011518922A JP 2011528823 A JP2011528823 A JP 2011528823A
Authority
JP
Japan
Prior art keywords
edge
shader
sampling
pixel
component
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.)
Granted
Application number
JP2011518922A
Other languages
English (en)
Other versions
JP5476378B2 (ja
JP2011528823A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011528823A publication Critical patent/JP2011528823A/ja
Publication of JP2011528823A5 publication Critical patent/JP2011528823A5/ja
Application granted granted Critical
Publication of JP5476378B2 publication Critical patent/JP5476378B2/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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

グラフィクス・システムにおいて薄い形体のサポートに対処するための、スーパーサンプリングと、形体エッジまたはベジエ評価からの距離計算との混成である。一部の形体を失うのを回避するために、本技法は、少数のスーパーサンプルの何らかのスーパーサンプリングを行って、薄い形体を拾い上げる。スーパーサンプリングすることによって、薄い形体の両側にサンプルを生成することができ、これによって薄い形体が何らかの画素によって検出可能になる。薄い形体がいずれかの画素に当たれば、エッジからの距離の手法によって、前述の品質が達成されつつある。例えば、本技法は、エッジからの距離の手法と組み合わせて、4回スーパーサンプリングを行うことができ、別の4つのサンプルを生成し、16−サンプルの結果を得ることができる。
【選択図】図1

Description

[0001] グラフィクス処理部(GPU)により多くのグラフィクス計算を移動させることにより、並列性、メモリー帯域幅の拡大、およびGPU上に設けられているグラフィクス動作に合わせた特殊ハードウェアのために、デバイスの中央演算装置(CPU)上において通例処理されていたものが改善する。しかしながら、GPUは、ジェオメトリー・シェーダー(geometry shader)、頂点シェーダー(vertex shader)、およびピクセル・シェーダー(pixel shader)によって三角形(triangle)をラスター化することができるに過ぎない。パスを描くには(パスとは、一緒にパッチされたベジエ曲線の組み合わせであり、ラスター化された画像の範囲によって制限されず、直観的に修正できる)、GPUが理解できる形態への何らかの変換が必要となる。従前からの手法は、この変換ステップをCPU上で実行しており、CPUが拘束されてしまうことが多い。
[0002] アンチ・エリアシング(anti-aliasing)に対する従前からの手法に、スーパーサンプリング(supersampling)があり、この技法は、分解能を高くして概念的に描画を行い、次いであるフィルタ・パターンでダウンサンプリングを行いアンチ・エリアシングの結果を求めることを含む。スーパーサンプリングの欠点の1つは、一般にサンプル数に応じてその性能が上下し、高いユーザ・インターフェース(UI)品質には、16サンプル以上を用いなければならないことである。この結果、この実施態様に基づくと、減速が約16倍になり、メモリーの要求量が16倍になる。マルチ・パス手法を採用することもでき、この方が遅いがメモリーの使用量は少ない。
[0003] アンチ・エリアシングに対する他の手法は、ハードウェアにネーティブにサポートされており、ピクセル・シェーダーを画素毎に1回実行させるマルチ・サンプル・バッファを含む手法である。この手法は、より高い分解能におけるジェオメトリーについてのカバレッジ情報を生成し、三角形データについてのアンチ・エリアシング情報を発生する。しかしながら、マルチ・サンプル手法には欠点がある。品質が、個々の部分毎に著しく変動するのである。殆どのハードウェアには、何らかの最少サンプル数(例えば、4サンプル)があるが、高品質のベクトル・グラフィクスにはこれは不十分である。更に、マルチ・サンプル・アンチ・エリアシングは、個々のGPU販売業者毎に異なり、一貫性のない外観を与える。加えて、マルチ・サンプル・アンチ・エリアシングは、画素毎に1回しかピクセル・シェーダーを実行することができない。つまり、ピクセル・シェーダーにおいてベジエ平坦化技法(Bezier flattening techniques)を用いると、曲線のピクセル・シェーダー評価が最適にならないために、エリアスされた出力が生ずる結果となる。
[0004] 極普通に用いられるアンチ・エリアシングに対する第3の手法では、サンプル点からエッジまでの距離に基づく技法を伴う。ピクセル・シェーダーにおいて、ジェオメトリーのエッジからの距離を計算し、アルファ・フォールオフ(alpha falloff)を求めて、アンチ・エリアシングした結果を得る。この手法を用いると、スーパーサンプリングのコストがかからず、更にマルチ・サンプル・バッファに付随する余分なコストもかからずに、ドローを完全にエリアスすることができる。ベジエに沿ったアンチ・エリアス・エッジを得ることができる。しかしながら、ピクセル・シェーダーが画素毎に一回しか実行されないため、そして画素がジェオメトリーの中に内包されている場合ピクセル・シェーダーはその画素に対してしか実行しないので、ジェオメトリーが薄い場合、この手法はこの薄いジェオメトリーをレンダリングすることができない。
[0005] ある角度をなす1画素の線(1-pixel line)(例えば、直接角(direct angle)周囲の円弧)について考える。これはUIでは極一般的である。その薄い形体(feature)についてのサンプル点全てを欠落する可能性がある。描画がエリアスされると、角画素の中心にサンプル点が来て、ジェオメトリーがサンプル点と交差しないと、何も描画されなくなる。つまり、ある角度をなす1画素幅の線では、ジェオメトリーが消失する。このように、この第3の手法の欠点は、形体が薄い場合、その形体があっさりと消失する可能性があることである。
[0006] 別の欠点は、角もサンプル点を欠落する可能性があるので、角が不正確になることである。これに対処する1つの手法は、ピクセル・シェーダーおよびマルチ・サンプル・バッファの組み合わせを用いることである。マルチ・サンプル・バッファが角に役立つのは、多くの場合、角には関連付けられたジェオメトリーがあり、そのジェオメトリーも角が一致し、何らかの方法で、マルチ・サンプル・バッファに対してエッジにマスキング効果が得られるからである。しかしながら、エッジ・ジェオメトリーがない場合、例えば、ベジエ平坦化が薄い形体付近でピクセル・シェーダーにおいて行われるときには、この手法でも未だ薄い形体の問題は解決できない。基本的に、1画素幅の曲線が消失する。角の方がましであるが、マルチ・サンプル・バッファでは精度が高くない。
[0007] 以下に、本明細書において記載するいくつかの新規な実施形態の基本的な理解を得るために、簡略化した摘要を紹介する。この摘要は、広範な全体像であり、主要な/重大な要素を特定することも、その範囲を正確に叙述することも意図していない。その唯一の目的は、後に紹介する更に詳細な説明に対する序文として、簡略化した形体で一部の概念を紹介することである。
[0008] 開示するアーキテクチャーは、グラフィクス処理部(GPU)を用いて基本的な曲線を描き、高品質のアンチ・エリアシングを出力において得る問題を少なくとも解決する。一般に、薄い形状のサポートのために、ピクセル・シェーダーが関連のある画素全てに対して実行できるようにするために、スーパーサンプリングを用いて、より高い周波数でピクセル・シェーダー・サンプルを生成する。頂点シェーダーが、アンチ・エリアシング・サンプル情報を計算する。形状全体ではなくエッジに沿ってだけスーパーサンプリングすることができる三角形分割アルゴリズム(triangulation algorithm)を用いる。
[0009] 本技術は、スーパーサンプリングと、ベジエ評価によって形体エッジからの距離を計算する手法との混成である。一部の形体を失うのを回避するために、本技法は、少数のスーパーサンプル(例えば、3つまたは4つのサンプル)の何らかのスーパーサンプリングを行う。このために、スーパーサンプルの数に基づいて、プロセスが遅くなる可能性がある。例えば、4つのスーパーサンプルを用いると、プロセスの速度は1/4に低下する可能性があり、それ自体では、ユーザ・インターフェース(UI)においてレンダリングするには不十分な品質となる。しかしながら、これは、薄い形体を拾い上げるには十分な品質である。言い換えると、少々スーパーサンプリングすることによって、薄く広がった(stroked)エッジの両側にサンプルを生成することができ、これによって薄い形体が何らかの画素によって検出可能になる。薄い形体がいずれかの画素に当たれば、エッジからの距離の手法によって、前述の品質が達成されていく。例えば、本技法は、エッジからの距離の手法と組み合わせて、4回スーパーサンプリングを行うことができ、別の4つのサンプルを生成し、16−サンプルの結果を得ることができる。
[0010] 以上の目標および関係する目標の遂行のために、本明細書では、以下の説明および添付図面と関連付けて、ある種の例示的態様について説明する。これらの態様は、本明細書において開示される原理を実用化することができる種々の方法を示し、その全ての態様および等価物は、特許請求する主題の範囲に該当することを意図している。他の利点および新規な特徴は、以下の詳細な説明を図面と合わせて検討することにより明白となろう。
図1は、開示するアーキテクチャーによるコンピューター実装グラフィクス処理システムを示す。 図2は、開示するアーキテクチャーによるグラフィクス処理システムを更に詳細に示す。 図3は、GPUパス・ラスター化についてのフロー・ブロック図を示す。 図4は、コンピューター実装グラフィクス処理方法を示す。 図5は、パス・ラスター化方法を示す。 図6は、エッジをサンプリングする方法を示す。 図7は、開示するアーキテクチャーにしたがってベジエ・パス・ラスター化を発生するGPUを採用することができるコンピューティングシステムのブロック図を示す。
[0018] 開示するアーキテクチャーは、グラフィクス処理部(GPU)を用いて基本的な曲線を描き、高品質のアンチ・エリアシングを出力において得る問題を少なくとも解決する。薄い形状(例えば、1−画素幅の線)について、シェーダーが関連のある画素全てに対して実行できるようにするために、スーパーサンプリングを用いて、薄い形体の両側にピクセル・シェーダー・サンプルを生成する。頂点シェーダーが、ddx/ddyを用いてエッジからの距離を近似するのではなく、アンチ・エリアシング・サンプル情報を計算する。ddx命令がXウィンドウ座標に関する近似偏微分を計算して、結果ベクトルを求める。偏微分は、画素の中心において評価される。同様に、ddy命令がYウィンドウ座標に関する近似部分片微分を計算して、結果ベクトルを求める。この偏微分も画素の中心において評価される。形状全体ではなくエッジに沿ってだけスーパーサンプリングすることができる三角形分割アルゴリズムを用いる。
[0019] これより図面を参照するが、図面における同様の参照番号が、全体を通じて同様の要素を指すために用いられることとする。以下の記載では、説明の目的上、その完全な理解を得るために多数の具体的な詳細を明示する。しかしながら、新規の実施形態は、これら具体的な詳細がなくても実用化可能であることは明白であろう。他方において、周知の構造やデバイスは、その説明を容易にするために、ブロック図形態で示されている。この考え方は、特許請求する主題の主旨および範囲に該当する全ての変更、等価、および代替物に及ぶものとする。
[0020] 図1は、開示するアーキテクチャーによる、コンピューター実装グラフィクス処理システム100を示す。システム100は、ジェオメトリー情報を解明するために、画像108(場面)における物体106のエッジ104をサンプリングするサンプリング・コンポーネント102を含む。また、システム100は、アンチ・エリアシング・サンプリング情報112を計算することによって画像108の品質を高める品質コンポーネント110も含むことができる。サンプリング・コンポーネント102は、エッジ104をスーパーサンプリングして、シェーダーのためにサンプルを生成する。シェーダーは、エッジ104に関連する画素に対して実行するために、より高い周波数でサンプリングする(エッジ104の両側で実行するため)ピクセル・シェーダーとすることができる。
[0021] システム100および本明細書において記載する他の実施形態は、スーパーサンプリング、および形体のエッジから距離を計算する手法またはベジエ評価を採用する。一部の形体を失うのを回避するために、本技法は、少数のスーパーサンプル(例えば、3つまたは4つのサンプル)の何らかのスーパーサンプリングを行う。このために、スーパーサンプルの数に基づいて、プロセスが遅くなる可能性がある。例えば、4つのスーパーサンプルを用いると、プロセスの速度は1/4に低下する可能性があり、それ自体では、ユーザ・インターフェース(UI)においてレンダリングするには不十分な品質となる。しかしながら、これは、薄い形体を拾い上げるには十分な品質である。言い換えると、少々スーパーサンプリングすることによって、形体のエッジの両側にサンプルを生成することができ、これによって薄い形体が何らかの画素によって検出可能になる。薄い形体がいずれかの画素に当たれば、エッジからの距離の手法によって、前述の品質が達成されていく。例えば、本技法は、エッジからの距離の手法と組み合わせて、4回スーパーサンプリングを行うことができ、別の4つのサンプルを生成し、16−サンプルの結果を得ることができる。この結果は、ピクセル・シェーダーを用いて品質を向上させることによって、素晴らしく見えるようになる。
[0022] システム100は、GPUにおいてスーパーサンプリングを用い、追加のサンプルを生成するために1つ又は複数のシェーダーを用いることによって、全体的にGPUにおいて採用することができる。尚、代替実施態様ではFPGA(フィールド・プログラマブル・ゲート・アレイ)技術を採用し、ハードウェアの解決策においてソフトウェアが採用されることは言うまでもない。一般に、1つの手法が、シェーダーが画素毎に実行できる回数を変化させる機能を設ける(マルチ・サンプル・バッファの利用によって補助することができる)。
[0023] 更に具体的には、より広い使用に備えるために、ピクセル・シェーダーにおいて距離を計算する代わりに、開示する手法はベジエ情報を頂点シェーダーにおいて複製し、このベジエ情報に基づいて多数のサンプルを取り込む。ここで、「複製」とは、頂点シェーダーにおける異なるサンプルに対する位置の複製および調節を含み、そしてピクセル・シェーダーは多数の座標のベジエを評価する。距離関数は、ピクセル・シェーダーから除去され、ベジエ情報が頂点シェーダーにおける異なる位置において複製され、ピクセル・シェーダーにおいて一層容易に評価される。アンチ・エリアシング計算は、画素毎から頂点毎に移される。
[0024] 図2は、開示するアーキテクチャーによるグラフィクス処理システム200を更に詳細に示す。システム200は、ジェオメトリー情報を解明するために、画像108(場面)における物体106のエッジ104をサンプリングするサンプリング・コンポーネント102を含む。また、システム200は、アンチ・エリアシング・サンプリング情報112を計算することによって画像108の品質を高める品質コンポーネント110も含むことができる。
[0025] 更に、システム200は、エッジ104の両側におけるテクスチャ・データ・スーパーサンプリングとして、三角形データを発生し、スーパーサンプルをテクスチャ・データに変換する三角形分割コンポーネント202も備えることができる。シェーダー・コンポーネント204は、ベジエ・パスの最終パス・ラスター化を容易にする1つ又は複数のシェーダーを含むことができる。例えば、シェーダー・コンポーネント204は、薄い形体のスーパーサンプリングされた外観(aspect)に基づいてオフセット・テクスチャ単位(offset texture unit)を計算する頂点シェーダーと、オフセット・テクスチャ単位を用いて追加のサンプリングを行うピクセル・シェーダーと、場面をダウンサンプリングして最終場面結果を求めるダウンサンプリング・シェーダーとを含むことができる。
[0026] この外観は薄い形体のエッジとすることができ、このエッジは1−画素幅である。ピクセル・シェーダーは、薄いジェオメトリー形体を取り込むために、より高い周波数で実行する。頂点シェーダーによって計算されるオフセット・テクスチャ単位は、アンチ・エリアシング・サンプリング情報として利用される。三角形分割コンポーネント202は、薄い形体として入力された、ベジエ曲線に沿った三角形分割に基づいて、オフセット・テクスチャ単位として三角形データを発生することができる。頂点シェーダー、ピクセル・シェーダー、およびダウンサンプリング・シェーダーは、ベジエ・パス・ラスター化を行うために、排他的にGPU上で動作する。
[0027] あるいは、サンプリング・コンポーネント102が、薄い形体のエッジをスーパーサンプリングするピクセル・シェーダーを含むこともできる。
[0028] 図3は、GPUパス・ラスター化のフロー・ブロック図300を示す。このプロセスは、2つのフレーム・システム、即ち、初期フレーム・システム302、次いで最終的なレンダリングのための再描画フレーム・システム304によって開始することができる。初期フレーム・システム302と関連のある処理はCPUによって実行することができ、再描画フレーム・システム304と関連のある処理はGPUによって実行することができる。
[0029] 三角形分割手法は、三角形分割コンポーネント202を利用して、ベジエ・パス記述306(ベジエ情報とも呼ぶ)を受け取り、関連するベジエ座標を用いて三角形分割を行う。ベジエ座標は、画素毎に評価される。一旦三角形分割が行われると、以後再利用可能になり(頂点データとして)、異なる倍率、変換等で数回描画することができる。初期フレーム・システム302は前処理作業を受け持つが、この前処理作業はオーサリングのときに実行することもできる。三角形分割コンポーネント202の出力は、テクスチャ単位(またはデータ)としての、またはこれを伴う三角形データ308(例えば、座標)である。三角形分割データを発生するため、そして実行時付加後処理作業のために、ツールを利用することができる。前述の前処理作業では、三角形データが生成され、コンピューティングシステム(またはCPU)上で実行することができる。
[0030] 再描画フレーム・システム304は、GPU上で行われる作業であり、フレーム毎に実行される。再描画フレーム・システム304上における作業は、スケール変換(scale transform)等によって動画化することができる。三角形データ308は、頂点シェーダー310を(アンチ・エリアシング・ヒントによって)実行させるテクスチャ単位を含む。頂点シェーダー310は、変換に基づいて三角形座標を複製し、更に具体的には、変換に基づいてベジエ項を複製し(アンチ・エリアシング・ヒント312を有する頂点データとして)、その項をピクセル・シェーダー314に受け渡す(ピクセル・シェーダー314は追加のサンプリングを実行することもできる)。次いで、ピクセル・シェーダー314は、316において、場面ラスター化のために、スーパーサンプル・バッファ(supersampled buffer)を求める。ダウンサンプリング・シェーダー318が、スーパーサンプル・バッファの内容を取り込み、次いで320において最終パス(または目標)の分解能にダウンサンプリングする。したがって概略的に、このプロセスは薄い形体を大きく再描画し、次いでピクセル・シェーダーによって再度ダウンサンプリングして、最終的なラスター化を行う。
[0031] 以下に、開示するアーキテクチャーの新規な態様を実行するための方法例を表す一連のフロー・チャートを示す。説明を簡素化する目的のために、本明細書では、例えば、フロー・チャートまたは流れ図の形態で示される1つ又は複数の方法は、一連の行為として示され記載されるが、これらの方法はその行為の順序に限定されないことは言うまでもないことであり、認められるであろう。何故なら、一部の行為は、それに応じて、本明細書において示され記載されるのとは異なる順序で行われること、および/または他の行為と同時に行われることもあるからである。例えば、方法が、状態図におけるように、一連の相互に関係する状態またはイベントとして代わりに表される可能性もあることは、当業者は理解し認めるであろう。更に、ある方法に示される全ての行為が新規の実施態様に必要とはならない場合もある。
[0032] 図4は、グラフィクスを処理するコンピューター実装方法を示す。400において、画像におけるある形体のエッジをオーバーサンプリングして、ジェオメトリー情報を得る。402において、このジェオメトリー情報に基づいて、アンチ・エリアシング・サンプリング情報を、オフセット・テクスチャ単位として計算する。404において、オフセット・テクスチャ単位を用いて追加のサンプリングを行う。406において、追加のサンプリングおよびジェオメトリー情報に基づいて、場面を再描画する。408において、再描画した場面をダウンサンプリングして、最終的にレンダリングした結果を生成する。
[0033] オフセット・テクスチャ単位は、ベジエ・オブジェクトから得られるオフセット・ベジエ・テクスチャ単位とすることができる。本方法は、更に、ピクセル・シェーダーをより高い周波数で実行して、1−画素幅の形体のような、薄い形体のサンプルを得るステップを備えることができる。更に、本方法は、頂点シェーダーを実行してアンチ・エリアシング・サンプリング情報を計算するステップと、ピクセル・シェーダーを実行して追加のサンプリングを得るステップとを備えることもできる。
[0034] 図5は、パス・ラスター化方法を示す。500において、オーバースケーリングしたレンダリング目標について三角形分割を開始する。例えば、オーバースケーリングに関して、水平および垂直方向双方の分解能を2倍にすることができる。502において、ピクセル・シェーダーをエッジの両側において実行してサンプルを得る。より高い周波数で実行することにより、通常では欠落する1画素幅の線によるサンプルも拾い上げる。504において、頂点シェーダーを実行して、現在の変換(1つまたは複数)に基づいたアンチ・エリアシングに合わせたオフセット・ベジエ・テクスチャ単位を計算する。506において、ピクセル・シェーダーを実行して、オフセット・ベジエ・テクスチャ単位に基づいて、ピクセル・シェーダーにおいて追加の回数だけサンプリングする。例えば、500における2×2(水平×垂直)のオーバースケーリング、そして504における4つのサンプルから、高品質のアンチ・エリアシングに適した、画素当たり2×2×4=16個のサンプルが得られる。所望に応じて、他のオーバーサンプリングおよびサンプルを用いることもできる。508において、場面を描画する。510において、場面を描画した後、ダウンサンプル・シェーダーをこの場面上で実行して、最終的なレンダリングした結果を生成する。
[0035] 図6は、エッジをサンプリングする方法を示す。600において、エッジ・スーパーサンプリングを開始する。602において、画像の形体に対して三角形を発生する。604において、各三角形をエッジ部と内部とに分割する。606において、三角形の内部を処理する。これは、エリアス・モード(aliased mode)で実行することができる。608において、三角形の画素エッジ部をスーパーサンプリングする。例えば、このスーパーサンプリングを実行してスーパーサンプル・バッファ(supersampled buffer)を求めることができる。610において、スーパーサンプルから計算した画素を用いて、宛先の目標オブジェクトにおいてエッジ三角形を再描画する。この再描画は、エッジに沿った画素についてスーパーサンプル・バッファにおいて計算した画素のみを用いて実行することができる。612において、スーパーサンプル・バッファの内容を、次のフレームのためにクリアする。これは、内容をクリアするためにエッジ三角形をスーパーサンプル・バッファの中に再描画し、更に、例えば、表面全体の消去を回避するために背景色に再描画することによって遂行することができる。
[0036] 本願において用いる場合、「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピューターに関係するエンティティを指すことを意図している。例えば、コンポーネントは、プロセッサーにおいて実行中のプロセス、プロセッサー、ハード・ディスク・ドライブ、(光および/または磁気記憶媒体の)多数の記憶デバイス、オブジェクト、エクゼキュータブル、実行スレッド、プログラム、および/またはコンピューターとすることができるが、これらに限定されるのではない。例示すると、サーバーにおいて実行しているアプリケーションおよびサーバーの双方がコンポーネントであることができる。1つ又は複数のコンポーネントは、プロセスおよび/または実行のスレッドの内部に位置することができ、更にコンポーネントは1つのコンピューターに局在化すること、および/または2つ以上のコンピューター間に分散することができる。「例示的な」(exemplary)という用語は、本明細書において用いられる場合、例、実例(instance)、または例示(illustration)として役立つことを意味する。本明細書において「例示的な」ものとして記載されたいずれの実施態様も、またはその態様も、他の実施態様またはその態様よりも優先されるというように、またはそれらよりも有利であるというようには必ずしも解釈されないものとする。
[0037] これより図7を参照すると、開示したアーキテクチャーにしたがってベジエ・パス・ラスター化を行うGPUを用いるために動作可能なコンピューティングシステム700のブロック図が示されている。種々の態様について追加のコンテキストを提示するために、図7および以下の論述は、種々の態様を実現することができる、適したコンピューティングシステム700の端的で総合的な説明を行うことを意図している。これまでの説明は、1つ又は複数のコンピューター上において実行することができるコンピューター実行可能命令という一般的なコンテキストにおいて行われたが、新規な実施形態は、他のプログラム・モジュールとの組み合わせで、および/またはハードウェアとソフトウェアとの組み合わせとしての実現可能であることは当業者には認められよう。
[0038] 一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造等を含み、特定のタスクを実行するか、および/または特定の抽象的データ・タイプを実現する。更に、当業者には、本発明の方法は他のコンピューター・システム構成でも実用化可能であることが認められよう。他のコンピューター・システム構成には、単一プロセッサー・システムまたはマルチプロセッサー・コンピューター・システム、ミニコンピューター、メインフレーム・コンピューター、ならびにパーソナル・コンピューター、ハンド・ヘルドコンピューティングデバイス、マイクロプロセッサー主体またはプログラマブル消費者用電子機器等が含まれる。これらの各々は、1つ又は複数の関連するデバイスに動作的に結合することができる。
[0039] また、図示した態様は、通信ネットワークを通じてリンクされているリモート処理デバイスによってある種のタスクが実行される、分散型コンピューティング環境においても実用可能である。分散型コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート・コンピューター記憶媒体双方に配することができる。
[0040] コンピューターは、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューターがアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。限定ではない一例をあげると、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータというような情報の格納のために、あらゆる方法または技術で実施される、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。コンピューター記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・ビデオ・ディスク(DVD)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューターがアクセス可能なその他のいずれの媒体も含むが、これらに限定されるのではない。
[0041] 再度図7を参照すると、種々の態様を実現するコンピューティングシステム例700は、演算装置704、システム・メモリー706、およびシステム・バス708を有するコンピューター702を含む。システム・バス708は、システム・メモリー706から演算装置704までを含むがこれらに限定されないシステム・コンポーネントにインターフェースを設ける。演算装置704は、種々の市販のプロセッサーであればいずれでもよい。デュアル・マイクロプロセッサーおよびその他のマルチ・プロセッサー・アーキテクチャーも、演算装置704として採用することができる。
[0042] システム・バス708は、メモリー・バス(メモリー・コントローラを有するまたは有さない)、周辺バス、および種々の利用可能なバス・アーキテクチャーのいずれかを用いるローカル・バスに更に相互接続することができる、様々な形式のバス構造のいずれでも可能である。システム・メモリー706は、不揮発性メモリー(NON-VOL)710および/または揮発性メモリー712(例えば、ランダム・アクセス・メモリー(RAM))を含むことができる。基本入出力システム(BIOS)は、不揮発性メモリー710(例えば、ROM、EPROM、EEPROM等)に格納することができ、BIOSは、起動中のように、コンピューター702内のエレメント間において情報を転送するのに役立つ基本的なルーチンをである。また、揮発性メモリー712は、データをキャッシュするスタティックRAMのような高速RAMも含むことができる。
[0043] 更に、コンピューター702は、内部ハード・ディスク・ドライブ(HDD)714(例えば、EIDE、SATA)も含む。内部HDD714は、適したシャーシ内における外部使用に合わせて構成することもできる。コンピューター702は、磁気フロッピーー・ディスク・ドライブ(FDD)716(例えば、リムーバブル・ディスケット718からの読み取りおよびこれへの書き込みを行う)および光ディスク・ドライブ720(例えば、CD−ROMディスク722を読み取る、あるいはDVDのような高容量光媒体から読み取るまたはこれに書き込む)も含む。HDD714、FDD716、および光ディスク・ドライブ720は、それぞれ、HDDインターフェース724、FDDインターフェース726、および光ドライブ・インターフェース728によってシステム・バス708に接続することができる。外部ドライブ実装のためのHDDインターフェース724は、ユニバーサル・シリアル・バス(USB)およびIEEE1394インターフェース技術の内少なくとも一方または双方を含むことができる。
[0044] これらのドライブおよび付随するコンピューター読み取り可能媒体は、データ、データ構造、コンピューター実行可能命令等の不揮発性格納に備える。コンピューター702のために、これらのドライブおよび媒体は、適したディジタル・フォーマットであらゆるデータの格納に対処する。先のコンピューター読み取り可能媒体についての記載では、HDD、リムーバブル磁気ディスケット(例えば、FDD)、およびCDまたはDVDのようなリムーバブル光媒体に言及したが、zipドライブ、磁気カセット、フラッシュ・メモリー・カード、カートリッジ等のような、コンピューターによって読み取りが可能な他のタイプの媒体も、動作環境例において用いることができること、更にこのような媒体のいずれもが、開示したアーキテクチャーの新規な方法を実行するためのコンピューター実行可能命令を収容できることは、当業者には認められよう。
[0045] これらのドライブおよび揮発性メモリー712には、多数のプログラム・モジュールを格納することができ、オペレーティング・システム730、1つ又は複数のアプリケーション・プログラム732、他のプログラム・モジュール734、およびプログラム・データ736が含まれる。これらのオペレーティング・システム、アプリケーション、モジュール、および/またはデータの全てまたは一部は、揮発性メモリー712にキャッシュすることもできる。尚、開示したアーキテクチャーは、種々の市販されているオペレーティング・システムまたはオペレーティング・システムの組み合わせを用いても実現できることは認められよう。
[0046] ユーザは、コマンドおよび情報をコンピューター702に、1つ又は複数の有線/ワイヤレス入力デバイス、例えば、キーボード738およびマウス740のようなポインティング・デバイスによって入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、IRリモコン、ジョイスティック、ゲーム・パッド、スタイラス・ペン、タッチ・スクリーン等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、入力デバイス・インターフェース742を介して、演算装置704に接続されている。入力デバイス・インターフェース742は、システム・バス708に結合されているが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、またはIRインターフェース等のような他のインターフェーによって接続することも可能である。
[0047] モニター744またはその他の形式のディスプレイ・デバイスも、ビデオ・アダプター746のようなインターフェースを介して、システム・バス708に接続されている。アダプター746は、例えば、サンプリング・コンポーネント102、品質コンポーネント110、アンチ・エリアシング情報112、シェーダー・コンポーネント204、頂点シェーダー310、ピクセル・シェーダー314、ダウンサンプル・シェーダー318、および関連するデータ(例えば、エリアシング・ヒント312を伴う頂点データ、画像ラスター化316、および最終的なパス・ラスター化)を含むように動作可能である。三角形分割コンポーネント202は、コンピューティングデバイス702上で動作可能にすることができる。
[0048] モニター744に加えて、コンピューターは、通例、スピーカーおよびプリンター等のような、その他の周辺出力装置(図示せず)も含むことができる。
[0049] コンピューター702は、論理接続を用いて、リモート・コンピューター(1つまたは複数)748のような1つ又は複数のリモート・コンピューターへの有線および/またはワイヤレス通信を通じて、ネットワーク環境において動作することも可能である。リモート・コンピューター(1つまたは複数)748は、ワークステーション、サーバー・コンピューター、ルータ、パーソナル・コンピューター、携帯用コンピューター、マイクロプロセッサー主体娯楽機器、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター702に関して先に説明したエレメントの多くまたは全てを含むが、簡潔さのために、メモリー/記憶デバイス750のみを示す。図示する論理接続は、ローカル・エリア・ネットワーク(LAN)752および/またはそれよりも大きなネットワーク、例えば、ワイド・エリア・ネットワーク(WAN)754への有線/ワイヤレス接続を含む。このようなLANおよびWANネットワーク環境は、事務所および会社においては、極一般的であり、イントラネットのような企業規模のコンピューター・ネットワークを促進する。その全ては、地球規模の通信ネットワーク、例えば、インターネットに接続することができる。
[0050] LANネットワーク環境で用いる場合、コンピューター702は、有線および/またはワイヤレス通信ネットワーク・インターフェースまたはアダプター756を介してLAN752に接続する。アダプター756は、LAN752への有線および/またはワイヤレス通信を容易にする。また、LAN752も、アダプター756のワイヤレス機能と通信するために配置されたワイヤレス・アクセス・ポイントを含むことができる。
[0051] WANネットワーク環境で用いる場合、コンピューター702は、モデム758を含むことができ、またはWAN754上にある通信サーバーに接続されるか、あるいは、一例としてインターネットのような、WAN754上での通信を確立するための他の手段を有する。モデム758は、内蔵でも外付けでもよく、そして有線および/またはワイヤレス・デバイスとすることもでき、入力デバイス・インターフェース742を介してシステム・バス708に接続することができる。ネットワーク環境では、コンピューター702に関して図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶デバイス750に格納することもできる。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
[0052] コンピューター702は、例えば、プリンター、スキャナー、デスクトップおよび/または携帯用コンピューター、パーソナル・ディジタル・アシスタント(PDA)、通信衛星、ワイヤレス検出可能タグ(例えば、キオスク、新聞売店、休憩室)と関連付けられた機器または場所のいずれか、ならびに電話機とのワイヤレス通信(例えば、IEEE802.11無線変調技法)において動作的に配置されるワイヤレス・デバイスのような、IEEE802規格集を用いた、有線およびワイヤレス・デバイスまたはエンティティと通信するように動作可能である。これには、少なくとも、WiFi(即ち、Wireless Fidelity)、WiMax、およびBluetooth(商標)ワイヤレス技術が含まれる。つまり、通信は、従来のネットワークのように、予め定められた構造とすることができ、または単に少なくとも2つのデバイス間におけるアドホック通信とすることもできる。Wi−Fiネットワークは、IEEE802.11x(a、b、g等)と呼ばれる無線技術を用いて、安全で、信頼性があり、高速のワイヤレス接続を提供する。Wi−Fiネットワークは、コンピューターを互いに接続するため、インターネットに接続するため、そして有線ネットワーク(IEEE802.3関連媒体および機能を用いる)に接続するために用いることができる。
[0053] 以上に説明したことには、開示したアーキテクチャーの例が含まれる。勿論、着想可能な全てのコンポーネントおよび/または方法の組み合わせについて記載することは不可能であるが、当業者であれば、多くの更に別の組み合わせや並び替え(permutation)が可能であることを認めることができよう。したがって、新規なアーキテクチャーは、添付した請求項の主旨および範囲に該当する、このような変更、修正、および変形を全て包含することを意図している。更に、「含む」という用語が詳細な説明または特許請求の範囲のいずれかで用いられている限りにおいて、このような用語は、「備えている」という用語が請求項において移行性単語として用いられているときの「備えている」と同様に、包含的であることを意図している。

Claims (15)

  1. コンピューター実装グラフィクス処理システム(100)であって、
    ジェオメトリー情報を解明するために、画像におけるエッジをサンプリングするサンプリング・コンポーネント(102)と、
    アンチ・エリアシング・サンプリング情報を計算することによって、前記画像の品質を高める品質コンポーネント(110)と、
    を備えている、システム。
  2. 請求項1記載のシステムにおいて、前記サンプリング・コンポーネントが、シェーダーのためにサンプルを生成するために、前記エッジをスーパーサンプリングする、システム。
  3. 請求項2記載のシステムにおいて、前記シェーダーが、前記エッジに関連のある画素に対して実行するように、より高い周波数でサンプリングするピクセル・シェーダーである、システム。
  4. 請求項1記載のシステムであって、更に、前記エッジの両側においてスーパーサンプリングし、スーパーサンプルをテクスチャ・データに変換する三角形分割コンポーネントを備えている、システム。
  5. 請求項1記載のシステムであって、更に、前記アンチ・エリアシング・サンプリング情報を計算するシェーダー・コンポーネントを備えている、システム。
  6. 請求項1記載のシステムであって、更に、最終的なラスター化パスを出力するために前記画像をダウンサンプリングするダウンサンプリング・コンポーネントを備えており、前記画像が前記エッジを含む、システム。
  7. 請求項1記載のシステムにおいて、前記サンプリング・コンポーネントおよび前記品質コンポーネントがグラフィクス処理部(GPU)上において用いられ、前記GPUによって薄い形体が全体的に前記画像内にレンダリングされるようにした、システム。
  8. 請求項8記載のシステムにおいて、前記外観が前記薄い形体のエッジであり、このエッジが1画素幅である、システム。
  9. グラフィクスを処理するコンピューター実装方法であって、
    ジェオメトリー情報を得るために、場面における形体のエッジをオーバーサンプリングするステップ(400)と、
    前記ジェオメトリー情報に基づいて、アンチ・エリアシング・サンプリング情報を、オフセット・テクスチャ単位として計算するステップ(402)と、
    前記オフセット・テクスチャ単位を用いて、追加のサンプリングを実行するステップ(404)と、
    前記追加のサンプリングおよびジェオメトリー情報に基づいて、前記場面を再描画するステップ(406)と、
    を備えている、方法。
  10. 請求項9記載の方法において、前記オフセット・テクスチャ単位が、ベジエ・オブジェクトから得られるベジエ・テクスチャ単位である、方法。
  11. 請求項9記載の方法であって、更に、薄い形体のサンプルを得るために、より高い周波数でピクセル・シェーダーを実行するステップを備えている、方法。
  12. 請求項9記載の方法であって、更に、前記アンチ・エリアシング・サンプリング情報を計算するために、頂点シェーダーを実行するステップを備えている、方法。
  13. 請求項9記載の方法であって、更に、前記追加のサンプリングを得るために、ピクセル・シェーダーを実行するステップを備えている、方法。
  14. 請求項9記載の方法であって、更に、
    前記形体に対して三角形を発生するステップと、
    前記三角形をエッジ部および外部に分割するステップと、
    前記エッジ部をスーパーサンプル・バッファにスーパーサンプリングするステップと、
    を備えている、方法。
  15. 請求項14記載の方法であって、更に、
    前記エッジ部について前記スーパーサンプル・バッファにおいて計算した画素を用いて、前記形体上にエッジ三角形を再描画するステップと、
    次のフレームのために、前記スーパーサンプル・バッファの内容をクリアするステップと、
    を備えている、方法。
JP2011518922A 2008-07-18 2009-07-16 Gpuベジエ・パスのラスター化 Expired - Fee Related JP5476378B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/175,454 2008-07-18
US12/175,454 US20100013854A1 (en) 2008-07-18 2008-07-18 Gpu bezier path rasterization
PCT/US2009/050886 WO2010009338A2 (en) 2008-07-18 2009-07-16 Gpu bezier path rasterization

Publications (3)

Publication Number Publication Date
JP2011528823A true JP2011528823A (ja) 2011-11-24
JP2011528823A5 JP2011528823A5 (ja) 2012-08-23
JP5476378B2 JP5476378B2 (ja) 2014-04-23

Family

ID=41529950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011518922A Expired - Fee Related JP5476378B2 (ja) 2008-07-18 2009-07-16 Gpuベジエ・パスのラスター化

Country Status (6)

Country Link
US (1) US20100013854A1 (ja)
EP (1) EP2300984A4 (ja)
JP (1) JP5476378B2 (ja)
CN (1) CN102099832B (ja)
IL (1) IL209404A0 (ja)
WO (1) WO2010009338A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8624899B2 (en) 2010-09-27 2014-01-07 Microsoft Corporation Arc spline GPU rasterization for cubic Bezier drawing
US8872838B2 (en) 2011-09-09 2014-10-28 Microsoft Corporation Primitive composition
US9275498B2 (en) * 2012-08-09 2016-03-01 Qualcomm Incorporated GPU-accelerated path rendering
JP2014056371A (ja) * 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置
CN104008558B (zh) * 2013-02-25 2017-02-08 珠海全志科技股份有限公司 贝塞尔曲线光栅化处理方法及系统
DE102013021709A1 (de) * 2013-03-15 2014-09-18 Nvidia Corporation Schablonieren-dann-abdecken- pfadbilderzeugung mit gemeinsamen kanten
US9384589B2 (en) * 2013-04-29 2016-07-05 Microsoft Technology Licensing, Llc Anti-aliasing for geometries
US9299181B2 (en) * 2013-08-28 2016-03-29 Qualcomm Incorporated Target independent stenciling in graphics processing
US10074159B2 (en) * 2015-12-28 2018-09-11 Volkswagen Ag System and methodologies for super sampling to enhance anti-aliasing in high resolution meshes
CN107818069B (zh) 2016-09-12 2021-10-01 阿里巴巴集团控股有限公司 数据处理方法及系统
US10157493B2 (en) * 2017-04-01 2018-12-18 Intel Corporation Adaptive multisampling based on vertex attributes
GB2579114B (en) 2019-05-31 2021-04-21 Imagination Tech Ltd Controlling rendering operations
GB2579113B (en) * 2019-05-31 2021-04-21 Imagination Tech Ltd Rendering optimisation

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002352273A (ja) * 2001-03-16 2002-12-06 Mitsubishi Electric Research Laboratories Inc 対話式にグラフィクスオブジェクトを編集するシステムおよび方法
US20040263516A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Hardware-accelerated anti-aliased graphics
US20050162443A1 (en) * 2002-06-06 2005-07-28 Microsoft Corporation Dropout control in subpixel rendering
US7061507B1 (en) * 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US20070097123A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Resolution-independent curve rendering using programmable graphics hardware
JP2007528769A (ja) * 2004-03-12 2007-10-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 表面レンダリングのためのエッジに沿った適合的なサンプリング
JP2007529788A (ja) * 2004-03-16 2007-10-25 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド 合成グリフの領域をレンダリングする方法
JP2008513862A (ja) * 2004-09-20 2008-05-01 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 画素サンプリングによるアンチエイリアシングのための方法及びシステム
JP2008522274A (ja) * 2004-11-29 2008-06-26 アーム・ノルウェー・アー・エス コンピュータグラフィックスの処理

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293579A (en) * 1992-02-18 1994-03-08 Ray Dream, Inc. Method and apparatus for smoothing jagged edges in a graphics display
US6828983B1 (en) * 2000-05-12 2004-12-07 S3 Graphics Co., Ltd. Selective super-sampling/adaptive anti-aliasing of complex 3D data
US6661424B1 (en) * 2000-07-07 2003-12-09 Hewlett-Packard Development Company, L.P. Anti-aliasing in a computer graphics system using a texture mapping subsystem to down-sample super-sampled images
US6567099B1 (en) * 2000-11-15 2003-05-20 Sony Corporation Method and system for dynamically allocating a frame buffer for efficient anti-aliasing
US7286138B2 (en) * 2001-05-08 2007-10-23 Microsoft Corporation Discontinuity edge overdraw
US7145577B2 (en) * 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
US6917369B2 (en) * 2003-03-25 2005-07-12 Mitsubishi Electric Research Labs, Inc. Method and apparatus for rendering cell-based distance fields using texture mapping
US6982724B2 (en) * 2003-03-25 2006-01-03 Mitsubishi Electric Research Labs, Inc. Method for antialiasing an object represented as a two-dimensional distance field in object-order
US6967663B1 (en) * 2003-09-08 2005-11-22 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
US7164430B2 (en) * 2003-09-25 2007-01-16 Via Technologies, Inc. Anti-aliasing line pixel coverage calculation using programmable shader
JP2005100177A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
US7050068B1 (en) * 2003-12-02 2006-05-23 Nvidia Corporation Generation of jittered sub-pixel samples using programmable sub-pixel offsets
US7499600B2 (en) * 2004-05-25 2009-03-03 Nokia Corporation Method for characterizing a digital imaging system
US7239319B2 (en) * 2004-08-27 2007-07-03 Microsoft Corporation Rendering outline fonts
US7916144B2 (en) * 2005-07-13 2011-03-29 Siemens Medical Solutions Usa, Inc. High speed image reconstruction for k-space trajectory data using graphic processing unit (GPU)
US20070070082A1 (en) * 2005-09-27 2007-03-29 Ati Technologies, Inc. Sample-level screen-door transparency using programmable transparency sample masks
US7466314B2 (en) * 2005-10-27 2008-12-16 Microsoft Corporation Resolution-independent surface rendering using programmable graphics hardware
US7612783B2 (en) * 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US8207978B2 (en) * 2006-06-29 2012-06-26 Intel Corporation Simplification of 3D texture address computation based on aligned, non-perspective objects
US20080024510A1 (en) * 2006-07-27 2008-01-31 Via Technologies, Inc. Texture engine, graphics processing unit and video processing method thereof
US7924278B2 (en) * 2006-07-28 2011-04-12 Microsoft Corporation Real-time GPU rendering of piecewise algebraic surfaces
US7605825B1 (en) * 2006-10-24 2009-10-20 Adobe Systems, Incorporated Fast zoom-adaptable anti-aliasing of lines using a graphics processing unit
US7683914B1 (en) * 2007-02-12 2010-03-23 Bentley System, Inc. Triangulation based raster image interpolation
US7930653B2 (en) * 2007-04-17 2011-04-19 Micronic Laser Systems Ab Triangulating design data and encoding design intent for microlithographic printing
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
US8044955B1 (en) * 2007-08-31 2011-10-25 Adobe Systems Incorporated Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
US7911480B2 (en) * 2007-10-08 2011-03-22 Via Technologies, Inc. Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline
US7868887B1 (en) * 2007-10-18 2011-01-11 Adobe Systems Incorporated Rendering rational quadratic Bézier curves on a GPU
US8553046B2 (en) * 2007-11-09 2013-10-08 Vivante Corporation Thin-line detection apparatus and method
US20090322781A1 (en) * 2008-06-30 2009-12-31 Mikhail Letavin Anti-aliasing techniques for image processing

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061507B1 (en) * 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
JP2002352273A (ja) * 2001-03-16 2002-12-06 Mitsubishi Electric Research Laboratories Inc 対話式にグラフィクスオブジェクトを編集するシステムおよび方法
US20050162443A1 (en) * 2002-06-06 2005-07-28 Microsoft Corporation Dropout control in subpixel rendering
US20040263516A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Hardware-accelerated anti-aliased graphics
JP2007528769A (ja) * 2004-03-12 2007-10-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 表面レンダリングのためのエッジに沿った適合的なサンプリング
JP2007529788A (ja) * 2004-03-16 2007-10-25 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド 合成グリフの領域をレンダリングする方法
JP2008513862A (ja) * 2004-09-20 2008-05-01 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 画素サンプリングによるアンチエイリアシングのための方法及びシステム
JP2008522274A (ja) * 2004-11-29 2008-06-26 アーム・ノルウェー・アー・エス コンピュータグラフィックスの処理
US20070097123A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Resolution-independent curve rendering using programmable graphics hardware

Also Published As

Publication number Publication date
WO2010009338A3 (en) 2010-04-15
CN102099832A (zh) 2011-06-15
EP2300984A4 (en) 2017-04-19
JP5476378B2 (ja) 2014-04-23
WO2010009338A2 (en) 2010-01-21
EP2300984A2 (en) 2011-03-30
CN102099832B (zh) 2013-08-28
US20100013854A1 (en) 2010-01-21
IL209404A0 (en) 2011-01-31

Similar Documents

Publication Publication Date Title
JP5476378B2 (ja) Gpuベジエ・パスのラスター化
US10438396B2 (en) Method for efficient construction of high resolution display buffers
KR102046616B1 (ko) 오브젝트 및/또는 프리미티브 식별자들을 추적하는 것에 의한 그래픽스 프로세싱 강화
JP5866457B2 (ja) オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替
JP5232358B2 (ja) アウトラインフォントのレンダリング
US7876332B1 (en) Shader that conditionally updates a framebuffer in a computer graphics system
US7567248B1 (en) System and method for computing intersections between rays and surfaces
JP4621618B2 (ja) 図形描画装置、図形描画方法、およびプログラム
US7408553B1 (en) Inside testing for paths
US20110285736A1 (en) Decomposing cubic bèzier segments for tessellation-free stencil filling
JP4116648B2 (ja) オクルージョンカリング方法および描画処理装置
US8547395B1 (en) Writing coverage information to a framebuffer in a computer graphics system
US20100188404A1 (en) Single-pass bounding box calculation
US20140267258A1 (en) Hidden Culling in Tile-Based Computer Generated Images
US7684641B1 (en) Inside testing for paths using a derivative mask
JP4142065B2 (ja) 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法
US7817165B1 (en) Selecting real sample locations for ownership of virtual sample locations in a computer graphics system
US20100265254A1 (en) Graphics filled shape drawing
US8004522B1 (en) Using coverage information in computer graphics
US20240233263A1 (en) Primitive rendering method and apparatus, computer device and storage medium
US11030791B2 (en) Centroid selection for variable rate shading
JP5864474B2 (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
JP4691494B2 (ja) 画像描画装置、頂点選出方法、頂点選出プログラム及び集積回路
KR20220016774A (ko) 작은 프리미티브들에 대한 셰이더 점유를 수행하는 방법
US20210104088A1 (en) Method for efficient construction of high resolution display buffers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120704

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131211

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140207

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees