説明

コンピュータグラフィックスの処理

【課題】複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理する方法および装置を提供する。
【解決手段】複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理する方法及び装置は、前記画像を表すグラフィックフラグメントをレンダリングして、前記フラグメントについてのフラグメントデータを生成し、前記レンダリングされたフラグメントデータのアレイを格納し、前記格納されたフラグメントデータをダウンサンプリングして、前記ディスプレイデバイス上で前記画像を表示するためのピクセルデータのアレイを提供し、前記ダウンサンプリングのレベルは、変化させることが可能であり、そして前記レンダリングされたフラグメントデータ上で使用されるべき前記ダウンサンプリングのレベルを選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータグラフィックスの処理に関し、詳細にはコンピュータグラフィックスを処理するときにアンチエイリアシングを実行するための方法および装置に関する。
【背景技術】
【0002】
本発明は、特に3次元グラフィックスの処理に関して説明されることになるが、当業者によって理解されるように、同様に2次元グラフィックスの処理にも等しく適用可能である。
【0003】
コンピュータ生成された画像を表示するときに遭遇する1つの問題は、表示される画像は、使用されているディスプレイ、例えばモニタまたはプリンタの離散的なピクセルロケーションに量子化されることである。これは、例えば出力ディスプレイデバイスの分解能が滑らかな直線を表示するのに十分に高くない場合に、表示され、望ましくない視覚アーティファクトを生成し得る画像の分解能を制限する。これらの効果は、一般に「エイリアシング(aliasing)」と称される。
【0004】
図1は、このようなエイリアシング効果を示している。図1の左側は、描かれるべき画像を示しており、右側は表示される実際の画像を示している。理解することができるように、白色オブジェクトの所望のスムーズな曲線は、実際には表示上にギザギザのついた外観を有する。これは、エイリアシングである。(図1において、各正方形は、ディスプレイのピクセルを表し、バツ印(cross)は、ピクセルロケーションについてのカラー値が決定される(サンプリングされる)各(x, y)ピクセルロケーションにおけるポイントを表す。例えば、ピクセルロケーションについてのカラーサンプリングポイントが白色オブジェクトの範囲内に入るので、図1中のピクセルAは、すべて白色として描かれる。図1において、関心のあるピクセル上のサンプルバツ印だけが示されているが、実際にはすべてのピクセルがサンプリングされることになることに留意されたい。)
【0005】
すべてのエイリアシングアーティファクトは、十分な高分解能ディスプレイを使用することにより、除去することができる。しかし、電子ディスプレイおよびプリンタの分解能は、一般的には制限されており、それ故に多数のグラフィック処理システムは、他の技法を使用して、エイリアシングの効果を除去させ、または低減させようとする。このような技法は、一般的にアンチエイリアシング技法と称される。
【0006】
1つの知られているアンチエイリアシング技法は、スーパーサンプリング(supersampling)またはオーバーサンプリング(oversampling)と称される。このような構成においては、複数のカラーサンプルは、ディスプレイのピクセルロケーションごとに取得され、次いでこれらの複数のサンプルは、ピクセルが表示されるときに単一のカラーへと組み合わせられる。これは、問題のピクセルロケーションにおける初期画像からカラー値を平滑化する、または平均化する効果を有する。
【0007】
図2は、スーパーサンプリングプロセスを示している。図2に示される例においては、4つのカラー値(サンプルポイント)がディスプレイのピクセルごとに決定される(このような各サンプルは、4つのこのようなサブピクセルについて行われているディスプレイ中の各ピクセルを有する「サブピクセル」として効果的に閲覧することができる)。次いで、所与のピクセルについての4つのカラー値サンプル(サブピクセル)は、ディスプレイ中のピクセルについて使用される最終のカラーが、そのピクセルについて取得される4つのカラーサンプルのカラーの適切な平均(混合)であるように、組み合わせられる(ダウンフィルタされる)。
【0008】
これは、表示され、例えばそれらをカラーの中間の陰影で取り囲むことによってエイリアシングアーティファクトの顕著さを低減させる画像を平滑化する効果を有する。これは、図2中において理解することができ、この図では、ピクセルAは、今や2つの「白色」サンプルと2つの「黒色」サンプルを有し、したがって表示される画像中においては、50%「白色」に設定される。このようにして、白色オブジェクトのエッジの周囲のピクセルは、例えばどれだけ多くのサンプルがエッジの各辺にかかるように見出されるかに基づいてより滑らかなエッジを生成するようにぼかされる。
【0009】
実際上、スーパーサンプリングは、ディスプレイについて実際に使用されることになるよりもずっと高い分解能でスクリーン画像を処理し、次いで画像が表示される前に処理される画像を最終分解能までスケーリングし、フィルタをかける(サンプルを落とす)。これは、低減させられたエイリアシングアーティファクトを伴う改善された画像を提供する効果を有するが、グラフィック処理システムは、実際上は存在するサンプルと同じだけの多数のピクセルを処理する必要があるので、(例えば、4xスーパーサンプリング(すなわち4つのサンプルがピクセルロケーションごとに取得される場合)では、処理要件は、スーパーサンプリングが存在しなかった場合よりも4倍大きくなるように)より高い処理能力および/またはより長い処理時間を必要とする。
【0010】
したがって、画像品質におけるある改善を依然としてもたらしながら、スーパーサンプリングよりも少ない処理要件を有する他のアンチエイリアシング技法が提案されてきている。
【0011】
1つの一般的なこのような技法は、「マルチサンプリング(multisampling)」と称される。マルチサンプリングにおいては、この場合にも複数のサンプルが、最終ディスプレイを構成することになるピクセルごとに取得されるが、サンプルごとに別々のカラー値を決定するのではなくて、最終画像中における同じオブジェクトに属することが見出されたピクセルについて、単一のカラー値が、決定され、すべてのサンプルに対して適用される。換言すれば、マルチサンプリングは、シーン中の所与のオブジェクトについての所与のピクセルについて単一のカラー値を計算し、このカラー値は、(別々のカラー値がサンプルごとに決定されるスーパーサンプリングとは対照的に)そのオブジェクトによってカバーされるピクセルについてのすべてのサンプル(サブピクセル)に対して適用される(サンプルについて再利用される)。
【0012】
単一カラー値だけが、所与のピクセルのための複数のサンプルについて使用されるので、マルチサンプリングは、スーパーサンプリングに比べてあまり処理集約的なものではなく、したがってスーパーサンプリングに比べてより高速な処理および実施を可能にすることができる。しかし、オブジェクトのエッジが依然としてより高い分解能でサンプリングされるけれども、カラーはそうではないので、スーパーサンプリングに比べて表示される画像の品質の低下が存在する。
【0013】
当技術分野において知られているように、3Dグラフィック処理は、普通は表示されるべきシーンをまずいくつかの同様な基本的コンポーネント(いわゆる「プリミティブ」)に分割して3Dグラフィック処理動作をもっと簡単に実行できるようにすることにより実行される。これらの「プリミティブ」は、通常は三角形など簡単な多角形の形態になっており、通常はそれらの頂点を定義することにより、記述される。
【0014】
表示されるべきシーンが複数のグラフィックプリミティブに分割された後に、次いでグラフィックプリミティブは、当技術分野において知られているように、通常さらに通常「フラグメント」と称される離散的なグラフィックのエンティティまたはエレメントに分割され、これらに対して(レンダリング動作など)実際のグラフィック処理動作が実行される。このような各グラフィックフラグメントは、プリミティブ中の所与の位置を表し、それに対応することになり、実際上は問題の位置についての(カラー値や深さ値など)データの組を含むことになる。
【0015】
各グラフィックフラグメント(データエレメント)は通常、最終のディスプレイにおける単一ピクセル(ピクチャエレメント)に対応する(ピクセルは、表示されるべき最終のピクチャ中における特異点であるので、3Dグラフィックプロセッサが動作する「フラグメント」とディスプレイ中のピクセルとの間には1対1のマッピングが通常存在することになる)。しかし、それは、「フラグメント」と「ピクセル」の間の直接の対応が存在しない場合である可能性があり、例えばその場合にダウンスケーリングなど処理後の個々の形態は、最終画像を表示することに先立ってレンダリングされた画像上で実行される。
【0016】
したがって、一般的に実行される、3Dグラフィック処理の2つの態様は、グラフィック「プリミティブ」(または多角形)位置データのグラフィックフラグメント位置データへの「ラスタ化すること」(すなわち、表示されるべきシーンにおける各プリミティブを表すために使用されるべきグラフィックフラグメントの(x, y)位置を決定すること)であり、次いでディスプレイスクリーン上に表示するために「ラスタ化された」諸フラグメントを「レンダリングすること」(すなわち、諸フラグメントを着色すること、陰影付けすることなど)である。
【0017】
(3Dグラフィックスの文献中においては、用語「ラスタ化」は時に、プリミティブをフラグメントに変換することとレンダリングの両方を意味するために使用される。しかし、本明細書中では、「ラスタ化」は、プリミティブデータをフラグメントアドレスに変換することだけを意味するために使用されることになる。)
【0018】
ラスタ化プロセスは基本的に、ディスプレイ中のピクセルごとに1つのサンプリングポイント(またはスーパーサンプリングまたはマルチサンプリングが実行される場合には複数のサンプリングポイント)について問題のプリミティブが1つ(または複数)のサンプリングポイントをカバーするかどうかを決定することを必要とする。次いで適切な1つ(または複数)の(x, y)位置を有する1つ(または複数)のフラグメントが、プリミティブによってカバーされる1つ(または複数)のサンプリングポイントをレンダリングするために生成される。
【0019】
レンダリングプロセスは、基本的に各フラグメントを表示するために必要なデータを導き出すことを必要とする。このようなデータは、一般的に(ディスプレイ上のフラグメントのカラーを基本的に決定することになる)フラグメントごとの赤色、緑色、および青色(RGB)のカラー値と、フラグメントごとのいわゆる「アルファ」(透明度)値とを含んでいる。
【0020】
当技術分野において知られているように、このデータは、一般的に線形方式またはパイプライン方式で次から次へと各フラグメント(すなわち、そのフラグメントについてのデータ)上で個々のレンダリングプロセス(ステップ)を実行することにより導き出される。したがって、例えば各フラグメントには、まず例えばフラグメントの(x, y)位置に基づいて初期のRGB値およびアルファ値と、フラグメントが属するプリミティブの頂点について記録されるカラーデータおよび透明度データとが割り付けられる。次いでテクスチャ化すること(texturing)、フォギングすること(fogging)、ブレンドすること(blending)などの動作が、フラグメントデータ上で連続的に実行される。これらの動作は、最後の処理動作の後に、各フラグメントが、そのフラグメントをディスプレイスクリーン上に正しく表示できるようにする適切なRGB値およびアルファ値の組を有するように、フラグメントごとに初期のRGB値およびアルファ値の組を修正する。
【0021】
フラグメントの表示のために使用されるべきRGB値およびアルファ値の最終の組は、ディスプレイのピクセルアレイに対応するフラグメントデータのアレイとして(一般にフレームバッファと称される)メモリに記憶される。次いでフレームバッファ中のデータを使用して、画像が表示されるべきときのディスプレイのピクセルを設定する。
【0022】
多数のグラフィックレンダリングシステムにおいては、一般的に最終のフラグメントデータを記憶し、それからデータが、表示するためのフレームバッファに転送される中間メモリが存在することになる。例えば、据置型のまたはタイルベースのレンダリングシステムにおいては、フラグメントデータは、まずフレームバッファに転送される前に1つまたは複数のタイルバッファに記憶されることになる。直接モードのレンダリングにおいてさえ、フラグメントデータがフレームバッファに転送される前にレンダリングされたフラグメントデータを受信し記憶する中間バッファが存在していてもよい。
【0023】
(少なくとも3Dグラフィックスレンダリングについての)レンダリングプロセスの他の重要な態様は、最終のシーンが表示されるときに所与のプリミティブについてのフラグメントが実際に見られることになるかどうかを決定することである。この決定は一般的に、当技術分野において知られているように、それがレンダリングされるときにプリミティブ中のフラグメントごとに設定される深さ(Z)値を使用することによって実行される。
【0024】
したがって、レンダリングされたフラグメントごとのRGB値およびアルファ値を記憶するのと同様に、深さ値も同様に記憶される。次いで、所与の(x, y)位置についての新しいフラグメントがレンダリングされるべきときに、(例えば、そのフラグメントは、同じサンプリングポイントをカバーする異なるプリミティブに属するので)その深さ値は、最終のフラグメント値を記憶するメモリ(例えばフレームバッファまたはタイルバッファ)中の関連するフラグメント位置について現在記憶されるフラグメントの深さ値と比較されて、新しいフラグメントが現在記憶されるフラグメントの代わりに見られることになるかどうかを決定する。新しいフラグメントが見られることになる場合、その新しいフラグメントは、レンダリングされ、その最終フラグメントデータ(カラー値など)は、問題のフラグメント位置について記憶される既存のフラグメントデータの代わりに記憶される。
【0025】
したがって、表示されるべき所与のシーンについてのレンダリングプロセスの終わりに、少なくともカラー値(および深さ値)を含むフラグメントデータが、フラグメント(x, y)位置のアレイにまたがって記憶されることになり、次いでそのデータを使用して、そのシーンを表示するディスプレイのピクセルを着色することになる。
【0026】
ディスプレイのピクセルごとに単一のサンプリングポイントが存在する最も簡単な場合には、フラグメント位置について記憶されるフラグメントデータを使用して、ディスプレイデバイス上の対応する位置を有するピクセルについてのピクセルカラーを設定するように、記憶された各フラグメント位置は、ディスプレイ中にその位置を有する単一ピクセルに対応することになる(すなわち、フラグメントとディスプレイのピクセルとの間に1対1のマッピングが存在することになる)。
【0027】
しかし、スーパーサンプリングおよびマルチサンプリングの場合には、フラグメントと最終ディスプレイ中のピクセルとの間にはそのような1対1のマッピングが存在しないことになり、または存在しなくてもよい。
【0028】
例えば、スーパーサンプリングの場合には、レンダリングプロセスは、取得される画像のサンプルごとに(例えば、3Dグラフィック処理の場合における少なくともカラー値および深さ値を含めて)フラグメントデータの完全な組を伴うフラグメントをレンダリングし、記憶することになる。したがって、例えば4xスーパーサンプリングでは、4つのフラグメントは、最終ディスプレイ中においてピクセルごとにレンダリングされ、これらのフラグメントのそれぞれについてのフラグメントデータは、別々のフラグメントデータとして記憶されることになる。次いで4つの記憶されたフラグメントの各組についてのフラグメントデータは、適切に組み合わされて(ダウンサンプリングされて)、ディスプレイの関連するピクセルについて使用されるべきデータの組(カラー値)を与えることになる。したがって、このような構成においては、4組のフラグメントデータが最終ディスプレイにおけるピクセルごとに記憶されることになる。
【0029】
マルチサンプリングの場合には、複数のサンプルは、この場合にも画像がフラグメントへとラスタ化されるときにピクセルごとに取得される。しかし、問題のプリミティブによってカバーされる、所与のピクセルについてのすべてのサンプルは、(スーパーサンプリングではそうであるはずのように別々のフラグメントとしてではなく)単一のフラグメントにラスタ化される。次いでこの単一のフラグメントがレンダリングされ、それによってプリミティブによってカバーされるピクセルのすべてのサンプリングポイントについて単一の共通のフラグメントデータの組(例えば、深さ値、カラー値など)を提供し、次いでこのフラグメントデータの組が、以前と同様に記憶される。
【発明の概要】
【発明が解決しようとする課題】
【0030】
スーパーサンプリングもマルチサンプリングもエイリアシングアーティファクトを低減させる観点で利点をもたらすが、本出願人は、知られているアンチエイリアシング技法における改善についての範囲が依然として残っているものと考えている。
【課題を解決するための手段】
【0031】
本発明の第1の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成すること、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定すること、および
プリミティブによってカバーされることが見出されたレンダリングされたグラフィックフラグメントに対応するサンプリングポイントの組のうちのサンプリングポイントごとにレンダリングされたフラグメントデータの組をフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0032】
本発明の第2の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成する手段と、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
プリミティブによってカバーされることが見出されたレンダリングされたグラフィックフラグメントに対応するサンプリングポイントの組のうちのサンプリングポイントごとにレンダリングされたフラグメントデータの組をフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0033】
本発明においては、レンダリングされるグラフィックフラグメントはそれぞれ、すなわち所与のフラグメントが、フラグメントが共通に(すなわち、一緒に、同時に並列に)対応するサンプリングポイントの組のうちのサンプリングポイントをレンダリングすることができるように、元の画像のサンプリングポイントの組に対応する。しかし、レンダリングされたフラグメントデータの組は、次いでプリミティブによってカバーされるサンプリングポイントごとに記憶される。
【0034】
本出願人は、この構成が、以下でさらに説明しているようにいくつかの利点を有することを見出している。
【0035】
本発明の第3の態様によれば、
グラフィックプリミティブによってカバーされる複数のサンプリングポイントを共通にレンダリングすることができるレンダラと、
そのレンダラによってレンダリングされるプリミティブによってカバーされるサンプリングポイントごとにレンダリングされたフラグメントデータの別個の組を記憶する、レンダラの端部におけるメモリバッファと
を備えるグラフィックレンダリングモジュールが設けられる。
【0036】
本発明の第4の態様によれば、
グラフィックプリミティブによってカバーされる複数のサンプリングポイントを共通にレンダリングすること、および
共通にレンダリングされているプリミティブによってカバーされるサンプリングポイントごとにレンダリングされたフラグメントデータの別個の組を記憶すること
を含む、表示のためのグラフィックスを処理する方法が提供されている。
【0037】
表示されるべき(したがってレンダリングされる各フラグメントに関連する)画像の取得されるサンプリングポイントの組は、必要に応じて選択することができる。当技術分野において知られているように、サンプリングポイントの各組(およびしたがって各サンプリングポイント)は、(各組におけるサンプリングポイントの相対的位置は、同じであってよい(また一般的に同じになる)が)表示されるべき画像中における異なるロケーション(x、y位置)を表すことになる。
【0038】
一般的にはこの場合になるように、画像が、複数のピクセルを備えるディスプレイを有する出力デバイス上に表示されるべき場合には、サンプリングポイントの各組は、ディスプレイの所与のピクセル(ピクセルロケーション)についてのサンプリングポイントの組に対応し、あるいはディスプレイのピクセルの一部分(例えば、サブピクセル)についてのサンプリングポイントの組に対応することが好ましい。後者の構成においては、サンプリングポイントの複数の組のグループが、ディスプレイのピクセルについてのサンプリングポイントの全体的な組を構成することが好ましい。これらの構成においては、各フラグメントは、ディスプレイ中の所与のピクセルについてのフラグメントデータを効果的にレンダリングすることになる。
【0039】
サンプリングポイントの組は、表示されるべき画像の全体区域を表す(カバーする)ことができ、あるいは表示されるべき全体的な画像の一部分だけを表し(またカバーする)ことができる。後者の構成は、例えば(16×16ピクセルのタイルなど)画像の別個の部分(タイル)が次にレンダリングされ、次いで最終画像を表示するために組み合わせられるタイルベースのレンダリングシステム中において使用されることになる。この場合には、画像の所望のタイル(部分)を表すサンプリングポイントの複数の組が使用されて、プリミティブを処理することになり、次いでそのプロセスは、画像の他のタイルについて必要に応じて反復されることになる。
【0040】
サンプリングポイントの各組におけるサンプリングポイント数は、必要に応じて選択することができる。例えば、サンプリングポイントの各組は、実際上は単一のサンプリングポイントを含むことができる。この場合には、各フラグメントは、すなわちレンダリングプロセスがどのようなスーパーサンプリングまたはマルチサンプリングもなしに効果的に実行されることになるように、例えばディスプレイの単一ピクセルに対応するように構成することができる。したがってこの構成は、どのようなアンチエイリアシングもなしに画像を効果的に処理することになる。
【0041】
特に好ましい実施形態においては、サンプリングポイントの各組は、複数のサンプリングポイントを含んでいる(すなわち、画像中の複数のサンプリング位置をカバーする)。サンプリングポイントの実際の数は、必要に応じて選択することができるが、4が好ましい数である。
【0042】
サンプリングポイントの各組が、複数のサンプリングポイントを含んでいる場合には、サンプルポイント(サンプリングパターン)のパターンおよび(相対的)位置はまた、必要に応じて選択することができる。例えば、順序格子(ordered grid)スーパーサンプリングなど知られている適切な任意のアンチエイリアシングサンプリングパターンを使用することができる。当技術分野において知られているように、回転格子(rotated grid)スーパーサンプリングパターンは、それがより良好なサンプリング効果をもたらすので使用されることが最も好ましい。したがって、各サンプルポイントが、画像中に固有のx座標およびy座標を有することが好ましい。
【0043】
好ましい一実施形態においては、所与のプリミティブについての画像をサンプリングするために使用されるサンプリングポイントの各組は、同じである(すなわち、サンプリングポイントの同じ数、同じパターン、および同じ相対的位置を使用する)。この場合には、サンプリングポイントの組は、フラグメントごとに同じになる。
【0044】
他の好ましい実施形態においては、所与のプリミティブについての画像をサンプリングするために使用されるサンプリングポイントの組は、例えばサンプリングポイントおよび/またはサンプリングパターンの数、あるいはサンプリングポイントの各組について使用される相対的位置の観点から異なる可能性があり、かつ/または異なっている。サンプリングポイントの組が、プリミティブをレンダリングするために使用されるフラグメント間で異なることができることが最も好ましい。
【0045】
特に好ましい実施形態においては、(例えば、各フラグメントに関連付けられるべき)サンプリングポイントの組は、選択し、使用に際して変化させることができる。これは、レンダリングおよびアンチエイリアシングのプロセスに対して柔軟性をもたらす。サンプリングポイントのこのような選択は、例えばサンプリングパターンの所定の選択からとすることができ、または使用するサンプリングパターンを使用に際してプログラム可能とすることもでき、あるいはその両方とすることができる。これにより、例えば順序格子サンプリングパターンを使用するように一部のフラグメントを設定し、また回転格子サンプリングパターンを使用するように他のフラグメントを設定することができるようになるはずである。
【0046】
このタイプの構成の特に好ましい一実施形態においては、フラグメントは、複数のフラグメントの組にグループ分けされ、異なるサンプリングパターンが、その組における各フラグメントについて使用されるが、同じサンプリングパターンは、フラグメントの各組における各フラグメントそれぞれについて使用されている。例えば、異なるサンプリングパターンの組は、所与のフラグメントのグループ(例えば、2×2のフラグメントアレイ)に適用することができるが、サンプリングパターンの組は、フラグメントの各逐次的グループに反復的に適用されている。
【0047】
このタイプの構成は、例えばこの構成を使用して各フラグメントについて使用されるサンプルポイントが、一致するx座標またはy座標を有しないようにする、すなわちそのピクセルについて使用される各サンプルがその画像中の固有のx座標およびy座標を有するようにすることができるので、複数のフラグメントのグループが、出力ディスプレイ中における単一ピクセルにダウンサンプリングされることになる場合には、特に有用である。
【0048】
好ましい一実施形態においては、プリミティブをレンダリングするために使用される各フラグメントは、サンプリングポイントの異なる組に対応する。そのような構成においては、単一フラグメントだけが、実際上は生成されることになり、それを使用して、サンプリングポイントの各組のうちのサンプリングポイントを共通にレンダリングする、すなわち各フラグメントがサンプリングポイントの(異なる)組の(複数の)サンプリングポイントを共通にレンダリングして、レンダリングプロセスが、効果的にマルチサンプリングされるように実行されることになるようにするはずである。
【0049】
他の好ましい実施形態においては、サンプリングポイントの所与の組について複数のフラグメントを生成し、レンダリングすることができる。これにより、単一のフラグメントが使用されてサンプリングポイントの組のうちのすべてのサンプリングポイントを共通にレンダリングするのではなくて、複数のフラグメントを使用して、サンプリングポイントの組をレンダリングすることができるようになるはずである。このような構成においては、サンプリングポイントの同じ組に対応する各フラグメントを使用して、サンプリングポイントの組の異なるサンプリング位置についてのデータをレンダリングすることが最も好ましい。
【0050】
このタイプの構成は、(別個のカラー(テクスチャ)サンプルが、レンダリングされるフラグメントごとに取得されることになるので)複数のフラグメントがすべて対応するサンプリングポイントの組について生成されることになる異なるカラー(テクスチャ)サンプル数を増大させる効果を有し、したがってそれによりレンダリングプロセスは、スーパーサンプリングにより類似するように動作できるようになる。したがって、好ましい実施形態においては、本システムは、サンプリングポイントの所与の組についてレンダリングするための複数のフラグメントを選択的に生成することができる。
【0051】
このような構成においては、1つのフラグメントが、サンプリングポイントの組のうちの各サンプリングポイントについて(あるいは、少なくともプリミティブによってカバーされるサンプリングポイントごとに)、すなわち別個のフラグメントが、サンプリングポイントの組のうちの異なるサンプリングポイントごとにレンダリングされることになるように生成されることが好ましい。この場合には、フラグメントデータ(およびしたがってカラー値(サンプル))の組が、サンプリングポイントの組のうちの各(カバーされる)サンプリングポイントについて(異なるフラグメントをレンダリングすることにより)別々に生成されるので、レンダリングプロセスは、スーパーサンプリングされるように効果的に実行されることになる。
【0052】
複数のフラグメントが、サンプリングポイントの組の異なるサンプリングポイントについて生成されるこれらの構成においては、(これらは、プリミティブによってカバーされないサンプリングポイントに関連するはずなので)それが問題のプリミティブについて実際に使用されることにならないフラグメントをレンダリングする必要性を回避するので、フラグメントだけが、プリミティブによって実際にカバーされるサンプルポイントについて生成されることが好ましい。したがって、これらの構成においては、プリミティブによってカバーされるサンプリングポイントの組のうちのサンプリングポイントごとに1つのフラグメントが生成される(ただし、プリミティブによってカバーされないサンプリングポイントではフラグメントが生成されない)ことが好ましい。
【0053】
したがって、好ましい一実施形態においては、本システムは、サンプリング位置の所与の組について複数のフラグメントを選択的に生成することができ、生成することが好ましく、問題のプリミティブによってカバーされることが決定されるサンプリング位置の組におけるサンプリング位置数に基づいて生成することが最も好ましい(また、カバーされることが見出されたサンプリング位置が存在するので、同数のフラグメントが、生成されるようにすることが好ましい)。特に好ましい構成においては、したがって本発明のシステムは、サンプリングポイントの組または各組におけるどれだけ多くのサンプリングポイントが、プリミティブによってカバーされるかを決定し、次いでプリミティブによってカバーされることが見出されたサンプリングポイントの所与の組または各組におけるサンプリングポイントごとにレンダリングするためのフラグメントを生成するステップまたは手段を含んでいる。
【0054】
特に好ましい一実施形態においては、本発明のシステムは、好ましくは選択的に、また好ましくは使用に際して、レンダリングされるべき(例えば、プリミティブによってカバーされるサンプリングポイントを含むことが見出された)サンプリングポイントの組についてレンダリングするためだけに単一のグラフィックフラグメントをずっと生成するだけのように、あるいは(必要に応じて、例えばその組における複数のサンプリングポイントがカバーされるので)レンダリングされるべき(例えば、プリミティブによってカバーされるサンプリングポイントを含むことが見出された)サンプリングポイントの組についてレンダリングするために複数のグラフィックフラグメントを生成することができるように、構成することができる。本システムは、例えばプリミティブごと、描画呼出しごと、および/またはシーンベースごとにこのように構成することができることが好ましい。レンダラが設定されるべきレンダリング状態を使用して、どの構成で本システムが動作するかを設定することができることが最も好ましい。
【0055】
これらの構成は、それら自体が新規であり有利であり得るものと考えられる。したがって、本発明の第5の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとに、レンダリングするための単一のグラフィックフラグメントまたは複数のグラフィックフラグメントを選択的に生成すること、
プリミティブについて生成されたグラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定すること、および
レンダリングされたフラグメントデータの一部または全部をフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0056】
本発明の第6の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとに、レンダリングするための単一のグラフィックフラグメントまたは複数のグラフィックフラグメントを選択的に生成する手段と、
プリミティブについて生成されたグラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
レンダリングされたフラグメントデータの一部または全部をフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0057】
本発明の第7の態様によれば、システムが、表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定することができるグラフィックレンダリングシステムを動作させる方法であって、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組についてレンダリングするための単一のグラフィックフラグメントだけを常に生成するようにグラフィックシステムを構成すること、または
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組についてレンダリングするための複数のグラフィックフラグメントを生成することができるようにグラフィックシステムを構成すること
を含む方法が提供されている。
【0058】
本発明の第8の態様によれば、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組についてレンダリングするためだけの単一のグラフィックフラグメントを常に生成するようにグラフィックシステムを構成する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとにレンダリングするための複数のグラフィックフラグメントを生成することができるようにグラフィックプロセッサを構成する手段と
を備えるグラフィックレンダリングシステムが設けられている。
【0059】
当業者には理解されるように、本発明のこれらの態様および実施形態は、必要に応じて、本明細書中で説明される本発明の好ましい特徴およびオプションの特徴のうちの任意の1つまたは複数あるいはすべてを含むことができ、また含んでいることが好ましい。
【0060】
したがって、例えばプリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとにレンダリングするための単一のグラフィックフラグメント、または複数のグラフィックフラグメントを選択的に生成するステップまたは手段は、サンプリングポイントの組のうちのどれだけ多くのサンプリングポイントをプリミティブがカバーするかを決定するステップまたは手段を含んでいることが好ましく、プリミティブがサンプリングポイントの組のうちのたった1つのサンプリングポイントをカバーする場合、サンプリングポイントの組についてレンダリングするための単一のグラフィックフラグメントを生成するが、プリミティブがサンプリングポイントの組のうちの複数のサンプリングポイントをカバーする場合には、サンプリングポイントの組についてレンダリングするための複数のグラフィックフラグメントを生成する。
【0061】
これらの構成におけるサンプリングポイントの所与の組についてレンダリングするための複数のフラグメントは、必要に応じて生成することができる。好ましい実施形態においては、サンプリングポイントの組についてレンダリングされるべき各フラグメントは、共通のある種のフラグメントデータ(すなわち、少なくとも最初にフラグメントごとに同じとなるように設定されるデータ)を有するように構成される。これは、フラグメントの生成を簡略化する。各フラグメントについての(少なくとも)初期の任意の(例えば、事前にカラーサンプリングする)赤色カラー値、緑色カラー値、青色カラー値、(もし提供されるなら)アルファ(透明度)値、およびZ(深さ)値が、同じになるように設定されることが好ましい。しかし、各フラグメントに関連付けられるべき(カバーされる)サンプリングポイントなど他のフラグメントデータは、もちろんフラグメントごとに変化することになり、変化すべきである。
【0062】
したがって、複数のフラグメントがサンプリングポイントの組について生成されるべき特に好ましい実施形態においては、単一のフラグメントが、依然としてサンプリングポイントの組についてまず生成され、次いでその初期フラグメント(例えば、それからコピーされる)を有する、共通にある種のフラグメントデータを有する複数のフラグメント(例えばカバーされる組におけるサンプリングポイントが存在するのと同数のフラグメント)が生成され、次いで複数のフラグメントがレンダリングするために送られる。これらの構成においては、複数の新しいフラグメントは、初期フラグメントの代わりに生成され、レンダリングされることが好ましいが、例えば1つまたは複数のさらに生成されたフラグメントと一緒に初期のフラグメントを保持し、レンダリングすること(それによってレンダリングされる複数のフラグメントを全部提供すること)も可能なはずである。
【0063】
したがって、好ましい一実施形態においては、単一のフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組についてまず生成され、次いで必要な(例えば、本システムがこのような方法で動作するように構成される)場合には、サンプリングポイントの組が実際にプリミティブによってカバーされる複数のサンプリングポイントを含んでいるかどうかが決定され、サンプリングポイントの組が含んでいる場合には、レンダリングするための複数のフラグメントの新しい組がサンプリングポイントの組について生成され、そのフラグメントは、サンプリングポイントの組について最初に生成された単一のフラグメントと共通の少なくとも一部のデータを含んでいることが好ましい。
【0064】
この場合にもこれらの構成は、それら自体が新規であり有利であり得るものと考えられる。
【0065】
したがって、本発明の第9の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとに、レンダリングするためのグラフィックフラグメントを生成すること、
プリミティブによってカバーされる複数のサンプリングポイントを含むことが見出されたサンプリングポイントのこれらの組について、サンプリングポイントの組について以前に生成されたグラフィックフラグメントと共通の少なくとも一部のフラグメントデータを有する複数のグラフィックフラグメントを生成すること、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定すること、および
レンダリングされたフラグメントデータの一部または全部をフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0066】
本発明の第10の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとに、レンダリングするためのグラフィックフラグメントを生成する手段と、
プリミティブによってカバーされる複数のサンプリングポイントを含むことが見出されたサンプリングポイントのこれらの組について、サンプリングポイントの組について以前に生成されたグラフィックフラグメントと共通の少なくとも一部のフラグメントデータを有する複数のグラフィックフラグメントを生成する手段と、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
レンダリングされたフラグメントデータの一部または全部をフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0067】
本発明の第11の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとに、レンダリングするためのグラフィックフラグメントを生成する手段と、
プリミティブによってカバーされる複数のサンプリングポイントを含むことが見出されたサンプリングポイントの組について複数のグラフィックフラグメントを選択的に生成する手段と、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
レンダリングされたフラグメントデータの一部または全部をフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0068】
本発明の第12の態様によれば、
グラフィックプリミティブによってカバーされる複数のサンプリングポイントを共通にレンダリングすることができるレンダラと、
グラフィックプリミティブによってカバーされるサンプリングポイントを共通に、または個別に選択的にレンダリングする手段と
を備えるグラフィックレンダリングモジュールが設けられる。
【0069】
当業者によって理解されるように、本発明のこれらの態様および実施形態は、必要に応じて本明細書中で説明される本発明の好ましい特徴およびオプションの特徴のうちの任意の1つまたは複数あるいはすべてを含むことができ、また含むことが好ましい。したがって、プリミティブによってカバーされる複数のサンプリングポイントを含むことが見出されたサンプリングポイントの組について生成される複数のグラフィックフラグメントは、(以前のフラグメントと共通のデータを有する)「新しく」生成されたフラグメントを含むことが好ましいが、その代わりに1つまたは複数の「新しく」生成されたフラグメントと一緒に「元の」フラグメントから構成することもできる。同様に、サンプリングポイントの組がただ1つのカバーされたサンプリングポイントを含むことが見出された場合には、次いで最初に生成された単一のフラグメントは、そのサンプリングポイントの組をレンダリングするための単一のフラグメントとして使用されることが好ましい。
【0070】
本発明のこれらの態様および実施形態の特に好ましい構成においては、レンダリングするための複数のグラフィックフラグメントを選択的に生成する手段またはステップは、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組について最初に生成されているグラフィックフラグメントを受信する手段またはステップと、フラグメントが対応するサンプリングポイントの組がプリミティブによってカバーされる複数のサンプリングポイントを含むかどうかを決定する手段またはステップと、それが含む場合、サンプリングポイントの組についてレンダリングするための複数のフラグメントの組を生成する手段またはステップを含んでいる。前述のように、複数のフラグメントの組は、それが生成される場合には、新しいフラグメントの組を含むことが好ましく、その組における各フラグメントは、最初のフラグメントと共通の少なくとも一部のフラグメントデータを有することが好ましい。
【0071】
最初のフラグメントが対応するサンプリングポイントの組がただ単一のカバーされたサンプリングポイントを含んでいることが決定される場合、次いで最初のフラグメントは、レンダリングするために保持され送られることが好ましいが、必要に応じて、最初のフラグメントに対応する新しいフラグメントをその代わりに生成することができる。他方、サンプリングポイントの組が、複数のカバーされたサンプリングポイントを含んでいることが決定される場合には、次いでカバーされた1つのサンプリングポイントに対応する組における各フラグメントと共に、カバーされたサンプリングポイントの数に対応する複数のフラグメントの組が、レンダリングのために生成され、送られることが好ましい。
【0072】
そのような構成は、それ自体が新規であり有利であり得るものと考えられる。したがって、本発明の第13の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組について、レンダリングするための単一のグラフィックフラグメントを生成する手段と、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組が、プリミティブによってカバーされる複数のサンプリングポイントを含むかどうかを決定し、それが含む場合に、サンプリングポイントの組についてレンダリングするための複数のフラグメントの組を生成する手段と
を備える装置が設けられている。
【0073】
本発明の第14の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組について、レンダリングするための単一のグラフィックフラグメントを生成すること、および
プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組が、プリミティブによってカバーされる複数のサンプリングポイントを含むかどうかを決定し、それが含む場合に、サンプリングポイントの組についてレンダリングするための複数のフラグメントの組を生成すること
を含む方法が提供されている。
【0074】
この場合にも、本発明のこれらの態様は、本明細書中で説明される本発明の好ましい特徴およびオプションの特徴のうちの任意の1つまたは複数あるいはすべてを含むことができ、また含んでいることが好ましい。
【0075】
特に好ましい一実施形態においては、サンプリングポイントの組について複数のグラフィックフラグメントを選択的に生成する手段は、例えばプリミティブごとに、フラグメントごとに、描画呼出しごとに、タイルごとに、またはシーンごとなどに、(あるいは、これらの任意の組合せ)に基づいて、レンダリングプロセスに選択的に含めることができ、またはレンダリングプロセスから省略する(バイパスする)ことができる。これは、システムを構成してこのように、またはそうでないように動作させることを促進する。これらの機能を実行し、レンダリングプロセス(例えば、パイプライン)に選択的に含め、またはレンダリングプロセス(パイプライン)中において選択的にバイパスすることができる機能構成または機能ユニットが設けられることが最も好ましい。これは、(例えば、その機能ユニットをバイパスすることにより)例えば所与のフラグメント、プリミティブ、描画呼出し、および/またはシーンなどについてこの機能を選択的に省略することを促進する。
【0076】
プリミティブをレンダリングするために生成されるグラフィックフラグメントの組は、適切に表示するためにプリミティブをレンダリングするための十分なフラグメントを含むべきである。したがって、例えばプリミティブの一部分が最終の表示においては実際に見られないことになることが知られている場合には、プリミティブのその部分についてのフラグメントを生成する必要はないはずである。同様に、たとえフラグメントがプリミティブについて生成されているとしても、最終画像において実際には見られないことになるどのようなフラグメントもレンダリングされないことが好ましい。したがって、好ましい一実施形態においては、本発明は、所与の任意のフラグメントが最終画像において見られる可能性があり、または見られることになる(例えば、そのデータがフラグメントアレイにすでに記憶されているフラグメントの代わりに見られることになることが好ましい)かどうかを決定するステップまたは手段を含んでおり、フラグメントが見られる可能性があり、または見られることになることが決定される場合に、そのフラグメントはレンダリングされるだけである。そのような決定は、当技術分野において知られているように3Dグラフィックシステムにおいては少なくともフラグメントについての深さ値の評価に基づいていることができ、また基づいていることが好ましい。
【0077】
フラグメントおよびサンプリングポイントごとに決定され、記憶されるフラグメントデータは、適切なそのような任意のデータとすることができる。フラグメントデータは、それにより例えばディスプレイのピクセルを適切に表示することができるようになるRGB値やアルファ値など、適切なカラーデータおよび/または透明度データを少なくとも含んでいるべきである。(ここで、「カラーデータ」についての本明細書中における言及は、モノクロディスプレイ、すなわち白黒ディスプレイについて使用されることになるような適切なグレーコードデータまたは類似したデータを含んでいることを理解されたい。)
【0078】
少なくとも三次元グラフィックスを処理する場合に、決定され記憶されるフラグメントデータは、フラグメントについての(またしたがって問題の1つ(または複数)のサンプル位置についての)深さ(Z)値も含んでいることが好ましい。
【0079】
いわゆるステンシルデータなど他のフラグメントデータもまた、必要に応じて(必要な場合には)、決定し、記憶することができる(また決定し、記憶することが好ましい)。
【0080】
レンダリングされたフラグメントデータは、フラグメントデータアレイに記憶される。前述のように、レンダリングされたフラグメントデータの別個の組は、プリミティブによってカバーされるサンプリングポイントごとにフラグメントアレイに記憶し、または記憶することができる。当技術分野において知られているように、このアレイは、例えばフラグメント位置の二次元アレイを表すはずであり、次いでこの二次元アレイは、適切に処理されて、例えばピクセルの2Dアレイを表示することができる。本発明においては、フラグメントデータの組は、サンプル位置ごとに記憶されるので、フラグメントデータのアレイは、表示されるべき画像についてのサンプル位置のアレイに対応することになる。
【0081】
当業者によって理解されるように、フラグメントデータの最終アレイは、後続の表示についてのサンプル位置ごとにレンダリングされたフラグメントデータの組を記憶することになるが、所与のプリミティブについてのすべてのレンダリングされたフラグメントデータが、フラグメントデータアレイに記憶されることになるとは、必ずしも限らない。例えば、フラグメントがプリミティブについてレンダリングされるが、次いで問題のプリミティブが、(例えば、レンダリングされたプリミティブをふさぐプリミティブのフラグメントデータが、フラグメントデータアレイにすでに記憶されているので)そのフラグメント位置において見られないことになることが、(例えば、当技術分野において知られているように深さ比較テストを使用することにより)決定される場合には、次いでレンダリングされたフラグメントのデータは、ふさがれた1つ(または複数)のサンプル位置についてフラグメントデータアレイには実際には記憶されない、また記憶されないことになる。したがって、実際には当技術分野において知られているように、フラグメントがレンダリングされた後に、フラグメントが関連しているプリミティブが、関連するフラグメント位置および/またはサンプル位置において実際には見られないことになることが決定される場合には、レンダリングされたフラグメントデータは、フラグメントデータアレイに記憶されないことが好ましい。したがって実際には、所与のプリミティブについてのレンダリングされたフラグメントデータの、必ずしもすべてとは限らないが少なくとも一部は、フラグメントデータアレイに記憶される傾向があることになるが、その画像についてのプリミティブの全体的な組にわたって、フラグメントデータアレイにおける位置(例えば、サンプル位置)ごとに記憶されたレンダリングされたフラグメントデータの組が存在することになる。
【0082】
フラグメントアレイに記憶されるフラグメントデータの組は、適切などのような方法でも記憶することができる。当業者によって理解されるように、フラグメントアレイが表示についての後続のデータの処理を促進するので、フラグメントデータの組は、それらの組が表す画像におけるサンプリング位置に対応するフラグメントアレイ中の位置に記憶されることが好ましい。
【0083】
多くの場合にプリミティブは、フラグメントが対応するサンプリングポイントの組のうちのすべてのサンプリングポイントをカバーすることになるが、一部の場合においては、フラグメントに関連するサンプリングポイントのうちのすべてではないが一部だけがプリミティブによってカバーされることになるように、そうならないこともあることが理解されよう。後者の場合には、フラグメントについてのレンダリングされたフラグメントデータは、プリミティブによってカバーされるこれらのサンプリングポイントについて使用されることになるが、(これらのサンプリングポイントは、実際にはその画像の他のプリミティブによってカバーされることになるので)プリミティブによってカバーされないこれらのサンプリングポイントについては使用されないことになる。したがって、例えばプリミティブによってカバーされないこれらのサンプル位置についてのフラグメントデータアレイにレンダリングされたフラグメントデータを記憶する必要はないはずである。
【0084】
したがって、好ましい一実施形態においては、フラグメントについてレンダリングされるフラグメントデータは、フラグメントデータアレイに(また特にフラグメントが対応するサンプリングポイントの組に対応するアレイ中のサンプル位置に)選択的に記憶することができ、また記憶することが好ましい。そのような選択的に記憶することは、例えばプリミティブによって実際にカバーされるフラグメントが対応するサンプリングポイントの組のうちのこれらのサンプリングポイントについてフラグメントデータアレイに(すなわち、レンダリングされたフラグメントについてのフラグメントデータの別個の組が、フラグメントが対応するサンプリングポイントの組のうちのカバーされるサンプリングポイントごとにフラグメントデータアレイに記憶されることになるが、レンダリングされたフラグメントデータは、プリミティブによってカバーされないサンプル位置については記憶されないことになるように)レンダリングされたフラグメントデータを記憶することだけを含むことができる。
【0085】
代わりにまたは追加して、例えば複数のフラグメントがサンプル位置の組ごとにレンダリングされる場合には、複数のフラグメントのそれぞれについてレンダリングされるフラグメントデータは、(例えば、複数のフラグメントのそれぞれを使用して問題のサンプリングポイントの組のうちのカバーされたサンプリングポイントのうちの異なるサンプリングポイントについてレンダリングされたフラグメントデータを生成するように)プリミティブによってカバーされる、フラグメントが対応するサンプリングポイントのうちの選択された1つまたは複数のサンプリングポイントについて記憶することができる。
【0086】
したがって、特に好ましい一実施形態においては、各グラフィックフラグメントは、フラグメントが対応するサンプリングポイントの組におけるサンプリングポイントのうちのどれについて、レンダリングされたフラグメントデータが、フラグメントデータアレイに記憶されるべきか(すなわち、実際にフラグメントが対応するサンプリングポイントの組におけるサンプリングポイントのうちのどれをレンダリングするためにフラグメントが使用されているか)を示すデータをそのグラフィックフラグメントに関連させている。次いで本システムは、個々の選択されたサンプル位置について、フラグメントデータアレイにレンダリングされたフラグメントデータを記憶するが、そのフラグメントに関連する残りのサンプル位置についてはそうしないように動作することが好ましい。
【0087】
どのサンプルポイントをレンダリングするためにフラグメントが使用されているかを示す情報は、(フラグメントについてのRGB値やアルファ値など)レンダラを通過するフラグメントについてのフラグメントデータに、またはその一部分に関連付けられることが好ましい。その情報は、フラグメントに関連するサンプル位置の組のサンプル位置ごとに、フラグメントが、そのサンプルポイントをレンダリングするために使用されている(すなわち、そのデータが、そのサンプルポイントについて記憶されるべきである)かどうかを示すカバレージマスクの形態であることが好ましい。
【0088】
この構成は、適切なサンプルポイントに所与のフラグメントを関連付ける特に便利な方法であること、また前述の動作など、本発明の他の好ましい動作を推進することが見出されてきている。
【0089】
例えば、どのサンプルポイントをレンダリングするためにフラグメントが使用されているかを示すデータを使用して、レンダリングされたフラグメントデータのどれだけ多くのコピーがフラグメントデータアレイに記憶される必要があるかと、そのデータはフラグメントデータアレイのどの位置に記憶されるべきかを決定することができる。
【0090】
(例えば、プリミティブがサンプリングポイントの組のうちの複数のサンプリングポイントをカバーすることが決定されるときに)この構成を使用して、前述のようにサンプリングポイントの所与の組についてレンダリングするための複数のフラグメントの生成を推進することもできる。とりわけ、そのような状況が起こり、複数のフラグメントが生成されるときに、各フラグメントに関連するサンプルポイントデータ、例えばカバレージマスクを適切に変化させて、どの1つ(または複数)のサンプルポイントにフラグメントのそれぞれが実際に関連しているかを示すことができる。
【0091】
これらの構成は、それ自体が新規であり有利であり得るものと考えられる。したがって、本発明の第15の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの組のうちのサンプリングポイントごとにプリミティブがそのサンプリングポイントをカバーするかどうかを決定すること、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成すること、
フラグメントが対応するサンプリングポイントの組におけるサンプリングポイントのうちのどれが、フラグメントによって共通にレンダリングされているかを示す情報を各グラフィックフラグメントに関連付けること、
グラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたフラグメントごとにフラグメントデータの組を決定すること、および
1つまたは複数のレンダリングされたフラグメントについて、フラグメントに関連する情報が示す、フラグメントによって共通にレンダリングされたサンプリングポイントごとに、レンダリングされたフラグメントについてのレンダリングされたフラグメントデータの組を記憶すること
を含む方法が提供されている。
【0092】
本発明の第16の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの組のうちのサンプリングポイントごとにプリミティブがそのサンプリングポイントをカバーするかどうかを決定する手段と、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成する手段と、
フラグメントが対応するサンプリングポイントの組におけるサンプリングポイントのうちのどれがフラグメントによって共通にレンダリングされているかを示す情報を各グラフィックフラグメントに関連付ける手段と、
グラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたフラグメントごとにフラグメントデータの組を決定する手段と、
レンダリングされたフラグメントについて、フラグメントに関連する情報が示す、フラグメントによって共通にレンダリングされたサンプリングポイントごとに、レンダリングされたフラグメントについてのレンダリングされたフラグメントデータの組を記憶する手段と
を備える装置が設けられている。
【0093】
当業者によって理解されるように、各フラグメントがレンダリングされるときに、各フラグメントは、適切な着色動作および/またはテクスチャ化動作を受けることになる。したがって、画像から適切な1つまたは複数のカラーサンプルを決定して、それにより各フラグメントを適切にレンダリングすることができるようにすることが必要になる。このカラーサンプリングは、適切な任意の方法で実行することができる。
【0094】
特に好ましい一実施形態においては、カラーサンプリングは、各フラグメントがレンダリングされるときにフラグメントごとに基づいて実行される。フラグメントが、レンダリングプロセスのテクスチャマッピングステージに到達するときに、これは、フラグメントについてのテクスチャ「ルックアップ」の一部分として実行されることが可能であり、実行されることが好ましい(当技術分野において知られているように、グラフィックフラグメントがレンダリングされるときには、一般的にそのプロセス中には、テクスチャマッピングとして知られている1ステージが存在することになり、このステージではフラグメントについて使用するカラーおよびテクスチャは、例えば問題のフラグメントについて設定されているテクスチャ座標(s, t)に基づいて決定され設定されることになる)。そのような構成においては、各フラグメントは、それが対応するサンプリングポイントの組についての単一のカラー(テクスチャ)ルックアップを効果的に提供することになり、すなわち個別のフラグメントが、マルチサンプリングされる方法で動作するように考えることができるように(すなわち、フラグメントに関連する(複数の)サンプリング位置についての単一のカラー(テクスチャ)ルックアップを伴って)提供することになる。
【0095】
フラグメントごとに使用されるカラーサンプル(例えば、テクスチャルックアップ)は、問題の画像内の単一の位置から取得されることが好ましい。このサンプル位置は、例えばプリミティブのカバレージを決定するために取得され、または例えば問題の位置サンプリングパターン(例えば、ピクセル)の中心で取得される位置サンプルのうちの1つに対応する可能性がある。
【0096】
カラーサンプルは、サンプリングパターン(例えば、各サンプリングパターンがピクセルに対応する場合にはピクセル)によってカバーされる区域中の適切に重み付けされ、または選択される位置から取得されることが最も好ましい。そのようなカラーサンプリング位置の「重み付け」が使用される場合には、重み付けされる(選択される)位置は、フラグメントがレンダリングするために使用されている(カバーされる)サンプリングポイントの位置に基づいていることが好ましい。
【0097】
したがって、特に好ましい一実施形態においては、カラーサンプル位置は、問題のフラグメントがレンダリングするために使用されているカバーされるサンプリングポイントに従って決定される。したがって、例えばサンプリングポイントの組におけるすべてのサンプリングポイントがプリミティブによってカバーされ、単一のフラグメントが、共通にこれらのサンプリングポイントをレンダリングするために使用されている場合、カラーサンプルは、サンプリングパターンの中心から取得されることが好ましい。同様に、フラグメントが、単一のカバーされるサンプリングポイントだけを表す場合には、次いでカラーサンプルは、そのサンプリングポイント位置において取得されることが好ましい。フラグメントが2つのカバーされるサンプリングポイントを表す場合には、次いでカラーサンプルは、(例えば、これらの2つのサンプルのロケーションに向かって重み付けされる)これらのサンプルに対する適切な位置から取得されることが好ましいなどである。
【0098】
使用されるべきカラーサンプル位置は、例えば各フラグメントに関連するカバーされたサンプルポイントに基づいて、使用に際して計算することができ、または所与のサンプルポイントごとにカバレージパターンを使用するカラーサンプル位置は、あらかじめ決定し、次いであらかじめ決定されたカラーサンプル位置の組は、(例えば、これらのカラーサンプル位置が対応するカバレージパターンについての適切な識別子と共に)例えばルックアップテーブルに記憶して、レンダラが、使用に際してフラグメントについての適切なカラーサンプル位置を取り出すことができるようにすることができ、あるいはその両方を行うことができる。
【0099】
好ましい一実施形態においては、レンダリングプロセスなどは、所与のサンプリングパターン(およびカラーサンプル位置(または位置の組))を使用し、そのパターンなどをすべてのフラグメントにそれらがレンダリングされるときに適用するようにあらかじめ構成される。これは、レンダリングプロセスがフラグメントデータを生成し、次いでフラグメントデータアレイ中の適切な位置にフラグメントデータを記憶することを推進する。
【0100】
一代替構成においては、各フラグメントは、そのフラグメントについて使用されるサンプリングパターンおよび/またはそのフラグメントについて使用されるべきカラーサンプル位置を示すデータをそれに関連付けている可能性がある。
【0101】
以上の構成を用いて、本発明は、マルチサンプリングやスーパーサンプリングなどのいくつかのアンチエイリアシングモードで、あるいはアンチエイリアシングが可能にされないモードで効果的に動作させることができることが理解されよう。
【0102】
例えば、各フラグメントが複数のサンプルポイントを共通にレンダリングするために使用される場合、画像は、マルチサンプリングされるように効果的に処理されることになる。他方、単一のサンプリングポイントだけが、サンプリングポイント(例えば、ピクセル)の組ごとに設定される場合、グラフィック処理は、マルチサンプリングされないように、すなわちアンチエイリアシングなしに効果的に実行することができる。同様に、サンプリングポイントの組ごとにプリミティブによってカバーされることが見出されたサンプリングポイント上にサンプルポイントごとに追加のフラグメントを生成することにより、本システムは、スーパーサンプリングされるように効果的に動作させることができる。
【0103】
したがって特に好ましい一実施形態においては、使用するいくつかのサンプリングポイントやサンプリングパターンなど、1つまたは複数、好ましくはすべての以上のサンプリングおよび/またはアンチエイリアシングのオプション、ならびにサンプリングポイントの組についての複数のサンプリングポイントがプリミティブによってカバーされる追加のフラグメントを生成するかどうかは、使用に際して選択的にイネーブルまたはディスエーブルにすることができる。したがって、本発明の方法または装置は、使用されるべきサンプリングモードおよび/またはアンチエイリアシングモードを選択しまたは設定する(また、例えばレンダラを適切に構成する)手段またはステップをさらに含むことが好ましい。サンプリングおよび/またはアンチエイリアシングのモードは、プリミティブごとに(すなわち個別のプリミティブについて、またはプリミティブの組について)選択し、設定することができることが最も好ましい。
【0104】
実際に、本発明のグラフィック処理構成の特定の利点は、本発明の処理構成により、使用され得るアンチエイリアシング技法およびサンプリング技法における柔軟性が可能になり、さらにアンチエイリアシングおよび/またはサンプリングのモードを使用に際して選択し変更可能にすることができることである。
【0105】
したがって、本発明の第17の態様によれば、
複数の異なるアンチエイリアシングおよび/またはサンプリングのモードを使用して表示のためのグラフィックプリミティブをレンダリングするレンダリングモジュールを構成する手段
を備えるグラフィックレンダリングモジュールが設けられている。
【0106】
本発明の第18の態様によれば、
表示のためにグラフィックプリミティブをレンダリングするために使用されるべきサンプリングモードおよび/またはアンチエイリアシングモードを選択的に変化させる手段
を備えるグラフィックレンダリングモジュールが設けられている。
【0107】
本発明の第19の態様によれば、グラフィックプリミティブをレンダリングするための異なるサンプリングおよび/またはアンチエイリアシングのモードを使用するように構成することができ、
異なるアンチエイリアシングおよび/またはサンプリングのモードを使用して表示のために異なるグラフィックプリミティブをレンダリングする手段
を備えるグラフィックレンダリングモジュールが設けられている。
【0108】
本発明の第20の態様によれば、表示のためのグラフィックプリミティブを複数の異なるアンチエイリアシングおよび/またはサンプリングのモードでレンダリングすることができ、
プリミティブをレンダリングするときに使用されるべきアンチエイリアシングおよび/またはサンプリングのモードを決定する手段
を備えるグラフィックレンダリングモジュールが設けられている。
【0109】
本発明の第21の態様によれば、表示のためのグラフィックプリミティブを複数の異なるアンチエイリアシングおよび/またはサンプリングのモードでレンダリングすることができ、
プリミティブをレンダリングするときに使用されるべきアンチエイリアシングおよび/またはサンプリングのモードを決定すること、および
決定されたアンチエイリアシングおよび/またはサンプリングのモードを使用してグラフィックプリミティブをレンダリングすること
を含むグラフィックレンダリングモジュールを動作させる方法が提供されている。
【0110】
本発明のこれらの態様および構成によれば、グラフィックプリミティブは、前述のようにマルチサンプリングされるように、またはスーパーサンプリングされるように、あるいはアンチエイリアシングが可能にされないでレンダリングすることができることが好ましい。
【0111】
どのアンチエイリアシングモードが、どのプリミティブについて使用されるかは、必要に応じて選択することができる。例えば、スーパーサンプリングは、特に3Dグラフィック処理におけるいわゆる「アルファ」テクスチャおよび「アルファパンチスルー(alpha punch-through)」テクスチャについて有用である(これは、このようなテクスチャにおいては、当技術分野において知られているように、エイリアシングアーティファクトをもたらし得る透明部分と不透明部分が、マルチサンプリングされる構成においてさえ出合うことになるからである。しかし、スーパーサンプリングは、そのようなエイリアシングを緩和する助けをすることができる)。しかし、他のテクスチャでは、スーパーサンプリングは、それほど必要ではないこともある。したがって、好ましい一実施形態においては、レンダリングプロセスは、アルファテクスチャプリミティブでは「スーパーサンプリング」を実施するように設定されるが、すべての他のプリミティブでは、マルチサンプリングを実施するように設定される。
【0112】
アンチエイリアシングおよび/またはサンプリングのモードは、どのような適切な方法でも、使用に際して設定することができる。好ましい一実施形態においては、所与の1つまたは複数のプリミティブは、特定のアンチエイリアシングおよび/またはサンプリングのモードに関連付けることができる。
【0113】
使用するアンチエイリアシングおよび/またはサンプリングのモードは、1つまたは複数のプリミティブについて定義されるレンダリング状態の一部分として定義されることが最も好ましい。
【0114】
当技術分野において知られているように、正しいレンダリング動作を実行できるようにするためには、レンダリングプロセスの各ステージは、適切に構成されるように、すなわち正しいいわゆる「レンダリング状態」に設定する必要がある。レンダリング状態は、レンダリングプロセスの諸ステージが、各フラグメント上でどのように動作するかを決定し、一般的には例えばグラフィックフラグメントをレンダリングするために使用されるべき1つまたは複数のブレンディングモード、ステンシルバッファ動作、テクスチャ機能、テクスチャマップ情報、zテストモード、RGBaバッファ書込みモードなどを決定する。レンダリング状態は、例えば使用されるべきラスタ化モードを示すために使用することもできる。本実施形態においては、レンダリング状態を使用して、問題の1つまたは複数のプリミティブについてアンチエイリアシングおよび/またはサンプリングのモードを設定することにもなる。
【0115】
所与のアンチエイリアシングおよび/またはサンプリングのモードを有するプリミティブがレンダリングされるべき場合に、次いでレンダリングプロセスのすべてのステージを、まず所望のアンチエイリアシングおよび/またはサンプリングの状態に対して構成することができ、次いでグラフィックフラグメントを、(グラフィックフラグメントが多数のグラフィック処理システム中でそれへと送られる前に全体的なレンダラが単一のレンダリング状態に対して構成されることになる方法と同様な方法で)レンダリングするために発行することができる。
【0116】
しかし、特に好ましい一実施形態においては、レンダリングされるべきグラフィックフラグメントは、それらの所望のアンチエイリアシングおよび/またはサンプリングのモードに関連付けられ、次いでレンダラの諸レンダリングユニットは、その関連付けを使用して、レンダリングユニットが諸フラグメントを受け取るときにレンダリングユニットが諸フラグメントをレンダリングするために使用すべきアンチエイリアシングおよび/またはサンプリングのモードを決定する。換言すれば、レンダリングユニットが、レンダリングするためのフラグメントを受け取るときに、レンダリングユニットは、そのフラグメントに関連付けられているサンプリングおよび/またはアンチエイリアシングのモードに基づいて、フラグメントについて使用するサンプリングおよび/またはアンチエイリアシングのモードを決定し、次いでそれに応じてフラグメントをレンダリングする。これは、任意のフラグメントがレンダリングされる前に所与のサンプリングモードまたはアンチエイリアシングモードに対して全体的なレンダラを構成する必要性を回避する。それはまた、レンダラの諸レンダリングユニットがそれぞれ、レンダラにおける残りのレンダリングユニットの現在の1つまたは複数のサンプリングモードまたはアンチエイリアシングモードとは独立にそれらの現在のフラグメントについて必要とされるサンプリングモードまたはアンチエイリアシングモードに対してレンダリングユニット自体を効果的に構成することができることを意味する。
【0117】
したがって、本発明の第22の態様によれば、
表示のためのグラフィックフラグメントをレンダリングするための、また異なるサンプリングおよび/またはアンチエイリアシングのモードに対して構成することができる1つまたは複数のレンダリングユニットを備えるレンダラと、
可能なサンプリングおよび/またはアンチエイリアシングのモードのうちの1つにレンダリングされるべきグラフィックフラグメントを関連付ける手段と、
レンダリングするためのレンダラのレンダリングユニットに対してサンプリングおよび/またはアンチエイリアシングのモードに関連付けられているグラフィックフラグメントを発行する手段と
を備え、
レンダラの1つまたは複数のレンダリングユニットが、
レンダリングされるべき、グラフィックフラグメントに関連付けられるサンプリングおよび/またはアンチエイリアシングのモードを決定する手段と、
決定されたサンプリングおよび/またはアンチエイリアシングのモードに従ってレンダリングユニットを構成する手段と
を備えるグラフィックプロセッサが設けられている。
【0118】
本発明の第23の態様によれば、表示のためのグラフィックフラグメントをレンダリングするための1つまたは複数のレンダリングユニットを含むレンダラを有するグラフィックプロセッサを動作させる方法であって、
そのフラグメントをレンダリングするために使用されるべきサンプリングおよび/またはアンチエイリアシングのモードにレンダリングされるべき各フラグメントを関連付けること、および
レンダリングユニットがレンダリングされるべきフラグメントを受け取るときに、レンダリングユニットが、そのフラグメントに関連付けられるサンプリングおよび/またはアンチエイリアシングのモードを決定し、決定されたサンプリングおよび/またはアンチエイリアシングのモードに従って構成され、その受け取られたフラグメント上でそのレンダリング動作を実行すること
を含む方法が提供されている。
【0119】
グラフィックフラグメントは、適切な任意の方法で所与のアンチエイリアシングおよび/またはサンプリングのモードに関連付けることができる。各フラグメントには、フラグメントと共にレンダラを介して「通過させられ」、そのフラグメントについて使用されるべきアンチエイリアシングおよび/またはサンプリングのモードを示すフラグまたはインデックスポインタが割り付けられることが最も好ましい。次いで諸レンダリングユニットは、(例えば、そのデータを記憶するメモリから適切なサンプリングおよび/またはアンチエイリアシングのデータを取り出すために)フラグメントのサンプリングおよび/またはアンチエイリアシングのフラグまたはポインタを使用して、フラグメントについての適切なサンプリングおよび/またはアンチエイリアシングのモードを決定することができる。サンプリングおよび/またはアンチエイリアシングのフラグまたはポインタは、レンダラを介して「通過する」(そのRGBa値など)フラグメントについての他のデータに関連付けられることが好ましい。
【0120】
フラグまたはポインタは、使用されるべき実際のアンチエイリアシングおよび/またはサンプリングのモードを識別することができるが、好ましい一実施形態においては、以下でさらに説明しているようにこれは行わず、その代わりに単に関連するデータの組が記憶されるメモリロケーションを示す(指し示す)。これは、その場合にはそれがもしかすると使用することができるすべての可能なサンプリングおよび/またはアンチエイリアシングのモードの間で区別する必要がないはずであるので、フラグまたはポインタの複雑さを低減させる。
【0121】
特に好ましいそのような一実施形態においては、(一般的に所与のプリミティブが、同じ単一のアンチエイリアシングおよび/またはサンプリングのモードを使用してその全体においてレンダリングされることになるので)レンダリングされるべきプリミティブは、そのプリミティブをレンダリングするために使用されるべきアンチエイリアシングおよび/またはサンプリングのモードに関連付けられ(またフラグ付けされ)、次いでプリミティブがフラグメントにラスタ化されるときに、各フラグメントには、そのプリミティブに割り付けられるアンチエイリアシングおよび/またはサンプリングのモードのポインタまたはフラグが割り付けられる。したがって、プリミティブのフラグメントへのラスタ化を使用して、フラグメントをその対応するアンチエイリアシングおよび/またはサンプリングのモードに関連付けることが好ましい。
【0122】
当技術分野において知られているように、記憶されたフラグメントデータのアレイは、出力デバイス上での表示のためにさらに処理される必要があることになり、特にディスプレイのピクセルアレイについてのピクセルデータなど離散的なデータ値の適切な最終出力の組へと記憶されたフラグメントデータを「ダウンサンプリングする」ことが一般的に必要になる。このダウンサンプリングは、既存のスーパーサンプリング法またはマルチサンプリング法において使用されるスケーリング技法およびダウンフィルタリング技法などを使用することにより、適切な任意の方法で実施することができる。したがって、ダウンサンプリング(記憶されたフラグメントデータのより少数のデータ値への結合)が、フラグメントアレイに記憶されたデータがその表示についての準備のできたディスプレイのフレームバッファに「ライトバックされる」ときの「ライトバック」プロセス中に行われることが好ましい。
【0123】
特に好ましい実施形態においては、フラグメントデータに適用されるダウンサンプリングのレベルは、使用に際して選択することができる。2つの逐次的なダウンサンプリングステージが設けられ、それらのステージのうちの一方または両方をアクティブにすることができることが最も好ましい。各ダウンサンプリングステージは、同じ量だけその入力データをダウンサンプリングすることが好ましい。
【0124】
適用されるダウンサンプリングの実際のレベルは、必要に応じて選択することができる。しかし、例えば4つの位置サンプルポイントがピクセル当たりに使用される場合には、次いで逐次的な各ダウンサンプリングステージが、4のファクタだけダウンサンプリングすることが好ましい。これは、(一方のステージだけがアクティブにされる場合の)4xダウンサンプリング、または両方のステージがアクティブにされる場合の16xダウンサンプリング(4xダウンサンプリングにさらなる4xダウンサンプリングが続く)のどちらかを実現するはずである。
【0125】
表示のためにデータがダウンサンプリングされる量を変化させるこの機能は、(例えば、フラグメントレンダリングが、マルチサンプリングされるように、またはスーパーサンプリングされるように実行されるかどうかに応じて)この機能により例えばエッジおよびカラーを異なるレートでサンプリングできるようになるのでサンプリングおよびアンチエイリアシングのプロセスの柔軟性をさらに高める。
【0126】
ダウンサンプリングのレベルは、(当技術分野において知られているように、それが通常は、ダウンサンプリングされる画像の個々のフレームについてのデータになるので)フレームごとに設定し選択することができることが好ましい。ダウンサンプリングの2つの逐次的レベルが提供される場合には、ダウンサンプリングの一方のレベルが常にアクティブにされ、ダウンサンプリングの第2のレベルが、好ましくはフレームごとに設定されるレジスタを使用することにより選択的に適用することができることが最も好ましい。
【0127】
そのような構成は、それ自体が新規であり有利であり得るものと考えられる。したがって、本発明の第24の態様によれば、複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理する方法であって、
画像を表すグラフィックフラグメントをレンダリングして、諸フラグメントについてのフラグメントデータを生成すること、
レンダリングされたフラグメントデータのアレイを記憶すること、および
記憶されたフラグメントデータをダウンサンプリングして、ディスプレイデバイス上で画像を表示するためのピクセルデータのアレイを提供すること
を含み、
なおダウンサンプリングのレベルを変化させることができ、
レンダリングされたフラグメントデータ上で使用されるべきダウンサンプリングのレベルを選択すること
をさらに含む方法が提供されている。
【0128】
本発明の第25の態様によれば、複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理する装置であって、
画像を表すグラフィックフラグメントをレンダリングして、諸フラグメントについてのフラグメントデータを生成する手段と、
レンダリングされたフラグメントデータのアレイを記憶する手段と、
記憶されたフラグメントデータをダウンサンプリングして、ディスプレイデバイス上で画像を表示するためのピクセルデータのアレイを提供する手段であって、ダウンサンプリングのレベルを変化させることができる手段と、
レンダリングされたフラグメントデータ上で使用されるべきダウンサンプリングのレベルを選択する手段と
を備える装置が設けられている。
【0129】
(例えばフレームバッファに書き込まれる)ダウンサンプリングされたデータはまた、例えばそれがフレームバッファに書き込まれる前にガンマ補正されることが好ましい。(当技術分野において知られているように、表示されるべき画像についてのグラフィックカラーデータは、通常、それについてディスプレイスクリーンの例えば明度などの特性を考慮してディスプレイスクリーン上に画像を適切に表示するために修正する必要があることになる。生成されたデータを補正してこれを明らかにするプロセスは、ガンマ補正として知られている)。このガンマ補正は、当技術分野において知られている適切な任意の方法で実行することができる。
【0130】
本発明は、単一のグラフィックプリミティブの処理に関して主として説明されてきているが、当業者には理解されるように表示されるべき画像は、一般的に複数のプリミティブから構成されることになり、したがって実際には本発明の方法は、ディスプレイを構成するプリミティブごとに反復されることになり、そのために最終的には、フラグメントデータの適切な組は、全体の画像(または、例えばタイルベースのレンダリングシステムにおける画像の関連する部分)を表示するために必要とされる画像のサンプリングポイントごとに生成されており、次いでそのデータは、表示のためにダウンサンプリングすることができる。
【0131】
3Dグラフィック処理の場合には少なくとも、プリミティブが(例えば、プリミティブがオーバーラップする)各サンプルポイントにおいて実際に見られることになるかどうかを決定することも必要なこともある。
【0132】
したがって本発明の第26の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成すること、
各生成されたグラフィックフラグメントが、表示される画像中において見られ得るかどうか、または見られることになるかどうかを決定すること、
表示される画像中において見られ得るかどうか、または見られることになるかどうかが決定された、プリミティブについて生成されたグラフィックフラグメントをレンダリングして、そのようなグラフィックフラグメントごとにフラグメントデータの組を決定すること、および
プリミティブによってカバーされることが見出されたレンダリングされたグラフィックフラグメントに対応するサンプリングポイントの組のうちのサンプリングポイントごとにレンダリングされたフラグメントデータの組をフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0133】
本発明の第27の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組に対応する、プリミティブをレンダリングするためのグラフィックフラグメントの組を生成する手段と、
各生成されたグラフィックフラグメントが、表示される画像中において見られ得るかどうか、または見られることになるかどうかを決定する手段と、
表示される画像中において見られ得るかどうか、または見られることになるかどうかが決定された、プリミティブについて生成されたグラフィックフラグメントをレンダリングして、そのようなグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
プリミティブによってカバーされることが見出されたレンダリングされたグラフィックフラグメントに対応するサンプリングポイントの組のうちのサンプリングポイントごとにレンダリングされたフラグメントデータの組をフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0134】
本発明のこれらの態様および実施形態においては、グラフィックフラグメントが、表示される画像中において見られ得るかどうか、または見られることになるかどうかについての決定は、当技術分野において知られているように、適切な深さテストを実行して、プリミティブ(フラグメント)が、問題のロケーションにおいて実際に見られることになるかどうかを決定することを含むことが好ましい。したがって特に好ましいそのような実施形態においては、フラグメントアレイ中の所与のサンプル位置についてのフラグメントがレンダリングされるべきときに、その深さ値が、フラグメントアレイにすでに記憶されているサンプル位置についての任意のフラグメントデータの深さ値と比較され、その深さ値の比較が、新しいフラグメントが既存の記憶されたフラグメントの代わりに見られることになることを示す場合に、新しいフラグメントだけが、レンダリングされ(そのデータが、フラグメントアレイに記憶される)ことが好ましい。
【0135】
本発明の第28の態様によれば、表示されるべき画像が、処理するための1つまたは複数のグラフィックプリミティブに分割され、画像を表示するために使用するためのフラグメントデータが、画像のサンプル位置のアレイに対応するフラグメントデータのアレイとして生成され、記憶される、表示のために画像を処理する方法であって、
各フラグメントが、画像のサンプリングポイントの組に対応し、サンプリングポイントの組のうちの、プリミティブによってカバーされる1つまたは複数のサンプリングポイントを共通にレンダリングするために使用されている、画像の各プリミティブをレンダリングするための1つまたは複数のグラフィックフラグメントの組を生成すること、
生成されたグラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたフラグメントごとにレンダリングされたフラグメントデータの組を生成すること、および
レンダリングされたフラグメントの一部または全部について、フラグメントが共通にレンダリングした1つまたは複数のサンプル位置に対応するフラグメントデータのアレイ中の1つまたは複数の位置におけるレンダリングされたフラグメントについてのレンダリングされたフラグメントデータのコピーをフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0136】
本発明の第29の態様によれば、表示のための1つまたは複数のグラフィックプリミティブを含む画像を処理するための装置であって、
画像のサンプル位置のアレイに対応するフラグメントデータのアレイを記憶する手段と、
各フラグメントが、画像のサンプリングポイントの組に対応し、サンプリングポイントの組のうちの、プリミティブによってカバーされる1つまたは複数のサンプリングポイントを共通にレンダリングするために使用されている、画像の各プリミティブをレンダリングするための1つまたは複数のグラフィックフラグメントの組を生成する手段と、
生成されたグラフィックフラグメントの一部または全部をレンダリングして、レンダリングされたフラグメントごとにレンダリングされたフラグメントデータの組を生成する手段と、
フラグメントが共通にレンダリングした1つまたは複数のサンプル位置に対応するフラグメントデータのアレイ中の1つまたは複数の位置におけるレンダリングされたフラグメントについてのレンダリングされたフラグメントデータのコピーをフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0137】
以上から理解されるように、本発明のこれらの態様は、本明細書中で説明される本発明の好ましい特徴およびオプションの特徴のうちの1つまたは複数、あるいはすべてを含むことができ、また含むことが好ましい。したがって、例えば適切な場合には、レンダリングされるべき(新しいプリミティブからの)新しいフラグメントの深さ値は、(もしあるなら)問題のサンプル位置についてすでに記憶されているフラグメントの深さ値と比較されて、新しいフラグメントがレンダリングされるべきかどうかを決定することが好ましい。同様に、レンダリングされたフラグメントデータの記憶されたアレイが、ダウンサンプリングされて、最終画像を表示するために使用される例えばピクセルデータを提供することが好ましい。
【0138】
本発明の動作中には、表示されるべき画像の複数のサンプル(または画像の一部分)が取得され、フラグメントデータの別個の組が画像のサンプルごとに記憶されることが、以上から理解されよう。しかし、データの別個の組がサンプルごとに記憶されるが、諸サンプルは、共通にレンダリングすることができる(またレンダリングされることが好ましい)。
【0139】
したがって、本発明の第30の態様によれば、表示のための画像を処理する方法であって、
表示されるべき画像のすべてまたは一部分の複数のサンプルを取得すること、
少なくとも2つのサンプルが共通にレンダリングされる、サンプルをレンダリングしてレンダリングされたサンプルデータを生成すること、および
画像または画像の一部分から取得されたサンプルごとにレンダリングされたサンプルデータの組を記憶すること
を含む方法が提供されている。
【0140】
本発明の第31の態様によれば、表示のための画像を処理するための装置であって、
表示されるべき画像のすべてまたは一部分の複数のサンプルを取得する手段と、
サンプルをレンダリングしてレンダリングされたサンプルデータを生成する手段と、
画像または画像の一部分から取得されたサンプルごとにレンダリングされたサンプルデータの組を記憶する手段と
を備え、
サンプルをレンダリングする手段が、共通に画像のサンプルをレンダリングする手段を含む装置が設けられている。
【0141】
本発明の第32の態様によれば、表示されるべき画像のグラフィックプリミティブを処理する方法であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定すること、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントの組のうちの1つまたは複数のサンプリングポイントに対応する、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとにレンダリングするための1つまたは複数のグラフィックフラグメントを生成すること、
プリミティブについて生成された1つまたは複数のグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定すること、および
フラグメントが対応するカバーされたサンプリングポイントごとにレンダリングされたフラグメントについてのレンダリングされたフラグメントデータのコピーを1つまたは複数のレンダリングされたグラフィックフラグメントについてのフラグメントデータのアレイに記憶すること
を含む方法が提供されている。
【0142】
本発明の第33の態様によれば、表示されるべき画像のグラフィックプリミティブを処理するための装置であって、
表示されるべき画像のサンプリングポイントの複数の組のうちのサンプリングポイントごとにグラフィックプリミティブがサンプリングポイントをカバーするかどうかを決定する手段と、
各グラフィックフラグメントが、プリミティブによってカバーされるサンプリングポイントの組のうちの1つまたは複数のサンプリングポイントに対応する、プリミティブによってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとにレンダリングするための1つまたは複数のグラフィックフラグメントを生成する手段と、
プリミティブについて生成されたグラフィックフラグメントをレンダリングして、レンダリングされたグラフィックフラグメントごとにフラグメントデータの組を決定する手段と、
フラグメントが対応するカバーされたサンプリングポイントごとにレンダリングされたフラグメントについてのレンダリングされたフラグメントデータのコピーをフラグメントデータのアレイに記憶する手段と
を備える装置が設けられている。
【0143】
特に好ましい実施形態においては、本発明の様々な機能は、ディスプレイデバイスについてのフレームバッファに書き込まれるデータを生成し、出力する単一のグラフィック処理プラットフォーム上で実行される。したがって特に、記憶されたフラグメントデータの「ピクセルデータ」へのダウンサンプリングが、そのデータがディスプレイデバイスについてのフレームバッファにエクスポートされることに先立って、グラフィック処理プラットフォーム上で実施されることは、それがグラフィックプラットフォームからエクスポートされる必要があるデータのボリュームを低減させるので好ましい。
【0144】
実際に、任意のレンダリング後のダウンサンプリングを含めてすべてのグラフィック処理が、表示のためのディスプレイデバイスの個別の外部の(すなわち、グラフィック処理プラットフォーム上に存在しない)フレームバッファへとデータがエクスポートされることに先立って、グラフィック処理プラットフォーム上で実行されるグラフィック処理構成を備えることが特に有利であり、またさらにそれ自体が新規であり有利であり得るものと考えられる。
【0145】
したがって、本発明の第34の態様によれば、表示のためのグラフィックスを処理する方法であって、
1つまたは複数のグラフィックフラグメントをグラフィック処理プラットフォーム上でレンダリングして、表示のためのレンダリングされたフラグメントデータを生成すること、
そのグラフィック処理プラットフォーム上でレンダリングされたフラグメントデータをダウンサンプリングすること、および
グラフィック処理プラットフォームから表示のためのフレームバッファへとダウンサンプリングされたフラグメントデータをエクスポートすること
を含む方法が提供されている。
【0146】
本発明の第35の態様によれば、
1つまたは複数のグラフィックフラグメントをレンダリングして、表示のためのレンダリングされたフラグメントデータを生成する手段と、
レンダリングされたフラグメントデータをダウンサンプリングする手段と、
表示のためのフレームバッファへとダウンサンプリングされたフラグメントデータをエクスポートする手段と
を備えるグラフィック処理プラットフォームが設けられている。
【0147】
当業者によって理解されるように、本発明のこれらの態様および実施形態は、必要に応じて本明細書中で説明される本発明の好ましい特徴およびオプションの特徴の1つまたは複数、あるいはすべてを含むことができ、また含むことが好ましい。したがって、例えばレンダリングされたフラグメントデータは、ダウンサンプリングされることに先立って(また(リモート)フレームバッファへとエクスポートされることに先立って)グラフィック処理プラットフォーム上の(好ましくは)1つまたは複数のタイルバッファなど1つまたは複数の中間バッファに記憶されることが好ましい。
【0148】
本発明は、「パイプライン化」構成を有するレンダラなどレンダラの任意の形態または構成に対して適用可能である(この場合には、レンダラは、レンダリングパイプラインの形態になる)。本発明は、直接モードレンダリング、据置きモードレンダリング、タイルベースのレンダリングなど、レンダリングのすべての形態に対して適用可能であるが、本発明は、特に据置きモードレンダリングを使用するグラフィックレンダラに対して、またとりわけタイルベースのレンダラに対して適用可能である。
【0149】
以上から理解されるように、本発明は特に、それだけには限らないが、3Dグラフィックプロセッサおよび処理デバイスに対して適用可能であり、したがって本明細書中で説明される本発明の任意の1つまたは複数の態様の装置、または態様に従って動作させられる装置を含めて3Dグラフィックプロセッサおよび3Dグラフィック処理プラットフォームにまで及ぶ。前述の特定の機能を実行するために必要な任意のハードウェアに従って、そのような3Dグラフィックプロセッサは、そうでなければ3Dグラフィックプロセッサが含む通常の機能ユニットなどのうちの任意の1つまたは複数、あるいはすべてを含むことができる。
【0150】
本発明の説明された態様および実施形態のすべては、本明細書中に説明される好ましい特徴およびオプションの特徴のうちの任意の1つまたは複数、あるいはすべてを必要に応じて含むことができ、また含んでいることが好ましいことも当業者には理解されよう。
【0151】
本発明による方法は、ソフトウェア、例えばコンピュータプログラムを少なくとも部分的に使用して、実装することができる。したがって、さらなる態様から見ると、本発明は、データ処理手段上にインストールされるときに本明細書中に説明される方法を特に実行するようになっているコンピュータソフトウェアと、プログラムエレメントがデータ処理手段上で実行されるときに本明細書中で説明される方法を実施するためのコンピュータソフトウェアコード部分を含むコンピュータプログラムエレメントと、プログラムがデータ処理システム上で実行されるときに本明細書中で説明される1つまたは複数の方法のすべてのステップを実施するようになっているコード手段を含むコンピュータプログラムを提供することが分かる。本発明はまた、データ処理手段を備えるグラフィックプロセッサ、レンダラ、またはマイクロプロセッサシステムを動作させるために使用されるときに、前記データ処理手段に関連して前記のプロセッサ、レンダラまたはシステムに本発明の方法の諸ステップを実行させるそのようなソフトウェアを含むコンピュータソフトウェアキャリアにまで及んでいる。そのようなコンピュータソフトウェアキャリアは、ROMチップ、CD ROM、ディスクなどの物理的ストレージ媒体とすることができ、あるいはワイヤ上の電子信号、光信号、衛星などに対する無線信号などの信号とすることもできる。
【0152】
本発明の方法の必ずしもすべてのステップが、コンピュータソフトウェアによって実行される必要があるとは限らず、したがってさらなる広範な態様から、本発明は、本明細書中に述べられる方法のステップのうちの少なくとも1つを実行するためにコンピュータソフトウェアキャリア上にインストールされるコンピュータソフトウェアおよびそのようなソフトウェアを提供することがさらに理解されよう。
【0153】
したがって本発明は、コンピュータシステムと共に使用するためのコンピュータプログラム製品として適切に実施することができる。そのような実装形態は、コンピュータ読取り可能媒体などの有形媒体、例えばディスケット、CD-ROM、ROM、またはハードディスク上に固定され、あるいはそれだけには限定されないが光通信回線もしくはアナログ通信回線を含めて有形媒体上で、またはそれだけには限定されないがマイクロ波、赤外、もしくは他の通信技法を含めて無線技法を無形に使用してモデムまたは他のインターフェースデバイスを経由してコンピュータシステムに伝送可能な一連のコンピュータ読取り可能命令を含むことができる。コンピュータ読取り可能命令のシリーズは、本明細書中で以前に説明された機能のすべてまたは一部分を実施する。
【0154】
当業者なら、そのようなコンピュータ読取り可能命令は、多数のコンピュータアーキテクチャまたはオペレーティングシステムと共に使用するためのいくつかのプログラミング言語で書くことができることを理解されよう。さらにそのような命令は、それだけには限定されないが半導体、磁気、光のものを含めて、現在または将来の任意のメモリ技術を使用して記憶することができ、あるいはそれだけには限定されないが、光、赤外線、またはマイクロ波を含めて、現在または将来の任意の通信技術を使用して伝送することができる。そのようなコンピュータプログラム製品は、例えばシステムROMまたは固定されたディスク上の、コンピュータシステムを用いて事前ロードされた添付の印刷された、または電子的なドキュメンテーション、例えばシュリンク包装されたソフトウェアを伴う着脱可能媒体として配布することができ、あるいはネットワーク上、例えばインターネットまたはワールドワイドウェブ上のサーバまたは電子掲示板から配信することができることが企図されている。
【0155】
本発明のいくつかの好ましい実施形態は、実施例としてのみ、また添付図面を参照して説明されることになる。
【図面の簡単な説明】
【0156】
【図1】エイリアシングの影響を概略的に示す図である。
【図2】スーパーサンプリングアンチエイリアシング技法を概略的に示す図である。
【図3】表示されるべき画像を概略的に示す図である。
【図4】本発明の一実施形態において使用するための例示のサンプリングパターンを示す図である。
【図5】本発明に従って動作させられ得るグラフィック処理プラットフォームの一実施形態を示す図である。
【図6】図3のピクセルの拡大図である。
【図7】本発明の一実施形態におけるレンダリングされるべきフラグメントに関連するデータを示す図である。
【図8】本発明の一実施形態において使用するための例示のサンプリング構成を示す図である。
【図9】本発明の一実施形態において使用するための例示のサンプリング構成を示す図である。
【図10】本発明の一実施形態におけるグラフィックフラグメントの生成を概略的に示す図である。
【図11】本発明に従って動作させることができるグラフィック処理プラットフォームの一部分の展開された概略図である。
【発明を実施するための形態】
【0157】
次に本発明の好ましい一実施形態について、表示のための3Dグラフィックスの処理の場合において説明することにする。しかし、当業者によって理解されるように、本発明は、3Dグラフィックスの処理だけに限定されることなく、他の用途も同様に有する。
【0158】
当技術分野において知られているように、また前述のように、3Dグラフィックス画像が表示されるべきときに、3Dグラフィックス画像は、通常まず一連のプリミティブ(多角形)として定義され、次いでそれらのプリミティブは、次にグラフィックレンダリングするためのグラフィックフラグメントに分割(ラスタ化)される。通常の3Dグラフィックレンダリング動作中には、レンダラは、フラグメントを正しく表示することができるようにするために、各フラグメントに関連する(例えば)カラー(赤色、緑色および青色、RGB)および透明度(アルファ、a)データを修正することになる。フラグメントが、レンダラを完全に横切った後に、次いでフラグメントの関連するデータ値が、メモリに記憶され、表示するための出力についての準備が整う。
【0159】
本発明は、グラフィック画像を表示するときにアンチエイリアシング動作を推進することに特に関係している。当技術分野において知られているように、アンチエイリアシングは、表示されるべき画像の複数のサンプルを取得し、次いでこれらのサンプルをディスプレイの出力分解能にまでダウンサンプリングすることにより実行される。
【0160】
図3は、本実施形態において使用されるアンチエイリアシング構成を概略的に示している。図3は、(以下でさらに説明されるように本実施形態は、タイルベースのレンダリングシステムであるので)本実施形態において表示されるべき画像の一部分を表すピクセルのアレイ30を概略的に示している(とは言え、同様にピクセルの組は、画像の全体的な表示を表すように考えることができる)。各ピクセルは、図3に示されるように、問題のピクセルについての画像をサンプリングし、それに応じてピクセルがどのようにして最終ディスプレイ上に表示されるべきかを決定するために使用されることになる4つのサンプリングポイントの組31を含んでいる。
【0161】
図3に示されるように、同じサンプリングパターン31が、ピクセルアレイ30中のピクセルごとに使用される。この実施形態においては、サンプリングパターンは、回転格子サンプリングパターンであるが、他の適切などのようなアンチエイリアシングサンプリングパターンも必要に応じて使用することができる。図4は、ピクセル内のサンプリングパターン中のサンプリングポイントのロケーションを示す単一ピクセルの拡大図を示している。
【0162】
図3はまた、単一プリミティブ32の形態のピクセルアレイ30上にオーバーレイされた画像を示している(ここでは、画像は、簡単のために単一プリミティブを含むものとして図3に示されており、実際には、当技術分野において知られているように画像は、多数のオーバーラップしたプリミティブを含むことができ、また一般的に含むことになることが理解されよう)。図3から分かるように、プリミティブ32は、ピクセルアレイ30中の一部のピクセル上には完全に横たわるが、一部の他のピクセルについては単に一部分を通過するだけである。
【0163】
画像のプリミティブ32を処理するために、レンダリングシステムは、本質的に各ピクセルのサンプルポイントの各組におけるサンプルポイントのうちのどれがプリミティブ32によってカバーされるかを決定し、次いでこれらのカバーされるサンプルポイントについてのデータをレンダリングし記憶することになり、そのためにプリミティブ32の画像は、ディスプレイデバイス上で適切に表示することができるようになる。
【0164】
本実施形態におけるこの様式の表示のためのプリミティブ32の画像の処理について、本発明に従って動作させることができる3Dグラフィック処理プラットフォームの一実施形態を概略的に示す図5を参照して次に説明することにする。図5に示される3Dグラフィック処理プラットフォームは、タイルベースのレンダラであるが、当業者によって理解されるように、他のレンダリング構成も使用することができる(また実際に、本発明は、二次元グラフィック処理に対しても同様に適用可能である)。
【0165】
図5に示されるグラフィック処理プラットフォームは、レンダリングするためのグラフィックプリミティブを受け取り、それらのプリミティブをレンダリングするための適切な位置を有するグラフィックフラグメントへとプリミティブデータを変換するラスタライザ50を含んでいる。
【0166】
次いでラスタライザ50からの、レンダリングするためのグラフィックフラグメントを受け取り、テクスチャマッピング、フォギング、ブレンディングなど、いくつかのレンダリング動作をこれらのグラフィックフラグメントに対して適用して、フラグメントの表示のための適切なフラグメントデータを生成する、レンダリングパイプラインの形態のレンダラ51が存在する。レンダラ51からのレンダリングされたフラグメントデータは、後続の処理のためのレンダリングパイプラインのタイルバッファ52に記憶される。
【0167】
タイルバッファ52は、当技術分野において知られているように、表示されるべき画像の一部分を表すフラグメントデータのアレイを記憶する。各タイルが処理された後に、そのデータは、適切なストレージへとエクスポートされ、次いで次のタイルが処理され、全体の画像を表示するために十分なタイルが処理されるまで以下同様となる。
【0168】
本実施形態においては、4つのタイルバッファ52が設けられる。各タイルバッファは、32×32のアレイ(すなわち、表示されるべき画像のサンプル位置の32×32アレイに対応する)にそのフラグメントデータを記憶する。これらのタイルバッファは、個別のバッファとして提供されてもよく、あるいは実際上すべてが同じさらに大きなバッファの一部分であってもよい。これらのタイルバッファは、グラフィック処理プラットフォーム(チップ)上に(に対してローカルに)配置される。
【0169】
タイルバッファ52からのデータは、ダウンサンプリングユニット53に入力され、当技術分野において知られているように、そこからディスプレイデバイス55上で表示するためにディスプレイデバイス55の(グラフィック処理プラットフォームそれ自体の上にはないこともある)フレームバッファ54に出力される。ディスプレイデバイス55は、例えばコンピュータモニタなど、ピクセルのアレイを含むディスプレイを備えることができる。
【0170】
ダウンサンプリングユニット53は、タイルバッファに記憶されるフラグメントデータをディスプレイデバイス55についての適切な分解能へと(すなわち、そのディスプレイデバイスのピクセルに対応するピクセルデータのアレイが生成されるように)ダウンサンプリングする。
【0171】
本実施形態においては、本発明に従って画像のサンプリングポイントは、タイルバッファ52へのそれら自体の個別のフラグメントデータエントリを有する。したがって、32×32のデータ位置の各タイルバッファは、例えば表示されるべき画像中の16×16のピクセルアレイに対応することになり、ここでは(その場合には、各ピクセルは、それに関連する4つのサンプリングポイントを実際上有することになるので)4xダウンサンプリングがタイルバッファとディスプレイフレームバッファとの間で使用される。
【0172】
この実施形態においては、4つのタイルバッファのうちの2つが使用されて、サンプリングポイントごとにカラー(赤色、緑色、青色)値を記憶し(この目的のために1つのタイルバッファを使用することも可能なはずであるが、2つが好ましい)、1つのタイルバッファが使用されて、サンプリングポイントごとにZ(深さ)値を記憶し、1つが使用されて、サンプリングポイントごとにステンシル値を記憶する。他の構成も、もちろん可能なはずである。
【0173】
サンプリングポイントはそれぞれ、タイルバッファ52中にそれら自体の個別のフラグメントデータエントリを有するが、本実施形態においては、この場合にも本発明に従って、タイルバッファ52中の個別のサンプル(データ)位置ごとに(すなわち、個別のサンプルポイントごとに)別個のフラグメントをレンダリングするのでなく、1つのフラグメントが、画像中の所与のピクセルに対応する4つのサンプルポイントの組ごとにレンダリングされる。換言すれば、単一のフラグメントが使用されて、サンプルポイントの組の(またそれに応じて画像中のピクセルの)4つのサンプルポイントすべてを1回で一緒に、すなわち所与のピクセルについてのサンプルポイントがすべて共通にレンダリングされるようにレンダリングする。次いで、フラグメントがレンダリングされた後に、レンダリングされたフラグメントデータが、タイルバッファ52中の適切なサンプル位置における複数のコピーの形で記憶されて、画像の取得された個別のサンプル位置ごとにフラグメントデータの別個の組を提供する。
【0174】
したがって、本実施例においては、図3に示されるプリミティブ32を含む画像を考慮すると、ラスタライザ50は、グラフィック処理システムからそのプリミティブを受け取り、次いで画像のサンプリングポイントのどの組(すなわち、実際にはピクセルアレイ30中のどのピクセル)がプリミティブ32によってカバーされるサンプリングポイントを含んでいるかを決定することになる(これは、当技術分野において知られている適切などのような様式においても実行することができる)。次いで、ラスタライザ50は、プリミティブ32によってカバーされるサンプリングポイントを含むことが見出されたサンプリングポイントの組ごとにフラグメントを生成することになる。次いでラスタライザは、これらのフラグメントをレンダリングするためのレンダラ51に渡すことになる。
【0175】
図7は、そのデータがレンダリングされる前にフラグメントごとに生成され、レンダラ51を通過するデータ70を概略的に示している。図7に示されるように、各フラグメントに関連するデータは、フラグメントについてのカラー(RGB)値、透明度(アルファ)値、深さ(z)値、ステンシル値などの必要なフラグメント当たりデータ72と一緒に、とりわけ((実際には画像中の関連するピクセルの本実施形態における)フラグメントが対応するサンプリングポイントの組の、画像中におけるx、y位置を表す)フラグメントのx、y位置71を含んでいる。このフラグメント当たりデータ72は、当技術分野において知られているように、レンダラ51のレンダリングユニットによって使用され、適切に修正されて、フラグメントについてのフラグメントデータの出力の組を提供し、これは次いでタイルバッファ52に記憶される。
【0176】
フラグメントに関連するデータ70は、フラグメントが対応するサンプルポイントの組の内部のサンプル位置のそれぞれを表すビットアレイの形態のカバレージマスク73も含んでいる。ビットアレイカバレージマスク73中の各位置は、対応するサンプル位置が問題のプリミティブによってカバーされる場合、「1」に設定され、サンプル位置が問題のプリミティブによってカバーされない場合には、「0」に設定される。これにより、レンダリングプロセスは、所与のフラグメントに関連するサンプルポイントのうちのどれが実際に問題のプリミティブ32によってカバーされるかを知ることができるようになり、そのためにレンダリングプロセスは、フラグメントについてのレンダリングされたフラグメントデータが、プリミティブによってカバーされるサンプルポイントについてだけ記憶されるようにすることができる。
【0177】
図3から分かるようにピクセルについてのサンプリングポイントの組のうちの必ずしもすべてのサンプリングポイントがプリミティブによって必ずしもカバーされることになるとは限らないので、これは必要である。例えば、レンダリングされるべきプリミティブ32に関連して図3におけるピクセル33についてのサンプリングポイントの組の拡大図を示す図6中に例示されるように、ピクセル33についてのサンプリングポイントの組のうちでサンプリングポイント43および44は、プリミティブ32によってカバーされるが、サンプリングポイント45および46は、そのプリミティブによってカバーされないことが分かる。したがってラスタライザ50は、サンプル位置の組がプリミティブ32によってカバーされる2つのサンプル位置43、44を含んでいるので、ピクセル33についてのサンプル位置の組についてレンダリングするためのフラグメントを生成することになる。しかし、プリミティブ32は、サンプル位置43、44をカバーするだけなので、レンダリングされたフラグメントデータは、これらのサンプル位置についてのタイルバッファ52に記憶されるだけで、サンプル位置45および46については記憶されないはずである。
【0178】
したがって、図6に示されるピクセル33についてのサンプル位置の組では、ラスタライザは、(図7に示されるような)形式「1100」のカバレージマスク73を生成して、サンプル位置43および44は、フラグメント70によってレンダリングされるが、サンプル位置45および46は、(これらのサンプル位置がプリミティブ32によってカバーされないので)フラグメントによってレンダリングされないことを示すことになる。
【0179】
したがって、ラスタライザ50がレンダリングするためのプリミティブ32を受け取るときに、そのラスタライザは、まずアレイ30のサンプリングポイント(ピクセル)のどの組が、プリミティブ32によってカバーされるサンプリングポイントを含んでいるかを決定し、サンプリングポイントのこれらの組ごとに図7に示される形式のデータをそれに関連付けているフラグメントを生成することになる。
【0180】
次いで各フラグメントは、次にレンダリングするためにレンダラ51に渡されることになる。
【0181】
レンダラ51は、当技術分野において知られているように、そのレンダラが受け取るフラグメント上でレンダリング動作を実行することになる。これらのレンダリング動作は例えば、フラグメントごとに最終のレンダリングされたフラグメントデータを提供するために、フラグメントのカラー(RGB)値および透明度(A)値を修正することを含むことになる。本実施形態においては、レンダラ51は、各フラグメントに関連するテクスチャ位置データ(s, t)に基づいてテクスチャマッピングプロセスを実行するテクスチャマッピングステージを含んでいる(これは図7には示されていない)。
【0182】
本実施形態においては、テクスチャマッピングプロセスがフラグメントに適用されることになるテクスチャ(カラー)を決定するために使用する画像内の位置は、フラグメントが共通にレンダリングするために使用されているカバーされたサンプリングポイントの画像中のロケーション(位置)に従って選択され、すなわち「重み付けされた」テクスチャサンプル位置が使用される。
【0183】
例えば、サンプルカバレージマスクが「1111」の(すなわち、すべてのサンプルポイントがカバーされる)場合、次いでテクスチャサンプルは、(中心がこれらの状況においてそれを取得するための最良の場所になるので)サンプルパターンの中心から取得される。同様に、サンプルカバレージマスクが「1000」の場合には、次いでテクスチャサンプルを取得するための最良の場所は、単一のカバーされたサンプリングポイントに対応する、画像中の位置になるはずであり、以下同様である。
【0184】
本実施形態におけるように各フラグメントは、4つの可能なサンプル位置に関連付けられ(各フラグメントに関連するサンプルカバレージマスク中には4ビットが存在する)、したがって(各フラグメントに関連付けることができるカバレージマスクの16個の可能な組合せに対応する)16個の好ましい(重み付けされた)テクスチャサンプリング位置が存在する。
【0185】
これらの好ましいテクスチャサンプル位置は、それらの各対応するサンプルカバレージマスクに関連した(16エントリの)テーブルに記憶される。次いでテクスチャマッピングステージは、これらのテーブルを使用してフラグメントに関連するカバレージマスクに基づいて所与の任意のフラグメントについてのテクスチャサンプルをどこで取得するべきかをルックアップし決定する。
【0186】
他のテクスチャサンプル位置構成も、もちろん可能なはずである。例えば、テクスチャサンプルの位置は、ルックアップテーブルから取り出される代わりに使用に際して計算することもできる。例えばフラグメント当たりに4つより多いサンプリングポイントが可能な場合には、これは望ましく、また実際に必要なこともある。
【0187】
同様に、あまり高度でないテクスチャサンプリングプロセスを必要に応じて使用することもできる。例えば、すべてのテクスチャルックアップは、単に問題のサンプリングパターンの中心で取得することもできる。
【0188】
ここで、各フラグメントは、単一のテクスチャルックアップを受けるので、各フラグメントが対応するサンプリングポイントの組は、共通に単一のテクスチャルックアップを受け(すなわち、テクスチャ化する動作は、そのフラグメントに関連するサンプリングポイントの組のすべてのサンプルポイントについて使用され)、すなわちサンプリングポイントの組は、マルチサンプリングされるように効果的に処理されることが理解されよう。
【0189】
フラグメントがレンダリングされた後に、フラグメントのデータはタイルバッファ52に適切に記憶される必要がある。本実施形態によれば、レンダリングされたフラグメントごとのデータは、各フラグメントに関連するカバレージマスク73によって示されるようなタイルバッファアレイ中の1つ(または複数)の適切なサンプル位置に記憶される。したがって、図7に例示されるフラグメント70の場合には、例えばそのフラグメントについてレンダリングされたデータは、タイルバッファ52中の2つのサンプル位置に記憶されるが、フラグメント70に関連付けられる他の2つのサンプル位置には記憶されないことになる。
【0190】
タイルバッファ52に記憶されるフラグメントデータは、前述のようにサンプル位置ごとにカラー(RGB)値、透明度(A)値、深さ(Z)値、およびステンシル値を含んでいる。このデータは、適切な任意の形式で記憶することができる。
【0191】
当業者によって理解されるように、タイルバッファに記憶されるべき新しくレンダリングされたフラグメントデータは、当技術分野において知られているように、タイルバッファ中にすでに記憶されているデータとブレンドすることができ、また一般的にはブレンドされる必要があることになる。したがって、所与のフラグメントが使用されて、(すなわち、フラグメントからのデータが、タイルバッファ中における複数のサンプル位置に記憶されることになるように)複数のサンプル位置を共通にレンダリングする場合には、次いでこのブレンディング動作は、これを達成するように、すなわちタイルバッファ中の適切な各サンプル位置に新しくレンダリングされたフラグメントデータを適切にブレンドするように適切な方法で実行されるべきである。したがって、例えばブレンディング動作は、例えば適切な「並列の」様式で実行して複数の並列なタイルバッファにレンダリングされたフラグメントデータをブレンドすることができる。
【0192】
このプロセスが、プリミティブ32に関連したすべてのフラグメントについて完了された後に、次いでこのプロセスは、(前述のように、画像が一般的に複数のプリミティブから構成されることになり、単なる単一のプリミティブ32ではないので)画像の後続のプリミティブについて、反復することができる。このプロセスは、タイルバッファ52が、それらのサンプル位置のそれぞれに適切なデータを記憶するまですべての画像のプリミティブについて反復される。
【0193】
次いでタイルバッファに記憶されたデータは、当技術分野において知られているようにダウンサンプリングするためのダウンサンプリングユニット53にエクスポートすることができ、その後にディスプレイのためのフレームバッファ54にエクスポートされる。このダウンサンプリングは、適切な任意の方法で行うことができる。本実施形態においては、データの線形ブレンディングが使用されて、データをダウンサンプリングする。しかし、他の構成も必要に応じて可能となるはずである。
【0194】
表示されるべき画像が、複数のオーバーラップしているプリミティブを含む場合には、当技術分野において知られているように、レンダリングプロセスは、実際上は所与の任意のプリミティブが、所与のサンプリングポイントにおいて実際に見られることになるかどうかを決定することがまた必要になる。本実施形態においては、当技術分野において知られているように、これは、それらがレンダリングされるときにフラグメントについての深さ(z)値を比較することによって実行される。特に、新しいフラグメントがレンダリングされるべきときに、そのフラグメントに関連する深さ(z)値は、フラグメントが対応する、タイルバッファ52中のサンプル位置についてすでに記憶されているフラグメントデータの深さ値と比較され、またその比較が新しいフラグメントが見られないことになることを示す場合、その新しいフラグメントは、これ以上は処理されない。他方、深さ値の比較が、実際上は新しいフラグメントが、タイルバッファ52中の現在記憶されているフラグメントの代わりに見られることになることを示す場合には、次いで新しいフラグメントはレンダリングされ、そのレンダリングされたフラグメントデータは、タイルバッファ52中の適切なサンプル位置についての既存のデータの代わりに記憶される。
【0195】
本実施形態においては、ダウンサンプリングユニット53は、それが2つの異なるダウンサンプリングのレベルをタイルバッファ52に記憶されるデータに対して選択的に適用することができるように、構成される。
【0196】
特に、ダウンサンプリングユニットは、まず4倍のダウンサンプリング動作を、すなわちタイルバッファ52に記憶される4つのデータエントリのアレイ(すなわち、2×2のサンプル位置)が、フレームバッファ54についての単一の出力データ値へとダウンサンプリングされることになるように実現することができる。この構成が、4つのサンプル値を取得し、図3に示されるような画像中のピクセルごとに取得される4つのサンプルに対応する単一の値へとそれらの4つのサンプル値をダウンサンプリングするはずであるので、この構成は、ダウンサンプリングユニット53についての通常動作モードとなるはずである。この構成においては、32×32アレイのタイルバッファ52は、フレームバッファ54中の16×16ピクセルアレイへとダウンサンプリングされる(またそれに対応する)はずである。
【0197】
しかし、ダウンサンプリングユニット53はまた、追加の4xダウンサンプリング動作を選択的に適用することもでき、したがってこの4xダウンサンプリング動作は、画像の位置サンプルについての16xダウンサンプリング構成を(すなわち、タイルバッファ52中の8×8サンプル位置のアレイが、フレームバッファ54についての単一値に組み合わせられることになるように)効果的に実現するはずである。この効果は、(前述のように、本実施形態においては、単一のテクスチャサンプルが4つの位置サンプルごとに(すなわち、4つのサンプリングポイントの組ごとに)取得されるので)4xテクスチャ(カラー)サンプリングと一緒に、(図3に示される元の画像中の16個のサンプリングされた位置が、単一値にダウンサンプリングされるはずなので)事実上は、16x位置(エッジ)サンプリングが存在し得ることである。
【0198】
図8は、これを例示しており、また16x構成において出力するための単一値へとダウンサンプリングされるはずの4つのサンプリングポイント81の4つの組をそれぞれ示している。図8はまた、プロセスの一部分として取得され、また単一カラー値へとダウンサンプリングされるはずの4つのカラー(テクスチャ)サンプル82のロケーションを示している。
【0199】
この構成においては、32×32アレイのタイルバッファは、フレームバッファ54中の8×8ピクセルアレイへとダウンサンプリングされる(また、それに対応する)はずである。
【0200】
本実施形態においては、ダウンサンプリングのレベルは、フレームごとに基づいて設定され、レンダリングプロセスがレンダリングするためのフレームを受け取るときにレンダリングプロセスがルックアップすることができる適切なレジスタに記憶される。
【0201】
図8に示される構成は、これらのサンプルの個別の各組において、位置サンプル81についての同じサンプリングパターンと、カラーサンプル82についての同じ位置を使用している。これは、一部のサンプルが画像中において同じx座標またはy座標を有することになるので、ダウンサンプリング動作は、事実上順序付けされた格子構成であることを意味する。当技術分野において知られているように、これは、実行されるダウンサンプリングの有効レベルを低減させることになる。
【0202】
したがって、この構成においては、組み合わせられて最終出力値となるサンプルの4つの組の各々における位置およびカラーサンプリング位置が、それらのx、y座標間のように互いに対してわずかに変化し、実際には16個の固有の位置サンプルと4個の固有のカラーサンプルとが取得されるようになることが好ましい。これは、最終的に最終の出力データ値へとダウンサンプリングされることになるサンプルの4つの組について各サンプルの位置をわずかだけシフトすることにより達成されることが好ましい。これは、サンプル位置の組のすべてについてサンプル位置の基本の組を設定し、次いでサンプルの組のうちの3つについて、組ごとに異なる方向に所与の量だけその基本の組の位置を相対的にシフトすることにより、行われることが好ましい。図9は、位置サンプル81の組に関してこれを示している。図9中の矢印91は、データが16xダウンサンプリングされるときに最終的に組み合わせられることになるサンプル(本実施形態においてはピクセル)の異なる組ごとにサンプル位置の相対的シフトの方向を示している。
【0203】
そのような構成は、使用される各サンプルが、固有のx座標およびy座標を有することになるように保証することになる。(このタイプの構成は、追加のダウンサンプリングのレベル(すなわち16xダウンサンプリング)がダウンサンプリングユニット53においてイネーブルにされるときだけに、イネーブルされることが好ましい。)
【0204】
ダウンサンプリングユニット53はまた、そのダウンサンプリングユニットがフレームバッファ54へと出力するデータに適切なガンマ補正を適用する。
【0205】
上記実施形態の動作は、単一フラグメントを使用してサンプリングポイントの各組をレンダリングする場合について説明されているが、好ましい一実施形態においては、ラスタライザおよびレンダリングプロセスが、必要に応じてサンプリングポイントの組ごとにレンダリングするための複数のフラグメントを生成しレンダリングすることが可能である。特に、プリミティブが、所与のフラグメントが対応するサンプリングポイントの組における複数のサンプリングポイントをカバーする場合には、レンダリングするための複数のフラグメントを生成するようにレンダリングプロセスを構成することが可能であることが好ましい。
【0206】
したがって好ましい別の実施形態においては、ラスタライザは、プリミティブが、フラグメントについてのサンプリングポイントの組の中の複数のサンプリングポイントをカバーするかどうかを決定し、プリミティブがカバーする場合、プリミティブによってカバーされるサンプリングポイントの組におけるサンプリングポイントごとにレンダリングするための(個別の)フラグメントを生成することができ(また生成することが好ましい)。生成されるフラグメントは、次いで異なるフラグメントが使用されて、例えば各カバーされたサンプリングポイントをレンダリングすることになるように(それらのカバレージマスク73を適切に設定することにより)サンプリングポイントの組の中の異なるサンプリングポイントに関連付けられることが好ましい。
【0207】
これは、プリミティブによってカバーされるサンプリングポイントについて追加のテクスチャルックアップ(カラーサンプル)を生成する効果、すなわち実際上、単一のカラーサンプルが使用されて、サンプリングポイントの組のうちのカバーされたサンプリングポイントを共通にレンダリングするのでなく、(複数のフラグメントが、サンプリングポイントの組についてレンダリングされることになるので)複数のカラーサンプルが使用されることになるように生成する効果を有する。これにより、レンダリングプロセスは、もっとスーパーサンプリングされるように動作することができるようになる。
【0208】
図10は、このプロセスを示している。図10には、生成されている例示のフラグメント92が示されており、そのフラグメントについては、フラグメントが対応する4つのサンプリングポイントの組のうちの3つのサンプリングポイントが、問題のプリミティブによってカバーされることが決定されている。したがって、フラグメント92についてのカバレージマスク93は、図10に示されるような形式「1101」を有する。
【0209】
本発明のこの実施形態によれば、次いでこのシステムは、図10に示されるように、(フラグメント92が対応するサンプリングポイントのうちの3つがプリミティブによってカバーされるので)フラグメント92に対応する3つのフラグメント94、95、96を生成するように進み、そのような各フラグメントは、フラグメント92と同じ基本フラグメントデータ(すなわち、少なくとも初期カラー(赤色、緑色、青色)データおよび深さ(z)データ)を有するが、各フラグメントのカバレージマスク97、98、および99は、各フラグメントが、事実上、単一のカバーされるサンプリングポイントだけに対応するものとして示されるように設定される。次いで、3つのフラグメント94、95および96が、順にそれぞれレンダリングされることになり、それらのレンダリングされたデータは、そのカバレージマスクによって示されるように各フラグメントが対応するサンプリング位置について記憶される。
【0210】
このようにして、単一フラグメント92が使用されて、プリミティブによってカバーされるすべての3つのサンプリングポイントをレンダリングするのではなく、3つの異なるフラグメントが使用されて、これらのサンプリングポイントをレンダリングし、それ故にレンダリングされたフラグメントデータの3つの異なる組が、タイルバッファ52に3つのサンプリングポイントについて記憶されることになる。したがって、レンダリングプロセスは、事実上スーパーサンプリングされることとして考えることができる。
【0211】
したがってこの構成により、レンダリングプロセスは、より多くスーパーサンプリングされるように動作させることができるようになるが、レンダリング構成に対する変更はグラフィックプロセッサそれ自体によって実行されるので、例えばグラフィックプロセッサを制御しているドライバまたはアプリケーションソフトウェアによるこの動作についてのどのような知識も必要としてはいない。
【0212】
そのような「スーパーサンプリング」動作は、当技術分野において知られているように、いわゆるアルファテクスチャについてのグラフィックスについて特に有用とすることができる。
【0213】
図11は、以上の実施形態に従って動作することができるグラフィック処理プラットフォームについての一構成を概略的に示している。図11から分かるように、図11に示されるグラフィック処理プラットフォームは、図5に示されるグラフィック処理プラットフォームと同様な構造であり、また同様な構成要素を有し、それに応じて同様な参照番号が同様な構成要素について使用されている。同様に、図11のグラフィック処理プラットフォームは、別に述べられていない限り、本出願の図5および残りの図に関連して前述されたグラフィック処理プラットフォームと同様に動作する。
【0214】
したがって、図11に示されるグラフィック処理プラットフォームは、問題のプリミティブによってカバーされるサンプリングポイントを含むことが見出された、画像のサンプリングポイントの組ごとにフラグメント100を生成するラスタライザ50を含んでいる。しかし、図11に示されるように、この場合には前述のようにしてアクティブにされるときに所与のプリミティブによってカバーされる複数のサンプリングポイントを含むことが見出されたサンプリングポイントの組について複数のフラグメント102を生成することになる追加のフラグメントジェネレータステージ101が存在する。
【0215】
図11中の経路105によって示されるように、フラグメントジェネレータステージ101は、必要に応じて(すなわち、サンプリングポイントの組が、単一フラグメント100を使用してレンダリングされることになるように)バイパスすることができることに留意されたい。フラグメントジェネレータステージ101についてそのようにバイパスすることは、使用に際して、必要に応じて好ましくはフラグメントごと、プリミティブごと、タイルごと、および/またはシーンごとに基づいて、あるいはこれらの所望の任意の組合せについて、選択的にアクティブにし、設定する(またはしない)ことができることが好ましい。これにより、フラグメントジェネレータステージ101は、例えば所与のプリミティブまたはフラグメントなどについて、使用に際して選択的にアクティブに(またそれによってレンダラは、サンプリングポイントの所与の組について複数のフラグメントを生成し、または生成しないように動作させるように構成可能にすることができるように)することができる。
【0216】
フラグメントジェネレータ101がバイパスされる場合、次いでフラグメント100は、図11中の経路105によって示されるように、レンダリングするためにレンダリングおよびテクスチャのユニット51へと単に直接に送られる。
【0217】
フラグメントジェネレータ101がバイパスされるべきか否かは、シーンおよび/またはプリミティブについてのレンダリング状態の一部分として設定されることが好ましいが、他の構成も、もちろん可能なはずである。
【0218】
フラグメントジェネレータ101がバイパスされるべきでなく、アクティブにされる(すなわち、レンダリングプロセス(パイプライン)に含まれる)場合には、次いでフラグメントジェネレータは、その入力としてラスタライザ50によって生成されたフラグメント100を取得することになる。次いでフラグメントジェネレータ101は、フラグメント100に関連するカバレージマスクを解析して、フラグメント100がどれだけ多数のカバーされたサンプリングポイントに対応するかを決定する。
【0219】
フラグメントジェネレータ101が、フラグメント100が単一のカバーされるサンプリングポイントだけに対応することを決定する場合、単一のフラグメント100は、フラグメント100が対応する単一のカバーされるサンプリングポイントをレンダリングするのに十分であることになるので、フラグメントジェネレータは、不変の形式で(すなわち、フラグメント100のどのような処理なども実行せずに)レンダリングするためのレンダリングユニット51の残りにフラグメント100を単に渡す。(代わりに、例えばフラグメントジェネレータ101が、実際にフラグメント100の二重のコピーを生成し、必要に応じてそのコピーをレンダリングするために送ることが可能であるはずである。)
【0220】
他方、フラグメントジェネレータ101が、フラグメント100が複数のカバーされるサンプリングポイントに対応する(すなわち、フラグメント100に関連する情報、すなわちカバレージマスクが、フラグメント100が使用されて、複数のサンプル位置を共通にレンダリングすることを示す)ことを決定する場合には、次いでフラグメントジェネレータ101は、図10を参照して前述されるようにフラグメント102の新しい組を生成して、フラグメント100が対応するカバーされるサンプリングポイントごとに(また各サンプリングポイントに対応して)レンダリングについての1つの新しいフラグメントを提供する。換言すれば、カバーされるサンプリングポイントごとに1つのフラグメントを含むフラグメント102の新しい組が、フラグメントジェネレータ101によって生成され、レンダリングするために送られる。
【0221】
図10に関連して前述したように、新しいフラグメントの組102中のフラグメントはそれぞれ、フラグメント100と同じ基本フラグメントデータを有するが、それぞれは、各フラグメントがそれについてレンダリングされている個別のサンプリング位置を示す、新しい(また異なる)カバレージマスクを有する。
【0222】
図11は、フラグメントジェネレータ101によって生成される4つのフラグメントを含むフラグメントの新しい組102を示している。これは、フラグメント100が4つのカバーされるサンプリング位置に対応する場合になるはずである。フラグメント100が、3つのカバーされたサンプリングポイントだけに対応する場合には、フラグメントジェネレータ101は、3つのフラグメントの新しい組102を(カバーされるサンプリング位置ごとに1つ)生成するはずであり、以下同様である。
【0223】
フラグメントジェネレータ101によって発行される1つまたは複数のフラグメント(すなわち、ラスタライザ50によって生成される単一のフラグメント100、またはフラグメントジェネレータ101によって生成される複数のフラグメント102)は、以前のように(また、前述のようにフラグメントジェネレータ101が使用されておらず、バイパスされるときに該当する場合のように)また当技術分野において知られているように、フラグメントジェネレータ101により、レンダリングするためにレンダリングおよびテクスチャのユニット51へと渡される。
【0224】
諸フラグメントが、レンダリングおよびテクスチャのユニット51によって処理された後に、レンダリングされたフラグメントデータは、以前のように4つの並列なタイルバッファ52に記憶される。これに関して、図11は、レンダリングプロセスのブレンディングステージ103を明示的に示しており、そのブレンディングステージは、この実施形態において、1つのブレンダが各タイルバッファ52に対応している4つのブレンダ103を並列に使用することにより実行される。この場合には、レンダリングおよびテクスチャのユニット51を離れるレンダリングされたフラグメントについてのデータは、データが記憶されるべき1つまたは複数のタイルバッファ52に対応する1つまたは複数のブレンダ103へと必要に応じて送られる。他の構成も、もちろん可能であるはずである。
【0225】
タイルバッファ52に記憶されるデータは、次いでこの場合にも以前と同じようにダウンサンプリングユニット53によってダウンサンプリングされ、ディスプレイのためのフレームバッファ54へと渡される。図11において、ダウンサンプリングユニット53は、前述のように2つのステージを含むように示され、データは、第1のダウンサンプリングステージの後、または第2のダウンサンプリングステージの後に(すなわち、前述のように2つのダウンサンプリング動作が実行されることになるように)出力されることが可能である。
【0226】
本発明の、また本発明の好ましい実施形態のレンダリングプロセスの動作に対する他の変形形態も可能である。例えば、サンプリングポイントの各組におけるサンプルポイントの数は、変化させることができる。特にサンプリングポイントの組をこれらの組が単一のサンプリングポイントだけを含むように設定することが可能なはずである。その場合には、すなわち実行されているアンチエイリアシングが事実上存在しなかったように、各フラグメントが有効に使用されて画像中の単一のピクセルをレンダリングするはずである。(この場合には、フラグメントについてのカバレージマスクは、(すなわち、すべてのサンプルが「カバーされ」、例えばテクスチャルックアップが、前述のようにサンプリングパターン(例えば、ピクセル)の中央における単一のサンプルポイントにおいて行われるように)例えば「1111」に設定されるはずである)。次いでレンダリングされたフラグメントデータは、(例えば、フラグメントが対応するピクセルについての)カバレージマスクサンプル位置に対応する、タイルバッファ52中のすべての4つのサンプリング位置に記憶されるはずであり、そのためにこれらのサンプル位置について記憶されるデータがダウンサンプリングユニット53によってダウンサンプリングされるときに、その同じデータ値が出力されるようになる。
【0227】
好ましい一実施形態においては、レンダリングプロセスの以上の可能な代替動作は、例えばその代替動作が、マルチサンプリングされるように、スーパーサンプリングされるように、またはアンチエイリアシングされないように動作するかに関係なく、プリミティブがレンダリングされるときにプリミティブごとに設定されるレンダリング状態の一部分として設定される。(当技術分野において知られているように、所与のプリミティブについてのレンダリング状態は、問題のプリミティブをレンダリングするためにそのレンダリングプロセスを適切なセットアップへと構成するために有効に情報を提供する。したがって、使用されるべきアンチエイリアシングモードは、残りのレンダリング状態条件と同様な方法で、プリミティブについてのレンダリング状態の一部分として便利に設定することができる。)
【0228】
本発明は、少なくともその好ましい実施形態において、各フラグメントのレンダリングが画像の複数の位置サンプルを並列に有効に処理することができるが、レンダリングされたフラグメントデータは、別個のカラー値がサンプル位置当たりに記憶されるように記憶されるレンダリング構成を提供することが、以上から分かる。
【0229】
さらに、本構成は、例えばプリミティブごとに基づいて同じフレーム中においていくつかの異なるアンチエイリアシング技法を使用するように動作させることもできる。特に、プリミティブは、事実上選択的に有効にスーパーサンプリングされ、またはマルチサンプリングされるようにすることができ、ダウンサンプリングの量は、使用に際して選択することもできる。したがって、本発明は、所与の任意の画像または画像の一部分についての特定の要件に合わせることができる特に柔軟なレンダリングおよびアンチエイリアシングの構成を実現する。
【0230】
本発明は、少なくともその好ましい実施形態において、4xと16xの両方のフルシーンのアンチエイリアシングを提供することができる。さらに、4xフルシーンアンチエイリアシングは、どのような性能、電力または帯域幅のペナルティもなしに実行することができる。これは、モバイル電話や携帯型個人情報端末(PDA)など、ポータブルデバイスおよびハンドヘルドデバイス中において使用するために本発明のプロセッサを特に適したものにする。
【符号の説明】
【0231】
30 ピクセルのアレイ
31 サンプリングポイント
32 プリミティブ
33 ピクセル
43、44、45、46 サンプリングポイント、サンプル位置
50 ラスタライザ
51 レンダラ、レンダリングおよびテクスチャのユニット、レンダリングユニット
52 タイルバッファ
53 ダウンサンプリングユニット
54 フレームバッファ
55 ディスプレイデバイス
70 データ、フラグメント
71 x、y位置
72 フラグメントデータ
73 カバレージマスク
81 サンプリングポイント、位置サンプル
82 カラー(テクスチャ)サンプル
91 矢印
92、94、95、96 フラグメント
93、97、98、99 カバレージマスク
100 フラグメント
101 フラグメントジェネレータステージ、フラグメントジェネレータ
102 複数のフラグメント、フラグメントの組
103 ブレンディングステージ、ブレンダ
105 経路

【特許請求の範囲】
【請求項1】
複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理する方法であって、
前記画像を表すグラフィックフラグメントをレンダリングして、前記フラグメントについてのフラグメントデータを生成するステップと、
前記レンダリングされたフラグメントデータのアレイを格納するステップと、
前記格納されたフラグメントデータをダウンサンプリングして、前記ディスプレイデバイス上で前記画像を表示するためのピクセルデータのアレイを提供するステップと、
を含み、
前記ダウンサンプリングのレベルは、変化させることが可能であり、
前記レンダリングされたフラグメントデータ上で使用されるべき前記ダウンサンプリングのレベルを選択するステップをさらに含むことを特徴とする方法。
【請求項2】
2つの逐次的なダウンサンプリングステージが設けられ、それらのステージのうちの一方または両方をアクティブにすることを特徴とする請求項1に記載の方法。
【請求項3】
前記ダウンダンプリングの第1レベルは、常にアクティブにされており、
前記ダウンダンプリングの第2レベルは、選択的に適用可能であることを特徴とする請求項2に記載の方法。
【請求項4】
各ダウンダンプリングステージは、その入力データを同じ量だけダウンサンプリングすることを特徴とする請求項2または請求項3に記載の方法。
【請求項5】
各逐次的なダウンサンプリングステージは、4のファクタだけダウンサンプリングすることを特徴とする請求項1から請求項3のいずれか一項に記載の方法。
【請求項6】
前記ダウンサンプリングのレベルは、フレームごとに設定し、選択することができることを特徴とする請求項1から請求項5のいずれか一項に記載の方法。
【請求項7】
前記格納されたフラグメントデータのピクセルデータへの前記ダウンサンプリングするステップは、そのデータが前記ディスプレイデバイスについてのフレームバッファに対してエクスポートされることに先立ってグラフィック処理プラットフォーム上で実施されることを特徴とする請求項1から請求項6のいずれか一項に記載の方法。
【請求項8】
前記フラグメントをレンダリングするために使用されるべきサンプリングおよび/またはアンチエイリアシングのモードにレンダリングされるべき各フラグメントを関連付けるステップと、
レンダリングユニットが、そのレンダリングユニットがレンダリングされるべきフラグメントを受け取るときに、そのフラグメントに関連する前記サンプリングおよび/またはアンチエイリアシングのモードを決定し、前記決定されたサンプリングおよび/またはアンチエイリアシングのモードに従って構成され、前記受け取られたフラグメント上でそのレンダリング動作を実行するステップと、
を含むことを特徴とする請求項1から請求項7のいずれか一項に記載の方法。
【請求項9】
複数のピクセルを備えるディスプレイデバイス上で表示するための画像を処理するための装置であって、
前記画像を表すグラフィックフラグメントをレンダリングして、前記フラグメントについてのフラグメントデータを生成する手段と、
前記レンダリングされたフラグメントデータのアレイを格納する手段と、
前記格納されたフラグメントデータをダウンサンプリングして、前記ディスプレイデバイス上で前記画像を表示するためのピクセルデータのアレイを提供する手段と、
を具備し、
前記ダウンサンプリングのレベルは、変化させることが可能であり、
前記レンダリングされたフラグメントデータ上で使用されるべき前記ダウンサンプリングのレベルを選択する手段をさらに備えることを特徴とする装置。
【請求項10】
2つの逐次的なダウンサンプリングステージが設けられ、それらのステージのうちの一方または両方をアクティブにすることを特徴とする請求項9に記載の装置。
【請求項11】
前記ダウンダンプリングの第1レベルは、常にアクティブにされており、
前記ダウンダンプリングの第2レベルは、選択的に適用可能であることを特徴とする請求項10に記載の装置。
【請求項12】
各ダウンダンプリングステージは、その入力データを同じ量だけダウンサンプリングすることを特徴とする請求項10または請求項11に記載の装置。
【請求項13】
各逐次的なダウンサンプリングステージは、4のファクタだけダウンサンプリングすることを特徴とする請求項10から請求項12のいずれか一項に記載の装置。
【請求項14】
前記ダウンサンプリングのレベルは、フレームごとに設定し、選択することができることを特徴とする請求項9から請求項13のいずれか一項に記載の装置。
【請求項15】
前記ダウンサンプリングされたフラグメントデータを表示のためのフレームバッファにエクスポートする手段を備えることを特徴とする請求項9から請求項14のいずれか一項に記載の装置。
【請求項16】
前記フラグメントをレンダリングするために使用されるべきサンプリングおよび/またはアンチエイリアシングのモードにレンダリングされるべき各フラグメントを関連付ける手段と、
レンダリングユニットがレンダリングされるべきフラグメントを受け取るときに、そのフラグメントに関連する前記サンプリングおよび/またはアンチエイリアシングのモードを決定する手段、前記決定されたサンプリングおよび/またはアンチエイリアシングのモードに従って前記レンダリングユニットを構成する手段、前記受け取られたフラグメント上でレンダリング動作を実行する手段、を備える1つまたは複数のレンダリングユニットと、
を備えることを特徴とする請求項9から請求項15のいずれか一項に記載の装置。
【請求項17】
請求項9から請求項16のいずれか一項に記載の装置を含むことを特徴とする3Dグラフィックプロセッサまたは3Dグラフィック処理プラットフォーム。
【請求項18】
プログラムエレメントがデータ処理手段上で実行されるときに請求項1から請求項8のいずれか一項に記載の方法を実施するためのコンピュータソフトウェアコード部分を含むことを特徴とするコンピュータプログラムエレメント。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−227933(P2011−227933A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2011−177570(P2011−177570)
【出願日】平成23年8月15日(2011.8.15)
【分割の表示】特願2007−542124(P2007−542124)の分割
【原出願日】平成17年11月29日(2005.11.29)
【出願人】(506403167)
【Fターム(参考)】