(57)【特許請求の範囲】
【請求項１】
コンピューター実装グラフィクス処理システムであって、
画像における薄い形体のエッジをサンプリングしてジェオメトリー情報を得るサンプリング・コンポーネントと、
前記ジェオメトリー情報に基づいて三角形データを計算するコンポーネントと、
シェーダーと、
を備え、
前記サンプリング・コンポーネントは、一画素内の前記エッジを前記エッジのベジエ情報に基づいてスーパーサンプリングして前記シェーダーのためのスーパーサンプルを生成するよう構成され、
前記シェーダーは、それぞれのスーパーサンプルに対して追加のサンプルを決定するよう構成される、
システム。
【請求項２】
請求項１記載のシステムにおいて、前記サンプリング・コンポーネントが、エッジからの距離の手法と組み合わせて前記エッジをスーパーサンプリングするよう構成される、システム。
【請求項３】
請求項１記載のシステムにおいて、前記シェーダーが、前記エッジに関連のある画素に対して実行するように、より高い周波数でサンプリングするよう構成されたピクセル・シェーダーである、システム。
【請求項４】
請求項１記載のシステムであって、更に、前記エッジの両側においてスーパーサンプリングし、スーパーサンプルを三角形データに変換する三角形分割コンポーネントを備えている、システム。
【請求項５】
請求項１記載のシステムであって、更に、最終的なラスター化パスを出力するために前記画像をダウンサンプリングするダウンサンプリング・コンポーネントを備えており、前記画像が前記エッジを含む、システム。
【請求項６】
請求項１記載のシステムにおいて、前記サンプリング・コンポーネントおよび前記三角形データを計算するコンポーネントがグラフィクス処理部（ＧＰＵ）上において用いられ、前記ＧＰＵによって薄い形体が全体的に前記画像内にレンダリングされるようにした、システム。
【請求項７】
グラフィクスを処理するための、コンピューターに実装された方法であって、
場面における薄い形体の一画素内のエッジを前記エッジのベジエ情報に基づいてオーバーサンプリングして複数のスーパーサンプルについてのジェオメトリー情報を得るステップと、
前記ジェオメトリー情報に基づいて三角形データを計算するステップと、
前記三角形データを用いて、前記スーパーサンプルのそれぞれに対して追加のサンプリングを実行するステップと、
前記追加のサンプリングおよびジェオメトリー情報に基づいて、前記場面を再描画するステップと、
前記再描画された場面をダウンサンプリングして最終的なレンダリング結果を生成するステップと、
を備えている、方法。
【請求項８】
請求項７記載の方法において、更に、前記三角形データをベジエ・オブジェクトから得るステップを備えている、方法。
【請求項９】
請求項７記載の方法であって、更に、薄い形体のサンプルを得るために、より高い周波数でピクセル・シェーダーを実行するステップを備えている、方法。
【請求項１０】
請求項７記載の方法であって、更に、前記追加のサンプリングを得るために、ピクセル・シェーダーを実行するステップを備えている、方法。
【請求項１１】
請求項７記載の方法であって、更に、
前記形体に対して三角形を発生するステップと、
前記三角形をエッジ部および外部に分割するステップと、
前記エッジ部をスーパーサンプル・バッファにスーパーサンプリングするステップと、
を備えている、方法。
【請求項１２】
請求項１１記載の方法であって、更に、
前記エッジ部について前記スーパーサンプル・バッファにおいて計算した画素を用いて、前記形体上にエッジ三角形を再描画するステップと、
次のフレームのために、前記スーパーサンプル・バッファの内容をクリアするステップと、
を備えている、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  グラフィクス処理部（ＧＰＵ）により多くのグラフィクス計算を移動させることにより、並列性、メモリー帯域幅の拡大、およびＧＰＵ上に設けられているグラフィクス動作に合わせた特殊ハードウェアのために、デバイスの中央演算装置（ＣＰＵ）上において通例処理されていたものが改善する。しかしながら、ＧＰＵは、ジェオメトリー・シェーダー(geometry shader)、頂点シェーダー(vertex shader)、およびピクセル・シェーダー(pixel shader)によって三角形(triangle)をラスター化することができるに過ぎない。パスを描くには（パスとは、一緒にパッチされたベジエ曲線の組み合わせであり、ラスター化された画像の範囲によって制限されず、直観的に修正できる）、ＧＰＵが理解できる形態への何らかの変換が必要となる。従前からの手法は、この変換ステップをＣＰＵ上で実行しており、ＣＰＵが拘束されてしまうことが多い。
【０００２】
[0002]  アンチ・エリアシング(anti-aliasing)に対する従前からの手法に、スーパーサンプリング(supersampling)があり、この技法は、分解能を高くして概念的に描画を行い、次いであるフィルタ・パターンでダウンサンプリングを行いアンチ・エリアシングの結果を求めることを含む。スーパーサンプリングの欠点の１つは、一般にサンプル数に応じてその性能が上下し、高いユーザ・インターフェース（ＵＩ）品質には、１６サンプル以上を用いなければならないことである。この結果、この実施態様に基づくと、減速が約１６倍になり、メモリーの要求量が１６倍になる。マルチ・パス手法を採用することもでき、この方が遅いがメモリーの使用量は少ない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]  アンチ・エリアシングに対する他の手法は、ハードウェアにネーティブにサポートされており、ピクセル・シェーダーを画素毎に１回実行させるマルチ・サンプル・バッファを含む手法である。この手法は、より高い分解能におけるジェオメトリーについてのカバレッジ情報を生成し、三角形データについてのアンチ・エリアシング情報を発生する。しかしながら、マルチ・サンプル手法には欠点がある。品質が、個々の部分毎に著しく変動するのである。殆どのハードウェアには、何らかの最少サンプル数（例えば、４サンプル）があるが、高品質のベクトル・グラフィクスにはこれは不十分である。更に、マルチ・サンプル・アンチ・エリアシングは、個々のＧＰＵ販売業者毎に異なり、一貫性のない外観を与える。加えて、マルチ・サンプル・アンチ・エリアシングは、画素毎に１回しかピクセル・シェーダーを実行することができない。つまり、ピクセル・シェーダーにおいてベジエ平坦化技法(Bezier flattening techniques)を用いると、曲線のピクセル・シェーダー評価が最適にならないために、エリアスされた出力が生ずる結果となる。
【０００４】
[0004]  極普通に用いられるアンチ・エリアシングに対する第３の手法では、サンプル点からエッジまでの距離に基づく技法を伴う。ピクセル・シェーダーにおいて、ジェオメトリーのエッジからの距離を計算し、アルファ・フォールオフ(alpha falloff)を求めて、アンチ・エリアシングした結果を得る。この手法を用いると、スーパーサンプリングのコストがかからず、更にマルチ・サンプル・バッファに付随する余分なコストもかからずに、ドローを完全にエリアスすることができる。ベジエに沿ったアンチ・エリアス・エッジを得ることができる。しかしながら、ピクセル・シェーダーが画素毎に一回しか実行されないため、そして画素がジェオメトリーの中に内包されている場合ピクセル・シェーダーはその画素に対してしか実行しないので、ジェオメトリーが薄い場合、この手法はこの薄いジェオメトリーをレンダリングすることができない。
【０００５】
[0005]  ある角度をなす１画素の線(1-pixel line)（例えば、直接角(direct angle)周囲の円弧）について考える。これはＵＩでは極一般的である。その薄い形体(feature)についてのサンプル点全てを欠落する可能性がある。描画がエリアスされると、角画素の中心にサンプル点が来て、ジェオメトリーがサンプル点と交差しないと、何も描画されなくなる。つまり、ある角度をなす１画素幅の線では、ジェオメトリーが消失する。このように、この第３の手法の欠点は、形体が薄い場合、その形体があっさりと消失する可能性があることである。
【０００６】
[0006]  別の欠点は、角もサンプル点を欠落する可能性があるので、角が不正確になることである。これに対処する１つの手法は、ピクセル・シェーダーおよびマルチ・サンプル・バッファの組み合わせを用いることである。マルチ・サンプル・バッファが角に役立つのは、多くの場合、角には関連付けられたジェオメトリーがあり、そのジェオメトリーも角が一致し、何らかの方法で、マルチ・サンプル・バッファに対してエッジにマスキング効果が得られるからである。しかしながら、エッジ・ジェオメトリーがない場合、例えば、ベジエ平坦化が薄い形体付近でピクセル・シェーダーにおいて行われるときには、この手法でも未だ薄い形体の問題は解決できない。基本的に、１画素幅の曲線が消失する。角の方がましであるが、マルチ・サンプル・バッファでは精度が高くない。
【課題を解決するための手段】
【０００７】
[0007]  以下に、本明細書において記載するいくつかの新規な実施形態の基本的な理解を得るために、簡略化した摘要を紹介する。この摘要は、広範な全体像であり、主要な／重大な要素を特定することも、その範囲を正確に叙述することも意図していない。その唯一の目的は、後に紹介する更に詳細な説明に対する序文として、簡略化した形体で一部の概念を紹介することである。
【０００８】
[0008]  開示するアーキテクチャーは、グラフィクス処理部（ＧＰＵ）を用いて基本的な曲線を描き、高品質のアンチ・エリアシングを出力において得る問題を少なくとも解決する。一般に、薄い形状のサポートのために、ピクセル・シェーダーが関連のある画素全てに対して実行できるようにするために、スーパーサンプリングを用いて、より高い周波数でピクセル・シェーダー・サンプルを生成する。頂点シェーダーが、アンチ・エリアシング・サンプル情報を計算する。形状全体ではなくエッジに沿ってだけスーパーサンプリングすることができる三角形分割アルゴリズム(triangulation algorithm)を用いる。
【０００９】
[0009]  本技術は、スーパーサンプリングと、ベジエ評価によって形体エッジからの距離を計算する手法との混成である。一部の形体を失うのを回避するために、本技法は、少数のスーパーサンプル（例えば、３つまたは４つのサンプル）の何らかのスーパーサンプリングを行う。このために、スーパーサンプルの数に基づいて、プロセスが遅くなる可能性がある。例えば、４つのスーパーサンプルを用いると、プロセスの速度は１／４に低下する可能性があり、それ自体では、ユーザ・インターフェース（ＵＩ）においてレンダリングするには不十分な品質となる。しかしながら、これは、薄い形体を拾い上げるには十分な品質である。言い換えると、少々スーパーサンプリングすることによって、薄く広がった(stroked)エッジの両側にサンプルを生成することができ、これによって薄い形体が何らかの画素によって検出可能になる。薄い形体がいずれかの画素に当たれば、エッジからの距離の手法によって、前述の品質が達成されていく。例えば、本技法は、エッジからの距離の手法と組み合わせて、４回スーパーサンプリングを行うことができ、別の４つのサンプルを生成し、１６−サンプルの結果を得ることができる。
【００１０】
[0010]  以上の目標および関係する目標の遂行のために、本明細書では、以下の説明および添付図面と関連付けて、ある種の例示的態様について説明する。これらの態様は、本明細書において開示される原理を実用化することができる種々の方法を示し、その全ての態様および等価物は、特許請求する主題の範囲に該当することを意図している。他の利点および新規な特徴は、以下の詳細な説明を図面と合わせて検討することにより明白となろう。
【図面の簡単な説明】
【００１１】
【図１】図１は、開示するアーキテクチャーによるコンピューター実装グラフィクス処理システムを示す。
【図２】図２は、開示するアーキテクチャーによるグラフィクス処理システムを更に詳細に示す。
【図３】図３は、ＧＰＵパス・ラスター化についてのフロー・ブロック図を示す。
【図４】図４は、コンピューター実装グラフィクス処理方法を示す。
【図５】図５は、パス・ラスター化方法を示す。
【図６】図６は、エッジをサンプリングする方法を示す。
【図７】図７は、開示するアーキテクチャーにしたがってベジエ・パス・ラスター化を発生するＧＰＵを採用することができるコンピューティングシステムのブロック図を示す。
【発明を実施するための形態】
【００１２】
[0018]  開示するアーキテクチャーは、グラフィクス処理部（ＧＰＵ）を用いて基本的な曲線を描き、高品質のアンチ・エリアシングを出力において得る問題を少なくとも解決する。薄い形状（例えば、１−画素幅の線）について、シェーダーが関連のある画素全てに対して実行できるようにするために、スーパーサンプリングを用いて、薄い形体の両側にピクセル・シェーダー・サンプルを生成する。頂点シェーダーが、ｄｄｘ／ｄｄｙを用いてエッジからの距離を近似するのではなく、アンチ・エリアシング・サンプル情報を計算する。ｄｄｘ命令がＸウィンドウ座標に関する近似偏微分を計算して、結果ベクトルを求める。偏微分は、画素の中心において評価される。同様に、ｄｄｙ命令がＹウィンドウ座標に関する近似部分片微分を計算して、結果ベクトルを求める。この偏微分も画素の中心において評価される。形状全体ではなくエッジに沿ってだけスーパーサンプリングすることができる三角形分割アルゴリズムを用いる。
【００１３】
[0019]  これより図面を参照するが、図面における同様の参照番号が、全体を通じて同様の要素を指すために用いられることとする。以下の記載では、説明の目的上、その完全な理解を得るために多数の具体的な詳細を明示する。しかしながら、新規の実施形態は、これら具体的な詳細がなくても実用化可能であることは明白であろう。他方において、周知の構造やデバイスは、その説明を容易にするために、ブロック図形態で示されている。この考え方は、特許請求する主題の主旨および範囲に該当する全ての変更、等価、および代替物に及ぶものとする。
【００１４】
[0020]  図１は、開示するアーキテクチャーによる、コンピューター実装グラフィクス処理システム１００を示す。システム１００は、ジェオメトリー情報を解明するために、画像１０８（場面）における物体１０６のエッジ１０４をサンプリングするサンプリング・コンポーネント１０２を含む。また、システム１００は、アンチ・エリアシング・サンプリング情報１１２を計算することによって画像１０８の品質を高める品質コンポーネント１１０も含むことができる。サンプリング・コンポーネント１０２は、エッジ１０４をスーパーサンプリングして、シェーダーのためにサンプルを生成する。シェーダーは、エッジ１０４に関連する画素に対して実行するために、より高い周波数でサンプリングする（エッジ１０４の両側で実行するため）ピクセル・シェーダーとすることができる。
【００１５】
[0021]  システム１００および本明細書において記載する他の実施形態は、スーパーサンプリング、および形体のエッジから距離を計算する手法またはベジエ評価を採用する。一部の形体を失うのを回避するために、本技法は、少数のスーパーサンプル（例えば、３つまたは４つのサンプル）の何らかのスーパーサンプリングを行う。このために、スーパーサンプルの数に基づいて、プロセスが遅くなる可能性がある。例えば、４つのスーパーサンプルを用いると、プロセスの速度は１／４に低下する可能性があり、それ自体では、ユーザ・インターフェース（ＵＩ）においてレンダリングするには不十分な品質となる。しかしながら、これは、薄い形体を拾い上げるには十分な品質である。言い換えると、少々スーパーサンプリングすることによって、形体のエッジの両側にサンプルを生成することができ、これによって薄い形体が何らかの画素によって検出可能になる。薄い形体がいずれかの画素に当たれば、エッジからの距離の手法によって、前述の品質が達成されていく。例えば、本技法は、エッジからの距離の手法と組み合わせて、４回スーパーサンプリングを行うことができ、別の４つのサンプルを生成し、１６−サンプルの結果を得ることができる。この結果は、ピクセル・シェーダーを用いて品質を向上させることによって、素晴らしく見えるようになる。
【００１６】
[0022]  システム１００は、ＧＰＵにおいてスーパーサンプリングを用い、追加のサンプルを生成するために１つ又は複数のシェーダーを用いることによって、全体的にＧＰＵにおいて採用することができる。尚、代替実施態様ではＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）技術を採用し、ハードウェアの解決策においてソフトウェアが採用されることは言うまでもない。一般に、１つの手法が、シェーダーが画素毎に実行できる回数を変化させる機能を設ける（マルチ・サンプル・バッファの利用によって補助することができる）。
【００１７】
[0023]  更に具体的には、より広い使用に備えるために、ピクセル・シェーダーにおいて距離を計算する代わりに、開示する手法はベジエ情報を頂点シェーダーにおいて複製し、このベジエ情報に基づいて多数のサンプルを取り込む。ここで、「複製」とは、頂点シェーダーにおける異なるサンプルに対する位置の複製および調節を含み、そしてピクセル・シェーダーは多数の座標のベジエを評価する。距離関数は、ピクセル・シェーダーから除去され、ベジエ情報が頂点シェーダーにおける異なる位置において複製され、ピクセル・シェーダーにおいて一層容易に評価される。アンチ・エリアシング計算は、画素毎から頂点毎に移される。
【００１８】
[0024]  図２は、開示するアーキテクチャーによるグラフィクス処理システム２００を更に詳細に示す。システム２００は、ジェオメトリー情報を解明するために、画像１０８（場面）における物体１０６のエッジ１０４をサンプリングするサンプリング・コンポーネント１０２を含む。また、システム２００は、アンチ・エリアシング・サンプリング情報１１２を計算することによって画像１０８の品質を高める品質コンポーネント１１０も含むことができる。
【００１９】
[0025]  更に、システム２００は、エッジ１０４の両側におけるテクスチャ・データ・スーパーサンプリングとして、三角形データを発生し、スーパーサンプルをテクスチャ・データに変換する三角形分割コンポーネント２０２も備えることができる。シェーダー・コンポーネント２０４は、ベジエ・パスの最終パス・ラスター化を容易にする１つ又は複数のシェーダーを含むことができる。例えば、シェーダー・コンポーネント２０４は、薄い形体のスーパーサンプリングされた外観(aspect)に基づいてオフセット・テクスチャ単位(offset texture unit)を計算する頂点シェーダーと、オフセット・テクスチャ単位を用いて追加のサンプリングを行うピクセル・シェーダーと、場面をダウンサンプリングして最終場面結果を求めるダウンサンプリング・シェーダーとを含むことができる。
【００２０】
[0026]  この外観は薄い形体のエッジとすることができ、このエッジは１−画素幅である。ピクセル・シェーダーは、薄いジェオメトリー形体を取り込むために、より高い周波数で実行する。頂点シェーダーによって計算されるオフセット・テクスチャ単位は、アンチ・エリアシング・サンプリング情報として利用される。三角形分割コンポーネント２０２は、薄い形体として入力された、ベジエ曲線に沿った三角形分割に基づいて、オフセット・テクスチャ単位として三角形データを発生することができる。頂点シェーダー、ピクセル・シェーダー、およびダウンサンプリング・シェーダーは、ベジエ・パス・ラスター化を行うために、排他的にＧＰＵ上で動作する。
【００２１】
[0027]  あるいは、サンプリング・コンポーネント１０２が、薄い形体のエッジをスーパーサンプリングするピクセル・シェーダーを含むこともできる。
【００２２】
[0028]  図３は、ＧＰＵパス・ラスター化のフロー・ブロック図３００を示す。このプロセスは、２つのフレーム・システム、即ち、初期フレーム・システム３０２、次いで最終的なレンダリングのための再描画フレーム・システム３０４によって開始することができる。初期フレーム・システム３０２と関連のある処理はＣＰＵによって実行することができ、再描画フレーム・システム３０４と関連のある処理はＧＰＵによって実行することができる。
【００２３】
[0029]  三角形分割手法は、三角形分割コンポーネント２０２を利用して、ベジエ・パス記述３０６（ベジエ情報とも呼ぶ）を受け取り、関連するベジエ座標を用いて三角形分割を行う。ベジエ座標は、画素毎に評価される。一旦三角形分割が行われると、以後再利用可能になり（頂点データとして）、異なる倍率、変換等で数回描画することができる。初期フレーム・システム３０２は前処理作業を受け持つが、この前処理作業はオーサリングのときに実行することもできる。三角形分割コンポーネント２０２の出力は、テクスチャ単位（またはデータ）としての、またはこれを伴う三角形データ３０８（例えば、座標）である。三角形分割データを発生するため、そして実行時付加後処理作業のために、ツールを利用することができる。前述の前処理作業では、三角形データが生成され、コンピューティングシステム（またはＣＰＵ）上で実行することができる。
【００２４】
[0030]  再描画フレーム・システム３０４は、ＧＰＵ上で行われる作業であり、フレーム毎に実行される。再描画フレーム・システム３０４上における作業は、スケール変換(scale transform)等によって動画化することができる。三角形データ３０８は、頂点シェーダー３１０を（アンチ・エリアシング・ヒントによって）実行させるテクスチャ単位を含む。頂点シェーダー３１０は、変換に基づいて三角形座標を複製し、更に具体的には、変換に基づいてベジエ項を複製し（アンチ・エリアシング・ヒント３１２を有する頂点データとして）、その項をピクセル・シェーダー３１４に受け渡す（ピクセル・シェーダー３１４は追加のサンプリングを実行することもできる）。次いで、ピクセル・シェーダー３１４は、３１６において、場面ラスター化のために、スーパーサンプル・バッファ(supersampled buffer)を求める。ダウンサンプリング・シェーダー３１８が、スーパーサンプル・バッファの内容を取り込み、次いで３２０において最終パス（または目標）の分解能にダウンサンプリングする。したがって概略的に、このプロセスは薄い形体を大きく再描画し、次いでピクセル・シェーダーによって再度ダウンサンプリングして、最終的なラスター化を行う。
【００２５】
[0031]  以下に、開示するアーキテクチャーの新規な態様を実行するための方法例を表す一連のフロー・チャートを示す。説明を簡素化する目的のために、本明細書では、例えば、フロー・チャートまたは流れ図の形態で示される１つ又は複数の方法は、一連の行為として示され記載されるが、これらの方法はその行為の順序に限定されないことは言うまでもないことであり、認められるであろう。何故なら、一部の行為は、それに応じて、本明細書において示され記載されるのとは異なる順序で行われること、および／または他の行為と同時に行われることもあるからである。例えば、方法が、状態図におけるように、一連の相互に関係する状態またはイベントとして代わりに表される可能性もあることは、当業者は理解し認めるであろう。更に、ある方法に示される全ての行為が新規の実施態様に必要とはならない場合もある。
【００２６】
[0032]  図４は、グラフィクスを処理するコンピューター実装方法を示す。４００において、画像におけるある形体のエッジをオーバーサンプリングして、ジェオメトリー情報を得る。４０２において、このジェオメトリー情報に基づいて、アンチ・エリアシング・サンプリング情報を、オフセット・テクスチャ単位として計算する。４０４において、オフセット・テクスチャ単位を用いて追加のサンプリングを行う。４０６において、追加のサンプリングおよびジェオメトリー情報に基づいて、場面を再描画する。４０８において、再描画した場面をダウンサンプリングして、最終的にレンダリングした結果を生成する。
【００２７】
[0033]  オフセット・テクスチャ単位は、ベジエ・オブジェクトから得られるオフセット・ベジエ・テクスチャ単位とすることができる。本方法は、更に、ピクセル・シェーダーをより高い周波数で実行して、１−画素幅の形体のような、薄い形体のサンプルを得るステップを備えることができる。更に、本方法は、頂点シェーダーを実行してアンチ・エリアシング・サンプリング情報を計算するステップと、ピクセル・シェーダーを実行して追加のサンプリングを得るステップとを備えることもできる。
【００２８】
[0034]  図５は、パス・ラスター化方法を示す。５００において、オーバースケーリングしたレンダリング目標について三角形分割を開始する。例えば、オーバースケーリングに関して、水平および垂直方向双方の分解能を２倍にすることができる。５０２において、ピクセル・シェーダーをエッジの両側において実行してサンプルを得る。より高い周波数で実行することにより、通常では欠落する１画素幅の線によるサンプルも拾い上げる。５０４において、頂点シェーダーを実行して、現在の変換（１つまたは複数）に基づいたアンチ・エリアシングに合わせたオフセット・ベジエ・テクスチャ単位を計算する。５０６において、ピクセル・シェーダーを実行して、オフセット・ベジエ・テクスチャ単位に基づいて、ピクセル・シェーダーにおいて追加の回数だけサンプリングする。例えば、５００における２×２（水平×垂直）のオーバースケーリング、そして５０４における４つのサンプルから、高品質のアンチ・エリアシングに適した、画素当たり２×２×４＝１６個のサンプルが得られる。所望に応じて、他のオーバーサンプリングおよびサンプルを用いることもできる。５０８において、場面を描画する。５１０において、場面を描画した後、ダウンサンプル・シェーダーをこの場面上で実行して、最終的なレンダリングした結果を生成する。
【００２９】
[0035]  図６は、エッジをサンプリングする方法を示す。６００において、エッジ・スーパーサンプリングを開始する。６０２において、画像の形体に対して三角形を発生する。６０４において、各三角形をエッジ部と内部とに分割する。６０６において、三角形の内部を処理する。これは、エリアス・モード(aliased mode)で実行することができる。６０８において、三角形の画素エッジ部をスーパーサンプリングする。例えば、このスーパーサンプリングを実行してスーパーサンプル・バッファ(supersampled buffer)を求めることができる。６１０において、スーパーサンプルから計算した画素を用いて、宛先の目標オブジェクトにおいてエッジ三角形を再描画する。この再描画は、エッジに沿った画素についてスーパーサンプル・バッファにおいて計算した画素のみを用いて実行することができる。６１２において、スーパーサンプル・バッファの内容を、次のフレームのためにクリアする。これは、内容をクリアするためにエッジ三角形をスーパーサンプル・バッファの中に再描画し、更に、例えば、表面全体の消去を回避するために背景色に再描画することによって遂行することができる。
【００３０】
[0036]  本願において用いる場合、「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピューターに関係するエンティティを指すことを意図している。例えば、コンポーネントは、プロセッサーにおいて実行中のプロセス、プロセッサー、ハード・ディスク・ドライブ、（光および／または磁気記憶媒体の）多数の記憶デバイス、オブジェクト、エクゼキュータブル、実行スレッド、プログラム、および／またはコンピューターとすることができるが、これらに限定されるのではない。例示すると、サーバーにおいて実行しているアプリケーションおよびサーバーの双方がコンポーネントであることができる。１つ又は複数のコンポーネントは、プロセスおよび／または実行のスレッドの内部に位置することができ、更にコンポーネントは１つのコンピューターに局在化すること、および／または２つ以上のコンピューター間に分散することができる。「例示的な」(exemplary)という用語は、本明細書において用いられる場合、例、実例(instance)、または例示(illustration)として役立つことを意味する。本明細書において「例示的な」ものとして記載されたいずれの実施態様も、またはその態様も、他の実施態様またはその態様よりも優先されるというように、またはそれらよりも有利であるというようには必ずしも解釈されないものとする。
【００３１】
[0037]  これより図７を参照すると、開示したアーキテクチャーにしたがってベジエ・パス・ラスター化を行うＧＰＵを用いるために動作可能なコンピューティングシステム７００のブロック図が示されている。種々の態様について追加のコンテキストを提示するために、図７および以下の論述は、種々の態様を実現することができる、適したコンピューティングシステム７００の端的で総合的な説明を行うことを意図している。これまでの説明は、１つ又は複数のコンピューター上において実行することができるコンピューター実行可能命令という一般的なコンテキストにおいて行われたが、新規な実施形態は、他のプログラム・モジュールとの組み合わせで、および／またはハードウェアとソフトウェアとの組み合わせとしての実現可能であることは当業者には認められよう。
【００３２】
[0038]  一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造等を含み、特定のタスクを実行するか、および／または特定の抽象的データ・タイプを実現する。更に、当業者には、本発明の方法は他のコンピューター・システム構成でも実用化可能であることが認められよう。他のコンピューター・システム構成には、単一プロセッサー・システムまたはマルチプロセッサー・コンピューター・システム、ミニコンピューター、メインフレーム・コンピューター、ならびにパーソナル・コンピューター、ハンド・ヘルドコンピューティングデバイス、マイクロプロセッサー主体またはプログラマブル消費者用電子機器等が含まれる。これらの各々は、１つ又は複数の関連するデバイスに動作的に結合することができる。
【００３３】
[0039]  また、図示した態様は、通信ネットワークを通じてリンクされているリモート処理デバイスによってある種のタスクが実行される、分散型コンピューティング環境においても実用可能である。分散型コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート・コンピューター記憶媒体双方に配することができる。  
【００３４】
[0040]  コンピューターは、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューターがアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。限定ではない一例をあげると、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータというような情報の格納のために、あらゆる方法または技術で実施される、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・ビデオ・ディスク（ＤＶＤ）またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューターがアクセス可能なその他のいずれの媒体も含むが、これらに限定されるのではない。
【００３５】
[0041]  再度図７を参照すると、種々の態様を実現するコンピューティングシステム例７００は、演算装置７０４、システム・メモリー７０６、およびシステム・バス７０８を有するコンピューター７０２を含む。システム・バス７０８は、システム・メモリー７０６から演算装置７０４までを含むがこれらに限定されないシステム・コンポーネントにインターフェースを設ける。演算装置７０４は、種々の市販のプロセッサーであればいずれでもよい。デュアル・マイクロプロセッサーおよびその他のマルチ・プロセッサー・アーキテクチャーも、演算装置７０４として採用することができる。
【００３６】
[0042]  システム・バス７０８は、メモリー・バス（メモリー・コントローラを有するまたは有さない）、周辺バス、および種々の利用可能なバス・アーキテクチャーのいずれかを用いるローカル・バスに更に相互接続することができる、様々な形式のバス構造のいずれでも可能である。システム・メモリー７０６は、不揮発性メモリー（NON-VOL）７１０および／または揮発性メモリー７１２（例えば、ランダム・アクセス・メモリー（ＲＡＭ））を含むことができる。基本入出力システム（ＢＩＯＳ）は、不揮発性メモリー７１０（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）に格納することができ、ＢＩＯＳは、起動中のように、コンピューター７０２内のエレメント間において情報を転送するのに役立つ基本的なルーチンをである。また、揮発性メモリー７１２は、データをキャッシュするスタティックＲＡＭのような高速ＲＡＭも含むことができる。
【００３７】
[0043]  更に、コンピューター７０２は、内部ハード・ディスク・ドライブ（ＨＤＤ）７１４（例えば、ＥＩＤＥ、ＳＡＴＡ）も含む。内部ＨＤＤ７１４は、適したシャーシ内における外部使用に合わせて構成することもできる。コンピューター７０２は、磁気フロッピーー・ディスク・ドライブ（ＦＤＤ）７１６（例えば、リムーバブル・ディスケット７１８からの読み取りおよびこれへの書き込みを行う）および光ディスク・ドライブ７２０（例えば、ＣＤ−ＲＯＭディスク７２２を読み取る、あるいはＤＶＤのような高容量光媒体から読み取るまたはこれに書き込む）も含む。ＨＤＤ７１４、ＦＤＤ７１６、および光ディスク・ドライブ７２０は、それぞれ、ＨＤＤインターフェース７２４、ＦＤＤインターフェース７２６、および光ドライブ・インターフェース７２８によってシステム・バス７０８に接続することができる。外部ドライブ実装のためのＨＤＤインターフェース７２４は、ユニバーサル・シリアル・バス（ＵＳＢ）およびＩＥＥＥ１３９４インターフェース技術の内少なくとも一方または双方を含むことができる。
【００３８】
[0044]  これらのドライブおよび付随するコンピューター読み取り可能媒体は、データ、データ構造、コンピューター実行可能命令等の不揮発性格納に備える。コンピューター７０２のために、これらのドライブおよび媒体は、適したディジタル・フォーマットであらゆるデータの格納に対処する。先のコンピューター読み取り可能媒体についての記載では、ＨＤＤ、リムーバブル磁気ディスケット（例えば、ＦＤＤ）、およびＣＤまたはＤＶＤのようなリムーバブル光媒体に言及したが、ｚｉｐドライブ、磁気カセット、フラッシュ・メモリー・カード、カートリッジ等のような、コンピューターによって読み取りが可能な他のタイプの媒体も、動作環境例において用いることができること、更にこのような媒体のいずれもが、開示したアーキテクチャーの新規な方法を実行するためのコンピューター実行可能命令を収容できることは、当業者には認められよう。
【００３９】
[0045]  これらのドライブおよび揮発性メモリー７１２には、多数のプログラム・モジュールを格納することができ、オペレーティング・システム７３０、１つ又は複数のアプリケーション・プログラム７３２、他のプログラム・モジュール７３４、およびプログラム・データ７３６が含まれる。これらのオペレーティング・システム、アプリケーション、モジュール、および／またはデータの全てまたは一部は、揮発性メモリー７１２にキャッシュすることもできる。尚、開示したアーキテクチャーは、種々の市販されているオペレーティング・システムまたはオペレーティング・システムの組み合わせを用いても実現できることは認められよう。
【００４０】
[0046]  ユーザは、コマンドおよび情報をコンピューター７０２に、１つ又は複数の有線／ワイヤレス入力デバイス、例えば、キーボード７３８およびマウス７４０のようなポインティング・デバイスによって入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ＩＲリモコン、ジョイスティック、ゲーム・パッド、スタイラス・ペン、タッチ・スクリーン等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、入力デバイス・インターフェース７４２を介して、演算装置７０４に接続されている。入力デバイス・インターフェース７４２は、システム・バス７０８に結合されているが、パラレル・ポート、ＩＥＥＥ１３９４シリアル・ポート、ゲーム・ポート、ＵＳＢポート、またはＩＲインターフェース等のような他のインターフェーによって接続することも可能である。
【００４１】
[0047]  モニター７４４またはその他の形式のディスプレイ・デバイスも、ビデオ・アダプター７４６のようなインターフェースを介して、システム・バス７０８に接続されている。アダプター７４６は、例えば、サンプリング・コンポーネント１０２、品質コンポーネント１１０、アンチ・エリアシング情報１１２、シェーダー・コンポーネント２０４、頂点シェーダー３１０、ピクセル・シェーダー３１４、ダウンサンプル・シェーダー３１８、および関連するデータ（例えば、エリアシング・ヒント３１２を伴う頂点データ、画像ラスター化３１６、および最終的なパス・ラスター化）を含むように動作可能である。三角形分割コンポーネント２０２は、コンピューティングデバイス７０２上で動作可能にすることができる。
【００４２】
[0048]  モニター７４４に加えて、コンピューターは、通例、スピーカーおよびプリンター等のような、その他の周辺出力装置（図示せず）も含むことができる。
【００４３】
[0049]  コンピューター７０２は、論理接続を用いて、リモート・コンピューター（１つまたは複数）７４８のような１つ又は複数のリモート・コンピューターへの有線および／またはワイヤレス通信を通じて、ネットワーク環境において動作することも可能である。リモート・コンピューター（１つまたは複数）７４８は、ワークステーション、サーバー・コンピューター、ルータ、パーソナル・コンピューター、携帯用コンピューター、マイクロプロセッサー主体娯楽機器、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター７０２に関して先に説明したエレメントの多くまたは全てを含むが、簡潔さのために、メモリー／記憶デバイス７５０のみを示す。図示する論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）７５２および／またはそれよりも大きなネットワーク、例えば、ワイド・エリア・ネットワーク（ＷＡＮ）７５４への有線／ワイヤレス接続を含む。このようなＬＡＮおよびＷＡＮネットワーク環境は、事務所および会社においては、極一般的であり、イントラネットのような企業規模のコンピューター・ネットワークを促進する。その全ては、地球規模の通信ネットワーク、例えば、インターネットに接続することができる。
【００４４】
[0050]  ＬＡＮネットワーク環境で用いる場合、コンピューター７０２は、有線および／またはワイヤレス通信ネットワーク・インターフェースまたはアダプター７５６を介してＬＡＮ７５２に接続する。アダプター７５６は、ＬＡＮ７５２への有線および／またはワイヤレス通信を容易にする。また、ＬＡＮ７５２も、アダプター７５６のワイヤレス機能と通信するために配置されたワイヤレス・アクセス・ポイントを含むことができる。
【００４５】
[0051]  ＷＡＮネットワーク環境で用いる場合、コンピューター７０２は、モデム７５８を含むことができ、またはＷＡＮ７５４上にある通信サーバーに接続されるか、あるいは、一例としてインターネットのような、ＷＡＮ７５４上での通信を確立するための他の手段を有する。モデム７５８は、内蔵でも外付けでもよく、そして有線および／またはワイヤレス・デバイスとすることもでき、入力デバイス・インターフェース７４２を介してシステム・バス７０８に接続することができる。ネットワーク環境では、コンピューター７０２に関して図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶デバイス７５０に格納することもできる。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
【００４６】
[0052]  コンピューター７０２は、例えば、プリンター、スキャナー、デスクトップおよび／または携帯用コンピューター、パーソナル・ディジタル・アシスタント（ＰＤＡ）、通信衛星、ワイヤレス検出可能タグ（例えば、キオスク、新聞売店、休憩室）と関連付けられた機器または場所のいずれか、ならびに電話機とのワイヤレス通信（例えば、ＩＥＥＥ８０２．１１無線変調技法）において動作的に配置されるワイヤレス・デバイスのような、ＩＥＥＥ８０２規格集を用いた、有線およびワイヤレス・デバイスまたはエンティティと通信するように動作可能である。これには、少なくとも、ＷｉＦｉ（即ち、Wireless Fidelity）、ＷｉＭａｘ、およびBluetooth（商標）ワイヤレス技術が含まれる。つまり、通信は、従来のネットワークのように、予め定められた構造とすることができ、または単に少なくとも２つのデバイス間におけるアドホック通信とすることもできる。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇ等）と呼ばれる無線技術を用いて、安全で、信頼性があり、高速のワイヤレス接続を提供する。Ｗｉ−Ｆｉネットワークは、コンピューターを互いに接続するため、インターネットに接続するため、そして有線ネットワーク（ＩＥＥＥ８０２．３関連媒体および機能を用いる）に接続するために用いることができる。
【００４７】
[0053]  以上に説明したことには、開示したアーキテクチャーの例が含まれる。勿論、着想可能な全てのコンポーネントおよび／または方法の組み合わせについて記載することは不可能であるが、当業者であれば、多くの更に別の組み合わせや並び替え(permutation)が可能であることを認めることができよう。したがって、新規なアーキテクチャーは、添付した請求項の主旨および範囲に該当する、このような変更、修正、および変形を全て包含することを意図している。更に、「含む」という用語が詳細な説明または特許請求の範囲のいずれかで用いられている限りにおいて、このような用語は、「備えている」という用語が請求項において移行性単語として用いられているときの「備えている」と同様に、包含的であることを意図している。
【図１】
0005476378.tif 000002
【図２】
0005476378.tif 000003
【図３】
0005476378.tif 000004
【図４】
0005476378.tif 000005
【図５】
0005476378.tif 000006
【図６】
0005476378.tif 000007
【図７】
0005476378.tif 000008