本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
シーンの任意ビューを生成するための技術が開示されている。本明細書に記載の実例は、非常に低い処理または計算オーバヘッドを伴いつつ、高精細度出力も提供し、レンダリング速度と品質との間の困難なトレードオフを効果的に排除する。開示されている技術は、インタラクティブなリアルタイムグラフィックスアプリケーションに関して、高品質出力を非常に高速に生成するために特に有効である。かかるアプリケーションは、提示されたインタラクティブなビューまたはシーンのユーザ操作に応答してそれに従って、好ましい高品質出力を実質的に即時に提示することに依存する。
図1は、シーンの任意ビューを生成するためのシステム100の一実施形態を示すハイレベルブロック図である。図に示すように、任意ビュー生成器102が、任意ビューの要求を入力104として受信し、既存のデータベースアセット106に基づいて要求された視点を生成し、入力された要求に応答して、生成された視点を出力108として提供する。様々な実施形態において、任意ビュー生成器102は、中央処理装置(CPU)またはグラフィックス処置装置(GPU)などのプロセッサを備えてよい。図1に示すシステム100の構成は、説明のために提示されている。一般に、システム100は、記載した機能を提供する任意の他の適切な数および/または構成の相互接続された構成要素を備えてもよい。例えば、別の実施形態において、任意ビュー生成器102は、異なる構成の内部構成要素110〜116を備えてもよく、任意ビュー生成器102は、複数の並列物理および/または仮想プロセッサを備えてもよく、データベース106は、複数のネットワークデータベースまたはアセットのクラウドを備えてもよい、などである。
任意ビュー要求104は、シーンの任意の視点の要求を含む。いくつかの実施形態において、シーンの要求された視点は、シーンの他の視点すなわちビューポイントを含むアセットデータベース106内にまだ存在してはいない。様々な実施形態において、任意ビュー要求104は、プロセスまたはユーザから受信されてよい。例えば、入力104は、提示されたシーンまたはその一部のユーザ操作(提示されたシーンのカメラビューポイントのユーザ操作など)に応答して、ユーザインターフェスから受信されうる。別の例において、任意ビュー要求104は、シーンのフライスルーなど、仮想環境内での運動または移動の経路の指定に応答して受信されてもよい。いくつかの実施形態において、要求できるシーンの可能な任意ビューは、少なくとも部分的に制約されている。例えば、ユーザは、提示されたインタラクティブシーンのカメラビューポイントを任意のランダムな位置に操作することができなくてもよく、シーンの特定の位置または視点に制約される。
データベース106は、格納された各アセットの複数のビューを格納する。所与の文脈において、アセットとは、仕様が複数のビューとしてデータベース106に格納されている個々のシーンのことである。様々な実施形態において、シーンは、単一のオブジェクト、複数のオブジェクト、または、リッチな仮想環境を含みうる。具体的には、データベース106は、各アセットの異なる視点すなわちビューポイントに対応する複数の画像を格納する。データベース106に格納された画像は、高品質の写真または写実的レンダリングを含む。データベース106に投入するかかる高精細度すなわち高解像度の画像は、オフライン処理中にキャプチャまたはレンダリングされるかもしくは外部ソースから取得されてよい。いくつかの実施形態において、対応するカメラ特性が、データベース106に格納された各画像と共に格納される。すなわち、相対的な位置または場所、向き、回転、奥行情報、焦点距離、絞り、ズームレベルなどのカメラ属性が、各画像と共に格納される。さらに、シャッター速度および露出などのカメラの光学情報が、データベース106に格納された各画像と共に格納されてもよい。
様々な実施形態において、アセットの任意の数の異なる視点がデータベース106に格納されてよい。図2は、データベースアセットの一例を示す。与えられた例では、椅子オブジェクトの周りの異なる角度に対応する73のビューがキャプチャまたはレンダリングされ、データベース106に格納される。ビューは、例えば、椅子の周りでカメラを回転させるかまたはカメラ前でイスを回転させることによってキャプチャされてよい。相対的なオブジェクトおよびカメラの位置および向きの情報が、生成された各画像と共に格納される。図2は、1つのオブジェクトを含むシーンのビューを具体的に示している。データベース106は、複数のオブジェクトまたはリッチな仮想環境を含むシーンの仕様も格納してよい。かかるケースにおいては、シーンまたは三次元空間の中の異なる位置または場所に対応する複数のビューがキャプチャまたはレンダリングされ、対応するカメラ情報と共にデータベース106に格納される。一般に、データベース106に格納された画像は、二または三次元を含んでよく、アニメーションまたはビデオシーケンスのスチールまたはフレームを含んでよい。
すでにデータベース106に存在しないシーンの任意のビューの要求104に応答して、任意のビュー生成器102は、データベース106に格納されたシーンの複数の他の既存ビューから、要求された任意ビューを生成する。図1の構成例では、任意ビュー生成器102のアセット管理エンジン110が、データベース106を管理する。例えば、アセット管理エンジン110は、データベース106におけるデータの格納およびリトリーブを容易にしうる。シーン104の任意ビューの要求に応答して、アセット管理エンジン110は、データベース106からシーンの複数の他の既存ビューを特定して取得する。いくつかの実施形態において、アセット管理エンジン110は、データベース106からシーンのすべての既存ビューをリトリーブする。あるいは、アセット管理エンジン110は、既存ビューの一部(例えば、要求された任意ビューに最も近いビュー)を選択してリトリーブしてもよい。かかるケースにおいて、アセット管理エンジン110は、要求された任意ビューを生成するためのピクセルの収集元になりうる一部の既存ビューをインテリジェントに選択するよう構成される。様々な実施形態において、複数の既存ビューが、アセット管理エンジン110によって一緒にリトリーブされてもよいし、任意ビュー生成器102のその他の構成要素によって必要になり次第リトリーブされてもよい。
アセット管理エンジン110によってリトリーブされた各既存ビューの視点は、任意ビュー生成器102の視点変換エンジン112によって、要求された任意ビューの視点に変換される。上述のように、正確なカメラ情報が既知であり、データベース106に格納された各画像と共に格納されている。したがって、既存ビューから要求された任意ビューへの視点変更は、単純な幾何マッピングまたは幾何変換を含む。様々な実施形態において、視点変換エンジン112は、既存ビューの視点を任意ビューの視点に変換するために、任意の1または複数の適切な数学的手法を用いてよい。要求されたビューがどの既存ビューとも同一ではない任意ビューを含む場合、任意ビューの視点への既存ビューの変換は、少なくともいくつかのマッピングされていないピクセルまたは失われたピクセル、すなわち、既存ビューに存在しない任意ビューに導入された角度または位置にあるピクセルを含むことになる。
単一の視点変換された既存ビューからのピクセル情報では、別のビューのすべてのピクセルを埋めることができない。しかしながら、多くの場合、すべてではないが、要求された任意ビューのほとんどのピクセルが、複数の視点変換された既存ビューから収集されうる。任意ビュー生成器102のマージエンジン114が、複数の視点変換された既存ビューからのピクセルを組み合わせて、要求された任意ビューを生成する。理想的には、任意ビューを構成するすべてのピクセルが既存ビューから収集される。これは、例えば、考慮対象となる十分に多様なセットの既存ビューまたはアセットの視点が利用可能である場合、および/または、要求された視点が既存の視点とはそれほど異なっていない場合に、可能でありうる。
複数の視点変換された既存ビューからのピクセルを統合またはマージして、要求された任意ビューを生成するために、任意の適切な技術が用いられてよい。一実施形態において、要求された任意ビューに最も近い第1既存ビューが、データベース106から選択されてリトリーブされ、要求された任意ビューの視点に変換される。次いで、ピクセルが、この視点変換された第1既存ビューから収集され、要求された任意ビュー内の対応するピクセルを埋めるために用いられる。第1既存ビューから取得できなかった要求された任意ビューのピクセルを埋めるために、これらの残りのピクセルの少なくとも一部を含む第2既存ビューが、データベース106から選択されてリトリーブされ、要求された任意ビューの視点へ変換される。次いで、第1既存ビューから取得できなかったピクセルは、この視点変換された第2既存ビューから収集され、要求された任意ビュー内の対応するピクセルを埋めるために用いられる。この処理は、要求された任意ビューのすべてのピクセルが埋められるまで、および/または、すべての既存ビューが使い果たされるかまたは所定の閾値数の既存ビューが利用されるまで、任意の数のさらなる既存ビューについて繰り返されてよい。
いくつかの実施形態において、要求された任意ビューは、どの既存ビューからも取得できなかったいくつかのピクセルを含みうる。かかる場合、補間エンジン116が、要求された任意ビューのすべての残りのピクセルを埋めるよう構成されている。様々な実施形態において、要求された任意ビュー内のこれらの埋められていないピクセルを生成するために、任意の1または複数の適切な補間技術が補間エンジン116によって用いられてよい。利用可能な補間技術の例は、例えば、線形補間、最近隣補間などを含む。ピクセルの補間は、平均法または平滑化を導入する。全体の画像品質は、ある程度の補間によって大きい影響を受けることはないが、過剰な補間は、許容できない不鮮明さを導入しうる。したがって、補間は、控えめに用いることが望ましい場合がある。上述のように、要求された任意ビューのすべてのピクセルを既存ビューから取得できる場合には、補間は完全に回避される。しかしながら、要求された任意ビューが、どのビューからも取得できないいくつかのピクセルを含む場合には、補間が導入される。一般に、必要な補間の量は、利用可能な既存ビューの数、既存ビューの視点の多様性、および/または、任意ビューの視点が既存ビューの視点に関してどれだけ異なるか、に依存する。
図2に示した例に関して、椅子オブジェクトの周りの73のビューが、椅子の既存ビューとして格納される。格納されたビューとのいずれとも異なるすなわち特有の椅子オブジェクトの周りの任意ビューが、もしあったとしても好ましくは最小限の補間で、複数のこれらの既存ビューを用いて生成されうる。しかしながら、既存ビューのかかる包括的なセットを生成して格納することが、効率的でなかったり望ましくなかったりする場合がある。いくつかの場合、その代わりに、十分に多様なセットの視点を網羅する十分に少ない数の既存ビューが生成および格納されてもよい。例えば、椅子オブジェクトの73のビューが、椅子オブジェクトの周りの少数のビューの小さいセットに縮小されてもよい。
上述のように、いくつかの実施形態において、要求できる可能な任意ビューが、少なくとも部分的に制約されてもよい。例えば、ユーザは、インタラクティブなシーンに関連する仮想カメラを特定の位置に動かすことから制限されうる。図2で与えられた例に関して、要求できる可能な任意ビューが、椅子オブジェクトの周りの任意の位置に制限されてよいが、例えば、椅子オブジェクトの底部のために存在するピクセルデータが不十分であるので、椅子オブジェクトの下の任意の位置を含まなくてよい。許容される任意ビューについてのかかる制約は、要求された任意ビューを任意ビュー生成器102によって既存データから生成できることを保証する。
任意ビュー生成器102は、入力された任意ビュー要求104に応答して、要求された任意ビュー108を生成して出力する。生成された任意ビュー108の解像度または品質は、既存ビューからのピクセルが任意ビューを生成するために用いられているので、それを生成するために用いられた既存ビューの品質と同じであるかまたは同等である。したがって、ほとんどの場合に高精細度の既存ビューを用いると、高精細度の出力が得られる。いくつかの実施形態において、生成された任意ビュー108は、関連シーンの他の既存ビューと共にデータベース106に格納され、後に、任意ビューに対する将来の要求に応答して、そのシーンの他の任意ビューを生成するために用いられてよい。入力104がデータベース106内の既存ビューの要求を含む場合、要求されたビューは、上述のように、他のビューから生成される必要がなく;その代わり、要求されたビューは、簡単なデータベースルックアップを用いてリトリーブされ、出力108として直接提示される。
任意ビュー生成器102は、さらに、記載した技術を用いて任意アンサンブルビューを生成するよう構成されてもよい。すなわち、入力104は、複数のオブジェクトを単一のカスタムビューに統合するための要求を含んでよい。かかる場合、上述の技術は、複数のオブジェクトの各々に対して実行され、複数のオブジェクトを含む単一の統合されたビューすなわちアンサンブルビューを生成するように統合される。具体的には、複数のオブジェクトの各々の既存ビューが、アセット管理エンジン110によってデータベース106から選択されてリトリーブされ、それらの既存ビューは、視点変換エンジン112によって、要求されたビューの視点に変換され、視点変換された既存ビューからのピクセルが、マージエンジン114によって、要求されたアンサンブルビューの対応するピクセルを埋めるために用いられ、アンサンブルビュー内の任意の残りの埋められていないピクセルが、補間エンジン116によって補間される。いくつかの実施形態において、要求されたアンサンブルビューは、アンサンブルを構成する1または複数のオブジェクトのためにすでに存在する視点を含みうる。かかる場合、要求された視点に対応するオブジェクトアセットの既存ビューは、オブジェクトの他の既存ビューから要求された視点を最初に生成する代わりに、アンサンブルビュー内のオブジェクトに対応するピクセルを直接埋めるために用いられる。
複数のオブジェクトを含む任意アンサンブルビューの一例として、図2の椅子オブジェクトおよび別個に撮影またはレンダリングされたテーブルオブジェクトを考える。椅子オブジェクトおよびテーブルオブジェクトは、両方のオブジェクトの単一のアンサンブルビューを生成するために、開示されている技術を用いて統合されてよい。したがって、開示された技術を用いて、複数のオブジェクトの各々の別個にキャプチャまたはレンダリングされた画像またはビューが、複数のオブジェクトを含み所望の視点を有するシーンを生成するために、矛盾なく統合されうる。上述のように、各既存ビューの奥行情報は既知である。各既存ビューの視点変換は、奥行変換を含んでおり、複数のオブジェクトが、アンサンブルビュー内で互いに対して適切に配置されることを可能にする。
任意アンサンブルビューの生成は、複数の単一オブジェクトをカスタムビューに組み合わせることに限定されない。むしろ、複数のオブジェクトまたは複数のリッチな仮想環境を有する複数のシーンが、同様にカスタムアンサンブルビューに統合されてもよい。例えば、複数の別個に独立して生成された仮想環境(おそらくは異なるコンテンツ生成源に由来し、おそらくは異なる既存の個々の視点を有する)が、所望の視点を有するアンサンブルビューに統合されてよい。したがって、一般に、任意ビュー生成器102は、おそらくは異なる既存ビューを含む複数の独立したアセットを、所望のおそらくは任意の視点を有するアンサンブルビューに矛盾なく統合または調和させるよう構成されてよい。すべての統合されたアセットが同じ視点に正規化されるので、完璧に調和した結果としてのアンサンブルビューが生成される。アンサンブルビューの可能な任意視点は、アンサンブルビューを生成するために利用可能な個々のアセットの既存ビューに基づいて制約されうる。
図3は、任意視点を生成するための処理の一実施形態を示すフローチャートである。処理300は、例えば、図1の任意ビュー生成器102によって用いられてよい。様々な実施形態において、処理300は、所定のアセットの任意ビューまたは任意アンサンブルビューを生成するために用いられてよい。
処理300は、任意視点の要求が受信される工程302で始まる。いくつかの実施形態において、工程302で受信された要求は、シーンのどの既存の利用可能な視点とも異なる所定のシーンの任意視点の要求を含みうる。かかる場合、例えば、任意視点要求は、そのシーンの提示されたビューの視点の変更を要求されたことに応じて受信されてよい。視点のかかる変更は、カメラのパン、焦点距離の変更、ズームレベルの変更など、シーンに関連する仮想カメラの変更または操作によって促されてよい。あるいは、いくつかの実施形態において、工程302で受信された要求は、任意アンサンブルビューの要求を含んでもよい。一例として、かかる任意アンサンブルビュー要求は、複数の独立したオブジェクトの選択を可能にして、選択されたオブジェクトの統合された視点修正済みのアンサンブルビューを提供するアプリケーションに関して受信されうる。
工程304で、要求された任意視点の少なくとも一部を生成する元となる複数の既存画像が、1または複数の関連アセットデータベースからリトリーブされる。複数のリトリーブされた画像は、工程302で受信された要求が所定のアセットの任意視点の要求を含む場合には、所定のアセットに関連してよく、また、工程302で受信された要求が任意アンサンブルビューの要求を含む場合には、複数のアセットに関連してよい。
工程306で、異なる視点を有する工程304でリトリーブされた複数の既存画像の各々が、工程302で要求された任意視点に変換される。工程304でリトリーブされた既存画像の各々は、関連する視点情報を含む。各画像の視点は、相対位置、向き、回転、角度、奥行、焦点距離、絞り、ズームレベル、照明情報など、その画像の生成に関連するカメラ特性によって規定される。完全なカメラ情報が各画像について既知であるので、工程306の視点変換は、単純な数学演算を含む。いくつかの実施形態において、工程306は、任意選択的に、すべての画像が同じ所望の照明条件に一貫して正規化されるような光学変換をさらに含む。
工程308で、工程302で要求された任意視点を有する画像の少なくとも一部が、視点変換済みの既存画像から収集されたピクセルで埋められる。すなわち、複数の視点補正済みの既存画像からのピクセルが、要求された任意視点を有する画像を生成するために用いられる。
工程310で、要求された任意視点を有する生成された画像が完成したか否かが判定される。要求された任意視点を有する生成された画像が完成していないと工程310で判定された場合、生成された画像の任意の残りの埋められていないピクセルを取得するためのさらなる既存画像が利用可能であるか否かが工程312で判定される。さらなる既存画像が利用可能であると工程312で判定された場合、1または複数のさらなる既存画像が工程314でリトリーブされ、処理300は工程306に進む。
要求された任意視点を有する生成された画像が完成していないと工程310で判定され、かつ、もはや既存画像が利用できないと工程312で判定された場合、生成された画像のすべての残りの埋められていないピクセルが工程316で補間される。任意の1または複数の適切な補間技術が、工程316で用いられてよい。
要求された任意視点を有する生成された画像が完成したと工程310で判定された場合、または、工程316ですべての残りの埋められていないピクセルを補間した後、要求された任意視点を有する生成済みの画像が工程318で出力される。その後、処理300は終了する。
上述のように、開示した技術は、他の既存の視点に基づいて任意視点を生成するために用いられてよい。カメラ情報が各既存視点と共に保存されているので、異なる既存の視点を共通の所望の視点に正規化することが可能である。所望の視点を有する結果としての画像は、視点変換された既存画像からピクセルを取得することで構築できる。開示した技術を用いた任意視点の生成に関連する処理は、高速でほぼ即時であるだけでなく、高品質の出力も生み出すため、開示した技術は、インタラクティブなリアルタイムグラフィックスアプリケーションに対して特に強力な技術となっている。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。