(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】画像処理装置および画像処理方法
(51)【国際特許分類】
G06T 15/06 20110101AFI20241216BHJP
【FI】
G06T15/06
(21)【出願番号】P 2022564916
(86)(22)【出願日】2020-11-26
(86)【国際出願番号】 JP2020044101
(87)【国際公開番号】W WO2022113246
(87)【国際公開日】2022-06-02
【審査請求日】2023-04-17
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】大場 章男
【審査官】長谷川 素直
(56)【参考文献】
【文献】特開2011-134101(JP,A)
【文献】特開2011-090648(JP,A)
【文献】特開2007-328460(JP,A)
【文献】中国特許出願公開第111105491(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/06
(57)【特許請求の範囲】
【請求項1】
表示対象の3次元オブジェクトの表面におけるカラー値の分布を平面に展開してなるカラーマップと、前記表面における、基準形状の立体表面からの法線方向の高さの分布を平面に展開してなるハイトマップとを、それぞれ異なる解像度で表した階層データから、前記3次元オブジェクトの描画に必要な部分をロードするデータ取得部と、
ロードされた前記ハイトマップを参照して、レイトレーシングにおけるレイと前記3次元オブジェクトとの距離を計算することにより、レイが到達する3次元オブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記3次元オブジェクトのカラー値を取得して表示画像の画素値を決定する描画部と、
前記表示画像のデータを出力する出力部と、
を備えたことを特徴とする画像処理装置。
【請求項2】
前記3次元オブジェクトに対する視点および視線に基づき、前記カラーマップおよび前記ハイトマップの平面と解像度の軸で構成される3次元空間において必要な領域を決定する対象データ決定部をさらに備え、
前記データ取得部は、前記必要な領域に対応する前記カラーマップおよび前記ハイトマップのデータをロードすることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記階層データは、前記3次元空間において異なるデータへの切り替えが設定されたリンク領域を有し、
前記データ取得部は、前記必要な領域に前記リンク領域が含まれているとき、前記異なるデータをロードすることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記データ取得部は、前記3次元オブジェクトの一部に対し別途生成された前記カラーマップおよび前記ハイトマップを、前記異なるデータとして取得し、
前記描画部は、前記3次元オブジェクトの一部を表す画素値を、前記異なるデータを用いて決定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記データ取得部は、前記3次元オブジェクトの一部を異なる種類のモデルで表現するためのデータを、前記異なるデータとして取得し、
前記描画部は、前記3次元オブジェクトの一部を表す画素値を、前記異なるデータを用いて決定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項6】
前記カラーマップと前記ハイトマップの少なくともいずれかは、前記階層データの階層によって、表されるデータに解像度以外の変化が与えられていることを特徴とする請求項1から5のいずれかに記載の画像処理装置。
【請求項7】
前記カラーマップは前記3次元オブジェクトの表面における反射係数の分布を含み、
前記描画部は、前記反射係数に基づき、取得した前記カラー値を補正することを特徴とする請求項1から6のいずれかに記載の画像処理装置。
【請求項8】
前記描画部は、前記カラーマップおよび前記ハイトマップを生成する際に定義した立体の表面のうち、前記表示画像の平面を表すビュースクリーン上の各画素領域に対応する領域においてフィルタリングしたカラー値および高さに基づき、前記画素値を決定することを特徴とする請求項1から7のいずれかに記載の画像処理装置。
【請求項9】
前記階層データのうち、前記データ取得部がロードした、
前記描画に必要な部分の圧縮符号化されたデータを格納する圧縮データ記憶部と、
前記圧縮データ記憶部に格納された、前記圧縮符号化されたデータのうちの一部を復号伸張してGPUの内部メモリに格納する復号伸張部
と、
をさらに備えたことを特徴とする請求項1から8のいずれかに記載の画像処理装置。
【請求項10】
表示対象の3次元オブジェクトの表面におけるカラー値の分布を平面に展開してなる表すカラーマップと、前記表面における、基準形状の立体表面からの法線方向の高さの分布を平面に展開してなるハイトマップとを、それぞれ異なる解像度で表した階層データから、前記3次元オブジェクトの描画に必要な部分をメモリにロードするステップと、
ロードされた前記ハイトマップを参照して、レイトレーシングにおけるレイと前記3次元オブジェクトとの距離を計算することにより、レイが到達する3次元オブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記3次元オブジェクトのカラー値を取得して表示画像の画素値を決定するステップと、
前記表示画像のデータを出力するステップと、
を含むことを特徴とする画像処理装置による画像処理方法。
【請求項11】
表示対象の3次元オブジェクトの表面におけるカラー値の分布を平面に展開してなる表すカラーマップと、前記表面における、基準形状の立体表面からの法線方向の高さの分布を平面に展開してなるハイトマップとを、それぞれ異なる解像度で表した階層データから、前記3次元オブジェクトの描画に必要な部分をロードする機能と、
ロードされた前記ハイトマップを参照して、レイトレーシングにおけるレイと前記3次元オブジェクトとの距離を計算することにより、レイが到達する3次元オブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記3次元オブジェクトのカラー値を取得して表示画像の画素値を決定する機能と、
前記表示画像のデータを出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、表示画像を生成する画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
画像表示の目的や表示形式によらず、画像をいかに効率よく描画し表示させるかは常に重要な問題となる。例えば視点や視線に自由度を持たせ、様々なアングルから3次元オブジェクトを見せる態様においては、視点の動きに対する表示の変化に高い応答性が求められる。3次元オブジェクトが動いたり変形したりする場合も同様である。一方で、高品質な画像を表示させるには、解像度を高くしたり複雑な計算を実施したりする必要が生じ、画像処理の負荷が増大する。結果として、本来表現されるべきオブジェクトの像の変化に遅延が生じやすくなる。
【0004】
本発明はこうした課題に鑑みてなされたものであり、その目的は、3次元オブジェクトを含む画像を低遅延かつ高品質で表示させる技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明のある態様は画像処理装置に関する。この画像処理装置は、表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、当該表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、オブジェクトの描画に必要な部分をロードするデータ取得部と、ロードされたハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、カラーマップを参照することにより、到達点におけるオブジェクトのカラー値を取得して表示画像の画素値を決定する描画部と、表示画像のデータを出力する出力部と、を備えたことを特徴とする。
【0006】
本発明の別の態様は画像処理方法に関する。この画像処理方法は画像処理装置が、表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、当該表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、オブジェクトの描画に必要な部分をメモリにロードするステップと、ロードされたハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、カラーマップを参照することにより、到達点におけるオブジェクトのカラー値を取得して表示画像の画素値を決定するステップと、表示画像のデータを出力するステップと、を含むことを特徴とする。
【0007】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、3次元オブジェクトを含む画像を低遅延かつ高品質で表示させることができる。
【図面の簡単な説明】
【0009】
【
図1】本実施の形態における画像表示システムの構成例を示す図である。
【
図2】本実施の形態で利用する、表示画像の描画処理の概略を説明するための図である。
【
図3】本実施の形態においてレイマーチングを採用したときの画素値の決定処理手順を示すフローチャートである。
【
図4】本実施の形態においてハイトマップを用いた際のレイトレーシングへの影響を説明するための図である。
【
図5】本実施の形態において利用できる参照マップの形状を例示する図である。
【
図6】本実施の形態において表示対象を月としたときの表示画像を例示する図である。
【
図7】
図6で示した月を表現する際に利用できる参照マップを例示する図である。
【
図8】本実施の形態における、複数解像度で構成する参照マップのデータと表示画像の関係を説明するための図である。
【
図9】本実施の形態において使用する参照マップのデータ構造の概念図を示す図である。
【
図10】本実施の形態における画像処理装置の内部回路構成を示す図である。
【
図11】本実施の形態におけるデータの流れを模式的に示す図である。
【
図12】本実施の形態における画像処理装置の機能ブロックを示す図である。
【
図13】本実施の形態において1つの3次元オブジェクトに複数の参照マップを準備する態様を説明するための図である。
【
図14】本実施の形態の、複数のモデルデータを組み合わせて用いる態様において準備する参照マップを例示する図である。
【
図15】本実施の形態の、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。
【
図16】本実施の形態の、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。
【
図17】本実施の形態におけるベースモデルとパーツモデルの切り替えを定義する手法を説明するための図である。
【
図18】本実施の形態の、パーツモデルを組み合わせる態様におけるデータの流れを模式的に示す図である。
【発明を実施するための形態】
【0010】
図1は本実施の形態を適用できる画像表示システムの構成例を示す。画像表示システム1は、ユーザ操作に応じて画像を表示させる画像処理装置10a、10b、10cおよび、表示に用いる画像データを提供するコンテンツサーバ20を含む。画像処理装置10a、10b、10cにはそれぞれ、ユーザ操作のための入力装置14a、14b、14cと、画像を表示する表示装置16a、16b、16cが接続される。画像処理装置10a、10b、10cとコンテンツサーバ20は、WAN(World Wide Network)やLAN(Local Area Network)などのネットワーク8を介して通信を確立できる。
【0011】
画像処理装置10a、10b、10cと、表示装置16a、16b、16cおよび入力装置14a、14b、14cはそれぞれ、有線または無線のどちらで接続されてもよい。あるいはそれらの装置の2つ以上が一体的に形成されていてもよい。例えば図において画像処理装置10bは、表示装置16bであるヘッドマウントディスプレイに接続している。ヘッドマウントディスプレイは、それを頭部に装着したユーザの動きによって表示画像の視野を変更できるため、入力装置14bとしても機能する。
【0012】
また画像処理装置10cは携帯端末であり、表示装置16cと、その画面を覆うタッチパッドである入力装置14cと一体的に構成されている。このように、図示する装置の外観形状や接続形態は限定されない。ネットワーク8に接続する画像処理装置10a、10b、10cやコンテンツサーバ20の数も限定されない。以後、画像処理装置10a、10b、10cを画像処理装置10、入力装置14a、14b、14cを入力装置14、表示装置16a、16b、16cを表示装置16と総称する。
【0013】
入力装置14は、コントローラ、キーボード、マウス、タッチパッド、ジョイスティックなど一般的な入力装置のいずれかまたは組み合わせでよく、画像処理装置10へユーザ操作の内容を供給する。表示装置16は、液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイ、ウェアラブルディスプレイ、プロジェクタなど一般的なディスプレイでよく、画像処理装置10から出力される画像を表示する。
【0014】
コンテンツサーバ20は、画像表示を伴うコンテンツのデータを画像処理装置10に提供する。当該コンテンツの種類は特に限定されず、電子ゲーム、観賞用画像、ウェブページ、電子新聞や電子書籍などのいずれでもよい。画像処理装置10は、表示に用いるコンテンツデータをコンテンツサーバ20から取得しつつ表示処理を実現してもよいし、事前に取得したコンテンツデータを内部の記憶装置にから読み出して表示に用いてもよい。後者の場合、コンテンツデータの提供元はコンテンツサーバ20に限らず、記録媒体であってもよい。
【0015】
本実施の形態において表示対象の少なくとも一部は、3次元オブジェクトで構成される。3次元オブジェクトは3次元での形状や色情報が得られている限り、人手により作成された物でも実写(実測)された物でも構わない。例えば画像処理装置10は、入力装置14を介したユーザ操作に応じて表示対象のオブジェクトを自由な角度から見た様子を表示させる。あるいはゲームの進捗などに応じて、オブジェクトに対する視点や視線を画像処理装置10が制御してもよい。
【0016】
3次元オブジェクトは静止していてもよいし、移動したり姿勢を変化させたりしてもよい。また3次元オブジェクトは変形してもよい。いずれにしろ画像処理装置10は、3次元オブジェクトを含む表示画像を所定のレートで生成することにより動画像を表示させる。コンピュータグラフィクスの分野において、3次元オブジェクトの表示技術は、ハードウェア、ソフトウェアの両面で大きく発展してきた。例えばレイトレーシングの一種であるパストレーシングは、レイ(光線)と物体表面との関係を表すレンダリング方程式の計算を、モンテカルロ法を用いて確率的に行うことで演算量を軽減させる。
【0017】
近年ではBVH(Bounding Volume Hierarchy)などの高速化データ構造を用いて、レイと物体との交差判定を効率化させることにより、ラスタリング用のポリゴンモデルをレイトレーシングに利用することも可能になっている。しかしながら表示対象のモデルが複雑化、大規模化すればその分だけ演算の負荷が増し、視点や視線、オブジェクトの状態変化に追随するリアルな画像表現が困難となる。本実施の形態では、オブジェクトの色や表面の凹凸を、表面上の分布を表すマップとしてあらかじめ取得しておくことで、画像表示時の処理の負荷を軽減させる手法を採用する。
【0018】
図2は、本実施の形態で利用する、表示画像の描画処理の概略を説明するための図である。ここでは簡易な例として、球体のオブジェクト106を表示対象としている。すなわち仮想空間を定義するワールド座標系に、3次元モデルで規定されるオブジェクト106と、ユーザ100の視点の位置や視線の方向に対応するビュースクリーン102を配置する。基本的には表示画像は、オブジェクト106や背景108をビュースクリーン102に射影することにより生成される。
【0019】
ユーザ操作やゲームの進捗などに応じて視点の位置や視線の方向を所定のレートで取得し、それに応じてビュースクリーン102の位置や向きを変化させれば、オブジェクト106を様々な距離や角度から表した動画を表示できる。本実施の形態では特に、レイトレーシングをベースとすることにより高品質な画像表現を実現する。レイトレーシングは一般に、視点からビュースクリーン102上の各画素を通るレイを発生させ、反射、透過、屈折などのインタラクションを考慮して経路を追跡することで、到達先の色情報を画素値として取得する技術である。
【0020】
図の例では、画素103aを通るレイ104aはオブジェクト106に到達するため、その到達地点の色を取得することにより、画素103aの画素値が決定する。また画素103bを通るレイ104bは経路にオブジェクト106を含まないため、背景108における到達地点の色を画素103bの画素値として取得する。ただし実際には、レイ104aはオブジェクト106で反射したり透過したりして別のオブジェクトに到達し、さらに反射したり透過したりする、といった複雑な経路をとり得る。
【0021】
したがって各オブジェクトの形状や反射特性、光源の位置などを踏まえてレンダリング方程式を解くことなどにより、物の材質や周囲の環境などを反映させたリアルな画像表現が実現される。ここでレイがオブジェクトに到達するまでの追跡を効率化する手法としてレイマーチングが挙げられる。レイマーチングは、オブジェクトの形状ごとに規定される距離関数を用い、レイからオブジェクトまでの距離を取得し、最近傍にあるオブジェクトまでの距離だけレイを進めていくことにより、最終的なレイの到達先を求める手法である。
【0022】
図3は、レイマーチングを採用したときの画素値の決定処理手順を示すフローチャートである。このフローチャートは、表示画像のうち1つの画素の値を決定する手順を示しており、表示画像全体の描画には図示する手順を全ての画素に対し繰り返す。
【0023】
まず上述のとおり、表示対象のオブジェクトが配置された仮想空間に、視点や視線に対応するビュースクリーンを設定したうえ、視点から対象画素を通るレイを発生させる(S10)。この処理は実際には、レイの進む方向を定義することに対応する。次に、レイの位置(初回は視点)に最も近いオブジェクトを全方向に対し探索する(S12)。レイからオブジェクトまでの距離は、オブジェクトの形状ごとに与えられる距離関数により求められる。
【0024】
最近傍のオブジェクトまでの距離が、レイがオブジェクトと接したとみなされるほど短くなければ(S14のN)、当該距離分、レイを進める(S16)。レイのそれまでの経路長が、あらかじめ設定された上限に達していなければ(S18のN)、進めた先において最近傍のオブジェクトを探索する(S12)。以後、同様の処理を繰り返し、レイが接したとみなされるほど距離が短いオブジェクトが検出されたら(S14のY)、そのオブジェクトを到達先として決定する(S20)。
【0025】
なお
図2のようにオブジェクトが1つの場合、オブジェクトへ到達するレイは2回目の探索で当該オブジェクトへの到達が判定されることになる。次にレイの到達先である、オブジェクト上の地点におけるカラー値を取得する(S22)。取得したカラー値を、対象画素の画素値としてフレームバッファなどに書き込むことにより、表示画像の1画素として表示装置16へ出力される(S24)。一方、S18においてレイの経路長が上限に到達した場合(S18のY)、オブジェクトが経路に含まれないと判定し、その方向にある背景上の地点を到達先としたうえ画素値を決定する(S20~S24)。
【0026】
このような処理において、本実施の形態ではまず、S22で取得されるカラー値をオブジェクトの表面全体における分布として表したカラーマップをあらかじめ生成しておく。これにより表示時におけるS22では、レイの到達地点におけるカラー値を、カラーマップから取得するのみですむ。カラーマップは事前に時間をかけて生成することができるため、本来のレイトレーシングにより精細に生成しておくことができる。
【0027】
例えば人の顔など複雑なモデルであっても、ポリゴンメッシュを利用したパストレーシングなどにより精細な表現が可能である。ただしカラーマップの生成手段は特に限定されず、センサによる計測や撮影などにより取得してもよい。またカラーマップにはカラー値のほか、反射係数など、色に影響を与える各種パラメータの分布情報を含めてもよい。この場合、S22において、得られたカラー値を状況に応じて補正できる。例えば反射係数を用い、オブジェクト表面の法線とレイの関係に応じて光源の反射を表現するなどのライティング処理を実施してもよい。
【0028】
本実施の形態ではさらに、オブジェクト表面の凹凸の大きさを、表面全体における分布として表したハイトマップも生成しておき、S12においてレイとの距離を取得する際に導入することで、オブジェクト表面の凹凸を表現する。
図4はハイトマップを用いた際のレイトレーシングへの影響を説明するための図である。この例では、オブジェクトがおよそ球体であり、表面に凹凸がある状態を断面で示している。
【0029】
ハイトマップは、図に太線矢印で示すように、基本形状である球体の表面からの、法線方向の高さの分布を表す。ハイトマップを考慮しない場合、図に示すレイ112はオブジェクトには到達しないが、ハイトマップにより球体表面に高さを加えると、レイ112がオブジェクト110に到達するようになる。
図3のS12において、ハイトマップを加味した距離関数によりレイとの距離を計算すれば、このような到達事象を検出でき、結果としてオブジェクト110表面の凹凸を正確に表現できる。
【0030】
公知のとおり、球体や立方体など基本形状によって距離関数は様々となるため、ハイトマップに表される高さの、距離関数への反映のさせ方も、基本形状の種類によって様々となる。したがってあらかじめ、ハイトマップの参照を含めた距離関数を基本形状ごとに準備しておき、表示対象のオブジェクトに、その基本形状の種類や大きさを対応づけておけば、
図3のS12において、凹凸を加味した距離を取得できる。
【0031】
ハイトマップは例えば、上述のとおりポリゴンメッシュを用いたパストレーシングなどによりカラーマップを生成する過程で同時に取得する。あるいはセンサによる計測や、ステレオカメラによる撮影などにより取得してもよい。なおカラーマップやハイトマップを時間経過に対し複数生成しておくことにより、オブジェクトの色や形状の変化を表現してもよい。以後、カラーマップとハイトマップを「参照マップ」と総称する場合がある。
【0032】
参照マップは本来、立体表面に対しカラー値や高さの分布を表したデータであるが、それを平面に展開した形式で記憶装置に格納することにより、データアクセスを容易にする。
図5は、本実施の形態において利用できる参照マップの形状を例示している。(a)~(e)の左側は参照マップを描画する際に定義する立体形状、右側はそれを展開した平面の形状である。
【0033】
参照マップの生成においては、まずオブジェクトを内包する立体を、図示するような単純な形状のなかから選択して定義する。そしてレイトレーシングなどによりオブジェクト表面のカラー値や基本形状からの高さを求めたうえ、オブジェクトの重心などから放射方向に射影することで、立体表面にそれらの値をマッピングする。基本的にはオブジェクトの形状に類似した立体を選択しマッピングすれば、座標変換に伴う誤差を抑えられる。例えば球体のオブジェクトであれば球面上に値をマッピングする。
【0034】
(a)は立方体表面に分布を表したいわゆるキューブマップ(Cube Map)であり、6つの正方形を接続した平面で表す。(b)は球面全体に分布を表した球状マップ(Sphere Map)であり、正距円筒図法によって得られる平面で表す。(c)は半球の表面に分布を表した半球状マップ(Hemisphere Map)であり、等距離射影によって得られる平面で表す。(d)は球状マップの一種であり、正距円筒図法と等距離射影によって得られる平面を組み合わせる。(e)も球状マップの一種であり、球を2等分したそれぞれを等距離射影で表す。なお図示する立体とマップ平面の形状は一例であり、マップを描画する際の立体表面上の位置座標と展開後の2次元座標が対応づけられる限り特に限定されるものではない。
【0035】
オブジェクトのカラーマップやハイトマップを用いて3次元オブジェクトを描画する手法は、例えば"Head Model Cubemap Distance Map"、[online]、2019年11月22日、Shadertoy、[令和2年11月13日検索]、 インターネット<URL:https://www.shadertoy.com/view/wdyXRV>に開示される。ただしこのような手法は一般に、表示対象が小規模なモデルの場合には効率よく処理できるが、複雑なモデルや大規模なモデルを正確に表現しようとすると、却って処理の負荷が増大する傾向となる。
【0036】
ここで大規模なモデルの一例として、
図2の球体を月とした場合を考える。
図6は表示対象を月としたときの表示画像を例示している。(a)に示すように遠景においては、月はおよそ球状である。(b)は100km上空から見た様子であり、クレーターによる凹凸が確認される。(c)は5km上空からみた様子であり、丘陵地のさらに細かい凹凸までが確認される。このように表示倍率の大幅な変化が許容される大規模なオブジェクトでは見た目の変化が大きく、それをダイナミックに表すことで臨場感のある画像表現を実現できる。
【0037】
図7は、
図6で示した月を表現する際に利用できる参照マップを例示している。(a)はカラーマップ、(b)はハイトマップであり、それぞれ球体表面のカラー値および高さの分布を、正距円筒図法によって横16000画素、縦8000画素の平面で表すとする。月の外周は約10921kmのため、赤道付近で1画素あたり0.68kmの情報を表す。
【0038】
すなわちこのようなマップを用いることにより、数百メートル単位で色や凹凸を表現できることになる。一方、月のような大規模なモデルでは、遠景から近景までの倍率変化が大きく、遠景での表現に詳細なマップを用いるのは効率的でない。そこで本実施の形態では、カラーマップおよびハイトマップを複数の解像度で準備しておき、表示に求められる詳細度に応じて用いるマップを切り替える。これにより、倍率によらず同程度の処理の負荷で、品質の高い画像表現を実現できる。
【0039】
図8は、複数解像度で構成する参照マップのデータと表示画像の関係を説明するための図である。ここでハイトマップ120aは
図7の(b)で示したように月面全体の高さの分布を表している。ハイトマップ120bは、ハイトマップ120aの一部領域122aの月面の高さを、ハイトマップ120aより高解像度で表している。ハイトマップ120cは、ハイトマップ120bの一部領域122bの月面の高さを、ハイトマップ120bより高解像度で表している。
【0040】
画像処理装置10は例えば、100km上空から見た月の画像124aを、最低解像度のハイトマップ120aと、同じ解像度のカラーマップを用いて描画する。また5km上空から見た月の画像124bを、一段階解像度を上げたハイトマップ120bと、同じ解像度のカラーマップを用いて描画する。このように参照先を切り替えることで、倍率によらず同程度の処理量で画像を描画できる。
【0041】
なお図では解像度が上がるごとに領域を限定したハイトマップを示しているが、本実施の形態をこれに限定する主旨ではない。例えばオブジェクトのあらゆる箇所を拡大して見られるようにする場合は、解像度によらず表面全体に対し参照マップを準備する。一方、拡大する箇所が、オブジェクトの一部領域に限定される場合は、図示するように、高解像度の参照マップを一部領域のみ準備することによりデータ量を削減できる。
【0042】
図9は、本実施の形態において使用する参照マップのデータ構造の概念図を示す。参照マップデータは、深さ(Z軸)方向に、第0階層90、第1階層92、第2階層94および第3階層96からなる階層構造を有する。なお同図においては4階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつデータを「階層データ」とよぶ。
【0043】
図9に示す階層データは4分木の階層構造を有し、各階層は1以上のタイル領域98で構成される。すべてのタイル領域98は同じ画素数を持つ同一サイズに形成され、たとえば256×256画素を有する。ここで「画素」は、マップ上で1つのカラー値あるいは高さが対応づけられる領域の単位を指す。各階層のデータは、一つの参照マップを異なる解像度で表現しており、最高解像度をもつ第3階層96の参照マップを複数段階に縮小して、第2階層94、第1階層92、第0階層90のデータが生成される。たとえば第N階層の解像度(Nは0以上の整数)は、左右(X軸)方向、上下(Y軸)方向ともに、第(N+1)階層の解像度の1/2であってよい。
【0044】
階層データは、所定の圧縮形式で圧縮された状態で、画像処理装置10内部のハードディスクドライブやコンテンツサーバ20の記憶装置などに格納される。画像処理装置10は、視点の変化などに応じて、オブジェクトの表示に求められる詳細度を求め、それに対応する階層のうち描画に必要なタイル領域のデータを読み出し、デコードして内部のメモリに展開する。図示するように階層データは、同一解像度で表される参照マップの平面をXY座標、解像度をZ座標で表す仮想的な3次元空間において定義される。
【0045】
図10は画像処理装置10の内部回路構成を示している。画像処理装置10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらの各部は、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、表示装置16へデータを出力する出力部36、入力装置14からデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
【0046】
CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより画像処理装置10の全体を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU22からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部36に出力する。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
【0047】
図11は本実施の形態におけるデータの流れを模式的に示している。まず各参照マップ50a、50b、50cの階層データは、画像処理装置10内部の記憶部34、記録媒体駆動部40に装着された記録媒体、あるいは画像処理装置10がネットワーク8を介して接続したコンテンツサーバ20などの記憶装置52に格納されている。この例で参照マップは、宇宙空間を表した背景マップ(参照マップ50a)、月のカラーマップ(参照マップ50b)および月のハイトマップ(参照マップ50c)で構成される。
【0048】
この例で各参照マップ50a、50b、50cは、最低解像度を有する第0階層から最高解像度を有する第3階層までの4階層の構造を有する(例えば背景マップの第0階層54a、第1階層54b、第2階層54c、第3階層54d)。各階層の参照マップは、JPEG(Joint Photographic Experts Group)やPNG(Portable Network Graphics)など一般的な方式により圧縮符号化されている。
【0049】
画像処理装置10は、参照マップ50a、50b、50cのうち、一部のデータを圧縮符号化された状態でメインメモリ26にロードする。ここでロードするデータは、表示対象に対する視点や視線に応じて決定する。すなわち
図9で示した階層データの3次元空間において、視点からオブジェクトまでの距離に応じて定まる詳細度に基づきZ座標を求めるとともに、視点や視線により定まる表示領域に対応する領域のタイルデータを含むようにX座標およびY座標の範囲を決定する。
【0050】
なおそれまでの視点や視線の変化の履歴などに基づき、以後に必要とされるタイルデータを予測し、メインメモリ26にロードしておいてもよい。図では、参照マップ50a、50b、50cのうちの一部がロードされていることを、各階層の参照マップ平面を表す矩形のうちロードされた部分のタイルのみを示すことで表している。
【0051】
ロード処理は、視点や視線の移動により新たなデータが必要になったときのみならず、例えば所定の時間間隔で随時行ってよい。これによりロード処理が一時期に集中しないようにできる。またロードは、複数のタイル領域で構成されるブロック単位としてもよい。この場合、参照マップ50a、50b、50cを、所定の規則でブロックに分割しておく。このとき1つのブロックを、同一階層のタイルデータのみで構成してもよいし、複数階層のタイルデータを含めてもよい。
【0052】
例えば、およそ同一のデータサイズとなるようにブロック分割することにより、メインメモリ26におけるデータ管理を効率よく行える。すなわち、タイルデータが可変長圧縮されたものであっても、ブロック単位であればデータサイズをある程度均一化できる。これにより、メインメモリ26にそれまで格納されていたブロックのいずれかを上書きすることによって新たなデータロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。
【0053】
次に、メインメモリ26に格納されている参照マップの圧縮符号化データのうち、表示画像の描画に必要な領域のタイルデータ、または必要と予測される領域のタイルデータを復号伸張し、GPU24内部のメモリ56に格納する。その時点で必要な参照マップより広い範囲のタイルデータをメモリ56に展開しておくことにより、ある程度の視点や視線の移動に対し即時の対応が可能となる。この際、階層の異なるタイルデータも展開しておけば、視点とオブジェクトとの距離の変化にも容易に対応できる。
【0054】
画像処理装置10のGPU24は、メモリ56に格納されたタイルデータを用いて、
図3で示したような手順により表示画像58を描画する。この例では、レイが月のオブジェクトに到達する画素領域をハイトマップにより特定したうえ、カラーマップにより月の像を描画する。レイが月のオブジェクトに到達しない画素領域は、背景マップにより宇宙空間を描画する。表示装置16をヘッドマウントディスプレイとする場合、GPU24は表示画像58と同等の左目用画像と右目用画像を生成したうえ、接眼レンズを介して歪みなく見えるように逆の歪みを与える補正を行う。
【0055】
そして、表示装置16が平板型ディスプレイの場合は補正前の表示画像58を、ヘッドマウントディスプレイの場合は補正後の表示画像60を、それぞれ出力する。画像処理装置10はその間にも随時、別のタイルデータを必要に応じてロードしデコードしておく。この手法によれば、元の参照マップ50a、50b、50cの階層データ全体をメモリに展開するのに比べ、必要なメモリ容量を格段に小さくできる。そのため大容量の外部メモリを利用せず、GPU内部で効率的なメモリアクセスを行え、高速描画が可能になる
【0056】
図12は画像処理装置10の機能ブロックを示している。画像処理装置10は、ユーザ操作の内容を取得する入力情報取得部70、描画に必要な参照マップの階層や領域を決定する対象データ決定部72、参照マップのタイルデータを取得するタイルデータ取得部74、取得したタイルデータを格納する圧縮データ記憶部76を含む。画像処理装置10はさらに、タイルデータを復号伸張する復号伸張部78、復号伸張後のタイルデータを格納するタイルデータ記憶部80、タイルデータを用いて表示画像を描画する描画部82、表示画像のデータを表示装置16に出力する出力部84を含む。
【0057】
図12において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、
図10、11で示したCPU22、GPU24、メインメモリ26、その他のLSIで構成することができ、ソフトウェア的には、メインメモリ26にロードされた、通信機能、画像処理機能、各種演算機能などを実現するプログラムによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0058】
入力情報取得部70は、
図10の入力部38、CPU22などで実現され、入力装置14を介してユーザ操作の内容を取得する。ユーザ操作の内容として、表示対象や電子コンテンツの選択、表示対象への視点や視線の移動、電子コンテンツに対する各種コマンド入力などが考えられる。本実施の形態では特に、表示対象に対する視点や視線の移動操作に着目する。視点や視線はユーザが直接操作するほか、電子ゲームなどのコンテンツ処理の結果として変化させてもよい。後者の場合、入力情報取得部70は、図示しないコンテンツ処理機能から視点や視線の動きに係る情報を取得してよい。
【0059】
対象データ決定部72は、
図10のCPU22などで実現され、表示画像を描画するのに必要な参照マップのタイルデータを決定する。具体的には対象データ決定部72は、
図9で示したような階層データの3次元空間において、視点からオブジェクトまでの距離に応じてZ座標を求め、視点の位置および視線の方向に応じてXY平面での範囲を求める。そして決定されたZ座標の最近傍の階層における、対応するXY平面の範囲を含むタイルデータを特定する。
【0060】
対象データ決定部72は上述のとおり、それまでの視点や視線の動きに応じて必要なタイルデータを予測してもよい。またオブジェクト自体が動いている場合、対象データ決定部72は当該動きによっても必要なタイルデータを決定してよい。対象データ決定部72は、決定した情報をタイルデータ取得部74および復号伸張部78に通知する。
【0061】
タイルデータ取得部74は、
図10のCPU22、通信部32、記憶部34、記録媒体駆動部40などにより実現され、画像処理装置10自体が有する記憶装置やコンテンツサーバ20などから、描画に必要なタイルデータやその周辺のタイルデータのうち未取得のものをロードする。これらのロード元は、
図11の記憶装置52に対応する。ここでロードされるデータは圧縮符号化された状態であり、タイルデータ取得部74はそれを圧縮データ記憶部76に格納する。
【0062】
圧縮データ記憶部76は
図10、11のメインメモリ26などにより実現される。上述のとおりタイルデータ取得部74は、参照マップの階層データを所定の規則で分割したブロック単位でロードすることにより、圧縮データ記憶部76の記憶領域の効率的な利用と高速メモリアクセスを実現する。復号伸張部78は、
図10のCPU22、GPU24などにより実現され、圧縮データ記憶部76に格納されたタイルデータのうち、必要なものを復号伸張し、タイルデータ記憶部80に格納する。
【0063】
タイルデータ記憶部80は、
図10、11のGPU24の内部メモリあるいはGPU24がアクセス可能なメモリであり、
図11のメモリ56に対応する。タイルデータ記憶部80には、その時点で表示画像の描画に必要な参照マップのタイルデータと、その周囲の所定範囲のタイルデータが格納される。オブジェクトに対する視点や視線の相対的な動きに応じて、必要なタイルデータは随時更新され、タイルデータ記憶部80に展開されるデータも変化する。描画部82は、
図10、11のGPU24などにより実現され、タイルデータ記憶部80に展開された参照マップのタイルデータを用いて表示画像を描画する。
【0064】
すなわちその時点での視点や視線に対応するビュースクリーンを設定し、画素ごとにレイを発生させ
図3で示したようにして画素値を決定する。なお参照マップからカラー値や高さの値を取得する際、ビュースクリーンにおける各画素領域に対応する、マップ上の範囲を特定し、当該範囲のデータをフィルタリングする。すなわち
図5で示した、参照マップを表す立体表面の画素について、ビュースクリーン上の画素のカバー率を、偏微分関数を用いて計算する。
【0065】
そしてビュースクリーン上の画素領域が所定割合以上含まれる、マップ上の画素の値、すなわちカラー値または高さを重みづけ平均するなどして、1つの値を決定する。最終的な画素値を決定する際は、描画部82は、上述のとおりライティング処理を実施するなどしてカラー値を補正してよい。描画部82は、図示しないフレームバッファに決定した画素値を格納する。描画部82はさらに
図11で示したように、必要に応じた画像の補正を行ってよい。出力部84は
図10の出力部36などにより実現され、フレームバッファに書き込まれた表示画像のデータを、ビデオ信号として適切なタイミングで表示装置16に出力する。
【0066】
これまで述べた例は、表示対象の3次元オブジェクトごとに、カラーマップとハイトマップを一つずつ準備する態様であった。一方、1つの3次元オブジェクトを複数のパーツに分解し、それぞれにカラーマップとハイトマップを準備することにより、効率的に画像の詳細度や精度を高めることができる。
図13は、1つの3次元オブジェクトに複数の参照マップを準備する態様を説明するための図である。ここで表示対象の3次元オブジェクトは
図6と同様に月とする。
【0067】
(a)は、
図6の(c)に示した上空5kmからさらに視点が接近し、月面近傍に達したときの表示画像を例示している。ここでは
図6の(c)でも見られたような丘陵地130のほか、岩132も十分視認されるとする。
図4で示したように、ハイトマップは、球など基本形状の立体表面の、法線方向の高さを規定するため、単純な高さ方向の隆起である丘陵地130はハイトマップによって表現できる。一方、岩132のように、基本形状の立体に一部が接している、あるいはつながっているものの、部分的に底面が基本形状の立体表面と離間している部分については、ハイトマップでは表現しきれない。
【0068】
例えば球体、横方向にせり出した物、トンネルなどの形状は、月面からの高さ以外の要素を含むため、ハイトマップでは正確に表せない。そこで本実施の形態では、1つの3次元オブジェクトであってもパーツごとに参照マップを準備することにより、ハイトマップの高さが表す方向の自由度を増やす。図示する例では(b)に示すように、岩132の3次元オブジェクトを表すための参照マップおよび、基本形状や大きさなどのモデルデータ134を、月のデータとは別に準備する。
【0069】
岩132の形状が視認されるような状態は、視点が接近したときに限られるため、好適にはモデルデータ134を組み合わせるか否かを、視点からの距離によって切り替える。例えば
図6で示したように、遠景においては月の参照マップのみを用いて表示画像を描画し、
図13のように視点が接近した状態において、岩132のモデルデータ134や参照マップを読み出し描画処理に組み入れる。
【0070】
具体的には岩132の基本形状を月面に配置したうえ、そのハイトマップを用いて、レイが岩132に到達する画素を特定し、当該画素については岩のカラーマップを参照して画素値を決定する。このようにすることで、近くから見た岩132の様子をよりリアルに表現できる。なお丘陵地130についても同様に、基本形状や位置などのモデルデータ136と参照マップを準備し、全体的な月のデータより詳細に表現できるようにしてもよい。基本形状自体の組み合わせには、周知のCSG(Constructive Solid Geometry)モデルの演算を利用できる。
【0071】
図14は、複数のモデルデータを組み合わせて用いる態様において準備する参照マップを例示している。
図13と同様、表示対象を月とすると、まず、月面全体に対するハイトマップ142と、それに対応するカラーマップを準備する。さらに
図13で示した岩のためのモデルデータ134および丘陵地のためのモデルデータ136を準備する。具体的には、岩を表す基本形状(図では球)とその大きさや位置に対応づけて、ハイトマップ140とそれに対応するカラーマップを準備する。さらに丘陵地を表す基本形状(図では半球)とその大きさや位置に対応づけて、ハイトマップ138とそれに対応するカラーマップを準備する。
【0072】
図15、16は、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。
図14で示したように丘陵地と岩のモデルデータを別途準備した場合、月面に対するハイトマップ142のうち、丘陵地152および岩の領域154で、それぞれのハイトマップ138、140が重複して設定されることになる。
【0073】
ここで
図15に示すように、視点150aが月面から所定距離以上の遠方にある場合、月面に対するハイトマップ142とそれに対応するカラーマップを有効として表示画像を描画する。図では個別に準備したハイトマップ138、140を薄く描くことで、それらが無効であることを示している。この場合でも階層構造を活用することにより、
図6で示したように、視点の接近に従い表面の凹凸をダイナミックに表現できる。
【0074】
一方、
図16に示すように、視点150bが丘陵地152にしきい値より近づいたら、丘陵地のハイトマップ138とそれに対応するカラーマップを有効として表示画像を描画する。実際には描画部82は、丘陵地の基本形状とその位置や大きさなどのデータを参照して丘陵地のモデルを配置したうえで、レイトレーシングにおいてそれらの参照マップを参照する。
【0075】
視点150cが岩の領域154にしきい値より近づいた場合も同様に、岩のモデルを配置したうえ、ハイトマップ140とそれに対応するカラーマップを用いて表示画像を描画する。図では月面に対するハイトマップ142のうち、丘陵地152および岩の領域154の部分を薄く描くことで、その部分が無効であることを示している。これにより、月面に対するハイトマップ142のみを用いた場合と比較し、丘陵地や岩を精密に表現できる。例えば視点150cのように岩を横から見た状態において、月面と岩の隙間を正確に表現できる。
【0076】
また本実施の形態では、参照マップを階層構造とすることにより、多大な倍率の変化であってもシームレスに表現できるが、最高解像度を高くすればその分だけデータサイズが増え、ロード処理時のデータアクセスにも時間を要することになる。そのため、月全体に対する参照マップの最高解像度をある程度抑え、それより高い解像度での参照マップを、丘陵地や岩など必要に応じて局所的に準備することで、品質を保ちながらデータサイズの軽減や処理の効率化を実現できる。
【0077】
以後、月など表示対象の3次元オブジェクト全体を表す、ベースとなるモデルを「ベースモデル」と呼び、それに組み合わせる、岩や丘陵地などの部分的なモデルを「パーツモデル」と呼ぶ。パーツモデルの参照マップは、1つの解像度で準備してもよいし、ベースモデルと同様に、複数解像度の階層データとしてもよい。ここで、パーツモデルへ切り替えの契機となる視点の距離と切り替える領域を、ベースモデルの参照マップの階層構造を表す3次元空間において定義しておくと都合がよい。
図16においては当該切り替えを、矢印A、Bで示している。
【0078】
図17はベースモデルとパーツモデルの切り替えを定義する手法を説明するための図である。図中、3つの三角形は、ベースモデルの参照マップの階層データ160および、2つのパーツモデルの参照マップの階層データ162a、162bを示している。階層データ160、162a、162bは実際には、それぞれ
図9に示すように解像度の異なる参照マップが図のZ軸方向に離散的に存在する構成を有する。
【0079】
視点がオブジェクトに近づくと、対象データ決定部72は必要な解像度を図のZ軸方向に移動させる。同じ距離で視点や視線が移動したら、対象データ決定部72は必要なデータの範囲を、図の水平面に移動させる。このような階層データの3次元空間において、ベースモデルの階層データ160およびパーツモデルの階層データ162a、162bが、図のように重なり合った状態を設定する。
【0080】
ここでベースモデルの階層データ160を用いて表示画像を描画中、視点がオブジェクトに近づき矢印aのように移動すると、パーツモデルの階層データ162aが必要なデータに含まれるようになる。これにより対象データ決定部72は、該当部分について必要な参照マップのデータを、ベースモデルの階層データ160からパーツモデルの階層データ162aへ切り替える。
【0081】
矢印aのような視点の動きにより、ベースモデルの参照マップを用いて描画された表示画像のごく一部が、パーツモデルの比較的低解像度の参照マップを用いて描画された像に置き換わる。さらに視点が接近し、必要な解像度がZ軸方向に移動すれば、表示画像の多くの部分が、パーツモデルの高解像度の参照マップを用いて描画される。また、矢印aと逆方向に視点が動けば、自ずとベースモデルの参照マップのみを用いて表示画像が描画されるようになる。
【0082】
表示中のオブジェクトにおいて、参照先を別のモデルの参照マップへ切り替える契機となる解像度および領域は、図中、線164で表される「リンク情報」としてあらかじめ設定しておく。同図の例では、Z軸がz1なる解像度、線164が表すXY平面(
図9参照)上の領域において、階層データ160から階層データ162aへの切り替えが行われる。以後、このような参照マップの切り替えを「リンク」と呼ぶ。ベースモデルの階層データ160にリンクを設定するパーツモデルの数は限定されない。
【0083】
またパーツモデルの階層データ162aに、さらに別のパーツモデルへのリンクを設定してもよい。上述のとおり各階層データ160、162a、162bには、基本形状や大きさなど、描画に必要な情報が対応づけられている。これにより、描画部82は
図3で示した処理手順と同様にして、参照マップを切り替えながら表示画像を描画できる。なお上述のとおりパーツモデルの参照マップを階層構造としない場合も、同様のリンク構造を利用できる。
【0084】
図示する例は、同種類の参照マップを対応づけるリンク構造であったが、同様の原理により、異なる種類のデータを対応づけてもよい。例えばパーツモデルの参照マップの代わりに、パーツモデルを描画するための異なる種類のモデルデータを対応づけてもよい。一例として、パーツモデルをプロシージャルモデルで表現することとし、線164のリンク情報に対応づけて、当該モデルで表現するための計算式などを設定する。これにより、参照マップを用いたレイトレーシングにより描画している3次元オブジェクトの表示倍率が所定値に達したら、拡大されている部分の物性に適したモデルへ表現手法を臨機応変に切り替えることができる。
【0085】
あるいは、リンク情報に動画像を対応づけることにより、表示倍率が所定値に達したら、拡大した部分が動き出すような演出を加えてもよい。また1つの参照マップであっても、階層によって表されるデータに解像度以外の変化を与えてもよい。例えば解像度が高い階層のカラーマップにおいて、反射係数を高く設定しておくことにより、拡大したときに反射光を強く表現したり立体感を強調したりしてもよい。階層に応じた参照マップのデータ調整はこれに限らず。カラー値や高さ自体を変化させてもよい。これにより、視点の距離に応じてオブジェクトの色や形状が変化するように表現できる。階層による変化は、カラーマップおよびハイトマップのどちらかに与えてもよいし、双方に与えてもよい。
【0086】
図18は、パーツモデルを組み合わせる態様におけるデータの流れを模式的に示している。データのおよその流れは
図11で示したのと同様であるため、主に異なる点について説明する。まず記憶装置52には、
図11と同様に背景の参照マップ50aと、ベースモデルとしての月のカラーマップ170aおよびハイトマップ172aを格納する。本態様ではさらに、パーツモデルとして表す、丘陵地および岩のカラーマップ170b、170c、およびそれらのハイトマップ172b、172cも格納する。
【0087】
丘陵地および岩のカラーマップ170b、170cは、月のカラーマップ170aの領域174aにおいてリンクが設定されている。丘陵地および岩のハイトマップ172a、172bは、月のハイトマップ172aの領域174bにおいてリンクが設定されている。なおこの例で丘陵地のカラーマップ170bとハイトマップ172bは階層データであり、岩のカラーマップ170cとハイトマップ172cは単一解像度のデータである。
【0088】
さらにこの例では、月のカラーマップ170aおよびハイトマップ172aの階層データのうち、最高解像度のマップの一部領域に対し、データ量を減らす、いわゆるリダクション処理が施されている。図ではマップの半分の領域についてデータ量が削減されていることを、「reduction」として示している。例えば視点を近づけたときに表示される可能性が小さい領域についてはあえて品質を落とすことにより、参照マップの生成においても無駄な処理の発生を抑えられる。またデータサイズが小さくなるため、メモリアクセスを効率化できる。リダクション処理として様々な手法が考えられることは当業者には理解されるところである。
【0089】
画像処理装置10のタイルデータ取得部74は、オブジェクトに対する相対的な視点や視線の動きに応じて、必要な参照マップのタイルデータをブロック単位などでメインメモリ26にロードする。ここで対象データ決定部72は、必要なデータの範囲に、リンクが設定されている領域174a、174bが含まれている場合に、当該領域に対応づけられたパーツモデルの参照マップを特定し、必要なデータに含める。これによりメインメモリ26には、パーツモデルの参照マップも格納される。
【0090】
図ではパーツモデルの参照マップが全て格納されているが、必要なデータが一部であれば当然、ロードも一部であってよい。その後は
図11と同様、復号伸張部78がGPU24のメモリ56に復号伸張後のタイルデータを格納し、描画部82がそれを用いて表示画像を描画する。参照マップのタイルデータには、それぞれが表すオブジェクトの識別情報や基本形状などを対応づけておく。これにより描画部82は、レイの進行方向にあるオブジェクトの参照マップを適切に切り替えて参照し、1つのオブジェクトを複数の参照マップを用いて描画できる。
【0091】
以上述べた本実施の形態によれば、表示対象の3次元オブジェクトの表面におけるカラー値の分布を表したカラーマップと、基本形状からの高さの分布を表したハイトマップをあらかじめ取得しておき、表示時はレイトレーシングによりそれらを参照して画素値を決定する。これにより、レンダリング方程式などの複雑な演算をスキップして高速に表示画像を描画できる。またマップの生成には時間をかけられるため、画像の品質を高めることができる。
【0092】
さらにカラーマップ、ハイトマップを複数解像度の階層データで準備することにより、惑星など巨大なモデルであっても倍率の大きな変化に対し同等の処理負荷でシームレスかつ低遅延に表示を変化させられる。このとき元の階層データのサイズが大きくても、階層データを構成する3次元空間において必要な範囲を特定し、その部分のデータのみを取得してメモリに展開しておくことにより、メモリ容量の節約やアクセスの効率化を実現できる。
【0093】
参照マップの階層構造を利用し、別の参照マップや異なるデータへのリンクを設定しておくことにより、視点の移動を契機として様々な変化を与えられる。例えば参照マップを、特定の部分のみ詳細に表したパーツモデルのものに切り替えることにより、全体を表すベースモデルでは表現できない構造を正確に表せる。また特定の部分の詳細度を維持しつつ、全体的なデータサイズを抑えることができる。結果として、視点や視線の大きな変化においても精細さを失うことなく低遅延で表示対象を表現できる。
【0094】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【産業上の利用可能性】
【0095】
以上のように本発明は、画像処理装置、ヘッドマウントディスプレイ、ゲーム装置、コンテンツ処理装置、画像表示装置、携帯端末、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む画像処理システムなどに利用可能である。
【符号の説明】
【0096】
1 画像表示システム、 10 画像処理装置、 14 入力装置、 16 表示装置、 20 コンテンツサーバ、 22 CPU、 24 GPU、 26 メインメモリ、 32 通信部、 34 記憶部、 36 出力部、 52 記憶装置、 56 メモリ、 70 入力情報取得部、 72 対象データ決定部、 74 タイルデータ取得部、 76 圧縮データ記憶部、 78 復号伸張部、 80 タイルデータ記憶部、 82 描画部、 84 出力部。