JP3557208B2 - 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム - Google Patents
高性能複数層zバッファを有するコンピュータ・グラフィックス・システム Download PDFInfo
- Publication number
- JP3557208B2 JP3557208B2 JP52554994A JP52554994A JP3557208B2 JP 3557208 B2 JP3557208 B2 JP 3557208B2 JP 52554994 A JP52554994 A JP 52554994A JP 52554994 A JP52554994 A JP 52554994A JP 3557208 B2 JP3557208 B2 JP 3557208B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- pixel
- buffer
- register
- value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Digital Computer Display Output (AREA)
Description
本発明はコンピュータ・グラフィックス・ディスプレイ・システムに関する。詳細にいえば、本発明はコンピュータ・グラフィックス・ディスプレイ・システムにおける高性能複数層Zバッファの装置および方法に関する。
発明の背景
コンピュータ・システムが適用されるのが増加している分野の1つに、グラフィック・アートの分野がある。コンピュータの速度、処理能力、およびメモリにおける技術進歩がコストが低いことと相俟って、コンピュータをグラフィックス表示システムで使用するのに理想的なものとしている。コンピュータで生成された表示によって、ユーザは2次元および3次元の物体を視覚化することが可能となった。ユーザはグラフィック・ディスプレイの情報内容を、同一の情報が他の形式で提示された場合に比べてより効果的にグループ化することができる。画像は1000語の言葉の価値がある。
さらに、コンピュータ・グラフィックスはコンピュータとユーザの間の自然でなめらかな対話ももたらす。ディスプレイに対する変更はコンピュータ入力され、コンピュータはディスプレイを適宜修正することによって、希望する変更を実施する。このプロセスは各種のイベントのモデル化、予測、および実験を行うのに便利な手段を提供する。また、高解像度ディスプレイ・スクリーンが開発されたことによって、ますます多くの複雑な形状のオブジェクトを、ますます精密に、かつ明瞭にレンダリングできるようになった。コンピュータ・グラフィックスの用途の例としては、パイロット訓練生のためのフライト・シミュレーション、エンジニアや建築家を援助するコンピュータ支援設計、医師用の診断医療スキャナ、映画やビデオ・ゲームにおけるアニメーションなどがある。
基本的に、コンピュータ・グラフィックス・システムは3つの主要構成要素に分けることができる。フレーム・バッファ、モニタ、およびディスプレイ制御装置である。フレーム・バッファは一連の2進値として表示される画像を格納するためのディジタル・メモリである。モニタはピクセルと呼ばれる画素のアレイを有するスクリーンで構成されている。各ピクセルはスクリーン上のドットを表し、特定の色または輝度にプログラムすることができる。このようにプログラムされた数千個の個々のピクセルを使用して、表示される画像を表す。フレーム・バッファに格納されるのはこれらの個々のピクセル値である。ディスプレイ制御装置はフレーム・バッファの内容をモニタに渡すために使用されるインターフェースである。ディスプレイ制御装置はディスプレイ・バッファからデータを読み取り、これをビデオ信号に変換する。ビデオ信号はモニタに供給され、モニタが画像を表示する。
画像は繰り返してディスプレイにレンダリングされ、新しい各フレームは表示される画像の新しい位置または形状を表す。スクリーン上に安定したピクセルを維持するには、画像を反復してモニタに送らなければならない。人間の目の保持能力によって、モニタを1秒間に最低限30回リフレッシュする必要がある。これを行わない場合、ディスプレイはきわめて不快で、混乱を引き起こす態様でちらつくこととなる。今日のコンピュータ・グラフィックス・システムでは、リフレッシュ周波数は通常約72ヘルツ(すなわち、1秒間に72回)である。リフレッシュ・レートが速ければ速いほど、ちらつきは少なくなる。それ故、画像表示の継続期間は比較的小さく、約1秒の1/72すなわち14ミリ秒である。これらの制約を与えた場合、応答時間が遅くなり、表示された画像の動きがぎこちなくなるのを避けるため、グラフィックスの描画プロセスの速度を上げることが不可欠である。さらに、画像の描画を速くできればできるほど、ディスプレイに与えることのできる情報は多くなる。これによってよりなめらかで、より動的で、しかもより明瞭な画像がもたらされる。
通常、フレーム・バッファに画像をレンダリングする3次元グラフィックス・レンダリング装置は、ピクセルごとにフレーム・バッファ自体には必要のない付加的な情報(たとえば、アルファ、Zなど)も格納している。アルファ値はブレンディング機能を表す。Z値はユーザからのピクセルの距離を表す。通常、小さいZ値はオブジェクトが観察者に近いことを示し、大きいZ値はオブジェクトが離されていることを示す。ピクセルごとの付加的なZの格納を通常、Zバッファと呼ぶ。
通常DRAMの形態でZバッファを実現することにより、Z値を格納することができる。Zバッファはあるオブジェクトが他のオブジェクトの前に表示されるのか、後ろに表示されるのかを示す際に使用される距離情報を含んでいる。最も一般的なZバッファでは、Zソート操作を着信データのZ値を既存のデータのZ値と比較することによって行っている。着信データがより近いものであれば(すなわち、Z値がより小さい)、着信カラー・データがフレーム・バッファ内の既存のデータと置き換えられ、古いZ値は新しいZ値で置き換えられる。他の場合には、着信データは廃棄される。他の着信データがなくなった場合、Z値は完全なものとなり、各フレーム・バッファ内容/Zバッファの位置はその特定なピクセルに対する最終的なカラー/輝度を表す。
Zソート操作はデータによって表されるすべてのオブジェクトが不透明である場合、比較的単純なものである。しかしながら、バッファ内のオブジェクトが不透明でない場合には、廃棄されるデータに関する情報を保持し、ピクセルの最終的なカラー輝度を判定する必要がある。データの損失を避けるために、多くのZバッファ・システムでは、すべての不透明データのレンダリングの後で、すべての非不透明データをレンダリングすること、および非不透明データをZソート順(たとえば、最も近いものから最も遠いものへ)でレンダリングすることが必要であった。バッファ内の不透明オブジェクトの背後にある非不透明オブジェクトは廃棄される。残っている非不透明オブジェクトはフレーム・バッファ内のデータと複合され、結果がフレーム・バッファに格納されるので、必要な情報が失われることはない。複合操作を特定のZの順序で行わなければならないため、非不透明オブジェクトをZ深さごと(すなわち、近いものから遠いもの、あるいは遠いものから近いもの)に配列してから、バッファ内のデータのZ値と比較しなければならない。
残念なことに、非不透明オブジェクトをレンダリングするこの方法は幾つもの欠点を有している。Z値ごとに非不透明オブジェクトをソートするのは、多大な演算能力を必要とする。また、この方法は非不透明オブジェクトを正しく解釈してレンダリングするものではない。これらのオブジェクトを明示的に調べ、特別な処理を行わなければならず、これは演算能力をさらに増加させる。したがって、Zソート処理を行うと、画像を実際に描画するのに残された時間が少なくなり、これは表示プロセス全体に悪影響を及ぼす。
非不透明オブジェクトのレンダリングの問題を解決するための、これらの欠点を回避した他のシステムが提案されている。これらのシステムは通常ピクセルごとに2つ以上のZ値およびカラー値を格納し、若干数の最も近い非不透明オブジェクトをセーブし、後で複合することを可能としている。しかしながら、これらのシステムでは、ピクセル当たり複数のZ値を維持し、ソートするのに必要なZバッファRAMアクセスの数を大幅に増加させることが必要である。このことはZバッファ・メモリの帯域幅の要件を高くし、性能を低下させたり、コストを増加させたりする。しかしながら、この方法の利点はピクセルごとのZソートが完了するまで複合を遅らせることで、これは後でより近いオブジェクトによって覆われるオブジェクトの不必要な複合を回避することによって性能を改善する。
したがって、従来技術のコンピュータ・グラフィックス・システムでは、Z操作を行うのに必要な時間を最小限とする事のできる装置または方法が必要であった。このような装置または方法がZソートの完了後まで、非不透明オブジェクトの複合に必要なデータを失うことなく、複合を遅らせることができれば好ましい。このような機構がDRAMのアクセス回数を最小限とすることができればきわめて好ましい。
発明の概要および目的
本発明はコンピュータ・グラフィックス・システムに適用される。ピクセルの各々のZ値を含んでいる複数層Zバッファは、各ピクセルに対して用いられる2つのレジスタの値にしたがって制御される。一方のレジスタはActiveLayersレジスタと呼ばれ、見える可能性のあるオブジェクト・データが何枚の層を占めているかを示す値を含む。他方のレジスタはLayerPointerレジスタと呼ばれ、各層に対するデータを格納するメモリ・ロケーションを示すポインタ値を含む。
1つのフレームが完全にレンダリングされた後、ActiveLayersレジスタは0に初期化される。第1の着信オブジェクトはActiveLayersレジスタを増加させる。次の着信オブジェクトが不透明なオブジェクトの背後におかれるものである場合には、これが不透明であるか否かにかかわりなく、廃棄される。次の着信オブジェクトが不透明なものである(かつ、隠されない)場合には、ActiveLayersレジスタはその着信不透明オブジェクトの背後に隠される既存の各オブジェクトに対して1回減分される。次いで、着信不透明オブジェクトを反映するようにActiveLayersレジスタが増分され留。それ以外の場合、次の着信オブジェクトが非不透明であれば(かつ、隠されない)、ActiveLayersレジスタは増分される。
LayerPointerレジスタは実装される層の数に等しい数のポインタを含んでいる。各ポインタは一意のアドレスを指定する。着信オブジェクトが既存の不透明オブジェクトの背後に隠される場合には、着信オブジェクトは廃棄され、LayerPointerレジスタは変化せず、そのままである。それ以外の場合には、着信オブジェクトを挿入しなければならない層が決定される。この決定はバッファ内にすでに存在しているZ値に関する着信オブジェクトのZ値に基づいて行われる。着信オブジェクトの不透明度がActiveLayersレジスタに影響を及ぼす。着信オブジェクトのデータはポインタが指定したアドレスに書き込まれる。よって、ポインタが適宜調整される。
現在好ましい実施形態において、着信データは最後の層に対応するポインタが指定したアドレスに書き込まれる。着信データに対するInsertLasyerが決定される。最後の層からのポインタがInsertLayerに挿入される。InsertLayerのものの後に層のすべてのポインタは右へ1つシフトする。InsertLayerの左側に対するポインタは変化せず、そのままである。ActiveLayersレジスタおよびLayerPointerレジスタの値を操作すると、Zバッファリング・プロセスが最適化される。
【図面の簡単な説明】
本発明を添付図面の各図に一例として、限定を行うことなく、説明する。図中、同様な参照符号は同様な要素を示す。
第1図は、本発明の好ましい実施形態が実現されるコンピュータ・システムの図である。
第2図は、走査線Zバッファリングを利用したグラフィックス・システムのブロック図である。
第3図は、着信不透明オブジェクトと着信非不透明オブジェクトの処理方法のさまざまな組合せを示す図である。
第4図は、本発明のActiveLayersレジスタおよびLayerPointerレジスタが6つの連続した着信データに対して作動する態様の例を示す図である。
第5図は、LayerPointerレジスタを維持するための機構の1つを示す回路図である。
第6図は、Zソート中に行われる操作を示す流れ図である。
詳細な説明
コンピュータ・グラフィックス・システムにおける高性能複数層Zバッファを説明する。以下の記載において、説明のために、レジスタ、ビット長、層数などの各種の特定の詳細を、本発明を完全に理解するために記載する。当分野の技術者には、しかしながら、本発明をこれらの特定の細部なしに実施できることが明らかであろう。他の場合には、本発明を不必要に曖昧なものとしないために、周知の構造および装置をブロック図の形で示した。
第1図を参照すると、本発明の好ましい実施形態を実施できるコンピュータ・システムが100で示されている。コンピュータ・システム100はディジタル・データの内部伝送のためのバス101を含んでいる。ディジタル・データを処理するための中央演算処理装置102には、情報を処理するためにバス101が結合されている。さらに、多数のコプロセッサ103をバス101に結合して、付加的な処理能力および速度を得ることができる。
コンピュータ・システム100はさらにランダム・アクセス・メモリ(RAM)104(メイン・メモリと呼ぶ)を含んでおり、これもバス101に結合されている。メイン・メモリ104は情報およびプロセッサ102によって実行される命令を格納する際に使用される。メイン・メモリ104はCPU102による実行中に一時変数やその他の中間情報を格納するためにも使用される。コンピュータ・システム100は読取り専用メモリ(ROM)あるいはその他のタイプのスタティック記憶装置106も含んでいる。ROM106はバス101に結合されており、プロセッサ102に対する静的情報および命令を格納するために使用される。データ記憶装置107(たとえば、ハード・ディスク装置、フロッピー・ディスク装置など)をバス101に結合して、情報および命令を格納することもできる。
バス101には、ハードウェア・グラフィックス・アクセラレータ108、フレーム/Zバッファ109、およびディスプレイ制御装置110も結合されている。ハードウェア・グラフィックス・アクセラレータ108はインタラクティブ3Dグラフィックス・ソフトウェアの拡張機能を加速するように設計されている。該アクセラレータはASIC、スタティックRAMキャッシュ、およびテクスチャ・マッピングRAMを含んでいる。アクセラレータ108は高帯域幅ピクセル・ストリームをフレーム/Zバッファ109に出力する。同時に、ホストCPU102は、アクセラレータ108に入力され、これによってレンダリングされるプリミティブを含んでいる信号を生成する。ディスプレイ制御装置110はコンピュータ・システム100をディスプレイ装置121にインターフェースする。
ディスプレイ装置121の1例としてはコンピュータ・ユーザに対して情報を表示するために使用される陰極線管(CRT)がある。キーボードなどの英数字入力装置122をバス101ならびにカーソル制御装置123に結合することもできる。カーソル制御装置123は表示装置121上でのカーソルの運動を制御するために使用される。この入力装置は通常、2つの軸、すなわち第1軸(たとえば、x)および第2軸(たとえば、y)に2度の自由度を有しており、これによって、装置は平面上の任意の位置を指定することができる。本発明においては、Z軸に第3の自由度を有する3次元カーソルが利用されている。カーソル制御装置123の例としては、マウス、ジョイスティック、トラックボール、タッチ・パッドなどがある。
本発明は従来のスクリーンZバッファリングならびに走査線Zバッファリング技法にも同等に適用できる。スクリーンZバッファリングの場合、ピクセルのレンダリングに必要な状態情報は、スクリーン上のすべてのピクセルに関して格納される。レンダリングされる各オブジェクトは別々に変形され、ラスタ化される。従来のスクリーンZバッファリング技法はきわめて高い帯域幅ならびに大量の高速メモリを伴うことがよくあり、また複雑なキャッシングおよびプリフェッチ機構と結合されることがよくある。これに対して、走査線Zバッファリングはスクリーン空間でオブジェクト・データベースを事前ソートし、各走査線を個別にレンダリングする。ピクセル状態情報の走査線1本が保持される。
第2図は走査線Zバッファリングを利用したグラフィックス・システムを示すブロック図である。ホストCPU201は変形、シェーディング、および活動リスト保守のために使用される。走査線ラスタライザ202はZバッファ203によるシェーディングおよび陰面除去、シャドウ・ボリューム、ならびにアルファ・ブレンディング204を行う。ラスタライザ202は活動ポリゴン・リストから走査線とともに転送されてきたポリゴンに交差し、一連の水平スパンを生成する。得られたスパンはラスタ化される。さらに、陰面除去、シャドウ平面テスト、およびアルファ・ブレンディングが行われる。レンダリングが開始されるのは、CPU201が3Dデータベースを走査し、変形ポリゴン、投影ポリゴン、部分ポリゴン、およびシェード付きポリゴンを生成したときである。ポリゴンはこれらが最初に活動状態となった第1走査線の番号ごとにバケット・ソートされる。主データベースの走査が完了すると、ホストはバケット・ソートされたリストをスクリーンのY順に走査し、RGBフレーム・バッファ205へのレンダリングのためにラスタライザ202に転送された活動ポリゴン・リストを維持する。
Z値は23ビットの部分正規化仮数部と8ビットの指数部を備えた浮動小数点数として表される。また、オブジェクトがフロントフェーシング(frontfacing)の場合にアサートされる1ビットのタグもある。比較の際に、2つのZ値が等しい場合には、着信オブジェクトがフロントフェーシングかどうかを判断する必要がある。その目的のために設計されたフラグがオブジェクトにある。着信オブジェクトがフロントフェーシングの場合、これはバッファ内にあるオブジェクトの前にあるとみなされる。本発明において、Zバッファは不透明ならびに非不透明なオブジェクトを処理するために複数の層と複数のピクセルで構成されている。任意の数の層およびピクセルを本発明で実施できるが、現在好ましい実施形態では、8枚の層と8個のピクセルを利用している。
特定のピクセルに対する着信データのZ値は、これをバッファ内のどこにおくか、あるいはおくべきかどうかが判定されるまで、このバッファ内の各層と比較される。ソート処理を最適化するために、各ピクセルに関連づけられたActiveLayersレジスタとLayerPointerレジスタという2つのレジスタがある。ActiveLayersレジスタは見える可能性のあるオブジェクト・データが何枚の層を占めているかを示す。非不透明オブジェクトがサポートされているため、合成操作が完了するまで、オブジェクトが見えるのかどうかはわからない。LayerPointerレジスタは各層のデータをどのメモリ・ロケーションに格納するのかを示す。
これら2つのレジスタの作動をここで詳細に説明する。ActiveLayersレジスタはまずゼロに初期化される。最初のオブジェクトを受け取ったら、これをActiveLayersレジスタの指示にしたがってZバッファの層に書き込む。ActiveLayersレジスタがゼロに初期化されているので、最初のオブジェクトは層0に書き込まれ、ActiveLayersレジスタは1増分される。次の着信オブジェクトを受け取ったら、これを層0のオブジェクトのZ値と比較する。着信オブジェクトの不透明度はActiveLayersレジスタだけに影響を及ぼし、LayerPointerレジスタにも、Zバッファにも影響を及ぼさない。着信オブジェクトを書き込むかどうかは、バッファおよびオーバフロー内のオブジェクトの不透明度によって決定される。その書込み位置は相対Z値によって決定される。
第3図は着信不透明オブジェクトと非不透明オブジェクトをどのように処理するかのさまざまな組合せを示す。オブジェクトがさまざまな層にどのように割り当てられるかをActiveLayersレジスタに行われる変更とともに示す、考えられる組合せの各々の例が挙げられている。例1において、ActiveLayersレジスタは、レンダリング完了後にゼロという値に初期化される。着信オブジェクト301を受け取るたびに、これをActiveLayersレジスタによって指定される層に書き込む。例1において、最初のオブジェクトは不透明であり、層0に書き込まれる。次いで、ActiveLayersレジスタは1増分される(すなわち、0から1へ増分される)。例2において、第2の着信オブジェクト302を受け取る。オブジェクト302は不透明であり、オブジェクト301よりも小さいZ値を有している(すなわち、オブジェクト302はオブジェクト301よりも視点に近い)。オブジェクト302に対応する着信データが層0に書き込まれる。ActiveLayersレジスタの内容は変更されず、そのままである(すなわち、1にセットされたままである)。オブジェクト301に対応するデータが効果的に上書きされたことに留意されたい。LayerPointerだけが変化し、データは依然ZバッファRAMに存在している。それ故、着信オブジェクトが既存の不透明オブジェクトの背後におかれる場合には、着信オブジェクトは不透明なオブジェクトの背後に「隠され」、したがって、廃棄できる。
例3は第2の着信オブジェクト302が層0に存在しているオブジェクト301よりも大きいZ値を有している場合に生じるイベントを説明している。オブジェクト302が不透明オブジェクト301の背後に「隠される」ため、その着信データは安全に廃棄できる。他はすべて同じである。例4において、着信オブジェクト303は非不透明であり、小さいZ値を有している。それ故、オブジェクト301に対応するデータは移動させられて、層1に対応するようになり、着信データは層0に書き込まれる。ActiveLayersレジスタは2へ増分される。例5において、着信非不透明オブジェクトは大きいZ値を有している。したがって、その着信データは廃棄される。
例6〜9を参照すると、既存のオブジェクト304は非不透明である。例6において、着信オブジェクト305は不透明で、小さいZ値を有している。それ故、着信データは層0に書き込まれ、オブジェクト304に関連するデータは廃棄される。着信不透明オブジェクト305が大きいZ値を有している場合には、そのデータは層1に対応する。ActiveLayersレジスタは2へ増分される。オブジェクト304に対応するデータは例7に示す層1に格納されたままである。
例8は着信オブジェクトが非不透明であり、Z値が小さい場合に生じるイベントを示す。このような状況のもとで、既存のオブジェクト304に対応するデータは層1に移動させられ、着信データは層0に書き込まれ、ActiveLayersレジスタは1つ増分され2となる。例9において、着信非不透明オブジェクト306は大きいZ値を有している。したがって、着信データは変更されて、層1に対応するようになり、ActiveLayersレジスタは2へ増分される。次の表1は着信データに関連した考えられる8つの異なるシナリオをリストしたものである。
ActiveLayersレジスタを実現することによって、可視となりうるオブジェクトを含んでいる層だけが、ソート操作中に比較される。ActiveLayersレジスタまたはその同等物を使用しないと、着信データを8枚の層すべてについて調べることが必要となることに留意されたい。オブジェクト・データの読取りおよび書込みはZバッファDRAMにアクセスする必要があるため、速度の点で負担がかかるものである。典型的な従来技術のZバッファが1枚、多くても2枚の層しか持っておらず、ソート操作を完了するのには、1回または2回の読取りだけしか要しないことに留意されたい。複数の層はZソートを複雑にするが、複合操作を遅らせ、非不透明データを整理する必要を排除するために必要である。
ActiveLayersレジスタは遮られたオブジェクトのZバッファからの除去も単純化する。何らかのオブジェクトが不透明なオブジェクトの背後におかれた場合には、これをバッファから除去しなければならず、これはRAMへの書込みが必要となる。RAMへ書き込む代わりに、ActiveLayersレジスタの値を調節して、新しい条件を反映するようにする。
さらに、ActiveLayersレジスタは8枚の層の各々を最大Z値(すなわち、無限大)に初期化する必要を排除することによって時間を節減する。その代わりに、各フレームが完全にレンダリングされた後に、ActiveLayersレジスタをゼロにリセットする。典型的な従来技術のZバッファにおいては、すべてのZ値を書き込んで、最大値および透明オブジェクト・データにしなければならなかった。
ZバッファDRAMのアクセスを最小とするために、ActiveLayersレジスタに加えて、第2のレジスタ、すなわちLayerPointerレジスタが設けられる。LayerPointerレジスタは利用される層の数と等しい数のポインタを含んでいる。現在好ましい実施形態において、8つの3ビット・ポインタが利用される。ポインタは8枚の層の各々に対応するオブジェクトのデータの一意のアドレスを含んでいる。第1のポインタは層0に対応している。第2のポインタは層1に対応している。以降の各ポインタは層7までの以降の各層に対応している。
LayerPointerレジスタのこれらのポインタを利用することによって、ある層から他の層へのオブジェクトの移動は本質的に、Zバッファに対する実際の読取りおよび書込みを行うことなく、シミュレートすることができる。本発明は既存のオブジェクトのデータの読取り、他の層へのその書込み、および着信データの第1層への書込みを必要としない。その代わりに、本発明はポインタ値を操作することによって同じ結果を達成する。現在好ましい実施形態において、最下位のポインタ(すなわち、層7に対応するもの)を使用して、Zバッファに書き込まれる着信オブジェクトのアドレスを指定する。換言すると、着信データが層7に対応するポインタが指定したアドレスに書き込まれる。
第4図は本発明のActiveLayersレジスタおよびLayerPointerレジスタが6つの連続した着信データに対して作動する例を示す。フレームのレンダリングが完了すると、ActiveLayersレジスタは0に初期化され、LayerPointerレジスタは各ポインタが一意のアドレスを指定するようにセットされる。ポインタを何らかの順序で指定する必要はないが、各ポインタが一意のアドレスを指定しなければならないことに留意されたい。本例において、8つの3ビットポインタが次のアドレスに初期化される。それぞれ層0〜7に対応する7、6、5、4、3、2、1および0である。
最初の着信オブジェクト401は不透明であり、15というZ値を有している。層7に対応するポインタは0というアドレスを指定する。これは最初のオブジェクトであるから、データを層0に挿入しなければならない。ActiveLayersレジスタは増分される。1桁右へのバルブ・シフトがLayerPointerレジスタの層0〜7に行われる。それ故、ActiveLayersレジスタが1になり、LayerPointerレジスタの内容は0、7、6、5、4、3、2および1になる。アドレス0に格納されている着信データは層0に適切におかれることを留意されたい。
第2の着信オブジェクト402は不透明であり、10というZ値を持っている。そのデータは層7のポインタが指定したアドレスに書き込まれる。この場合、データはアドレス1に書き込まれる。オブジェクト402のZ値はオブジェクト401のものと比較される。オブジェクト402が不透明であり、オブジェクト401よりも小さいZ値を有しているので、オブジェクト401はオブジェクト402の背後に隠される。したがって、着信データを層0に挿入しなければならない。ActiveLayersレジスタは変化せず、そのままである。右へのバレル・シフトがLayerPointerレジスタの層0〜7で行われるので、1、0、7、6、5、4、3および2となる。層0のポインタがオブジェクト402のデータを含んでいるアドレスを適正に指定していることに留意されたい。また、オブジェクト401のデータが依然アドレス0に残っているが、ActiveLayersレジスタが1枚の層だけを指定するのであるから、このデータは無意味にレンダリングされることにも留意されたい。
第3の着信オブジェクト403は非不透明であり、8というZ値を持っている。オブジェクト403のデータは層7のポインタによる指定にしたがってアドレス2に書き込まれる。8というZ値がオブジェクト402に対する10というZ値よりも小さいのであるから、オブジェクト403はオブジェクト402の前にある。したがって、着信データを層0に挿入しなければならない。オブジェクト403が非不透明なのであるから、オブジェクト402に対応したデータを依然維持しなければならない。それ故、ActiveLayersレジスタは増分される。右へのバレル・シフト操作がPointerLayerレジスタの層0〜7に対して行われる。LayerPointerレジスタはここで2、1、0、7、6、5、4および3を読み取る。結果として、ActiveLayersレジスタは2枚の層(すなわち、層0および1)を指定する。層0のポインタはオブジェクト403のデータを含んでいるアドレス2を適正に指定し、また層1のポインタはオブジェクト402のデータを含んでいる1というアドレスを指定する。
第4の着信オブジェクト404は非不透明であり、9というZ値を持っている。層7のポインタは3というアドレスを指定する。着信データはそのアドレスに書き込まれる。オブジェクト403のZ値<オブジェクト404のZ値<オブジェクト402のZ値であるから、オブジェクト404のデータを層1のオブジェクト403と402の間に挿入しなければならない。オブジェクト402のデータを変更して、層2に対応するようにするとともに、オブジェクト403のデータを層0のままにしておかなければならない。これはレベル1〜7だけに対して右へバレル・シフト操作を行うことによって達成される。LayerPointerレジスタの得られる内容は2、3、1、0、7、6、5、および4となる。ActiveLayersレジスタは増分される。それ故、最初の3枚の層のポインタはアドレス2、3および1を指定し、これらのアドレスはそれぞれオブジェクト403、404、および402のものに対応している。
第5の着信オブジェクト405は非不透明であり、11というZ値を持っている。このオブジェクトが不透明なオブジェクト402の背後におかれるので、着信データは廃棄される。ActiveLayersレジスタにも、LayerPointerレジスタにも変更は行われない。
第6の着信オブジェクト406は不透明であり、5というZ値を持っている。オブジェクト406は既存のオブジェクト402〜404のすべての前にあり、これらを隠す。着信データはアドレス4に書き込まれ、層0に挿入される。右へのバレル・シフトがLayerPointerレジスタの層0〜7に対して行われるので、該レジスタは4、2、3、1、0、7、6、および5を読み取る。さらに、ActiveLayersレジスタは1にリセットされる。指摘しておくべきなのは、ActiveLayersレジスタおよびLayerPointerレジスタを修正するのは、レジスタが占めるビット数がはるかに少ないので、DRAMにアクセスして、最大Z値および透明アルファ値を書き込むのよりもはるかに迅速なことである。
1実施形態において、着信オブジェクトをチェックして、これがZバッファの最後部のオブジェクトの背後におかれるのかどうか判定する。このオブジェクトが最後部のオブジェクトの背後におかれ、不透明である場合には、着信データは廃棄される。最後部のオブジェクトが不透明ではない場合、着信データはその背後におかれ、ActiveLayersレジスタおよびLayerPointerレジスタは適宜修正される。本実施形態において、着信データを廃棄すべきかどうかの判定には、1回の比較が必要なだけである。
第5図はLayerPointerレジスタ500を維持するための機構の1つを示す回路図である。着信オブジェクトのデータを挿入すべき層(すなわち、InsertLayer)が決定されると、回転および挿入信号が次の表2にしたがって生成される。挿入層は、着信オブジェクトのZ値および不透明度、Zバッファに既に格納されているオブジェクトのZ値および不透明度にしたがって決定される。
上位マルチプレクサ501〜508は、特に着信オブジェクトがZバッファ内の他の既存のオブジェクトの前におかれる状況で、ポインタを回転させるために使用される。回転操作は右へのバレル・シフトによって行われる。右へのバレル・シフトはライン521上の8ビットのディジタル回転信号にしたがって実行される。8ビットの各々は8つのマルチプレクサ501〜508の各々を制御する。換言すると、回転信号の制御ビット0はマルチプレクサ501を制御し、ビット1はマルチプレクサ502を制御するなどとなる。制御ビットはマルチプレクサへの2つの入力のうちどちらに出力すべきかを選択する。LayerPointerレジスタ500が8枚の層を有しており、層あたり3ビット、合計24ビットを有していることに留意されたい。各マルチプレクサはLayerPointerレジスタから供給される2つの3ビットの入力を有している。制御ビットが0の場合、特定のポインタに対応する3つのビットがライン523の出力に対して選択される。逆に、制御ビットが1の場合には、3つの連続した次の有効ビットがライン524の出力に対して選択される。たとえば、制御ビット0が0の場合、LayerPointerレジスタ500のビット0〜2がマルチプレクサ501による出力に対して選択される。制御ビット0が1であった場合、ビット3〜5がマルチプレクサ501による出力に対して選択される。
下位マルチプレクサ511〜518は層7に関連したポインタを、着信データの受信前に、着信オブジェクトを挿入すべき層に移動するために使用される。挿入操作はライン522上の8ビットのディジタル挿入信号にしたがって行われる。挿入信号の8つの制御ビットの各々は8つのマルチプレクサ511〜518の1つを制御する。制御ビットは出力のために、マルチプレクサへの2つの入力信号のうち1つを選択する。入力信号の一方は上位マルチプレクサの1つからの3ビットの出力である。他方の入力信号はLayerPointerレジスタ500の3つの最下位ビットである(すなわち、層7のポインタに対応しているビット0〜2)。たとえば、挿入信号の制御ビット0が0である場合、マルチプレクサ511はマルチプレクサ501からの3ビットの出力を選択して、ライン524に出力する。制御ビット0が1の場合、マルチプレクサ511はLayerPointerレジスタ500のビット0〜2を選択して、ライン524に出力する。
このLayerPointer回路の作動を第4図に示し、上述した着信オブジェクトを参照して説明する。ライン525のリセット信号はLayerPointerレジスタ500を7、6、5、4、3、2、1、および0=111110101100011010001000に初期化する。オブジェクト401に対応するデータを受け取った場合、そのInsertLayerは0であると判断される。表2を参照すると、0というInsertLayerは0×7F=01111111という回転信号に代わり、挿入信号は0×80=10000000になる。回転信号にしたがって、マルチプレクサ501はビット3〜5を選択して出力し、マルチプレクサ502はビット6〜8を選択し、マルチプレクサ503はビット9〜11を選択し、マルチプレクサ504はビット12〜14を選択し、マルチプレクサ505はビット15〜17を選択し、マルチプレクサ506はビット18〜20を選択し、マルチプレクサ507はビット21〜23を選択し、マルチプレクサ508はビット21〜23を選択する。また、挿入信号にしたがって、マルチプレクサ511〜517はそれぞれマルチプレクサ501〜507の出力を選択し、マルチプレクサ518はビット0〜2を選択して、出力する。結果として、層0〜6に対するポインタは右へシフトされる。層7に対応するポインタは層0に挿入される。LayerPointerレジスタの得られる内容は、000111110101100011010001=0、7、6、5、4、3、2、1となる。
第6図はZソート中に行われる操作を示す流れ図であり、ActiveLayersレジスタおよびLayerPointerレジスタの内容が計算される。第1の操作、ステップ601において、LayerCounterが0に初期化され、RAM読取りアドレス(RAdd)がLayerPointer[0]に初期化され、RAM書込みアドレス(WAdd)がLayerPointer[7]に初期化される。次いで、ActiveLayersレジスタが0であるかどうかの判断が行われる(ステップ602)。0である場合には、ActiveLayersレジスタが1に増分され、InsertLayerが0にセットされ、ZInが書込みアドレスのRAMに書き込まれる。ActiveLayersレジスタが0でない場合には、オブジェクトの各々に対するZ値が比較される(ステップ604)。着信オブジェクトのZ値が現在層0と関連づけられているZ値よりも近いものである場合には、ステップ605が行われる。そうでない場合には、ステップ617が実行される。ステップ617において、着信オブジェクトのZ値が現在層0と関連づけられているZ値と等しいかどうか、Frontビットがセットされているかどうかの判断が行われる。そうである場合には、ステップ605が実行される。そうでない場合には、ステップ609が実行される。
ステップ605において、着信オブジェクトが不透明であるかどうかの判断が行われる。着信オブジェクトが不透明な場合には、ActiveLayersレジスタがLayerCounter+1にセットされる(ステップ606)。InsertLayerはLayerCounterにセットされ、ZInが書込みアドレスのRAMに書き込まれる(ステップ607)。着信オブジェクトが不透明ではないと判断された場合には、ActiveLayersレジスタが増分される(ステップ608)。ステップ607において、InsertLayerがLayerCouterにセットされ、ZInが書き込まれる。
ステップ609において、LayerCounterが増分される。LayerCounterがActiveLayersと等しいかどうかが判断される(ステップ610)。両者が等しい場合、これはRAM内に比較のためのZ値がもうないことを意味する。この場合には、最後の層のオブジェクトが不透明であるかどうかの判断が行われる(ステップ611)。最後の層のオブジェクトが不透明でない場合には、ステップ608が実行される。それ以外の場合には、ZInは可視ではなく、廃棄される(ステップ612)。
LayerCounterがActiveLayersレジスタの値と等しくない場合には、Zバッファをチェックして、該バッファがいっぱいかどうかを判断することが必要となる(ステップ613)。ActiveLayersレジスタの値が最大層(たとえば、8)に等しい場合、これはZバッファがいっぱいであることを意味する。次いで、層8のオブジェクトが不透明であるかどうかの判断が行われる(ステップ614)。不透明である場合には、ZInは廃棄される(ステップ612)。それ以外の場合には、オーバフロー状態と判断される(ステップ615)。しかしながら、ActiveLayersレジスタの値が最大層と等しくない場合には、ZInはRAM内の他のZ値と比較される。次の層に対する読取りアドレスは、LayerPointerレジスタを読み取ることによって判断される。ZInが新しい読取りアドレスを使用して、RAMから読み取られたZ値と比較される(ステップ616)。次いで、ステップ604が繰り返される。
これで、高性能複数層Zバッファを有するコンピュータ・グラフィックス・システムが開示された。
Claims (3)
- コンピュータ・システムであって:
複数の表示用オブジェクトのデータを生成するプロセッサを備え;
前記プロセッサに結合され、相対的表示深さにそれぞれ対応する複数の層に対応できるように構成されたZバッファを備え、1ピクセルについての前記データを前記Zバッファの複数のメモリ・ロケーションに格納でき;
前記Zバッファ中のメモリ・ロケーションを示すアドレスをそれぞれ含むポインタが1ピクセルにつき複数あり、前記Zバッファに結合されていて、少なくとも1ピクセル分の前記複数と同数のポインタを格納できる第1メモリを備え、
前記第1メモリに結合され、当該1ピクセルについて、Z値をそれぞれ有する複数のオブジェクトに含まれる1つのオブジェクトを、前記複数の層の何れの層へ挿入すべきかを決定できる回路を備え、前記挿入により、当該1つのオブジェクトが、それよりも大きなZ値を持つ他のオブジェクトの手前に示されるように、ポインタのアドレスの選択的更新がなされ;
当該1ピクセルについて見える可能性のあるデータが含まれている前記層の数を格納する第2メモリを備え、見える可能性のあるデータは、最も手前の不透明オブジェクトおよび不透明オブジェクトより手前の非不透明に関するデータである
ことを特徴とする、コンピュータ・システム。 - コンピュータ・システムにおいて、Zバッファ中のデータを維持する方法であって:
複数の表示用オブジェクトのデータを生成するステップを備え;
相対的表示深さにそれぞれ対応する複数層に構成されたZバッファに、1ピクセルについての前記データを格納するステップを備え、オブジェクトはより小さなZ値を持つ方が、より大きなZ値を持つオブジェクトよりも手前にあり;
当該1ピクセルについて、前記Zバッファの層に対応していて当該層に対応するデータを格納するアドレスをそれぞれ特定する複数のポインタを、第1レジスタに格納するステップを備え;
着信オブジェクトのデータを挿入する挿入層を、前記着信オブジェクトのZ値に依存して決定するステップを備え、前記第1レジスタ中のポインタのアドレスは、前記着信オブジェクトのデータの挿入を反映する選択的更新がなされ;
当該1ピクセルについて見える可能性のあるデータが含まれている前記層の数を、前記Zバッファに既に格納されているオブジェクトのZ値および不透明度に対する、前記着信オブジェクトのZ値および不透明度に従って決定し、第2レジスタに格納するステップを備える、
Zバッファ中のデータを維持する方法。 - Z値およびカラー値をそれぞれ含む複数のオブジェクト・データをピクセルごとに格納し、ソート操作の後でデータの合成をするコンピュータ・システムにおいて:
表示するオブジェクト・データを生成するプロセッサを備え;
Z値がそれぞれ含まれる所定数のデータをピクセル毎に格納し得るZバッファを備え、前記Zバッファは、前記所定数と同数のメモリ・ロケーションをピクセル毎に有していて前記所定数と同数の層に構成され、前記層に対応する前記メモリ・ロケーションは、ポインタ値によってピクセル毎に示され;
前記所定数と同数のポインタ値を、ピクセル毎に、前記所定数と同数の前記層と前記メモリ・ロケーションとの対応が示されるよう格納する第1レジスタを備え、前記第1レジスタ中のポインタ値の順序を変えることによって、Z値が含まれるデータについてある層から他の層への移動をピクセル毎にシミュレートすることができ;
見える可能性のあるデータが含まれている前記層の数をピクセル毎に格納する第2レジスタを備え、見える可能性のあるデータは、最も手前の不透明オブジェクトおよび不透明オブジェクトより手前の非不透明オブジェクトに関するデータであり;
前記プロセッサから着信するZ値が含まれるデータが、ピクセル毎に、前記第1レジスタによって示される前記Zバッファの最後の層に格納され、そして、Z値および不透明度に関するソート操作が、ピクセル毎に、前記第2レジスタによって示される数の前記見える可能性のあるデータが含まれている前記層について前記Zバッファ中のデータに応じて行われ、データの合成が、前記第2レジスタによって示される数の前記見える可能性のあるデータが含まれている前記層について、行われる
ことを特徴とするコンピュータ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6029993A | 1993-05-10 | 1993-05-10 | |
US08/060,299 | 1993-05-10 | ||
PCT/US1994/004993 WO1994027240A1 (en) | 1993-05-10 | 1994-05-06 | Computer graphics system having high performance multiple layer z-buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09500462A JPH09500462A (ja) | 1997-01-14 |
JP3557208B2 true JP3557208B2 (ja) | 2004-08-25 |
Family
ID=22028631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52554994A Expired - Lifetime JP3557208B2 (ja) | 1993-05-10 | 1994-05-06 | 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5920687A (ja) |
JP (1) | JP3557208B2 (ja) |
AU (1) | AU6783594A (ja) |
GB (1) | GB2293079B (ja) |
WO (1) | WO1994027240A1 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3580682B2 (ja) * | 1997-09-26 | 2004-10-27 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置および方法 |
US6747645B1 (en) * | 1998-03-13 | 2004-06-08 | Hewlett-Packard Development Company, L.P. | Graphics memory system that utilizes detached-Z buffering in conjunction with a batching architecture to reduce paging overhead |
US6456285B2 (en) * | 1998-05-06 | 2002-09-24 | Microsoft Corporation | Occlusion culling for complex transparent scenes in computer generated graphics |
US6359629B1 (en) | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
US6674485B2 (en) | 1998-08-31 | 2004-01-06 | Hitachi Software Engineering Co., Ltd. | Apparatus and method for image compositing |
GB2343601B (en) * | 1998-11-06 | 2002-11-27 | Videologic Ltd | Shading and texturing 3-dimensional computer generated images |
US6404425B1 (en) * | 1999-01-11 | 2002-06-11 | Evans & Sutherland Computer Corporation | Span-based multi-sample z-buffer pixel processor |
US7472910B1 (en) * | 1999-03-30 | 2009-01-06 | Canon Kabushiki Kaisha | Animation display apparatus, arcade game machine, control method and apparatus thereof, and storage medium |
US6657635B1 (en) | 1999-09-03 | 2003-12-02 | Nvidia Corporation | Binning flush in graphics data processing |
AU780003B2 (en) * | 2000-03-30 | 2005-02-24 | Canon Kabushiki Kaisha | Optimising pixel generation from compositing stack |
AU782744B2 (en) * | 2000-10-25 | 2005-08-25 | Aristocrat Technologies Australia Pty Limited | Gaming graphics |
AUPR100600A0 (en) * | 2000-10-25 | 2000-11-16 | Aristocrat Technologies Australia Pty Limited | Gaming graphics |
US6636212B1 (en) | 2000-11-14 | 2003-10-21 | Nvidia Corporation | Method and apparatus for determining visibility of groups of pixels |
US6989840B1 (en) * | 2001-08-31 | 2006-01-24 | Nvidia Corporation | Order-independent transparency rendering system and method |
US7043701B2 (en) * | 2002-01-07 | 2006-05-09 | Xerox Corporation | Opacity desktop with depth perception |
US7113183B1 (en) | 2002-04-25 | 2006-09-26 | Anark Corporation | Methods and systems for real-time, interactive image composition |
US8006196B2 (en) * | 2004-09-10 | 2011-08-23 | Presagis | Multi-application graphic display environment |
US7688319B2 (en) * | 2005-11-09 | 2010-03-30 | Adobe Systems, Incorporated | Method and apparatus for rendering semi-transparent surfaces |
CN101617354A (zh) | 2006-12-12 | 2009-12-30 | 埃文斯和萨瑟兰计算机公司 | 用于校准单个调制器投影仪中的rgb光的系统和方法 |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3648250A (en) * | 1970-11-13 | 1972-03-07 | Nasa | Digital video display system using cathode-ray tube |
US4475104A (en) * | 1983-01-17 | 1984-10-02 | Lexidata Corporation | Three-dimensional display system |
US4594673A (en) * | 1983-06-28 | 1986-06-10 | Gti Corporation | Hidden surface processor |
US4697178A (en) * | 1984-06-29 | 1987-09-29 | Megatek Corporation | Computer graphics system for real-time calculation and display of the perspective view of three-dimensional scenes |
US4658247A (en) * | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4679041A (en) * | 1985-06-13 | 1987-07-07 | Sun Microsystems, Inc. | High speed Z-buffer with dynamic random access memory |
US4954818A (en) * | 1985-10-18 | 1990-09-04 | Hitachi, Ltd. | Multi-window display control system |
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 |
US5001651A (en) * | 1986-11-10 | 1991-03-19 | Auto-Trol Technology Corporation | Method and apparatus for interpolating groups of pixels on a scan line |
US4815009A (en) * | 1987-04-21 | 1989-03-21 | Xerox Corporation | Algorithm for filling an image outline |
US4866637A (en) * | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US4885703A (en) * | 1987-11-04 | 1989-12-05 | Schlumberger Systems, Inc. | 3-D graphics display system using triangle processor pipeline |
US4945500A (en) * | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US4897803A (en) * | 1987-11-23 | 1990-01-30 | Xerox Corporation | Address token based image manipulation |
FR2628553B1 (fr) * | 1988-03-08 | 1990-11-09 | Labo Electronique Physique | Systeme graphique video muni d'un curseur graphique |
US4970499A (en) * | 1988-07-21 | 1990-11-13 | Raster Technologies, Inc. | Apparatus and method for performing depth buffering in a three dimensional display |
JP2690110B2 (ja) * | 1988-08-15 | 1997-12-10 | 沖電気工業株式会社 | 走査変換方法 |
US5101365A (en) * | 1988-10-31 | 1992-03-31 | Sun Microsystems, Inc. | Apparatus for extending windows using Z buffer memory |
US5249264A (en) * | 1988-11-14 | 1993-09-28 | International Business Machines Corporation | Image display method and apparatus |
US5159663A (en) * | 1988-11-22 | 1992-10-27 | Wake Robert H | Imager and process |
US5128872A (en) * | 1988-12-20 | 1992-07-07 | Sun Microsystems, Inc. | Method and apparatus for determining line positions for display and manipulation by a computer system |
US4970636A (en) * | 1989-01-23 | 1990-11-13 | Honeywell Inc. | Memory interface controller |
US5157388A (en) * | 1989-02-14 | 1992-10-20 | Intel Corporation | Method and apparatus for graphics data interpolation |
US5081698A (en) * | 1989-02-14 | 1992-01-14 | Intel Corporation | Method and apparatus for graphics display data manipulation |
US5081700A (en) * | 1989-02-15 | 1992-01-14 | Unisys Corporation | Apparatus for high speed image rotation |
US5027292A (en) * | 1989-04-19 | 1991-06-25 | International Business Machines Corporation | Multiple depth buffers for graphics and solid modelling |
US5214753A (en) * | 1989-07-31 | 1993-05-25 | Shographics, Inc. | Video system with parallel attribute interpolations |
JP2523889B2 (ja) * | 1989-08-25 | 1996-08-14 | 松下電器産業株式会社 | 隠れ面処理装置 |
US5043921A (en) * | 1989-10-23 | 1991-08-27 | International Business Machines Corporation | High speed Z-buffer control |
US5222204A (en) * | 1990-03-14 | 1993-06-22 | Hewlett-Packard Company | Pixel interpolation in perspective space |
US5490238A (en) * | 1990-03-19 | 1996-02-06 | Evans & Sutherland Computer Corporation | Attribute blending system for composing computer-graphic images from objects |
US5123085A (en) * | 1990-03-19 | 1992-06-16 | Sun Microsystems, Inc. | Method and apparatus for rendering anti-aliased polygons |
US5268995A (en) * | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US5261041A (en) * | 1990-12-28 | 1993-11-09 | Apple Computer, Inc. | Computer controlled animation system based on definitional animated objects and methods of manipulating same |
JPH07122908B2 (ja) * | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
US5278949A (en) * | 1991-03-12 | 1994-01-11 | Hewlett-Packard Company | Polygon renderer which determines the coordinates of polygon edges to sub-pixel resolution in the X,Y and Z coordinates directions |
US5339386A (en) * | 1991-08-08 | 1994-08-16 | Bolt Beranek And Newman Inc. | Volumetric effects pixel processing |
TW225595B (ja) * | 1991-09-03 | 1994-06-21 | Gen Electric | |
US5274760A (en) * | 1991-12-24 | 1993-12-28 | International Business Machines Corporation | Extendable multiple image-buffer for graphics systems |
US5428716A (en) * | 1991-12-26 | 1995-06-27 | International Business Machines Corporation | Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
US5313586A (en) * | 1992-03-06 | 1994-05-17 | Intel Corporation | Co-processor de-coupling bus structure |
US5497453A (en) * | 1993-01-05 | 1996-03-05 | International Business Machines Corporation | Method and apparatus for detecting and visualizing interferences between solids |
US5394523A (en) * | 1993-01-22 | 1995-02-28 | Taligent, Inc. | Polymorphic graphic device |
-
1994
- 1994-05-06 JP JP52554994A patent/JP3557208B2/ja not_active Expired - Lifetime
- 1994-05-06 AU AU67835/94A patent/AU6783594A/en not_active Abandoned
- 1994-05-06 WO PCT/US1994/004993 patent/WO1994027240A1/en active Application Filing
- 1994-05-06 GB GB9522916A patent/GB2293079B/en not_active Expired - Lifetime
-
1995
- 1995-06-07 US US08/479,827 patent/US5920687A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB9522916D0 (en) | 1996-01-10 |
GB2293079B (en) | 1997-07-02 |
WO1994027240A1 (en) | 1994-11-24 |
JPH09500462A (ja) | 1997-01-14 |
US5920687A (en) | 1999-07-06 |
AU6783594A (en) | 1994-12-12 |
GB2293079A (en) | 1996-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5583974A (en) | Computer graphics system having high performance multiple layer Z-buffer | |
JP3557208B2 (ja) | 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム | |
US6587112B1 (en) | Window copy-swap using multi-buffer hardware support | |
US6326964B1 (en) | Method for sorting 3D object geometry among image chunks for rendering in a layered graphics rendering system | |
US6552723B1 (en) | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline | |
US5990904A (en) | Method and system for merging pixel fragments in a graphics rendering system | |
US6924808B2 (en) | Area pattern processing of pixels | |
KR100478767B1 (ko) | 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템 | |
US5808617A (en) | Method and system for depth complexity reduction in a graphics rendering system | |
US5949428A (en) | Method and apparatus for resolving pixel data in a graphics rendering system | |
US6774910B2 (en) | Method and system for providing implicit edge antialiasing | |
US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
US5949423A (en) | Z buffer with degree of visibility test | |
US20030174136A1 (en) | Multipurpose memory system for use in a graphics system | |
US6166743A (en) | Method and system for improved z-test during image rendering | |
EP0740272A2 (en) | Method and apparatus for fast rendering of three-dimensional objects | |
JP3645024B2 (ja) | 描画装置及び描画方法 | |
WO2003046836A1 (en) | Image processing apparatus and constituent parts thereof, rendering method | |
JPH0727581B2 (ja) | 図形処理装置 | |
EP0870282A1 (en) | Method and apparatus for span and subspan sorting rendering system | |
GB2226479A (en) | Method and apparatus for fractional double buffering | |
US6930684B2 (en) | Method and apparatus for accelerating occlusion culling in a graphics computer | |
US6812928B2 (en) | Performance texture mapping by combining requests for image data | |
US20030169277A1 (en) | Pipelined 2D viewport clip circuit | |
US5416893A (en) | Method for displaying edging or decaling of an object in a graphics display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040317 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040517 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110521 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110521 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120521 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |