(57)【特許請求の範囲】
【請求項１】
視点移動に応じて第１周期で直視映像を生成する直視映像生成部と、
前記直視映像内の鏡面における反射映像を生成する反射映像生成部と、を備え、
前記反射映像生成部は、
キューブマップを生成および更新するキューブマップ生成部と、
前記直視映像内の鏡面による視点の反射方向に応じて前記キューブマップの映像から反射映像を抽出する反射映像抽出部と、を備え、
前記キューブマップ生成部は、前記キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、前記第１周期のＮ倍の第２周期で生成し、
前記第２周期で生成される前記キューブマップの各面について、前記第１周期に対応する時間において不足する映像を、補間処理により生成することを特徴とする三次元映像生成装置。
【請求項２】
前記補間処理は、直前の生成された前記キューブマップの面画像に基づいて行う請求項１に記載の三次元映像生成装置。
【請求項３】
前記キューブマップ生成部は、
複数の種別キューブマップを生成する複数の種別キューブマップ生成部と、
前記複数の種別キューブマップを合成して前記キューブマップを生成する合成部と、を有する請求項１または２に記載の三次元映像生成装置。
【請求項４】
前記複数の種別キューブマップは、背景用キューブマップと、地形用キューブマップと、移動物体用キューブマップと、を含み、
前記背景用キューブマップは、カラーバッファを有し、
前記地形用キューブマップは、カラーバッファおよびＺバッファを有し、
前記移動物体用キューブマップは、カラーバッファ、Ｚバッファおよび速度バッファを有する請求項３に記載の三次元映像生成装置。
【請求項５】
前記地形用キューブマップを生成する地形用キューブマップ生成部は、前記Ｚバッファのデータを利用して前記補間処理を行い、
前記移動物体用キューブマップを生成する移動物体用キューブマップ生成部は、前記Ｚバッファおよび前記速度バッファのデータを利用して前記補間処理を行う、請求項４に記載の三次元映像生成装置。
【請求項６】
前記合成部は、前記地形用キューブマップおよび前記移動物体用キューブマップの前記Ｚバッファを利用して、前記背景用キューブマップ、前記地形用キューブマップおよび前記移動物体用キューブマップを合成して、前記キューブマップの各面の映像を生成する請求項４または５に記載の三次元映像生成装置。
【請求項７】
前記合成部は、前記地形用キューブマップの前記背景用キューブマップとの境界部分、および前記移動物体用キューブマップの前記背景用キューブマップおよび前記地形用キューブマップとの境界部分についてフェード処理を行う請求項６に記載の三次元映像生成装置。
【請求項８】
前記キューブマップ生成部は、前記キューブマップの各面について、前記合成部により生成された前記キューブマップの映像に、前記第１周期前の映像を混ぜ合わせるモーションブラー処理を行う請求項６または７に記載の三次元映像生成装置。
【請求項９】
視点移動に応じて第１周期で模擬視界映像を生成する時に、前記模擬視界映像内の鏡面における反射映像を生成するのに使用されるキューブマップを生成および更新するキューブマップ生成方法であって、
前記キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、前記第１周期のＮ倍の第２周期で生成し、
前記第２周期で生成される前記キューブマップの各面について、前記第１周期に対応する時間における映像で、不足する映像を補間処理により生成することを特徴とするキューブマップ生成方法。
【請求項１０】
前記キューブマップは、背景用キューブマップと、地形用キューブマップと、移動物体用キューブマップと、を含み、
前記背景用キューブマップは、カラーバッファを有し、
前記地形用キューブマップは、カラーバッファおよびＺバッファを有し、
前記移動物体用キューブマップは、カラーバッファ、Ｚバッファおよび速度バッファを有し、
前記キューブマップは、前記地形用キューブマップおよび前記移動物体用キューブマップの前記Ｚバッファを利用して、前記背景用キューブマップ、前記地形用キューブマップおよび前記移動物体用キューブマップを合成して生成される請求項９に記載のキューブマップ生成方法。
【請求項１１】
前記地形用キューブマップは、前記Ｚバッファのデータを利用して前記補間処理され、
前記移動物体用キューブマップは、前記Ｚバッファおよび前記速度バッファのデータを利用して前記補間処理される請求項１０に記載のキューブマップ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元映像生成装置およびキューブマップ生成方法に関する。
【背景技術】
【０００２】
コンピュータ等で生成した三次元映像のリアルタイム表示を行うリアルタイムコンピュータグラフィックスが、ゲーム、シミュレータ（模擬視界装置）等で広く利用されている。リアルタイムコンピュータグラフィックスでは、視界の三次元映像を生成し、スクリーンに表示する。精密な三次元映像の生成は、大量の演算処理を伴うため、高性能のコンピュータを利用して行うのが一般的である。
【０００３】
近年、リアルタイムコンピュータグラフィックスで生成される三次元映像の一層の向上が求められており、視界内の直視映像だけでなく、直視映像内の鏡面で反射する鏡面反射映像も表示することが求められている。
【０００４】
鏡面反射映像を生成するには、通常のレイトレーシング（光線追跡）と同様に、視点から直視映像内の鏡面に対応するポリゴンについて反射後のレイトレーシングを行い、通常の三次元映像生成と同様の演算処理を行い、鏡面反射映像を生成する。レイトレーシングにおいて、三次元データが生成する空間範囲で物体に当たらない時には、通常のレイトレーシングと同様に、キューブマップと呼ばれる遠景の映像データを利用して鏡面反射映像を生成する。このようにして生成された鏡面反射映像は、鏡面の反射率に応じた減衰処理等が施されて、直視映像内の鏡面部分に重ねられる。
【０００５】
しかし、レイトレーシングで鏡面反射映像を生成する処理は、大量の演算処理を要する処理であり、リアルタイムコンピュータグラフィックスで実現することが難しいのが現状である。そのため、少ない演算処理量で鏡面反射映像を生成することが求められている。
【０００６】
１つの方法は、遠景の映像データを利用したキューブマップの映像のみを利用して鏡面反射映像を生成する方法である。遠景のキューブマップは、無限遠とみなせる映像を記憶しており、鏡面における反射方向のみでキューブマップにおいて利用する映像部分を決定し、その部分の映像データを取得するだけでよい。そのため、この方法は、演算処理量が小さいという利点がある。遠景のキューブマップの映像が無限遠とみなせる場合には、キューブマップは固定でよい。
【０００７】
しかし、この方法は、本来鏡面反射映像に地形や移動物体の映像が含まれる場合でも、それらを表示しないため、十分とは言えない。特に、自動車運転シミュレータ、鉄道シミュレータ、フライトシミュレータなどの運転シミュレータでは、鏡面反射映像が運転操作に大きな影響を与えるため、鏡面反射映像の品質向上が強く求められている。
【０００８】
別の方法は、視点位置に応じて複数の空間に分割し、各空間に対応してキューブマップを作成しておき、視点位置に応じて使用するキューブマップを選択する。この方法で作成されるキューブマップは、遠景のみでなく、建物などの近景物体を含ませることができる。
【０００９】
しかし、この方法は、精密な映像の場合、記憶（または生成）するキューブマップの個数が増加するため、記憶容量が増加するなどの別の問題が生じる。また、空間を切替える場合に近景物体の変化が粗くなるので、鏡面反射映像の品質は十分でない。
【００１０】
さらに別の方法は、キューブマップの生成（更新）周期を、直視映像の生成周期に比べて長くすることである。例えば、キューブマップの生成周期を、直視映像の生成周期のＮ倍にすれば、単位時間当たりの演算処理量は１／Ｎになる。生成されたキューブマップは、Ｎ回の直視映像の生成の間、鏡面反射映像の生成に共通に使用される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第４８８６３４９号公報
【特許文献２】特開２００５−２９３０９１号公報
【特許文献３】特開２００７−２４１８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、キューブマップの生成周期を長くする方法は、時間的に隣接して生成されるキューブマップの間隔が長いため、隣接する映像間の変化が大きく、不自然な映像となる。特に、近景物体は相対的に変化が大きくなり、動きの粗い不自然な映像となる。
【００１３】
本発明は、演算処理量の増加を比較的少なくして、鏡面反射映像の品質を向上した三次元映像生成装置およびキューブマップ生成方法の実現を目的とする。
【課題を解決するための手段】
【００１４】
上記目的を実現するため、本発明の三次元映像生成装置およびキューブマップ生成方法は、キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、直視映像の生成周期のＮ倍の周期で生成し、生成される前記キューブマップの各面について、第１周期に対応する時間において不足する映像を、補間処理により生成することを特徴とする。
【００１５】
すなわち、本発明の第１の態様の三次元映像生成装置は、視点移動に応じて第１周期で直視映像を生成する直視映像生成部と、直視映像内の鏡面における反射映像を生成する反射映像生成部と、を有する。反射映像生成部は、キューブマップを生成および更新するキューブマップ生成部と、直視映像内の鏡面による視点の反射方向に応じてキューブマップの映像から反射映像を抽出する反射映像抽出部と、を有する。キューブマップ生成部は、キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、第１周期のＮ倍の第２周期で生成し、第２周期で生成されるキューブマップの各面について、第１周期に対応する時間において不足する映像を補間処理により生成することを特徴とする。
【００１６】
例えば、キューブマップが６面で形成される場合、第１周期の６倍の第２周期で、６面分の映像が生成され、各面が生成されるタイミングは、ほぼ第１周期ずれることになる。本発明によれば、キューブマップの生成に要する演算量は、直視映像の生成周期と同じ第１周期でキューブマップを生成する場合に比べて１／Ｎであり、キューブマップを形成する複数面の面映像を、生成する面をシフトしながら生成し、第１周期に対応する時間における不足する映像を補間処理により生成するので、少ない演算処理量で比較的滑らかに変化するキューブマップを生成することができる。これにより、鏡面反射映像の品質が向上する。
【００１７】
補間処理を行う場合、同じ面で次に生成される映像を利用することはできないので、補間処理は、直前の生成されたキューブマップの面映像に基づいて行う。
【００１８】
キューブマップ生成部は、複数の種別キューブマップを生成する複数の種別キューブマップ生成部と、複数の種別キューブマップを合成してキューブマップを生成する合成部と、を有することが望ましい。例えば、複数の種別キューブマップは、背景用キューブマップと、地形用キューブマップと、移動物体用キューブマップと、を含み、背景用キューブマップは、カラーバッファを有し、地形用キューブマップは、カラーバッファおよびＺバッファを有し、移動物体用キューブマップは、カラーバッファ、Ｚバッファおよび速度バッファを有する。複数の種別キューブマップ生成部は、従来と同様の演算処理により、複数の種別キューブマップの各面の映像を生成する。さらに、地形用キューブマップを生成する地形用キューブマップ生成部は、Ｚバッファのデータを利用して補間処理を行い、移動物体用キューブマップを生成する移動物体用キューブマップ生成部は、Ｚバッファおよび速度バッファのデータを利用して補間処理を行う。地形用キューブマップ生成部は、補間処理に応じてＺバッファのデータを補間してもしなくてもよい。同様に、移動物体用キューブマップ生成部は、補間処理に応じてＺバッファおよび速度バッファを補間してもしなくてもよい。なお、背景用キューブマップ生成部が、必要に応じて、視点位置の変化に応じた補間処理を行ってもよい。
【００１９】
合成部は、地形用キューブマップおよび移動物体用キューブマップのＺバッファを利用して、背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップを合成して、キューブマップの各面の映像を生成する。
【００２０】
さらに、合成部が、地形用キューブマップの背景用キューブマップとの境界部分、および移動物体用キューブマップの背景用キューブマップおよび地形用キューブマップとの境界部分についてフェード処理を行うようにしてもよい。
【００２１】
さらに、キューブマップ生成部が、キューブマップの各面について、合成部により生成されたキューブマップの映像に、第１周期前の映像を混ぜ合わせるモーションブラー処理を行うようにしてもよい。
【００２２】
本発明の第２の態様のキューブマップ生成方法は、視点移動に応じて第１周期で模擬視界映像を生成する時に、模擬視界映像内の鏡面における反射映像を生成するのに使用されるキューブマップを生成および更新する方法である。この方法によれば、キューブマップを形成する複数面の面映像を、生成する面をシフトしながら、第１周期のＮ倍の第２周期で生成し、第２周期で生成されるキューブマップの各面について、第１周期に対応する時間における映像で、不足する映像を補間処理により生成する。
【発明の効果】
【００２３】
本発明によれば、高品質の鏡面反射映像が少ない演算処理量で得られるため、比較的低い演算処理速度および使用メモリ量の演算処理装置（コンピュータ）を使用して、高品質の映像を生成する三次元映像生成装置およびキューブマップ生成方法が実現される。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施形態の自動車運転シミュレータの全体構成を示す図である。
【図２】図２は、キューブマップを説明する図であり、（Ａ）がキューブマップの構成を、（Ｂ）がキューブマップの６面の映像例を示す。
【図３】図３は、模擬視界映像発生装置が発生する直視映像内に存在する鏡面に写る鏡面反射映像を、キューブマップを利用して生成する処理を説明する図であり、（Ａ）が鏡面反射のレイトレーシングを示し、（Ｂ）が路面反射の場合の例を示し、（Ｃ）がキューブマップからの簡易的な映像抽出方法を示す。
【図４】図４は、実施形態におけるキューブマップの更新シーケンスを説明する図である。
【図５】図５は、実施形態におけるキューブマップの生成処理を示す図である。
【図６】図６は、実施形態における背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの視点に対する距離関係、およびキューブマップの構成を示す図である。
【図７】図７は、背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの構成を具体的に示す図である。
【図８】図８は、移動物体用キューブマップにおけるバッファの例を示す図であり、（Ａ）がカラーバッファを、（Ｂ）がＺバッファを、（Ｃ）が速度バッファを示す。
【図９】図９は、プログラムにより模擬視界映像発生装置上に実現されるキューブマップ生成装置の機能ブロック図である。
【図１０】図１０は、実施形態におけるキューブマップ生成装置の処理動作を示すフローチャートである。
【図１１】図１１は、移動物体用キューブマップ生成部が行うフレーム補間処理を説明する図である。
【図１２】図１２は、奥行き変化によるフレーム補間を説明する図である。
【図１３】図１３は、フェード処理を説明する図である。
【図１４】図１４は、モーションブラー処理を説明する図である。
【発明を実施するための形態】
【００２５】
以下、自動車運転シミュレータの三次元映像生成装置を例として実施形態を説明するが、本発明は、これに限定されず、鉄道シミュレータ、フライトシミュレータなどの運転シミュレータ、ゲームなどの三次元映像生成装置に適用可能である。
【００２６】
図１は、実施形態の自動車運転シミュレータの全体構成を示す図である。
自動車運転シミュレータは、訓練者Ｈの前に配置されたスクリーン（ここでは３面）１Ａ−１Ｃと、訓練者Ｈが観察するように配置された計器類２と、訓練者Ｈが操作する入力装置３と、全体の制御を行う主制御装置４と、主制御装置４からの指令を中継するハブ５と、スクリーン１Ａ−１Ｃに表示する模擬視界映像を生成する模擬視界映像発生装置（ここでは３台）６Ａ−６Ｃと、を有する。模擬視界映像発生装置６Ａ−６Ｃは、相互に通信可能に形成されることが望ましい。主制御装置４および模擬視界映像発生装置６Ａ−６Ｃは、コンピュータにより実現される。
【００２７】
模擬視界映像を生成するための三次元空間データは、主制御装置４に記憶され、ハブ５を介して模擬視界映像発生装置６Ａ−６Ｃに供給されても、模擬視界映像発生装置６Ａ−６Ｃからアクセス可能な図示していない記憶装置に記憶されていてもよい。
【００２８】
後述する鏡面反射映像を生成するためのキューブマップは、模擬視界映像発生装置６Ａ−６Ｃが三次元空間データからそれぞれ生成しても、模擬視界映像発生装置６Ａ−６Ｃが分担して生成し、相互に利用してもよい。この場合、キューブマップ生成装置は、模擬視界映像発生装置６Ａ−６Ｃのプログラムの一部により実現されることになる。また、キューブマップは、図示していないキューブマップ生成装置で三次元空間データから生成し、模擬視界映像発生装置６Ａ−６Ｃがキューブマップ生成装置にアクセスして獲得するようにしてもよい。この場合、キューブマップ生成装置は、コンピュータにより実現されことになる。
【００２９】
いずれの場合も、キューブマップ生成は、模擬視界映像発生装置のハードウェアおよびソフトウェアに、キューブマップ生成用プログラムを加えることにより実現される。広く知られているので、説明は省略する。
【００３０】
模擬視界映像発生装置６Ａ−６Ｃのハードウェアおよびソフトウェア構成、および処理については、例えば特許文献１−３などに記載されるように広く知られているので、説明は省略し、以下、鏡面反射映像の生成およびそのために利用するキューブマップの生成について説明する。
【００３１】
図２は、キューブマップを説明する図であり、（Ａ）がキューブマップの構成を、（Ｂ）がキューブマップの６面の映像例を示す。
【００３２】
遠景マップは、無限遠の空間映像のみを対象とする場合には半球状の映像面を有する場合もあるが、自動車運転シミュレータの実施形態であり、建物や移動物体などの映像も対象とするため、図２の（Ａ）の立方体のキューブマップ８を対象とする。
【００３３】
図２の（Ａ）に示すように、キューブマップ８は、自動車運転シミュレータの模擬視界の視点７を中心とする立方体で、視点から前方、後方、左方向、右方向、上方向および下方向の６方向の三次元空間を、立方体の６面に投影した面映像である。ここでは、前方面映像をＣＦ、後方面映像をＣＢ、左方向面映像をＣＬ、右方向面映像をＣＲ、上方向面映像をＣＵ、下方向面映像をＣＤで表す。６つの面映像は、同じサイズの正方形である。
【００３４】
図２の（Ｂ）に示すように、キューブマップ８の各面映像は、空などの遠景だけでなく、近くの建物や地形などの近景、および近くを通過する自動車、自転車、人間などの移動物体も含む。
【００３５】
図３は、模擬視界映像発生装置が発生する直視映像内に存在する鏡面に写る鏡面反射映像を、キューブマップを利用して生成する処理を説明する図であり、（Ａ）が鏡面反射のレイトレーシングを示し、（Ｂ）が路面反射の場合の例を示し、（Ｃ）がキューブマップからの簡易的な映像抽出方法を示す。
【００３６】
図３の（Ａ）に示すように、視点７から直視映像内の鏡面に向かう視線７Ａを追跡すると、鏡面で反射され視線７Ｂとなる。視線７Ｂがキューブマップ８に当たる部分の映像が、直視映像内の鏡面に表示する鏡面反射映像である。
【００３７】
例えば、路面反射の場合には、図３の（Ｂ）に示すように、視線７Ａが路面の反射部分に対応するポリゴン９で反射されて視線７Ｂとなり、キューブマップ８の前方面映像ＣＦに当たる。視線７Ｂが当たった前方面映像ＣＦのポリゴン９に対応する部分の映像を、所定の反射係数を乗じて直視映像の路面の反射部分に配置する。実際には、処理をさらに簡易化するため、図３の（Ｃ）に示すように、視点７から反射視線７Ｂの方向にトレースし、反射視線７Ｂが当たったキューブマップの部分の映像を抽出する。
【００３８】
前述のように、精密な鏡面反射映像を生成するには通常のレイトレーシングが使用されるが、この処理は負荷が大きい。そこで、キューブマップが使用されるが、自動車運転シミュレータのように、遠景のみでなく地形（建物）や移動物体の鏡面反射映像も表示することが求められる場合、キューブマップの生成自体も大きな負荷となり、比較的安価なコンピュータで実現するのが難しい。そこで、視点位置に応じた複数の空間毎にキューブマップを作成することが行われるが、そのようなキューブマップデータを記憶するのが難しく、鏡面反射映像の品質も十分でないという問題があった。
【００３９】
また、キューブマップの更新周期を、直視映像の生成周期に比べて長くすることも行われるが、変化の粗い不自然な鏡面反射映像となるという問題があった。実施形態では、演算処理量の増加を比較的少なくして、鏡面反射映像の品質を向上する。
【００４０】
図４は、実施形態におけるキューブマップの更新シーケンスを説明する図である。
図４において、ＤＦは直視画像を示し、ｔ０−ｔ７は、模擬視界映像発生装置６Ａ−６Ｃが直視映像ＤＦを生成し、スクリーン１Ａ−１Ｃに表示するタイミングを示す。例えば、模擬視界映像発生装置６Ａ−６Ｃは、１秒間に６０枚の直視映像ＤＦを生成する。言い換えれば、直視映像ＤＦは、６０Ｈｚで生成される。
【００４１】
ＣＬ−ＣＵは、前述のキューブマップ８の面映像であり、左方向面映像、後方面映像、下方向面映像、右方向面映像、前方面映像および上方向面映像を表す。６つの面映像は、生成する面をシフトしながら、直視映像ＤＦの生成周期の６倍のキューブマップ周期で生成される。具体的には、ｔ０のタイミングでＣＬが生成され、ｔ１のタイミングでＣＢが生成され、ｔ２のタイミングでＣＤが生成され、ｔ３のタイミングでＣＲが生成され、ｔ４のタイミングでＣＦが生成され、ｔ５タイミングでＣＵが生成される。したがって、各面映像は１０Ｈｚで生成される。これでは、キューブマップ８の面映像の生成周期が長く、不自然の鏡面反射映像となるので、実施形態では、直視映像に対応する時間で不足している映像を、補間処理により生成する。例えば、ＣＬ映像（画像）は、ｔ０およびｔ６で生成されるので、ｔ１−ｔ５のＣＬ画像は、ｔ０における画像から補間処理により生成される。
【００４２】
図５は、実施形態におけるキューブマップの生成処理を示す図である。
実施形態では、前段階として、背景用キューブマップ８１と、地形用キューブマップ８２と、移動物体用キューブマップ８３と、からなる類別キューブマップを生成し、それらをキューブマップ合成処理することにより、キューブマップ８を生成する。
【００４３】
例えば、図４のｔ４のタイミングでは、背景用キューブマップ８１、地形用キューブマップ８２および移動物体用キューブマップ８３を含むＣＦが生成される。ｔ４のタイミングでのキューブマップ８の他の面は、面毎に、背景用キューブマップ８１、地形用キューブマップ８２および移動物体用キューブマップ８３をそれぞれ補間処理した類別補間キューブマップを生成し、それらを合成することにより生成される。なお、背景用キューブマップ８１については、補間処理を行っても行わなくてもよく、ここでは背景用キューブマップ８１の補間処理は行わないものとする。具体的には、ｔ４のタイミングでのＣＬは、ｔ０のタイミングで生成された地形用キューブマップ８２を、ｔ０からｔ４までの視点位置変化を考慮して補間処理し、さらに移動物体用キューブマップ８３における移動物体の視点変化および移動に伴う変化を考慮して補間処理し、背景用キューブマップ８１、補間処理した地形用キューブマップ８２および移動物体用キューブマップ８３を合成処理することにより得られる。
【００４４】
図６は、実施形態における背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの視点に対する距離関係、およびキューブマップの構成を示す図である。
【００４５】
自動車運転シミュレータでは、道路走行を模擬しており、移動物体用キューブマップ８３は視点の近辺に存在するそれ自体が移動する移動物体を対象とし、さらに地形用キューブマップ８２は建物、信号機、街路樹等、視点からある程度の距離範囲のものを対象とする。図６の（Ａ）に示すように、移動物体用キューブマップ８３が対象とする視点からの距離範囲は、地形用キューブマップ８２が対象とする視点からの距離範囲の内側である。例えば、地形用キューブマップ８２が対象とする視点からの距離範囲の外側に位置する移動物体は、無視しても問題はない。ただし、地形用キューブマップ８２の対象物が、移動物体より短い距離になる場合はあり得る。例えば、車両が、街路樹のある中央分離帯の反対側斜線を移動する場合などである。
【００４６】
背景用キューブマップ８１は、地形用キューブマップ８２が対象とする視点からの距離範囲の外側が対象である。
【００４７】
図６の（Ｂ）に示すように、背景用キューブマップ８１は、カラーバッファを有する。地形用キューブマップ８２は、カラーバッファおよび奥行を示すＺバッファを有する。移動物体用キューブマップ８３は、カラーバッファ、Ｚバッファおよび速度バッファを有する。言い換えれば、背景用キューブマップ８１はＺバッファと速度バッファのいずれも有さず、地形用キューブマップ８２は速度バッファを有さない。
【００４８】
図７は、背景用キューブマップ、地形用キューブマップおよび移動物体用キューブマップの構成を具体的に示す図である。
上記のように、背景用キューブマップ８１はカラーバッファを有し、地形用キューブマップ８２はカラーバッファおよびＺバッファを有し、移動物体用キューブマップ８３はカラーバッファ、Ｚバッファおよび速度バッファを有する。バッファは、ビットマップで、同じマトリクス構成である。カラーバッファは、ＲＧＢの３種のマップを含み、マトリクスの各セルが、それぞれが複数ビットの強度データを含む。強度データのビット数が多いと精密な映像が生成可能であるが、その分演算処理の負荷が増加するので、適宜設定する。地形用キューブマップ８２および移動物体用キューブマップ８３のカラーバッファでは、対象物が存在しない部分にはゼロが付される。
【００４９】
Ｚバッファは、地形の対象物および移動物体の奥行を示すデータであり、マトリクスの各セルが、それぞれが数ビットの奥行データを含む。Ｚバッファのビット数も適宜設定する。マップ上に複数の対象物が存在する場合には、それぞれのセルのＺバッファの値が異なることになる。
【００５０】
速度バッファは、移動物体の移動速度を示すデータであり、三次元空間のベクトルで表される。速度バッファのビット数も適宜設定する。マップ上に複数の移動物体が存在する場合には、それぞれのセルの速度バッファの値が異なることになる。
【００５１】
図８は、移動物体用キューブマップにおけるバッファの例を示す図であり、（Ａ）がカラーバッファを、（Ｂ）がＺバッファを、（Ｃ）が速度バッファを示す。
【００５２】
図８の（Ａ）に示すように、カラーバッファは、移動物体の投影画像を表すデータを有する。図８の（Ａ）では、移動する車両のカラー画像を表すデータを有する。上記のように、移動物体の存在しない部分のセルの値はゼロである。なお、停車中の車両は、移動速度がゼロであり、移動物体用キューブマップで表す対象物に含めても、地形用キューブマップで表す対象物に含めてもよい。さらに、上記のように、マップ上に複数の移動物体が存在する場合には、複数の移動物体を含む平面画像が生成されることになる。
【００５３】
図８の（Ｂ）に示すように、Ｚバッファは、カラーバッファ内の移動物体の部分の奥行を表すデータを有する。カラーバッファと同様に、移動物体の存在しない部分のセルの値はゼロであり、マップ上に複数の異なる移動速度の移動物体が存在する場合には、カラーバッファ上のそれぞれのセルに異なる値が生成されることになる。
【００５４】
図８の（Ｃ）に示すように、カラーバッファ内の移動物体の部分の移動速度を示すデータを有する。カラーバッファおよびＺバッファと同様に、移動物体の存在しない部分のセルの値はゼロであり、マップ上に複数の移動物体が存在する場合には、それぞれのセルの速度バッファの値が異なることになる。
【００５５】
図９は、プログラムにより模擬視界映像発生装置６Ａ−６Ｃ上に実現されるキューブマップ生成装置の機能ブロック図である。
キューブマップ生成装置は、背景用キューブマップ生成部１１０と、地形用キューブマップ生成部１２０と、移動物体用キューブマップ生成部１３０と、合成処理部１４０と、モーションブラー処理部１５０と、を有する。
【００５６】
背景用キューブマップ生成部１１０は、視点から見える遠景の映像をキューブマップの各面に投影した背景用キューブマップ映像を生成する。背景用キューブマップ映像は、三次元空間データに基づいて生成されるが、これに限定されず撮影した実映像を使用して生成しても、それらを合わせて生成してもよい、また、背景用キューブマップ映像は、視点の移動に応じて生成される。背景用キューブマップ映像の視点移動に応じた補間処理は、行っても行わなくてもよい。
【００５７】
地形用キューブマップ生成部１２０は、描画部１２１と、視点変化補間処理部１２２と、を有する。描画部１２１は、三次元空間データに基づいて、視点から見える近景の地形の映像をキューブマップの各面に投影した地形用キューブマップ映像を生成する。図７に示すように、地形用キューブマップ映像は、カラーバッファおよびＺバッファからなる。
【００５８】
視点変化補間処理部１２２は、描画部１２１が１０Ｈｚで生成した地形用キューブマップ映像を補間処理して、５つの補間地形用キューブマップ映像を生成する。これにより、地形用キューブマップ映像および５つの補間地形用キューブマップ映像を含めて、地形用キューブマップ映像が６０Ｈｚで生成されることになる。
【００５９】
移動物体用キューブマップ生成部１３０は、描画部１３１と、フレーム補間＋視点変化補間処理部１３２と、を有する。描画部１３１は、三次元空間データに基づいて、視点から見える近くの移動物体の映像をキューブマップの各面に投影した移動物体用キューブマップ映像を生成する。図７に示すように、移動物体用キューブマップ映像は、カラーバッファ、Ｚバッファおよび速度バッファからなる。
【００６０】
フレーム補間＋視点変化補間処理部１３２は、描画部１３１が１０Ｈｚで生成した移動物体用キューブマップ映像を補間処理して、５つの補間移動物体用キューブマップ映像を生成する。これにより、移動物体用キューブマップ映像および５つの補間移動物体用キューブマップ映像を含めて、移動物体用キューブマップ映像が６０Ｈｚで生成されることになる。
【００６１】
合成処理部１４０は、背景用キューブマップ生成部１１０が生成した背景用キューブマップ映像と、地形用キューブマップ生成部１２０が生成した地形用キューブマップ映像と、移動物体用キューブマップ生成部１３０が生成した移動物体用キューブマップ映像と、をＺバッファの値による距離比較に基づいて重ね合わせてキューブマップ映像を描画する。重ねあわせは、地形用キューブマップ映像と移動物体用キューブマップ映像を、Ｚバッファの値の小さい方を選択し、地形用キューブマップ映像と移動物体用キューブマップ映像の両方でカラーバッファ値がゼロの部分に背景用キューブマップ映像を配置することで行う。合成処理部１４０は、この合成処理の際に、移動物体用キューブマップ映像の地形用キューブマップ映像および背景用キューブマップ映像との境界（エッジ）部、および地形用キューブマップ映像の背景用キューブマップ映像との境界（エッジ）部について、フェード処理を行う。
【００６２】
合成処理部１４０は、６０Ｈｚで、キューブマップの６面について上記の合成処理を行う。したがって、１面については、新たに生成された背景用キューブマップ映像と地形用キューブマップ映像と移動物体用キューブマップ映像が合成されるが、他の５面については、補間（補間した場合）背景用キューブマップ映像と補間地形用キューブマップ映像と補間移動物体用キューブマップ映像が合成される。
【００６３】
モーションブラー処理部１５０は、上記のように合成されて６０Ｈｚで生成されたキューブマップの６面の映像に、直前（１／６０秒前）に生成されたキューブマップの６面の映像を所定の比率で減衰した映像を加算するモーションブラー処理を行う。これにより、鏡面反射画像の不自然な変化の影響を低減できる。
【００６４】
図１０は、実施形態におけるキューブマップ生成装置の処理動作を示すフローチャートである。
【００６５】
ステップＳ１１で、変数ｎを０に設定する。以下、ステップＳ２０までキューブマップのｎ番目の面の描画を行う。
ステップＳ１２で、背景用キューブマップ生成部１１０が背景用キューブマップ映像を描画する。
ステップＳ１３で、背景用キューブマップ映像を更新する。
【００６６】
ステップＳ１４で、地形用キューブマップ生成部１２０が地形用キューブマップ映像を描画する。
ステップＳ１５で、地形用キューブマップ映像を更新する。
【００６７】
ステップＳ１６で、移動物体用キューブマップ生成部１３０が移動物体用キューブマップ映像を描画する。
ステップＳ１７で、移動物体用キューブマップ映像を更新する。
【００６８】
ステップＳ１８で、合成処理部１４０が、距離比較に基づく重ね合わせによる描画およびフェード処理を行う。
ステップＳ１９で、モーションブラー処理部１５０がモーションブラー処理を行う。
【００６９】
ステップＳ２１で、変数ｋを１に設定する。以下、ステップＳ２０までキューブマップのｎ＋ｋ（ｎ＋ｋ＞６の時にはｎ＋ｋ−６）番目の面の描画を行う。
【００７０】
ステップＳ２２で、地形用キューブマップ生成部１２０が地形用キューブマップ映像に対して視点変化に伴う補間処理を行う。
ステップＳ２３で、移動物体用キューブマップ生成部１３０が移動物体用キューブマップ映像に対してフレーム補間処理および視点変化に伴う補間処理を行う。
【００７１】
ステップＳ２４で、合成処理部１４０が、背景用キューブマップ映像、補間処理された地形用キューブマップ映像および移動物体用キューブマップ映像について、距離比較に基づく重ね合わせによる描画およびフェード処理を行う。
ステップＳ２５で、モーションブラー処理部１５０がモーションブラー処理を行う。
【００７２】
ステップＳ２６で、ｎ＋ｋ（ｎ＋ｋ＞６の時にはｎ＋ｋ−６）番目の面映像を更新する。
ステップＳ２７で、変数ｋに１を加える。
ステップＳ２８で、変数ｋが５より大きいか（すなわち６であるか）を判定し、５以下であればステップＳ２２に戻り、５より大きければステップＳ２９に進む。
【００７３】
ステップＳ２９で、変数ｎに１を加える。
ステップＳ３０で、変数ｎが６以上であるかを判定し、６以上であればステップＳ３１に進み、６より小さければステップＳ１２に戻る。
ステップＳ３１で、変数ｎから６を減じて、ステップＳ１２に戻る。
【００７４】
図１０の処理では、補間処理は、すべて１０Ｈｚで描画された映像に基づいて行われ、直前に補間処理により生成された補間映像は使用していないが、補間処理により直前に生成された補間地形用キューブマップ映像および補間移動物体用キューブマップ映像を使用して行うことも可能である。
また、図１０の処理では、背景用キューブマップ映像については視点変化に伴う補間処理を行わないが、背景用キューブマップ映像についての補間処理を行うようにしてもよい。
【００７５】
図１１は、移動物体用キューブマップ生成部１３０が行うフレーム補間処理を説明する図である。
図１１の説明では、フレーム補間処理を行う面について、移動物体用キューブマップ生成部１３０がＮ−４フレーム目に移動物体用キューブマップ映像を生成したものとし、このフレーム補間処理によりＮフレーム目の補間移動物体用キューブマップ映像を生成する。
【００７６】
図１１の（Ａ）に示すように、Ｎ−４フレーム目の移動物体用キューブマップ映像のＺバッファ８３Ｚ（Ｎ−４）および速度バッファ８３Ｓ（Ｎ−４）の値を取得する。対象物（移動物体）（図においてＰで示すピクセル）の移動物体速度、奥行き値（Ｚバッファ値）および描画更新数（Ｎ−（Ｎ−４）＝４）（元になる映像から何サイクル離れているかを示す数値）より、図１１の（Ｂ）に示すように、キューブマップの移動物体用キューブマップ映像８３の対象物（ピクセル参照位置）の補正ベクトルＱを求める。
【００７７】
図１１の（Ｃ）に示すように、Ｎフレーム目の移動物体用キューブマップ映像のカラーバッファ８３Ｃ（Ｎ）の描画は、（Ｎ−４）フレーム目の移動物体用キューブマップ映像のカラーバッファ８３Ｃ（Ｎ−４）を参照し、対象物（移動物体）の位置を位置補正ベクトルＱ分シフトする。図では、対象物（移動物体）内のピクセル参照位置Ｒに位置補正ベクトルＱを加えて位置Ｓに描画する様子を示している。
【００７８】
移動物体用キューブマップ映像の速度バッファの値である。移動物体速度のｘ、ｙ成分における位置補正ベクトルは、次の式による計算から求める。この式の時間は、上記の描画更新数より求める。
（位置補正ベクトル）＝（移動物体速度（ｘ、ｙ））×（時間）／（奥行き値）／２
【００７９】
図１２は、上記の奥行き変化によるフレーム補間を説明する図である。
図１２に示すように、Ｎ−４フレームとＮフレームで移動物体の奥行きが図示のように変化した場合、移動物体速度のＺ成分（奥行き成分）の位置補正ベクトルは、次の式で求められる。
（位置補正ベクトル）＝（（ピクセル描画位置）−（ピクセル中心位置））×（移動物体速度（Ｚ成分））／（奥行き値）
ここで、ピクセル描画位置およびピクセル中心位置は、２次元ベクトルである。
【００８０】
視点変化による補間処理は、図１１で説明した移動物体速度による補間処理とほぼ同じであるが、移動物体速度が視点速度となることが異なる。したがって、速度バッファは用いない。これは、地形用キューブマップ生成部１２０による視点変化に伴う補間処理も同様である。
なお、移動物体用キューブマップ生成部１３０におけるフレーム補間処理では、移動速度による補間処理と視点変化に伴う補間処理を合わせて行ってもよい。
【００８１】
図１３は、フェード処理を説明する図である。
遠くの地形や移動物体がキューブマップの描画範囲内に入った際、映り込み映像が突然表示される。反対に、キューブマップの描画範囲内から出た場合に映り込み映像が突然消える。瞬間的な表示と非表示の変化は目立つため、徐々に表示と非表示が変化するように、フェード処理を行う。
【００８２】
図１３に示すように、地形用キューブマップ映像８２の背景用キューブマップ映像８１との境界部分８５、および移動物体用キューブマップ映像８３の地形用キューブマップ映像８２との境界部分８６で、それぞれ距離に応じて徐々に映り込みを弱めていくフェード処理を行う。なお、図１３で、地形用キューブマップ映像８２および移動物体用キューブマップ映像８３は、それられ描画される対象物の範囲である。したがって、複数の移動物体がある場合には、それぞれについての境界部分でフェード処理を行う。また、移動物体用キューブマップ映像の対象物が、地形用キューブマップ映像と接するだけでなく、背景用キューブマップ映像と接する場合もあり得る。その場合は、移動物体用キューブマップ映像の対象物の背景用キューブマップ映像との境界部分についてフェード処理を行う。
【００８３】
図１４は、モーションブラー処理を説明する図である。
図１４に示すように、Ｎフレーム目のキューブマップの各面の映像８（Ｎ）について、直前のＮ−１フレーム目のキューブマップの各面の映像８（Ｎ−１）を、所定の比率で混ぜ合わせてＮフレーム目の処理済みキューブマップの各面の映像８’を得る。
直視映像は６０Ｈｚで生成されるのに対して、キューブマップの各面は１０Ｈｚで生成され、またフレーム補間処理および視点変化に伴う補間処理は、完全にフレームを補間できるわけではないため、モーションブラー処理にて、これらの不足分の影響を低減する。
【００８４】
以上説明したように、鏡面反射映像生成のためのキューブマップを、すべての三次元データを保持して行うのは、演算量および使用メモリ容量が増大する。これに対して、実施形態では、画像単位で補間処理を行うので、演算量および使用メモリ容量を抑制でき、比較的低い能力のコンピュータを使用してリアルタイムでの高品質のキューブマップの生成および鏡面反射映像生成を可能にする。
【産業上の利用可能性】
【００８５】
本発明は、鏡面反射映像生成を行う三次元映像生成装置および方法、およびそれを利用する模擬視界装置に適用可能である。
【符号の説明】
【００８６】
６Ａ−６Ｃ    模擬視界発生装置
１１０    背景用キューブマップ生成部
１２０    地形用キューブマップ生成部
１２１    描画部
１２２    視点変化補間処理部
１３０    移動物体用キューブマップ生成部
１３１    描画部
１３２    フレーム間補間＋視点変化補間処理部
１４０    合成処理部
１５０    モーションブラー処理部
【図１】
0006482283.tif 000002
【図２】
0006482283.tif 000003
【図３】
0006482283.tif 000004
【図４】
0006482283.tif 000005
【図５】
0006482283.tif 000006
【図６】
0006482283.tif 000007
【図７】
0006482283.tif 000008
【図８】
0006482283.tif 000009
【図９】
0006482283.tif 000010
【図１０】
0006482283.tif 000011
【図１１】
0006482283.tif 000012
【図１２】
0006482283.tif 000013
【図１３】
0006482283.tif 000014
【図１４】
0006482283.tif 000015