JP2769427B2 - 一連のグラフィック・プリミティブ用のデータを処理するための方法 - Google Patents

一連のグラフィック・プリミティブ用のデータを処理するための方法

Info

Publication number
JP2769427B2
JP2769427B2 JP5329386A JP32938693A JP2769427B2 JP 2769427 B2 JP2769427 B2 JP 2769427B2 JP 5329386 A JP5329386 A JP 5329386A JP 32938693 A JP32938693 A JP 32938693A JP 2769427 B2 JP2769427 B2 JP 2769427B2
Authority
JP
Japan
Prior art keywords
pixel
primitive
rasterizer
graphics
coordinates
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.)
Expired - Lifetime
Application number
JP5329386A
Other languages
English (en)
Other versions
JPH07141526A (ja
Inventor
ローランド・マンフレッド・ホックマス
ウイリアム・ルイス・ルーケン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07141526A publication Critical patent/JPH07141526A/ja
Application granted granted Critical
Publication of JP2769427B2 publication Critical patent/JP2769427B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は3次元のオブジェクト又
は物体を含むシーン用のデータを処理するコンピュータ
・グラフィックス・システムに係り、更に詳細に説明す
れば、1つ以上の光源によって照明された3次元の物体
を含むシーン用のグラフィック・データを処理する一環
として、照明計算(illumination calculation)を行う
コンピュータ・グラフィックス・アダプタに係る。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムは、3次元の物体を有するシーンをモデル化した後、
これらの物体をCRT表示装置のような2次元の表示装
置上に表示するために使用されることが多い。このうち
普通に使用されているのは、シーン中にある3次元の各
物体をその形状に近似する複数の多角形(ポリゴン)に
よってそれぞれ表すようにした、グラフィックス・シス
テムである。2次元シーンの視点によっては、このシー
ンを表す多くの基本要素、すなわちプリミテイブ(prim
itive)が他のプリミテイブの後ろに隠蔽されて(hidde
n)、表示されないことがある。完全に隠蔽されていな
いプリミテイブは観察可能(visible)であると言わ
れ、その一部が隠蔽されているか否かに応じて、表示装
置上のレンダリングされるイメージ中で完全に又は部分
的に表示される。レンダリングすべきシーンの深さの複
雑さ(すなわち、互いの後ろに隠蔽されているプリミテ
イブのレベルの数)が増大するにつれて、表示装置上で
観察可能な最終シーンを表す全てのプリミテイブの割合
は著しく減少する。従って、多くの場合、シーン用の殆
どのプリミテイブが隠蔽されてしまうことになる。
【0003】任意のプリミテイブを観察可能又は隠蔽済
みとして類別(classify)するための1つの方法は、深
さバッファとも呼ばれるzバッファを使用することを含
んでいる。zバッファは大きなメモリ・アレイであっ
て、その各エントリは表示装置上の各ピクセルにそれぞ
れ対応する。
【0004】グラフィックス・システム中のz軸は、特
定の観察者の視点からの距離を反映するから、z値が大
きくなればなるほど、視点からの距離が大きくなる。生
成済みの複数の物体上にある各点のz値を相互に比較す
ると、視点に最も近い物体(すなわち、2次元の表示装
置上に現れるべき物体)を特定することができる。シー
ン用のグラフィック・データを処理する一部として、こ
のシーン中の各プリミテイブごとに複数のピクセルが生
成される。zバッファを採用したグラフィックス・シス
テムでは、各ピクセルが生成される度に、そのz座標
(Znew)がzバッファに以前に格納されたz座標
(Zold)と比較される。シーン用の最初のプリミテ
イブを処理する前に、各ピクセル用のzバッファ・エン
トリ中に最大の距離に対応する値(Zmax)をそれぞ
れ格納することにより、zバッファが初期設定される。
この結果、最初はZoldがZmaxに対応することに
なる。zバッファの比較テストをどのように使用するか
ということは、システム設計又はzバッファの現在の比
較条件に応じて異なるが、1つのアプローチでは、Zn
ewがZoldより小さい場合(すなわち、当該ピクセ
ルが以前のピクセルよりも視点に近い場合)、当該ピク
セルを表示装置へ書き込むとともに、Znewを保持す
るようにzバッファのメモリを更新している。もし、Z
newがZoldに等しいか又はZoldより大きけれ
ば、当該ピクセルは表示装置には書き込まれず、またz
バッファも更新されないままに留まる。完全に隠蔽され
ているプリミテイブの全てのピクセルは、このプロセス
の間に最終的に上書きされてしまうから、かかるプリミ
テイブは表示されないのである。zバッファ技法及び他
のグラフィック処理方法の一層詳細な説明は、 J.D.Fol
ey et al., "Computer Graphics: Principles and Prac
tice", 2nd Ed., Addison-Wesley Publishing Co., 199
0 に見い出すことができる。本明細書では、この文献を
援用する。
【0005】一般に、所定のシーンにおいて、どのプリ
ミテイブが観察可能であるかを決定することが行われ
る。更に、所定のシーンにある物体を1つ以上の光源に
よって照明する場合の、照明条件をシミュレートする必
要があることも多い。このシミュレーションの一部とし
て、照明計算を行うことにより、所定のシーンにある物
体表面上の光源の影響が決定される。一般に、各プリミ
テイブの位置は、所定の座標系におけるその頂点(vert
ex)の座標によって特定され、また各頂点は、当該頂点
を起点とする反射法線ベクトル(reflectance normal v
ector)を有する。これらの反射法線は、この点におけ
る当該物体の表面の向きを表し、各プリミテイブの(r
gb)カラー値を計算するために、光源の位置に関する
情報とともに使用される。これらの照明計算は、複雑多
岐な計算を必要とするために、1シーンを表示するに必
要な他の計算に比較して、高価につくばかりか長い時間
をも必要とする。このことは、高深度−複雑さを有する
シーンについて、特に該当する。
【0006】
【発明が解決しようとする課題】通常のコンピュータ・
グラフィックス・システムでは、例えばzバッファを使
用して最終的な表示シーンでどのプリミテイブが観察可
能となるかを決定する前に、各プリミテイブについてそ
れぞれ照明計算が行われる。従って、適度な深度−複雑
さを有する典型的なシーンについては、必要もないのに
相当数の照明計算が行われた後、それらの計算結果が廃
棄されてしまうことがある。なぜなら、複数のプリミテ
イブについて多数のカラー値を決定したとしても、これ
らのプリミテイブが結局は隠蔽されてしまうのであれ
ば、かかるカラー値は、このシーンを表示するのに不要
となるからである。照明計算は、コンピュータ・グラフ
ィックス処理パイプラインの隘路となるのが普通である
から、不要な照明計算の数を減少させることが望まし
い。
【0007】従って、本発明の目的は、照明された物体
を有するシーンを表示するためにプリミテイブを処理す
る場合に、不要な照明計算の数を実質的に減少させるよ
うにした、効率的なグラフィック・プリミテイブの処理
方法を提供することにある。
【0008】
【課題を解決するための手段】本発明に従ったコンピュ
ータ・グラフィックス・システムは、zバッファを使用
して、照明されたシーン中の物体に対する各プリミテイ
ブを、隠蔽済み又は観察可能なものとして類別する。第
1のアプローチでは、このシーンに対するプリミテイブ
の表示リストを通して1パスだけを行うことにより、所
定のプリミテイブに関する隠蔽又は観察可能という類別
が、以前に走査(トラバース)され且つzバッファ中で
処理された当該表示リスト中のプリミテイブについての
み有効であるようにする。照明計算は、観察可能と類別
されたプリミテイブについてだけ行われる。すなわち、
これらの計算は、zバッファ中の処理に続いて、観察可
能な各プリミテイブごとに行われるのである。
【0009】第2のアプローチでは、かかる表示リスト
を通して2パス(走査)が行われる。最初のパスでは、
この表示リストを完全に走査することにより、最終シー
ンで観察可能な1組のプリミテイブに対応する各ピクセ
ルごとに、zバッファをZnew値で設定(又は充填)
する。換言すれば、観察可能な表面の解が、この表示リ
ストの最初のパスで完全に求められ、そしてこの解がz
バッファ・メモリの内容によって表されるのである。最
初のパスの間、如何なるプリミテイブについても、照明
計算は行われない。
【0010】この表示リストの第2のパスが行われる場
合、前述の第1のアプローチと同様に、各プリミテイブ
を隠蔽済み又は観察可能なものとして類別する。しかし
ながら、zバッファは、観察可能な表面の完全な解に対
応するZnew値を保持するから、各プリミテイブの類
別(隠蔽済み又は観察可能)は、このパスに関し以前に
走査されたプリミテイブについてのみ有効となるのでは
なく、表示すべき最終シーンについて有効となるのであ
る。この表示リストの第2のパスの間に観察可能と類別
された各プリミテイブごとに、照明計算が行われる。か
くて、最終シーンで表示されるような少なくとも1つの
ピクセルを有するプリミテイブについてだけ、照明計算
が行われることになる。
【0011】本発明のコンピュータ・グラフィックス・
システムによれば、表示リスト中の各プリミテイブを、
隠蔽済み又は観察可能なものとして類別する操作は、z
座標のみをラスタ化するようなラスタライザ(以下、
「z−ラスタライザ」とも称す)を有するグラフィック
ス・アーキテクチャを使用することによって行われる。
【0012】本発明の実施例によれば、観察可能なもの
として類別されたプリミテイブの照明計算は、グーロー
(Gouraud)シェーデイング又はフォング(Phong)シェ
ーデイングを使用して行うことができる。また、光源の
位置及び数のような、特定のシーンの照明特性に応答し
て、同一のコンピュータ・グラフィックス・システム内
で、1パス及び2パス・アプローチを交互に(すなわ
ち、オン又はオフにトグルして)使用することもでき
る。
【0013】
【実施例】本発明は、光源によって照明された物体を有
するシーンをレンダリングするに必要な照明計算の数
を、減少せんとするものである。本発明のコンピュータ
・グラフィックス・システムは、zバッファを使用し
て、照明されたシーン中の物体に対する各プリミテイブ
を、隠蔽済み又は観察可能なものとして類別する。以
下、「1パス方式」と称する第1のアプローチでは、こ
のシーンに対するプリミテイブの表示リストを通して1
パスだけを行うことにより、所定のプリミテイブに関す
る隠蔽済み又は観察可能という類別が、以前に走査され
且つzバッファ中で処理された当該表示リスト中のプリ
ミテイブについてのみ有効であるようにする。照明計算
は、観察可能と類別されたプリミテイブについてだけ行
われる。すなわち、これらの計算は、zバッファ中の処
理に続いて、観察可能な各プリミテイブごとに行われる
のである。かくて、この表示リストの走査の間に観察可
能として類別された幾つかのプリミテイブについては、
この表示リストを後で走査することにより、レンダリン
グされる最終シーン中で特定のプリミテイブが観察可能
ではないと事後的に決定されうるとしても、照明計算が
行われるのである。複数のプリミテイブをランダムな順
序で保持する表示リストについて、本発明の1パス方式
を使用すると、不要な照明計算の数を著しく減少しうる
が、それでも所定のプリミテイブのピクセルが表示され
ないという理由で、当該プリミテイブに対する照明計算
が不要となる確率が約50%存在する。
【0014】以下、「2パス方式」と称する第2のアプ
ローチでは、表示リストを通して2パス(走査)が行わ
れる。最初のパスでは、この表示リストを完全に走査す
ることにより、最終シーンで観察可能な1組のプリミテ
イブに対応する各ピクセルごとに、zバッファをZne
w値で設定(又は充填)する。換言すれば、観察可能な
表面の解が、この表示リストの最初のパスで完全に求め
られ、そしてこの解がzバッファ・メモリの内容によっ
て表されるのである。最初のパスの間、如何なるプリミ
テイブについても、照明計算は行われない。
【0015】この表示リストの第2のパスが行われる場
合、前述の第1のアプローチと同様に、各プリミテイブ
を、隠蔽済み又は観察可能なものとして類別する。しか
しながら、zバッファは、観察可能な表面の完全な解に
対応するZnew値を保持するから、各プリミテイブの
類別(隠蔽済み又は観察可能)は、このパスに関し以前
に走査されたプリミテイブについてのみ有効となるので
はなく、表示すべき最終シーンについて有効となるので
ある。観察可能と類別された各プリミテイブが、この表
示リストを通して第2のパスの間に走査されるとき、か
かるプリミテイブごとに照明計算が行われる。かくて、
最終シーンで表示されるような少なくとも1つのピクセ
ルを有するプリミテイブについてだけ、照明計算が行わ
れることになる。換言すれば、観察可能なものとして類
別されたプリミテイブについては、これらのプリミテイ
ブが前述の1パス方式のように表示リスト中で後に走査
されるプリミテイブによって隠蔽されると最終的に決定
されるとしても、その照明計算が不要になることはない
のである。
【0016】本発明のコンピュータ・グラフィックス・
システムによれば、表示リスト中の各プリミテイブを、
隠蔽済み又は観察可能なものとして類別する操作は、z
座標のみをラスタ化するようなラスタライザ(以下「z
−ラスタライザ」とも称す)を有するグラフィックス・
アーキテクチャを使用することによって行われる。本発
明によれば、プリミテイブを類別するまで照明計算は行
われないから、後のパイプライン処理まで、各プリミテ
イブに対するカラー値をラスタ化する必要はない。これ
とは対照的に、通常のラスタライザでは、全てのプリミ
テイブに対する照明計算の後に、z座標及び(rgb)
カラー値をラスタ化するようにしている。
【0017】本発明の実施例によれば、観察可能なもの
として類別されたプリミテイブの照明計算は、グーロー
又はフォング・シェーデイングを使用して行うことがで
きる。また、光源の位置及び数のような、特定シーンの
照明特性に応答して、同一のコンピュータ・グラフィッ
クス・システム内で、1パス及び2パス方式を交互に
(すなわち、オン又はオフにトグルして)使用すること
もできる。これらの2つの方式の最適条件は、照明特性
に応じて変わる。以下、図面を参照しつつ、本発明の実
施例を詳述する。
【0018】図1は、本発明の3次元グラフィックス・
サブシステム14を有するグラフィックス・ワークステ
ーション8を示す。ホスト・プロセッサ10は、I/O
バス12を介して、グラフィックス・サブシステム14
へレンダリングすべきシーンに対応するグラフィックス
・データを供給する。グラフィックス・サブシステム1
4は、グラフィックス・データを、グラフィックス表示
装置16上で表示するに適当な形式へ変換する。ワーク
ステーション8は、種々の様式で実現することができ
る。ホスト・プロセッサ10は、例えば汎用型又はRI
SC型の中央処理ユニットであり、I/Oバス12は、
例えばマイクロ・チャネル・バス、NuBus又はIS
Aバスであり、グラフィックス表示装置16は、例えば
CRT又はLCD表示装置である。本発明のグラフィッ
クス・サブシステム14は、グラフィックス・ワークス
テーション8の一部として図示されているが、本発明の
範囲はこれに限定されるものではない。というのは、グ
ラフィックス・サブシステム14を、汎用プロセッサ上
のソフトウエア中で又は補助プロセッサの一部として実
現したり、或いはビデオ・ゲームやフライト・シミュレ
ータ中でも実現することができるからである。
【0019】ホスト・プロセッサ10によって供給され
るグラフィックス・データは、表示リスト中のレンダリ
ングすべきグラフィックス・プリミテイブの各頂点に対
応するデータに加えて、かかるグラフィックス・プリミ
テイブの型(例えば、ベクトル、三角形、多角形、三角
ストリップ)を識別する複数のデータ・レコードから成
る。この頂点データは、各頂点に対する幾何座標(x、
y、z)及び反射法線ベクトルの成分(Nx、Ny、N
z)を含んでいる。或る場合には、各頂点に対するカラ
ー(r、g、b)値又はテクスチャ座標(s、t)のよ
うな特性を表す追加のデータが、頂点データ・レコード
に与えられる。
【0020】本発明と対比するため、従来技術のグラフ
ィックス・サブシステムが図2に示されており、以下こ
れについて説明する。グラフィック・データは、I/O
バス12から通常の3次元グラフィックス・サブシステ
ム20へ供給される。グラフィックス・サブシステム2
0は、ジオメトリ・プロセッサ22と、zバッファ26
及びテクスチャ・マップを格納するテクスチャ・メモリ
28を有するrgbz−ラスタライザ24と、フレーム
・バッファ30とを含んでいる。ジオメトリ・プロセッ
サ22は、変換(transformation)、照明、クリッピン
グその他の必要な計算を遂行可能な、1つ以上の浮動小
数点プロセッサから構成されるのが普通である。ジオメ
トリ・プロセッサを実現するには、例えば米国カリフォ
ルニア州のウエイテック社が販売している10MHzの
ウエイテック・チップ・セット(XL−8136プログ
ラマブル・シーケンサ、XL−3132浮動小数点プロ
セッサ・ユニット、XL−8137整数処理ユニット)
を利用することができる。ジオメトリ・プロセッサ22
は、1989年3月28日に出願された米国特許出願第
331021号の発明を利用することによっても、実現
可能である。この米国特許出願は、並列又はパイプライ
ン式相互接続を有利にするための特別の入力及び出力F
IFOを開示しており、本明細書ではこの米国特許出願
を援用する。ジオメトリ・プロセッサ22は、インテル
社のi860プロセッサによっても、実現可能である。
【0021】ラスタライザ24は、プログラムされた順
序で整数の加算や乗算を遂行可能な、1つ以上の演算論
理ユニットから構成される。例えば、IBM社の「PO
WER GTOアダプタ」又は「POWER GF4X
グラフィックス・アダプタ」のようにして、ラスタライ
ザ24を実現することが可能である。zバッファ26
は、グラフィックス表示装置(図示せず)の各ピクセル
ごとに深さ値を格納するに十分なメモリを備えている。
普通、この深さ値は、各ピクセルごとに24ビットの整
数として格納される。フレーム・バッファ30は、グラ
フィックス表示装置の各ピクセルごとにカラー値を格納
するに十分なメモリを備えている。普通、このカラー・
データは、各ピクセルごとに赤、緑及び青(r、g、
b)を表す3つの8ビット整数から成る。
【0022】ジオメトリ・プロセッサ22は、ホスト・
プロセッサ(図示せず)からグラフィックス・データを
受け取り、これをラスタライザ24によって要求される
ような形式へ変換する。こうするには、各頂点の座標へ
4x3又は3x3の変換を適用し、各頂点の法線ベクト
ルへ3x3の変換を適用し、(J.D.Foley の前掲書で記
述されている)各プリミテイブのカラー値を決定するた
めに照明計算を行い、(透視の効果を表すように)これ
らの座標を正規化された投影座標へ投影するとともに、
投影済みのこれらの座標をグラフィックス表示装置の矩
形スクリーンに対応する所定範囲のx及びy値へクリッ
プし且つ普通は0ないし(2**n)−1へマップされ
る所定範囲のz値へクリップすることが必要となる。但
し、前述の説明において、nはzバッファのために使用
されるビットの数であり、例えば24ビットが使用され
る場合は、n=24である。次に、これらのクリップ済
みの座標は、ラスタライザ24の分解能によって決まる
整数値へ変換される。また、照明計算によって決定され
たカラー値は、ラスタライザ24の動作に対応する大き
さを持つ整数値へ変換される。
【0023】ラスタライザ24は、(例えばグーロー・
シェーデイングを使用する場合)各頂点に対する(x、
y、z)座標及び(r、g、b)カラー値の整数値を受
け取り、各グラフィックス・プリミテイブ(例えば、三
角形)に対する頂点をソートするとともに、x及びyに
関する(z、r、g、b)の傾斜を計算する。次に、ラ
スタライザ24は、各グラフィックス・プリミテイブの
内部にある各ピクセルに対するx及びyの値を生成す
る。また、ラスタライザ24は、x及びyの各値ごと
に、ジオメトリ・プロセッサ22から受け取られた頂点
データ・レコードによって決定された値の補間に基づい
て、(z、r、g、b)の値をも生成する。x及びyの
各値は、zバッファ26中にある深さ値のアドレスに対
応するだけでなく、フレーム・バッファ30中にある1
組の(r、g、b)カラー値のアドレスにも対応する。
もし、zの生成値がx及びyによって暗示されたアドレ
スに格納されている深さ値に関する特別の条件(例え
ば、zが深さ(x、y)より小さい、という条件)を満
足するなら、この深さ値は、z書き込みマスクに応じ
て、zの前記生成値で置き換えられ、更にそのピクセル
に対する(r、g、b)の値がフレーム・バッファ30
中の対応するアドレスに格納される。次いで、フレーム
・バッファ30中の内容は、例えば1組のアナログ−デ
イジタル変換器を駆動して、CRT表示装置用のアナロ
グ・ビデオ信号を生成させるために使用される。
【0024】I.グラフィックス・サブシステム・アー
キテクチャ 本発明は、種々の型のグラフィックス・サブシステムで
実現することができる。これらのサブシステムが多岐に
わたる1つの理由は、例えばグーロー又はフォング・シ
ェーデイングのような照明計算を行う種々の方法をサポ
ートするためである。以下、グーロー又はフォング・シ
ェーデイングをサポートする、本発明に従ったグラフィ
ックス・サブシステムのアーキテクチャを詳述する。
【0025】A.グーロー・シェーデイングをサポート
するサブシステム 図3は、各頂点に対するカラー値を照明計算によって決
定するというグーロー・シェーデイングをサポートす
る、本発明のグラフィックス・サブシステム40を示
す。図2の従来技術のグラフィックス・サブシステム2
0とは対照的に、グラフィックス・サブシステム40の
ジオメトリ・プロセッサは、1次ジオメトリ・プロセッ
サ42及び2次ジオメトリ・プロセッサ48の2つの部
分に分割されている。同様に、ラスタライザは、1次ラ
スタライザ44及び2次ラスタライザ50の2つの部分
に分割されている。I/Oバス12は、ホスト・プロセ
ッサ(図示せず)からのグラフィックス・データを1次
ジオメトリ・プロセッサ42へ供給する。1次ラスタラ
イザ44はzバッファ46へ接続され、2次ラスタライ
ザ50はフレーム・バッファ54及びオプションとして
のテクスチャ・メモリ52へ接続される。
【0026】図3の1次ジオメトリ・プロセッサ42
は、法線ベクトル変換及び照明計算を行わないという相
違点を除くと、図2に示す通常のジオメトリ・プロセッ
サ22と同様である。この相違点に起因して、1次ジオ
メトリ・プロセッサ42は、通常のグラフィックス・サ
ブシステムよりも一層高速に(又は比較的少数のプロセ
ッサを使用して)頂点データ・レコードを処理すること
ができるのである。1次ジオメトリ・プロセッサ42の
出力は、通常のジオメトリ・プロセッサ22のそれと実
質的に同じ座標値を含んでいる。しかしながら、通常の
ジオメトリ・プロセッサ22から得られる(r、g、
b)カラー値の代わりに、1次ジオメトリ・プロセッサ
42は、頂点法線ベクトルの未変換値及びホスト・プロ
セッサ10から受け取られる頂点のデータ・レコードと
ともに供給される他の任意のデータ(例えば、カラー又
はテクスチャ座標)を単にパスするだけである。1次ジ
オメトリ・プロセッサ42は、通常のジオメトリ・プロ
セッサ22と同様に、多数の浮動小数点演算を行わなけ
ればならないから、その構成要素として1つ以上の浮動
小数点プロセッサを含んでいる。
【0027】1次ラスタライザ44は、z値のみが頂点
間で補間され且つ(r、g、b)カラー値が補間されな
いという相違点を除くと、図2に示す通常のラスタライ
ザ24と同様である。この相違点に起因して、1次ラス
タライザ44を一層少数の構成要素で実現することが可
能となる。例えば、通常のラスタライザ24のように
(z、r、g、b用の)4個の補間手段を設けるのでは
なく、(z用の)単一の補間手段だけを設ければよい。
通常のラスタライザ24の如く、zバッファ・テストに
合格した少なくとも1つのピクセルを有するようなプリ
ミテイブの処理後にフレーム・バッファを更新する代わ
りに、1次ラスタライザ44は、例えば各グラフィック
ス・プリミテイブの内部にある各ピクセルごとに1ビッ
トを持つ、zバッファのピクセル・マスクを生成しなけ
ればならない。もし、所定のピクセルがzバッファ・テ
ストに合格するなら、当該ピクセルのマスク・ビットを
1へセットすることにより、当該ピクセルは観察可能な
ものとして類別される。さもなければ、当該ピクセルの
マスク・ビットをゼロへセットすることにより、当該ピ
クセルは隠蔽済みのものとして類別されることになる。
後述するように、このマスク・ビットは、2つのレジス
タを使用するランレングス符号化マスクとして実現する
ことができる。
【0028】後述する推奨実施例では使用されていない
が、他の実施例の1次ラスタライザ44は、各グラフィ
ックス・プリミテイブの処理を開始する時にゼロへセッ
トされるような信号「PASS」を維持することができ
る。もし、任意のピクセルがそのマスク・ビットを1へ
セットされている(すなわち、当該プリミテイブ中の少
なくとも1つのピクセルが観察可能なものとして類別さ
れている)なら、このプリミテイブは観察可能なものと
して類別され、信号「PASS」が1へセットされる。
さもなければ、このプリミテイブは隠蔽済みのものとし
て類別され、信号「PASS」はゼロにセットされたま
まに留まる。これとは対照的に、以下で説明する推奨実
施例では、信号「PASS」は、ランレングス符号化マ
スクを実現するために使用される2つのレジスタの内容
(例えば、所定のプリミテイブに対する観察可能なピク
セルのランレングスを指示するレジスタの内容がゼロに
等しい場合)から暗示されるのである。
【0029】通常のラスタライザ24と同様に、1次ラ
スタライザ42の機能は、1つ以上の整数演算論理ユニ
ットによって達成される。
【0030】ピクセル・マスクが、所定のプリミテイブ
に対する少なくとも1つの観察可能なピクセルに対応す
る場合(又は信号「PASS」が1へセットされている
場合)、1次ラスタライザ42は、2次ジオメトリ・プ
ロセッサ48へ次のデータ値を供給する。 a. 未変換の頂点座標 b. 未変換の頂点法線ベクトル c. 他の任意の頂点データ(例えば、カラー、テクス
チャ座標) d. 変換済みの座標(クリッピング前) e. ラスタ化の設定パラメータ f. zバッファのピクセル・マスク。
【0031】変換済みの座標は、プリミテイブがクリッ
プされる場合にのみ必要となる。この場合、クリッピン
グによって作成される全ての新しい頂点におけるカラー
及びテクスチャ座標を決定するために、クリッピング計
算が反復されなければならない。この1つの代替案とし
て、未変換の座標及び1次ジオメトリ・プロセッサ42
によって以前に行われたモデリング座標からビュー座標
への変換に基づいて、これらの値を2次ジオメトリ・プ
ロセッサ48によって再計算することができる。ラスタ
化設定パラメータは、1次ラスタライザ44によって決
定され且つ2次ラスタライザ50によって行われる計算
に有用であるような、任意の値を含むことがある。これ
は、例えば、各プリミテイブの頂点ソート結果に対する
キーと、1次ラスタライザ44によって各プリミテイブ
の各三角エリア成分(component)ごとに計算されたベ
クトル積(dx1*dy2−dx2*dy1)を含むこ
とがある。一層詳細に説明すれば、dx1=x1−x
0、dy1=y1−y0、dx2=x2−x0及びdy
2=y2−y0であり、この場合において、(x0,y
0)、(x1,y1)及び(x2,y2)は、三角形の
3つの頂点の座標である。代替的に、クリップ済みの座
標に基づいて、これらの値を2次ラスタライザ50によ
って再計算することができる。
【0032】2次ジオメトリ・プロセッサ48は、これ
らの座標及び法線ベクトルをモデリング座標からワール
ド座標へ変換する。この変換は、1次ジオメトリ・プロ
セッサ42で適用されるモデリング座標からビュー座標
への変換とは異なることがある。というのは、ビュー座
標は、照明計算を行った後にワールド座標へビューイン
グ変換を適用することによって定義されるからである。
結果的な変換済みの座標及び法線ベクトルは、両者とも
にワールド座標系にあって、照明計算を行って頂点のカ
ラーを決定するために使用される。これらの計算は、各
頂点ごとにホスト・プロセッサから供給される、オプシ
ョン・データとしてのカラー値によっても影響されるこ
とがある。もし、所定のプリミテイブが1次ジオメトリ
・プロセッサ42によってクリップされたなら、かかる
クリッピングから得られる任意の新しい頂点におけるカ
ラー及びテクスチャ値は、クリップされていない頂点に
対する照明計算から決定された値に基づいて決定される
ことになる。前記照明計算の結果は、各プリミテイブの
各頂点に対するカラー値及びテクスチャ値を持つ、1組
の変換済み及びクリップ済みの座標である。更に、1次
ラスタライザ44によって計算されたzバッファ・マス
クは、各プリミテイブに含まれる(三角形のような)各
エリア成分ごとに2次ラスタライザ50へ転送されなけ
ればならない。もし、所定のプリミテイブが多角形であ
れば、このプリミテイブを三角形のような一連のエリア
成分へ分割して、その各エリア成分中のカラー値及び深
さ値を線形補間によって決定できるようにすることが必
要である。
【0033】2次ジオメトリ・プロセッサ48によって
行われる変換、照明及びクリッピング機能は、浮動小数
点数を用いて行うのが望ましい。従って、このプロセッ
サ中に十分な浮動小数点計算能力を与えることが重要で
ある。
【0034】2次ラスタライザ50は、深さ(z)値の
代わりにカラー値(r、g、b)に対して補間が適用さ
れるという相違点を除くと、1次ラスタライザ44と同
様のものである。2次ラスタライザ50は、1次ラスタ
ライザ44によって生成されたものと全く同じ1組のピ
クセル値(ピクセルのx及びy座標)を生成しなければ
ならない。かくて、推奨実施例では、ピクセルのx及び
y値を生成するために1次ラスタライザ44によって使
用されるものと実質的に同じ論理が、2次ラスタライザ
50によっても使用される。2次ラスタライザ50によ
る計算を減少させるには、以前に計算され且つx及びy
座標のみに依存する値を、1次ラスタライザ44から2
次ラスタライザ50へパスさせればよい。これらの計算
は、例えば、各三角形について行われる頂点ソートに対
するキーと、各三角形に対するベクトル積(dx1*d
y2−dx2*dy1)を含むことがある。代替的に、
これらの値は、1次ラスタライザ44に実現されている
のと同じアルゴリズムを使用して、再計算することがで
きる。
【0035】更に、テクスチャ・マッピングが行われて
いる場合は、2次ラスタライザ50は、テクスチャ座標
を頂点値からピクセル値へ補間し、テクスチャ・メモリ
52から各ピクセルのテクスチャ値を読み取るととも
に、テクスチャ・メモリ52の内容を使用して(選択さ
れたテクスチャリング・アルゴリズムに適切な)ピクセ
ル・カラーを決定しなければならない。次いで、結果的
なピクセル・カラーは、全てのプリミテイブについて各
ピクセルのx及びy座標によって決定されるフレーム・
バッファ54のアドレスにそれぞれ格納される。表示リ
スト中のグラフィックス・オーダは、テクスチャリング
が使用可能にされたか否かを決定するとともに、テクス
チャ・メモリ52の内容をセットする。
【0036】2次ラスタライザ50の機能は、1次ラス
タライザ44と同様に、1つ以上の整数演算論理ユニッ
トで達成することができる。
【0037】B.フォング・シェーデイングをサポート
するサブシステム 図4は、フォング・シェーデイングをサポートする、本
発明に従ったグラフィックス・サブシステム60を示
す。グーロー・シェーデイングとは対照的に、フォング
・シェーデイングでは、所定のプリミテイブの各頂点に
関連する反射法線ベクトルが、ラスタ化の間に当該プリ
ミテイブ中の全てのピクセルに関し補間され、次いで当
該プリミテイブ中の全てのピクセルに対するカラー値を
決定するべく、補間済みの法線ベクトルを使用して照明
計算が行われる。照明計算は各ピクセルごとに行われる
から、グーロー・シェーデイングと比較した場合、照明
計算を行うためのコストは、ピクセル対頂点の比(通常
は10乃至100の程度)の分だけ増加する。かくて、
グーロー・シェーデイングをサポートするグラフィック
ス・サブシステムに本発明を適用するよりも、フォング
・シェーデイングをサポートするグラフィックス・サブ
システムに本発明を適用する方が有利である。
【0038】I/Oバス12は、ホスト・プロセッサ
(図示せず)からのグラフィックス・データを1次ジオ
メトリ・プロセッサ62へ供給し、この1次ジオメトリ
・プロセッサ62は、処理済みのデータをzバッファ6
6を有する1次ラスタライザ64へ供給する。2次ラス
タライザ兼ジオメトリ・プロセッサ68(以下、単に
「2次プロセッサ68」と称す)は1次ラスタライザ6
4からデータを受け取り、オプションとしてのテクスチ
ャ・メモリ70を有する。2次プロセッサ68は、フレ
ーム・バッファ72へ表示データを供給する。
【0039】1次ジオメトリ・プロセッサ62、1次ラ
スタライザ64及びzバッファ66は、当業者には明ら
かなように、前述のグラフィックス・サブシステム40
の対応する構成要素と実質的に同じ様式で設計される。
しかしながら、グラフィックス・サブシステム40とは
対照的に、2次プロセッサ68では、ラスタ化機能は2
次ジオメトリ処理機能の前に生ずる。説明中のグラフィ
ックス・サブシステム60の場合、前述のグラフィック
ス・サブシステム40とは対照的に、2次プロセッサ6
8中のラスタライザは、浮動小数点演算をサポートしな
ければならない。これが必要となるのは、ワールド座標
中の各ピクセルの位置及び法線ベクトルを、頂点データ
・レコード中に格納された各プリミテイブの各頂点に対
する法線ベクトル間の補間に基づいて、計算できるよう
にするためである。次に、補間の結果として得られた法
線ベクトルは、照明計算を行う前に、単位ベクトルを生
ずるように再正規化されねばならない。頂点カラー及び
テクスチャ座標が使用される場合は、これらもまた照明
計算を行う前に頂点値からピクセル値へ補間されねばな
らない。この補間は、前述のグラフィックス・サブシス
テム40について説明したのと実質的に同じ様式で行わ
れる。
【0040】次いで、結果的なピクセル・カラー及び法
線ベクトルは、各ピクセルごとに照明計算を行うために
使用される。この照明計算は、照明済みのピクセル・カ
ラーを生ぜしめるために行われるのである。次に、補間
済みのテクスチャ座標は、テクスチャ・メモリ70から
テクスチャ値をロードするために使用され、そしてその
結果的なテクスチャ値は、前述のグラフィックス・サブ
システム40で実現されたのと実質的に同じ様式で、最
終的なピクセル・カラーを決定するために使用される。
【0041】照明計算は、浮動小数点の計算をも必要と
する。グラフィックス・サブシステム60のラスタライ
ザ及び2次ジオメトリ機能は、前述のグラフィックス・
サブシステム40とは対照的に、両者ともに浮動小数点
演算を必要とするから、同一の浮動小数点プロセッサを
使用してジオメトリ処理及びラスタ化の両方を行うこと
ができるように、これらの機能は2次プロセッサ68中
で組み合わされている。
【0042】II.グラフィックス・サブシステムの論
理フロー図 本発明と対比するため、最初に図5及び図6を参照し
て、従来技術に従ったグラフィックス・サブシステムの
動作を説明する。次に、図7ないし図12を参照して、
グーロー又はフォング・シェーデイングをサポートす
る、本発明に従った2つのグラフィックス・サブシステ
ムの動作を説明する。
【0043】A.従来技術のグラフィックス・サブシス
テム 1.従来技術のジオメトリ・プロセッサ 図5は、従来技術のジオメトリ・プロセッサの論理フロ
ー図を示す。ステップ80において、ジオメトリ・プロ
セッサは、ホスト・プロセッサからグラフィックス・サ
ブシステムへ転送された一連のデータ値を受け取る。こ
のデータは、「グラフィックス・オーダ」と呼ばれる一
連のデータ・ブロックから成る。これらのグラフィック
ス・オーダは、グラフィックス・サブシステムの全ての
機能を制御するに必要な、描画(drawing)プリミテイ
ブ、変換行列、グラフィックス属性及び他のオーダを含
んでいる。各データ・ブロックは、当該データによって
表されているオーダの型を識別する、1つのデータ・レ
コードで開始する。
【0044】ステップ82では、グラフィックス・オー
ダを受け取るプロセスの一環として、ホスト・プロセッ
サから受け取られたデータを読み取り、このデータをグ
ラフィックス・サブシステム中のレジスタ又はメモリに
格納する。ステップ84では、グラフィックス・オーダ
の型を識別するデータ・レコードをテストして、当該グ
ラフィックス・オーダが、一連のベクトル(例えば、多
線:polyline)、多角形又は三角ストリップのような、
描画プリミテイブに対応するか否かを決定する。そうで
なければ、ステップ86において、現グラフィックス・
オーダとともに受け取られた任意の追加データが必要に
応じて処理され、続いてジオメトリ・プロセッサは次の
グラフィックス・オーダを受け取る準備をする。ステッ
プ86で行われる処理には、例えば描画カラー、変換行
列及び光源パラメータを、グラフィックス・サブシステ
ム中の適当なレジスタ中に格納することが含まれる。
【0045】描画プリミテイブに対応するグラフィック
ス・オーダは、一般に、一連の頂点の各々に対する幾何
座標(xm、ym、zm)又は同次座標(xm、ym、
zm、wm)の値を保持する追加のデータ・レコードを
含んでいる。このデータから省略されている場合は、w
m=1及びzm=0の値を仮定することができる。更
に、これらのグラフィックス・オーダは、各頂点の反射
法線ベクトル(nx、ny、nz)用のデータを含むこ
とができる。これらの座標及び法線ベクトルの値は、モ
デリング座標と呼ばれる座標系中で指定されるものと仮
定される。
【0046】ステップ84において、このグラフィック
ス・オーダが描画プリミテイブとして識別される場合、
次のステップ88では、幾何座標(xm、ym、zm、
wm)を与える当該グラフィックス・オーダ中のデータ
値が、以下の4x4の変換行列にかけられる。
【0047】
【数1】
【0048】この行列tの要素t11、t12・・・t
43、t44の値は、グラフィックス・サブシステムが
受け取った他のグラフィックス・オーダを参照すること
によって決定される。前記行列による乗算は、モデリン
グ座標中のデータ値(xm、ym、zm、wm)を、ワ
ールド座標と呼ばれる一の座標系中の値(xw、yw、
zw、ww)へ変換するという効果を有する。
【0049】かかる座標変換の後のステップ90におい
て、反射放線ベクトルを表すデータ(nx、ny、n
z)が、以下の3x3の変換行列にかけられる。
【0050】
【数2】
【0051】この行列は、前記行列tの左上にある3x
3の部分行列を逆転置することによって決定される。こ
れは、(nxw、nyw、nzw)により表されたベク
トルが、変換済みの座標(xw、yw、zw、ww)に
よって表された面に垂直に留まることを保証する。次い
で、結果的な法線ベクトルは、以下で定義されるような
(nxw、nyw、nzw)のノルムで除算することに
よって、単位ベクトルへ変換される。
【0052】
【数3】
【0053】ステップ92では、各頂点に対する照明方
程式を評価するために、各頂点の変換済みの座標及び法
線ベクトルが使用される。これらの方程式の例は、Fole
y 外による前掲書に見い出すことができる。また、これ
らの計算は、他のグラフィックス・オーダによって決定
される光源の定義及び面材料の特性にも依存する。照明
計算を行う結果、各頂点のカラー(r、g、b)が得ら
れる。照明計算の後は、法線ベクトルは最早必要でな
い。
【0054】照明方程式の評価後のステップ94におい
て、これらの座標は、以下のようにして4x4のビュー
変換にかけられる。
【0055】
【数4】
【0056】この変換は、ワールド座標(xw、yw、
zw、ww)を、ビュー座標と呼ばれる一の座標系へ変
換する効果を有する。この座標系では、z軸はビュー方
向に対応し、x軸はビュー方向に垂直な水平軸である。
このビュー座標の起点はスクリーン又はウインドウの中
心にあり、w軸はz軸に平行でその起点が視点に置かれ
ている。ステップ94では、xv、yv及びzvをwv
で除算することによって、透視投影(perspective proj
ection)が達成される。これを以下に示す。
【0057】
【数5】
【0058】ステップ96では、結果的な投影済みの座
標(xp、yp、zp)の各々を(−1ないし+1)の
範囲と比較して、これらの座標がテストされる。もし、
描画プリミテイブ中にある全ての頂点の座標がこのテス
トに合格するなら、当該プリミテイブは、単純にすなわ
ちトリビアルに受け入れられたものとみなされる。ステ
ップ98では、投影済みの座標が同様にしてテストされ
る。もし、全ての頂点が(例えば、1より大きいxpを
有する、という)同一の理由でこのテストに不合格とな
れば、当該プリミテイブは、トリビアルに拒否されたも
のと言われる。もし、所定の描画プリミテイブがトリビ
アルに拒否されたなら、処理は完了し、ジオメトリ・プ
ロセッサはステップ82で次の描画オーダを受け取る。
【0059】もし、所定の描画プリミテイブがトリビア
ルに受け入れられず、またトリビアルに拒否もされなか
ったなら、当該プリミテイブは、ステップ100におい
てウインドウ/ビューポート・クリッピングにかけられ
る。このクリッピング操作は、所定の描画プリミテイブ
のエッジがウインドウ/ビューポート境界を交差する点
を決定することを含んでいる。照明方程式によって決定
される頂点カラーのような他の属性は、これらの交差点
へ補間されなければならない。この結果、元の描画プリ
ミテイブと(−1<=xp<=1、−1<=yp<=
1、−1<=zp<=1)に対応する3次元ビュー・ボ
リュームとの交点によって決定されるような、修正済み
の描画プリミテイブが得られる。幾つかのケースでは、
これに代えて、0から1の範囲にある正規化済みの座標
を使用することができる。もし、ステップ102におい
て、前記修正済みの描画プリミテイブがヌル・エクステ
ントに対応するなら、当該プリミテイブは拒否され、ス
テップ82における次のグラフィックス・オーダに関す
る処理が継続する。さもなければ、ステップ104の処
理が行われる。
【0060】ステップ104では、前述のウインドウ/
ビューポート・クリッピングから得られた修正済みの描
画プリミテイブと、トリビアルに受け入れられた描画プ
リミテイブとが、座標マッピング及びカラー・クランピ
ング動作にかけられる。以下の式6に示す座標マッピン
グは(後続のラスタ化ハードウエアによって要求される
ように)、ピクセル座標及び深さ値に対応させるべく、
これらの座標値をスケール(拡大縮小)し且つ変換する
ことから成る。
【0061】
【数6】
【0062】この結果的なマップ済み座標は、次いで、
浮動小数点表示から整数値へ変換される。
【0063】カラー・クランピングは、クランプ済みの
カラー(r、g、b)を与えるために、各カラー値の各
成分を、例えば+1のような或る最大値へ制限すること
を含んでいる。次いで、結果的なクランプ済みのカラー
は、例えば0ないし255の範囲へスケールされた後、
浮動小数点形式から整数値へ変換される。
【0064】ステップ106では、結果的なマップ済み
の座標及びクランプ済みのカラーが、事後の処理のため
にラスタライザへ転送される。次いで、ジオメトリ・プ
ロセッサはステップ82に戻り、次のグラフィックス・
オーダについて処理を継続する。ステップ108でラス
タライザへ転送されるデータは、各頂点に対する変換/
投影/クリップ/マップ済みの座標(xmap、yma
p、zmap)と、クランプ済みのカラー値(nr、n
g、nb)から成る。
【0065】2.従来技術のrgbzラスタライザ 図6は、従来技術のrgbzラスタライザの動作を示
す。ステップ110において、ラスタライザはジオメト
リ・プロセッサから転送されたデータ値のストリームを
受け入れる。このデータは、一連のコマンド及びデータ
・レコードから成る。コマンド・レコードが制御するラ
スタライザの動作モードには、zバッファを使用可能に
すること、zバッファ比較テストを選択すること、デー
タ・レコードがベクトル、多角形、三角ストリップ又は
他の描画プリミテイブとして解釈されるのを決定するこ
とが含まれる。
【0066】ステップ112において、ジオメトリ・プ
ロセッサからのコマンド及びデータ・レコードを受け取
ると、これらのレコードの値がラスタライザ中のレジス
タ又はメモリに格納される。次のステップ114で、先
行するコマンド・レコードによって決定された現動作モ
ードをテストすることにより、この現動作モードが多角
形又は三角ストリップのようなエリア・プリミテイブに
対応するか否かを決定する。そうであれば、処理はステ
ップ118へ移る。さもなければ、データがステップ1
16の適当な代替手順によって処理された後、処理はス
テップ112に戻る。例えば、ベクトルを描画するとい
うような幾つかのケースでは、ステップ116で行われ
る手順が、後述する図6中の他のステップのそれと同様
のものとなる場合がある。
【0067】もし、現動作モードがエリア・プリミテイ
ブに対応するのであれば、処理はステップ118に移
り、そこで後続データ・レコードによって定義されるエ
リアを、頂点からピクセルへ値を補間するために使用さ
れる手段に依存して、三角形又は台形のような、基本的
なエリア成分へ細分化することができる。説明の便宜
上、本明細書では、各プリミテイブが一連の三角形へ細
分化されるものと仮定する。次いで、結果的な各エリア
成分が、ステップ120で、1組の予備計算にかけられ
る。これらの計算は、x又はyに関してこれらの成分の
頂点をソートし、形状を(例えば、時計回り又は反時計
回りの頂点の配列として)類別するとともに、x及びy
に関してカラー値(r、g、b)及び深さ値(z)の導
関数を評価する(言い換えれば、面方程式を評価する)
ことを含むのが普通である。結果的な導関数は、dr/
dx、dr/dy、dg/dx、dg/dy、db/d
x及びdb/dyによって表すことができる。これらの
計算は、ラスタライザに対し相当な計算負荷となり、こ
のことは100個より少ないピクセルを有する小さな三
角形について著しい。
【0068】ステップ122において、エリア成分を類
別し且つ面方程式(plane equations)を評価するプロ
セスが、一致又は共線(colinear)の頂点座標が存在す
るために、任意のエリア成分がゼロ・エリアを有するこ
とを決定する場合、この成分に対するそれ以上の処理は
必要ない。その後、処理はステップ144に移り、そこ
で他のエリア成分が存在することが判れば、処理はステ
ップ118へ戻る。さもなければ、ステップ112で、
次のグラフィックス・オーダが検索される。
【0069】もし、ステップ122において、エリア成
分がゼロ・エリアを持たないことが判れば、次のステッ
プ124では、当該エリア成分の内部を構成する全ての
ピクセルを生成するためのプロセスが開始される。この
プロセスは、当該エリア成分のソート及び類別によって
決定される値に基づいている。結果的な各ピクセルは、
グラフィックス表示装置上の列(水平位置)に対応する
x値及びグラフィックス表示装置上の行(垂直位置)に
対応するy値によって定義される。x及びy値の各ペア
は、フレーム・バッファと呼ばれるメモリの1ブロック
中にある一意的なアドレスに対応する。またx及びy値
の各ペアは、zバッファと呼ばれるメモリの第2のブロ
ック中にある一意的なアドレスにも対応する。一連のピ
クセル値(x及びy値のペア)を生成するために使用さ
れる論理は、各成分を一連の行(y値)へ分割するのが
普通である。次いで、各行は、一連のピクセル(x値)
へ分割される。
【0070】ステップ126で、各ピクセルを生成する
際、対応するカラー値r(x、y)、g(x、y)及び
b(x、y)が計算される。これらの値は、エリア類別
論理によって決定される。次に、ピクセル生成論理によ
って決定される各後続行ごとに、各成分がdq/dy
(但し、q=r、g、b)だけ増分される。また、ピク
セル生成論理によって決定される行中の各後続ピクセル
ごとに、各成分がdq/dxだけ増分される。ステップ
128では、ピクセル生成論理によって決定される各ピ
クセルごとに深さ値Znewを計算するために、前記の
ものと同等の論理が使用される。
【0071】ステップ130では、zバッファの内容の
うち現ピクセルのx及びy値によって定まるアドレスの
内容をロードすることにより、各ピクセルのZoldの
値が決定される。ステップ132では、この値が、現在
のzバッファ比較テストに基づくZnewの値と比較さ
れる。この比較の基準は、ラスタライザで選択された現
動作モードに依存して、Znew>Zold、Znew
<=Zold又はその他として定めることができる。
【0072】もし、Znewの値がzバッファ比較テス
トに合格するなら、次のステップ134では、Znew
の値がx及びyの値によって決定されるzバッファ中の
アドレスに格納され、かくてzバッファ比較テストで使
用されたZoldの値に置き換わる。またステップ13
8では、現カラー値(r、g、b)が、x及びyの値に
よって決定されるフレーム・バッファのアドレスに格納
される。しかしながら、ステップ132で、Znewの
値がzバッファ比較テストに合格しなければ、zバッフ
ァ及びフレーム・バッファは更新されず、その後の処理
はステップ142に移る。
【0073】zバッファ比較テスト並びにzバッファ及
びフレーム・バッファへの条件付き更新が行われた後、
ステップ142で、現エリア成分中にピクセルがまだ残
っていることが判明すれば、処理はステップ124へ移
る。さもなければ、ステップ144で、現グラフィック
ス・オーダ中に処理すべきエリア成分がまだ残っている
か否かを判別し、そうであれば、次のエリア成分がステ
ップ118で検索される。さもなければ、ステップ11
2で、次のグラフィックス・オーダが検索される。
【0074】ステップ138の、フレーム・バッファを
更新する動作は、単に特定アドレスの現内容を新しいカ
ラー値で置き換えるだけでなく、多岐の機能を含むこと
がある。例えば、新しいカラー値を以前の内容へ加算し
たり、現内容を新しい値及び古い値の線形組み合わせ
(アルファ混合として知られている)で置き換えたり、
又は現内容をフレーム・バッファの現内容及び新しい値
の論理演算の結果で置き換えたりすることを含んでい
る。これらの動作は、種々のピクセル又は各ピクセル中
の複数組のビットに対する変更を禁止するようなマスク
動作の対象となることもある。更に、頂点間の補間によ
って決定されるカラー値が、(頂点間で補間されたテク
スチャ座標に基づく)テクスチャ・マッピングのような
手段によって更に修正される場合もある。同様に、zバ
ッファの更新動作が、zバッファの幾つかの又は全ての
要素の修正を禁止するマスク動作を含む、追加的な修飾
動作の対象となることもある。
【0075】B.グーロー・シェーデイングをサポート
するサブシステム 以下、前述の従来技術に従ったグラフィックス・サブシ
ステムと対比させつつ、本発明のグラフィックス・サブ
システムを説明する。以下の説明では、ピクセル及び頂
点のカラー値を、(r、g、b)の3成分で記述するも
のとする。このことは、後述のフォング・シェーデイン
グをサポートするサブシステムについても同様である。
しかしながら、この選択は、説明の便宜上のものであっ
て、カラーを表す多数の可能な手段の1つを表すにすぎ
ない。例えば、本発明の他の実施例では、これらのカラ
ーは、3成分より多い又は3成分より少ない成分を有す
ることが可能であり、或いはこれらのカラーを、追加の
原色に代えて色相、彩度、輝度、値等の成分で表すこと
も可能である。
【0076】最初に、1次ジオメトリ・プロセッサ及び
1次ラスタライザを説明する。これらの手段の動作は、
グーロー及びフォング・シェーデイングをサポートする
両方のグラフィックス・サブシステムについて実質的に
同一であるから、その説明は当該セクションでだけ行う
ことにする。
【0077】1.1次ジオメトリ・プロセッサ 図7は、グーロー又はフォング・シェーデイングをサポ
ートするグラフィックス・サブシステムの動作を示す。
1次ジオメトリ・プロセッサの動作は通常のジオメトリ
・プロセッサのそれと同様であるから、以下では本発明
を実施する上での重要な相違点を説明する。
【0078】ステップ146では、ホスト・プロセッサ
からのデータ値が転送され、ステップ148では、次の
グラフィックス・オーダが処理される。ステップ150
で、もしこのグラフィックス・オーダが描画プリミテイ
ブに対応すれば、処理はステップ154へ移る。さもな
ければ、処理はステップ152へ分岐して、そこでこの
グラフィックス・オーダを処理した後、ステップ148
へ戻って次のグラフィックス・オーダを処理する。
【0079】ステップ154では、通常のジオメトリ・
プロセッサとは異なり、法線ベクトルの変換及び頂点の
照明計算が排除されており、ビュー変換及び投影がモデ
リング座標からワールド座標への変換と組み合わされ
る。このようにして組み合わされた変換は、以下の式7
に示すように、モデリング座標(xm、ym、zm、w
m)からビュー座標(xv、yv、zv、wv)への直
接的な座標変換に基づいている。
【0080】
【数7】
【0081】この動作は、通常のジオメトリ・プロセッ
サのステップ88及び94(図5参照)で使用された行
列t及びvの行列積によって決定された4x4の変換行
列tvに基づくものである。このモデリング座標からビ
ュー座標への1ステップ変換が可能となるのは、ワール
ド座標中の中間値(xw、yw、zw、ww)が照明計
算のためにのみ必要とされ、しかもかかる照明計算が本
発明の1次ジオメトリ・プロセッサでは排除されている
からである。
【0082】ステップ156及び158では、描画プリ
ミテイブをテストして、これがトリビアルに受け入れら
れたか又は拒否されたかを決定する。もし、当該プリミ
テイブがトリビアルに受け入れられずに、トリビアルに
拒否されたのであれば、ステップ148では、次のグラ
フィックス・オーダが処理される。一方、当該プリミテ
イブがトリビアルに受け入れられず、また拒否もされな
ければ、当該プリミテイブは、ステップ160で、ウイ
ンドウ/ビューポート・クリッピングにかけられる。ス
テップ162で、結果的なプリミテイブがヌル・エクス
テントに対応するのであれば、このプリミテイブは拒否
される。さもなければ、ステップ164へ移って、座標
のマッピングを行う。本発明の1次ジオメトリ・プロセ
ッサでは、通常のジオメトリ・プロセッサが必要として
いたカラー値のクランピングは排除されている。
【0083】ステップ166において、適当なデータが
1次ラスタライザへ送られる。このデータは、通常のジ
オメトリ・プロセッサから通常のrbgzラスタライザ
へ転送される、変換/クリップ/マップ済みの座標値に
加えて、変換されていない元の頂点座標及び法線ベクト
ルを含んでいなければならない。また、各頂点に対する
データは、クリッピング・コードを含んでいなければな
らない。このコードの1ビットは、当該頂点が元の頂点
であるのか又はクリッピング論理によって生成された新
しい頂点であるのかを指示し、他の6ビットは、6つの
ウインドウ/ビューポート・クリッピング境界に対応す
る。元の各頂点ごとに、各境界ビットは、当該頂点が対
応するクリッピング・テストに合格したか否かを指示す
る。また、新しい各頂点ごとに、各境界ビットは、当該
頂点が対応するクリッピング面によって作成されたのか
否かを指示する。
【0084】本発明に従ってジオメトリ・プロセッサを
簡単化することにより、1次ジオメトリ・プロセッサが
通常のジオメトリ・プロセッサよりも一層高速に描画プ
リミテイブを処理することが可能になる。なぜなら、通
常のジオメトリ・プロセッサの動作を支配していた高価
な照明計算が排除されることも含めて、各頂点ごとに必
要な動作の数が著しく減少するからである。
【0085】2.1次ラスタライザ 図8は、本発明に従った1次ラスタライザの動作を示
す。1次ラスタライザの動作は、通常のラスタライザの
それと同様である。しかしながら、この1次ラスタライ
ザについては、以下で詳述するように、カラー値(r、
g、b)に基づく計算は排除され、そしてzバッファの
ピクセル・マスクが作成されて2次ラスタライザへ渡さ
れる。また、各頂点の形状すなわちジオメトリを表すデ
ータ(例えば、座標、法線ベクトル等)及び他の特性
(例えば、カラー、テクスチャ座標等)並びに各プリミ
テイブ中に含まれる各エリア成分に対するzバッファの
ピクセル・マスクは、2次ジオメトリ・プロセッサ及び
2次ラスタライザへパスされなければならない。
【0086】ステップ170では、1次ジオメトリ・プ
ロセッサからデータ値のストリームが受け取られ、ステ
ップ172では、このストリーム中の次のグラフィック
ス・オーダが処理される。ステップ174では、1次ラ
スタライザの動作モードがテストされる。もし、このモ
ードがエリア・プリミテイブに対応するなら、当該プリ
ミテイブのエリア成分が、ステップ178の処理のため
に選択される。さもなければ、このデータは、ステップ
176の他の適当な手順によって処理される。
【0087】プリミテイブ・ジオメトリを表す任意のデ
ータ(例えば、未変換の座標、反射法線及びクリッピン
グ・コード)が、ステップ178の間に各エリア成分の
一部として受け取られる場合、かかるデータは2次ジオ
メトリ・プロセッサへ転送される。また、変換及びクリ
ップ済みの頂点のx及びy成分が2次ジオメトリ・プロ
セッサへパスされ、クリッピング論理によって作成され
た任意の頂点に関連するクリッピング・コードが2次ジ
オメトリ・プロセッサへパスされる。通常のラスタライ
ザとは対照的に、変換及びクリップ済みの頂点のz成分
を2次ジオメトリ・プロセッサへパスする必要はない。
【0088】ステップ180では、予備的計算が行われ
る。この計算は通常のラスタライザのステップ120
(図6参照)のそれと同様であるが、カラー値に基づく
計算が排除されている点が異なる。かくて、例えば、面
方程式の評価は、x及びyの関数としてz(深さ)を処
理するように簡単化されるのである。ステップ182
で、当該エリア成分がゼロ・エリアを持つなら、ステッ
プ210では、レジスタNUM0及びNUM1の内容
が、2次ジオメトリ・プロセッサへ通じるデータ通信路
へコピーされる。これはNUM0=0及びNUM1=0
の値を2次ジオメトリ・プロセッサへ送り、一方、2次
ジオメトリ・プロセッサは各エリア成分ごとに少なくと
も1つのかかるペアを必要とする。NUM1=0の値
は、当該エリア成分をスキップしうることを指示する。
【0089】さもなければ、ステップ184で、各エリ
ア成分のピクセルを生成する前に、1ビットのフラグP
TEST並びにレジスタNUM0及びNUM1がクリア
される。このフラグPTESTの目的は、先行するピク
セルがzバッファ・テストに合格したか否かを指示する
ことである。PTEST=1の場合、現エリア成分中の
先行ピクセルはzバッファ・テストに合格したのであ
り、PTEST=0の場合、先行ピクセルはzバッファ
・テストに不合格となったか、又は現エリア成分中の最
初のピクセルのいずれかである。
【0090】レジスタNUM0及びNUM1は、各エリ
ア成分ごとにランレングス符号化されたzバッファのピ
クセル・マスクを構成するために使用される。レジスタ
NUM0の値は、zバッファ・テストに合格した最後の
ピクセルからの又は(どのピクセルもまだzバッファ・
テストに合格していなければ)現エリア成分の開始端か
らの、zバッファ・テストに不合格となった連続ピクセ
ルの数を指示する。一方、レジスタNUM1の値は、z
バッファ・テストに不合格となった最後のピクセルから
の又は(どのピクセルもまだzバッファ・テストに不合
格となっていなければ)現エリア成分の開始端からの、
zバッファ・テストに合格した連続ピクセルの数を指示
する。
【0091】ステップ186では、各エリア成分のピク
セルを生成するためのプロセスが開始され、そして次の
ピクセルが生成される。ステップ188では、ステップ
186で生成済みのピクセルについてZnewが計算さ
れる。通常のラスタライザとは対照的に、各ピクセルに
対するカラー値(r、g、b)の計算は排除されてい
る。ステップ190では、zバッファからZoldの値
がロードされ、ステップ194では、Znew及びZo
ldの値について比較が行われる。もし、現ピクセルが
この比較テストに合格するなら、ステップ196では、
この現ピクセルに対するZnewの新しい値でzバッフ
ァが更新される。次のステップ198では、フラグPT
ESTの値が1へセットされ、レジスタNUM1の値が
1だけ増分される。レジスタNUM1の値は、zバッフ
ァ・テストに合格したピクセルの数(すなわち、観察可
能なピクセルの数)をカウントするために使用されるも
のである。レジスタNUM0及びNUM1は、観察可能
として類別されたピクセルに関する情報を2次ジオメト
リ・プロセッサへパスさせるために、ランレングス符号
化に基づく類別方式を提供する。ステップ200で、現
エリア成分について処理すべきピクセルがまだ残存して
おれば、ステップ186で、次のピクセルが生成され
る。さもなければ、ステップ210で、レジスタNUM
0及びNUM1の内容が、2次ジオメトリ・プロセッサ
へ通じるデータ通信路へコピーされる。
【0092】もし、ステップ194の比較テストが不合
格となれば、ステップ202では、フラグPTESTの
値がテストされる。このフラグPTESTは、現エリア
成分について以前に処理された任意のピクセルが、zバ
ッファ比較テストによって観察可能なものとして類別さ
れたが、これに対応するデータをまだ2次ジオメトリ・
プロセッサへ転送されていない、ということを指示す
る。
【0093】フラグPTESTがゼロに等しければ、処
理はステップ208に進んで、そこでレジスタNUM0
の値が増分される。このレジスタNUM0の値は、zバ
ッファ・テストに不合格となったピクセルの数(すなわ
ち、隠蔽済みものとして類別されたピクセルの数)をカ
ウントするために使用される。レジスタNUM0及びN
UM1の値は、現エリア成分に対するピクセルの類別に
関する情報を、ランレングス符号化によって、2次ジオ
メトリ・プロセッサへパスさせるために使用される。レ
ジスタNUM0の値は、zバッファ比較テストに不合格
となった各ピクセルごとに増分される。
【0094】一方、ステップ202で、フラグPTES
Tが1に等しければ、次のステップ204では、レジス
タNUM0及びNUM1の内容が、2次ジオメトリ・プ
ロセッサへ通じるデータ通信路へコピーされ、次いでス
テップ206において、現エリア成分の後続処理を準備
するために、フラグPTEST、レジスタNUM0及び
NUM1の値が全部クリアされる。その後の処理はステ
ップ208に移り、そこで現ピクセルがステップ94の
zバッファ・テストに不合格となったことを指示するた
めに、レジスタNUM0の値が1だけ増分される。
【0095】ステップ208の後、処理はステップ20
0に進み、そこで現エリア成分のピクセルが依然として
残存することが判明すれば、次のステップ210では、
レジスタNUM0及びNUM1の内容が、2次ジオメト
リ・プロセッサへ通じるデータ通信路へコピーされる。
さもなければ、ステップ186で、現エリア成分に対す
る次のピクセルが生成される。ステップ210の重要な
目的は、z比較テストに合格した任意のピクセルの後
に、このテストに不合格となったピクセルが存在しない
ような場合に(この場合、これらのピクセルのデータは
ステップ204の間には送られなかった筈である)、か
かる任意のピクセルについて2次ジオメトリ・プロセッ
サへデータを供給することである。
【0096】ステップ210の後のステップ212で、
現グラフィックス・オーダ中に処理すべき成分が依然と
して残存しておれば、処理はステップ178に進む。さ
もなければ、処理はステップ172に進んで、そこで1
次ジオメトリ・プロセッサから次のグラフイックス・オ
ーダを獲得する。
【0097】前述のように、2次ジオメトリ・プロセッ
サへ転送されるレジスタNUM0及びNUM1の値は、
ピクセル・マスクのランレングス符号化表示を形成す
る。2次ラスタライザは、1次ラスタライザと同じ論理
を使用して、各エリア成分中のピクセルに対するx及び
y値を生成する。かくて、ピクセル・マスクは、レジス
タNUM0及びNUM1を使用して、連続的な観察可能
又は隠蔽されたピクセルの適当な数をパスさせる必要が
あるに過ぎない。殆どの場合、各エリア成分中の全ての
ピクセルは、完全に受け入れられるか(この場合、NU
M0=0及びNUM1=エリア成分中のピクセルの数で
ある)又は完全に拒否される(この場合、NUM0=エ
リア成分中のピクセルの数及びNUM1=0である)こ
とが予測されるから、ピクセル・マスクのランレングス
符号化を利用すると、1次ラスタライザの動作が効率的
となろう。
【0098】3.2次ジオメトリ・プロセッサ 図9は、本発明に従った2次ジオメトリ・プロセッサの
動作を示す。2次ジオメトリ・プロセッサの動作は通常
のジオメトリ・プロセッサのそれと同様であるが、変換
及び照明計算が、非ゼロ・エリアを有する対応するエリ
ア成分に依存する(すなわち、1次ラスタライザ中のz
バッファ比較テストによって観察可能として類別されて
いるエリア成分の少なくとも1つのピクセルに依存す
る)点が異なる。
【0099】ステップ214で、1次ラスタライザから
受け取られるデータ・ストリームは、各描画プリミテイ
ブ用のデータを含んでいる。このデータは、未変換の頂
点座標と、未変換の法線ベクトルと、変換/クリップ/
マップ済みの頂点座標(x及びy成分)と、クリッピン
グ・コードとから成る。更に、ランレングス符号化ピク
セル・マスクは、各エリア成分ごとの頂点データ・レコ
ードを伴っている。これらのピクセル・マスクは、1次
ラスタライザ中のzバッファ比較テストによって隠蔽済
み又は観察可能として類別されたピクセルの数を交互に
表す、一連の整数(NUM0、NUM1、NUM2、N
UM3、・・・、NUMi)によって表される。
【0100】一般に、各ピクセル・マスクは、各エリア
成分をそれぞれ伴う。例えば、多角形の場合、最初の2
つの頂点(vo及びv1)は、エリア成分を形成しな
い。しかしながら、第3の頂点(v2)は、(vo、v
1及びv2によって定義された)第1のエリア成分を指
定し、所定のピクセル・マスクを伴う。後続する各頂点
(vi)は、(vo、v(i−1)及びvi)によって
定義された追加のエリア成分を指定するとともに、対応
するピクセル・マスクを伴うものである。同様に、三角
ストリップについては、第2の頂点の後の新しい各頂点
(vi)が、頂点(v(i−2)、v(i−1)及びv
i)によって定義された新しいエリア成分を指定する。
【0101】ステップ216では、データ・ストリーム
中の次のグラフィックス・オーダが検索される。ステッ
プ218で、当該グラフィックス・オーダが描画プリミ
テイブに対応するなら、ステップ222では、当該プリ
ミテイブの最初のエリア成分が検索される。さもなけれ
ば、ステップ220で、他の適当な処理が行われた後、
処理はステップ216に移る。ステップ222の後のス
テップ224では、現プリミテイブが非ゼロ・エリアを
有するか否か(すなわち、現プリミテイブが観察可能で
あるか否か)を判別する。特に、レジスタNUM1の値
(これはピクセル・マスクの第2ワードであり、因みに
レジスタNUM0の値はピクセル・マスクの第1ワード
である)は、zバッファ・テストに合格すべき第1ピク
セル・グループ中にあるピクセルの数(すなわち、観察
可能なピクセル・ランの長さ)を指示する。もし、NU
M1=0であれば、対応するエリア成分は、zバッファ
・テストに合格するようなピクセルを持たず、処理はス
テップ242へ進む。この場合、変換及び照明計算はス
キップされる。もし、NUM1がゼロでなければ、対応
するエリア成分中の少なくとも1つのピクセルはzバッ
ファ・テストに合格し、処理はステップ226に移る。
【0102】ステップ226、228及び236では、
新しい頂点(vi)が、通常のジオメトリ・プロセッサ
のステップ88、90及び92(図5参照)で実現され
たものと同等の、変換及び照明計算にかけられる。も
し、現エリア成分が、かかる変換及び照明計算にかけら
れなかった先行する任意の頂点(v0、v(vi−2)
又はv(i−1))に依存するのであれば、これらの頂
点についてもこれらの計算が行われる。これらの変換及
び照明計算は、クリッピングによって生ぜられた頂点で
はなくて、元の頂点についてのみ行われる。もし、所定
のエリア成分が、ステップ160における以前のウイン
ドウ/ビューポート・クリッピングによって定義された
新しい頂点により定義されるのであれば、かかる変換及
び照明計算は対応する元の頂点の組について行われる。
【0103】ステップ238において、もし現エリア成
分を定義する頂点が(対応するクリッピング・コードに
よって指示されるように)トリビアルに受け入れられな
いなら、これらの頂点座標は、図5のステップ94にお
いて通常のジオメトリ・プロセッサで適用されたものと
実質的に同等の様式で、ステップ230のビュー変換及
び投影にかけられる。次いで、結果的な変換及び投影済
みの頂点は、ステップ100における通常のジオメトリ
・プロセッサのそれと実質的に同等の様式で、ステップ
232のウインドウ/ビューポート・クリッピング論理
にかけられる。このクリッピング論理は、元の頂点間で
補間されたカラー値を生成するとともに、クリップ済み
の座標をも生成する。但し、この場合は、結果的な補間
済みのカラーだけが保存されるのに対し、クリップ済み
の座標は廃棄されてしまう。
【0104】ステップ234では、頂点のカラー値がク
ランプされ、そして照明計算及びウインドウ/ビューポ
ート計算から得られるこれらの頂点カラー値は、1次ジ
オメトリ・プロセッサによって計算された変換/クリッ
プ/マップ済みの頂点座標と組み合わされる。受け入れ
られた頂点のカラー値が計算され、ステップ236で、
元の頂点の座標と関連付けられる。トリビアルに受け入
れられたエリア成分では、全ての頂点が受け入れられ
る。ステップ240において、結果的な複数組のデータ
値が2次ジオメトリ・プロセッサへ送られる。ステップ
242で、現プリミテイブの他のエリア成分が依然とし
て残存していれば、処理はステップ222に移る。さも
なければ、ステップ216で、次のグラフィックス・オ
ーダが検索される。
【0105】4.2次ラスタライザ 図10は、本発明に従った2次ラスタライザの動作を示
す。2次ラスタライザの動作は通常のrbgzラスタラ
イザと実質的に同様であるが、面方程式がx及びyの関
数としてzについて評価されないこと、各ピクセルごと
にZnewが計算されないこと、1次ラスタライザによ
って生成されるランレングス符号化ピクセル・マスクが
フレーム・バッファの更新を制御するために使用される
点が異なる。
【0106】ステップ244では、2次ジオメトリ・プ
ロセッサからのデータ・ストリームが受け入れられ、ス
テップ245では、次のグラフィックス・オーダが検索
される。もし、当該オーダがエリア・プリミテイブに対
応すれば、次のステップ248で、当該プリミテイブの
次のエリア成分が検索される。さもなければ、ステップ
247で、他の適当な処理が行われ、ステップ245
で、次のグラフィックス・オーダが検索される。
【0107】2つのカウンタ(COUNT0及びCOU
NT1)と、1ビットのフラグ(MASK)とが、フレ
ーム・バッファの更新を制御するピクセル・マスクを定
義するために使用される。一般に、フレーム・バッファ
は、以前に観察可能として類別されたピクセルについて
のみ更新される。観察可能として類別されたピクセルは
ピクセル配列中の1に対応し、隠蔽されたものと類別さ
れたピクセルはピクセル配列中の0に対応する。特定の
例を挙げれば、ピクセルを隠蔽又は観察可能と類別した
結果は、次に示すように、交番的な1及び0のランとし
て表すことが可能である。 0000000011111111111111000000111110000101001。
【0108】このピクセル配列用の対応するピクセル・
マスクは、当該ピクセル・シーケンス中の0及び1のラ
ンの長さを指示する整数のペアを含むことになろう。こ
の場合、カウンタCOUNT0及びCOUNT1は、次
のような値のシーケンスを取ることになる:(8、14)、
(6、5)、(4、1)、(1、1)、(2、1)。
【0109】一般に、ピクセル・マスクの状態は、フラ
グMASKをゼロにセットすることによって最初に決定
され、カウンタCOUNT0は、現エリア成分に対する
ピクセル・マスク中の最初の整数の値をロードされる。
また、カウンタCOUNT1は、現エリア成分に対する
ピクセル・マスク・データ中の第2の整数の値をロード
される。もし、カウンタCOUNT0がゼロであれば、
フラグMASKは1へセットされ、これは当該ピクセル
・マスク(例えば、0000000000000111111111111)中に
ある0のランの終わり(すなわち、1のランの始まり)
に対応する。さもなければ、フラグMASKは0にセッ
トされたままに留まり、これは少なくとも1に等しい長
さを持つ0のラン(例えば、1111111111100000000)に
対応する。連続する各ピクセルについて、フラグMAS
Kがゼロであれば、カウンタCOUNT0は1だけ減分
される。カウンタCOUNT0がゼロに到達する場合、
フラグMASKは、1へセットされる。一方、マスクM
ASKが1であれば、カウンタCOUNT1は減分され
ることになる。カウンタCOUNT1がゼロに達する
と、フラグMASKは、ゼロへセットされる。もし、ピ
クセル生成論理が、生成すべき追加のピクセルが残って
いることを指示し、しかもカウンタCOUNT1がゼロ
であるなら(この時点で、カウンタCOUNT1はゼロ
であることに注意)、レジスタ(NUM0及びNUM
1)の次のペアの値が、カウンタCOUNT0及びCO
UNT1へロードされることになる。
【0110】以下、図10を参照して、2次ラスタライ
ザの動作中のピクセル・マスクの使用方法を詳述する。
ステップ249で、カウンタCOUNT0及びCOUN
T1は、ピクセル・マスク中の次の値をロードされ、ス
テップ250で、フラグMASKは、ゼロへセットされ
る。ステップ251で、カウンタCOUNT1がゼロで
あれば、現エリア成分中のどのピクセルもzバッファ比
較テストに合格しなかった(すなわち、当該成分は隠蔽
されている)から、現エリア成分の処理が終了されるこ
とになる。ステップ252で、カウンタCOUNT0が
ゼロであれば、ステップ254で、フラグMASKが1
へセットされる。さもなければ、ステップ253では、
面方程式が、x及びyの関数としてr、g及びbについ
て評価される。
【0111】ステップ255では、1次ラスタライザと
全く同じ論理を使用して、各エリア成分中のピクセルの
x及びy値が生成される。ステップ256では、現ピク
セルについて、r、g及びb値が計算される。ステップ
257で、フラグMASKが1であれば、ステップ25
8では、フレーム・バッファが、r、g及びb値と現ピ
クセルに対応する他のデータで更新され、ステップ25
9では、カウンタCOUNT1が減分される。さもなけ
れば、すなわちフラグMASKがゼロであれば、ステッ
プ261で、カウンタCOUNT0が減分される。ステ
ップ262及び263で、カウンタCOUNT0がゼロ
であれば、フラグMASKが1へセットされる。さもな
ければ、処理はステップ260に移る。
【0112】ステップ260において、現エリア成分の
ピクセルがまだ残存すれば、ステップ264では、カウ
ンタCOUNT1の値がテストされる。カウンタCOU
NT1がゼロであれば、ステップ248で、次のエリア
成分が検索される。さもなければ、ステップ249で、
カウンタCOUNT0及びCOUNT1が、ピクセル・
マスクからの次の値をロードされる。
【0113】ステップ260で、それ以上のピクセルが
存在しなければ、処理はステップ265に移る。一方、
現プリミテイブのエリア成分がまだ存在すれば、ステッ
プ248で、次の成分が検索される。さもなければ、ス
テップ245で、次のグラフィックス・オーダが検索さ
れる。
【0114】C.フォング・シェーデイングをサポート
するサブシステム 前述のように、フォング・シェーデイングをサポートす
るグラフィックス・サブシステムは、1次ジオメトリ・
プロセッサ及び1次ラスタライザを使用する。これらの
1次プロセッサは、グーロー・シェーデイングをサポー
トするグラフィックス・サブシステムで使用されたもの
と実質的に同じであるから、これらの1次プロセッサに
よる1次動作については、その説明を省略する。
【0115】以下、フォング・シェーデイングをサポー
トするグラフィックス・サブシステム用の2次プロセッ
サの動作を説明する。前述のように、2次プロセッサを
単一のユニットとして実現することが望ましいが、以下
では説明の便宜上、2次プロセッサ中のジオメトリ処理
とラスタ化動作とを別々に説明する。
【0116】1.2次ジオメトリ・プロセッサ 図11は、本発明に従った2次ジオメトリ・プロセッサ
の動作を示す。フォング・シェーデイング用の2次ジオ
メトリ・プロセッサの動作はグーロー・シェーデイング
用の2次ジオメトリ・プロセッサのそれと同様である
が、照明計算が行われないこと、2次ラスタライザへパ
スされるデータが、頂点のカラー値ではなくて、頂点座
標及びワールド座標中の反射放線を含むことが異なる。
また、各頂点に対するデータが、ステップ148のプリ
ミテイブとともに与えられるカラー値及びテクスチャ座
標を含むことがある。
【0117】ステップ268では、1次ラスタライザか
らのデータ・ストリームが受け入れられ、ステップ27
0では、次のグラフィックス・オーダが検索される。ス
テップ272において、当該グラフィックス・オーダが
描画プリミテイブに対応するなら、ステップ276で
は、当該プリミテイブの次のエリア成分が検索される。
さもなければ、ステップ274で、他の適当な処理が行
われ、ステップ270では、次のグラフィックス・オー
ダが検索される。
【0118】ステップ276に続くステップ278で
は、当該ピクセル・マスク中にあるレジスタNUM1の
値がテストされる。レジスタNUM1の値がゼロであれ
ば、現エリア成分中のどのピクセルもzバッファ比較テ
ストに合格しなかったことになるから、処理はステップ
292に移る。さもなければ、すなわちレジスタNUM
1の値がゼロでなければ、このエリア成分の少なくとも
1つのピクセルが観察可能であり、その後の処理はステ
ップ280に移る。ステップ280及び282では、新
しい頂点(vi)が、通常のジオメトリ・プロセッサで
実現されたものと実質的に同等の変換用の計算にかけら
れる。これらの変換用の計算は、クリッピングによって
生ぜられた頂点についてではなく、元の頂点についての
み行われる。
【0119】ステップ284において、もし現エリア成
分を定義する頂点がトリビアルに受け入れられなけれ
ば、これらの頂点座標は、ステップ286のビュー変換
及び投影にかけられる。次のステップ288では、結果
的な変換及び投影済みの頂点が、ウインドウ/ビューポ
ート・クリッピング論理にかけられる。
【0120】もし、ウインドウ/ビューポート・クリッ
ピングが任意のエリア成分について行われるのであれ
ば、このクリッピング論理は、当該クリッピング動作に
よって作成された任意の新しい頂点について、その頂点
座標とワールド座標における法線ベクトルとを供給しな
ければならない。これらの新しい頂点に対する頂点座標
及び法線ベクトルは、当該エリア成分の頂点における対
応する成分の値に基づいて、これらのベクトルのx、y
及びz成分の線形補間によって決定することができる。
結果的な補間済みの法線ベクトルは、一般に、単位ベク
トルを形成しない筈である。これらのベクトルに適当な
スケール係数をかければ単位ベクトルに変換することが
可能であるが、この段階ではそうすることは必要ない。
なぜなら、照明計算を行う前に、フォング・シェーデイ
ング用の2次ラスタライザによって、同様のスケール係
数が適用されるからである。また、透視投影(ローカル
観察者として知られている条件)に関し照明計算が行わ
れるか、又は1つ以上の光源がレンダリング中の描画プ
リミテイブから無限の距離に位置するものとして取り扱
われていない限り、ワールド座標における頂点座標は必
要ない。更に、グーロー・シェーデイング用の2次ジオ
メトリ・プロセッサで必要であったカラー・クランピン
グ段階は、このプロセッサには設けられていない。なぜ
なら、ここでは照明計算が行われないからである。
【0121】ステップ290では、現エリア成分を表す
のに必要なデータが、2次ラスタライザへ送られる。も
し、現エリア成分がトリビアルに受け入れられたのであ
れば、このデータは、ステップ280及び282で決定
された変換済みの座標及び法線ベクトルと、ステップ2
70で1次ラスタライザから受け取られた他のデータと
から成る。もし、このエリア成分がトリビアルに受け入
れられなかったなら、2次ラスタライザへ送られるデー
タは、受け入れられた頂点に対するものと同等のデータ
並びにステップ288でクリッピング論理によって作成
された追加の頂点を含むことができる。
【0122】ステップ292で、現プリミテイブ中にま
だ他ののエリア成分が残存していれば、ステップ276
では、次のエリア成分が検索される。さもなければ、ス
テップ270で、次のグラフィックス・オーダが検索さ
れる。
【0123】2.2次ラスタライザ 図12は、本発明に従った2次ラスタライザの動作を示
す。フォング・シェーデイング用の2次ラスタライザの
動作は、グーロー・シェーデイング用の2次ラスタライ
ザのそれと実質的に同様であるが、面方程式がカラー値
(r、g、b)によって評価されるのではなく、頂点座
標のx、y及びz値並びに法線ベクトルによって評価さ
れるという点が異なる。
【0124】ステップ294では、2次ジオメトリ・プ
ロセッサからのデータが受け入れられ、ステップ296
では、次のグラフィックス・オーダが処理される。ステ
ップ298において、もし当該グラフィックス・オーダ
がエリア・プリミテイブに対応するなら、ステップ30
2では、次のエリア成分が検索される。さもなければ、
ステップ300で他の適当な処理が行われる。
【0125】ステップ304において、2つのカウンタ
COUNT0及びCOUNT1がピクセル・マスクから
ロードされ、ステップ306では、フラグMASKがゼ
ロへセットされる。ステップ308で、カウンタCOU
NT1がゼロであれば、処理はステップ338に移る。
カウンタCOUNT1がゼロでなければ、ステップ31
0及び312において、カウンタCOUNT0がゼロで
あることを条件として、フラグMASKが1へセットさ
れる。ステップ314では、面方程式が、反射法線ベク
トルについて評価される。
【0126】ステップ316では、現ピクセルに対する
x及びy値が生成され、ステップ318では、現ピクセ
ルに対する頂点座標及び反射法線のx、y及びz値を補
間するために、面方程式が使用される。透視投影(ロー
カル観察者として知られている条件)に関し照明計算が
行われるか、又は1つ以上の光源がレンダリング中の描
画プリミテイブから無限の距離に位置するものとして取
り扱われていない限り、ワールド座標におけるピクセル
座標は必要ない。
【0127】ステップ320において、フラグMASK
が1に等しければ、ステップ322では、単位ベクトル
を生ずるように補間済みの法線ベクトルがスケールさ
れ、その結果的な単位ベクトルは、補間済みの頂点座標
(必要な場合のみ)とともに、現ピクセルに対する照明
計算を行うために使用される。かくて、現ピクセルに対
する1組のカラー値が得られることになる。ステップ3
24では、これらのカラー値は、グーロー・シェーデイ
ング用の2次ラスタライザと実質的に同様の様式で、フ
レーム・バッファを更新するために使用される。ステッ
プ326では、カウンタCOUNT1が減分され、処理
はステップ334に移る。
【0128】一方、ステップ320で、フラグMASK
がゼロに等しければ、カウンタCOUNT0が減分され
る。ステップ330及び332では、カウンタCOUN
T0がゼロであれば、フラグMASKが1へセットさ
れ、処理はステップ334に移る。
【0129】ステップ334で、現エリア成分に対する
ピクセルがまだ残存していれば、ステップ336では、
カウンタCOUNT1の値がテストされる。カウンタC
OUNT1の値がゼロであれば、カウンタCOUNT0
及びCOUNT1の値は、ピクセル・マスクからロード
される。一方、カウンタCOUNT1がゼロでなけれ
ば、ステップ316において、現エリア成分の次のピク
セルが生成される。
【0130】ステップ338で、他のエリア成分が存在
すれば、ステップ296では、次のグラフィックス・オ
ーダが検索される。図12には示していないが、当業者
には明らかなように、カラー・マッピング及びクランピ
ングは、照明計算の後に行われる。
【0131】III.グラフィックス・サブシステムの
追加的な特徴 以上では、推奨実施例に即して本発明を詳細に説明した
が、本発明の範囲は推奨実施例に限られるものではな
く、その代替手段や均等手段も本発明の範囲に属すべき
ことは言うまでもない。例えば、本発明の他の実施例で
は、1次及び2次機能の両方について同一のハードウエ
アを使用することができよう。この場合、2次機能を行
う必要性が1次機能に優先することになるが、高深度の
シーンについてはその頻度は少ない筈である。
【0132】また、推奨実施例では、照明されたシーン
中の物体に対する各プリミテイブを隠蔽済み又は観察可
能なものとして類別するようにしているが、本発明の概
念はこれに限られるものではなく、1次ラスタライザに
よって処理されているプリミテイブに対応する各ピクセ
ルを隠蔽済み又は観察可能なものとして類別するととも
に、観察可能と類別されたピクセルで以てフレーム・バ
ッファを更新することにも同様に適用することができ
る。
【0133】さらに、特定シーンの照明特性に応答し
て、同一のコンピュータ・グラフィックス・システム内
で、1パス及び2パス方式を交互に(すなわち、オン又
はオフにトグルして)使用する場合には、トグル手段を
設けて、かかるトグル手段をホスト・プロセッサに応答
してオン又はオフにスイッチするようにすることもでき
よう。
【0134】
【発明の効果】以上詳述したように、本発明によれば、
多数のプリミテイブや、高深度や、精妙な照明条件(例
えば、複数の光源のシミュレーション、位置灯若しくは
スポット・ライトのような光源の型のシミュレーショ
ン、照明計算における観察者の位置の考慮、又は各ピク
セルごとに照明計算を行うようなフォング・シェーデイ
ングの使用)を有する、複雑なシーンをレンダリングす
るに必要な時間を減少させることができる。本発明は、
1パス又は2パス方式のいずれかを使用して、動作する
ことが可能である。1パス方式を使用する場合、シーン
をレンダリングするに必要な時間は、通常のグラフィッ
クス・システムによって必要とされる時間の略半分ま
で、減少させることができる。2パス方式を使用する場
合、シーンをレンダリングするに必要な時間は、照明計
算なしにこのシーンをレンダリングするに必要な時間の
略2倍まで減少させることができる。
【0135】本発明の他の利点は、所定の時間内に大量
のプリミテイブ又は複雑な照明計算を処理することがで
き、ひいては実時間式対話型コンピュータ・グラフィッ
クスの品質又はリアリズムの程度を向上させることがで
きる、という点にある。
【図面の簡単な説明】
【図1】本発明に従った3次元グラフィックス・サブシ
ステムを有するグラフィックス・ワークステーションの
ブロック図である。
【図2】従来技術のグラフィックス・サブシステムのブ
ロック図である。
【図3】グーロー・シェーデイングをサポートする、本
発明に従ったグラフィックス・サブシステムのブロック
図である。
【図4】フォング・シェーデイングをサポートする、本
発明に従ったグラフィックス・サブシステムのブロック
図である。
【図5】従来技術のジオメトリ・プロセッサの論理フロ
ー図である。
【図6】従来技術のrgbzラスタライザの論理フロー
図である。
【図7】グーロー又はフォング・シェーデイングをサポ
ートする、本発明に従った1次ジオメトリ・プロセッサ
の論理フロー図である。
【図8】グーロー又はフォング・シェーデイングをサポ
ートする、本発明に従った1次ラスタライザの論理フロ
ー図である。
【図9】グーロー・シェーデイングをサポートする、本
発明に従った2次ジオメトリ・プロセッサの論理フロー
図である。
【図10】グーロー・シェーデイングをサポートする、
本発明に従った2次ラスタライザの論理フロー図であ
る。
【図11】フォング・シェーデイングをサポートする、
本発明に従った2次ジオメトリ・プロセッサの論理フロ
ー図である。
【図12】フォング・シェーデイングをサポートする、
本発明に従った2次ラスタライザの論理フロー図であ
る。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】表示装置へ結合されたフレーム・バッファ
    を有するコンピュータ・グラフィックス・システムにお
    いて、 (a)一連のグラフィック・プリミテイブ内の各プリミ
    テイブごとに、プリミテイブを構成する各ピクセルに対
    応するZ値を生成するステップと、 (b)前記各プリミテイブが、前記一連のグラフィック
    ・プリミテイブ内の他のプリミテイブに対し、隠蔽済み
    であるか又は観察可能であるかを決定するステップと、(c)観察可能であると決定された前記各プリミティブ
    をその予定の走査パスに沿って走査することにより、当
    該各プリミティブ内のピクセルのうち当該予定の走査パ
    ス内で観察可能な各ピクセルを決定するステップと、 (d)前記予定の走査パス内で観察可能であると決定さ
    れた前記各ピクセルに関連するピクセル・マスクのラン
    レングス符号化表示を生成するステップと、 (e)観察可能であると決定された前記各プリミテイブ
    についてのみ、観察可能であると決定された前記各ピク
    セルに関連する前記ピクセル・マスクに従って、前記フ
    レーム・バッファを更新するステップと、 を含む、一連のグラフィック・プリミテイブ用のデータ
    を処理するための方法。
  2. 【請求項2】前記ステップ(e)が、前記ピクセル・マ
    スクのランレングス符号化表示を復号化し且つその復号
    化の結果に従って、前記フレーム・バッファを更新する
    ことを含む、請求項1記載の方法。
JP5329386A 1993-01-15 1993-12-27 一連のグラフィック・プリミティブ用のデータを処理するための方法 Expired - Lifetime JP2769427B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US600293A 1993-01-15 1993-01-15
US006002 1993-01-15

Publications (2)

Publication Number Publication Date
JPH07141526A JPH07141526A (ja) 1995-06-02
JP2769427B2 true JP2769427B2 (ja) 1998-06-25

Family

ID=21718793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5329386A Expired - Lifetime JP2769427B2 (ja) 1993-01-15 1993-12-27 一連のグラフィック・プリミティブ用のデータを処理するための方法

Country Status (4)

Country Link
US (1) US5613050A (ja)
EP (1) EP0606685A1 (ja)
JP (1) JP2769427B2 (ja)
TW (1) TW241196B (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638501A (en) * 1993-05-10 1997-06-10 Apple Computer, Inc. Method and apparatus for displaying an overlay image
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
AUPM822394A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Object based rendering system
JPH08249494A (ja) * 1995-03-09 1996-09-27 Sharp Corp Zバッファ方式隠面消去装置
US6348919B1 (en) * 1995-12-18 2002-02-19 3Dlabs Inc, Ltd. Graphics system with optimized use of unified local and frame buffers
US5812138A (en) * 1995-12-19 1998-09-22 Cirrus Logic, Inc. Method and apparatus for dynamic object indentification after Z-collision
US6115047A (en) * 1996-07-01 2000-09-05 Sun Microsystems, Inc. Method and apparatus for implementing efficient floating point Z-buffering
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
US5751291A (en) * 1996-07-26 1998-05-12 Hewlett-Packard Company System and method for accelerated occlusion culling
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
DE19708237A1 (de) * 1997-02-28 1998-09-03 Sp3D Chip Design Gmbh Verfahren und Vorrichtung zum Ablegen dreidimensionaler Bilddaten in einem Rahmenpufferspeicher
US6166743A (en) * 1997-03-19 2000-12-26 Silicon Magic Corporation Method and system for improved z-test during image rendering
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
JPH11203501A (ja) * 1998-01-14 1999-07-30 Sega Enterp Ltd 画像処理装置及び画像処理方法
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
WO2000004494A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing system with multiple strip breakers
US7375727B1 (en) 1998-07-22 2008-05-20 Nvidia Corporation System, method and computer program product for geometrically transforming geometric objects
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US7023437B1 (en) 1998-07-22 2006-04-04 Nvidia Corporation System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6636215B1 (en) 1998-07-22 2003-10-21 Nvidia Corporation Hardware-assisted z-pyramid creation for host-based occlusion culling
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6285375B1 (en) 1999-02-05 2001-09-04 International Business Machines Corporation Algorithm to transform generalized polygons to trapezoids
JP3350473B2 (ja) 1999-03-17 2002-11-25 富士通株式会社 オクルージョンカリングを行う3次元グラフィックス描画装置および方法
US6344852B1 (en) 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
JP2001084405A (ja) * 1999-09-16 2001-03-30 Sega Corp ポリゴン画像形成方法及び、これを用いた画像処理装置
TW451166B (en) * 1999-10-21 2001-08-21 Silicon Integrated Sys Corp A pipeline bubble extruder and its method
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
US6686924B1 (en) * 2000-02-02 2004-02-03 Ati International, Srl Method and apparatus for parallel processing of geometric aspects of video graphics data
US6724394B1 (en) * 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
EP1306811A1 (en) * 2001-10-25 2003-05-02 STMicroelectronics Limited Triangle identification buffer
EP1306810A1 (en) * 2001-10-25 2003-05-02 STMicroelectronics Limited Triangle identification buffer
US6731288B2 (en) * 2002-03-01 2004-05-04 3Dlabs Inc., Ltd. Graphics engine with isochronous context switching
AU2003903448A0 (en) * 2003-06-26 2003-07-17 Canon Kabushiki Kaisha A method for tracking depths in a scanline based raster image processor
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US20050195186A1 (en) * 2004-03-02 2005-09-08 Ati Technologies Inc. Method and apparatus for object based visibility culling
US8411105B1 (en) * 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
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
US7538773B1 (en) 2004-05-14 2009-05-26 Nvidia Corporation Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US8711155B2 (en) * 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
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
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US7595806B1 (en) 2004-08-03 2009-09-29 Nvidia Corporation Method and system for implementing level of detail filtering in a cube mapping application
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
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US9563980B2 (en) * 2005-11-18 2017-02-07 Autodesk, Inc. Grip manipulatable shadows in 3D models
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
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
GB0810311D0 (en) * 2008-06-05 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US8395619B1 (en) * 2008-10-02 2013-03-12 Nvidia Corporation System and method for transferring pre-computed Z-values between GPUs
US10157492B1 (en) 2008-10-02 2018-12-18 Nvidia Corporation System and method for transferring pre-computed Z-values between GPUS
US20100128038A1 (en) * 2008-11-25 2010-05-27 Sony Computer Entertainment America Inc. Method and apparatus for interpolating color and direction as one entity in computer graphics
US8355022B2 (en) * 2008-11-25 2013-01-15 Sony Computer Entertainment America Llc Method and apparatus for aggregating light sources per-vertex in computer graphics
US9256514B2 (en) 2009-02-19 2016-02-09 Nvidia Corporation Debugging and perfomance analysis of applications
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US20140098096A1 (en) * 2012-10-08 2014-04-10 Nvidia Corporation Depth texture data structure for rendering ambient occlusion and method of employment thereof
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
US9477575B2 (en) 2013-06-12 2016-10-25 Nvidia Corporation Method and system for implementing a multi-threaded API stream replay
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
TW201513978A (zh) 2013-10-03 2015-04-16 Chang-Xun Chen 能連動開閤的工具收納裝置
US9858708B2 (en) * 2014-09-10 2018-01-02 Microsoft Technology Licensing, Llc Convex polygon clipping during rendering
CN108040391B (zh) * 2017-12-01 2024-05-07 艾欧创想智能科技(武汉)有限公司 调节路灯系统中的路灯色温的方法、路灯系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535883A (ja) * 1991-07-30 1993-02-12 Matsushita Electric Ind Co Ltd 三次元画像生成方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3275900D1 (en) * 1981-08-21 1987-05-07 Nat Res Dev Blood pressure measurement
US4594673A (en) * 1983-06-28 1986-06-10 Gti Corporation Hidden surface processor
SE445154B (sv) * 1985-07-08 1986-06-02 Ibm Svenska Ab Metod for att avlegsna dolda linjer
US4928250A (en) * 1986-07-02 1990-05-22 Hewlett-Packard Company System for deriving radiation images
US4924414A (en) * 1986-09-24 1990-05-08 Daikin Industries, Ltd. Apparatus and method for obtaining priority numbers for drawing figures forming a display figure
JPH0831139B2 (ja) * 1987-09-29 1996-03-27 ファナック株式会社 形状の陰線処理方法
US4855938A (en) * 1987-10-30 1989-08-08 International Business Machines Corporation Hidden line removal method with modified depth buffer
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US5086496A (en) * 1988-05-02 1992-02-04 Arch Development Corporation Method for hidden line and surface removal in a three dimensional display
JPH0727581B2 (ja) * 1988-09-09 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 図形処理装置
US5249264A (en) * 1988-11-14 1993-09-28 International Business Machines Corporation Image display method and apparatus
US5081698A (en) * 1989-02-14 1992-01-14 Intel Corporation Method and apparatus for graphics display data manipulation
US5043921A (en) * 1989-10-23 1991-08-27 International Business Machines Corporation High speed Z-buffer control
US5031117A (en) * 1990-02-13 1991-07-09 International Business Machines Corporation Prioritization scheme for enhancing the display of ray traced images
US5299298A (en) * 1991-02-28 1994-03-29 Hewlett-Packard Company Accelerated shadow testing method for three dimensional graphics rendering system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535883A (ja) * 1991-07-30 1993-02-12 Matsushita Electric Ind Co Ltd 三次元画像生成方法

Also Published As

Publication number Publication date
TW241196B (ja) 1995-02-21
US5613050A (en) 1997-03-18
JPH07141526A (ja) 1995-06-02
EP0606685A1 (en) 1994-07-20

Similar Documents

Publication Publication Date Title
JP2769427B2 (ja) 一連のグラフィック・プリミティブ用のデータを処理するための方法
US7081895B2 (en) Systems and methods of multi-pass data processing
US4625289A (en) Computer graphics system of general surface rendering by exhaustive sampling
US6646639B1 (en) Modified method and apparatus for improved occlusion culling in graphics systems
US20200134913A1 (en) Variable rate shading
US7969436B1 (en) System, method and computer program product for transforming a polynomial equation from a coordinate frame of one tile to a coordinate frame of another tile at a finer level of a hierachy
US6891533B1 (en) Compositing separately-generated three-dimensional images
US10957082B2 (en) Method of and apparatus for processing graphics
US7023437B1 (en) System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6038031A (en) 3D graphics object copying with reduced edge artifacts
US5963210A (en) Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator
US5222205A (en) Method for generating addresses to textured graphics primitives stored in rip maps
US5307450A (en) Z-subdivision for improved texture mapping
US7952579B1 (en) System, method and computer program product for geometrically transforming geometric objects
EP0358493A2 (en) Graphics system
US7126600B1 (en) Method and apparatus for high speed block mode triangle rendering
US6292192B1 (en) System and method for the direct rendering of curve bounded objects
US6924801B1 (en) Method and apparatus for early culling of occluded objects
US5926182A (en) Efficient rendering utilizing user defined shields and windows
KR19990022627A (ko) 텍스쳐 매핑을 위한 방법 및 장치
KR20010012841A (ko) 화상 처리 장치 및 화상 처리 방법
US20080284780A1 (en) Method for enabling alpha-to-coverage transformation
US6707453B1 (en) Efficient rasterization of specular lighting in a computer graphics system
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
US7116333B1 (en) Data retrieval method and system