(57)【要約】【課題】３−Ｄレンダリングシステム、システムアーキテクチャ、及び方法を提供する。【解決手段】シーンに対する跳ね返り光マップが、グラフィックス処理システム内でシーンをレンダリングする際に使用するために決定される。シーン内の照明を表す初期照明表示が決定される。跳ね返り光マップのテクセル位置に対して、初期照明表示は、重要度サンプリング技術を使用してサンプリングされてシーン内の位置を識別する。サンプリング光線は、跳ね返り光マップのテクセル位置に対応するシーン内の位置とシーンによってそれぞれ識別される位置との間で追跡される。照明値が、サンプリング光線の追跡結果を使用して跳ね返り光マップのテクセル位置に対して決定される。本明細書に説明する重要度サンプリング方法を使用することにより、追跡される光線は、テクセルの照明により多く寄与するシーンのより重要な領域に向けられる可能性がより高い。【選択図】図５
2017188093.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理システム内でシーンをレンダリングする際に使用するための該シーンに対する跳ね返り光マップを決定するコンピュータ実装方法であって、
前記シーン内の照明を表す初期照明表示を決定する段階と、
前記跳ね返り光マップのテクセル位置に対して、
前記初期照明表示の対応する要素の値に基づいて前記シーン内の１又は２以上の位置を識別する段階、
前記跳ね返り光マップの前記テクセル位置に対応する前記シーン内の位置と該シーン内のそれぞれの前記１又は２以上の識別された位置との間で１又は２以上のサンプリング光線を追跡する段階、及び
前記１又は２以上のサンプリング光線の前記追跡の結果を使用して前記跳ね返り光マップの前記テクセル位置に対する照明値を決定する段階と、
を含むことを特徴とする方法。
【請求項２】
１又は２以上の位置を識別する前記段階は、疑似ランダム技術を使用する段階を含むことを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
１又は２以上の位置を識別する前記段階は、重要度サンプリング技術を使用する段階を含み、与えられた要素を識別する可能性が、前記初期照明表示の各要素に関連付けられた重要度値に基づいていることを特徴とする請求項１又は請求項２に記載のコンピュータ実装方法。
【請求項４】
前記重要度値は、前記初期照明表示の前記要素の輝度に全体的に又は部分的に基づいていることを特徴とする請求項３に記載の方法。
【請求項５】
前記重要度値は、前記初期照明表示内の既知の変更に全体的に又は部分的に基づいており、
前記既知の変更は、現在のフレームの前記初期照明表示と以前のフレームの該初期照明表示の間の差異を含む、
ことを特徴とする請求項３に記載の方法。
【請求項６】
１又は２以上の位置を識別する段階と、１又は２以上のサンプリング光線を追跡する段階と、前記跳ね返り光マップの複数のテクセル位置の各々に対する照明値を決定する段階とを実行する段階を含むことを特徴とする請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記初期照明表示は、１又は２以上の初期光マップとして決定され、
前記１又は２以上の初期光マップは、前記跳ね返り光マップと同じトポロジーを有する、
ことを特徴とする請求項１から請求項６のいずれか１項に記載の方法。
【請求項８】
初期光マップ内の要素に対する有効重要度値が、
前記跳ね返り光マップ内の前記テクセルからの距離、
前記初期光マップの前記要素に対応する前記シーン内の位置と前記跳ね返り光マップ内の前記テクセルに対応する該シーン内の位置との間の距離、及び
前記初期光マップの前記要素に対応する前記シーン内の位置と前記跳ね返り光マップ内の前記テクセルに対応する該シーン内の位置との間の方向、
のうちの１又は２以上によって影響を受ける、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記初期照明表示を決定する前記段階は、前記シーン内の直接照明を表す直接光マップを構築する段階を含むことを特徴とする請求項７又は請求項８に記載の方法。
【請求項１０】
前記初期照明表示を決定する前記段階は、前記直接光マップをフレームのシーケンス内の以前のフレームに対して決定された跳ね返り光マップと結合し、それによって現在のフレームに対する初期光マップを決定する段階を更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
初期照明表示の要素の前記値は、それらが対応する面の表面積に対する照明を表すことを特徴とする請求項１から請求項１０のいずれか１項に記載の方法。
【請求項１２】
１又は２以上の位置を識別する前記段階は、
前記初期照明表示をサンプリングするための１又は２以上のサンプリング値を選択する段階と、
累積方式に従って前記初期照明表示の値を累積して前記シーン内の照明を表す累積関数を決定する段階と、
前記選択された１又は２以上のサンプリング値を使用して前記累積関数内のそれぞれの１又は２以上の位置を識別する段階と、
前記累積関数内の前記識別された１又は２以上の位置に対応する前記シーン内の前記１又は２以上の位置を識別する段階と、
を含む、
ことを特徴とする請求項１から請求項１１のいずれか１項に記載の方法。
【請求項１３】
サンプリング光線がそれに向けて追跡される限定された位置セットが識別され、それらの識別された位置が、サンプリング光線を追跡するために前記跳ね返り光マップのテクセルのセット間で共有されることを特徴とする請求項１から請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記跳ね返り光マップの前記テクセル位置に対する照明値を決定する前記段階は、前記１又は２以上のサンプリング光線の前記追跡の結果に基づいて該テクセル位置に対する既存の照明値を更新する段階を含むことを特徴とする請求項１から請求項１３のいずれか１項に記載の方法。
【請求項１５】
サンプリング光線の追跡の前記結果は、該サンプリング光線が閉塞に衝突したか否かを示し、
前記跳ね返り光マップのテクセル位置に対する前記照明値は、前記サンプリング光線を追跡した前記結果が該サンプリング光線が閉塞に衝突したことを示すか否かに依存する方式で該サンプリング光線がそれに向けて追跡される前記識別された位置に対応する前記初期照明表示に基づいて決定される、
ことを特徴とする請求項１から請求項１４のいずれか１項に記載の方法。
【請求項１６】
前記跳ね返り光マップの前記テクセル位置に対する前記照明値は、
前記跳ね返り光マップの前記テクセル位置に対応する前記シーン内の前記位置と前記サンプリング光線がそれに向けて追跡される該シーン内の前記識別された位置との間の距離の表示、又は
前記跳ね返り光マップの前記テクセル位置に対応する前記シーン内の前記位置と前記サンプリング光線がそれに向けて追跡される該シーン内の前記識別された位置との間の方向の表示であって、前記初期照明表示が、方向付けされた照明値である前記方向の表示、
に更に基づいて決定される、
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記跳ね返り光マップを使用して画像をレンダリングし、前記シーン内の面の照明を決定する段階を更に含むことを特徴とする請求項１から請求項１６のいずれか１項に記載の方法。
【請求項１８】
前記跳ね返り光マップの前記テクセルの部分集合が、シーン内の視点からの視認性に基づいて処理するために選択されることを特徴とする請求項１から請求項１７のいずれか１項に記載の方法。
【請求項１９】
シーンをレンダリングする際に使用するための跳ね返り光マップを決定するように構成されたグラフィックス処理ユニットであって、
前記シーン内の照明を表す初期照明表示を格納するように構成された１又は２以上のバッファと、
前記初期照明表示の対応する要素の値に基づいて前記シーン内の１又は２以上の位置を識別し、
前記跳ね返り光マップのテクセル位置に対応する前記シーン内の位置と該シーン内のそれぞれの前記１又は２以上の識別された位置との間で１又は２以上のサンプリング光線を追跡し、かつ
前記１又は２以上のサンプリング光線の追跡の結果を使用して前記跳ね返り光マップの前記テクセル位置に対する照明値を決定する、
ように構成された処理論理部と、
を含むことを特徴とするグラフィックス処理ユニット。
【請求項２０】
符号化されたコンピュータ可読コードを有するコンピュータ可読ストレージ媒体であって、
前記コンピュータ可読コードは、該コードがコンピュータ上で実行された時に請求項１から請求項１８のいずれか１項に記載の方法が実行されるようになっている、
ことを特徴とするコンピュータ可読ストレージ媒体。
【請求項２１】
集積回路製造システム内で処理された時に請求項１９に記載のグラフィックス処理ユニットを製造するように該システムを構成する集積回路定義データセットが格納された非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の説明は、一般的に、３−Ｄレンダリングシステム、システムアーキテクチャ、及び方法に関する。本明細書に説明する実施例の一部は、ハイブリッド光線追跡とラスター化ベースのレンダリングとのような非同期及び同時ハイブリッドレンダリングのためのシステム、アーキテクチャ、及び方法に関する。
【背景技術】
【０００２】
グラフィックス処理ユニット（ＧＰＵ）は、多くの場合に、高度に並列化されたラスター化ベースのレンダリングハードウエアを提供する。従来のグラフィックス処理ユニット（ＧＰＵ）は、テクスチャマップによって多角形をレンダリングするためだけの固定パイプラインを使用し、かつプログラマブル頂点及び断片段を可能にするより柔軟なパイプラインに漸次進化した。現代のＧＰＵは、形状及びピクセル処理のより大きいプログラム可能性をサポートするが、ＧＰＵ内の様々な機能は、固定機能ハードウエアに実施される。現代のＧＰＵは、複雑さの範囲が広い可能性があり、かつ特定の使用に適するようになっている場合がある。ＧＰＵを設計する時に、多くの場合に、性能、サイズ、電力消費、及びコストのような様々なファクタの間にトレードオフが存在する。ＧＰＵは、多くの場合に、リアルタイムレンダリングタスクに使用され、多くのＧＰＵアプリケーションの最適化は、ショートカットを決定して主観的ビデオ品質の望ましいレベルを維持しながら毎秒の望ましいフレームスループットを達成する段階を伴う。例えば、ビデオゲームでは、光挙動の現実的モデル化が目的であることは希であり、逆に、望ましい外観又はレンダリング効果を達成することが多くの場合に主な目的である。
【０００３】
従来的に、光線追跡は、アニメーション映画の製作のような高品質非リアルタイムグラフィックレンダリングタスクに対して、又は異なる材料内の光の挙動をより忠実にモデル化する２Ｄ画像の生成に使用される技術である。光線追跡では、望ましい結果を達成するためのレンダリング及びパイプライン柔軟性の制御は、多くの場合に、望ましいフレームレートを維持するよりも重要な問題であった。同じく、光線追跡に必要な処理タスクの一部の種類は、ラスター化に最適であるハードウエア上で必ずしも実施可能ではない。
【０００４】
一例として、光線追跡は、レンダリングされる画像内に照明効果を導入するのに特に適している。シーン内の物体上に光を放つ光源は、そのシーンに対して定めることができる。一部の物体は、光源からの他の物体を遮ってシーン内に影をもたらすことができる。光線追跡技術を使用したレンダリングは、光線追跡を使用してシーン内の光の挙動をモデル化することができるので、光源の効果が正確にレンダリングされることを可能にする。
【０００５】
シーン内の照明を表す光マップを構築することができる。例えば、光マップは、シーン内の照明効果面の輝度及び色の表示を格納する２Ｄデータ構造であり、これは、グラフィックレンダリング処理におけるテクスチャに類似の方式に使用することができ、例えば、光マップは、３Ｄシーン内の物体の面上にマップされたテクスチャとすることができる。この意味では、光マップは、照明されることが可能なシーン内の面の「覆われていない」マップとして考えることができる。光マップは、光マップのテクセルと呼ぶことができる特定の位置での値を含む。シーン内の３Ｄ面（例えば、プリミティブの面）から変換するために、面上の点に関連付けられたテクスチャ座標（ｕ、ｖ）は、例えば、プリミティブの頂点に対するテクスチャ座標の補間によって決定することができる。ｕ及びｖ値は、プリミティブ面のための照明を決定するために光マップの座標として使用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
光線追跡レンダリング技術は、多くの場合に、実施するのに計算的に比較的高価であり、かつメモリ集中的である。例えば、光マップの値を決定することは（光マップの「焼成」と呼ぶ場合がある）、多くの場合に、直接照明及び／又は間接照明を理想的には考慮に入れるべきであるので計算的に高価な処理である。間接照明の決定は、各光マップテクセルに対して多くの光線を処理することができることが要求される場合がある。これは、光マップの焼成が典型的に「オフライン」処理として、すなわち、画像がレンダリングされている実行時の前に実行されることを意味する。実行時の前に光マップを計算することは、光マップが、通常は、実行時にレンダリングされるシーン内の照明の推定値であることを意味し、従って、誤差が発生する可能性がある。それは、光マップが物体の移動又は光源の変化のようなシーン内の変化に応答することができないことを同じく意味する。光マップの焼成に関わる処理は、典型的には、リアルタイムで実行するのに計算的にあまりに高価である。
【課題を解決するための手段】
【０００７】
この「発明の概要」は、「発明を実施するための形態」で以下に更に説明する選択した概念を単純化された形式で紹介するために提供するものである。この「発明の概要」は、特許請求する主題の重要な特徴又は本質的な特徴を識別するように意図しておらず、特許請求する主題の範囲を制限するのに使用されるようにも意図していない。
【０００８】
グラフィックス処理システムにおいてシーンをレンダリングする際に使用するためのシーンに対する跳ね返り光マップを決定するコンピュータ実装方法を提供し、本方法は、シーン内の照明を表す初期照明表示を決定する段階と、跳ね返り光マップのテクセル位置に対して、初期照明表示の対応する要素の値に基づいてシーン内の１又は２以上の位置を識別する段階（例えば、疑似ランダム技術を使用して）、跳ね返り光マップのテクセル位置に対応するシーン内の位置とシーン内のそれぞれの１又は２以上の識別された位置との間で１又は２以上のサンプリング光線を追跡する段階、及び１又は２以上のサンプリング光線の追跡の結果を使用してレンダー光マップのテクセル位置に対する照明値を決定する段階とを含む。
【０００９】
疑似ランダム技術が重要度サンプリング技術である上述のコンピュータ実装方法と与えられた要素を識別する可能性とは、初期照明表示の各要素に関連付けられた重要度値に基づいている。
【００１０】
重要度値は、初期照明表示の要素の輝度に全体的に又は部分的に基づく場合がある。重要度値は、初期照明表示内の既知の変更に全体的に又は部分的に基づく場合がある。既知の変更は、現在のフレームの初期照明表示と以前のフレームの初期照明表示の間の差異を含むことができる。
【００１１】
初期照明表示をサンプリングする段階、１又は２以上のサンプリング光線を追跡する段階、及び照明値を決定する段階は、例えば並行に又は順番に跳ね返り光マップの複数のテクセル位置の各々に対して実行することができる。
【００１２】
初期照明表示は、１又は２以上の初期光マップとして決定することができ、１又は２以上の初期光マップは、跳ね返り光マップと同じトポロジーを有することができる。初期照明表示は、シーン内の直接照明を表す直接光マップを構築することによって決定することができる。更に、初期照明表示は、直接光マップをフレームのシーケンス内の以前のフレームに対して決定された跳ね返り光マップと更に結合し、それによって現在のフレームに対する初期光マップを決定することによって決定することができる。
【００１３】
初期照明表示は、以前に作成された跳ね返り光マップを含むことができる。初期照明表示の要素の値は、それらが対応する面の表面積に対する照明を表すことができる。初期照明表示の要素の合計値は、寄与光源の出力をほぼ説明することができる。
【００１４】
初期光マップ内の要素に対する有効重要度値は、跳ね返り光マップ内のテクセルからの距離によって影響される場合がある。初期光マップ内の要素に対する有効重要度値は、初期光マップの要素に対応するシーン内の位置と跳ね返り光マップ内のテクセルに対応するシーン内の位置との間の距離によって影響される場合がある。初期光マップ内の要素に対する有効重要度値は、初期光マップの要素に対応するシーン内の位置と跳ね返り光マップ内のテクセルに対応するシーン内の位置との間の方向によって影響される場合がある。
【００１５】
シーン内の１又は２以上の位置を識別するために疑似ランダム技術を使用する初期照明表示の上述のサンプリングは、１又は２以上のサンプリング値を選択する段階を含むことができる。サンプリング値は、（ｉ）低矛盾シーケンスに従って、（ｉｉ）ランダムに又は疑似ランダムに、（ｉｉｉ）準モンテカルロ法を使用して、又は（ｉｉｉ）層別サンプリング技術に従って選択することができる。更に、サンプリング値は、値の表から選択することができる。
【００１６】
上述の重要度サンプリング技術は、本明細書で疑似ランダム技術と呼ぶ場合がある上述の技術のうちのいずれかを含むことができる。更に、重要度サンプリング技術を使用した初期照明表示のサンプリングは、累積方式に従って初期照明表示の重要度値を累積して初期照明表示内の全ての照明の結合された重要度を表す累積関数を決定する段階と、選択された１又は２以上のサンプリング値を使用して累積関数内のそれぞれの１又は２以上の位置を識別する段階と、累積関数内の識別された１又は２以上の位置に対応するシーン内の１又は２以上の位置を識別する段階とを更に含むことができる。
【００１７】
１又は２以上の位置を識別する段階は、初期照明表示をサンプリングするための１又は２以上のサンプリング値を選択する段階を含むことができる。更に、１又は２以上の位置を識別する段階は、累積方式に従って初期照明表示の値を累積してシーン内の照明を表す累積関数を決定する段階と、選択された１又は２以上のサンプリング値を使用して累積関数内のそれぞれの１又は２以上の位置を識別する段階と、累積関数内の識別された１又は２以上の位置に対応するシーン内の１又は２以上の位置を識別する段階とを更に含むことができる。
【００１８】
それぞれの重要度値は、照明表示の要素の輝度に全体的に又は部分的に基づく場合がある。
【００１９】
初期照明表示が初期光マップとして決定される実施例では、上述の初期照明表示の値を累積する段階は、初期光マップのタイルに値を累積して、例えば、異なる解像度での初期光マップを表すｍｉｐマップされた光マップのセットを形成する段階を含むことができる。これに代えて、与えられたレベルでの各要素がその下にあるレベルでの要素の和を表す値の階層和を使用することができる。サンプリング値は、（ｉ）低矛盾シーケンスに従って、（ｉｉ）ランダムに又は疑似ランダムに、又は（ｉｉｉ）層別サンプリング技術に従って、又は（ｉｖ）準モンテカルロ法に従って選択することができる。サンプリング値は、値の表から選択することができる。サンプリング光線がそれに向けて追跡される限定された位置のセットを識別することができ、それらの識別された位置は、サンプリング光線を追跡するために跳ね返り光マップのテクセルのセット間で共有することができる。
【００２０】
跳ね返り光マップのテクセル位置に対する照明値は、１又は２以上のサンプリング光線の追跡の結果に基づいてテクセル位置に対する既存の照明値を更新することによって決定することができる。テクセル位置に対する既存の照明値の更新は、フレームのシーケンスにわたるテクセル位置に対する照明値に対する移動平均を維持する段階を含むことができる。移動平均は、跳ね返り光マップ内の値の対数減衰を達成することができる。対数関数の底は、初期照明表示が変わる速度を含む外部ファクタに応答して変えることができる。移動平均は、分子と分母を別々に増分することによって漸進的改善効果を生成することができる。
【００２１】
一部の実施例では、サンプリング光線の追跡の結果は、サンプリング光線が閉塞に衝突したか否か又は２つの３次元点間に中断されない見通し線があるか否かを示す。跳ね返り光マップのテクセル位置に対する照明値は、サンプリング光線がそれに向けて追跡される識別された位置に対応する初期照明表示と、光線が非閉塞見通し線を見出したか否かとに基づいて決定される。サンプリング光線が閉塞に衝突しないことをサンプリング光線を追跡した結果が示す場合に、光エネルギをテクセルに追加することができるが、サンプル光線が閉塞に衝突した場合に、光は追加されないが、テクセル内の値は、初期照明表示内のターゲット要素を選択する確率に比例して暗くすることができる。テクセル位置の値は、特定のサンプルを選択する可能性に反比例して修正することができる。
【００２２】
初期照明表示内の要素又は要素のセットに対する重要度値は、跳ね返り光マップのテクセル位置に対応するシーン内の位置と要素又は要素のセットに対応するシーン内の識別された位置との間の距離又は大体の距離の表示に更に基づいて決定することができる。一部の実施例では、複数の空間的に近い要素の距離表示は、互いにグループにすることができ、これらのグループは、次に、大体の距離に基づいて要素を迅速に選択するための階層を形成することができる。
【００２３】
一部の実施例では、初期照明表示は、方向付けされた照明値である。これらの方向付けされた照明値は、シーン内の材料の異なる面特性のモデル化から生じる場合がある。初期照明表示内の要素又は要素のセットに対する重要度値は、跳ね返り光マップのテクセル位置に対応するシーン内の位置と要素又は要素のセットに対応するシーン内の識別された位置との間の方向又は大体の方向の表示に更に基づいて決定することができる。一部の実施例では、複数の類似要素の方向表示は、互いにグループにすることができ、これらのグループは、次に、大体の方向に基づいて要素を迅速に選択するための階層を形成することができる。
【００２４】
初期照明表示の要素は、対応する点の空間位置に基づいて階層に編成することができる。初期照明表示は、方向付けされた照明値とすることができ、初期照明表示の要素は、方向付けされた照明値に格納された値の支配的方向に基づいて階層に編成することができる。
【００２５】
本方法は、跳ね返り光マップを使用して画像をレンダリングし、シーン内の面の照明を決定する段階を更に含むことができる。
【００２６】
跳ね返り光マップは、グラフィックス処理システムにおいてリアルタイムでレンダリングするためのフレームのシーケンスのうちのフレームに対して決定することができる。
【００２７】
跳ね返り光マップのテクセルの部分集合は、シーン内の視点からの視認性に基づいて処理に対して選択することができる。跳ね返り光マップ内のテクセルは、レンダリングされるフレームへのそれぞれの寄与に基づいて優先順位を付けることができる。寄与の決定は、近似的である場合があり、及び／又は優先順位付けは、粗い場合がある。光は、非可視の電磁放射線、無線信号、音響振動、弾道運動、及び流体力学を含むあらゆる伝播現象を表すことができる。
【００２８】
シーンをレンダリングする際に使用するための跳ね返り光マップを決定するように構成されたグラフィックス処理ユニットを提供し、グラフィックス処理ユニットは、シーン内の照明を表す初期照明表示を格納するように構成された１又は２以上のバッファと、初期照明表示の対応する要素の値に基づいてシーン内の位置のうちの１又は２以上を識別し（例えば、疑似ランダム技術を使用して）、跳ね返り光マップのテクセル位置に対応するシーン内の位置とシーン内のそれぞれの１又は２以上の識別された位置との間で１又は２以上のサンプリング光線を追跡し、かつ１又は２以上のサンプリング光線を追跡した結果を使用して跳ね返り光マップのテクセル位置に対する照明値を決定するように構成された処理論理部とを含む。
【００２９】
疑似ランダム技術は、重要度サンプリング技術である場合があり、与えられた要素を識別する可能性は、初期照明表示の要素に関連付けられたそれぞれの重要度値に基づく場合がある。
【００３０】
グラフィックス処理システムにおいてシーンをレンダリングする際に使用するためのシーンに対する跳ね返り照明を決定するコンピュータ実装方法を提供することができ、本方法は、シーン内の照明を表す初期照明表示を決定する段階と、バッファ内の各ピクセルに対するシーン内の視点から可視の面を決定する段階と、各ピクセルに対して、疑似ランダム技術を使用して初期照明表示の要素に対応する３Ｄ位置のうちの１又は２以上を識別する段階、可視面の位置に対応するシーン内の位置と照明表示の識別された要素に対応するそれぞれの１又は２以上の識別された位置との間で１又は２以上のサンプリング光線を追跡する段階、及び１又は２以上のサンプリング光線の追跡の結果を使用して可視面に対する照明値を決定する段階とを含む。
【００３１】
照明表示は、光マップ、複数の光マップ、複数の光プローブ、及び複数の光源のうちの１又は２以上を含むことができる。
【００３２】
照明表示の要素は、重要度値に関連付けることができ、疑似ランダム技術は、重要度サンプリング技術である。
【００３３】
重要度値は、照明表示の要素の輝度に関連する場合がある。照明表示の要素に対する重要度値は、バッファ内の異なるピクセルに対して異なる場合がある。ピクセルの照明値は、フレーム間の視界の変化に対処するように再計画することができる。照明表示の要素に対する相対的重要度を決定する関数への入力は、フレームにわたって永続的である場合がある。照明表示の要素に対する相対的重要度を決定する関数への入力は、フレーム間の視界の変化に基づいて再計画される場合がある。
【００３４】
集積回路製造システムにおいて処理された時に集積回路製造システムをして本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを製造させる集積回路のコンピュータ可読記述を格納した非一時的コンピュータ可読ストレージ媒体を同じく提供する。本明細書に説明するグラフィックス処理ユニットは、ハードウエアに具現化することができる。本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを記述する集積回路のコンピュータ可読記述を格納した非一時的コンピュータ可読ストレージ媒体と、本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを具現化する集積回路の回路レイアウト記述を発生させるように集積回路記述を処理するように構成されたレイアウト処理システムと、回路レイアウト記述に従ってグラフィックス処理ユニットを製造するように構成された集積回路発生システムとを含む集積回路製造システムを同じく提供することができる。
【００３５】
本明細書に説明する方法のいずれかを実行するためのコンピュータプログラムコードを提供することができる。コンピュータシステムで実行された時にコンピュータシステムをして本明細書に説明する方法のいずれかを実行させるコンピュータ可読命令を格納した非一時的コンピュータ可読ストレージ媒体を提供することができる。
【００３６】
上述の特徴は、当業者には明らかであろうが適切な場合に組み合わせることができ、かつ本明細書に説明する実施例の態様のいずれとも組み合わせることができる。
【００３７】
ここで実施例を添付図面を参照して詳細に以下に説明する。
【００３８】
添付図面は、様々な実施例を示している。当業者は、図面内に図示の要素境界（例えば、ボックス、ボックスのグループ、又は他の形状）が境界の一例を表すことを認めるであろう。一部の実施例では、１つの要素が複数の要素として描かれる場合があり、又は複数の要素が１つの要素として描かれる場合がある。共通参照番号は、適切な場合に図を通して類似の特徴を示すのに使用される。
【図面の簡単な説明】
【００３９】
【図１】グラフィックス処理システムを示す図である。
【図２】グラフィックス処理の方法のための流れ図である。
【図３】視点からレンダリングされるシーンを示す図である。
【図４】重要度サンプリング技術を使用して初期照明表示をサンプリングするために実行される段階の一部のための流れ図である。
【図５】光マップがシーン内の位置に対応する方法の実施例を示す図である。
【図６ａ】１６ｘ１６光マップとしてｍｉｐマップされた初期光マップの第１のレベルを示す図である。
【図６ｂ】８ｘ８光マップとしてｍｉｐマップされた初期光マップの第２のレベルを示す図である。
【図６ｃ】４ｘ４光マップとしてｍｉｐマップされた初期光マップの第３のレベルを示す図である。
【図６ｄ】２ｘ２光マップとしてｍｉｐマップされた初期光マップの第４のレベルを示す図である。
【図６ｅ】１ｘ１光マップとしてｍｉｐマップされた初期光マップの第５のレベルを示す図である。
【図７】グラフィックス処理システムが実施されるコンピュータシステムを示す図である。
【図８】グラフィックス処理システムを具現化する集積回路を発生させるための集積回路製造システムを示す図である。
【発明を実施するための形態】
【００４０】
以下の説明は、当業者が本発明を製造かつ使用することを可能にするために一例として提示するものである。本発明は、本明細書に説明する実施形態に限定されず、開示する実施形態への様々な修正は、当業者に明らかであろう。ここで実施形態を以下に単に例示的に説明する。
【００４１】
２つの光マップ、すなわち、初期光マップ（「ソース」光マップと呼ぶことができる）及び跳ね返り光マップ（「デスティネーション」光マップ又は可能であれば「レンダー」光マップと呼ぶことができる）が使用される実施例が本明細書に説明される。跳ね返り光マップは、シーン内の照明を表すためにシーンの画像をレンダリングするのに使用される。初期光マップは、跳ね返り光マップを調節するのに使用することができるシーン内の照明の大体の表示を供給するために構築される。初期光マップ及び跳ね返り光マップは、トポロジー的に同じであり、同じジオメトリバッファを共有する。光マップのテクセルは、各テクセル位置の異なるタイプの複数の値を含有する「ｇ−バッファ」を使用してシーン−空間内の位置の中にマップすることができる。ｇ−バッファは、各光マップテクセルに対して、面法線と、物体上の点が光マップテクセルの中心に対応するその面に対応するシーン−空間内の位置とを格納する。一部の実施例では、跳ね返り光マップの各テクセルに対して、１又は２以上のサンプリング値は、重要度サンプリング技術に従って初期光マップからそれぞれの１又は２以上のテクセルを選択するのに使用される。このようにして、テクセルを選択する可能性は、初期光マップのテクセルの重要度値の大きさに依存する。従って、シーンの重要な領域（例えば、明るい領域）に対応するテクセルは、シーンの重要でない領域（例えば、暗い領域）に対応するテクセルよりも選択される可能性が高い。各選択されたテクセルは、シーン内の位置を決定するためにシーン−空間の中にマップされ、跳ね返り光マップ内のテクセルに対応するシーン−空間内の位置からその位置に向う光線が追跡される。光線が遮られない場合に、初期光マップの選択されたテクセルの照明は、跳ね返り光マップのテクセルの照明に寄与するが、光線が遮られる場合に、初期光マップの選択されたテクセルの照明は、跳ね返り光マップのテクセルの照明に寄与しない。いずれの場合も、跳ね返り光マップの値は、初期光マップのテクセルが選択された確率を説明するように重み付けされる。処理時間及び電力が重要でない場合に、跳ね返りマップの各テクセルでは、テクセルの照明を決定するために、しかし、処理時間及び電力を低減するために（例えば、光マップの焼成がリアルタイムで実行される場合）、あらゆる方向にサンプリング光線が放たれ、限定された数の光線だけが跳ね返りマップの各テクセルから追跡される。本明細書に説明する重要度サンプリング方法を使用することにより、追跡される光線は、シーンのより有意な領域に向けられる可能性が高い。一例では、初期光マップのテクセルの明度又は輝度は、重要度基準の１つとして使用することができる。シーンの明るい領域がテクセルの照明に寄与するので、これは、限定された光線の数に基づいて照明の決定を改善することを助けることができる。
【００４２】
図１は、グラフィックス処理ユニット１０２とメモリ１０４とを含むグラフィックス処理システム１００を示している。グラフィックス処理ユニット１０２は、グラフィックス処理ユニット１０２内でバスを通じて互いに通信することができる面識別論理部１０６、処理論理部１０８、画像バッファ１１０、制御論理部１１２、バッファ１１４（ジオメトリバッファ１１６、直接光マップバッファ１１８、及び跳ね返り光マップバッファ１２０を含む）、及びメモリインタフェース１２２を含む。面識別論理部１０６は、レンダリングされるシーン内の面を識別するように構成される。処理論理部１０８は、１又は２以上の実行コアを含み、かつ面識別論理部１０６によって識別された面のグラフィックスデータを処理するように構成される。画像バッファ１１０は、レンダリングされたピクセル値を格納するように構成される。制御論理部１１２は、グラフィックス処理システム１００の作動を制御するように構成される。処理論理部１０８はまた、レンダリングされるシーン内の照明を示すためにフレームのレンダリング中に使用される跳ね返り光マップのテクセル値（跳ね返り光マップバッファ１２０に格納するための）を決定するように構成される。メモリインタフェース１２２を通じてグラフィックス処理ユニット１０２とメモリ１０４の間でデータを渡すことができる。
【００４３】
グラフィックス処理システム１００の作動の実施例を図２の流れ図を参照して説明する。
【００４４】
シーン内の物体を表すグラフィックスデータが、グラフィックス処理ユニット１０２で受信される。グラフィックスデータは、レンダリングされる物体の面を表すプリミティブを含むことができる。プリミティブは、三角形であることが多いが、他の形態、例えば、パッチ又はｎｕｒｂ、点、線のような他の２次元形状、球体又はボックスのような３次元形状を取ることができる。プリミティブは、頂点のセットによって定めることができ、例えば、３つの頂点が三角形のプリミティブを定める。グラフィックスデータは、シーン内のプリミティブの頂点の頂点データ（例えば、テクスチャデータのような位置データ及び属性データ）及びどの頂点がプリミティブを形成するかを示すためのプリミティブの表示を含むことができる。グラフィックスデータはまた、レンダリングされるシーン内の光源の属性（例えば、位置、方向、色など）を定めることができる。
【００４５】
グラフィックス処理ユニット１０２は、レンダリングされるフレームに対してリアルタイムで跳ね返り光マップを決定するように作動し、決定された跳ね返り光マップを使用して適切な照明でシーンの画像をレンダリングする。一部の実施例では、グラフィックス処理ユニット１０２は、跳ね返り光マップを決定するための漸進的改善方法を実施し、それによってフレームのシーケンスにわたって跳ね返り光マップの値を漸次改善し、シーン内の照明のより正確な表現に向けて収束させることができる。これは、特定のフレームの照明を各フレームに対して新しく計算する必要がないことを意味し、それによってリアルタイムで跳ね返り光マップを決定する場合の処理コストを低減する。これは、跳ね返り光マップがシーン内の照明の正確な表現になる前に少数のフレームを取る場合があることを意味する。
【００４６】
段階Ｓ２０２で、処理論理部は、シーンの初期光表示を決定する。初期照明表示は、シーン内の照明の大体の表現である。例えば、初期照明表示は、直接光マップのテクセル値の形態を取ることができる。「直接」光マップは、シーン内の直接照明の効果を格納する。直接照明は、面位置と光源の間の見通し線の結果として発生するシーン内の面位置の照明である。光線追跡、影マッピング、又は何らかの他の技術を使用して初期直接照明を構成することができる。対照的に、間接照明は、光源と面位置の間の間接経路の結果として、例えば、シーン内の面からの光の１又は２以上の「跳ね返り」又は反射の結果として発生するシーン内の面位置の照明である。
【００４７】
図３は、２つの面３０４1と３０４2を含むシーン３０２の実施例を示している。これは、極めて単純な実施例であり、他の実施例では、シーン内に更に多くの面及び物体が存在する場合がある。図３は、シーン内の物体を照明する２つの光源３０６1及び３０６2を示している。シーンが見られる視点が３０８に示され、レンダリングされるフレームの視野平面が３１０で表されている。
【００４８】
直接光マップは、バッファ１１８に格納される。直接光マップは、エネルギ節約方式で構築される。例えば、直接光マップの各テクセル位置では、シーン内の対応する面位置は、ジオメトリバッファ１１６のデータに従って決定される。影光線は、各光源３０６に向って各テクセル位置に対して面位置から追跡される（例えば、１つの光源につき１つのテクセル当たり１つの光線）。光線が遮られる場合に、光源は、直接光マップのテクセル位置の照明に寄与しないが、光線が遮られない場合に、光源は、直接光マップのテクセル位置の照明に寄与する。光源がテクセル位置の照明に寄与する量は、テクセルがシーン空間で表現する面積、面位置の面法線（ジオメトリバッファ１１６に示される通り）、面位置と光源の間の光線の方向、シーン内の面位置と光源の間の距離、及び光源の明度に依存する。例えば、直接光マップのテクセルに光源によって寄与される光の量は、テクセルに対応する面位置が光に提示する入射表面積の量によって決定される。テクセル照明値への光源の寄与は、光源の明度をシーン空間で変換されたテクセルの面積で乗算することによって決定することができ、テクセルの面法線（ジオメトリバッファ１１６によって表示）と光源に向う光線の方向との間のドット積によって乗算され、ｄ2によって割算され、ここでｄは、シーン内の面位置と光源の間の距離である。これは、シーン空間に投影される時に空間が小さいテクセルよりもシーン空間内の多くの面積を有するテクセルが、これらが光源に対して同じ距離及び方向である場合に最後には輝く傾向があることを意味する。
【００４９】
最初に説明した単純な実施例では、直接光マップ１１８が初期光マップとして使用され、跳ね返り光マップを決定する場合に使用されるシーン内の照明の近似を表している。後で説明するように、他の実施例では、直接光マップを以前のフレームで決定された跳ね返り光マップと組み合わせることによって初期光マップを決定することができる。
【００５０】
段階Ｓ２０４からＳ２１０は、跳ね返り光マップの各テクセルに対して繰り返される。図２に示す実施例では、跳ね返り光マップの各テクセルが処理されるが、他の実施例では、跳ね返り光マップの複数のテクセルが互いに並行に処理される。
【００５１】
段階Ｓ２０４で、処理論理部１０８は、重要度サンプリング技術を使用して初期光マップをサンプリングし、シーン内の１又は２以上の位置を識別する。位置を識別する可能性は、シーン内の位置の中にマップされる初期光マップのテクセルの重要度値に基づいている。段階Ｓ２０４は、異なる実施例で異なる方法で実行することができるが、図４は、段階Ｓ２０４の一部として実行することができる段階の実施例を示している。
【００５２】
図４に示す実施例では、初期光マップ（例えば、直接光マップ）の各テクセルの輝度値は、確率分布関数の重要度値として処理される。明るいテクセルは、統計的にシーン内の照明に寄与するのでサンプリングされる高い確率を有する。
【００５３】
段階Ｓ４０２で、初期光マップの値は、累積関数を決定するために累積される。例えば、確率分布関数は、累積分布関数を形成するために統合される。累積関数は、サンプリングによって特定のテクセルに対して検索することができる単調増加関数である。
【００５４】
段階Ｓ４０４で、１又は２以上のサンプリング値が選択される。サンプリング値は、指定された範囲内、例えば、０から１の範囲内で、又は０から初期光マップの合計重要度までの範囲内でランダムに選択することができる。例えば、サンプリング値の表は、グラフィックス処理ユニット１０２に（例えば、バッファ１１４に）格納することができ、処理ユニット１０８は、表を参照してサンプリング値を決定することができる。サンプリング値は、Ｈａｌｔｏｎシーケンス又はＨａｍｍｅｒｓｌｅｙセットのような低矛盾シーケンスに従って選択することができる。これは、許容されるサンプリング値の範囲にわたる優良なカバレージを提供する。サンプリング値の数が増加する時に、Ｈａｌｔｏｎシーケンスのような低矛盾シーケンスを使用すると、範囲にわたるカバレージは良くなる。これに代えて、サンプリング値は、ランダム又は疑似ランダムに、又は層別抽出法又は別の準モンテカルロ技術に従って選択することができる。
【００５５】
段階Ｓ４０６で、選択されたサンプリング値の各々が累積関数内の位置の中にマップされる。換言すると、選択されたサンプリング値は、累積関数内のそれぞれの位置を識別するのに使用される。例えば、サンプリング値が０から初期光マップの合計重要度までの範囲内で選択することができる場合である。最終テクセル位置では初期光マップテクセル値の全てが累積されているので、累積関数の値は、第１のテクセル位置のゼロ（又はゼロに近い）から最大で最終テクセル位置の初期光マップの合計重要度に実質的に等しい値までの範囲に及んでいる。段階Ｓ４０６は、テクセル位置での値が最初にサンプリング値よりも大きくなる累積関数のテクセル位置を決定する段階を伴う可能性がある。累積関数の性質のために、テクセル位置を識別する可能性は、このテクセル位置の初期光マップのテクセル内の値に線形依存する。
【００５６】
段階Ｓ４０８で、段階Ｓ４０６で識別された初期光マップ内の位置は、ジオメトリバッファ１１６を使用してワード空間の中にマップされ、シーン内の対応する位置を識別する。
【００５７】
図５は、跳ね返り光マップ５０２の一部と初期光マップ５０４の一部の実施例を示している。図５はまた、レンダリングされるシーン内の３つの面５１０1、５１０2、及び５１０3を示している。跳ね返り光マップ５０２のテクセル５０６は、段階Ｓ２０４からＳ２１０で現在処理されているテクセルである。テクセル５０６は、面５１０1上の面位置５１４に対応する。初期光マップ５０４のテクセル５０８1及び５０８2は、段階Ｓ４０６で識別されていたものである。段階Ｓ４０８で、テクセル５０８1は、面５１０2上の面位置５１６1にマップされていたものであり、テクセル５０８2は、面５１０3上の面位置５１６2にマップされていたものである。
【００５８】
段階Ｓ２０６で、処理論理部１０８は、識別された面位置５１６1及び５１６2の各々に向けて位置５１４からのサンプリング光線（５１２1及び５１２2）を追跡する。図５は、シーンのグラフィックスのあらゆる要素、例えば、プリミティブとすることができるシーン内の閉塞５１８を示している。閉塞５１８は、光線５１２2を塞ぐが光線５１２1は塞がない。光線５１２1５１２2を追跡した結果は、サンプリング光線が閉塞（例えば、閉塞５１８）に衝突するか否かを示している。
【００５９】
段階Ｓ２０８で、処理論理部１０８は、段階Ｓ２０６のサンプリング光線の追跡の結果を使用して現在のテクセル位置（例えば、図５に示すテクセル５０６に対応する）の照明値を決定する。例えば、光線が遮られることなく識別された面位置に当たる場合に、初期光マップの対応するテクセル内の値は、跳ね返り光マップの現在のテクセルの照明に寄与するが、光線が識別された面位置に達する前に遮られる場合に、初期光マップの対応するテクセル内の値は、跳ね返り光マップの現在のテクセルの照明に寄与しない。例えば、光線５１２1は位置５１４と識別された面位置５１６1の間では遮られず、跳ね返り光マップ５０２のテクセル位置５０６の照明値は、初期光マップ５０４のテクセル値５０８1に基づいて決定される。しかし、光線５１２2は、位置５１４と識別された面位置５１６2の間で（閉塞５１８により）遮られ、跳ね返り光マップ５０２のテクセル位置５０６の照明値は、初期光マップ５０４のテクセル値５０８2に基づく寄与を受けない。しかし、テクセル値は、初期光マップ５０４のテクセル５０８2を選択する確率に基づいて調節される。特に、テクセル内の値は、特定のサンプルを選択する可能性（すなわち、テクセル５０８2を選択する確率）に反比例して修正することができる。
【００６０】
段階Ｓ２０８は、位置５１４と位置５１６1の間の距離に基づいてテクセル５０６の照明を決定することができる。例えば、サンプリング光線５１２1が遮られない面位置５１６1が面位置５１４1に近い場合に、面位置５１４の照明は、面位置５１６1が面位置５１４1から遠く離れている場合よりも面位置５１６1の照明によって影響を受ける。例えば、ｄがシーン内の面位置５１４と５１６1の間の距離である場合に、照明の効果は、１／ｄ2によって減少する。
【００６１】
テクセル５１４の照明寄与は、デスティネーションテクセル５１４に関連付けられた標準値とサンプリング光線５１２の方向の間の角度の関数に基づいて更に修正することができる。更に、寄与は、ソーステクセル５１６1に関連付けられた標準値とサンプリング光線５１２の方向の関数によって更に修正することができる。これらの関数は、そのそれぞれの材料に関連付けられた反射分布関数（ＢＲＤＦ及び／又はＢＳＤＦ）を表すように意図される。単純余弦関数が完全乱反射効果に使用されることが多い。
【００６２】
更に、一部の実施例において、照明表示は、方向付けされた照明値として格納することができる。全ての材料が完全に拡散的というわけではなく、そのためにそれらは、全てが球面で面から均一に入射光を再放射するわけではない。一部の材料（ほとんどの材料）は、強力な鏡面成分を有し、入射方向から鏡面方向に光を放射する。材料は、ＢＲＤＦ又はＢＳＤＦ（双方向反射分布関数又は双方向散乱分布関数）によって説明することができる。例示的に、光マップの各テクセル（５０２及び／又は５０４）は、方向付け関数として格納することができる。これは、面位置での照明が、面位置が見られる方向に依存することを意味する。これは、面位置での面法線に依存する場合がある。例えば、光マップは、各テクセル位置に対して、方向の関数として照明を表す球面調和成分を格納することができる。例えば、面が反射し、１つの方向から強く照明される場合に、この面は、光の反射の角度に対応する方向から明るく見える。これは、ガラス及び水のような反射率の高い面からの鏡面反射では特に真であるが、反射しない面でも真である。この場合では、段階Ｓ２０８は、位置５１４と位置５１６1の間の方向に基づいて、すなわち、サンプリング光線５１２1が面位置５１６1と衝突する方向に基づいてテクセル５０６の照明を決定することができる。
【００６３】
従って、跳ね返りマップの現在のテクセル（例えば、跳ね返りマップ５０２のテクセル５０６）の照明値を決定することができる。
【００６４】
段階Ｓ２１０で、処理論理部１０８は、処理する跳ね返り光マップのテクセルがまだあるか否かを決定する。ある場合に、本方法は、段階Ｓ２０４に戻り、段階Ｓ２０４が跳ね返り光マップの別のテクセルに繰り返される。一部の実施例では、段階Ｓ２０４からＳ２１０は、各反復で跳ね返りマップの１又は２以上のテクセルのセットに実行することができる。
【００６５】
段階Ｓ２１０で、処理する現在のフレームの跳ね返り光マップのテクセルがもうないと決定された場合に、跳ね返り光マップが決定される。決定された跳ね返り光マップは、バッファ１２０に格納することができる。段階Ｓ２１２で、跳ね返り光マップは、シーンの画像をレンダリングするのに使用される。特に、シーンの画像は、跳ね返り光マップを使用してレンダリングされ、シーン内の照明を決定する。跳ね返り光マップは、シーンの全体照明（ＧＩ）を近似するのに使用される。シーンのレンダリングは、公知の技術に従って実行することができ、レンダリング段階Ｓ２１２の詳細などは本明細書で詳しく説明する。要約すると、レンダリングは、面識別論理部１０６を使用して視点３０８からレンダリングされる画像の各ピクセル位置（例えば、視野平面３１０における）のシーンの可視の面を識別する段階、及び各ピクセル位置に対して処理論理部１０８の１又は２以上の陰影付けプログラムを実行してピクセルの画像値を決定する段階を伴う可能性がある。陰影付けプログラムは、現在のフレームに対して決定されている跳ね返り光マップを使用して、画像位置に対応する面位置での照明を決定することができる。跳ね返り光マップは、テクスチャに類似の方法に使用することができ、例えば、座標（ｕ、ｖ）を有する光マップをサンプリングして光マップテクセル値間を補間し、レンダリングされるピクセルに対応する特定の面位置に対する照明値を決定することができる。
【００６６】
一部の実施例では、跳ね返り光マップは、方向付けされた値を含有する場合がある。この場合では、可視の面の面法線は、跳ね返り光マップから検索される照明を決定するのに使用される。
【００６７】
一部の実施例では、本方法は、跳ね返り光マップのテクセルの全てに対して繰り返さなくてもよい。例えば、本方法は、シーンがレンダリングされる時に可視の面上にマップされる光マップのテクセルだけに実行することができる。跳ね返り光マップがシーンに変換される時に、跳ね返り光マップの一部の部分は、視点（例えば、３０８）から見ることができ、跳ね返り光マップの他の部分は、視点から見ることができない。従って、シーンの視点からの視認性に基づいて処理するための跳ね返り光マップのテクセルの部分集合を選択することができる。これは、シーンをレンダリングする時に使用されない跳ね返り光マップのテクセルを決定する段階に伴う処理を防ぐ。更に、跳ね返り光マップのテクセルは、レンダリングされるフレームへのそれぞれの寄与に基づいて優先順位を付けることができ、寄与の決定は、近似とすることができ、及び／又は優先順位付けは、粗いとすることができる。テクセルの寄与は、テクセルに関連のレンダリングされるピクセルの数により、又は例えばシーンのテクセルの位置によって決定することができる。場合によっては、例えば、フレームがレンダリングされる時に跳ね返り光マップがリアルタイムで決定される場合に、跳ね返り光マップの適切なテクセルの全てを完全に決定することはできず、跳ね返り光マップの重要なテクセルに優先順位を付けることが有用である。テクセルの優先順位付けは、例えば、１つのテクセルが跳ね返り光マップの他のテクセルより早く決定されること、又は多くのサンプリング光線が他のテクセルに比較して１つのテクセルに対して追跡されることを意味する。
【００６８】
跳ね返り光マップは、フレームがレンダリングされる時にリアルタイムでフレームのシーケンスのうちの各フレームに対して決定することができる。シーケンスの第１のフレームでは、直接光マップ（バッファ１１８に格納）を初期光マップとして使用することができ、現在のフレームの跳ね返り光マップを決定するのに使用される（次に、バッファ１２０に格納される）。
【００６９】
次のフレームでは、現在の直接光マップが段階Ｓ２０４で計算され、現在のフレームに対する初期光マップを決定するために以前のフレームの跳ね返り光マップと結合される。これに代えて、初期照明は、直接光マップと以前に作成された跳ね返り光マップの両方からサンプリングすることができ、２つが必ずしも同じバッファに存在する必要はない。
【００７０】
更に、これらの次のフレームに対して、跳ね返り光マップ内のテクセル位置に対する照明値を決定する段階は、段階Ｓ２０６でサンプリング光線を追跡した結果に基づいてテクセル位置に対する既存の照明値を更新する段階を含む。例えば、移動平均は、フレームのシーケンスにわたって跳ね返り光マップの照明値に維持することができる。移動平均は、跳ね返り光マップの値の対数減衰を達成することができ、それによって新しい照明値は、古い照明値よりも重く重み付けされる。対数関数の底は、初期照明表示が変化する速度を含む外部ファクタに応答して変えることができる。例えば、シーン内の照明が迅速に変化する場合に、古い照明がシーン内の現在の照明を表さないので、対数関数は迅速に減衰される。一部の実施例では、移動平均は、分子及び分母を別々に増分することによって漸進的改善効果を生成することができる。
【００７１】
段階Ｓ４０２で、初期光マップの値が累積される場合に、値は、あらゆる適切な順序、例えば、ラスタ走査順序又は牛耕式順序で累積することができる。しかし、特定の実施例では、初期光マップの値は、初期光マップのタイルに累積される。例えば、初期光マップテクセル内の値は、異なる解像度の初期光マップを表すｍｉｐマップされた光マップのセットを形成するために累積することができる。これは、段階Ｓ４０６、すなわち、サンプリング値を使用して累積関数を用いて位置を識別する段階を実行することができる速度を大いに改善することができる。例えば、図６ａから６ｅは、初期光マップの異なるｍｉｐマップされたレベルを表している。特に、図６ａは、１６ｘ１６初期光マップ６０２を示し、図６ｂは、８ｘ８初期光マップ６０４を示し、図６ｃは、４ｘ４初期光マップ６０６を示し、図６ｄは、２ｘ２初期光マップ６０８を示し、図６ｅは、１ｘ１初期光マップ６１０を示している。初期光マップの異なるレベルは、段階２０２で決定することができる。例えば、初期光マップは、高精細解像度６０２（例えば、図６ａに示す単純な実施例の１６ｘ１６）で決定することができ、低ｍｉｐマップレベル光マップ６０４は、現在の光マップ６０２のブロック（例えば、２ｘ２ブロック）を平均化することによって生成することができる。これは、最低レベルのｍｉｐマップされた光マップ６１０が生成されるまで異なるｍｉｐマップレベルに繰り返すことができる。
【００７２】
この実施例では、段階Ｓ４０６で、最低解像度ｍｉｐマップ初期光マップ６１０から最高解像度ｍｉｐマップ初期光マップ６０２までの順序でｍｉｐマップ初期光マップに対してサンプリング値を処理することができる。この場合に、高精細解像度以外の各ｍｉｐマップされたレベルでは、処理論理部１０８がテクセルの２ｘ２ブロックを考え、下降するテクセルを決定し、それによって次に高精細の解像度のｍｉｐマップされたレベルのテクセルの２ｘ２ブロックを識別する。ｍｉｐマップされた光マップ６０２では、テクセルの１つが選択され、それによってテクセル位置を識別する。これは、各ｍｉｐマップされたレベルのごく僅かの（例えば、４つだけの）テクセルが考慮されて特定のサンプリング値のテクセル位置を識別することを意味する。これは、二分探索処理と呼ぶことができる。これは、サンプリング値を初期光マップのテクセル位置の中にマップする段階に伴う処理の量を大いに低減することができる。
【００７３】
図６ａから６ｅに示す実施例を参照すると、光マップ６１０は、初期光マップの平均輝度が０．３５であることを示している。高精細解像度光マップ６０２が２５６テクセルを有するので、画像の合計輝度は、０．３５*２５６＝８９．６であるので大体８９．６である（光マップ６０２の値の実際の和は８９．１であり、丸め誤差のために８９．６とは異なる）。現実の実施では（図６ａから６ｅに示す極めて単純化された実施例ではなく）、テクセル値は、より多くのビットで表現され、例えば、テクセル値は、３２ビット浮動小数として表すことができ、それによって丸め誤差は重要でなくなる。
【００７４】
光マップの値が平均である（合計ではない）実施例では、サンプリング値は、０から１の範囲から選択される。光マップの値が合計値である他の実施例では、サンプリング値は、０から初期光マップの合計エネルギまでの範囲内（例えば、図６ａから６ｅに示すこの実施例では０から８９．６までの範囲）で選択することができる。合計値と平均値の差は、値の個数による乗数であることだけである。
【００７５】
合計は、１つには浮動点値の精度の利用のために及び１つには少ない演算作動の実行のための精度の数ビットの損失のために平均よりも良く実行することができ、すなわち、割算作動を節約する。
【００７６】
０．５のサンプリング値に対する実施例を以下に説明し、これは、ランダムに又は何らかの他の選択方式に従って例えば上述のように低矛盾シーケンスに従って選択することができる。以下に説明するように、０．５のサンプリング値は、初期光マップ６０２の１０番目の行の第１のテクセル位置（１．０の値を有する）にマップされ、図６ａでは太線で６１８に示されている。０．５のサンプリング値は、０．５*初期光マップの合計輝度にわたる累積値を取るテクセル位置を識別するはずであり、初期光マップ６０２の大体中央にあるテクセル位置が識別されるのは予想することができる。この検索方法は、再帰的方法又は異なる設計実施によるループとして実施することができる。
【００７７】
サンプリング値は、光マップ６１０によって与えられる平均輝度値によって乗算され、０．１７５の検索値を与える（すなわち、０．５*０．３５＝０．１７５）。検索値は、０．７を与えると考えられるテクセルの数によって乗算される（すなわち、０．１７５*４＝０．７）。光マップ６０８のテクセルの１つは、ある順序、すなわち、（ｉ）上部左、（ｉｉ）上部右、（ｉｉｉ）下部左、次に（ｉｖ）下部右に累積される時に４つのテクセルのどれが最初に検索値を超えるかを見出すことによって下降するように選択される。従って、この場合に、光マップ６０８の上部左テクセルは、上部左テクセルが下降しないように０．７よりも下である０．３２の値を有し、光マップ６０８の上部右テクセルは、上部右テクセルが下降しないようにこの点の累積値が０．７よりも下である０．６７（すなわち、０．３２＋０．３５＝０．６７）であるように０．３５の値を有し、下部左テクセルが下降するようにこの点の累積値が０．７よりも上の０．９４（すなわち、０．３２＋０．３５＋０．２７＝０．９４）になるように、光マップ６０８の下部左テクセルは、０．２７の値を有する。
【００７８】
従って、光マップ６０６に対して、破線６１２に示すテクセルの下部左２ｘ２ブロックが考慮される。検索値は、０．７を超えないように最後の累積値を引いた検索値の残りによって乗算されたブロック６１２のテクセルの数（すなわち、４）に設定され、すなわち、検索値は、４*（０．７−０．６７）＝０．１２であるので０．１２になるように設定される。光マップ６０６からのテクセル６１２の下部左２ｘ２ブロックのテクセルの１つは、（ｉ）上部左、（ｉｉ）上部右、（ｉｉｉ）下部左、次に（ｉｖ）下部右の順序で累積された時に４つのテクセルのどれが最初に検索値を超えるかを見出すことによって下降するように選択される。従って、この場合に、２ｘ２ブロック６１２の上部左テクセルは、２ｘ２ブロックの上部左テクセル６１２が下降するように０．１２よりも上である０．３８の値を有する。
【００７９】
従って、光マップ６０４に対して、破線で示されたテクセルのブロック６１４が考慮される。検索値は、０．１２を超えないように最後の累積値を減算した検索値の残りによって乗算されたブロック６１４のテクセルの数（すなわち、４）になるように設定され、すなわち、検索値は、４*（０．１２−０）＝０．４８であるので０．４８になるように設定される。光マップ６０４からのテクセルのブロック６１４のテクセルの１つは、（ｉ）上部左、（ｉｉ）上部右、（ｉｉｉ）下部左、次に（ｉｖ）下部右の順序で累積された時に４つのテクセルのどれが最初に検索値を超えるかを見出すことによって下降するように選択される。従って、この場合に、２ｘ２ブロック６１４の上部左テクセルは、２ｘ２ブロック６１４の上部左テクセルが下降するように０．４８よりも上の０．７５の値を有する。
【００８０】
従って、光マップ６０２に対して、破線で示されたテクセルのブロック６１６が考慮される。検索値は、０．４８を超えないように最後の累積値を減算した検索値の残りによって乗算されたブロック６１６のテクセルの数（すなわち、４）になるように設定され、すなわち、検索値は、４*（０．４８−０）＝１．９２であるので１．９２になるように設定される。光マップ６０４からのテクセルのブロック６１６のテクセルの１つは、（ｉ）上部左、（ｉｉ）上部右、（ｉｉｉ）下部左、次に（ｉｖ）下部右の順序で累積された時に４つのテクセルのどれが最初に検索値を超えるかを見出すことによって識別される。従って、この場合に、２ｘ２ブロック６１６の上部左テクセルは、上部左テクセルが識別されないように１．９２よりも下の１．０の値を有し、ブロック６１６の上部右テクセルは、上部右テクセルが識別されないように、この点の累積値が１．９２よりも下の１．５（すなわち、１．０＋０．５＝１．５）であるように０．５の値を有し、ブロック６１６の下部左テクセルは、下部左テクセル６１８が識別されるように、この点の累積値が、１．９２よりも上である２．５（すなわち、１．０＋０．５＋１．０＝２．５）であるように１．０の値を有する。
【００８１】
本方法によって識別される正しいテクセルは、サンプリング値の値に応答して変わるが、全体的に、特定のテクセルを識別する可能性は、特定のテクセル内の値に正比例する。例えば、０．０の値を有するテクセルは、本方法によっては識別されず、１．０の値を有するテクセルは、０．５の値を有するテクセルよりも識別される可能性が２倍になる。
【００８２】
ランダムに又は何らかの他の選択方式に従って例えば上述のように低矛盾シーケンスに従って選択することができる０．９のサンプリング値の実施例を以下に説明する。０．９のサンプリング値は、０．５の値を有する図６ａに太線で示されたテクセル６２０にマップされる。０．９のサンプリング値は、０．９*初期光マップの合計輝度にわたる累積値を取るテクセル位置を識別するはずであり、初期光マップ６０２を通る道のテクセル位置の大体９０％が識別されるのは予想することができる。当業者は、０．９のサンプリング値がテクセル６２０にどのようにマップされるかを決定するために、０．５のサンプリング値がテクセル６１８にどのようにマップされるかの上述の解説を用いるが、あるガイダンスでは、光マップ６０８の下部右テクセルが下降し（０．４７の値を有する）、光マップ６０６の下部右２ｘ２ブロックの下部左テクセルが下降し（０．３８の値を有する）、光マップ６０４の対応するブロックの下部左テクセルが下降し（０．７５の値を有する）、光マップ６０２の対応するブロックの上部左テクセル６２０が識別される（０．５の値を有する）。上述のように、０．５の値を有するテクセルの識別は、１．０の値を有するテクセルを識別する可能性の半分であるが、有効な結果である。
【００８３】
上述の実施例では、初期照明表示は、光マップの形態を取る。他の実施例では、光エネルギを複数の初期光マップ間に拡散することができ、それによって重要度サンプリングが、１つよりも多い場所から合計エネルギに働き掛けることができる。更に、適切な場所にマップするための機構が存在する限り、光マップは光マップのない光源と相互混合される（光マップ、空の画像のような画像ベースの光、エリア光、スポットライト、ポイント光（ゼロに近づいていく距離によって発生する特異点を避けるために最小半径及び従って有限のエネルギを有する））。照明のこれらの異なる表示から、合計光の近似は、サンプリング値を特定の光マップの特定の光源（テクセル）にマップされる場合に使用する何らかの形態で決定することができる。メタ−テーブルを使用して、どのマップ又は他のソースからどのくらいの寄与及び／又はどのくらいの重要度が発生するかを追跡することができる。
【００８４】
更に、距離は、重要度値におけるファクタとすることができる。単純に光マップの輝度値である重要度値ではなく、重要度値は、テクセルの輝度値（Ｌ）と、テクセル位置に対応するシーン内の位置と処理される跳ね返り光マップ内のテクセルに対応するシーン内の位置との間の距離（ｄ）（例えば、位置５１６1と５１４の間の距離）との何らかの組合せとすることができる。例示的に重要度値（Ｉ）をＩ＝Ｌ／ｄ2として決定することができる。この場合に、重要度値は、処理される跳ね返り光マップのテクセルに依存する。従って、異なる重要度値が、処理される跳ね返り光マップの各テクセルに対して決定される。最高輝度点が最重要度である（すなわち、Ｉ＝Ｌ）として扱われる上述の単純な技術は平均で真であるが、我々が現在照明を評価している跳ね返り光マップの特定のテクセルで真でない場合がある。距離低下が合計エネルギに考慮される跳ね返り光マップの各テクセルの光マップの個別のセットを計算することは優良な結果を提供することができるが、実施する場合に計算的に非常に高価になり、跳ね返り光マップがリアルタイムで焼成されることが意図される場合に実行できない場合がある。従って、処理を単純化するために、テクセルをまとめて分類し（例えば、互いに近いシーン位置に対応するテクセルのブロック、例えば、テクセルの１６ｘ１６ブロック又はテクセルの何らかの他のサイズ／形状ブロックに）、グループの各々の重要度値を決定することができる（例えば、初期光マップのテクセルの各々までのグループの異なる位置の平均距離に基づいて）。異なる領域の相対的重要度は、その位置に応答して異なるサンプル点で様々に評価することができる。
【００８５】
テクセルのグループは、階層的に格納することができ、有界容積階層又は類似の構造を使用してグループ全体の大体の距離を迅速に計算することができ、これは、次に、跳ね返り光マップの与えられたテクセルを評価するためにテクセル又はテクセルのセットの重要度を達成することができる。
【００８６】
一般的に、重要度サンプリングとは、基本的には、サンプルにランダムに到着する確率の逆である減衰を我々が印加することを意味する。いずれの重要度関数も、我々が同じ重要度関数を通じて与えられたサンプル点（照明を受け入れる点、又は跳ね返り光マップのテクセル）のサンプルの全てを常にマップすることができる限り正確な結果を生成するはずである（性能は変化する場合がある）。
【００８７】
別の最適化として、方向は、重要度値のファクタとすることができる。単純に光マップ内の輝度値（Ｌ）又は
2017188093.tif 000003
である重要度値ではなく、重要度値は、テクセルの輝度値（Ｌ）（及び可能であれば距離ｄ）と、初期照明マップのテクセル位置に対応するシーン内の位置と処理される跳ね返り光マップのテクセル位置に対応するシーン内の位置との間の光線の方向(
2017188093.tif 000004
)（例えば、位置５１６1と５１４の間の光線５１２1の方向）との何らかの組合せとすることができる。例示的に、重要度値（Ｉ）は、
2017188093.tif 000005
として決定することができ、ここで
2017188093.tif 000006
は、位置５１６1の面の面法線方向である（ジオメトリバッファ１１６に示す）。初期光マップのテクセル値が、方向付けされた値（例えば、球面調和成分）である場合に、重要度値は、これらの成分の方向、並びに光線の方向
2017188093.tif 000007
及び面法線
2017188093.tif 000008
を説明することができる。重要度値は、処理される跳ね返り光マップ内のテクセルに対応する面位置５１４の面法線を説明することができる。従って、我々は、平均して、その特定の散乱方向によって初期光マップ要素に向けてより多くのサンプリング光線を送ることができる。
【００８８】
上述の実施例では、重要度値は、初期光マップの要素の輝度値に全体的に又は部分的に基づいている。他の実施例では、重要度値は、初期照明表示の既知の変更に全体的に又は部分的に基づく場合がある。例えば、既知の変更は、現在のフレームの初期照明表示と以前のフレームの初期照明表示との間の差異を含むことができる。重要度が高く変更された領域を作ることは、サンプリング光線が、変更された領域に向けて追跡される可能性が高いことを意味している。変化していない照明効果が、以前のフレームからの跳ね返り光マップに既に表されているので、跳ね返り光マップが少数のフレームにわたって反復して調節される時にこれは有用であるが、変化する照明は、以前のフレームの跳ね返り光マップを使用することによって良くは表現されない。
【００８９】
上述の例は、跳ね返り光マップを焼成するための重要度サンプリングを使用する。すなわち、上述の重要度サンプリング技術は、直接光マップが、データを非常に有利な方式で間接光マップに焼成することを可能にし、非常に優雅なパイプラインをもたらし、我々が焼成した跳ね返り光マップ（以前のフレームに対して、例えば、フレームのシーケンス内の直前のフレーム）をフレームのシーケンスにわたって第２、第３、第４のような世代跳ね返り光になるように新しい直接照明と統合することができる（現在のフレームのために）。しかし、他の実施例では、重要度サンプリング技術を他の目的に使用することができる。シーン内の照明を表すための直接光マップを有することは、ピクセルをレンダリングする処理の一部として上述の方法を使用して照明（複数の跳ね返りのための）をサンプルすることができることを意味する。これは、処理コストに関して実施するのに効率的ではないが、潜在的には、以前のフレームに対して決定された照明情報に頼らないので品質は良く、可視の面上の光マップの解像度によって限定されることがない。
【００９０】
一部の実施例では、位置の限定されたセットは、追跡されるサンプリング光線に向けて識別され、これらの識別された位置は、サンプリング光線を追跡するために跳ね返り光マップのテクセルのセット間で共有される。これは、位置を跳ね返り光マップの各テクセルに対して識別する必要がなく、かつサンプリング光線を跳ね返り光マップのテクセルのセットに対して同じ位置に向けて追跡することができることを意味する。
【００９１】
一部の実施例では、初期照明表示の要素は、対応する点の空間位置に基づいて階層に編成される。他の実施例では、初期照明表示は、方向付けされた照明値であり、初期照明表示の要素は、方向付けされた照明値に格納された値の支配的な方向に基づいて階層に編成される。
【００９２】
追加の実施形態において、複数の重要度関数をサンプル光線方向の選択に考慮することができる。例えば、予め決められたデスティネーションへの視認性を評価するように選択された光線は、推計学的に選択された方向を有し、予め決められたデスティネーションのない光線と相互混合される。これを使用して、照明された面又は光マップに同時に寄与する照明のいくつかの異なるタイプを評価することができる。異なる光源の相対的重要度は、異なるサンプリング位置から変化することがあり、それによってある一定の光線放出挙動を選択する相対的な可能性又は放出される光線の比率が重要度決定によって影響を受ける。
【００９３】
本明細書に説明する実施例では、「光」は、可視光を表す傾向がある。しかし、本明細書に説明する原理は、可視光を表すための光線を必要としない。例えば、一般的に、「光」は、非可視の電磁放射線、無線信号、及び音響振動、弾道運動、及び流体力学を含むあらゆる伝播現象を表すことができる。
【００９４】
図７は、本明細書に説明するグラフィックス処理システムを実施することができるコンピュータシステムを示している。コンピュータシステムは、ＣＰＵ７０２、ＧＰＵ７０４、メモリ７０６、及びディスプレイ７１０、スピーカ７１２、及びカメラ７１４のような他のデバイス７１８を含む。ＧＰＵ７０４は、上述のＧＰＵ１０２に相当することができる。メモリ７０６は、上述のメモリ１０４に相当することができる。コンピュータシステムの構成要素は、通信バス７１６を通じて互いに通信することができる。
【００９５】
グラフィックス処理ユニット１０２は、いくつかの機能ブロックを含むように示されている。これは単に概略であり、そのようなエンティティの異なる論理要素間の厳密な区分を定めるように意図していない。各機能ブロックは、あらゆる適切な方法で提供することができる。グラフィックス処理ユニットによって形成される本明細書に説明する中間値は、あらゆる点でグラフィックス処理ユニットによって物理的に生成する必要はなく、単に入力と出力間でグラフィックス処理ユニットによって実行される処理を便宜上説明する論理値を表すことができることは理解されるものとする。
【００９６】
本明細書に説明するグラフィックス処理ユニットは、集積回路のハードウエアに実施することができる。本明細書に説明するグラフィックス処理ユニットは、本明細書に説明する方法のいずれも実行するように構成することができる。一般的に、上述の機能、方法、技術、又は構成要素のいずれも、ソフトウエア、ファームウエア、ハードウエア（例えば、固定論理回路）、又はこれらのあらゆる組合せに実施することができる。「モジュール」、「機能」、「構成要素」、「要素」、「ユニット」、「ブロック」、及び「論理部」という語は、ソフトウエア、ファームウエア、ハードウエア、又はこれらのあらゆる組合せを一般的に表すために本明細書に使用される場合がある。ソフトウエア実施の場合に、モジュール、機能、構成要素、要素、ユニット、ブロック、又は論理部は、プロセッサで実行される指定されたタスクを実行するプログラムコードを表している。本明細書に説明するアルゴリズム及び方法は、プロセッサにアルゴリズム／方法を実施させるコードを実行する１又は２以上のプロセッサによって実施することができる。コンピュータ可読ストレージ媒体の例には、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、光学ディスク、フラッシュメモリ、ハードディスクメモリ、及び磁気、光学などの技術を使用することができる他のメモリデバイスが含まれ、命令又は他のデータを格納して、機械によってアクセス可能である。
【００９７】
本明細書に使用するコンピュータプログラムコード及びコンピュータ可読命令という語は、機械言語、変換言語、又はスクリプト言語で表現されるコードを含むプロセッサに対して実行可能なコードのいずれの種類も指している。実行可能コードは、バイナリコード、機械コード、バイトコード、集積回路を定めるコード（ハードウエア記述言語又はネットリストなど）、及びＣ、Ｊａｖａ（登録商標）、又はＯｐｅｎＣＬのようなプログラミング言語コードで表されるコードを含む。実行可能コードは、例えば、仮想機械又は他のソフトウエア環境で適切に実行、処理、解釈、コンパイル、実行された時に、実行可能コードがサポートされたコンピュータシステムのプロセッサをしてコードによって指定されたタスクを実行させるあらゆる種類のソフウエア、ファームウエア、スクリプト、モジュール、又はライブラリとすることができる。
【００９８】
プロセッサ、コンピュータ、又はコンピュータシステムは、命令を実行することができる処理機能を有するあらゆる種類のデバイス、機械、又は専用回路、又はこれらの集合又は一部とすることができる。プロセッサは、ＣＰＵ、ＧＰＵ、システムオンチップ、状態機械、媒体プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理アレイ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなあらゆる種類の汎用又は専用プロセッサとすることができる。コンピュータ又はコンピュータシステムは、１又は２以上のプロセッサを含むことができる。
【００９９】
望ましい機能を実行するために集積回路を設計するのに又はプログラマブルチップを構成するのに使用される場合に、ＨＤＬ（ハードウエア記述言語）ソフトウエアのような本明細書に説明するハードウエアの構成を定めるソフトウエアを収容することも意図される。すなわち、集積回路製造システムにおいて処理される時に本明細書に説明する方法のいずれかを実行し、又は本明細書に説明するあらゆる装置を含むグラフィックス処理ユニットを製造するように構成されるグラフィックス処理ユニットを製造するようにシステムを構成する集積回路定義データセットの形態でコンピュータ可読プログラムコードを符号化するコンピュータ可読ストレージ媒体を提供することができる。集積回路定義データセットは、例えば、集積回路記述とすることができる。
【０１００】
集積回路定義データセットは、例えば、ネットリスト、レジスタ転送レベル（ＲＴＬ）コードとして、Ｖｅｒｉｌｏｇ又はＶＨＤＬのようなハイレベル回路表現として、及びＯＡＳＩＳ（ＲＴＭ）及びＧＤＳＩＩのような低レベル回路表現として含むあらゆるレベルの集積回路を定めるハードウエア記述言語としてプログラマブルチップを構成するためのコードとしてのコンピュータコードの形態とすることができる。表現によって定義されるように集積回路の製造定義を生成するために、論理的に集積回路（ＲＴＬなど）を定めるハイレベル表現は、回路要素の定義及びこれらの要素を結合するための規則を含むソフトウエア環境の関連で集積回路の製造定義を生成するように構成されたコンピュータシステムにおいて処理することができる。機械を定めるためにコンピュータシステムにおいて実行するソフトウエアを備えた場合に一般的であるように、１又は２以上の中間ユーザ段階（例えば、指令、変数などを提供）をこの集積回路の製造定義を生成するために集積回路を定めるコードを実行するための集積回路の製造定義を生成するように構成されたコンピュータシステムに対して要求することができる。
【０１０１】
グラフィックス処理ユニットを製造するように本発明のシステムを構成するために集積回路製造システムにおいて集積回路定義データセットを処理する実施例を図８に関してここで説明する。
【０１０２】
図８は、レイアウト処理システム８０４及び集積回路発生システム８０６を含む集積回路（ＩＣ）製造システム８０２の実施例を示している。ＩＣ製造システム８０２は、ＩＣ定義データセット（例えば、本明細書の実施例のいずれかで説明したグラフィックス処理ユニットを定める）を受信し、ＩＣ定義データセットを処理し、かつＩＣ定義データセットに従ってＩＣを発生させる（例えば、本明細書の実施例のいずれかに説明したグラフィックス処理ユニットを実施する）ように構成される。ＩＣ定義データセットの処理は、本明細書の実施例のいずれかで説明したグラフィックス処理ユニットを実施する集積回路を製造するようにＩＣ製造システム８０２を構成する。
【０１０３】
レイアウト処理システム８０４は、ＩＣ定義データセットを受信及び処理して回路レイアウトを決定するように構成される。ＩＣ定義データセットから回路レイアウトを決定する方法は、当業技術で公知であり、例えば、論理構成要素（例えば、ＮＡＮＤ、ＮＯＲ、ＡＮＤ、ＯＲ、ＭＵＸ、及びＦＬＩＰ−ＦＬＯＰ構成要素）の点で、発生される回路のゲートレベル表現を決定するためにＲＴＬコードを合成する段階を収容することができる。回路レイアウトは、論理構成要素の位置情報を決定することによって回路のゲートレベル表現から決定することができる。これは、回路レイアウトを最適化するために自動的に又はユーザの介入により実行することができる。レイアウト処理システム８０４が回路レイアウトを決定した時に、レイアウト処理システム８０４は、回路レイアウト定義をＩＣ発生システム８０６に出力することができる。回路レイアウト定義は、例えば、回路レイアウト記述とすることができる。
【０１０４】
ＩＣ発生システム８０６は、当業技術で公知のように回路レイアウト定義に従ってＩＣを発生させる。例えば、ＩＣ発生システム８０６は、ＩＣを発生させるための半導体素子製造工程を実施することができ、半導体素子製造工程は、半導体材料から構築されたウェーハに電子回路が徐々に生成されていく過程のリソグラフィック及び化学的処理段階の複数段階シーケンスを収容することができる。回路レイアウト定義は、回路定義に従ってＩＣを発生させるためのリソグラフィック処理に使用することができるマスクの形態とすることができる。これに代えて、ＩＣ発生システム８０６に提供される回路レイアウト定義は、ＩＣを発生させる場合に使用する適切なマスクを形成するためにＩＣ発生システム８０６を使用することができるコンピュータ可読コードの形態とすることができる。
【０１０５】
ＩＣ製造システム８０２によって実行される異なる処理は、１つの位置で例えば１つの当事者によって全てを実施することができる。これに代えて、ＩＣ製造システム８０２は、処理の一部が異なる位置で実行することができるように分散システムとすることができ、異なる当事者によって実行することができる。例えば、（ｉ）発生される回路のゲートレベル表現を形成するためにＩＣ定義データセットを表すＲＴＬコードを合成する段階、（ｉｉ）ゲートレベル表現に基づいて回路レイアウトを発生させる段階、（ｉｉｉ）回路レイアウトに従ってマスクを形成する段階、及び（ｉｖ）マスクを使用して集積回路を製造する段階の一部は、異なる位置で及び／又は異なる当事者によって実行することができる。
【０１０６】
他の実施例では、集積回路製造システムにおける集積回路定義データセットの処理が、回路レイアウトを決定するためにＩＣ定義データセットを処理する必要なくグラフィックス処理ユニットを製造するように本発明のシステムを構成することができる。例えば、集積回路定義データセットは、ＦＰＧＡのような再構成可能プロセッサの構成を定めることができ、このデータセットの処理は、この定義された構成を有する再構成可能プロセッサを生成するように（例えば、ＦＰＧＡに構成データをロードすることにより）ＩＣ製造システムを構成することができる。
【０１０７】
一部の実施形態において、集積回路製造定義データセットが、集積回路製造システムにおいて処理された時に、集積回路製造システムに本明細書に説明したデバイスを発生させることができる。例えば、集積回路製造定義データセットによる図８に関して上述した方法での集積回路製造システムの構成は、本明細書に説明したデバイスを製造させることができる。
【０１０８】
一部の実施例では、集積回路定義データセットは、データセットで定義されたハードウエア、又はデータセットで定義されたハードウエアと組み合わせて実行されるソフトウエアを含むことができる。図８に示す実施例では、集積回路の製造段階で、集積回路定義データセットで定義されたプログラムコードに従ってこの集積回路にファームウエアをロードするか、又は他に集積回路と共に使用するプログラムコードを集積回路に提供するようにＩＣ発生システムを集積回路定義データセットによって更に構成することができる。
【０１０９】
本出願人は、本明細書により、これらの特徴又は組合せが当業者の共通する一般的な知識の点から全体として本明細書に基づいて実行することができる程度まで、そのような特徴又は特徴の組合せが本明細書に開示するいずれの問題も解決するか否かにかかわらず、本明細書に説明する各個々の特徴及び２又は３以上のこれらの特徴のいずれの組合せも個別に開示している。以上の説明の観点から、様々な修正を本発明の範囲内で行うことができることは当業者には明らかであろう。
【符号の説明】
【０１１０】
５０２  跳ね返り光マップ
５０４  初期光マップ
５０６  跳ね返り光マップのテクセル位置
５０８  初期光マップのテクセル値
５１２  光線
【図１】
2017188093.tif 000009
【図２】
2017188093.tif 000010
【図３】
2017188093.tif 000011
【図４】
2017188093.tif 000012
【図５】
2017188093.tif 000013
【図６ａ】
2017188093.tif 000014
【図６ｂ】
2017188093.tif 000015
【図６ｃ】
2017188093.tif 000016
【図６ｄ】
2017188093.tif 000017
【図６ｅ】
2017188093.tif 000018
【図７】
2017188093.tif 000019
【図８】
2017188093.tif 000020
【外国語明細書】
2017188093000001.pdf