JP3409314B2 - 描画を表示する方法及びデータ処理システム - Google Patents
描画を表示する方法及びデータ処理システムInfo
- Publication number
- JP3409314B2 JP3409314B2 JP2000148191A JP2000148191A JP3409314B2 JP 3409314 B2 JP3409314 B2 JP 3409314B2 JP 2000148191 A JP2000148191 A JP 2000148191A JP 2000148191 A JP2000148191 A JP 2000148191A JP 3409314 B2 JP3409314 B2 JP 3409314B2
- Authority
- JP
- Japan
- Prior art keywords
- objects
- complexity
- data
- blocking
- visible
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、一般的には改善さ
れたデータ処理システムに関し、具体的にはデータ処理
システムで描画をレンダリングする改善された方法及び
装置に関する。更に具体的には、本発明は、データ処理
システムにおいて、目に見えるオブジェクト及び遮断さ
れるオブジェクトを識別する方法及び装置に関する。
れたデータ処理システムに関し、具体的にはデータ処理
システムで描画をレンダリングする改善された方法及び
装置に関する。更に具体的には、本発明は、データ処理
システムにおいて、目に見えるオブジェクト及び遮断さ
れるオブジェクトを識別する方法及び装置に関する。
【0002】
【従来の技術】一般的に、3Dコンピュータ・グラフィ
ックスの目的は、ディスプレイ・スクリーン上で、3次
元モデル空間内の所定の視点から展望したような3次元
モデルの2D投影を作成することである。そのような投
影の1つの局面は、視点から展望したとき、どのオブジ
ェクトが他のオブジェクトの前方にあるか、及び、どれ
が後方にあるかを追跡する必要性がある。この知識は、
例えば、前景にあるビルが遠方にあるビルを適正に遮断
することを保証するために必要である。レンダリング・
プロセスのこの局面は、「遮断選別」として知られてい
る。
ックスの目的は、ディスプレイ・スクリーン上で、3次
元モデル空間内の所定の視点から展望したような3次元
モデルの2D投影を作成することである。そのような投
影の1つの局面は、視点から展望したとき、どのオブジ
ェクトが他のオブジェクトの前方にあるか、及び、どれ
が後方にあるかを追跡する必要性がある。この知識は、
例えば、前景にあるビルが遠方にあるビルを適正に遮断
することを保証するために必要である。レンダリング・
プロセスのこの局面は、「遮断選別」として知られてい
る。
【0003】遮断選別を実行する1つの一般的な手法
は、「zバッファ」として知られるコンストラクトを使
用する。標準のzバッファは、観察者からの距離(投影
面に対するシーンの深度)を表す「z値」と呼ばれる数
を、スクリーン上に描画される各ピクセルに関連づけ
る。シーンの最初のオブジェクトが投影されるとき、そ
のピクセルの属性(色など)が「フレーム・バッファ」
にストアされ、各ピクセルに関連づけられたz値は、z
バッファに別個にストアされる。もしその後で、モデル
からの2番目のオブジェクトが、最初のオブジェクトか
らのデータを含むピクセルの上に投影されると、2番目
のオブジェクトのz値が、そのピクセルについて既にス
トアされているz値と比較される。2番目のオブジェク
トのz値が小さいときにのみ(オブジェクトが視点へよ
り近いことを表す)、新しいピクセル及びzバッファ
が、2番目のオブジェクトの属性で更新される。
は、「zバッファ」として知られるコンストラクトを使
用する。標準のzバッファは、観察者からの距離(投影
面に対するシーンの深度)を表す「z値」と呼ばれる数
を、スクリーン上に描画される各ピクセルに関連づけ
る。シーンの最初のオブジェクトが投影されるとき、そ
のピクセルの属性(色など)が「フレーム・バッファ」
にストアされ、各ピクセルに関連づけられたz値は、z
バッファに別個にストアされる。もしその後で、モデル
からの2番目のオブジェクトが、最初のオブジェクトか
らのデータを含むピクセルの上に投影されると、2番目
のオブジェクトのz値が、そのピクセルについて既にス
トアされているz値と比較される。2番目のオブジェク
トのz値が小さいときにのみ(オブジェクトが視点へよ
り近いことを表す)、新しいピクセル及びzバッファ
が、2番目のオブジェクトの属性で更新される。
【0004】モデル空間でゼロに等しいzの所に置かれ
た投影平面又はイメージ平面で、異なった正の深度に置
かれた2つのオブジェクト、オブジェクト1及びオブジ
ェクト2をレンダリングする場合を考える。オブジェク
ト1が最初に投影されてレンダリングされる。2番目
に、オブジェクト2がレンダリングされる。zバッファ
は、オブジェクト1がより小さいz値でピクセルを既に
書き込んだフレーム・バッファの位置へ、オブジェクト
2のピクセルが書き込まれないように防止する。従っ
て、オブジェクト2は、所望のように、オブジェクト1
の背後で最後に表示されるイメージとして現れる。
た投影平面又はイメージ平面で、異なった正の深度に置
かれた2つのオブジェクト、オブジェクト1及びオブジ
ェクト2をレンダリングする場合を考える。オブジェク
ト1が最初に投影されてレンダリングされる。2番目
に、オブジェクト2がレンダリングされる。zバッファ
は、オブジェクト1がより小さいz値でピクセルを既に
書き込んだフレーム・バッファの位置へ、オブジェクト
2のピクセルが書き込まれないように防止する。従っ
て、オブジェクト2は、所望のように、オブジェクト1
の背後で最後に表示されるイメージとして現れる。
【0005】zバッファは、ハードウェア又はソフトウ
ェアのいずれによっても実現することができる。ストア
される数は、浮動小数点数又は整数のいずれであっても
よい。z値には、任意数のビットを使用することができ
る。一般的に、z値をストアするために使用されるビッ
トが多ければ、それだけ精密な距離の解像度が達成され
る。z値はシーンにおけるオブジェクトの深度を表すか
ら、z値は、より一般的には「深度値」と呼ぶことがで
き、zバッファは、より一般的には「深度バッファ」と
呼ぶことができる。更に、深度が増大するとき、深度値
を増大することができ、又は、深度が減少するとき、深
度値を減少することができる。遮断されるオブジェクト
及び遮断されないオブジェクトを識別するために使用さ
れるプロセスの多くは、時間を取り、シーンをレンダリ
ングするのに必要な時間を増大する。
ェアのいずれによっても実現することができる。ストア
される数は、浮動小数点数又は整数のいずれであっても
よい。z値には、任意数のビットを使用することができ
る。一般的に、z値をストアするために使用されるビッ
トが多ければ、それだけ精密な距離の解像度が達成され
る。z値はシーンにおけるオブジェクトの深度を表すか
ら、z値は、より一般的には「深度値」と呼ぶことがで
き、zバッファは、より一般的には「深度バッファ」と
呼ぶことができる。更に、深度が増大するとき、深度値
を増大することができ、又は、深度が減少するとき、深
度値を減少することができる。遮断されるオブジェクト
及び遮断されないオブジェクトを識別するために使用さ
れるプロセスの多くは、時間を取り、シーンをレンダリ
ングするのに必要な時間を増大する。
【0006】
【発明が解決しようとする課題】従って、遮断されるオ
ブジェクトを識別する改善された方法及び装置を有する
ことには、利点がある。
ブジェクトを識別する改善された方法及び装置を有する
ことには、利点がある。
【0007】
【課題を解決するための手段】本発明は、描画が一組の
オブジェクトを含むデータ処理システムにおいて、視点
のために描画を表示する方法を提供する。オブジェクト
の組のために、複数の境界ボックス及び複雑度データが
受け取られる。ここで、境界ボックス及び複雑度データ
は、オブジェクトの組内の各オブジェクトに関連づけら
れている。オブジェクトの組内の遮断オブジェクトは、
複数の境界ボックス及び複雑度データを使用して選択さ
れる。これらの遮断オブジェクトは、視点のためにオブ
ジェクトの組から可視オブジェクトを識別するために使
用される。
オブジェクトを含むデータ処理システムにおいて、視点
のために描画を表示する方法を提供する。オブジェクト
の組のために、複数の境界ボックス及び複雑度データが
受け取られる。ここで、境界ボックス及び複雑度データ
は、オブジェクトの組内の各オブジェクトに関連づけら
れている。オブジェクトの組内の遮断オブジェクトは、
複数の境界ボックス及び複雑度データを使用して選択さ
れる。これらの遮断オブジェクトは、視点のためにオブ
ジェクトの組から可視オブジェクトを識別するために使
用される。
【0008】
【発明の実施の形態】ここで、図面、特に図1を参照す
ると、本発明が実現されてよいデータ処理システムの図
が、本発明の好ましい実施形態に従って描かれている。
パーソナル・コンピュータ100はシステム・ユニット
110、ビデオ表示端末102、キーボード104、記
憶装置108、及びマウス106を含むように描かれ
る。記憶装置108はフロッピー(登録商標)・ドライ
ブ及び他のタイプのパーマネント及び取り外し可能記憶
媒体を含んでよい。追加の入力装置が、パーソナル・コ
ンピュータ100に含まれてよい。パーソナル・コンピ
ュータ100は、IBM社(International Business M
achines Corporation,located in Armonk,New York )
の製品であるIBM Aptiva(商標)コンピュータのような
任意適切なコンピュータを使用して実現されることがで
きる。描かれた表現はパーソナル・コンピュータを示し
ているが、本発明の他の実施形態は、ネットワーク・コ
ンピュータ、ウェブ・ベースのテレビジョン・セット・
トップ・ボックス、インターネット機器など、他のタイ
プのデータ処理システムで実現されてよい。更に、コン
ピュータ100は、好ましくは、コンピュータ100の
中で動作するコンピュータ読み取り可能媒体に存在する
システム・ソフトウェアによって実現されてよいグラフ
ィカル・ユーザ・インタフェースを含む。
ると、本発明が実現されてよいデータ処理システムの図
が、本発明の好ましい実施形態に従って描かれている。
パーソナル・コンピュータ100はシステム・ユニット
110、ビデオ表示端末102、キーボード104、記
憶装置108、及びマウス106を含むように描かれ
る。記憶装置108はフロッピー(登録商標)・ドライ
ブ及び他のタイプのパーマネント及び取り外し可能記憶
媒体を含んでよい。追加の入力装置が、パーソナル・コ
ンピュータ100に含まれてよい。パーソナル・コンピ
ュータ100は、IBM社(International Business M
achines Corporation,located in Armonk,New York )
の製品であるIBM Aptiva(商標)コンピュータのような
任意適切なコンピュータを使用して実現されることがで
きる。描かれた表現はパーソナル・コンピュータを示し
ているが、本発明の他の実施形態は、ネットワーク・コ
ンピュータ、ウェブ・ベースのテレビジョン・セット・
トップ・ボックス、インターネット機器など、他のタイ
プのデータ処理システムで実現されてよい。更に、コン
ピュータ100は、好ましくは、コンピュータ100の
中で動作するコンピュータ読み取り可能媒体に存在する
システム・ソフトウェアによって実現されてよいグラフ
ィカル・ユーザ・インタフェースを含む。
【0009】ここで図2を参照すると、ブロック図は、
本発明が実現されてよいデータ処理システムを示す。デ
ータ処理システム200は、図1のコンピュータ100
のように、本発明のプロセスを実現するコード又は命令
が置かれてよいコンピュータの例である。データ処理シ
ステム200はPCI(peripheral component interco
nnect)ローカル・バス・アーキテクチャを使用する。
描かれた例はPCIバスを使用するが、マイクロチャネ
ル及びISAのような他のバス・アーキテクチャを使用
してよい。プロセッサ202及びメイン・メモリ204
は、PCIブリッジ208を介してPCIローカル・バ
ス206へ接続される。更に、PCIブリッジ208
は、プロセッサ202のために統合化されたメモリ・コ
ントローラ及びキャッシュ・メモリを含んでよい。PC
Iローカル・バス206への追加の接続は、直接コンポ
ーネント相互接続又はアドイン・ボードを介してなされ
てよい。描かれた例では、ローカル・エリア・ネットワ
ーク(LAN)アダプタ210、SCSIホスト・バス
・アダプタ212、及び拡張バス・インタフェース21
4が、直接コンポーネント接続によってPCIローカル
・バス206へ接続される。対照的に、オーディオ・ア
ダプタ216、グラフィックス・アダプタ218、及び
オーディオ/ビデオ・アダプタ219は、拡張スロット
へ挿入されたアドイン・ボードによってPCIローカル
・バス206へ接続される。拡張バス・インタフェース
214は、キーボード及びマウス・アダプタ220、モ
デム222、及び追加メモリ224のために接続を提供
する。SCSIホスト・バス・アダプタ212は、ハー
ド・ディスク・ドライブ226、テープ・ドライブ22
8、及びCD−ROMドライブ230のために接続を提
供する。通常のPCIローカル・バス実現方式は、3つ
又は4つのPCI拡張スロット又はアドイン・コネクタ
をサポートするであろう。
本発明が実現されてよいデータ処理システムを示す。デ
ータ処理システム200は、図1のコンピュータ100
のように、本発明のプロセスを実現するコード又は命令
が置かれてよいコンピュータの例である。データ処理シ
ステム200はPCI(peripheral component interco
nnect)ローカル・バス・アーキテクチャを使用する。
描かれた例はPCIバスを使用するが、マイクロチャネ
ル及びISAのような他のバス・アーキテクチャを使用
してよい。プロセッサ202及びメイン・メモリ204
は、PCIブリッジ208を介してPCIローカル・バ
ス206へ接続される。更に、PCIブリッジ208
は、プロセッサ202のために統合化されたメモリ・コ
ントローラ及びキャッシュ・メモリを含んでよい。PC
Iローカル・バス206への追加の接続は、直接コンポ
ーネント相互接続又はアドイン・ボードを介してなされ
てよい。描かれた例では、ローカル・エリア・ネットワ
ーク(LAN)アダプタ210、SCSIホスト・バス
・アダプタ212、及び拡張バス・インタフェース21
4が、直接コンポーネント接続によってPCIローカル
・バス206へ接続される。対照的に、オーディオ・ア
ダプタ216、グラフィックス・アダプタ218、及び
オーディオ/ビデオ・アダプタ219は、拡張スロット
へ挿入されたアドイン・ボードによってPCIローカル
・バス206へ接続される。拡張バス・インタフェース
214は、キーボード及びマウス・アダプタ220、モ
デム222、及び追加メモリ224のために接続を提供
する。SCSIホスト・バス・アダプタ212は、ハー
ド・ディスク・ドライブ226、テープ・ドライブ22
8、及びCD−ROMドライブ230のために接続を提
供する。通常のPCIローカル・バス実現方式は、3つ
又は4つのPCI拡張スロット又はアドイン・コネクタ
をサポートするであろう。
【0010】オペレーティング・システムはプロセッサ
202上で実行され、図2のデータ処理システム200
内で各種のコンポーネントを調整し且つ制御を提供する
ために使用される。オペレーティング・システムは、I
BM社から入手できるOS/2のように、市販されてい
るオペレーティング・システムであってよい。「OS/
2」はIBM社の商標である。Javaのようなオブジェク
ト指向プログラミング・システムがオペレーティング・
システムと組み合わせて実行されてよく、データ処理シ
ステム200上で実行されているJavaプログラム又はア
プリケーションからオペレーティング・システムへの呼
び出しを提供する。「Java」はサン・マイクロシステム
ズ社(Sun Microsystems,Inc.)の商標である。オペレ
ーティング・システム、オブジェクト指向プログラミン
グ・システム、及びアプリケーション又はプログラムの
命令は、ハード・ディスク・ドライブ226のような記
憶装置上に置かれ、プロセッサ202によって実行され
るためメイン・メモリ204へロードされてよい。
202上で実行され、図2のデータ処理システム200
内で各種のコンポーネントを調整し且つ制御を提供する
ために使用される。オペレーティング・システムは、I
BM社から入手できるOS/2のように、市販されてい
るオペレーティング・システムであってよい。「OS/
2」はIBM社の商標である。Javaのようなオブジェク
ト指向プログラミング・システムがオペレーティング・
システムと組み合わせて実行されてよく、データ処理シ
ステム200上で実行されているJavaプログラム又はア
プリケーションからオペレーティング・システムへの呼
び出しを提供する。「Java」はサン・マイクロシステム
ズ社(Sun Microsystems,Inc.)の商標である。オペレ
ーティング・システム、オブジェクト指向プログラミン
グ・システム、及びアプリケーション又はプログラムの
命令は、ハード・ディスク・ドライブ226のような記
憶装置上に置かれ、プロセッサ202によって実行され
るためメイン・メモリ204へロードされてよい。
【0011】当業者は、図2のハードウェアが実現方式
に従って変化してよいことを理解するであろう。フラッ
シュROM(又は同等の不揮発性メモリ)又は光学ディ
スク・ドライブなどの他の内部ハードウェア又は周辺装
置が、図2に描かれたハードウェアに加えて、又はその
代わりに、使用されてよい。更に、本発明のプロセス
は、遮断選別プロセスを実行するためにマルチスレッド
並列処理が使用されるマルチプロセッサ・データ処理シ
ステムへ応用されてよい。
に従って変化してよいことを理解するであろう。フラッ
シュROM(又は同等の不揮発性メモリ)又は光学ディ
スク・ドライブなどの他の内部ハードウェア又は周辺装
置が、図2に描かれたハードウェアに加えて、又はその
代わりに、使用されてよい。更に、本発明のプロセス
は、遮断選別プロセスを実行するためにマルチスレッド
並列処理が使用されるマルチプロセッサ・データ処理シ
ステムへ応用されてよい。
【0012】例えば、データ処理システム200は、も
しオプションのネットワーク・コンピュータとして構成
されるならば、オプションとして含まれることを示す図
2の点線232で示されるように、SCSIホスト・バ
ス・アダプタ212、ハード・ディスク・ドライブ22
6、テープ・ドライブ228、及びCD−ROM230
を含まなくてもよい。その場合、コンピュータは、クラ
イアント・コンピュータと呼ばれるのが適切であり、L
ANアダプタ210、モデム222などの或るタイプの
ネットワーク通信インタフェースを含む必要がある。他
の例として、データ処理システム200は、或るタイプ
のネットワーク通信インタフェースを含むか含まないか
に関わらず、或るタイプのネットワーク通信インタフェ
ースに依存しないでブート可能に構成されるスタンドア
ロン・システムであってよい。更に、他の例として、デ
ータ処理システム200は、オペレーティング・システ
ム・ファイル、及び、又は、ユーザ生成データを記憶す
る不揮発性メモリを提供するために、ROM、及び、又
は、フラッシュROMで構成されるパーソナル・ディジ
タル・アシスタント(PDA)装置であってよい。
しオプションのネットワーク・コンピュータとして構成
されるならば、オプションとして含まれることを示す図
2の点線232で示されるように、SCSIホスト・バ
ス・アダプタ212、ハード・ディスク・ドライブ22
6、テープ・ドライブ228、及びCD−ROM230
を含まなくてもよい。その場合、コンピュータは、クラ
イアント・コンピュータと呼ばれるのが適切であり、L
ANアダプタ210、モデム222などの或るタイプの
ネットワーク通信インタフェースを含む必要がある。他
の例として、データ処理システム200は、或るタイプ
のネットワーク通信インタフェースを含むか含まないか
に関わらず、或るタイプのネットワーク通信インタフェ
ースに依存しないでブート可能に構成されるスタンドア
ロン・システムであってよい。更に、他の例として、デ
ータ処理システム200は、オペレーティング・システ
ム・ファイル、及び、又は、ユーザ生成データを記憶す
る不揮発性メモリを提供するために、ROM、及び、又
は、フラッシュROMで構成されるパーソナル・ディジ
タル・アシスタント(PDA)装置であってよい。
【0013】図2に描かれた例、及び前述した例は、ア
ーキテクチャ上の制限を意味するものではない。
ーキテクチャ上の制限を意味するものではない。
【0014】次に図3を参照すると、グラフィックス処
理システムのシステム・アーキテクチャのブロック図
が、本発明の好ましい実施形態に従って描かれる。グラ
フィックス処理システム300は処理ユニット302、
ラスタ・エンジン304、深度バッファ付きバック・フ
レーム・バッファ306、及び深度バッファ付きフロン
ト・フレーム・バッファ308を含む。深度バッファ付
きバック・フレーム・バッファ306及び深度バッファ
付きフロント・フレーム・バッファ308は、この例で
はダブル・バッファ・グラフィックス・システムを形成
する。実現方式に依存して、深度バッファ付きバック・
フレーム・バッファ306及び深度バッファ付きフロン
ト・フレーム・バッファ308の代わりに、バーチャル
・フレーム・バッファを使用してよい。このタイプの実
現方式では、遮断選別プロセスは、グラフィックス・ア
ダプタが存在しないデータ処理システムで実行されてよ
い。結果は、グラフィックス・アダプタを有する他のデ
ータ処理システムへ送られてよい。この例では、本発明
の遮断選別プロセスは、描画又はシーンの実際の表示が
クライアントによって実行される間に、サーバによって
実行されてよい。
理システムのシステム・アーキテクチャのブロック図
が、本発明の好ましい実施形態に従って描かれる。グラ
フィックス処理システム300は処理ユニット302、
ラスタ・エンジン304、深度バッファ付きバック・フ
レーム・バッファ306、及び深度バッファ付きフロン
ト・フレーム・バッファ308を含む。深度バッファ付
きバック・フレーム・バッファ306及び深度バッファ
付きフロント・フレーム・バッファ308は、この例で
はダブル・バッファ・グラフィックス・システムを形成
する。実現方式に依存して、深度バッファ付きバック・
フレーム・バッファ306及び深度バッファ付きフロン
ト・フレーム・バッファ308の代わりに、バーチャル
・フレーム・バッファを使用してよい。このタイプの実
現方式では、遮断選別プロセスは、グラフィックス・ア
ダプタが存在しないデータ処理システムで実行されてよ
い。結果は、グラフィックス・アダプタを有する他のデ
ータ処理システムへ送られてよい。この例では、本発明
の遮断選別プロセスは、描画又はシーンの実際の表示が
クライアントによって実行される間に、サーバによって
実行されてよい。
【0015】処理ユニット302は、処理のためのグラ
フィックス・データ・ストリーム又は表示リストを受け
取ってよい。処理ユニット302は1つ又は複数のプロ
セッサを含んでよい。処理ユニット302は、プリミテ
ィブが処理されてラスタ・エンジン304へ送られるジ
オメトリ・エンジンの形式を取ってよい。ラスタ・エン
ジン304は、処理されたプリミティブを表示用のピク
セルへ変換する。深度バッファ付きバック・フレーム・
バッファ306及び深度バッファ付きフロント・フレー
ム・バッファ308は、ピクセルのために赤、緑、及び
青(RGB)を示すピクセル・データ・セットのような
データをストアするために使用されるメモリから形成さ
れる。更に、これら2つのバッファは、オブジェクトの
可視性を決定するために使用される深度データとも呼ば
れるz軸データをストアする。これらのバッファ又はバ
ック・バッファ(図示されていない)は、本発明の好ま
しい実施形態に従って、レンダリングされたオブジェク
トを、小さなビューポートにストアするために使用され
る。処理ユニット302は、データ処理システム内の各
種のプロセッサを使用して実現されてよい。例えば、図
2のプロセッサ202が、処理ユニット302の機能を
実行するために使用されてよい。代替的に、図2のグラ
フィックス・アダプタ218内のプロセッサが、処理ユ
ニット302を実現するために使用されてよい。
フィックス・データ・ストリーム又は表示リストを受け
取ってよい。処理ユニット302は1つ又は複数のプロ
セッサを含んでよい。処理ユニット302は、プリミテ
ィブが処理されてラスタ・エンジン304へ送られるジ
オメトリ・エンジンの形式を取ってよい。ラスタ・エン
ジン304は、処理されたプリミティブを表示用のピク
セルへ変換する。深度バッファ付きバック・フレーム・
バッファ306及び深度バッファ付きフロント・フレー
ム・バッファ308は、ピクセルのために赤、緑、及び
青(RGB)を示すピクセル・データ・セットのような
データをストアするために使用されるメモリから形成さ
れる。更に、これら2つのバッファは、オブジェクトの
可視性を決定するために使用される深度データとも呼ば
れるz軸データをストアする。これらのバッファ又はバ
ック・バッファ(図示されていない)は、本発明の好ま
しい実施形態に従って、レンダリングされたオブジェク
トを、小さなビューポートにストアするために使用され
る。処理ユニット302は、データ処理システム内の各
種のプロセッサを使用して実現されてよい。例えば、図
2のプロセッサ202が、処理ユニット302の機能を
実行するために使用されてよい。代替的に、図2のグラ
フィックス・アダプタ218内のプロセッサが、処理ユ
ニット302を実現するために使用されてよい。
【0016】深度バッファ付きバック・フレーム・バッ
ファ306及び深度バッファ付きフロント・フレーム・
バッファ308は、図2のグラフィックス・アダプタ2
18のようなグラフィックス・アダプタ内のメモリに置
かれてよい。更に、これら2つのバッファは、図2のメ
イン・メモリ204のようなデータ処理システム内のメ
イン・メモリの中で実現されてよい。
ファ306及び深度バッファ付きフロント・フレーム・
バッファ308は、図2のグラフィックス・アダプタ2
18のようなグラフィックス・アダプタ内のメモリに置
かれてよい。更に、これら2つのバッファは、図2のメ
イン・メモリ204のようなデータ処理システム内のメ
イン・メモリの中で実現されてよい。
【0017】ここで、図4〜図7を参照すると、フラス
タム(frustum)内のオブジェクトのビューが、本発明
の好ましい実施形態に従って描かれる。これらの図に示
されるオブジェクトは、本発明の遮断選別プロセスが実
現されてよいオブジェクトである。図4では、フラスタ
ム400の等距離ビューが、視点412に関して示され
る。頭を切り取られたピラミッドであるフラスタム40
0は、オブジェクト402〜410を含む。フラスタム
400は、近い平面414及び遠い平面416を含む。
近い平面414は、視点412に最も近い平面である。
観察者が正のz方向でz軸を見下ろす原点に位置してい
るアイ座標系(eye coordinate system)では、視野は
フラスタム400によって限定される。近い平面414
は前方クリップ面とも呼ばれ、遠い平面416は後方ク
リップ面とも呼ばれる。
タム(frustum)内のオブジェクトのビューが、本発明
の好ましい実施形態に従って描かれる。これらの図に示
されるオブジェクトは、本発明の遮断選別プロセスが実
現されてよいオブジェクトである。図4では、フラスタ
ム400の等距離ビューが、視点412に関して示され
る。頭を切り取られたピラミッドであるフラスタム40
0は、オブジェクト402〜410を含む。フラスタム
400は、近い平面414及び遠い平面416を含む。
近い平面414は、視点412に最も近い平面である。
観察者が正のz方向でz軸を見下ろす原点に位置してい
るアイ座標系(eye coordinate system)では、視野は
フラスタム400によって限定される。近い平面414
は前方クリップ面とも呼ばれ、遠い平面416は後方ク
リップ面とも呼ばれる。
【0018】図5〜図7には、フラスタム400及びオ
ブジェクト402〜410の異なったビューが示され
る。これらの例では、オブジェクト402〜406はオ
ブジェクト408及び410の前方に現れる。オブジェ
クト408はオブジェクト410の前方にある。従っ
て、視点412からは、オブジェクト408及び410
は、図6から分かるように、隠されているか遮断されて
いる。これらの例では、オブジェクト402〜406
は、オブジェクト408及び410よりも視点412に
近い。結果として、オブジェクト402〜404のz又
は深度値は、オブジェクト408及び410のz又は深
度値よりも小さい。
ブジェクト402〜410の異なったビューが示され
る。これらの例では、オブジェクト402〜406はオ
ブジェクト408及び410の前方に現れる。オブジェ
クト408はオブジェクト410の前方にある。従っ
て、視点412からは、オブジェクト408及び410
は、図6から分かるように、隠されているか遮断されて
いる。これらの例では、オブジェクト402〜406
は、オブジェクト408及び410よりも視点412に
近い。結果として、オブジェクト402〜404のz又
は深度値は、オブジェクト408及び410のz又は深
度値よりも小さい。
【0019】本発明は、図4〜図7のシーンのようなシ
ーンで、オブジェクトが可視であるかどうかを決定する
方法、装置、及び命令を提供する。本発明のメカニズム
によって、与えられたビューからオブジェクトの最小セ
ットを決定することができる。本発明のメカニズムは、
各オブジェクトに関連づけられた境界ボックス及び複雑
度データを入力として受け取る。
ーンで、オブジェクトが可視であるかどうかを決定する
方法、装置、及び命令を提供する。本発明のメカニズム
によって、与えられたビューからオブジェクトの最小セ
ットを決定することができる。本発明のメカニズムは、
各オブジェクトに関連づけられた境界ボックス及び複雑
度データを入力として受け取る。
【0020】「境界ボックス」とは、軸に整列した最小
3次元平行六面体である。この六面体はオブジェクト、
又は1つ又は複数のポリゴン、ポリゴン・エッジ、又は
点を囲んでいる。境界ボックスの最小及び最大x、y、
並びにz座標は、境界ボックスによって囲まれたオブジ
ェクト、ポリゴン、ポリゴン・エッジ、又は点のそれぞ
れ最小及び最大x、y、並びにz座標に等しい。「投影
された境界ボックス」とは、ビュー平面で、投影された
オブジェクト、投影されたポリゴン、投影されたポリゴ
ン・エッジ、又は投影された点を囲む軸に整列した2次
元長方形である。投影された境界ボックスの最小及び最
大x及びy座標は、投影された境界ボックスによって囲
まれる投影されたオブジェクト、投影されたポリゴン、
投影されたポリゴン・エッジ、又は投影された点のそれ
ぞれ最小及び最大の、x及びy座標に等しい。
3次元平行六面体である。この六面体はオブジェクト、
又は1つ又は複数のポリゴン、ポリゴン・エッジ、又は
点を囲んでいる。境界ボックスの最小及び最大x、y、
並びにz座標は、境界ボックスによって囲まれたオブジ
ェクト、ポリゴン、ポリゴン・エッジ、又は点のそれぞ
れ最小及び最大x、y、並びにz座標に等しい。「投影
された境界ボックス」とは、ビュー平面で、投影された
オブジェクト、投影されたポリゴン、投影されたポリゴ
ン・エッジ、又は投影された点を囲む軸に整列した2次
元長方形である。投影された境界ボックスの最小及び最
大x及びy座標は、投影された境界ボックスによって囲
まれる投影されたオブジェクト、投影されたポリゴン、
投影されたポリゴン・エッジ、又は投影された点のそれ
ぞれ最小及び最大の、x及びy座標に等しい。
【0021】境界ボックスは、遮断オブジェクト(可視
オブジェクト)になる可能性があるシーン又は描画のオ
ブジェクトについて、迅速で粗い推定を提供する。一
度、遮断オブジェクトが識別されると、本発明のメカニ
ズムは、描画又はシーンの現在のビューの中で、他のオ
ブジェクトが可視であるかどうかを決定する。しかし、
他のオブジェクトの処理へ進む前に、本発明を継続する
価値があるかどうかについて、決定がなされる。描かれ
た例では、この決定は入力複雑度データに基づいてい
る。
オブジェクト)になる可能性があるシーン又は描画のオ
ブジェクトについて、迅速で粗い推定を提供する。一
度、遮断オブジェクトが識別されると、本発明のメカニ
ズムは、描画又はシーンの現在のビューの中で、他のオ
ブジェクトが可視であるかどうかを決定する。しかし、
他のオブジェクトの処理へ進む前に、本発明を継続する
価値があるかどうかについて、決定がなされる。描かれ
た例では、この決定は入力複雑度データに基づいてい
る。
【0022】オブジェクトの複雑度値は、そのレンダリ
ング時間に比例する。もし遮断オブジェクトのトータル
複雑度が、残りのオブジェクトのトータル複雑度よりも
大きければ、本発明のメカニズムは、オブジェクトの可
視性を検査して追加の時間を費やすよりも、全アセンブ
リをレンダリングするのが早いと想定して終了する。こ
の場合、全体の描画又はシーンに関してビューから隠さ
れるオブジェクトの数は、確率的に小さい。逆に、もし
遮断オブジェクトのトータル複雑度が、残りのオブジェ
クトのトータル複雑度よりもはるかに小さければ、多大
のレンダリング時間を節約することのできる可能性があ
る。この状況に応答して、本発明のメカニズムは進行す
る。
ング時間に比例する。もし遮断オブジェクトのトータル
複雑度が、残りのオブジェクトのトータル複雑度よりも
大きければ、本発明のメカニズムは、オブジェクトの可
視性を検査して追加の時間を費やすよりも、全アセンブ
リをレンダリングするのが早いと想定して終了する。こ
の場合、全体の描画又はシーンに関してビューから隠さ
れるオブジェクトの数は、確率的に小さい。逆に、もし
遮断オブジェクトのトータル複雑度が、残りのオブジェ
クトのトータル複雑度よりもはるかに小さければ、多大
のレンダリング時間を節約することのできる可能性があ
る。この状況に応答して、本発明のメカニズムは進行す
る。
【0023】オブジェクトの可視性は、先ず、全ての遮
断オブジェクトを、深度情報で十分詳細に低解像度でレ
ンダリングし、結果のピクセル深度データをストアする
ことによって検査される。新しい境界ボックスがオブジ
ェクトのために作成され、その境界ボックスが現在のビ
ューと軸的に整列するようにされる。次に、新しい境界
ボックスの最も近い壁がシーンへ投影される。この投影
は、投影された境界ボックスである。「近さ」は、視点
に関する近さである。壁の深度は、前述したようにして
得られた遮断オブジェクトの深度データと比較される。
もし壁が、壁の投影された境界ボックス内のピクセル
で、遮断オブジェクトの深度値よりも視点に近ければ、
オブジェクトは可視である。
断オブジェクトを、深度情報で十分詳細に低解像度でレ
ンダリングし、結果のピクセル深度データをストアする
ことによって検査される。新しい境界ボックスがオブジ
ェクトのために作成され、その境界ボックスが現在のビ
ューと軸的に整列するようにされる。次に、新しい境界
ボックスの最も近い壁がシーンへ投影される。この投影
は、投影された境界ボックスである。「近さ」は、視点
に関する近さである。壁の深度は、前述したようにして
得られた遮断オブジェクトの深度データと比較される。
もし壁が、壁の投影された境界ボックス内のピクセル
で、遮断オブジェクトの深度値よりも視点に近ければ、
オブジェクトは可視である。
【0024】遮断オブジェクトは、全体的な最大の可視
領域(境界ボックスに基づいて)、視点へ最も近い深度
値、及び最低複雑度値を有する部品を選択することによ
って、知能的に選ばれてよい。
領域(境界ボックスに基づいて)、視点へ最も近い深度
値、及び最低複雑度値を有する部品を選択することによ
って、知能的に選ばれてよい。
【0025】レンダリング時間は、入力部品データを静
的と宣言することによって、同じシーンの将来のフレー
ム中に節約することができる。もし視点が2つ以上の連
続フレーム中に著しく変化しないのであれは、それらフ
レームで遮断オブジェクトを使用してよい。
的と宣言することによって、同じシーンの将来のフレー
ム中に節約することができる。もし視点が2つ以上の連
続フレーム中に著しく変化しないのであれは、それらフ
レームで遮断オブジェクトを使用してよい。
【0026】描かれた例では、グラフィックス・データ
及びシステムは、3次元グラフィックスをレンダリング
するライブラリであるOpenGLを使用して説明され
る。OpenGLはシリコン・グラフィックス社(Sili
con Graphics Incorporated)の商標である。オブジェ
クトは表示リストの形式で受け取られる。表示リストは
OpenGLコマンドの指名リストである。表示リスト
の内容は事前に処理されていてよく、従って、即時モー
ドで実行されるOpenGLコマンドの同じセットより
も効率的に実行されよう。
及びシステムは、3次元グラフィックスをレンダリング
するライブラリであるOpenGLを使用して説明され
る。OpenGLはシリコン・グラフィックス社(Sili
con Graphics Incorporated)の商標である。オブジェ
クトは表示リストの形式で受け取られる。表示リストは
OpenGLコマンドの指名リストである。表示リスト
の内容は事前に処理されていてよく、従って、即時モー
ドで実行されるOpenGLコマンドの同じセットより
も効率的に実行されよう。
【0027】ここで、図8を参照すると、所与のビュー
から見ることのできるオブジェクトの最小セットを識別
するプロセスのフローチャートが、本発明の好ましい実
施形態に従って描かれる。このプロセスは、遮断オブジ
ェクトの識別、及び所与のシーン又は描画について他の
全てのオブジェクトの可視性を決定するためにそれら遮
断オブジェクトを使用することに基づいて、遮断選別を
提供する。
から見ることのできるオブジェクトの最小セットを識別
するプロセスのフローチャートが、本発明の好ましい実
施形態に従って描かれる。このプロセスは、遮断オブジ
ェクトの識別、及び所与のシーン又は描画について他の
全てのオブジェクトの可視性を決定するためにそれら遮
断オブジェクトを使用することに基づいて、遮断選別を
提供する。
【0028】プロセスは、オブジェクト表示リストの配
列、オブジェクト境界ボックスの配列、オブジェクト複
雑度の配列、配列の長さ(入力オブジェクトの総数に等
しい)、オブジェクト・リストが修正されたかどうかを
示す新規シーン・フラグ、及びビューポートを入力とし
て受け取る。このプロセスからの出力は、オブジェクト
表示リストの入力配列を参照する可視オブジェクト・イ
ンデックスの配列、及び可視オブジェクトの数である。
列、オブジェクト境界ボックスの配列、オブジェクト複
雑度の配列、配列の長さ(入力オブジェクトの総数に等
しい)、オブジェクト・リストが修正されたかどうかを
示す新規シーン・フラグ、及びビューポートを入力とし
て受け取る。このプロセスからの出力は、オブジェクト
表示リストの入力配列を参照する可視オブジェクト・イ
ンデックスの配列、及び可視オブジェクトの数である。
【0029】プロセスは、新規シーン・フラグがTRUEで
あるかどうかをチェックすることによって開始する(ス
テップ500)。もし新規シーン・フラグがTRUEであれ
ば、データ構造は、新しいシーンのために初期化される
(ステップ502)。これらのデータ構造は、可視状況
を各オブジェクトに関連づける。境界ボックス・データ
及び複雑度データも、境界ボックス表面領域値と同じよ
うに、これらのデータ構造に含まれてよい。データ構造
は、配列又はリンク・リストとして実現されてよい。次
に、現在のグラフィックス状態が保存される(ステップ
504)。グラフィックス状態が保存されるのは、この
例では、遮断処理を実行するために、グラフィックス処
理システムが使用されるからである。そうでなければ、
この処理は、ユーザによって観察されるグラフィカル表
示を中断する。遮断処理が終了すると、グラフィックス
状態がリストアされ、ユーザはディスプレイ上で所望の
シーン以外は見えないようにされる。もし新規シーン・
フラグが「FALSE」であれば、プロセスは前述したステ
ップ504へ直接進む。
あるかどうかをチェックすることによって開始する(ス
テップ500)。もし新規シーン・フラグがTRUEであれ
ば、データ構造は、新しいシーンのために初期化される
(ステップ502)。これらのデータ構造は、可視状況
を各オブジェクトに関連づける。境界ボックス・データ
及び複雑度データも、境界ボックス表面領域値と同じよ
うに、これらのデータ構造に含まれてよい。データ構造
は、配列又はリンク・リストとして実現されてよい。次
に、現在のグラフィックス状態が保存される(ステップ
504)。グラフィックス状態が保存されるのは、この
例では、遮断処理を実行するために、グラフィックス処
理システムが使用されるからである。そうでなければ、
この処理は、ユーザによって観察されるグラフィカル表
示を中断する。遮断処理が終了すると、グラフィックス
状態がリストアされ、ユーザはディスプレイ上で所望の
シーン以外は見えないようにされる。もし新規シーン・
フラグが「FALSE」であれば、プロセスは前述したステ
ップ504へ直接進む。
【0030】次に、2つの静的フラグ、get_new_occlud
ers及びcull_worthyが宣言され、get_new_occludersが
「TRUE」値へ初期化される(ステップ506)。フラグ
get_new_occludersは、プロセスが実行される最初での
み、「TRUE」値へ初期化される静的フラグである。次
に、新規シーン・フラグがTRUEであるかどうか、又はge
t_new_occludersがTRUEであるかどうかの決定がなされ
る(ステップ508)。もし新規シーン・フラグがTRUE
であるか、又はget_new_occludersがTRUEであれば、遮
断オブジェクトが選択される(ステップ510)。cull
_worthy静的フラグは、遮断オブジェクトの選択ステッ
プ中に、「TRUE」又は「FALSE」値のいずれかへセット
される。このステップは、後の図9でより詳細に説明さ
れる。
ers及びcull_worthyが宣言され、get_new_occludersが
「TRUE」値へ初期化される(ステップ506)。フラグ
get_new_occludersは、プロセスが実行される最初での
み、「TRUE」値へ初期化される静的フラグである。次
に、新規シーン・フラグがTRUEであるかどうか、又はge
t_new_occludersがTRUEであるかどうかの決定がなされ
る(ステップ508)。もし新規シーン・フラグがTRUE
であるか、又はget_new_occludersがTRUEであれば、遮
断オブジェクトが選択される(ステップ510)。cull
_worthy静的フラグは、遮断オブジェクトの選択ステッ
プ中に、「TRUE」又は「FALSE」値のいずれかへセット
される。このステップは、後の図9でより詳細に説明さ
れる。
【0031】その後で、cull_worthyの値に基づいて、
プロセスを継続する価値があるかどうかの決定がなされ
る(ステップ512)。もしプロセスを継続する価値が
あれば(cull_worthyは「TRUE」値を有する)、遮断オ
ブジェクトは、バック・バッファの小さなビューポート
にある深度バッファへのみ(色又はライティングはスト
アされない)レンダリングされる(ステップ515)。
ビューポートとは、ピクセルが表示されるフレーム・バ
ッファ領域である。これは「遮断検出ビューポート」で
ある。プロセスのパフォーマンスを増大するために、小
さなビューポートが選択される。なぜなら、アクセスし
なければならないピクセルが少なくなるからである。プ
ロセスのこのステップでは、深度情報のみが必要な情報
であるから、ライティングの計算は抑止される。このレ
ンダリングの結果として、遮断オブジェクトの深度値が
ストアされる。もし遮断オブジェクトがオーバラップす
れば、眼に最も近い遮断オブジェクトの深度値がストア
される。
プロセスを継続する価値があるかどうかの決定がなされ
る(ステップ512)。もしプロセスを継続する価値が
あれば(cull_worthyは「TRUE」値を有する)、遮断オ
ブジェクトは、バック・バッファの小さなビューポート
にある深度バッファへのみ(色又はライティングはスト
アされない)レンダリングされる(ステップ515)。
ビューポートとは、ピクセルが表示されるフレーム・バ
ッファ領域である。これは「遮断検出ビューポート」で
ある。プロセスのパフォーマンスを増大するために、小
さなビューポートが選択される。なぜなら、アクセスし
なければならないピクセルが少なくなるからである。プ
ロセスのこのステップでは、深度情報のみが必要な情報
であるから、ライティングの計算は抑止される。このレ
ンダリングの結果として、遮断オブジェクトの深度値が
ストアされる。もし遮断オブジェクトがオーバラップす
れば、眼に最も近い遮断オブジェクトの深度値がストア
される。
【0032】次に、ステップ510で遮断オブジェクト
として選択されなかった全てのオブジェクトについて、
遮断のテストがなされる(ステップ516)。次に、フ
ラグget_new_occludersがトグルされる(ステップ51
8)。このフラグのトグルの結果として、シーンの1つ
おきの表示でのみ、遮断オブジェクトが選択される。も
ちろん、実現方法によっては、プロセスを毎回実行して
よい。例えば、もしオブジェクトの滑らかな回転が起こ
るならば、描かれた例では、遮断プロセスは1つおきの
フレームで実行されてよい。もし回転が、90度又は1
80度のように大きな増分で起これば、プロセスは毎回
実行されてよい。
として選択されなかった全てのオブジェクトについて、
遮断のテストがなされる(ステップ516)。次に、フ
ラグget_new_occludersがトグルされる(ステップ51
8)。このフラグのトグルの結果として、シーンの1つ
おきの表示でのみ、遮断オブジェクトが選択される。も
ちろん、実現方法によっては、プロセスを毎回実行して
よい。例えば、もしオブジェクトの滑らかな回転が起こ
るならば、描かれた例では、遮断プロセスは1つおきの
フレームで実行されてよい。もし回転が、90度又は1
80度のように大きな増分で起これば、プロセスは毎回
実行されてよい。
【0033】次に、前のグラフィックス状態が再び呼び
出され(ステップ520)、可視オブジェクトのリスト
が戻され(ステップ522)、その後でプロセスは戻
る。可視オブジェクトのこのリストは、シーン中のオブ
ジェクトの入力リストを参照するインデックスの配列で
ある。
出され(ステップ520)、可視オブジェクトのリスト
が戻され(ステップ522)、その後でプロセスは戻
る。可視オブジェクトのこのリストは、シーン中のオブ
ジェクトの入力リストを参照するインデックスの配列で
ある。
【0034】再びステップ512を参照して、もしプロ
セスが継続の価値を有しないならば、全てのオブジェク
トが可視であると宣言され(ステップ514)、次にプ
ロセスは前述したステップ518へ進む。
セスが継続の価値を有しないならば、全てのオブジェク
トが可視であると宣言され(ステップ514)、次にプ
ロセスは前述したステップ518へ進む。
【0035】再びステップ508を参照して、もし新規
シーン・フラグがFALSEであり、get_new_occludersがFA
LSEであれば、プロセスは前述したステップ512へ直
接進む。
シーン・フラグがFALSEであり、get_new_occludersがFA
LSEであれば、プロセスは前述したステップ512へ直
接進む。
【0036】ここで図9を参照すると、遮断オブジェク
トを選択するプロセスのフローチャートが、本発明の好
ましい実施形態に従って描かれる。図9は、図8のステ
ップ510を更に詳細に記述したものである。プロセス
は、オブジェクトの可視領域、深度、及び複雑度値の加
重合計に基づいて、オブジェクトをソートすることによ
って開始する(ステップ600)。これらの3つの属性
の各々へ与えられたウェートは、実現方式に依存して変
化してよい。描かれた例では、3つの属性の全てが、等
しく加重される。オブジェクトの可視領域は、理想的に
は、その境界ボックスをビューポートへ投影することに
よってカバーされるピクセルの数の尺度である。オブジ
ェクトの深度は、視点からオブジェクトの境界ボックス
上の最も近い点までのz方向距離(正のz方向)の尺度
である。複雑度は、オブジェクトを作り上げているプリ
ミティブの数によって決定されてよく、更に、オブジェ
クトのテクスチャリングを考慮してよい。オブジェクト
はソートされるから、各オブジェクトの可視領域値は、
他の全てのオブジェクトの可視領域値に関して正確であ
ればよい。例えば、もし一組のオブジェクトの実際の可
視領域が、10から100までの範囲を有するならば、
実際の値を10で割った後では、同じ値が1から10ま
での範囲を有するであろう。可視領域値の双方の組の上
でソートした結果は、オブジェクトの同じ順序を発生す
るであろう。
トを選択するプロセスのフローチャートが、本発明の好
ましい実施形態に従って描かれる。図9は、図8のステ
ップ510を更に詳細に記述したものである。プロセス
は、オブジェクトの可視領域、深度、及び複雑度値の加
重合計に基づいて、オブジェクトをソートすることによ
って開始する(ステップ600)。これらの3つの属性
の各々へ与えられたウェートは、実現方式に依存して変
化してよい。描かれた例では、3つの属性の全てが、等
しく加重される。オブジェクトの可視領域は、理想的に
は、その境界ボックスをビューポートへ投影することに
よってカバーされるピクセルの数の尺度である。オブジ
ェクトの深度は、視点からオブジェクトの境界ボックス
上の最も近い点までのz方向距離(正のz方向)の尺度
である。複雑度は、オブジェクトを作り上げているプリ
ミティブの数によって決定されてよく、更に、オブジェ
クトのテクスチャリングを考慮してよい。オブジェクト
はソートされるから、各オブジェクトの可視領域値は、
他の全てのオブジェクトの可視領域値に関して正確であ
ればよい。例えば、もし一組のオブジェクトの実際の可
視領域が、10から100までの範囲を有するならば、
実際の値を10で割った後では、同じ値が1から10ま
での範囲を有するであろう。可視領域値の双方の組の上
でソートした結果は、オブジェクトの同じ順序を発生す
るであろう。
【0037】各オブジェクトの可視領域値は、他のオブ
ジェクトの可視領域値に関してのみ正確であればよいか
ら、パフォーマンスを高めるために、可視領域を近似す
ることができる。近似は、図8のステップ502で実行
されるデータ構造の初期化の間に、各オブジェクトの境
界ボックスにおける6つの面の3つの面領域を計算及び
ストアすることによって実行されてよい。3つの面の各
々は、x、y、又はz座標軸のいずれかに垂直であろ
う。これらの領域値からベクタを形成することができ
る。次に、所与のビューにおけるオブジェクトの可視領
域を、このベクタとアイ・ベクタとの積として近似する
ことができる。その場合、各々の成分の積の絶対値が取
られて合計される。
ジェクトの可視領域値に関してのみ正確であればよいか
ら、パフォーマンスを高めるために、可視領域を近似す
ることができる。近似は、図8のステップ502で実行
されるデータ構造の初期化の間に、各オブジェクトの境
界ボックスにおける6つの面の3つの面領域を計算及び
ストアすることによって実行されてよい。3つの面の各
々は、x、y、又はz座標軸のいずれかに垂直であろ
う。これらの領域値からベクタを形成することができ
る。次に、所与のビューにおけるオブジェクトの可視領
域を、このベクタとアイ・ベクタとの積として近似する
ことができる。その場合、各々の成分の積の絶対値が取
られて合計される。
【0038】その後で、トータルのシーン複雑度の3.
5%という経験的に決定された値より小さなトータル複
雑度を有する最初の「X」個のオブジェクトが、ソート
されたリストから選択される(ステップ602)。
「X」は、図2のプロセッサ202のパフォーマンス、
図3のグラフィックス処理システム300、及びレンダ
リングされているオブジェクトのタイプに基づいて選択
されなければならない。この例では、「X」は後述する
ように255を超えることはできない。
5%という経験的に決定された値より小さなトータル複
雑度を有する最初の「X」個のオブジェクトが、ソート
されたリストから選択される(ステップ602)。
「X」は、図2のプロセッサ202のパフォーマンス、
図3のグラフィックス処理システム300、及びレンダ
リングされているオブジェクトのタイプに基づいて選択
されなければならない。この例では、「X」は後述する
ように255を超えることはできない。
【0039】次に、「X」個のオブジェクトの各々は、
独特の色を割り当てられ、その境界ボックスは、その色
で深度データと共にバック・バッファ内の小さなビュー
ポートへレンダリングされるが、ライティングはなされ
ない(ステップ604)。このビューポートは「遮断オ
ブジェクト選択ビューポート」である。次に、カラー・
バッファがこのビューポートから読み出され、どの色が
バッファ内に現れるかに従って、可視オブジェクトが決
定される(ステップ606)。広い範囲のグラフィック
ス処理システムと互換性を持たせるため、本発明は、グ
ラフィックス・システムによって少なくとも256色
(8ビット・カラー)を表せるものと仮定する。背景を
表すために1つの色を使用すれば(そこでは、オブジェ
クトはレンダリングされない)、区別することのできる
オブジェクトは、最大で255個となる。各ピクセルが
バッファから読み出されるとき、その色は、オブジェク
トを表すか空の空間を表すかを決定する。もしそれがオ
ブジェクトを表すならば、そのオブジェクトは遮断オブ
ジェクトとしてフラグされる。
独特の色を割り当てられ、その境界ボックスは、その色
で深度データと共にバック・バッファ内の小さなビュー
ポートへレンダリングされるが、ライティングはなされ
ない(ステップ604)。このビューポートは「遮断オ
ブジェクト選択ビューポート」である。次に、カラー・
バッファがこのビューポートから読み出され、どの色が
バッファ内に現れるかに従って、可視オブジェクトが決
定される(ステップ606)。広い範囲のグラフィック
ス処理システムと互換性を持たせるため、本発明は、グ
ラフィックス・システムによって少なくとも256色
(8ビット・カラー)を表せるものと仮定する。背景を
表すために1つの色を使用すれば(そこでは、オブジェ
クトはレンダリングされない)、区別することのできる
オブジェクトは、最大で255個となる。各ピクセルが
バッファから読み出されるとき、その色は、オブジェク
トを表すか空の空間を表すかを決定する。もしそれがオ
ブジェクトを表すならば、そのオブジェクトは遮断オブ
ジェクトとしてフラグされる。
【0040】遮断オブジェクトとしてフラグされた全て
のオブジェクトの複雑度値の合計を表す変数(occluder
_complexity)、及び遮断オブジェクトとしてフラグさ
れない全てのオブジェクトの複雑度値の合計を表す変数
(occludee_complexity)の2つが管理される。もしocc
ludee_complexityとウェート・ファクタの積が、occlud
er_complexityの値を超過すれば、他の変数cull_worthy
が「TRUE」へセットされる(ステップ608)。このウ
ェート・ファクタは、経験的に定義された他の値であ
る。もしcull_worthyが、ピクセル読み出しプロセス中
の或る時点でFALSEへセットされれば、本発明を継続す
るよりも、全てのオブジェクトを描画する方がより効率
的であると決定される。その後で、プロセスは戻るか終
了する。
のオブジェクトの複雑度値の合計を表す変数(occluder
_complexity)、及び遮断オブジェクトとしてフラグさ
れない全てのオブジェクトの複雑度値の合計を表す変数
(occludee_complexity)の2つが管理される。もしocc
ludee_complexityとウェート・ファクタの積が、occlud
er_complexityの値を超過すれば、他の変数cull_worthy
が「TRUE」へセットされる(ステップ608)。このウ
ェート・ファクタは、経験的に定義された他の値であ
る。もしcull_worthyが、ピクセル読み出しプロセス中
の或る時点でFALSEへセットされれば、本発明を継続す
るよりも、全てのオブジェクトを描画する方がより効率
的であると決定される。その後で、プロセスは戻るか終
了する。
【0041】図10を参照すると、遮断テストのプロセ
スのフローチャートが、本発明の好ましい実施形態に従
って描かれる。図10は、図8のステップ516を更に
詳細に記述したものである。
スのフローチャートが、本発明の好ましい実施形態に従
って描かれる。図10は、図8のステップ516を更に
詳細に記述したものである。
【0042】プロセスは、オブジェクトの入力配列中で
最初のオブジェクトを検索することによって開始する
(ステップ700)。検索されたオブジェクトは、遮断
オブジェクト、及び遮断オブジェクトとして識別されな
かった他のオブジェクトの双方を含んでよい。従って、
このオブジェクトが遮断オブジェクトとしてフラグされ
たかどうかの決定がなされる(ステップ702)。もし
オブジェクトが遮断オブジェクトでなければ、新しい境
界ボックスが現在のビューに対して計算される(ステッ
プ704)。オリジナルの境界ボックスは、大域座標系
(global coordinate system)に対するものである。し
かし、ビューは、大域座標系と軸的に整列していないか
も知れない。その結果、ビューと軸的に整列する新しい
境界ボックスが計算され、その前壁(視点に最も近い
面)がビュー平面と平行になるようにされる。その後
で、プロセスは、新しい境界ボックスの前壁の深度及び
投影を計算して、図8のステップ515でレンダリング
された遮断オブジェクトの深度を含むバック・バッファ
内の小さなビューポート(遮断検出ビューポート)の中
へ入れる(ステップ706)。この投影は、壁の投影さ
れた境界ボックスである。
最初のオブジェクトを検索することによって開始する
(ステップ700)。検索されたオブジェクトは、遮断
オブジェクト、及び遮断オブジェクトとして識別されな
かった他のオブジェクトの双方を含んでよい。従って、
このオブジェクトが遮断オブジェクトとしてフラグされ
たかどうかの決定がなされる(ステップ702)。もし
オブジェクトが遮断オブジェクトでなければ、新しい境
界ボックスが現在のビューに対して計算される(ステッ
プ704)。オリジナルの境界ボックスは、大域座標系
(global coordinate system)に対するものである。し
かし、ビューは、大域座標系と軸的に整列していないか
も知れない。その結果、ビューと軸的に整列する新しい
境界ボックスが計算され、その前壁(視点に最も近い
面)がビュー平面と平行になるようにされる。その後
で、プロセスは、新しい境界ボックスの前壁の深度及び
投影を計算して、図8のステップ515でレンダリング
された遮断オブジェクトの深度を含むバック・バッファ
内の小さなビューポート(遮断検出ビューポート)の中
へ入れる(ステップ706)。この投影は、壁の投影さ
れた境界ボックスである。
【0043】その後で、前壁の深度が、壁の投影された
境界ボックス内に存在するピクセルの深度と比較される
(ステップ708)。これらの深度は、遮断オブジェク
トの深度であり、図8のステップ515で得られたもの
である。もし前壁の深度が、壁の投影された境界ボック
ス内の全てのピクセルの深度値よりも大きければ、オブ
ジェクトは遮断されるべきものと決定される(ステップ
710)。もし全体のオブジェクトが遮断されるのであ
れば、オブジェクトは遮断されるものとしてラベルを付
けられるだけである。そうでなければ、オブジェクトは
可視である(ステップ712)。いずれの場合でも、次
に、オブジェクトのチェックが終了したかどうかの決定
がなされる(ステップ714)。もしオブジェクトのチ
ェックが終了していなければ、プロセスは、次のオブジ
ェクトをゲットし(ステップ716)、次にプロセスは
前述したステップ702へ戻る。そうでなければ、プロ
セスは戻る。
境界ボックス内に存在するピクセルの深度と比較される
(ステップ708)。これらの深度は、遮断オブジェク
トの深度であり、図8のステップ515で得られたもの
である。もし前壁の深度が、壁の投影された境界ボック
ス内の全てのピクセルの深度値よりも大きければ、オブ
ジェクトは遮断されるべきものと決定される(ステップ
710)。もし全体のオブジェクトが遮断されるのであ
れば、オブジェクトは遮断されるものとしてラベルを付
けられるだけである。そうでなければ、オブジェクトは
可視である(ステップ712)。いずれの場合でも、次
に、オブジェクトのチェックが終了したかどうかの決定
がなされる(ステップ714)。もしオブジェクトのチ
ェックが終了していなければ、プロセスは、次のオブジ
ェクトをゲットし(ステップ716)、次にプロセスは
前述したステップ702へ戻る。そうでなければ、プロ
セスは戻る。
【0044】再びステップ702を参照して、もしオブ
ジェクトが遮断オブジェクトであれば、プロセスは前述
したステップ714へ直接進行する。
ジェクトが遮断オブジェクトであれば、プロセスは前述
したステップ714へ直接進行する。
【0045】ここで図11〜図14を参照すると、可視
オブジェクトを識別するために使用される疑似コードの
図が、本発明の好ましい実施形態に従って描かれる。図
11〜図14に示される疑似コードは、シーン内のどの
オブジェクトが所与のビューから可視であるかを決定す
るために使用される。更に、このプロセスは、オブジェ
クトが可視オブジェクトによってブロックされるために
描画される必要がないオブジェクトを識別する。プロセ
スが最も役立つのは、プロセスの実行時間プラス可視オ
ブジェクトのレンダリング時間が、通常はシーンのため
に描画される全てのオブジェクトのレンダリング時間よ
りも小さいときである。
オブジェクトを識別するために使用される疑似コードの
図が、本発明の好ましい実施形態に従って描かれる。図
11〜図14に示される疑似コードは、シーン内のどの
オブジェクトが所与のビューから可視であるかを決定す
るために使用される。更に、このプロセスは、オブジェ
クトが可視オブジェクトによってブロックされるために
描画される必要がないオブジェクトを識別する。プロセ
スが最も役立つのは、プロセスの実行時間プラス可視オ
ブジェクトのレンダリング時間が、通常はシーンのため
に描画される全てのオブジェクトのレンダリング時間よ
りも小さいときである。
【0046】疑似コード800において、図11のセク
ション802は、入力及び出力データの識別を含む。オ
ブジェクトの表示リストの配列、オブジェクトの境界ボ
ックスの配列、オブジェクトの複雑度の配列、配列の長
さ(入力オブジェクトのトータル数に等しい)、新しい
シーンのためのフラグ(プロセスが実行された前の時間
以後に、表示リストが変更されたときのみTRUEへセット
される)、及びビューポートが、疑似コード800によ
って使用される入力データである。出力は、表示リスト
の入力配列を参照する可視オブジェクト・インデックス
の配列、及びこの配列の長さ(可視オブジェクトの数に
等しい)である。セクション802では、新しいシーン
が描画されているかどうかの決定がなされる。もし新し
いシーンが描画されていれば、データ構造がオブジェク
トの各々のために作成される。これらのデータ構造は、
ポリゴンの数、表示リスト・ポインタ、可視フラグ、最
小及び最大頂点を含む境界ボックス、境界ボックス領域
データ、及びデータ構造のオリジナルの表示リスト配列
インデックスである。
ション802は、入力及び出力データの識別を含む。オ
ブジェクトの表示リストの配列、オブジェクトの境界ボ
ックスの配列、オブジェクトの複雑度の配列、配列の長
さ(入力オブジェクトのトータル数に等しい)、新しい
シーンのためのフラグ(プロセスが実行された前の時間
以後に、表示リストが変更されたときのみTRUEへセット
される)、及びビューポートが、疑似コード800によ
って使用される入力データである。出力は、表示リスト
の入力配列を参照する可視オブジェクト・インデックス
の配列、及びこの配列の長さ(可視オブジェクトの数に
等しい)である。セクション802では、新しいシーン
が描画されているかどうかの決定がなされる。もし新し
いシーンが描画されていれば、データ構造がオブジェク
トの各々のために作成される。これらのデータ構造は、
ポリゴンの数、表示リスト・ポインタ、可視フラグ、最
小及び最大頂点を含む境界ボックス、境界ボックス領域
データ、及びデータ構造のオリジナルの表示リスト配列
インデックスである。
【0047】セクション804は、遮断オブジェクトの
選択及び遮断テストのような各種のサブルーチンを呼び
出す命令を含む。これらは図13のセクション806及
び図14の808でより詳細に示される。図12のセク
ション804のコードは、現在のグラフィックス状態を
保存し、遮断オブジェクトを選択し、遮断をテストして
可視オブジェクトを識別し、グラフィックス状態をリス
トアするために使用される。図13のセクション806
では、遮断オブジェクトを識別するために、また、選択
された遮断オブジェクトの複雑度及び残りのオブジェク
トの複雑度に基づいて、プロセスを継続すべきかどうか
を決定するために、疑似コードが使用される。図14の
セクション808にある疑似コードは、遮断をテストし
て、どのオブジェクトが遮断されるかを識別するために
使用される。部分的に可視のオブジェクトは、本発明の
好ましい実施形態に従って可視オブジェクトとして識別
される。全面的に遮断されるオブジェクトのみが、遮断
されるオブジェクトとして識別される。セクション80
8内のコードは、セクション810に示されるコードを
呼び出す深度テストの呼び出しを含む。このコードは、
深度バッファ内で投影された境界ボックス内の各ピクセ
ルの深度を識別するために使用される。
選択及び遮断テストのような各種のサブルーチンを呼び
出す命令を含む。これらは図13のセクション806及
び図14の808でより詳細に示される。図12のセク
ション804のコードは、現在のグラフィックス状態を
保存し、遮断オブジェクトを選択し、遮断をテストして
可視オブジェクトを識別し、グラフィックス状態をリス
トアするために使用される。図13のセクション806
では、遮断オブジェクトを識別するために、また、選択
された遮断オブジェクトの複雑度及び残りのオブジェク
トの複雑度に基づいて、プロセスを継続すべきかどうか
を決定するために、疑似コードが使用される。図14の
セクション808にある疑似コードは、遮断をテストし
て、どのオブジェクトが遮断されるかを識別するために
使用される。部分的に可視のオブジェクトは、本発明の
好ましい実施形態に従って可視オブジェクトとして識別
される。全面的に遮断されるオブジェクトのみが、遮断
されるオブジェクトとして識別される。セクション80
8内のコードは、セクション810に示されるコードを
呼び出す深度テストの呼び出しを含む。このコードは、
深度バッファ内で投影された境界ボックス内の各ピクセ
ルの深度を識別するために使用される。
【0048】ここで図15及び図16を参照すると、遮
断されるオブジェクトを識別するために、本発明の遮断
選別プロセスを実行すべきかどうかを決定するために使
用される疑似コードの例が、本発明の好ましい実施形態
に従って描かれる。疑似コード900は、セクション9
02の中に、オブジェクトが交差するか、又は完全にビ
ュー・フラスタムの中にあるかどうかを決定する命令を
含む。その後で、本発明の遮断選別プロセスを使用すべ
きかどうかの決定が、セクション904の命令によって
なされる。基本的には、これらの命令は、セクション9
06で、遮断プロセスを実行するために使用される時間
量を計時又は測定する。可視オブジェクトをレンダリン
グすることのできるレートが、セクション910のコー
ドによって識別されたように、可視オブジェクトのレン
ダリング時間がセクション908で識別される。遮断さ
れるオブジェクトをレンダリングしないことによって節
約される時間量が、セクション912で推定される。プ
ロセスを次回に使用すべきかどうかの決定は、セクショ
ン914の命令によってなされる。
断されるオブジェクトを識別するために、本発明の遮断
選別プロセスを実行すべきかどうかを決定するために使
用される疑似コードの例が、本発明の好ましい実施形態
に従って描かれる。疑似コード900は、セクション9
02の中に、オブジェクトが交差するか、又は完全にビ
ュー・フラスタムの中にあるかどうかを決定する命令を
含む。その後で、本発明の遮断選別プロセスを使用すべ
きかどうかの決定が、セクション904の命令によって
なされる。基本的には、これらの命令は、セクション9
06で、遮断プロセスを実行するために使用される時間
量を計時又は測定する。可視オブジェクトをレンダリン
グすることのできるレートが、セクション910のコー
ドによって識別されたように、可視オブジェクトのレン
ダリング時間がセクション908で識別される。遮断さ
れるオブジェクトをレンダリングしないことによって節
約される時間量が、セクション912で推定される。プ
ロセスを次回に使用すべきかどうかの決定は、セクショ
ン914の命令によってなされる。
【0049】本発明のメカニズムを使用する良好な候補
シーンを識別するために、適格性基準が使用される。プ
ロセスは、遮断されるものと宣言された全てのオブジェ
クトのレンダリング時間よりも早く実行されなければな
らない。悪い候補シーンについては、プロセスは終了さ
れ、通常のレンダリングが実行される。
シーンを識別するために、適格性基準が使用される。プ
ロセスは、遮断されるものと宣言された全てのオブジェ
クトのレンダリング時間よりも早く実行されなければな
らない。悪い候補シーンについては、プロセスは終了さ
れ、通常のレンダリングが実行される。
【0050】本発明のメカニズムの良好な候補は、その
トータル複雑度の或るパーセンテージが不明瞭なシーン
である。そのパーセンテージは、グラフィック・ハード
ウェア、プロセッサ速度、グラフィックス・ポートでの
OpenGL実現方式、観察されているオブジェクトの
タイプ、及びタイミング・テストのタイプのような各種
のファクタに基づく経験的な値である。
トータル複雑度の或るパーセンテージが不明瞭なシーン
である。そのパーセンテージは、グラフィック・ハード
ウェア、プロセッサ速度、グラフィックス・ポートでの
OpenGL実現方式、観察されているオブジェクトの
タイプ、及びタイミング・テストのタイプのような各種
のファクタに基づく経験的な値である。
【0051】注意すべき重要なこととして、本発明は、
完全に機能するデータ処理システムの関連で説明された
が、当業者は、本発明のプロセスが、命令のコンピュー
タ読み取り可能媒体の形式及び多様な形式で頒布可能で
あること、また本発明は頒布を実行するため実際に使用
される信号搬送媒体の特定のタイプに関係なく等しく応
用されることを了解するであろう。コンピュータ読み取
り可能媒体の例は、フロッピー・ディスク、ハード・デ
ィスク・ドライブ、RAM、及びCD−ROMのような
記録可能形媒体、及び、ディジタル及びアナログ通信リ
ンクのような伝送形媒体を含む。
完全に機能するデータ処理システムの関連で説明された
が、当業者は、本発明のプロセスが、命令のコンピュー
タ読み取り可能媒体の形式及び多様な形式で頒布可能で
あること、また本発明は頒布を実行するため実際に使用
される信号搬送媒体の特定のタイプに関係なく等しく応
用されることを了解するであろう。コンピュータ読み取
り可能媒体の例は、フロッピー・ディスク、ハード・デ
ィスク・ドライブ、RAM、及びCD−ROMのような
記録可能形媒体、及び、ディジタル及びアナログ通信リ
ンクのような伝送形媒体を含む。
【0052】本発明の記述は、例示及び説明の目的で提
示されたが、開示された形式の発明に全てが尽くされる
こと、又は、限定されること、を意図するものではな
い。多くの変更及びバリエーションが当業者に明らかで
あろう。描かれた例はオブジェクトの処理に向けられて
いるが、本発明のプロセスは、ポリゴン又はプリミティ
ブのような他の品目に応用されてよい。実施形態の選択
と説明は、本発明の原理及び実際の応用を最良に明らか
にし、且つ当技術分野に通常の知識を有する他の人々
が、想定される特定の使用に適した各種の変更を有する
各種の実施形態のために本発明を理解できるようになさ
れた。
示されたが、開示された形式の発明に全てが尽くされる
こと、又は、限定されること、を意図するものではな
い。多くの変更及びバリエーションが当業者に明らかで
あろう。描かれた例はオブジェクトの処理に向けられて
いるが、本発明のプロセスは、ポリゴン又はプリミティ
ブのような他の品目に応用されてよい。実施形態の選択
と説明は、本発明の原理及び実際の応用を最良に明らか
にし、且つ当技術分野に通常の知識を有する他の人々
が、想定される特定の使用に適した各種の変更を有する
各種の実施形態のために本発明を理解できるようになさ
れた。
【0053】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)視点のために描画を表示するデータ処理システム
における方法であって、ここで描画は一組のオブジェク
トを含み、該方法は、オブジェクトの組のために複数の
境界ボックス及び複雑度データを受け取り、ここで前記
境界ボックス及び前記複雑度データはオブジェクトの組
内の各オブジェクトに関連づけられ、複数の前記境界ボ
ックスを使用して前記オブジェクトの組内の遮断オブジ
ェクトを選択し、視点のために可視のオブジェクトを前
記オブジェクトの組から識別するコンピュータ実現ステ
ップを含む方法。 (2)前記オブジェクトが識別されたオブジェクトであ
り、前記識別されたオブジェクトを表示するステップを
更に含む、上記(1)に記載の方法。 (3)ピクセル深度データが各前記遮断オブジェクトに
関連づけられ、且つ可視であるオブジェクトの組からオ
ブジェクトを識別するステップが、前記オブジェクトの
組内のオブジェクトの前記境界ボックスの深度が、前記
遮断オブジェクトのピクセルの深度よりも視点に近いか
どうかを決定することを含む、上記(1)に記載の方
法。 (4)前記ピクセル深度データが、前記ピクセル深度デ
ータを発生するための低解像度で深度情報を用いて前記
遮断オブジェクトを十分詳細にレンダリングすることに
よって発生する、上記(3)に記載の方法。 (5)前記遮断オブジェクトを選択するステップが、前
記オブジェクトの組を複雑度によってソートし、前記オ
ブジェクトの組から、描画の複雑度の設定パーセンテー
ジよりも小さなトータル複雑度を有する或る数のオブジ
ェクトを選択することを含む、上記(1)に記載の方
法。 (6)前記オブジェクトの数が255よりも少ない、上
記(5)に記載の方法。 (7)前記設定パーセンテージが3.5パーセントであ
る、上記(6)に記載の方法。 (8)前記推定するステップが、前記オブジェクトの組
の中で、全体的な最大可視領域、最も近い深度値、及び
最低複雑度値を有するオブジェクトを識別することを含
む、上記(1)に記載の方法。 (9)前記複雑度データが、オブジェクトをレンダリン
グするのに必要な時間を含む、上記(1)に記載の方
法。 (10)前記遮断オブジェクトのトータル複雑度が残り
の部分の複雑度よりも大きいかどうかを決定することを
更に含む、上記(1)に記載の方法。 (11)前記他のオブジェクトが可視であるかどうかを
決定するステップが、前記遮断オブジェクトの複雑度が
残りの部分の複雑度よりも小さいことの決定に応答す
る、上記(10)に記載の方法。 (12)選択、識別、及び表示ステップを実行するため
に使用される第1の時間量を決定し、選択及び識別ステ
ップを実行することなくオブジェクトの組を表示するた
めに使用される第2の時間量を決定し、第1の時間量が
第2の時間量よりも大きいことに応答して、オブジェク
トの組を表示するとき選択及び識別ステップの実行を防
止することを更に含む、上記(2)に記載の方法。 (13)視点のためにシーンを処理するデータ処理シス
テムにおける方法であって、ここでシーンは複数のオブ
ジェクトを含み、該方法は、シーンのためのデータを受
け取り、シーンのためのデータを使用して前記複数のオ
ブジェクトから一組の可視オブジェクトを選択し、前記
複数のオブジェクトから選択されないオブジェクトを、
前記可視オブジェクトの組と比較することによって、視
点のために前記可視のオブジェクトを識別するデータ処
理システムのステップを含む方法。 (14)データが、前記複数のオブジェクトの境界ボッ
クス、及び前記複数のオブジェクトの複雑度データを含
む、上記(13)に記載の方法。 (15)ピクセル深度データが各前記可視オブジェクト
に関連づけられ、オブジェクトの組からの他のオブジェ
クトが可視であるかどうかを識別するステップが、前記
境界ボックスの深度が前記遮断オブジェクトのピクセル
の深度よりも視点に近いかどうかを決定することを含
む、上記(14)に記載の方法。 (16)視点のために描画を表示するデータ処理システ
ムであって、ここで描画は一組のオブジェクトを含み、
該データ処理システムは、オブジェクトの組のために複
数の境界ボックス及び複雑度データを受け取る受け取り
手段と、ここで前記境界ボックス及び前記複雑度データ
はオブジェクトの組内の各オブジェクトに関連づけら
れ、複数の前記境界ボックスを使用して、前記オブジェ
クトの組内の遮断オブジェクトを選択する選択手段と、
前記オブジェクトの組から、視点のために可視のオブジ
ェクトを識別する識別手段とを含むデータ処理システ
ム。 (17)前記オブジェクトが識別されたオブジェクトで
あり、前記識別されたオブジェクトを表示する表示手段
を更に含む、上記(16)に記載のデータ処理システ
ム。 (18)ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、且つ前記可視のオブジェクトをオブジ
ェクトの組から識別するステップが、前記オブジェクト
の組内のオブジェクトの境界ボックスの深度が、前記遮
断オブジェクトのピクセルの深度よりも視点に近いかど
うかを決定する決定手段を含む、上記(16)に記載の
データ処理システム。 (19)前記ピクセル深度データが、ピクセル深度デー
タを発生するための低解像度で深度情報を用いて前記遮
断オブジェクトを十分詳細にレンダリングすることによ
って発生する、上記(18)に記載のデータ処理システ
ム。 (20)前記遮断オブジェクトを選択する選択手段が、
前記オブジェクトの組を複雑度によってソートするソー
ト手段と、前記オブジェクトの組から、描画の複雑度の
設定パーセンテージよりも小さいトータル複雑度を有す
る或る数のオブジェクトを選択する選択手段とを含む、
上記(16)に記載のデータ処理システム。 (21)前記オブジェクトの数が255より少ない、上
記(20)に記載のデータ処理システム。 (22)前記設定パーセンテージが3.5パーセントで
ある、上記(21)に記載のデータ処理システム。 (23)前記推定手段が、前記オブジェクトの組の中
で、全体的な最大可視領域、最も近い深度値、及び最低
複雑度値を有するオブジェクトを識別する識別手段を含
む、上記(16)に記載のデータ処理システム。 (24)前記複雑度データが、オブジェクトをレンダリ
ングするのに必要な時間を含む、上記(16)に記載の
データ処理システム。 (25)前記遮断オブジェクトのトータル複雑度が残り
の部分の複雑度よりも大きいかどうかを決定する決定手
段を更に含む、上記(16)に記載のデータ処理システ
ム。 (26)前記他のオブジェクトが可視であるかどうかの
決定手段が、前記遮断オブジェクトの複雑度が残りの部
分の複雑度よりも小さいことの決定に応答する、上記
(25)に記載のデータ処理システム。 (27)選択、識別、及び表示ステップを実行するため
に使用される第1の時間量を決定する第1の決定手段
と、選択、及び識別ステップを実行することなく前記オ
ブジェクトの組を表示するために使用される第2の時間
量を決定する第2の決定手段と、前記第1の時間量が前
記第2の時間量よりも大きいことに応答して、前記オブ
ジェクトの組を表示するとき選択及び識別手段の制限を
防止する防止手段とを更に含む、上記(17)に記載の
データ処理システム。 (28)視点のためにシーンを処理するデータ処理シス
テムであって、ここでシーンは複数のオブジェクトを含
み、該データ処理システムは、シーンのためのデータを
受け取る受け取り手段と、シーンのためのデータを使用
して、複数のオブジェクトから一組の可視オブジェクト
を選択する選択手段と、前記複数のオブジェクトから選
択されないオブジェクトを、前記可視オブジェクトの組
と比較することによって、視点のために前記可視のオブ
ジェクトを識別する識別手段とを含む。 (29)前記データが、複数のオブジェクトのための境
界ボックス、及び複数のオブジェクトのための複雑度デ
ータを含む、上記(28)に記載のデータ処理システ
ム。 (30)ピクセル深度データが各可視オブジェクトに関
連づけられ、前記オブジェクトの組からの他のオブジェ
クトが可視であるかどうかを識別するステップが、前記
境界ボックスの深度が、遮断オブジェクトのピクセルの
深度よりも視点に近いかどうかを決定する決定手段を含
む、上記(29)に記載のデータ処理システム。 (31)視点のために描画を表示するための、コンピュ
ータ読み取り可能媒体におけるコンピュータ・プログラ
ム製品であって、ここで描画は一組のオブジェクトを含
み、該コンピュータ・プログラム製品は、オブジェクト
の組のために複数の境界ボックス及び複雑度データを受
け取る第1の命令と、ここで前記境界ボックス及び前記
複雑度データは、オブジェクトの組の中の各オブジェク
トに関連づけられ、複数の前記境界ボックスを使用して
前記オブジェクトの組の中の遮断オブジェクトを選択す
る第2の命令と、前記オブジェクトの組から、視点のた
めに可視のオブジェクトを識別する第3の命令とを含む
コンピュータ・プログラム製品。 (32)視点のためにシーンを処理するための、コンピ
ュータ読み取り可能媒体におけるコンピュータ・プログ
ラム製品であって、ここで前記シーンは複数のオブジェ
クトを含み、前記コンピュータ・プログラム製品は、シ
ーンのためのデータを受け取る第1の命令と、シーンの
ためのデータを使用して、複数のオブジェクトから一組
の可視オブジェクトを選択する第2の命令と、前記複数
のオブジェクトから選択されないオブジェクトを、前記
可視オブジェクトの組と比較することによって、視点の
ために可視のオブジェクトを識別する第3の命令とを含
むコンピュータ・プログラム製品。
の事項を開示する。 (1)視点のために描画を表示するデータ処理システム
における方法であって、ここで描画は一組のオブジェク
トを含み、該方法は、オブジェクトの組のために複数の
境界ボックス及び複雑度データを受け取り、ここで前記
境界ボックス及び前記複雑度データはオブジェクトの組
内の各オブジェクトに関連づけられ、複数の前記境界ボ
ックスを使用して前記オブジェクトの組内の遮断オブジ
ェクトを選択し、視点のために可視のオブジェクトを前
記オブジェクトの組から識別するコンピュータ実現ステ
ップを含む方法。 (2)前記オブジェクトが識別されたオブジェクトであ
り、前記識別されたオブジェクトを表示するステップを
更に含む、上記(1)に記載の方法。 (3)ピクセル深度データが各前記遮断オブジェクトに
関連づけられ、且つ可視であるオブジェクトの組からオ
ブジェクトを識別するステップが、前記オブジェクトの
組内のオブジェクトの前記境界ボックスの深度が、前記
遮断オブジェクトのピクセルの深度よりも視点に近いか
どうかを決定することを含む、上記(1)に記載の方
法。 (4)前記ピクセル深度データが、前記ピクセル深度デ
ータを発生するための低解像度で深度情報を用いて前記
遮断オブジェクトを十分詳細にレンダリングすることに
よって発生する、上記(3)に記載の方法。 (5)前記遮断オブジェクトを選択するステップが、前
記オブジェクトの組を複雑度によってソートし、前記オ
ブジェクトの組から、描画の複雑度の設定パーセンテー
ジよりも小さなトータル複雑度を有する或る数のオブジ
ェクトを選択することを含む、上記(1)に記載の方
法。 (6)前記オブジェクトの数が255よりも少ない、上
記(5)に記載の方法。 (7)前記設定パーセンテージが3.5パーセントであ
る、上記(6)に記載の方法。 (8)前記推定するステップが、前記オブジェクトの組
の中で、全体的な最大可視領域、最も近い深度値、及び
最低複雑度値を有するオブジェクトを識別することを含
む、上記(1)に記載の方法。 (9)前記複雑度データが、オブジェクトをレンダリン
グするのに必要な時間を含む、上記(1)に記載の方
法。 (10)前記遮断オブジェクトのトータル複雑度が残り
の部分の複雑度よりも大きいかどうかを決定することを
更に含む、上記(1)に記載の方法。 (11)前記他のオブジェクトが可視であるかどうかを
決定するステップが、前記遮断オブジェクトの複雑度が
残りの部分の複雑度よりも小さいことの決定に応答す
る、上記(10)に記載の方法。 (12)選択、識別、及び表示ステップを実行するため
に使用される第1の時間量を決定し、選択及び識別ステ
ップを実行することなくオブジェクトの組を表示するた
めに使用される第2の時間量を決定し、第1の時間量が
第2の時間量よりも大きいことに応答して、オブジェク
トの組を表示するとき選択及び識別ステップの実行を防
止することを更に含む、上記(2)に記載の方法。 (13)視点のためにシーンを処理するデータ処理シス
テムにおける方法であって、ここでシーンは複数のオブ
ジェクトを含み、該方法は、シーンのためのデータを受
け取り、シーンのためのデータを使用して前記複数のオ
ブジェクトから一組の可視オブジェクトを選択し、前記
複数のオブジェクトから選択されないオブジェクトを、
前記可視オブジェクトの組と比較することによって、視
点のために前記可視のオブジェクトを識別するデータ処
理システムのステップを含む方法。 (14)データが、前記複数のオブジェクトの境界ボッ
クス、及び前記複数のオブジェクトの複雑度データを含
む、上記(13)に記載の方法。 (15)ピクセル深度データが各前記可視オブジェクト
に関連づけられ、オブジェクトの組からの他のオブジェ
クトが可視であるかどうかを識別するステップが、前記
境界ボックスの深度が前記遮断オブジェクトのピクセル
の深度よりも視点に近いかどうかを決定することを含
む、上記(14)に記載の方法。 (16)視点のために描画を表示するデータ処理システ
ムであって、ここで描画は一組のオブジェクトを含み、
該データ処理システムは、オブジェクトの組のために複
数の境界ボックス及び複雑度データを受け取る受け取り
手段と、ここで前記境界ボックス及び前記複雑度データ
はオブジェクトの組内の各オブジェクトに関連づけら
れ、複数の前記境界ボックスを使用して、前記オブジェ
クトの組内の遮断オブジェクトを選択する選択手段と、
前記オブジェクトの組から、視点のために可視のオブジ
ェクトを識別する識別手段とを含むデータ処理システ
ム。 (17)前記オブジェクトが識別されたオブジェクトで
あり、前記識別されたオブジェクトを表示する表示手段
を更に含む、上記(16)に記載のデータ処理システ
ム。 (18)ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、且つ前記可視のオブジェクトをオブジ
ェクトの組から識別するステップが、前記オブジェクト
の組内のオブジェクトの境界ボックスの深度が、前記遮
断オブジェクトのピクセルの深度よりも視点に近いかど
うかを決定する決定手段を含む、上記(16)に記載の
データ処理システム。 (19)前記ピクセル深度データが、ピクセル深度デー
タを発生するための低解像度で深度情報を用いて前記遮
断オブジェクトを十分詳細にレンダリングすることによ
って発生する、上記(18)に記載のデータ処理システ
ム。 (20)前記遮断オブジェクトを選択する選択手段が、
前記オブジェクトの組を複雑度によってソートするソー
ト手段と、前記オブジェクトの組から、描画の複雑度の
設定パーセンテージよりも小さいトータル複雑度を有す
る或る数のオブジェクトを選択する選択手段とを含む、
上記(16)に記載のデータ処理システム。 (21)前記オブジェクトの数が255より少ない、上
記(20)に記載のデータ処理システム。 (22)前記設定パーセンテージが3.5パーセントで
ある、上記(21)に記載のデータ処理システム。 (23)前記推定手段が、前記オブジェクトの組の中
で、全体的な最大可視領域、最も近い深度値、及び最低
複雑度値を有するオブジェクトを識別する識別手段を含
む、上記(16)に記載のデータ処理システム。 (24)前記複雑度データが、オブジェクトをレンダリ
ングするのに必要な時間を含む、上記(16)に記載の
データ処理システム。 (25)前記遮断オブジェクトのトータル複雑度が残り
の部分の複雑度よりも大きいかどうかを決定する決定手
段を更に含む、上記(16)に記載のデータ処理システ
ム。 (26)前記他のオブジェクトが可視であるかどうかの
決定手段が、前記遮断オブジェクトの複雑度が残りの部
分の複雑度よりも小さいことの決定に応答する、上記
(25)に記載のデータ処理システム。 (27)選択、識別、及び表示ステップを実行するため
に使用される第1の時間量を決定する第1の決定手段
と、選択、及び識別ステップを実行することなく前記オ
ブジェクトの組を表示するために使用される第2の時間
量を決定する第2の決定手段と、前記第1の時間量が前
記第2の時間量よりも大きいことに応答して、前記オブ
ジェクトの組を表示するとき選択及び識別手段の制限を
防止する防止手段とを更に含む、上記(17)に記載の
データ処理システム。 (28)視点のためにシーンを処理するデータ処理シス
テムであって、ここでシーンは複数のオブジェクトを含
み、該データ処理システムは、シーンのためのデータを
受け取る受け取り手段と、シーンのためのデータを使用
して、複数のオブジェクトから一組の可視オブジェクト
を選択する選択手段と、前記複数のオブジェクトから選
択されないオブジェクトを、前記可視オブジェクトの組
と比較することによって、視点のために前記可視のオブ
ジェクトを識別する識別手段とを含む。 (29)前記データが、複数のオブジェクトのための境
界ボックス、及び複数のオブジェクトのための複雑度デ
ータを含む、上記(28)に記載のデータ処理システ
ム。 (30)ピクセル深度データが各可視オブジェクトに関
連づけられ、前記オブジェクトの組からの他のオブジェ
クトが可視であるかどうかを識別するステップが、前記
境界ボックスの深度が、遮断オブジェクトのピクセルの
深度よりも視点に近いかどうかを決定する決定手段を含
む、上記(29)に記載のデータ処理システム。 (31)視点のために描画を表示するための、コンピュ
ータ読み取り可能媒体におけるコンピュータ・プログラ
ム製品であって、ここで描画は一組のオブジェクトを含
み、該コンピュータ・プログラム製品は、オブジェクト
の組のために複数の境界ボックス及び複雑度データを受
け取る第1の命令と、ここで前記境界ボックス及び前記
複雑度データは、オブジェクトの組の中の各オブジェク
トに関連づけられ、複数の前記境界ボックスを使用して
前記オブジェクトの組の中の遮断オブジェクトを選択す
る第2の命令と、前記オブジェクトの組から、視点のた
めに可視のオブジェクトを識別する第3の命令とを含む
コンピュータ・プログラム製品。 (32)視点のためにシーンを処理するための、コンピ
ュータ読み取り可能媒体におけるコンピュータ・プログ
ラム製品であって、ここで前記シーンは複数のオブジェ
クトを含み、前記コンピュータ・プログラム製品は、シ
ーンのためのデータを受け取る第1の命令と、シーンの
ためのデータを使用して、複数のオブジェクトから一組
の可視オブジェクトを選択する第2の命令と、前記複数
のオブジェクトから選択されないオブジェクトを、前記
可視オブジェクトの組と比較することによって、視点の
ために可視のオブジェクトを識別する第3の命令とを含
むコンピュータ・プログラム製品。
【図1】本発明が実現されてよいデータ処理システムを
描いた図である。
描いた図である。
【図2】本発明が実現されてよいデータ処理システムを
示すブロック図である。
示すブロック図である。
【図3】本発明の好ましい実施形態に従って描かれたグ
ラフィックス処理システムのシステム・アーキテクチャ
を示すブロック図である。
ラフィックス処理システムのシステム・アーキテクチャ
を示すブロック図である。
【図4】本発明の好ましい実施形態に従って描かれたビ
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
【図5】本発明の好ましい実施形態に従って描かれたビ
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
【図6】本発明の好ましい実施形態に従って描かれたビ
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
【図7】本発明の好ましい実施形態に従って描かれたビ
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
ュー・フラスタムにおけるオブジェクトの展望図であ
る。
【図8】本発明の好ましい実施形態に従って描かれた所
与のビューから見ることのできるオブジェクトの最小の
組を識別するプロセスを示すフローチャートである。
与のビューから見ることのできるオブジェクトの最小の
組を識別するプロセスを示すフローチャートである。
【図9】本発明の好ましい実施形態に従って描かれた遮
断オブジェクトを選択するプロセスを示すフローチャー
トである。
断オブジェクトを選択するプロセスを示すフローチャー
トである。
【図10】本発明の好ましい実施形態に従って描かれた
オブジェクトの遮断をテストするプロセスを示すフロー
チャートである。
オブジェクトの遮断をテストするプロセスを示すフロー
チャートである。
【図11】本発明の好ましい実施形態に従って描かれた
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
【図12】本発明の好ましい実施形態に従って描かれた
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
【図13】本発明の好ましい実施形態に従って描かれた
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
【図14】本発明の好ましい実施形態に従って描かれた
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
可視オブジェクトを識別するために使用される疑似コー
ドを示す図である。
【図15】本発明の好ましい実施形態に従って描かれた
被遮断オブジェクトを識別するために本発明の遮断選別
プロセスを実行すべきか否かを決定するために使用され
る疑似コードを示す図である。
被遮断オブジェクトを識別するために本発明の遮断選別
プロセスを実行すべきか否かを決定するために使用され
る疑似コードを示す図である。
【図16】本発明の好ましい実施形態に従って描かれた
被遮断オブジェクトを識別するために本発明の遮断選別
プロセスを実行すべきか否かを決定するために使用され
る疑似コードを示す図である。
被遮断オブジェクトを識別するために本発明の遮断選別
プロセスを実行すべきか否かを決定するために使用され
る疑似コードを示す図である。
100 パーソナル・コンピュータ
102 ビデオ表示端末
104 キーボード
106 マウス
108 記憶装置
110 システム・ユニット
200 データ処理システム
202 プロセッサ
204 メイン・メモリ
206 PCIローカル・バス
208 PCIブリッジ
210 ローカル・エリア・ネットワーク(LAN)ア
ダプタ 212 SCSIホスト・バス・アダプタ 214 拡張バス・インタフェース 216 オーディオ・アダプタ 218 グラフィックス・アダプタ 219 オーディオ/ビデオ・アダプタ 220 キーボード及びマウス・アダプタ 222 モデム 224 追加メモリ 226 ハード・ディスク・ドライブ 228 テープ・ドライブ 230 CD−ROMドライブ 300 グラフィックス処理システム 302 処理ユニット 304 ラスタ・エンジン 306 バック・フレーム・バッファ 308 フロント・フレーム・バッファ 400 フラスタム 412 視点 414 近い平面 416 遠い平面 800 疑似コード 900 疑似コード
ダプタ 212 SCSIホスト・バス・アダプタ 214 拡張バス・インタフェース 216 オーディオ・アダプタ 218 グラフィックス・アダプタ 219 オーディオ/ビデオ・アダプタ 220 キーボード及びマウス・アダプタ 222 モデム 224 追加メモリ 226 ハード・ディスク・ドライブ 228 テープ・ドライブ 230 CD−ROMドライブ 300 グラフィックス処理システム 302 処理ユニット 304 ラスタ・エンジン 306 バック・フレーム・バッファ 308 フロント・フレーム・バッファ 400 フラスタム 412 視点 414 近い平面 416 遠い平面 800 疑似コード 900 疑似コード
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 リー・マイケル・グロス
アメリカ合衆国78727 テキサス州、
オースティン、 アレメア・トレース・
サークル 12320 #1009
(56)参考文献 特開 平9−305792(JP,A)
特開 平9−297860(JP,A)
特開 平6−223199(JP,A)
特開 平5−35883(JP,A)
特開 平2−79178(JP,A)
米国特許5945992(US,A)
米国特許5574835(US,A)
(58)調査した分野(Int.Cl.7,DB名)
G06T 15/40 200
JICSTファイル(JOIS)
Claims (24)
- 【請求項1】一組のオブジェクトを含む描画を表示する
データ処理システムにおいて、視点から見えるオブジェ
クトを識別し、該視点から見えるオブジェクトの描画を
表示する方法であって、該方法は、 前記オブジェクトの組のために複数の境界ボックス及び
複雑度データを受け取るステップと、ここで前記境界ボ
ックス及び前記複雑度データは前記オブジェクトの組内
の各オブジェクトに関連づけられ、 複数の前記境界ボックス及び前記複雑度データを使用し
て前記オブジェクトの組内の遮断オブジェクトを選択す
るステップと、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定するステップ
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記遮断オブジェク
トを使用して可視オブジェクトを前記オブジェクトの組
から識別するステップと、 を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、且つ前記可視オブジェクトを前記オブ
ジェクトの組から識別するステップが、前記オブジェク
トの組内のオブジェクトの前記境界ボックスの深度が、
前記遮断オブジェクトのピクセルの深度よりも視点に近
いかどうかを決定することを含む、コンピュータにより
実現される方法。 - 【請求項2】前記可視オブジェクトが識別されたオブジ
ェクトであり、 前記識別されたオブジェクトを表示するステップ を更に含む、請求項1に記載の方法。 - 【請求項3】前記ピクセル深度データが、前記ピクセル
深度データを発生するための低解像度で深度情報を用い
て前記遮断オブジェクトをレンダリングすることによっ
て発生する、請求項1に記載の方法。 - 【請求項4】前記遮断オブジェクトを選択するステップ
が、 前記オブジェクトの組を複雑度によってソートし、 前記オブジェクトの組から、描画の複雑度の設定パーセ
ンテージよりも小さなトータル複雑度を有する或る数の
オブジェクトを選択する ことを含む、請求項1に記載の方法。 - 【請求項5】前記オブジェクトの数が255よりも少な
い、請求項4に記載の方法。 - 【請求項6】前記設定パーセンテージが3.5パーセン
トである、請求項5に記載の方法。 - 【請求項7】前記識別するステップが、前記オブジェク
トの組の中で、全体的な最大可視領域、最も近い深度
値、及び最低複雑度値を有するオブジェクトを識別する ことを含む、請求項1に記載の方法。 - 【請求項8】前記複雑度データが、オブジェクトをレン
ダリングするのに必要な時間を含む、請求項1に記載の
方法。 - 【請求項9】前記選択するステップ、前記残りの部分の
複雑度よりも大きいかどうかを決定するステップ、前記
識別するステップ、及び前記表示するステップを実行す
るために使用される第1の時間量を決定するステップ
と、 前記選択するステップ、前記残りの部分の複雑度よりも
大きいかどうかを決定するステップ及び前記識別するス
テップを実行することなく前記オブジェクトの組を表示
するために使用される第2の時間量を決定するステップ
と、 第1の時間量が第2の時間量よりも大きいことに応答し
て、前記オブジェクトの組を表示するとき、前記選択す
るステップ、前記残りの部分の複雑度よりも大きいかど
うかを決定するステップ及び前記識別するステップの実
行を防止するステップと を更に含む、請求項2に記載の方法。 - 【請求項10】複数のオブジェクトを含むシーンを表示
するデータ処理システムにおいて、視点から見えるオブ
ジェクトを識別し、該視点から見えるオブジェクトのシ
ーンを表示する方法であって、該方法は、 前記複数のオブジェクトのための境界ボックス及び複雑
度データを受け取るステップと、 前記複数のオブジェクトのための前記境界ボックス及び
前記複雑度データを使用し、前記複数のオブジェクトか
ら一組の遮断オブジェクトを選択するステップと、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定するステップ
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記複数のオブジェ
クトから選択されないオブジェクトを、前記遮断オブジ
ェクトの組と比較することによって、可視オブジェクト
を識別するステップと を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、前記可視オブジェクトを識別するステ
ップが、前記境界ボックスの深度が前記遮断オブジェク
トのピクセルの深度よりも視点に近いかどうかを決定す
ることを含む、コンピュータにより実現される方法。 - 【請求項11】前記可視オブジェクトが識別されたオブ
ジェクトであり、 前記識別されたオブジェクトを表示するステップ を更に含む、請求項10に記載の方法。 - 【請求項12】視点から見えるオブジェクトを識別し、
該視点から見えるオブジェクトの描画を表示するデータ
処理システムであって、ここで前記描画は一組のオブジ
ェクトを含み、該データ処理システムは、 前記オブジェクトの組のために複数の境界ボックス及び
複雑度データを受け取る受け取り手段と、ここで前記境
界ボックス及び前記複雑度データを前記オブジェクトの
組内の各オブジェクトに関連づけられ、 複数の前記境界ボックス及び前記複雑度データを使用し
て、前記オブジェクトの組内の遮断オブジェクトを選択
する選択手段と、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定する決定手段
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記オブジェクトの
組から、前記遮断オブジェクトを使用して可視オブジェ
クトを識別する識別手段と を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、且つ前記識別手段により前記可視オブ
ジェクトを識別するステップにおいて、前記オブジェク
トの組内のオブジェクトの境界ボックスの深度が、前記
遮断オブジェクトのピクセルの深度よりも視点に近いか
どうかを決定する決定手段をさらに含む、データ処理シ
ステム。 - 【請求項13】前記可視オブジェクトが識別されたオブ
ジェクトであり、 前記識別されたオブジェクトを表示する表示手段を 更に含む、請求項12に記載のデータ処理システム。 - 【請求項14】前記ピクセル深度データが、ピクセル深
度データを発生するための低解像度で深度情報を用いて
前記遮断オブジェクトをレンダリングすることによって
発生する、請求項12に記載のデータ処理システム。 - 【請求項15】前記遮断オブジェクトを選択する選択手
段が、 前記オブジェクトの組を複雑度によってソートするソー
ト手段と、 前記オブジェクトの組から、描画の複雑度の設定パーセ
ンテージよりも小さいトータル複雑度を有する或る数の
オブジェクトを選択する選択手段と を含む、請求項12に記載のデータ処理システム。 - 【請求項16】前記オブジェクトの数が255より少な
い、請求項15に記載のデータ処理システム。 - 【請求項17】前記設定パーセンテージが3.5パーセ
ントである、請求項15に記載のデータ処理システム。 - 【請求項18】前記識別手段が、 前記オブジェクトの組の中で、全体的な最大可視領域、
最も近い深度値、及び最低複雑度値を有するオブジェク
トを識別する手段を 含む、請求項12に記載のデータ処理システム。 - 【請求項19】前記複雑度データが、オブジェクトをレ
ンダリングするのに必要な時間を含む、請求項12に記
載のデータ処理システム。 - 【請求項20】前記選択手段により前記オブジェクトの
組内の遮断オブジェクトを選択するステップ、前記残り
の部分の複雑度の合計よりも大きいかどうかを決定する
決定手段により前記遮断オブジェクトの複雑度の合計が
前記残りの部分の複雑度の合計よりも大きいかどうかを
決定するステップ、前記識別手段により前記可視オブジ
ェクトを識別するステップ、及び前記表示手段により前
記識別されたオブジェクトを表示するステップを実行す
るために使用される第1の時間量を決定する第1の決定
手段と、 前記選択するステップ、前記残りの部分の複雑度の合計
よりも大きいかどうかを決定するステップ、及び前記識
別するステップを実行することなく前記オブジェクトの
組を表示するために使用される第2の時間量を決定する
第2の決定手段と、 前記第1の時間量が前記第2の時間量よりも大きいこと
に応答して、前記オブジェクトの組を表示するとき前記
選択するステップ、前記残りの部分の複雑度の合計より
も大きいかどうかを決定するステップ及び前記識別する
ステップの実行を防止する防止手段と を更に含む、請求項13に記載のデータ処理システム。 - 【請求項21】視点から見えるオブジェクトを識別し、
該視点から見えるオブジェクトのシーンを表示するデー
タ処理システムであって、ここで前記シーンは複数のオ
ブジェクトを含み、該データ処理システムは、 前記複数のオブジェクトのための境界ボックス及び複雑
度データを受け取る受け取り手段と、 前記複数のオブジェクトのための前記境界ボックス及び
前記複雑度データを使用し、前記複数のオブジェクトか
ら一組の遮断オブジェクトを選択する選択手段と、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定する決定手段
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記複数のオブジェ
クトから選択されないオブジェクトを、前記遮断オブジ
ェクトの組と比較することによって、可視オブジェクト
を識別する識別手段と を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、前記識別手段により前記可視オブジェ
クトを識別するステップにおいて、前記境界ボックスの
深度が、遮断オブジェクトのピクセルの深度よりも視点
に近いかどうかを決定する決定手段をさらに含むデータ
処理システム。 - 【請求項22】前記可視オブジェクトが識別されたオブ
ジェクトであり、 前記識別されたオブジェクトを表示するステップ を更に含む、請求項21に記載のデータ処理システム。 - 【請求項23】視点から見えるオブジェクトを識別し、
該視点から見えるオブジェクトの描画を表示するため
の、コンピュータ読み取り可能なコンピュータ・プログ
ラムが記憶された記憶媒体であって、ここで前記描画は
一組のオブジェクトを含み、該コンピュータ・プログラ
ムは、 前記オブジェクトの組のために複数の境界ボックス及び
複雑度データを受け取る第1の命令と、ここで前記境界
ボックス及び前記複雑度データは、前記オブジェクトの
組の中の各オブジェクトに関連づけられ、 複数の前記境界ボックス及び前記複雑度データを使用し
て前記オブジェクトの組の中の遮断オブジェクトを選択
する第2の命令と、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定する第3の命令
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記オブジェクトの
組から、前記遮断オブジェクトを使用して可視オブジェ
クトを識別する第4の命令と を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、前記可視オブジェクトを識別する第4
の命令が、前記境界ボックスの深度が前記遮断オブジェ
クトのピクセルの深度よりも視点に近いかどうかを決定
することを含む記憶媒体。 - 【請求項24】視点から見えるオブジェクトを識別し、
該視点から見えるオブジェクトの描画を表示するため
の、コンピュータ読み取り可能なコンピュータ・プログ
ラムが記憶された記憶媒体であって、ここで前記シーン
は複数のオブジェクトを含み、該コンピュータ・プログ
ラムは、 前記複数のオブジェクトのための境界ボックス及び複雑
度データを受け取る第1の命令と、 前記複数のオブジェクトのための前記境界ボックス及び
前記複雑度データを使用し、前記複数のオブジェクトか
ら一組の遮断オブジェクトを選択する第2の命令と、前記遮断オブジェクトの複雑度の合計が残りの部分の複
雑度の合計よりも大きいかどうかを決定する第3の命令
と、 前記遮断オブジェクトの複雑度の合計が前記残りの部分
の複雑度の合計より小さい場合に、 前記複数のオブジェ
クトから選択されないオブジェクトを、前記遮断オブジ
ェクトの組と比較することによって、可視オブジェクト
を識別する第4の命令と を含み、ピクセル深度データが各前記遮断オブジェクト
に関連づけられ、前記 可視オブジェクトを識別する第4
の命令が、前記境界ボックスの深度が前記遮断オブジェ
クトのピクセルの深度よりも視点に近いかどうかを決定
することを含む記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/321,787 US6603474B1 (en) | 1999-05-27 | 1999-05-27 | Method and apparatus for occlusion culling of objects in a data processing system |
US09/321787 | 1999-05-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001022952A JP2001022952A (ja) | 2001-01-26 |
JP3409314B2 true JP3409314B2 (ja) | 2003-05-26 |
Family
ID=23252026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000148191A Expired - Fee Related JP3409314B2 (ja) | 1999-05-27 | 2000-05-19 | 描画を表示する方法及びデータ処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6603474B1 (ja) |
JP (1) | JP3409314B2 (ja) |
CA (1) | CA2303733A1 (ja) |
GB (1) | GB2354926B (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7061494B1 (en) * | 2000-04-20 | 2006-06-13 | International Business Machines Corporation | Method and apparatus for hardware optimization of graphics pipeline functions |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
WO2002052507A1 (en) * | 2000-12-22 | 2002-07-04 | Koninklijke Philips Electronics N.V. | Stereoscopic viewing of a region between clipping planes |
JP3490983B2 (ja) * | 2001-05-30 | 2004-01-26 | コナミ株式会社 | 画像処理方法及び画像処理用プログラム |
JP4763939B2 (ja) * | 2001-09-14 | 2011-08-31 | 株式会社バンダイナムコゲームス | プログラム、情報処理装置、データ生成方法、情報記憶媒体、およびゲーム装置 |
JP3794681B2 (ja) * | 2001-11-29 | 2006-07-05 | 株式会社スクウェア・エニックス | ビデオゲーム処理方法及びビデオゲーム処理装置及びビデオゲームのプログラム及びビデオゲームのプログラムを記録した記録媒体 |
US7697006B2 (en) * | 2003-04-30 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Enhanced performance display lists |
US7218331B2 (en) * | 2003-05-13 | 2007-05-15 | Via Technologies, Inc. | Bounding box in 3D graphics |
KR100546383B1 (ko) * | 2003-09-29 | 2006-01-26 | 삼성전자주식회사 | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 |
DE102004062361A1 (de) * | 2004-12-10 | 2006-06-22 | Cocreate Software Gmbh & Co. Kg | Verfahren zur Ableitung von technischen Zeichungen aus 3D Modellen mit mindestens zwei kollidierenden 3D Körpern |
US8633927B2 (en) | 2006-07-25 | 2014-01-21 | Nvidia Corporation | Re-render acceleration of frame with lighting change |
US8200011B2 (en) * | 2007-09-27 | 2012-06-12 | Behavioral Recognition Systems, Inc. | Context processor for video analysis system |
GB0810205D0 (en) | 2008-06-04 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
US8441496B1 (en) | 2008-09-30 | 2013-05-14 | Adobe Systems Incorporated | Method and system for modifying and rendering scenes via display lists |
EP2616954B1 (en) * | 2010-09-18 | 2021-03-31 | Google LLC | A method and mechanism for rendering graphics remotely |
US9542975B2 (en) * | 2010-10-25 | 2017-01-10 | Sony Interactive Entertainment Inc. | Centralized database for 3-D and other information in videos |
EP3714432A1 (en) * | 2017-11-24 | 2020-09-30 | Google LLC | Smoothed normals from depth maps for normal-based texture blending |
US10719971B2 (en) * | 2018-05-25 | 2020-07-21 | Microsoft Technology Licensing, Llc | Low resolution depth pre-pass |
CN112686992A (zh) * | 2021-01-12 | 2021-04-20 | 北京知优科技有限公司 | 用于智慧城市occ树的几何图形视锥体实现方法、装置及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901252A (en) * | 1984-07-13 | 1990-02-13 | International Business Machines Corporation | Method for producing planar geometric projection images |
JPH0279178A (ja) | 1988-09-16 | 1990-03-19 | Hitachi Ltd | 隠面消去方式 |
US5777608A (en) | 1989-03-10 | 1998-07-07 | Board Of Regents, The University Of Texas System | Apparatus and method for in-parallel scan-line graphics rendering using content-searchable memories |
JPH0535883A (ja) | 1991-07-30 | 1993-02-12 | Matsushita Electric Ind Co Ltd | 三次元画像生成方法 |
GB2259432A (en) | 1991-09-06 | 1993-03-10 | Canon Res Ct Europe Ltd | Three dimensional graphics processing |
JP2763481B2 (ja) | 1992-08-26 | 1998-06-11 | 株式会社ナムコ | 画像合成装置及び画像合成方法 |
US5574835A (en) | 1993-04-06 | 1996-11-12 | Silicon Engines, Inc. | Bounding box and projections detection of hidden polygons in three-dimensional spatial databases |
GB2284526B (en) | 1993-06-10 | 1997-12-10 | Namco Ltd | An image synthesizing system and a game playing apparatus using the same |
US5798762A (en) | 1995-05-10 | 1998-08-25 | Cagent Technologies, Inc. | Controlling a real-time rendering engine using a list-based control mechanism |
US5870097A (en) * | 1995-08-04 | 1999-02-09 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
US5808617A (en) | 1995-08-04 | 1998-09-15 | Microsoft Corporation | Method and system for depth complexity reduction in a graphics rendering system |
JPH09297860A (ja) | 1996-05-08 | 1997-11-18 | Sharp Corp | 三次元画像生成装置 |
JPH09305792A (ja) | 1996-05-17 | 1997-11-28 | Sony Corp | 隠面処理方法 |
US5945992A (en) | 1996-05-29 | 1999-08-31 | Hewlett Packard Company | Multilevel, client-server, large model traverser |
US5751291A (en) | 1996-07-26 | 1998-05-12 | Hewlett-Packard Company | System and method for accelerated occlusion culling |
US6111582A (en) * | 1996-12-20 | 2000-08-29 | Jenkins; Barry L. | System and method of image generation and encoding using primitive reprojection |
-
1999
- 1999-05-27 US US09/321,787 patent/US6603474B1/en not_active Expired - Fee Related
-
2000
- 2000-04-05 CA CA002303733A patent/CA2303733A1/en not_active Abandoned
- 2000-05-19 JP JP2000148191A patent/JP3409314B2/ja not_active Expired - Fee Related
- 2000-05-26 GB GB0012750A patent/GB2354926B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6603474B1 (en) | 2003-08-05 |
GB2354926A (en) | 2001-04-04 |
CA2303733A1 (en) | 2000-11-27 |
JP2001022952A (ja) | 2001-01-26 |
GB2354926B (en) | 2003-09-10 |
GB0012750D0 (en) | 2000-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3409314B2 (ja) | 描画を表示する方法及びデータ処理システム | |
US6525726B1 (en) | Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture | |
US7307628B1 (en) | Diamond culling of small primitives | |
US6018347A (en) | Methods and apparatus for rendering three-dimensional images | |
US7292242B1 (en) | Clipping with addition of vertices to existing primitives | |
US8013857B2 (en) | Method for hybrid rasterization and raytracing with consistent programmable shading | |
US6636215B1 (en) | Hardware-assisted z-pyramid creation for host-based occlusion culling | |
US6259461B1 (en) | System and method for accelerating the rendering of graphics in a multi-pass rendering environment | |
US5249264A (en) | Image display method and apparatus | |
US8184118B2 (en) | Depth operations | |
Bartz et al. | Extending graphics hardware for occlusion queries in OpenGL | |
US20040075654A1 (en) | 3-D digital image processor and method for visibility processing for use in the same | |
US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
JP4977712B2 (ja) | ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法 | |
US8184117B2 (en) | Stencil operations | |
KR101050985B1 (ko) | 오브젝트 공간에서 사용자 정의 클립핑을 수행하는 방법 및 디바이스 | |
US10853994B1 (en) | Rendering scenes using a combination of raytracing and rasterization | |
US8416260B1 (en) | Sigma buffer for rendering small objects | |
EP0548629A2 (en) | Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers | |
US10115221B2 (en) | Stencil compression operations | |
JPH09500462A (ja) | 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム | |
KR20230073222A (ko) | 깊이 버퍼 프리-패스 | |
US6567098B1 (en) | Method and apparatus in a data processing system for full scene anti-aliasing | |
US20190325639A1 (en) | Compact visibility state for gpus compatible with hardware instancing | |
EP0612027B1 (en) | Image processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090320 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100320 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110320 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110320 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |