(57)【特許請求の範囲】
【請求項１】
複数の参照カメラが１つの球体上に格子状に分布され、各参照カメラ位置の深度図を事前に計算するステップ１と、
前記参照カメラがある球体表面を移動範囲としてレンダリングカメラを移動させ、前記レンダリングカメラの四周を囲んでいる４つの参照カメラを計算、識別するステップ２と、
前記レンダリングカメラの画素ＰｉｘｅｌＤをオブジェクト表面の点Ｐに逆投影し、さらに点Ｐを４つの前記参照カメラに投影することにより、それぞれ画素ＰｉｘｅｌＲを得て深度テストを行うステップ３と、
深度テストに合格した参照カメラに対して補間を行うことにより、最終レンダリングの画素値を得るステップ４と、
を含み、
前記ステップ３の深度テストにおいて、点Ｐから参照カメラの光学中心までの垂直距離を当該カメラでの点Ｐの深度値Ｄｅｐｔｈ１とし、前記深度値Ｄｅｐｔｈ１と参照カメラに事前に記憶された深度図の画素ＰｉｘｅｌＲでの深度値Ｄｅｐｔｈ２とを比較し、Ｄｅｐｔｈ１＝Ｄｅｐｔｈ２である場合、当該参照カメラが点Ｐの深度テストに合格したと判断する、
ことを特徴とする、全視角方向の球体ライトフィールドレンダリング方法。
【請求項２】
前記ステップ３において、深度テストに合格した参照カメラが存在しない場合、深度テストに合格した参照カメラが存在するまで、４つの前記参照カメラの外周側に位置する他の参照カメラを選択して深度テストを行うことを特徴とする、請求項１に記載の全視角方向の球体ライトフィールドレンダリング方法。
【請求項３】
前記ステップ４において、深度テストが完了した後、４つの前記参照カメラにそれぞれ重みを付与し、計算式は、
【数１】
0006852224.tif 000017
であり、式中、
【数２】
0006852224.tif 000018
は、球心からレンダリングカメラを指向するベクトルとして定義され、
【数３】
0006852224.tif 000019
は、球心から参照カメラを指向するベクトルとして定義され、ＷＲの値の範囲は、
【数４】
0006852224.tif 000020
であり、
ＷＲが正規化された後の前記レンダリングカメラの画素ＰｉｘｅｌＤでの画素値は、
【数５】
0006852224.tif 000021
であり、式中、Ｒは、深度テストに合格した参照カメラ集合であることを特徴とする、請求項１に記載の全視角方向の球体ライトフィールドレンダリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス技術分野に関し、具体的には、多視点画像により現実オブジェクトをリアルタイムレンダリングする全視角方向の球体ライトフィールドレンダリング方法に関する。
【背景技術】
【０００２】
現在、既知の３Ｄモデルレンダリングエンジンは、モデルとテクスチャマッピングとの組み合わせを採用し、ラスタライズレンダリングパイプラインによりレンダリングして画像を形成する。現在、ゲーム分野におけるキャラクター及びシーンは、ほとんどこのような方法によりレンダリングして得られたものである。しかし、仮想現実技術の発展に伴い、このような人工レンダリング結果は、真実感欠如のため、人々の期待に応えなくなった。
【０００３】
従来のレンダリングエンジンには、主に以下の問題が存在する。
（１）レンダリングデータの作成には、多くの人的資源を消費する必要がある。具体的には、現実オブジェクトに類似するモデルを構築し、モデルの外観が現実オブジェクトに近くようにモデルのテクスチャ及びマッピングを調整することにモデラーの多くの時間がかかる。また、この過程を繰り返して行う必要がある場合がある。
【０００４】
（２）レンダリング結果は、現実オブジェクトと大きな違いがある。従来のレンダリングエンジンに入力される三次元モデル及びテクスチャマッピングは、いずれも手作りのものであるため、オブジェクトの多くの細部を再現することができない。これらの細部は、オブジェクトの真実性を反映する最高の表現である。そのため、レンダリングにより得られた画像と肉眼で見た画像との間に常に大きな違いがある。
【０００５】
上記問題は、従来の３Ｄレンダリングエンジンに存在する一般的な問題である。上記問題を解決するために、本発明は、レンダリング方法を提供する。当該方法によれば、カメラによる撮影により必要なデータを取得できることでテクスチャマッピングの調整ステップが省略され、レンダリング結果は真に迫っており、没入感が高くなる。従来のレンダリング方法と同様に、本発明は、「全視角方向」機能、即ち、あらゆる角度からオブジェクトを観察できる機能も提供する。
【発明の概要】
【０００６】
本発明は、従来のレンダリングエンジンにより現実オブジェクトをレンダリングすることができない不足を克服するために、リアルタイムレンダリングを実現できるとともに、多視点画像により現実オブジェクトの各視角の画像をレンダリングすることができる全視角方向の球体ライトフィールドレンダリング方法を提供する。
【０００７】
上記目的を達成するために、本発明の技術的手段は、
関連ファイルの予備入力及び読み込みを行う予備ステップであるステップ１と、
球体上に格子状に分布する参照カメラ位置の深度図を予備計算するステップ２と、
前記球体表面を移動範囲としてレンダリングカメラを移動させ、前記レンダリングカメラの四周を囲んでいる４つの前記参照カメラを計算、識別するステップ３と、
前記レンダリングカメラの画素を逆投影し、４つの前記参照カメラと共に深度テストを行うステップ４と、
深度テストに合格した参照カメラに対して補間を行うことにより、最終レンダリングの画素値を得るステップ５と、
を含む。
【０００８】
前記ステップ４において、深度テストに合格した参照カメラが存在しない場合、深度テストに合格した参照カメラが存在するまで、４つの前記参照カメラの外周側に位置する他の参照カメラを選択して深度テストを行う。
【０００９】
前記ステップ４の深度テストにおいて、点Ｐから参照カメラの光学中心までの垂直距離を当該カメラでのＰの深度値Ｄｅｐｔｈ１とし、前記深度値Ｄｅｐｔｈ１と参照カメラに事前に記憶された深度図のＰｉｘｅｌＲでの深度値Ｄｅｐｔｈ２とを比較し、Ｄｅｐｔｈ１＝Ｄｅｐｔｈ２である場合、参照カメラが点Ｐの深度テストに合格したと判断する。
【００１０】
前記ステップ５において、深度テストが完了した後、４つの前記参照カメラにそれぞれ重みを付与し、計算式は
【数１】
0006852224.tif 000002
であり、式中、
【数２】
0006852224.tif 000003
は、球心からレンダリングカメラを指向するベクトルとして定義され、
【数３】
0006852224.tif 000004
は、球心から参照カメラを指向するベクトルとして定義され、Ｗの値の範囲は、
【数４】
0006852224.tif 000005
であり、
ＷＲが正規化された後の前記レンダリングカメラのＰｉｘｅｌＤでの画素値は、
【数５】
0006852224.tif 000006
であり、式中、Ｒは、深度テストに合格した参照カメラ集合である。
【００１１】
前記ステップ１において、前記関連ファイルは、低精度のオブジェクト三次元モデル、参照カメラの外部参照、内部参照及び同じ数の画像、参照カメラの相対位置関係を記述するファイル、データセット属性を記述する構成ファイルを含む。
【００１２】
前記低精度のオブジェクト三次元モデルの面数は３万−１０万である。
【００１３】
本発明によれば、従来技術と比較して、計算資源が節約され、ユーザが携帯やラップトップコンピューターのような通常のコンピューティングデバイスで、レンダリングの結果を迅速かつリアルタイムで見ることができ、ユーザが操作画面上で指をスライドさせることでレンダリングエンジンとインタラクションすることにより、球面上のあらゆる角度（所謂「全視角方向」）からオブジェクトを観察することができる。本発明の「全視角方向」効果により、ユーザは、観察しようとする角度をも落とすことがなく、様々な分野においてより良い効果が得られる。例えば、オンラインショッピングにあたり、ユーザは、一部の角度ではなく、あらゆる角度でオブジェクト全体を見ることができる。また、レンダリング結果は、現実画像のデータ（画像セット）から得られたものであるので、真実性も高くなり、ユーザにリアルな没入感をもたらす。
【図面の簡単な説明】
【００１４】
【図１ａ】入力フォーマット画像の模式図である。
【図１ｂ】入力画像の模式図である。
【図１ｃ】入力画像の模式図である。
【図１ｄ】入力画像の模式図である。
【図１ｅ】本発明の実施例にかかる参照カメラが球体に格子状に分布される模式図である。
【図２】本発明のレンダリングプロセスの説明図である。
【図３】レンダリングカメラと参照カメラの相対位置の模式図である。
【図４】投影及び逆投影の説明参考図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明をさらに説明する。
【００１６】
図１ａから図４は、本発明の一実施例を示す。本実施例は、リアルタイムレンダリングを達成するとともに、多視点画像により現実オブジェクトの各視角の画像をレンダリングすることができる新しい方法を使用するライトフィールドレンダリングエンジンを提供する。具体的な実施ステップは、以下の通りである。
【００１７】
図１ａから図１ｄは、本実施例の入力フォーマット画像である。本実施例の入力データは、低精度のオブジェクト三次元モデル（面数：３万−１０万）、２００−３００セットの参照カメラの外部参照、内部参照、同じ数の画像、参照カメラの相対位置関係を記述するファイル、及びこのデータセットの属性を記述する構成ファイルを含む。具体的なデータの説明は、模式図を参照されたい。
【００１８】
図３を参照されたい。以下に記載の参照カメラは、入力画像を採取するカメラである。レンダリングカメラは、ユーザがインタラクションにより決定したカメラであり、出力画像のレンダリングに用いられる。両者のパラメータは同じでも異なっていてもよい。
【００１９】
図１ａは、オブジェクトの三次元モデルであり、合計３万個の頂点及び１４万個の面を含む。図１ｂから図１ｄは、画像セットの３つの実例であり、それぞれ異なる３つの角度から撮影したオブジェクト画像である。前記画像セットには、他の角度で撮影した類似する画像も含まれる。
【００２０】
下表は、１つの参照カメラの外部参照データを示し、４行に分けられ、各行に３つの数値が含まれ、各行がそれぞれカメラのＺ軸ベクトル、Ｘ軸ベクトル、Ｙ軸ベクトル及び座標を示す。他の参照カメラは、それぞれ各自の対応する数値を有する。
【表１】
0006852224.tif 000007
【００２１】
下表は、１つの参照カメラの内部参照マトリックスであり、カメラの光学中心座標及び焦点距離データを含む。他の参照カメラは、それぞれ各自の対応する数値を有する。
【表２】
0006852224.tif 000008
【００２２】
図１ｅは、可視化された参照カメラの位置模式図である。参照カメラは、１つの球体上に均一に分布されている。
【００２３】
下表は、入力データの追加の属性を示す。上から下への各項目は、それぞれ高解像度画像の数、低解像度画像の数、高横解像度、高縦解像度、低横解像度、低縦解像度、参照カメラの中心座標、参照カメラがある球面の半径、参照カメラの近平面及び参照カメラの遠平面を示す。
【表３】
0006852224.tif 000009
【００２４】
図２は、本実施例のレンダリング方法のフローチャートである。当該レンダリング方法は、主に以下のステップを含む。
ステップ１：参照カメラ位置の深度図を予備計算する。
ステップ２：参照カメラがある球面を範囲としてレンダリングカメラを移動させ、どの４つの参照カメラがレンダリングカメラを囲んでいるかを計算する。
ステップ３：レンダリングカメラを画素逆投影し、ステップ２の４つの参照カメラと共に深度テストを行い、深度テストに合格したカメラに対して補間を行うことにより、最終レンダリングの画素値を得る。
【００２５】
前記過程において、データ読み取り段階では、次の深度テストのために、各参照カメラ位置の深度図を事前に計算する必要がある。
【００２６】
レンダリングカメラは、ユーザがオブジェクトを観察可能な角度を決定し、即ち、レンダリングされる出力図像を決定する。図１ｅに示すように、参照カメラがある球面は、レンダリングカメラの移動範囲を決定する。本実施例では、レンダリングカメラ位置が固定する場合におけるその周囲の４つの参照カメラの番号を計算する必要がある（図３）。参照カメラの番号の順序が変化できるので、入力データには参照カメラの位置関係が含まれる必要があり（即ち、図１ｅ）、次いで、ベクトル−四角形交差アルゴリズムにより計算する。
【００２７】
まず、ベクトル
【数６】
0006852224.tif 000010
を計算する。出発点は参照カメラの中心であり、終点はレンダリングカメラの座標である。参照カメラの球面が複数の四角形からなると考えられるので、ベクトル−四角形交差アルゴリズムにより、
【数７】
0006852224.tif 000011
と交差する四角形を確定することができる。さらに、入力カメラ位置ファイルを見れば、四つの候補参照カメラの番号を得る。
【００２８】
図４を参照されたい。ステップ３において、レンダリングカメラＣａｍＤの各画素ＰｉｘｅｌＤをオブジェクト表面の点Ｐに逆投影し、さらにＰを４つの参照カメラ（図４に２つのみが示されているが、他の２つは同様である）に投影することにより、それぞれ画素ＰｉｘｅｌＲ１、ＰｉｘｅｌＲ２、ＰｉｘｅｌＲ３及びＰｉｘｅｌＲ４を得る。この場合、参照カメラのビューで、点Ｐがオブジェクトの他の部分により遮られているので見られない可能性があるため、補間前に深度テストを行う必要がある。
【００２９】
さらに、深度テストを行う。点Ｐから参照カメラＣａｍＲ１の光学中心までの垂直距離は当該カメラでのＰの深度値であり、Ｄｅｐｔｈ１と記す。ＣａｍＲ１に事前に記憶された深度図のＰｉｘｅｌＲ１での深度値をＤｅｐｔｈ２と記す。Ｄｅｐｔｈ１＝Ｄｅｐｔｈ２である場合、参照カメラＣａｍＲ１が点Ｐの深度テストに合格したと判断する。同様に、ＣａｍＲ２、ＣａｍＲ３及びＣａｍＲ４に対してそれぞれ深度テストを行うことができる。
【００３０】
４つの参照カメラにそれぞれ重みを付与し、計算式は
【数８】
0006852224.tif 000012
であり、式中、
【数９】
0006852224.tif 000013
は、球心からレンダリングカメラを指向するベクトルとして定義され、
【数１０】
0006852224.tif 000014
は、球心から参照カメラＣａｍＲを指向するベクトルとして定義される。Ｗの値の範囲は
【数１１】
0006852224.tif 000015
である。深度テストに合格していない参照カメラは、その重み付与値が０であり、深度テストに合格した参照カメラは、その重みが計算して正規化される。
【００３１】
深度テストに合格したカメラの数が０ではない場合、最終レンダリングカメラのＰｉｘｅｌＤでの画素値は、
【数１２】
0006852224.tif 000016
である。
式中、Ｒは、深度テストに合格した参照カメラ集合である。
深度テストに合格したカメラが存在しない場合、深度テストに合格した参照カメラが存在するまで、前記４つのカメラを囲んでいる参照カメラを選択して深度テストを行う。具体的には、４つの参照カメラがいずれも深度テストに合格しなかった場合、前記４つの参照カメラの周りのカメラまで拡張し、外側の１２個の参照カメラからなる長方形においてステップ４、即ち、逆投影及び深度テストを繰り返す。このようにして、９９％以上の画素値が深度テストに合格することが保証され、今回のレンダリングが終了したと考えられる。
【００３２】
本実施例は、スマートフォンまたはコンピュータのソフトウェアによりユーザにレンダリングカメラを移動させるインタラクション手段を提供することができる。本発明は、必要な計算資源が少ないため、具体的な入力データと組み合わせるだけで前記設備によりレンダリング結果をリアルタイムで得ることができる。
【００３３】
以上、図面及び実施例により本発明の実施形態を説明したが、本発明は、実施例に開示された構造に制限されない。当業者は、必要に応じて添付する特許請求の範囲内で加えた様々な変形又は修正は、いずれも保護の範囲に含まれる。
【図１ａ】
0006852224.tif 000022
【図１ｂ】
0006852224.tif 000023
【図１ｃ】
0006852224.tif 000024
【図１ｄ】
0006852224.tif 000025
【図１ｅ】
0006852224.tif 000026
【図２】
0006852224.tif 000027
【図３】
0006852224.tif 000028
【図４】
0006852224.tif 000029