【文献】
山田友希, 外2名,“反射分布を考慮した鏡面反射の高速レンダリング”,情報処理学会研究報告,日本,社団法人情報処理学会,2004年11月27日,第2004巻, 第121号,p.109-114
(58)【調査した分野】(Int.Cl.,DB名)
前記合成部は、前記地形用キューブマップおよび前記移動物体用キューブマップの前記Zバッファを利用して、前記背景用キューブマップ、前記地形用キューブマップおよび前記移動物体用キューブマップを合成して、前記キューブマップの各面の映像を生成する請求項4または5に記載の三次元映像生成装置。
前記合成部は、前記地形用キューブマップの前記背景用キューブマップとの境界部分、および前記移動物体用キューブマップの前記背景用キューブマップおよび前記地形用キューブマップとの境界部分についてフェード処理を行う請求項6に記載の三次元映像生成装置。
前記キューブマップ生成部は、前記キューブマップの各面について、前記合成部により生成された前記キューブマップの映像に、前記第1周期前の映像を混ぜ合わせるモーションブラー処理を行う請求項6または7に記載の三次元映像生成装置。
視点移動に応じて第1周期で模擬視界映像を生成する時に、前記模擬視界映像内の鏡面における反射映像を生成するのに使用されるキューブマップを生成および更新するキューブマップ生成方法であって、
前記キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、前記第1周期のN倍の第2周期で生成し、
前記第2周期で生成される前記キューブマップの各面について、前記第1周期に対応する時間における映像で、不足する映像を補間処理により生成することを特徴とするキューブマップ生成方法。
【背景技術】
【0002】
コンピュータ等で生成した三次元映像のリアルタイム表示を行うリアルタイムコンピュータグラフィックスが、ゲーム、シミュレータ(模擬視界装置)等で広く利用されている。リアルタイムコンピュータグラフィックスでは、視界の三次元映像を生成し、スクリーンに表示する。精密な三次元映像の生成は、大量の演算処理を伴うため、高性能のコンピュータを利用して行うのが一般的である。
【0003】
近年、リアルタイムコンピュータグラフィックスで生成される三次元映像の一層の向上が求められており、視界内の直視映像だけでなく、直視映像内の鏡面で反射する鏡面反射映像も表示することが求められている。
【0004】
鏡面反射映像を生成するには、通常のレイトレーシング(光線追跡)と同様に、視点から直視映像内の鏡面に対応するポリゴンについて反射後のレイトレーシングを行い、通常の三次元映像生成と同様の演算処理を行い、鏡面反射映像を生成する。レイトレーシングにおいて、三次元データが生成する空間範囲で物体に当たらない時には、通常のレイトレーシングと同様に、キューブマップと呼ばれる遠景の映像データを利用して鏡面反射映像を生成する。このようにして生成された鏡面反射映像は、鏡面の反射率に応じた減衰処理等が施されて、直視映像内の鏡面部分に重ねられる。
【0005】
しかし、レイトレーシングで鏡面反射映像を生成する処理は、大量の演算処理を要する処理であり、リアルタイムコンピュータグラフィックスで実現することが難しいのが現状である。そのため、少ない演算処理量で鏡面反射映像を生成することが求められている。
【0006】
1つの方法は、遠景の映像データを利用したキューブマップの映像のみを利用して鏡面反射映像を生成する方法である。遠景のキューブマップは、無限遠とみなせる映像を記憶しており、鏡面における反射方向のみでキューブマップにおいて利用する映像部分を決定し、その部分の映像データを取得するだけでよい。そのため、この方法は、演算処理量が小さいという利点がある。遠景のキューブマップの映像が無限遠とみなせる場合には、キューブマップは固定でよい。
【0007】
しかし、この方法は、本来鏡面反射映像に地形や移動物体の映像が含まれる場合でも、それらを表示しないため、十分とは言えない。特に、自動車運転シミュレータ、鉄道シミュレータ、フライトシミュレータなどの運転シミュレータでは、鏡面反射映像が運転操作に大きな影響を与えるため、鏡面反射映像の品質向上が強く求められている。
【0008】
別の方法は、視点位置に応じて複数の空間に分割し、各空間に対応してキューブマップを作成しておき、視点位置に応じて使用するキューブマップを選択する。この方法で作成されるキューブマップは、遠景のみでなく、建物などの近景物体を含ませることができる。
【0009】
しかし、この方法は、精密な映像の場合、記憶(または生成)するキューブマップの個数が増加するため、記憶容量が増加するなどの別の問題が生じる。また、空間を切替える場合に近景物体の変化が粗くなるので、鏡面反射映像の品質は十分でない。
【0010】
さらに別の方法は、キューブマップの生成(更新)周期を、直視映像の生成周期に比べて長くすることである。例えば、キューブマップの生成周期を、直視映像の生成周期のN倍にすれば、単位時間当たりの演算処理量は1/Nになる。生成されたキューブマップは、N回の直視映像の生成の間、鏡面反射映像の生成に共通に使用される。
【発明を実施するための形態】
【0025】
以下、自動車運転シミュレータの三次元映像生成装置を例として実施形態を説明するが、本発明は、これに限定されず、鉄道シミュレータ、フライトシミュレータなどの運転シミュレータ、ゲームなどの三次元映像生成装置に適用可能である。
【0026】
図1は、実施形態の自動車運転シミュレータの全体構成を示す図である。
自動車運転シミュレータは、訓練者Hの前に配置されたスクリーン(ここでは3面)1A−1Cと、訓練者Hが観察するように配置された計器類2と、訓練者Hが操作する入力装置3と、全体の制御を行う主制御装置4と、主制御装置4からの指令を中継するハブ5と、スクリーン1A−1Cに表示する模擬視界映像を生成する模擬視界映像発生装置(ここでは3台)6A−6Cと、を有する。模擬視界映像発生装置6A−6Cは、相互に通信可能に形成されることが望ましい。主制御装置4および模擬視界映像発生装置6A−6Cは、コンピュータにより実現される。
【0027】
模擬視界映像を生成するための三次元空間データは、主制御装置4に記憶され、ハブ5を介して模擬視界映像発生装置6A−6Cに供給されても、模擬視界映像発生装置6A−6Cからアクセス可能な図示していない記憶装置に記憶されていてもよい。
【0028】
後述する鏡面反射映像を生成するためのキューブマップは、模擬視界映像発生装置6A−6Cが三次元空間データからそれぞれ生成しても、模擬視界映像発生装置6A−6Cが分担して生成し、相互に利用してもよい。この場合、キューブマップ生成装置は、模擬視界映像発生装置6A−6Cのプログラムの一部により実現されることになる。また、キューブマップは、図示していないキューブマップ生成装置で三次元空間データから生成し、模擬視界映像発生装置6A−6Cがキューブマップ生成装置にアクセスして獲得するようにしてもよい。この場合、キューブマップ生成装置は、コンピュータにより実現されことになる。
【0029】
いずれの場合も、キューブマップ生成は、模擬視界映像発生装置のハードウェアおよびソフトウェアに、キューブマップ生成用プログラムを加えることにより実現される。広く知られているので、説明は省略する。
【0030】
模擬視界映像発生装置6A−6Cのハードウェアおよびソフトウェア構成、および処理については、例えば特許文献1−3などに記載されるように広く知られているので、説明は省略し、以下、鏡面反射映像の生成およびそのために利用するキューブマップの生成について説明する。
【0031】
図2は、キューブマップを説明する図であり、(A)がキューブマップの構成を、(B)がキューブマップの6面の映像例を示す。
【0032】
遠景マップは、無限遠の空間映像のみを対象とする場合には半球状の映像面を有する場合もあるが、自動車運転シミュレータの実施形態であり、建物や移動物体などの映像も対象とするため、
図2の(A)の立方体のキューブマップ8を対象とする。
【0033】
図2の(A)に示すように、キューブマップ8は、自動車運転シミュレータの模擬視界の視点7を中心とする立方体で、視点から前方、後方、左方向、右方向、上方向および下方向の6方向の三次元空間を、立方体の6面に投影した面映像である。ここでは、前方面映像をCF、後方面映像をCB、左方向面映像をCL、右方向面映像をCR、上方向面映像をCU、下方向面映像をCDで表す。6つの面映像は、同じサイズの正方形である。
【0034】
図2の(B)に示すように、キューブマップ8の各面映像は、空などの遠景だけでなく、近くの建物や地形などの近景、および近くを通過する自動車、自転車、人間などの移動物体も含む。
【0035】
図3は、模擬視界映像発生装置が発生する直視映像内に存在する鏡面に写る鏡面反射映像を、キューブマップを利用して生成する処理を説明する図であり、(A)が鏡面反射のレイトレーシングを示し、(B)が路面反射の場合の例を示し、(C)がキューブマップからの簡易的な映像抽出方法を示す。
【0036】
図3の(A)に示すように、視点7から直視映像内の鏡面に向かう視線7Aを追跡すると、鏡面で反射され視線7Bとなる。視線7Bがキューブマップ8に当たる部分の映像が、直視映像内の鏡面に表示する鏡面反射映像である。
【0037】
例えば、路面反射の場合には、
図3の(B)に示すように、視線7Aが路面の反射部分に対応するポリゴン9で反射されて視線7Bとなり、キューブマップ8の前方面映像CFに当たる。視線7Bが当たった前方面映像CFのポリゴン9に対応する部分の映像を、所定の反射係数を乗じて直視映像の路面の反射部分に配置する。実際には、処理をさらに簡易化するため、
図3の(C)に示すように、視点7から反射視線7Bの方向にトレースし、反射視線7Bが当たったキューブマップの部分の映像を抽出する。
【0038】
前述のように、精密な鏡面反射映像を生成するには通常のレイトレーシングが使用されるが、この処理は負荷が大きい。そこで、キューブマップが使用されるが、自動車運転シミュレータのように、遠景のみでなく地形(建物)や移動物体の鏡面反射映像も表示することが求められる場合、キューブマップの生成自体も大きな負荷となり、比較的安価なコンピュータで実現するのが難しい。そこで、視点位置に応じた複数の空間毎にキューブマップを作成することが行われるが、そのようなキューブマップデータを記憶するのが難しく、鏡面反射映像の品質も十分でないという問題があった。
【0039】
また、キューブマップの更新周期を、直視映像の生成周期に比べて長くすることも行われるが、変化の粗い不自然な鏡面反射映像となるという問題があった。実施形態では、演算処理量の増加を比較的少なくして、鏡面反射映像の品質を向上する。
【0040】
図4は、実施形態におけるキューブマップの更新シーケンスを説明する図である。
図4において、DFは直視画像を示し、t0−t7は、模擬視界映像発生装置6A−6Cが直視映像DFを生成し、スクリーン1A−1Cに表示するタイミングを示す。例えば、模擬視界映像発生装置6A−6Cは、1秒間に60枚の直視映像DFを生成する。言い換えれば、直視映像DFは、60Hzで生成される。
【0041】
CL−CUは、前述のキューブマップ8の面映像であり、左方向面映像、後方面映像、下方向面映像、右方向面映像、前方面映像および上方向面映像を表す。6つの面映像は、生成する面をシフトしながら、直視映像DFの生成周期の6倍のキューブマップ周期で生成される。具体的には、t0のタイミングでCLが生成され、t1のタイミングでCBが生成され、t2のタイミングでCDが生成され、t3のタイミングでCRが生成され、t4のタイミングでCFが生成され、t5タイミングでCUが生成される。したがって、各面映像は10Hzで生成される。これでは、キューブマップ8の面映像の生成周期が長く、不自然の鏡面反射映像となるので、実施形態では、直視映像に対応する時間で不足している映像を、補間処理により生成する。例えば、CL映像(画像)は、t0およびt6で生成されるので、t1−t5のCL画像は、t0における画像から補間処理により生成される。
【0042】
図5は、実施形態におけるキューブマップの生成処理を示す図である。
実施形態では、前段階として、背景用キューブマップ81と、地形用キューブマップ82と、移動物体用キューブマップ83と、からなる類別キューブマップを生成し、それらをキューブマップ合成処理することにより、キューブマップ8を生成する。
【0043】
例えば、
図4のt4のタイミングでは、背景用キューブマップ81、地形用キューブマップ82および移動物体用キューブマップ83を含むCFが生成される。t4のタイミングでのキューブマップ8の他の面は、面毎に、背景用キューブマップ81、地形用キューブマップ82および移動物体用キューブマップ83をそれぞれ補間処理した類別補間キューブマップを生成し、それらを合成することにより生成される。なお、背景用キューブマップ81については、補間処理を行っても行わなくてもよく、ここでは背景用キューブマップ81の補間処理は行わないものとする。具体的には、t4のタイミングでのCLは、t0のタイミングで生成された地形用キューブマップ82を、t0からt4までの視点位置変化を考慮して補間処理し、さらに移動物体用キューブマップ83における移動物体の視点変化および移動に伴う変化を考慮して補間処理し、背景用キューブマップ81、補間処理した地形用キューブマップ82および移動物体用キューブマップ83を合成処理することにより得られる。
【0044】
図6は、実施形態における背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの視点に対する距離関係、およびキューブマップの構成を示す図である。
【0045】
自動車運転シミュレータでは、道路走行を模擬しており、移動物体用キューブマップ83は視点の近辺に存在するそれ自体が移動する移動物体を対象とし、さらに地形用キューブマップ82は建物、信号機、街路樹等、視点からある程度の距離範囲のものを対象とする。
図6の(A)に示すように、移動物体用キューブマップ83が対象とする視点からの距離範囲は、地形用キューブマップ82が対象とする視点からの距離範囲の内側である。例えば、地形用キューブマップ82が対象とする視点からの距離範囲の外側に位置する移動物体は、無視しても問題はない。ただし、地形用キューブマップ82の対象物が、移動物体より短い距離になる場合はあり得る。例えば、車両が、街路樹のある中央分離帯の反対側斜線を移動する場合などである。
【0046】
背景用キューブマップ81は、地形用キューブマップ82が対象とする視点からの距離範囲の外側が対象である。
【0047】
図6の(B)に示すように、背景用キューブマップ81は、カラーバッファを有する。地形用キューブマップ82は、カラーバッファおよび奥行を示すZバッファを有する。移動物体用キューブマップ83は、カラーバッファ、Zバッファおよび速度バッファを有する。言い換えれば、背景用キューブマップ81はZバッファと速度バッファのいずれも有さず、地形用キューブマップ82は速度バッファを有さない。
【0048】
図7は、背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの構成を具体的に示す図である。
上記のように、背景用キューブマップ81はカラーバッファを有し、地形用キューブマップ82はカラーバッファおよびZバッファを有し、移動物体用キューブマップ83はカラーバッファ、Zバッファおよび速度バッファを有する。バッファは、ビットマップで、同じマトリクス構成である。カラーバッファは、RGBの3種のマップを含み、マトリクスの各セルが、それぞれが複数ビットの強度データを含む。強度データのビット数が多いと精密な映像が生成可能であるが、その分演算処理の負荷が増加するので、適宜設定する。地形用キューブマップ82および移動物体用キューブマップ83のカラーバッファでは、対象物が存在しない部分にはゼロが付される。
【0049】
Zバッファは、地形の対象物および移動物体の奥行を示すデータであり、マトリクスの各セルが、それぞれが数ビットの奥行データを含む。Zバッファのビット数も適宜設定する。マップ上に複数の対象物が存在する場合には、それぞれのセルのZバッファの値が異なることになる。
【0050】
速度バッファは、移動物体の移動速度を示すデータであり、三次元空間のベクトルで表される。速度バッファのビット数も適宜設定する。マップ上に複数の移動物体が存在する場合には、それぞれのセルの速度バッファの値が異なることになる。
【0051】
図8は、移動物体用キューブマップにおけるバッファの例を示す図であり、(A)がカラーバッファを、(B)がZバッファを、(C)が速度バッファを示す。
【0052】
図8の(A)に示すように、カラーバッファは、移動物体の投影画像を表すデータを有する。
図8の(A)では、移動する車両のカラー画像を表すデータを有する。上記のように、移動物体の存在しない部分のセルの値はゼロである。なお、停車中の車両は、移動速度がゼロであり、移動物体用キューブマップで表す対象物に含めても、地形用キューブマップで表す対象物に含めてもよい。さらに、上記のように、マップ上に複数の移動物体が存在する場合には、複数の移動物体を含む平面画像が生成されることになる。
【0053】
図8の(B)に示すように、Zバッファは、カラーバッファ内の移動物体の部分の奥行を表すデータを有する。カラーバッファと同様に、移動物体の存在しない部分のセルの値はゼロであり、マップ上に複数の異なる移動速度の移動物体が存在する場合には、カラーバッファ上のそれぞれのセルに異なる値が生成されることになる。
【0054】
図8の(C)に示すように、カラーバッファ内の移動物体の部分の移動速度を示すデータを有する。カラーバッファおよびZバッファと同様に、移動物体の存在しない部分のセルの値はゼロであり、マップ上に複数の移動物体が存在する場合には、それぞれのセルの速度バッファの値が異なることになる。
【0055】
図9は、プログラムにより模擬視界映像発生装置6A−6C上に実現されるキューブマップ生成装置の機能ブロック図である。
キューブマップ生成装置は、背景用キューブマップ生成部110と、地形用キューブマップ生成部120と、移動物体用キューブマップ生成部130と、合成処理部140と、モーションブラー処理部150と、を有する。
【0056】
背景用キューブマップ生成部110は、視点から見える遠景の映像をキューブマップの各面に投影した背景用キューブマップ映像を生成する。背景用キューブマップ映像は、三次元空間データに基づいて生成されるが、これに限定されず撮影した実映像を使用して生成しても、それらを合わせて生成してもよい、また、背景用キューブマップ映像は、視点の移動に応じて生成される。背景用キューブマップ映像の視点移動に応じた補間処理は、行っても行わなくてもよい。
【0057】
地形用キューブマップ生成部120は、描画部121と、視点変化補間処理部122と、を有する。描画部121は、三次元空間データに基づいて、視点から見える近景の地形の映像をキューブマップの各面に投影した地形用キューブマップ映像を生成する。
図7に示すように、地形用キューブマップ映像は、カラーバッファおよびZバッファからなる。
【0058】
視点変化補間処理部122は、描画部121が10Hzで生成した地形用キューブマップ映像を補間処理して、5つの補間地形用キューブマップ映像を生成する。これにより、地形用キューブマップ映像および5つの補間地形用キューブマップ映像を含めて、地形用キューブマップ映像が60Hzで生成されることになる。
【0059】
移動物体用キューブマップ生成部130は、描画部131と、フレーム補間+視点変化補間処理部132と、を有する。描画部131は、三次元空間データに基づいて、視点から見える近くの移動物体の映像をキューブマップの各面に投影した移動物体用キューブマップ映像を生成する。
図7に示すように、移動物体用キューブマップ映像は、カラーバッファ、Zバッファおよび速度バッファからなる。
【0060】
フレーム補間+視点変化補間処理部132は、描画部131が10Hzで生成した移動物体用キューブマップ映像を補間処理して、5つの補間移動物体用キューブマップ映像を生成する。これにより、移動物体用キューブマップ映像および5つの補間移動物体用キューブマップ映像を含めて、移動物体用キューブマップ映像が60Hzで生成されることになる。
【0061】
合成処理部140は、背景用キューブマップ生成部110が生成した背景用キューブマップ映像と、地形用キューブマップ生成部120が生成した地形用キューブマップ映像と、移動物体用キューブマップ生成部130が生成した移動物体用キューブマップ映像と、をZバッファの値による距離比較に基づいて重ね合わせてキューブマップ映像を描画する。重ねあわせは、地形用キューブマップ映像と移動物体用キューブマップ映像を、Zバッファの値の小さい方を選択し、地形用キューブマップ映像と移動物体用キューブマップ映像の両方でカラーバッファ値がゼロの部分に背景用キューブマップ映像を配置することで行う。合成処理部140は、この合成処理の際に、移動物体用キューブマップ映像の地形用キューブマップ映像および背景用キューブマップ映像との境界(エッジ)部、および地形用キューブマップ映像の背景用キューブマップ映像との境界(エッジ)部について、フェード処理を行う。
【0062】
合成処理部140は、60Hzで、キューブマップの6面について上記の合成処理を行う。したがって、1面については、新たに生成された背景用キューブマップ映像と地形用キューブマップ映像と移動物体用キューブマップ映像が合成されるが、他の5面については、補間(補間した場合)背景用キューブマップ映像と補間地形用キューブマップ映像と補間移動物体用キューブマップ映像が合成される。
【0063】
モーションブラー処理部150は、上記のように合成されて60Hzで生成されたキューブマップの6面の映像に、直前(1/60秒前)に生成されたキューブマップの6面の映像を所定の比率で減衰した映像を加算するモーションブラー処理を行う。これにより、鏡面反射画像の不自然な変化の影響を低減できる。
【0064】
図10は、実施形態におけるキューブマップ生成装置の処理動作を示すフローチャートである。
【0065】
ステップS11で、変数nを0に設定する。以下、ステップS20までキューブマップのn番目の面の描画を行う。
ステップS12で、背景用キューブマップ生成部110が背景用キューブマップ映像を描画する。
ステップS13で、背景用キューブマップ映像を更新する。
【0066】
ステップS14で、地形用キューブマップ生成部120が地形用キューブマップ映像を描画する。
ステップS15で、地形用キューブマップ映像を更新する。
【0067】
ステップS16で、移動物体用キューブマップ生成部130が移動物体用キューブマップ映像を描画する。
ステップS17で、移動物体用キューブマップ映像を更新する。
【0068】
ステップS18で、合成処理部140が、距離比較に基づく重ね合わせによる描画およびフェード処理を行う。
ステップS19で、モーションブラー処理部150がモーションブラー処理を行う。
【0069】
ステップS21で、変数kを1に設定する。以下、ステップS20までキューブマップのn+k(n+k>6の時にはn+k−6)番目の面の描画を行う。
【0070】
ステップS22で、地形用キューブマップ生成部120が地形用キューブマップ映像に対して視点変化に伴う補間処理を行う。
ステップS23で、移動物体用キューブマップ生成部130が移動物体用キューブマップ映像に対してフレーム補間処理および視点変化に伴う補間処理を行う。
【0071】
ステップS24で、合成処理部140が、背景用キューブマップ映像、補間処理された地形用キューブマップ映像および移動物体用キューブマップ映像について、距離比較に基づく重ね合わせによる描画およびフェード処理を行う。
ステップS25で、モーションブラー処理部150がモーションブラー処理を行う。
【0072】
ステップS26で、n+k(n+k>6の時にはn+k−6)番目の面映像を更新する。
ステップS27で、変数kに1を加える。
ステップS28で、変数kが5より大きいか(すなわち6であるか)を判定し、5以下であればステップS22に戻り、5より大きければステップS29に進む。
【0073】
ステップS29で、変数nに1を加える。
ステップS30で、変数nが6以上であるかを判定し、6以上であればステップS31に進み、6より小さければステップS12に戻る。
ステップS31で、変数nから6を減じて、ステップS12に戻る。
【0074】
図10の処理では、補間処理は、すべて10Hzで描画された映像に基づいて行われ、直前に補間処理により生成された補間映像は使用していないが、補間処理により直前に生成された補間地形用キューブマップ映像および補間移動物体用キューブマップ映像を使用して行うことも可能である。
また、
図10の処理では、背景用キューブマップ映像については視点変化に伴う補間処理を行わないが、背景用キューブマップ映像についての補間処理を行うようにしてもよい。
【0075】
図11は、移動物体用キューブマップ生成部130が行うフレーム補間処理を説明する図である。
図11の説明では、フレーム補間処理を行う面について、移動物体用キューブマップ生成部130がN−4フレーム目に移動物体用キューブマップ映像を生成したものとし、このフレーム補間処理によりNフレーム目の補間移動物体用キューブマップ映像を生成する。
【0076】
図11の(A)に示すように、N−4フレーム目の移動物体用キューブマップ映像のZバッファ83Z(N−4)および速度バッファ83S(N−4)の値を取得する。対象物(移動物体)(図においてPで示すピクセル)の移動物体速度、奥行き値(Zバッファ値)および描画更新数(N−(N−4)=4)(元になる映像から何サイクル離れているかを示す数値)より、
図11の(B)に示すように、キューブマップの移動物体用キューブマップ映像83の対象物(ピクセル参照位置)の補正ベクトルQを求める。
【0077】
図11の(C)に示すように、Nフレーム目の移動物体用キューブマップ映像のカラーバッファ83C(N)の描画は、(N−4)フレーム目の移動物体用キューブマップ映像のカラーバッファ83C(N−4)を参照し、対象物(移動物体)の位置を位置補正ベクトルQ分シフトする。図では、対象物(移動物体)内のピクセル参照位置Rに位置補正ベクトルQを加えて位置Sに描画する様子を示している。
【0078】
移動物体用キューブマップ映像の速度バッファの値である。移動物体速度のx、y成分における位置補正ベクトルは、次の式による計算から求める。この式の時間は、上記の描画更新数より求める。
(位置補正ベクトル)=(移動物体速度(x、y))×(時間)/(奥行き値)/2
【0079】
図12は、上記の奥行き変化によるフレーム補間を説明する図である。
図12に示すように、N−4フレームとNフレームで移動物体の奥行きが図示のように変化した場合、移動物体速度のZ成分(奥行き成分)の位置補正ベクトルは、次の式で求められる。
(位置補正ベクトル)=((ピクセル描画位置)−(ピクセル中心位置))×(移動物体速度(Z成分))/(奥行き値)
ここで、ピクセル描画位置およびピクセル中心位置は、2次元ベクトルである。
【0080】
視点変化による補間処理は、
図11で説明した移動物体速度による補間処理とほぼ同じであるが、移動物体速度が視点速度となることが異なる。したがって、速度バッファは用いない。これは、地形用キューブマップ生成部120による視点変化に伴う補間処理も同様である。
なお、移動物体用キューブマップ生成部130におけるフレーム補間処理では、移動速度による補間処理と視点変化に伴う補間処理を合わせて行ってもよい。
【0081】
図13は、フェード処理を説明する図である。
遠くの地形や移動物体がキューブマップの描画範囲内に入った際、映り込み映像が突然表示される。反対に、キューブマップの描画範囲内から出た場合に映り込み映像が突然消える。瞬間的な表示と非表示の変化は目立つため、徐々に表示と非表示が変化するように、フェード処理を行う。
【0082】
図13に示すように、地形用キューブマップ映像82の背景用キューブマップ映像81との境界部分85、および移動物体用キューブマップ映像83の地形用キューブマップ映像82との境界部分86で、それぞれ距離に応じて徐々に映り込みを弱めていくフェード処理を行う。なお、
図13で、地形用キューブマップ映像82および移動物体用キューブマップ映像83は、それられ描画される対象物の範囲である。したがって、複数の移動物体がある場合には、それぞれについての境界部分でフェード処理を行う。また、移動物体用キューブマップ映像の対象物が、地形用キューブマップ映像と接するだけでなく、背景用キューブマップ映像と接する場合もあり得る。その場合は、移動物体用キューブマップ映像の対象物の背景用キューブマップ映像との境界部分についてフェード処理を行う。
【0083】
図14は、モーションブラー処理を説明する図である。
図14に示すように、Nフレーム目のキューブマップの各面の映像8(N)について、直前のN−1フレーム目のキューブマップの各面の映像8(N−1)を、所定の比率で混ぜ合わせてNフレーム目の処理済みキューブマップの各面の映像8’を得る。
直視映像は60Hzで生成されるのに対して、キューブマップの各面は10Hzで生成され、またフレーム補間処理および視点変化に伴う補間処理は、完全にフレームを補間できるわけではないため、モーションブラー処理にて、これらの不足分の影響を低減する。
【0084】
以上説明したように、鏡面反射映像生成のためのキューブマップを、すべての三次元データを保持して行うのは、演算量および使用メモリ容量が増大する。これに対して、実施形態では、画像単位で補間処理を行うので、演算量および使用メモリ容量を抑制でき、比較的低い能力のコンピュータを使用してリアルタイムでの高品質のキューブマップの生成および鏡面反射映像生成を可能にする。