(57)【特許請求の範囲】
【請求項１】
環境の少なくとも1つのビデオフレームを受信するステップと、
前記環境のサーフェス再構築を生成するステップと、
前記環境の前記サーフェス再構築内で仮想オブジェクトおよび現実世界オブジェクトに向けて複数の光線を投射するステップと、
前記少なくとも1つのビデオフレームから前記環境の照明データを生成するステップと、
改善を必要とする前記環境内のエリアに基づき、前記環境内の前記複数の光線から光線のサブセットを求めるステップであって、前記複数の光線および近似分散解析を含む光線空間の4D細分に基づいて適応サンプリング技法を適用するステップを含むステップと、
前記サーフェス再構築、前記照明データ、および光線の前記サブセットを除外する前記複数の光線に基づいて、前記少なくとも1つのビデオフレームに関連する前記環境の推定現実世界ライティングデータを生成するステップと、
前記推定現実世界ライティングデータを使用して、光線の前記サブセットを除外する前記複数の光線に基づいて、前記少なくとも1つのビデオフレームにわたって前記仮想オブジェクトをレンダリングするステップと
を含む方法。
【請求項２】
改善を必要とする前記環境内の前記エリアが、シャドーエリア、サーフェスエッジ、およびシャドーエッジを含む請求項1に記載の方法。
【請求項３】
前記複数の光線から光線のサブセットを求める前記ステップが、ライティングおよび差分レンダリング技法を前記環境に適用するステップと、その結果としてのシャドー情報を解析するステップとを含む請求項1に記載の方法。
【請求項４】
光線の前記サブセットに関連する時間コヒーレンス情報を2レベル階層キャッシュ内に格納するステップをさらに含み、第1のレベルが画面空間内の情報を格納し、第2のレベルがオブジェクト空間内の情報を格納する請求項1に記載の方法。
【請求項５】
前記照明データを生成する前記ステップが、
前記少なくとも1つのビデオフレームを輝度成分および色成分に変換するステップと、
前記輝度成分をノイズ除去して前記照明データを抽出するステップと
を含む請求項1に記載の方法。
【請求項６】
前記環境の前記サーフェス再構築を生成する前記ステップが、前記少なくとも1つのビデオフレームを使用して実施される請求項1に記載の方法。
【請求項７】
環境の少なくとも1つのビデオフレームを受信するための手段と、
前記環境のサーフェス再構築を生成するための手段と、
前記環境の前記サーフェス再構築内で仮想オブジェクトおよび現実世界オブジェクトに向けて複数の光線を投射するための手段と、
前記少なくとも1つのビデオフレームから前記環境の照明データを生成するための手段と、
改善を必要とする前記環境内のエリアに基づき、前記環境内の前記複数の光線から光線のサブセットを求めるための手段であって、前記環境内の前記複数の光線から光線のサブセットを求めることが、前記複数の光線および近似分散解析を含む光線空間の4D細分に基づいて適応サンプリング技法を適用することを含む手段と、
前記サーフェス再構築、前記照明データ、および光線の前記サブセットを除外する前記複数の光線に基づいて、前記少なくとも1つのビデオフレームに関連する前記環境の推定現実世界ライティングデータを生成するための手段と、
前記推定現実世界ライティングデータを使用して、光線の前記サブセットを除外する前記複数の光線に基づいて、前記少なくとも1つのビデオフレームにわたって前記仮想オブジェクトをレンダリングするための手段と
を備える装置。
【請求項８】
改善を必要とする前記環境内の前記エリアが、シャドーエリア、サーフェスエッジ、およびシャドーエッジを含む請求項7に記載の装置。
【請求項９】
前記複数の光線から光線のサブセットを求めるための前記手段が、ライティングおよび差分レンダリング技法を前記環境に適用すること、ならびにその結果としてのシャドー情報を解析することを含む請求項7に記載の装置。
【請求項１０】
光線の前記サブセットに関連する時間コヒーレンス情報を2レベル階層キャッシュ内に格納するための手段をさらに備え、第1のレベルが画面空間内の情報を格納し、第2のレベルがオブジェクト空間内の情報を格納する請求項8に記載の装置。
【請求項１１】
前記照明データを生成するための前記手段が、
前記少なくとも1つのビデオフレームを輝度成分および色成分に変換するための手段と、
前記輝度成分をノイズ除去して前記照明データを抽出するための手段と
を備える請求項8に記載の装置。
【請求項１２】
プロセッサに、請求項1から6のいずれか一項に記載の方法を実行させるように構成されたプロセッサ可読命令を含むプロセッサ可読非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は拡張現実に関する。より詳細には、本開示の態様は、拡張現実用のラジアンス伝達サンプリングに関する。
【背景技術】
【０００２】
組み合わされた仮想シーンと現実シーンのフォトリアリスティックレンダリングは、ゲームや広告などの多くの拡張現実(AR)応用分野にとって基本的な目標である。現在の方法は、イメージを取り込むのに使用されるカメラのリアルタイム更新および3D追跡と共にシーンモデルを得るために既存のソフトウェア開発キットを利用する。グローバル照明に基づくフォトリアリスティックARイメージを目指す方法は通常、ビュー内のサーフェスポイントごとにラジアンス伝達(RT)を計算する。RTは、シーンモデルから直接的に環境照明情報をサンプリングするのに使用される。RT情報は、環境照明およびシーンモデルと共に、現実シーン内の仮想オブジェクトの現実的レンダを生成するのに使用される。得られるイメージは、環境、仮想オブジェクト、および現実オブジェクトの間の光相互作用の知覚的にもっともらしい近似を有する。
【０００３】
しかし、ボクセルボリュームとして表現される動的に変化するシーンについてRTを計算することは、容積レイトレーシング(volumetric raytracing)を必要とする。この手順をフレームごとにシーンモデルのすべての可視サーフェスポイントに対して適用することは、計算コストが高い。より高速なプロセッサを使用する場合であっても、許容できる対話速度を得るためには定期的なサブサンプリングを用いることが必要となる可能性が高い。単純なサブサンプリングの使用は、望ましくないエイリアシングアーチファクトを導入し、最適な方法ではない。
【発明の概要】
【課題を解決するための手段】
【０００４】
いくつかの実施形態は、拡張現実用の改良型のラジアンス伝達サンプリングのための装置および方法を説明する。
【０００５】
本明細書で開示されるシステムおよび方法は、適応サンプリング、フィルタリング、および再構築手法を適用することによって視程信号(visibility signal)の4D空間ならびに時間コヒーレンスを活用することにより、拡張現実用の改良型のラジアンス伝達サンプリングを可能にする。RT計算のためのこれらの手法は効率を向上させ、より高い品質結果を実現する。これらの手法はまた、計算コストと、モバイルデバイスにとって重要であるイメージ品質との間の兼ね合いについて、より高い制御を可能にする。
【０００６】
いくつかの実施形態では、方法は、環境の少なくとも1つのビデオフレームを受信することを含む。方法は、環境のサーフェス再構築を生成することをさらに含む。方法は、環境のサーフェス再構築内に複数の光線を投射することをさらに含む。環境のサーフェス再構築内に複数の光線を投射したとき、方法は、少なくとも1つのビデオフレームから環境の照明データを生成することを含む。方法はまた、改善を必要とする環境内のエリアに基づいて、環境内の複数の光線から光線のサブセットを求めることを含む。方法は、光線のサブセットを除外する複数の光線に基づいて、少なくとも1つのビデオフレームにわたって仮想オブジェクトをレンダリングすることをさらに含む。
【０００７】
いくつかの実施形態では、改善を必要とする環境内のエリアは、シャドーエリア、サーフェスエッジ、およびシャドーエッジを含む。
【０００８】
いくつかの実施形態では、方法は、サーフェス再構築および照明データに基づいて、少なくとも1つのビデオフレーム内の環境の推定現実世界ライティングデータを生成することをさらに含む。
【０００９】
いくつかの実施形態では、複数の光線から光線のサブセットを求めることは、ライティングおよび差分レンダリング技法を環境に適用すること、ならびにその結果としてのシャドー情報を解析することを含む。
【００１０】
いくつかの実施形態では、複数の光線から光線のサブセットを求めることは、複数の光線を含む光線空間の4D細分と、近似分散解析のうちの少なくとも1つに基づいて適応サンプリング技法を適用することを含む。
【００１１】
いくつかの実施形態では、方法は、光線のサブセットに関連する時間コヒーレンス情報を2レベル階層キャッシュ内に格納することをさらに含み、第1のレベルは画面空間内の情報を格納し、第2のレベルはオブジェクト空間内の情報を格納する。
【００１２】
いくつかの実施形態では、照明データを生成することは、少なくとも1つのビデオフレームを輝度成分および色成分に変換すること、ならびに輝度成分をノイズ除去して照明データを抽出することを含む。
【００１３】
いくつかの実施形態では、環境のサーフェス再構築を生成することは、少なくとも1つのビデオフレーム、ステレオカメラからのイメージ、または深度カメラからの深度イメージのうちの少なくとも1つを使用して実施される。
【００１４】
いくつかの実施形態では、装置はカメラ、メモリ、およびプロセッサを含む。プロセッサは、カメラによって取り込まれた環境の少なくとも1つのビデオフレームを受信するためにメモリに結合される。プロセッサは、環境のサーフェス再構築を生成するように構成される。プロセッサは、環境のサーフェス再構築内に複数の光線を投射するようにさらに構成される。プロセッサはまた、少なくとも1つのビデオフレームから環境の照明データを生成するように構成される。プロセッサは、改善を必要とする環境内のエリアに基づいて、環境内の複数の光線から光線のサブセットを求めるようにさらに構成される。プロセッサは、光線のサブセットを除外する複数の光線に基づいて、少なくとも1つのビデオフレームにわたって仮想オブジェクトをレンダリングするようにさらに構成される。
【００１５】
いくつかの実施形態では、方法は、環境の少なくとも1つのビデオフレームを受信するための手段を含む。方法は、環境のサーフェス再構築を生成するための手段をさらに含む。方法は、環境のサーフェス再構築内に複数の光線を投射するための手段をさらに含む。環境のサーフェス再構築内に複数の光線を投射したとき、方法は、少なくとも1つのビデオフレームから環境の照明データを生成するための手段を含む。方法はまた、改善を必要とする環境内のエリアに基づいて、環境内の複数の光線から光線のサブセットを求める手段を含む。方法は、光線のサブセットを除外する複数の光線に基づいて、少なくとも1つのビデオフレームにわたって仮想オブジェクトをレンダリングするための手段をさらに含む。
【００１６】
いくつかの実施形態では、プロセッサ可読非一時的媒体は、環境の少なくとも1つのビデオフレームのシーケンスをプロセッサに受信させるように構成されたプロセッサ可読命令を含む。命令は、環境のサーフェス再構築をプロセッサに生成させるようにさらに構成される。命令は、環境のサーフェス再構築内に複数の光線をプロセッサに投射させるようにさらに構成される。命令は、少なくとも1つのビデオフレームから環境の照明データをプロセッサに生成させるようにさらに構成される。命令は、改善を必要とする環境内のエリアに基づいて、環境内の複数の光線から光線のサブセットをプロセッサに求めさせるようにさらに構成される。命令は、光線のサブセットを除外する複数の光線に基づいて、少なくとも1つのビデオフレームにわたって仮想オブジェクトをプロセッサにレンダリングさせるようにさらに構成される。
【００１７】
本開示の態様が例として図示される。添付の図面において、同様の参照番号は類似の要素を示す。
【図面の簡単な説明】
【００１８】
【図１】1つまたは複数の実施形態を組み込むシステムの簡略図である。
【図２】本発明の一実施形態による、環境内の仮想オブジェクトをレンダリングすることのできるモバイルデバイスのブロック図である。
【図３】本発明の一実施形態による、現実世界オブジェクトおよび仮想世界オブジェクトを含むシーン幾何形状を示す図である。
【図４】本発明の一実施形態による、プローブレス測光登録パイプラインのステップを示す一般的流れ図である。
【図５】拡張現実用のラジアンス伝達サンプリングのための例示的動作を示す例示的流れ図である。
【発明を実施するための形態】
【００１９】
次に、本明細書の一部を形成する添付の図面に関連して、いくつかの例示的実施形態が説明される。本開示の1つまたは複数の態様が実装され得る特定の実施形態が以下で説明されるが、本開示の範囲または添付の特許請求の範囲の精神から逸脱することなく、他の実施形態が使用され得、様々な修正が行われ得る。
【００２０】
図1Aおよび図1Bは、前述のフォトリアリスティック拡張現実のための効率的なラジアンス伝達サンプリングが可能なモバイルデバイス100のそれぞれ正面および背面を示す。
【００２１】
モバイルデバイス100は、筐体101、タッチスクリーンディスプレイであり得るディスプレイ102、ならびにスピーカ104およびマイクロフォン106を含むものとして示されている。モバイルデバイス100は、環境のイメージを取り込むための前方向きカメラ110をさらに含む。カメラ110はRGBカメラ、深度カメラ、ステレオカメラなどでよいことを理解できる。「カメラ」という用語は、異なるタイプであり得る複数のカメラ(たとえば、RGBカメラおよび深度カメラ)も指し得る。カメラ110が深度カメラであるケースでは、カメラ110は、撮像した環境の深度データを与え得る。あるいは、カメラ110がステレオカメラであるケースでは、カメラ110は、カメラ110からの少なくとも1つのイメージ(ビデオのフレーム)を使用して、撮像した環境についての深度データを生成し得る。
【００２２】
本明細書で使用する場合、モバイルデバイスは、セルラーまたは他のワイヤレス通信デバイス、スマートフォン、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、個人情報マネージャ(PIM)、携帯情報端末(PDA)、スマートウォッチ、スマートグラス、自動車内で使用されるスマートデバイス、自宅内で使用されるスマートデバイス、あるいは他の適切なモバイルデバイスなどの任意のポータブル電子デバイスを指す。モバイルデバイスは、ナビゲーション測位信号など、ワイヤレス通信および/またはナビゲーション信号を受信することが可能であり得る。「モバイルデバイス」という用語はまた、衛星信号受信、アシスタンスデータ受信、および/または位置関連の処理がデバイスにおいて、またはパーソナルナビゲーションデバイス(PND)において行われるかの如何に関わらず、近距離ワイヤレス、赤外線、ワイヤライン接続、または他の接続などによってPNDと通信するデバイスを含むものである。また、「モバイルデバイス」は、その環境の画像(またはビデオ)をキャプチャすることが可能であるワイヤレス通信デバイス、コンピュータ、ラップトップ、タブレットコンピュータなどを含む、すべての電子デバイスを含むものである。「モバイルデバイス」は、必ずしもワイヤラインまたはワイヤレス接続を必要としないことを理解できる。
【００２３】
モバイルデバイス100は、カメラ110を使用して、任意の、すなわち先験的に未知の幾何形状およびライティング条件で、環境の、本明細書では単にイメージと呼ばれることのある少なくとも1つのビデオフレームを取り込む。モバイルデバイス100は、取り込んだビデオフレームからフレームごとに現実世界ライティング条件を推定し、ディスプレイ102内でレンダリングされるARオブジェクトにライティング条件を適用するように構成される。いくつかの実施形態では、取り込んだビデオフレームから現実世界光条件を推定することが、nフレームごとに行われる。ARオブジェクトが環境にわたってレンダリングされるとき、モバイルデバイス100はまた、ARオブジェクトからのライティング効果を現実世界オブジェクトに対して適用し得る。モバイルデバイス100は、環境内の任意の幾何形状から環境ライティング条件を推定することができる。したがって、モバイルデバイス100は、現実世界ライティング条件を推定するために現実世界環境内に配置される、反射球などの特別な光プローブを必要としない。モバイルデバイス100は、任意の幾何形状をラジアンス伝達計算および球面調和関数と共に使用して、環境ライティングの推定を改善し得る。
【００２４】
図2は、本発明の一実施形態による、環境内の仮想オブジェクトをレンダリングすることのできるモバイルデバイス100のブロック図である。モバイルデバイス100はカメラ110を含む。モバイルデバイス100は、ディスプレイ102、キーパッド105、またはユーザがそれを通じてモバイルデバイス100に情報を入力することができる他の入力デバイスを含むユーザインターフェース103をさらに含み得る。望まれる場合、キーパッド105は、タッチセンサを備えるディスプレイ102に仮想キーパッドを統合することによって不要となり得る。たとえば、モバイルデバイス100が、セルラー電話などのモバイルデバイスである場合、ユーザインターフェース103は、マイクロフォン106およびスピーカ104も含み得る。もちろん、モバイルデバイス100は、本開示に無関係の他の要素を含み得る。
【００２５】
モバイルデバイス100はまた、カメラ110に接続され、カメラ110と通信する制御ユニット180をも含む。制御ユニット180は、バス180b、プロセッサ181および関連するメモリ184、ハードウェア182、ソフトウェア185、ならびにファームウェア183によって実現され得る。制御ユニット180は、環境のサーフェス再構築を生成し得るサーフェス再構築ユニット191を含み得る。ラジアンス伝達ユニット193はラジアンス伝達を生成する。照明データユニット194は、取り込んだ少なくとも1つのビデオフレームに基づいて照明データを生成し、たとえば、イメージを輝度成分に変換し、輝度成分をフィルタ処理して、任意選択で輝度成分をノイズ除去することを含む。ライティング推定ユニット195は、環境についての照明データおよびラジアンス伝達に基づいて推定ライティング条件を求める。レンダリングユニット197は、ポーズおよびライティング方法に基づいて、少なくとも1つのビデオフレームにわたって仮想オブジェクトをレンダリングし得、差分レンダリングおよび合成を使用し得る。
【００２６】
様々な処理装置、たとえばサーフェス再構築ユニット191、ラジアンス伝達ユニット193、照明データユニット194、ライティング推定ユニット195、ライティング評価ユニット196、およびレンダリングユニット197が別々に示され、明快のためにプロセッサ181とは別々に示されているが、すべてまたはいくつかが組み合わされ、かつ/またはプロセッサ181の部分となり、もしくはプロセッサ181内で実行されるソフトウェア185内の命令に基づいてプロセッサ内に実装され得る。本明細書で使用する場合、プロセッサ181および/または様々な処理ユニットは、1つまたは複数のマイクロプロセッサ、組込み型プロセッサ、コントローラ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)などを含み得るが、必ずしもそれらを含む必要はないことが理解されよう。プロセッサという用語は、特定のハードウェアではなく、システムによって実施される機能について説明するものである。さらに、本明細書で使用する場合、「メモリ」という用語は、モバイルデバイスに関連する長期、短期、または他のメモリを含む任意のタイプのコンピュータ記憶媒体を指し、何らかの特定のタイプのメモリもしくはメモリの数、またはメモリが格納される媒体のタイプに限定されない。
【００２７】
本明細書で説明される方法は、応用分野に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア182、ファームウェア183、ソフトウェア185、またはそれらの任意の組合せで実装され得る。ハードウェア実装では、処理装置は、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明される機能を実施するように設計された他の電子ユニット、あるいはそれらの組合せの中に実装され得る。
【００２８】
ファームウェアおよび/またはソフトウェア実装では、方法は、本明細書で説明される機能を実施するモジュール(たとえば、手順、機能など)と共に実装され得る。本明細書で説明される方法を実装する際に、命令を有形に実施する任意の機械可読媒体が使用され得る。たとえば、ソフトウェアコードがメモリ184内に格納され、プロセッサ181によって実装され得る。メモリは、プロセッサ181内に、またはプロセッサ181の外部に実装され得る。機能は、ファームウェアおよび/またはソフトウェアに実装される場合、コンピュータ可読である記憶媒体上に1つまたは複数の命令またはコードとして記憶され得、その記憶媒体は、過渡的な伝播信号を含まない。例としては、データ構造を用いてコード化された記憶媒体、およびコンピュータプログラムを用いてコード化されたストレージがある。記憶媒体としては、物理的なコンピュータ記憶媒体がある。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのような記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望のプログラムコードを命令もしくはデータ構造の形で記憶するのに使用することができ、かつコンピュータからアクセスすることができる任意の他の媒体を含むことができ、本明細書で使用するディスク(diskおよびdisc)には、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)が含まれ、ディスク(disk)は通常、データを磁気的に再生するが、ディスク(disc)はデータをレーザによって光学的に再生する。上記の組合せも、記憶媒体の範囲内に含めるべきである。
【００２９】
モバイルデバイス100は、1つまたは複数の非一時的記憶デバイス116をさらに含み得(かつ/または1つまたは複数の非一時的記憶デバイス116と通信し得)、1つまたは複数の非一時的記憶デバイス116は、限定はしないが、ローカルおよび/またはネットワークアクセス可能ストレージを含み得、かつ/または限定はしないが、ディスクドライブ、ドライブアレイ、光記憶デバイス、プログラム可能および/またはフラッシュ更新可能などでよいランダムアクセスメモリ(「RAM」)および/または読取り専用メモリ(「ROM」)などの固体記憶デバイスを含み得る。そのような記憶デバイスは、限定はしないが、様々なファイルシステムおよび/またはデータベース構造などを含む、任意の適切なデータストレージを実装するように構成され得る。
【００３０】
モバイルデバイス100はまた、限定はしないが、モデム、ネットワークカード(ワイヤレスまたはワイヤード)、赤外線通信デバイス、ワイヤレス通信デバイス、および/またはチップセット(Bluetooth(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMAXデバイス、セルラー通信機構など)などを含み得る通信サブシステム114をも含み得る。通信サブシステム114は、本明細書で説明されるネットワーク、他のコンピュータシステム、および/または任意の他のデバイスとデータを交換することを可能にし得る。多くの実施形態では、モバイルデバイス100は、非一時的作業メモリ184をさらに備え、非一時的作業メモリ184はRAMまたはROMデバイスを含み得る。
【００３１】
モバイルデバイス100は1つまたは複数の出力デバイス112をさらに含み得、1つまたは複数の出力デバイス112は、限定はしないが、本発明の実施形態で使用されるデバイス、および/またはプリンタなどのディスプレイユニットを含み得る。本発明の実施形態のいくつかの実装では、様々なユーザインターフェースデバイス(たとえば、ディスプレイ102、マイク106、キーパッド105、およびスピーカ104)および出力デバイス112が、ディスプレイデバイス、テーブル、床、壁、網戸などのインターフェース内に組み込まれ得る。さらに、プロセッサに結合されたユーザインターフェースデバイスおよび出力デバイス112が、多次元追跡システムを形成し得る。
【００３２】
モバイルデバイス100はまた、オペレーティングシステム、デバイスドライバ、実行可能ライブラリ、および/または1つまたは複数のアプリケーションプログラムなどの他のコードを含む、メモリ184内に配置されたソフトウェア要素をも備え得、ソフトウェア要素は、様々な実施形態によって提供されるコンピュータプログラムを含み得、かつ/または方法を実装するように設計され得、かつ/または本明細書で説明される他の実施形態によって提供されるシステムを構成し得る。単なる例として、以下で論じられる方法に関して説明される1つまたは複数の手順が、モバイルデバイス(および/またはモバイルデバイス内のプロセッサ)によって実行可能なコードおよび/または命令として実装され得、一態様では、次いで、そのようなコードおよび/または命令が、説明される方法に従って1つまたは複数の動作を実施するように汎用コンピュータ(または他のデバイス)を構成し、かつ/または適合させるのに使用され得る。
【００３３】
これらの命令および/またはコードのセットが、前述の記憶デバイス116などのコンピュータ可読記憶媒体上に格納され得る。いくつかのケースでは、記憶媒体は、モバイルデバイス100などのコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、そこに記憶された命令/コードを用いて汎用コンピュータをプログラム、構成、および/または適合させるために使用され得るように、コンピュータシステムから分離され得(たとえば、コンパクトディスクなどの取外し可能媒体)、かつ/またはインストールパッケージ内に備えられ得る。これらの命令は、実行可能コードの形態を取り得、これはモバイルデバイス100によって実行可能であり、かつ/あるいはソースおよび/またはインストール可能コードの形態を取り得、これは(たとえば、様々な一般に入手可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを用いる)モバイルデバイス100上でのコンパイルおよび/またはインストール時に、実行可能コードの形態を取る。
【００３４】
特定の要件に従って大幅な変形が行われ得る。たとえば、カスタマイズされたハードウェアも使用され得、かつ/または特定の要素が、ハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、またはその両方で実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が利用され得る。いくつかの実施形態では、モバイルデバイス100の1つまたは複数の要素が省略され得、または図示されるシステムとは別々に実装され得る。たとえば、プロセッサ181および/または他の要素が、ユーザインターフェース103デバイスとは別々に実装され得る。一実施形態では、プロセッサ181が、別々に実装される1つまたは複数のカメラ110からイメージを受信するように構成される。いくつかの実施形態では、図2に示されるものに加えた要素が、モバイルデバイス100内に含まれ得る。
【００３５】
いくつかの実施形態は、本開示による方法を実施するためにモバイルデバイス(モバイルデバイス100など)を利用し得る。たとえば、説明される方法の手順のいくつかまたはすべてが、メモリ184内に含まれる(オペレーティングシステムおよび/またはアプリケーションプログラムなどの他のコード内に組み込まれ得る)1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ181に応答して、モバイルデバイス100によって実装され得る。そのような命令は、記憶デバイス116の1つまたは複数などの別のコンピュータ可読媒体からメモリ184に読み込まれ得る。単なる例として、メモリ184内に含まれる命令のシーケンスの実行は、本明細書で説明される方法の1つまたは複数の手順をプロセッサ181に実行させ得る。
【００３６】
本明細書で使用する場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、マシンを特定の方式で動作させるデータを提供することに関与する任意の媒体を指す。モバイルデバイス100を使用して実装されるいくつかの実施形態では、様々なコンピュータ可読媒体は、実行のためにプロセッサ181に命令/コードを提供することに関係し得、かつ/またはそのような命令/コードを格納および/または(たとえば、信号として)搬送するのに使用され得る。多くの実装では、コンピュータ可読媒体は物理的な、かつ/または有形の記憶媒体である。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む多くの形態を取り得る。不揮発性媒体には、たとえば、記憶デバイス116などの光ディスクおよび/または磁気ディスクが含まれる。揮発性媒体は、限定はしないが、メモリ184などのダイナミックメモリを含む。伝送媒体は、限定はしないが、バス180bを含むワイヤを含む、同軸ケーブル、銅線、および光ファイバ、ならびに通信サブシステム114の様々な構成要素(および/または通信サブシステム114がそれによって他のデバイスとの通信を実現する媒体)を含む。したがって、伝送媒体は、波(限定はしないが、電波および赤外線データ通信中に生成されるような無線波、音響波、および/または光波波を含む)の形態も取り得る。
【００３７】
物理的な、かつ/または有形のコンピュータ可読媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップまたはカートリッジ、以下で説明されるような搬送波、あるいはコンピュータが命令および/またはコードを読み取ることのできる任意の他の媒体を含む。
【００３８】
コンピュータ可読媒体の様々な形態は、実行のためにプロセッサ181に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関係し得る。単なる例として、命令は当初、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送され得る。リモートコンピュータは、そのダイナミックメモリ内に命令をロードし、モバイルデバイス100によって受信および/または実行される信号として伝送媒体を介して命令を送り得る。電磁信号、音響信号、および/または光信号などの形態でよいこれらの信号はすべて、本発明の様々な実施形態に従って命令がその上にコード化され得る搬送波の例である。
【００３９】
通信サブシステム114(および/またはその構成要素)は一般に信号を受信し、次いでバス180bは、メモリ184に信号(および/または信号によって搬送されるデータ、命令など)を搬送し得、プロセッサ181は、メモリ184から命令を取り出し、実行する。任意選択で、メモリ184によって受信される命令が、プロセッサ181による実行の前または後に、非一時的記憶デバイス116上に格納され得る。
【００４０】
図3は、現実世界オブジェクト330および仮想世界オブジェクト340を含むシーン幾何形状300を示す。シーン幾何形状300はまた、カメラ310、またはいくつかの光線がそこから世界空間内に投射される視点をも含む。世界空間は、現実世界オブジェクト330と仮想世界オブジェクト340の両方を含む。図は、作業エリアおよびその様々な領域を示す。カメラ310は、イメージ空間から光線350を送り出し、幾何形状のサーフェスを求め、サーフェスポイントの反射B(イメージ輝度)を測定する。反射測定はイメージ空間内である。光線が(たとえば、現実世界オブジェクトのサーフェスについては点xにおいて、仮想世界オブジェクトのサーフェスについては点zにおいて)サーフェスに当たると、アルゴリズムは、一様に球をサンプリングする様々な方向に光線を送り出すことによって視程V(x)をテストする。これは視程空間と呼ばれる。視程V(z)をテストするために類似のプロセスが実施され得る。
【００４１】
前述のように、現在の方法は多くの制限を有する。これらの制限のうちの1つは、RTを計算することがシーンモデルでレイトレーシングを必要とすることである。フレームごとにシーンモデルのすべての可視サーフェスポイントについてこの手順を適用することは、計算コストが高い。
【００４２】
RTは、シーンのサーフェス上の所与のポイントについての潜在的な光対話(出射および入射光線)である。サーフェスポイントと遠方の環境光との間に閉鎖幾何形状があるかどうかを判定し(視程テスト)、サーフェスポイント上にどれほどの光が潜在的に当たるかを判定するように、光線が追跡される。いくつかの実施形態では、得られるRTをSH表現(たとえば、16個の浮動値)で圧縮および格納する結果、効率が向上し得る。しかし、RTを計算するためには、視程をサンプリングするために、十分な数の光線があらゆる方向に沿って環境内で追跡されなければならない(たとえば、n=128方向)。したがって、視程信号は、サーフェス光フィールドと同様に4D関数としてパラメータ化され得る。
ポイントが別のサーフェスポイントによってブロックされる場合、v(r, s,φ,θ)→0
そうでない場合(光線が環境ライティングを確認することができる)、v(r, s,φ,θ)→1
【００４３】
ただし、(r,s)はサーフェス上のポイントを表し、(φ,θ)は光線の方向を表す。適応サンプリング、フィルタリング、および再構築手法を適用することにより、4D空間ならびに信号の時間コヒーレンスが活用され得る。コンピュータグラフィックスアプリケーションのサンプリングにおいてコヒーレンスを使用するいくつかの手法が存在するが、オンラインまたはリアルタイム再構築済み幾何形状のRTサンプリングに対して適用されたことはない。コンピュータグラフィックスシーンは通常、より予測可能であり、したがってRTが自然に事前計算され得る。事前計算は最適な実行時性能を可能にするが、動的シーンに対しては困難である。ARアプリケーションはこれらの動的シーンをサポートしなければならない。
【００４４】
《画面および視程空間内のインターリーブドサンプリング》
インターリーブドサンプリングでは、サンプリング作業負荷が、一連のフレーム、たとえばnフレームにわたって分布する。たとえば、ピクセルp(r,s)ごとのサンプリング作業負荷の半分が第1のフレームで処理され、ピクセルp(r+1,s)について第2のフレームで別の半分が処理される。インターリーブされた中間結果が、最終結果で、完全にサンプリングされた最終結果に組み合わされる。このことは、画面空間(r,s)または視程(光線)空間(φ,θ)のどちらかで達成される。このケースでは、このフレームに関連するRTだけに関心があり得るので、(r,s)は、画面上のピクセルに対応するサーフェスポイントを指す。光線空間(φ,θ)が世界座標系に対して与えられる得る。n個の方向の空間(φ,θ)が、kの独立サブセットに分割され、k個の隣接するピクセルにそれぞれ1つが割り当てられ、階層化ランダムサンプリング方式が達成される。vが主にすべての4つの次元で滑らかな変形を示すと仮定する理由があり得るので、最大解像度でのvの妥当な再構築が、4Dガウスカーネル(またはハットまたはボックスフィルタなどのより単純な近似)でフィルタ処理することによって得られ得る。得られるフィルタ処理済み視程関数が、ピクセルごとにSH表現に投射される。
【００４５】
いくつかの状況、たとえば移動するカメラまたは変化するシーンと関係がない状況では、単一のフレームについてvを計算することが望ましいことがある。インターリーブドサンプリング手法が、経時的なフルサンプリングに収束するように拡張され得る。このことは、n個のフレームおよびn個の中間結果(サブセット)にわたって最終結果を計算し、それらの中間結果をフルサンプリングした結果に組み上げることによって達成され得る。カメラが自然に静的ではないので、最終結果を組み上げることは再投射を含み得る。
【００４６】
《視程の画面空間およびオブジェクト空間キャッシング》
3Dサーフェスポイントの視程は、画面空間座標ではなく、オブジェクト空間座標に自然に関連付けられ得る。したがって、視程計算をオブジェクト空間内に格納することがより自然であり得る。しかし、ボクセルグリッドが使用され得るので、SH情報の格納は大量のメモリを必要とする。その代わりに、次の情報が格納され得る：あらゆるビットが特定の方向についての値v(φ,θ)を示す長さnの視程ビットベクトル、およびどの光線がすでに追跡されているかを示すサンプリング収束ビットベクトル。
【００４７】
SH係数への視程の投射はコストのかかる計算でもあるので、(オブジェクト空間での)ビットベクトル表現と、(たとえばピクセル当たりの、イメージ空間での)SH表現の両方が格納され得る。これにより、移動するカメラおよび変化するシーンを扱うために重要となる、独立したビットベクトルおよびSH表現の再利用が可能となる。
【００４８】
《適応サンプリング》
定期的なインターリーブドサンプリングを実施するのではなく、可視の違いが予想され得る領域内に計算労力を集中するために適応サンプリングが利用され得る。その目的で、より良好なアップサンプリングをサポートするためにより多くのサンプリングの必要をコード化する、画面空間内の重み付けマスクが使用され得る。次いで、どこでより多くのサンプルが計算されるべきかを決定するために、(たとえば、単純なしきい値分け操作を使用して)この重み付けマスクが検査され得る。追加のサンプリングの後、影響を受けるサーフェスポイントに対するSH投射が再計算されなければならない。重み付けマスクを得るためにいくつかの方法が利用され得ることを理解できる。
【００４９】
《視程》
複数の要素が重み付けマスクに寄与し得る。重み付けマスク内のシャドー境界を保持するために、v(r,s,φ,θ)にわたる4D分散が計算され得る。視程信号の分散を計算するために、4D領域への細分(subdivision)がなければならない。あらゆるピクセル(r,s)が個々であると見なされ得、光線空間(φ,θ)がオクタントに細分され得る。サンプリングは、オクタント当たり1光線の最小値で開始され得る(ピクセル当たり8光線)。1つのピクセルの1つのオクタントは、領域と呼ばれ得る。適応および/またはインターリーブドサンプリングは、より多くの光線を計算し得、もちろんその分散は、領域についてのすべての利用可能な光線を考慮すべきである。
【００５０】
領域について1つまたは複数の光線が計算されるときはいつでも、領域についてサマリが計算され得る。サマリは、計算された光線数と、1に評価した計算された光線数とからなる。このことは、視程ビットベクトルのセグメント内の値1を有するビットをカウントし(ハミング重み)、集束ビットベクトルをサンプリングすることによって達成され得る。ピクセル当たりn=128の光線およびk=8オクタントでは、結果は、n/k=m=領域当たり16光線である。サマリは、高速「ポピュレーション重み」技法で計算され得、2*4=8ビットからなる。サマリは画面空間内に格納される。
【００５１】
単一のサマリについて、分散が事前計算され、高速ルックアップのための256個のエントリと共にグローバルテーブル内に格納され得る。しかし、インターリーブドサンプリングが望まれるとすると、より大きい領域にわたってフィルタを適用する必要がある。このことは、いくつかのサマリからの情報を加え合わせ、次いで結果の分散を計算することによって実装され得る。計算される光線数と、値1を有する光線数とが、別々に加えられ得る。このことは、ビット演算(たとえば、シフト演算、論理積演算、加算など)によって達成され得る。
【００５２】
たとえば、特定のピクセルの周りのいくつかのピクセルの領域が考慮され得、またはいくつかのオクタントが共に考慮され得る。重みはまた、フィルタ処理で領域の各々に適用され得る。重み1、2、4、および8を使用することにより、そのようなものについて高速ビットシフティングの使用が可能となる。
【００５３】
重み付けされない多くとも16個の領域が追加される場合、得られる光線カウントが2*8ビットに適合する。したがって、実際の分散が事前計算され、16ビットテーブル内に格納され得る。結果を本質的に量子化する、シフト演算を使用して最下位の1または2ビットが破棄され得る場合、より多くの領域が考慮され得、16ビットテーブルが依然として使用され得る。
【００５４】
《差分レンダリング》
適応サンプリングのための重み付けマスクが、差分レンダリングの結果も考慮するために拡張され得る。シーン全体についての高品質解を計算する必要がないことが使用され得る。差分レンダリング後の可視部分、たとえば可視仮想部分および可視である仮想から現実へのシャドーだけに関心があり得る。高品質を有さなければならないのは、これらの領域の境界付近のピクセルだけである。したがって、最後のフレームからの差分レンダリング結果も重みとして加えられ、現フレームに再投射され得る。これは、非常に粗い解像度において行われ得る。言い換えれば、差分レンダリングは、シーン内で何がレンダリングに重要で、何が重要でないことがあり得るかを判定し得る。差分レンダリングでは、現実世界背景上で仮想オブジェクトだけがレンダリングされ得る。
【００５５】
《幾何形状バッファおよび誘導フィルタ処理》
現実シーンの幾何形状が、アイソサーフェスレイトレーシングによってボクセルグリッドから得られ、仮想オブジェクトの幾何形状が、多角形で明示的に与えられ得る。シーンの幾何形状は既知で利用可能であり得るので、現在のビューについての深度および垂直バッファが計算され得る。これらの幾何形状バッファの勾配イメージが計算され、この情報が2つの目的で使用され得る：(1)重み付けマスクについての因子として(より多くのサンプリングが深度または垂直不連続付近で適用されるべきである)、および(2)視程再構築フィルタの計算においてと、分散のための両方で、ジョイント双方向フィルタ処理のための誘導バッファとして。
【００５６】
《時間コヒーレンス》
一般には、カメラはフレームごとに移動してよく、得られるイメージを変化させる。しかし、カメラが極めて高速に移動していることがない限り、イメージ内の大部分の情報は有効なままとなる。したがって、前のフレーム(レンダキャッシュ)から現フレームに再投射され得る。逆再投射の標準手法を使用して、現フレームからのピクセルが前のフレームに再投射される。再投射は、再投射された深度を、前のフレーム内に格納されたものと比較することによって確認され得る。ピクセルが首尾よく再投射され場合、ペイロード(前のフレームからの情報)が抽出され、再利用され得る。再投射が成功しない場合(たとえば、非閉鎖のケース)、ペイロードが最初から計算されなければならない。
【００５７】
いくつかの実施形態では、恐らくは対応する分散と共にSH係数がペイロードとして再利用され得る。イメージ空間内のSHおよびオブジェクト空間内のビットベクトルという2つのレベルのキャッシングが使用されているので、2つのレベルのキャッシュミスがある。イメージ空間内にペイロードが見つからない場合、オブジェクト空間内の対応するボクセルが検査され、ビットベクトルとしての視程がすでにそこに格納されているかどうかが判定され得る。ビットベクトルが見つかった場合、SHを迅速に再計算するためにビットベクトルが使用され得、そうでない場合、ビットベクトルを初期化するために何らかの視程レイトレーシングがまず実施されなければならない。
【００５８】
カメラが位置から離れ、後にその位置に戻る場合、その位置に対応するSH係数が失われ得る。しかし、ビットベクトルはオブジェクト空間内にキャッシュされたままであり得、再利用され得る。
【００５９】
再投射は通常、キャッシュからの双線形補間と組み合わせて行われ得るので、多くの反復された再投射は誤差を累積し得る。したがって、年齢属性がキャッシュに割り当てられ得、キャッシュは、指数的減衰関数に従って、再投射ごとに増大され得る。古い年齢は重み付けマスクに強く寄与する。年齢はまた、より古いサンプルがフィルタ処理でより低い重みとなる再構築フィルタ処理での重み因子として使用され得る。
【００６０】
《変化する幾何形状》
いくつかのSDKアルゴリズム(たとえば、KinectFusion)が深度イメージの入射ストリームを継続的に評価し、容積形式で現実シーンを表すボクセルグリッドを更新し得る。ボクセルが更新され得るときはいつでも、更新されたボクセルと、妥当なサイズ近傍内のすべてのボクセル(RTは近くのボクセルについても変化するので)についての関連するビットベクトル内に格納され得る任意の視程サンプリング情報が無効にされ得る。仮想オブジェクトが移動するケースで同じことが行われ得る。
【００６１】
オブジェクト空間内のビットベクトルを無効にすることに加えて、イメージ空間の幾何形状変化も反映されなければならない(これは、キャッシュライトスルー方策と見ることができる)。すなわち、ビットベクトルに対応するSH係数もリセットされる。
【００６２】
図4は、プローブレス測光登録パイプラインのステップを示す一般的流れ図400である。推定のコア部分は、線形方程式系Ay=bの集まりであってよく、ここでAはラジアンス伝達を表し、bはカメライメージからの反射観測を伴うベクトルであり、yは推定環境光である。図4に示されるように、第1のステップ410はカメライメージを取得することであってよい。カメライメージは、デバイス100上のカメラ110で取り込まれ得る。カメライメージは現実世界シーンを示し得る。次いで、取り込まれた少なくとも1つのビデオフレームに基づいて、深度情報430を使用することによって現実世界シーンの幾何形状が再構築され得る420。いくつかの実施形態では、カメラに、環境再構築で使用可能な深度情報を計算する別のソース、たとえば外部カメラまたはモバイルデバイスからの深度情報が供給され得る。次いで、ラジアンス伝達計算440が計算され、ラジアンス伝達が得られ得る。ラジアンス伝達計算は、前述の効率的なラジアンス伝達サンプリング方法を使用して計算され得る。次いで、現実世界シーンに関して光推定450が実施され、ラジアンス伝達計算440と共に組み合わされ、現実世界シーン内のAR(たとえば、仮想オブジェクト)のライティング460が求められ得る。
【００６３】
前述の効率的なラジアンス伝達サンプリング方法は、既存の方法に勝るいくつかの利点をもたらす。第1に、拡散ライティング環境の推定は、拡張現実での視覚コヒーレントレンダリングをサポートする。仮想オブジェクトは現実世界ライティングによってライティングされ得る。さらに、仮想データの現実世界データ(カメライメージ)への現実的統合に対するサポートがあり得る。反射ミラーボールなどの特別な光プローブは不要である。さらに、方法がリアルタイムで使用され得、どんな形態の手入力も不要である。
【００６４】
第2に、幾何形状、閉鎖、光推定などの異なる手がかりに基づく適応サンプリングを使用する経時的な画面および視程空間内のサンプリングが、既存の方法を超えて改善される。さらに、イメージおよび世界空間内の光線キャッシングも改善される。
【００６５】
第3に、性能改善は、シャドーマップの高周波シャドーイングコンピューティングやカメライメージからの相互反射などの追加の拡張現実ライティング方法のための自由なソースを実現する。
【００６６】
図5は、拡張現実用のラジアンス伝達サンプリングのための例示的動作を示す例示的流れ図である。ブロック502では、環境の少なくとも1つのビデオフレームが受信される。少なくとも1つのビデオフレームは、モバイルデバイス内のステレオカメラデバイスによって取り込まれ得る。たとえば、図2では、カメラは少なくとも1つのビデオフレームを取り込み得る。次いで、取り込まれた少なくとも1つのビデオフレームが、さらなる処理のためにデバイス100内のプロセッサまたは別のモジュールに中継され得る。いくつかの実施形態では、望まれる場合、単眼カメラシステム、ステレオカメラシステム、または深度センサを備えるカメラ、すなわちRGBDカメラも使用され得る。
【００６７】
ブロック504では、環境のサーフェス再構築が生成される。いくつかの実施形態では、環境のサーフェス再構築を生成することが、少なくとも1つのビデオフレーム、ステレオカメラからのイメージ、または深度カメラからの深度イメージを使用して実施される。たとえば、図2では、サーフェス再構築ユニット191は、カメラから取り込まれた少なくとも1つのビデオフレームを使用して、環境のサーフェス再構築を生成し得る。いくつかの実施形態では、環境のサーフェス再構築は、たとえば、単眼カメラシステムからの複数のビデオフレーム、ステレオカメラからのイメージを使用して、または深度センサを備えるカメラからの深度データを使用して生成され得る。
【００６８】
ブロック506では、複数の光線がサーフェス再構築内に投射される。たとえば、図3では、カメラまたは視点が、サーフェス再構築内の複数の光線を仮想オブジェクトおよび現実世界オブジェクトに向けて投射する。光線の投射は、幾何形状のサーフェスを求め、サーフェスポイントの反射(イメージ輝度)を測定するために使用され得る。反射測定値はイメージ空間内にある。光線が(たとえば、現実世界オブジェクトのサーフェスについては点xにおいて、仮想世界オブジェクトのサーフェスについては点zにおいて)サーフェスに当たると、アルゴリズムは、一様に球をサンプリングする様々な方向に光線を送り出すことによって視程V(x)をテストする。これは視程空間と呼ばれる。視程V(z)をテストするために類似のプロセスが実施され得る。
【００６９】
ブロック508では、環境の照明データが、少なくとも1つのビデオフレームから生成される。いくつかの実施形態では、照明データを生成することは、少なくとも1つのビデオフレームを輝度成分および色成分に変換することを含む。照明データを生成することはまた、輝度成分をノイズ除去して照明データを抽出することをも含み得る。照明データは、照明データユニットによって生成され得る。照明データは、照明データを生成するために輝度成分を使用して生成され得る。
【００７０】
ブロック510では、環境内の複数の光線からの光線のサブセットが決定される。決定は、改善を必要とするシャドーエリアおよびエッジに基づいて行われ得る。いくつかの実施形態では、決定は、ライティングおよび差分レンダリング技法を環境に適用すること、ならびにその結果としてシャドー情報を解析することを含む。別の実施形態では、決定は、複数の光線および近似分散解析を含む光線空間の4D細分の少なくとも1つに基づいて適応サンプリング技法を適用することを含む。たとえば、図3では、環境内に投射される複数の光線のサブセットが決定される。決定は、サーフェス再構築内の改善を必要とするシャドーエリアおよびエッジに対して行われ得る。それらのエリアに関連する光線が、光線のサブセットとして識別され得る。
【００７１】
ブロック512では、光線のサブセットを除外する複数の光線に基づいて、ビデオフレームにわたって仮想オブジェクトがレンダリングされる。改善を必要とするシャドーエリアおよびエッジに関連する光線を除外する光線を使用して、仮想オブジェクトがレンダリングされ得る。
【００７２】
いくつかの実施形態では、環境の推定ライティング条件が、サーフェス再構築および照明データに基づいて各ビデオフレームで生成され得る。生成は、光推定ユニット195を使用して実施され得る。ライティング条件は、サーフェス再構築に基づいて環境についてのラジアンス伝達を生成し、ラジアンス伝達の圧縮伝達関数を生成することによって、たとえば、ラジアンス伝達をSH基底関数に投射することによって推定され得る。次いで、ライティング条件を推定するためにRTの圧縮伝達関数および照明データを使用して光条件が推定され得る。
【００７３】
いくつかの実施形態では、光線のサブセットに関連する時間コヒーレンス情報が2レベル階層キャッシュ内に格納され得、第1のレベルは画面空間内の情報を格納し、第2のレベルはオブジェクト空間内の情報を格納する。
【００７４】
上記で論じられた方法、システム、およびデバイスは例である。様々な実施形態が、適宜、様々な手順または構成要素を省略、置換、または追加し得る。たとえば、代替構成では、説明される方法は、説明されるのとは異なる順序で実施され得、かつ/または様々なステージが追加、省略、および/または組合せされ得る。さらに、いくつかの実施形態に関して説明された特徴が、様々な他の実施形態で組み合わされ得る。実施形態の相異なる態様および要素が同様に組み合わされ得る。さらに、技術は進化し、したがって要素の多くは、本開示の範囲をそれらの特定の例に限定しない例である。
【００７５】
実施形態の完全な理解を与えるために、説明では特定の詳細が与えられる。しかし、実施形態は、これらの特定の詳細なしに実施され得る。たとえば、実施形態を不明瞭することを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技法が、不要な詳細なしに示された。この説明は例示的実施形態を与えるにすぎず、本発明の範囲、適用性、または構成を限定するものではない。むしろ、実施形態の先行する説明は、本発明の実施形態を実装することを可能にする説明を当業者に与える。本発明の精神および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得る。
【００７６】
また、いくつかの実施形態は、フロー図またはブロック図として図示されているプロセスとして説明する。各々は動作を順次プロセスとして説明するが、動作の多くは、並列または同時に実施され得る。さらに、動作の順序は再構成され得る。プロセスは、図に含まれていない追加のステップを有し得る。さらに、方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、関連するタスクを実施するためのプログラムコードまたはコードセグメントが、記憶媒体などのコンピュータ可読媒体内に格納され得る。プロセッサは、関連するタスクを実施し得る。したがって、上記の説明では、コンピュータシステムによって実行されるものとして記述された機能または方法は、プロセッサ、たとえば、機能または方法を実行するように構成されたプロセッサ604によって実行され得る。さらに、そのような機能または方法は、1つまたは複数のコンピュータ可読媒体に記憶されたプロセッサ実行命令によって実行され得る。
【００７７】
いくつかの実施形態について説明してきたが、様々な変更、代替構造、および均等物は、本開示の趣旨から逸脱することなく使用され得る。たとえば、上記の要素は、より大型のシステムの構成要素にすぎないことがあり、他の規則が本発明の適用に優先し、あるいは本発明の適用を修正し得る。さらに、上記の要素が考慮される前、考慮される間、または考慮される後に、いくつかのステップが着手され得る。したがって、上記の説明は本開示の範囲を限定しない。
【００７８】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内にある。
【符号の説明】
【００７９】
100  モバイルデバイス
101  筐体
102  ディスプレイ
104  スピーカ
106  マイクロフォン
110  カメラ
112  出力デバイス
114  通信サブシステム
116  非一時的記憶デバイス
180  制御ユニット
180b  バス
181  プロセッサ
182  ハードウェア
183  ファームウェア
184  メモリ
185  ソフトウェア
191  サーフェス再構築ユニット
193  ラジアンス伝達ユニット
194  照明データユニット
195  ライティング推定ユニット
196  ライティング評価ユニット
197  レンダリングユニット
300  シーン幾何形状
310  カメラ
330  現実世界オブジェクト
340  仮想世界オブジェクト
35  光線
【図１Ａ】
0006356784.tif 000002
【図１Ｂ】
0006356784.tif 000003
【図２】
0006356784.tif 000004
【図３】
0006356784.tif 000005
【図４】
0006356784.tif 000006
【図５】
0006356784.tif 000007