JP2003515853A - 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム - Google Patents
単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システムInfo
- Publication number
- JP2003515853A JP2003515853A JP2001542053A JP2001542053A JP2003515853A JP 2003515853 A JP2003515853 A JP 2003515853A JP 2001542053 A JP2001542053 A JP 2001542053A JP 2001542053 A JP2001542053 A JP 2001542053A JP 2003515853 A JP2003515853 A JP 2003515853A
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- coupled
- vertex data
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
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)
- Semiconductor Lasers (AREA)
Abstract
Description
ュールを含んでいるグラフィックパイプラインシステムに関する。
ータ支援設計(CAD)は、多くの産業で急激に成長しており、コンピュータ端
末、カーソル、CRTおよびグラフィック端末が鉛筆および紙に置換えられ、コ
ンピュータディスクおよびテープが画材保管場所に置換えられている。全てでは
ないがほとんどのこれらの産業は3次元オブジェクトを操作し、表示することを
非常に必要とする。このことによってコンピュータスクリーンまたは他のディス
プレイ装置上に3次元オブジェクトをモデル化し、レンダリングし、表示する方
法に対する関心および研究が広く普及している。しかしながら、3次元オブジェ
クトを現実的にレンダリングし表示することを必要とするコンピュータの計算量
は非常に大きい状態であり、3次元オブジェクトの真の現実的な表示はハイエン
ドシステムに非常に限定される。しかしながら、3次元オブジェクトを迅速に現
実的にレンダリングし表示できる廉価なシステムの必要性が非常に増加している
。
ある。コンピュータゲームの現在の世代はこれまで増加した方法で3次元グラフ
ィックへ移行している。同時に、プレイ速度は益々速く駆動される。この組合わ
せは比較的廉価なシステムで3次元グラフィックを急速にレンダリングする真の
必要性をかきたてている。ゲームに加えて、この必要性はe−コマースアプリケ
ーションによってもかきたてられ、これは増加したマルチメディアの能力を必要
としている。
ータ処理を含んでいる。例えば、3次元オブジェクトをレンダリングするため、
レンダリングされるオブジェクトを規定する座標点または頂点のセットが形成さ
れなければならない。頂点はレンダリングされ表示されるオブジェクトの表面を
規定する多角形を形成するように接合されることができる。オブジェクトを規定
する頂点が一度形成されると、頂点は基準の1つのオブジェクトまたはモデルフ
レームから基準のワールドフレームへ、最終的には平面の表示装置で表示される
ことができる2次元座標に変換されなければならない。このようにして、頂点は
可視できるエリア外に入るので回転されスケールされ削除されまたはクリップさ
れ、種々のライティング方式により照明され、色付けされてもよい。したがって
3次元オブジェクトをレンダリングし表示するプロセスは、コンピュータ処理上
集中的であり、多数の頂点を含む可能性がある。
来技術として図1に示されている。このようなシステムでは、データソース10は
プリミティブを規定する拡張された頂点ストリームを発生する。これらの頂点は
パイプライン化されたグラフィックシステム12により記憶の目的で頂点メモリ13
を経て一度に1つ通過される。拡張された頂点が一度頂点メモリ13からパイプラ
イン化されたグラフィックシステム12へ受信されると、頂点は変換され、変換モ
ジュール14とライティングモジュール16によりそれぞれライティングされ、さら
にクリップされラスター化装置18によりレンダリングを設定され、したがって、
レンダーリングされたプリミティブを発生し、表示装置20で表示される。
ーカルまたはモデル座標から、レンダリングされたオブジェクトの表示に使用さ
れる2次元ウィンドウへの投影を行うために使用されてもよい。ライティングモ
ジュール16は種々のライティング方式、光位置、周囲光レベル、材料等に基づい
て頂点の色と外観を設定する。ラスター化モジュール18は先に変換されおよび/
または照明されている頂点をラスター化またはレンダリングする。ラスター化モ
ジュール18はオブジェクトをレンダリングターゲットに描写し、これはレンダリ
ングされたデータを表示装置に移動するディスプレイ装置または中間ハードウェ
アまたはソフトウェア構造である。
ラフィック処理コンピュータポーネットの速度を増加することが通常必要とされ
る。通常、システムの速度を増加するために集積がしばしば使用される。集積は
1つの集積回路に異なる処理モジュールを含ませることを意味する。外部バスと
反対に微細な半導体環境で通信するこのような処理モジュールにより、速度は非
常に増加される。
る価格によりしばしば制限を受ける。グラフィック処理の領域では、速度を増加
するための変換、ライティング、ラスター化モジュールを集積する試みは価格を
非常に高価にする。この価格の増加の理由は、必要な集積回路が単に高価になり
過ぎる寸法になるので実行可能でないためである。
能の変換およびライティングエンジンは単独で非常に複雑であり、したがって任
意の付加的な機能性を有した構成にすることはいうまでもなく、チップ上に構成
すること自体が高価である。さらに、通常のラスター化装置はクリッピング、レ
ンダリング等のタスクで多くの面をもち、このようなモジュールを変換およびラ
イティングモジュールと結合するような価格の効率化の試みをほぼ不可能にする
。
、ラスター化モジュールが必要とされる。
このようなシステムは頂点データを受信するための頂点属性バッファに結合され
るように構成されている変換モジュールを含んでいる。変換モジュールはオブジ
ェクトスペースからスクリーンスペースへ頂点データを変換する作用を行う。変
換モジュールには変換モジュールから受信された頂点データについてライティン
グ動作を行うための単一の半導体プラットフォーム上に位置されているライティ
ングモジュールが結合されている。またライティングモジュールに結合され、ラ
イティングモジュールから受信される頂点データをレンダリングするための単一
の半導体プラットフォームに位置されているラスター化装置も含まれている。
属性バッファに結合されるように構成された入力バッファを含むことにより集積
化を容易にするように設計されている。乗算論理装置は入力バッファの出力に結
合される第1の入力を有する。また、乗算論理装置の出力に結合されている第1
の入力を有する演算論理装置が設けられている。演算論理装置の出力はレジスタ
装置の入力に結合されている。
演算論理装置の出力に結合された入力を含んでいる。さらに反転論理装置の出力
と乗算論理装置の第2の入力の間に結合されている変換モジュールも含まれてい
る。使用において、変換モジュールはスカラー頂点データをベクトル頂点データ
へ変換する機能を行う。
タを処理するため、入力バッファ、乗算論理装置、演算論理装置、レジスタ装置
、反転論理装置、変換モジュールと関連して使用される複数の定数および変数を
記憶している。最終的に、出力変換器は処理された頂点データを出力するために
ライティングモジュールに結合されるため演算論理装置の出力に結合されている
。
ータを受信するために変換システムに結合されるように構成された複数の入力バ
ッファを含んでいる。入力バッファは第1の入力バッファと、第2の入力バッフ
ァと、第3の入力バッファとを含んでいる。第1の入力バッファと、第2の入力
バッファと、第3の入力バッファとの入力は変換システムの出力に結合されてい
る。
バッファの出力に結合される第2の入力とを有する乗算論理装置が含まれている
。演算論理装置は第2の入力バッファの出力に結合された第1の入力を有してい
る。演算論理装置はさらに乗算論理装置の出力に結合される第2の入力を有する
。演算論理装置の出力はライティングシステムの出力に結合されている。
力に結合されている出力とを有する第1のレジスタ装置が設けられている。第2
のレジスタ装置は演算論理装置の出力に結合されている入力を有する。また、こ
のような第2のレジスタは乗算論理装置の第1の入力と第2の入力に結合される
出力を有する。ライティング論理装置もまた設けられており、演算論理装置の出
力に結合された第1の入力と、第1の入力バッファの出力に結合された第2の入
力と、乗算論理装置の第1の入力に結合された出力とを有している。
出力の少なくとも1つに結合される。メモリは頂点データを処理するために、入
力バッファ、乗算論理装置、演算論理装置、第1のレジスタ装置、第2のレジス
タ装置、ライティング論理装置と関連して使用される複数の定数および変数をそ
こに記憶している。
化を行うために均質のクリップスペースで動作するラスター化装置で動作しても
よい。これは単一の半導体プラットフォーム上の全てのコンポーネントの配置を
容易にする。均質のクリップスペースで動作するために、ラスター化装置は隣接
する設定モジュールからプリミティブを受信するときにプリミティブを規定する
ラインのライン方程式を決定する。その後、W−値はラインの交差点のライン方
程式を使用して計算される。エリアはその後計算されたW−値に基づいて決定さ
れる。このようなエリアは描かれるディスプレイの一部分の表示である。エリア
中のスペースはその後、その画素をレンダリングするためのライン方程式を使用
して識別される。
の図を検討することによって明らかになるであろう。 上記およびその他の特徴および利点は、添付図面を参照とする以下の本発明の
好ましい実施形態の詳細な説明からさらによく理解されるであろう。 図1は、従来技術を示している。図1A乃至32Cは、本発明のグラフィック
パイプラインシステムを示す。図1Aは、本発明の1実施形態の種々のコンポー
ネントを示すフロー図である。示されているように、本発明は、頂点属性バッフ
ァ(VAB)50、変換モジュール52、ライティングモジュール54、および設定モ
ジュール57を備えたラスター化モジュール56を含む4つの主要なモジュールに分
けられる。1実施形態において、上記の各モジュールは、以下においてさらに詳
細に説明するように単一の半導体プラットフォーム上に配置されている。この説
明において、単一の半導体プラットフォームとはただ1つの単一の半導体ベース
の集積回路またはチップのことである。
態を収集し、保持するために含まれている。完成された頂点は変換モジュール52
によって処理され、その後ライティングモジュール52に送られる。変換モジュー
ル52は、照明を行うライティングモジュール54に対してベクトル発生する。ライ
ティングモジュール54の出力は、プリミティブを設定する設定モジュールに適し
たスクリーンスペースデータである。その後、ラスター化モジュール56はプリミ
ティブのラスター化を行う。変換およびライティングモジュール52および54は、
コマンドが一度スタートされると常に終了されるように、コマンドレベルでのみ
機能停止することを認識しなければならない。
標名オープンGL)およびD3D(商標名)変換およびライティングパイプライ
ンを少なくとも部分的に使用するハードウェア構造を含んでいる。オープンGL
(商標名)は2−Dおよび3−Dグラフィックイメージを既定するコンピュータ
業界の標準アプリケーションプログラムインターフェース(API)である。こ
のオープンGL(商標名)により、アプリケーションは任意のオペレーティング
システムにおいて任意のオープンGL(商標名)に従うグラフィックアダプタを
使用して同じ効果を生成する。オープンGL(商標名)は、1組のコマンドまた
は即時実行機能を特定する。各コマンドは描写アクションを指令するか、あるい
は特別な効果を生じさせる。
ように、VAB50はコマンドビット200 を送り、一方において頂点の属性を表す
データビット204 とモードビット202 とを記憶する。使用において、VAB50は
頂点のデータビット204 を受取り、これを出力する。
記憶するように構成されている。使用において、このようなデータビット204 す
なわち頂点データが受取られ、VAB50中に記憶された後、頂点データはVAB
50からグラフィック処理モジュール、すなわち変換モジュール52に出力される。
さらに、図2Aを参照としてさらに詳細に後述する他の処理に加えて、頂点デー
タがVAB50に入力される方法を決定するコマンドビット200 がVAB50によっ
て送られる。このようなコマンドビット200 はマイクロ制御装置、CPU、デー
タソース、またはコマンドビット200 を発生できる任意の他のタイプのソースの
ようなコマンドビットソースから受取られる。
数のモードの状態を示す。したがって、モードビット202 は、後続するグラフィ
ック処理モジュール中で頂点データが処理される方法を決定するように適応され
ている。このようなモードビット202 は、マイクロ制御装置、CPU、データソ
ース、またはモードビット202 を発生することのできる任意の他のタイプのソー
スのようなコマンドビットソースから受取られる。
意の他のタイプの論理装置によって制御されてもよい。種々の実施形態において
、モードビット202 の64、128、256または任意の他の数が使用されても
よい。
トデータのための収集地点として機能する。VAB50の入力は64ビット/サイ
クルであり、その出力は128ビット/サイクルである。別の実施形態において
、VAB50は128ビットビットデータのための収集地点として機能してもよく
、また、VAB50の入力は128ビット/サイクルまたは任意の他の組合せであ
ってよい。さらにVAB50は複数の頂点属性のために確保されたスロットを有し
ており、それらは全てIEEE32ビットフロートである。このようなスロット
の数はユーザの所望に応じて異なってよい。表1は、本発明によって使用される
例示的な頂点属性を示している。
フォルトすることが可能となるため、z,wデータ対の前にx,yデータ対が書
込まれるものとして動作する。これはオープンGL(商標名)およびD3D(商
標名)におけるデフォルト成分にとって重要である可能性がある。位置、テクス
チャ0およびテクスチャ1のスロットは第3および第4の成分を(0.0,1.
0)にデフォルトすることを認識しなければならない。さらに、拡散カラースロ
ットは第4の成分を(1.0)にデフォルトし、テクスチャスロットは第2の成
分を(0.0)にデフォルトする。
のスロット205 を含んでおり、このデータビット204 は変換モジュール54に送ら
れることができ、あるいはライティングモジュール54から受取られることができ
る。スロット205 におけるデータビット204 は浮動小数点または整数フォーマッ
トであることができる。上述したように、各頂点のデータビット204 は、データ
ビット204 の処理に影響を与えるモードを表すモードビット202 の関連したセッ
トを有している。これらのモードビット202 は、以下さらに詳細に説明する理由
のためにデータビット204 により変換およびライティングモジュール52および54
を通って送られる。
換およびライティングコマンドが存在することができる。図2Aは、本発明の1
実施形態によるVAB50によって受取られることのできる種々のコマンドを示す
チャートである。図2Aのチャートに示されている全てのロードおよび読出し文
脈コマンドならびにパススルーコマンドは、128ビットまでの、またはその他
のサイズの1つのデータワードを転送することを認識しなければならない。
スの高ダブルワードまたは低ダブルワード中に書込まれるか否かを指示する制御
情報を含んでいる可能性がある。さらに、ワードレベルの制御を行う2ビットの
書込みマスクが使用されてもよい。さらに、実行されるべき現在のコマンドに対
するデータビット204 の全てが存在していることを開始(launch)ビット
がVAB制御装置に通知してもよい。
よってルックアップは、そのコマンドが文脈メモリを読出す読出しコマンドであ
るか、あるいは文脈メモリに書込む書込みコマンドであるかに関する情報を見出
すことが可能になる。現在実行中のコマンドの機能停止フィールドを使用するこ
とによって、新しいコマンドは、矛盾の場合には待機させられ、あるいは進行す
ることを可能にされることができる。
イズ)までの1つの入力データワードを受取り、サイクル当り128ビット(ま
たは他の任意のサイズ)までの1つのデータワードを出力することができる。ロ
ードコマンドに対して、これは、データをVAB50中にロードして128ビット
のクワド(quad)ワードを生成するのに2サイクル必要であり、それをドレ
インするために1サイクル必要であることを意味する。ライティングモジュール
54内のスカラーメモリに対して、全クワドワードを累算する必要はなく、これら
は1サイクル/アドレスでロードされることができる。1つの頂点に対して、7
つのVABスロットをロードするのに14サイクルまで必要になる可能性があり
、一方それらをドレインするには7サイクルあればよい。しかしながら、実行中
の頂点コマンドを変更する頂点状態を更新するだけでよいことを認識すべきであ
る。これは、ある場合には頂点位置が2サイクルで更新され、一方頂点データを
ドレインするのに7サイクルを要することを意味する。x,y位置の場合には、
たった1サイクルあればよいことを認識しなければならない。
からドレインする1つの方法を示すフローチャートである。最初に、動作210 で
、VAB50において頂点属性の少なくとも1つのセットが処理されるために受取
られる。上述したように、頂点属性の各セットは特有で、単一の頂点に対応して
いることができる。
憶される。さらに、記憶された頂点属性の各セットは変換モジュール52の複数の
入力バッファの対応した1つに転送される。受取られた頂点属性セットはまた、
動作216 で示されているように、受取られた頂点属性が現在VAB50中に記憶さ
れている異なったセットの対応した頂点属性を有しているか否かを決定するため
に監視される。
対応していると決定されたとき、動作218 に示されているように、記憶されてい
る頂点属性は変換モジュール52の対応した入力バッファにばらばらな順序で出力
される。記憶されている頂点属性が出力されるとすぐに、対応した入ってきた頂
点属性がVAB50中にその場所を占有してもよい。しかしながら、対応が全く見
出されない場合、動作219 に示されているように、記憶されている頂点属性の各
セットは規則的な予め定められたシーケンスにしたがって変換モジュール52の対
応した入力バッファに転送されてもよい。
には、上述した方式で転送されない可能性があることを注意すべきである。さら
に、上記の方法が適切に行われるためにVAB50の出力の帯域幅は少なくともV
AB50の入力の帯域幅でなければならない。
ャを示す概略図である。示されているように、VAB50は書込みデータ端子WD
と、読出しデータ端子RDと、書込みアドレス端子WAと、および読出しアドレ
ス端子RAとを有している。読出しデータ端子は第1のクロック制御されたバッ
ファ230 に結合され、データビット204 をVBA50から出力する。
ドレス端子と第2のクロック制御されたバッファ234 とに結合された出力を有し
ている。第1のマルチプレクサ232 の第1の入力はVAB50の書込みアドレス端
子に結合され、一方第1のマルチプレクサ232 の第2の入力は第2のマルチプレ
クサ236 の出力に結合されている。論理モジュール238 は第1および第2のマル
チプレクサ232 および236 と、VAB50の書込みアドレス端子と、第2のクロッ
ク制御されたバッファ234 の出力との間に結合されている。
VAB50においてドレインするか否かを決定する作用を行う。1実施形態におい
て、この決定は、頂点属性が未決定であるか否かを示すビットレジスタを監視す
ることより容易に行われることができる。入ってきた頂点属性がこの時点でVA
B50中に一致したものを有していると決定された場合、論理モジュール238 は、
入ってきた頂点属性がすぐにその場所に記憶されるようにその一致した頂点属性
をドレインするために第1のマルチプレクサ232 を制御する。他方、入ってきた
頂点属性がこの時点でVAB50中に一致したものを有しないと決定された場合、
論理モジュール238 は、VAB50がドレインされ、入ってきた頂点属性が、論理
モジュール238 によって更新される第2のマルチプレクサ236 の入力によって順
次または別のある予め定められた順序でロードされるように、第1のマルチプレ
クサ232 を制御する。
数の頂点属性をドレインする必要がない。未決定の頂点属性は、可能ならば、対
応したVABの対応したもの押し出し、それによってそれが進行することを可能
にする。その結果、VAB50は任意の順序でドレインすることができる。この能
力がないと、VAB50をドレインするのに7サイクルを要し、それをロードする
のに、おそらく、さらに14サイクル要する。ロードとドレインとを重複させる
ことにより、さらに高い性能が得られる。これは、入力バッファが空であり、V
AB50が変換モジュール52の入力バッファ中にドレインできる場合にのみ可能で
あることを認識しなければならない。
ている。変換/ライティングモード情報は、モードビット202 によりレジスタ中
に記憶される。モードビット202 は、以下において明らかになるように、変換モ
ジュール52およびライティングモジュール54のシーケンサを駆動するために使用
される。各頂点は特有であることが可能である関連したモードビット202 を有し
ており、したがって特有に構成されたプログラムシーケンスを実行することがで
きる。モードビット202 は一般にグラフィックAPIに直接マップすることがで
きるが、それらのあるものは導出されてもよい。
てもよい。さらに、パススルービット(VPAS)は、オンにされたときに頂点
データがスケールおよびバイアスと共に通過され、変換もライティングも行われ
ないという点で特有である。VPASが真(true)である場合に使用される
可能なモードビット202 はテクスチャ分割ビット(TDV0,1)およびフォグ
ビット(商標名D3Dにおいてフォグ値を抽出するために使用される)である。
したがって、VPASは予め変換されたデータに対して使用され、TDV0,1
は商標名D3Dの文脈では円筒状ラップモードを処理するために使用される。
ように、変換モジュール52は6つの入力バッファ400 によってVAB50に接続さ
れている。1実施形態において、各入力バッファ400 はサイズが7*128ビッ
トである。6つの入力バッファ400 はそれぞれ7つのクワドワードを記憶するこ
とができる。そのような各入力バッファ400 は、パスデータが位置データと重複
されていることを除いて、そのレイアウトがVAB50と同じである。
が変化しているか否かを示すように各入力バッファ400 の各属性に対して1つの
ビットが指定されていてもよい。この設計によって、各入力バッファ400 は変化
したデータに関してのみロードされてもよい。
バッファ402 に接続されている。出力バッファは第1のバッファ404 と、第2の
バッファ406 と、および第3のバッファ408 とを含んでいる。以下から明らかに
なるように、第3のバッファ408 の内容、すなわち位置、テクスチャ座標データ
等はライティングモジュール54では使用されない。しかしながら、第1のバッフ
ァ404 および第2のバッファ406 の両者は光線およびカラーデータをライティン
グモジュール54に入力するために使用される。ライティングモジュールは2つの
読出し入力を処理するように構成されているため、2つのバッファが使用される
。データは読出しコンフリクト等に関する問題を回避するように構成されている
ことを認識すべきである。
メモリ412 が結合されている。変換モジュール52はオブジェクト空間頂点データ
をスクリーン空間に変換して、ライティングモジュール54が必要とするベクトル
を生じさせる作用をする。変換モジュール52はまたスキニング(skinnin
g)およびテクスチャ座標を処理する。1実施形態において、変換モジュール52
は平行して4つのフロートを処理する128ビット設計であってもよく、4項ド
ット積を行うために最適化されていてもよい。
形態による方法を示すフローチャートである。動作において、変換モジュール52
はインターリーブすることにより3つの頂点を平行して処理することができる。
したがって、書込みおよびそれに後いて文脈メモリ410 からの読出しのようなコ
マンドの間に機能停止状況が生じなければ、3つのコマンドが同時に平行して実
行されることができる。3つの実行スレッドは互いに独立しており、任意コマン
ドであることができる。これは、全ての頂点が特有の対応したモードビット202
を含んでいるためである。
において実行されるべき現在のスレッドを決定することを含んでいる。この決定
は、グラフィック処理モジュールがある動作の終了に必要とするサイクルの数を
識別して、そのサイクルを追跡することにより行われることができる。サイクル
を追跡することによって、各スレッドはあるサイクルに割当てられ、それによっ
て現在のサイクルに基づいて現在のスレッドを決定することができる。しかしな
がら、このような決定は、効果的であると思われる任意の所望の方式で行われて
もよいことを認識しなければならない。
した命令が、対応したプログラムカウンタ番号を使用して検索される。その後、
この命令は動作424 においてグラフィック処理モジュールに関して実行される。
て第1の命令またはコードセグメントにアクセスすることを含む。上述のように
、このようなプログラムカウンタは第1の実行スレッドと関連している。次に、
第1のコードセグメントがグラフィック処理モジュールにおいて実行される。す
ぐに明らかになるように、このようなグラフィック処理モジュールは加算器、乗
算器または任意の他の機能装置あるいはその組合せの形態をとることができる。
クルを必要とするため、第1のコードセグメントの実行後1クロックサイクル経
過してすぐに第2のコードセグメントが第2のプログラムカウンタによってアク
セスされてもよい。第2のプログラムカウンタは第2の実行スレッドと関連して
おり、各実行スレッドが特有の頂点を処理する。
1のコードセグメントの実行の終了前に、グラフィック処理モジュールにおいて
実行を開始してもよい。使用において、グラフィック処理モジュールは出力を発
生するために全てのスレッドのそれぞれに対して予め定められた数のサイクルを
必要とする。したがって、全ての予め定められた数のサイクルのそれぞれに対し
てこの例の種々のステップが反復されてもよい。
の機能装置はさらに効率的に使用される。さらに、多数スレッド方式が使用され
ると仮定された場合、統御コードがより効率的に書込まれることができる。
ラフィック処理モジュールに含まれている場合、a=b*cおよびd=e*aの
ような後続する動作の間に2つの無動作コマンドを含むことが必要となる。その
理由は、3クロックサイクル後まで“a”が利用できないためである。しかしな
がら、この実施形態では、コードがa=b*cの直後にd=e*aを呼出すだけ
でもよい。それは、このようなコードは3クロックサイクルごとに1回呼出され
る3つの実行スレッドの1つとして実行されると仮定されることができるからで
ある。
るように、各実行スレッドは、命令メモリ452 において命令またはコードセグメ
ントにアクセスするために使用される関連したプログラムカウンタ450 を有して
いる。その後、このような命令は加算器456 、乗算器454 および、または反転論
理装置またはレジスタ459 のようなグラフィック処理モジュールを動作するため
に使用されてもよい。
応させるために、グラフィック処理モジュール間において1以上のコードセグメ
ント遅延素子457 が使用される。3スレッドフレームワークが使用される場合、
3クロックサイクルコードセグメント遅延素子457 が使用される。1実施形態に
おいて、加算命令が乗算命令に後続した場合に、コードセグメント遅延素子457
が使用される。このような場合、乗算器456 が出力を発生するために十分な時間
が確実に経過するように、乗算命令の実行後3クロックサイクル経過するまで加
算命令は実行されない。
、次の実行スレッドのプログラムカウンタが関連した命令にアクセスするために
ラウンドロビンシーケンスでモジュール458 により呼出される。プログラムカウ
ンタは、インクリメント、ジャンプ、呼出および復帰、テーブルジャンプ、およ
び、またはディスパッチを含む任意の方式で使用されることができるが、それに
限定されないことを認識しなければならない。ディスパッチとは、受取られたパ
ラメータに基づいてコードセグメント実行の開始地点を決定することである。さ
らに、この多数スレッド実行フレームワークに関連した原理は、本発明のグラフ
ィック処理パイプラインのライティングモジュール54にも適用可能であることを
認識することが重要である。
が1つの入力バッファおよび1つの出力バッファに割当てられる。これによって
、3つのコマンドを処理しながら、さらに3つのコマンドをデータと共にロード
することが可能になる。入力バッファおよび出力バッファは、以下において図2
7および28を参照として説明する方式によりラウンドロビンシーケンスで割当
てられる。
これは、各機能装置が3つのステージにパイプラインされ、各スレッドがいつで
も1つのステージを占有していることを意味する。1実施形態において、3つの
スレッドは常に同じシーケンスで実行するように、すなわち0、1、3に設定さ
れてもよい。概念上、スレッドはt=クロックモジュロ3において機能装置に入
力される。機能装置が動作し始めると、結果を出力するのに3サイクルを要し(
6サイクルを必要とするILUを除いて)、その時同じスレッドは再びアクティ
ブである。
している。示されているように、頂点データを受取るためにVAB50に結合する
ように構成された入力バッファ400 が含まれている。
1の入力を有している。オプションとして、MLU500 の出力は、その第1の入
力に結合されたフィードバックループ502 を有していてもよい。
力はMLU500 の出力に結合されている。ALU504 の出力はさらに、その第2
の入力に接続されたフィードバックループ506 を有している。このようなフィー
ドバックループ502 はさらに、それに結合された遅延素子508 を有していてもよ
い。ALU504 の出力には、レジスタ装置510 の入力が結合されている。レジス
タ装置510 の出力は、MLU500 の第1および第2の入力に結合されていること
を認識しなければならない。
たは逆平方根演算を行うためにALU504 の出力に結合された入力を含んでいる
。別の実施形態において、ILU512 はレジスタ装置510 の出力に結合された入
力を含んでいてもよい。
まれており、このモジュール514 はILU512 の出力とMLU500 の第2の入力
との間に結合されている。使用において、この変換モジュール514 はスカラー頂
点データをベクトル頂点データに変換するように機能する。これはスカラーデー
タをベクトルと乗算して、乗算器および、または加算器が処理するベクトル演算
子にすることによって行なわれる。たとえば、スカラーAは、変換後、ベクトル
(A,A,A,A)になってもよい。別の実施形態では、スメアリングモジュー
ル514 はMLU500 と関連したマルチプレクサまたは本発明の任意の他のコンポ
ーネント中に含まれていてもよい。オプションとして、レジスタ516 はILU51
2 の出力と変換装置514 の入力との間に結合されていてもよい。さらに、このよ
うなレジスタ516 はスレッド(thread)されてもよい。
いる。とくに、メモリ410 はMLU500 の第2の入力に結合された読出し端子を
有している。さらに、メモリ410 はALU504 の出力に結合された書込み端子を
有している。
、ALU504 、レジスタ装置510 、ILU512 および変換モジュール514 と共に
使用されるために複数の定数および変数が記憶されている。このような処理には
、オブジェクト空間頂点データをスクリーン空間頂点データに変換し、ベクトル
を発生すること等が含まれる。
ンバータ518 は、処理された頂点データがこれに出力されるように出力バッファ
を介してライティングモジュール54に結合されている。ILUを除く全てのデー
タ通路は128ビット幅であるように設計されてもよく、あるいは別のデータ通
路幅が使用されてもよい。
概略図である。示されているように、変換モジュール52のMLU500 は、並列に
結合された4つの乗算器600 を含んでいる。
トルを乗算するか、あるいは1つの4成分ベクトルをパス(pass)すること
ができる。MLU500 は、多重演算を行うことができる。表2は、変換モジュー
ル52のMLU500 に関連したこのような演算を示している。
いる。
略図である。示されているように、変換モジュール52のALU504 は、並列/直
列に結合された3つの加算器700 を含んでいる。使用において、変換モジュール
52のALU504 は2つの3成分ベクトルを加算し、1つの4成分ベクトルをパス
し、あるいはベクトル成分を出力を横切ってスメア(smear)することがで
きる。表5は、変換モジュール52のALU504 が行うことのできる種々の演算を
示している。
を修正することもまた可能であり、ここでA,Bは絶対値である。ALU504 が
スカラー頂点データを出力した場合、このスカラー頂点データは、各出力がスカ
ラー頂点データを表しているという意味で出力を横切ってスメアされていること
を認識しなければならない。MLU500 およびALU504 のパス制御信号のそれ
ぞれが演算中全ての特殊値処理をディスエーブルすることができる。
スタファイル510 の概略図である。示されているように、ベクトルレジスタファ
イル510 は4組のレジスタ800 を含んでおり、各レジスタ800 は対応したマルチ
プレクサ802 の第1の入力に結合された出力と、対応したマルチプレクサ802 の
第2の入力に結合された入力とを有している。
れている。すなわち、ベクトルレジスタファイル510 の3つのコピーが存在し、
各スレッドがそれ自身のコピーを有している。1実施形態では、各コピーは8つ
のレジスタを含んでおり、その各レジスタはサイズが128ビットであり、4つ
のフロートを記憶することができる。ベクトルレジスタファイル510 はALU50
4 から書込まれ、その出力はMLU500 にフィードバックされる。ベクトルレジ
スタファイル510 はサイクル当り1回の書込みおよび1回の読出しを行なう。
ることもできる。ベクトルレジスタファイル510 は、書込みアドレスが読出しア
ドレスと同じである場合、入力から出力へのバイパス路511 によってゼロレイテ
ンシーを示す。この場合、マスクされていないコンポーネントはレジスタから取
出され、マスクされたコンポーネントはバイパスされる。このように、ベクトル
レジスタファイル510 はコンポーネント単位でベクトルを生成し、あるいはAL
U SMR演算(表5参照)と共にベクトル成分の順序を変更することに対して
非常に有用である。一時的な結果はまたベクトルレジスタファイル510 中に記憶
されることができる。
概略図である。示されているように、変換モジュール52のILU512 は浮動小数
点の逆数(1/D)および逆平方根(1/D^(1/2))を発生することがで
きる。このような演算を行なうために、2つの反復処理のいずれか一方が小数部
に関して実行されてもよい。このような処理は任意の所望の専用ハードウェアに
より実行されてもよく、以下に示されている: 逆数(1/D) 逆平方根(1/D^(1/2)) xn +1=xn (2−xn *D) xn+1 =(1/2)*xn (3−xn 2 *D) (1)xn (速度)に対する表検索 xn (速度)に対する表検索 xn xn *xn (2)第1回目の反復:乗算−加算 第1回目の反復:乗算−加算 2−xn *D 3−xn 2 *D (3)第1回目の反復:乗算 第1回目の反復:乗算 xn (2−xn *D) (1/2)*xn (3−xn 2 *D) (4)第2回目の反復:演算なし 第2回目の反復:2乗 xn +1をパス xn+1 2 (5)第2回目の反復:乗算−加算 第2回目の反復:乗算−加算 2−xn+1 *D 3−xn+1 2 *D (6)第2回目の反復:乗算 第2回目の反復:乗算 xn+1 (2−xn+1 *D) (1/2)*xn+1 (3−xn+1 2 *D) 示されているように、2つの処理は類似しており、簡単な設計を行なっても差
しつかえない。この反復は、しきい値精度が満足されるまで繰り返されることを
認識しなければならない。
的な演算を行なう。他の装置とは異なり、それは出力を発生するために6サイク
ルを必要とする。その入力はスカラーであり、したがって出力もそうである。前
述したように、ILU512 の出力におけるスレッド保持レジスタ516 は、有効な
結果が発生される次の回まで結果をラッチするように当てにされている。さらに
、スカラー出力は、MLU500 に供給される前にベクトルにスメアされる。反転
装置512 は、約22小数部ビット範囲内までの正確なIEEE(米国電気電子技
術者協会)出力を発生するために検索表および2つのパスNewton−Rap
hson反復を使用する。表7は、変換モジュール52のILU512 によって行な
われることのできる種々の演算を示している。
ジュール56により処理されることを可能にするために使用されてもよい。座標は
スクリーン空間に直接変換され、これは、均質のクリップスペースがほぼ0.0
である場合に問題を結果的に生じさせる可能性が高い。各除算において1.0/
0.0による乗算を回避するために、1/w計算が最小および最大ベキ指数にク
ランプされる。
使用して読出しおよび書込みを行なう。このメモリはMLU500 またはALU50
4 によって各サイクルごとに読出されることができ、ALU504 によって書込ま
れることができる。メモリ読出しはサイクル当り1度だけ可能である。読出しが
必要である場合には、それは命令の開始時に行なわれ、それから3サイクル後に
ALU504 にパイプラインされる。文脈メモリ410 は必ずしもスレッドされなく
てよい。
ータ518 の出力アドレスのチャートである。出力コンバータ518 は出力を適切な
目的地に導き、データのビット精度を変更し、性能を増加させるためにあるデー
タ撹拌(swizzling)を行なうことができる。ライティングモジュール
54に送られる予定である全てのデータは、S1E8M13として編成された22
ビット浮動小数点フォーマット(1符号、8ベキ指数、13小数部ビット)に丸
められる。ライティングモジュール54における図4に示されているような目的地
バッファ402 はスレッドされる。
により、ベクトルを生成する場合に損失を生じずに距離ベクトル(1,d,d*
d)を発生することが可能となる。距離ベクトルはフォグ、地点パラメータおよ
び照明減衰に対して使用される。これは、アイベクトルおよび照明方向ベクトル
により行なわれる。表8は、このようなベクトルに関連した種々の演算を示して
いる。以下の表において、ベクトルを2乗するとはd2 =dot[(x,y,z
),(x,y,z)]であるd2 を(x,y,z)のwコンポーネント中に記憶
することを指していることを認識しなければならない。
し、1.0をVBUFに出力する) (2)d*dの逆平方根を発生する(1/d) (3)ベクトルを正規化する(x/d,y/d,z/d,d)(x/d,y/
d,z/dをWBUFに出力し、dをVBUFに出力する) 本発明において行なわれた数学的計算は常にIEEE方式に従ったものである
必要はないことを認識しなければならない。たとえば、任意の数により乗算され
た“0”は“0”をレンダリングすると仮定されることができる。これは、d=
0であるd=d2 *1/(d2 )1/2 のような式を処理する場合にとくに有用で
ある。上記の仮定を行わないと、このような式はエラーを生じ、したがって関連
した計算を行なうときに問題が発生する。
ード編成を示す図である。変換モジュールのマイクロコードは、44ビットの総
帯域幅を形成する15のフィールドに構成されてもよい。フィールドは、装置の
データフローを一致させるために遅延されてもよい。MLU500 の演算はゼロの
遅延で実行される。ALU演算は1の遅延で実行され、RLUの出力演算は2の
遅延で実行される。各遅延は3サイクルと等価である。
200の概略図である。図12に示されているように、変換モジュール52のシーケ
ンサ1200は、処理動作の複数のモードの状態を示すモードビットをVAB50から
受取るように構成されたバッファ1202を含んでいる。
って処理動作を行なうようにそれぞれ構成されたコードセグメントを記憶するこ
とができる。シーケンシングモジュール1206はメモリ412 と制御ベクトルモジュ
ール1205との間に結合されており、この制御ベクトルモジュール1205はバッファ
1202に結合され、モードビット202 から得られた制御ベクトルに基づいてメモリ
412 中の複数のアドレスを識別する。シーケンシングモジュール1206はさらに、
データを出力バッファ1207に転送するように変換モジュール52を動作するために
使用されることのできるコードセグメントを検索するためにメモリ412 中のアド
レスにアクセスするように構成されている。
々の動作を詳細に示すフローチャートである。示されているように、シーケンサ
1200は、変換またはライティング動作におけるグラフィック処理をシーケンス化
するように構成されている。動作1320において、処理動作の複数のモードの状態
を示すモードビット202 が最初に受取られる。1実施形態において、モードビッ
ト202 はソフトウェア駆動装置から受取られてもよい。
に基づいて識別される。その後、動作1324において、そのモードの状態にしたが
って処理動作を行なうようにそれぞれ構成されたコードセグメントを検索するた
めに、メモリ中のこのようなアドレスがアクセスされる。続いて、動作1326に示
されているように、頂点データを処理するために変換またはライティングモジュ
ールによりコードセグメントが実行される。
ジュール1206の動作を詳細に示すフロー図である。示されているように、複数の
モードレジスタ1430はそれぞれ、単一の頂点に対応するモードビット202 の特有
のセットを含んでいる。モードレジスタ1430は、図4Aおよび4Bを参照として
上述した方式での多数の実行スレッドの実行を可能にするためにラウンドロビン
シーケンスでポールされることを認識すべきである。
は動作1432でデコードされる。動作1432においてモードビット202 がデコードさ
れると、対応した頂点データを処理する特定のコードセグメントがROM1404に
おいてアクセスされたか否かをそれぞれ示す複数のビットを含む制御ベクトルが
供給される。
を決定するとき、ポインタ動作1436は現在のスレッドポインタをインクリメント
して、次の実行スレッドを開始し、それによって類似の動作を継続するように第
2のグループモードビット202 を獲得する。これはラウンドロビンシーケンスで
各スレッドに対して継続される。
ると、優先度エンコーダ動作1438は次の“1”またはエネーブルされた制御ベク
トルのビットを決定し、識別する。このようなビットが発見されると、優先度エ
ンコーダ動作1438は実行のために、制御ベクトルのエネーブルビットに対応する
アドレスをROM1404中に生成する。
クトルが再度有効になった後、モードビット202 の最初のグループに戻るとき、
マスキング動作1434は先の“1”または前に識別されたエネーブルされたビット
をマスクするために使用される。これはマスク動作1434後に全ての残りのビット
の解析を可能にする。
点データについて実行される複数の式を示している。 表9
する(a,b*c,d*e,fおよび1/x)。次に、モードフィールドが規定
される。表10はモードフィールドの対、mode.yとmode.zを示し、
それぞれ表9の演算の予め定められたセットに割当てられている。
関連する演算をそれぞれ有する複数のメモリアドレスを示している。また制御ベ
クトル定義のセットも示されている。
ドビット202 から得られるスレッドされた制御ベクトルをステップし、対応する
制御ベクトルビットが“TRUE”に設定されるあらゆるROMアドレスを実行
する。制御ベクトルはROMと同一の長さを有する。シーケンサ1200は1つの“
1”のレート、または予め定められたサイクル数毎にエネーブルされたビットで
任意の制御ベクトルをステップできる。モードビット202 を使用しないコマンド
はその簡潔性のためにオンザフライマイクロコードにより実行される。
によって、種々の動作の状態を決定するためにグラフィック処理ハードウェアの
複数のイフ−ゼン(if−then)節を実行することは必要ではない。改良さ
れた性能はそれによって与えられる。概念的に、これはプログラム言語のイフ節
がシーケンサ1200へ移動するかのようであり、シーケンサ1200はモードビット20
2 により示されるように“FALSE”状態で即時に命令をスキップする。
トにより識別される動作の種々の状態を処理することができる。1実施形態では
、別々のコードセグメントはモードビットにより示される各動作を処理するため
に検索される。その代りとして、1つの包括性コードセグメントは可能であるそ
れぞれまたは幾つかの動作の組合わせを処理するために書込まれてもよい。しか
しながら、各動作の組合わせでこのような大きいコードセグメントを生成するこ
とは付加的なコードスペースを必要とし、それ故、普通に使用される動作の組合
わせだけでコードセグメントをモジュール化することが有効であることに注意す
る。
トルの生成はシーケンサに入る前に1つの頂点毎に1度実行されさえすればよい
。しかしながら、これについての例外が動作が反復されるライティングのような
幾つかのケースで生じる。最後の頂点命令が発見されるとき、シーケンス信号の
終了(EOS)が表明される。これは入力および出力バッファの状態を変更し、
図28Aと28Bを参照して説明した方法で次のコマンドの開始を可能にするた
めに使用される。EOS信号は命令が処理される方法と類似の目的地バッファを
解除するために遅延されるパイプラインであることに注意する。図4Bを参照す
る。
を一体化するために使用される本発明の種々の機能コンポーネントを示したフロ
ー図である。示されているように、1つの機能アスペクト1440はベクトル頂点デ
ータを処理モジュール、即ち加算器、乗算器等へ入力し、ベクトル頂点データを
出力することを含んでいる。別の機能アスペクト1442では、ベクトル頂点データ
はベクトル処理モジュール、即ち加算器、乗算器等により処理され、これは再度
ベクトル頂点データへ変換されるかスメアされるスカラー頂点データを出力する
。
れによってスカラー頂点データに変換され、その後、これはベクトル頂点データ
を生成する目的で、メモリ、即ちレジスタ論理装置中に記憶される。さらに別の
機能アスペクト1446では、スカラー頂点データはベクトル処理モジュール、即ち
加算器、乗算器等により抽出され、これはスカラー処理モジュール、即ち反転論
理装置により処理され、スカラー頂点データをレンダリングする。このスカラー
頂点データは再度ベクトル頂点データに変換される。
本発明の機能コンポーネントの1つの可能な組合せ1451を示すフロー図である。
機能アスペクト1444および1446は図4Bを参照して前述した方法と類似の方法で
関連する遅延を有することに注意すべきである。図14Cは図14Aに示されて
いる本発明の機能コンポーネントの別の可能な組合せ1453を示すフロー図である
。
タからスカラー頂点データを抽出する。このようなマルチプレクサは種々の機能
モジュールによる処理前に必要とされる任意のデータのスウィズリングに対して
も応答可能である。1実施形態では、マルチプレクサはベクトルの頂点データを
通過し回転することができ、他の処理用のALU等の他のグラフィック処理モジ
ュールに依存する。さらに別の実施形態では、マルチプレクサはペナルティなし
で独立して属性を任意選択的に再配置することができる。
よりグラフィックパイプラインにおけるグラフィック処理中に変換システムがブ
レンディングまたはスキン動作を行うように構成されている方法を示している。
パイプラインでの処理中に、動作1470では、複数のマトリックス、それぞれ1つ
のマトリックスに対応する複数の加重値および頂点データが受信される。付加的
なマトリックスのセットは正規の頂点データで必要とされる可能性があることに
注意すべきである。
と、1つのマトリックスと、そのマトリックスに対応する加重との乗算により計
算される。このような積の和はその後、さらに処理を行うために動作1474で出力
される。
式#1と#2では、i=1…(x−1)ではwx (wi 、ここではi=x)は式
1−Σwi により計算されることが言われている。このようにして加重wi を表
すことにより、全ての加重wが1に合計されることが確実にされる。
積の和(v' )はライティング動作によりさらに処理されるために出力される(
式1参照)。この積の和(v' )はまた合成マトリックス(C)の使用によって
表示目的で別の積の和(vs )を生成するためにも使用される(式3参照)。マ
トリックスは反転マトリックス(I)を含み、頂点データは正規ベクトルデータ
(n)を含む。このようなケースでは、付加的な処理はライティング動作を含む
(式#2参照)。
る。示されているように、ライティングモジュール54は変換モジュール52が頂点
データを出力するバッファ402 を含んでいる。示されているように、バッファ40
8 は通路1501によりライティングモジュール54をバイパスする。さらにライティ
ングモジュール54には文脈メモリ1500とマイクロコードROMメモリ1502に結合
されている。
イティングを処理するように構成されている。使用において、ライティングモジ
ュール54はバッファバイパス経路1501を制御し、拡散、ポイントサイズ、スペキ
ュラー出力色およびフォッグ値を計算する。ライティングモジュール54は変換モ
ジュール52と同一のモードビット202 を使用することに注意すべきである。
を必要とせず、それ故、3ワードで組織される22ビット浮動小数点値(1.8.13
フォーマット)を処理する。第3のバッファ408 のデータは128ビットである
ので、これはライティングモジュール54周辺のバイパス経路1501を使用する。ラ
イティングモジュール54は事象駆動され、同時に図4Aと4Bを参照して前述し
た変換モジュール52と類似の方法で3つのスレッドを実行する。ライティングモ
ジュール54は外部ソースからコマンド発信許可を必要とすることに注意しなけれ
ばならない。
能装置を示す概略図である。示されているように、変換システムに結合されてそ
こから頂点データを受信するように構成されている入力バッファ402 が含まれて
いる。前述したように、入力バッファ402 は第1の入力バッファ404 、第2の入
力406 、第3の入力バッファ408 を含んでいる。第1のバッファの入力404 、第
2の入力バッファ406 、第3の入力バッファ408 の入力は変換モジュール52の出
力に結合されている。バイパスの目的で、第3の入力バッファ408 の出力は遅延
素子1608によりライティングモジュール54の出力に結合されている。
2の入力バッファ406 の出力に結合されている第2の入力を有するMLU1610が
含まれている。MLU1610の出力はその第2の入力に結合されているフィードバ
ックループ1612を有する。演算論理装置(ALU)1614は第2の入力バッファ40
6 の出力に結合されている第1の入力を有する。ALU1614はさらにMLU1610
の出力に結合されている第2の入力を有する。ALU1614の出力はライティング
モジュール54の出力に結合されている。ALU1614の出力と第3の入力バッファ
408 の出力はマルチプレクサ1616によりライティングモジュール54の出力に結合
されていることに注意すべきである。
に結合されている出力とを有する第1のレジスタ装置1618が設けられている。第
2のレジスタ装置1620はALU1614の出力に結合されている入力を有する。また
このような第2のレジスタ1620はMLU1610の第1の入力と第2の入力に結合さ
れている出力を有する。
結合されている第1の入力と、第1の入力バッファ404 の出力に結合されている
第2の入力と、MLU1610の第1の入力に結合されている出力とを有する。LL
U1622の第2の入力は遅延素子1624により第1の入力バッファ404 の出力に結合
されていることに注意すべきである。さらに、LLU1622の出力は先入れ先出し
レジスタ装置1626を介してMLU1610の第1の入力に結合されている。図16に
示されているように、LLU1622の出力はまた変換モジュール1628によりMLU
1610の第1の入力にも結合されている。動作において、このような変換モジュー
ル1628は変換モジュール52と類似の方法でスカラー頂点データをベクトル頂点デ
ータへ変換するように構成されている。
とも一方に結合されている。特に、メモリ1500はMLU1610の第1および第2の
入力に結合されている読取り端子を有する。さらにメモリ1500はALU1614の出
力に結合されている書込み端子を有する。
U1614、第1のレジスタ装置1618、第2のレジスタ装置1620、LLU1622と共に
使用される複数の定数および変数を記憶している。
LU1610の概略図である。示されているように、ライティングモジュール54のM
LU1610は並列している3つの乗算器1700を含んでいる。動作において、本発明
のMLU1610は2対3コンポーネントベクトルを乗算し、または1対3コンポー
ネントベクトルを通過するように構成されている。3コンポーネントベクトルの
乗算はドット積または並列乗算により行われる。表13はライティングモジュー
ル54のMLU1610が実行できる動作を示している。
している。 表14 MA V VBUFFER MA L LLU MA R RLU[2,3](MB Rと共有) MA C コンテキストメモリ(MB Cと共有) MB M MLU MB W WBUFFER MB R RLU[2,3](MA Rと共有) MB C コンテキストメモリ(MA Cと共有)
U1614の概略図である。示されているように、ALU1614は並列/直列の3つの
加算器1800を含んでいる。使用において、ALU1614は2対3コンポーネントベ
クトルを加算し、または1対3コンポーネントベクトルを通過するように構成さ
れている。表15はライティングモジュール54のALU1614が実行できる種々の
動作を示している。
している。 表16 AA W WBUFFER AA R RLU[0,1] AB M MLU
スタ装置1618と1620の概略図である。示されているように、レジスタ装置1618と
1620はそれぞれ2セットのレジスタ1900を含んでおり、レジスタ1900はそれぞれ
対応するマルチプレクサ1902の第1の入力に接続されている出力と、マルチプレ
クサ1902の第2の入力に結合されている入力とを有する。
レジスタと、MLU1610の2つのレジスタに分離される。1実施形態ではこれら
のレジスタはスレッドされている。レジスタ装置1618と1620は書込みアドレスが
読取りアドレスと同一であるとき、入力から出力へのバイパス通路のためにゼロ
の待ち時間を有する。
LU1622の概略図である。LLU1622はライティングモジュール54のライティン
グ装置である。スカラーブロックは後に光+マテリアルカラーを乗算するために
使用されるライティング係数を計算する。LLU1622は2つのMACと、インバ
ータと、4つの小さいメモリとフラグレジスタを含んでいる。
される。出力は環境、拡散、スペキュラー係数である。スカラーメモリはスペキ
ュラー近似に使用される変数と定数を含んでいる。各メモリの第1の位置は(ct
x0とctx2では)1.0 および(ctx1とctx3では)0.0 を含んでいる。1実施形態で
はこれらはハードワイヤで結線され、ロードされる必要はない。
する。この式はスペキュラーライティング項を近似するために使用される。LL
U1622への入力はライティングモジュール54のALU1614からであり、ライティ
ング方程式で使用されるドット積である。図16に関して前述したように、LL
U1622とMLU1610との間に出力FIFO1626が存在し、これはMLU1610が係
数を必要とするまで、係数をバッファする。1実施形態ではこのようなFIFO
1626は遅延素子1608および1624、レジスタ1618および1620と共にスレッドされる
。可能なカラーのマテリアル処理により、拡散およびスペキュラー出力がMLU
1610により消費されるときはわからない。
、拡散出力アルファコンポーネントを処理するための特別に構成されたハードウ
ェアが存在する。このような特別に構成されたハードウェアは2つのタイプのア
ルファコンポーネント、即ちvtxカラーφ[Tbuffer]および記憶され
たctx[Ctx store]を出力できる。先のアルファコンポーネント間
の選択はモードビット202 により支配される。
、スペキュラー(Cs)係数を計算する。これらの係数は頂点のカラーに対する
光の影響を生成するため周囲、拡散、スペキュラーカラーと乗算される。表16
AはLLU1622により受信された入力のリストと、ライティングの環境(Ca)
、拡散(Cde)、スペキュラー(Cs)係数を生成するために実行される計算
を含んでいる。任意の所望のハードウェア構成はLLU1622の構成に使用される
ことに注意する。1実施形態では、図20で示されている特別な構成が使用され
る。
たは頂点データから得られた結果により必ずしも変更されない。頂点データが頂
点処理を変更することを可能にするため、LLU1622は与えられたフラグレジス
タ1623を使用する。ビットをこのフラグレジスタでTRUEに設定することによ
り、フラグが計算の出力制御で特定されるならば、計算結果の0.0にクランプ
することが可能である。フラグレジスタ1623の別の使用はレジスタ書込みのため
の書込みマスクを設定することである。
へイフ/ゼン/エルスクランピングを行うためにLLU1622中に設けられる。種
々のオペランドの符号ビットはフラグを設定する。表16Bはフラグレジスタ16
23のフラグが設定される方法と結果的なクランピングを示している。
たフラグレジスタ1623の組織を示している。フラグレジスタ1623は8つの1ビッ
トフラグを含み、ALU(IFLAG)またはMAC0(MFLAG)出力の符
号ビットにより設定される。
とき、フラグレジスタのマスクを特定する。レジスタとマスクが真であるならば
、0.0は出力を置換える。表17は出力された環境、拡散、スペキュラー属性
で使用される図21の種々のフラグを示している。 表17 周囲マスク: C,R, U 拡散マスク: D, C,R, U スペキュラーマスク:D,S,C,R,T,U
なる場合、負になる。結果として、クランピング動作を実行する必要がある。こ
のため、T,Uフラグが使用される。表18はLLU1622の機能論理装置(FL
U)1621が行うことができる種々の動作を示している。図20に注意する。
したマイクロコードフィールドを示す図である。示されているように、ライティ
ングモジュール54のマイクロコードは全体幅が85ビットである33フィールド
に配置されている。フィールドは装置のデータ流を整合するように遅延される。
MLU動作は遅延ゼロで行われ、ALU動作は遅延1で行われ、RLU、LLU
出力動作は遅延2で行われる。各遅延は3サイクルに等しい。
連したシーケンサ2300の概略図である。示されているように、ライティングモジ
ュール54のシーケンサ2300はプロセス動作の複数のモードの状態を示すモードビ
ット202 を受信するように構成されている入力バッファ2302を含んでいる。また
、それぞれモードの状態にしたがってプロセス動作を実行するように構成されて
いるコードセグメントを記憶できるメモリ1502も含まれている。
基づいてメモリ1502中の複数のアドレスを識別するためメモリ1502とバッファ23
02との間に結合されている。シーケンスモジュール2306はさらに、ライティング
モジュール54を動作するために使用されるコードセグメントを検索するためにメ
モリ1502中のアドレスをアクセスするように構成されている。
サと類似している。動作において、ライティングモジュール54のシーケンサ2300
はスレッドされたモードビット202 から得られるスレッドされた制御ベクトルに
よりステップし、それぞれのROMアドレスを実行し、その対応する制御ベクト
ルビットは“1”に設定される。制御ベクトルはROMが有するワードと同数の
ビットを有する。シーケンサ2300はスレッド毎に予め定められた数のサイクルで
1つの“1”またはエネーブルビットのレートで任意の制御ベクトルをステップ
できる。モードビット202 を使用しないコマンドはオンザフライマイクロコード
発生により実行される。ライティングモジュール54のシーケンサ2300と変換モジ
ュール52のシーケンサ1200との主な違いは、ライティングモジュール54のシーケ
ンサ2300はループバックし8回までライティングコードを実行できることである
。
で開始し、マイクロコードシーケンスの終了時では1だけインクリメントする光
カウンタを有する。モードビット202 のLISフィールドが一致するビットフィ
ールドで“1”を含んでいるならば、シーケンサ2300は戻り、ライティングマイ
クロコードブロックの開始時でスタートする。これはゼロがLISフィールドで
発見されるか、8つの光が行われるまで継続する。カラーの累算は拡散およびス
ペキュラーカラーを記憶するALUレジスタを(1光線毎に)インクリメントす
ることによって行われる。自動メモリアドレスのインデックスは各光線で正確な
パラメータをフェッチするために光カウンタを使用して実行される。
ングモジュール54のシーケンサが関連したバッファの入力および出力を制御する
ことができる方法について詳細に説明するフローチャートである。示されている
ように、頂点データは動作2420でバッファの第1のセットの1つのバッファで最
初に受信される。頂点データが受信されるバッファはラウンドロビンシーケンス
に基づいている。
たラウンドロビンシーケンスに基づいて識別される。変換モジュール52は第1の
セットのバッファと、第2のセットのバッファとの間に結合されている。第2の
セットのバッファのエンプティバッファが識別されるとき、頂点データは変換モ
ジュールで処理され、変換モジュールから第2のセットのバッファの識別された
エンプティバッファへ出力される。動作ステップ2424および2426を参照。
ロット或いはスペースは動作2428でラウンドロビンシーケンスに基づいて識別さ
れる。ライティングモジュール54はバッファの第2のセットと第3のセットの間
に結合されている。バッファの第3のセットのエンプティバッファが識別される
とき、頂点データは動作2430で示されているようにライティングモジュールで処
理される。頂点データはしたがってライティングモジュール52からバッファの第
3のセットの識別されたエンプティバッファへ出力される。動作2432を参照。バ
ッファまたはメモリ中のスロットの数はフレキシブルであり、変更されてもよい
ことに注意すべきである。
ジュール54のシーケンサが関連したバッファの入力および出力を制御することが
できる方法の説明図である。示されているように、第1のセットのバッファまた
は入力バッファ400 は変換モジュール52に出力を供給し、変換モジュール52は第
2のセットのバッファまたは中間バッファ404 、406 に出力を与える。第2のセ
ットのバッファ404 、406 はメモリ2550へ出力(ドレイン)するライティングモ
ジュール54に出力を与える。
1および第2のセットのバッファはそれぞれ頂点データを最初に受信したときに
特有の識別子をそれぞれ割当てられる。さらに、各バッファの現在の状態は追跡
される。このような状態は割当てられた状態、有効な状態、アクチブ状態または
行われた状態を含んでいる。
ル、即ち変換モジュールまたはライティングモジュールの出力を受信するように
既に割当てられていることを示している。書込みポインタがラウンドロビンシー
ケンスでバッファ/スロットを走査しているとき、割当てられた状態のバッファ
/スロットはこのような書込みポインタを次のバッファまたはスロットにインク
リメントさせる。
頂点データを受信するために使用される。他方で、アクチブ状態はバッファ/ス
ロットが現在、実行状態であるかまたは頂点データを受信していることを示す。
このアクチブ状態はスレッドが完了するまで維持され、その後読取りポインタを
インクリメントし、したがってバッファ/スロットを有効状態に戻す。第1のセ
ットのバッファ400 はそれらを割当てるグラフィック処理モジュールが先に存在
しないので、単に有効状態であることだけができることに注意する。
コマンドビットのセット200 の一方で頂点データを受信するとき、このようなバ
ッファは有効状態に置かれ、その後バッファ402 、404 の第2のセットの1つが
変換モジュール52の出力の予測において割当てられた状態に置かれる。
のセットのバッファ400 中の頂点データは処理されることができない。さらに実
行されるコードセグメントが同時に行われる他のコードセグメントと干渉するか
否かを決定するためのチェックが行われる。干渉するならば、第1のセットのバ
ッファ400 の頂点データは処理されずストール(機能停止)状態が開始される。
セットのバッファ400 はアクチブ状態に置かれる。変換モジュール52が実行を終
了したとき、第2のセットのバッファ404 、406 は読取られ、その後有効状態に
置かれる。これらの状態の変化は第2のセット404 、406 とメモリ2550のスロッ
ト間の頂点データの転送中も同様に行われる。
化モジュール56を示している。ラスター化モジュール56は代わりの方法でエリア
ベースのラスター化を実行するように構成されている。特に、複数の多角形を規
定するセンスポイントがプリミティブに、またはその近くに位置され、その後一
次方程式がプリミティブ中に存在する画素を決定するためにそのポイントにおい
て評価される。動作中、この評価はポイントが効率的な目的で代わりの方法で移
動されるときに反復される。さらに、ラスター化モジュール56は何等クリッピン
グプロセスなしで動作するように構成される。
れているように、設定モジュール57は所望の浮動小数点計算を実行するためにデ
ータと制御信号をそれらの適切な機能装置へ導く処理をする制御セクション61を
含んでいる。プリミティブシーケンサ62は頂点のシーケンスを三角形、直線また
は点に変える処理をする。さらに浮動小数点データパスセクション64は設定装置
で必要とされる数学を実行するマルチプレクサおよび浮動小数点計算装置を含ん
でいる。
力フォーマットセクション63はエッジスロープとエッジ値の内部浮動小数点フォ
ーマットをラスター化装置に適している整数のフォーマットに変換する処理をす
る。勿論、別の実施形態では、ラスター化装置は浮動小数点を使用し、したがっ
て出力フォーマットセクション63の必要性をなくすことができる。
実行する。よく知られているように、所定の数、即ち2.34e10では、浮動小
数点フォーマットは仮数(2.34)とその指数(10)を追跡する。ブロック
浮動小数点変換は基本的に指数が同一であるように、入来するデータの仮数の小
数点位置を操作する。このため、指数はラスター化モジュール56で処理される必
要はない。
計算される種々のパラメータを示している。このようなパラメータは関連する機
能を実行するためにラスター化モジュール56に必要とされる。プリミティブ2600
を受信するとき、設定モジュール57はプリミティブ2600のスロープ2601、スター
ト位置2602、スタート値2604を含む3つの値を計算する。
方程式の係数を生成するために使用される。スロープ2601は例えば以下示す式#
4および#5を使用することにより計算される。 式#4および#5 スロープA =y0 −y1 スロープB =x1 −x0 ここでy0 、y1 およびx0 、x1 は図26Aで示されている頂点の座標であ
る。
して計算されることに注意する。
タート点を示している。スタート値2604は図26Aで示されている陰影を付けら
れた三角形の面積に等しく、またエリアベースのラスター化プロセス中にも使用
される。このようなスタート値2604はスクリーンについてのラスター位置をステ
ップするように選択され、各ステップでスロープを付加することはラスター位置
がエッジにあるとき丁度ゼロに等しい。スタート値2604の計算は以下の式#6を
使用して実現される。 式#6 starting value =スロープA *(xs −x0 )+スロープB *(ys −y0 ) ここで、xs ,ys =スタート位置2602、 スロープA ,スロープB =図26Aで示されている座標に基づいた1 つのエッジのスロープ、 x0 ,y0 =図26Aで示されているエッジの頂点の1つの座標
きである。例えば、直線の場合、余分のスロープは4つの側面の境界のあるボッ
クスで計算されなければならない。このようなスロープは境界のあるボックスの
反対側のスロープの逆数を取ることにより容易に計算されることができる。余分
のスロープの計算に加えて、別のスタート値が直線のプリミティブの場合に計算
されることを必要とすることに注意すべきである。
うちの1つを処理する方法を示している。特に、最初の動作は最初にラスター化
装置のモジュール56の設定モジュール57により実行される。プリミティブを受信
するとき、一次方程式の一次方程式係数は当業者によく知られた方法で図26A
のスロープ2601を使用して動作2700でプリミティブを規定する直線で決定される
。よく知られているように、3つの一次方程式が三角形を規定するのに必要とさ
れる。他方で、直線のようなプリミティブは4つの側面と4つの一次方程式によ
り長方形または平行四辺形として描かれる。
らば、その一次方程式係数は変更される。このプロセスに関する付加的な情報を
図32を参照してさらに詳細に説明する。
るボックスを計算することに注意しなければならない。ほとんどの三角形では、
境界を有するボックスは3つの頂点の最小値および最大値を含んでいる。直線で
は、境界を有するボックスの4つの平行四辺形のコーナーが計算される。負のW
−座標の頂点を有する三角形または直線では、描かれるエリアは頂点の凸閉の殻
を超えて延在する。
ザー長方形である。ラスター化モジュール56の設定モジュール57は境界のあるボ
ックスとシザー長方形との交差点を計算する。シザー長方形は長方形であるので
、4つの付加的な一次方程式が与えられる。シザー長方形に関連する一次方程式
は平凡な形状、即ち水平または垂直を有することに注意する。
、視線に対して直角である。プリミティブが三角形である場合、3つの頂点が含
まれ、任意の方位を有する平面を規定する。プリミティブの平面と、近距離およ
び遠距離の平面との交差点は2つの関連する一次方程式を有する2つの直線を含
んでいる。
じて全部で9または10の一次方程式をそれぞれ有する。再び三角形の場合、こ
のような一次方程式は三角形を規定する3つの一次方程式と、境界のあるボック
スを規定する4つの一次方程式と、プリミティブが存在する平面と近距離の平面
および遠距離の平面との交差点を規定する2つの一次方程式とを含んでいる。
たはその近くの複数の点を位置付ける。スタート位置2602は図26Aで示されて
いるように、このような位置付けを指示している。このような点は含まれる凸形
領域を規定し、凸形領域のコーナーに位置している。図27Aは例えば長方形等
の凸形領域2707を囲むこのようなセンスポイント2705を示している。1実施形態
では、このような長方形はサイズが8×2画素である。さらに点はプリミティブ
の上部の頂点を囲むように最初に位置される。選択肢として、これは切捨てを使
用して実現されてもよい。
ミティブの行を処理することにより動作2706で開始するトラバーサルモジュール
58により継続される。各行の処理後、ジャンプ位置が決定2708で発見されるか否
かを決定する。ジャンプ位置は次の行を処理するためスタート位置にあり、以下
詳細に説明する。決定2708でジャンプ位置が発見されたことが決定されるならば
、凸面領域を規定するセンスポイントは動作2710に移動される。しかしながら、
ジャンプ位置が発見されていないことが決定されたならば、プロセスは終了され
る。別の実施形態では、列、対角線または任意の他のタイプのストリングが行の
代わりに動作2706で処理されることに注意すべきである。
チャートである。示されているように、プロセスは多角形を規定するセンスポイ
ントが決定2801で右に移動されるか否かを決定するため、動作2800でセンスポイ
ントを計算することにより開始する。このような決定は最も右のセンスポイント
の位置に基づいて行われる。最も右のセンスポイントがプリミティブの同一エッ
ジ外に位置されないならば、右方向の移動は許容され、現在位置の右への位置(
XおよびY座標)は動作2802でスナップ位置として記憶される。しかしながら、
最も右のセンスポイントがプリミティブの1以上のエッジ外に位置されるならば
、右方向の移動は許容されず、動作2802はスキップされる。
この評価は点がプリミティブ中に存在するか否かの決定を含んでいる。ポイント
がプリミティブ中に存在するか否かについてのこのような決定は、各一次方程式
の評価が各センスポイントで正の値または負の値を与えるか否かを決定すること
を含んでいる。
化されることができる。画素が丁度エッジ上に存在する包含的なエッジが描かれ
、ゼロに評価され、正として扱われる。描かれるべきではない排他的なエッジは
開始の一次方程式の値から1の値を最初に減算することにより負にされることが
できる。したがって、排他的エッジ上の画素は正のゼロの代わりに負値(−1)
に評価される。これはセンスポイントの移行が包含的/排他的ポリシーを無視し
、単に一次方程式の符号を試験することを許容する。
位置がジャンプ位置を構成するか否かが決定される。2つの下部のセンスポイン
トが両者ともエッジ外でなければ、ジャンプ位置は記憶されることに注意すべき
である。決定2806で、ジャンプ位置が発見されたことが決定されたならば、動作
2808でジャンプ位置が計算され記憶される(または存在するならば先に記憶され
たジャンプ位置で置換する)。しかしながらノーであるならば、動作2808はスキ
ップされる。
プリミティブのエッジ外であるか否かが決定される。このプロセスは再び両者の
最も左のセンスポイントの一次方程式の評価が正または負値を与えるか否かを決
定することを含んでいる。特に適切なセンスポイントで9または10のエッジ式
の係数を計算するとき、9または10値が与えられ、それらは9または10の符
号ビットを有する。現在の側面が完全にエッジ外であるか否かを決定するために
、例えば本発明は2つのセンスポイントからの10の符号ビットを共に論理積(
AND)処理する。任意のビットが残存するならば、両者のポイントはそのエッ
ジ外である。
定されたならば、左方向にあると考えられるプリミティブの部分がさらに残留し
ていることが結論付けされ。センスポイントは動作2812に左へ移動される。決定
2810で、両者の最も左のセンスポイントがプリミティブのエッジ外であることが
決定されたならば。左方向にあると考えられるプリミティブの部分がさらに残留
していないことが結論付けされる。次に、決定2814で、動作2802から得られたス
ナップ位置が存在するか否かの決定が行われる。
は行われる。しかしながら、スナップ位置が存在するならば、センスポイントは
動作2816でスナップ位置に移動される。その後、2804−2812の動作に類似した動
作はプリミティブの右側をマップするように行わされる。これは凸形領域の点で
一次方程式を評価することにより動作2818で開始する。
ジャンプ位置を構成するか否かが決定される。決定2820で、ジャンプ位置が発見
されたことが決定されたならば、動作2822でジャンプ位置が計算され記憶される
。ノーであるならば、動作2822はスキップされる。
プリミティブのエッジ外であるか否かが決定される。最も右のセンスポイントが
両者ともプリミティブのエッジ外ではないことが決定されたならば、右方向にあ
ると考えられるプリミティブ部分がさらに残留していることが結論付けされ、セ
ンスポイントは動作2826で右に移動される、決定2824で、最も右のセンスポイン
トが両者ともプリミティブのエッジ外にあることが決定されたならば、右方向に
あると考えられるプリミティブの部分がさらに残留していないことが結論付けさ
れ、瞬時のプロセスが実行される。
移動されるシーケンスを示している。種々の代りの方法が決定2800で点が左に移
動することができるか否かを決定し、最初に右に進行することを含むことに注意
する。一次方程式は点が任意の所望の方法でプリミティブ内または外であるかを
示すために規定される。
中に全体的な移動方向を使用する。最初の構成はトップ−ダウンを行い、次へス
テップダウンする前に1つの行の1つ1つの凸領域に行く。行のトップ−ダウン
を行い、右その後左へ、または左その後右へステップしないことによりループは
阻止される。
P4を参照して示されている、動作において、隣接するセンスポイントの対はそ
れらの方向のステッピングが生産的(productive)であるか否かを決定するため
検査されることができる。例えば図27A中のP3とP4の両者が多角形のエッ
ジ外であるが、P1および/またはP2は多角形のエッジ外ではないならば、明
白に描くことのできる内部エリアは右ではなく左に位置する。したがってセンス
ポイントは右へ移動すべきではない。反対に、P3とP4の両者が全てのエッジ
内であるならば、描くことのできる内部エリアは丁度P3とP4を越えて存在し
、右へのステップが適切である。P3とP4が同じエッジの外ではないならば、
右へのステップが生産的である。この同じ論理はP1とP3により誘導される上
方向へのステップまたは、P1とP2により誘導される左のステップ、またはP
2とP4に基づいた下方向のステップにも適用される。
ミティブの内部周辺の点により規定される凸形区域を移動またはステップする。
点によって規定される凸形領域が大きいので、多数の画素は同時に試験される。
使用中、全てのセンスポイントがプリミティブの全てのエッジ内であるならば、
全ての囲まれた画素は描かれることが可能でなければならない(凸形のプリミテ
ィブを想定する)。コーナー部を検査することにより多くの利点が与えられ、即
ちプリミティブの任意のエリアを与える能力は内部、外部または分割である。後
者のケースでのみ、点により規定される凸形領域の個々の画素が試験される必要
がある。このような場合、点により規定される凸形領域の画素はこれらがプリミ
ティブに存在するか否かを決定するために別の方法により1つづつ試験される。
さらに、センスポイントはエリアを分割するエッジと分割しないエッジを規定す
ることにより、必要な試験の量を減少する。
プロセスを示すフローチャートである。示されているように、最初に決定2900で
、先の移動が第1または第2の方向であるかを決定する。実際に先の移動が存在
しなかったならば、デフォルトの先の移動が仮定される。決定2900で、先の移動
が第2の方向であることが決定されたならば、動作2902で図28の動作2804と類
似した方法で一次方程式が凸形領域、例えば長方形の点で評価される。
ポイントが両者ともプリミティブのエッジ外であるか否かに関して決定が行われ
る。ノーであるならば、センスポイントは動作2906で第1の方向で移動またはス
テップされる。長方形の第1の側面のセンスポイントが両者ともプリミティブの
エッジ外であるという決定が行われると、決定2905で、点が下方向に移動できる
か否か、換言すると、現在位置がジャンプ位置を構成するか否かが決定される。
イエスならば、動作2908でジャンプ位置が計算され、記憶され、その後プロセス
が行われる。
、動作2902−2908と類似の動作が実行される、特に動作2910で、動作一次方程式
は凸形領域、例えば長方形の点で評価される。決定2912で、長方形の第2の側面
のセンスポイントが両者ともプリミティブのエッジ外であるか否かに関する決定
が行われる。ノーであるならば、センスポイントは動作2914で第2の方向で移動
またはステップされる。長方形の第2の側面のセンスポイントが両者ともプリミ
ティブのエッジ外であるという決定が行われると、決定2913で、点が下方向に移
動できるか否か、換言すると、現在位置がジャンプ位置を構成するか否かが決定
される。イエスならば、動作2916でジャンプ位置が計算され、記憶され、その後
プロセスが行われる。
プリミティブに関して移動されるシーケンスを示している。前述の犂耕体ラスタ
ー化はハードウェアに対してより良好な性能を与えるあるルールに従うようにシ
ーケンスを規制する。示されているように、犂耕体ラスター化は前後に曲がる蛇
行パターンを与える。水平の犂耕体シーケンスは例えばプリミティブ三角形内に
全ての画素を生成し、それらは左から右へ1つの行に存在し、その後、次の行で
右から左へ画素を生成する。このような折曲がったパスは生成された画素から最
近予め発生された画素までの平均距離が比較的小さいことを確実にする。
するテキスチャ値が限定されたサイズのメモリ中に維持されるときに重要である
。犂耕体シーケンスはこのようなメモリに既にロードされている画素またはテキ
スチャを頻繁に発見し、それ故メモリのロードの反復が行われる頻度が少なくな
る。
る少なくとも1つの境界が使用される。動作において、点は各部分で別々に移動
される。さらに、点は第2の部分で移動される前に第1の部分の全体を移動され
る。
ある。1つの選択肢として、境界を使用するか否かの決定はプリミティブの大き
さに基づく。図30で示されているように、境界を処理する犂耕体プロセスは、
少なくとも1つの境界が規定され、プリミティブを複数の部分またはスワス(sw
ath )に分割する付加的な動作3000を除いて図27のプロセスと類似している。
の完了にしたがう。特に、決定3001で、隣接部分のスタート位置が動作3006で発
見されるか否かが決定される。イエスであるならば、センスポイントにより規定
される凸形領域は動作3002でプリミティブの隣接部分のスタート点に移動され、
動作3004−3010はプリミティブの新しい部分に対して反復される。さらに動作30
06のスタート位置の決定に関する情報を図31を参照してさらに詳細に説明する
。
状領域がプリミティブに関して移動されるプロセスを示している。示されている
ように、処理される第1の部分はプリミティブの最上部の頂点を含む部分である
。動作中、左の隣接部分が処理され、その後近接する左の隣接部分が処理され、
以下同様に処理される。これは、左の隣接部分がなくなるまで継続される。次に
第1の部分の右への隣接部分が処理され、その後、近接する右の隣接部分が処理
され、全ての右の隣接部分が処理されるまで継続される。他のタイプの順序付け
方式がユーザの要望にしたがって使用されてもよいことを認識すべきである。
ャートである。このようなプロセスは決定3118と3121を除いて図29の犂耕体プ
ロセスに類似している。決定3118と3120の両者は任意のセンスポイントが任意の
境界を通過しているか否かを決定する。センスポイントが境界内であることが決
定されさえすれば、それぞれのループが継続される。
決定3118と3120で、凸形領域の任意のセンスポイントがそれぞれ任意の境界を通
過していることを決定したときに記憶される。図31Aで示されているように、
このようなスタート位置3126は境界を越えて存在するプリミティブ部分の最上部
点としてそれぞれ規定される。この位置を記憶することにより、プロセスがプリ
ミティブにおける隣接する境界の規定された部分で反復されるときにスタート点
が与えられる。
れることに注意する。図31で明白に示していないが、部分を第1の部分の左に
処理するときこのような動作の第1の動作だけが行われ、部分を第1の部分の右
に処理するとき、このような動作の第2の動作だけが行われる。換言すると、部
分を第1の部分の左に処理するとき、スタート位置は現在処理された部分の最も
左の境界が超過されたときだけ決定される。同様に、部分を第1の部分の右に処
理するとき、スタート位置は現在処理された部分の最も右の境界が超過されたと
きだけ決定される。
な問題を解決する。プリミティブが非常に広いならば、1つの行の画素に関連す
る記憶媒体は限定されたサイズのメモリに適合しない。境界によるラスター化は
三角形を限定された幅の行(または列)に分離し、次の部分へ移動する前に、こ
のような部分内に全ての画素を生成する。
テキスチャメモリは先の20画素の情報だけを保持する。画素シーケンスを10
画素幅の垂直部分内に存在するように制限することによって、以前のおよび現在
の行の全ての画素はメモリに適合することが可能である。これは、境界の規定さ
れた部分内の犂耕体シーケンスが常にメモリの(存在するならば)現在の行の以
前の画素と、メモリの(存在するならば)上の行の画素とを有することを意味し
ている。
よりデータのブロックを転送する。メモリシステムに対する小さいアクセスはこ
のオーバーヘッドにより重いペナルティを課される。効率的であるように、大き
いアクセスが使用され、ブロックの残りは次に使用される場合のために維持され
る。さらに、キャッシュメモリシステムは複数のこれらの最近のブロックを維持
し、メモリアクセスが避けられることができる確率を増加させる。
し処理するときにシングル−リテイン−ブロックを使用する。さらに、犂耕体シ
ーケンスはラスター化を特定サイズの部分に限定するときキャッシュを使用する
。特に部分内の2つの走査線はキャッシュに適合され、第2の走査線を通じて第
1の走査線のキャッシュ記憶から利点が得られる。
部分および水平の犂耕体パターンの例を使用したが、類似の原理が水平部分およ
び垂直の犂耕体パターンまたは、対角線部分およびパターンまで拡張される。1
実施形態では、ストリング(例えば、行、列、対角線等)の長さはストリングが
存在するプリミティブの大きさよりも小さいようにそれぞれ限定される。
ローチャートである。瞬間的なプロセスは目の後に存在する部分でプリミティブ
を処理するように設計されている。これらの域外の部分はその次のラスター化動
作で問題を生じる。これを実現するため、瞬間的なプロセスは変数Wを使用し、
これは投影、即ち遠近法でオブジェクトを観察するために共通して使用される。
変数Wは他の座標X、Y、Zが近くのものを大きく、遠くのものを小さくするた
めに割算される数字である。変数Wは投影の中心と、対応する頂点との間の距離
を表す。
により規定される。そのような各頂点はW値を含んでいる。プリミティブを受信
するとき、設定モジュールは頂点に基づいてプリミティブを特徴付けするライン
を規定する役目を行う。動作3200に注意。
が負であるならば、負の値を有する頂点と反対のラインの一次方程式は動作3204
でフリップされる。換言すると、一次方程式の係数は−1により乗算される。さ
らに、2つのW−値が負であるならば、正のW−値を有する頂点と、負のW−値
を有するそれぞれの頂点とを接続するラインの一次方程式は動作3206でフリップ
される。3つのW−値が負であるならば、不合格(カル)状態3207が生じ、本発
明は三角形を不合格とする。負であるW−値がないならば、付加的な措置は取ら
れない。
影響を与える方法を示している。図32AはW値が負のものではなく、一次方程
式が変更されない状態の場合を示している。示されているように、プリミティブ
の内部部分はこのようなケースで満たされている。
されるケースを示している。示されているように、頂点と対向するプリミティブ
部分は現在のケースで満たされている。特に、描かれるエリアは−W頂点を共有
する2つの三角形の面と共直線性である2つのラインにより境界を与えられ、さ
らに、2つの+W頂点を共有する三角形の面により境界を与えられる。
されるケースを示している。示されているように、頂点と対向するプリミティブ
部分は図27−32を参照して前述した方法および/またはプロセスを使用して
満たされる。換言すると、描かれるエリアは+W頂点を共有する2つの三角形の
面と共直線性である2つのラインにより境界を与えられ、さらに、+W頂点に近
接する。
角形の部分が近距離および/遠距離の平面を越えているならば、これらの平面内
にその部分だけを描く。三角形が1または2の負のZ頂点を有するならば、正確
な+Z部分だけが描かれる。
越えて延在しても、画素は三角形内およびスクリーン上であり、近限界と遠限界
との間にZを有する。本発明は悪い画素を使用する時間の浪費を少なくすること
を確実にする。スクリーンエッジまたは近距離平面と遠距離平面による全てのク
リッピングが容易に使用されることができる凸形領域のオンスクリーンで常に行
われるので、これは可能である。
上部頂点がオフスクリーンであるか近距離の平面または遠距離の平面によりクリ
ップされる場合にこれは生じる。この場合、トラバーサルステージは描かれる区
域の上部点を検索しなければならず、上から開始する。これは三角形のエッジス
ロープとZスロープの符号により誘導されることにより効率的に行われる。これ
は三角形の一次方程式が描かれる領域外であることとその理由を発見するために
、三角形の一次方程式を試験できる。外部にあるエッジおよび/またはZ限界を
知ったとき、そのエッジまたは限界へ近付けるステップ方向を知る。(選択肢の
あるとき)好みによって水平から垂直に移動することによって、描かれた領域の
検索は上部に描くことのできる画素が存在するならば、それを発見する。オープ
ンアップする外部(−W)三角形でもこの問題は生じる。この場合、描かれる区
域は全ての3つの頂点よりも上方に延在する。
負のW−値をもたず頂点がシザー長方形であるならば、スタート点は三角形の上
部の頂点である。トラバーサルは常にシザー長方形内で開始し、その外ではない
ので、エッジにより囲まれるエリアがシザー長方形を越えて延在しても、シザー
長方形内の三角形部分だけが描かれる。このようにして、簡単なシザー長方形の
長方形エッジクリッピングが行われる。
み示されていることを理解すべきである。したがって、本発明の技術的範囲は前
述の例示的な実施形態により限定されず、特許請求の範囲とそれらの均等物にし
たがってのみ限定される。
ンポーネントを示すフロー図。
ンドを示すチャート。
方法を示すフローチャート。
ャート。
。
レスのチャート。
すフローチャート。
を詳細に示すフロー図。
る本発明のコンポーネントを示すフロー図。
ンポーネントの1つの可能な組合せ1451を示すフロー図。
を示すフロー図。
ラフィック処理中にブレンディング動作を行う方法を示すフロー図。
概略図。
MLU)の概略図。
ALU)の概略図。
概略図。
理装置(LLU)の概略図。
グレジスタの説明図。
ロコードフィールドの説明図。
ンサの概略図。
ンサが関連したバッファの入力および出力をどのように制御することができるか
を詳細に説明するフローチャート。
関連したバッファの入力および出力をどのように制御することができるかを示す
概略図。
タを示す説明図。
ルモジュールに関連した本発明の方法を示すフローチャート。
に移動される凸状領域を囲む方向ポイントを示す説明図。
ト。
。
す概略図。
示すフローチャート。
て移動されるシーケンスを示す概略図。
域がプリミティブに関して移動されるシーケンスを示す概略図。
リアが描かれるかを示す説明図。
リアが描かれるかを示す説明図。
リアが描かれるかを示す説明図。
Claims (26)
- 【請求項1】 (a)バッファから頂点データを受信するためにバッファに
結合されるように構成され、オブジェクトスペースからスクリーンスペースへ頂
点データを変換する単一の半導体プラットフォーム上に位置される変換モジュー
ルと、 (b)変換モジュールに結合され、変換モジュールから受信された頂点データ
についてライティング演算を実行するために変換モジュールと同一の単一の半導
体プラットフォームに位置されているライティングモジュールと、 (c)ライティングモジュールに結合され、ライティングモジュールから受信
される頂点データをレンダリングするために変換モジュールとライティングモジ
ュールと同一の単一の半導体プラットフォームに位置されているラスター化装置
とを具備し、 (d)変換モジュールとライティングモジュールの少なくとも1つは複数の論
理装置により並列して多数の演算スレッドを実行するためのシーケンサを含んで
いるグラフィック処理用のグラフィックパイプラインシステム。 - 【請求項2】 ライティングモジュールは、 (a)頂点データを受信するように構成されている複数の入力バッファと、 (b)入力バッファの1つの出力に結合されている第1の入力と、入力バッフ
ァの1つの出力に結合されている第2の入力とを有する乗算論理装置と、 (c)入力バッファの1つの出力に結合されている第1の入力と、乗算論理装
置の出力に結合されている第2の入力とを有する演算論理装置と、 (d)演算論理装置の出力に結合されている入力と、乗算論理装置の第1の入
力に結合されている出力とを有する第1のレジスタ装置と、 (e)演算論理装置の出力に結合されている入力と、乗算論理装置の第1の入
力および第2の入力に結合されている出力とを有する第2のレジスタ装置と、 (f)演算論理装置の出力に結合されている第1の入力と、入力バッファの1
つの出力に結合されている第2の入力と、乗算論理装置の第1の入力に結合され
ている出力とを有するライティング論理装置と、 (g)乗算論理装置の少なくとも1つの入力と、演算論理装置の出力に結合さ
れているメモリとを含んでいる請求項1記載のシステム。 - 【請求項3】 入力バッファの1つの出力は遅延素子を介してライティング
モジュールの出力に結合されている請求項2記載のシステム。 - 【請求項4】 演算論理装置の出力と、入力バッファの1つの出力はマルチ
プレクサによりライティングモジュールの出力に結合されている請求項3記載の
システム。 - 【請求項5】 乗算論理装置の出力はその第2の入力に結合されたフィード
バックループを有している請求項2記載のシステム。 - 【請求項6】 ライティング論理装置の第2の入力は遅延素子を介して入力
バッファの1つの出力に結合されている請求項2記載のシステム。 - 【請求項7】 ライティング論理装置の出力は先入れ先出しレジスタ装置を
介して乗算論理装置の第1の入力に結合されている請求項2記載のシステム。 - 【請求項8】 ライティング論理装置の出力はスカラー頂点データをベクト
ル頂点データへ変換するように構成されたコンバータモジュールを介して乗算論
理装置の第1の入力に結合されている請求項2記載のシステム。 - 【請求項9】 変換モジュールは、 (a)頂点データを受信するように構成されている入力バッファと、 (b)入力バッファの出力に結合された第1の入力を有する乗算論理装置と、 (c)乗算論理装置の出力に結合された第1の入力を有する演算論理装置と、 (d)演算論理装置の出力に結合する入力を有するレジスタ装置と、 (e)逆数または逆平方根演算を実行するために、演算論理装置またはレジス
タ装置の出力に結合された入力を含んでいる反転論理装置と、 (f)反転論理装置の出力と、乗算論理装置の第2の入力との間に結合され、
スカラー頂点データをベクトル頂点データに変換するように構成されているコン
バータモジュールと、 (g)乗算論理装置と演算論理装置に結合されているメモリとを含んでいる請
求項1記載のシステム。 - 【請求項10】 メモリは乗算論理装置の第2の入力に結合されている請求
項9記載のシステム。 - 【請求項11】 メモリは演算論理装置の出力に結合されている書込み端子
を有する請求項9記載のシステム。 - 【請求項12】 乗算論理装置の出力はその第1の入力に結合されているフ
ィードバックループを有している請求項9記載のシステム。 - 【請求項13】 レジスタ装置の出力は乗算論理装置の第1の入力に結合さ
れている請求項9記載のシステム。 - 【請求項14】 レジスタ装置の出力は乗算論理装置の第2の入力に結合さ
れている請求項9記載のシステム。 - 【請求項15】 演算論理装置の出力はその第2の入力に接続されたフィー
ドバックループを有する請求項9記載のシステム。 - 【請求項16】 フィードバックループはそれに結合された遅延素子を有す
る請求項15記載のシステム。 - 【請求項17】 ラスター化装置は均質のクリップスペースで動作する請求
項1記載のシステム。 - 【請求項18】 ラスター化装置はそれぞれW−値を含んでいる複数の頂点
により規定されるプリミティブを受信し、W−値に基づいてエリアを識別するよ
うに構成され、エリアはプリミティブに対応して描かれるディスプレイ部分の表
示である請求項1記載のシステム。 - 【請求項19】 (a)バッファから頂点データを受信するためにバッファ
に結合されるように構成され、オブジェクトスペースからスクリーンスペースへ
頂点データを変換するために単一の半導体プラットフォーム上に位置されている
変換手段と、 (b)変換手段から受信される頂点データについてライティング演算を実行す
るために変換手段と同一の単一の半導体プラットフォームに位置されているライ
ティング手段と、 (c)ライティング手段から受信される頂点データをレンダリングするために
変換手段およびライティング手段と同一の単一の半導体プラットフォーム上に位
置されているラスター化装置とを具備し、 (d)変換手段とライティング手段の少なくとも1つは複数の論理装置により
並列して多数の演算スレッドを実行するためのシーケンサ手段を含んでいるグラ
フィック処理用のグラフィックパイプラインシステム。 - 【請求項20】 (a)頂点データをオブジェクトスペースからスクリーン
スペースへ変換し、 (b)頂点データをライティングし、 (c)頂点データの変換およびライティングのうちの少なくとも1つを行いな
がら複数の論理装置により並列に多数の演算スレッドを実行し、 (d)頂点データをレンダリングし、頂点データは単一の半導体プラットフォ
ーム上で変換され、ライティングされ、レンダリングされるステップを含んでい
るグラフィック処理方法。 - 【請求項21】 レンダリング前に、グラフィック処理は、それぞれW−値
を含んでいる複数の頂点により規定されるプリミティブを受信し、W−値に基づ
いてエリアを識別することによってクリッピング演算を避け、エリアはプリミテ
ィブに対応して描かれるディスプレイ部分の表示である請求項20記載の方法。 - 【請求項22】 (a)変換モジュールに結合され、変換モジュールから頂
点データを受信し、変換モジュールから受信された頂点データについてライティ
ング演算を実行するために単一の半導体プラットフォーム上に位置されているラ
イティングモジュールと、 (b)ライティングモジュールに結合され、ライティングモジュールから受信
された頂点データをレンダリングするためにライティングモジュールと同一の単
一の半導体プラットフォームに位置されているラスター化装置とを具備し、 (c)クリッピング演算は頂点データのW−値を使用してラスター化装置によ
りラスター化される前に避けられるグラフィック処理用のグラフィックパイプラ
インシステム。 - 【請求項23】 (a)頂点データをライティングし、 (b)頂点データのW−値を使用してクリッピング動作を避け、 (c)頂点データをレンダリングし、頂点データはライティングされ、単一の
半導体プラットフォーム上でレンダリングされるステップを含んでいるグラフィ
ック処理方法。 - 【請求項24】 (a)バッファから頂点データを受信するためにバッファ
に結合されるように構成され、オブジェクトスペースからスクリーンスペースへ
頂点データを変換するために単一の半導体プラットフォーム上に位置されている
変換モジュールと、 (b)頂点データをレンダリングするために変換モジュールと同一の単一の半
導体プラットフォームに位置されているラスター化装置とを具備し、 (c)クリッピング演算は頂点データのW−値を使用してラスター化装置によ
りラスター化される前に避けられるグラフィック処理用のグラフィックパイプラ
インシステム。 - 【請求項25】 (a)オブジェクトスペースからスクリーンスペースへ頂
点データを変換し、 (b)頂点データのW−値を使用してクリッピング演算を避け、 (c)頂点データをレンダリングし、頂点データは変換され、単一の半導体プ
ラットフォーム上でレンダリングされるグラフィック処理方法。 - 【請求項26】 レンダリング前に、グラフィック処理は、それぞれW−値
を含んでいる複数の頂点により規定されるプリミティブを受信し、W−値に基づ
いてエリアを識別することによってクリッピング演算を避け、エリアはプリミテ
ィブに対応して描かれるディスプレイの一部分の表示である請求項25記載の方
法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/454,516 | 1999-12-06 | ||
US09/454,516 US6198488B1 (en) | 1999-12-06 | 1999-12-06 | Transform, lighting and rasterization system embodied on a single semiconductor platform |
PCT/US2000/033092 WO2001041073A1 (en) | 1999-12-06 | 2000-12-05 | A transform, lighting and rasterization system embodied on a single semiconductor platform |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007067392A Division JP4608510B2 (ja) | 1999-12-06 | 2007-03-15 | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003515853A true JP2003515853A (ja) | 2003-05-07 |
JP4306995B2 JP4306995B2 (ja) | 2009-08-05 |
Family
ID=23804927
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001542053A Expired - Lifetime JP4306995B2 (ja) | 1999-12-06 | 2000-12-05 | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム |
JP2007067392A Expired - Lifetime JP4608510B2 (ja) | 1999-12-06 | 2007-03-15 | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007067392A Expired - Lifetime JP4608510B2 (ja) | 1999-12-06 | 2007-03-15 | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム |
Country Status (7)
Country | Link |
---|---|
US (9) | US6198488B1 (ja) |
EP (1) | EP1238371B9 (ja) |
JP (2) | JP4306995B2 (ja) |
AT (1) | ATE512427T1 (ja) |
AU (1) | AU2064501A (ja) |
CA (1) | CA2392370C (ja) |
WO (1) | WO2001041073A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009543195A (ja) * | 2006-06-28 | 2009-12-03 | マイクロソフト コーポレーション | グラフィックスパイプラインステートの高速再構成 |
JP2010515122A (ja) * | 2006-12-22 | 2010-05-06 | クゥアルコム・インコーポレイテッド | 高速ピクセル・レンダリング処理 |
JP2010516001A (ja) * | 2007-01-10 | 2010-05-13 | クゥアルコム・インコーポレイテッド | 3次元グラフィックスパイプラインの自動負荷分散 |
Families Citing this family (144)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098297B2 (en) * | 1997-05-08 | 2015-08-04 | Nvidia Corporation | Hardware accelerator for an object-oriented programming language |
US6480205B1 (en) | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
US6646639B1 (en) | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US6417858B1 (en) * | 1998-12-23 | 2002-07-09 | Microsoft Corporation | Processor for geometry transformations and lighting calculations |
US6452600B1 (en) | 1999-10-28 | 2002-09-17 | Nintendo Co., Ltd. | Graphics system interface |
US6411301B1 (en) * | 1999-10-28 | 2002-06-25 | Nintendo Co., Ltd. | Graphics system interface |
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 |
US6198488B1 (en) * | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US7209140B1 (en) | 1999-12-06 | 2007-04-24 | Nvidia Corporation | System, method and article of manufacture for a programmable vertex processing model with instruction set |
US6452595B1 (en) * | 1999-12-06 | 2002-09-17 | Nvidia Corporation | Integrated graphics processing unit with antialiasing |
US6765575B1 (en) * | 1999-12-06 | 2004-07-20 | Nvidia Corporation | Clip-less rasterization using line equation-based traversal |
US7002577B2 (en) * | 1999-12-06 | 2006-02-21 | Nvidia Corporation | Clipping system and method for a single graphics semiconductor platform |
US6844880B1 (en) | 1999-12-06 | 2005-01-18 | Nvidia Corporation | System, method and computer program product for an improved programmable vertex processing model with instruction set |
US6650325B1 (en) * | 1999-12-06 | 2003-11-18 | Nvidia Corporation | Method, apparatus and article of manufacture for boustrophedonic rasterization |
US6353439B1 (en) * | 1999-12-06 | 2002-03-05 | Nvidia Corporation | System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline |
US6417851B1 (en) * | 1999-12-06 | 2002-07-09 | Nvidia Corporation | Method and apparatus for lighting module in a graphics processor |
US7159041B2 (en) * | 2000-03-07 | 2007-01-02 | Microsoft Corporation | Method and system for defining and controlling algorithmic elements in a graphics display system |
US6859862B1 (en) | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US6857061B1 (en) | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
US7061494B1 (en) * | 2000-04-20 | 2006-06-13 | International Business Machines Corporation | Method and apparatus for hardware optimization of graphics pipeline functions |
US6724394B1 (en) * | 2000-05-31 | 2004-04-20 | Nvidia Corporation | Programmable pixel shading architecture |
US6664963B1 (en) * | 2000-05-31 | 2003-12-16 | Nvidia Corporation | System, method and computer program product for programmable shading using pixel shaders |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US6593925B1 (en) * | 2000-06-22 | 2003-07-15 | Microsoft Corporation | Parameterized animation compression methods and arrangements |
US6999100B1 (en) | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US6639595B1 (en) * | 2000-08-23 | 2003-10-28 | Nintendo Co., Ltd. | Achromatic lighting in a graphics system and method |
US6980218B1 (en) * | 2000-08-23 | 2005-12-27 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US6580430B1 (en) | 2000-08-23 | 2003-06-17 | Nintendo Co., Ltd. | Method and apparatus for providing improved fog effects in a graphics system |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6664958B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Z-texturing |
US7196710B1 (en) * | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6664962B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Shadow mapping in a low cost graphics system |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US6609977B1 (en) | 2000-08-23 | 2003-08-26 | Nintendo Co., Ltd. | External interfaces for a 3D graphics system |
US6825851B1 (en) | 2000-08-23 | 2004-11-30 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping 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 |
US6606689B1 (en) | 2000-08-23 | 2003-08-12 | Nintendo Co., Ltd. | Method and apparatus for pre-caching data in audio memory |
US7134960B1 (en) * | 2000-08-23 | 2006-11-14 | Nintendo Co., Ltd. | External interfaces for a 3D graphics system |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6597356B1 (en) * | 2000-08-31 | 2003-07-22 | Nvidia Corporation | Integrated tessellator in a graphics processing unit |
US6704010B1 (en) * | 2000-09-05 | 2004-03-09 | Nvidia Corporation | System, method and article of manufacture for rendering triangular patches using hardware equipped for handling quadrilateral patches |
US8692844B1 (en) | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
US6697074B2 (en) | 2000-11-28 | 2004-02-24 | Nintendo Co., Ltd. | Graphics system interface |
US7098921B2 (en) * | 2001-02-09 | 2006-08-29 | Activision Publishing, Inc. | Method, system and computer program product for efficiently utilizing limited resources in a graphics device |
US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
GB2409074B (en) * | 2001-03-14 | 2005-08-03 | Micron Technology Inc | Arithmetic pipeline |
US7456838B1 (en) | 2001-06-08 | 2008-11-25 | Nvidia Corporation | System and method for converting a vertex program to a binary format capable of being executed by a hardware graphics pipeline |
US7006101B1 (en) | 2001-06-08 | 2006-02-28 | Nvidia Corporation | Graphics API with branching capabilities |
US6894687B1 (en) * | 2001-06-08 | 2005-05-17 | Nvidia Corporation | System, method and computer program product for vertex attribute aliasing in a graphics pipeline |
US6947047B1 (en) | 2001-09-20 | 2005-09-20 | Nvidia Corporation | Method and system for programmable pipelined graphics processing with branching instructions |
US7154502B2 (en) * | 2002-03-19 | 2006-12-26 | 3D Labs, Inc. Ltd. | 3D graphics with optional memory write before texturing |
US7009605B2 (en) | 2002-03-20 | 2006-03-07 | Nvidia Corporation | System, method and computer program product for generating a shader program |
US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
US6809732B2 (en) * | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
JP2004280157A (ja) * | 2003-03-12 | 2004-10-07 | Toshiba Corp | 画像処理装置 |
JP3966832B2 (ja) * | 2003-04-28 | 2007-08-29 | 株式会社東芝 | 描画処理装置、及び、描画処理方法 |
US7218331B2 (en) * | 2003-05-13 | 2007-05-15 | Via Technologies, Inc. | Bounding box in 3D graphics |
US8768642B2 (en) | 2003-09-15 | 2014-07-01 | Nvidia Corporation | System and method for remotely configuring semiconductor functional circuits |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775997B2 (en) * | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
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 |
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 |
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 |
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 |
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 |
US20070291040A1 (en) * | 2005-01-25 | 2007-12-20 | Reuven Bakalash | Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation |
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 |
US20080094403A1 (en) * | 2003-11-19 | 2008-04-24 | Reuven Bakalash | Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem |
US7584475B1 (en) | 2003-11-20 | 2009-09-01 | Nvidia Corporation | Managing a video encoder to facilitate loading and executing another program |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
JP4064339B2 (ja) * | 2003-12-19 | 2008-03-19 | 株式会社東芝 | 描画処理装置、描画処理方法および描画処理プログラム |
US8144156B1 (en) * | 2003-12-31 | 2012-03-27 | Zii Labs Inc. Ltd. | Sequencer with async SIMD array |
US8432394B1 (en) | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US7106336B1 (en) * | 2004-05-14 | 2006-09-12 | Nvidia Corporation | Method and system for deferred evaluation of transforms in graphics processors |
US20060007234A1 (en) * | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8416242B1 (en) | 2004-05-14 | 2013-04-09 | Nvidia Corporation | Method and system for interpolating level-of-detail in graphics processors |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US7079156B1 (en) * | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8190669B1 (en) | 2004-10-20 | 2012-05-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
JP4487188B2 (ja) * | 2004-10-25 | 2010-06-23 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びにナビゲーション装置 |
CN101849227A (zh) * | 2005-01-25 | 2010-09-29 | 透明信息技术有限公司 | 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统 |
US20090096798A1 (en) * | 2005-01-25 | 2009-04-16 | Reuven Bakalash | Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US7483029B2 (en) * | 2005-12-15 | 2009-01-27 | Nvidia Corporation | GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8037119B1 (en) | 2006-02-21 | 2011-10-11 | Nvidia Corporation | Multipurpose functional unit with single-precision and double-precision operations |
US8928676B2 (en) | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US8954947B2 (en) * | 2006-06-29 | 2015-02-10 | Microsoft Corporation | Fast variable validation for state management of a graphics pipeline |
US20080122843A1 (en) * | 2006-07-20 | 2008-05-29 | Via Technologies, Inc. | Multi-thread vertex shader, graphics processing unit and flow control method |
US8134570B1 (en) * | 2006-09-18 | 2012-03-13 | Nvidia Corporation | System and method for graphics attribute packing for pixel shader usage |
US8537168B1 (en) * | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8237738B1 (en) | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US7663621B1 (en) * | 2006-11-03 | 2010-02-16 | Nvidia Corporation | Cylindrical wrapping using shader hardware |
BRPI0606106B1 (pt) * | 2006-11-28 | 2018-02-14 | Fundação Oswaldo Cruz | Método para criar uma imagem em perspectiva, e, uso do método |
US8051123B1 (en) | 2006-12-15 | 2011-11-01 | Nvidia Corporation | Multipurpose functional unit with double-precision and filtering operations |
US7808512B1 (en) | 2006-12-19 | 2010-10-05 | Nvidia Corporation | Bounding region accumulation for graphics rendering |
US8253737B1 (en) * | 2007-05-17 | 2012-08-28 | Nvidia Corporation | System, method, and computer program product for generating a disparity map |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8495602B2 (en) * | 2007-09-28 | 2013-07-23 | Qualcomm Incorporated | Shader compile system and method |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8106914B2 (en) * | 2007-12-07 | 2012-01-31 | Nvidia Corporation | Fused multiply-add functional unit |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8248422B2 (en) * | 2008-01-18 | 2012-08-21 | International Business Machines Corporation | Efficient texture processing of pixel groups with SIMD execution unit |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
DE102009006660A1 (de) * | 2009-01-29 | 2010-08-05 | Baumer Innotec Ag | Pipeline-Recheneinrichtung zur Verbindung von Konturelementen aus Bilddaten |
US8542247B1 (en) | 2009-07-17 | 2013-09-24 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US8564616B1 (en) | 2009-07-17 | 2013-10-22 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US20110063304A1 (en) | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing synchronizing techniques on heterogeneous graphics processing units |
US8922555B2 (en) * | 2009-10-07 | 2014-12-30 | Nvidia Corporation | Pixel shader output map |
US8384736B1 (en) * | 2009-10-14 | 2013-02-26 | Nvidia Corporation | Generating clip state for a batch of vertices |
US8976195B1 (en) | 2009-10-14 | 2015-03-10 | Nvidia Corporation | Generating clip state for a batch of vertices |
JP5367552B2 (ja) * | 2009-12-15 | 2013-12-11 | 株式会社東芝 | 画像処理装置および画像処理プログラム |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9064343B2 (en) | 2010-08-24 | 2015-06-23 | Qualcomm Incorporated | Graphics processing using two-dimensional scissor regions |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
US9589312B2 (en) * | 2014-12-19 | 2017-03-07 | Intel Corporation | Exploiting frame-to-frame coherence for optimizing color buffer clear performance in graphics processing units |
KR20200084380A (ko) * | 2018-12-20 | 2020-07-13 | 전자부품연구원 | 인공지능 기반 스마트 홈 에어컨 자동 제어 시스템 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450342A (en) | 1984-10-05 | 1995-09-12 | Hitachi, Ltd. | Memory device |
JPH07117945B2 (ja) | 1987-07-23 | 1995-12-18 | 松下電器産業株式会社 | 並列計算機における同期通信方法 |
JPS6440679A (en) | 1987-07-31 | 1989-02-10 | Nippon Mektron Kk | Softener |
US5003497A (en) * | 1988-12-15 | 1991-03-26 | Sun Micosystems Inc | Method for three-dimensional clip checking for computer graphics |
US5025407A (en) | 1989-07-28 | 1991-06-18 | Texas Instruments Incorporated | Graphics floating point coprocessor having matrix capabilities |
JPH0792840B2 (ja) | 1989-10-13 | 1995-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレーシヨン | 画像生成方法及び装置 |
JP2770598B2 (ja) * | 1990-06-13 | 1998-07-02 | 株式会社日立製作所 | 図形表示方法およびその装置 |
JPH05282464A (ja) * | 1992-04-03 | 1993-10-29 | Fujitsu Ltd | 3次元コンピュータグラフィクスにおける描画方法 |
US6000027A (en) | 1992-08-25 | 1999-12-07 | Texas Instruments Incorporated | Method and apparatus for improved graphics/image processing using a processor and a memory |
US5459820A (en) | 1992-09-10 | 1995-10-17 | General Electric Company | Method for graphical display of three-dimensional vector fields |
JP3626514B2 (ja) * | 1994-01-21 | 2005-03-09 | 株式会社ルネサステクノロジ | 画像処理回路 |
US5694143A (en) | 1994-06-02 | 1997-12-02 | Accelerix Limited | Single chip frame buffer and graphics accelerator |
JPH08138060A (ja) * | 1994-11-04 | 1996-05-31 | Hitachi Ltd | 並列プロセッサを用いる表示処理装置 |
US5886701A (en) * | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
US5864342A (en) * | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5801711A (en) | 1995-08-08 | 1998-09-01 | Hewlett Packard Company | Polyline and triangle strip data management techniques for enhancing performance of computer graphics system |
US5724561A (en) | 1995-11-03 | 1998-03-03 | 3Dfx Interactive, Incorporated | System and method for efficiently determining a fog blend value in processing graphical images |
US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US5963210A (en) * | 1996-03-29 | 1999-10-05 | Stellar Semiconductor, Inc. | Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator |
US6104417A (en) * | 1996-09-13 | 2000-08-15 | Silicon Graphics, Inc. | Unified memory computer architecture with dynamic graphics memory allocation |
JPH10161636A (ja) * | 1996-11-29 | 1998-06-19 | Hitachi Ltd | グラフィックス表示装置 |
WO1998028695A1 (en) | 1996-12-19 | 1998-07-02 | Hyundai Electronics America | Video frame rendering engine |
US5880736A (en) | 1997-02-28 | 1999-03-09 | Silicon Graphics, Inc. | Method system and computer program product for shading |
US5977997A (en) | 1997-03-06 | 1999-11-02 | Lsi Logic Corporation | Single chip computer having integrated MPEG and graphical processors |
US6175367B1 (en) * | 1997-04-23 | 2001-01-16 | Siligon Graphics, Inc. | Method and system for real time illumination of computer generated images |
US5956042A (en) | 1997-04-30 | 1999-09-21 | Hewlett-Packard Co. | Graphics accelerator with improved lighting processor |
US6137497A (en) * | 1997-05-30 | 2000-10-24 | Hewlett-Packard Company | Post transformation clipping in a geometry accelerator |
US5951672A (en) * | 1997-07-02 | 1999-09-14 | International Business Machines Corporation | Synchronization method for work distribution in a multiprocessor system |
US6057855A (en) | 1997-07-02 | 2000-05-02 | Hewlett-Packard Company | Method and apparatus for providing polygon pixel sub-sample information using incremental means |
US6014144A (en) | 1998-02-03 | 2000-01-11 | Sun Microsystems, Inc. | Rapid computation of local eye vectors in a fixed point lighting unit |
WO1999052040A1 (en) | 1998-04-08 | 1999-10-14 | Stellar Technologies, Ltd. | Architecture for graphics processing |
US6144365A (en) | 1998-04-15 | 2000-11-07 | S3 Incorporated | System and method for performing blending using an over sampling buffer |
US6097395A (en) * | 1998-04-28 | 2000-08-01 | Hewlett Packard Company | Dynamic selection of lighting coordinates in a computer graphics system |
US6452595B1 (en) * | 1999-12-06 | 2002-09-17 | Nvidia Corporation | Integrated graphics processing unit with antialiasing |
US6198488B1 (en) * | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
-
1999
- 1999-12-06 US US09/454,516 patent/US6198488B1/en not_active Expired - Lifetime
-
2000
- 2000-12-05 AU AU20645/01A patent/AU2064501A/en not_active Abandoned
- 2000-12-05 AT AT00983961T patent/ATE512427T1/de not_active IP Right Cessation
- 2000-12-05 EP EP00983961A patent/EP1238371B9/en not_active Expired - Lifetime
- 2000-12-05 US US09/730,652 patent/US6342888B1/en not_active Expired - Lifetime
- 2000-12-05 CA CA2392370A patent/CA2392370C/en not_active Expired - Fee Related
- 2000-12-05 WO PCT/US2000/033092 patent/WO2001041073A1/en active Application Filing
- 2000-12-05 JP JP2001542053A patent/JP4306995B2/ja not_active Expired - Lifetime
-
2001
- 2001-01-31 US US09/775,086 patent/US7009607B2/en not_active Expired - Lifetime
- 2001-09-20 US US09/960,004 patent/US7034829B2/en not_active Expired - Lifetime
- 2001-09-20 US US09/957,746 patent/US6462737B2/en not_active Expired - Lifetime
- 2001-09-20 US US09/961,219 patent/US6577309B2/en not_active Expired - Lifetime
- 2001-09-20 US US09/961,228 patent/US6650331B2/en not_active Expired - Lifetime
-
2002
- 2002-06-28 US US10/187,226 patent/US7064763B2/en not_active Expired - Lifetime
-
2003
- 2003-03-31 US US10/404,776 patent/US6992667B2/en not_active Expired - Lifetime
-
2007
- 2007-03-15 JP JP2007067392A patent/JP4608510B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009543195A (ja) * | 2006-06-28 | 2009-12-03 | マイクロソフト コーポレーション | グラフィックスパイプラインステートの高速再構成 |
JP2010515122A (ja) * | 2006-12-22 | 2010-05-06 | クゥアルコム・インコーポレイテッド | 高速ピクセル・レンダリング処理 |
US8207972B2 (en) | 2006-12-22 | 2012-06-26 | Qualcomm Incorporated | Quick pixel rendering processing |
JP2010516001A (ja) * | 2007-01-10 | 2010-05-13 | クゥアルコム・インコーポレイテッド | 3次元グラフィックスパイプラインの自動負荷分散 |
Also Published As
Publication number | Publication date |
---|---|
EP1238371B1 (en) | 2011-06-08 |
US6462737B2 (en) | 2002-10-08 |
US20020047846A1 (en) | 2002-04-25 |
US7034829B2 (en) | 2006-04-25 |
US6992667B2 (en) | 2006-01-31 |
ATE512427T1 (de) | 2011-06-15 |
US7009607B2 (en) | 2006-03-07 |
JP2007193835A (ja) | 2007-08-02 |
AU2064501A (en) | 2001-06-12 |
US20030103050A1 (en) | 2003-06-05 |
JP4306995B2 (ja) | 2009-08-05 |
US6198488B1 (en) | 2001-03-06 |
US20020027553A1 (en) | 2002-03-07 |
US6577309B2 (en) | 2003-06-10 |
EP1238371A4 (en) | 2003-03-26 |
US6650331B2 (en) | 2003-11-18 |
US6342888B1 (en) | 2002-01-29 |
US20020105519A1 (en) | 2002-08-08 |
EP1238371A1 (en) | 2002-09-11 |
CA2392370C (en) | 2010-10-05 |
US7064763B2 (en) | 2006-06-20 |
US20010005209A1 (en) | 2001-06-28 |
EP1238371B9 (en) | 2012-03-07 |
WO2001041073A1 (en) | 2001-06-07 |
US20030112245A1 (en) | 2003-06-19 |
US20030189565A1 (en) | 2003-10-09 |
JP4608510B2 (ja) | 2011-01-12 |
CA2392370A1 (en) | 2001-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4608510B2 (ja) | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム | |
JP4724346B2 (ja) | グラフィックプロセッサ中の変換モジュール用の方法、装置および製品 | |
US6992669B2 (en) | Integrated graphics processing unit with antialiasing | |
US6597356B1 (en) | Integrated tessellator in a graphics processing unit | |
US6573900B1 (en) | Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads | |
US7050055B2 (en) | Single semiconductor graphics platform with blending and fog capabilities | |
US6650325B1 (en) | Method, apparatus and article of manufacture for boustrophedonic rasterization | |
US6515671B1 (en) | Method, apparatus and article of manufacture for a vertex attribute buffer in a graphics processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060207 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060508 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060807 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070315 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070515 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070622 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20070912 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070904 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090428 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4306995 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |