(57)【要約】      （修正有）【課題】アンビエント・オクルージョンを使用する写実的画像処理のための方法、コンピュータ・プログラム及びシステムを提供する。【解決手段】シーン形状モデル及びオブジェクトを記述する複数のピクセル・データを含む、シーン・モデル・データを受け取る（５０５）。第１のピクセル・データを選択し、１次ピクセル色及び１次レイを生成する（５１５，５２０）。１次レイが交差したオブジェクト及び交点Ｐに基づき、表面法線Ｎ及び１次ヒット色を決定し、１次ピクセル色を修正する。交点Ｐ及び表面法線Ｎに基づき、アンビエント・オクルージョン（ＡＯ）レイを生成する。各ＡＯレイ毎に、当該ＡＯレイの方向Ｄを逆転させ、当該ＡＯレイの原点Ｏをシーンの外部の点にセットする。もし、点Ｐに到達する前に、一のＡＯレイが一のオブジェクトと交差しなければ、当該ＡＯレイを、ＡＯ計算に組み込み、評価し、１次ピクセル色の修正を行い、一の画像を生成する。【選択図】図５
2010134919.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するための方法であって、
シーン形状モデル及びシーン内に配置されたオブジェクトを記述する複数のピクセル・データを含む、シーン・モデル・データを受け取るステップと、
前記複数のピクセル・データのうち第１のピクセル・データを選択するステップと、
前記第１のピクセル・データに基づき、１次ピクセル色を生成するステップと、
前記第１のピクセル・データに基づき、１次レイを生成するステップと、
前記１次レイが前記シーン内のオブジェクトと交差するか否かを決定するステップと、
前記１次レイが前記シーン内のオブジェクトと交差する場合は、交点Ｐを決定するステップと、
前記交差したオブジェクト及び前記交点Ｐに基づき、表面法線Ｎを決定するステップと、
前記交点Ｐに基づき、１次ヒット色を決定するステップと、
前記１次ヒット色に基づき、前記１次ピクセル色を修正するステップと、
前記交点Ｐ及び前記表面法線Ｎに基づき、各々が一の方向Ｄを有する複数のアンビエント・オクルージョン（ＡＯ）レイを生成するステップと、
各ＡＯレイごとに、当該ＡＯレイの方向Ｄを逆転させ且つ当該ＡＯレイの原点Ｏを前記シーンの外部の点にセットするステップと、
各ＡＯレイを、当該ＡＯレイの原点から前記交点Ｐに向かうように前記シーン内へ進行させるステップと、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差する場合は、当該ＡＯレイをアンビエント・オクルージョン計算から除外するステップと、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差しない場合は、当該ＡＯレイをアンビエント・オクルージョン計算に組み込むステップと、
組み込まれたＡＯレイに基づき、アンビエント・オクルージョンを評価するステップと、
前記アンビエント・オクルージョン及び前記１次ヒット色に基づき、前記１次ピクセル色のシェーディングを行うステップと、
前記ピクセル・データ用の前記１次ピクセル色に基づき、一の画像を生成するステップとを含む、方法。
【請求項２】
各ＡＯレイごとに最大トラバーサル距離をセットするステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記トラバーサル距離が、前記ＡＯレイの原点と前記交点Ｐの間の距離である、請求項２に記載の方法。
【請求項４】
前記シーン形状モデルを、複数のノードを含む階層的加速構造（ＨＡＳ）へ編成するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記ＨＡＳがｋｄツリーである、請求項４に記載の方法。
【請求項６】
前記ＨＡＳがバウンディング・ボリューム階層である、請求項４に記載の方法。
【請求項７】
各ＡＯレイを進行させる前記ステップが、前記ＨＡＳをノードからノードへトラバースするステップを含む、請求項４に記載の方法。
【請求項８】
前記複数のＡＯレイをパケットへグループ化するステップをさらに含む、請求項１に記載の方法。
【請求項９】
画像を生成するためのプログラムであって、
シーン形状モデル及びシーン内に配置されたオブジェクトを記述する複数のピクセル・データを含む、シーン・モデル・データを受け取るステップと、
前記複数のピクセル・データのうち第１のピクセル・データを選択するステップと、
前記第１のピクセル・データに基づき、１次ピクセル色を生成するステップと、
前記第１のピクセル・データに基づき、１次レイを生成するステップと、
前記１次レイが前記シーン内のオブジェクトと交差するか否かを決定するステップと、
前記１次レイが前記シーン内のオブジェクトと交差する場合は、交点Ｐを決定するステップと、
前記交差したオブジェクト及び前記交点Ｐに基づき、表面法線Ｎを決定するステップと、
前記交点Ｐに基づき、１次ヒット色を決定するステップと、
前記１次ヒット色に基づき、前記１次ピクセル色を修正するステップと、
前記交点Ｐ及び前記表面法線Ｎに基づき、各々が一の方向Ｄを有する複数のアンビエント・オクルージョン（ＡＯ）レイを生成するステップと、
各ＡＯレイごとに、当該ＡＯレイの方向Ｄを逆転させ且つ当該ＡＯレイの原点Ｏを前記シーンの外部の点にセットするステップと、
各ＡＯレイを、当該ＡＯレイの原点から前記交点Ｐに向かうように前記シーン内へ進行させるステップと、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差する場合は、当該ＡＯレイをアンビエント・オクルージョン計算から除外するステップと、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差しない場合は、当該ＡＯレイをアンビエント・オクルージョン計算に組み込むステップと、
組み込まれたＡＯレイに基づき、アンビエント・オクルージョンを評価するステップと、
前記アンビエント・オクルージョン及び前記１次ヒット色に基づき、前記１次ピクセル色のシェーディングを行うステップと、
前記ピクセル・データ用の前記１次ピクセル色に基づき、一の画像を生成するステップと
、
をプロセッサに実行させるプログラム。
【請求項１０】
画像を生成するためのシステムであって、
ディスプレイ・サブシステムに結合された画像ディスプレイと、
前記ディスプレイ・サブシステムに結合されたプロセッサとを備え、
前記プロセッサが、
シーン形状モデル及びシーン内に配置されたオブジェクトを記述する複数のピクセル・データを含む、シーン・モデル・データを受け取り、
前記複数のピクセル・データのうち第１のピクセル・データを選択し、
前記第１のピクセル・データに基づき、１次ピクセル色を生成し、
前記第１のピクセル・データに基づき、１次レイを生成し、
前記１次レイが前記シーン内のオブジェクトと交差するか否かを決定し、
前記１次レイが前記シーン内のオブジェクトと交差する場合は、交点Ｐを決定し、
前記交差したオブジェクト及び前記交点Ｐに基づき、表面法線Ｎを決定し、
前記交点Ｐに基づき、１次ヒット色を決定し、
前記１次ヒット色に基づき、前記１次ピクセル色を修正し、
前記交点Ｐ及び前記表面法線Ｎに基づき、各々が一の方向Ｄを有する複数のアンビエント・オクルージョン（ＡＯ）レイを生成し、
各ＡＯレイごとに、当該ＡＯレイの方向Ｄを逆転させ且つ当該ＡＯレイの原点Ｏを前記シーンの外部の点にセットし、
各ＡＯレイを、当該ＡＯレイの原点から前記交点Ｐに向かうように前記シーン内へ進行させ、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差する場合は、当該ＡＯレイをアンビエント・オクルージョン計算から除外し、
前記交点Ｐに到達する前に一のＡＯレイが一のオブジェクトと交差しない場合は、当該ＡＯレイをアンビエント・オクルージョン計算に組み込み、
組み込まれたＡＯレイに基づき、アンビエント・オクルージョンを評価し、
前記アンビエント・オクルージョン及び前記１次ヒット色に基づき、前記１次ピクセル色のシェーディングを行い、
前記ピクセル・データ用の前記１次ピクセル色に基づき、一の画像を生成するように構成される、システム。
【請求項１１】
前記プロセッサが、各ＡＯレイごとに最大トラバーサル距離をセットするようにさらに構成される、請求項１０に記載のシステム。
【請求項１２】
前記プロセッサが、前記シーン形状モデルを、複数のノードを含む階層的加速構造（ＨＡＳ）へ編成するようにさらに構成される、請求項１０に記載のシステム。
【請求項１３】
各ＡＯレイを進行させることが、前記ＨＡＳをノードからノードへトラバースすることを含む、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・グラフィックス及び写実的画像（Ｐｈｏｔｏｒｅａｌｉｓｔｉｃ  ｉｍａｇｅ）の生成に係り、さらに詳細に説明すれば、アンビエント・オクルージョン（ambient occlusion：略称「ＡＯ」）を使用する改良された写実的画像処理のためのシステム及び方法に係る。
【背景技術】
【０００２】
現代のコンピュータ・グラフィックス・システム及び方法は、ビデオ・ゲーム、フライト及び他のシミュレーション、動画及び他の多数のアプリケーションを含む、種々のアプリケーションにおいて使用するための高品質の画像を描画するように設計された種々の技術を含む。例えば、アニメーション・スタジオについては、今やレイ・トレーシング及び大域照明技術が、動画の製作及び特殊効果に不可欠な役割を果たしている。
【０００３】
１つの共通アプローチは、レイ（ｒａｙ）の階層的グループ又は「パケット」を使用し、これを階層的加速構造（ＨＡＳ：ｈｉｅｒａｒｃｈｉｃａｌ  ａｃｃｅｌｅｒａｔｉｏｎ  ｓｔｒｕｃｔｕｒｅ）に対してテストすることにより、例えば、観測点に到達しない形状のサブセットを考察の対象から除外できるようにすることである。通常のアプローチは、理論上は効率的であるが、アンビエント・オクルージョン（ＡＯ）レイのキャスティングは、しばしばキャッシュ及びローカル・ストアに著しい負担をかけ、不要な作業量を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、通常のシステム及び方法に関連する問題及び不都合のうちの少なくとも幾つかに対処する、写実的画像処理のためのシステム及び方法が要請されている。
【課題を解決するための手段】
【０００５】
以下の要約は、本明細書に開示した実施形態に特有の新規な特徴のうちの幾つかの理解を容易にするために提供するものであって、これが完全な記述であることを意図していない。実施形態の種々の側面を十分に理解するためには、本明細書、請求項、図面及び要約書を全体として参照されたい。
【０００６】
１つの実施形態では、シーン形状モデル及びシーン内に配置したオブジェクトを記述する複数のピクセル・データを含む、シーン・モデル・データを受け取る。複数のピクセル・データのうち第１のピクセル・データを選択する。第１のピクセル・データに基づき、１次ピクセル色及び１次レイを生成する。もし、１次レイがシーン内のオブジェクトと交差すれば、交点Ｐを決定する。交差したオブジェクト及び交点Ｐに基づき、表面法線Ｎを決定する。交点Ｐに基づき、１次ヒット色を決定する。１次ヒット色に基づき、１次ピクセル色を修正する。交点Ｐ及び表面法線Ｎに基づき、各々が一の方向Ｄを有する複数のアンビエント・オクルージョン（ＡＯ）レイを生成する。各ＡＯレイごとに、当該ＡＯレイの方向Ｄを逆転させ且つ当該ＡＯレイの原点Ｏをシーンの外部の点にセットする。各ＡＯレイを、その原点から交点Ｐに向かうようにシーン内へ進行させる。もし、交点Ｐに到達する前に、一のＡＯレイが一のオブジェクトと交差すれば、当該ＡＯレイをアンビエント・オクルージョン計算から除外する。もし、交点Ｐに到達する前に、一のＡＯレイが一のオブジェクトと交差しなければ、当該ＡＯレイをアンビエント・オクルージョン計算に組み込む。組み込まれたＡＯレイに基づき、アンビエント・オクルージョンを評価する。アンビエント・オクルージョン及び１次ヒット色に基づき、１次ピクセル色のシェーディングを行い、ピクセル・データ用の１次ピクセル色に基づき、一の画像を生成する。
【発明の効果】
【０００７】
本発明は、他の方法及びシステムと比較して、多数の利点を提供する。例えば、本明細書に開示したグラフィック・エンジンは、制限されたローカル・ストレージを有するシステムにおいてさえ、改良されたレイ・トレーシング性能を提供することができる。また、本明細書に開示した実施形態は、所望の写実的品質の要件及びグラフィック・エンジンを具体化するために使用される特定のシステムに適合するようにスケーラブルな、アンビエント・オクルージョン性能を改良する。
【図面の簡単な説明】
【０００８】
【図１】推奨実施形態に従った、コンピュータ・グラフィックス・システムを示すブロック図である。
【図２】推奨実施形態に従った、例示的なシーン内の１次レイのキャスティングを示すブロック図である。
【図３】推奨実施形態に従った、例示的なシーン内のアンビエント・オクルージョン・レイを示すブロック図である。
【図４】推奨実施形態に従った、例示的なシーン内のアンビエント・オクルージョンに対する改良されたアプローチの例を示すブロック図である。
【図５】推奨実施形態に従って実装することができる、改良されたアンビエント・オクルージョン方法の論理的な動作ステップを示す高水準のフローチャートである。
【図６】推奨実施形態に従って実装することができる、改良されたアンビエント・オクルージョン方法の論理的な動作ステップを示す高水準のフローチャートである。
【図７】推奨実施形態に従って実装することができる、改良されたアンビエント・オクルージョン方法の論理的な動作ステップを示す高水準のフローチャートである。
【図８】１つ以上の推奨実施形態を具体化するように構成することができる、例示的なコンピュータ・システムを示すブロック図である。
【発明を実施するための形態】
【０００９】
これらの非制限的な例で説明する特定の値及び構成は、変更することが可能であって、少なくとも１つの実施形態を説明するためにのみ引用され、本発明の範囲を制限することを意図していない。
【００１０】
以下の説明では、本発明を完全に理解することができるように、多数の詳細事項を記述する。しかし、本発明は、そのような詳細事項なしでも実施することができる。他の場合には、不要な詳細事項を開示することによって本発明を不明瞭にしないように、周知の要素をブロック図等の形式で例示した。さらに、殆どの部分については、ネットワーク通信、電気−磁気シグナリング技術、ユーザ・インタフェース又は入力／出力技術等に関する詳細事項を省略した。というのは、そのような詳細事項は、本発明を完全に理解するのに必要であるとは考えられず、当分野では周知であると考えられるからである。
【００１１】
本発明は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）又はハードウェア及びソフトウェアの両側面を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明は、任意の有形的媒体内にコンピュータ使用可能プログラム・コードを具体化した、コンピュータ・プログラムの形式を取ることができる。
【００１２】
１つ以上のコンピュータ使用可能又はコンピュータ可読媒体の任意の組み合わせを使用することができる。例えば、コンピュータ使用可能又はコンピュータ可読媒体は、電子、磁気、光学、電磁気、赤外線又は半導体式のシステム（若しくは装置）又は伝送媒体とすることができる。コンピュータ可読媒体のより特殊な例は、１つ以上の線を有する電気的な接続、フレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、読み取り専用のＣＤ−ＲＯＭ、光ストレージ装置、インターネット又はイントラネットをサポートする伝送媒体、磁気ストレージ装置等を含むであろう。さらに、コンピュータ使用可能媒体又はコンピュータ可読媒体を、紙又は他の適切な媒体とすることもできる。すなわち、紙又は他の適切な媒体上に印刷されたプログラムを、例えば、光学式スキャンを介して捕捉し、コンパイルし、解釈し、又は必要に応じて適宜処理した後、その結果をコンピュータ・メモリに格納することができるからである。本明細書の文脈では、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持し、格納し、通信し、伝搬し、移送することができる、任意の媒体とすることができる。コンピュータ使用可能媒体は、伝搬されるデータ信号の形式を有することもできるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化することができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等を含む、適切な任意の媒体を使用して伝送することができる。
【００１３】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語のような通常の手続き的プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書くことができる。このプログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行することができ、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、或いは遠隔コンピュータ又はサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を（例えば、インターネット・サービス・プロバイダを使用するインターネットを通して）外部コンピュータに行うことができる。
【００１４】
以下では、本発明の実施形態に従った、方法、装置（システム）及びコンピュータ・プログラムのフローチャート又はブロック図を参照して、本発明を説明する。これらのフローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能を実装するための手段を作成することを目的として、一のマシンを生産することができる。
【００１５】
また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された諸命令が、フローチャート又はブロック図のブロックで指定された機能を実装する命令手段を含む製品を生産することを目的として、コンピュータ又は他のプログラム可能なデータ処理装置に対し特定の態様で機能するように指示することができる。
【００１６】
また、これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置にロードすると、当該コンピュータ又は他のプログラム可能なデータ処理装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能を実装するためのプロセスを提供することを目的として、一のコンピュータ実装方法を生成するように当該コンピュータ又は他のプログラム可能なデータ処理装置上で一連の動作ステップを実行させることができる。
【００１７】
プログラム・コードを格納及び／又は実行するのに適したデータ処理システムは、システム・バスを通してメモリ要素に直接的又は間接的に接続された少なくとも１つのプロセッサを含む。これらのメモリ要素は、プログラム・コードの実行中に使用されるローカル・メモリ、バルク記憶装置、プログラム・コードの実行中にバルク記憶装置からの検索回数を減少させるために少なくとも或るプログラム・コードの一時的記憶領域を提供するキャッシュ・メモリを含むことができる。
【００１８】
Ｉ／Ｏ装置（キーボード、ディスプレイ、ポインティング装置等を含む）は、システムに対し直接的に又は介在するＩ／Ｏコントローラを通して結合することができる。また、ネットワーク・アダプタをデータ処理システムに対し結合することもできる。そのようにすると、当該データ処理システムは、介在する専用又は公衆ネットワークを通して、他のデータ処理システム、遠隔プリンタ又はストレージに結合されるようになる。ネットワーク・アダプタの例には、モデム、ケーブル・モデム及びイーサネット（登録商標）・カード等がある。
【００１９】
以下、図面を参照して説明する。図１は、本発明の推奨実施形態に従った、アンビエント・オクルージョンを使用する改良された写実的画像処理のためのシステム１００の幾つかのコンポーネントを示す高水準のブロック図である。一般に、システム１００は、アンビエント・オクルージョンを使用して、写実的画像処理を実行し、グラフィック・エンジン１０２を含む。
【００２０】
例えば、多数の写実的画像処理技術は、光の想像上のレイが光源からシーンを通して進行する際のパスをトレースすることに注目する。「レイ・キャスティング」では、シーン内の各ピクセルごとに、グラフィックス・システムは、選択された観測点からシーンを通して選択された光源に進行する想像上のレイをトレースし、当該レイが光源に進行する途中でシーン内のオブジェクトと交差するか否かに基づき、ピクセル色、シェーディング及び他の要因を更新する。このように、グラフィックス・システムは、シーン内のオブジェクトが観測点に対し可視的である（可視性）か否か、そして光源から到来する光が当該オブジェクトに当たることをシーン内の他のオブジェクトが阻止する（直接シャドウ）か否を速やかに決定することができる。そのため、グラフィックス・システムは、３次元シーンを、例えばコンピュータのスクリーンに適切な２次元画像に描画することができる。本明細書において、「レイ・キャスティング」は、可視性及び直接シャドウの計算のためにレイをトレースすることを意味する。
【００２１】
「レイ・トレーシング」、特にWhitted-style のレイ・トレーシングでは、トレース中のレイがシーン内のオブジェクトと交差する場合、グラフィックス・システムは、３つの追加のタイプのレイ（すなわち、その原点がトレース中のレイとオブジェクトの交点である「２次レイ」、反射レイ、屈折レイ及びシャドウ・レイ）の１つ以上を生成する。「反射」レイは、交点から元のレイの正反射パスの方向に進行する。もし、反射レイが他のオブジェクトと交差すれば、当該反射されたオブジェクトは、最初のオブジェクト上に当該反射されたオブジェクトのミラー画像を示すことによって、交点を表すピクセルに影響する。
【００２２】
もし、元のトレース中のレイが透明オブジェクトと交差すれば、「屈折」レイは、交点から元のレイの屈折パスの方向に進行し、当該オブジェクトを通して進行することができる。もし、屈折レイが他のオブジェクトと交差すれば、グラフィックス・システムは、交点を表すピクセルを更新する。もし、当該オブジェクトが光源と向かい合っていれば、「シャドウ」レイは、交点から光源への直線パスをトレースする。もし、シャドウ・レイが不透明オブジェクトと交差すれば、当該不透明オブジェクトは、光源から交点に到来する光を阻止し、その結果、グラフィックス・システムは、交点を表すピクセルを更新する。
【００２３】
Whitted-styleの２次レイに加えて、代表的なグラフィックス・システムは、描画されるシーンの写実性を強化するために、他の多数のシーン操作を実行することができる。例えば、「大域照明」（シーンに対し間接照明効果を追加する技術の総称）は、シーン照明の現実性を改良することにより、シーンに対し追加的な現実性を加える。大域照明技術は資源集約的であることが多いので、幾つかの代表的なグラフィックス・システムは、大域照明をシミュレートするためにアンビエント・オクルージョンを使用する。一般に、通常の「アンビエント・オクルージョン」は、１次及び２次の交点から複数のレイをキャストし、他のオブジェクト及び表面と交差するサンプル・レイの数に基づき、カバレッジ比率を計算する。
【００２４】
アンビエント・オクルージョン及びレイ・トレーシングの２次レイは、レイ・キャスティングにおいて利用可能でない詳細事項を追加し、その結果、より写実的な画像に帰着する。しかし、これらの追加レイは、追加的な計算及びストレージ資源を必要とする。そのような追加的な計算及びストレージの要件は、対話型のレイ・トレーシングをしばしば非実用的又は不可能にした。本明細書に開示する新規な実施形態は、これらの制限のうちの幾つかを克服する。
【００２５】
以下で詳述するように、システム１００は、レイの階層的グループ又は「パケット」を使用し、これを階層的加速構造（ＨＡＳ）に対してテストすることにより、例えば、観測点に到達しない形状のサブセットを考察の対象から除外するように構成することができる。一般に、ＨＡＳは、或る順序で配列された複数のノードから構成されるデータ構造であり、シーン形状に関する情報を保持するために使用される。そのような情報は、特に、特定のレイ・パスがシーン内のオブジェクトと交差するか否かを評価するために使用することができる。例示的なＨＡＳは、ユニフォーム・グリッド、バイナリ・ツリー、ｋｄツリー、オクトツリー及びバウンディング・ボリューム階層（ＢＶＨ）を含む。レイの階層的パケットを使用し且つ加速構造を通してこれらのパケットをトラバースすると、容認可能な精度を維持しつつ、必要とされる動作の数を著しく減少させることができる。
【００２６】
実際には、アンビエント・オクルージョン積分を解決するのに有用な種々の代表的な技術が存在する。最も直截的なアプローチの１つは、交点Ｐからレイをキャストするためにモンテカルロ又はサンプリング方法を使用することにより、交点Ｐにおける可視性関数を近似し、次いでシーン形状内の他のオブジェクトとの交差をテストするというものである。交点Ｐにおけるアンビエント露出は、交差しなかったアンビエント・レイの数を、キャストされたレイの総数で除算することによって評価される。
【００２７】
ＨＡＳの代表的な効率的実装は、３次元シーンを前方から後方に、交点からシーン境界又はオブジェクト交点へトラバースすることにより、アンビエント・オクルージョン（ＡＯ）レイを３次元シーンと交差させ、その結果、遮蔽される加速構造の部分の不要なトラバーサルを回避することができる。例えば、１つのアプローチでは、当該階層内の各レベルは、当該レベルにおける子ノードのための最大間隔の次元を格納する。実行時には、グラフィック・エンジンは、最大間隔をレイ方向と組み合わせることにより、最初に訪れるべき子ノードを選択する。
【００２８】
通常のアプローチは、理論上は効率的であるが、交点ＰからのＡＯレイのキャスティングは、しばしばキャッシュ及びローカル・ストアに著しい負担をかけ、不要な作業量を必要とする。特に、交点Ｐがシーン内に存在し、そして前方から後方へのトラバーサルの性質のために、ＡＯレイが交点Ｐの前にあるシーン形状との交差を開始することができる前に、グラフィック・エンジンが、ＨＡＳの遮蔽された部分を調べることがあり得る。従って、以下で詳述するように、システム１００は、キャッシュ及びローカル・ストアに関する負担を減少させつつ、ＨＡＳをトラバースするための機構を提供する。
【００２９】
広義には、システム１００が提供するグラフィックス・システムは、特定シーンのための写実的アンビエント・オクルージョン・レベルを当該グラフィックス・システムによって決定するプロセスを改良することを通して、写実的画像処理の品質を著しく改良する。本明細書に開示した実施形態は、一般的には、レイ・トレーシングの性能を改良し、具体的には、アンビエント・オクルージョン操作を改良する。さらに、本明細書に開示した新規なグラフィック・エンジン及び実施形態は、制限されたローカル・ストレージを有するシステムにおいてさえ、レイ・トレーシングの性能を改良することができる。従って、本明細書に開示した実施形態は、ハイエンド・システム上の性能を改良し、そして当該実施形態がなければグラフィックス・ハードウェアの能力を超えるであろうグラフィックス動作の容認可能な性能を使用可能にすることができる。
【００３０】
具体的には、グラフィック・エンジン１０２は、シーン・モデル入力１０４を受け取り、これを処理して複数のピクセル色データ及び他の情報を生成する。グラフィック・エンジン１０２は、生成された情報をディスプレイ・サブシステム１０６へ渡し、当該サブシステム１０６は、生成された情報を使用してディスプレイ１０８上に画像を表示する。代表的なシーン・モデル入力１０４は、複数のピクセル・データ及びシーン内のオブジェクトの配置を記述するシーン形状モデルを含む。代表的な動画は、何千もの静止画像を含むことができ、その各々はシーン内のオブジェクトの配置である。
【００３１】
一般に、複数の「ピクセル・データ」は、シーン内のオブジェクトをディスプレイ・スクリーンのような参照フレームと相関させて、この参照フレームからシーンを記述するピクセルの数に有限の上界を置く。シーン・モデル入力内で使用される各ピクセルは、関連するピクセル・データを有する。１つの実施形態では、ピクセル・データは、他のピクセルへの当該ピクセルの相対的位置を指示する当該ピクセル用の座標参照と、後述するように、グラフィック・エンジン１０２がピクセル・データを処理する過程で修正する予備ピクセル色とを含む。代替実施形態では、ピクセル・データは、予備色を含んでおらず、以下で詳述する処理に基づき、グラフィック・エンジン１０２が、複数のピクセル・データの各々に対しピクセル色を追加する。
【００３２】
図示の実施形態では、グラフィック・エンジン１０２は、入力／出力（Ｉ／Ｏ）モジュール１２０を含む。一般に、Ｉ／Ｏモジュール１２０は、通常のＩ／Ｏインタフェースである。動作中、Ｉ／Ｏモジュール１２０は、シーン・モデル入力１０４を受け取る。また、Ｉ／Ｏモジュール１２０は、ディスプレイ・サブシステム１０６に結合する。ディスプレイ・サブシステム１０６は、通常のディスプレイ・サブシステムであり、グラフィック・エンジン１０２から処理済みのシーン・モデル・データを受け取り、当該処理済みのシーン・モデル・データに基づき、ディスプレイ１０８上に画像を表示するように構成される。
【００３３】
図示の実施形態では、グラフィック・エンジン１０２は、ＳＰＵ（synergistic processing unit）１３０及びメモリ１４０を含む。ＳＰＵ １３０は、後述するように修正される部分を除くと、通常の処理ユニット（ＰＵ）である。１つの実施形態では、ＳＰＵ １３０は、Cell（商標）プロセッサである。代替実施形態では、ＳＰＵ １３０は、Broadband Engine（商標）プロセッサである。メモリ１４０は、後述するように修正される部分を除くと、通常のメモリ・モジュール１４０である。一般に、動作中、グラフィック・エンジン１０２は、未処理のシーン・モデル・データ１０４を受け取り、当該未処理のシーン・モデル・データ１０４をメモリ１４０内に格納する。ＳＰＵ １３０は、シーン・モデル・データ１０４を処理することにより、画像を表示するために使用すべきディスプレイ・サブシステム１０６に適切な処理済みのシーン・モデル・データを生成する。
【００３４】
具体的には、メモリ１４０は、モデル・データ１４２を含む。モデル・データ１４２は、種々の処理段階で、受け取られたシーン・モデル・データを参照する。１つの実施形態では、モデル・データ１４２は、ＨＡＳとして配列される。１つの実施形態では、モデル・データ１４２は、バウンディング・ボリューム階層（ＢＶＨ）として配列される。
【００３５】
ＳＰＵ１３０は描画モジュール１３２及びローカル・ストア１３４を含む。描画モジュール１３２は、以下で詳述するように、シーン・モデル・データを処理するように構成された論理ブロックである。ローカル・ストア１３４は、後述するように改変される部分を除くと、通常のＰＵのローカル・ストアである。一般に、ＳＰＵ １３０は、メモリ１４０からモデル・データ１４２の諸部分を検索し、検索済みの部分をローカル・ストア１３４内に格納する。１つの実施形態では、検索済みの各部分は、前記複数のピクセル・データのうちの単一のピクセル・データである。以下で詳述するように、描画モジュール１３２は、シーン・モデル・データ１０４の検索済みの諸部分を処理し、ピクセル色を追加するか又は既存のピクセル色を修正し、修正済みのピクセル・データをモデル・データ１４２に戻す。
【００３６】
具体的には、グラフィック・エンジン１０２は、シーン・モデル・データ１０４を受け取り、本明細書に開示した新規なアンビエント・オクルージョン技術を実行する。図２は、例示的なシーン２００内の１次レイ・キャスティングを示す。シーン２００は、複数のオブジェクト２１０及び一の表面２２０を含む。観測点２３２からキャストされる１次レイ２５０は、交点２４０において表面２２０と交差する。表面法線２３０は、（交点２４０において）表面２２０に垂直なベクトルの方向を指示する。
【００３７】
図３は、観測点３３２を有する例示的なシーン３００における、ＡＯレイのキャスティングを示す。複数のＡＯレイ３５０は、表面３２０の交点３４０から外方に進行する。ＡＯレイ３５０のうちの幾つかは、一のオブジェクト３１０と交差するであろう。
【００３８】
図４は、観測点４３２及びシーン境界４０２を有する例示的なシーン４００における、推奨実施形態に従った改良されたＡＯレイの処理を示す。複数のＡＯレイ４５０は、シーン境界４０２の外部にある諸原点から進行する。一般に、シーン境界４０２は、グラフィック・エンジン１０２に既知の、シーン・モデル・データの限界を表す。
【００３９】
各ＡＯレイ４５０は、シーン境界４０２の外部にあるその原点から表面４２０の交点４４０に向かって直線状に進行する。幾つかの実施形態では、グラフィック・エンジン１０２は、ＡＯレイ４５０をパケット４６０へグループ化する。図示のように、原点４５２ａ、４５２ｂ及び４５６を有するＡＯレイ４５０は、交点４４０に向かう途中でシーン４００内のオブジェクトと交差しない。従って、これらのレイは、後続のアンビエント・オクルージョン計算に組み込まれる。
【００４０】
図示のように、原点４５４ａ及び４５４ｂを有するＡＯレイ４５０は、交点４４０に向かう途中でオブジェクト４１０ａと交差する。そのため、表面４２０は、オブジェクト４１０ａによって部分的に遮蔽され、従ってこれらのレイは、後続のアンビエント・オクルージョン計算に組み込まれない。
【００４１】
１つの実施形態では、グラフィック・エンジン１０２は、アンビエント・オクルージョン計算において全てのＡＯレイを考慮し、アンビエント・オクルージョン計算に「組み込まれた」ＡＯレイの数を、アンビエント・オクルージョン計算に「組み込まれた」ＡＯレイ及びアンビエント・オクルージョン計算から「除外された」ＡＯレイの総数で除算することによって、カバレッジ比率を生成する。代替実施形態では、グラフィック・エンジン１０２は、アンビエント・オクルージョン計算及び／又はシェーディング計算に「組み込まれた」ＡＯレイだけを考慮する。
【００４２】
図５は、アンビエント・オクルージョンを使用する、写実的画像処理方法の１つの実施形態を示す。具体的には、図５は、例えば、図１のシステム１００によって実行される論理的な動作ステップを示す、高水準のフローチャート５００である。一般に、図１のグラフィック・エンジン１０２のようなグラフィック・エンジンは、特段の指摘がない限り、この方法の諸ステップを実行する。
【００４３】
本プロセスが開始すると、グラフィック・エンジン１０２は、シーン形状モデル及び複数のピクセル・データを含む、シーン・モデル・データを受け取る（ブロック５０５）。１つの実施形態では、複数のピクセル・データのうち１つ以上は、予備ピクセル色を含む。次に、グラフィック・エンジン１０２は、現ピクセル・データとして複数のピクセル・データのうちの１つを選択する（ブロック５１０）。
【００４４】
次に、グラフィック・エンジン１０２は、現ピクセル・データに基づき、１次ピクセル色を生成する（ブロック５１５）。１つの実施形態では、グラフィック・エンジン１０２は、予備ピクセル色に基づき、１次ピクセル色を生成する。次に、グラフィック・エンジン１０２は、現ピクセル・データに基づき、１次レイを生成する（ブロック５２０）。説明を明瞭にするため、図示の実施形態では、グラフィック・エンジン１０２は、１つのピクセル当たり１つの１次レイを生成する。代替実施形態では、グラフィック・エンジン１０２は、１つのピクセル当たり複数の１次レイを生成し、各１次レイごとに後述するステップの１つ以上を実行する。
【００４５】
次に、グラフィック・エンジン１０２は、シーン形状モデルに基づき、１次レイがシーン内のオブジェクトと交差するか否かを決定する（ブロック５２５）。もし、１次レイがシーン内のオブジェクトと交差すれば（ブロック５２５）、本プロセスは、ＹＥＳ枝路に沿ってブロック５３０に継続する。
【００４６】
次に、グラフィック・エンジン１０２は、１次レイ及びオブジェクトの交差に基づき、交点Ｐを決定する（ブロック５３０）。次に、グラフィック・エンジン１０２は、１次レイ及びオブジェクトの交差に基づき、表面法線Ｎを決定する（ブロック５３５）。
【００４７】
次に、グラフィック・エンジン１０２は、１次レイ及びオブジェクトの交差に基づき、１次ヒット色を決定する（ブロック５４０）。次に、グラフィック・エンジン１０２は、１次ヒット色に基づき、１次ピクセル色を修正する（ブロック５４５）。本プロセスは、図６のマーカ「Ａ」に継続する。
【００４８】
図６は、アンビエント・オクルージョンを使用する、写実的画像処理方法の１つの実施形態を示す。具体的には、図６は、例えば、図１のシステム１００によって実行される論理的な動作ステップを示す、高水準のフローチャート６００である。一般に、図１のグラフィック・エンジン１０２のようなグラフィック・エンジンは、特段の指摘がない限り、この方法の諸ステップを実行する。
【００４９】
本プロセスは、マーカ「Ａ」からブロック６０５に継続する。グラフィック・エンジン１０２は、交点Ｐ及び表面法線Ｎに基づき、各々が一のレイ方向を有する複数のアンビエント・オクルージョン（ＡＯ）レイを生成する（ブロック６０５）。
【００５０】
次に、グラフィック・エンジン１０２は、ＡＯレイをパケットへグループ化する（ブロック６１０）。次に、グラフィック・エンジン１０２は、処理すべきＡＯレイ／パケットが存在するか否かを決定する（ブロック６１５）。最初の実行時には、処理すべき少なくとも１つのＡＯレイが存在するであろう。もし、処理すべきＡＯレイ／パケットが存在すれば（ブロック６１５）、本プロセスは、ＹＥＳ枝路に沿ってブロック６２０に継続する。
【００５１】
次に、グラフィック・エンジン１０２は、現ＡＯレイ／パケットとして少なくとも１つのＡＯレイ／パケットのうちの１つを選択する（ブロック６２０）。次に、グラフィック・エンジン１０２は、現ＡＯレイ（又は現パケット内の各ＡＯレイ）の方向を逆転させる（ブロック６２５）。次に、グラフィック・エンジン１０２は、現ＡＯレイの原点を交点Ｐから変更し、現ＡＯレイの元の方向に沿って、シーン境界の外部にあることが知られている点に、原点Ｏをセットする（ブロック６３０）。
【００５２】
次に、グラフィック・エンジン１０２は、最大のＡＯレイ・トラバーサルをセットする（ブロック６３５）。１つの実施形態では、最大レイ・トラバーサルは、原点Ｏ及び交点Ｐの間のシーン内距離を表す。代替実施形態では、最大レイ・トラバーサルは、ＨＡＳにおける、シーン境界及び交点Ｐの間のノードの数を表す。
【００５３】
次に、グラフィック・エンジン１０２は、現ＡＯレイを、当該ＡＯレイの方向に沿って、その原点ＯからＨＡＳの第１のノードに進行させる（ブロック６４０）。次に、グラフィック・エンジン１０２は、現ＡＯレイがシーン内のオブジェクトにヒットするか否かを決定する（ブロック６４５）。もし、現ＡＯレイがシーン内のオブジェクトにヒットしていれば（ブロック６４５）、本プロセスは、ＹＥＳ枝路に沿ってブロック６５０に継続する。グラフィック・エンジン１０２は、現ＡＯレイを除外し（ブロック６５０）、そして本プロセスは、マーカ「Ｂ」を介してブロック６１５に戻り、そこでグラフィック・エンジン１０２は、処理すべき追加のＡＯレイ／パケットが存在するか否かを決定する。
【００５４】
もし、現ＡＯレイが（現ノードにおける）シーン内のオブジェクトにヒットしていなければ（ブロック６４５）、本プロセスは、ＮＯ枝路に沿ってブロック６５５に継続し、そこでグラフィック・エンジン１０２は、現ＡＯレイが交点Ｐに到達したか否かを決定する。もし、現ＡＯレイが交点Ｐに到達していれば（ブロック６５５）、本プロセスは、ＹＥＳ枝路に沿ってブロック６６０に継続する。
【００５５】
１つの実施形態では、ブロック６５５において、グラフィック・エンジン１０２は、現ＡＯレイがその最大トラバーサル距離を進行したか否かを決定し、そうであれば、交点Ｐに到達したとして現ＡＯレイをカウントする。次に、グラフィック・エンジン１０２は、現ＡＯレイを組み込み（ブロック６６０）、そして本プロセスは、マーカ「Ｂ」を介してブロック６１５に戻り、そこでグラフィック・エンジン１０２は、処理すべき追加のＡＯレイ／パケットが存在するか否かを決定する。
【００５６】
もし、現ＡＯレイが交点Ｐに到達していなければ（ブロック６５５）、本プロセスは、ＮＯ枝路に沿ってブロック６６５に継続する。グラフィック・エンジン１０２は、次のＨＡＳノードを現ＨＡＳノードとして選択し（ブロック６６５）、そして本プロセスは、ブロック６４０に戻り、そこでグラフィック・エンジン１０２は、現ＡＯレイを現ＨＡＳノードに進行させる。
【００５７】
従って、ブロック６４０〜６６５に示すように、グラフィック・エンジン１０２は、各ＡＯレイを、その原点から交点Ｐに向かうようにシーン内へ進行させる。もし、このＡＯレイが交点Ｐに向かう途中で一のオブジェクトにヒットすれば、グラフィック・エンジン１０２は、当該ＡＯレイを除外し、処理のために次のＡＯレイを選択する。一方、このＡＯレイが交点Ｐに向かう途中で一のオブジェクトにヒットしなければ、グラフィック・エンジン１０２は、当該ＡＯレイを組み込み、処理のために次のＡＯレイを選択する。
【００５８】
もし、ブロック６１５において、処理すべき（現１次レイ交点用の）ＡＯレイ／パケットがそれ以上存在しなければ、本プロセスは、ＮＯ枝路に沿って図７のマーカ「Ｃ」に継続する。
【００５９】
図７は、アンビエント・オクルージョンを使用する、写実的画像処理方法の１つの実施形態を示す。具体的には、図７は、例えば、図１のシステム１００によって実行される論理的な動作ステップを示す、高水準のフローチャート７００である。一般に、図１のグラフィック・エンジン１０２のようなグラフィック・エンジンは、特段の指摘がない限り、この方法の諸ステップを実行する。
【００６０】
本プロセスは、マーカ「Ｃ」からブロック７０５に継続し、そこでグラフィック・エンジン１０２は、組み込まれたＡＯレイに基づき、現ピクセル用のＡＯカバレッジを計算する。代替実施形態では、グラフィック・エンジン１０２は、組み込まれたＡＯレイ及び除外されたＡＯレイの両方に基づき、現ピクセル用のＡＯカバレッジを計算する。
【００６１】
次に、グラフィック・エンジン１０２は、計算したＡＯカバレッジに基づき、１次ピクセル色を修正する（ブロック７１０）。次に、グラフィック・エンジン１０２は、処理すべき追加のピクセル及び／又はピクセル・データが存在するか否かを決定する（ブロック７１５）。もし、処理すべき追加のピクセルが存在すれば（ブロック７１５）、本プロセスは、ＹＥＳ枝路に沿ってマーカ「Ｄ」から図５のブロック５１０に戻り、そこでグラフィック・エンジン１０２は、次のピクセル・データを現ピクセル・データとして選択し、そして本プロセスは、前述のように継続する。
【００６２】
もし、１次レイがシーン内のオブジェクトと交差していなければ（ブロック５２５）、本プロセスは、ＮＯ枝路に沿ってマーカ「Ｅ」から前述のブロック７１５に継続する。次に、グラフィック・エンジン１０２は、複数のピクセル・データを有するシーン・モデル・データを格納する（ブロック７２０）。次に、ディスプレイ・サブシステム１０６は、複数のピクセル・データに基づき、ディスプレイ用の画像を生成する（ブロック７２５）。
【００６３】
従って、本明細書に開示した実施形態は、他の方法及びシステムと比較して、多数の利点を提供する。例えば、本明細書に開示したグラフィック・エンジンは、制限されたローカル・ストレージを有するシステムにおいてさえ、改良されたレイ・トレーシング性能を提供することができる。また、本明細書に開示した実施形態は、所望の写実的品質の要件及びグラフィック・エンジンを具体化するために使用される特定のシステムに適合するようにスケーラブルな、アンビエント・オクルージョン性能を改良する。
【００６４】
前述のように、本明細書に開示した１つ以上の実施形態は、コンピュータ・システムにおいて実施又は具体化することができる。一般に、本明細書において、「コンピュータ」という用語は、任意の自動計算機械を指す。従って、「コンピュータ」という用語は、ラップトップ、パーソナル・コンピュータ、ミニコンピュータ及びメインフレームのような汎用計算機だけでなく、携帯情報端末（ＰＤＡ）、ネットワーク対応のハンドヘルド装置、インターネット又はネットワーク対応の携帯電話等のような装置も含む。図８は、本明細書に開示した実施形態の１つ以上を実施するのに使用することができる、例示的なコンピュータ・システムの詳細を示すブロック図である。
【００６５】
具体的には、図８は、コンピュータ・システム８００を示す。コンピュータ・システム８００は、コンピュータ８０２を含む。コンピュータ８０２は、通常のコンピュータであり、少なくとも１つのプロセッサ８１０を含む。プロセッサ８１０は、通常のコンピュータ・プロセッサであり、シングル−コア、デュアル−コア、中央処理ユニット（ＰＵ）、ＳＰＵ（synergistic processing unit）、付加ＰＵ又は他の適切なプロセッサを含むことができる。
【００６６】
プロセッサ８１０は、システム・バス８１２に結合する。システム・バス８１２は、通常のシステム・バスである。図示のように、コンピュータ８０２の種々のコンポーネントは、システム・バス８１２に結合する。例えば、コンピュータ８０２が含むメモリ８２０は、システム・バス８１２を通してプロセッサ８１０に結合する。メモリ８２０は、通常の主メモリであり、例えば、ランダム・アクセス・メモリ（ＲＡＭ）を含むことができる。一般に、メモリ８２０は、アプリケーション８２２、オペレーティング・システム８２４及びアクセス機能８２６を格納する。
【００６７】
一般に、アプリケーション８２２は、通常のソフトウェア・プログラム・アプリケーションであり、任意の数の代表的なプログラムに加えて、本発明の１つ以上の実施形態を組み込んだコンピュータ・プログラムを含むことができる。オペレーティング・システム８２４は、通常のオペレーティング・システムであり、例えば、ＵＮＩＸ（登録商標）、ＡＩＸ（商標）、Ｌｉｎｕｘ（登録商標）、マイクロソフト社のウィンドウズ（登録商標）、ＭａｃＯＳ（商標）等を含むことができる。アクセス機能８２６は、ネットワーキング機能を含む通常のアクセス機能であり、オペレーティング・システム８２４内に含めることができる。
【００６８】
また、コンピュータ８０２は、ストレージ８３０を含む。一般に、ストレージ８３０は、データを格納するための通常の装置である。図示のように、ストレージ８３０は、ハード・ディスク８３２、フラッシュ又は他の揮発性メモリ８３４及び／又は光ストレージ装置８３６を含むことができる。
【００６９】
Ｉ／Ｏインタフェース８４０も、システム・バス８１２に結合する。Ｉ／Ｏインタフェース８４０は、通常のインタフェースである。図示のように、Ｉ／Ｏインタフェース８４０は、コンピュータ８０２の外部にある装置に結合する。具体的には、Ｉ／Ｏインタフェース８４０は、ユーザ入力装置８４２及びディスプレイ装置８４４に結合する。入力装置８４２は、通常の入力装置であり、例えば、マウス、キーボード、数字キーパッド、タッチ・スクリーン、マイクロホン、ウェッブカメラ等を含むことができる。ディスプレイ装置８４４は、通常のディスプレイ装置であり、例えば、モニタを含むことができる、ＬＣＤディスプレイ、ＧＵＩスクリーン、テキスト・スクリーン、タッチ・スクリーン、点字ディスプレイ等を含むことができる。
【００７０】
ネットワーク・アダプタ８５０も、システム・バス８１２に結合する。ネットワーク・アダプタ８５０は、通常のネットワーク・アダプタであり、例えば、無線通信、イーサネット（登録商標）、ＬＡＮ、ＷＡＮ又は他の適切なアダプタを含むことができる。図示のように、ネットワーク・アダプタ８５０は、コンピュータ８０２を他のコンピュータ及び装置８５２に結合することができる。他のコンピュータ及び装置８５２は、ネットワーク環境内で一般に使用される通常のコンピュータ及び装置である。
【００７１】
前述のフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための１つ以上の実行可能な命令から成る、モジュール、セグメント又はコードの部分を表すことができる。幾つかの代替実装では、ブロック内に表記した機能は、図面に示す順序とは異なる順序で生じることができる。例えば、図面に順次に示した２つのブロックは、それらの機能性に依存して、実質的に同時に実行することができ、或いは逆の順序で実行することもできる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる。
【００７２】
前述の及び他の特徴及び機能の変形又はそれらの代替構成は、望ましくは、他の多くの異なるシステム又はアプリケーションへ組み合わせることができる。さらに、現に予測されていない代替、修正、変形又は改良が、その後に当業者によってなされることが可能であろうが、本願の請求項は、これらもその範囲内に包含することを意図する。
【符号の説明】
【００７３】
１００・・・システム
１０２・・・グラフィック・エンジン
１０４・・・シーン・モデル入力
１０６・・・ディスプレイ・サブシステム
１０８・・・ディスプレイ
１２０・・・Ｉ／Ｏモジュール
１３０・・・ＳＰＵ（synergistic processing unit）
１３２・・・描画モジュール
１３４・・・ローカル・ストア
１４０・・・メモリ
１４２・・・モデル・データ
２００、３００、４００・・・シーン
２１０、３１０、４１０・・・オブジェクト
２２０、３２０、４２０・・・表面
２３０・・・表面法線    
２３２、３３２、４３２・・・観測点
２４０、３４０、４４０・・・交点
２５０、３５０、４５０・・・ＡＯレイ
４０２・・・シーン境界
４１０ａ・・・オブジェクト
４５２ａ、４５２ｂ・・・原点
４５４ａ、４５４ｂ・・・原点
４５６・・・原点
４６０・・・パケット
【図１】
2010134919.tif 000003
【図２】
2010134919.tif 000004
【図３】
2010134919.tif 000005
【図４】
2010134919.tif 000006
【図５】
2010134919.tif 000007
【図６】
2010134919.tif 000008
【図７】
2010134919.tif 000009
【図８】
2010134919.tif 000010