JPH10116357A - Zバッファプリミティブによるレンダリング方法およびzバッファ装置 - Google Patents

Zバッファプリミティブによるレンダリング方法およびzバッファ装置

Info

Publication number
JPH10116357A
JPH10116357A JP9188922A JP18892297A JPH10116357A JP H10116357 A JPH10116357 A JP H10116357A JP 9188922 A JP9188922 A JP 9188922A JP 18892297 A JP18892297 A JP 18892297A JP H10116357 A JPH10116357 A JP H10116357A
Authority
JP
Japan
Prior art keywords
value
floating point
point
primitive
vertex
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
JP9188922A
Other languages
English (en)
Inventor
Michael F Deering
マイケル・エフ・ディアリング
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10116357A publication Critical patent/JPH10116357A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden 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)

Abstract

(57)【要約】 【課題】 グラフィック表示された対象物に対するZ−
バッファされた値を、異なる距離範囲にわたってビット
を非線形関係で喪失させること無しに、正確に計算す
る。 【解決手段】 対象物のそれぞれを表現する前記プリミ
ティブの各々について前記頂点の前記Z値を比較し、前
記頂点のいずれが最大浮動小数点指数を有する値を持っ
ているかを決定し、関連づけられたプリミティブの頂点
の値から前記最大の頂点値を減算する。前記減算の結果
を固定小数点フォーマットに変換した後、セットアップ
工程またはスキャンコンバージョンビデオ表示工程のう
ちの少なくともひとつを実行する。各画素に関連した前
記スキャンコンバージョンからの最終Z値出力を浮動小
数点値に変換した後、前記プリミティブに関連した前記
最大浮動小数点指数を前記浮動小数点値のそれぞれの指
数成分に加算し、その結果として生じたZ値でZ距離の
比較を実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータグラ
フィクスにおいて一般的に隠面を取り除いた3次元の画
像を表示することに関し、特に、3次元のグラフィック
スをより速く、正確に、現実的に表示するためのいわゆ
るZバッファされたレンダリング技術を含む、Z距離を
グラフィックスプリミティブ(およびその一部分)に対
して比較する方法および装置に関する。
【0002】
【従来の技術】最近の3次元コンピュータグラフィック
スは、種々のグラフィック表現技術を用い、幾何学を広
く使用して3次元の対象物を描いている。コンピュータ
グラフィックスは、コンピュータ支援設計(“CA
D”)プログラムのような応用において、特に広く使用
されている。表示すべき対象物の複雑で滑らかな表面
は、高度の抽象化によって表現することができる。現実
感をさらに出すには未加工の幾何学形状を必要とする
が、詳細な表面幾何学形状は、通常、三角形プリミティ
ブによるテクスチャマップを用いて表すことができる。
最近のワークステーションコンピュータシステムにおい
ては、位置、色(例えば、赤、青、緑、および任意の
α)、およびこれらの三角の法線成分は、典型的には浮
動小数点数として表されている。 Foley, Van Dam 等に
よる論文「コンピュータグラフィックス:原理と実際
(Computer Graphics: Principles and Practice)」
(第2版)が3次元グラフィックス一般に関して実質的
な詳細を提供しており、また、さらなる背景の情報を望
む人はこれを参照すべきである。
【0003】図1は、ユーザが生成する画像を表示する
ためにコンピュータシステムと一緒に使用されるような
従来技術の一般的なビデオシステム10を示している。
画像は、例えば、作図プログラムを用いることにより、
マウス、トラックボール、あるいは、他のユーザ入力装
置20を用いて生成され、他の用途の中でビデオモニタ
30の上に表示される。記載される本発明の関係におい
ては、表示される対象物40,50は、典型的に3次元
的な表面を有し、一般的にはひとつの対象物の一部分
は、もう一つの対象物の一部分によって隠されることが
ある。例えば、図1において、対象物40の一部分は、
対象物50の一部分の前にあるように見え、したがっ
て、対象物50の隠された部分を視野から隠蔽してい
る。もう一つの対象物によって視野から隠蔽される対象
物50の一部分を、隠面と名付ける。
【0004】装置20からの入力データは、典型的には
装置バス60に接続され、そこからビデオ処理システム
70、コンピュータシステム入力/出力インタフェース
装置80、および、コンピュータシステムメモリ制御装
置90に接続される。装置80および90は、システム
中央プロセッサ装置(“CPU”)110およびコンピ
ュータシステム持続型メモリ装置120にも接続された
システムバス100に典型的に接続されている。他のタ
スクのうち、CPU110は、モニタ30の上に表示さ
れる対象物の3次元表面を表す三角データを処理するこ
とに関わる。
【0005】CPUで処理されたビデオ情報は、システ
ムバス100、メモリコントローラ90、装置バス60
を介して、ビデオシステム70に接続される。ビデオシ
ステム70は、典型的にグラフィックアクセラレータ装
置130、ビデオフレームバッファランダムアクセスメ
モリ(“3DRAM”)装置140(または、他の形態
のRAMビデオ格納装置)、および、ビデオ制御装置1
50を含んでいる。そして、ビデオシステム70からの
処理されたビデオは、イメージ40および50のような
イメージを表示するモニタ30に接続される。
【0006】3次元対象物のコンピュータ表示イメージ
の現実感は、見える対象物の部分や隠されている部分
(例えば、隠面をもつ)を迅速に計算することを含む、
多くの要因に依存している。グラフィックスアクセラレ
ータ装置130は、表示される各対象物の隠面を削除す
るためにアルゴリズムを典型的に実行する。
【0007】グラフィックスアクセラレータ装置130
に接続されたいわゆるZバッファ装置160は、レンダ
リングされ表示されるべき各画素に対する“Z値”、例
えば、奥行き値、を格納している。例えば、対象物50
に対する画素値は、対象物50がその画素値に対して既
に格納されている前記Z値よりも観測点に近い場合にの
み、上書きされるべきである。観察される対象物が投影
されるイメージ平面が存在し、Zバッファは、観察点か
ら遠く離れている対象物がその観察点により近い対象物
の後ろに投影されるということを保証しなければならな
い。対象物は、観察点からの距離が増大するに従って小
さく表されるべきであり、画素の図取り関係は、距離に
反比例する関数によって表される。この概念は、一般に
Zバッファリングの意味するところのものであり、Zデ
ータは、Zバッファされたプリミティブと呼んでもよ
い。
【0008】実際には、レンダリングされている現在の
画素に対する古いZ値は、Zバッファから読み出され、
現在の画素に対して新たに発生されたZバッファ値と数
値的に比較される。その比較の結果によって、古いZ値
およびカラーフレームバッファ画素値は、そのままであ
ったり、あるいは、新たに計算された値によって置き換
えられる。
【0009】モデル空間から視野クリッピング座標への
変換の後に、Wは、視点から変換点までのZ軸に沿った
基準化された距離を表す。値Zは、類似の基準化された
距離であるが、視点以外の原点、典型的には前方クリッ
ピング平面あるいは前方および後方クリッピング平面間
のある点を原点として有することを意味する。視野クリ
ッピング座標からスクリーン座標への変換の後に、Zの
値は、量Z/Wより導かれる。正射影に対し、値Z/W
は、ワールド座標の点までの距離と線形関係である。透
視投影に対しては、このZ/W値は、その点までの距離
の逆数に比例する。
【0010】初期の3次元コンピュータグラフィックス
は、対象物が視点からの距離が増大しても大きさが小さ
くならない(いわゆる“無限平行射影”)いわゆる“正
射影”に最も関心を寄せていた。正射影において、隠面
を除去するために使用されるZ値は、ワールド座標にお
けるその点までの距離と線形関係にある。このような応
用において、固定点あるいは浮動小数点を使用する数値
表現は、数学的に生成された数値とよく整合した。
【0011】しかしながら、3次元コンピュータグラフ
ィックスが“透視投影”を採用すると、このような数値
表現はもはや関係する数学によく整合しないにも拘わら
ず、基礎として歴史的に発展した式および数値表現は変
えられなかった。理由を理解するためには、透視の場
合、計算されたスクリーン空間Z値は、ワールド座標距
離の逆数において線形であるということを思い出すこと
が必要である。従来技術において使用された前記式は、
次のようなワールド空間距離に関連したスクリーン空間
Z値を生成した。 Z=(1/(1−F/B))*(1−F/Z) (1) 大きなB/F比に対しては: Z=1−F/Z (1’)
【0012】B/Fは、ワールド座標における視点から
前方クリッピング平面までの距離に対する、視点から後
方クリッピング平面までの距離の比率を表す。図2A
は、それぞれFおよびBで示された前方および後方クリ
ッピング平面を示している。図2Aの左において、
“0”は、表示された対象物の表示を観察している観察
者の目のを表し、例えば、視点を示している。図2Aに
おいて、40および50は、2つの対象物、図1におけ
るモニタ30の上に表示されたものにおそらく類似して
いる2つの対象物の相対位置を表している。
【0013】B/F比は、関連する数学的な関係におい
て重要な役目を果たす。透視投影の3次元コンピュータ
グラフィックスの初期においては、B/F比は、典型的
に小さな整数であった。一般に、前方クリッピング平面
は、視点から2フィートであり、後方クリッピング平面
は、4から10フィート離れていたであろう。この構成
は、黒い背景において、明らかに数フィートの大きさを
もった3次元対象物を観察するのには充分であった。
【0014】しかしながら、より最近のより現実感をも
った大きな寸法の仮想環境は、前方クリッピング平面
が、観察者の鼻からほんの数インチであるが、後方クリ
ッピング平面は、数マイル離れていてもよいということ
を要求している。この構成故に、非常に大きなB/F比
が結果としてもたらされる。例えば、6インチの前方ク
リッピング平面および10マイルの後方クリッピング平
面では、B/F比が100,000を越える。6インチ
と600フィートとの小さい範囲でも1,000を越え
る比となることもある。
【0015】標準スクリーン空間Z式(1)は、前方ク
リッピング平面Fに近い点がゼロに近いZ値を生成し、
後方クリッピング平面Bに近い点が1に近いZ値を生成
する(あるいは、若干異なる式を用いれば、−1と1、
あるいは、1と−1)ように定義される。
【0016】特定の式の数値的な適合度を考察するに、
入力で表現された値が出力でどのように表現されるかを
調べることが重要である。B/F=1,024である特
定の場合を考えてみよう。スクリーン空間において、式
(1)を用いると、この範囲の後方半分(後方クリッピ
ング平面に向かって半道以上)に配置されたいかなる点
も、例えば、.1111111111xxx...xx
xの形のように、他のいかなる距離を表すビットが出現
する前に10個の先行1ディジットを持つであろう。し
たがって、ワールド座標において、B/2とBとの間の
値を表現するのにnビットの精度を必要とする如何なる
点も、もしも、式(1)を用いるならば、スクリーン空
間表現のために10+nビットの精度を必要とするであ
ろう。一般的に、式(1)は、スクリーン空間表現のた
めに上方(log2(B/F))追加ビットをほぼ必要
とする。例えば、100,000のB/F比は、追加の
17ビットを必要とするであろう。
【0017】上述の表現ロスは、固定小数点表現および
浮動小数点表現の両方に影響を与えるということに留意
すべきである。浮動小数点表現は、後方クリッピング平
面に近い点のスクリーン空間Z値は、1にマップされる
ので、先行ゼロビットをもつ値をコード化する際に能率
的であるが、発生される余分なビットは先行1ビットで
ある。
【0018】多くの3次元グラフィックスプロセッサ
は、費用の理由で、浮動小数点表現を使用して式(1)
を計算するけれども、後続のセットアップステップおよ
びスキャンコンバージョンステップは、ほとんど常に固
定小数点表現を用いて計算される。
【0019】Zバッファされた適切なプリミティブを計
算する際の遅延と不正確さは、誤りをもった当該対象物
の表示となりうる。例えば、図1において、表示された
対象物40および/または50(ここで図示を簡便にす
るため、対象物のうちこれが表示されているものとす
る)は、あちこち移動され、おそらく回転させられ、寸
法を変えられたりするので、現実性のためにはZバッフ
ァデータを迅速に与えることが必要となる。あまりにも
不正確に計算されたZバッファデータは、表示されるイ
メージの現実性を低下させてしまうことがある。
【0020】図1において、例えば、対象物リンゴ40
が箱50の前に、例えば、視点により近くに(したがっ
て、より小さなZバッファ値を持つように)現れる。し
かしながら、表示の現実性は、もしも、前記箱の隠面に
対するZバッファデータが例えば前記箱の底面の前縁に
対してのみ誤って計算されると損なわれるであろう。結
果として生じる表示は、箱の前にリンゴを示すが、前記
箱の底面の前縁は、不適当にもリンゴの前にあることと
なるであろう。
【0021】Zバッファされたデータが適切に計算され
たとき、イメージ40および50は、図1に示されるよ
うに表示されるであろうし、その場合、リンゴ40は、
箱50の前にある。図2Bは、これら2つのイメージに
対して適切に投影されたイメージ表現を示している。し
かしながら、Zバッファされたデータがあまりに不正確
になるZ/F距離領域においては、誤りが発生する可能
性がある。したがって、図2Cにおいては、箱50の隠
面に対してすでに存在する画素データに重ね書きするの
ではなく、従来技術のZバッファ装置160は、対象物
40および対象物50に対する画素を同時に塗りつぶす
と誤って決定してしまっている。その結果が、“Zバッ
ファ競合”として知られる、対象物の一方あるいは両方
が仕上げの悪い重なり合いとして現れる重ね領域であ
る。図2は、従来技術による、不正確なZバッファリン
グから生じる表示エラーの他の型を示している。図2D
において、箱50の一部分が誤ってリンゴ40の一部分
の前にはっきりと現れているが、箱50の一部分は、リ
ンゴ40に関連して仕上げが悪い状態で相変わらず重な
って見える。
【0022】上記の式によって定義される型の固定小数
点整数計算を用いるときの解像度喪失問題は、B/F比
に非常に依存するということは明らかである。B/Fの
比がMとし、前方平面は、距離Fにあり、後方平面は、
距離MFにあると仮定しよう。さて、後方平面までの距
離が2倍である、例えば、後方平面が距離2MFにある
と考える。そのような距離のそれぞれの2倍化に対し
て、解像度のもう一方の1ビットが喪失され、Zバッフ
ァの遠い側の半分、例えば、残るビットが少なすぎてM
Fと2MFとの間における残りの距離を解像できない可
能性がある。nビット最大のZ表現すると、1Fと2F
との間の距離における点は、n−1ビットの精度で表現
されるであろう。2Fと4Fの間の点はせいぜいn−2
ビットの精度で表現されるであろう。以下同様である。
このようにビットの残りは、不明瞭な対象物の間の距離
を適切に解像するために不十分であるかもしれず、隠面
の不正確な計算と表示とを発生させることとなる。大き
なB/F比に対して大きな数のビット精度は失われる可
能性があるということがいまや見て取れる。
【0023】
【発明が解決しようとする課題】要するに、表示された
グラフィック対象物に対するZバッファされた値を、異
なる距離範囲にわたってビットを非線形関係で喪失させ
ること無しに、正確に計算するための機構が必要であ
る。最近のワークステーションコンピュータシステムを
よりよく順応させるために、そのようなZバッファリン
グは、好ましくは式(1)とは異なる式を用いるべきで
あり、また、浮動小数点フォーマットを使用すべきであ
る。好ましくは、そのようなZバッファリングは、既製
の一般的な部品を用いて実施可能であるべきである。本
発明は、そのようなZバッファリングを開示する。
【0024】
【課題を解決するための手段】本発明は、現在のワーク
ステーションコンピュータシステムと表示システムとを
よりよく使用するためには、Zバッファが有利にも浮動
小数点フォーマットにおいて実行されるべきであるとい
うことを認識するものである。いくらか能率的に1ビッ
トを先行させてコード化するために非標準的な浮動小数
点表現を設計しようとする試みよりは、むしろ、本発明
は、式(1)の修正に対する解決を実現するものであ
る。本発明によれば、Z値を量子化するときにより高い
精度をもたらす浮動小数点の式は、次のように定義され
る。 Z=wF/W (2)ここ
で、wFは、前方クリッピング平面FにおいてW座標が
達成する値である。
【0025】式(2)は、WがW=wFからW→∞まで
変化するにつれて、1からゼロ近傍まで変わるZ値を生
成する、例えば、Zデプス比較の概念が逆になる。しか
しながら、式(2)によって生成される数値表現は、標
準の浮動小数点コード化に対しては非常に修正の余地が
ある。有利なことには、後方クリッピング平面に近い数
値は、いまや先行ゼロを持ち、失われる情報はより少な
い。さらに、範囲0<Z≦1に渡って発生するビット喪
失は、従来技術における喪失よりもより線形的に発生す
るであろう。
【0026】表示されるべき3次元対象物の表面は、頂
点をもつ複数のプリミティブ(三角形、多角形など)に
よって表現することができる。好ましい実施例として
は、プリミティブの全てのスクリーン空間Z値は、完全
浮動小数点表現を用いて最初に表現される。本発明は、
統計的にはおそらく、関連するプリミティブにおいて各
頂点に対するスクリーン空間Zの浮動小数点表現は、同
じ浮動小数点指数を典型的に共有するであろうと仮定し
ている。
【0027】最大の浮動小数点指数をもつプリミティブ
頂点を特定するために、どの指数がそのプリミティブに
関連づけられるか、比較による決定がなされる。この最
大の指数値は、格納され、全ての頂点の指数から減算さ
れて、その結果は固定小数点フォーマットに変換され
る。頂点の固定小数点表現は、典型的には先行ゼロを全
く(またはほとんど)持っておらず、そのことは、固定
小数点表現のほとんどのビットが、有用な情報をコード
化するであろうことを意味している。通常の固定小数点
設定およびスキャンコンバージョン操作に続いて、各画
素の最終的なZ固定小数点値は浮動小数点に戻されるよ
うに変換され、そしてそのプリミティブに対して格納さ
れていた当該指数が、Zバッファ距離の比較が行われる
前に、加算され元に戻される。本発明の他の特徴および
利点は、好ましい実施例が添付図面と合わせて詳細に説
明される以下の記載から明瞭になろう。
【0028】
【発明の実施の形態】図3は、ユーザ生成のイメージを
表示するために、最近のワークステーションあるいはコ
ンピュータシステムとともに使用されるようなビデオシ
ステム200を示している。図3の部品で図1に関連し
て図示し説明したものに類似する参照番号をもつもの
は、同じような部品である。しかしながら、図1と対照
をなすものとして、システム200の中のビデオ処理装
置70’は、本発明による浮動小数点Zバッファ装置3
00を含んでいる。Zバッファ装置は、浮動小数点、シ
ステム200の大部分において存在する浮動小数点アー
キテクチャを利用するフォーマット、および、当に最近
のワークステーションコンピュータシステムにおいて機
能している。Zバッファ装置300は、モニタ30の上
に表示されるべき対象物40,50に対するZ値の量子
化における高精度を維持するために次の浮動小数点の式
を実行する。 Z=wF/W (2) この場合、wFは、W座標が前方クリッピング平面Fに
おいて到達した値である。
【0029】式(2)は、入力点が前方クリッピング平
面から後方クリッピング平面まで移動しても0から1ま
で変化しないということに留意すべきである。そのかわ
り、式(2)は、WがW=wFからW=∞まで変化する
とき、1から0近くまで変化するZ値を生成する。この
結果は、Zデプス比較は、小さい値を大きな値より遠く
にあるものとしていまや扱わねばならないということ、
例えば、Zデプス比較の意味が逆になっているというこ
とをもちろん示唆している。しかしながら、式(2)に
よって生成された数値表現は、標準浮動小数点コード化
に対して非常に修正容易である。有利なことに、後方ク
リッピング平面の近くの数値は、先行ゼロを有し、失わ
れる情報は少ない。さらに、0<Z≦1の範囲に渡って
発生するようなビット喪失は、従来技術における喪失よ
りもより線形関係で発生するであろう。
【0030】浮動小数点表現にきわめてよく適している
性質をもっていることに加えて、式(2)は、視点の前
の1Fと2Fとの間の全距離が同じ(最大の)指数を共
有しているという性質を持ってもいる。好ましい実施例
においては、28ビットが用いられ、そのうちの4ビッ
トが指数フィールドを表し、24ビットが仮数を表す。
1Fから2Fまでの距離状況の表現は、24ビットを完
全に使用できる。視点からの2Fと4Fとの間の距離点
の表現は、次の指数を共有する、などである。従来のZ
バッファリングシステムは、8ビット指数を採用する。
しかしながら、本発明は、4ビットの指数を用いること
で大部分の目的には機能を果たしており、残りの4ビッ
トを24ビットの仮数を得るために使うことができる。
【0031】本発明は、観察平面の中の単一領域毎に、
24ビットの表現を好ましくも提供しており、また、距
離0から無限大に渡る大きな単一プリミティブでさえ、
24ビット全部によって表現される。しかし、この最悪
の場合のシナリオにおいてさえ、本発明は、従来技術の
従来の数学によって提供されるであろうものに比べて最
悪ではない解像度をもって、そのような対象物をやはり
表現するであろう。しかし、最良の場合において、本発
明は、従来技術のZバッファリング技術よりもより正確
なものを提供する。結果として、本発明は、新しいハー
ドウェアによって実現されるが、従来技術の方法に対し
て、完全なエミュレーションおよびコンパチビリティを
提供できる。
【0032】したがって、Zバッファにおける値は、法
線値に対する点の浮動小数点表現に類似して指数関数的
に増加する空間における距離を表現するであろう。この
ように、Zバッファ値の数値的な表現精度は、モデル空
間から観察空間へ点を変換するとき生成される浮動小数
点の値によく整合する。本質的に、ユーザのモデル空間
入力点の最初の数値的な精度は、処理を通して、また、
ハードウェアのZバッファ中に保持されている。
【0033】図4に示すように、表示されるべき3次元
の対象物は、頂点を具備する複数のプリミティブ(三角
形、多角形等)によって表現される。示された例におい
て、表示されるべき3次元対象物、例えば、“リンゴ”
40の表面は、それぞれが3つの頂点をもつ複数の三角
形によって表現される。したがって、三角形T1は、頂
点(1,2,3)によって画定されるといった具合であ
る。
【0034】後方クリッピング平面が、例えば1マイル
離れているような、きわめて遠い場合の表現においてさ
えも、描かれる各幾何学的なプリミティブは、ほとんど
の場合、そのような距離よりも相当に小さいであろう。
一般に、所与の対象物の一部分を形成する所与の多角
形、三角形、あるいはその他のプリミティブの個々の頂
点は、全Z範囲に対して互いに非常に密接したものとな
るであろう。このことは、頂点に対するZバッファ距
離、例えば、各頂点に対するスクリーン空間Zの浮動小
数点表現は、統計的にはほとんど、同じ浮動小数点指数
を典型的にも共有するであろうということを意味する。
もしも、指数値が異なっているとしても、それらは、ほ
んの小さな量異なるだけであろう。
【0035】このように、図4の例に関連して、個々の
三角形に対する3つの頂点は、ほぼ同じの浮動小数点指
数を持っているようである。この共通の指数情報は、本
発明によれば、Z距離を表現するために用いられてい
る。Zバッファ装置300は、その三角形の浮動小数点
Z指数値として、最大の指数を全三角形に対応付ける
(例えば連想“タグ”がデータヘッダの中に作られ
る)。したがって、もしも、三角形T1に対応付けられ
た頂点3が頂点1あるいは頂点2のいずれかよりも大き
な指数値をもっていたならば、三角形T1に対する共通
な浮動小数点Z指数値は、頂点3の値となろう。残りの
頂点の値、2および3は、調べられるであろうが、仮数
または分数フィールドビット、例えば前記ビットの残り
のみが使用される。
【0036】図5は、好ましい実施例、装置300のブ
ロック図である。好ましくは、プリミティブの全てのス
クリーン空間Z値は、全浮動小数点表現を用いて最初に
表現される。この浮動小数点の頂点データは、例えば、
装置400のバッファに対して使用可能である。次に、
いずれの頂点が最大の浮動小数点指数をもっているかに
関して決定がなされ、頂点比較器410によってステッ
プが実行される。このような比較は、ビットシフティン
グを含めて多くの方法で実行できる。
【0037】この最大の指数値は、メモリ装置420の
中に格納される。そして、指数減算器装置420’は、
そのプリミティブと関連付けられた頂点の指数のそれぞ
れからこの格納された値を減算する。そこで、浮動小数
点から固定小数点への変換器装置430は、減算結果の
フォーマットを変更する。
【0038】データは、今や固定小数点のフォーマット
に変換されており、固定小数点の頂点表現は、典型的に
有利にも先行ゼロを全く(あるいは、ほとんど)持って
いない。従来技術とは対照的に、この表現は、固定小数
点表現のほとんどのビットで有用な情報をコード化する
のを可能にしている。
【0039】装置440は、従来の固定小数点セットア
ップおよびスキャンコンバージョン操作を表し、その
後、各画素の最後のZ固定小数点の値は、フォーマット
変換器450を用いて浮動小数点に戻すように変換され
る。プリミティブに対するメモリ420の中に格納され
た当該指数は、いまや指数加算器460を用いて加算さ
れ、もとのデータに戻される。サブ装置470におい
て、Z距離比較は、タグが付けられた指数を持つ正規化
された値の間で実行される。その比較(整数で実行して
もよい)は、3次元RAMの範囲内で発生してもよい。
【0040】好ましくは、装置450は、フレームバッ
ファメモリシステムに対するインタフェースが少なくと
も最終処理ステップを実行する前に、特殊化された固定
小数点から(正規化された)浮動小数点への変換を実行
する。
【0041】Zバッファ画素値の正規化は、多くの方法
で実行可能である。例えば、先行ゼロに対してその値の
最初の“1”ビットが発見されるまで、そのプリミティ
ブを表現するZ補間固定小数点数を検査する。その最初
の“1”ビットまでのビット位置の数は、その画素の関
連された三角形(あるいはその他)のプリミティブの共
有指数から減算されるオフセットとして使用してもよ
い。そして、Zバッファ画素値は、最初の“1”ビット
を隠されたビット位置にもってくるためにバレルシフト
してもよい。次に、前記オフセットは、この特定なZバ
ッファ画素値に対する個々の指数を形成するために、共
有指数から減算されてもよい。もしも、この減算が負の
結果を生成するならば、個々の指数は、ゼロ(あるい
は、逆正規化)指数となるであろうし、バレルシフティ
ングの量は、これに対応して低減されるであろう。
【0042】もしも、浮動小数点の値が(最小指数逆正
規化の場合を除いて)適切に正規化されるならば、この
ような浮動小数点Zの値の比較は、整数比較により実行
してもよい。そのように行うことは、さらに複雑な浮動
小数点比較論理に対する必要性を除去する。この特徴
は、Z比較器がもう一つの集積回路チップ、例えば、3
DRAM装置の中に配置され、かつ、非整数比較を用い
るようには容易に修正できない場合において特に有用で
ある。好ましい実施例としては、装置300は、単一の
集積回路として実施されるであろう。
【0043】ビデオシステム70’は、グラフィックス
セットアップ、インクリメンタル描画などを生み出す意
味において、グラフィックスデータを処理することもま
た可能である。しかしながら、本発明によれば、与えら
れたプリミティブは、単純に固定小数点プリミティブで
あり、例えば、異なる画素Z値を得るために浮動小数点
の値を埋める必要はない。しかしながら、Zバッファリ
ングの工程の最後では、個々のプリミティブからフレー
ムバッファの中にZ値を挿入する前に、指数が全プリミ
ティブを表現しており、それの単一の頂点を表現してい
るだけではないということをデータ(例えば、ヘッダタ
グ)から知ることは必要である。
【0044】本発明を、3次元グラフィックス表現をZ
バッファリングすることに関して説明してきたが、説明
した方法論は、同様に類似した再マッピングを必要とす
る非グラフィックの応用にも適用してもよい。特許請求
の範囲によって定義される本発明の主題と精神とから離
れることなく、開示された実施例に対して修正および変
更が行われてもよい。
【図面の簡単な説明】
【図1】 従来技術にかかる固定小数点Zバッファリ
ングを含む3次元グラフィックスビデオシステムを表す
図である。
【図2】 ZからWへの変換に関連した前方および後
方観察平面を示す図(A)、正しいZバッファリングに
よるイメージ40および50の投影像(B)、誤りのあ
るZバッファリングの第1の例によるイメージ40およ
び50の投影像(C)、および誤りのあるZバッファリ
ングの第2の例によるイメージ40および50の投影像
(D)を示す図である。
【図3】 本発明にかかる浮動小数点Zバッファリン
グを含む3次元グラフィックスビデオシステムを表す図
である。
【図4】 本発明により各々が3つの頂点で定義され
た複数の三角形を含むように表示された対象物の表面部
分を表す図である。
【図5】 本発明の好ましい実施例を示す図である。
【符号の説明】
40,50…対象物、70’…ビデオ処理装置、200
…ビデオシステム、300…Zバッファ装置、410…
頂点比較器、420…メモリ装置、420’…指数減算
器装置、430…変換器装置、440…装置、450…
フォーマット変換器、460…指数加算器、470…サ
ブ装置。
【手続補正書】
【提出日】平成9年10月23日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図4】
【図1】
【図5】
【図3】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 Z値を用いることにより隠面を識別しう
    る対象物を表示できるビデオディスプレイシステムにお
    いて使用されるレンダリング方法において、 前記Z値を決定する方法が、 wFを前方クリッピング平面FにおけるW座標の値とし
    て、ZをZ=wF/Wによって表現するステップを有す
    ることを特徴とするレンダリング方法。
  2. 【請求項2】 前記対象物のそれぞれの表面を浮動小数
    点の頂点を持っているプリミティブで表現するステップ
    と、 前記対象物のそれぞれを表現する前記プリミティブの各
    々について前記頂点の前記Z値を比較し、前記頂点のい
    ずれが最大浮動小数点指数を有する値を持っているかを
    決定するステップと、 その最大の頂点値を、前記プリミティブに対する共通の
    頂点値として、前記プリミティブに関連付けるステップ
    と、 前記関連づけられたプリミティブの前記頂点の値から前
    記最大の頂点値を減算するステップと、 前記減算の結果を固定小数点フォーマットに変換し、
    (i)セットアップ工程および(ii)スキャンコンバー
    ジョンビデオ表示工程のうちの少なくともひとつを実行
    するステップと、 前記対象物のそれぞれに対して表示される各画素に関連
    した前記スキャンコンバージョンからの最終Z値出力を
    浮動小数点値に変換するステップと、 前記プリミティブに関連した前記最大浮動小数点指数を
    前記浮動小数点値のそれぞれの指数成分に加算するステ
    ップと、 結果として生じたZ値でZ距離の比較を実行するステッ
    プとをさらに含む請求項1記載のレンダリング方法。
  3. 【請求項3】 Z値を用いることにより隠面を識別でき
    る対象物を表示できるビデオディスプレイシステムとと
    もに使用されるZバッファ装置において、 (i)汎用プロセッサ装置と、(ii)wFを前方クリッ
    ピング平面FにおけるW座標の値であるとして、ZをZ
    =wF/Wによって計算するようにプログラムされた専
    用グラフィックスアクセラレータ装置とから構成される
    グループから選択されたプロセッサ装置(CPU)シス
    テムを有するZバッファ装置。
  4. 【請求項4】前記対象物のそれぞれの少なくとも表面を
    集合的に画定するプリミティブを表現する浮動小数点頂
    点値を受け取り、前記頂点のいずれが最大の浮動小数点
    指数を有する値を持っているかを決定し、前記最大浮動
    小数点指数を出力する比較器と、 そのような最大の頂点値を、前記プリミティブに対する
    共通の頂点値として、それの前記プリミティブと関連付
    けるタグ/フィールド機構と、 前記関連づけられたプリミティブの前記頂点の値から前
    記最大の頂点値を減算する減算装置と、 前記減算装置と接続されて前記最大の頂点値を固定小数
    点フォーマットに変換する浮動小数点フォーマットから
    固定小数点フォーマットへの変換器と、 ビデオセットアップおよび/またはコンバージョンビデ
    オ表示装置と、 前記ビデオ表示装置の出力に接続されて前記対象物のそ
    れぞれに対して表示される各画素に関連した最終Z値を
    浮動小数点フォーマットに変換する固定小数点から浮動
    小数点への変換器と、 前記固定小数点から浮動小数点への変換器に接続され
    て、前記最大の浮動小数点指数を受け取るとともに、前
    記浮動小数点値のそれぞれに対してこれを加算する加算
    装置と、 その結果として生じたZ値の間のZ距離を比較するZ比
    較器とをさらに含む請求項3記載のZバッファ装置。
JP9188922A 1996-07-01 1997-07-01 Zバッファプリミティブによるレンダリング方法およびzバッファ装置 Pending JPH10116357A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/673117 1996-07-01
US08/673,117 US6046746A (en) 1996-07-01 1996-07-01 Method and apparatus implementing high resolution rendition of Z-buffered primitives

Publications (1)

Publication Number Publication Date
JPH10116357A true JPH10116357A (ja) 1998-05-06

Family

ID=24701387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9188922A Pending JPH10116357A (ja) 1996-07-01 1997-07-01 Zバッファプリミティブによるレンダリング方法およびzバッファ装置

Country Status (4)

Country Link
US (1) US6046746A (ja)
EP (1) EP0817126B1 (ja)
JP (1) JPH10116357A (ja)
DE (1) DE69717919T2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6271850B1 (en) * 1997-10-28 2001-08-07 Matsushita Electric Industrial Co., Ltd. Image generation apparatus, image generation method, image generation program recording medium, image composition apparatus, image composition method, and image composition program recording medium
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
AU5686199A (en) 1998-08-20 2000-03-14 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6285779B1 (en) * 1999-08-02 2001-09-04 Trident Microsystems Floating-point complementary depth buffer
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) * 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6677945B2 (en) 2001-04-20 2004-01-13 Xgi Cayman, Ltd. Multi-resolution depth buffer
US7450120B1 (en) 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US8269769B1 (en) 2003-12-22 2012-09-18 Nvidia Corporation Occlusion prediction compression system and method
US8854364B1 (en) 2003-12-22 2014-10-07 Nvidia Corporation Tight depth range occlusion prediction system and method
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
US7525542B2 (en) * 2006-03-15 2009-04-28 Microsoft Corporation Automatically generating appropriate near and far clipping planes for a 3D scene while guaranteeing minimum of Z-buffer precision
US8878849B2 (en) * 2007-12-14 2014-11-04 Nvidia Corporation Horizon split ambient occlusion
EP2297705B1 (fr) 2008-06-30 2012-08-15 Thomson Licensing Procede de composition temps reel d'une video
US8402444B2 (en) * 2009-10-09 2013-03-19 Microsoft Corporation Program analysis through predicate abstraction and refinement
US10008029B2 (en) 2013-05-31 2018-06-26 Nvidia Corporation Updating depth related graphics data
US9418400B2 (en) 2013-06-18 2016-08-16 Nvidia Corporation Method and system for rendering simulated depth-of-field visual effect

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621214A (en) * 1968-11-13 1971-11-16 Gordon W Romney Electronically generated perspective images
US4470122A (en) * 1981-09-30 1984-09-04 The Boeing Company Integrated electro-optical position sensing, workpiece probing and display method and apparatus
DE3587670T2 (de) * 1984-01-21 1994-06-23 Sony Corp Verfahren und schaltung zur dekodierung von fehlercode-daten.
US4679041A (en) * 1985-06-13 1987-07-07 Sun Microsystems, Inc. High speed Z-buffer with dynamic random access memory
US4991131A (en) * 1987-10-06 1991-02-05 Industrial Technology Research Institute Multiplication and accumulation device
US5084830A (en) * 1987-10-26 1992-01-28 Tektronix, Inc. Method and apparatus for hidden surface removal
JP2618951B2 (ja) * 1988-02-16 1997-06-11 株式会社東芝 三次元図形処理装置
US4907174A (en) * 1988-06-02 1990-03-06 Sun Microsystems, Inc. Z-buffer allocated for window identification
US4985834A (en) * 1988-11-22 1991-01-15 General Electric Company System and method employing pipelined parallel circuit architecture for displaying surface structures of the interior region of a solid body
JP2739487B2 (ja) * 1988-12-20 1998-04-15 株式会社日立製作所 描画処理装置及びその描画処理装置を用いた画像表示装置
US5103418A (en) * 1989-11-20 1992-04-07 Motorola, Inc. Dangerous range detector for floating point adder
CA2038412C (en) * 1990-04-26 2001-10-16 Glenn M. Courtright Polygon sort engine
JP2679500B2 (ja) * 1990-12-17 1997-11-19 モトローラ・インコーポレイテッド 総合的なシステム歩留りを計算するための方法
US5444838A (en) * 1991-03-18 1995-08-22 Hewlett-Packard Company Computer system and method for interference checking of polyhedra using capping polygons
JPH04290122A (ja) * 1991-03-19 1992-10-14 Fujitsu Ltd 数値表現変換装置
US5293467A (en) * 1991-04-03 1994-03-08 Buchner Gregory C Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system
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
GB2271259A (en) * 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
US5457779A (en) * 1993-01-15 1995-10-10 Silicon Graphics, Inc. System for accessing graphic data in a SIMD processing environment
JPH06274653A (ja) * 1993-03-18 1994-09-30 Fujitsu Ltd グラフィック表示装置
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
GB9324638D0 (en) * 1993-12-01 1994-01-19 Philips Electronics Uk Ltd Image processing
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US5572634A (en) * 1994-10-26 1996-11-05 Silicon Engines, Inc. Method and apparatus for spatial simulation acceleration
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5706479A (en) * 1995-10-02 1998-01-06 Apple Computer, Inc. Method and apparatus for dynamically detecting overflow of a multi-layer buffer

Also Published As

Publication number Publication date
DE69717919T2 (de) 2003-08-21
DE69717919D1 (de) 2003-01-30
EP0817126B1 (en) 2002-12-18
EP0817126A3 (en) 1998-06-03
US6046746A (en) 2000-04-04
EP0817126A2 (en) 1998-01-07

Similar Documents

Publication Publication Date Title
JPH10116357A (ja) Zバッファプリミティブによるレンダリング方法およびzバッファ装置
US6285779B1 (en) Floating-point complementary depth buffer
US6081274A (en) Shading processing device
US6677945B2 (en) Multi-resolution depth buffer
US7355603B2 (en) Filtering unit for floating-point texture data
JP5185418B2 (ja) 透光性3dグラフィックをレンダリングする方法及び装置
EP0503251A2 (en) Direct display of CSG expression by use of depth buffers
US7659893B1 (en) Method and apparatus to ensure consistency of depth values computed in different sections of a graphics processor
KR940007905B1 (ko) 선이 포함된 면을 갖는 다각형을 3차원적으로 디스플레이하는 방법 및 컴퓨터 그래픽 시스템
US6373495B1 (en) Apparatus and method for texture mapping using multiple levels of detail
GB2544679A (en) Tessellating patches of surface data in tile based computer graphics rendering
US7158133B2 (en) System and method for shadow rendering
Wang et al. Second-depth shadow mapping
US8068120B2 (en) Guard band clipping systems and methods
US6681237B1 (en) Exponentiation circuit for graphics adapter
JP2909616B2 (ja) 3次元形状表示方法
US5706479A (en) Method and apparatus for dynamically detecting overflow of a multi-layer buffer
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
KR100393086B1 (ko) 서브 텍셀 수준의 면적 점유비를 이용한 이방성 텍스춰필터링 방법 및 장치
US6693634B1 (en) Reduction rate processing circuit and method with logarithmic operation and image processor employing same
US20050231533A1 (en) Apparatus and method for performing divide by w operations in a graphics system
US5900882A (en) Determining texture coordinates in computer graphics
Fu et al. Dynamic shadow rendering with shadow volume optimization
Erhart et al. General purpose z-buffer CSG rendering with consumer level hardware
KR19990078036A (ko) 유효한부동점제트버퍼링을구현하기위한방법및장치