JP2002537614A - 並列のサンプル・ピクセル計算を実行するように構成されたグラフィックス・システム - Google Patents

並列のサンプル・ピクセル計算を実行するように構成されたグラフィックス・システム

Info

Publication number
JP2002537614A
JP2002537614A JP2000600241A JP2000600241A JP2002537614A JP 2002537614 A JP2002537614 A JP 2002537614A JP 2000600241 A JP2000600241 A JP 2000600241A JP 2000600241 A JP2000600241 A JP 2000600241A JP 2002537614 A JP2002537614 A JP 2002537614A
Authority
JP
Japan
Prior art keywords
sample
samples
pixel
graphics
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000600241A
Other languages
English (en)
Inventor
ディアリング,マイケル,エフ.
ネイグル,ナサニエル,ディヴィッド
ネルソン,スコット,アール.
Original Assignee
サン マイクロシステムズ,インコーポレイティッド
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
Priority claimed from US09/251,844 external-priority patent/US6466206B1/en
Application filed by サン マイクロシステムズ,インコーポレイティッド filed Critical サン マイクロシステムズ,インコーポレイティッド
Publication of JP2002537614A publication Critical patent/JP2002537614A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

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

Abstract

(57)【要約】 サンプル・バッファ(162)及び複数の並列サンプル・ピクセル計算ユニット(170)を使用するように構成され、サンプル・ピクセル計算ユニットが、サンプル・バッファの異なった部分を並列にアクセスするように構成されたグラフィックス・システム。グラフィックス・システムはプロセッサ(352)、サンプル・バッファ(162)、及び複数のサンプル・ピクセル計算ユニット(170、360)を含んでよい。プロセッサは、グラフィックス・データのセットを受け取り、グラフィックス・データに基づいてサンプルをレンダリングするように構成される。サンプル・バッファは、サンプルを記憶するように構成される。サンプル・ピクセル計算ユニットは、サンプル・バッファからサンプルを読み出してフィルタし、出力ピクセルを作り出すように構成される。サンプル・ピクセル計算ユニットの各々は、画像の異なった領域に対応するピクセルを生成するように構成される。領域は、画像の垂直又は水平ストライプ、又は画像の長方形部分であってよい。領域は、視覚収差を防止するためオーバラップしてよい。

Description

【発明の詳細な説明】
【0001】 (技術分野) 本発明は、一般的にはコンピュータ・グラフィックスの分野に関し、更に具体
的には、高パフォーマンス・グラフィックス・システムに関する。
【0002】 (背景技術) コンピュータ・システムは、典型的には、そのグラフィックス・システムに依
存してコンピュータ・スクリーン又はディスプレイ装置の上に可視出力を作り出
す。初期のグラフィックス・システムは、プロセッサが出力として作り出したも
のを受け取って、それをスクリーン上に表示する責任を有するだけであった。要
するに、それらは、単純な中継器又はインタフェースとして働いた。しかし、現
代のグラフィックス・システムは、大きな処理パワーを有するグラフィックス・
プロセッサを組み込んでいる。今や、それらは単純な中継器というよりもコプロ
セッサに近い働きをする。この変化は、ディスプレイ装置へ送られるデータの複
雑性及び量が最近増大しているためである。例えば、現代のコンピュータ・ディ
スプレイは、増加したピクセル、増大したカラー深度を有して、初期のモデルよ
りも高いリフレッシュ・レートで、より複雑な画像を表示することができる。同
様に、表示される画像は、今や、より複雑であり、先進的な手法、例えばアンチ
エイリアシング及びテクスチャ・マッピングを含むことができる。
【0003】 その結果、グラフィックス・システムに、かなりの処理パワーがないと、CP
Uは多くの時間を消費して、グラフィックス計算を実行することになる。これは
、プログラム実行に関連した他のタスクを実行するために必要な処理パワーをコ
ンピュータ・システムから奪い、それによって全体的システム・パフォーマンス
を劇的に低下させる可能性がある。しかし、強力なグラフィックス・システムを
備えていれば、CPUがスクリーン上でボックスを描くように命令されたとき、
CPUは、各々のピクセルの位置及びカラーを計算する必要性から解放される。
その代わりに、CPUは、「これらの座標でボックスを描け」と命令するリクエ
ストをビデオ・カードへ送ってよい。すると、グラフィックス・システムは、ボ
ックスを描き、他のタスクを実行するようにプロセッサを解放する。
【0004】 一般的に、コンピュータ内のグラフィックス・システム(グラフィックス・シ
ステムとも呼ばれる)は、パフォーマンス・レベルを上げるため自分自身のプロ
セッサを含む一種のビデオ・アダプタである。これらのプロセッサは、図形変換
を計算するように専門化されている。従って、それらはコンピュータ・システム
によって使用される汎用CPUよりも良好な結果を達成する傾向がある。更に、
それらは、他のコマンドを実行するようにコンピュータのCPUを解放し、その
一方で、グラフィックス・システムがグラフィックス計算を処理する。グラフィ
カル・アプリケーション、特にマルチメディア・アプリケーションの人気は、高
パフォーマンス・グラフィックス・システムを、コンピュータ・システムの普通
の特徴にしてしまった。大部分のコンピュータ製造業者は、今や、それらのシス
テムに高パフォーマンス・グラフィックス・システムをバンドルしている。
【0005】 グラフィックス・システムは、典型的には、機能の制限されたセットのみを実
行するから、それらはカスタマイズされてよく、従って、グラフィックス演算に
おいて、コンピュータの汎用中央プロセッサよりも、はるかに効率的である。初
期のグラフィックス・システムは、2次元(2D)グラフィックスを実行するよ
うに制限されていたが、それらの機能は、3次元(3D)ワイヤフレーム・グラ
フィックス、3D立体をサポートするように増大し、今やテクスチャ及び特殊効
果、例えば先進シェーディング、フォギング、アルファ・ブレンディング、及び
スペキュラ・ハイライティングを有する3次元(3D)グラフィックスに対する
サポートを含む。
【0006】 3Dグラフィックス・システムの処理パワーは、驚くべき速さで改善されてき
た。数年前には、簡素なオブジェクトの陰影付き画像は、1秒に数フレームだけ
のレンダリングが可能であったが、今日のシステムは、複雑なオブジェクトのレ
ンダリングを60Hz以上でサポートする。この増加率では、それほど遠くない
将来、グラフィックス・システムは、単一人間の視覚系が知覚できる以上のピク
セルを、実際にレンダリングすることができるであろう。この過剰なパフォーマ
ンスは、多数観察者の環境で使用可能性を発揮するが、もっと普通の、主として
単一観察者の環境では、無駄になってしまうであろう。従って、人間の解像度シ
ステムの可変的性質と調和することのできる(即ち、必要な場所又は最も知覚可
能な場所で品質を表示できる)グラフィックス・システムが望まれる。
【0007】 ピクセル数は、グラフィックス・システムのパフォーマンスを決定する場合の
重要なファクタであるが、同じくらいに重要な他のファクタは、画像の品質であ
る。例えば、高いピクセル密度を有する画像は、画像内のエッジが、あまりに鋭
いかギザギザを有する場合(「エイリアス」とも呼ばれる)、非現実的に見える
であろう。これらの問題を克服する1つの周知の手法は、アンチエイリアシング
である。アンチエイリアシングは、図形要素の境界に沿ってピクセルをシェーデ
ィングすることによって、オブジェクトのエッジを滑らかにすることを含む。更
に具体的には、アンチエイリアシングは、頻度の高い成分が妨害可視アーチファ
クトを生じる前に、それらの成分を画像から除去することを必然的に伴っている
。例えば、アンチエイリアシングは、或るピクセルを中間値へ強制することによ
って(例えば、暗い背景へ重畳された鮮明なオブジェクトの輪郭の周りで)、画
像内の高コントラスト・エッジを柔らかくするか滑らかにしてよい。
【0008】 コンピュータ画像のリアリズムを増大するために使用される他の視覚効果は、
アルファ・ブレンディングである。アルファ・ブレンディングは、オブジェクト
の透明度を制御する手法であり、透明な面、例えば水又はガラスをリアルにレン
ダリングすることができる。リアリズムを改善するために使用される他の効果は
、フォギングである。フォギングは、オブジェクトが観察者から離れて行くにつ
れて、オブジェクトを不明瞭にする。単純なフォギングは、アルファ・ブレンデ
ィングの特別の場合である。その場合、アルファ度は距離と共に変化し、従って
、オブジェクトが観察者から離れるにつれて、オブジェクトは霞の中へ消えてい
くように見える。この単純なフォギングは、「深度キューイング」又は雰囲気減
衰と呼ばれてもよい。即ち、それはオブジェクトのコントラストを低くして、オ
ブジェクトが遠くなるにつれて目立たないようにする。より複雑なタイプのフォ
ギングは、単純な一次関数を超越して、半透明レベルと、観察者からのオブジェ
クト距離との間の、より複雑な関係を提供する。現在の最高技術水準のソフトウ
ェア・システムは更に進歩しており、雰囲気モデルを使用することによって、改
善されたリアリズムで低く垂れ込めた霧を提供する。
【0009】 これまで列挙した手法は、コンピュータ・グラフィックス画像の外観を劇的に
改善するが、或る制限を有する。具体的には、それらの手法は、それら自身の収
差を導入するかもしれず、典型的には、ディスプレイ装置上に表示されるピクセ
ルの密度によって制限される。
【0010】 その結果、増大したパフォーマンス・レベルを利用して、レンダリングされる
ピクセルの数だけでなく、レンダリングされる画像の品質をも増大させることが
できるグラフィックス・システムが望まれる。更に、処理パワーの増大を利用し
て、グラフィックス効果、例えばアンチエイリアシングの結果を改善することの
できるグラフィックス・システムが望まれる。
【0011】 従来技術のグラフィックス・システムは、一般的に、これらの目的を欠いてい
た。従来技術のグラフィックス・システムは、ディスプレイ上にピクセル/ビデ
オ・データをリフレッシュする通常のフレーム・バッファを使用する。フレーム
・バッファは、ディスプレイ上のそれぞれの行及び列に正確に対応するピクセル
の行及び列を記憶する。従来技術のグラフィックス・システムは、2D及び/又
は3D画像又はオブジェクトを、フレーム・バッファの中へピクセル形式でレン
ダリングし、次に、スクリーン・リフレッシュの間にフレーム・バッファからピ
クセルを読み出して、ディスプレイをリフレッシュする。従って、フレーム・バ
ッファは、ディスプレイへ提供される出力ピクセルを記憶する。フレーム・バッ
ファが更新されているとき、同時にスクリーンをリフレッシュすることによって
作り出されるかもしれない可視アーチファクトを縮小するため、大部分のグラフ
ィックス・システムのフレーム・バッファは、ダブルバッファされる。
【0012】 よりリアルな画像を得るため、幾つかの従来技術のグラフィックス・システム
は、更に進んで1ピクセル当たり1つ以上のサンプルを生成する。ここで使用さ
れる「サンプル」の用語は、オブジェクト又は画像における特定の点のカラー、
深度(z)、透明度、及び可能性のある他の情報を示す計算されたカラー情報を
意味する。例えば、サンプルは、次の成分値を含んでよい。即ち、赤の値、緑の
値、青の値、z値、及びアルファ値(例えば、サンプルの透明度を表す)である
。更に、サンプルは他の情報、例えばz深度値、ブラー値、強度値、輝度増加情
報、及びインディケータを含んでよい。インディケータは、サンプルが部分的又
は全面的にカラー情報ではなく制御情報(即ち、「サンプル制御情報」)から構
成されることを示す。ピクセルよりも多くのサンプルを計算する(即ち、スーパ
サンプリング)ことによって、ディスプレイ装置上で表示されることのできる画
像よりも詳細な画像が計算される。例えば、グラフィックス・システムは、ディ
スプレイ装置へ出力される各々のピクセルのために4つのサンプルを計算してよ
い。サンプルが計算された後、それらはピクセルを形成するため結合又はフィル
タされる。これらのピクセルは、フレーム・バッファに記憶され、それからディ
スプレイ装置へ送られる。このようにして形成されたピクセルを使用することは
、よりリアルな最終画像を作り出すかもしれない。なぜなら、画像内の過度に急
激な変化は、フィルタリング・プロセスによって滑らかにされてよいからである
【0013】 これらの従来技術のスーパサンプリング・システムは、典型的には、ディスプ
レイ上のピクセル位置の数よりも非常に多いサンプルを生成する。これらの従来
技術のシステムは、典型的には、サンプルを計算して、それらをレンダリング・
バッファに記憶するレンダリング・プロセッサを有する。次に、フィルタリング
・ハードウェアがレンダリング・バッファからサンプルを読み出し、ピクセルを
作り出すためサンプルをフィルタし、次に伝統的なフレーム・バッファの中にピ
クセルを記憶する。伝統的なフレーム・バッファは、典型的にはダブルバッファ
されて、その1つの側はディスプレイ装置をリフレッシュするために使用され、
他方の側はフィルタリング・ハードウェアによって更新される。一度、サンプル
がフィルタされると、結果のピクセルは、ディスプレイ装置をリフレッシュする
ために使用される伝統的フレーム・バッファの中に記憶される。しかし、これら
のシステムは、一般的に、通常のフレーム・バッファ、及びレンダリング・バッ
ファ並びにフィルタリングによって生じた追加の待ち時間によって課される制約
を受ける。従って、ピクセル・スーパサンプリングの利点を含み、同時に通常の
フレーム・バッファの欠点を排除した改良グラフィックス・システムが望まれる
【0014】 米国特許出願第09/251,844号「可変解像度サンプル・バッファを有
するグラフィックス・システム」(Graphics System with
a Variable Resolution Sample Buffer
)は、スーパサンプリング・サンプル・バッファ、及びディスプレイをリフレッ
シュするサンプル・ピクセル計算ユニットを使用するコンピュータ・グラフィッ
クス・システムを開示する。グラフィックス・プロセッサは、複数のサンプルを
生成し、それらをサンプル・バッファの中へ記憶する。グラフィックス・プロセ
ッサは、好ましくは、ディスプレイ上のピクセル位置の少なくともサブセットの
ために1つを超えるサンプルを発生して記憶する。従って、サンプル・バッファ
は、ディスプレイ上のピクセル位置の数よりも非常に大きな数のサンプルを記憶
するスーパサンプリング・サンプル・バッファである。サンプル・ピクセル計算
ユニットは、スーパサンプリング・サンプル・バッファからサンプルを読み出し
て、それぞれの出力ピクセルの中へサンプルをフィルタ又は畳み込むように構成
される。次に、出力ピクセルは、ディスプレイをリフレッシュするため提供され
る。サンプル・ピクセル計算ユニットは、1つ又は複数のサンプルを選択し、そ
れらをフィルタして、出力ピクセルを生成する。サンプル・ピクセル計算ユニッ
トは、サンプルを獲得しピクセルを生成するように動作してよい。ピクセルは、
フレーム・バッファを介在させないで、ディスプレイへ直接提供される。
【0015】 (発明の開示) これまで説明された問題は、サンプル・バッファ及び複数の並列サンプル・ピ
クセル計算ユニットを使用するように構成され、サンプル・ピクセル計算ユニッ
トが、サンプル・バッファの異なった部分を並列にアクセスするように構成され
たグラフィックス・システムによって、少なくとも一部分が解決されるであろう
。都合が良いことに、この構成(実施形態に依存する)は、更に、ピクセルを記
憶する伝統的なフレーム・バッファの代わりにサンプル・バッファをグラフィッ
クス・システムに使用させるようにする。サンプル・ピクセル計算ユニットは、
並列に動作するように構成されてよいから、グラフィックス・システムの待ち時
間は、幾つかの実施形態で縮小されるかもしれない。
【0016】 1つの実施形態において、グラフィックス・システムは、1つ又は複数のグラ
フィックス・プロセッサ、サンプル・バッファ、及び複数のサンプル・ピクセル
計算ユニットを含んでよい。グラフィックス・プロセッサは、3次元グラフィッ
クス・データのセットを受け取り、グラフィックス・データに基づいて複数のサ
ンプルをレンダリングするように構成されてよい。サンプル・バッファは、サン
プル・ピクセル計算ユニットのために複数のサンプルを記憶するように構成され
てよい(例えば、ダブルバッファ構成)。サンプル・ピクセル計算ユニットは、
サンプル・バッファからサンプルを受け取ってフィルタし、出力ピクセルを作り
出すように構成される。出力ピクセルは、ディスプレイ装置上に画像を形成する
ために使用することができる。サンプル・ピクセル計算ユニットの各々は、画像
の異なった領域に対応するピクセルを生成するように構成される。領域は、画像
の垂直ストライプ(即ち、列)、水平ストライプ(即ち、行)、又は画像の長方
形部分であってよい。本発明で使用される「水平行」及び「水平ストライプ」の
用語は、「垂直列」及び「垂直ストライプ」の用語と同じく、互換的に使用され
ることに注意されたい。各々の領域は、視覚収差(例えば、画像内の継ぎ目、線
、又は裂け目)を防止するため画像の他の領域とオーバラップしてよい。前述し
たように、サンプル・ピクセル計算ユニットの各々は、それ自身の領域上で並列
に動作するように有利に構成されてよい。サンプル・ピクセル計算ユニットは、
(i)どのサンプルが所定のフィルタ・エンベロープ内にあるかを決定し、(i
i)それらのサンプルを加重値で乗算し、(iii)結果の値を合計し、(iv
)結果を正規化して出力ピクセルを形成することによって、サンプルを処理する
ように構成される。加重値は、フィルタ・エンベロープ内のサンプルの位置に関
して変化してよい(例えば、加重ファクタは、サンプルがフィルタ・エンベロー
プの中心から遠くに移動するにつれて減少してよい)。幾つかの実施形態では、
加重ファクタは、正規化されるか、前もって正規化されてよい。後者の場合、結
果の出力ピクセルは正規化プロセスを通らない。なぜなら、出力は既に正規化さ
れているからである。正規化された加重ファクタは調節される。それは、少数の
寄与するサンプルで生成されたピクセルが、多数の寄与するサンプルで生成され
たピクセルを打ち負かさないことを確実にするためである。もし正規化されてい
ない加重ファクタが使用されれば、結果のピクセルは典型的には正規化プロセス
を通るであろう。正規化は、典型的には、可変数のサンプルが各々の出力ピクセ
ルに寄与することができるグラフィックス・システムの実施形態で実行されるで
あろう。更に、正規化は、可変サンプル・パターンを許容するシステム、及びフ
ィルタの中心のピッチが、サンプル・パターンに関して広く変化するシステムで
実行されてよい。
【0017】 幾つかの実施形態では、グラフィックス・システムは、使用される領域のサイ
ズ又はタイプをダイナミックに変化させる(例えば、使用される垂直列の幅をフ
レーム・ベースで変化させる)ように構成されてよい。グラフィックス・システ
ムの幾つかの実施形態は、可変解像度又は可変密度フレーム・バッファをサポー
トしてよい。これらの構成では、グラフィックス・システムは、画像の或る領域
(例えば、画像の中心、又は観察者の注意が最も集中する可能性のある画像部分
)で、より密にサンプルをレンダリングするように構成される。都合が良いこと
に、使用される領域のサイズ及び/又は形状をダイナミックに変更する能力は、
各々のサンプル・ピクセル計算ユニットが特定のフレームのために処理するサン
プルの数を、グラフィックス・システムが均一にする(又は、均一に近づける)
ことを可能にするかもしれない。
【0018】 サンプルは、カラー成分及びアルファ(例えば、透明度)成分を含んでよく、
記憶及びサンプル・バッファからの検索処理を簡単にするため「ビン」の中に記
憶されてよい。この後で詳細に説明されるように、ビンは、サンプル・バッファ
を記憶位置を、より小さなセットへ組織及び分割する手段である。更に、幾つか
の実施形態では、3次元グラフィックス・データは、圧縮形式で受け取られてよ
い(例えば、ジオメトリ圧縮を使用して)。これらの実施形態では、グラフィッ
クス・プロセッサは、サンプルをレンダリングする前に3次元グラフィックス・
データを解凍するように構成されてよい。ここで使用される「カラー成分」の用
語は、ピクセル又はサンプルのカラーを決定するために使用できるサンプル・ベ
ース又はピクセル・ベースの情報を含む。例えば、RGB情報及び透明度情報は
、カラー成分であってよい。
【0019】 更に、3次元グラフィックス・データのセットをレンダリングする方法も予想
される。1つの実施形態において、方法は、(i)3次元グラフィックス・デー
タを受け取り、(ii)グラフィックス・データに基づいて1つ又は複数のサン
プルを生成し、(iii)サンプルを記憶し、(iv)記憶されたサンプルを選
択し、(v)選択されたサンプルを並列にフィルタして、出力ピクセルを形成す
ることを含む。記憶されたサンプルは、前述したように、複数の領域に従って選
択されてよい。
【0020】 本発明の前記及び他の目的、特徴、及び利点は、以下の詳細な説明を、添付の
図面と共に参照することによって、より完全に理解されるであろう。
【0021】 本発明は、様々な変形及び代替形式を取ることができるので、その具体的な実
施形態は、図面で例として示され、本発明で詳細に説明されるであろう。しかし
、図面及び詳細な説明は、開示された特定の形式へ本発明を限定することを意図
するものではなく、反対に、従属項によって定義される本発明の趣旨及び範囲に
入る全ての変形、同等、及び代替をカバーすることが意図されていることを理解
すべきである。
【0022】 (発明を実施するための最良の形態) コンピュータ・システム−図1A ここで図1Aを参照すると、3次元(3D)グラフィックス・システムを含む
コンピュータ・システム80の1つの実施形態が示される。3Dグラフィックス
・システムは様々なシステムに含まれてよいが、そのようなシステムには、特に
、コンピュータ・システム、ネットワークPC、インターネット機器、HDTV
システム及びインタラクティブ・テレビジョン・システムを含むテレビ、携帯情
報端末(PDA)、及び2D及び/又は3Dグラフィックスを表示する他の装置
が含まれる。
【0023】 図示されるように、コンピュータ・システム80は、システム・ユニット82
、及びシステム・ユニット82へ結合されたビデオ・モニタ又はディスプレイ装
置84を含む。ディスプレイ装置84は、どのようなタイプのディスプレイ・モ
ニタ又は装置(例えば、CRT、LCD、ガスプラズマ・ディスプレイ)であっ
てもよい。様々な入力装置がコンピュータ・システムへ接続されてよいが、その
ような入力装置の中には、キーボード86及び/又はマウス88、又は他の入力
装置(例えば、トラックボール、ディジタイザ、タブレット、自由度6入力装置
、ヘッド・トラッカ、アイ・トラッカ、データ・グローブ、ボディ・センサなど
)が含まれる。ディスプレイ装置84の上に3Dグラフィカル・オブジェクトを
表示するため、アプリケーション・ソフトウェアがコンピュータ・システム80
によって実行されてよい。後で更に説明するように、コンピュータ・システム8
0内の3Dグラフィックス・システムは、ディスプレイ装置84上で表示される
画像の品質及びリアリズムを改善するため、プログラム可能なリアルタイム・サ
ンプル・ピクセル計算ユニットと共にスーパサンプリング・サンプル・バッファ
を含む。
【0024】 更に、コンピュータ・システム80は、眼追跡センサ92及び/又は3D眼鏡
90を含んでよい。3D眼鏡90は、能動的(例えば、LCDシャッタ・タイプ
)であるか受動的(例えば、偏光、レッドグリーンなど)であってよく、ディス
プレイ装置84上で更に多くの3次元画像をユーザに見せるものであってよい。
眼鏡90を使用すると、各々の眼は、少し違った画像を受け取る。観察者の心は
、それを「真の」3次元映像として解釈する。センサ92は、ディスプレイ装置
84上の画像のどの部分を観察者が見ているか(即ち、観察者の観測視野が集中
しているか)を決定するように構成されてよい。センサ92によって提供された
情報は、後で説明されるように、多くの異なった様式で使用されてよい。
【0025】 仮想現実コンピュータ・システム−図1B 図1Bは、コンピュータ・システム70の他の実施形態を示す。この実施形態
において、システムは、ヘッドマウント・ディスプレイ装置72、頭追跡センサ
74、及びデータ・グローブ76を含む。ヘッドマウント・ディスプレイ72は
、光ファイバ・リンク94を介してシステム・ユニット82へ結合されるか、又
は導電性リンク、赤外線リンク、又はワイヤレス(例えば、RF)リンクの1つ
又は複数を介してシステム・ユニット82へ結合されてよい。他の実施形態が可
能であり予想される。
【0026】 コンピュータ・ネットワーク−図2 ここで図2を参照すると、少なくとも1つのサーバ・コンピュータ502及び
1つ又は複数のクライアント・コンピュータ506A〜506Nを含むコンピュ
ータ・ネットワーク500が示される。(図4に示される実施形態では、クライ
アント・コンピュータ506A〜506Bが図示されている)。1つ又は複数の
クライアント・システムは、コンピュータ・システム80と同じように構成され
てよい。各々のクライアント・システムは、前述したような1つ又は複数のグラ
フィックス・システム112を有する。サーバ502及びクライアント506は
、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク
(WAN)、又はインターネット接続などの、多様な接続504を介して結合さ
れてよい。1つの実施形態では、サーバ502は、3Dジオメトリ・データ(圧
縮されてよい)を記憶し、1つ又は複数のクライアント506へ送信してよい。
クライアント506は、圧縮された3Dジオメトリ・データを受け取り、それを
解凍し(もし必要であれば)、それからジオメトリ・データをレンダリングする
。次に、レンダリングされた画像は、クライアントのディスプレイ装置上に表示
される。クライアントは、前述したスーパサンプリング・サンプル・バッファ及
びリアルタイム・フィルタ手法を使用して、ジオメトリ・データをレンダリング
し、画像を表示する。他の実施形態において、圧縮された3Dジオメトリ・デー
タは、クライアント・コンピュータ506の間で転送されてよい。
【0027】 コンピュータ・システムのブロック図−図3A 図3Aは、コンピュータ・システム80の簡単なブロック図を示す。便宜上、
本発明の理解に必要でないコンピュータ・システム80の要素は省略されている
。コンピュータ・システム80は、ホスト中央演算処理装置(CPU)102、
及びシステム・バス104へ結合された3Dグラフィックス・システム112を
含む。更に、システム・メモリ106が、システム・バス104へ結合されてよ
い。
【0028】 ホストCPU102は、様々なプロセッサ・テクノロジの任意のものによって
実現されてよい。例えばホストCPU102は、1つ又は複数の汎用マイクロプ
ロセッサ、並列プロセッサ、ベクトル・プロセッサ、ディジタル信号プロセッサ
などを含んでよく、又は、これらの任意の組み合わせを含んでよい。システム・
メモリ106は、様々なタイプのメモリ・テクノロジを代表する1つ又は複数の
メモリ・サブシステムを含んでよい。例えば、システム・メモリ106は、読み
出し専用メモリ(ROM)、スタティック・ランダム・アクセス・メモリ(SR
AM)、同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)、及び
ラムバス・ダイナミック・ランダム・アクセス・メモリ(RDRAM)のような
ランダム・アクセス・メモリ(RAM)、及びマス・ストレージ装置を含んでよ
い。
【0029】 システム・バス104は、1つ又は複数の通信バス又はホスト・コンピュータ
・バス(ホスト・プロセッサとメモリ・サブシステムとの間の通信用)を含んで
よい。更に、様々な周辺装置及び周辺バスが、システム・バス104へ接続され
てよい。
【0030】 グラフィックス・システム112は、本発明の原理に従って構成されてよく、
クロスバ・スイッチ又は他のタイプのバス接続ロジックによってシステム・バス
104へ結合されてよい。グラフィックス・システム112は、対応するビデオ
信号を使用して投影装置PD〜PD及びディスプレイ装置84の各々を駆動
する。
【0031】 3Dグラフィックス・システム112は、システム・バス104に加えて様々
なタイプの1つ又は複数のバスへ結合されてよいことに注意されたい。更に、3
Dグラフィックス・システム112は、通信ポートへ結合されてよく、それによ
って外部源、例えばインターネット又はローカル・エリア・ネットワークからグ
ラフィックス・データを直接受け取ってよい。
【0032】 ホストCPU102は、グラフィックス・システム112との間で、プログラ
ムされた入力/出力(I/O)プロトコルに従って、システム・バス104上で
情報を転送してよい。代替的に、グラフィックス・システム112は、直接メモ
リ・アクセス(DMA)プロトコルに従って、又はインテリジェント・バス・マ
スタリングを介して、システム・メモリ106にアクセスしてよい。
【0033】 アプリケーション・プログラミング・インタフェース(API)、例えばOp
enGL(登録商標)(シリコン・グラフィックス社の登録商標)又はJava
3D(商標)(サン・マイクロシステムス社の商標)に準拠したグラフィックス
・アプリケーション・プログラムは、ホストCPU102上で実行されて、投影
装置PD〜PD及び/又はディスプレイ装置84上に出力される幾何学的プ
リミティブ、例えばポリゴンを定義するコマンド及びデータを生成してよい。ホ
ストCPU102は、このグラフィックス・データをシステム・メモリ106へ
転送してよい。その後で、ホストCPU102は、システム・バス104を介し
て、グラフィックス・データをグラフィックス・システム112へ転送してよい
。他の実施形態では、グラフィックス・システム112は、DMAアクセス・サ
イクルを使用して、システム・メモリ106からジオメトリ・データ配列を読み
出してよい。更に他の実施形態では、グラフィックス・システム112は、ダイ
レクト・ポート、例えばインテル社から公表されている先進グラフィックス・ポ
ート(AGP)を介して、システム・メモリ106へ結合されてよい。
【0034】 グラフィックス・システム112は、ホストCPU102、システム・メモリ
106又は他のメモリ、外部源、例えばネットワーク(例えばインターネット)
又は放送媒体(例えばテレビ)を含む様々な源からグラフィックス・データを受
け取ってよい。
【0035】 後で説明するように、グラフィックス・システム112は、より効率的なマイ
クロコード制御を可能にするように構成されてよい。このマイクロコード制御は
、ホストCPU102によって生成されたポリゴンに対応する到着カラー値を処
理するときのパフォーマンスを増大させる結果となる。
【0036】 グラフィックス・システム112は、コンピュータ・システム80の一部分と
して図示されているが、グラフィックス・システム112は、独立型装置として
構成されてもよい。更に、グラフィックス・システム112は、シングル・チッ
プ・デバイスとして、又はシステム・オン・ア・チップ又はマルチチップ・モジ
ュールの一部分として構成されてよい。
【0037】 グラフィックス・システム112は、様々なシステムに含まれてよい。このよ
うなシステムとして、ネットワークPC、インターネット機器、テレビ(HDT
Vシステム又はインタラクティブ・テレビジョン・システムを含む)、携帯情報
端末(PDA)、又は2D及び/又は3Dグラフィックスを表示する他の装置が
ある。
【0038】 更に後で説明するように、コンピュータ・システム80内の3Dグラフィック
ス・システムは、投影装置PD〜PD及び/又はディスプレイ装置84によ
って表示される画像の品質及びリアリズムを改善するため、スーパサンプリング
・サンプル・バッファ及び複数のプログラム可能サンプル・ピクセル計算ユニッ
トを含む。各々のサンプル・ピクセル計算ユニットは、サンプル・バッファ内の
サンプルに基づいてピクセル値(例えば、赤、緑、及び青の値)を生成するフィ
ルタ(即ち、畳み込み)パイプライン又は他のハードウェアを含んでよい。各々
のサンプル・ピクセル計算ユニットは、サンプル・バッファからサンプルを獲得
して、ピクセル値を生成してよい。このピクセル値は、投影装置PD〜PD 又はディスプレイ装置84の任意のものへ与えられる。サンプル・ピクセル計算
ユニットは、「リアルタイム」又は「オンザフライ」様式で動作してよい。
【0039】 ここで使用される「フィルタ」及び「畳み込み」の用語は、互換的に使用され
る。ここで使用される「リアルタイム」の用語は、投影装置PD〜PD又は
ディスプレイ装置84のリフレッシュ・レートで、又はそれに近いレートで実行
されるプロセス又は動作を意味する。「オンザフライ」の用語は、表示された運
動が滑らかに見えて(即ち、運動融合)光の強度が連続して見える(即ち、フリ
ッカ融合)ために必要な最小レートに近いレート、又はそれを超えるレートで画
像を生成するプロセス又は動作を意味する。これらの概念は、文献「空間視覚」
(”Spatial Vision” by Russel L.De Val
ois and Karen K. De Valois, Oxford U
niversity Press, 1988)で、詳細に説明されている。
【0040】 グラフィックス・システム−図3B 図3Bは、本発明に従ったグラフィックス・システム112の1つの実施形態
のブロック図を示す。グラフィックス・システム112は、グラフィックス処理
ユニット(GPU)90、1つ又は複数のスーパサンプリング・サンプル・バッ
ファ162、及び1つ又は複数のサンプル・ピクセル計算ユニット170−1〜
170−Vを含んでよい。更に、グラフィックス・システム112は、1つ又は
複数のディジタル・アナログ変換器(DAC)178−1〜178−Lを含んで
よい。グラフィックス処理ユニット90は、プロセッサ・テクノロジの任意の組
み合わせを含んでよい。例えば、グラフィックス処理ユニット90は、専門化さ
れたグラフィックス・プロセッサ又は計算ユニット、マルチメディア・プロセッ
サ、DSP、又は汎用プロセッサを含んでよい。
【0041】 1つの実施形態では、グラフィックス処理ユニット90は、1つ又は複数のレ
ンダリング・ユニット150A〜150Dを含んでよい。更に、グラフィックス
処理ユニット90は、1つ又は複数の制御ユニット140、1つ又は複数のデー
タ・メモリ152A〜152D、及び1つ又は複数のスケジュール・ユニット1
54を含んでよい。サンプル・バッファ162は、1つ又は複数のサンプル・メ
モリ160A〜160Nを含んでよい。
【0042】 A.制御ユニット140 制御ユニット140は、グラフィックス・システム112とコンピュータ・シ
ステム80との間のデータ転送を制御することによって、グラフィックス・シス
テム112とコンピュータ・システム80との間のインタフェースとして動作す
る。2つ以上のレンダリング・ユニット150A〜150Dを含むグラフィック
ス・システム112の実施形態において、制御ユニット140は、コンピュータ
・システム80から受け取られたデータ・ストリームを、個々のレンダリング・
ユニット150A〜150Dへ回送されるように、対応する数の並列ストリーム
へ分割してよい。グラフィックス・データは、コンピュータ・システム80から
圧縮形式で受け取られてよい。グラフィックス・データの圧縮は、コンピュータ
・システム80とグラフィックス・システム112との間で必要な転送帯域幅を
有利に減少させるかもしれない。1つの実施形態において、制御ユニット140
は、受け取られたデータ・ストリームを分割して、圧縮形式でレンダリング・ユ
ニット150A〜150Dへ回送するように構成されてよい。
【0043】 グラフィックス・データは、1つ又は複数のグラフィックス・プリミティブを
含んでよい。ここで使用されるグラフィックス・プリミティブの用語は、ポリゴ
ン、パラメトリック曲面、スプライン、NURBS(非一様有理Bスプライン)
、細分サーフェイス、フラクタル、ボリューム・プリミティブ、及びパーティク
ル・システムを含む。これらのグラフィックス・プリミティブは、「コンピュー
タ・グラフィックス:原理と実際」(”Computer Graphics:
Principles and Practice”by James D.
Foley, et al., published by Addison−
Wesley Publishing Co., Inc., 1996)と題
する文献で詳細に説明されている。
【0044】 本発明で説明される本発明の実施形態及び例は、簡便性のためにポリゴンの用
語を使用して説明されることに注意されたい。しかし、これらの実施形態及び例
では、ポリゴンの代わりに、任意のタイプのグラフィックス・プリミティブが使
用されてよい。
【0045】 B.レンダリング・ユニット レンダリング・ユニット150A〜150D(本発明ではドロー・ユニットと
も呼ばれる)は、制御ユニット140からグラフィックス命令及びデータを受け
取って、実際の実現方法に依存する多くの機能を実行する。例えば、レンダリン
グ・ユニット150A〜150Dは、解凍(もし受け取られたグラフィックス・
データが圧縮形式で与えられるならば)、変換、クリッピング、ライティング、
テクスチャリング、深度キューイング、透明度処理、セットアップ、可視オブジ
ェクトの決定、及びグラフィックス・データ内で生じる様々なグラフィックス・
プリミティブの仮想スクリーン・レンダリングを実行するように構成されてよい
【0046】 受け取られた圧縮グラフィックス・データのタイプに依存して、レンダリング
・ユニット150A〜150Dは、算術デコーディング、ランレングス・デコー
ディング、ハフマン・デコーディング、及び辞書デコーディング(例えば、LZ
77、LZSS、LZ78、及びLZW)を実行するように構成されてよい。他
の実施形態では、レンダリング・ユニット150A〜150Dは、ジオメトリ圧
縮を使用して圧縮されたグラフィックス・データをデコードするように構成され
てよい。3Dグラフィックス・データのジオメトリ圧縮は、画像品質の大部分を
維持しながら、データ・サイズの著しい縮小を達成するかもしれない。3Dジオ
メトリを圧縮及び解凍する2つの方法が、次の文献に説明されている。 米国特許第5、793、371号、出願番号第08/511,294号、「3
次元グラフィックス・データのジオメトリ圧縮方法及び装置」(Method
And Apparatus For Geometric Compress
ion Of Three−Dimensional Graphics Da
ta)1995年8月4日出願、代理人5181−05900番、及び 米国特許出願第09/095,777号、「グラフィカル・オブジェクトの規
則的にタイルされたサーフェイス部分を表す3次元ジオメトリ・データの圧縮」
(Compression of Three−Dimensional Ge
ometry Data Representing a Regularly
Tiled Surface Portion of a Graphica
l Object)1998年6月11日出願、代理人5181−06602番
。 解凍をサポートするグラフィックス・システム112の実施形態において、各々
のレンダリング・ユニット150によって受け取られたグラフィックス・データ
は、1つ又は複数のグラフィックス「プリミティブ」へ解凍され、続いて、これ
らのプリミティブがレンダリングされてよい。プリミティブの用語は、オブジェ
クトの形を定義するオブジェクトの構成要素(例えば、点、線、三角形、2次元
又は3次元のポリゴン、多面体、ボクセル、又は3次元の自由形式サーフェイス
)を意味する。各々のレンダリング・ユニット150は、高パフォーマンス・プ
ロセッサの任意適切なタイプ(例えば、専門化されたグラフィックス・プロセッ
サ又は計算ユニット、マルチメディア・プロセッサ、ディジタル信号プロセッサ
、又は汎用プロセッサ)であってよい。
【0047】 変換とは、プリミティブ、又はプリミティブのセットを含むオブジェクトへ幾
何学的操作を適用することを意味する。例えば、ローカル座標系内の頂点のセッ
トによって表されたオブジェクトは、平行移動、回転、及びスケーリング変換の
適切なシーケンスを使用して、任意の位置、方向、及びサイズを有するようにワ
ールド空間の中に埋め込まれてよい。更に、変換は、反転、スキューイング、又
は任意の他のアフィン変換を含んでよい。更に、一般的には、変換は非線形操作
を含んでよい。
【0048】 ライティングとは、オブジェクトの照明を計算することである。ライティング
計算は、カラー及び/又は輝度を、オブジェクト、又はオブジェクト上の選択さ
れた点(例えば、頂点)へ割り当てる結果を生じる。使用されるシェーディング
・アルゴリズム(例えば、コンスタント、グーロー、又はフォンのシェーディン
グ)に依存して、多数の異なった位置でライティングが評価されてよい。例えば
、もしコンスタント・シェーディングが使用されるならば(即ち、ライティング
されたポリゴンの面は一定の照明値を割り当てられ)、ライティングはポリゴン
当たり1回計算されるだけでよい。もしグーロー・シェーディングが使用される
ならば、ライティングは頂点当たり1回計算される。フォン・シェーディングは
、サンプル・ベースでライティングを計算する。
【0049】 クリッピングとは、ワールド空間内の3Dビュー・ボリュームの外側にあるグ
ラフィックス・プリミティブ、又はその一部分の除去を意味する。3Dビュー・
ボリュームは、ワールド空間内に位置する仮想の観察者に見えるワールド空間部
分を表してよい。例えば、ビュー・ボリュームは、2Dビュー・ウィンドウ及び
ワールド空間内に置かれた観察地点によって生成されたソリッド錐体であってよ
い。ソリッド錐体は、観察地点から発散してビュー・ウィンドウを通る全ての射
線の合併と考えてよい。観察地点は、仮想の観察者のワールド空間位置を表して
よい。3Dビュー・ボリュームの外側にあるプリミティブ、又はその一部分は、
現在は見ることができず、それ以上の処理から除外されてよい。3Dビュー・ボ
リュームの外側にあるプリミティブ、又はその一部分は、2Dビュー・ウィンド
ウへの投影候補である。
【0050】 クリッピング及び投影計算を単純化するため、プリミティブは、ここではビュ
ーポート座標系と呼ばれる第2の、より便利な座標系へ変換されてよい。ビュー
ポート座標では、ビュー・ボリュームは、クリッピングに便利な標準的3Dビュ
ーポートへマップされる。セットアップの用語は、このようにグラフィックス・
プリミティブをビューポート座標へマップすることを意味する。
【0051】 クリッピング計算を乗り切ったグラフィックス・プリミティブ、又はプリミテ
ィブの一部分は、可視性決定の結果に依存して、2Dビューポートの上に投影さ
れてよい。3D内でクリッピングする代わりに、グラフィックス・プリミティブ
は、2Dビュー平面(これは2Dビューポートを含む)上に投影されてよく、そ
れから2Dビューポートに関してクリッピングされる。
【0052】 仮想表示レンダリングとは、グラフィックス・プリミティブの投影に使用され
るサンプルを生成するために実行される計算を意味する。例えば、3Dにおける
三角形の頂点が、2Dビューポート上に投影されてよい。投影された三角形はサ
ンプルで占拠されてよく、値(例えば、赤、緑、青、及びz値)は、投影された
頂点に対して既に決定された対応値に基づいてサンプルへ割り当てられてよい。
例えば、投影された三角形における各々のサンプルの赤の値は、頂点の既知の赤
の値から補間されてよい。投影された三角形に対するこれらのサンプル値は、サ
ンプル・バッファ162内に記憶されてよい。実施形態に依存して、サンプル・
バッファ16は、更に、各々のサンプルのためにz値を記憶する。このz値は、
深度バッファリングを含む多くの理由のために、サンプルと共に記憶される。連
続したプリミティブのためのサンプルがレンダリングされるにつれて、仮想の画
像がサンプル・バッファ162内に累積する。従って、2Dビューポートは、仮
想の画像がレンダリングされる仮想スクリーンと呼ばれる。仮想の画像を含むサ
ンプル値は、サンプル・バッファ162の中へ記憶される。2Dビューポート内
の点は、仮想スクリーン座標X及びYに関して描かれ、仮想スクリーン空間に存
在すると呼ばれる。
【0053】 仮想画像が完了したとき、例えば、全てのグラフィックス・プリミティブがレ
ンダリングされたとき、サンプル・ピクセル計算ユニット170は、仮想画像を
含むサンプルにアクセスして、サンプルをフィルタし、ピクセル値を生成してよ
い。言い換えれば、サンプル・ピクセル計算ユニット170は、畳み込みカーネ
ルf(X,Y)に関して仮想画像の空間畳み込みを実行し、ピクセル値を生成し
てよい。例えば、ピクセルPの赤値Rpは、次の関係に基づいて仮想スクリーン
空間内の任意の位置(X,Y)で計算されてよい。 ここで、総和は、位置(X,Y)の近傍にあるサンプル(X,Y)で評
価される。畳み込みカーネルf(X,Y)は原点の近傍でのみ非ゼロであるから
、変位したカーネルf(X−X,Y−Y)は、位置(X,Y)の近傍で
のみ非ゼロ値を取ってよい。値Eは、次の関係に従って計算される正規化値であ
る。 ここで、総和は、前記と同じ近傍で評価される。正規化値Eの総和は、赤のピク
セル値Rpの総和と並列に実行されてよい。位置(X,Y)はピクセルの中
心又はピクセル原点と呼ばれる。畳み込みカーネルf(X,Y)が原点(0,0
)に関して対称である場合、ピクセル中心の用語が使用されてよい。
【0054】 ピクセル値は、投影スクリーンSCR上で表示するため投影装置PD〜PD へ与えられてよい。投影装置の各々は、統合された画像IMGの一部分を生成
する。更に、サンプル・ピクセル計算ユニット170は、ディスプレイ装置84
上で表示されるピクセル値を生成してよい。
【0055】 図3に示されたグラフィックス・システム112の実施形態において、レンダ
リング・ユニット150A〜150Dは、ピクセル値の代わりにサンプル値を計
算する。これは、レンダリング・ユニット150A〜150Dがスーパサンプリ
ングを実行すること、即ち、ピクセル当たり複数のサンプルを計算することを可
能にする。本発明に関連するスーパサンプリングは、後で詳細に説明される。ス
ーパサンプリングの詳細は、文献「ディジタル画像合成の原理」(”Princ
iples of Digital Image Synthesis” by
Andrew Glassner, 1995, Morgan Kaufm
an Publishing (Volume 1))、及び「レンダーマンの
友」(”Renderman Companion” by Steve Up
still, 1990, Addison Wesley Publishi
ng)に説明されている。
【0056】 サンプル・バッファ162はダブルバッファされてよく、従って、レンダリン
グ・ユニット150A〜150Dが第1の仮想画像のためにサンプルをサンプル
・バッファ162の第1の部分へ書き込む間に、第2の仮想画像が、サンプル・
ピクセル計算ユニット170によってサンプル・バッファ162の第2の部分か
ら同時に読み出されてよい。
【0057】 2Dビューポート、及びサンプルを使用してサンプル・バッファ162の中へ
レンダリングされる仮想画像は、統合された画像IMG又はディスプレイ画像D
IMとして物理的に表示される領域よりも大きい領域に対応してよい。例えば、
2Dビューポートは、可視サブウィンドウを含んでよい。可視サブウィンドウは
、統合された画像IMG及び/又はディスプレイ画像DIMに対応してよく、そ
の一方で、2Dビューポートの縁の領域(可視サブウィンドウの外側)は、様々
な効果、例えばパンニング及びズーミングを可能にしてよい。言い換えれば、可
視サブウィンドウ内に位置する仮想画像の部分のみが、物理的に表示される。1
つの実施形態において、可視サブウィンドウは、2Dビューポートの全体に等し
い。この場合、仮想画像の全部が物理的に表示される。
【0058】 レンダリング・ユニット150A〜150Dは、より小さくて専門化された多
数の機能ユニット、例えば1つ又は複数のセットアップ/解凍ユニット、及び1
つ又は複数のライティング・ユニットを含んでよいことに注意されたい。
【0059】 C.データ・メモリ 各々のレンダリング・ユニット150A〜150Dは、命令及びデータ・メモ
リ152A〜152Dの対応するものへ結合されてよい。1つの実施形態におい
て、各々のメモリ152A〜152Dは、レンダリング・ユニット150A〜1
50Dの対応するもののために、データ及び命令の双方を記憶するように構成さ
れてよい。実現方法は多様であるが、1つの実施形態において、各々のデータ・
メモリ152A〜152Dは、2つの8MバイトSDRAMを含んでよく、各々
のレンダリング・ユニット150A〜150Dのために、トータルで16Mバイ
トのストレージを提供する。他の実施形態では、各々のレンダリング・ユニット
の解凍及びセットアップ動作をサポートするために、RDRAM(ラムバスDR
AM)が使用されてよく、その一方で、各々のレンダリング・ユニットのドロー
機能をサポートするために、SDRAMが使用されてよい。データ・メモリ15
2A〜152Dは、テクスチャ及びレンダリング・メモリ152A〜152Dと
呼ばれてもよい。
【0060】 D.スケジュール・ユニット レンダリング・ユニット150A〜150Dとサンプル・メモリ160A〜1
60Nとの間に、スケジュール・ユニット154が結合されてよい。スケジュー
ル・ユニット154は、完了したサンプルを順番に並べて、それらをサンプル・
メモリ160A〜160Nに記憶するように構成される。より大きな構成では、
多数のスケジュール・ユニット154が、並列に使用されてよいことに注意され
たい。1つの実施形態では、スケジュール・ユニット154は、クロスバ・スイ
ッチとして実現されてよい。
【0061】 E.サンプル・メモリ スーパサンプリング・サンプル・バッファ162は、サンプル・メモリ160
A〜160Nを含む。サンプル・メモリ160A〜160Nは、レンダリング・
ユニット150A〜150Dによって生成された複数のサンプルを記憶するよう
に構成される。ここで使用される「サンプル・バッファ」の用語は、サンプルを
記憶する1つ又は複数のメモリを意味する。前述したように、サンプルは、各々
の出力ピクセルを形成するためにフィルタされてよい。出力ピクセル値は、投影
スクリーンSCR上に表示するため投影装置PD〜PDへ提供されてよい。
更に、出力ピクセル値は、ディスプレイ装置84へ提供されてよい。サンプル・
バッファ162は、ピクセル解像度に関してスーパサンプリング、クリティカル
・サンプリング、又はサブサンプリングをサポートするように構成されてよい。
言い換えれば、仮想画像(サンプル・バッファ162内に記憶されている)にお
けるサンプル(X,Y)間の平均距離は、仮想スクリーン空間内のピクセル
中心間の平均距離よりも小さいか、等しいか、大きくてよい。更に、畳み込みカ
ーネルf(X,Y)は、幾つかのピクセル中心にまたがる近傍で非ゼロの関数値
を取ってよいから、単一のサンプルが幾つかの出力ピクセル値へ寄与してよい。
【0062】 サンプル・メモリ160A〜160Nは、様々なサイズ及び様々なタイプのメ
モリ(例えば、SDRAM、SRAM、RDRAM、3DRAM、又は次世代3
DRAM)を含んでよい。1つの実施形態において、各々のスケジュール・ユニ
ット154は、サンプル・メモリの4つのバンクへ結合される。ここで、各々の
バンクは、4つの3DRAM−64メモリを含む。3DRAM−64メモリは、
一緒になって、ピクセル当たり多数のサンプルを記憶する116ビット深度のス
ーパサンプリング・サンプル・バッファを形成してよい。例えば、1つの実施形
態において、各々のサンプル・メモリ160A〜160Nは、ピクセル当たり1
6までのサンプルを記憶してよい。
【0063】 3DRAM−64メモリは、1チップ内でシングルバッファされるZと共にを
使用して完全内部ダブル・バッファリングをサポートするように構成された特殊
メモリである。ダブルバッファされる部分は、2つのRGBXバッファを含む。
ここで、Xは他の情報(例えば、アルファ)を記憶するために使用されることの
できる第4のチャネルである。更に、3DRAM−64メモリはルックアップ・
テーブルを有する。ルックアップ・テーブルはウィンドウID情報を取り入れ、
どのバッファの内容が出力されるかを選択する内部2−1又は3−1マルチプレ
クサを制御する。3DRAM−64メモリは、間もなく三菱電機の半導体グルー
プから発売される次世代3DRAMメモリである。1つの実施形態において、組
み合わせて使用される4つのチップは、ダブルバッファされる1280×102
4スーパサンプリング・サンプル・バッファを作り出すのに十分である。
【0064】 3DRAM−64メモリは内部的にダブルバッファされるので、ダブルバッフ
ァ・システムにおける2つのフレーム・バッファの各々の入力ピンは、タイム・
マルチプレックスされる(メモリ内のマルチプレクサを使用して)。出力ピンも
同様にタイム・マルチプレックスされてよい。これはピン・カウントの縮小を可
能にするが、依然としてダブルバッファリングの利点を提供する。更に、3DR
AM−64メモりは、z出力ピンを有しないことによって、ピン・カウントを縮
小する。zの比較及びメモリ・バッファの選択は内部的に処理されるから、3D
RAM−64メモリの使用は、サンプル・バッファ162の構成を単純化するか
もしれない。例えば、サンプル・バッファ162は、3DRAM−64の出力側
で、選択ロジックを、ほとんど又は全然必要としないかもしれない。更に、3D
RAM−64メモリは、メモリ帯域幅を縮小する。なぜなら、データを読み出し
、zの比較を実行し、それからデータを書き戻す伝統的なプロセスなしに、情報
が3DRAM−64メモリへ書き込まれてよいからである。それに代わって、デ
ータは3DRAM−64メモリへ単純に書き込まれ、メモリは、前述したステッ
プを内部的に実行してよい。
【0065】 しかし、グラフィックス・システム112の他の実施形態では、サンプル・バ
ッファ162を形成するため他のメモリ(例えば、SDRAM、SRAM、RD
RAM、又は現世代の3DRAM)が使用されてよい。
【0066】 グラフィックス処理ユニット90は、特定のサンプル位置決め計画(例えば、
正規グリッド、混乱正規グリッドなど)に従って複数のサンプル位置を生成する
ように構成されてよい。代替的に、サンプル位置(又は、サンプル位置を形成す
るため正規グリッド位置へ加えられるオフセット)は、サンプル位置メモリ(例
えば、RAM/ROMテーブル)から読み取られてよい。レンダリングされるポ
リゴンを受け取ると、グラフィックス処理ユニット90は、サンプル位置に基づ
いて、どのサンプルがポリゴン内に入るかを決定する。グラフィックス処理ユニ
ット90は、ポリゴン内に入るサンプルをレンダリングし、レンダリングされた
サンプルをサンプル・メモリ160A〜160Nの中に記憶する。ここで使用さ
れるレンダリング及びドローの用語は、互換的に使用され、サンプルのためにカ
ラー値を計算することを意味する。深度値、アルファ値、及び他のサンプル関連
値も、レンダリング又はドローイング・プロセスで計算されてよい。
【0067】 F.サンプル・ピクセル計算ユニット サンプル・ピクセル計算ユニット170−1〜170−V(集合的にサンプル
・ピクセル計算ユニット170と呼ぶ)は、サンプル・メモリ160A〜160
NとDAC178−1〜178−Lとの間に結合されてよい。サンプル・ピクセ
ル計算ユニット170は、DAC178−1〜178−Lへ提供される出力ピク
セル値を生成するため、選択されたサンプルをサンプル・メモリ160A〜16
0Nから読み取って、そのサンプル上で畳み込み(即ち、フィルタリング動作)
を実行するように構成される。サンプル・ピクセル計算ユニット170は、望ま
れる出力のタイプに依存して、異なった時間に異なったフィルタ機能を実行でき
るようにプログラム可能であってよい。1つの実施形態において、サンプル・ピ
クセル計算ユニット170は、スーパサンプリング・サンプル・バッファのデー
タ(サンプル・メモリ160A〜160Nに記憶されている)をピクセル値へ変
換するため、5×5スーパサンプリング再構成帯域フィルタを実装してよい。他
の実施形態では、計算ユニット170は、出力ピクセルを計算するため、選択さ
れた数のサンプルをフィルタしてよい。選択されたサンプルは、計算されている
ピクセルの中心に関するサンプル位置に基づいてサンプルへ加重を与える空間加
重関数によって乗算されてよい。フィルタリング動作は、様々なフィルタの任意
のものを、単独又は組み合わせて使用してよい。例えば、畳み込み動作は、テン
ト・フィルタ、円形フィルタ、楕円形フィルタ、ミッチェル・フィルタ、帯域フ
ィルタ、同期関数フィルタなどを使用してよい。
【0068】 更に、サンプル・ピクセル計算ユニット170は、次の特徴の1つ又は複数を
有するように構成されてよい。即ち、疑似カラー・テーブルを使用するカラー・
ルックアップ、ダイレクト・カラー、逆ガンマ補正、サンプル・ピクセル・フィ
ルタリング、プログラム可能ガンマ・エンコーディング、及びオプションとして
の色空間変換のような特徴である。サンプル・ピクセル計算ユニット170の他
の特徴は、プログラム可能ビデオ・タイミング・ジェネレータ、プログラム可能
ピクセル・クロック・シンセサイザ、エッジ・ブレンディング機能、ホットスポ
ット補正機能、色空間、及びクロスバ機能を含んでよい。一度、サンプル・ピク
セル計算ユニットが、各々のピクセルのタイミング及びカラーを処理すると、ピ
クセルはDAC178−1〜178−Lへ出力される。
【0069】 G.DAC ディジタル・アナログ変換器(DAC)178−1〜178−L(集合的にD
AC178と呼ぶ)は、グラフィックス・システム112の最終出力段階として
動作する。DAC178は、計算ユニット170から受け取られたディジタル・
ピクセル・データをアナログ・ビデオ信号へ変換する。DAC178−1〜17
8−Lの各々は、投影装置PD〜PDの対応する1つへ結合されてよい。D
AC178−1は、1つ又は複数の計算ユニット170からディジタル・ピクセ
ル・データの第1のストリームを受け取り、第1のストリームを第1のビデオ信
号へ変換する。第1のビデオ信号は、投影装置PDへ提供される。同様に、D
AC178−1〜178−Lの各々は、ディジタル・ピクセル・データの対応す
るストリームを受け取り、ディジタル・ピクセル・データのストリームを、対応
するアナログ・ビデオ信号へ変換する。このアナログ・ビデオ信号は、投影装置
PD〜PDの対応する1つへ提供される。
【0070】 1つの実施形態において、DAC178は、アナログ・ビデオ信号に代わって
ディジタル・ピクセル・データを出力するため、バイパスされるか完全に省略さ
れてよいことに注意されたい。これは、投影装置PD〜PDが、ディジタル
技術に基づいているとき有用であろう(例えば、LCD型ディスプレイ、又はデ
ィジタル・マイクロミラー・ディスプレイ)。
【0071】 スーパサンプリング−図4〜図5 図4は、非スーパサンプリングの例における仮想スクリーン空間の一部分を示
す。ドットはサンプル位置を示し、仮想スクリーン空間上に重畳された長方形ボ
ックスは、ピクセル境界を定義する。1つのサンプルが各々のピクセルの中心に
置かれ、赤、緑、青、zなどの値が、サンプルについて計算される。例えば、サ
ンプル74は、ピクセル70の中心に割り当てられる。レンダリング・ユニット
150は、ピクセル当たり1つだけのサンプルについて値を計算してよいが、更
に、サンプル・ピクセル計算ユニット170は、例えば、サポートが幾つかのピ
クセルにまたがる畳み込みフィルタを使用することによって、複数のサンプルに
基づく出力ピクセル値を計算してよい。
【0072】 ここで図5Aを参照すると、スーパサンプリングの1つの実施形態が例示され
る。この実施形態では、ピクセル当たり2つのサンプルが計算される。サンプル
は、正規グリッドに従って分布している。図ではピクセルの数よりも多いサンプ
ルが存在するが、例えば、各々のピクセルの中心に最も近いサンプルを除き全て
のサンプルを放棄し、ピクセル当たり1つのサンプルを使用することによって、
出力ピクセル値を計算することができる。しかし、多数のサンプルに基づいてピ
クセル値を計算することから、多くの利点が生じる。
【0073】 サポート領域72は、ピクセル70の上に重畳し、ピクセル70に局限される
フィルタのサポートを示す。フィルタのサポートは、フィルタ(即ち、フィルタ
・カーネル)が非ゼロ値を取る位置の集合である。この例では、サポート領域7
2は円形ディスクである。ピクセル70の出力ピクセル値(例えば、赤、緑、青
、及びz値)は、サンプル74A及び74Bによってのみ決定される。なぜなら
、これらのサンプルのみが、サポート領域72内に入るサンプルだからである。
このフィルタリング動作は、表示される画像内の急峻なエッジを滑らかにする(
即ち、アンチエイリアシングを実行する)ことによって、表示される画像のリア
リズムを有利に改善するであろう。フィルタリング動作は、サンプル74A〜7
4Bの値を単純に平均してピクセル70の対応する出力値を形成するか、サンプ
ル74B(ピクセル70の中心にある)の寄与分を増大して、サンプル74A(
即ち、ピクセル70の中心から遠いサンプル)の寄与分を減少してよい。サポー
ト領域72の中心が、計算されているピクセルの中心位置と一致するように、フ
ィルタ、従ってサポート領域72が、計算されている各々の出力ピクセルのため
に再配置される。他のフィルタ及びフィルタ位置決め計画も可能であり予想され
る。
【0074】 図5Aの例では、ピクセル当たり2つのサンプルが存在する。しかし、一般的
に、サンプル数をピクセル数に関連づける要件は存在しない。サンプル数は、ピ
クセル数と完全に独立であってよい。例えば、サンプル数は、ピクセル数よりも
小さくてよい。(これは、サブサンプリングを定義する条件である)。
【0075】 ここで図5Bを参照すると、スーパサンプリングの他の実施形態が示される。
この実施形態では、サンプルはランダムに配置される。従って、出力ピクセル値
を計算するために使用されるサンプルの数は、ピクセルごとに変化してよい。レ
ンダリング・ユニット150A〜150Dは、各々のサンプル位置でカラー情報
を計算する。
【0076】 リアルタイムのサンプル・ピクセル計算に関係するスーパサンプリング・サンプ
ル・バッファ − 図6〜図10 図6は、グラフィックス・システム112の1つの実施形態を通るデータ・フ
ローに対する1つの可能な構成を示す。図示されるように、ジオメトリ・データ
350は、グラフィックス・システム112によって受け取られ、ドロー・プロ
セス352を実行するために使用される。ドロー・プロセス352は、制御ユニ
ット140、レンダリング・ユニット150、データ・メモリ152、及びスケ
ジュール・ユニット154の1つ又は複数によって実現される。ジオメトリ・デ
ータ350は、1つ又は複数のポリゴンのデータを含む。各々のポリゴンは複数
の頂点(例えば、三角形の場合、3つの頂点)を含み、或る頂点は多数のポリゴ
ンによって共有されてよい。データ、例えばx、y、z座標、カラー・データ、
ライティング・データ、及びテクスチャ・マップ情報が、各々の頂点のために含
まれてよい。
【0077】 頂点データに加えて、ドロー・プロセス352(これはレンダリング・ユニッ
ト150A〜150Dによって実行されてよい)は、更に、サンプル位置メモリ
354からサンプル位置情報を受け取る。サンプル位置情報は、仮想スクリーン
空間、即ち2Dビューポート内のサンプルの位置を定義する。ドロー・プロセス
352は、現在レンダリングされているポリゴンの中に入るサンプルを選択し、
ポリゴン内のサンプルの位置に基づいて、サンプルの各々のために値(例えば、
赤、緑、青、z、アルファ、及び/又はフィールド深度情報)のセットを計算す
る。例えば、三角形の中に入るサンプルのz値が、3つの頂点の既知のz値から
補間されてよい。計算されたサンプル値の各々のセットは、サンプル・バッファ
162の中に記憶される。
【0078】 1つの実施形態において、サンプル位置メモリ354は、レンダリング・ユニ
ット150A〜150Dの中に実現される。他の実施形態において、サンプル位
置メモリ354は、メモリ152A〜152Dの一部分として実現されるか、別
個のメモリとして実現されてよい。
【0079】 サンプル位置メモリ354は、サンプルの仮想スクリーン座標(X,Y)に関
するサンプル位置を記憶してよい。代替的に、サンプル位置メモリ354は、正
規グリッド上の位置に関してサンプルのオフセットdX及びdYのみを記憶する
ように構成されてよい。オフセットのみの記憶は、各々のサンプルについて座標
(X,Y)の全体を記憶することよりも、少ない記憶空間を使用するかもしれな
い。サンプル位置メモリ354に記憶されたサンプル位置情報は、専用のサンプ
ル位置計算ユニット(図示されていない)によって読み取られ、グラフィックス
処理ユニット90のためにサンプル位置を計算するように処理されてよい。サン
プル位置の計算に関する詳細情報は、この後で説明される(図9及び図10の説
明を参照されたい)。
【0080】 他の実施形態において、サンプル位置メモリ354は、乱数のテーブルを記憶
するように構成されてよい。更に、サンプル位置メモリ354は、1つ又は複数
の異なったタイプの正規グリッドを生成する専用ハードウェアを含んでよい。こ
のハードウェアはプログラム可能であってよい。記憶された乱数は、ハードウェ
アによって生成された正規グリッド位置へオフセットとして加えられてよい。1
つの実施形態において、サンプル位置メモリ354は、多数の異なった方法で乱
数テーブルをアクセス又は「展開」するようにプログラム可能であってよい。そ
れによって、サンプル位置メモリ354は、乱数テーブルの所与の長さに対して
、より明白な無作為性を提供してよい。従って、サンプル位置オフセットの単純
な反復によって可視アーチファクトを生成することなく、より小さなテーブルを
使用してよい。
【0081】 サンプル・ピクセル計算プロセス360は、ドロー・プロセス352と同じサ
ンプル位置を使用する。従って、1つの実施形態において、サンプル位置メモリ
354は、ドロー・プロセス352のためにサンプル位置を計算するためランダ
ムなオフセットのシーケンスを生成してよく、続いてサンプル・ピクセル計算プ
ロセス360のために同じサンプル位置を計算するためランダムなオフセットの
同じシーケンスを生成してよい。言い換えれば、乱数テーブルの展開は反復可能
であってよい。従って、ドロー・プロセス352のためにサンプル位置を生成し
た時点でサンプル位置を記憶することは必要でないかもしれない。
【0082】 図6に示されるように、サンプル位置メモリ354は、多数の異なった計画、
例えば正規正方形グリッド、正規六角形グリッド、混乱正規グリッド、ランダム
(統計的)分散に従って生成されたサンプル・オフセットを記憶するように構成
されてよい。グラフィックス・システム112は、オペレーティング・システム
、デバイス・ドライバ、又はジオメトリ・データ350から、どのタイプのサン
プル位置決め計画が使用されるべきかを示す表示を受け取ってよい。従って、サ
ンプル位置メモリ354は、1つ又は複数の異なった計画に従って位置情報を生
成するように構成可能又はプログラム可能である。幾つかのサンプル位置決め計
画に関する詳細情報は、更に後で説明される(図8の説明を参照)。
【0083】 1つの実施形態において、サンプル位置メモリ354は、確率的に決定された
サンプル・ポイント又はサンプル・オフセットを含むRAM/ROMを含んでよ
い。従って、仮想スクリーン空間内のサンプルの密度は、小さな目盛りで観察し
たとき均一ではないかもしれない。仮想スクリーン空間内の異なった位置に中心
を有する等しい面積の2つのビンは、異なった数のサンプルを含んでよい。ここ
で使用される「ビン」の用語は、仮想スクリーン空間内の領域又は区域を意味す
る。
【0084】 ビンの配列が、仮想スクリーン空間、即ち2Dビューポートの上に重畳されて
よく、サンプル・バッファ162内のサンプルの記憶は、ビンに関して組織され
てよい。サンプル・バッファ162は、ビンに対応するメモリ・ブロックの配列
を含んでよい。各々のメモリ・ブロックは、対応するビンの中に入るサンプルの
ためにサンプル値(例えば、赤、緑、青、z、アルファなど)を記憶してよい。
サンプルの近似的位置は、サンプルが存在するビンによって与えられる。メモリ
・ブロックは、仮想スクリーン空間内の対応するビン位置から容易に計算可能な
アドレスを有してよい。その逆でもよい。従って、ビンの使用は、サンプル・バ
ッファ162内のサンプル値の記憶及びアクセスを簡単にするかもしれない。
【0085】 ビンは、正規配列、例えば正方形配列、長方形配列、三角形配列、六角形配列
として、又は不規則配列として、2Dビューポートをタイルしてよい。ビンは、
多様なサイズと形状で起こってよい。サイズ及び形状はプログラム可能である。
ビンを占拠してよいサンプルの最大数は、対応するメモリ・ブロックに割り振ら
れた記憶空間によって決定される。サンプルのこの最大数は、ここではビン・サ
ンプル容量、又は単にビン容量と呼ばれる。ビン容量は、様々な値であってよい
。ビン容量値はプログラム可能であってよい。今から、仮想スクリーン空間内の
ビンに対応するサンプル・バッファ162内のメモリ・ブロックは、メモリ・ビ
ンと呼ぶことにする。
【0086】 ビン内の各々のサンプルの特定の位置は、RAM/ROMテーブル内のサンプ
ルのオフセット、即ちビン位置(例えば、ビンの下方左側コーナー、又は中心な
ど)に関するサンプルのオフセットを、ルックアップすることによって決定され
てよい。しかし、実現方法に依存して、ビン容量の全ての選択が、RAM/RO
Mテーブル内にオフセットの固有なセットを記憶される必要はない。第1のビン
容量値に対するオフセットは、第2の、より大きなビン容量値に対して記憶され
たオフセットのサブセットをアクセスすることによって決定されてよい。1つの
実施形態において、各々のビン容量値は、少なくとも4つの異なったサンプル位
置決め計画をサポートする。異なったサンプル位置決め計画の使用は、サンプル
位置の反復による最終の画像アーチファクトを縮小するであろう。
【0087】 1つの実施形態において、サンプル位置メモリ354は、8ビット数のペアを
記憶してよい。各々のペアは、xオフセット及びyオフセットを含む。(他のオ
フセットも可能である。例えば、タイム・オフセット、zオフセットなど)。各
々のペアは、ビン位置へ加えられたとき、仮想スクリーン空間、即ち2Dビュー
ポート内の特定の位置を定義する。読み出しアクセス時間を改善するため、サン
プル位置メモリ354は、メモリが読み出しサイクル当たり2つ以上のサンプル
位置を出力できるように、幅広/並列様式に構成されてよい。
【0088】 一度、サンプル位置がサンプル位置メモリ354から読み出されると、ドロー
・プロセス352は、現在レンダリングされているポリゴンの中に入るサンプル
を選択する。次に、ドロー・プロセス352は、これらのサンプルの各々につい
てz及びカラー情報(これは、アルファ又は他のフィールド深度情報値を含んで
よい)を計算し、データをサンプル・バッファ162の中に記憶する。1つの実
施形態において、サンプル・バッファ162は、z値(そして多分、アルファ値
)を単にシングルバッファしてよく、その一方で、カラーのような他のサンプル
成分をダブルバッファしてよい。従来技術のシステムとは異なり、グラフィック
ス・システム112は、全てのサンプルについてダブルバッファリングを使用し
てよい(もっとも、全てのサンプル成分がダブルバッファされるわけではない。
即ち、サンプルは、ダブルバッファされない幾つかの成分を有するかもしれない
)。1つの実施形態において、サンプルは、ビンとしてのサンプル・バッファ1
62の中へ記憶される。或る実施形態では、ビンの容量は、フレームごとに変化
してよい。更に、ビンの容量は、サンプル・バッファ162の中へレンダリング
された単一のフレーム内でビンに対して空間的に変化してよい。例えば、2Dビ
ューポートの縁の上のビンは、2Dビューポートの中心に対応するビンよりも小
さいビン容量を有してよい。観察者は、スクリーンSCR又はディスプレイ画像
DIMの中心に注意を最も集中させやすいので、2Dビューポートの中心へ高度
の画像品質を提供するように、より多くの処理帯域幅が使用されてよい。更に、
ビンのサイズ及び形状は、領域ごとに、又はフレームごとに、変化してよいこと
に注意すべきである。ビンの使用は、後で詳細に説明されるであろう。
【0089】 フィルタ・プロセス360は、ドロー・プロセス352と並行して、また独立
して、(a)サンプル位置メモリ354からサンプル位置を読み出し、(b)サ
ンプル・バッファ162から対応するサンプル値を読み出し、(c)サンプル値
をフィルタし、(d)結果の出力ピクセル値を、投影装置PD〜PD及び/
又はディスプレイ装置84の1つ又は複数へ出力するように構成される。サンプ
ル・ピクセル計算ユニット170は、フィルタ・プロセス360を実現する。フ
ィルタ・プロセス360は、選択された複数のサンプル、例えば、ピクセルの中
心の近傍に入るサンプルのために、対応するデータの空間フィルタリングに基づ
いて、出力ピクセルのために赤、緑、及び青の値を生成するように動作可能であ
る。アルファのような他の値も生成されてよい。1つの実施形態において、フィ
ルタ・プロセス360は、(i)ピクセルの中心から各々のサンプルまでの距離
を決定し、(ii)各々のサンプルの属性値(例えば、赤、緑、青、アルファ)
と、サンプルの距離の特定の(プログラム可能な)関数であるフィルタ加重とを
乗算し、(iii)加重された属性値について、属性ごとに1つの合計を生成し
(例えば、赤の合計、緑の合計など)、(iv)合計を正規化して、対応するピ
クセル属性値を生成するように構成される。フィルタ・プロセス360は、この
後で詳細に説明される(図11、図12、図14に関する説明を参照)。
【0090】 前記の実施形態において、フィルタ・カーネルは、ピクセルの中心からの距離
の関数であり、従って半径方向に対称である。しかし、代替の実施形態において
は、フィルタ・カーネルは、ピクセルの中心からのX及びY変位の、より一般的
な関数であってよい。従って、フィルタのサポート、即ち、フィルタ・カーネル
が非ゼロの値を取る2D近傍は、円形ディスクである必要はない。フィルタ・カ
ーネルのサポート内に入るサンプルは、計算されている出力ピクセルに影響を与
えてよい。
【0091】 ここで図7を参照すると、グラフィックス・システム112の代替の実施形態
が示される。この実施形態では、2つ以上のサンプル位置メモリ354A及び3
54Bが使用される。従って、サンプル位置メモリ354A〜354Bは、本質
的にダブルバッファされる。もしサンプル位置がフレームからフレームへと同一
に維持されていれば、サンプル位置はシングルバッファされてよい。しかし、も
しサンプル位置がフレームからフレームへと変化すれば、グラフィックス・シス
テム112は、サンプル位置をダブルバッファするように有利に構成されてよい
。サンプル位置は、レンダリング側でダブルバッファされ(即ち、メモリ354
Aがダブルバッファされ)、及び/又はフィルタ側でダブルバッファされてよい
(即ち、メモリ354Bがダブルバッファされてよい)。他の組み合わせも可能
である。例えば、メモリ354Aはシングルバッファされ、その一方で、メモリ
354Bはダブルバッファされてよい。この構成は、メモリ354Bの1つの側
がドロー・プロセス352によって更新され、その一方で、メモリ354Bの他
の側がフィルタ・プロセス360によってアクセスされることを可能にする。こ
の構成では、グラフィックス・システム112は、各々のフレームがレンダリン
グされるとき、メモリ354Aから、ダブルバッファされるメモリ354Bへ、
サンプル位置(又はオフセット)をシフトすることによって、フレーム・ベース
でサンプル位置決め計画を変更してよい。従って、メモリ354Aの中に記憶さ
れて、サンプル値をレンダリングするためドロー・プロセス352によって使用
されるサンプル位置は、フィルタ・プロセス360によって使用されるように、
メモリ354Bへコピーされてよい。一度、サンプル位置情報がメモリ354B
へコピーされると、位置メモリ354Aは、レンダリングされる第2のフレーム
に使用される新しいサンプル位置(又はオフセット)をロードされてよい。この
ようにして、サンプル位置情報は、ドロー・プロセス352からフィルタ・プロ
セス360へのサンプル値に後続する。
【0092】 更に、他の代替の実施形態は、オフセットへのタグを、サンプル値と共にスー
パサンプリング・サンプル・バッファ162の中に記憶してよい。これらのタグ
は、各々の特定のサンプルに関連づけられたオフセット(又は、混乱)dX及び
dYをルックアップするために使用されてよい。
【0093】 サンプル位置決め計画 図8は、異なったサンプル位置決め計画の幾つかを示す。正規グリッド位置決
め計画190では、サンプルは、2Dビューポート上に重畳される正規グリッド
に関して固定位置に置かれる。例えば、サンプルは、正規グリッドによって生成
された長方形の中心に置かれてよい。もっと一般的には、2Dビューポートのタ
イリングは、正規位置決め計画を生成してよい。例えば、2Dビューポートは、
三角形でタイルされてよく、従って、サンプルは三角形タイルの中心(又は頂点
)に置かれてよい。六角形タイリング、対数タイリング、及びペンローズ・タイ
リングのような菱形タイリングも予想される。
【0094】 混乱正規位置決め計画192において、サンプル位置は、正規グリッド又はタ
イリング上の固定位置のセットからの混乱に関して定義される。1つの実施形態
において、サンプルは、対応する固定グリッド位置から、ランダムなx及びyオ
フセットだけ変位するか、ランダムな角度(0°から360°までの範囲)及び
ランダムな半径(ゼロから最大半径までの範囲)だけ変位してよい。オフセット
は、多数の方法によって生成されてよい。例えば、少数のシードに基づきハード
ウェアによって、記憶されたオフセットのテーブルを読み出すことによって、又
は疑似ランダム関数を使用することによって、生成されてよい。ここで再び、混
乱正規グリッド計画192は、任意のタイプの正規グリッド又はタイリングに基
づいてよい。サンプルは、グリッドに関する混乱によって生成される(例えば、
六角形タイリングは、この構成の幾何学的特性によって特に望ましいかもしれな
い)。
【0095】 確率的サンプル位置決め計画194は、サンプルを位置決めする計画の第3の
可能なタイプを表す。確率的サンプル位置決めは、2Dビューポートを横断して
サンプルをランダムに分散することを含む。サンプルのランダムな位置決めは、
多数の異なった方法によって達成されてよい。例えば、疑似乱数を生成するため
、内部クロックのような乱数発生器を使用してよい。更に、ランダムな数又は位
置が、前もって計算され、メモリに記憶されてよい。本発明で使用されるように
、ランダムな位置は、統計的母集団(例えば、ポアソン・ディスク分布)から選
択されてよい。異なったタイプのランダム又は疑似ランダム位置は、「ディジタ
ル画像合成の原理」(”Principles of Digital Ima
ge Synthesis” by Andrew S.Glassner,
Morgan Kaufman Publishers 1995)と題する文
献の第1巻、第10章で詳細に説明されている。
【0096】 ここで図9を参照すると、混乱正規位置決め計画192の1つの実施形態の詳
細が示される。この実施形態では、サンプルは、正規正方形グリッドから、x及
びyオフセットだけランダムにオフセットされる。拡大された領域が示すように
、サンプル198はxオフセット134を有する。このxオフセット134は、
その対応するグリッド交差点196からの、その水平変位を指す。同様に、サン
プル198はyオフセット136を有する。このyオフセット136は、グリッ
ド交差点196からの、その垂直変位を指す。ランダムなxオフセット134及
びyオフセット136は、値の特定の範囲へ限定されてよい。例えば、xオフセ
ットは、ゼロからXmaxまでの範囲へ限定されてよい。ここで、Xmaxは、
グリッド長方形の幅である。同様に、yオフセットは、ゼロからYmaxまでの
範囲へ限定されてよい。ここで、Ymaxはグリッド長方形の高さである。更に
、ランダムなオフセットは、グリッド交差点196に関して角度及び半径によっ
て指定されてよい。
【0097】 図10は、混乱正規グリッド計画192の他の実施形態の詳細を示す。この実
施形態において、サンプルは長方形ビン138A〜138Dへグループ分けされ
る。この実施形態において、各々のビンは9つのサンプルを含む。即ち、ビン容
量は9である。他の実施形態では、異なったビン容量が使用されてよい(例えば
、4つのサンプルを記憶するビン、16のサンプルを記憶するビンなど)。各々
のサンプル位置は、サンプルが存在するビンの原点に対するx及びyオフセット
によって決定されてよい。ビンの原点は、ビンの下方左側のコーナー(又は、ビ
ン内の他の便利な位置)として選択されてよい。例えば、サンプル198の位置
は、ビン138Dの原点132Dのx及びy座標と、それぞれxオフセット12
4及びyオフセット126とを合計することによって決定される。前述したよう
に、これは、幾つかの実施形態で使用されるサンプル位置メモリ354のサイズ
を縮小するかもしれない。
【0098】 図11−サンプルをピクセルへ変換する 前述したように、2Dビューポートは、空間ビンの配列でカバーされてよい。
各々の空間ビンはサンプルで占拠されてよい。サンプル位置はサンプル位置メモ
リ354によって決定される。各々の空間ビンはサンプル・バッファ162内の
メモリ・ビンに対応する。メモリ・ビンは、対応する空間ビンに存在するサンプ
ルのために、サンプル値(例えば、赤、緑、青、z、アルファなど)を記憶する
。サンプル・ピクセル計算ユニット170(畳み込みユニット170とも呼ばれ
る)は、サンプル・バッファ162からメモリ・ビンを読み出して、メモリ・ビ
ン内に含まれるサンプル値をピクセル値へ変換するように構成される。
【0099】 列を使用した並列のサンプル・ピクセル・フィルタリング−図11A〜図11B 図11Aは、サンプル・バッファ162内に記憶されたサンプル値をピクセル
値の中へ迅速に変換する1つの方法を示す。2Dビューポートをカバーする空間
ビンは、列(例えば、列1〜4)へ組織されてよい。各々の列は、空間ビンの2
次元副配列を含む。列は、水平方向でオーバラップする(例えば、1つ又は複数
のビンだけ)ように構成されてよい。サンプル・ピクセル計算ユニット170−
1〜170−4の各々は、列の1つに対応するメモリ・ビンにアクセスするよう
に構成されてよい。例えば、サンプル・ピクセル計算ユニット170−1は、列
1の空間ビンに対応するメモリ・ビンにアクセスするように構成されてよい。サ
ンプル・バッファ162とサンプル・ピクセル計算ユニット170との間のデー
タ通路は、この列方式対応をサポートするように最適化されてよい。
【0100】 列の間のオーバラップの量は、使用されているフィルタ・カーネルのフィルタ
・サポートの水平直径に依存してよい。図11Aに示される例は、2つのビンの
オーバラップを示す。各々の正方形(例えば、正方形188)は、1つ又は複数
のサンプルを含む単一のビンを表す。都合の良いことに、この構成は、対応する
列のメモリ・ビンに存在するサンプルを受け取って畳み込んでいるサンプル・ピ
クセル計算ユニット170の各々から独立して、また並列に、サンプル・ピクセ
ル計算ユニット170が働くことを可能にする。列のオーバラップは、範囲が1
ピクセルよりも大きい作用素について、可視帯域又は他のアーチファクトが列の
境界に現れないようにする。
【0101】 更に、図11Aの実施形態は、サンプル・バッファ162へ結合される複数の
ビン・キャッシュ176を含む。更に、ビン・キャッシュ176の各々は、サン
プル・ピクセル計算ユニット170の対応する1つへ結合される。一般的なビン
176−I(ここで、Iは任意の正の整数値を取る)は、列Iに対応するメモリ
・ビンの集合を記憶し、サンプル・ピクセル計算ユニット170−Iのキャッシ
ュとして使用される。一般的なビン・キャッシュ176−Iは、列Iのためにメ
モリ・ビンへのアクセスを容易にするサンプル・バッファ162への最適カップ
リングを有してよい。2つの隣接する出力ピクセルのためのサンプル・ピクセル
計算は、同じビンの多くを含むかもしれないので、ビン・キャッシュ176は、
サンプル・バッファ162への全体的アクセス帯域幅を増大するかもしれない。
サンプル・ピクセル計算ユニット170は、多くの異なった方式で実現されてよ
い。そのような方式には、高パフォーマンスALU(算術論理ユニット)コア、
マイクロプロセッサ又はDSPからの機能ユニット、又はハードウェア乗算器及
び加算器を使用する特注設計を使用することが含まれる。
【0102】 ここで図11Bを参照すると、並列のサンプル・ピクセル計算を実行する他の
方法が示される。この実施形態において、サンプル・バッファ162は、前述し
た実施形態と同じく、複数の垂直列又はストライプへ分割される。しかし、この
実施形態における列は、等しいサイズ又は幅ではない。例えば、列1は、列4よ
りも著しく少ないサンプル・ビンを含んでよい。この実施形態は、可変サンプル
密度をサポートするグラフィックス・システムの構成で特に有用であるかもしれ
ない。前述したように、また後で詳細に説明するように、グラフィックス・シス
テムは、より高いサンプル密度から最も利益を得る最終画像の領域、例えば、観
察者が特別の興味を持つ領域、又は観察者の窩注視点(後で詳説する)に対応す
るする画像領域に対応するサンプル・バッファ162の領域へ、より多くのサン
プル(即ち、より高いサンプル密度)を使用してよい。可変サンプル密度をサポ
ートするこれらのシステムにおいて、列の幅を変更する能力は、グラフィックス
・システムが、サンプル・ピクセル計算ユニットの各々によってフィルタされる
サンプルの数を均一にすることを有利に可能にするかもしれない。例えば、列1
は、観察者の観察地点の焦点が置かれる表示画像の部分に対応してよい。従って
、グラフィックス・システムは、より高い密度のサンプルを列1のビンで使用し
てよく、グラフィックス・システムは、より低い密度のサンプルを列4のビンで
使用してよい。従って、列1の幅を減少し、列4の幅を増大することによって、
サンプル・ピクセル計算ユニット170−1及び170−4の各々は、ほぼ同数
のサンプルをフィルタしてよい。都合の良いことに、サンプル・ピクセル計算ユ
ニットの間でフィルタリングの負荷をバランスさせることは、グラフィックス・
システムに、より効率的な方法でサンプル・ピクセル計算ユニットの処理リソー
スを使用させるかもしれない。
【0103】 幾つかの実施形態では、グラフィックス・システムは、フレームごと(又は、
フレームの端数ごと)に列の幅をダイナミックに変更するように構成されてよい
。サンプル密度をダイナミックに変更する(例えば、眼追跡、窩注視点追跡、主
要登場人物追跡)グラフィックス・システムの実施形態では、サンプル密度はフ
レーム・ベースで変化してよく、従って、フレーム・ベースで列の幅を変更する
ことは、再び、サンプル・ピクセル計算ユニット170の計算リソースが、より
効率的な方法で使用されることを可能にする。幾つかの実施形態では、列の幅は
、走査線ベース又は或る他の時間ベースで変更されてよい。時間を変化させるこ
とに加えて、図が示すように、可視アーチファクト(例えば、シーム、裂け目、
又は垂直線)が現れないように、列はオーバラップするように構成されてよい(
前に説明した実施形態のように)。
【0104】 行を使用する並列のサンプル・ピクセル・フィルタリング−図12 ここで図12を参照すると、グラフィックス・システムの他の実施形態が示さ
れる。この実施形態において、サンプル・バッファ162は、複数の水平行又は
ストライプへ分割される。前の実施形態と同じように、行は、可変サンプル密度
を補償するため幅に関してオーバラップ及び/又は変化してよい。前の実施形態
と同じように、各々の行は、特定のビン・キャッシュ176及び対応するサンプ
ル・ピクセル計算ユニット170へビン(そして、サンプル)を提供してよい。
【0105】 行を使用する並列のサンプル・ピクセル・フィルタリング−図13 ここで図13を参照すると、グラフィックス・システムの更に他の実施形態が
示される。この実施形態において、サンプル・バッファ162は、複数の長方形
領域へ分割される。前の実施形態と同じように、長方形領域は、オーバラップし
てもオーバラップしなくてもよく、異なったサイズを有し、及び/又はサイズを
ダイナミックに変化させる(例えば、フレーム・ベースで、又は走査線ベースで
)。各々の領域は、特定のビン・キャッシュ176及び対応するサンプル・ピク
セル計算ユニット170へビン(及びサンプル)を提供するように構成されてよ
い。或る実施形態では、各々の長方形領域は、複数のプロジェクタ(例えば、L
CDプロジェクタ)の1つによって投影される画像に対応してよい。他の実施形
態では、各々の長方形領域は、単一のディスプレイ装置の上に投影又は表示され
る単一の画像の特定の一部分に対応してよい。前の実施形態と同じように、都合
が良いことに、サンプル・ピクセル計算ユニット170は、独立的及び並列に動
作するように構成されてよく、それによってグラフィックス・システムの待ち時
間を縮小する。前述したように、図13に示された長方形領域は、均一のサイズ
及び/又は形状である必要はない。
【0106】 可変の領域サイズ又はストライプ幅を有するグラフィックス・システムの実施
形態において、オーバラップの量は、フレーム・ベース又はサブフレーム・ベー
スでダイナミックに変化してよい。サンプル・バッファ162が分割されてよい
領域の他の形状が可能であり、予想されることに注意されたい。例えば、或る実
施形態では、各々のサンプル・ピクセル計算ユニットは、複数の小さな領域又は
ストライプからビン(及びサンプル)を受け取ってよい。
【0107】 或る実施形態では、サンプル・キャッシュ176は、水平走査線の全体を記憶
する十分な記憶空間を有しないかもしれない。この理由のため、サンプル・バッ
ファを領域へ分割することが有用であろう。ディスプレイ装置に依存して、領域
は奇数のみ及び偶数のみの走査線の一部分であってよい。或るシステム、例えば
、多数のディスプレイ装置を有するシステムでは、各々の領域は単一のディスプ
レイ装置に対応するか、表示されている画像の4分円に対応してよい。例えば、
4つのプロジェクタによって形成された画像が、一緒にタイルされて、単一の大
きな画像を形成し、それから各々のサンプル・ピクセル計算ユニットが、特定の
プロジェクタによって表示されるピクセルに対応するサンプルを受け取るものと
仮定する。或る実施形態では、領域のオーバラップ区域は、2回記憶されてよく
、それによって、各々のサンプル・ピクセル計算ユニットが、サンプル・バッフ
ァの特定の領域へ排他的にアクセスできるようにする。これは、2つの異なった
サンプル・ピクセル計算ユニット(又は2つのサンプル・キャッシュ・コントロ
ーラ)が、メモリ位置の同じセットを同時にアクセスしようと試みるときに生じ
るタイミング問題を防止するかもしれない。他の実施形態では、サンプル・バッ
ファがマルチポートにされて、同じメモリ位置への1つ又は複数のマルチ同時ア
クセスが可能にされてよい。
【0108】 前述したように、或る実施形態では、サンプル・キャッシュは、サンプル・バ
ッファからサンプルを読み出すように構成される。或る実施形態では、サンプル
は、サンプル・バッファからビン・ベースで読み出されてよい。サンプル・キャ
ッシュ及び/又はサンプル・バッファは、制御ロジックを含んでよい。この制御
ロジックは、フィルタされている(又は、フィルタされようとしている)1つ又
は複数のピクセルに寄与する可能性がある全てのサンプルが、対応するサンプル
・ピクセル計算ユニットで利用できることを確実にするように構成される。或る
実施形態では、サンプル・キャッシュは、ビンの所定の配列、例えば5×5ビン
(例えば、最大フィルタ・サイズと釣り合った)を記憶するのに十分な大きさで
あってよい。他の実施形態では、5×5ビン・キャッシュの代わりに、サンプル
・キャッシュは、ピクセルが一連の多数のアキュムレータへ集積されるにつれて
、ピクセルを出力するように構成されてよい。この実施形態では、サンプルの数
及び加重に依存して、異なった係数が各々のピクセルのために生成される。
【0109】 サンプル・バッファからサンプルを読み出す方法−図14 ここで図14を参照すると、スーパサンプリング・サンプル・バッファからサ
ンプル値を読み出す方法の1つの実施形態が詳細に示される。図示されるように
、サンプル・ピクセル・フィルタ・カーネル400は、列Iを横断し(矢印40
6の方向へ)、出力ピクセル値を生成する。ここでインデックスIは、1から4
の任意の値を取る。サンプル・ピクセル計算ユニット170−Iは、サンプル・
ピクセル・フィルタ・カーネル400を実装してよい。ビン・キャッシュ176
−Iは、列Iに対応するメモリ・ビンへの高速アクセスを提供するために使用さ
れてよい。例えば、ビン・キャッシュ176−Iは、25メモリ・ビンより大き
いか等しい容量を有してよい。なぜなら、サンプル・ピクセル・フィルタ・カー
ネル400のサポートは、空間ビンの5×5配列をカバーするからである。サン
プル・ピクセル動作が進行するにつれて、メモリ・ビンはスーパサンプリング・
サンプル・バッファ162から読み出され、ビン・キャッシュ176−Iへ記憶
される。1つの実施形態において、もはや必要とされないビン、例えば、ビン4
10は、ビン・キャッシュ176−I内で新しいビンによって上書きされる。各
々の出力ピクセルが生成されるにつれて、サンプル・ピクセル・フィルタ・カー
ネル400はシフトする。カーネル400は、列I内で矢印406で示される方
向へ逐次に進行するように想像してよい。カーネル400が列Iの右側境界40
4に達したとき、それはビンの1つ又は複数の行だけ下へシフトし、それから左
側の列境界402からスタートして水平方向へ進行してよい。従って、サンプル
・ピクセル動作は走査線様式で進行し、表示用の出力ピクセルの連続行が生成さ
れる。
【0110】 図15は、出力ピクセル値の計算で可能な境界条件を示す。2Dビューポート
420は、空間ビンの長方形配列を重ねられた長方形として示される。全ての空
間ビンは、サンプル・バッファ162内のメモリ・ビンに対応することを想起さ
れたい。メモリ・ビンは、対応する空間ビン内に存在するサンプルのためにサン
プル値及び/又はサンプル位置を記憶する。前述したように、サンプル・ピクセ
ル計算ユニット170は、出力ピクセル値(例えば、赤、緑、青など)を生成す
るために、ピクセルの中心の近傍にあるサンプルをフィルタする。ピクセルの中
心PCは、2Dビューポート420の下方境界(Y=0)に十分近いので、そ
のフィルタ・サポート400は、2Dビューポート内に完全には含まれない。サ
ンプル・ピクセル計算ユニット170は、様々な方法に従って、フィルタ・サポ
ート400のマージナル部分(即ち、2Dビューポート420の外側に入る部分
)のために、サンプル位置及び/又はサンプル値を生成してよい。
【0111】 1つの実施形態において、サンプル・ピクセル計算ユニット170は、フィル
タ・サポート400のマージナル区域をカバーするため、1つ又は複数のダミー
・ビンを生成してよい。ダミー・ビンのサンプル位置は、2Dビューポート境界
を横切って空間ビンのサンプル位置を折り返すことによって生成されてよい。例
えば、ダミー・ビンF、G、H、I、Jは、境界線Y=0を横切って、空間ビン
A、B、C、D、Eに対応するサンプル位置を折り返すことによって、サンプル
位置を割り当てられてよい。所定のカラー値が、ダミー・ビン内のこれらのダミ
ー・サンプルに関連づけられてよい。例えば、RGBカラー・ベクトルの値(0
,0,0)が、各々のダミー・サンプルへ割り当てられてよい。ピクセルの中心
PCが下方へ移動するにつれて(即ち、境界Y=0へ、及びそれを通過して)
、ダミー・サンプルを有する追加のダミー・ビンが、フィルタ・サポート400
(これは、ピクセルの中心PCと共に移動する)をカバーするように生成され
てよい。フィルタ・サポート400内に入るダミー・サンプルの数は増加し、フ
ィルタ・サポート400が2Dビューポート420の外側へ完全に移動したとき
最大に達する。従って、フィルタ・サポート400に基づいて計算されたカラー
値は、ピクセルの中心PCが境界を横切るにつれて所定の背景色に達する。
【0112】 ピクセルの中心は2Dビューポート420の外側に位置するかもしれないが、
ビューポート境界に十分近いので、そのフィルタ・サポートの一部分が2Dビュ
ーポート420の中にあるかもしれない。フィルタ・サポート401は、1つの
そのようなピクセルの中心に対応する。サンプル・ピクセル計算ユニット170
は、フィルタ・サポート401の外側部分(即ち、2Dビューポートの外側にあ
る部分)をカバーするため、ダミー・ビンQ、R、S、T、U、Vを生成してよ
い。ダミー・ビンQ、R、Sは、空間ビンN、O、P、及び/又は空間ビンK、
L、Mのサンプル位置に基づいてサンプル位置を割り当てられてよい。
【0113】 更に、ダミー・ビンのサンプル位置は、ビューポート境界を横切る空間ビンに
対応するサンプル位置を変換することによって生成されてよく、又は正規、混乱
正規、又は統計的サンプル位置決め計画に従って、サンプル位置がオンザフライ
で生成されてよい。
【0114】 図16は、ピクセル値計算を実行する方法の代替の実施形態を示す。サンプル
・ピクセル計算ユニット170は、2Dビューポート420の可視サブウィンド
ウ422を使用して、ピクセル値計算を実行してよい。可視サブウィンドウは、
仮想スクリーン空間内で(X,Y)に下方左側コーナーを有し、(X,Y )に上方右側コーナーを有する長方形として描かれる。幾つかの実施形態では
、フィルタは自動正規化されるか、事前に正規化されて、最終のピクセル値を決
定するために必要な計算回数を縮小されてよいことに注意されたい。
【0115】 サンプルをスーパサンプリング・サンプル・バッファの中へレンダリングする−
図17 図17は、サンプルをスーパサンプリング・サンプル・バッファの中へドロー
又はレンダリングする方法の1つの実施形態のフローチャートである。図17の
或るステップは、同時に、又は異なった順序で起こってもよい。ステップ200
で、グラフィックス・システム112は、ホストCPU102から、又はシステ
ム・メモリ106から直接に、グラフィックス・コマンド及びグラフィックス・
データを受け取る。ステップ202で、命令及びデータは、1つ又は複数のレン
ダリング・ユニット150A〜150Dへ回送される。ステップ204で、レン
ダリング・ユニット150A〜150Dは、グラフィックス・データが圧縮され
ているかどうかを決定する。もしグラフィックス・データが圧縮されていれば、
ステップ206で示されるように、レンダリング・ユニット150A〜150D
は、グラフィックス・データを、使用可能なフォーマット、例えば三角形へ解凍
する。次に三角形が、例えばモデル空間からワールド空間へ変換され、ライティ
ングされ、変形される(ステップ208A)ように処理される。
【0116】 もしグラフィックス・システムが可変解像度スーパサンプリングを実行するな
らば、三角形は、サンプル密度領域境界のセットと比較される(ステップ208
B)。可変解像度スーパサンプリングでは、2Dビューポートの異なった領域が
、多数のファクタ(例えば、眼追跡又は頭追跡によって決定されるように、投影
スクリーンSCR上での観察者の注意の中心)に基づいて、異なったサンプル密
度を割り振られてよい。サンプル密度領域については、この後で詳細に説明する
(この後の可変解像度サンプル・バッファのセクションを参照)。もし三角形が
サンプル密度領域境界を横切れば(ステップ210)、三角形は領域境界に沿っ
て2つの、より小さなポリゴンへ分割されてよい(ステップ212)。更に、も
し必要であれば、ポリゴンは三角形へ更に分割されてよい(三角形の一般的切り
分けは、三角形及び四辺形を生じる)。従って、各々の新しく形成された三角形
は、単一のサンプル密度を割り当てられてよい。1つの実施形態において、グラ
フィックス・システム112は、元の三角形を2回、即ち、各々のサンプル密度
で1回ずつレンダリングし、次に2つのバージョンをクリッピングして、2つの
それぞれのサンプル密度領域に当てはめるように構成されてよい。
【0117】 ステップ214で、サンプル位置決め計画(例えば、正規、混乱正規、又は統
計的)の1つが、サンプル位置メモリ354から選択される。サンプル位置決め
計画は、一般的には、サンプル位置メモリ354の中へ前もってプログラムされ
ているが、「オンザフライ」で選択されてもよい。ステップ216で、レンダリ
ング・ユニット150A〜150Dは、選択されたサンプル位置決め計画及び空
間ビンのサイズ及び形状に基づいて、どの空間ビンが、三角形境界の内部に置か
れたサンプルを含むかを決定する。ステップ218において、これらの空間ビン
の内部にあるサンプルのオフセットdX及びdYが、サンプル位置メモリ354
から読み出される。ステップ220では、各々のサンプル位置が、オフセットd
X及びdY、並びに対応するビン原点の座標を使用して計算され、三角形の頂点
と比較され、サンプルが三角形の中にあるかどうかが決定される。ステップ22
0は、この後で詳細に説明される。
【0118】 三角形の中にあると決定された各々のサンプルについて、レンダリング・ユニ
ットは、サンプルのカラー、アルファ、及び他の属性を計算することによってサ
ンプルをドローする。これは、三角形の頂点に関連づけられたカラー及びテクス
チャ・マップ情報に基づいたライティング計算及び補間を含んでよい。一度、サ
ンプルがレンダリングされると、それはスケジュール・ユニット154へ転送さ
れてよい。続いて、スケジュール・ユニット154は、サンプルをサンプル・バ
ッファ162に記憶する(ステップ224)。
【0119】 前述したレンダリング方法の実施形態は、説明目的のためにだけ使用され、限
定を意味しないことに注意されたい。例えば、或る実施形態では、図13で逐次
に起こるものとして示されたステップは、並列に実行されてよい。更に、或るス
テップは、グラフィックス・システムの或る実施形態では、縮小又は除去されて
よい(例えば、ジオメトリ圧縮を実行しない実施形態におけるステップ204〜
206、又は可変解像度スーパサンプリング・サンプル・バッファを実装しない
実施形態におけるステップ210〜212)。
【0120】 どのサンプルが、レンダリングされているポリゴンの中に存在するかを決定する
−図18 どのサンプルが、レンダリングされているポリゴンの中に存在するかの決定は
、多数の異なった方法で行われてよい。1つの実施形態では、三角形を定義する
3つの頂点の間のデルタが先ず決定される。例えば、これらのデルタは、第1の
頂点から第2の頂点(v2−v1)=d12、第2の頂点から第3の頂点(v3
−v2)=d23、及び第3の頂点から第1の頂点(v1−v3)=d31の順
序で取られてよい。これらのデルタはベクトルを形成し、(例えば、そのデルタ
X及びY成分の2つの符号ビットを使用することによって)各々のベクトルは座
標平面の4つの象限の1つに属するものとして分類されてよい。ベクトルがX主
要ベクトルかY主要ベクトルかを決定する第3の条件が付け加えられてよい。こ
れは、abs(delta_x)がabs(delta_y)よりも大きいかど
うかを計算することによって決定されてよい。これら3つの情報ビットを使用し
て、ベクトルの各々は、座標平面の8つの異なった領域の1つに属するものとし
て分類されてよい。もしこれらの領域を定義するために3つのビットが使用され
るならば、図18に示されるように、X符号ビット(2つだけ左へシフト)、Y
符号ビット(1つだけ左へシフト)、及びX主要ビットが、8つの領域を作り出
すために使用されてよい。
【0121】 次に、3つの辺不等式が、三角形の内部を定義するために使用されてよい。辺
自体は、形式y=mx+b又はx=ry+cのいずれか、又は双方における線と
して記述されてよい。ここで、rm=1である。勾配を表すために必要な数値範
囲を縮小するため、辺方程式のためのX主要方程式及びY主要方程式の形式が使
用されてよい(従って、勾配の絶対値は0から1の範囲にある)。従って、辺(
又は半平面)不等式は、2つの対応する形式のいずれかで表されてよい。 X主要: 点(x,y)が辺の下にあるとき、y−m・x−b<0 Y主要: 点(x,y)が辺の左にあるとき、x−r・y−c<0
【0122】 X主要不等式は、問題の点(x,y)が、辺によって定義される線の下にある
とき、論理の真値(即ち、符号ビットは1に等しい)を発生する。Y主要方程式
は、問題の点(x,y)が、辺によって定義される線の左にあるとき、論理の真
値を発生する。三角形の内部を含む側は、線形不等式の各々について知られてお
り、ここでは採択ビットと呼ばれるブール変数によって指定されてよい。従って
、次式を満足させるとき、サンプル(x,y)は、辺の内側にある。 X主要: (y−m・x−b<0)<xor>採択 = 真 Y主要: (x−m・y−b<0)<xor>採択 = 真
【0123】 所与の辺に対する採択ビットは、(a)辺デルタ・ベクトルが存在する領域(
0から7)及び(b)辺裁断の方向に基づき、次のテーブルに従って計算されて
よい。ここで、右回り裁断はcw=1によって示され、左回り裁断はcw=0に
よって示される。記号「!」は、論理補集合を表す。 1: 採択=!cw 0: 採択=cw 4: 採択=cw 5: 採択=cw 7: 採択=cw 6: 採択=!cw 2: 採択=!cw 3: 採択=!cw
【0124】 更に、この表現に対する連接中断規則が実行されてよい(例えば、座標軸は、
正の8分円に属するものと定義されてよい)。同様に、X主要は、勾配上で連接
する全ての点を所有するものとして定義されてよい。
【0125】 代替の実施形態では、辺の採択側は、辺不等式を三角形の第3の頂点(即ち、
辺を形成する2つの頂点の1つではない頂点)へ適用することによって決定され
てよい。この方法は、前述した手法によって避けられるかもしれない乗算−加算
の追加コストを招くかもしれない。
【0126】 三角形の「方向性」(即ち、三角形が右回りか、左回りか)を決定するため、
三角形の2つの辺のデルタ方向がチェックされてよく、2つの辺の勾配が比較さ
れてよい。例えば、辺12が1のデルタ方向を有し、第2の辺(辺23)が0、
4、又は5のデルタ方向を有すると仮定すれば、三角形は左回りである。しかし
、もし辺23が3、2、又は6のデルタ方向を有するならば、三角形は右回りで
ある。もし辺23が1のデルタ方向を有するならば(即ち、辺12と同じ)、2
つの辺の勾配の比較は、連接を中断する(双方は、x主要)。もし辺12が、よ
り大きい勾配を有するならば、三角形は右回りである。もし辺23が7のデルタ
方向を有するならば(辺12の正反対)、再び勾配が比較されるが、三角形が右
回りか左回りかに関して反対の結果となる。
【0127】 辺12及び辺23のデルタ方向の全ての組み合わせに対して、同じ分析を徹底
的に適用することができ、その全ての場合に、適切な方向性が決定される。もし
勾配が、連接の場合に同じであれば、三角形は退化している(即ち、内部の区域
を有しない)。それは明白にテスト及び選別されることができるか、適切な数値
上の注意を払って見逃すことができる。なぜなら、それはピクセルのレンダリン
グを生じないからである。三角形が可視平面を分割するとき、1つの特別の場合
が生じる。しかし、この場合は、パイプライン内で早期に検出されてよい(例え
ば、前面及び背面クリッピングが実行されるとき)。
【0128】 大部分の場合、三角形の1つの側だけがレンダリングされることに注意された
い。従って、もし前述の分析によって決定された三角形の方向性が、拒絶される
べきものであれば、三角形を選別することができる(即ち、それ以上の処理はな
されず、サンプルは生成されない)。更に、方向性のこの決定は、既に計算され
たファクタのほかに1つの追加の比較(即ち、辺12の勾配と辺23の勾配との
比較)を使用するだけであることに注意されたい。多くの伝統的なアプローチは
、(セットアップ計算の初期の段階において)より複雑な計算を利用するかもし
れない。
【0129】 サンプル値から出力ピクセル値を生成する−図19 図19は、スーパサンプリング・サンプル・バッファ162の中に記憶された
サンプルを選択及びフィルタして、出力ピクセル値を生成する方法の1つの実施
形態のフローチャートである。ステップ250において、メモリ・ビンのストリ
ームが、スーパサンプリング・サンプル・バッファ162から読み出される。ス
テップ252で、これらのメモリ・ビンは1つ又は複数のビン・キャッシュ17
6に記憶され、サンプル・ピクセル計算ユニット170が、サンプル・ピクセル
動作の間にサンプル値へ容易にアクセスできるようにしてよい。ステップ254
で、どのメモリ・ビンが、現在生成されている出力ピクセルに寄与するサンプル
を含むかを決定するため、メモリ・ビンが検査される。次に、サンプルが出力ピ
クセルへ実際に寄与するかどうかを決定するため、ビンの中に存在して出力ピク
セルに寄与するかもしれない各々のサンプルが個々に検査される(ステップ25
6〜258)。この決定は、サンプルから、生成されている出力ピクセルの中心
までの距離に基づいて行われてよい。
【0130】 1つの実施形態において、サンプル・ピクセル計算ユニット170は、この距
離(即ち、サンプル位置におけるフィルタの範囲又はエンベロープ)を計算し、
それを使用して、フィルタ加重値を記憶しているテーブルをフィルタ範囲に従っ
てインデックスするように構成されてよい(ステップ260)。しかし、ピクセ
ルの中心からサンプルまでの距離を決定する計算は、可能性として費用のかかる
計算となるので(それは、典型的には平方根関数を含む)、その計算は、他の実
施形態では、2乗された距離を使用してフィルタ加重テーブルへインデックスす
ることによって排除される。代替的に、距離計算に依存する関数に代わって、x
及びyの関数が使用されてよい。1つの実施形態では、これは、距離のために浮
動小数点形式を使用し(例えば、4〜5ビットの仮数と3ビットの指数)、値の
増大範囲を補償しながら大きな正確度を維持することによって達成される。1つ
の実施形態では、テーブルはROMの中に実現されてよい。しかし、RAMテー
ブルも使用されてよい。都合がよいことに、RAMテーブルは、幾つかの実施形
態において、グラフィックス・システムがフレーム・ベースでフィルタ係数を変
更できるようにする。例えば、ディスプレイの既知の欠点又はユーザの個人的好
みを補償するように、フィルタ係数が変更されてよい。幾つかの実施形態では、
RAMテーブルの使用は、異なったフィルタをユーザが選択できるようにするか
もしれない(例えば、ディスプレイ装置又はウィンドウ・システム制御パネル内
の尖鋭度制御を介して)。異なったディスプレイ・タイプに基づいて所望の尖鋭
度レベルを生成するため、多数の異なったフィルタが実装されてよい。例えば、
制御パネルは、LCDディスプレイに最適化された1つの設定を有し、CRTデ
ィスプレイに最適化された他の設定を有してよい。更に、グラフィックス・シス
テムは、フレーム内のスクリーン区域ベースで、又は出力ピクセル・ベースで、
フィルタ係数を変更することができる。他の代替的実施形態は、特殊のハードウ
ェア(例えば、乗算器又は加算器)を使用して、各々のサンプルのために所望の
フィルタ加重を実際に計算してよい。サンプル・ピクセル・フィルタの限界の外
側にあるサンプルのフィルタ加重は、ゼロのフィルタ加重によって単純に乗算さ
れるか(ステップ262)、計算から全面的に排除されてよい。
【0131】 一度、サンプルのフィルタ加重が決定されると、次にサンプルは、そのフィル
タ加重によって乗算されてよい(ステップ264)。次に、加重されたサンプル
は、出力ピクセルの最終カラー値を決定するため、現在のトータルと合計されて
よい(ステップ266)。更に、フィルタ加重は、ピクセル・フィルタ加重の現
在のトータルへ加算されてよい(ステップ268)。この現在のトータルは、フ
ィルタされたピクセルを正規化するために使用される。都合が良いことに、正規
化は、サンプル・ピクセル計算プロセスによって導入されたゲインを補償するこ
とによって、フィルタされたピクセル(例えば、他のピクセルよりも多くのサン
プルを有するピクセル)が、あまりに鮮明に、又はあまりに暗く、現れることが
ないようにする。寄与するサンプルの全てが加重及び合計された後、フィルタリ
ングによって生じたゲインを除算するため、トータルのピクセル・フィルタ加重
が使用されてよい(ステップ270)。最後に、正規化された出力ピクセルは、
次のプロセス、即ち最終的に表示される前のガンマ補正、疑似カラー・テーブル
を使用するカラー・ルックアップ、ダイレクト・カラー、逆ガンマ補正、プログ
ラム可能ガンマ・エンコーディング、色空間変換、及びディジタル・アナログ変
換の1つ又は複数(必ずしも、この順序ではない)を介して出力及び/又は処理
されてよい(ステップ274)。
【0132】 幾つかの実施形態では、グラフィックス・システムは、各々のサンプルのアル
ファ情報を使用して、サンプルと一緒に出力されるマスクを生成するように構成
されてよい。マスクは、ソフトエッジのブルー・スクリーン効果をリアルタイム
で実行するために使用されてよい。例えば、マスクは、レンダリングされた画像
のどの部分がマスクされるべきか(また、どの程度マスクされるべきか)を示す
ために使用されてよい。このマスクは、レンダリングされた画像を他の画像(例
えば、ビデオ・カメラからの信号)とブレンドして、滑らかなブルー・スクリー
ン効果(2つの画像のオーバラップ領域に関してアンチエイリアシングされる)
、又はゴースト効果(例えば、部分的に透明なオブジェクトを、他のオブジェク
ト、シーン、又はビデオ・ストリームの上に滑らかに重畳する)を作り出すため
、グラフィックス・システム又は外部ハードウェアによって使用されることがで
きよう。
【0133】 出力ピクセルの計算の例−図20 図20は、出力ピクセルの畳み込みの簡単な例を示す。図示されるように、4
つのビン288A〜288Dは、出力ピクセルに寄与する可能性のあるサンプル
を含む。この例において、出力ピクセルの中心は、ビン288A〜288Dの境
界に置かれている。各々のビンは16のサンプルを含み、出力ピクセルを生成す
るため、4つのビン(2×2)の配列がフィルタされる。円形フィルタが使用さ
れるものと仮定すると、ピクセルの中心からの各々のサンプルの距離は、どのフ
ィルタ値がサンプルへ適用されるかを決定する。例えば、サンプル296は、ピ
クセルの中心に比較的近く、従って8のフィルタ値を有するフィルタ領域の中に
入る。同様に、サンプル294及び292は、それぞれ4及び2のフィルタ値を
有するフィルの領域の中に入る。しかし、サンプル290は、最大フィルタ範囲
の外側に入り、従って0のフィルタ値を受け取る。従って、サンプル290は、
出力ピクセルの値に寄与しない。この種のフィルタは、ピクセルの中心に最も近
く置かれたサンプルが最も多く寄与し、ピクセルの中心から遠くに置かれたピク
セルは、最終の出力ピクセル値に少なく寄与することを確実にする。この種のフ
ィルタリングは、画像内の急激な変化(例えば、暗い線から明るい背景へ)を滑
らかにすることによって、アンチエイリアシングを自動的に実行する。アンチエ
イリアシングの他の特に有用なタイプのフィルタは、ウィンドウ同期フィルタで
ある。都合の良いことに、ウィンドウ同期フィルタは、混合又は「ぼかされた」
画像の或るものを再先鋭化する負のローブを含む。負のローブは、計算されてい
るピクセルからサンプルを減算させる区域である。対照的に、負のローブのいず
れかの側にあるサンプルは、計算されているピクセルへ加えられる。
【0134】 サンプル290〜296の値の例が、ボックス300〜308に示される。こ
の例では、各々のサンプルは、サンプル位置データに加えて、赤、緑、青、及び
アルファ値を含む。ブロック310は、正規化されていない出力ピクセルについ
て各々のピクセル成分値の計算を例示する。ブロック310が示すように、可能
性として望ましくないゲインが、最終ピクセル値の中へ導入される(即ち、20
00の赤の成分値を有する出力ピクセルは、サンプルの赤の成分値のいかなるも
のよりも、はるかに高い)。前述したように、フィルタ値は、正規化値308を
得るため合計されてよい。正規化値308は、出力ピクセルからの望ましくない
ゲインを除算するために使用される。ブロック312は、このプロセス及び最終
正規化ピクセル値の例を示す。
【0135】 ここで使用された値は、説明目的のためだけに選択され、限定を意味しないこ
とに注意されたい。例えば、フィルタは多数の領域を有し、各々の領域は異なっ
たフィルタ値を有してよい。1つの実施形態において、幾つかの領域は負のフィ
ルタ値を有してよい。使用されるフィルタは、ピクセルの中心からのサンプルの
距離に基づいて各々のサンプルのために評価される連続関数であってよい。更に
、精度を増大するため、浮動小数点値が使用されてよい。様々なフィルタ、例え
ばボックス、テント、円柱、錐、ガウス、カトマル・ローム、ミッチェル及びネ
トラバリ、ウィンドウ同期などが使用されてよい。
【0136】 更に、フィルタの加重は、図示されるような2の累乗である必要はないことに
注意すべきである。図の例は、説明目的のために単純化されている。フィルタ加
重のテーブルが使用されてよい(例えば、ピクセル又はフィルタの中心からのサ
ンプルの距離に基づいてインデックスされる多数のエントリーを有するテーブル
)。更に、幾つかの実施形態では、各々のビン内の各々のサンプルが、ピクセル
値を形成するために合計されてよい(もっとも、ビン内の幾つかのサンプルはゼ
ロの加重を有してよく、従って、最終のピクセル値へ何も寄与しなくてもよい)
【0137】 フルスクリーン・アンチエイリアシング 現在の3Dグラフィックス・システムの大多数は、線及びドットについてのみ
リアルタイムのアンチエイリアシングを提供する。更に、幾つかのシステムは、
ポリゴンの辺が「ぼかされる」ことを可能にするが、この手法は、典型的には、
全てのポリゴンが深度において予めソートされているとき最も良好に働く。これ
は、大部分のアプリケーション(ポリゴンを深度で事前にソートしない)に汎用
3Dレンダリング・ハードウェアを使用する目的を挫折させるかもしれない。1
つの実施形態において、グラフィックス・システム112は、5×5畳み込みフ
ィルタによってフィルタされる出力ピクセルの1つにつき16までのサンプルを
確率的にサンプリングすることによって、フルスクリーンのアンチエイリアシン
グを実行するように構成されてよい。
【0138】 可変解像度スーパサンプリング−図21〜図25 ここで図21を参照すると、サンプル・バッファ162を分割する1つの可能
な計画の図が示される。この実施形態において、サンプル・バッファ162は、
次の3つのネストされた領域へ分割される。即ち、窩領域354、中間領域35
2、及び周辺領域350である。これら領域の各々は、長方形の外側境界を有す
るが、中間領域及び周辺領域は、それらの中心に長方形の孔を有する。各々の領
域は、或る一定の(フレーム当たり)特性、例えば一定密度のサンプル密度及び
一定サイズのピクセル・ビンを有するように構成されてよい。1つの実施形態に
おいて、トータルの密度範囲は256であってよい。即ち、領域は、16スクリ
ーン・ピクセル(4×4)ごとに1サンプルと、1つのスクリーン・ピクセルご
とに16サンプルとの間をサポートすることができる。他の実施形態では、トー
タルの密度範囲は、他の値、例えば64に限定されてよい。1つの実施形態にお
いて、サンプル密度は、それぞれの領域を横切って線形的又は非線形的に変化す
る。他の実施形態では、ディスプレイは複数の一定サイズの領域(例えば、4×
4ピクセル・サイズの正方形、又は40×40ピクセル・サイズの正方形)へ分
割されてよいことに注意されたい。
【0139】 1つ又は複数の領域コーナー(例えば、窩領域コーナー)にまたがるポリゴン
の計算を簡単にするため、サンプル・バッファは更に複数の副領域へ分割されて
よい。図21において、副領域へ分割されたサンプル・バッファ162の1つの
実施形態が示される。これらの副領域の各々は長方形であり、グラフィックス・
システム112が、副領域内の2Dアドレスをサンプル・バッファ162内の線
形アドレスへ変換することを可能にする。従って、或る実施形態では、各々の副
領域は、副領域内のピクセルのための記憶がどこから始まるかを示すメモリ・ベ
ース・アドレスを有する。更に、各々の副領域は、その幅に関連づけられた「ス
トライド」パラメータを有してよい。
【0140】 スーパサンプリング・サンプル・バッファの他の可能な分割は、円形である。
ここで図22を参照すると、1つのそのような実施形態が示される。例えば、各
々の領域は、それに関連づけられた2つの半径を有し(即ち、360〜368)
、これらの半径は領域を3つの同心円領域へ分割する。円形領域の全ては、同じ
スクリーン・ポイント、即ち窩中心点を中心としてよい。しかし、窩中心点は、
常に窩領域の中心に置かれる必要はないことに注意されたい。幾つかの場合には
、それはスクリーン外(即ち、ディスプレイ装置の可視表示面の側面)に置かれ
てよい。図示された実施形態は、7つまでの別個の円形領域をサポートするが、
円の或るものは、2つの異なった領域によって共有されることが可能であり、そ
れによって、個別の円形領域は5以下に縮小される。
【0141】 円形領域は、実際に使用される一定サンプル密度の領域を表してよい。例えば
、図示された例において、窩領域354は、スクリーン・ピクセル当たり8サン
プルのサンプル・バッファ密度を割り振ってよいが、最も内部の円368の外側
では、それはピクセル当たり4サンプルを使用するだけであり、次の円366の
外側では、それはピクセル当たり2サンプルを使用するだけであるかもしれない
。従って、この実施形態では、リングは、必ずしも実際のメモリを節約する必要
はないが(領域がそれを行う)、サンプル・バッファとの間のメモリ帯域幅(及
びピクセル畳み込み帯域幅)を可能性として節約するかもしれない。異なった有
効サンプル密度を表示することに加えて、リングは、使用すべき異なったサンプ
ル位置決め計画を表示するために使用されてもよい。前述したように、これらの
サンプル位置決め計画は、オンチップRAM/ROM又はプログラム可能メモリ
の中に記憶されてよい。
【0142】 前述したように、幾つかの実施形態では、スーパサンプリング・サンプル・バ
ッファ162は、更にビンへ分割されてよい。例えば、1つのビンは、単一のサ
ンプル又はサンプルの配列(例えば、2×2又は4×4のサンプル)を記憶して
よい。1つの実施形態において、各々のビンは、1から16までのサンプル・ポ
イントを記憶してよい。もっとも、他の構成が可能であり予想される。各々の領
域は、特定のビン・サイズ、及び一定のメモリ・サンプル密度を有するように構
成されてよい。密度の低い領域が、必ずしもビン・サイズを大きくする必要はな
いことに注意されたい。1つの実施形態において、領域(又は、少なくとも内部
領域)は、領域を囲んでいるビン・サイズの正確な整数倍である。これは、或る
実施形態では、サンプル・バッファの、より効率的な使用を可能にするかもしれ
ない。
【0143】 可変解像度スーパサンプリングは、ディスプレイ装置上で表示される各々のピ
クセルについて、可変数のサンプルを計算することを含む。画像の或る区域は、
サンプル数が多くなれば利益を得るかもしれないが(例えば、オブジェクトのエ
ッジの近く)、他の区域は余分のサンプルを必要としないかもしれない(例えば
、一定のカラー及び輝度を有する滑らかな区域)。資金及び帯域幅を節約するた
め、余分のサンプルは、増大した解像度から利益を得る区域でのみ使用されてよ
い。例えば、もしディスプレイの一部分が青の一定のカラーで表示されるのであ
れば(例えば、背景の中で)、余分のサンプルが特に役立つとは言えないであろ
う。なぜなら、そのようなサンプルは、全て単純に一定値を有するからである(
表示されている背景色に等しい)。対照的に、もしスクリーン上の第2の区域が
複雑なテクスチャ及びエッジを有する3Dレンダリング・オブジェクトを表示し
ていれば、追加のサンプルの使用は、エイリアシングのような或るアーチファク
トを排除する上で有用であろう。画像のどの領域が、より高いサンプル密度から
利益を得るかを決定又は予言するため、多数の異なった方法が使用されてよい。
例えば、最終画像の上でエッジ分析を実行することができよう。その情報は、ど
のようにサンプル密度が分布されるべきかを予言するために使用される。更に、
ソフトウェア・アプリケーションは、フレームのどの区域が、より高いサンプル
密度を割り振られるべきかを表示できるかもしれない。
【0144】 可変解像度スーパサンプリングを実行するためには、多数の異なった方法が使
用されてよい。これらの方法は、次のような2つの一般的なカテゴリーに入る傾
向がある。(1)ドロー又はレンダリングのプロセスに関連する方法。(2)畳
み込みのプロセスに関連する方法。例えば、サンプルは、次の方法のいずれかを
使用して、スーパサンプリング・サンプル・バッファ162の中へレンダリング
されてよい。 1)均一のサンプル密度 2)領域ベース(例えば、中間、窩、及び周辺)での可変サンプル密度 3)走査線ベース(又は、少数走査線ベース)で密度を変更することによる可
変サンプル密度。
【0145】 走査線ベースでの可変サンプル密度は、密度のルックアップ・テーブルを使用
することによって達成されてよい。例えば、テーブルは、特定の走査線の最初の
5つのピクセルが、それぞれ3つのサンプルを有し、次の4つのピクセルが、そ
れぞれ2つのサンプルを有することを指定してよい。以下同様である。 畳み込み側では、次の方法が可能である。 1)均一畳み込みフィルタ 2)連続可変畳み込みフィルタ 3)多数の空間周波数で動作する畳み込みフィルタ。
【0146】 均一畳み込みフィルタは、例えば、計算される各々のピクセルについて一定範
囲(又は、選択されるサンプルの一定数)を有してよい。対照的に、連続可変畳
み込みフィルタは、ピクセルを計算するために使用されるサンプルの数を漸次に
変更してよい。関数は、注意の中心における最大から周辺区域における最小まで
、連続的に変化してよい。
【0147】 これらの方法の異なった組み合わせ(レンダリング側と畳み込み側との双方に
おいて)も可能である。例えば、一定サンプル密度がレンダリング側で使用され
、同時に、連続可変畳み込みフィルタがサンプル上で使用されてよい。
【0148】 画像のどの区域が、ピクセル当たり、より多くのサンプルを割り振られるかを
決定するために、異なった方法も予想される。1つの実施形態において、もしス
クリーン上の画像が主な焦点(例えば、コンピュータ・ゲームにおけるマリオの
ような登場人物)を有するならば、マリオの周囲の区域では、より多くのサンプ
ルが計算されてよく、他の区域(例えば、背景、又はスクリーンの縁の近く)で
は、より少ないサンプルがピクセルのために計算されてよい。
【0149】 他の実施形態では、観察者の窩注視点が、眼/頭/手追跡によって決定されて
よい。頭追跡の実施形態では、観察者の注視の方向は、観察者の頭の方向から決
定又は推定される。頭の方向は、様々なメカニズムを使用して測定されてよい。
例えば、観察者によって装着されたヘルメット又はバイザが(眼/頭追跡の場合
)、単独で、又は手追跡メカニズム、ワンド、又は眼追跡センサと組み合わせて
使用され、グラフィックス・システム112へ方向情報を提供してよい。他の代
替方法は、ユーザの額の上に置かれた赤外線反射ドットを使用する頭追跡、又は
頭追跡センサ又は眼追跡センサを組み込まれた眼鏡を使用する頭追跡を含む。頭
追跡及び手追跡を使用する1つの方法は、米国特許第5,446,834号(M
ichael Deeringによる「頭追跡ディスプレイを使用する高解像度
仮想現実システムの方法と装置」(Method and Apparatus
for High Resolution Virtual Reality
Systems Using Head Tracked Display)
1995年8月29日)に開示される。頭追跡の他の方法も可能であり予想され
る(例えば、赤外線センサ、電磁センサ、容量性センサ、ビデオ・カメラ、音響
及び超音波検出器、衣服ベース・センサ、ビデオ追跡装置、導電性インク、歪み
ゲージ、強制フィードバック検出器、光ファイバ・センサ、空気圧センサ、磁気
追跡装置、及び機械的スイッチ)。
【0150】 前述したように、眼追跡は頭追跡と組み合わせて使用されるとき特に利点があ
る。眼追跡の実施形態において、観察者の頭に関して観察者の眼の方向を検出す
ることによって、観察者の注視の方向が直接測定される。この情報は、ディスプ
レイ装置に対する観察者の頭の位置及び方向に関する他の情報と組み合わせられ
たとき、観察者の1つの窩注視点(又は、もし2つの眼追跡センサが使用される
ならば、複数の窩注視点)の正確な測定を可能にするかもしれない。眼追跡の1
つの可能な方法は、米国特許第5,638,176号(題名は「安価なインタフ
ェロメトリック眼追跡システム」(Inexpensive Interfer
ometric Eye Tracking System))に開示されてい
る。眼追跡の他の方法も可能であり予想される(例えば、前述した頭追跡の方法
)。
【0151】 どの方法が使用されるかに関わらず、観察者の窩注視点が位置を変更するにつ
れて、サンプルの分布も変化する。例えば、もし観察者の注視がスクリーンの上
方左手コーナーに集中されるならば、スクリーンの上方左手コーナーに対応する
ピクセルの各々は、8又は16のサンプルを割り振られてよく、その一方で、反
対のコーナー(即ち、スクリーンの下方右手コーナー)のピクセルは、ピクセル
当たり1つか2つだけのサンプルを割り振られてよい。一度、観察者の注視が変
化すると、ピクセル当たりのサンプルの割り当ても変化する。観察者の注視がス
クリーンの下方右手コーナーへ移動するとき、スクリーンの上方左手コーナーに
あるピクセルは、ピクセル当たり1つ又は2つだけのサンプルを割り振られてよ
い。従って、ピクセル当たりのサンプルの数は、観察者の窩注視点に関してスク
リーンの異なった領域のために積極的に変更されてよい。幾つかの実施形態では
、複数のユーザの各々が、入力をグラフィックス・システム112へ提供する頭
/眼/手追跡メカニズムを有するかもしれないことに注意されたい。これらの実
施形態では、スクリーン上に2つ以上の窩注視点が概念的に存在し、高及び低の
サンプル密度の区域に対応してよい。前述したように、これらのサンプル密度は
、レンダリング・プロセスのみ、フィルタ・プロセスのみ、又は双方のプロセス
に影響してよい。
【0152】 ここで図24A〜図24Bを参照すると、ピクセル当たりにサンプルの数を配
分する方法の1つの実施形態が示される。方法は、1つ又は複数の窩注視点に対
するピクセルの位置に基づいてサンプルの数を配分する。図24Aにおいて、窩
注視点(即ち、観察者の注視の焦点)362を決定するため、眼追跡又は頭追跡
装置360が使用される。これは、観察者の眼(図で364として表される)が
直視している方向を決定する追跡装置360を使用することによって決定されて
よい。図示されるように、この実施形態において、ピクセルは窩領域354(窩
注視点362を中心としてよい)、中間領域352、及び周辺領域350へ分割
される。
【0153】 3つのサンプル・ピクセルが図に示される。サンプル・ピクセル374は、窩
領域314の中に置かれる。窩領域314が、8つのサンプルを有するビンで構
成されるものと仮定し、また各々のピクセルに対する畳み込み半径が4つのビン
に接触すると仮定すると、最大で32のサンプルが各々のピクセルに寄与してよ
い。サンプル・ピクセル372は、中間領域352の中に置かれる。中間領域3
52は、4つのサンプルを有するビンで構成されるものと仮定し、また各々のピ
クセルに対する畳み込み半径が4つのビンに接触すると仮定すると、最大で16
のサンプルが各々のピクセルに寄与してよい。サンプル・ピクセル370は周辺
領域350の中に置かれる。周辺領域370は、それぞれ1つのサンプルを有す
るビンで構成されると仮定し、また各々のピクセルに対する畳み込み半径が1つ
のビンに接触すると仮定すると、周辺領域350内のピクセルについて、ピクセ
ル当たり1サンプルの相互関係が存在する。これらの値は単なる例であり、異な
った数の領域、ビン当たりのサンプル、及び畳み込み半径が使用されてよいこと
に注意されたい。
【0154】 ここで図24Bを参照すると、同じ例が示されるが、窩注視点362が異なっ
ている。図示されるように、追跡装置360が、窩注視点362の位置の変化を
検出したとき、それは入力をグラフィックス・システムへ提供する。次に、グラ
フィックス・システムは、窩領域354及び中間領域352の位置を調節する。
幾つかの実施形態では、或る領域(例えば中間領域352)の一部分が、ディス
プレイ装置84の縁を超えて拡張されてよい。この例では、ピクセル370は、
今や窩領域354の中にあり、その一方で、ピクセル372及び374は、今や
周辺領域の中にある。図24Aの例に示されるようなサンプル構成を仮定すると
、最大で32のサンプルがピクセル370に寄与してよく、その一方で、1つの
サンプルのみがピクセル372及び374へ寄与するであろう。都合がよいこと
に、この構成は、窩注視点(即ち、観察者の注視の焦点)に近い領域へ、より多
くのサンプルを割り振るかもしれない。これは、ディスプレイ装置84上の全て
のピクセルのために多数のサンプルを計算する必要なしに、よりリアルな画像を
観察者へ提供するかもしれない。
【0155】 ここで図25A〜図25Bを参照すると、可変解像度スーパサンプリング・サ
ンプル・バッファを構成されたコンピュータ・システムの他の実施形態が示され
る。この実施形態において、観察者の注意の中心は、主要登場人物362の位置
によって決定される。中間領域及び窩領域は、主要登場人物362がスクリーン
上を移動するにつれて、主要登場人物に中心を移す。幾つかの実施形態では、主
要登場人物は単なるカーソル(例えば、キーボード入力又はマウスによって動か
されるような)であってよい。
【0156】 更に、他の実施形態において、より高いサンプル密度を有する領域は、ディス
プレイ装置84のスクリーンの中央に中心を有してよい。都合の良いことに、こ
れは、必要な制御ソフトウェア及びハードウェアを、より少なくするかもしれな
いが、依然として、より尖鋭な画像をスクリーンの中央(観察者の注意が、大部
分の時間の間、集中するかもしれない場所)で提供する。
【0157】 これまでの実施形態は、かなり詳細に説明されたが、他のバージョンが可能で
ある。一度、上記の開示が十分に理解されたならば、多数の変形及び変更が当業
者に明らかとなるであろう。本発明の請求項は、そのような変形及び変更を全て
包含するように解釈されるべきことが意図されている。ここで使用された見出し
は、構成を目的とするだけであって、ここで提供された説明又は本発明の請求項
を限定することを意味しないことに注意すべきである。
【0158】 (産業上の応用) 本発明及び添付の図面を検討した後で当業者に分かるように、ここで開示され
たシステム及び方法は、多くの異なった分野に応用可能である。このような分野
として、グラフィックス・システム及びサブシステム、コンピュータ、計算装置
、セット・トップ・ボックス、ゲーム・コンソール、携帯情報端末、ディジタル
・テレビ、ビデオ・プロセッサ、グラフィックス・プロセッサ、マルチメディア
・システム及びプロセッサ、バーチャル・リアリティ・システム、及びグラフィ
ックス・データをレンダリング及び/又は表示する他のシステムがある。しかし
、これらに限定されない。
【図面の簡単な説明】
【図1A】 図1Aは、グラフィックス・システムの1つの実施形態を含むコンピュータ・
システムの1つの実施形態を示す。
【図1B】 図1Bは、グラフィックス・システムを含むコンピュータ・システムの他の実
施形態を示す。
【図1C】 図1Cは、仮想現実ワークステーションの一部分であるコンピュータ・システ
ムの他の実施形態を示す。
【図2】 図2は、図1A〜図1Cのコンピュータ・システムが接続されてよいネットワ
ークの1つの実施形態を示す。
【図3A】 図3Aは、図1のグラフィックス・システムの他の実施形態を仮想現実ワーク
ステーションとして示す図である。
【図3B】 図3Bは、サンプル・バッファを有するグラフィックス・システムの1つの実
施形態を示す、より詳細な図である。
【図4】 図4は、伝統的なピクセル計算を示す。
【図5A】 図5Aは、スーパサンプリングの1つの実施形態を示す。
【図5B】 図5Bは、サンプルのランダム分布を示す。
【図6】 図6は、可変解像度スーパサンプリング・サンプル・バッファの1つの実施形
態を有するグラフィックス・システムの1つの実施形態の詳細を示す。
【図7】 図7は、可変解像度スーパサンプリング・サンプル・バッファ及びダブルバッ
ファ・サンプル位置メモリの1つの実施形態を有するグラフィックス・システム
の他の実施形態の詳細を示す。
【図8】 図8は、サンプル位置決め計画の3つの異なった実施形態の詳細を示す。
【図9】 図9は、サンプル位置決め計画の1つの実施形態の詳細を示す。
【図10】 図10は、サンプル位置決め計画の他の実施形態の詳細を示す。
【図11A】 図11Aは、垂直スクリーン・ストライプ(列)を使用してサンプルをピクセ
ルへ並列に変換するように構成されたグラフィックス・システムの1つの実施形
態の詳細を示す。
【図11B】 図11Bは、垂直スクリーン・ストライプ(列)を使用してサンプルをピクセ
ルへ並列に変換するように構成されたグラフィックス・システムの他の実施形態
の詳細を示す。
【図12】 図12は、水平スクリーン・ストライプ(行)を使用してサンプルをピクセル
へ並列に変換するように構成されたグラフィックス・システムの他の実施形態の
詳細を示す。
【図13】 図13は、長方形領域を使用してサンプルをピクセルへ並列に変換するように
構成されたグラフィックス・システムの他の実施形態の詳細を示す。
【図14】 図14は、サンプルをサンプル・バッファから読み出す1つの方法の詳細を示
す。
【図15】 図15は、境界条件を処理する方法の1つの実施形態の詳細を示す。
【図16】 図16は、境界条件を処理する方法の他の実施形態の詳細を示す。
【図17】 図17は、サンプルをスーパサンプリング・サンプル・バッファの中へドロー
する方法の1つの実施形態を示すフローチャートである。
【図18】 図18は、三角形の頂点を符号化する方法の1つの実施形態を示す。
【図19】 図19は、サンプルからピクセルを計算する方法の1つの実施形態を示す。
【図20】 図20は、サンプル・セットの例について、サンプル・ピクセル計算の1つの
実施形態の詳細を示す。
【図21】 図21は、サンプルの密度を変更する方法の1つの実施形態を示す。
【図22】 図22は、サンプルの密度を変更する方法の他の実施形態を示す。
【図23】 図23は、サンプルの密度を変更する方法の更に他の実施形態を示す。
【図24】 図24Aから図24Bは、サンプルの密度を変更するため眼追跡を使用する方
法の1つの実施形態の詳細を示す。
【図25】 図25Aから図25Bは、サンプルの密度を変更するため眼追跡を使用する方
法の1つの実施形態の詳細を示す。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年2月19日(2001.2.19)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW (72)発明者 ネイグル,ナサニエル,ディヴィッド アメリカ合衆国 94588 カリフォルニア 州,プレザントン,オーク クリーク コ ート 7756 (72)発明者 ネルソン,スコット,アール. アメリカ合衆国 94588 カリフォルニア 州,プレザントン,クローブウッド レー ン 4429 Fターム(参考) 5B057 CH04 CH11 CH14 5B080 AA13 BA01 BA05 CA01 CA03 CA05 CA09 FA02 FA03 FA14

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 グラフィックス・システムであって、 グラフィックス・データのセットを受け取って、グラフィックス・データに基
    づいて複数のサンプルをレンダリングするように構成された1つ又は複数のプロ
    セッサ(352)と、 複数のサンプルを記憶するように構成されたサンプル・バッファ(162)と
    、 複数のサンプル・ピクセル計算ユニット(360)と、ここでサンプル・ピク
    セル計算ユニットは、出力ピクセルを作り出すためサンプル・バッファからサン
    プルを受け取ってフィルタするように構成され、出力ピクセルは、ディスプレイ
    装置上に画像を形成するように使用可能であり、複数のサンプル・ピクセル計算
    ユニットの各々は、画像の複数の領域の異なった1つに対応するピクセルを生成
    するように構成されていること を備えたグラフィックス・システム。
  2. 【請求項2】 グラフィックス・データのセットをレンダリングする方法で
    あって、 グラフィックス・データを受け取り、 グラフィックス・データに基づいて1つ又は複数のサンプルを生成し、 サンプルを記憶し、 サンプルを複数の領域へ分割し、 記憶されたサンプルを、複数の領域から選択し、 選択されたサンプルをフィルタして、複数の出力ピクセルを並列に形成し、こ
    こで出力ピクセルは、ディスプレイ装置上に画像を形成するために使用可能であ
    る ことを備えた方法。
  3. 【請求項3】 各々のサンプルがカラー成分を含み、前記フィルタリングが
    、 どのサンプルが所定のフィルタ・エンベロープの中にあるかを決定し、 所定のフィルタ・エンベロープ内のサンプルと、1つ又は複数の加重ファクタ
    とを乗算し、ここで前記加重ファクタは、フィルタ・エンベロープの中心に対す
    るサンプルの位置に関して変化し、 加重されたサンプルを合計して、出力ピクセルを形成する ことを備えた、請求項2に記載の方法。
  4. 【請求項4】 コンピュータ・システムであって、 ディスプレイ装置(84)と、 グラフィックス・データのセットを受け取る手段と、 グラフィックス・データのセットに基づいて複数のサンプルをレンダリングす
    るように構成された1つ又は複数のプロセッサ(352)と、 レンダリングされたサンプルを記憶するように構成されたサンプル・バッファ
    (162)と、 記憶されたサンプルをフィルタして、出力ピクセルを作り出すように構成され
    た複数のサンプル・ピクセル計算ユニット(170)と、ここで出力ピクセルは
    、ディスプレイ装置上に画像を形成するように使用可能であり、複数のサンプル
    ・ピクセル計算ユニットの各々は、画像の複数の異なった領域の1つに対応する
    ピクセルを生成するように構成されていることと を備えたコンピュータ・システム。
  5. 【請求項5】 各々のサンプルがカラー成分を含み、サンプル・ピクセル計
    算ユニットが、どのサンプルが所定のフィルタ・エンベロープの中にあるかを決
    定し、所定のフィルタ・エンベロープ内のサンプルと、1つ又は複数の加重ファ
    クタとを乗算し、ここで加重ファクタは、フィルタ・エンベロープの中心に対す
    るサンプルの位置に関して変化し、加重されたサンプルを合計して、1つ又は複
    数の出力ピクセルを形成するように構成された、請求項1から4のいずれか一項
    に記載のシステム又は方法。
  6. 【請求項6】 各々の領域が、画像の異なった垂直又は水平ストライプに対
    応する、請求項1から5のいずれか一項に記載のシステム又は方法。
  7. 【請求項7】 各々の領域が、1つ又は複数の奇数又は偶数の走査線に対応
    する画像部分を含む、請求項1から5のいずれか一項に記載のシステム又は方法
  8. 【請求項8】 各々の領域が、画像の異なった4分円を含む、請求項1から
    5のいずれか一項に記載のシステム又は方法。
  9. 【請求項9】 複数の領域がオーバラップする、請求項1から8のいずれか
    一項に記載のシステム又は方法。
  10. 【請求項10】 ディスプレイ装置が複数の個別のディスプレイ装置を含み
    、各々の領域が複数の個別のディスプレイ装置の1つに対応する、請求項1から
    9のいずれか一項に記載のシステム又は方法。
  11. 【請求項11】 ディスプレイ装置が複数の個別のディスプレイ装置を含み
    、各々の領域が、複数の個別のディスプレイ装置の異なった1つに対応する、請
    求項1から9のいずれか一項に記載のシステム又は方法。
  12. 【請求項12】 領域がフレーム・ベースで大きさを変化させる、請求項1
    から11のいずれか一項に記載のシステム又は方法。
  13. 【請求項13】 画像の領域が、フレーム・ベースで大きさを変化させて、
    サンプル・ピクセル計算ユニットの各々によってフィルタされたサンプルの数を
    バランスさせる、請求項1から11のいずれか一項に記載のシステム又は方法。
  14. 【請求項14】 各々の領域が、画像の異なった長方形部分である、請求項
    1から5及び9から13のいずれか一項に記載のシステム又は方法。
  15. 【請求項15】 各々のサンプルが、カラー成分を有し、サンプル・ピクセ
    ル計算ユニットが、 どのサンプルが、所定のフィルタ・エンベロープの内部にあるかを決定し、 所定のフィルタ・エンベロープ内のサンプルと、1つ又は複数の加重ファクタ
    とを乗算し、ここで加重ファクタは、フィルタ・エンベロープの中心に対するサ
    ンプルの位置に関して変化する ように構成された、請求項1から14のいずれか一項に記載のシステム又は方
    法。
  16. 【請求項16】 各々のサンプルがz成分を含む、請求項1から15のいず
    れか一項に記載のシステム又は方法。
  17. 【請求項17】 サンプル・バッファ内に記憶されたサンプルがダブルバッ
    ファされる、請求項1から16のいずれか一項に記載のシステム又は方法。
  18. 【請求項18】 領域が時間と共にサイズを変化させる、請求項1から17
    のいずれか一項に記載のシステム又は方法。
  19. 【請求項19】 各々の領域が、フレーム・ベースでサイズを変化させて、
    サンプル・ピクセル計算ユニットの各々によってフィルタされるサンプルの数を
    バランスさせる、請求項1から18のいずれか一項に記載のシステム又は方法。
  20. 【請求項20】 各々の領域が、フレーム・ベースでサイズを変化させ、各
    々の領域でサンプルの数を均一にする、請求項1から19のいずれか一項に記載
    のシステム又は方法。
  21. 【請求項21】 サンプル・バッファ内に記憶されたサンプルがビンの中に
    記憶される、請求項1から20のいずれか一項に記載のシステム又は方法。
  22. 【請求項22】 各々のピクセルのためにフィルタされたサンプルの数が、
    領域を横切って変化する、請求項1から21のいずれか一項に記載のシステム又
    は方法。
JP2000600241A 1999-02-17 2000-02-17 並列のサンプル・ピクセル計算を実行するように構成されたグラフィックス・システム Pending JP2002537614A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/251,844 US6466206B1 (en) 1998-02-17 1999-02-17 Graphics system with programmable real-time alpha key generation
US09/251,844 1999-02-17
US09/472,940 1999-12-27
US09/472,940 US6496187B1 (en) 1998-02-17 1999-12-27 Graphics system configured to perform parallel sample to pixel calculation
PCT/US2000/004148 WO2000049577A1 (en) 1999-02-17 2000-02-17 A graphics system configured to perform parallel sample to pixel calculation

Publications (1)

Publication Number Publication Date
JP2002537614A true JP2002537614A (ja) 2002-11-05

Family

ID=26941855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000600241A Pending JP2002537614A (ja) 1999-02-17 2000-02-17 並列のサンプル・ピクセル計算を実行するように構成されたグラフィックス・システム

Country Status (7)

Country Link
US (1) US6496187B1 (ja)
EP (1) EP1161743B1 (ja)
JP (1) JP2002537614A (ja)
AU (1) AU771752B2 (ja)
CA (1) CA2362353A1 (ja)
DE (1) DE60000335T2 (ja)
WO (1) WO2000049577A1 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502909A (ja) * 2001-09-12 2005-01-27 マイクロニック レーザー システムズ アクチボラゲット 高精度リソグラフィ用グラフィックス・エンジン
JP2005339144A (ja) * 2004-05-26 2005-12-08 Sharp Corp 画像処理回路及び液晶表示装置
JP2012511168A (ja) * 2008-12-05 2012-05-17 マイクロニック マイデータ アーベー マイクロリソグラフ印刷における勾配を援用した画像再サンプリング
JP2017097901A (ja) * 2013-12-09 2017-06-01 ゼンソモトリック インストゥルメンツ ゲゼルシャフト ヒューア イノベイティブ ゼンソリック エムベーハーSENSOMOTORIC INSTRUMENTS Gesellschaft fur innovative Sensorik mbH 目追跡装置動作方法及び能動的電力管理を行う目追跡装置
JP2017517025A (ja) * 2014-04-05 2017-06-22 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること
US10134175B2 (en) 2014-04-05 2018-11-20 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
JP2019507380A (ja) * 2016-02-17 2019-03-14 グーグル エルエルシー 中心窩レンダリングされるディスプレイ
US10417741B2 (en) 2014-04-05 2019-09-17 Sony Interactive Entertainment LLC Varying effective resolution by screen location by altering rasterization parameters
US10438396B2 (en) 2014-04-05 2019-10-08 Sony Interactive Entertainment LLC Method for efficient construction of high resolution display buffers
US10438319B2 (en) 2014-04-05 2019-10-08 Sony Interactive Entertainment LLC Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US10510183B2 (en) 2014-04-05 2019-12-17 Sony Interactive Entertainment LLC Graphics processing enhancement by tracking object and/or primitive identifiers
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850236B2 (en) * 1998-02-17 2005-02-01 Sun Microsystems, Inc. Dynamically adjusting a sample-to-pixel filter in response to user input and/or sensor input
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6664955B1 (en) * 2000-03-15 2003-12-16 Sun Microsystems, Inc. Graphics system configured to interpolate pixel values
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
JP2002140722A (ja) * 2000-08-23 2002-05-17 Sony Computer Entertainment Inc エイリアシングを除去した画像を描画する装置及び方法
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US6907395B1 (en) 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US6886038B1 (en) * 2000-10-24 2005-04-26 Microsoft Corporation System and method for restricting data transfers and managing software components of distributed computers
US6915338B1 (en) 2000-10-24 2005-07-05 Microsoft Corporation System and method providing automatic policy enforcement in a multi-computer service application
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7093288B1 (en) 2000-10-24 2006-08-15 Microsoft Corporation Using packet filters and network virtualization to restrict network communications
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US20030063095A1 (en) * 2000-12-29 2003-04-03 Sun Microsystems, Inc. Statistic logic for collecting a histogram of pixel exponent values
US6826311B2 (en) * 2001-01-04 2004-11-30 Microsoft Corporation Hough transform supporting methods and arrangements
US20020140706A1 (en) * 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
US7243374B2 (en) 2001-08-08 2007-07-10 Microsoft Corporation Rapid application security threat analysis
US7145577B2 (en) * 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
CN1582407A (zh) 2001-09-12 2005-02-16 麦克罗尼克激光***公司 使用空间光调制器的改进方法和装置
JP3792149B2 (ja) * 2001-11-12 2006-07-05 任天堂株式会社 画像処理装置および画像処理プログラム
US6618185B2 (en) 2001-11-28 2003-09-09 Micronic Laser Systems Ab Defective pixel compensation method
US7106490B2 (en) 2001-12-14 2006-09-12 Micronic Laser Systems Ab Methods and systems for improved boundary contrast
US6975322B2 (en) 2002-03-12 2005-12-13 Sun Microsystems, Inc. Dynamically adjusting a number of rendering passes in a graphics system
EP1345168B1 (en) * 2002-03-12 2007-10-24 Sun Microsystems, Inc. Dynamically adjusting sample density and/or number of rendering passes in a graphics system
US6999087B2 (en) 2002-03-12 2006-02-14 Sun Microsystems, Inc. Dynamically adjusting sample density in a graphics system
US6922199B2 (en) * 2002-08-28 2005-07-26 Micron Technology, Inc. Full-scene anti-aliasing method and system
DE602004003125T2 (de) 2003-01-15 2007-08-23 Micronic Laser Systems Ab Verfahren zur erkennung eines defekten pixels
US7266255B1 (en) 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
WO2005050557A2 (en) 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US20090027383A1 (en) 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US8497865B2 (en) * 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US20080074428A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
JP4841250B2 (ja) * 2003-12-19 2011-12-21 ティディヴィジョン コーポレイション エス.エー. デ シー.ヴィ. 3dビデオゲーム・システム
WO2005081070A1 (en) 2004-02-25 2005-09-01 Micronic Laser Systems Ab Methods for exposing patterns and emulating masks in optical maskless lithography
JP2005310243A (ja) * 2004-04-20 2005-11-04 Seiko Epson Corp メモリコントローラ、半導体集積回路装置、半導体装置、マイクロコンピュータ及び電子機器
CN101849227A (zh) * 2005-01-25 2010-09-29 透明信息技术有限公司 在单片构造的硅芯片上采用多个图形核心的图形处理和显示***
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7616207B1 (en) * 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices
US10026140B2 (en) * 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US8893016B2 (en) * 2005-06-10 2014-11-18 Nvidia Corporation Using a graphics system to enable a multi-user computer system
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7973797B2 (en) * 2006-10-19 2011-07-05 Qualcomm Incorporated Programmable blending in a graphics processing unit
US7889205B1 (en) 2006-10-24 2011-02-15 Adobe Systems Incorporated Frame buffer based transparency group computation on a GPU without context switching
US20080252652A1 (en) * 2007-04-13 2008-10-16 Guofang Jiao Programmable graphics processing element
US7675524B1 (en) * 2007-05-17 2010-03-09 Adobe Systems, Incorporated Image processing using enclosed block convolution
KR20090054835A (ko) * 2007-11-27 2009-06-01 삼성전자주식회사 3차원 영상 처리방법 및 그 장치
KR100980449B1 (ko) * 2007-12-17 2010-09-07 한국전자통신연구원 병렬 전역조명 렌더링 방법 및 시스템
EP2269108B1 (en) 2008-04-24 2017-11-01 Micronic Mydata AB Spatial light modulator with structured mirror surfaces
KR101477538B1 (ko) * 2008-08-06 2014-12-30 삼성전자주식회사 디지털 이미지 처리장치, 그 제어방법 및 제어방법을실행하기 위한 프로그램을 저장한 기록매체
JP5195250B2 (ja) * 2008-10-03 2013-05-08 ソニー株式会社 画像表示システム及び画像表示装置
CA2684513A1 (en) * 2008-11-17 2010-05-17 X6D Limited Improved performance 3d glasses
US20100128046A1 (en) * 2008-11-26 2010-05-27 Microsoft Corporation Parallel poisson disk sampling
US8406553B2 (en) * 2009-07-17 2013-03-26 Microsoft Corporation Poisson disk sample maps
US8102305B2 (en) * 2010-01-13 2012-01-24 Raytheon Company Filtering sensor data to provide estimates of structures
US8928690B2 (en) * 2012-03-20 2015-01-06 Advanced Micro Devices, Inc. Methods and systems for enhanced quality anti-aliasing
US9251555B2 (en) 2012-06-08 2016-02-02 2236008 Ontario, Inc. Tiled viewport composition
US8817044B2 (en) * 2012-06-12 2014-08-26 Christie Digital Systems Usa, Inc. Method, system and apparatus for blending overlapping images
US9265458B2 (en) 2012-12-04 2016-02-23 Sync-Think, Inc. Application of smooth pursuit cognitive testing paradigms to clinical drug development
US9380976B2 (en) 2013-03-11 2016-07-05 Sync-Think, Inc. Optical neuroinformatics
US9569811B2 (en) * 2014-06-26 2017-02-14 Qualcomm Incorporated Rendering graphics to overlapping bins
US10319114B2 (en) 2017-07-13 2019-06-11 Google Llc Foveated compression of display streams
CN114387647B (zh) * 2021-12-29 2023-04-28 北京瑞莱智慧科技有限公司 对抗扰动生成方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0430501B1 (en) * 1989-11-17 1999-02-03 Digital Equipment Corporation System and method for drawing antialiased polygons
US5123085A (en) 1990-03-19 1992-06-16 Sun Microsystems, Inc. Method and apparatus for rendering anti-aliased polygons
US5117289A (en) 1990-04-26 1992-05-26 Lyon-Lamb Video Animation Real-time video image converter
DE69127516T2 (de) 1990-06-29 1998-02-26 Philips Electronics Nv Verfahren und Gerät zur Bilderzeugung
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
GB2278524B (en) 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5742277A (en) * 1995-10-06 1998-04-21 Silicon Graphics, Inc. Antialiasing of silhouette edges
US5999187A (en) * 1996-06-28 1999-12-07 Resolution Technologies, Inc. Fly-through computer aided design method and apparatus
US5745125A (en) * 1996-07-02 1998-04-28 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
US6072498A (en) * 1997-07-31 2000-06-06 Autodesk, Inc. User selectable adaptive degradation for interactive computer rendering system
US6204859B1 (en) * 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
JP2002503854A (ja) * 1998-02-17 2002-02-05 サン・マイクロシステムズ・インコーポレーテッド ポリゴンのためのグラフィックス・システム・パフォーマンスの推定

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502909A (ja) * 2001-09-12 2005-01-27 マイクロニック レーザー システムズ アクチボラゲット 高精度リソグラフィ用グラフィックス・エンジン
JP2005339144A (ja) * 2004-05-26 2005-12-08 Sharp Corp 画像処理回路及び液晶表示装置
JP2012511168A (ja) * 2008-12-05 2012-05-17 マイクロニック マイデータ アーベー マイクロリソグラフ印刷における勾配を援用した画像再サンプリング
JP2017097901A (ja) * 2013-12-09 2017-06-01 ゼンソモトリック インストゥルメンツ ゲゼルシャフト ヒューア イノベイティブ ゼンソリック エムベーハーSENSOMOTORIC INSTRUMENTS Gesellschaft fur innovative Sensorik mbH 目追跡装置動作方法及び能動的電力管理を行う目追跡装置
US10528127B2 (en) 2013-12-09 2020-01-07 Apple Inc. Method for operating an eye tracking device and eye tracking device for providing an active power management
US10438396B2 (en) 2014-04-05 2019-10-08 Sony Interactive Entertainment LLC Method for efficient construction of high resolution display buffers
US10614549B2 (en) 2014-04-05 2020-04-07 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US10417741B2 (en) 2014-04-05 2019-09-17 Sony Interactive Entertainment LLC Varying effective resolution by screen location by altering rasterization parameters
US10134175B2 (en) 2014-04-05 2018-11-20 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US10438319B2 (en) 2014-04-05 2019-10-08 Sony Interactive Entertainment LLC Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US10510183B2 (en) 2014-04-05 2019-12-17 Sony Interactive Entertainment LLC Graphics processing enhancement by tracking object and/or primitive identifiers
JP2017517025A (ja) * 2014-04-05 2017-06-22 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
JP2020091877A (ja) * 2014-04-05 2020-06-11 ソニー・インタラクティブエンタテインメント エルエルシー 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること
US10685425B2 (en) 2014-04-05 2020-06-16 Sony Interactive Entertainment LLC Varying effective resolution by screen location by altering rasterization parameters
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US11238639B2 (en) 2014-04-05 2022-02-01 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US11301956B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment LLC Varying effective resolution by screen location by altering rasterization parameters
JP2019507380A (ja) * 2016-02-17 2019-03-14 グーグル エルエルシー 中心窩レンダリングされるディスプレイ

Also Published As

Publication number Publication date
DE60000335D1 (de) 2002-09-19
DE60000335T2 (de) 2002-12-05
AU771752B2 (en) 2004-04-01
WO2000049577A1 (en) 2000-08-24
AU3235600A (en) 2000-09-04
EP1161743A1 (en) 2001-12-12
CA2362353A1 (en) 2000-08-24
EP1161743B1 (en) 2002-08-14
US6496187B1 (en) 2002-12-17

Similar Documents

Publication Publication Date Title
JP2002537614A (ja) 並列のサンプル・ピクセル計算を実行するように構成されたグラフィックス・システム
US6801202B2 (en) Graphics system configured to parallel-process graphics data using multiple pipelines
US7474308B2 (en) Graphics system having a variable density super-sampled sample buffer
US6466206B1 (en) Graphics system with programmable real-time alpha key generation
US6417861B1 (en) Graphics system with programmable sample positions
US6664955B1 (en) Graphics system configured to interpolate pixel values
US6850236B2 (en) Dynamically adjusting a sample-to-pixel filter in response to user input and/or sensor input
US6426755B1 (en) Graphics system using sample tags for blur
US7106322B2 (en) Dynamically adjusting a sample-to-pixel filter to compensate for the effects of negative lobes
US6781585B2 (en) Graphics system having a super-sampled sample buffer and having single sample per pixel support
US6525723B1 (en) Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
EP1161745B1 (en) Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US20030020709A1 (en) Graphics system having a super-sampled sample buffer and having single sample per pixel support
EP1161744B1 (en) Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
EP1155385B1 (en) Graphics system having a super-sampled sample buffer with efficient storage of sample position information
EP1207497A2 (en) Graphics system with variable resolution super-sampling
EP1290643A2 (en) Graphics system using a blur filter
KR20010113669A (ko) 병렬적 샘플-픽셀 연산을 수행하도록 구성된 그래픽 시스템
KR20020031097A (ko) 샘플 위치정보를 효율적으로 저장하는 수퍼-샘플되는샘플버퍼를 가지는 그래픽 시스템