JP4740490B2 - グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング - Google Patents
グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング Download PDFInfo
- Publication number
- JP4740490B2 JP4740490B2 JP2001249924A JP2001249924A JP4740490B2 JP 4740490 B2 JP4740490 B2 JP 4740490B2 JP 2001249924 A JP2001249924 A JP 2001249924A JP 2001249924 A JP2001249924 A JP 2001249924A JP 4740490 B2 JP4740490 B2 JP 4740490B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- plane
- graphics
- znear
- znear2
- 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 - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明はコンピュータグラフィックスに関し、より詳細には家庭用ビデオゲームプラットフォームなどの対話式グラフィックスシステムに関する。さらに、より詳細には、本発明は、アンチエイリアス化シーンをレンダリングする際に視覚的に重要なZ成分の精度を最大化しかつZ近傍クリッピングを回避するための、Z近傍範囲におけるZ値クランピングに関する。
【0002】
【従来の技術】
我々の多くは、驚くほどリアルな恐竜、異星人、アニメーション化された玩具、およびその他の空想的な生物を含む映画を観たことがある。このようなアニメーションは、コンピュータグラフィックスによって可能となる。こうした技術を用いることにより、コンピュータグラフィックスアーチストは、各オブジェクトがどのように見えるべきか、また時間とともにどのように外見が変化すべきを指定することができ、そしてコンピュータがオブジェクトをモデリングし、これらをテレビやコンピュータスクリーンなどのディスプレイ上に表示する。このコンピュータは、シーン中の各オブジェクトの位置および方向、各オブジェクトに光が入射しているように見える方向、各オブジェクトの表面テクスチャ、およびその他の要素に基づき、表示された画像の各部分がちょうど正しく色付けされかつ形付けられていることを確実にするために必要な多くの処理の実行を担当する。
【0003】
コンピュータグラフィックスの生成は複雑であるため、ほんの数年前では、コンピュータ生成された3次元グラフィックスは、高価な専用のフライトシミュレータ、ハイエンドのグラフィックスワークステーション、およびスーパーコンピュータに概ね限定されていた。大衆は、これらのコンピュータシステムによって生成された画像のいくつかを映画や高価なテレビ広告で見ることはあったが、我々の大部分は、グラフィックス生成を行うコンピュータに実際に接触することはできなかった。これが全て、例えばニンテンドウ64(登録商標)などの比較的安価な3Dグラフィックスプラットフォームや、現在パーソナルコンピュータで利用可能な様々な3Dグラフィックスカードが利用可能になることにより変貌した。今や、家庭またはオフィスにて、比較的安価なコンピュータグラフィックスシステム上で刺激的な3Dアニメーションおよびシミュレーションと接触することが可能である。
【0004】
【発明が解決しようとする課題】
大部分の3Dグラフィックスコンピュータシステムは、Z軸(シーン奥行き)値を典型的に含むポリゴン頂点属性データに応答して、表示用に画像をレンダリングし準備する。オブジェクトを3Dシーン中におけるそれらの各奥行き(すなわち観察者/カメラからの距離)に応じて適切にレンダリングするために、Zバッファリングと呼ばれる周知の技術がしばしば用いられる。大量の3D画像ポリゴン頂点属性データの処理は非常に時間がかかり得るため、グラフィックスシステムの設計者はしばしば、非表示画像データの処理を無くすためのポリゴン間引きおよびクリッピング処理を用いる。この非表示画像データは典型的には、「カメラ空間」と呼ばれる(「スクリーン空間」とも呼ばれる)仮想的3D画像レンダリング空間内の、所定の「クリッピング」平面によって区切られた視錐台の外側にあるポリゴン頂点データである。例えば、カメラ(ビューポート)位置より後ろにある3Dシーンまたはオブジェクトの一部はレンダリングされる必要がなく、間引きあるいはクリップされてもよい。同様に、シーン距離において非常に遠くの(すなわちシーン奥行きあるいはZ軸に沿ってカメラ/視点位置から遠くの)シーン部分および3Dオブジェクトは、レンダリングされる必要がない。
【0005】
遠クリッピング面が近クリッピング面の奥行きの何倍もになるような近クリッピング面および遠クリッピング面の両方を用いて、シーン奥行きクリッピングを行ってもよい。シーンデプスクリッピングはまた、カメラ/視点位置(すなわちZ=0平面)かその後ろにあるクリッピング面を用いて、あるいは近クリッピング面を全く用いずに行われてもよい。ただし、本明細書において詳細には述べない様々な理由で、カメラ/視点位置にある、あるいはカメラ/視点位置に非常に近い3Dオブジェクトのレンダリングは、小さなZ値が関係することにより、オーバーフローおよびラッピングエラーなどの特定のデータ処理問題を起こし得る。例えば、ジオメトリ投影の場合、カメラ(Z=0)面に「近すぎる」頂点のw(均一座標スケールファクタ)値は非常に小さくなる。スクリーン空間変換動作中に頂点x、yおよびz座標属性をそのような小さいw値で除算するとしばしば、精度およびオーバーフローの問題が起こる。特にw=0の場合、得られるスケール値は無限大になる。近平面に対してジオメトリクリッピングすることによりこのような問題を回避できる。すなわち、違反する頂点を持つ各三角形を近平面によって部分に分解し、「近すぎる」方の半分を捨てる。従って、カメラ/視点位置より前の近クリッピング面を用いてシーンデプスクリッピングを行う場合、近クリッピング面は、そのようなオーバーフローまたはラッピングエラーが起こらないようにカメラ前方の十分遠くに位置されなければならない。
【0006】
あるいは、近クリッピング面を用いずに、またはカメラ/視点位置かその後ろにあるクリッピング面を用いてシーンデプスクリッピングが行われる場合は、このようなオーバーフローおよびラッピング問題を予防する責任を、カメラ位置とレンダリングされたオブジェクトとの間の許容距離を規制することによってアプリケーションプログラムに負わせる必要がある。グラフィックスシステムの設計者が過去に直面した1つの問題は、表示された3D画像オブジェクトで観察者の平面(すなわちカメラ/視点平面)に近づくもののポリゴンのクリッピングに関連する、特定の望ましくない視覚的効果をいかにして回避するかである。特に、グラフィックスアーチストおよびゲーム開発者は、観察者の前に位置するクリッピング面によってクリッピングされた3Dオブジェクトを見ることを嫌がる。これはオブジェクトに穴を開けてしまい、オブジェクトが中空であるという印象を与えるからである。1つの解決策は、近クリッピング面が視点/カメラ平面(すなわちZ=0平面)に非常に近いような6面からなる視錐台クリッピングボックスを定義し、いかなる3Dアニメーション化オブジェクトも近クリッピング面より視点/カメラ平面側に近く来てはならないというアプリケーションプログラムルールを立てることである。近クリッピング面が視点/カメラ平面に非常に近く置かれることにより、視点/カメラ平面のやや近くにレンダリングされる必要があるオブジェクトが、クリッピングの悪影響を受けるほど近くに来る可能性が少なくなる。残念なことに、近クリッピング面を視点/カメラ平面に非常に近く置くことは、遠クリッピング面に向けてのZ奥行き精度を減少させる。このZ精度の問題は、限られた数のZバッファビットしか奥行き精度に利用できない場合に特に悪化する。Z値を表現するためのビット数が少なくなるほど、精度問題が大きくなる。
【0007】
ハードウェアにおいてZ軸奥行き値を表現するために例えば24ビット以上の多くのビットが利用可能であるグラフィックスシステムにおいてZバッファリングを行う場合、Z値精度は問題ではないかもしれない。しかし、Z軸奥行き値を表すために利用可能なビットがより少ない特定のシステムまたは実施形態においては、十分なZ値精度の欠如により、Zバッファリング性能および正確さが深刻な影響を受けてしまうかもしれない。例えば、特定の実施形態においては、記憶メモリ制約に対応するためにデータ圧縮を行うことが望ましいこともある。Zデータ圧縮が行われると、正確なZバッファリングを提供するためのZ精度の度合いが悪影響を受け得る。
【0008】
【課題を解決するための手段および発明の効果】
本発明はまた、3Dグラフィックスレンダリングシステムにおいて、Z値奥行きデータが圧縮されなければならない場合にZバッファリングを行う際に、Z値奥行き精度を確保するための技術および構成を提供することにより、上記の問題を解決する。
【0009】
本発明はまた、3Dグラフィックスレンダリングシステムにおいて、Z値奥行き精度を確保しながら、オブジェクトが視点/カメラ平面に近くレンダリングされすぎたときに発生する望ましくない視覚的アーチファクトを回避するために、Zクリッピング面を視点/カメラ平面の非常に近くで用いることを可能にするための技術および構成を提供することにより、上記の問題を解決する。
【0010】
本発明はまた、3Dグラフィックスレンダリングシステムにおいて、1つの頂点に対応するZ奥行き値が例えば23ビット以下を用いて表されるようなZバッファリングを行うための技術および構成を提供することにより、上記の問題を解決する。
【0011】
より具体的には、本発明の一実施例において、Z=0視点/カメラ(ビューポート)平面から所定の範囲内におけるZ値クランピングを提供することにより、Zクランピング構成を用いて視覚的に重要なZ成分の精度を改善する。この構成は、Z精度を確保しながら、視点/カメラ平面に近くレンダリングされたオブジェクトがクリッピングされたときに発生する望ましくない視覚的アーチファクトを回避するために、Zクリッピング面を視点/カメラ平面の非常に近くで用いることを可能にする。近クリッピング面「znear」は、Z=0平面に非常に近いZ平面に設定され、遠クリッピング面「zfar」は、Z=0平面から遠くのZ平面に設定される。そしてクランピング面「znear2」を、Z=znear*(1<<n)に位置するように設定する。ここでnは、znear2平面の位置をznear平面に対して相対的に設定することによってそのシーンのZ解像度を効果的に決定する整数である。znear2平面とZ遠クリッピング面との間の範囲内にある全ての画素について、Zバッファリングが行われる。znear平面とznear2平面との間の範囲内にあるいかなる画素も、そのZ値が例えばゼロに、あるいはクランピング面のZ値にクランプされる。z<znearである全ての画素について、ハードウェアジオメトリクリッピングが行われる。
【0012】
一実施例において、グラフィックスパイプラインに設けられた従来のZ値圧縮回路が、Z値の所定の範囲内におけるZクランピングを行うように拡張される。拡張された回路は、圧縮前にZ値を1ビット以上左にシフトするための加算器および、ゼロ以外のシフトされた最上位ビットをゼロにマスクアウトするためのゲートを含む。
【0013】
【発明の実施の形態】
図1は、対話式3Dコンピュータグラフィックスシステム50の一例を示す。
システム50は、対話式3Dビデオゲームを面白いステレオ音とともにプレイするために用いられ得る。また、様々な他の応用例にも用いられ得る。
【0014】
本例において、システム50は、3次元世界のデジタル表現物あるいはモデルを、対話式にリアルタイムで処理することが可能である。システム50は、その世界のうちの一部または全部を、いかなる任意の視点から表示することもできる。例えば、システム50は、手持ちコントローラ52a、52bまたはその他の入力デバイスからのリアルタイム入力に応答して、対話式に視点を変更することができる。これにより、ゲームのプレーヤが、その世界の中または外側にいる人の目を通じて、その世界を見ることが可能になる。システム50は、リアルタイム3D対話式表示を必要としない応用例(例えば、2D表示生成および/または非対話式表示)に用いられ得るが、非常に素早く高品質3D画像を表示できる能力を、非常にリアルかつ刺激的なゲームプレイまたはその他のグラフィカルな対話を創出するために用いることができる。
【0015】
システム50を用いて、ビデオゲームまたはその他のアプリケーションをプレイするために、ユーザは、まず、ケーブル58を両者の間に接続することによって、メインユニット54を自分のカラーテレビ56またはその他のディスプレイデバイスに接続する。メインユニット54は、カラーテレビ56を制御するための映像信号と音声信号との両方を生成する。映像信号は、テレビスクリーン59上に表示される画像を制御するものであり、音声信号は、テレビのステレオスピーカ61L、61Rを介して音として再生される。
【0016】
ユーザは、また、メインユニット54を電源に接続する必要がある。この電源は、標準的な家庭用電気コンセントに接続して家庭電流をメインユニット54に電力供給するために、適切なより低いDC電圧信号に変換する従来のACアダプタ(図示せず)であり得る。他の実施形態として、電池を用い得る。
【0017】
ユーザは、メインユニット54を制御するためにハンドコントローラ52a、52bを用い得る。コントロール60は、例えば、テレビ56上に表示されたキャラクターが3D世界内で移動するべき方向(上下、左右、近くあるいは遠く)を指定するために用い得る。コントロール60は、また、他のアプリケーション(例えば、メニュー選択、ポインタ/カーソル制御など)のための入力を提供する。コントローラ52は、様々な形態を取り得る。本例においては、図示したコントローラ52は、それぞれジョイスティック、プッシュボタンおよび/または方向スイッチとしてのコントロール60を含む。コントローラ52は、ケーブルを介して、あるいは電磁(例えば高周波または赤外線)波を介して無線でメインユニット54に接続され得る。
【0018】
ゲームなどのアプリケーションをプレイするためには、ユーザは自分がプレイしたいビデオゲームあるいはその他のアプリケーションを記憶している適切な記憶媒体62を選択し、その記憶媒体をメインユニット54のスロット64に挿入する。記憶媒体62は、例えば、専用にコード化されたおよび/または暗号化された光学および/または磁気ディスクであり得る。ユーザは、パワースイッチ66を操作してメインユニット54をオンにし、記憶媒体62に記憶されたソフトウェアに基づいて、メインユニットにビデオゲームあるいはその他のアプリケーションの実行を開始させ得る。ユーザは、コントローラ52を操作してメインユニット54に入力を供給し得る。例えば、コントロール60を操作することにより、ゲームあるいはその他のアプリケーションを開始させ得る。その他のコントロール60を動かすことにより、アニメーション化されたキャラクターを異なる方向に移動させたり、3D世界におけるユーザの視点を変更することができる。記憶媒体62に記憶された特定のソフトウェアに依存して、コントローラ52上の様々なコントロール60は、異なる時刻において異なる機能を実行することができる。
【0019】
システム全体の電子回路例
図2に、システム50の要素例のブロック図を示す。主要な要素として以下のものを含む。
・メインプロセッサ(CPU)110、
・メインメモリ112、および
・グラフィックスおよび音声プロセッサ114
【0020】
本例において、メインプロセッサ110(例えば、機能拡張型IBM Power PC750)は、手持ちコントローラ108(および/または他の入力装置)からの入力を、グラフィックスおよびプロセッサ114を介して受け取る。メインプロセッサ110は、ユーザ入力に対話式に応答し、例えば、外部記憶媒体62から光ディスクドライブなどの大容量記憶アクセス装置106を介して供給されるビデオゲームあるいはその他のプログラムを実行する。一例としてビデオゲームプレイの場合、メインプロセッサ110は、様々な対話式機能および制御機能に加えて、衝突検出およびアニメーション処理を実行することができる。
【0021】
本例において、メインプロセッサ110は、3Dグラフィックスコマンドおよび音声コマンドを生成し、これらをグラフィックスおよび音声プロセッサ114に送る。グラフィックスおよび音声プロセッサ114は、これらのコマンドを処理することにより、ディスプレイ59上に面白い視覚画像を生成し、ステレオスピーカ61R、61Lまたはその他の適切な音声生成装置上で面白いステレオ音を生成する。
【0022】
例示のシステム50は、グラフィックスおよび音声プロセッサ114から画像信号を受け取って、画像信号をコンピュータモニタまたは家庭用カラーテレビ56などの標準的な表示装置上での表示に適したアナログおよび/またはデジタル映像信号に変換するビデオ符号化器120を有する。システム50はまた、デジタル化された音声信号を圧縮および伸長し、また必要に応じてデジタルおよびアナログの音声信号化フォーマット間の変換を行う音声コーデック(圧縮器/伸長器)122を有する。音声コーデック122は、バッファ124を介して音声入力を受け取り、これらをグラフィックスおよび音声プロセッサ114に処理(例えば、プロセッサが生成する、および/または大容量記憶アクセス装置106の音声ストリーミング出力を介して受け取る他の音声信号との混合)のために供給することができる。本例におけるグラフィックスおよび音声プロセッサ114は、音声関連の情報を、音声タスクについて利用可能である音声メモリ126中に記憶することができる。グラフィックスおよび音声プロセッサ114は、結果として得られた音声出力信号を、伸長およびアナログ信号への変換(例えばバッファアンプ128L、128Rを介して)のために音声コーデック122に供給することにより、スピーカ61L、61Rによって再生できるようにする。
【0023】
グラフィックスおよび音声プロセッサ114は、システム50内に存在し得る様々な追加的なデバイスと連絡する能力を有する。例えば、大容量記憶アクセス装置106および/またはその他の要素と連絡するために、パラレルデジタルバス130を用い得る。シリアル周辺バス132は、例えば、
・プログラム可能なリードオンリーメモリおよび/またはリアルタイムクロック134、
・モデム136その他のネットワーク化インターフェース(これは、プログラム命令および/またはデータをダウンロードまたはアップロードすることができるインターネットあるいはその他のデジタルネットワークなどの通信ネットワーク138に、システム50を接続し得る)、および
・フラッシュメモリ140
を含む、様々な周辺デバイスまたはその他のデバイスと連絡し得る。
【0024】
追加的な拡張メモリ144(例えばメモリカード)やその他のデバイスと連絡するために、さらなる外部シリアルバス142を用い得る。コネクタを用いて様々なデバイスをバス130、132、142に接続し得る。
【0025】
グラフィックスおよび音声プロセッサの例
図3は、グラフィックスおよび音声プロセッサ114の一例のブロック図である。一例において、グラフィックスおよび音声プロセッサ114は、単一チップのASIC(アプリケーション専用集積回路)であり得る。本例において、グラフィックスおよび音声プロセッサ114は、以下を含む。
・プロセッサインターフェース150
・メモリインターフェース/コントローラ152
・3Dグラフィックスプロセッサ154
・音声デジタル信号プロセッサ(DSP)156
・音声メモリインターフェース158
・音声インターフェースおよびミキサ160
・周辺コントローラ162、および
・ディスプレイコントローラ164
【0026】
3Dグラフィックスプロセッサ154は、グラフィックス処理タスクを行う。音声デジタル信号プロセッサ156は、音声処理タスクを行う。ディスプレイコントローラ164は、メインメモリ112からの画像情報にアクセスし、これをディスプレイデバイス102上に表示するためにビデオ符号化器120に供給する。音声インターフェースおよびミキサ160は音声コーデック122とインターフェースし、また異なるソースからの音声(例えば大容量記憶アクセス装置106からの音声ストリーミング、音声DSP156の出力、および音声コーデック122を介して受け取られる外部音声入力)を混合することができる。プロセッサインターフェース150は、メインプロセッサ110とグラフィックスおよび音声プロセッサ114との間のデータおよび制御インターフェースを提供する。
【0027】
メモリインターフェース152は、グラフィックスおよび音声プロセッサ114とメモリ112との間の、データおよび制御インターフェースを提供する。本例において、メインプロセッサ110は、グラフィックスおよび音声プロセッサ114の一部であるプロセッサインターフェース150およびメモリインターフェース152を介して、メインメモリ112にアクセスする。周辺コントローラ162は、グラフィックスおよび音声プロセッサ114と、上述した様々な周辺機器との間の、データおよび制御インターフェースを提供する。音声メモリインターフェース158は、音声メモリ126とのインターフェースを提供する。
【0028】
グラフィックスパイプラインの例
図4は、3Dグラフィックスプロセッサ154の一例のより詳細な図を示す。3Dグラフィックスプロセッサ154は、特に、コマンドプロセッサ200および3Dグラフィックスパイプライン180を含む。メインプロセッサ110は、データのストリーム(例えば、グラフィックスコマンドストリームおよび表示リスト)を、コマンドプロセッサ200に通信する。メインプロセッサ110は、メモリ待ち時間を最小にするために2レベルキャッシュ115を有し、また、グラフィックスおよび音声プロセッサ114を対象とした非キャッシュデータストリーム用の書き込み収集バッファ111を有している。書き込み収集バッファ111は、部分キャッシュラインを集めて完全なキャッシュラインにし、データを一度につき1キャッシュラインずつグラフィックスおよび音声プロセッサ114に送り出すことにより、バス利用率を最大にする。
【0029】
コマンドプロセッサ200は、メインプロセッサ110から表示コマンドを受け取って解析する(これらを処理するために必要な任意の追加的なデータは、共有メモリ112から得る)。コマンドプロセッサ200は、頂点コマンドのストリームを、2Dおよび/または3D処理およびレンダリングのためにグラフィックスパイプライン180に供給する。グラフィックスパイプライン180は、これらのコマンドに基づいて画像を生成する。得られた画像情報は、ディスプレイコントローラ/ビデオインターフェースユニット164(パイプライン180のフレームバッファ出力をディスプレイ102上に表示する)によるアクセスのために、メインメモリ112に転送され得る。
【0030】
図5は、グラフィックスプロセッサ154の論理フロー図である。メインプロセッサ110は、グラフィックスコマンドストリーム210、表示リスト212、および頂点配列214をメインメモリ112に格納し得、バスインターフェース150を介してコマンドプロセッサ200にポインタを渡し得る。メインプロセッサ110は、メインメモリ110内に割り当てた1つ以上のグラフィックス先入れ先出し(FIFO)バッファ210に、グラフィックスコマンドを格納する。コマンドプロセッサ200は、
・同期/フロー制御および負荷バランスを取るためグラフィックスコマンドを受け取りバッファリングするオンチップFIFOメモリバッファ216を介して、メインメモリ112からのコマンドストリーム、
・オンチップコールFIFOメモリバッファ218を介して、メインメモリ112からの表示リスト212、および
・頂点キャッシュ220を介して、コマンドストリームからおよび/またはメインメモリ112中の頂点配列214からの頂点属性)
を取り込む。
【0031】
コマンドプロセッサ200は、属性タイプを浮動小数点フォーマットに変換し、得られた完全な頂点ポリゴンデータをレンダリング/ラスタライゼーションのためにグラフィックスパイプライン180に渡すコマンド処理動作200aを行う。プログラム可能なメモリ調停回路130(図4を参照)は、共有メインメモリ112へのアクセスを、グラフィックスパイプライン180、コマンドプロセッサ200、およびディスプレイコントローラ/ビデオインターフェースユニット164間で調停する。
【0032】
図4は、グラフィックスパイプライン180が以下を含み得ることを示している。
・変換ユニット300
・セットアップ/ラスタライザ400
・テクスチャユニット500
・テクスチャ環境ユニット600、および
・画素エンジン700
【0033】
変換ユニット300は、様々な2Dおよび3D変換ならびにその他の動作300aを行う(図5を参照)。変換ユニット300は、変換処理300aで用いられる行列を格納するための、1つ以上のマトリックスメモリ300bを有し得る。変換ユニット300は、受け取った図形を頂点毎にオブジェクト空間からスクリーン空間に変換し、また、受け取ったテクスチャ座標を変換し投影テクスチャ座標を生成する(300c)。変換ユニット300は、ポリゴンクリッピング/間引き300dを行う。やはり変換ユニット300bによって行われるライティング処理300eは、一実施例において最高8個の独立のライティングまでに対し、頂点毎のライティング演算を提供する。変換ユニット300は、また、エンボススタイルのバンプマッピング効果のためのテクスチャ座標生成(300c)を行い得る。また、本明細書においてより詳細に後述するように、変換ユニット300は奥行き(Z値)圧縮およびクランピングを行う。
【0034】
セットアップ/ラスタライザ400は、変換ユニット300から頂点データを受け取り、トライアングルセットアップ情報を、境界のラスタライズ、テクスチャ座標のラスタライズおよび色のラスタライズを行う1つ以上のラスタライザユニット(400b)に送るセットアップユニットを有する。
【0035】
テクスチャユニット500(オンチップテクスチャメモリ(TMEM502)を含み得る)は、テクスチャリングに関連する様々な処理を行う。これには、例えば、
・メインメモリ112からのテクスチャ504の取り出し、
・例えば、マルチテクスチャ処理、キャッシュ後テクスチャ伸長、テクスチャフィルタリング、エンボス化、投影テクスチャの使用を介した陰影および明暗、ならびにアルファ透明度および奥行きをともなうBLITを含むテクスチャ処理(500a)、
・バンプマッピング、擬似テクスチャ、およびテクスチャタイル化効果(500b)についてのテクスチャ座標変位の演算のためのバンプマップ処理、および
・間接テクスチャ処理(500c)
が含まれる。
【0036】
テクスチャユニット500は、通常(非間接的)および間接的テクスチャルックアップ動作の両方を用いて、テクスチャ処理を行う。通常および間接的テクスチャルックアップ動作を行うための例示のグラフィックスパイプライン回路ならびに手順のより詳細な記載が、「Method And Apparatus For Direct And Indirect Texture Processing In A Graphics System」の名称を有する同一譲受人に譲渡された同時係属中の特許出願シリアルNo.09/722,382(弁理士受付番号723−961)、および2000年8月23日付け出願に係るその対応仮出願シリアルNo.60/226,891に開示されている。これらの両方を本明細書において参考のため援用する。
【0037】
テクスチャユニット500は、フィルタリングされたテクスチャ値を、テクスチャ環境処理のため(600a)にテクスチャ環境ユニット600に出力する。テクスチャ環境ユニット600は、ポリゴンおよびテクスチャ色/アルファ/奥行きをブレンドし、また、逆レンジ型フォグ効果を達成するためのテクスチャフォグ処理(600b)を行い得る。テクスチャ環境ユニット600は、例えば色/アルファ変調、エンボス化、詳細テクスチャリング、テクスチャスワッピング、クランピング、および奥行きブレンディングに基づき、様々な他の面白い環境関連の機能を行うためのステージを複数提供し得る。テクスチャ環境ユニット600はまた、ハードウェア内においてテクスチャを1回のパスで組み合わせる(例えば減算)ことができる。テクスチャ環境ユニット600に関するさらなる詳細については、「Recirculating Shade Tree Blender for a Graphics System」の名称を有する同一譲受人に譲渡された出願シリアルNo.09/722,367(弁理士受付番号723−968)および2000年8月23日付け出願に係るその対応仮出願シリアルNo.60/226,888を参照のこと。これらの両方を本明細書において参考のため援用する。
【0038】
ピクセルエンジン700は、奥行き(z)比較(700a)およびピクセルブレンディング(700b)を行う。本例において、ピクセルエンジン700は、データを埋め込み(オンチップ)フレームバッファメモリ702に格納する。グラフィックスパイプライン180は、フレームバッファおよび/またはテクスチャ情報をローカルに格納するための1つ以上の埋め込みDRAMメモリ702を有し得る。z比較700a'は、また、現在有効なレンダリングモードに依存して、グラフィックスパイプライン180中のより早い段階で行われ得る(例えば、アルファブレンディングが必要でなければ、z比較は、より早くに行われ得る)。ピクセルエンジン700は、オンチップフレームバッファ702をディスプレイ/ビデオインターフェースユニット164によるアクセスのためにメインメモリ112に周期的に書き込むコピー動作700cを含む。このコピー動作700cは、また、動的テクスチャ合成効果を得るために、埋め込みフレームバッファ702の内容をメインメモリ112内のテクスチャにコピーするためにも用いられ得る。
【0039】
このグラフィックスシステム例において、コピーアウト動作中に、アンチエイリアシングおよびその他のフィルタリングも行うことができる。アンチエイリアシングに関するさらなる詳細については、いずれも「Method And Apparatus For Anti−Aliasing In A Graphics System」の名称を有する、2000年8月23日付け出願に係る仮出願No.60/226,900ならびに2000年11月28日付け出願に係るその対応実用特許出願No.09/726,226(弁理士受付番号723−964)を参照のこと。これらの両方を本明細書において参考のため援用する。
【0040】
グラフィックスパイプライン180のフレームバッファ出力(最終的には、メインメモリ112に格納される)は、各フレームごとにディスプレイ/ビデオインターフェースユニット164によって読み出される。ディスプレイコントローラ/ビデオインターフェースユニット164は、ディスプレイ102上に表示するためのデジタルRGB画素値を提供する。
【0041】
Zクランピング構成の例
Z=0である視点/カメラ(ビューポート)平面の前方の所定の範囲内にある画素のZ値をゼロにクランプすることにより、Zクランピング構成を用いてレンダリングされたシーン要素の視覚的に重要なZ軸(奥行き)属性の精度を改善する。図6は、スクリーン空間で見た、本発明のZ値クランピング構成の一例を示す。Zクリッピング面201「znear」は、Z=0視点/カメラ平面202の非常に近くに定義されることにより、オブジェクトが視点/カメラ平面に近くレンダリングされすぎたときに発生する望ましくない視覚的アーチファクトを回避する。クランピング平面203「znear2」は、znear2がznear*(1<<n)に等しいZ平面に位置するように設定され、ここでnは、znear2平面の位置をznear平面に対して相対的に設定することによってそのシーンのZ解像度を効果的に決定する整数である。また、遠クリッピング面204「zfar」がZ=0平面から遠くのZ平面に設定される。znear2平面とZ遠クリッピング面との間の範囲内にある全ての画素について、Zバッファリングが行われる。znear平面とznear2平面との間の範囲内にあるいかなる画素も、そのZ値が例えばゼロに、(あるいはznear2クランピング面のZ値などの最小のZ値)にクランプされ、z<znearである全ての画素について、幾何学図形に対して通常の(normal)クリッピングが行われる。
【0042】
図7は、グラフィックス処理システムにおいてZバッファリングを実施する際に改善されたZ精度を得るための、概要処理ステップ301のセットの一例のフローチャートを示す。「Z」奥行き値が、ブロック302に示すように、ポリゴン頂点属性として汎用的に演算されるかあるいはグラフィックスレンダリングシステムに供給される。本発明のZクランピング方法において、ブロック304に示すように、クリッピング平面「znear」がZ=0平面の非常に近くのZ軸平面に設定され、別のクリッピング平面「zfar」がZ=0平面から遠くのZ軸位置に設定される。また、ブロック306に示すように、クランピング平面「znear2」が、Z=znear2=znear*(1<<n)であるZ軸平面に位置するように設定され、ここでnは、znear2平面の位置をznear平面に対して相対的に設定することによってそのシーンのZ解像度を効果的に決定する整数である(すなわち、znear2平面がznear平面から遠くに位置するほど、レンダリングされたシーンのうちでznear2平面よりもカメラ/視点平面から遠い部分について得られるZバッファリング解像度は大きくなる)。ブロック308に示すように、znear2<Z<zfarであるZ値を有する全ての画素に対して通常の(normal)Zバッファリングが行われる。ブロック310に示すように、znearおよびznear2クランピング面に等しいまたはその間にあるZ値を有する(すなわちznear≦Z≦znear2)画素については、Z値がクランプされ(例えばゼロあるいはznear2平面の値などの最小の値にクランプされ)、対応する画素がフレームバッファに最初から最後に向かう順序で書き込まれる。ブロック312に示すように、Z<znearである画素について従来のジオメトリクリッピングが行われる。本グラフィックスパイプライン実施例において、以下のハードウェア実施例に説明されるように、図7のステップの大部分は変換ユニット300内のクリッピングロジックおよび拡張Z圧縮ロジックによって実行される。
【0043】
ハードウェア実施例
グラフィックスパイプライン例180において、変換ユニット300は、クリッピング面ロジック回路およびZ圧縮ロジック回路の両方を有している。アンチエイリアス化された画素の処理は、限られたサイズのZバッファ(すなわち埋め込みフレームバッファ702)により多くのデータを格納することを必要とするため、この実施例においてZ値圧縮はフルシーンアンチエイリアシングが許可されたときにのみ行われる。このようなZ圧縮回路は通常、演算された24ビットZ属性値を16ビット値に圧縮するように動作する。図8は、まったくZ値のクランピングなしで、Z圧縮を得るために用いられ得るハードウェアロジック回路例を示す。このZ圧縮回路例は本質的に、優先符号化器320および、4個の24ビットZ値に圧縮を行ってこれらを16ビット値に変換するシフタ322を備えている。
【0044】
このグラフィックスパイプライン180の実施例において、圧縮アルゴリズムが、一種の逆浮動小数点符号化を行う。従来の浮動小数点表記では分解能の大部分を数値スケールの下端側に向かってクランプするが、スクリーン空間Zの性質上、分解能の大部分を数値スケールの上端側に提供することが必要とされる。これを実現するために、3つの圧縮方式が用いられる。3つの方式の選択は、レンダリングされたシーンに用いられた特定の近−対−遠比に基づいてなされる。例えば、正射影または小さな遠−対−近比を用いるとき、入力Z値から低い方の8ビットが単純に除去されるような、直接的線形圧縮マッピングが用いられる。中程度の遠−対−近比については、14e2表記を用いた16ビットへの浮動小数点変換を用いて、24ビットのZ値を表現する。この形の圧縮により、近平面において有効15ビットの解像度ビットおよび遠平面において17ビットの解像度が得られる。高い遠−対−近比については、13e3表記を用いた16ビットへの浮動小数点変換を用いて、24ビットのZ値を表現する。これは、近平面において14ビットおよび遠平面において20ビットの有効解像度が得られる。
【0045】
上述の圧縮に対する浮動小数点変換アプローチの1つの直接的かつ単純な実施形態は、指数およびシフト値を選択し、シフト値の分だけ入力値をシフトし、高次ビット位置においてこの指数を追加することを包含する。本実施例において、以下の表に示すように、入力Z値の上位ビットが含まれる特定の値の範囲を検出することにより、指数およびシフト値が選択される。
14e2表記圧縮の場合
【表1】
13e3表記圧縮の場合
【表2】
【0046】
本例において変換ユニット300は、Z近クリッピング面およびZ遠クリッピング面(ならびに適切なXおよびY軸クリッピング面)をプログラマブルに設定し提供するために、従来のハードウェアクリッピング回路を用いてもよい。Zクランピング構成を実現しZクランピング平面を上述のように設定するために、変換ユニット300は図9に示す拡張Z圧縮ロジック回路を用いる。Z値圧縮に加えて、この回路は、上述の2つの浮動小数点変換圧縮方式のうちの1つを実現する前に、入力Z値の最上位ビットから1つ以上の左シフトを行う。図9に示すようにこの拡張回路構成は、優先符号化器320、4ビット(またはそれ以下)加算器324およびシフタ324、ならびに最上位Z値ビットをマスクするためにANDゲート(図示せず)を用いる。予め圧縮された入力Z値の左シフトはプログラマブル加算器324によって決定され、ここでnは実行されるべき左シフトの回数を表す。
【0047】
他の互換性のある実施例
上述のシステム要素50のうちのいくつかは、上述の家庭用ビデオゲームコンソール構成以外としても実施可能である。例えば、システム50用に書かれたグラフィックスアプリケーションまたはその他のソフトウェアを、システム50をエミュレートするなどして互換性を有する異なる構成を持ったプラットフォーム上で実行することができる。もしその別のプラットフォームがシステム50のハードウェアおよびソフトウェアリソースの一部または全部をうまくエミュレート、シミュレートおよび/または提供することができれば、その別のプラットフォームは、ソフトウェアを首尾よく実行することができる。
【0048】
一例として、エミュレータは、システム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供し得る。このエミュレータシステムは、アプリケーションソフトウェアが書かれたシステムのハードウェアおよび/またはソフトウェア要素の一部または全部をエミュレートまたはシミュレートする、ソフトウェアおよび/またはハードウェア要素を有し得る。例えば、エミュレータシステムは、システム50のハードウェアおよび/またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行するパーソナルコンピュータなどの汎用のデジタルコンピュータからなっていてもよい。
【0049】
汎用デジタルコンピュータのいくつか(例えばIBMまたはマッキントッシュのパーソナルコンピュータおよび互換機)は現在、DirectXまたはその他の標準的な3DグラフィックスコマンドAPIと適合する3Dグラフィックスパイプラインを提供する3Dグラフィックスカードを備えている。また、標準的な音声コマンドのセットに基づいて高品質なステレオ音を提供するステレオサウンドカードを備えている場合もある。このようなマルチメディア−ハードウェアを備えたパーソナルコンピュータがエミュレータソフトウェアを実行すれば、システム50のグラフィックスおよびサウンド性能に匹敵する十分な能力を有し得る。エミュレータソフトウェアは、ゲームプログラマがゲームソフトウェアを書いた対象である家庭用ビデオゲームコンソールプラットフォームの処理、3Dグラフィックス、音声、周辺およびその他の機能をシミュレートするように、パーソナルコンピュータプラットフォーム上のハードウェアリソースを制御する。
【0050】
図10は、ホストプラットフォーム1201、エミュレータ要素1303、および記憶媒体62上に記憶されたゲームソフトウェア実行可能2値画像を用いたエミュレーション処理の全体例を示す。ホスト1201は、例えばパーソナルコンピュータ、ビデオゲームコンソール、または十分な演算能力を有する任意のその他のプラットフォームなどの、汎用あるいは専用のデジタル演算装置であり得る。エミュレータ1303は、ホストプラットフォーム1201上で稼働し、記憶媒体62からのコマンド、データおよびその他の情報の、ホストによって処理される形式へのリアルタイム変換を提供するソフトウェアおよび/またはハードウェアであり得る。例えば、エミュレータ1303は、システム50によって実行されることが意図される「ソース」2値画像プログラム命令を記憶媒体62から取り込み、これらのプログラム命令を、ホスト1201によって実行その他の処理を行われ得る対象形式に変換する。
【0051】
一例として、ソフトウェアが、IBM PowerPCまたはその他の特定のプロセッサを用いたプラットフォーム上で実行されるように書かれており、ホスト1201が異なる(例えばインテルの)プロセッサを用いたパーソナルコンピュータである場合は、エミュレータ1303は、1つまたは一連の2値画像プログラム命令を記憶媒体62から取り込み、これらのプログラム命令を、1つ以上の同等なインテルの2値画像プログラム命令に変換する。エミュレータ1303はまた、グラフィックスおよび音声プロセッサ114によって処理されることを意図されたグラフィックスコマンドおよび音声コマンドを取り込みおよび/または生成し、これらのコマンドを、ホスト1201上において利用可能であるハードウェアおよび/またはソフトウェアグラフィックスおよび音声処理リソースによって処理され得る単数または複数のフォーマットに変換する。一例として、エミュレータ1303は、これらのコマンドを、ホスト1201の特定のグラフィックスおよび/または音声ハードウェアによって処理され得るコマンドに変換し得る(例えば、標準的なDirectX、OpenGL、および/または音声APIを用いて)。
【0052】
上述のビデオゲームシステムの一部または全ての特徴を提供するために用いられるエミュレータ1303には、また、そのエミュレータを用いて実行されるゲームの様々なオプションやスクリーンモードの選択を単純化あるいは自動化するグラフィックスユーザインターフェース(GUI)が備えられてもよい。一例において、そのようなエミュレータ1303は、また、ソフトウェアが本来意図されたホストプラットフォームに比較して、より高度な機能性をさらに含んでもよい。エミュレータ内の特定のグラフィックスサポートハードウェアが図7、8および9に示すz近傍処理機能を含まない場合、エミュレータの設計者は、
・プロセッサの速度に依存して性能が減少し得るが、z近傍処理機能をソフトウェアで実現するか、あるいは
・z近傍処理を「スタブ(すなわち無視)」することにより、近画像アーチファクトを有するレンダリングされた画像を提供する
という選択肢を有する。
【0053】
図6のフローチャートは、その全体をソフトウェアで実現するか、全体をハードウェアで実現するか、あるいはハードウェアとソフトウェアの組み合わせで実現し得るが、好適な実施例においては、より高い速度性能およびその他の利点を得るためにこれらの計算の大部分をハードウェアで行う。しかし、他の実施形態(例えば非常に高速なプロセッサが利用可能である場合)において、図6の演算およびステップをソフトウェアで実現して同様なまたは同じ画像結果を提供することができる。
【0054】
図11は、エミュレータ1302とともに適切に用いられるエミュレーションホストシステム1201を示す。システム1201は、処理ユニット1203およびシステムメモリ1205を有する。システムバス1207が、システムメモリ1205を含む様々なシステム要素を、処理ユニット1203に接続する。システムバス1207は、メモリバスまたはメモリコントローラを含む数種のタイプのバス構造、周辺バス、および様々なバスアーキテクチャのうちのいずれかを用いた局所バスのうちのいずれでもよい。システムメモリ1207は、リードオンリーメモリ(ROM)1252およびランダムアクセスメモリ(RAM)1254を有する。パーソナルコンピュータシステム1201内の要素間の情報の転送(例えばスタートアップ中など)に役立つ基本的なルーチンを含んだ基本入力/出力システム(BIOS)1256が、ROM1252に格納されている。システム1201はさらに、様々なドライブおよび関連するコンピュータ可読性の媒体を有する。ハードディスクドライブ1209は、(典型的には固定の)磁気ハードディスク1211から読み出し、またこれに対して書き込む。追加的な(可能なオプションである)磁気ディスクドライブ1213は、着脱可能な「フロッピー」またはその他の磁気ディスク1215から読み出し、また、これに対して書き込む。光ディスクドライブ1217は、CD ROMまたはその他の光メディアなどの着脱可能な光ディスク1219から読み出し、また、いくつかの構成においては、これに対して書き込む。ハードディスクドライブ1209および光ディスクドライブ1217は、それぞれハードディスクドライブインターフェース1221および光ドライブインターフェース1225によって、システムバス1207に接続されている。そのドライブおよびそれに対応するコンピュータ可読性媒体は、コンピュータ可読性の命令、データ構造、プログラムモジュール、ゲームプログラムおよびパーソナルコンピュータシステム1201のためのその他のデータを、不揮発的に記憶する。その他の構成において、コンピュータによりアクセス可能なデータを格納することができる他のタイプのコンピュータ可読性媒体、例えば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、ランダムアクセスメモリ(RAM)リードオンリーメモリ(ROM)などもまた使用され得る。
【0055】
エミュレータ1303を含む複数のプログラムモジュールは、ハードディスク1211、着脱式磁気ディスク1215、光ディスク1219、および/またはシステムメモリ1205のROM1252および/またはRAM1254上に記憶され得る。このようなプログラムモジュールは、グラフィックスおよび音声APIを提供するオペレーティングシステム、1つ以上のアプリケーションプログラム、その他のプログラムモジュール、プログラムデータおよびゲームデータを含んでもよい。ユーザは、キーボード1227、ポインティング装置1229、マイク、ジョイスティック、ゲームコントローラ、衛星放送用アンテナ、スキャナなどの入力装置を介して、コマンドおよび情報を、パーソナルコンピュータシステム1201に入力し得る。これらおよびその他の入力装置は、システムバス1207に接続されたシリアルポートインターフェース1231を介して処理ユニット1203に接続されることができるが、パラレルポート、ゲームポートファイヤワイヤバスまたはユニバーサルシリアルバス(USB)などの他のインターフェースによって接続されてもよい。また、モニタ1233またはその他のタイプの表示装置が、ビデオアダプタ1235などのインターフェースを介して、システムバス1207に接続される。
【0056】
システム1201は、インターネットなどのネットワーク1152を介して通信を確立するための、モデム1154やその他のネットワークインターフェース手段を有し得る。内部でも外部でもよいモデム1154が、シリアルポートインターフェース1231を介してシステムバス123に接続されている。また、システム1201が、局所エリアネットワーク1158を介してリモート演算装置1150(例えば、別のシステム1201)と通信することを可能にするために、ネットワークインターフェース1156が提供され得る(あるいはこのような通信は、広域ネットワーク1152またはダイヤルアップやその他の通信手段などの他の通信パスを介して行われてもよい)。システム1201は典型的には、プリンタその他の標準的な周辺デバイスなどの、他の周辺出力デバイスを有し得る。
【0057】
一例において、ビデオアダプタ1235は、マイクロソフトのDirectX7.0または他バージョンなどの標準的な3Dグラフィックスアプリケーションプログラマインターフェースに基づいて発せられる3Dグラフィックスコマンドに応答して、高速な3Dグラフィックスレンダリングを提供する3Dグラフィックスパイプラインチップセットを有し得る。また1組のステレオスピーカ1237が、従来の「サウンドカード」などのサウンド発生インターフェースを介してシステムバス1207に接続されていることにより、バス1207によって供給される音声コマンドに基づいて高品質なステレオ音声を生成するためのハードウェアおよび埋め込みソフトウェアサポートを提供する。これらのハードウェア能力は、システム1201が、記憶媒体62に格納されたソフトウェアをプレイするために十分なグラフィックスおよびサウンド速度能力を提供することを可能にする。
【0058】
上記参照した全ての文献を、本明細書において参照のため援用する。
【0059】
以上、本発明を、最も実用的で好ましい実施形態であると現時点で判断される内容について説明してきたが、本発明は、開示された実施形態にのみ制限されるべきものではなく、反対に、記載したクレームの範囲内において様々に変更、および同等な内容が適用されるものとする。
【図面の簡単な説明】
【図1】図1は、対話式コンピュータグラフィックスシステムの一例の全体図である。
【図2】図1の例のコンピュータグラフィックスシステムのブロック図である。
【図3】図2に示す例のグラフィックスおよび音声プロセッサのブロック図である。
【図4】図3に示す例の3Dグラフィックスプロセッサのブロック図である。
【図5】図4のグラフィックスおよび音声プロセッサの、論理フロー図例である。
【図6】本発明に従って、Z近傍範囲においてZクランピングを実現するためのステップ例を示すフローチャートである。
【図7】本発明のZ近傍クランピング構成のスクリーン空間を示す図である。
【図8】本発明のグラフィックスパイプライン実施例においてZ圧縮を実現するためのハードウェアロジック図の例である。
【図9】本発明のグラフィックスパイプライン実施例においてZ近傍クランピング構成の一例を実現するためのハードウェアロジック図である。
【図10】別の互換的な実施例を示す図である。
【図11】別の互換的な実施例を示す図である。
Claims (10)
- 3DグラフィックスレンダリングシステムにおいてZバッファリングを行う方法であって、
第1のクリッピング面z=znearをZ=0平面に対して相対的に近いZ軸位置に設定し、第2のクリッピング面z=zfarをZ=0平面に対して相対的に遠いZ軸位置に設定し、当該Z軸上で0、znear、zfarをこの順で並べることと、
Z値クランピング面z=znear2をznear2=znear*(1<<n)に設定することと、
znear2<z<zfarであるZ値を有する画素についてZバッファリングを行うことと、
znear<Z<znear2である画素についてZ値を所定の値にクランピングし、対応する画素データを表示フレームバッファに最初から最後に向かう順序で書き込むこととを含む、方法。 - 前記クランピングされるZ値のための前記所定の値はゼロである、請求項1に記載の方法。
- 0<Z<znearであるZ値を有する画素についてクリッピングすることをさらに含む、請求項1または2に記載の方法。
- 前記第1のクリッピング面は、Z=0平面に相対的に近くZ値が実質的に0に近い正の値となるZ軸位置に設定される、請求項1乃至3の何れか1つに記載の方法。
- プロセッサと、変換およびライティング回路を有しかつアンチエイリアス化シーンのレンダリング中にZ値圧縮動作を行う別個のグラフィックス処理パイプラインとを有する、3Dグラフィックスレンダリングシステムであって、
グラフィックスパイプラインZ値圧縮回路に含まれる加算器およびビットマスキング回路を含み、
前記加算器は、優先符号化器とシフタとの間に接続され、
前記グラフィックスパイプラインZ値圧縮回路は、Z値圧縮動作よりも前にZ値2進データを所定の数のビット位置だけ左にシフトさせることにより、Z値の所定の範囲内にあるZ値を所定のZ値に有効にクランプするために用いられる、3Dグラフィックスレンダリングシステム。 - 前記所定のZ値はゼロである、請求項5に記載の3Dグラフィックスレンダリングシステム。
- 前記Z値の所定の範囲は、
Z=0平面に対して相対的に近い所定のZ軸位置に定義されるZクリッピング面z=znearおよび、znear2=znear*(1<<n)(nは前記左シフトされるビット位置の数に等しい)に定義されるZクランピング面z=znear2との間によって決定される、請求項5に記載の3Dグラフィックスレンダリングシステム。 - 前記グラフィックスパイプラインZ値圧縮回路は、Z値圧縮動作よりも前にZ値2進データを所定の数のビット位置だけ左にシフトさせることにより、znear<Z<znear2にあるZ値を所定のZ値にクランプし、かつ、0<Z<znearであるZ値を有する画素についてクリッピングするために用いられる、請求項7に記載の3Dグラフィックスレンダリングシステム。
- Zバッファリングを行う3Dグラフィックスレンダリングシステムであって、
第1のクリッピング面z=znearをZ=0平面に対して相対的に近いZ軸位置に設定し、第2のクリッピング面z=zfarをZ=0平面に対して相対的に遠いZ軸位置に設定し、当該Z軸上で0、znear、zfarをこの順で並べる手段と、
Z値クランピング面z=znear2をznear2=znear*(1<<n)に設定する手段と、
znear2<z<zfarであるZ値を有する画素についてZバッファリングを行う手段と、
znear<Z<znear2である画素についてZ値を所定の値にクランピングし、対応する画素データを表示フレームバッファに最初から最後に向かう順序で書き込む手段とを備える、3Dグラフィックスレンダリングシステム。 - Zバッファリングを行う3Dグラフィックスレンダリングシステムに含まれるコンピュータを、
第1のクリッピング面z=znearをZ=0平面に対して相対的に近いZ軸位置に設定し、第2のクリッピング面z=zfarをZ=0平面に対して相対的に遠いZ軸位置に設定し、当該Z軸上で0、znear、zfarをこの順で並べる手段と、
Z値クランピング面z=znear2をznear2=znear*(1<<n)に設定する手段と、
znear2<z<zfarであるZ値を有する画素についてZバッファリングを行う手段と、
znear<Z<znear2である画素についてZ値を所定の値にクランピングし、対応する画素データを表示フレームバッファに最初から最後に向かう順序で書き込む手段として機能させる、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249924A JP4740490B2 (ja) | 2001-08-21 | 2001-08-21 | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249924A JP4740490B2 (ja) | 2001-08-21 | 2001-08-21 | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058905A JP2003058905A (ja) | 2003-02-28 |
JP4740490B2 true JP4740490B2 (ja) | 2011-08-03 |
Family
ID=19078840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001249924A Expired - Fee Related JP4740490B2 (ja) | 2001-08-21 | 2001-08-21 | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4740490B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8089486B2 (en) * | 2005-03-21 | 2012-01-03 | Qualcomm Incorporated | Tiled prefetched and cached depth buffer |
TWI425440B (zh) * | 2008-07-03 | 2014-02-01 | Nvidia Corp | 複合多重樣本/超樣本抗頻疊 |
JP5788641B2 (ja) * | 2010-04-02 | 2015-10-07 | 株式会社タイトー | 動画再生方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123980A (ja) * | 1994-10-21 | 1996-05-17 | Matsushita Electric Ind Co Ltd | 三次元図形描画装置 |
JPH11328438A (ja) * | 1998-03-18 | 1999-11-30 | Sun Microsyst Inc | 高効率浮動小数点zバッファリングの方法および装置 |
-
2001
- 2001-08-21 JP JP2001249924A patent/JP4740490B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003058905A (ja) | 2003-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6618048B1 (en) | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components | |
JP4698893B2 (ja) | 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム | |
US7307640B2 (en) | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system | |
US6707458B1 (en) | Method and apparatus for texture tiling in a graphics system | |
US6700586B1 (en) | Low cost graphics with stitching processing hardware support for skeletal animation | |
US6664962B1 (en) | Shadow mapping in a low cost graphics system | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
US6825851B1 (en) | Method and apparatus for environment-mapped bump-mapping in a graphics system | |
JP4890638B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
US6867781B1 (en) | Graphics pipeline token synchronization | |
US6664958B1 (en) | Z-texturing | |
EP1189173B1 (en) | Achromatic lighting in a graphics system and method | |
US7061502B1 (en) | Method and apparatus for providing logical combination of N alpha operations within a graphics system | |
JP4975159B2 (ja) | グラフィックシステム、グラフィックス画像を生成する方法およびプログラムにおける無色光のライティング | |
JP4740490B2 (ja) | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング | |
JP4740476B2 (ja) | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110119 |
|
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: 20110405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110502 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4740490 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140513 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |