JPH06223196A - ビデオバッファのリサイクル方法及び装置 - Google Patents

ビデオバッファのリサイクル方法及び装置

Info

Publication number
JPH06223196A
JPH06223196A JP5304229A JP30422993A JPH06223196A JP H06223196 A JPH06223196 A JP H06223196A JP 5304229 A JP5304229 A JP 5304229A JP 30422993 A JP30422993 A JP 30422993A JP H06223196 A JPH06223196 A JP H06223196A
Authority
JP
Japan
Prior art keywords
buffer
frame
rendering
value
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5304229A
Other languages
English (en)
Inventor
Kevin Martin
マーティン ケヴィン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Network Computing Devices Inc
Original Assignee
Network Computing Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Computing Devices Inc filed Critical Network Computing Devices Inc
Publication of JPH06223196A publication Critical patent/JPH06223196A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】 ビデオサブシステムによってレンダリングす
ることのできる秒当たりのフレーム数を著しく増加する
方法及び装置を提供する。 【構成】 各フレームにZバッファをクリアせずにビデ
オサブシステムによって三次現像をレンダリングする方
法であって、Zバッファ及びシーケンス番号をメモリに
確立し、各次々のフレームをレンダリングしながらシー
ケンス番号を増加し、シーケンス番号が所定値に達した
ときにZバッファをクリアすることによりZバッファを
クリア動作間に何回もリサイクルし、更に、シーケンス
番号が所定値に達するか又はクリア動作に割り当てられ
た所定時間がきたときに、Zバッファのクリア動作を行
えるようにZバッファの精度を調整し、更に、多数のカ
ラーマップIDを使用して、現在フレームに含まれたデ
ータを手前のフレームのデータから区別し、手前のフレ
ームに関連したカラーマップIDを全てバックグランド
カラーに対してマップし、現在フレームのデータのみを
表示したままにするレンダリング方法。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、ビデオディス
プレイ装置に係り、より詳細には、グラフィック像をレ
ンダリングすることのできるビデオディスプレイ装置に
係る。
【0002】
【従来の技術】コンピュータに使用するためのビデオデ
ィスプレイ装置は、数十年にわたって知られている。最
も一般的なビデオディスプレイ装置は、モノクロの陰極
線管とASCIIキャラクターのみをテキストとして表
示できるサポート電子装置とで構成される。
【0003】最近、グラフィック像を表示する能力をも
つビデオディスプレイ装置が紹介されている。このよう
なディスプレイの典型的な実施においては、スクリーン
上の各ピクセルの色、輝度等の属性が像バッファに維持
される。像バッファとは、スクリーン上に表示される少
なくとも各ピクセルに関する適当な情報を記憶するに充
分な記憶容量を有した単なるメモリアレイであり、スク
リーン上に表示される膨大な情報は多数の像バッファに
よって記憶することができる。
【0004】三次元像のビデオ表示は、通常、形成され
ている対象物体のワイヤフレームモデルの構造を含む
が、多くのグラフィックディスプレイは、ワイヤフレー
ムモデル全体を単に表示するだけである。最近、実際の
対象物体の概観を密接に近似するやり方で立体的な三次
元像をスクリーン上にレンダリングすることのできるデ
ィスプレイ装置及びそれに関連したソフトウェアが紹介
されている。対象物体のレンダリングには、通常、「隠
れた」面、即ち実際の物体を見たときに隠れる面を削除
し、ディスプレイ上に見える面は、実際の物体を見てい
る人から見える面だけとなるようにすることが含まれ
る。例えば、上から立方体の右側を見るときには、3つ
の面が見えそして3つの面が隠れる。立方体のコンピュ
ータ表現は、通常、(ワイヤフレームモデルが全ての辺
を示すように)6面全部を表示するに充分な情報を含む
が、スクリーン上にその物体を立体的にレンダリングす
ると、それを見ている人が通常見える3つの面のみが表
示されることになる。
【0005】三次元像のレンダリングは、通常、像バッ
ファに対して若干小さい二次元メモリアレイであるZバ
ッファを使用することによって形成される。このZバッ
ファの機能は、基準点より前方の各ピクセルの距離を記
憶することである。Z値の大きいピクセルは、Z値の小
さいピクセルの前方にあると仮定され、従って、レンダ
リングを形成するプロセスは、所与の対象物体に対して
各ピクセルのZ値を計算しそして対象物体又はその面が
重畳する場合にはZ値の最も大きい(即ち、それを見て
いる人に最も近い)ピクセルを保持するという概念的に
簡単なプロセスとなる。上記した立方体の表示に戻る
と、隠れた面は、見える面よりもZバッファ値が小さ
い。
【0006】ビデオ情報のフレームに対しZバッファを
像表示プロセスに組み込むと、次の3つの基本的な段階
が生じる。即ち、(1)Zバッファを最小のZ値に初期
化する。(2)像バッファをバックグランドカラーに初
期化する。(3)全ての対象物体をレンダリングする。
【0007】
【発明が解決しようとする課題】ピクセルのスクリーン
に対してZ値を計算するプロセスは概念的には簡単であ
るが、このような計算を迅速に行う必要性によって顕著
な問題が生じる。三次元レンダリングを行うことのでき
るビデオディスプレイの基本的な性能尺度は、1秒当た
りにレンダリングすることのできるフレームの数であ
る。動いている錯覚を与えるためには少なくとも10フ
レーム/秒が必要であり、フレームレートが高い程、動
きの見掛けを大巾に改善する。従来のシステムに表示さ
れる簡単な像に対し、像バッファとZバッファの両方が
各フレームの始めにクリアされる場合には、これら像バ
ッファ及びZバッファをクリアするに要する時間が、フ
レームレートを決定する重要なファクタとなる。
【0008】そこで、ビデオディスプレイスクリーン上
に三次元像をレンダリングするプロセスにおいて像バッ
ファ及びZバッファの両方をクリアする必要性を実質上
低減する方法及び装置が要望されている。
【0009】
【課題を解決するための手段】本発明は、各フレームの
始めにZバッファをクリアせずにビデオディスプレイ上
に三次元物体をレンダリングすることのできる方法及び
装置の第1の実施例を提供することにより公知技術の多
数の制約を克服する。更に別の実施例においては、各フ
レームの始めに像バッファをクリアするのを不要とする
方法及び装置が提供される。これら2つの実施例を組み
合わせ、各フレームの始めに像バッファもZバッファも
クリアする必要のないようにしてビデオディスプレイに
三次元像をレンダリングする方法及び装置を提供するこ
ともできる。
【0010】典型的な実施例においては、バッファは1
6フレームごとに一度クリアするだけでよく、従って、
フレームレートを約16倍も増加することができる。
【0011】本発明は、簡単な意味では、Zバッファ又
は像バッファのいずれか又は両方のピクセルデータに使
用されるデータビットにシーケンス番号を追加するもの
と考えることができる。便宜上、本発明の方法はここで
はZバッファのみを参照して要約するが、像バッファの
リサイクル(繰り返し動作)にも同じ方法が使用され
る。
【0012】Zバッファの例を用いると、シーケンス番
号は、Z値の数字的に最上位のビットに連結された1つ
以上のビットとして与えられる。例えば、本発明の整数
での実施例においては、ZバッファはZ値として24ビ
ットを有しそしてシーケンス番号として8ビットを有
し、全部で32ビットを有する。種々の用途では、シー
ケンス番号及びZ値として他のサイズも受け入れられ
る。
【0013】動作に際し、Zバッファは最初にクリアさ
れる。Zバッファをクリアすることは、シーケンス番号
部分と、従来のZバッファデータ部分とをクリアするこ
とを含む。次いで、第1フレームの対象物体が、全く従
来のZバッファの隠れた面の除去アルゴリズムを用いて
従来のやり方でレンダリングされる。第1フレームのレ
ンダリングが完了した後に、ZバッファのZ値はピクセ
ルごとに広範に変化するか、シーケンス番号はそのフレ
ームの各ピクセルに対しゼロのままである。24ビット
のZバッファの場合には、各ピクセルのZ値は0ないし
24−1の間に制限され、或いはフレーム間にサイズZ
gap の「ギャップ」が設けられる場合には、各ピクセル
のZ値が0ないし224−Zgap の間に制限される。
【0014】従来の動作においては、第2のフレームを
始める前にZバッファが再びクリアされる。しかしなが
ら、本発明では、第2フレームのレンダリングはシーケ
ンス番号を1にセットすることによって開始され、これ
は、Zバッファ部分と一緒に考えると、第2フレームの
最小Z値を224にセットすることに等しい。第2フレー
ムのZ値は、ここで、224ないし〔224+224−1〕の
範囲に制限され、従って、第2フレームの各ピクセル
は、第1フレームのピクセルの最大Z値よりも大きい複
合Z値/シーケンス番号を有することになる。ここで
も、フレーム間に値Zgap の「ギャップ」が設けられる
場合には、第2フレームの最大Z値が〔224+224−Z
gap 〕となる。概念的な意味においては、Z値が大きい
程、スクリーンに「接近」するようにレンダリングされ
るので、第2フレームは第1フレームの「前方」にレン
ダリングされる。
【0015】それに続く各フレームは、次第に大きなシ
ーケンス番号で開始され、各次々のフレームは手前のフ
レームの前方にレンダリングされる。このように、最大
シーケンス番号に到達するまでZバッファをクリアする
必要がなく、8ビットのシーケンス番号の場合には、Z
バッファは256フレームごとに一度だけクリアすれば
よい。これは、ビデオコントローラによりレンダリング
することのできる大巾な性能上昇(フレーム/秒で測定
して)を表す。
【0016】シーケンス番号をZ値に追加することは、
以下に好ましい実施例に述べるように一連の段階で行う
こともできるし、3Dレンダリングパイプラインの最終
変換マトリクスの変更によって行うこともできる。
【0017】又、本発明は、整数値ではなくて浮動小数
点値をZバッファに用いて実施することもできる。この
ような実施例では、特殊なビット数がシーケンス番号と
して割り当てられない。そうではなくて、各次々のフレ
ームに浮動小数点値が追加され、この浮動小数点値は、
各次々のフレームが各手前のフレームの前方でレンダリ
ングされるよう確保するに充分な大きさのものである。
この方法及び装置の他の部分は、整数での実施例の場合
と実質的に同じである。
【0018】全ての実施例に必要とされるものではない
本発明の付加的な特徴においては、Zバッファをクリア
しようとする要望と、高いZバッファ精度を得ようとす
る要望とのバランスをとるための技術が提供される。特
に、Z値とシーケンス番号との組み合わせに対して32
ビットのバッファサイズが与えられる場合に、全ての場
合にZバッファを例えば24ビットにそしてシーケンス
番号を8ビットに固定する必要はない。むしろ、各フレ
ームのレンダリングと、その後のフレームをレンダリン
グするのに残されたシーケンス番号の組み合わせの数と
を慎重にマネージすることにより、Z値に使用されるビ
ットの数と、シーケンス番号に使用されるビットの補数
とを変えることができる。Zバッファのクリアが必要と
されるかどうかを評価する目的で変数を確立し、次い
で、Zバッファの精度と、Zバッファをクリアする前に
レンダリングすることのできるフレームの数とを調整で
きるようにこの変数値を変えることにより、Zバッファ
をクリアする間の周期を長くすることとZバッファの精
度を高くすることとの兼ね合いをとってクリア段階をス
ケジュールする方法が提供される。このようなスケジュ
ーリングは、より一般的に適用することができ、プロセ
ッサをベースとするシステム内の非常に多数のアカウン
ティングタスクを取り扱うのに使用できる。
【0019】本発明の1つの特徴は、リサイクル方法
が、Zバッファに既に書き込まれているビットの修正を
必要としないことである。
【0020】上記したように、同様のリサイクル方法を
像バッファにも適用することができる。このような構成
は、同様の性能改善をもたらす。Zバッファの場合と同
様、像バッファはカラーマップIDを含むように拡張さ
れ、最初のフレームに任意のカラーマップIDが割り当
てられる。各次々のフレームには、使用できるビット数
又はハードウェアの他の観点によって課せられる限界ま
で、異なるカラーマップIDが割り当てられる。各フレ
ームごとに、そのフレームに関連したカラーマップが初
期化され、現在カラーマップIDをもたないピクセルが
そのフレームのバックグランドカラーに対してマップさ
れる。Zバッファのリサイクル技術を像バッファのリサ
イクル技術と組み合わせて、パーソナルコンピュータ、
ワークステーション又はグラフィックターミナルのビデ
オサブシステムのスループットを著しく増加することが
できる。Zバッファのリサイクルの場合と同様に、本発
明の像バッファのリサイクル方法も、像バッファに既に
書き込まれているビットの修正を必要としない。
【0021】本発明の方法は、浮動小数点形態でも整数
形態でも実施できるが、現在のところは整数での実施が
一般的に好ましい。
【0022】そこで、本発明の1つの目的は、ビデオサ
ブシステムによってレンダリングすることのできる1秒
あたりのフレーム数を大巾に増加する方法及び装置を提
供することである。
【0023】本発明の別の目的は、ビデオサブシステム
のZバッファのクリア動作を回避しながらもビデオ情報
の多数のフレームをレンダリングできるようにする方法
を提供することである。
【0024】本発明の更に別の目的は、像バッファのク
リア動作を回避しながらもビデオ情報の多数のフレーム
を表示できるようにする方法を提供することである。
【0025】本発明の更に別の目的は、Zバッファのク
リア動作とZバッファの分解能との間にバランスを保つ
ようにZバッファのクリア動作を調整する方法を提供す
ることである。
【0026】本発明の更に別の目的は、ビデオバッファ
がリサイクルされたことを指示するためにそのバッファ
に既に書き込まれているビットを変更する必要なくビデ
オバッファをリサイクルする方法を提供することであ
る。
【0027】
【実施例】本発明のこれら及び他の目的は、添付図面を
参照した以下の詳細な説明から良く理解されよう。図1
を参照すれば、一般化された簡単な概略図は、二次元デ
ィスプレイにビデオ像を三次元レンダリングする基本的
な段階を示している。プロセスはステップ12で始ま
り、その後、ステップ16においてZバッファが初期化
され、ステップ20において像バッファが初期化され、
ステップ24において対象物がレンダリングされ、その
後、プロセスはステップ28で終了する。これらの簡単
なステップは、公知技術及び本発明の両方に適用できる
が、それ以降の図面は本発明のみを表している。
【0028】次に、図2を参照すれば、本発明による例
示的なシステム200を良く理解することができよう。
このような例示的な装置は、例えば、NCDモデル19
−CXウインドウズターミナルであるが、多数の他の装
置も本発明を組み込んでその利点を得ることができる。
モトローラの88100のようなCPU202は、メモ
リインターフェイス204を経て、VRAMアレイ20
6及びDRAMアレイ208と通信することができる。
VRAMアレイはカラーマップロジック210に信号を
供給し、該ロジックは次いでモニタ212にビデオ出力
を供給する。VRAMアレイ206はビデオRAMでし
ばしば実施されるが、あるハードウェア実施において
は、従来のダイナミックRAMで充分であり、従って、
以下に使用するビデオメモリという用語は、ビデオRA
M、DRAM又は他の形態に係わりなく全ての実施を指
すものとする。カラーマップロジックは、ここに示す好
ましい実施例では、ブロックツリーBt463 RAN
DACであるが、以下に詳細に述べるように、本発明が
実施される程度に基づいて他の装置も受け入れることが
できる。
【0029】更に、CPU202はI/Oインターフェ
イス214と通信し、該インターフェイスは、次いで、
従来のキーボード216、スピーカ218及びRS−2
32コントローラ220と通信する。このRS−232
コントローラ220は、NVRAM222や、種々の従
来の補助RS−232デバイス228のいずれかとも通
信する。
【0030】CPU202、メモリインターフェイス2
04、VRAMアレイ206、DRAMアレイ208、
カラーマップロジック(例えば、RAMDACを含む)
210、I/Oインターフェイス214、スピーカ21
8、RS−232コントローラ220及びNVRAM2
22は全て単一のロジックボードに組み込まれるが、こ
のような一体化は全ての場合に必要ではない。更に、シ
ステム200はネットワークに接続することができ、こ
の場合、図2に示す典型的な構成体は、230で一般的
に示したネットワークインターフェイスカードを含むこ
とができ、このカードは、ネットワークコントローラ2
32及びEPROM234を備え、そしてその各々はI
/Oインターフェイス214と通信する。ネットワーク
カード230は、通常、ネットワークコントローラ23
2とネットワークの別のノードとの間に延びるネットワ
ークケーブル236によってネットワークの他部分に接
続される。ある場合には、ネットワークインターフェイ
スカード230により実行される機能は、プロセッサが
存在するボードに一体化され、特定の機能を特定のボー
ドに割り当てることは重要ではない。
【0031】次いで、図3ないし5を参照すれば、本発
明の一般化された形態が良く理解されよう。より詳細に
は、図3ないし5の方法は、Zバッファのリサイクリン
グを示すが、Zバッファのスケジューリングも像バッフ
ァのリサイクリングも含んでおらず、これらの特徴は、
図6ないし9について詳細に説明する。特に図3を参照
すれば、本発明によりZバッファを初期化することに伴
う段階が良く理解されよう。即ち、これらの段階は、Z
バッファを初期化する図1のステップ16の全目的を果
たすものである。
【0032】このプロセスはステップ100で始まり、
次いで、ステップ102において、新たなZバッファを
割り当てる必要があるかどうかを判断するチェックが行
われる。もしそうであれば、ステップ104において、
Zバッファがメモリに割り当てられる。Zバッファの割
り当てに関連して、ステップ106において、種々の変
数が初期値にセットされる。特に、変数ZBitsは、
InitZBitsにセットされ、即ちZバッファにお
けるビットの数(Zバッファの精度を定める)は、典型
的に24ないし32の間の整数値である初期値にセット
される。変数ZBaseは、−2^InitZBits
にセットされ、特定点が原点からどれほど前方にあるか
を表す。更に、変数ZScaleは、2^ZBits−
ZGapに等しくセットされ、ZScaleは、Z値
(この処理段階では通常は浮動小数点形態である)を整
数値に変換するための換算係数であり、そしてZGap
は、次々のフレーム間のギャップを表す任意に指定され
た変数である。前記したように、ある場合には、このよ
うなギャップは使用されず、ZGapは1にセットされ
る。
【0033】ステップ106での変数の割り当てに続
き、そして又ステップ102でのチェックによってZバ
ッファが既に割り当てられていると決定された場合に
は、ステップ108において、変数ZBaseがZBa
seの前の値及び2^ZBitsに等しくセットされ
る。次いで、ステップ110においてチェックが行われ
て、ZBaseの値がゼロであるかゼロより大きいかが
決定される。ZBaseの値がゼロである場合には、Z
バッファが従来のやり方でクリアされる。ZBits及
びZBaseの初期値を与えると、Zバッファが最初に
割り当てられるときにZBaseがゼロに等しくなるこ
とが明らかであろう。更に、以下で明らかとなるよう
に、最上位ビットが全て1に達した後にZBaseが次
に増加されるときにもZBaseはゼロに等しくなる。
【0034】しかしながら、ZBaseの最上位ビット
(即ち、シーケンス番号を指定するために割り当てられ
たビット)の値がゼロより大きい場合には、Zバッファ
はステップ114においてリサイクルされ、従来のよう
にクリアされない。リサイクル動作は、シーケンス番号
を増加しそしてZバッファをクリアせずに続けることに
よって行われ、その後は、次のフレームに対してレンダ
リングプロセスを単に継続するだけである。クリア動作
が全レンダリング時間の2%以下にしかならないように
充分なリサイクル動作を行えることが望ましいと分かっ
ている。
【0035】ワードのビットで記憶されていてZ値とは
個別のものであるシーケンス番号を使用する必要はない
ことを理解されたい。等しく有効な別のやり方は、2の
累乗ではないZBaseの増分を選択することである。
この別のやり方では、ステップ106において、変数Z
Bitsが新たな変数Zincrementに置き換え
られ、ZScaleがZincrement−ZGap
に初期化される。ZBaseはステップ108において
Zincrementだけ増加され、ステップ110に
おいてゼロではなくオーバーフローに対してチェックが
行われる。更に別のやり方は、固定ではなく測定したZ
incrementを使用することである。Zincr
ementの測定値は、例えば、手前のフレームでレン
ダリングされた最大Z値から手前のフレームのZBas
eを引いたものに等しい。これらの別のやり方は全て各
次々のフレームの対象物を全ての手前のフレームの全て
の対象物の前方にレンダリングするという本質的な目標
を達成する。
【0036】Zバッファをクリアすべきかどうかの決定
に続いて、図4のステップ116において像バッファが
クリアされ、その後、図5において、レンダリングされ
るべき種々の対象物の頂点のZ値を先ず評価することに
より対象物のレンダリングプロセスが開始される。ステ
ップ118では、ポインタが、スケーリング及び変換
(「Z変換」とも称する)されるべき対象物のリストに
リセットされる。これに続いて、ステップ120におい
て、対象物のリストを横断することによってチェックを
行い、レンダリングプロセスの一部としてスケーリング
及び変換されるべき付加的な対象物が残っているかどう
か判断される。対象物は通常それらの頂点に関して画成
されることが当業者に明らかであろう。ステップ120
において対象物が見つかった場合には、ステップ122
において頂点のリストを横断することによりチェックを
行い、まだZ変換されていない現在対象物に対して頂点
が存在するかどうか判断される。もしそうであれば、対
象物の頂点の最初の1つが、その頂点のZ値を決定する
ことによって処理される。更に頂点が存在する場合に
は、ステップ124において、Zの値がZ*ZScal
e+ZBaseにセットされ、これは、現在頂点をその
適当な値とZBaseのオフセットとの和に効果的に置
き、このオフセットは、頂点が処理されている特定のフ
レームを指示するものである。
【0037】従来のレンダリングでは実行されないステ
ップ118ないし124は、基本的に、レンダリングさ
れるべき対象物のZ値を、要求されたグラフィック動作
とは独立して計算することのできるプロセスを形成す
る。ステップ128ないし138の以下の説明から明ら
かなように、ステップ118ないし124の機能をステ
ップ128ないし138に統合できるが、これらステッ
プに対する変更が必要となる。しかしながら、ソフトウ
ェアのマネージメントが容易であり且つ又その説明が非
常に明確であることから、2つのプロセスを別々に説明
した。
【0038】最終的に特定の対象物の全ての頂点がZ変
換されそしてステップ122のチェックが「ノー」とな
る。この点において、プロセスはステップ120へ戻
り、Z変換されるべき対象物が残っているかどうか判断
される。もしそうであれば、その新たな対象物に対して
ステップ122及び124が繰り返され、もしそうでな
ければ、ステップ120のチェックが「ノー」となり、
ステップ126において前記ステップ118で先にリセ
ットされたものと同じポインタをリセットすることによ
り処理が続けられる。ステップ120ないし124は、
対象物のZ値及びそれらの頂点についてのみ作用するこ
とが明らかである。X、Y及びZ値の従来の処理がステ
ップ126で開始される。
【0039】ステップ126でのポインタのリセットに
続いて、ステップ128でチェックを行い、レンダリン
グすべき付加的な対象物が残っているかどうか判断され
る。もしそうであれば、対象物は従来のやり方で処理さ
れ、ステップ130においてチェックを行って、処理さ
れるべきピクセルが残っているかどうかの判断がなされ
る。もしそうであれば、ピクセルは、要求された動作に
基づいて従来のやり方で処理され、典型的に、このよう
なピクセルに関連した頂点が位置及び色に変換され、そ
してステップ132においてバッファのz又はbz値を
ZBuffer〔x,y〕に値に等しくセットすること
により処理が続けられる。更に、ステップ134では、
z値が、x,yにある対象物のz値に等しくセットされ
る。
【0040】次いで、ステップ136において、z値が
bz値に等しいか又はそれより大きいかの判断をするた
めにチェックが行われる。もしそうであれば、〔x,
y〕におけるZBufferの値がzに等しくセットさ
れ、そして〔x,y〕におけるImageBuffer
の値がピクセル値に等しくセットされる。
【0041】概念的には、ステップ126ないし138
は、二次元スクリーン上の特定の点又は現在レンダリン
グされている対象物に関連したピクセルが、その前の対
象物又は現在の対象物の手前の面に関連して既にレンダ
リングされたピクセルの前方にあるか後方にあるかを判
断することを単に考慮したものである。それが前方にあ
る場合には、現在対象物に関連したピクセルは、そのピ
クセルをそれに関連した色にセットすることにより表示
され、その後方にある場合には、そのピクセルは不変の
ままである。Zバッファ値は、現在z値又は手前のz値
の大きい方に対してセットされる。
【0042】プロセスは、ステップ138からステップ
130へ戻ることにより、処理されるべきピクセルがも
はや残らなくなるまで続けられ、その後、プロセスはス
テップ128へ戻り、全ての対象物及びそれら対象物に
関連した全てのピクセルが処理又はレンダリングされる
までこれが続けられる。そのフレームのレンダリングが
完了すると、ステップ140に示すようにプロセスが終
了し、図3のステップ100へ復帰することにより、次
のフレームのレンダリングを開始することができる。
【0043】Zバッファは既に割り当てられているの
で、ZBaseの値が増加され、即ちシーケンス番号が
増加される。これが第2のフレームでありそしてZBa
seの最上位ビットがまだ全部1でないと仮定すれば、
ステップ110においてZBaseの値がゼロを越え
る。これは、Zバッファがこのフレームに対してクリア
されず、このフレームに関連した全ての対象物がその手
前のフレームの最大Z値よりも大きなZ値をもつと考え
られることを意味する。その結果、現在フレームの各対
象物は、最大のZ値を有する手前のフレームの対象物の
前方でレンダリングされる。
【0044】上記実施例の説明では、全ての対象物がレ
ンダリングされるまで各対象物を順次に処理することが
含まれた。しかしながら、少なくともある場合には、図
5に示すステップに続いて全対象物数のサブセットのみ
を選択することが望ましい。第2グループの対象物が選
択されて処理され、等々となって、全ての対象物が処理
される。従って、図5のステップは、単一の像をレンダ
リングするプロセスにおいて何回も繰り返される。対象
物は、この解決策のもとでは、任意の数のハイアラーキ
機構に従って処理されてもよい。しかしながら、これら
のより複雑な機構は明瞭化のために詳細に述べないが、
本発明の範囲内に包含される。
【0045】更に、上記実施例では、従来の方法で全Z
バッファをクリアすると仮定した。従って、上記した実
施例では、各次々のフレームが手前のフレーム全体の前
方でレンダリングされる。X−ウインドウズ環境では、
Zバッファの部分的なクリアのみが従来の方法で実行さ
れる場合が稀にある。従って、このような稀な場合、Z
バッファの適切なリサイクル動作が、その部分的なクリ
アが行われる領域のみのリサイクル動作に限定される。
このような部分的なリサイクルは本発明の方法でも可能
であるが、その必要性は稀であるので、この特徴を詳細
に説明することは本発明の範囲を越えることになろう。
【0046】ある場合には、精度を上げることと、クリ
ア動作間のリサイクル数を増加することとの兼ね合いを
図ることが所望される。この解決策(スケジューリング
と称する)は、図3ないし5に示した解決策よりも複雑
であるが、各フレームに必要なZ精度を進行中に(オン
ザフライ)評価できるようにし、それに応じてリサイク
ルを調整できる。レンダリングされている像が単純であ
る場合には、低いZ精度が使用され、より多くのリサイ
クルが許され、スループットが増加される。逆に、レン
ダリングされている像が複雑である場合には、より高い
Z精度が使用され(各Z値を定める追加ビットの形態
で)、Zバッファのクリア動作間にレンダリングされる
フレームの数が減少される。
【0047】一般的には、できるだけ高い精度を維持す
ることが所望されるが、Zバッファのクリア動作をでき
るだけ回避することによってスループットを改善するこ
とも同等に所望される。この兼ね合いが与えられると、
本発明では、Zバッファをクリアするためのある時間量
を割り当てることによって妥協を図ることができる。例
えば、全レンダリング時間の2%をZバッファのクリア
動作に割り当てることによって充分な性能改善がもたら
されると任意に判断する。この解決策では、クリア動作
に割り当てられる時間は、クリア動作間の全レンダリン
グ時間が増加するにつれて加えられる。最終的には、ク
リア動作に充分な時間が得られるか、Zバッファのシー
ケンス番号部分がオーバーフローするかのいずれかであ
り、いずれにせよ、クリアは実行され、便宜上、クリア
のために得られる時間に「ZBucks」のような任意
の変数を指定することができる。シーケンス番号に使用
されるビットの数(及び逆な言い方をすれば、Z精度に
使用されるビットの数)を調整することにより、シーケ
ンス番号のオーバーフローにより生じるクリアが、クリ
アを行えるに充分なZBuckを生じさせるに要するの
とほぼ同じ時間の後に生じるようにバランスをとること
ができる。このように、性能に悪影響を及ぼさない最も
高い可能なレベルにZ精度を維持することができる。こ
こに示す特定の方法は、NCD 19−C X−ウイン
ドウズターミナルにおいて首尾よくテストされ、三次元
像のレンダリングに非常に大きな性能利得を与えた。
【0048】ここに述べる実施例のスケジューリング
は、シーケンス番号のリサイクリングと組み合わせて使
用されるが、スケジューリング技術は、プロセッサをベ
ースとするシステム内でより一般的な使用目的を有す
る。例えば、時間スケジューリング技術は、どのクライ
エントにプロセッサの制御が許されたかを決定するため
の割り込みに適用できる。このようなシステムにおいて
は、多数のクライエントがしばしばアクセスに対して競
合し、所定のハイアラーキに従って待ち行列に入れられ
る。スケジューリング技術では、待ち行列内の各クライ
エントが、どれほど長くアクセスを待機させられたかに
基づく「値」を得ることができるようにするだけでこの
ような競合の問題を解決することができる。次いで、ア
クセスについて競合しているクライエントには、その待
機時間値に基づいて優先順位が与えられ、最も大きな値
を有するクライエントに最も高い優先順位が与えられ
る。この用途では、シーケンス番号や他のリサイクリン
グ技術は必要とされない。
【0049】更に、多くの場合には、Zバッファをリサ
イクルするのに加えて像バッファをリサイクルすること
によりスループットを増加することが所望される。この
場合も、この解決策は、図3ないし5に示した方法を複
雑にするが、所望の性能上の利点が得られる。
【0050】Zバッファリサイクリング、Z精度スケジ
ューリング及び像バッファリサイクリングを含む本発明
の整数での実施例が図6ないし9に示されている。
【0051】先ず、図6を参照すれば、プロセスはステ
ップ400で始まり、そしてステップ402へと続き、
変数StartTimeを現在時間にセットする。次い
で、ステップ404においてチェックを行い、Zバッフ
ァが既に存在するかどうか判断する。もし存在しなけれ
ば、ステップ406においてビデオメモリにZバッファ
が確立され、その後、変数ZBits、ZBase及び
ZBucksが初期値にセットされる。特に図3につい
て述べたように、ZBitsはInitZBitsにセ
ットされ、そしてZBaseは−2^InitZBit
sにセットされる。しかしながら、図3の場合と異な
り、ZScaleはセットされず、そうではなくて、新
たな変数ZBucksがゼロにセットされる。変数ZB
ucksの実施により、以下で明らかとなるように、Z
精度を進行中に調整して、クリア動作間のリサイクルの
数を増加又は減少することができる。ステップ408が
終わるか又はステップ404でのチェックによりZバッ
ファが既に割り当てられていることが確立されると、プ
ロセスはステップ410へ続く。
【0052】ステップ410において、ZBucksの
値がゼロより小さいかどうか判断するためのチェックが
行われる。最初のサイクルにおいては、ZBucksの
値がゼロに等しく、従って、プロセスはステップ412
へ続き、ZBitsの現在値が、ZBitsの手前の値
+ZBaseの未使用の最上位ビットに等しくセットさ
れる。例えば、ZBaseが最上位3ビットにゼロを有
している場合には、シーケンス番号に指定されたZBa
seの部分に3つの未使用ビットがあることになり、こ
れはZ精度に割り当てできたものである。上記したよう
に、典型的な高性能の実施例では、ZBitsは24な
いし32の範囲であるが、それより低い分解能も公知で
ある。このようにZBitsを調整することにより、所
定の最大値と最小値との間で精度をシフトすることがで
きる。ZBaseの初期値は、ステップ412において
全てのビットを処理に対して「使用ずみ」とマークする
ように−2^InitZBitsに任意にセットされ、
最初のフレームに対して、ZBitsはInitZBi
tsの初期値から不変のままにされる。InitZBi
tsには、データがまだ受け取られていない場合に、予
想される像に対して受け入れられる性能と受け入れられ
る精度との間のバランスに基づく値が指定される。In
itZBitsの初期値としてMinZBitsを用い
ると、適当なバランスが与えられることが経験的に確立
されているが、ある場合には、MinZBitsからM
axZBitsの範囲の別の値を受け入れることができ
る。
【0053】ステップ412においてZBitsの値を
調整した後に、プロセスはステップ414へと続き、Z
BItsが、精度について割り当てが許されたMaxZ
Bitsと称する最大ビット数よりも大きいかどうかの
チェックが行われる。もしそうであれば、ステップ41
6において、ZBitsの値がMaxZBitsに等し
くセットされる。さもなくば、ステップ416はバイパ
スされ、ZBitsの値が不変のままとされる。
【0054】ステップ410において、以下に詳細に述
べる理由で通常そうであるようにZBucksの値がゼ
ロより小さい場合には、図3のステップ108に対応す
るステップ418にプロセスが分岐する。又、ステップ
418で行われるZBaseの増加は、Zバッファをリ
サイクルしようとする試みである。次いで、ステップ4
20においてオーバーフローが存在するかどうか判断す
るためのチェックが行われる。もしなければ、このフレ
ームに対するZバッファのリサイクルは首尾よく終わ
り、プロセスはステップ422へ続く。ステップ422
は、事象が確認されたことを確立するために便宜上示さ
れたものに過ぎず、実際の処理を表していないので、破
線で示されている。
【0055】ステップ420においてZBaseの値が
ゼロに等しい場合には、このフレームについてリサイク
ルがうまくいかず、プロセスはステップ424へと続
き、ZBitsの値が、ZBitsの手前に値−1にセ
ットされる。実際に、これは、リサイクルが所望される
がシーケンス番号ビットがもはや使用できない場合に、
Z精度に対して割り当てられたビット数からビットを借
りることに相当する。ZBitsの値は、次いで、ステ
ップ426においてZBitsの最小値(MinZBi
ts)と比較され、これが許容最小値より小さい場合に
は、ZBitsがステップ428においてMinZBi
tsにリセットされる。ZBitsがMinZBits
の値に等しいか又はそれより大きい場合には、ステップ
428がバイパスされる。
【0056】次いで、プロセスは、ステップ416によ
るか、ステップ414におけるステップ416のバイパ
スによるか、ステップ428によるか或いはステップ4
26におけるそのバイパスにより、ステップ430へと
続く。このステップ430においては、ZBaseがゼ
ロにセットされ、ZScaleが2^ZBits−ZG
apにセットされる。Zバッファは、次いで、ステップ
432においてクリアされ、その後、ステップ434に
おいて、変数ElapsedTimeがtime()−
StartTimeにセットされ、そして変数ZBuc
ksがZBucksの手前の値−ElapsedTim
eにセットされる。
【0057】次いで、プロセスは、像バッファのリサイ
クルに関連したステップのフローチャートである図7に
続く。対象物がいったんピクセル情報に変換されると、
ピクセルデータは像バッファに記憶されることが明らか
である。更に、前記で述べたように、本発明のここに示
す好ましい実施例は、多数の論理的なカラールックアッ
プテーブルを有するという点で注目すべきBrockt
ree Bt463RAMDACを使用している。各論
理カラールックアップテーブルには、ウインドウID又
はカラーマップIDとも称する独特のIDが関連され
る。
【0058】一般に、像バッファをリサイクルするプロ
セスは、多数のカラールックアップテーブルに関連した
多数のカラーマップID(Bt463文書においてBr
ocktreeで識別された「ウインドウID」に等価
である)を、各フレームごとに1つづつ使用する。各ア
プリケーションには、通常、カラーマップが関連してい
る。アプリケーションに関連したカラーマップは、次い
で、現在フレームに対するカラーマップIDに関連した
適当な論理カラールックアップテーブルにロードされ
る。像バッファに記憶されたピクセルデータは、各ピク
セルごとに、カラーマップID情報と、カラー情報とを
備えている。第1のカラーマップがロードされそしてそ
のフレームの対象物がレンダリングされた後に、像バッ
ファからのピクセルデータを解読することにより第1の
フレームが表示される。
【0059】従来のシステムでは、第1のフレームをレ
ンダリングした後に像バッファがクリアされる。しかし
ながら、本発明のシステムでは、このようなクリア動作
は行われない。むしろ、第2のフレームに第2のカラー
マップIDが指定され、第2フレームにおいてレンダリ
ングされる対象物に関連した各ピクセルがその第2のカ
ラーマップIDをそのピクセルデータの一部として含む
ようにする。第2フレームを処理した結果として像バッ
ファに書き込まれるピクセルは、第2フレームの対象物
に関連したピクセルだけであるので、このとき像バッフ
ァには、第1のカラーマップIDをピクセルデータに含
む第1フレームからの多数のピクセルと、第2のカラー
マップIDをピクセルデータに含む第2フレームからの
多数のピクセルとが記憶される。
【0060】古いカラーマップIDを有する全てのピク
セルをバックグランドカラーに対してマップするように
カラーマップハードウェアをプログラムすることによ
り、第2フレームからのピクセルのみがカラーデータと
して評価される。その結果、第2フレームのみが表示さ
れる。第3フレームは、独特のカラーマップIDが指定
されるという点で同様に処理され、第3フレームの対象
物を表す像バッファの各ピクセルは、その第3のカラー
マップIDをピクセルデータに含む。前記したように、
全ての手前のカラーマップIDがバックグランドカラー
に対してマップされ、第3フレームの像のみがスクリー
ンに表示されたままとなる。
【0061】このようなリサイクリングは何回も繰り返
すことができるので、ハードウェアによって独特のカラ
ーマップIDが与えられる。従って、例えば、8つのカ
ラーマップIDが使用できる場合には、像バッファを再
びクリアしなければならないときまでに像バッファにい
ったん書き込んで7回リサイクルすることができ、これ
に伴い、スループットを増加することができる。
【0062】前記の説明を銘記して、図7のプロセスを
良く理解することができよう。このプロセスは、ステッ
プ436において、新たな像バッファが要求されたかど
うか或いは逆に言うと、像バッファが既に割り当てられ
ているかどうかを判断するようチェックすることによっ
て始まる。Zバッファは典型的にレンダラーによって割
り当てられるが、像バッファは典型的にクライエント
(即ち、アプリケーション)によって割り当てられるこ
とが当業者に明らかであろう。従って、ステップ436
では、レンダラーが新たな像バッファをレンダリングの
ために取り扱いしたところかどうかを効果的にチェック
する。
【0063】像バッファが新たなものであってそれまで
クリアされていない場合には、ステップ438において
像バッファをクリアすることによって処理を続行し、そ
の後に、ステップ440において、古いカラーマップI
Dリストを空にしそして変数CurrentIDを次に
使用できるカラーマップIDにセットする。
【0064】或いは又、ステップ436のチェックによ
り、像バッファが変更されていないことが指示された場
合には、プロセスはステップ442へ続き、処理される
べき付加的なカラーマップIDが残っているかどうかチ
ェックされる。従来のレンダリング方法と異なり、各フ
レームごとに新たなカラーマップIDが設けられる。割
り当てられるべき付加的なカラーマップIDが残ってい
ない場合には、フレームが完全にリサイクルされてお
り、プロセスはステップ438へと続き、像バッファが
クリアされる。しかしながら、割り当てられるべきID
が更に残っている場合には、破線のボックス446で示
すようにリサイクルを行うことができる。プロセスはス
テップ448へ続き、現在カラーマップIDが古いカラ
ーマップIDリストに添付されると共に、現在IDが次
に使用できるカラーマップIDに等しくセットされる。
【0065】ステップ440又はステップ448が完了
した後に、プロセスはステップ450へ続き、現在カラ
ーマップIDが要求されたカラーマップとなるようにカ
ラーマップハードウェアをプログラムする。これに続い
て、ステップ452においてIDの値が古いIDリスト
の第1のIDに等しくなるようセットされる。IDの値
はステップ454においてチェックされ、それがナルで
あるかどうか、即ち全てのIDが処理されたかどうか判
断される。もしそうでなければ、カラーマップハードウ
ェアは、カラーマップID(古いIDリストから選択さ
れた)をもつ全てのピクセルを現在フレームのバックグ
ランドカラーに対してマップするようにプログラムさ
れ、その後、ステップ458において現在IDが古いI
Dリストの次のIDにセットされる。ステップ458の
完了後に、プロセスはステップ454へ戻り、処理され
るべきIDが更に残っているかどうか判断される。もし
なければ、IDはナルであり、プロセスは図8へと続
く。
【0066】好ましい方法の上記説明は、多数のカラー
ルックアップテーブルを有するカラーマップハードウェ
アの使用に関するものであるが、このような複雑なカラ
ーマップハードウェアが各々の場合に必要とされるので
はないことが明らかである。例えば、ある実施例におい
ては、たとえカラー情報に8ビットしか必要でなくても
像バッファが10ビットの深さになる。このような場合
には、2ビットが未使用であって、カラーマップIDと
して割り当てることができ、この場合に、像バッファは
書き込んでから3回リサイクルすることができる。
【0067】図8は、Zスケジューリングに加えて像バ
ッファ及びZバッファのリサイクリングが行われる場合
の対象物のレンダリングに含まれるステップをフローチ
ャートの形態で示している。図7のステップ454から
プロセスはステップ460ないし482へと続き、これ
らは、ステップ480以外は、図5の対応ステップ11
8ないし138と同様に動作する。ステップ480は、
像バッファのリサイクルを示すもので、現在レンダリン
グされているピクセルのz値がbz値より大きい場合
に、ピクセルのカラーを現在対象物のカラー+ID(こ
こでIDはステップ440又はステップ448のいずれ
かにおいてフレームごとに一度セットされる現在IDで
ある)にセットする。更に、ステップ470のチェック
により処理されるべき対象物がそれ以上ない場合には、
プロセスは、図5の場合と同様に、完了するのではな
く、図9へと続く。
【0068】図9において、プロセスはステップ484
へ続き、ElapsedTimeがtime()−St
artTimeにセットされると共に、ZBucksが
手前のZBucksの値と、ElapsedTimeに
所定のレートを乗じた結果との和に等しくなるようにセ
ットされる。所定のレートとは、クリア動作のために割
り当てられた時間が生じる割合である。例えば、例とし
て既に使用されたように、全レンダリング時間の2%を
クリア動作のために割り当てることによって充分な性能
が得られると判断された場合には、このレートが2%の
値を表す。次いで、ステップ486において、ZBuc
ksの値が所定の最大値MaxZBucksと比較され
る。このZBucksの値が許容最大値を越える場合に
は、ステップ488においてZBucksがMaxZB
ucksにリセットされ、さもなくば、ステップ488
をバイパスし、ZBucksの現在値が保持される。こ
れは、最大のZ精度で非常に複雑な像をレンダリングす
ることによってZBucksの過剰な累積が生じそして
その後の単純な像でZバッファの過剰なクリア動作が生
じるのを防止する。しかしながら、累積されたZBuc
ksに対するこのような制約は全ての場合に必要となる
のではない。フレームのレンダリングはステップ490
で完了し、図6に復帰することにより次のフレームのレ
ンダリングを続けることができる。
【0069】図6ないし9は、整数での実施を示してい
るが、リサイクリング及びスケジューリングを含むZバ
ッファの浮動小数点での実施を行うこともできる。この
ような実施が図10に示されており、このプロセスはス
テップ500で始まり、ステップ502へと続き、変数
StartTimeが現在時間即ちtime()に等し
くセットされる。ステップ504では、新たなZバッフ
ァを割り当てるべきであるかどうかを判断するチェック
がなされる。
【0070】もしそうであれば、プロセスはステップ5
06へ続き、ハードウェアの実施に基づいてVRAMで
あるか又は従来のDRAMであるメモリに新たなZバッ
ファが割り当てられ、そしてステップ508において、
変数ZScale及びZBucksが各々1及び0の初
期値にセットされる。もしそうでなければ、即ちZバッ
ファが既に割り当てられている場合には、プロセスはス
テップ510へ続き、ZBucksの値がゼロより小さ
いかどうかの判断がなされる。ZBucksがゼロに等
しいか又はそれより大きい場合、或いはステップ508
が完了した後、プロセスはステップ512へ続き、ZB
aseの値がゼロにセットされ、そしてステップ514
においてZバッファがクリアされる。次いで、ステップ
516において、変数ElapsedTimeがtim
e()−StartTimeにセットされ(tim
e()は現在時間である)そして変数ZBucksがそ
の手前のZBucksの値−ElapsedTimeの
値に調整される。
【0071】しかしながら、ZBucksの値がゼロよ
り小さい場合には、リサイクリングが許され、そしてZ
Baseの値は、ステップ518において、ZBase
の手前の値+1+任意のギャップサイズZGapに調整
される。第1フレームのZ値は0.0ないし1.0の範
囲であり、1を加えると、新たなフレームの各Z値は手
前のフレームの最大値よりも大きくなるよう確保される
ことが当業者に明らかであろう。ギャップサイズZGa
pの典型的な値は0.01である。リサイクル段階が首
尾よく行われることがステップ520の破線ボックスで
示されており、ステップ516の完了後又はステップ5
18でZバッファが首尾よくリサイクルされた後に、プ
ロセスは前記したように図7ないし図9へ続く。
【0072】別の実施例においては、上記した2の累乗
ではなくて手前のフレームでレンダリングされた最大Z
値でZBaseを増加することもできる。このような場
合には、ステップ110及び420のテストがゼロでは
なくてオーバーフローをテストするように変更される。
増加のサイズは、それが適当な範囲内である限り重要で
はないことが当業者に明らかであろう。本発明によれ
ば、像バッファ又はZバッファのクリア動作は、従来の
ようなバッファ内の各ビットのクリア動作を伴う必要が
ないことが明らかであろう。むしろ、少なくともある実
施例においては、シーケンス番号を表すZバッファの部
分のみをクリアすればよい。同様に、像バッファの場合
には、カラーマップIDを表す部分のみをクリアすれば
よい。更に少なくともある場合には、これら各々の部分
の一部だけをクリアすればよいが、このような部分的な
クリア動作によって可能となる付加的なリサイクリング
は、全ての部分がクリアされる場合よりも少ない。
【0073】以上、本発明の実施例を説明したが、本発
明から逸脱せずに種々の変更や等効物が存在することは
当業者に明らかであろう。それ故、本発明は上記の説明
に限定されるものではなく、請求の範囲のみによって限
定されるものとする。
【図面の簡単な説明】
【図1】ビデオディスプレイの三次元レンダリングプロ
セス全体を示すフローチャートである。
【図2】本発明によるビデオサブシステムの概略ブロッ
ク図である。
【図3】本発明によるZバッファリサイクルの整数実施
のみを示す簡単な一般的な図であって、本発明によりZ
バッファリサイクルは行うがスケジューリングは行わず
にZバッファを初期化する段階を示したフローチャート
である。
【図4】本発明によるZバッファリサイクルの整数実施
のみを示す簡単な一般的な図であって、Zバッファリサ
イクルのみを使用し、スケジューリングは行わずに像バ
ッファを初期化する段階を示したフローチャートであ
る。
【図5】本発明によるZバッファリサイクルの整数実施
のみを示す簡単な一般的な図であって、図3及び4に示
す方法段階を用いて対象物をレンダリングする段階を示
したフローチャートである。
【図6】スケジューリングを伴うZバッファリサイクル
と、像バッファリサイクルとを行う本発明の高度な実施
例を示す図であって、リサイクリング及びスケジューリ
ングの両方を行うようにしてZバッファを初期化する段
階を示すフローチャートである。
【図7】スケジューリングを伴うZバッファリサイクル
と、像バッファリサイクルとを行う本発明の高度な実施
例を示す図であって、像バッファのリサイクリングを図
6の方法段階と組み合わせて像バッファを初期化する段
階を示したフローチャートである。
【図8】スケジューリングを伴うZバッファリサイクル
と、像バッファリサイクルとを行う本発明の高度な実施
例を示す図であって、図6及び7の方法を用いて対象物
をレンダリングする段階を示すフローチャートである。
【図9】スケジューリングを伴うZバッファリサイクル
と、像バッファリサイクルとを行う本発明の高度な実施
例を示す図であって、図6ないし8のプロセスの終了段
階を示す図である。
【図10】リサイクリング及びスケジューリングを伴い
Zバッファを初期化する浮動小数点実施の段階を示すフ
ローチャートである。
【符号の説明】
202 CPU 204 メモリインターフェイス 206 VRAMアレイ 208 DRAMアレイ 210 カラーマップロジック 212 モニタ 214 I/Oインターフェイス 216 キーボード 218 スピーカ 220 RS−232コントローラ 222 NVRAM 226 補助的なRS−232デバイス 230 ネットワークインターフェイスカード 232 ネットワークコントローラ 234 EPROM

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと、レンダリング用のZバッ
    ファとを有するビデオディスプレイ装置において、Z値
    を有する少なくとも1つの対象物より各々成る三次元像
    の複数のフレームを、それらフレーム間でZバッファを
    クリアせずにレンダリングする方法が、 Zバッファをクリアし、 第1フレームの少なくとも1つの対象物をレンダリング
    し、 第2フレームの少なくとも1つの対象物のZ値を変更し
    て、第2フレームの対象物の最小Z値がその手前のフレ
    ームの少なくとも1つの対象物の最大Z値よりも大きく
    なるようにし、そして第2フレームの上記少なくとも1
    つの対象物をその変更されたZ値に基づいてレンダリン
    グする、という段階を備えたことを特徴とする方法。
  2. 【請求項2】 プロセッサと、ワードの形態の複数のビ
    ットを記憶するメモリアレイとを有していて、ビデオ像
    を表示するためのビデオディスプレイ装置において、三
    次元像を高いレートでレンダリングする方法が、 上記メモリアレイの一部分にZバッファを確立し、 上記Zバッファによって使用されない上記メモリアレイ
    の一部分に記憶されるシーケンス番号を確立し、このシ
    ーケンス番号部分はZバッファ部分よりも上位のワード
    ビットによってアドレスされ、 第1の像をレンダリングする前にZバッファをクリア
    し、 第1の像をレンダリングする前に任意のシーケンス番号
    を確立し、 各像をレンダリングした後に上記シーケンス番号を増加
    し、そしてシーケンス番号部分がオーバーフローしたと
    きにZバッファをクリアする、という段階を備えたこと
    を特徴とする方法。
  3. 【請求項3】 ワードの形態の複数のビットを記憶する
    メモリアレイを有していて、ビデオ情報のフレームを表
    示するためのビデオディスプレイ装置において、三次現
    像をレンダリングする方法が、 上記メモリアレイの一部分にZバッファを確立し、 上記Zバッファによって使用されない上記メモリアレイ
    の一部分にシーケンス番号を確立し、このシーケンス番
    号部分はZバッファ部分よりも上位のワードビットによ
    ってアドレスされ、 第1のフレームをレンダリングする前にZバッファをク
    リアし、 各像をレンダリングした後に上記シーケンス番号を増加
    し、そしてシーケンス番号が所定値に達したときにZバ
    ッファを再びクリアする、という段階を備えたことを特
    徴とする方法。
  4. 【請求項4】 上記シーケンス番号部分がオーバーフロ
    ーしたときに上記所定値に到達する請求項3に記載の方
    法。
  5. 【請求項5】 ワードの形態の複数のビットを記憶する
    メモリアレイを有していて、ビデオ情報のフレームを表
    示するためのビデオディスプレイ装置において、三次現
    像をレンダリングする方法が、 上記メモリアレイの一部分にZバッファを確立し、 上記Zバッファによって使用されない上記メモリアレイ
    の一部分にシーケンス番号を確立し、このシーケンス番
    号部分はZバッファ部分よりも上位のワードビットによ
    ってアドレスされ、 全レンダリング時間の一部分として、Zバッファをクリ
    アするための時間量を発生させ、 第1のフレームをレンダリングする前にZバッファをク
    リアし、 各像をレンダリングした後に上記シーケンス番号を増加
    し、そしてシーケンス番号が第1の所定値に達したとき
    又はZバッファをクリアするために発生された時間が第
    2の所定値に達したときにZバッファを再びクリアす
    る、という段階を備えたことを特徴とする方法。
  6. 【請求項6】 複数のアドレスビットによってアドレス
    される像バッファを含むメモリアレイを有していて、ビ
    デオ情報のフレームを三次元レンダリングとして表示す
    ることのできるビデオディスプレイ装置において、フレ
    ーム間で像バッファをクリアせずにビデオ情報の多数の
    フレームを順次に表示する方法が、 像バッファをクリアし、 表示されるべき第1フレームに、第1カラーマップを表
    す指示を割り当て、 上記第1フレームの対象物に関連した各ピクセルに、第
    1カラーマップを表す指示及び他のピクセル情報を割り
    当て、この第1カラーマップを表す指示と他のピクセル
    情報との組み合わせは、第1フレームのピクセルデータ
    を形成し、 上記第1フレームのピクセルデータを像バッファに書き
    込み、 第1カラーマップを表す指示を有していて像バッファに
    記憶された上記ピクセルデータを、要求されたカラーに
    対してマッピングし、 表示されるべき次のフレームに、異なるカラーマップを
    表す指示を割り当て、 上記次のフレームの対象物に関連した各ピクセルに、上
    記次のカラーマップを表す指示及び他のピクセル情報を
    割り当て、上記次のカラーマップを表す指示と他のピク
    セル情報との組み合わせは、上記次のフレームのピクセ
    ルデータを形成し、 上記次のフレームのピクセルデータを像バッファに書き
    込み、 上記次のカラーマップを表す指示を有しておらずに像バ
    ッファに記憶されたピクセルデータをバックグランドカ
    ラーに対してマッピングし、 上記次のカラーマップを表す指示を有していて像バッフ
    ァに記憶されたピクセルデータを、要求されたカラーに
    対してマッピングし、そして各次々のフレームに対し、
    所定の限界まで、上記次のフレームに対する割り当て、
    書き込み及びマッピングの段階を繰り返すことを特徴と
    する方法。
  7. 【請求項7】 プロセッサへアクセスするために複数の
    通話が競合し得るようなプロセッサベースのシステムに
    おいて、アクセスをスケジュールするための方法が、 プロセッサへアクセスするために各々競合する複数の通
    話を識別し、 このような複数の通話の少なくとも幾つかに対し、プロ
    セッサへのアクセスを待機するのに費やされる時間量に
    比例する値を発生し、そしてこのような複数の通話の各
    々によって発生された値に基づいてプロセッサへアクセ
    スさせる、という段階を備えたことを特徴とする方法。
JP5304229A 1992-12-04 1993-12-03 ビデオバッファのリサイクル方法及び装置 Pending JPH06223196A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/985,283 US5493637A (en) 1992-12-04 1992-12-04 Video buffer recycling method and apparatus
US07/985283 1992-12-04

Publications (1)

Publication Number Publication Date
JPH06223196A true JPH06223196A (ja) 1994-08-12

Family

ID=25531339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5304229A Pending JPH06223196A (ja) 1992-12-04 1993-12-03 ビデオバッファのリサイクル方法及び装置

Country Status (6)

Country Link
US (3) US5493637A (ja)
JP (1) JPH06223196A (ja)
CA (1) CA2110551A1 (ja)
DE (1) DE4341304A1 (ja)
FR (1) FR2698983B1 (ja)
GB (1) GB2273636B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757364A (en) * 1995-03-29 1998-05-26 Hitachi, Ltd. Graphic display apparatus and display method thereof
KR100354824B1 (ko) * 1999-11-22 2002-11-27 신영길 시간 일관성을 이용한 실시간 렌더링 방법 및 렌더링 장치

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493637A (en) * 1992-12-04 1996-02-20 Network Computing Devices, Inc. Video buffer recycling method and apparatus
GB9314717D0 (en) * 1993-07-15 1993-08-25 Philips Electronics Uk Ltd Image processing
JP3548352B2 (ja) * 1996-10-25 2004-07-28 キヤノン株式会社 遠隔カメラ制御システム及び装置及びその方法
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
US6222550B1 (en) 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6337690B1 (en) * 1999-03-31 2002-01-08 Hewlett-Packard Company Technique for reducing the frequency of frame buffer clearing
GB9915012D0 (en) * 1999-06-29 1999-08-25 Koninkl Philips Electronics Nv Z-buffering graphics system
US20030063087A1 (en) * 2001-09-28 2003-04-03 Doyle Peter L. Variable-formatable width buffer and method of use
US6747657B2 (en) 2001-12-31 2004-06-08 Intel Corporation Depth write disable for zone rendering
US6982713B2 (en) * 2003-01-13 2006-01-03 Xgi Technology Inc. System and method for clearing depth and color buffers in a real-time graphics rendering system
US7755629B2 (en) * 2004-06-30 2010-07-13 Canon Kabushiki Kaisha Method of rendering graphic objects
US7752622B1 (en) 2005-05-13 2010-07-06 Oracle America, Inc. Method and apparatus for flexible job pre-emption
US7743378B1 (en) * 2005-05-13 2010-06-22 Oracle America, Inc. Method and apparatus for multi-dimensional priority determination for job scheduling
US8214836B1 (en) * 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US7984447B1 (en) 2005-05-13 2011-07-19 Oracle America, Inc. Method and apparatus for balancing project shares within job assignment and scheduling
WO2010003844A1 (fr) 2008-06-30 2010-01-14 Thomson Licensing Procede de composition temps reel d'une video
GB2497762B (en) * 2011-12-20 2018-05-23 Advanced Risc Mach Ltd Intermediate value storage within a graphics processing apparatus
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9589312B2 (en) * 2014-12-19 2017-03-07 Intel Corporation Exploiting frame-to-frame coherence for optimizing color buffer clear performance in graphics processing units

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197430A (en) * 1978-09-15 1980-04-08 Bell Telephone Laboratories, Incorporated Operator service position system
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US4907174A (en) * 1988-06-02 1990-03-06 Sun Microsystems, Inc. Z-buffer allocated for window identification
DE68925651T2 (de) * 1988-09-13 1996-09-26 Silicon Graphics Inc Verfahren und vorrichtung zum auslöschen eines gebietes eines z-puffers
US5043923A (en) * 1988-10-07 1991-08-27 Sun Microsystems, Inc. Apparatus for rapidly switching between frames to be presented on a computer output display
CA1316271C (en) * 1988-10-07 1993-04-13 William Joy Apparatus for rapidly clearing the output display of a computer system
US5101365A (en) * 1988-10-31 1992-03-31 Sun Microsystems, Inc. Apparatus for extending windows using Z buffer memory
US5050102A (en) * 1989-04-28 1991-09-17 Sun Microsystems, Inc. Apparatus for rapidly switching between output display frames using a shared frame gentification memory
US5220646A (en) * 1990-04-30 1993-06-15 International Business Machines Corporation Single pass hidden line removal using z-buffers
US5493637A (en) * 1992-12-04 1996-02-20 Network Computing Devices, Inc. Video buffer recycling method and apparatus
US5561750A (en) * 1994-09-22 1996-10-01 Seiko Epson Corporation Z-buffer tag memory organization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757364A (en) * 1995-03-29 1998-05-26 Hitachi, Ltd. Graphic display apparatus and display method thereof
KR100354824B1 (ko) * 1999-11-22 2002-11-27 신영길 시간 일관성을 이용한 실시간 렌더링 방법 및 렌더링 장치

Also Published As

Publication number Publication date
GB9324973D0 (en) 1994-01-26
GB2273636B (en) 1997-02-05
FR2698983B1 (fr) 1996-03-29
US5894572A (en) 1999-04-13
CA2110551A1 (en) 1994-06-05
GB2273636A (en) 1994-06-22
US5493637A (en) 1996-02-20
FR2698983A1 (fr) 1994-06-10
US5748864A (en) 1998-05-05
DE4341304A1 (de) 1994-06-16

Similar Documents

Publication Publication Date Title
JPH06223196A (ja) ビデオバッファのリサイクル方法及び装置
US5986663A (en) Auto level of detail-based MIP mapping in a graphics processor
KR101925292B1 (ko) 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정
US5583974A (en) Computer graphics system having high performance multiple layer Z-buffer
CA2423497C (en) Method and apparatus for the anti-aliasing supersampling
US7030878B2 (en) Method and apparatus for generating a shadow effect using shadow volumes
US7969436B1 (en) System, method and computer program product for transforming a polynomial equation from a coordinate frame of one tile to a coordinate frame of another tile at a finer level of a hierachy
US6636215B1 (en) Hardware-assisted z-pyramid creation for host-based occlusion culling
US7126615B2 (en) Color compression using multiple planes in a multi-sample anti-aliasing scheme
US7375727B1 (en) System, method and computer program product for geometrically transforming geometric objects
US20060170703A1 (en) Color compression using an edge data bitmask in a multi-sample anti-aliasing scheme
US11250620B2 (en) Graphics processing
WO1996036011A1 (en) Graphics system utilizing homogeneity values for depth for occlusion mapping and texture mapping
US6052127A (en) Circuit for determining non-homogenous second order perspective texture mapping coordinates using linear interpolation
US5555359A (en) Computer graphics anti-aliasing method using a partitioned look-up table
US20040085310A1 (en) System and method of extracting 3-D data generated for 2-D display applications for use in 3-D volumetric displays
US8416260B1 (en) Sigma buffer for rendering small objects
US5841443A (en) Method for triangle subdivision in computer graphics texture mapping to eliminate artifacts in high perspective polygons
WO1994027240A1 (en) Computer graphics system having high performance multiple layer z-buffer
US5760792A (en) Fifo logical addresses for control and error recovery
US6157386A (en) MIP map blending in a graphics processor
US5719598A (en) Graphics processor for parallel processing a plurality of fields of view for multiple video displays
US6054993A (en) Chroma-keyed specular texture mapping in a graphics processor
US5295234A (en) Apparatus for displaying a three dimensional object which appears substantially the same in different display directions by modifying stored image data by a scale factor
US8681154B1 (en) Adaptive rendering of indistinct objects