JPH11328438A - 高効率浮動小数点zバッファリングの方法および装置 - Google Patents
高効率浮動小数点zバッファリングの方法および装置Info
- Publication number
- JPH11328438A JPH11328438A JP11073848A JP7384899A JPH11328438A JP H11328438 A JPH11328438 A JP H11328438A JP 11073848 A JP11073848 A JP 11073848A JP 7384899 A JP7384899 A JP 7384899A JP H11328438 A JPH11328438 A JP H11328438A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate values
- value
- point
- floating
- graphics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 3−Dグラフィックスアクセラレ―タのZバ
ッファ値処理を高い数値精度を保ちながら効率良く行
う。 【解決手段】 グラフィックス・パイプライン内で処理
される所定のプリミティブの頂点に対応するZ値は、仮
数部と指数部を含む第1浮動少数点フォ―マットで表現
される。本発明の方法は、所定のプリミティブのZ値の
どれが指数部の最大値を持つかを決定し、所定のプリミ
ティブの最大指数値の確定に応答して共通Z指数値を生
成し、所定のプリミティブのZ値を仮数部が共通Z指数
値にスケーリングされている固定小数点フォ―マットに
変換する。ついで、固定小数点フォ―マットのZ値と共
通Z指数値を利用する第1の組のオペレ―ションの後、
Z値は第2浮動小数点フォ―マットに変換して戻され、
その後のオペレ―ションが続く。
ッファ値処理を高い数値精度を保ちながら効率良く行
う。 【解決手段】 グラフィックス・パイプライン内で処理
される所定のプリミティブの頂点に対応するZ値は、仮
数部と指数部を含む第1浮動少数点フォ―マットで表現
される。本発明の方法は、所定のプリミティブのZ値の
どれが指数部の最大値を持つかを決定し、所定のプリミ
ティブの最大指数値の確定に応答して共通Z指数値を生
成し、所定のプリミティブのZ値を仮数部が共通Z指数
値にスケーリングされている固定小数点フォ―マットに
変換する。ついで、固定小数点フォ―マットのZ値と共
通Z指数値を利用する第1の組のオペレ―ションの後、
Z値は第2浮動小数点フォ―マットに変換して戻され、
その後のオペレ―ションが続く。
Description
【0001】
【発明の属する技術分野】本出願は、Michael
F. Deeling によつて1996年7月1日に出
願され、本出願の譲受け人に譲渡された米国特許出願第
08/673,117号「Zバッファ・プリミティブの
高解像度描画を実現する方法と装置」の一部継続出願で
ある。
F. Deeling によつて1996年7月1日に出
願され、本出願の譲受け人に譲渡された米国特許出願第
08/673,117号「Zバッファ・プリミティブの
高解像度描画を実現する方法と装置」の一部継続出願で
ある。
【0002】本発明は、3Dグラフィックスに関し、特
に3Dグラフィックス・アクセラレ―タ処理用のパイプ
ライン内でのZバッファ値の処理に関する。
に3Dグラフィックス・アクセラレ―タ処理用のパイプ
ライン内でのZバッファ値の処理に関する。
【0003】
【従来の技術】現在の三次元コンピュ―タ・グラフィッ
クス技術は、ジオメトリを広範に使用して三次元物体を
記述する。デスプレイされる複雑で滑らかな物体表面
は、高度の抽象化を用いて表現される。詳細な表面ジオ
メトリは、テクスチャ・マップを用いて描画されるが、
より現実感を与えるためには、未処理のジオメトリ、通
常は三角形プリミティブの形のジオメトリが必要であ
る。現在のワ―クステ―ション・コンピュ―タ・システ
ムでは、一般には、位置、色(例えば、赤、青、緑およ
びオプションとして選べるα)およびこれらの三角形の
垂直成分が、浮動少数点数として表現される。Fole
y,van Dam等による論文「コンピュータ・グラ
フィックス:原理と実際」(第2版)には、三次元グラ
フィクスについてかなり詳細に一般的に説明されている
ので、もっと詳しい背景について知りたい人は、これを
調べるとよい。
クス技術は、ジオメトリを広範に使用して三次元物体を
記述する。デスプレイされる複雑で滑らかな物体表面
は、高度の抽象化を用いて表現される。詳細な表面ジオ
メトリは、テクスチャ・マップを用いて描画されるが、
より現実感を与えるためには、未処理のジオメトリ、通
常は三角形プリミティブの形のジオメトリが必要であ
る。現在のワ―クステ―ション・コンピュ―タ・システ
ムでは、一般には、位置、色(例えば、赤、青、緑およ
びオプションとして選べるα)およびこれらの三角形の
垂直成分が、浮動少数点数として表現される。Fole
y,van Dam等による論文「コンピュータ・グラ
フィックス:原理と実際」(第2版)には、三次元グラ
フィクスについてかなり詳細に一般的に説明されている
ので、もっと詳しい背景について知りたい人は、これを
調べるとよい。
【0004】図1は、従来技術のグラフィックス・シス
テム10を示すもので、例えば、ユ―ザのつくった像を
ディスプレイするためコンピュ―タ・システムの中で用
いられている。図に示されているように、グラフィック
ス・システム10は、システム・バス22を介してCP
U20からグラフィックス入力デ―タを受取る。グラフ
ィックス入力デ―タには、ディスプレイ装置30に三次
元物体を描画するために用いられる三角形プリミティブ
を表現する命令とデ―タが含まれている。一般には、グ
ラフィックス・システム10は、グラフィックス・アク
セラレ―タ装置14、フレ―ムバッファ用のランダム・
アクセス・メモリ16(3DRAMまたは他の型のメモ
リを用いて実現される)、およびビデオ・コントロ―ル
装置18を含む。グラフィックス・システム10からの
処理されたビデオは、次にモニタ―30に伝えられ、そ
のモニタ―が40および50のような画像を表示する。
テム10を示すもので、例えば、ユ―ザのつくった像を
ディスプレイするためコンピュ―タ・システムの中で用
いられている。図に示されているように、グラフィック
ス・システム10は、システム・バス22を介してCP
U20からグラフィックス入力デ―タを受取る。グラフ
ィックス入力デ―タには、ディスプレイ装置30に三次
元物体を描画するために用いられる三角形プリミティブ
を表現する命令とデ―タが含まれている。一般には、グ
ラフィックス・システム10は、グラフィックス・アク
セラレ―タ装置14、フレ―ムバッファ用のランダム・
アクセス・メモリ16(3DRAMまたは他の型のメモ
リを用いて実現される)、およびビデオ・コントロ―ル
装置18を含む。グラフィックス・システム10からの
処理されたビデオは、次にモニタ―30に伝えられ、そ
のモニタ―が40および50のような画像を表示する。
【0005】次に説明される本発明の関係する状況で
は、一般には、表示物体40および50は三次元の表面
を有し、通常、一つの物体の一部は他の物体の一部で隠
されている。例えば、図1では、物体40の一部は物体
50の一部の前にあり、したがって物体50の隠された
部分を視界から隠している。視界から隠されている物体
50の部分は、隠面と呼ばれる。
は、一般には、表示物体40および50は三次元の表面
を有し、通常、一つの物体の一部は他の物体の一部で隠
されている。例えば、図1では、物体40の一部は物体
50の一部の前にあり、したがって物体50の隠された
部分を視界から隠している。視界から隠されている物体
50の部分は、隠面と呼ばれる。
【0006】三次元物体を描画することで得られる臨場
感は、物体の目に見える部分と隠されている部分(例え
ば、隠面のある)とをすばやく計算することをはじめと
した多くの要素に依存している。このようにして、装置
14などのグラフィックス・アクセラレ―タにより、デ
ィスプレイされる各物体の隠面除去が行われる。グラフ
ィックス・アクセラレ―タ装置10と関連するZバッフ
ァ装置12には、例えば描画される各ピクセルのZ値、
例えば深さの値が格納されている。一つの所定のピクセ
ルに二以上の物体がマッピングされるので、視点から遠
く離れている物体が視点に近い物体の後ろに確実に投影
されるようにするためにZバッファ装置12が用いられ
る。例えば、物体50のあるピクセルのZ値は、そのZ
値が既に格納されているそのピクセルの画面位置のZ値
よりも見ている場所に近いときにだけ、Zバッファ12
に書かれなければならない。実際には、描画される現ピ
クセルの古いZ値を、バッファから読み出し、その現ピ
クセルの新しく作られたZ値と数値を比較する。比較の
結果によって、古いZ値および色フレ―ム・バッファ・
ピクセル値はそのまま残されるか、または新しく計算さ
れた値と置き換えられる。この概念は通常「Zバッファ
リング」と呼ばれる。
感は、物体の目に見える部分と隠されている部分(例え
ば、隠面のある)とをすばやく計算することをはじめと
した多くの要素に依存している。このようにして、装置
14などのグラフィックス・アクセラレ―タにより、デ
ィスプレイされる各物体の隠面除去が行われる。グラフ
ィックス・アクセラレ―タ装置10と関連するZバッフ
ァ装置12には、例えば描画される各ピクセルのZ値、
例えば深さの値が格納されている。一つの所定のピクセ
ルに二以上の物体がマッピングされるので、視点から遠
く離れている物体が視点に近い物体の後ろに確実に投影
されるようにするためにZバッファ装置12が用いられ
る。例えば、物体50のあるピクセルのZ値は、そのZ
値が既に格納されているそのピクセルの画面位置のZ値
よりも見ている場所に近いときにだけ、Zバッファ12
に書かれなければならない。実際には、描画される現ピ
クセルの古いZ値を、バッファから読み出し、その現ピ
クセルの新しく作られたZ値と数値を比較する。比較の
結果によって、古いZ値および色フレ―ム・バッファ・
ピクセル値はそのまま残されるか、または新しく計算さ
れた値と置き換えられる。この概念は通常「Zバッファ
リング」と呼ばれる。
【0007】グラフィックス・入力デ―タがグラフィッ
クス・アクセラレ―タ14に入力されると、ジオメトリ
・デ―タ(即ち、座標)が変換マトリックスを介してモ
デル座標から視点クリッピング座標に変換される。その
結果として得られたクリッピング座標は「同質」であ
り、通常のデカルト座標に加えて「W」座標を含むこと
を意味している。W座標は、視点から変換された点への
z軸に沿うスケーリングされた距離を示す。z軸は、同
じスケーリングされた距離を参照にするが、視点以外の
点を原点(一般には、前方クリッピング面の原点、また
は前方クリッピング面と後方クリッピング面の間の点)
とする距離である。透視分割に従って、Zの新しい値
(Z´)が数量Z/Wから得られる。ここで、ZとW
は、透視分割前の座標値を表す。正射影投影(この場合
には、視点からの距離の増加に従って、物体の大きさが
小さくならない)については、与えられた点のZ´値は
ワ―ルド座標系の点までの距離に正比例する。初期の三
次元コンピュ―タ・グラフィックス・システムは、大抵
この種の投影に関するものであった。これらの応用にお
いては、固定少数点または浮動少数点のいずれかの数値
演算を用いたZ値の数値表現が、その数値演算で得られ
る数値によく合っていた。
クス・アクセラレ―タ14に入力されると、ジオメトリ
・デ―タ(即ち、座標)が変換マトリックスを介してモ
デル座標から視点クリッピング座標に変換される。その
結果として得られたクリッピング座標は「同質」であ
り、通常のデカルト座標に加えて「W」座標を含むこと
を意味している。W座標は、視点から変換された点への
z軸に沿うスケーリングされた距離を示す。z軸は、同
じスケーリングされた距離を参照にするが、視点以外の
点を原点(一般には、前方クリッピング面の原点、また
は前方クリッピング面と後方クリッピング面の間の点)
とする距離である。透視分割に従って、Zの新しい値
(Z´)が数量Z/Wから得られる。ここで、ZとW
は、透視分割前の座標値を表す。正射影投影(この場合
には、視点からの距離の増加に従って、物体の大きさが
小さくならない)については、与えられた点のZ´値は
ワ―ルド座標系の点までの距離に正比例する。初期の三
次元コンピュ―タ・グラフィックス・システムは、大抵
この種の投影に関するものであった。これらの応用にお
いては、固定少数点または浮動少数点のいずれかの数値
演算を用いたZ値の数値表現が、その数値演算で得られ
る数値によく合っていた。
【0008】しかし、三次元のコンピュ―タ・グラフィ
ックスで透視投影(視点からの距離が増すにつれて大き
さが小さくなる)が採用されたが、歴史的に開発されて
来た基本的な式や数値表現は変えられないでおり、最早
使用される数値演算に満足に適合しなくなっていた。例
えば、透視投影では、ある点のZ’値はワ―ルド座標の
点までの距離の逆数に正比例する。従来技術で使用され
ていた式によって生成される画面空間(変換された)の
Z値はワ―ルド空間座標と次式で関係付けられる。
ックスで透視投影(視点からの距離が増すにつれて大き
さが小さくなる)が採用されたが、歴史的に開発されて
来た基本的な式や数値表現は変えられないでおり、最早
使用される数値演算に満足に適合しなくなっていた。例
えば、透視投影では、ある点のZ’値はワ―ルド座標の
点までの距離の逆数に正比例する。従来技術で使用され
ていた式によって生成される画面空間(変換された)の
Z値はワ―ルド空間座標と次式で関係付けられる。
【0009】
【数1】
【0010】ここで、Fはワ―ルド座標における前方ク
リッピング面までの距離であり、Bはワ―ルド座標にお
ける後方クリッピング面までの距離である。 式(1)
は、前方クリッピング面Fに近い点がほぼゼロに近い値
を持ち、後方クリッピング面Bに近い点がほぼ1に近い
値を持つように定義されていることに注意する必要があ
る。(僅かに異なる式を用いることで、前方および後方
のクリッピング面でZ値は1と−1または−1と1に近
づくようになる)。
リッピング面までの距離であり、Bはワ―ルド座標にお
ける後方クリッピング面までの距離である。 式(1)
は、前方クリッピング面Fに近い点がほぼゼロに近い値
を持ち、後方クリッピング面Bに近い点がほぼ1に近い
値を持つように定義されていることに注意する必要があ
る。(僅かに異なる式を用いることで、前方および後方
のクリッピング面でZ値は1と−1または−1と1に近
づくようになる)。
【0011】BがFより遥かに大きいときには、式
(1)は、
(1)は、
【0012】
【数2】
【0013】となる。比B/Fは、Zバッファリングに
おいて重要な役割をする。透視投影グラフィックスの初
期においては、比B/Fは一般に小さな整数であった。
一般に、前方クリッピング面は視点から2フィ―トであ
り、後方クリッピング面は4から10フィ―ト離れてい
たものだった。この座標は、数フィ―トの目に見える大
きさの三次元物体を見るには充分であつた。
おいて重要な役割をする。透視投影グラフィックスの初
期においては、比B/Fは一般に小さな整数であった。
一般に、前方クリッピング面は視点から2フィ―トであ
り、後方クリッピング面は4から10フィ―ト離れてい
たものだった。この座標は、数フィ―トの目に見える大
きさの三次元物体を見るには充分であつた。
【0014】しかし、極く最近の現実感のある大規模な
仮想環境では、前方クリッピング面は見る人の鼻からほ
んの数インチであり、後方クリッピング面は数マイル離
れていることが要求されている。この構成については、
B/F比は結果的に非常に大きくなる。例えば、6イン
チにある前方クリッピング面と10マイル離れている後
方クリッピング面では、B/F比は100,000を越
える。6インチと600フィ―トの比較的小さな範囲で
も、まだ1,000を超える比になる。
仮想環境では、前方クリッピング面は見る人の鼻からほ
んの数インチであり、後方クリッピング面は数マイル離
れていることが要求されている。この構成については、
B/F比は結果的に非常に大きくなる。例えば、6イン
チにある前方クリッピング面と10マイル離れている後
方クリッピング面では、B/F比は100,000を越
える。6インチと600フィ―トの比較的小さな範囲で
も、まだ1,000を超える比になる。
【0015】一般的な従来技術のZバッファのでは、B
/F比が大きいと、Z値を表す数値の精度に問題が生じ
る。B/F=1,024である特定のケ―スを考える。
(1)式を用いる画面空間では、この範囲の後ろ半分
(後方クリッピング面に向かって中間を越えた範囲)に
位置する点は、どの点も距離を表す他のビットが始まる
前に10個の先行する1の数字を持っている。例え
ば、.1111111111xxx…xxxの形であ
る。したがつて、ワ―ルド座標では、B/2とBの間の
値を表現するためにnビットの精度を必要とする任意の
点は、(1)式を用いれば、画面空間の表現に10+n
ビットの精度を必要とすることになる。一般には、
(1)式は、画面空間の表現に最高限度約(log2
(B/F))の追加ビットを必要とする。例えば、10
0,000のB/F比は17ビットの追加を必要とす
る。上記の表現上のロスは、固定小数点表示にも浮動小
数点表示にも影響を与えることに注意する必要がある。
浮動少数点表示は先行するビットがゼロである値を符号
化するときには有効であるが、後方クリッピング面に近
い点の画面空間のZ値は1にマップされるので、生成さ
れる余剰ビットは先頭の1ビットである。
/F比が大きいと、Z値を表す数値の精度に問題が生じ
る。B/F=1,024である特定のケ―スを考える。
(1)式を用いる画面空間では、この範囲の後ろ半分
(後方クリッピング面に向かって中間を越えた範囲)に
位置する点は、どの点も距離を表す他のビットが始まる
前に10個の先行する1の数字を持っている。例え
ば、.1111111111xxx…xxxの形であ
る。したがつて、ワ―ルド座標では、B/2とBの間の
値を表現するためにnビットの精度を必要とする任意の
点は、(1)式を用いれば、画面空間の表現に10+n
ビットの精度を必要とすることになる。一般には、
(1)式は、画面空間の表現に最高限度約(log2
(B/F))の追加ビットを必要とする。例えば、10
0,000のB/F比は17ビットの追加を必要とす
る。上記の表現上のロスは、固定小数点表示にも浮動小
数点表示にも影響を与えることに注意する必要がある。
浮動少数点表示は先行するビットがゼロである値を符号
化するときには有効であるが、後方クリッピング面に近
い点の画面空間のZ値は1にマップされるので、生成さ
れる余剰ビットは先頭の1ビットである。
【0016】前方クリッピング面Fが視点から5cmの
ところにある別な例を考える。但し、後方クリッピング
面Bは視点から100,000cm(1km)に位置し
ている。これらのZバッファ値を表すために従来の固定
少数点フォ―マットを使用すると、前方および後方のク
リッピング面で個々のステップに非常に大きな不一致が
生じる。一つ実施例では、24ビットの固定小数点Zバ
ッファは、最初の1cmでは2,796,324ステッ
プを持つが、最後の10,000cmではたったの94
ステップである(106.4cm/ステップ)。一方、
別な実施の形態で浮動小数点(28ビット)表示を使用
すると、改善が見られる(最初の1cmでは44,74
1,478ステップ、最後の10,000cmでは14
90ステップ)けれども、大きなF/B比についてさら
に高い精度が必要である。
ところにある別な例を考える。但し、後方クリッピング
面Bは視点から100,000cm(1km)に位置し
ている。これらのZバッファ値を表すために従来の固定
少数点フォ―マットを使用すると、前方および後方のク
リッピング面で個々のステップに非常に大きな不一致が
生じる。一つ実施例では、24ビットの固定小数点Zバ
ッファは、最初の1cmでは2,796,324ステッ
プを持つが、最後の10,000cmではたったの94
ステップである(106.4cm/ステップ)。一方、
別な実施の形態で浮動小数点(28ビット)表示を使用
すると、改善が見られる(最初の1cmでは44,74
1,478ステップ、最後の10,000cmでは14
90ステップ)けれども、大きなF/B比についてさら
に高い精度が必要である。
【0017】Z値の従来技術による数値表現を使用する
と、可視的な人工的な物が生じることになる。Zバッフ
ァのデ―タを適正に計算すると、像40および50は図
1に示すように表示され、リンゴ40は箱50の前にあ
る。図2は、これら二つの画像の適正に投影された画像
表現を図示する。しかし、Zバッファのデ―タが非常に
不正確になるZ/Fの距離の状況では、エラ―が生じ
る。このようにして、図3において、箱50の隠面のた
めの下側のピクセル・デ―タを上書きせずに、従来技術
のZバッファ装置12は誤って物体40と物体50との
ピクセルを同時にペイントすることを決めてしまった。
この「Zバッファリングの競合」によって、望ましくな
い重ね合せの領域が生じている。図4は、間違ったZバ
ッファリングの結果として生じたさらに別の型のディス
プレイ・エラ―を示す。図4では、箱50の一部が間違
ってリンゴ40の一部の前にはっきりと現れている。
と、可視的な人工的な物が生じることになる。Zバッフ
ァのデ―タを適正に計算すると、像40および50は図
1に示すように表示され、リンゴ40は箱50の前にあ
る。図2は、これら二つの画像の適正に投影された画像
表現を図示する。しかし、Zバッファのデ―タが非常に
不正確になるZ/Fの距離の状況では、エラ―が生じ
る。このようにして、図3において、箱50の隠面のた
めの下側のピクセル・デ―タを上書きせずに、従来技術
のZバッファ装置12は誤って物体40と物体50との
ピクセルを同時にペイントすることを決めてしまった。
この「Zバッファリングの競合」によって、望ましくな
い重ね合せの領域が生じている。図4は、間違ったZバ
ッファリングの結果として生じたさらに別の型のディス
プレイ・エラ―を示す。図4では、箱50の一部が間違
ってリンゴ40の一部の前にはっきりと現れている。
【0018】上記の解像度損の問題は、特にB/F比に
依存している。比B/FがMであるとする。即ち、前方
クリッピング面が距離Fにあり、後方クリッピング面が
距離MFにあるとする。ここで、後方クリツピング面ま
での距離が2倍になったとする(すなわち、後方クリッ
ピング面が今は距離2MFにある)。このように距離が
2倍になる毎に、分解能はさらに1ビツト失われる。そ
して、残りのビットが非常に少なくてなると、Zバッフ
ァの半分からずっと遠くの残りの距離(例えばMFと2
MFの間)を分解することが出来なくなる。最高nビッ
トのZ表示を仮定すると、1Fと2Fの間の距離にある
点は、n−1ビットの精度で表される。2Fと4Fの間
にある点は、せいぜいn−2の精度で表される。このよ
うにして、残りビットでは覆い隠す物体間の距離を十分
適切に分解することができなくなり、隠面の間違った計
算やディスプレィを引き起こすようになる。
依存している。比B/FがMであるとする。即ち、前方
クリッピング面が距離Fにあり、後方クリッピング面が
距離MFにあるとする。ここで、後方クリツピング面ま
での距離が2倍になったとする(すなわち、後方クリッ
ピング面が今は距離2MFにある)。このように距離が
2倍になる毎に、分解能はさらに1ビツト失われる。そ
して、残りのビットが非常に少なくてなると、Zバッフ
ァの半分からずっと遠くの残りの距離(例えばMFと2
MFの間)を分解することが出来なくなる。最高nビッ
トのZ表示を仮定すると、1Fと2Fの間の距離にある
点は、n−1ビットの精度で表される。2Fと4Fの間
にある点は、せいぜいn−2の精度で表される。このよ
うにして、残りビットでは覆い隠す物体間の距離を十分
適切に分解することができなくなり、隠面の間違った計
算やディスプレィを引き起こすようになる。
【0019】この概念は、図5で説明されている。前方
および後方のクリッピング面はそれぞれFとBとして示
されている。図5の左にある「0」が視点を表す。即
ち、ディスプレィされる物体の描写を観察する人の目で
ある。図1に示す物体40と50も図5に描かれてい
る。
および後方のクリッピング面はそれぞれFとBとして示
されている。図5の左にある「0」が視点を表す。即
ち、ディスプレィされる物体の描写を観察する人の目で
ある。図1に示す物体40と50も図5に描かれてい
る。
【0020】
【発明が解決しようとする課題】上で引用した出願人の
原特許出願は、従来技術のシステムで見られる数値精度
の問題がないZバッファリング法と装置を提供してい
る。原出願で開示されているZ値は(1)式とは異なる
式で計算され、浮動小数点で表現されている。このZバ
ッファリングの優れていることは、遠方に描写される物
体にビットの非直線性喪失を課さないことである。
原特許出願は、従来技術のシステムで見られる数値精度
の問題がないZバッファリング法と装置を提供してい
る。原出願で開示されているZ値は(1)式とは異なる
式で計算され、浮動小数点で表現されている。このZバ
ッファリングの優れていることは、遠方に描写される物
体にビットの非直線性喪失を課さないことである。
【0021】しかし、この新しい浮動小数点表示をグラ
フィックス・パイプライン全体に適用することは、専用
の浮動小数点ハ―ドウェアを必要とするので費用がかか
る。付加された精度は描画パイプラインの大部分では使
用されないので、新しいZバッファリング表示の利点よ
りも多分に欠点の方が大きくなる。
フィックス・パイプライン全体に適用することは、専用
の浮動小数点ハ―ドウェアを必要とするので費用がかか
る。付加された精度は描画パイプラインの大部分では使
用されないので、新しいZバッファリング表示の利点よ
りも多分に欠点の方が大きくなる。
【0022】したがって、余分に必要とされるハ―ドウ
ェアを最小にしながら、原特許出願で開示された浮動小
数点Zバッファ表示の利点を得ることが望ましい。
ェアを最小にしながら、原特許出願で開示された浮動小
数点Zバッファ表示の利点を得ることが望ましい。
【0023】
【発明を解決するための手段】上に概説した課題は、本
発明によるZ値処理の方法によって大部分が解決され
る。Z値は、グラフィックス・パイプライン内で処理さ
れる所定のプリィミティブの頂点に対応する。パイプラ
インで受取られたZ値は、仮数部と指数部を含む第1浮
動小数点フォ―マット(例えば、IEEE浮動小数点フ
ォ―マット)で表現される。本発明の方法は、所定のプ
リィミティブのZ値のどれが最も大きな指数部の値を持
っているかを決定するステップを含む。一つの実施の形
態では、これは、現指数値と現最大指数値との比較を行
って、全てのZ値を試験するステップを含む。本発明の
方法は、実質的に、その所定のプリィミティブの最も大
きな指数値を決定することに応答して共通のZ指数値を
生成するステップを含む。一つの実施の形態では、共通
の指数値は最も大きな指数値から或る定数値を引くこと
で生成される。次に、本発明の方法は、所定のプリィミ
ティブのZ値を仮数部が共通のZ指数値にスケーリング
される固定小数点フォ―マットに変換するステップを含
む。次に、その変換された値は、そのZ値(固定小数点
フォ―マットで表されている)と共通指数値とを利用す
る第1の組のオペレ―ションをグラフィックス処理が続
けるとき、プリィミティブと共に送られる。この第1の
組のオペレ―ションの後で、Z値は第2浮動小数点フォ
―マットに変換して戻される。次に、第2の組のグラフ
ィックス・オペレ―ション(即ち、隠面除去)が、この
第2浮動小数点フォ―マットを用いて行われる。
発明によるZ値処理の方法によって大部分が解決され
る。Z値は、グラフィックス・パイプライン内で処理さ
れる所定のプリィミティブの頂点に対応する。パイプラ
インで受取られたZ値は、仮数部と指数部を含む第1浮
動小数点フォ―マット(例えば、IEEE浮動小数点フ
ォ―マット)で表現される。本発明の方法は、所定のプ
リィミティブのZ値のどれが最も大きな指数部の値を持
っているかを決定するステップを含む。一つの実施の形
態では、これは、現指数値と現最大指数値との比較を行
って、全てのZ値を試験するステップを含む。本発明の
方法は、実質的に、その所定のプリィミティブの最も大
きな指数値を決定することに応答して共通のZ指数値を
生成するステップを含む。一つの実施の形態では、共通
の指数値は最も大きな指数値から或る定数値を引くこと
で生成される。次に、本発明の方法は、所定のプリィミ
ティブのZ値を仮数部が共通のZ指数値にスケーリング
される固定小数点フォ―マットに変換するステップを含
む。次に、その変換された値は、そのZ値(固定小数点
フォ―マットで表されている)と共通指数値とを利用す
る第1の組のオペレ―ションをグラフィックス処理が続
けるとき、プリィミティブと共に送られる。この第1の
組のオペレ―ションの後で、Z値は第2浮動小数点フォ
―マットに変換して戻される。次に、第2の組のグラフ
ィックス・オペレ―ション(即ち、隠面除去)が、この
第2浮動小数点フォ―マットを用いて行われる。
【0024】所定のプリィミティブの全ての頂点に単一
の指数を用いることで、Z値をより効率的に表現するこ
とができ、グラフィックス・パイプラインの性能が高め
られる結果になる。効率は、等価の浮動小数点フォーマ
ットよりもコンパクトな中間の固定小数点フォ―マット
を用いることで更に向上する。最後に、一つの実施の形
態では、Z値はWf/Wの式を用いて表される。従来技
術のシステムとは異なって、この表現はF/B比が大き
くなる遠方の領域の点にビットの非直線性喪失を課すこ
とがない。
の指数を用いることで、Z値をより効率的に表現するこ
とができ、グラフィックス・パイプラインの性能が高め
られる結果になる。効率は、等価の浮動小数点フォーマ
ットよりもコンパクトな中間の固定小数点フォ―マット
を用いることで更に向上する。最後に、一つの実施の形
態では、Z値はWf/Wの式を用いて表される。従来技
術のシステムとは異なって、この表現はF/B比が大き
くなる遠方の領域の点にビットの非直線性喪失を課すこ
とがない。
【0025】次の図面と共に、好ましい実施の形態につ
いての下記の詳細な説明を考察することで、本発明を一
層よく理解することができる。
いての下記の詳細な説明を考察することで、本発明を一
層よく理解することができる。
【0026】
【発明の実施の形態】図6 コンピュ―タ・システム 図6において、本発明による三次元(3−D)グラフィ
ックス・アクセラレ―タを含むコンピュ―タ・システム
80が示されている。図に示されるように、コンピュ―
タ・システム80は、システム装置82と、そのシステ
ム装置82に連結されたビデオ・モニタまたはディスプ
レイ装置84とを備える。ディスプレイ装置84は、任
意の様々の型のディスプレイ・モニタまたは装置でよ
い。キ―ボ―ド86および/またはマウス88、または
その他の入力装置を含む様々の入力装置をコンピュ―タ
・システムに接続することができる。アプリケ―ション
・ソフトウェアがコンピュ―タ・システム80で実行さ
れて、ビデオ・モニタ84に3−Dグラフィックス物体
がディスプレイされる。更に下記で説明されるように、
コンピュ―タ・システム80の3−Dグラフィックス・
アクセラレ―タは、ディスプレイ装置84に三次元グラ
フィックスの物体を描画するために使用されるプリィミ
ティブに対応するジオメトリ・デ―タのZ値を処理する
改良された機能を含む。
ックス・アクセラレ―タを含むコンピュ―タ・システム
80が示されている。図に示されるように、コンピュ―
タ・システム80は、システム装置82と、そのシステ
ム装置82に連結されたビデオ・モニタまたはディスプ
レイ装置84とを備える。ディスプレイ装置84は、任
意の様々の型のディスプレイ・モニタまたは装置でよ
い。キ―ボ―ド86および/またはマウス88、または
その他の入力装置を含む様々の入力装置をコンピュ―タ
・システムに接続することができる。アプリケ―ション
・ソフトウェアがコンピュ―タ・システム80で実行さ
れて、ビデオ・モニタ84に3−Dグラフィックス物体
がディスプレイされる。更に下記で説明されるように、
コンピュ―タ・システム80の3−Dグラフィックス・
アクセラレ―タは、ディスプレイ装置84に三次元グラ
フィックスの物体を描画するために使用されるプリィミ
ティブに対応するジオメトリ・デ―タのZ値を処理する
改良された機能を含む。
【0027】図7 コンピュ―タ・システムのブロック
図 さて、図7において、図6のコンピュ―タ・システムを
説明する簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュ―タ・システム
の要素は、便宜上、示されていない。図に示すように、
コンピュ―タ・システム80は、高速バスまたはシステ
ム・バス104に連結された中央処理装置(CPU)1
02を含む。システム・メモリ106も、その高速バス
104に連結されることが好ましい。
図 さて、図7において、図6のコンピュ―タ・システムを
説明する簡単化されたブロック図が示されている。本発
明を理解するために必要でないコンピュ―タ・システム
の要素は、便宜上、示されていない。図に示すように、
コンピュ―タ・システム80は、高速バスまたはシステ
ム・バス104に連結された中央処理装置(CPU)1
02を含む。システム・メモリ106も、その高速バス
104に連結されることが好ましい。
【0028】ホスト処理装置102は、コンピュ―タ処
理装置、多重処理装置およびCPUの様々な型のいずれ
であってもよい。システム・メモリ106は、ランダム
・アクセス・メモリおよび大容量記憶装置をはじめとす
るメモリ・サブシステムの様々な型のいづれであっても
よい。システム・バスまたはホスト・バス104は、専
用サブシステムは勿論のこと、ホスト処理装置、CPU
およびメモリ・サブシステムの間の通信用バス、または
通信用のホスト・コンピュ―タ・バスのどのような型の
ものであつてもよい。好ましい実施の形態では、ホスト
・バス104は、83MHzで動作する64ビット・バ
スであるUPAバスである。
理装置、多重処理装置およびCPUの様々な型のいずれ
であってもよい。システム・メモリ106は、ランダム
・アクセス・メモリおよび大容量記憶装置をはじめとす
るメモリ・サブシステムの様々な型のいづれであっても
よい。システム・バスまたはホスト・バス104は、専
用サブシステムは勿論のこと、ホスト処理装置、CPU
およびメモリ・サブシステムの間の通信用バス、または
通信用のホスト・コンピュ―タ・バスのどのような型の
ものであつてもよい。好ましい実施の形態では、ホスト
・バス104は、83MHzで動作する64ビット・バ
スであるUPAバスである。
【0029】本発明による3−Dグラフィックス・アク
セラレ―タ112は、高速メモリ・バス104に連結さ
れている。3−Dグラフィックス・アクセラレ―タ11
2は、例えばクロスバ−スイッチまたはその他のバス連
結性論理によってバス104に連結してもよい。当技術
分野では周知のように、様々のその他の周辺装置、また
はその他のバスを高速メモリ・バス104に接続するこ
とができる。3−Dグラフィックス・アクセラレ―タ
は、希望するように、様々のバスのどれにでも連結する
ことができることに留意する必要がある。図に示すよう
に、ビデオ・モニタまたはディスプレイ装置84が、3
−Dグラフィックス・アクセラレ―タ112に接続す
る。グラフィックス・アクセラレ―タ112について、
下記に一層詳細に説明する。
セラレ―タ112は、高速メモリ・バス104に連結さ
れている。3−Dグラフィックス・アクセラレ―タ11
2は、例えばクロスバ−スイッチまたはその他のバス連
結性論理によってバス104に連結してもよい。当技術
分野では周知のように、様々のその他の周辺装置、また
はその他のバスを高速メモリ・バス104に接続するこ
とができる。3−Dグラフィックス・アクセラレ―タ
は、希望するように、様々のバスのどれにでも連結する
ことができることに留意する必要がある。図に示すよう
に、ビデオ・モニタまたはディスプレイ装置84が、3
−Dグラフィックス・アクセラレ―タ112に接続す
る。グラフィックス・アクセラレ―タ112について、
下記に一層詳細に説明する。
【0030】図8 グラフィックス・アクセラレ―タ さて、図8において、本発明の好ましい実施の形態によ
るグラフィックス・アクセラレ―タ112を説明するブ
ロック図が示されている。図に示すように、グラフィッ
クス・アクセラレ―タ112は、原理的にはコマンド・
ブロック142、浮動小数点処理装置152A〜152
Fの組、描画処理装置172Aおよび172B、3DR
AMより構成されるフレ―ムバッファ100およびラン
ダム・アクセス・メモリ/ディジタル−アナログ変換器
(RAMDAC)196より構成される。
るグラフィックス・アクセラレ―タ112を説明するブ
ロック図が示されている。図に示すように、グラフィッ
クス・アクセラレ―タ112は、原理的にはコマンド・
ブロック142、浮動小数点処理装置152A〜152
Fの組、描画処理装置172Aおよび172B、3DR
AMより構成されるフレ―ムバッファ100およびラン
ダム・アクセス・メモリ/ディジタル−アナログ変換器
(RAMDAC)196より構成される。
【0031】図に示すように、グラフィックス・アクセ
ラレ―タ112は、メモリ・バス104とのインタ―フ
ェイスを行うコマンド・ブロック142を含む。コマン
ド・ブロック142は、グラフィックス・アクセラレ―
タ112のホスト・バス104に対するインタ―フェイ
スを行い、グラフィックス・アクセラレ―タ内で他のブ
ロックまたはチップの間のデ―タ転送を制御する。ま
た、コマンド・ブロック142は、三角形デ―タおよび
ベクトル・デ―タの前処理を行い、ジオメトリ・デ―タ
の伸長を行う。
ラレ―タ112は、メモリ・バス104とのインタ―フ
ェイスを行うコマンド・ブロック142を含む。コマン
ド・ブロック142は、グラフィックス・アクセラレ―
タ112のホスト・バス104に対するインタ―フェイ
スを行い、グラフィックス・アクセラレ―タ内で他のブ
ロックまたはチップの間のデ―タ転送を制御する。ま
た、コマンド・ブロック142は、三角形デ―タおよび
ベクトル・デ―タの前処理を行い、ジオメトリ・デ―タ
の伸長を行う。
【0032】コマンド・ブロック142は、複数の浮動
小数点処理装置152A〜152Fとのインタ―フェイ
スを行う。好ましくは、グラフィックス・アクセラレ―
タ112は、図に示すように152A〜152Fの表示
のついている6個までの浮動小数点処理装置を含む。浮
動小数点処理装置152A〜152Fは、高レベルの描
画コマンドを受け取り、画面上に三次元の物体を描画す
るための三角形、線などのグラフィックス・プリィミテ
ィブを生成する。浮動小数点処理装置152A〜152
Fは、受取ったジオメトリ・デ―タについて変換、クリ
ッピング、面確定、ライティングおよびセットアップの
オペレ―ションを行う。浮動小数点処理装置152A〜
152Fの各々は、それぞれのメモリ153A〜153
Fに接続している。メモリ153A〜153Fは、32
k×36ビットのSRAMであることが好ましく、マイ
クロコ―ドおよびデ―タの記憶のために使用される。
小数点処理装置152A〜152Fとのインタ―フェイ
スを行う。好ましくは、グラフィックス・アクセラレ―
タ112は、図に示すように152A〜152Fの表示
のついている6個までの浮動小数点処理装置を含む。浮
動小数点処理装置152A〜152Fは、高レベルの描
画コマンドを受け取り、画面上に三次元の物体を描画す
るための三角形、線などのグラフィックス・プリィミテ
ィブを生成する。浮動小数点処理装置152A〜152
Fは、受取ったジオメトリ・デ―タについて変換、クリ
ッピング、面確定、ライティングおよびセットアップの
オペレ―ションを行う。浮動小数点処理装置152A〜
152Fの各々は、それぞれのメモリ153A〜153
Fに接続している。メモリ153A〜153Fは、32
k×36ビットのSRAMであることが好ましく、マイ
クロコ―ドおよびデ―タの記憶のために使用される。
【0033】浮動小数点処理装置152A〜Fの各々
は、二つの描画処理装置172Aと172Bに接続され
る。グラフィックス・アクセラレ―タ112は、二つの
描画処理装置172Aと172Bを含むのが望ましい
が、もつと多くのまたはもっと少ない数の描画装置も使
用することができる。描画処理装置172Aと172B
は、様々のグラフィックス・プリィミティブの画面空間
レンダリングを行い、完成されたピクセルを順番に処理
して3DRAMの配列に入れ又は詰め込むように働く。
また、描画処理装置172Aと172Bは、フレ―ムバ
ッファ100用の3DRAMの制御チップとしても機能
する。描画処理装置172Aと172Bは、浮動小数点
処理装置152A〜152Fの一つから受信した描画パ
ケットにしたがって、またはコマンド処理装置142か
ら受信したダイレクト・ポ―ト・パケットにしたがつて
同時に一つの画像をフレ―ムバッファ100に描画す
る。
は、二つの描画処理装置172Aと172Bに接続され
る。グラフィックス・アクセラレ―タ112は、二つの
描画処理装置172Aと172Bを含むのが望ましい
が、もつと多くのまたはもっと少ない数の描画装置も使
用することができる。描画処理装置172Aと172B
は、様々のグラフィックス・プリィミティブの画面空間
レンダリングを行い、完成されたピクセルを順番に処理
して3DRAMの配列に入れ又は詰め込むように働く。
また、描画処理装置172Aと172Bは、フレ―ムバ
ッファ100用の3DRAMの制御チップとしても機能
する。描画処理装置172Aと172Bは、浮動小数点
処理装置152A〜152Fの一つから受信した描画パ
ケットにしたがって、またはコマンド処理装置142か
ら受信したダイレクト・ポ―ト・パケットにしたがつて
同時に一つの画像をフレ―ムバッファ100に描画す
る。
【0034】浮動小数点処理装置152A〜152Fの
各々は、二つの描画処理装置172A、172Bに同じ
デ―タを同報するように動作するのが好ましい。言い換
えれば、各浮動小数点処理装置152A〜152Fから
来る両方の組のデ―タ・ライン上に常に同じデ―タが存
在する。したがって、浮動小数点処理装置152A〜1
52Fがデ―タを転送する時には、該浮動小数点処理装
置は、描画処理装置172Aと172Bに至る両方のF
Dバスの部分に同じデ―タを転送する。
各々は、二つの描画処理装置172A、172Bに同じ
デ―タを同報するように動作するのが好ましい。言い換
えれば、各浮動小数点処理装置152A〜152Fから
来る両方の組のデ―タ・ライン上に常に同じデ―タが存
在する。したがって、浮動小数点処理装置152A〜1
52Fがデ―タを転送する時には、該浮動小数点処理装
置は、描画処理装置172Aと172Bに至る両方のF
Dバスの部分に同じデ―タを転送する。
【0035】それぞれの描画処理装置172Aと172
Bの各々は、フレ―ムバッファ100に連結され。フレ
―ムバッファ100は3DRAMメモリの四つのバンク
192A,Bおよび194A,Bを備える。描画処理装
置172Aは二つの3DRAMバンク192Aと192
Bに連結され、描画処理装置172Bは二つの3DRA
Mバンク194Aと194Bに連結している。各バンク
は、図に示すように、三つの3DRAMチップから成
る。3DRAMメモリまたはバンク192A,Bおよび
194A,Bは、一括してフレ―ムバッファ100を形
成している。このフレ―ムバッファ100は96ビット
深さで1280×1024である。フレ―ムバッファ
は、描画処理装置172Aと172Bで描画される3−
D物体に対応するピクセルを格納する。
Bの各々は、フレ―ムバッファ100に連結され。フレ
―ムバッファ100は3DRAMメモリの四つのバンク
192A,Bおよび194A,Bを備える。描画処理装
置172Aは二つの3DRAMバンク192Aと192
Bに連結され、描画処理装置172Bは二つの3DRA
Mバンク194Aと194Bに連結している。各バンク
は、図に示すように、三つの3DRAMチップから成
る。3DRAMメモリまたはバンク192A,Bおよび
194A,Bは、一括してフレ―ムバッファ100を形
成している。このフレ―ムバッファ100は96ビット
深さで1280×1024である。フレ―ムバッファ
は、描画処理装置172Aと172Bで描画される3−
D物体に対応するピクセルを格納する。
【0036】3DRAMメモリ192A,192Bおよ
び194A,194Bの各々は、RAMDAC(ランダ
ム・アクセス・メモリ/ディジタル−アナログ変換器)
196に連結している。RAMDAC196は、従来の
カラ―・ルックアップ・テ―ブル回路および三重ビデオ
DAC回路はもちろん、クロスバ―機能ともに、プログ
ラマブル・ビデオ・タイミング発生器とプログラマブル
・ピクセル・クロック・シンセサイザとを備える。そし
てまた、RAMDACはビデオ・モニタ84に連結して
いる。
び194A,194Bの各々は、RAMDAC(ランダ
ム・アクセス・メモリ/ディジタル−アナログ変換器)
196に連結している。RAMDAC196は、従来の
カラ―・ルックアップ・テ―ブル回路および三重ビデオ
DAC回路はもちろん、クロスバ―機能ともに、プログ
ラマブル・ビデオ・タイミング発生器とプログラマブル
・ピクセル・クロック・シンセサイザとを備える。そし
てまた、RAMDACはビデオ・モニタ84に連結して
いる。
【0037】コマンド・ブロックは、単一チップで実現
するのが好ましい。浮動小数点処理装置152A〜15
2Fの各々は、別々のチップで実現するのが好ましい。
好ましい実施の形態では、6個までの浮動小数点処理装
置またはチップ152A〜152Fが含まれている。描
画ブロックまたは処理装置172Aと172Bの各々も
また別々のチップから成ることが好ましい。
するのが好ましい。浮動小数点処理装置152A〜15
2Fの各々は、別々のチップで実現するのが好ましい。
好ましい実施の形態では、6個までの浮動小数点処理装
置またはチップ152A〜152Fが含まれている。描
画ブロックまたは処理装置172Aと172Bの各々も
また別々のチップから成ることが好ましい。
【0038】図9 浮動小数点処理装置のブロック図 図9において、本発明の好ましい実施の形態による浮動
小数点処理装置152A〜152Fの一つを図示するブ
ロック図が示されている。それぞれの浮動小数点処理装
置152A〜Fの各々は同一であるので、ここでは、便
宜上、そのうちの一つ(152で示す)について説明す
る。図に示すように、浮動小数点処理装置152A〜1
52Fの各々は、三つの主機能装置であるコア・プロセ
ッサ、即ち、Fコア・プロセッサ202,Lコア・プロ
セッサ204およびSコア・プロセッサ206を含む。
Fコア・プロセッサ202はコマンド・ブロック142
から転送されるデ―タをCFバスから受信するように連
結されている。Fコア・プロセッサは出力デ―タをLコ
ア・プロセッサ204とSコア・プロセッサ206の各
々に供給する。また、Lコア・プロセッサ204はデ―
タをSコア・プロセッサ206に供給する。Sコア・プ
ロセッサ206は出力デ―タをFDバスに供給する。
小数点処理装置152A〜152Fの一つを図示するブ
ロック図が示されている。それぞれの浮動小数点処理装
置152A〜Fの各々は同一であるので、ここでは、便
宜上、そのうちの一つ(152で示す)について説明す
る。図に示すように、浮動小数点処理装置152A〜1
52Fの各々は、三つの主機能装置であるコア・プロセ
ッサ、即ち、Fコア・プロセッサ202,Lコア・プロ
セッサ204およびSコア・プロセッサ206を含む。
Fコア・プロセッサ202はコマンド・ブロック142
から転送されるデ―タをCFバスから受信するように連
結されている。Fコア・プロセッサは出力デ―タをLコ
ア・プロセッサ204とSコア・プロセッサ206の各
々に供給する。また、Lコア・プロセッサ204はデ―
タをSコア・プロセッサ206に供給する。Sコア・プ
ロセッサ206は出力デ―タをFDバスに供給する。
【0039】Fコア・プロセッサ202は、ジオメトリ
変換、クリップ試験、面確定、透視分割および画面空間
変換を含む全ての浮動小数点集約型のオペレ―ションを
行う。また、Fコ・プロセッサ202は、必要なときに
はクリッピングを行う。好ましい実施の形態において
は、32kワ―ドのSRAM(153)に格納された3
6ビットのマイクロインストラクション・ワ―ドを用い
てFコア・プロセッサ202は完全にプログラム可能で
ある。
変換、クリップ試験、面確定、透視分割および画面空間
変換を含む全ての浮動小数点集約型のオペレ―ションを
行う。また、Fコ・プロセッサ202は、必要なときに
はクリッピングを行う。好ましい実施の形態において
は、32kワ―ドのSRAM(153)に格納された3
6ビットのマイクロインストラクション・ワ―ドを用い
てFコア・プロセッサ202は完全にプログラム可能で
ある。
【0040】Lコア・プロセッサ204は、オンチップ
のRAMベ―スのマイクロコ―ドを用いて殆どのライテ
ィングの計算を行う。従来技術のライティング装置とは
異なって、Lコア・プロセッサ204は、これらの計算
を行うために固定小数点の演算を使用する。好ましい実
施の形態では、Lコア・プロセッサ204の数値範囲
は、s1.14フォ―マット(1符号ビット、1整数ビ
ット、および14少数ビット)を使用して−2.0から
+2.0である。ライティング計算の大部分は、このタ
イプの16ビット・オペランドを使用してこの範囲で行
われる。しかし、ライティング計算に必要なパラメ―タ
には、この範囲を越えて、下記の様に処理されるものも
ある。
のRAMベ―スのマイクロコ―ドを用いて殆どのライテ
ィングの計算を行う。従来技術のライティング装置とは
異なって、Lコア・プロセッサ204は、これらの計算
を行うために固定小数点の演算を使用する。好ましい実
施の形態では、Lコア・プロセッサ204の数値範囲
は、s1.14フォ―マット(1符号ビット、1整数ビ
ット、および14少数ビット)を使用して−2.0から
+2.0である。ライティング計算の大部分は、このタ
イプの16ビット・オペランドを使用してこの範囲で行
われる。しかし、ライティング計算に必要なパラメ―タ
には、この範囲を越えて、下記の様に処理されるものも
ある。
【0041】また、Lコア・プロセッサ204は、より
効率よくライティング計算を行うために効率のよいトリ
プル・ワ―ドの設計を含んでいる。トリプル・ワ―ド設
計は、16ビットの固定小数点値から成る48ビットの
デ―タ・ワ―ドで動作する。したがって、一つの命令
で、3色全ての成分(RGB)または法線の3成分(N
x,Ny,およびNz)全てについて同じ機能が1サイ
クルで行われる。Lコア・プロセッサに含まれる数値計
算装置によって、数値は自動的に許容数値範囲にクラン
プされるので、追加のブランチを必要としない。
効率よくライティング計算を行うために効率のよいトリ
プル・ワ―ドの設計を含んでいる。トリプル・ワ―ド設
計は、16ビットの固定小数点値から成る48ビットの
デ―タ・ワ―ドで動作する。したがって、一つの命令
で、3色全ての成分(RGB)または法線の3成分(N
x,Ny,およびNz)全てについて同じ機能が1サイ
クルで行われる。Lコア・プロセッサに含まれる数値計
算装置によって、数値は自動的に許容数値範囲にクラン
プされるので、追加のブランチを必要としない。
【0042】Sコア・プロセッサは、全てのプリィミテ
ィブのセットアップ計算を行う。このセットアップ計算
には、一つの頂点から別の頂点への距離を多次元で計算
すること、およびその稜線に沿って勾配を計算すること
が含まれている。三角形については、Z深度の勾配、色
およびUV(テクスチャに対する)も走査線の方向で計
算される。
ィブのセットアップ計算を行う。このセットアップ計算
には、一つの頂点から別の頂点への距離を多次元で計算
すること、およびその稜線に沿って勾配を計算すること
が含まれている。三角形については、Z深度の勾配、色
およびUV(テクスチャに対する)も走査線の方向で計
算される。
【0043】図10 描画装置のブロック図 さて、図10において、描画装置172Aを図示するブ
ロック図が示されている。描画装置172Aと172B
は同一であるので、ここでは便宜上、そのうちの一つ
(172で示す)について説明する。描画装置172
は、3DRAMチップの配列の順番を制御する。描画処
理装置172は、ピクセル用内部キャッシュおよびビデ
オ出力リフレッシュの論理スケジュリングを行う3DR
AMを備える。これらの資源は、描画されるピクセルを
3DRAMに到達する前に待ち行列に入れること、およ
び、この待ち行列中でピクセルのアドレスを探して3D
RAMキャッシュ・ミスを予測することで制御される。
ロック図が示されている。描画装置172Aと172B
は同一であるので、ここでは便宜上、そのうちの一つ
(172で示す)について説明する。描画装置172
は、3DRAMチップの配列の順番を制御する。描画処
理装置172は、ピクセル用内部キャッシュおよびビデ
オ出力リフレッシュの論理スケジュリングを行う3DR
AMを備える。これらの資源は、描画されるピクセルを
3DRAMに到達する前に待ち行列に入れること、およ
び、この待ち行列中でピクセルのアドレスを探して3D
RAMキャッシュ・ミスを予測することで制御される。
【0044】図に示すように、描画処理装置172は、
FDバスにインタ―フェイス302を取るFDバス・イ
ンタ―フェイス・ブロック302を含む。FDバスイン
タ―フェイス・ブロック302は、CDCバス・インタ
―フェイス論理312に連結する。CDCバス・インタ
―フェイス論理312は、スクラッチ・バッファ314
とダイレクト・ポ―ト装置316に連結する。ダイレク
ト・ポ―ト装置316は、フレ―ムバッファ・インタ―
フェイス論理336から入力を受け、ピクセル・デ―タ
・マルチプレクサ論理332に出力を供給する。また、
CDCバス・インタフェイス論理312は、DCバスに
出力を供給するように連結している。FDバス・インタ
―フェイス302は、プリィミティブ累積バッファ30
4に出力を供給する。
FDバスにインタ―フェイス302を取るFDバス・イ
ンタ―フェイス・ブロック302を含む。FDバスイン
タ―フェイス・ブロック302は、CDCバス・インタ
―フェイス論理312に連結する。CDCバス・インタ
―フェイス論理312は、スクラッチ・バッファ314
とダイレクト・ポ―ト装置316に連結する。ダイレク
ト・ポ―ト装置316は、フレ―ムバッファ・インタ―
フェイス論理336から入力を受け、ピクセル・デ―タ
・マルチプレクサ論理332に出力を供給する。また、
CDCバス・インタフェイス論理312は、DCバスに
出力を供給するように連結している。FDバス・インタ
―フェイス302は、プリィミティブ累積バッファ30
4に出力を供給する。
【0045】また、描画処理装置172は、コマンド・
ブロック142によって指定された通りにプリィミティ
ブの順番の記録を取るスコアボ―ド論理318を含む。
図に示すように、スコアボ―ド論理は、F_Num入力
を受取り、プリィミティブ累積バッファ304に出力を
供給する。コマンド・ブロック142は、(ユニキャス
トの)プリィミティブがCFバス出力FIFOの一つに
複写される度に、3ビットのコ―ドを描画処理装置17
2に供給する。そのコ―ドによって、浮動小数点ブロッ
クの6個の処理装置152A〜152Fのどれがそのプ
リィミティブを受取るかが指定される。また、そのコ―
ドは、そのプリィミティブが順序付けられたものか、順
序付けられたものでないかを表示するビットを含む。全
ての順序付けられたプリミティブは、入ってきた順番で
出て行くことが必要である。順序付けられていないプリ
ミティブは、可能になると常に、プリミティブ累積バッ
ファ304から取去られる。例えばテキストやマ―カな
どのように、各入力プリミティブに対して複数のプリミ
ティブを出力するプリミティブがあり、これらのプリミ
ティブは、効率を高めるために順序付けられないモ―ド
に置くことが好ましい。しかし、描画処理装置172に
送られる全ての属性は、それが修正するプリミティブに
関して順序付けられた状態を継続しなければならない。
更に、厳密な順番付けが守られなければならない直線や
三角形に関する場合がある。スコアボ―ド論理318は
少なくとも64個のプリミティブを追跡する。スコアボ
―ド論理318は、スコアボ―ド論理318が一杯にな
りそうになった時に、スコアボ―ド論理318がオ―バ
フロ―するのを防ぐために、コマンド・ブロック142
に信号を送り返す。
ブロック142によって指定された通りにプリィミティ
ブの順番の記録を取るスコアボ―ド論理318を含む。
図に示すように、スコアボ―ド論理は、F_Num入力
を受取り、プリィミティブ累積バッファ304に出力を
供給する。コマンド・ブロック142は、(ユニキャス
トの)プリィミティブがCFバス出力FIFOの一つに
複写される度に、3ビットのコ―ドを描画処理装置17
2に供給する。そのコ―ドによって、浮動小数点ブロッ
クの6個の処理装置152A〜152Fのどれがそのプ
リィミティブを受取るかが指定される。また、そのコ―
ドは、そのプリィミティブが順序付けられたものか、順
序付けられたものでないかを表示するビットを含む。全
ての順序付けられたプリミティブは、入ってきた順番で
出て行くことが必要である。順序付けられていないプリ
ミティブは、可能になると常に、プリミティブ累積バッ
ファ304から取去られる。例えばテキストやマ―カな
どのように、各入力プリミティブに対して複数のプリミ
ティブを出力するプリミティブがあり、これらのプリミ
ティブは、効率を高めるために順序付けられないモ―ド
に置くことが好ましい。しかし、描画処理装置172に
送られる全ての属性は、それが修正するプリミティブに
関して順序付けられた状態を継続しなければならない。
更に、厳密な順番付けが守られなければならない直線や
三角形に関する場合がある。スコアボ―ド論理318は
少なくとも64個のプリミティブを追跡する。スコアボ
―ド論理318は、スコアボ―ド論理318が一杯にな
りそうになった時に、スコアボ―ド論理318がオ―バ
フロ―するのを防ぐために、コマンド・ブロック142
に信号を送り返す。
【0046】上に述べたように、プリミティブ累積バッ
ファ304は、FDバス・インタフェイス302とスコ
アボ―ド論理318とから出力を受取る。プリミティブ
累積バッファ304は、稜線ウォ―カ―(walke
r)論理322に出力を供給し、その稜線ウォ―カ―論
理322が次にスパン・フィル論理324に出力を供給
する。スパン・フィル論理324は、テクスチャ・ピク
セル処理装置326に出力を供給する。また、スパン・
フィル論理324は、ダイレクト・ポ―ト装置316に
出力を供給する。また、プリミティブ累積バッファ30
4は、テクスチャ拡大器論理328に出力を供給する。
テクスチャ拡大器論理328は、テクスチャ・メモリ・
キャッシュ330に連結している。テクスチャ・メモリ
・キャッシュ330は、テクスチャ・ピクセル処理装置
326にデ―タを供給する。また、テクスチャ・メモリ
・キャッシュ330は、ダイレクト・ポ―ト装置316
にデ―タを供給する。テクスチャ・ピクセル処理装置3
26とダイレクト・ポ―ト装置316は各々ピクセル・
デ―タ・マルチプレクサ論理332にデ―タを供給す
る。ピクセル・デ―タ・マルチプレクサ論理332は、
ピクセル処理装置334にその出力を供給する。ピクセ
ル処理装置334は、その出力をフレ―ムバッファ・イ
ンタ―フェイス336に供給し、またダイレクト・ポ―
ト装置316に出力を供給する。
ファ304は、FDバス・インタフェイス302とスコ
アボ―ド論理318とから出力を受取る。プリミティブ
累積バッファ304は、稜線ウォ―カ―(walke
r)論理322に出力を供給し、その稜線ウォ―カ―論
理322が次にスパン・フィル論理324に出力を供給
する。スパン・フィル論理324は、テクスチャ・ピク
セル処理装置326に出力を供給する。また、スパン・
フィル論理324は、ダイレクト・ポ―ト装置316に
出力を供給する。また、プリミティブ累積バッファ30
4は、テクスチャ拡大器論理328に出力を供給する。
テクスチャ拡大器論理328は、テクスチャ・メモリ・
キャッシュ330に連結している。テクスチャ・メモリ
・キャッシュ330は、テクスチャ・ピクセル処理装置
326にデ―タを供給する。また、テクスチャ・メモリ
・キャッシュ330は、ダイレクト・ポ―ト装置316
にデ―タを供給する。テクスチャ・ピクセル処理装置3
26とダイレクト・ポ―ト装置316は各々ピクセル・
デ―タ・マルチプレクサ論理332にデ―タを供給す
る。ピクセル・デ―タ・マルチプレクサ論理332は、
ピクセル処理装置334にその出力を供給する。ピクセ
ル処理装置334は、その出力をフレ―ムバッファ・イ
ンタ―フェイス336に供給し、またダイレクト・ポ―
ト装置316に出力を供給する。
【0047】プリミティブ累積バッファ304は、完全
なプリミティブを受取るまで、プリミティブ・デ―タを
累積するために用いられる。このようにして、6個の浮
動小数点処理装置152A〜152Fからデ―タが集め
られるとき、最終的には、デ―タは完全なプリミティブ
を形成する。プリミティブ累積バッファ304は、一つ
の完全なプリミティブを保持するに十分なメモリ空間に
加えて、パイプラインをスム―ズに流れる状態に維持す
るために第2プリミティブの一部分を蓄えるだけの十分
な記憶容量を含んでいる。6個のプリミティブ累積バッ
ファ304は、6個の浮動小数点処理装置152A〜1
52Fの各々からデ―タが入って来たときに、一杯にな
る。プリミティブが完全に受取られると直ちに、一般に
は、次のプリミティブがその後に入ってくる。したがっ
て、プリミティブ累積バッファ304は、次のプリミテ
ィブから入って来るデ―タで満たされる前に、完全なプ
リミティブをプリミティブ累積バッファ304から稜線
ウォ―カ―論理322に転送するために、十分な余分な
バッファリングを含んでいる。好ましい実施の形態で
は、プリミティブ累積バッファ304は、処理される最
も大きなプリミティブ(三角形)よりも数ワ―ド大き
い。プリミティブ累積バッファ304は、64ビットの
出力を稜線ウォ―カ―論理322に供給する。プリミテ
ィブは、スコアボ―ド論理318の内容に基づいて、一
度にプリミティブ累積バッファ304から取り出され
る。
なプリミティブを受取るまで、プリミティブ・デ―タを
累積するために用いられる。このようにして、6個の浮
動小数点処理装置152A〜152Fからデ―タが集め
られるとき、最終的には、デ―タは完全なプリミティブ
を形成する。プリミティブ累積バッファ304は、一つ
の完全なプリミティブを保持するに十分なメモリ空間に
加えて、パイプラインをスム―ズに流れる状態に維持す
るために第2プリミティブの一部分を蓄えるだけの十分
な記憶容量を含んでいる。6個のプリミティブ累積バッ
ファ304は、6個の浮動小数点処理装置152A〜1
52Fの各々からデ―タが入って来たときに、一杯にな
る。プリミティブが完全に受取られると直ちに、一般に
は、次のプリミティブがその後に入ってくる。したがっ
て、プリミティブ累積バッファ304は、次のプリミテ
ィブから入って来るデ―タで満たされる前に、完全なプ
リミティブをプリミティブ累積バッファ304から稜線
ウォ―カ―論理322に転送するために、十分な余分な
バッファリングを含んでいる。好ましい実施の形態で
は、プリミティブ累積バッファ304は、処理される最
も大きなプリミティブ(三角形)よりも数ワ―ド大き
い。プリミティブ累積バッファ304は、64ビットの
出力を稜線ウォ―カ―論理322に供給する。プリミテ
ィブは、スコアボ―ド論理318の内容に基づいて、一
度にプリミティブ累積バッファ304から取り出され
る。
【0048】稜線ウォ―カ―論理322は、スパン・フ
ィル装置324が容易に処理することができるように、
プリミティブをばらばらに分割する。三角形の場合に
は、稜線ウォ―カ―論理322は、二つのそのときのエ
ッジをたどり、最も近いピクセルのサンプル点に対して
調整された一組の垂直スパンを生成する。次に、この一
組の垂直スパンはスパン・フィル装置324に送られ
る。また、稜線ウォ―カ―装置322は、直線について
も同じ様な調整を行い、三角形スパンに非常によく似た
直線記述をスパン・フィル装置324に送る。稜線ウォ
―カ―論理322は、これらの調整を行うために使用さ
れる2個の16×24乗算器を備える。更に、稜線ウォ
―カ―論理322は、他の計算をするために使用される
計数を追跡するいくつかの加算器を含む。三角形と直線
以外のプリミティブは、最も効率的な資源の使用に基づ
いて分割される。ぎざぎざのあるドットもエイリアス除
去がされたドットも、最小の調整(例えば、ぎざぎざの
あるドットに0.5を加える)で、その論理を介してそ
のまま送られる。大きなドットは、個々のピクセルとし
て稜線ウォ―カ―論理322を介して供給される。稜線
ウォ―カ―論理322は、多角形と長方形を水平スパン
に変換する。稜線ウォ―カ―論理322はBresen
ham線を、それに変更を加えることなくスパン・フィ
ル装置324に送る。
ィル装置324が容易に処理することができるように、
プリミティブをばらばらに分割する。三角形の場合に
は、稜線ウォ―カ―論理322は、二つのそのときのエ
ッジをたどり、最も近いピクセルのサンプル点に対して
調整された一組の垂直スパンを生成する。次に、この一
組の垂直スパンはスパン・フィル装置324に送られ
る。また、稜線ウォ―カ―装置322は、直線について
も同じ様な調整を行い、三角形スパンに非常によく似た
直線記述をスパン・フィル装置324に送る。稜線ウォ
―カ―論理322は、これらの調整を行うために使用さ
れる2個の16×24乗算器を備える。更に、稜線ウォ
―カ―論理322は、他の計算をするために使用される
計数を追跡するいくつかの加算器を含む。三角形と直線
以外のプリミティブは、最も効率的な資源の使用に基づ
いて分割される。ぎざぎざのあるドットもエイリアス除
去がされたドットも、最小の調整(例えば、ぎざぎざの
あるドットに0.5を加える)で、その論理を介してそ
のまま送られる。大きなドットは、個々のピクセルとし
て稜線ウォ―カ―論理322を介して供給される。稜線
ウォ―カ―論理322は、多角形と長方形を水平スパン
に変換する。稜線ウォ―カ―論理322はBresen
ham線を、それに変更を加えることなくスパン・フィ
ル装置324に送る。
【0049】スパン・フィル装置324は、任意の方向
を向いたスパンに渡って(通常は、三角形と直線につい
て)値の補間を行ない、また、エイリアス除去がされた
直線についてフィルタ重み付けテ―ブルの探索を行う。
三角形スパンの対、長方形や多角形のスパンおよびエイ
リアス除去の行われた直線と点を含む最適化されたプリ
ミティブについて、サイクル毎に二つのピクセルが生成
される。他のプリミティブは全てサイクル毎に一つのピ
クセルを生成する。また、スパン・フィル装置324の
最終段はディザリングをおこない、4×4画面空間のデ
ィザ・パタ―ンを用いて12ビットのカラ―を8ビット
値に変換する。スパン・フィル論理324は、テクスチ
ャ・ピクセル処理装置326に出力を供給する。
を向いたスパンに渡って(通常は、三角形と直線につい
て)値の補間を行ない、また、エイリアス除去がされた
直線についてフィルタ重み付けテ―ブルの探索を行う。
三角形スパンの対、長方形や多角形のスパンおよびエイ
リアス除去の行われた直線と点を含む最適化されたプリ
ミティブについて、サイクル毎に二つのピクセルが生成
される。他のプリミティブは全てサイクル毎に一つのピ
クセルを生成する。また、スパン・フィル装置324の
最終段はディザリングをおこない、4×4画面空間のデ
ィザ・パタ―ンを用いて12ビットのカラ―を8ビット
値に変換する。スパン・フィル論理324は、テクスチ
ャ・ピクセル処理装置326に出力を供給する。
【0050】テクスチャ・ピクセル処理装置326は、
テクスチャ計算を行い、テクスチャ・メモリ・キャッシ
ュ330でのテクセルの探索を制御する。テクスチャ・
ピクセル処理装置326は、ピクセル処理装置334に
よってピクセルに溶け込ませるべき色を生成する。テク
スチャ・ピクセル処理装置326は、テクスチャ化され
た三角形を除く他の全てのプリミティブのデ―タをピク
セル・デ―タ・マルチプレクサ論理332に送る。
テクスチャ計算を行い、テクスチャ・メモリ・キャッシ
ュ330でのテクセルの探索を制御する。テクスチャ・
ピクセル処理装置326は、ピクセル処理装置334に
よってピクセルに溶け込ませるべき色を生成する。テク
スチャ・ピクセル処理装置326は、テクスチャ化され
た三角形を除く他の全てのプリミティブのデ―タをピク
セル・デ―タ・マルチプレクサ論理332に送る。
【0051】上に述べたように、プリミティブ累積バッ
ファ304は、テクスチャ拡大器論理328に出力を供
給する。テクスチャ拡大器328は、テクスチャ・メモ
リ・キャッシュ330で記憶するために受取ったテクス
チャを拡大するように動作する。このように、テクスチ
ャ・メモリ・キャッシュ330は、プリミティブ累積バ
ッファ304から直接ロ―ドされ、テクセル探索のため
にテクスチャ・ピクセル処理装置に接続されている。テ
クスチャ・メモリ・キャッシュ330は、全ての比較的
小さなミップマッピングを含めて、16×16のテクセ
ル領域にテクスチャ・マッピングを行うために十分なデ
―タを保持できるように設計されている。テクスチャ・
メモリ・キャッシュ330は、現バッファが使用されて
いる間に、それ以外のバッファをロ―ドすることができ
るように、ダブル・バッファ型であることが好ましい。
16×16のテクセル領域は、補間が正しく行われるた
めに、実際には17×17のアレイとして格納されてい
ることに留意する必要がある。
ファ304は、テクスチャ拡大器論理328に出力を供
給する。テクスチャ拡大器328は、テクスチャ・メモ
リ・キャッシュ330で記憶するために受取ったテクス
チャを拡大するように動作する。このように、テクスチ
ャ・メモリ・キャッシュ330は、プリミティブ累積バ
ッファ304から直接ロ―ドされ、テクセル探索のため
にテクスチャ・ピクセル処理装置に接続されている。テ
クスチャ・メモリ・キャッシュ330は、全ての比較的
小さなミップマッピングを含めて、16×16のテクセ
ル領域にテクスチャ・マッピングを行うために十分なデ
―タを保持できるように設計されている。テクスチャ・
メモリ・キャッシュ330は、現バッファが使用されて
いる間に、それ以外のバッファをロ―ドすることができ
るように、ダブル・バッファ型であることが好ましい。
16×16のテクセル領域は、補間が正しく行われるた
めに、実際には17×17のアレイとして格納されてい
ることに留意する必要がある。
【0052】上に述べたように、ピクセル・デ―タ・マ
ルチプレクサ論理332は、テクスチャ・ピクセル処理
装置326とダイレクト・ポ―ト装置316から入力デ
―タを受取る。ピクセル・デ―タ・マルチプレクサ論理
332は、スパン・フィル装置324から来るピクセル
とCDバスから来るピクセルとの間を調停する。CDバ
スからのピクセルが、常に優先される。ピクセル・デ―
タ・マルチプレクサ論理332はその出力をピクセル処
理装置334に供給する。
ルチプレクサ論理332は、テクスチャ・ピクセル処理
装置326とダイレクト・ポ―ト装置316から入力デ
―タを受取る。ピクセル・デ―タ・マルチプレクサ論理
332は、スパン・フィル装置324から来るピクセル
とCDバスから来るピクセルとの間を調停する。CDバ
スからのピクセルが、常に優先される。ピクセル・デ―
タ・マルチプレクサ論理332はその出力をピクセル処
理装置334に供給する。
【0053】ピクセル処理装置334は、3DRAM1
92、194での論理オペレーションのために、混合、
エアリィアス除去、深度キュ―イングおよびセットアッ
プを行う。また、ピクセル処理装置334は、線パタ―
ン化、型板パタ―ン化、Vポ―ト・クリッピングその他
のオペレ―ションのためのピクセル書き込みを禁止する
ように動作可能な論理を備えている。ピクセル処理装置
334は、フレ―ムバッファ・インタ―フェイス336
に出力を供給する。
92、194での論理オペレーションのために、混合、
エアリィアス除去、深度キュ―イングおよびセットアッ
プを行う。また、ピクセル処理装置334は、線パタ―
ン化、型板パタ―ン化、Vポ―ト・クリッピングその他
のオペレ―ションのためのピクセル書き込みを禁止する
ように動作可能な論理を備えている。ピクセル処理装置
334は、フレ―ムバッファ・インタ―フェイス336
に出力を供給する。
【0054】フレ―ムバッファ・インタフェ―ス336
は、3DRAMメモリ192A,192Bからピクセル
を読み書きするために必要な論理を備えている。フレ―
ムバッファ・インタ―フェイス336は、3DRAMチ
ップのレベル1(L1)とレベル2(L2)キャッシュ
を管理する。これは、他のピクセルのアクセスが生じて
いる間に、書き込まれるべきピクセルを予測し、必要と
されるキャッシュにペ―ジングすることで行われる。次
に、図に示すように、フレ―ムバッファ・インタ―フェ
イス336は、3DRAMメモリ192A、192B、
194A、194Bに連結している。
は、3DRAMメモリ192A,192Bからピクセル
を読み書きするために必要な論理を備えている。フレ―
ムバッファ・インタ―フェイス336は、3DRAMチ
ップのレベル1(L1)とレベル2(L2)キャッシュ
を管理する。これは、他のピクセルのアクセスが生じて
いる間に、書き込まれるべきピクセルを予測し、必要と
されるキャッシュにペ―ジングすることで行われる。次
に、図に示すように、フレ―ムバッファ・インタ―フェ
イス336は、3DRAMメモリ192A、192B、
194A、194Bに連結している。
【0055】Z値の処理 さて、図11において、グラフィックス処理用のパイプ
ラインにおけるZ値の処理方法400のフロ―チャ―ト
が図示されている。Z値は、システムCPUである中央
処理装置102によってシステム・バス104上でグラ
フィックス・アクセラレ―タ112に転送されるグラフ
ィックス・デ―タの一部である。このZ値は、ディスプ
レイ装置84に三次元物体を描画するために使用可能な
三角形プリミティブの頂点のZ座標を表す。転送された
Z値はモデル空間座標であり、図12のAに示されるI
EEE浮動小数点規格500のような第1浮動小数点フ
ォ―マットで表現される。図に示すように、IEEEフ
ォ―マット500は、符号ビット502、指数部504
および仮数部506を含む。これは「隠くされた1」の
位置508を含む。他の浮動小数点フォ―マットも使用
することができる。
ラインにおけるZ値の処理方法400のフロ―チャ―ト
が図示されている。Z値は、システムCPUである中央
処理装置102によってシステム・バス104上でグラ
フィックス・アクセラレ―タ112に転送されるグラフ
ィックス・デ―タの一部である。このZ値は、ディスプ
レイ装置84に三次元物体を描画するために使用可能な
三角形プリミティブの頂点のZ座標を表す。転送された
Z値はモデル空間座標であり、図12のAに示されるI
EEE浮動小数点規格500のような第1浮動小数点フ
ォ―マットで表現される。図に示すように、IEEEフ
ォ―マット500は、符号ビット502、指数部504
および仮数部506を含む。これは「隠くされた1」の
位置508を含む。他の浮動小数点フォ―マットも使用
することができる。
【0056】グラフィックス・アクセラレ―タ112が
受取るモデル空間座標は同質なクリッピング座標に変換
され、Fコア・プロセッサ202内で正規化されて、Z
値はZ/Wとして表されるようになる。この値は、−1
から+1の範囲に存在する。クリッピングの後、(Xお
よびY座標と共に)所定のプリミティブのZ値は、処理
方法400のステップ402の変換オペレ―ションを経
て画面空間にマッピングされる。画面空間のXおよびY
座標は、ディスプレイ装置84上のピクセル値に対応す
る。一方、Z座標は画面に垂直な想像上のz軸に沿った
深度に対応する。原特許出願で開示されたように、Z値
は、Wf/Wと表されるのが好ましい。ここで、Wfは前
方クリッピング面でのWを表す。上で説明したように、
このようにして変換されたZ値は、前方クリッピング面
での1.0(含む)と物体が後方クリッピング面に近づ
くときの0.0(含まない)との間に広がっている。従
来技術のシステムとは異なり、この変換では、ゼロに近
い数(本発明の一つの実施の形態による後方クリッピン
グ面に近い)について重大な精度の喪失を生じない。ス
テップ402の後、Z値は浮動小数点フォ―マット50
0で表されることに注意する必要がある。
受取るモデル空間座標は同質なクリッピング座標に変換
され、Fコア・プロセッサ202内で正規化されて、Z
値はZ/Wとして表されるようになる。この値は、−1
から+1の範囲に存在する。クリッピングの後、(Xお
よびY座標と共に)所定のプリミティブのZ値は、処理
方法400のステップ402の変換オペレ―ションを経
て画面空間にマッピングされる。画面空間のXおよびY
座標は、ディスプレイ装置84上のピクセル値に対応す
る。一方、Z座標は画面に垂直な想像上のz軸に沿った
深度に対応する。原特許出願で開示されたように、Z値
は、Wf/Wと表されるのが好ましい。ここで、Wfは前
方クリッピング面でのWを表す。上で説明したように、
このようにして変換されたZ値は、前方クリッピング面
での1.0(含む)と物体が後方クリッピング面に近づ
くときの0.0(含まない)との間に広がっている。従
来技術のシステムとは異なり、この変換では、ゼロに近
い数(本発明の一つの実施の形態による後方クリッピン
グ面に近い)について重大な精度の喪失を生じない。ス
テップ402の後、Z値は浮動小数点フォ―マット50
0で表されることに注意する必要がある。
【0057】次に、ステップ404と406において、
最も大きな指数部504を持つ所定のプリミティブのZ
値が決定され、そのプリミティブの共通のZ指数が生成
される。上に説明したように、浮動小数点Zバッファの
使用には、表示ビットが付加されるために、実現するた
めには一層高価になるという潜在的な不都合がある。こ
の欠点は、所定のプリミティブの各Z値について単一の
指数を使用することによって、本発明の範囲内では大部
分が小さなものとなる。これが可能なのは、所定のプリ
ミティブの全ての頂点が全てのZ値について同じ指数を
持つこと(または、指数が非常に近いこと)が統計的に
あり得ることだからである。密接に関係づけられていな
い指数部を持つ多角形は、一般には、貧弱な図形プログ
ラミングの慣例に起因する。
最も大きな指数部504を持つ所定のプリミティブのZ
値が決定され、そのプリミティブの共通のZ指数が生成
される。上に説明したように、浮動小数点Zバッファの
使用には、表示ビットが付加されるために、実現するた
めには一層高価になるという潜在的な不都合がある。こ
の欠点は、所定のプリミティブの各Z値について単一の
指数を使用することによって、本発明の範囲内では大部
分が小さなものとなる。これが可能なのは、所定のプリ
ミティブの全ての頂点が全てのZ値について同じ指数を
持つこと(または、指数が非常に近いこと)が統計的に
あり得ることだからである。密接に関係づけられていな
い指数部を持つ多角形は、一般には、貧弱な図形プログ
ラミングの慣例に起因する。
【0058】ステッブ404は、図11と13を参照に
して説明されるいくつかのサブステップを含む。図13
は、Fコア・プロセッサ202内部の指数比較器装置6
00を図示する。指数比較器装置600は、現Z値60
2を受取るように連結された現Z指数レジスタ610を
含む。レジスタ610の出力は、最大Z指数レジスタ6
20、加算器622および比較器640に連結されてい
る。また、比較器640は、レジスタ620の出力を受
取るように接続されており、比較信号642A,642
Bを制御装置650に伝える。次に、制御装置650
は、負荷指数信号652をレジスタ620だけでなく共
通Z指数レジスタ630にも伝える。レジスタ620
は、さらにクリア信号604を受取る。レジスタ630
は、加算器622の出力に連結されたクランプ・マルチ
プレクサ624から入力を受取る。その加算器622は
もう一つの入力として減算定数626を受取る。
して説明されるいくつかのサブステップを含む。図13
は、Fコア・プロセッサ202内部の指数比較器装置6
00を図示する。指数比較器装置600は、現Z値60
2を受取るように連結された現Z指数レジスタ610を
含む。レジスタ610の出力は、最大Z指数レジスタ6
20、加算器622および比較器640に連結されてい
る。また、比較器640は、レジスタ620の出力を受
取るように接続されており、比較信号642A,642
Bを制御装置650に伝える。次に、制御装置650
は、負荷指数信号652をレジスタ620だけでなく共
通Z指数レジスタ630にも伝える。レジスタ620
は、さらにクリア信号604を受取る。レジスタ630
は、加算器622の出力に連結されたクランプ・マルチ
プレクサ624から入力を受取る。その加算器622は
もう一つの入力として減算定数626を受取る。
【0059】ステップ404Aで、最大Z指数レジスタ
620は、クリア信号604をアサ―トすることによっ
てクリアされる。レジスタ620は、現プリミティブの
現最大Z指数値を保持するように設計されているので、
このレジスタは現プリミティブのZ値を受取る前にクリ
アされる。好ましい実施の形態においては、この動作
は、設定された特別の状態ビツトで「fixz」命令を
実行することで行われる。
620は、クリア信号604をアサ―トすることによっ
てクリアされる。レジスタ620は、現プリミティブの
現最大Z指数値を保持するように設計されているので、
このレジスタは現プリミティブのZ値を受取る前にクリ
アされる。好ましい実施の形態においては、この動作
は、設定された特別の状態ビツトで「fixz」命令を
実行することで行われる。
【0060】次に、ステップ404Bにおいて、現Z値
602はレジスタ610で受取られる。レジスタ610
と620の内容は、現Z値602がレジスタ620の内
容よりも大きいかどうかを決定するために比較器640
に進められる。比較器640は、比較信号642A、6
42Bを制御装置650に伝える。制御装置650は
(ステップ404Cで)、620の内容をレジスタ61
0の内容で置換するべきかどうかを決定する。所定のプ
リミティブのために受取られた第1Z値に、常にレジス
タ620の内容は置換される。
602はレジスタ610で受取られる。レジスタ610
と620の内容は、現Z値602がレジスタ620の内
容よりも大きいかどうかを決定するために比較器640
に進められる。比較器640は、比較信号642A、6
42Bを制御装置650に伝える。制御装置650は
(ステップ404Cで)、620の内容をレジスタ61
0の内容で置換するべきかどうかを決定する。所定のプ
リミティブのために受取られた第1Z値に、常にレジス
タ620の内容は置換される。
【0061】置換が必要であれば、ステップ404D
で、現Z指数レジスタ610の内容が最大Z指数レジス
タ620に書き込まれる。レジスタ610の内容が、比
較器640に伝えられてステッブ404Bで比較動作を
行う時、レジスタ610の値も、レジスタ620の入力
に伝えられる(純論理的に)。(比較信号642に基づ
いて)制御装置650が置換が必要であると決定する
と、負荷指数信号652がアサ―トされて、レジスタ6
10の現値がレジスタ620にコピ―される。このよう
にして、現Z値は現最大指数値になる。好ましい実施の
形態では、動作は、SRAM153に格納されている
「fix gtz」命令によって引き起こされ、Fコア
・プロセッサ202内の回路で実行される。
で、現Z指数レジスタ610の内容が最大Z指数レジス
タ620に書き込まれる。レジスタ610の内容が、比
較器640に伝えられてステッブ404Bで比較動作を
行う時、レジスタ610の値も、レジスタ620の入力
に伝えられる(純論理的に)。(比較信号642に基づ
いて)制御装置650が置換が必要であると決定する
と、負荷指数信号652がアサ―トされて、レジスタ6
10の現値がレジスタ620にコピ―される。このよう
にして、現Z値は現最大指数値になる。好ましい実施の
形態では、動作は、SRAM153に格納されている
「fix gtz」命令によって引き起こされ、Fコア
・プロセッサ202内の回路で実行される。
【0062】共通Z指数値は、ステップ406で置換動
作と同時に計算される。共通Z指数値(レジスタ630
に格納されている)は、レジスタ620の内容に関係付
けられ、表現に使用されるビット数は少なくなる。例え
ば、図12のAに示されるように、IEEEフォ―マッ
ト500の指数部504は8ビットである。このビット
数は浮動小数点の全体の範囲を表現するために必要とさ
れるが、0と1の間の数を表現するために使用されるビ
ットの数は少なくなる。さらに、これは、Z値を表現す
るために使用される間隔の大きさを維持する。
作と同時に計算される。共通Z指数値(レジスタ630
に格納されている)は、レジスタ620の内容に関係付
けられ、表現に使用されるビット数は少なくなる。例え
ば、図12のAに示されるように、IEEEフォ―マッ
ト500の指数部504は8ビットである。このビット
数は浮動小数点の全体の範囲を表現するために必要とさ
れるが、0と1の間の数を表現するために使用されるビ
ットの数は少なくなる。さらに、これは、Z値を表現す
るために使用される間隔の大きさを維持する。
【0063】本発明の好ましい実施の形態においては、
0と15の間の値を可能にする共通Z指数値を符号化す
るために、4ビットが使用される。これは、15の正規
化された表現と1の正規化されない表現を許容する。1
5の共通Z指数値は、1.0より少ない数の最大指数値
504に相当する。これは、フォ―マット500では1
26である。このようにして、現Z値(例えば、値60
2)から4ビット表現への変換は、一定値を引算するこ
とを含む。好ましい実施の形態では、111を引くこと
(または、代わりに、−111を加算すること)によっ
て達成されている。
0と15の間の値を可能にする共通Z指数値を符号化す
るために、4ビットが使用される。これは、15の正規
化された表現と1の正規化されない表現を許容する。1
5の共通Z指数値は、1.0より少ない数の最大指数値
504に相当する。これは、フォ―マット500では1
26である。このようにして、現Z値(例えば、値60
2)から4ビット表現への変換は、一定値を引算するこ
とを含む。好ましい実施の形態では、111を引くこと
(または、代わりに、−111を加算すること)によっ
て達成されている。
【0064】ステップ404Bで比較が行われる度に、
レジスタ610の値は加算器622に伝えられる。ま
た、加算器622は減算定数626を受取る。本発明の
好ましい実施の形態では、この定数は0x91(十進数
では、−111)に等しい。次に、加算器622の出力
は、クランプ・マルチプレクサ624に伝えられる。加
算器622の出力が負の結果となるときには、クランプ
・マルチプレクサ624はその結果をゼロにクランプす
る。そうでないときは、加算器622の出力は変らな
い。両方の場合において、クランプ・マルチプレクサ6
24の出力は共通Z指数レジスタ630の入力に伝えら
れる。(負荷指数信号652がアサ―トされることで指
示される)置換が行われないときには、マルチプレクサ
624の出力はレジスタ630に書かれない。ステップ
404Dで置換動作が行われると、その時には、ステッ
プ406で対応する共通Z指数値がレジスタ630に格
納される。
レジスタ610の値は加算器622に伝えられる。ま
た、加算器622は減算定数626を受取る。本発明の
好ましい実施の形態では、この定数は0x91(十進数
では、−111)に等しい。次に、加算器622の出力
は、クランプ・マルチプレクサ624に伝えられる。加
算器622の出力が負の結果となるときには、クランプ
・マルチプレクサ624はその結果をゼロにクランプす
る。そうでないときは、加算器622の出力は変らな
い。両方の場合において、クランプ・マルチプレクサ6
24の出力は共通Z指数レジスタ630の入力に伝えら
れる。(負荷指数信号652がアサ―トされることで指
示される)置換が行われないときには、マルチプレクサ
624の出力はレジスタ630に書かれない。ステップ
404Dで置換動作が行われると、その時には、ステッ
プ406で対応する共通Z指数値がレジスタ630に格
納される。
【0065】判定ボックス404Eに示されるように、
上述のステップはプリミティブの残りの頂点(三角形プ
リミティブの一般的な場合では、さらに2度)について
も実行される。最後のZ値が比較された(そして、多
分、レジスタ620に書き込まれた)後、レジスタ62
0には、現プリミティブのZ値について指数部504の
最大値が保持されている。同様に、レジスタ630は、
レジスタ620の値に対応する共通Z指数値を格納して
いる。
上述のステップはプリミティブの残りの頂点(三角形プ
リミティブの一般的な場合では、さらに2度)について
も実行される。最後のZ値が比較された(そして、多
分、レジスタ620に書き込まれた)後、レジスタ62
0には、現プリミティブのZ値について指数部504の
最大値が保持されている。同様に、レジスタ630は、
レジスタ620の値に対応する共通Z指数値を格納して
いる。
【0066】ステップ408において、所定のプリミテ
ィブのZ値が固定小数点フォ―マット(例えば図12の
Bに示すフォ―マット510)に変換される。図に示す
ように、フォ―マット510は、符号ビット512、整
数ビット514および仮数部516を含む。これは、s
1.30フォ―マット(符号ビット、1整数ビットおよ
び30分数ビット)と言われている。仮数部516はス
テップ406で計算される共通Z指数値に対してスケー
リングされるので、固定小数点フォ―マット510には
指数部がない。好ましい実施の形態では、各Z値は、下
記のアルゴリズムを実施するコ―ド列で、Fコア・プロ
セッサ202の内部で正規化される。
ィブのZ値が固定小数点フォ―マット(例えば図12の
Bに示すフォ―マット510)に変換される。図に示す
ように、フォ―マット510は、符号ビット512、整
数ビット514および仮数部516を含む。これは、s
1.30フォ―マット(符号ビット、1整数ビットおよ
び30分数ビット)と言われている。仮数部516はス
テップ406で計算される共通Z指数値に対してスケー
リングされるので、固定小数点フォ―マット510には
指数部がない。好ましい実施の形態では、各Z値は、下
記のアルゴリズムを実施するコ―ド列で、Fコア・プロ
セッサ202の内部で正規化される。
【0067】
【表1】
【0068】このように、アルゴリズムは、最大Z指数
と現Z指数の両方の指数部504の差を取る。この値
は、可変「シフト」に格納される。次に、隠し1ビット
が論理和演算されて浮動小数点仮数値に入れられて、2
4ビットの仮数値をつくる。次に、この24ビット値は
左に6ビットだけシフトされ(30ビット仮数フィ―ル
ド516の残りにゼロがパッドされ)る。これらの余分
の6ビットによって、その後の固定小数点処理の精度が
増すことに注意する必要がある。最後に、30ビット値
は、仮数値516がプリミティブの共通Z指数に正規化
されるように、適切なビット数だけ右にシフトされる。
他の実施の形態では、専用のハ―ドウェア回路によるも
のも含めて、浮動−固定変換処理が別に行われる。
と現Z指数の両方の指数部504の差を取る。この値
は、可変「シフト」に格納される。次に、隠し1ビット
が論理和演算されて浮動小数点仮数値に入れられて、2
4ビットの仮数値をつくる。次に、この24ビット値は
左に6ビットだけシフトされ(30ビット仮数フィ―ル
ド516の残りにゼロがパッドされ)る。これらの余分
の6ビットによって、その後の固定小数点処理の精度が
増すことに注意する必要がある。最後に、30ビット値
は、仮数値516がプリミティブの共通Z指数に正規化
されるように、適切なビット数だけ右にシフトされる。
他の実施の形態では、専用のハ―ドウェア回路によるも
のも含めて、浮動−固定変換処理が別に行われる。
【0069】ステップ408でZ値が固定小数点に変換
された状態で、共通Z指数値はプリミティブとともに前
に進められ、ステップ410で更に処理される。図14
に示すように、共通Z指数値は、ヘッダ―・ワ―ド70
0の中のZ指数フィ―ルド702に格納される。ヘッダ
―・ワ―ド700はFコア・プロセッサ202によって
書かれ、図9に示すFSバッファを介してSコア・プロ
セッサ206に伝えられる。対応するプリミティブが処
理されるにつれて、ヘッダ―・ワ―ド700はパイプラ
インを伝播して行く。したがって、フィ―ルド702の
Z指数値は、下に説明するような計算に利用可能であ
る。
された状態で、共通Z指数値はプリミティブとともに前
に進められ、ステップ410で更に処理される。図14
に示すように、共通Z指数値は、ヘッダ―・ワ―ド70
0の中のZ指数フィ―ルド702に格納される。ヘッダ
―・ワ―ド700はFコア・プロセッサ202によって
書かれ、図9に示すFSバッファを介してSコア・プロ
セッサ206に伝えられる。対応するプリミティブが処
理されるにつれて、ヘッダ―・ワ―ド700はパイプラ
インを伝播して行く。したがって、フィ―ルド702の
Z指数値は、下に説明するような計算に利用可能であ
る。
【0070】共通Z指数が生成され、プリミティブとと
もに転送された後、ステップ412でプリミティブに固
定小数点処理が行われる。図11に示すように、ステッ
プ412は、サブステップ412A(セットアップ)、
412B(稜線ウォ―キング)および412C(スパン
・フィリング)を含む。これらのオペレ―ションは、上
に説明したように行われる。好ましい実施の形態では、
セットアップは処理装置152のSコア・プロセッサ2
06で行われ、稜線補間は描画処理装置172内の稜線
ウォ―カ―装置322で行われ、そしてスパン補間は描
画処理装置172のスパン・フィル装置324で行われ
る。これらのステップは、図12のBに示されるs1.
30フォ―マット510を用いて一層精度高く効果的に
行われる。また別の実施の形態では、ここに示すものと
は異なったオペレ―ションがステップ412内で行われ
ることに注意を必要とする。
もに転送された後、ステップ412でプリミティブに固
定小数点処理が行われる。図11に示すように、ステッ
プ412は、サブステップ412A(セットアップ)、
412B(稜線ウォ―キング)および412C(スパン
・フィリング)を含む。これらのオペレ―ションは、上
に説明したように行われる。好ましい実施の形態では、
セットアップは処理装置152のSコア・プロセッサ2
06で行われ、稜線補間は描画処理装置172内の稜線
ウォ―カ―装置322で行われ、そしてスパン補間は描
画処理装置172のスパン・フィル装置324で行われ
る。これらのステップは、図12のBに示されるs1.
30フォ―マット510を用いて一層精度高く効果的に
行われる。また別の実施の形態では、ここに示すものと
は異なったオペレ―ションがステップ412内で行われ
ることに注意を必要とする。
【0071】図15において、ピクセル処理装置334
のブロック図が示されている。ステップ412Cのスパ
ン補間に続いて、プリミティブ・デ―タは、フレ―ムバ
ッファ・インタ―フェイス336を介してフレ―ムバッ
ファ100に転送される前に、付加的なオペレ―ション
を行う処理装置334に転送される。図に示すように、
上に説明したように計算される共通Z指数値は、バス8
10上で奇数と偶数のYZパイプライン802A,80
2Bに伝えられる。同様に、(s1.30フォ―マット
の)固定小数点Z値は、バス812Aおよび812B上
でそれぞれパイプライン802A,802Bに転送され
る。図12のには、Z値のピクセル処理用に別個のパイ
プライン(奇数と偶数)が図示されているが、別の実施
の形態では、Z値は単一のパイプラインを用いて処理さ
れる。また、図15には、固定小数点バス814Aと8
14Bによってそれぞれパイプライン802Aと802
Bに接続されている深度キュ―イング・パイプライン8
04A,804Bも図示されている。
のブロック図が示されている。ステップ412Cのスパ
ン補間に続いて、プリミティブ・デ―タは、フレ―ムバ
ッファ・インタ―フェイス336を介してフレ―ムバッ
ファ100に転送される前に、付加的なオペレ―ション
を行う処理装置334に転送される。図に示すように、
上に説明したように計算される共通Z指数値は、バス8
10上で奇数と偶数のYZパイプライン802A,80
2Bに伝えられる。同様に、(s1.30フォ―マット
の)固定小数点Z値は、バス812Aおよび812B上
でそれぞれパイプライン802A,802Bに転送され
る。図12のには、Z値のピクセル処理用に別個のパイ
プライン(奇数と偶数)が図示されているが、別の実施
の形態では、Z値は単一のパイプラインを用いて処理さ
れる。また、図15には、固定小数点バス814Aと8
14Bによってそれぞれパイプライン802Aと802
Bに接続されている深度キュ―イング・パイプライン8
04A,804Bも図示されている。
【0072】下に説明するように、パイプライン802
は、バス810と812上で伝えられるs1.30フォ
―マットのデ―タに2つの型の変換を行う。第1に、こ
のデ―タは、例えば図12のDに示すフォ―マット53
0のような等価の固定小数点に変換される。この変換
は、図11に示すステップ414に対応する。フォ―マ
ット530を用いて表される固定小数点デ―タは、次
に、ステップ418で深度キュ―イングおよびZクリッ
プ決定を行うために使用される。
は、バス810と812上で伝えられるs1.30フォ
―マットのデ―タに2つの型の変換を行う。第1に、こ
のデ―タは、例えば図12のDに示すフォ―マット53
0のような等価の固定小数点に変換される。この変換
は、図11に示すステップ414に対応する。フォ―マ
ット530を用いて表される固定小数点デ―タは、次
に、ステップ418で深度キュ―イングおよびZクリッ
プ決定を行うために使用される。
【0073】第2に、パイプライン802は、入って来
るデ―タがフレ―ムバッファ100に転送される前に、
必要であれば、このデ―タを浮動小数点フォ―マットに
変換するように構成されている。この変換処理(ステッ
プ416)は、Z値がフレ―ムバッファ100内で浮動
小数点表記法で表現されるように選ばれる場合に行われ
る。そのような表現の一つの例は、図12のCに示すフ
ォ―マット520である。図16の説明では、cp_z
f信号916がアサ―トされているものとする。これは
浮動小数点Z値が必要であることを意味する。ステップ
416の固定−浮動変換処理で生じるZ値は、次にステ
ップ420で、フレ―ムバッファ100内で隠面除去オ
ペレ―ションを行うために使用される。
るデ―タがフレ―ムバッファ100に転送される前に、
必要であれば、このデ―タを浮動小数点フォ―マットに
変換するように構成されている。この変換処理(ステッ
プ416)は、Z値がフレ―ムバッファ100内で浮動
小数点表記法で表現されるように選ばれる場合に行われ
る。そのような表現の一つの例は、図12のCに示すフ
ォ―マット520である。図16の説明では、cp_z
f信号916がアサ―トされているものとする。これは
浮動小数点Z値が必要であることを意味する。ステップ
416の固定−浮動変換処理で生じるZ値は、次にステ
ップ420で、フレ―ムバッファ100内で隠面除去オ
ペレ―ションを行うために使用される。
【0074】図16において、パイプライン802のブ
ロック図が図示されている。Zピクセル値を処理する部
分だけが図示されている。パイプライン802は、パイ
プライン802Aと802Bを表す。一つの実施の形態
では、パイプライン802はステ―ジ900A〜900
Hに分割される。しかし、他の実施の形態では、パイプ
ライン802はもっと多くの、またはもっと少ないステ
―ジに分割することができる。
ロック図が図示されている。Zピクセル値を処理する部
分だけが図示されている。パイプライン802は、パイ
プライン802Aと802Bを表す。一つの実施の形態
では、パイプライン802はステ―ジ900A〜900
Hに分割される。しかし、他の実施の形態では、パイプ
ライン802はもっと多くの、またはもっと少ないステ
―ジに分割することができる。
【0075】Zパイプライン802の第1ステ―ジ(ス
テ―ジ900A)は、2つのソ―スのZピクセル・デ―
タ、即ち、一定Z値902とピクセル・デ―タ・マルチ
プレクサ332からのZ値(バス810上の共通Z指数
値とバス812上の固定小数点Z値とから成る)とを受
取るように構成されているマルチプレクサ906を含
む。処理方法400において、マルチプレクサ906
は、制御信号904に応じてバス810/812上にデ
―タを転送する。このデ―タはピクセル出力バス907
上で伝えられる。
テ―ジ900A)は、2つのソ―スのZピクセル・デ―
タ、即ち、一定Z値902とピクセル・デ―タ・マルチ
プレクサ332からのZ値(バス810上の共通Z指数
値とバス812上の固定小数点Z値とから成る)とを受
取るように構成されているマルチプレクサ906を含
む。処理方法400において、マルチプレクサ906
は、制御信号904に応じてバス810/812上にデ
―タを転送する。このデ―タはピクセル出力バス907
上で伝えられる。
【0076】ピクセル出力バス907はインバ―タ90
8とバレル・シフタ―912に連結されている。ステッ
プ414で、これらのユニットは、論理ゲ―ト910と
共に、バス907上のデ―タを固定小数点フォ―マット
530に変換する。このステップは、共通Z指数値の補
数に等しい量だけフォ―マット510の仮数部516を
シフトすることを含む。したがって、フォ―マット53
0の仮数部532は、フォ―マット510の仮数部51
6とは異なり、ステップ406で生成される共通Z指数
値に対応する指数値に結び付けられなければならない。
8とバレル・シフタ―912に連結されている。ステッ
プ414で、これらのユニットは、論理ゲ―ト910と
共に、バス907上のデ―タを固定小数点フォ―マット
530に変換する。このステップは、共通Z指数値の補
数に等しい量だけフォ―マット510の仮数部516を
シフトすることを含む。したがって、フォ―マット53
0の仮数部532は、フォ―マット510の仮数部51
6とは異なり、ステップ406で生成される共通Z指数
値に対応する指数値に結び付けられなければならない。
【0077】バス907上のデ―タ(共通Z指数値)の
最上位4ビットはインバ―タ908に伝えられる。次
に、反転されたビットは論理ゲ―ト910に伝えられ、
そこで制御信号916で修正される。したがって、論理
ゲ―ト910の出力は、バレル・シフタ912に供給さ
れる仮数部516の値のシフト計数である。例えば、共
通Z指数値が15(最大値)であれば、インバ―タ90
8で与えられるシフト数はゼロである。結果的には、シ
フタ912はシフトを行わない。逆に、0の共通Z指数
値によって、15のシフト数が作られる。
最上位4ビットはインバ―タ908に伝えられる。次
に、反転されたビットは論理ゲ―ト910に伝えられ、
そこで制御信号916で修正される。したがって、論理
ゲ―ト910の出力は、バレル・シフタ912に供給さ
れる仮数部516の値のシフト計数である。例えば、共
通Z指数値が15(最大値)であれば、インバ―タ90
8で与えられるシフト数はゼロである。結果的には、シ
フタ912はシフトを行わない。逆に、0の共通Z指数
値によって、15のシフト数が作られる。
【0078】バレル・シフタ912により、マルチプレ
クサ906から伝えられたデ―タから28ビットの固定
小数点仮数部532が作られる。このデ―タは、次のク
ロックサイクルでZクリップ試験ハ―ドウェアに伝える
ために、第1パイプライン・ステ―ジの端でラッチされ
る。また、バス907上の最上位の仮数ビットは、先行
ゼロ符号化ユニット914に伝えられる。ユニット91
4は、バス907上の仮数値の先行ゼロの数をパイプラ
イン・ステ―ジ900Bのハ―ドウェアに伝える。
クサ906から伝えられたデ―タから28ビットの固定
小数点仮数部532が作られる。このデ―タは、次のク
ロックサイクルでZクリップ試験ハ―ドウェアに伝える
ために、第1パイプライン・ステ―ジの端でラッチされ
る。また、バス907上の最上位の仮数ビットは、先行
ゼロ符号化ユニット914に伝えられる。ユニット91
4は、バス907上の仮数値の先行ゼロの数をパイプラ
イン・ステ―ジ900Bのハ―ドウェアに伝える。
【0079】パイプライン・ステ―ジ900Bでは、入
力バス812上のデ―タを正規化された浮動小数点数に
変換する第1の部分だけでなく、Zクリップ決定も行わ
れる。前のパイプライン・ステ―ジ900Aから転送さ
れたデ―タについてのZクリップ決定が比較器922に
よって行われる。比較器922Aは、p1_zfixバ
ス814上を伝達されるZピクセル値をzmin値92
0と比較する。同様に、比較器922Bは、バス814
上の値をzmax値918と比較する。Zピクセル値が
これらの値のいずれかの外にある時は、Z方向でクリッ
ピングが行われるべきである。したがって、論理ゲ―ト
924はその出力をアサ―トし、該出力は後のパイプラ
イン・ステ―ジ900Cでzp_zclip信号926
として伝えられる。更に、バス814上の固定小数点値
は、さらに処理するために深度キュ―イング・パイプラ
イン804に伝えられる。
力バス812上のデ―タを正規化された浮動小数点数に
変換する第1の部分だけでなく、Zクリップ決定も行わ
れる。前のパイプライン・ステ―ジ900Aから転送さ
れたデ―タについてのZクリップ決定が比較器922に
よって行われる。比較器922Aは、p1_zfixバ
ス814上を伝達されるZピクセル値をzmin値92
0と比較する。同様に、比較器922Bは、バス814
上の値をzmax値918と比較する。Zピクセル値が
これらの値のいずれかの外にある時は、Z方向でクリッ
ピングが行われるべきである。したがって、論理ゲ―ト
924はその出力をアサ―トし、該出力は後のパイプラ
イン・ステ―ジ900Cでzp_zclip信号926
として伝えられる。更に、バス814上の固定小数点値
は、さらに処理するために深度キュ―イング・パイプラ
イン804に伝えられる。
【0080】また、Zバッファ値の浮動小数点正規化
は、パイプライン・ステ―ジ900Bで始められる。z
値をフォ―マット510からフォ―マット520に変換
するために、仮数部516の最上位1ビットは、隠し1
の位置524にシフトされる必要がある。この処理は、
所定のZ値の仮数部514の先行ゼロの数を数えるユニ
ット914によって始められる。
は、パイプライン・ステ―ジ900Bで始められる。z
値をフォ―マット510からフォ―マット520に変換
するために、仮数部516の最上位1ビットは、隠し1
の位置524にシフトされる必要がある。この処理は、
所定のZ値の仮数部514の先行ゼロの数を数えるユニ
ット914によって始められる。
【0081】減算器936は、バス928上のZ値の先
行ゼロのこの数と共通Z指数値(バス930の最上位4
ビット)とを受取るように連結されている。減算器93
6は、共通指数値から先行ゼロの数を引いて、その結果
を差バス940に伝えるように構成されている。この結
果が負でない場合には、仮数部526の値(これは、正
規化されている)を生成するために、先行ゼロの数に1
を足した数に等しい数だけ仮数部516の値をシフトし
なければならない。この結果が負の場合(先行ゼロの数
の方が共通Z指数より大きい)には、これは、バス90
7上を伝えられる仮数部の値516を共通Z指数値だけ
シフトしなければならないことを示している(しかし、
これによって、正規化されない数が生じる)。
行ゼロのこの数と共通Z指数値(バス930の最上位4
ビット)とを受取るように連結されている。減算器93
6は、共通指数値から先行ゼロの数を引いて、その結果
を差バス940に伝えるように構成されている。この結
果が負でない場合には、仮数部526の値(これは、正
規化されている)を生成するために、先行ゼロの数に1
を足した数に等しい数だけ仮数部516の値をシフトし
なければならない。この結果が負の場合(先行ゼロの数
の方が共通Z指数より大きい)には、これは、バス90
7上を伝えられる仮数部の値516を共通Z指数値だけ
シフトしなければならないことを示している(しかし、
これによって、正規化されない数が生じる)。
【0082】したがって、減算器936は二つの出力、
即ち、差バス940(減算の結果)と(差バスが負の場
合にアサ―トされる)キャリーアウト信号942とを伝
える。差バス940は論理ゲ―ト938に伝えられる。
差バス940がゼロでなければ、論理ゲ―ト938は、
アサ―トされた信号934を加算器932に伝える。ま
た、加算器932は、バス928上の先行ゼロの数を受
取る。差バス940がゼロでなければ、加算器932は
先行ゼロの数に1を足した数をマルチプレクサ948に
伝える。マルチプレクサ948の他方の入力は、バス9
30から共通Z指数値を受取る。
即ち、差バス940(減算の結果)と(差バスが負の場
合にアサ―トされる)キャリーアウト信号942とを伝
える。差バス940は論理ゲ―ト938に伝えられる。
差バス940がゼロでなければ、論理ゲ―ト938は、
アサ―トされた信号934を加算器932に伝える。ま
た、加算器932は、バス928上の先行ゼロの数を受
取る。差バス940がゼロでなければ、加算器932は
先行ゼロの数に1を足した数をマルチプレクサ948に
伝える。マルチプレクサ948の他方の入力は、バス9
30から共通Z指数値を受取る。
【0083】このようにして、マルチプレクサ948の
出力(シフト計数)は、キャリーアウト信号942の値
に基づいて選択される。先行ゼロの数が共通Z指数値を
超えれば、共通Z指数値がマルチプレクサ956に送ら
れる。そうでなければ、バス944上の値が伝えられ
る。マルチプレクサ956は、これら2つの値の中の選
ばれ1つをパイプライン・ステ―ジ900Cに伝える。
信号916がアサ―トされていなければ、ステ―ジ90
0Cに伝えられるシフト計数は4である(これは、当該
値を変更することなくバス907上で通過させる効果を
持っている。これらの「喪失された」4ビットは、以下
に説明するように、再連結されるからである。)ことに
留意する必要がある。
出力(シフト計数)は、キャリーアウト信号942の値
に基づいて選択される。先行ゼロの数が共通Z指数値を
超えれば、共通Z指数値がマルチプレクサ956に送ら
れる。そうでなければ、バス944上の値が伝えられ
る。マルチプレクサ956は、これら2つの値の中の選
ばれ1つをパイプライン・ステ―ジ900Cに伝える。
信号916がアサ―トされていなければ、ステ―ジ90
0Cに伝えられるシフト計数は4である(これは、当該
値を変更することなくバス907上で通過させる効果を
持っている。これらの「喪失された」4ビットは、以下
に説明するように、再連結されるからである。)ことに
留意する必要がある。
【0084】マルチプレクサ950は、パイプライン8
02で処理されているZ値の最上位4ビットとしてマル
チプレクサ952にどの値を伝えるかを選択するために
使用される。Z値について浮動小数点モ―ドが選択され
ると(信号916がオン)、これらの4ビットは、図1
2のCに示す浮動小数点指数部522の値を形成する。
浮動小数点モ―ドが選ばれなければ、これらの4ビット
は図12のDに示す仮数部532の最上位仮数ビットと
なる。また、マルチプレクサ950で選択される値は、
キャリーアウト信号942の値に依存している。キャリ
ーアウト信号942が活動状態であれば、ゼロ定数94
6がマルチプレクサ952に伝えられる。この結果は指
数値をゼロに設定することになる。しかし、キャリーア
ウト信号942が非活動状態であれば、減算器936で
計算された差バス940上の値が、指数部522の値と
して伝えられる。
02で処理されているZ値の最上位4ビットとしてマル
チプレクサ952にどの値を伝えるかを選択するために
使用される。Z値について浮動小数点モ―ドが選択され
ると(信号916がオン)、これらの4ビットは、図1
2のCに示す浮動小数点指数部522の値を形成する。
浮動小数点モ―ドが選ばれなければ、これらの4ビット
は図12のDに示す仮数部532の最上位仮数ビットと
なる。また、マルチプレクサ950で選択される値は、
キャリーアウト信号942の値に依存している。キャリ
ーアウト信号942が活動状態であれば、ゼロ定数94
6がマルチプレクサ952に伝えられる。この結果は指
数値をゼロに設定することになる。しかし、キャリーア
ウト信号942が非活動状態であれば、減算器936で
計算された差バス940上の値が、指数部522の値と
して伝えられる。
【0085】マルチプレクサ950から伝えられる値
は、マルチプレクサ952を介してパイプライン・ステ
―ジ900Cに転送される。パイプライン・ステ―ジ9
00Cにおいて、マルチプレクサ952の出力はZ値の
最上位4ビットになる。上に説明したように、Z値が浮
動小数点フォ―マット520で表現されるものであれ
ば、これらの4ビットは指数値522を形成する。ま
た、パイプライン・ステ―ジ900Cは、浮動小数点フ
ォ―マット520に変換されているZ値の正規化を完成
させる。これは、バス930の仮数値を左にシフトする
バレル・シフタ958によって行われ、仮数部526の
値が生成される。この仮数値は、レジスタ960の指数
値と連結される。固定小数点Z値(信号916は非活動
状態)は変更されることなくレジスタ960に伝えられ
る。
は、マルチプレクサ952を介してパイプライン・ステ
―ジ900Cに転送される。パイプライン・ステ―ジ9
00Cにおいて、マルチプレクサ952の出力はZ値の
最上位4ビットになる。上に説明したように、Z値が浮
動小数点フォ―マット520で表現されるものであれ
ば、これらの4ビットは指数値522を形成する。ま
た、パイプライン・ステ―ジ900Cは、浮動小数点フ
ォ―マット520に変換されているZ値の正規化を完成
させる。これは、バス930の仮数値を左にシフトする
バレル・シフタ958によって行われ、仮数部526の
値が生成される。この仮数値は、レジスタ960の指数
値と連結される。固定小数点Z値(信号916は非活動
状態)は変更されることなくレジスタ960に伝えられ
る。
【0086】パイプライン・ステ―ジ900Dにおい
て、マルチプレクサ962は、ステ―ジ900Cから伝
えられるZ値と別のパイプラインから伝えられるピクセ
ル値とのうちのいずれかを選ぶ。ステ―ジ900E〜9
00Gは、ピクセル処理装置334の他のデ―タパス・
パイプラインとの整合を取るために存在している。ステ
―ジ900Hでは、浮動小数点Z値はバス964上で伝
えられる。好ましい実施の形態では、この値(正規化さ
れていても、いなくてもよい)は、浮動小数点フォ―マ
ット520で表される。この値は、隠面除去オペレ―シ
ョンのためにフレ―ムバッファ・インタ―フェイス33
6に、そして続いてフレ―ムバッファ100に伝えられ
る。本発明の好ましい実施の形態で使用される浮動小数
点フォ―マットでは、前から後ろに一様に単調に減少す
る数の分布が生じるので、Zバッファの比較には、簡単
な整数比較で十分である。
て、マルチプレクサ962は、ステ―ジ900Cから伝
えられるZ値と別のパイプラインから伝えられるピクセ
ル値とのうちのいずれかを選ぶ。ステ―ジ900E〜9
00Gは、ピクセル処理装置334の他のデ―タパス・
パイプラインとの整合を取るために存在している。ステ
―ジ900Hでは、浮動小数点Z値はバス964上で伝
えられる。好ましい実施の形態では、この値(正規化さ
れていても、いなくてもよい)は、浮動小数点フォ―マ
ット520で表される。この値は、隠面除去オペレ―シ
ョンのためにフレ―ムバッファ・インタ―フェイス33
6に、そして続いてフレ―ムバッファ100に伝えられ
る。本発明の好ましい実施の形態で使用される浮動小数
点フォ―マットでは、前から後ろに一様に単調に減少す
る数の分布が生じるので、Zバッファの比較には、簡単
な整数比較で十分である。
【0087】方法400を利用することによって、Z値
のより効率の高い処理が効果的に可能となる。変換され
たZ値を固定小数点フォ―マット(例えば、510)に
変換することによって、グラフィックス・パイプライン
内で色およびアルファ値を処理する同じハ―ドウェアの
再利用が可能である。パイプラインのピクセル処理ステ
―ジまでプリミティブ全体を単一のZ値で表すことで、
効率の向上が達成される。一つの実施の形態では、中間
の表現(即ち、フォ―マット520)として使用される
固定小数点フォ―マットを、Zクリップ試験や深度キュ
―イングのようなオペレ―ション用の等価な固定小数点
フォ―マットに変換することができる。
のより効率の高い処理が効果的に可能となる。変換され
たZ値を固定小数点フォ―マット(例えば、510)に
変換することによって、グラフィックス・パイプライン
内で色およびアルファ値を処理する同じハ―ドウェアの
再利用が可能である。パイプラインのピクセル処理ステ
―ジまでプリミティブ全体を単一のZ値で表すことで、
効率の向上が達成される。一つの実施の形態では、中間
の表現(即ち、フォ―マット520)として使用される
固定小数点フォ―マットを、Zクリップ試験や深度キュ
―イングのようなオペレ―ション用の等価な固定小数点
フォ―マットに変換することができる。
【0088】本発明のシステムおよび方法は、記載され
た実施の形態に関連して説明されたが、ここに示された
特定の形態に限定されることを意図したものではなく、
反対に、添付の特許請求の範囲で定義される本発明の精
神と範囲内に合理的に含まれる代替え物、変更物および
等価物を含むことを意図するものである。
た実施の形態に関連して説明されたが、ここに示された
特定の形態に限定されることを意図したものではなく、
反対に、添付の特許請求の範囲で定義される本発明の精
神と範囲内に合理的に含まれる代替え物、変更物および
等価物を含むことを意図するものである。
【図1】従来技術によるグラフィックス処理システムに
おけるZバッファリング処理を示す。
おけるZバッファリング処理を示す。
【図2】隠面除去が正しく行われた三次元物体の説明図
である。
である。
【図3】隠面除去が正しく行われなかった三次元物体の
説明図である。
説明図である。
【図4】隠面除去が正しく行われなかった三次元物体の
説明図である。
説明図である。
【図5】Z値の従来技術による数値表現によって生じる
精度の喪失を示す図である。
精度の喪失を示す図である。
【図6】本発明による三次元(3−D)グラフィックス
・アクセラレ―タを含むコンピュ―タ・システムを示す
図である。
・アクセラレ―タを含むコンピュ―タ・システムを示す
図である。
【図7】図6のコンピュ―タ・システムの簡単化された
ブロック図である。
ブロック図である。
【図8】本発明の好ましい実施の形態による3−Dグラ
フィックス・アクセラレ―タを説明するブロック図であ
る。
フィックス・アクセラレ―タを説明するブロック図であ
る。
【図9】本発明の好ましい実施の形態の3−Dグラフィ
ックス・アクセラレ―タの浮動小数点処理装置の一つを
説明するブロック図である。
ックス・アクセラレ―タの浮動小数点処理装置の一つを
説明するブロック図である。
【図10】本発明の一つの実施の形態の3−Dグラフィ
ックス・アクセラレ―タの描画処理装置の一つを説明す
るブロック図である。
ックス・アクセラレ―タの描画処理装置の一つを説明す
るブロック図である。
【図11】本発明の一つの実施の形態によるグラフィッ
クス・システムの処理パイプラインにおいてZ値を処理
する方法を図示するフロ―チャ―トである。
クス・システムの処理パイプラインにおいてZ値を処理
する方法を図示するフロ―チャ―トである。
【図12】A〜Dは、本発明の一つの実施の形態による
3−Dグラフィックス・アクセラレ―タ内で利用される
Z値の様々のフォ―マットを示す図である。
3−Dグラフィックス・アクセラレ―タ内で利用される
Z値の様々のフォ―マットを示す図である。
【図13】本発明の一つの実施の形態による指数比較器
装置を示すブロック図である。
装置を示すブロック図である。
【図14】本発明の一つの実施の形態による共通Z指数
値を格納するために使用されるヘッダ―・ワ―ドを示す
図である。
値を格納するために使用されるヘッダ―・ワ―ドを示す
図である。
【図15】本発明の一つの実施の形態によるピクセル処
理装置のブロック図である。
理装置のブロック図である。
【図16】本発明の一つの実施の形態によるZピクセル
値を処理するように構成されたパイプラインのブロック
図である。
値を処理するように構成されたパイプラインのブロック
図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America
Claims (31)
- 【請求項1】 グラフィックス・システムにおける第1
の組のz座標値を処理する方法であって、前記第1の組
のz座標値が第1幾何学的プリミティブの頂点に対応す
る方法において、 第1浮動小数点フォ―マットで表現される前記第1の組
のz座標値を受取るステップと、 前記第1の組のZ座標値を固定小数点フォ―マットに変
換するステップと、 前記固定小数点フォ―マットで表現された前記第1の組
のz座標値を用い第1の組のグラフィックス・オペレ―
ションを行うステップであって、て前記固定小数点フォ
―マットで表現される第2の組のz座標値を生成するス
テップと、 前記第2の組のz座標値を第2浮動小数点フォ―マット
に変換するステップと、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を用いて第2の組のグラフィックス・オ
ペレ―ションを行うステップと、を含む方法。 - 【請求項2】 前記第1浮動小数点フォ―マットで表現
される値が、仮数部と指数部を含む、請求項1に記載の
方法。 - 【請求項3】 更に、前記第1の組のz座標値の共通z
指数値を生成するステップを含む、請求項2に記載の方
法。 - 【請求項4】 前記共通z指数値を生成する前記ステッ
プが、 前記第1の組のz座標値の最大z座標値を決定するステ
ップと、 前記最大z座標値から前記共通z指数値を生成するステ
ップと、を含む、請求項3に記載の方法。 - 【請求項5】 前記の前記第1の組のグラフィックス・
オペレ―ションを行う前記ステップが、前記共通z指数
値を利用するステップを含む、請求項3に記載の方法。 - 【請求項6】 前記第1の組のz座標値を前記固定小数
点フォ―マットに変換する前記ステップが、前記共通z
指数値にしたがって前記第1の組のZ座標値をスケーリ
ングするステップを含む、請求項4に記載の方法。 - 【請求項7】 前記第1の組のグラフィックス・オペレ
―ションを行う前記ステップが、前記スケーリングされ
た第1の組のz座標値を利用するステップを含む、請求
項6の方法。 - 【請求項8】 前記第1の組のZ座標値が0.0より大
きいか又は1.0以下であり、所定の頂点に対する1.
0のz値が該所定の頂点が前方zクリッピング面にある
ことを示し、且つ、前記所定の頂点に対する0.0に接
近するz値が該所定の頂点が後方zクリッピング面に接
近していることを示す、請求項1に記載の方法。 - 【請求項9】 前記第1の組のグラフィックス・オペレ
―ションが前記第1幾何学的プリミティブのセットアッ
プ・オペレ―ションを含む、請求項1に記載の方法。 - 【請求項10】 前記第1の組のグラフィックス・オペ
レ―ションが前記第1幾何学的プリミティブの稜線補間
を含む、請求項1に記載の方法。 - 【請求項11】 前記第1の組のグラフィックス・オペ
レ―ションが前記第1幾何学的プリミティブのスパン補
間を含む、請求項1に記載の方法。 - 【請求項12】 前記固定小数点フォ―マットで表現さ
れる値が仮数部を含む、請求項3に記載の方法。 - 【請求項13】 前記第2の組のz座標値を前記第2浮
動小数点フォ―マットに変換する前記ステップが、前記
固定小数点フォ―マットで表現される前記第2の組のZ
座標値の各々の仮数部を正規化するステップを含み、前
記の正規化が、前記第2浮動小数点フォ―マットの仮数
部と指数部を生成するために前記共通Z指数値を利用す
るステップを含む、請求項12に記載の方法。 - 【請求項14】 前記第2の組のグラフィックス・オペ
レ―ションが、隠面除去を実現するためにZバッファ比
較を行うステップを含む、請求項1記載の方法。 - 【請求項15】 更に、浮動小数点Zバッファ・モ―ド
を使用可能にするステップを含み、前記第2の組のz座
標値を前記第2浮動小数点フォ―マットに変換するステ
ップおよび前記第2の組のグラフィックス・オペレ―シ
ョンを行う前記ステップが前記の使用可能にするステッ
プに応答して実行される、請求項1に記載の方法。 - 【請求項16】 第1グラフィックス・プリミティブの
頂点に対応するz座標値を処理するシステムであって、 第1グラフィックス・プリミティブに対応し且つ第1浮
動小数点フォ―マットで表現された第1の組のz座標値
を受取るように連結されている入力装置と、 前記入力装置から前記第1の組のz座標値を受取るよう
に連結され、前記第1の組のz座標値を固定小数点フォ
―マットに変換するように構成された浮動小数点‐固定
小数点変換装置と、 前記固定小数点フォ―マットの前記第1の組のz座標値
の表現を受取るように連結され、前記固定小数点フォ―
マットで表現された前記第1の組のz座標値を用いて第
1のグラフィックス・オペレ―ションを行って第2の組
のz座標値を生成するように構成された第1グラフィッ
クス処理装置と、 前記第1グラフィックス処理装置から前記第2の組のz
座標値を受取るように連結され、前記第2の組のz座標
値を第2浮動小数点フォ―マットに変換するように構成
された固定小数点‐浮動小数点変換装置と、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を受取るように連結され、前記第2浮動
小数点フォ―マットで表現された前記第2の組のz座標
値を用いて第2の組のグラフィックス・オペレ―ション
を行うように構成された第2グラフィックス処理装置
と、を具備するシステム。 - 【請求項17】 前記第1浮動小数点フォ―マットで表
現された値が仮数部と指数部を含む、請求項16に記載
のシステム。 - 【請求項18】 前記浮動小数点‐固定小数点変換装置
が前記第1の組のz座標値の共通z指数値を生成するよ
うに構成されている、請求項17に記載のシステム。 - 【請求項19】 前記浮動小数点‐固定小数点変換装置
が、前記第1の組のz座標値の最大z座標値を決定する
ように構成され、且つ更に、前記最大z座標値から前記
共通z指数値を生成するように構成されている、請求項
18に記載のシステム。 - 【請求項20】 前記第1グラフィックス処理装置が、
前記第1の組のグラフィックス・オペレ―ションを行う
際に前記共通z指数値を利用するように構成されてい
る、請求項18に記載のシステム。 - 【請求項21】 前記浮動小数点‐固定小数点変換装置
が、前記共通z指数値にしたがって前記第1の組のz座
標値をスケーリングするように構成されている、請求項
18に記載のシステム。 - 【請求項22】 前記第1グラフィックス処理装置が、
前記第1の組のグラフィックス・オペレ―ションを行う
際に前記スケーリングされた第1の組のz座標値を利用
するように構成されている、請求項21のシステム。 - 【請求項23】 前記第1の組のz座標値が0.0より
大きいか又は1.0以下であり、所定の頂点に対する
1.0のz値が該所定の頂点が前方zクリッピング面に
あることを示し、前記所定の頂点に対する0.0に接近
するz値が前記所定の頂点が後方zクリッピング面に接
近していることを示す、請求項16に記載の方法。 - 【請求項24】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブのセットアップ動作を行う
ように構成されている、請求項16に記載のシステム。 - 【請求項25】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブの稜線補間を行うように構
成されている、請求項16に記載のシステム。 - 【請求項26】 前記第1グラフィックス処理装置が前
記第1幾何学的プリミティブのスパン補間を行うように
構成されている、請求項16に記載のシステム。 - 【請求項27】 前記固定小数点フォ―マットで表現さ
れた値が仮数部を含む、請求項16に記載のシステム。 - 【請求項28】 前記固定小数点‐浮動小数点変換装置
が、前記固定小数点フォ―マットで表現された前記第2
の組のz座標値の各々の仮数部を正規化するように構成
され、更に、前記第2浮動小数点フォ―マットの仮数部
と指数部を生成するために前記共通z指数値を利用する
ように構成されている、請求項27に記載のシステム。 - 【請求項29】 前記第2グラフィックス処理装置が、
隠面除去を実現するためにZバッファ比較を行うように
構成されている、請求項16に記載のシステム。 - 【請求項30】 更に、浮動小数点Zバッファ・モ―ド
を使用可能にするように構成された制御装置を備え、前
記固定小数点‐浮動小数点変換装置が、前記浮動小数点
Zバッファ・モ―ドが使用可能にされることに応答して
前記第2の組のz座標値を前記第2浮動小数点フォ―マ
ットに変換するように構成されており、且つ、前記第2
グラフィックス処理装置が、前記浮動小数点Zバッファ
・モ―ドが使用可能にされることに応答して前記第2の
組のグラフィックス・オペレ―ションを行うように構成
されている、請求項16に記載のシステム。 - 【請求項31】 第1の組のz座標値を処理するシステ
ムであって、前記第1の組のz座標値が第1幾何学的プ
リミティブの頂点に対応するシステムにおいて、 第1浮動小数点フォ―マットで表現された前記第1の組
のz座標値を受取る受信手段と、 前記第1の組のz座標値を固定小数点フォ―マットに変
換する第1変換手段と、 前記固定小数点フォ―マットで表現された前記第1の組
のz座標値を用いて第1の組のグラフィックス・オペレ
―ションを行って、前記固定小数点フォ―マットで表現
された第2の組のz座標値を生成する第1グラフィック
ス処理手段と、 前記第2の組のz座標値を第2浮動小数点フォ―マット
に変換する第2変換手段と、 前記第2浮動小数点フォ―マットで表現された前記第2
の組のz座標値を用いて第2の組のグラフィックス・オ
ペレ―ションを行う第2グラフィクス処理手段と、を具
備するシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US040921 | 1998-03-18 | ||
| US09/040,921 US6115047A (en) | 1996-07-01 | 1998-03-18 | Method and apparatus for implementing efficient floating point Z-buffering |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11328438A true JPH11328438A (ja) | 1999-11-30 |
Family
ID=21913725
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11073848A Pending JPH11328438A (ja) | 1998-03-18 | 1999-03-18 | 高効率浮動小数点zバッファリングの方法および装置 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPH11328438A (ja) |
| KR (1) | KR19990078036A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003058905A (ja) * | 2001-08-21 | 2003-02-28 | Nintendo Co Ltd | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
| KR100762996B1 (ko) * | 2005-11-18 | 2007-10-04 | (주)디지탈아이엔터테인먼트 | 프로그램 기반의 3차원 그래픽 처리용 가속방법 |
| CN100378762C (zh) * | 2003-08-25 | 2008-04-02 | 威盛电子股份有限公司 | 减少z缓冲区流量的三维图形处理装置 |
| CN100442353C (zh) * | 2004-08-04 | 2008-12-10 | 辉达公司 | 用于浮点纹理数据的过滤单元 |
| JP2025509909A (ja) * | 2022-03-25 | 2025-04-11 | ソニーグループ株式会社 | メッシュジオメトリコーディング |
-
1999
- 1999-03-18 JP JP11073848A patent/JPH11328438A/ja active Pending
- 1999-03-18 KR KR1019990009202A patent/KR19990078036A/ko not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003058905A (ja) * | 2001-08-21 | 2003-02-28 | Nintendo Co Ltd | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
| CN100378762C (zh) * | 2003-08-25 | 2008-04-02 | 威盛电子股份有限公司 | 减少z缓冲区流量的三维图形处理装置 |
| CN100442353C (zh) * | 2004-08-04 | 2008-12-10 | 辉达公司 | 用于浮点纹理数据的过滤单元 |
| KR100762996B1 (ko) * | 2005-11-18 | 2007-10-04 | (주)디지탈아이엔터테인먼트 | 프로그램 기반의 3차원 그래픽 처리용 가속방법 |
| JP2025509909A (ja) * | 2022-03-25 | 2025-04-11 | ソニーグループ株式会社 | メッシュジオメトリコーディング |
Also Published As
| Publication number | Publication date |
|---|---|
| KR19990078036A (ko) | 1999-10-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6115047A (en) | Method and apparatus for implementing efficient floating point Z-buffering | |
| US6417858B1 (en) | Processor for geometry transformations and lighting calculations | |
| US5973705A (en) | Geometry pipeline implemented on a SIMD machine | |
| US8144158B2 (en) | Display system having floating point rasterization and floating point framebuffering | |
| US5268995A (en) | Method for executing graphics Z-compare and pixel merge instructions in a data processor | |
| US6275235B1 (en) | High precision texture wrapping method and device | |
| US6954204B2 (en) | Programmable graphics system and method using flexible, high-precision data formats | |
| US5896136A (en) | Computer graphics system with improved blending | |
| CN100442353C (zh) | 用于浮点纹理数据的过滤单元 | |
| EP0933729A2 (en) | Three-dimensional graphics accelerator | |
| JPH0935075A (ja) | 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム | |
| US6219062B1 (en) | Three-dimensional graphic display device | |
| JP3839871B2 (ja) | 三角形を表わす画素データを生成する装置 | |
| US7292239B1 (en) | Cull before attribute read | |
| US6778188B2 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
| US6681237B1 (en) | Exponentiation circuit for graphics adapter | |
| US6891538B1 (en) | Dual mode device and method for generating vector cross products or dot products | |
| US5732248A (en) | Multistep vector generation for multiple frame buffer controllers | |
| JP2883523B2 (ja) | 画像合成装置及び画像合成方法 | |
| US6850244B2 (en) | Apparatus and method for gradient mapping in a graphics processing system | |
| GB2302001A (en) | Computer graphics system having per pixel depth cueing | |
| US6784895B1 (en) | Programmable multiple texture combine circuit for a graphics processing system and method for use thereof | |
| JP3839870B2 (ja) | 四辺形を表わす画素データを生成する装置および方法 | |
| KR19990078036A (ko) | 유효한부동점제트버퍼링을구현하기위한방법및장치 | |
| EP0485833A2 (en) | A method for executing graphics color saturating arithmetic instructions in a data processor |