本実施の形態は基本的に、ユーザの視点に応じた視野で画像を表示する。その限りにおいて画像を表示させる装置の種類は特に限定されず、ウェアラブルディスプレイ、平板型のディスプレイ、プロジェクタなどのいずれでもよいが、ここではウェアラブルディスプレイのうちヘッドマウントディスプレイを例に説明する。
ウェアラブルディスプレイの場合、ユーザの視線は内蔵するモーションセンサによりおよそ推定できる。その他の表示装置の場合、ユーザがモーションセンサを頭部に装着したり、注視点検出装置を用いて赤外線の反射を検出したりすることで視線を検出できる。あるいはユーザの頭部にマーカーを装着させ、その姿を撮影した画像を解析することにより視線を推定してもよいし、それらの技術のいずれかを組み合わせてもよい。
図1は、ヘッドマウントディスプレイ100の外観例を示す。ヘッドマウントディスプレイ100は、本体部110、前頭部接触部120、および側頭部接触部130を含む。ヘッドマウントディスプレイ100は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。ヘッドマウントディスプレイ100に内蔵または外付けされたモーションセンサにより、ヘッドマウントディスプレイ100を装着したユーザの頭部の回転角や傾きといった姿勢情報を計測することができる。
ヘッドマウントディスプレイ100は、「ウェアラブルディスプレイ装置」の一例である。ウェアラブルディスプレイ装置には、狭義のヘッドマウントディスプレイ100に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドホン、ヘッドセット(マイクつきヘッドホン)、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなど任意の装着可能なディスプレイ装置が含まれる。
図2は、本実施の形態に係る情報処理システムの構成図である。ヘッドマウントディスプレイ100は、無線通信またはUSBなどの周辺機器を接続するインタフェース205により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置200に提供してもよい。
画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する。この限りにおいて画像を表示する目的は様々であってよい。例えば画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界が実世界かに関わらず観賞用として静止画像または動画像を表示させてもよい。表示装置をヘッドマウントディスプレイとした場合、視点を中心に広い角度範囲でパノラマ画像を表示できるようにすれば、表示世界に没入した状態を演出することもできる。
図3は、本実施の形態で画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例ではユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を射影することで表示画像を描画する。
ユーザ12の視点の位置や視線の方向(以後、これらを包括的に「視点」と呼ぶ場合がある)を所定のレートで取得し、これに応じてビュースクリーン14の位置や方向を変化させれば、ユーザの視点に対応する視野で画像を表示させることができる。視差を有するステレオ画像を生成し、ヘッドマウントディスプレイ100において左右の目の前に表示させれば、仮想空間を立体視させることもできる。これによりユーザ12は、あたかも表示世界の部屋の中に没入しているような仮想現実を体験することができる。なお図示する例では表示対象を、コンピュータグラフィックスを前提とする仮想世界としたが、パノラマ写真など実世界の撮影画像としたり、それと仮想世界とを組み合わせたりしてもよい。
このような表示に臨場感を持たせるためには、表示対象の空間で生じる物理現象をできるだけ正確に反映させることが望ましい。例えばオブジェクト表面での拡散反射や鏡面反射、環境光など、目に到達する様々な光の伝播を正確に計算することにより、視点の動きによるオブジェクト表面の色味や輝度の変化をよりリアルに表現することができる。これを実現する代表的な手法がレイトレーシングである。しかしながら、ユーザによる自由視点を許容する環境では特に、そのような物理計算を高精度に行うことにより、表示までに看過できないレイテンシが生じることが考えられる。
そこで本実施の形態では、特定の視点から見た画像を前もって取得しておき、任意の視点に対する表示画像の画素値の決定に利用する。すなわち表示画像に像として表れるオブジェクトの色を、前もって取得しておいた画像の対応する箇所から抽出することで決定する。以後、事前の画像取得において設定する視点を「基準視点」、基準視点から見た事前に取得する画像を「基準画像」と呼ぶ。表示画像の描画に用いるデータの一部を、基準画像として事前に取得しておくことにより、視点の移動から表示までのレイテンシを抑えられる。また基準画像の取得については基本的に時間的な制約がないため、レイトレーシングなどの物理計算を、時間をかけて高精度に行うことができる。
基準視点を、表示時の視点に想定される可動範囲に分散させて複数個設定し、それぞれについて基準画像を準備しておけば、複数の視点から見た同じオブジェクトの色味を加味して、表示時の視点に応じたオブジェクトをより高精度に表現できる。より具体的には、表示時の視点が基準視点の一つと一致しているとき、当該基準視点に対応する基準画像の画素値をそのまま採用できる。表示時の視点が複数の基準視点の間にあるとき、当該複数の基準視点に対応する基準画像の画素値を合成することにより、表示画像の画素値を決定する。
図4は画像生成装置200の内部回路構成を示している。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続されている。バス230にはさらに入出力インタフェース228が接続されている。
入出力インタフェース228には、USBやIEEE1394などの周辺機器インタフェースや、有線又は無線LANのネットワークインタフェースからなる通信部232、ハードディスクドライブや不揮発性メモリなどの記憶部234、ヘッドマウントディスプレイ100などの表示装置へデータを出力する出力部236、ヘッドマウントディスプレイ100からデータを入力する入力部238、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部240が接続される。
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。CPU222はまた、リムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラムを実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部236に出力する。メインメモリ226はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図5は、本実施の形態における画像生成装置200の機能ブロックを示している。画像生成装置200は上述のとおり、電子ゲームを進捗させたりサーバと通信したりする一般的な情報処理を行ってよいが、図5では特に、視点に応じた表示画像のデータを生成する機能に着目して示している。なお図5で示される画像生成装置200の機能のうち少なくとも一部を、ヘッドマウントディスプレイ100に実装してもよい。あるいは、画像生成装置200の少なくとも一部の機能を、ネットワークを介して画像生成装置200に接続されたサーバに実装してもよい。
また図5および後述する図6に示す機能ブロックは、ハードウェア的には、図4に示したCPU、GPU、各種メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像生成装置200は、ユーザの視点に係る情報を取得する視点情報取得部260、表示対象のオブジェクトからなる空間を構築する空間構築部262、ビュースクリーンにオブジェクトを射影する射影部264、オブジェクトの像を構成する画素の値を決定し表示画像を完成させる画素値決定部266、表示画像のデータをヘッドマウントディスプレイ100に出力する出力部268を備える。画像生成装置200はさらに、空間の構築に必要なオブジェクトモデルに係るデータを記憶するオブジェクトモデル記憶部254、および、基準画像のデータを記憶する基準画像データ記憶部256を備える。
視点情報取得部260は、図4の入力部238、CPU222などで構成され、ユーザの視点の位置や視線の方向を所定のレートで取得する。例えばヘッドマウントディスプレイ100に内蔵した加速度センサの出力値を逐次取得し、それによって頭部の姿勢を取得する。さらにヘッドマウントディスプレイ100の外部に図示しない発光マーカーを設け、その撮影画像を図示しない撮像装置から取得することで、実空間での頭部の位置を取得する。
あるいはヘッドマウントディスプレイ100側に、ユーザの視野に対応する画像を撮影する図示しない撮像装置を設け、SLAM(Simultaneous Localization and Mapping)などの技術により頭部の位置や姿勢を取得してもよい。このように頭部の位置や姿勢を取得できれば、ユーザの視点の位置および視線の方向はおよそ特定できる。ユーザの視点に係る情報を取得する手法は、ヘッドマウントディスプレイ100を利用する場合に限らず様々に考えられることは当業者には理解されるところである。
空間構築部262は、図4のCPU222、GPU224、メインメモリ226などで構成され、表示対象のオブジェクトが存在する空間の形状モデルを構築する。図3で示した例では、室内を表す壁、床、窓、テーブル、テーブル上の物などのオブジェクトを、仮想空間を定義するワールド座標系に配置する。個々のオブジェクトの形状に係る情報はオブジェクトモデル記憶部254から読み出す。空間構築部262が構築する空間は固定としてもよいしゲームなどの進捗に応じて変化させてもよい。
ここで空間構築部262は、オブジェクトの形状、位置、姿勢を決定すればよく、一般的なコンピュータグラフィクスにおけるサーフェスモデルに基づくモデリングの手法を利用できる。射影部264は、図4のGPU224、メインメモリ226などで構成され、視点情報取得部260が取得した視点の情報に応じてビュースクリーンを設定する。すなわち頭部の位置や顔面の向く方向に対応させてスクリーン座標を設定することにより、ユーザの位置や向く方向に応じた視野で表示対象の空間がスクリーン平面に描画されるようにする。
射影部264はさらに、空間構築部262が構築した空間内のオブジェクトをビュースクリーンに射影する。この処理も、ポリゴンなどのメッシュを透視変換する一般的なコンピュータグラフィクスの手法を利用できる。画素値決定部266は、図4のGPU224、メインメモリ226などで構成され、ビュースクリーンに射影されてなるオブジェクトの像を構成する画素の値を決定する。このとき上述のとおり基準画像のデータを基準画像データ記憶部256から読み出し、同じオブジェクト上のポイントを表す画素の値を抽出して利用する。
例えば実際の視点の周囲の基準視点に対し生成された基準画像から対応する画素を特定し、実際の視点と基準視点との距離や角度に基づく重みで平均することにより、表示画像の画素値とする。レイトレーシングなどにより時間をかけて正確に基準画像を生成しておくことにより、運用時には、対応する画素値を読み出し加重平均する、という負荷の軽い計算で、レイトレーシングをした場合に近い高精細な画像表現を実現できる。
基準視点は、ユーザの視点の可動範囲を網羅するように分布させることが望ましい。なお基準画像は、レイトレーシングによって描画されたグラフィックス画像に限らず、事前に基準視点から実空間を撮影した画像などでもよい。この場合、空間構築部262は撮影対象となった実空間の形状モデルを構築し、射影部264は表示時の視点に応じたビュースクリーンに当該形状モデルを射影する。あるいは表示時の視点に応じた視野で撮影対象のオブジェクトの像の位置を決定できれば、空間構築部262と射影部264の処理を省略することもできる。
なお表示画像を立体視させる場合、射影部264および画素値決定部266は、左目および右目の視点に対しそれぞれ処理を行ってもよい。出力部268は、図4のCPU222、メインメモリ226、出力部236などで構成され、画素値決定部266が画素値を決定して完成させた表示画像のデータを、ヘッドマウントディスプレイ100に所定のレートで送出する。立体視のためステレオ画像を生成した場合、出力部268はそれらを左右につなげた画像を表示画像として生成し出力する。レンズを介して表示画像を鑑賞する構成のヘッドマウントディスプレイ100の場合、出力部268は、当該レンズによる歪みを考慮した補正を表示画像に施してもよい。
図6は、描画処理によって基準画像を生成する場合に、基準画像のデータを生成する装置の機能ブロックを示している。基準画像生成装置300は、図5の画像生成装置200の一部としてもよいし、図5の基準画像データ記憶部256に格納するデータを生成する装置として独立に設けてもよい。また生成された基準画像のデータと、生成に用いたオブジェクトモデルを含む電子コンテンツとして記録媒体などに格納しておき、運用時に画像生成装置200におけるメインメモリにロードできるようにしてもよい。基準画像生成装置300の内部回路構成は、図4で示した画像生成装置200の内部回路構成と同様でよい。
基準画像生成装置300は、基準視点を設定する基準視点設定部310、表示対象のオブジェクトからなる空間を構築する空間構築部316、構築された空間に基づき基準視点ごとに基準画像のデータを生成する基準画像データ生成部318、空間の構築に必要なオブジェクトモデルに係るデータを記憶するオブジェクトモデル記憶部314、および、生成した基準画像のデータを格納する基準画像データ記憶部320を備える。
基準視点設定部310は、入力部238、CPU222、メインメモリ226などで構成され、表示対象の空間における基準視点の位置座標を設定する。好適には、上述のとおりユーザがとり得る視点の範囲を網羅するように複数の基準視点を分布させる。このような範囲や基準視点の数の適正値は、表示対象の空間の構成、表示の目的、表示に求められる精度、画像生成装置200の処理性能などによって異なる。このため基準視点設定部310は、基準視点の位置座標に係るユーザの入力を受け付けるようにしてもよい。
空間構築部316は、CPU222、GPU224、メインメモリ226などで構成され、表示対象のオブジェクトが存在する空間の形状モデルを構築する。この機能は図5で示した空間構築部262の機能と対応する。一方、図6の基準画像生成装置300では、レイトレーシングなどによりオブジェクトの像を正確に描画するため、オブジェクトの色や材質を加味したソリッドモデルに基づくモデリング手法を用いる。そのためオブジェクトモデル記憶部314には、色や材質などの情報を含むオブジェクトのモデルデータを格納しておく。
基準画像データ生成部318は、CPU222、GPU224、メインメモリ226などで構成され、基準画像生成部322およびデプス画像生成部324を含む。基準画像生成部322は、基準視点設定部310が設定した基準視点ごとに、当該基準視点から見える表示対象のオブジェクトを描画する。好適には正距円筒図法などによる360°のパノラマ画像として基準画像を準備しておくことにより、表示時の視点も全方位に自由に変化させることができる。また光線の伝播について時間をかけて計算することにより、各基準視点における見え方を基準画像に正確に表すことが望ましい。
デプス画像生成部324は、基準画像生成部322が生成した基準画像に対応するデプス画像を生成する。すなわち基準画像の各画素が表すオブジェクトの、ビュースクリーンからの距離(デプス値)を求め、それを画素値として与えることによりデプス画像を生成する。なお基準画像を360°のパノラマ画像とした場合、ビュースクリーンは球面となるため、デプス値は当該球面の法線方向におけるオブジェクトまでの距離となる。生成したデプス画像は、表示画像の画素値を決定する際に用いる基準画像の選択に利用される。基準画像データ生成部318は、このように生成した基準画像とデプス画像のデータを、基準視点の位置座標と対応づけて基準画像データ記憶部320に格納する。
図7は基準視点の設定例を示している。この例ではユーザ12が立ったときの目の高さの水平面20aと、座ったときの目の高さの水平面20bのそれぞれに、黒丸で示すように複数個の基準視点を設定している。一例として水平面20aは床から1.4m、水平面20bは床から1.0mなどである。またユーザの標準位置(ホームポジション)を中心とする左右方向(図のX軸方向)および前後方向(図のY軸方向)に、表示内容に応じた移動範囲を想定し、水平面20a、20b上の対応する矩形領域に基準視点を分布させる。
この例では、矩形領域をX軸方向、Y軸方向にそれぞれ4等分する格子の交点に1つおきに基準視点を配置している。また上下の水平面20a、20bで基準視点が重ならないようにずらして配置している。結果として図7に示す例では、上の水平面20aにおいて13点、下の水平面20bにおいて12点の、合計25点の基準視点が設定されている。
ただし基準視点の分布をこれに限る主旨ではなく、垂直面なども含めた複数の平面上に分布させてもよいし、球面などの曲面上に分布させてもよい。また分布を均等にせず、ユーザがいる確率の高い範囲には他より高い密度で基準視点を分布させてもよい。また表示対象のオブジェクトを移動させたり変形させたりするような動きを演出する場合、基準視点もそれに応じて移動させてもよい。この場合、各基準視点に対する基準画像は当該動きを反映するような動画像のデータとなる。
また、特定のオブジェクトに対しそれを囲むように複数の基準視点を設定して専用の基準画像を準備しておき、当該オブジェクトを含む空間全体の表示画像生成時に合成するようにしてもよい。この場合、画像生成装置200は、当該オブジェクトのメッシュを他と同様にビュースクリーンに射影したうえ、画素値の決定には別途準備した、当該オブジェクト専用の基準画像を用いる。このようにすることで、重要なオブジェクトや接近して見られる可能性の高いオブジェクトなどについてより詳細に表現したり、特定のオブジェクトのみを移動させたり変形させたりすることを、基準画像データの量を増大させずに実現できる。
図8は、画像生成装置200の画素値決定部266が、表示画像の画素値の決定に用いる基準画像を選択する手法を説明するための図である。同図はオブジェクト24を含む表示対象の空間を俯瞰した状態を示している。この空間において、5つの基準視点28a〜28eが設定され、それぞれに対し基準画像のデータが生成されているとする。同図において基準視点28a〜28eを中心とする円は、全天球のパノラマ画像として準備した基準画像のスクリーン面を模式的に示している。
画像表示時のユーザの視点が仮想カメラ30の位置にあるとすると、射影部264は当該仮想カメラ30に対応するようにビュースクリーンを決定し、オブジェクト24のモデル形状を射影する。その結果、表示画像における画素とオブジェクト24の表面上の位置との対応関係が判明する。そして、例えばオブジェクト24の表面のポイント26の像を表す画素の値を決定する場合、画素値決定部266はまず、当該ポイント26が像として表れている基準画像を特定する。
ワールド座標系における各基準視点28a〜28eとポイント26の位置座標は既知であるため、それらの距離は容易に求められる。図ではその距離を、各基準視点28a〜28eとポイント26を結ぶ線分の長さで示している。またポイント26を各基準視点のビュースクリーンに逆射影すれば、各基準画像においてポイント26の像が表れるべき画素の位置も特定できる。一方、基準視点の位置によっては、ポイント26がオブジェクトの裏側になったり前にあるオブジェクトに隠蔽されていたりして、基準画像の当該位置にその像が表れないことがある。
そこで画素値決定部266は、各基準画像に対応するデプス画像を確認する。デプス画像の画素値は、対応する基準画像に像として現れるオブジェクトの、スクリーン面からの距離を表している。したがって、基準視点からポイント26までの距離と、デプス画像におけるポイント26の像が表れるべき画素のデプス値とを比較することで、当該像がポイント26の像であるか否かを判定する。
例えば基準視点28cからポイント26への視線上には、オブジェクト24の裏側のポイント32があるため、対応する基準画像におけるポイント26の像が表れるべき画素は、実際にはポイント32の像を表している。したがって対応するデプス画像の画素が示す値はポイント32までの距離であり、基準視点28cを始点とする値に換算した距離Dcは、座標値から計算されるポイント26までの距離dcより明らかに小さくなる。そこでデプス画像から得られる距離Dcと座標値から得られるポイント26までの距離dcとの差がしきい値以上であるとき、ポイント26を表す画素値の計算から当該基準画像を除外する。
同様に、基準視点28d、28eのデプス画像から得られる対応する画素のオブジェクトまでの距離Dd、Deは、各基準視点28d、28eからポイント26までの距離としきい値以上の差があるとして計算から除外される。一方、基準視点28a、28bのデプス画像から得られる対応する画素のオブジェクトまでの距離Da、Dbは、各基準視点28a、28bからポイント26までの距離と略同一であることがしきい値判定により特定できる。画素値決定部266は、このようにデプス値を用いたスクリーニングを行うことにより、表示画像の画素ごとに、画素値の算出に用いる基準画像を選択する。
図8では5つの基準視点を例示しているが、実際には図7で示したように分布させた基準視点の全てに対して、デプス値を用いた比較を行う。これにより精度の高い表示画像を描画できる。一方、表示画像の全画素について、25程度のデプス画像および基準画像を参照することは、装置の処理性能によっては看過できない負荷を産むことも考えられる。そこで画素値の決定に用いる基準画像を上述のように選択するのに先立ち、所定の基準によって選択候補とする基準画像を絞りこんでもよい。例えば仮想カメラ30から所定の範囲内に存在する基準視点を抽出し、それらからの基準画像に限定してデプス値を用いた選択処理を実施する。
このとき、抽出する基準視点の上限を10個、20個などと設定しておき、そのような上限に収まるように、抽出対象の範囲を調整したり、ランダムあるいは所定の規則に基づき取捨選択したりしてもよい。また表示画像上の領域によって、抽出する基準視点の数を異ならせてもよい。例えばヘッドマウントディスプレイを用いて仮想現実を実現する場合、表示画像の中心領域はユーザの視線の向く方向と一致するため、周辺領域より高い精度での描画が望ましい。
そこで表示画像の中心から所定範囲内にある画素については、ある程度多くの基準視点(基準画像)を選択候補とする一方、それより外側にある画素については、選択候補の数を減らす。一例として中心領域は20個程度、周辺領域は10個程度の基準画像を選択候補とすることが考えられる。ただし領域数は2つに限らず、3領域以上としてもよい。また表示画像中心からの距離に依存した区分けに限らず、注目されるオブジェクトの像の領域などにより動的に区分けすることも考えられる。このように、オブジェクトの像が写っているか否か以外の要因に基づき、参照する基準画像の数を制御することにより、装置の処理性能や表示に求められる精度、表示の内容などを考慮した最適な条件での表示画像描画が可能となる。
図9は、画素値決定部266が表示画像の画素値を決定する手法を説明するための図である。図8に示したように、基準視点28a、28bの基準画像に、オブジェクト24のポイント26の像が表されていることが判明しているとする。画素値決定部266は基本的に、それらの基準画像におけるポイント26の像の画素値をブレンドすることにより、実際の視点に対応する表示画像におけるポイント26の像の画素値を決定する。
ここで、ポイント26の像の、基準視点28a、28bの基準画像における画素値(カラー値)をそれぞれc1、c2とすると、表示画像における画素値Cを次のように計算する。
C=w1・c1+w2・c2
ここで係数w1、w2はw1+w2=1の関係を有する重み、すなわち基準画像の寄与率を表し、基準視点28a、28bと、実際の視点を表す仮想カメラ30との位置関係に基づき決定する。例えば仮想カメラ30から基準視点までの距離が近いほど大きな係数とすることで寄与率を大きくする。
この場合、仮想カメラ30から基準視点28a、28bまでの距離をΔa、Δbとし、sum=1/Δa2+1/Δb2とおくと、重み係数を次のような関数とすることが考えられる。
w1=(1/Δa2)/sum
w2=(1/Δb2)/sum
上式を、用いる基準画像の数をN、基準視点の識別番号をi(1≦i≦N)、仮想カメラ30からi番目の基準視点までの距離をΔi、各基準画像における対応する画素値をci、重み係数をwiとして一般化すると次のようになる。ただし計算式をこれに限る主旨ではない。
なお上式においてΔiが0の場合、すなわち仮想カメラ30がいずれかの基準視点と一致する場合は、対応する基準画像の画素値に対する重み係数を1、他の基準画像の画素値に対する重み係数を0とする。これにより、当該視点に対し精度よく作成しておいた基準画像を、そのまま表示画像に反映させることができる。
また、重み係数の算出に用いるパラメータは仮想カメラから基準視点までの距離に限らない。例えば仮想カメラ30からポイント26への視線ベクトルVrに対する、各基準視点からポイント26への視線ベクトルVa、Vbのなす角度θa、θb(0≦θa,θb≦90°)に基づいてもよい。例えばベクトルVaおよびVbとベクトルVrとの内積(Va・Vr)、(Vb・Vr)を用いて、重み係数を次のように算出する。
w1=(Va・Vr)/((Va・Vr)+(Vb・Vr))
w2=(Vb・Vr)/((Va・Vr)+(Vb・Vr))
この式を、上述同様、用いる基準画像の数をNとし、基準視点iからポイント26への視線ベクトルをVi、重み係数をwiとして一般化すると次のようになる。
いずれにしろポイント26に対する状態が仮想カメラ30に近い基準視点ほど大きい重み係数となるような算出規則を導入すれば、具体的な計算式は特に限定されない。距離および角度の双方から多角的に「状態の近さ」を評価して重み係数を決定してもよい。さらにオブジェクト24の、ポイント26における表面形状を加味してもよい。オブジェクトからの反射光の輝度は一般的に表面の傾斜(法線)に基づく角度依存性を有する。そこで、ポイント26における法線ベクトルと仮想カメラ30からの視線ベクトルVrとのなす角度と、当該法線ベクトルと各基準視点からの視線ベクトルVa、Vbとのなす角度とを比較し、その差が小さいほど重み係数を大きくしてもよい。
また、重み係数を算出する関数自体を、オブジェクト24の材質や色などの属性によって切り替えてもよい。例えば鏡面反射成分が支配的な材質の場合、強い指向性を有し、視線ベクトルの角度によって観測される色が大きく変化する。一方、拡散反射成分が支配的な材質の場合、視線ベクトルの角度に対する色の変化がそれほど大きくない。そこで、前者の場合は仮想カメラ30からポイント26への視線ベクトルVrに近い視線ベクトルを持つ基準視点ほど重み係数を大きくするような関数を用い、後者の場合は、全ての基準視点に対し重み係数を等しくしたり、鏡面反射成分が支配的な場合と比較し角度依存性が小さくなるような関数を用いたりしてもよい。
また同じ理由から、拡散反射成分が支配的な材質の場合、表示画像の画素値Cの決定に用いる基準画像を間引いたり、実際の視線ベクトルVrに所定値以上、近い角度の視線ベクトルを持つ基準画像のみを用いたりしてその数自体を減らし、計算の負荷を抑えてもよい。このように、画素値Cの決定規則をオブジェクトの属性によって異ならせる場合、基準画像データ記憶部256には、基準画像の像ごとに、それが表すオブジェクトの材質など、属性を表すデータを対応づけて格納しておく。
以上述べた態様により、オブジェクトの表面形状や材質を加味し、鏡面反射による光の指向性などをより正確に表示画像に反映させることができる。なお重み係数の決定には、オブジェクトの形状に基づく計算、属性に基づく計算、仮想カメラから基準視点までの距離に基づく計算、各視線ベクトルのなす角度に基づく計算、のいずれか2つ以上を組み合わせてもよい。
次に、これまで述べた構成によって実現できる画像生成装置の動作について説明する。図10は画像生成装置200が視点に応じた表示画像を生成する処理手順を示すフローチャートである。このフローチャートはユーザ操作によりアプリケーション等が開始され初期画像が表示されるとともに、視点の移動を受け付ける状態となったときに開始される。上述のとおり図示する表示処理と並行して電子ゲームなど各種情報処理がなされてもよい。まず空間構築部262は、表示対象のオブジェクトが存在する3次元空間をワールド座標系に構築する(S10)。
一方、視点情報取得部260は、ユーザ頭部の位置や姿勢に基づき、その時点での視点の位置や視線の方向を特定する(S12)。次に射影部264は、視点に対するビュースクリーンを設定し、表示対象の空間に存在するオブジェクトを射影する(S14)。上述のとおりこの処理では、3次元モデルを形成するポリゴンメッシュの頂点を透視変換するなど表面形状のみを考慮すればよい。次に画素値決定部266は、そのように射影されたメッシュ内部の画素のうち対象画素を1つ設定し(S16)、その画素値の決定に用いる基準画像を選択する(S18)。
すなわち上述のように、対象画素が表すオブジェクト上のポイントが像として表れている基準画像を、各基準画像のデプス画像に基づき決定する。そして画素値決定部266は、それらの基準画像の基準視点と、実際の視点に対応する仮想カメラとの位置関係やオブジェクトの形状、材質などに基づき重み係数を決定したうえ、各基準画像の対応する画素値を加重平均するなどして対象画素の値を決定する(S20)。なお基準画像の画素値から対象画素の画素値を導出する計算は、加重平均以外に統計処理や補間処理として様々に考えられることは当業者には理解されるところである。
S18、S20の処理を、ビュースクリーン上の全ての画素について繰り返す(S22のN、S16)。全画素の画素値を決定したら(S22のY)、出力部268は当該データを表示画像のデータとしてヘッドマウントディスプレイ100に出力する(S24)。なお左目用、右目用の表示画像を生成する場合は、それぞれについてS16〜S22の処理を実施するとともに適宜つなげて出力する。表示を終了させる必要がなければ、次の視点情報を取得したうえで表示画像の生成、出力処理を繰り返す(S26のN、S12〜S24)。表示処理を終了させる必要が生じたら全ての処理を終了させる(S26のY)。
なお図10の例では全ての画素について基準画像を用いて画素値を決定したが、表示画像上の領域や視点の位置によって描画手法を切り替えてもよい。例えば視点移動による光や色味の変化を必要としないオブジェクトの像については、従来のテクスチャマッピングを行うのみでもよい。また指向性の高い反射光など、局所的な視点でのみ観測される状態は、周囲の基準画像からは表現しきれないことがある。基本的には基準視点を増やすことにより描画の精度を向上させることができるが、該当する範囲に視点が入ったときのみレイトレーシングによる描画に切り替えることにより、基準画像として準備するデータの量を抑えることができる。
以上述べた本実施の形態によれば、任意の視点からの画像を表示する技術において、あらかじめ設定された基準視点に対する画像のデータを準備しておく。そして表示画像の描画時に、準備しておいた基準画像から同じオブジェクトを表す画素の値を取得することにより、表示画像の画素値を決定する。画素値の算出には、実際の視点と基準視点との位置関係やオブジェクトの属性に基づく規則を導入する。基準画像は視点に応じた表示とは別のタイミングで時間をかけて生成できるため、高品質なものを準備できる。表示時にはこの高品質な画像から値を引いてくることにより、時間をかけることなく高品質な画像を提示できる。
また実際の視点に想定される移動範囲に基準視点を複数、設定して基準画像を準備し、それらの画素値を、視点の位置関係やオブジェクトの属性に基づき合成することにより、任意の視点に対して安定的な精度で表示画像を描画できる。例えばある基準視点の位置から別の基準視点の位置に視点が移動する場合、前者に対応する基準画像から後者に対応する基準画像まで、シームレスに色味を変化させることができる。また基準画像を、各基準視点を中心とする全天球のパノラマ画像とすることにより、視点の位置や方向に高い自由度を持たせることができる。結果として高品質な画像を任意の視点に対し応答性よく表示でき、より臨場感のある画像表現を実現できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。