説明

画像生成装置、画像生成方法、および、プログラム

【課題】簡易な構成で、画像中に付加される痕跡を違和感なく表示することのできる画像生成装置等を提供する。
【解決手段】弾痕情報記憶部250は、弾痕の凹形状を規定するノーマルマップを含む弾痕情報を記憶する。原画像描画部261は、ライティングを施したオブジェクトを含む原画像を描画する。合成部262は、描画されたオブジェクトの着弾位置に、法線マップを適用した弾痕を合成する。補正値算定部263は、オブジェクトの法線と光源方向との関係に基づいて、補正値を算定する。輝度値算定部264は、弾痕の法線マップによる法線方向と光源方向との関係、並びに、算定された補正値との関係に基づいて、輝度値を算定する。そして、シェーディング部265は、算定された輝度値を使用して、合成位置におけるオブジェクトの明暗を変化させるシェーディングを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、簡易な構成で、画像中に付加される痕跡を違和感なく表示することのできる画像生成装置、画像生成方法、および、プログラムに関する。
【背景技術】
【0002】
従来より、ゲーム装置(ビデオゲーム装置等)にて、アクションゲームやスポーツゲームといった体感型のゲームが人気を博している。このようなアクションゲームやスポーツゲーム等では、臨場感やリアリティを高めるため、ゲームの進行に伴う背景等の変化を瞬時(リアルタイム)に表現している。
例えば、敵味方に分かれたキャラクタが銃を撃ち合うようなアクションゲームでは、壁等に着弾した弾痕を瞬時に表示している。また、スノーボードに乗ったキャラクタを操作するようなスポーツゲームでは、スノーボードが移動した雪上にシュプール(軌跡)をリアルタイムに表示している。
【0003】
一例として、シュプールを表示するスポーツゲームでは、複数のシュプール用のテクスチャ(深いシュプールや、浅いシュプール等のテクスチャ)を記憶しておき、ゲレンゲの雪質に応じて適切なテクスチャを選定して貼り付けることにより、軌跡をリアルにかつ容易に描画できるビデオゲーム装置(3次元画像処理装置)の技術も開示されている(例えば、特許文献1参照)。
【特許文献1】特開2002−140723号公報 (第6−10頁、第8図)
【発明の開示】
【発明が解決しようとする課題】
【0004】
上述したシュプールを表示するスポーツゲームと同様に、弾痕を表示するアクションゲームでも、複数の弾痕用のテクスチャを用意しておき、着弾した壁の種類等に応じて、適切なテクスチャを選定して貼り付けていた。
しかしながら、ゲームの背景等がより多彩(リアル)になるにつれて、用意すべき弾痕用のテクスチャの数も増加し、描画に必要なメモリの容量を大量に消費するようになってきた。つまり、壁の種類(材質等)だけでなく、壁の色や模様等に応じて細分化したテクスチャが数多く必要となり、メモリを圧迫して残り容量が不足してしまうといった事態が生じるようになっていた。
【0005】
そのため、実際には、弾痕用のテクスチャの数が、ある程度制限されることになり、違和感のある弾痕が表示されてしまうことが多かった。例えば、コンクリートの壁に対応して、弾痕用のテクスチャが、数種類程度しか用意されていなかった場合、多彩なコンクリートの壁(色や模様が異なる壁)が描画されるゲームでは、かなり高い確率で、着弾したコンクリートの壁となじまない(不自然な)弾痕が表示されてしまっていた。
【0006】
そのため、メモリの容量等をさほど消費せずに、弾痕等の痕跡を違和感なく表示できるようにする新たな技術が求められていた。
【0007】
本発明は、このような課題を解決するためになされたもので、簡易な構成で、画像中に付加される痕跡を違和感なく表示することのできる画像生成装置、画像生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の観点に係る画像生成装置は、三次元の仮想空間に配置される所定のオブジェクト(例えば、壁等)に凹形状又は凸形状の痕跡(例えば、弾痕等)を合成した画像を生成する画像生成装置であって、情報記憶部、原画像描画部、合成部、輝度値算定部、及び、シェーディング部を含んで構成される。
【0009】
まず、情報記憶部は、痕跡についての法線マップを含む痕跡情報を記憶する。また、原画像描画部は、仮想空間に配置されたオブジェクト(例えば、光源計算済みの壁等)を含む原画像を描画する。そして、合成部は、描画されたオブジェクトに、法線マップを適用した痕跡を合成する。例えば、光源計算済みの壁をテクスチャとして利用し、このテクスチャに法線マップを適用して弾痕を合成する。
一方、輝度値算定部は、痕跡が合成された合成位置におけるオブジェクトの法線と光源方向との関係、並びに、合成した痕跡の法線マップによる法線と光源方向との関係、に基づいて、輝度値を算定する。そして、シェーディング部は、算定された輝度値に基づき、合成位置における当該オブジェクトの画像をシェーディングする。例えば、弾痕を合成する壁の画像(テクスチャ)を、算定された輝度値に基づきシェーディングする。
【0010】
なお、原画像のオブジェクト(光源計算済みの壁等)に、法線マップを適用して痕跡(弾痕等)を合成するため、そのままでは、おかしなライティングになってしまい、違和感を感じるものとなる(例えば、凹凸と影が一致しない等)。
そのため、算定した輝度値に基づき、合成位置におけるオブジェクトの画像をシェーディングすることにより、その痕跡のライティングを適切に補正し、違和感をなくすことができる。また、原画像のオブジェクト(例えば、光源計算済みの壁等)を利用して、その合成位置の画像を補正することにより、光源計算をやり直すような負荷を省くことができる。
この結果、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【0011】
本発明の第2の観点に係る画像生成装置は、三次元の仮想空間に配置される所定のオブジェクト(例えば、壁等)に弾痕を合成した画像を生成する画像生成装置であって、情報記憶部、原画像描画部、合成部、補正値算定部、輝度値算定部、及び、シェーディング部を含んで構成される。
【0012】
まず、情報記憶部は、弾痕の凹形状を規定する法線マップを含む弾痕情報を記憶する。また、原画像描画部は、ライティングを施した(配置される光源を用いて光源計算を行った)オブジェクトを含む原画像を描画する。そして、合成部は、描画されたオブジェクトの所定位置に、法線マップを適用した弾痕を合成する。例えば、光源計算済みの壁をテクスチャとして利用し、このテクスチャに法線マップを適用して弾痕を合成する。
一方、補正値算定部は、弾痕が合成された合成位置におけるオブジェクトの法線と光源方向との関係に基づいて、補正値を算定する。また、輝度値算定部は、オブジェクトに合成した弾痕の法線マップによる法線と光源方向との関係、並びに、算定された補正値に基づいて、輝度値を算定する。そして、シェーディング部は、算定された輝度値を使用して、合成位置におけるオブジェクトの明暗を変化させるシェーディングを行う。例えば、弾痕を合成する壁の画像(テクスチャ)について、算定された輝度値を使用して明暗を変化させる。
【0013】
なお、原画像のオブジェクト(光源計算済みの壁等)に、法線マップを適用して弾痕を合成するため、そのままでは、おかしなライティングになってしまい、違和感を感じるものとなる(例えば、凹んでいるはずなのに影がない等)。
そのため、算定した輝度値に基づき、合成位置におけるオブジェクトの明暗を変化させるシェーディングを行うことにより、その弾痕のライティングを適切に補正し、違和感をなくすことができる。また、原画像のオブジェクト(例えば、光源計算済みの壁等)を利用して、その合成位置の画像の明暗を変化させることにより、光源計算をやり直すような負荷を省くことができる。
この結果、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【0014】
前記補正値算定部は、当該オブジェクトの法線と光源方向との内積を求め、当該内積と所定の既定値との関係に基づいて補正値を算定してもよい。例えば、痕跡(弾痕等)を合成する壁の法線と光源方向との内積を求め、その内積と0.0との大きい方を、1.0から減算することにより、補正値を求める。
【0015】
前記輝度値算定部は、当該弾痕の当該法線マップによる法線と光源方向との内積を求め、当該内積及び所定の既定値のうち、大きい方を前記補正値算定部により算定された補正値と加算することにより輝度値を算定し、
前記シェーディング部は、当該オブジェクトの色の値に、算定された当該輝度値を少なくとも1回乗じることにより、当該オブジェクトの明暗を変化させるシェーディングを行ってもよい。
例えば、輝度値算定部は、合成した弾痕の法線方向と光源方向との内積を求め、その内積とマイナスの補正値との大きい方を、補正値算定部に算定された補正値と加算して輝度値を算定する。そして、シェーディング部は、算定された輝度値と、輝度値と1.0との小さい方と乗算することにより、シェーディングを行う。
【0016】
前記情報記憶部は、当該弾痕のテクスチャ色の情報を更に記憶し、
前記シェーディング部は、当該オブジェクトの色の値に当該輝度値を乗じた後に、当該弾痕のテクスチャ色に少なくとも所定の合成係数を乗じた値を更に乗じることにより、当該弾痕を強調するように当該オブジェクトの明暗を変化させてもよい。
この場合、暗いところ等が強調されて、弾痕がより目立つものとなる。
【0017】
本発明の第3の観点に係る画像生成方法は、記憶部、描画部、及び、演算部を有しており、三次元の仮想空間に配置される所定のオブジェクト(例えば、壁等)に凹形状又は凸形状の痕跡(例えば、弾痕等)を合成した画像を生成する画像生成装置における画像生成方法であって、原画像描画ステップ、合成ステップ、輝度値算定ステップ、及び、シェーディングステップを含んで構成される。
【0018】
まず、原画像描画ステップでは、仮想空間に配置されたオブジェクト(例えば、光源計算済みの壁等)を含む原画像を描画する。また、合成ステップでは、描画されたオブジェクトに、法線マップを適用した痕跡を合成する。例えば、光源計算済みの壁をテクスチャとして利用し、このテクスチャに法線マップを適用して弾痕を合成する。
一方、輝度値算定ステップでは、痕跡が合成された合成位置におけるオブジェクトの法線と光源方向との関係、並びに、合成した痕跡の法線マップによる法線と光源方向との関係、に基づいて、輝度値を算定する。そして、シェーディングステップでは、算定された輝度値に基づき、合成位置における当該オブジェクトの画像をシェーディングする。例えば、弾痕を合成する壁の画像(テクスチャ)を、算定された輝度値に基づきシェーディングする。
【0019】
なお、原画像のオブジェクト(光源計算済みの壁等)に、法線マップを適用して痕跡(弾痕等)を合成するため、そのままでは、おかしなライティングになってしまい、違和感を感じるものとなる(例えば、凹凸と影が一致しない等)。
そのため、算定した輝度値に基づき、合成位置におけるオブジェクトの画像をシェーディングすることにより、その痕跡のライティングを適切に補正し、違和感をなくすことができる。また、原画像のオブジェクト(例えば、光源計算済みの壁等)を利用して、その合成位置の画像を補正することにより、光源計算をやり直すような負荷を省くことができる。
この結果、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【0020】
本発明の第4の観点に係るプログラムは、コンピュータ(電子機器を含む。)を、上記の画像生成装置として機能させるように構成する。
【0021】
このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【0022】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0023】
本発明によれば、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【発明を実施するための最良の形態】
【0024】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0025】
(実施形態1)
図1は、本発明の実施の形態に係る画像生成装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0026】
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD(Digital Versatile Disk)−ROMドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0027】
なお、ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0028】
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0029】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0030】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0031】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。たとえば、コントローラ105は、操作入力に従って、文字列(メッセージ)等の入力を受け付ける。
【0032】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0033】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0034】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0035】
なお、画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0036】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0037】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0038】
NIC 110は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0039】
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。
【0040】
また、本実施形態のゲーム装置100にかえて、一般的なコンピュータ(汎用のパーソナルコンピュータ等)を画像生成装置として利用することもできる。たとえば、一般的なコンピュータは、上記ゲーム装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、ゲーム装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、画像生成装置として機能する。
【0041】
(画像生成装置の概要構成)
図2は、本実施形態に係る画像生成装置の概要構成を示す模式図である。この画像生成装置は、一例として、敵味方に分かれたキャラクタが銃を撃ち合うようなアクションゲームにおいて、着弾した弾痕等を含めたリアリティのある画像を生成する装置である。以下、本図を参照して説明する。
【0042】
図示するように、画像生成装置200は、オブジェクト情報記憶部210と、光源情報記憶部220と、操作受付部230と、位置管理部240と、弾痕情報記憶部250と、画像描画部260とを備える。
【0043】
まず、オブジェクト情報記憶部210は、仮想空間内に配置されるキャラクタ、樹木、及び、建物等のオブジェクトについての情報を記憶する。
例えば、自キャラクタ、味方キャラクタ及び、敵キャラクタ等の各キャラクタを構成するプリミティブ(ポリゴン等)の情報や、プリミティブのサーフェイスに貼り付けるためのテクスチャ等の情報を記憶する。
同様に、壁、窓、ドア等を有する建物等の各オブジェクトを構成するプリミティブの情報や、テクスチャ等の情報を記憶する。
なお、RAM 103等が、このようなオブジェクト情報記憶部210として機能しうる。
【0044】
光源情報記憶部220は、仮想空間内に配置される光源の情報を記憶する。
例えば、光源の種類(点光源、平行光源、スポットライト等)、光源の位置(配置位置、照射範囲、照射方向、強さや減衰等)、及び、光源の色(ディフューズ色、アンビエント色、スペキュラ色等)等の情報を記憶する。
なお、RAM 103等が、このような光源情報記憶部220として機能しうる。
【0045】
操作受付部230は、プレイヤが操る自キャラクタに対する動作指示等の操作入力を受け付ける。例えば、操作受付部230は、所定方向に移動する、壁等に張り付く、しゃがむ、伏せる等の動作に対応した複数のボタン(一例として、コントローラ105に配置された方向キー,Aボタン,Bボタン,Xボタン,Yボタン等)の何れかがプレイヤにより押下されることによって、主人公キャラクタに向けた操作入力を受け付ける。
なお、コントローラ105がこのような操作受付部230として機能しうる。
【0046】
位置管理部240は、自キャラクタや敵キャラクタといった仮想空間内で位置が変化するオブジェクトの位置情報(現在位置や向き等)を管理する。例えば、自キャラクタは、操作受付部230によって受け付けた移動指示等に従って、仮想空間内の位置や向きが変化するため、位置管理部240にてその位置情報が管理される。また、敵キャラクタも所定のロジックに従って適宜移動し、仮想空間内の位置等が変化するため、同様に位置管理部240にて位置情報が管理される。
この他にも、キャラクタ等が銃を発砲し、建物等のオブジェクトに着弾した場合に、そのオブジェクトの着弾位置等も管理される。
なお、RAM 103及びCPU 101が、このような位置管理部240として機能しうる。
【0047】
弾痕情報記憶部250は、建物等に着弾した弾痕の凹形状を規定するためのノーマルマップ(normal map:和訳では、法線マップ)を含む弾痕情報を記憶する。
このノーマルマップは、バンプマッピングを実現するための特殊なテクスチャであり、各テクセルに法線の値が格納され、合成した(マッピングした)ポリゴン等に、擬似的な凹凸を表現するためのものである。なお、弾痕の凹形状は、ローカル座標系の法線にて規定されている。そして、オブジェクトに合成される際に、ワールド座標系に変換され、そのオブジェクトに凹んだ弾痕が表現されることになる。
例えば、弾痕情報記憶部250は、弾痕毎に、テクスチャ(黒やグレーの色のテクスチャ)、アルファチャンネル(アルファ値)、及び、ノーマルマップの情報を記憶している。
具体的には、図3(a)に示すようなテクスチャ、図3(b)に示すようなアルファチャンネル、及び、図3(c)に示すようなノーマルマップを、記憶している。
なお、RAM 103及びCPU 101が、このような弾痕情報記憶部250として機能しうる。
【0048】
画像描画部260は、オブジェクト記憶部210に記憶されたオブジェクトの情報、及び、位置管理部240に管理されるキャラクタの位置情報等に従って、仮想空間内(視界内)のオブジェクトを、視点座標系に変換した表示画像を描画する。
【0049】
具体的に画像描画部260は、原画像描画部261と、合成部262と、補正値算定部263と、輝度値算定部264と、シェーディング部265とを含んで構成される。
【0050】
まず、原画像描画部261は、ライティングを施したオブジェクトを含む原画像を描画する。つまり、仮想空間内に配置されるオブジェクトに光源情報記憶部220の光源情報を適用し、光源計算を行った原画像を描画する。
例えば、建物の壁を含むオブジェクトが視界内に配置される場合、図4(a)に示すような壁が原画像として描画される。なお、図4(a)に示す原画像は、ライティングを施されており、リアリティが感じられる画像となっている。
【0051】
図2に戻って、合成部262は、オブジェクトの着弾位置が管理されている場合に、その着弾位置に弾痕を合成する。
例えば、上述した図4(a)に示すような壁(オブジェクト)に、弾が4発着弾している場合、合成部262は、着弾位置の画像をテクスチャとして利用し、このテクスチャに弾痕のノーマルマップを適用することにより、図4(b)に示すような弾痕D1〜D4を合成する。
なお、図4(b)に示す画像は、壁自体にはリアリティがあるものの、弾痕D1〜D4については、着弾位置の画像をそのままテクスチャとして利用しているため、凹みのライティング等が不自然であり、まわりの壁ともなじんでおらず違和感を感じるものとなっている。
【0052】
図2に戻って、補正値算定部263は、合成した弾痕について、補正を行うための値を算定する。すなわち、着弾したオブジェクトの法線と光源方向との内積を求め、この内積と所定の既定値との関係に基づいて補正値を算定する。
具体的に補正値算定部263は、以下の数式1に基づいて、補正値を算定する。
【0053】
[数1]
rate1 = 1.0 − max(0.0,dot(wall_normal, −light_dir));

rate1: 補正値
max: 最大値を求める関数
dot: 内積を求める関数
wall_normal: オブジェクトの法線方向
light_dir: 光源方向(正規化されているもの)
【0054】
すなわち、補正値算定部263は、オブジェクトの法線方向と光源方向との内積を求め、その内積と「0.0」との大きい方を、「1.0」から減算する。
なお、上述した数式1は、一例であり、実際に描画される画像に合わせて、適宜変更可能である。例えば、数式1における「1.0」や「0.0」等は、この値に限られず、適宜増減可能である。
【0055】
輝度値算定部264は、弾痕の輝度について、上述した補正値等に基づき算定する。すなわち、弾痕のノーマルマップによる法線方向と光源方向との内積を求め、この内積及び所定の既定値のうち、大きい方を補正値算定部263により算定された補正値と加算することにより輝度値を算定する。
具体的に輝度値算定部264は、以下の数式2に基づいて、補正値を算定する。
【0056】
[数2]
rate2 = max(−rate1,dot(pixel_normal,−light_dir)) + rate1;

rate2: 輝度値
max: 最大値を求める関数
rate1: 補正値
dot: 内積を求める関数
pixel_normal: ノーマルマップの法線方向(ワールド座標系に変換されているもの)
light_dir: 光源の方向(正規化されているもの)
【0057】
すなわち、輝度値算定部264は、ノーマルマップの法線方向と光源方向との内積を求め、その内積とマイナスの補正値との大きい方を、補正値と加算する。
なお、上述した数式2は、一例であり、実際に描画される画像に合わせて、適宜変更可能である。
【0058】
シェーディング部265は、算定された輝度値を使用して、着弾位置におけるオブジェクトの明暗(より詳細には、色の明暗)を変化させるシェーディングを行う。
具体的にシェーディング部265は、以下の数式3に基づいて、シェーディングを行う。
【0059】
[数3]
result = screen_color * rate2 * min(rate2,1.0);

result: シェーディング結果
screen_color: オブジェクトの色(現在描画されている画面の色)
rate2: 輝度値
min: 最小値を求める関数
【0060】
すなわち、シェーディング部265は、オブジェクトの色(現在描画されている画面の色)と、輝度値と、輝度値と「1.0」との小さい方とを掛け合わせて(乗算して)、シェーディングを行う。ここで、輝度値と「1.0」との小さい方を掛け合わせるのは、暗いところをより暗くし凹凸をはっきりさせるためである。
なお、上述した数式3は、一例であり、実際に描画される画像に合わせて、適宜変更可能である。例えば、数式3における「1.0」等は、この値に限られず、適宜増減可能である。
【0061】
このような数式3の処理を行うシェーディング部265は、例えば、上述した図4(b)に示すような弾痕D1〜D4にシェーディングすることにより、図5(a)に示すような弾痕D1〜D4の画像に整える。
この、図5(a)に示す画像は、弾痕D1〜D4について、凹みのライティング等が補正され、まわりの壁とも自然になじんでおり、違和感を感じさせないものとなっている。
なお、シェーディング部265は、弾痕をより目立たせるために、更に、テクスチャ合成係数等を掛け合わせる等の処理を加えてもよい。
具体的にシェーディング部265は、以下の数式4に基づくシェーディングも更に行う。
【0062】
[数4]
result2 = result * ((tex_color * テクスチャ合成係数) + (1.0 − テクスチャ合成係数));

result2: 弾痕を目立たせるシェーディング結果
result: 数式3のシェーディング結果
tex_color: 弾痕テクスチャの色
テクスチャ合成係数: 一例として、0.3
【0063】
すなわち、シェーディング部265は、弾痕テクスチャの色とテクスチャ合成係数(一例として、0.3)とを乗算したものと、「1.0」からテクスチャ合成係数を減算したものとを加算した値を、数式3でのシェーディング結果に乗算してシェーディングを行う。
なお、上述した数式4は、一例であり、実際に描画される画像に合わせて、適宜変更可能である。例えば、数式4における「1.0」等は、この値に限られず、適宜増減可能である。
【0064】
このような数式4の処理を更に行うシェーディング部265は、例えば、上述した図5(a)に示すような弾痕D1〜D4から、図5(b)に示すような弾痕D1〜D4の画像に整え、各弾痕を目立たせる。
この、図5(b)に示す画像は、弾痕D1〜D4が、まわりの壁と自然になじんでいるだけでなく、暗いところ等が強調されてかなり目立つものとなっている。
【0065】
このように、画像描画部260は、ライティング等を施して描画した段階の原画像をテクスチャとして利用し、このテクスチャに弾痕のノーマルマップを適用して弾が当たった表現にする。
この際、利用するテクスチャは、すでにライティングが施されたテクスチャ(光源計算を行った後のテクスチャ)であるため、通常のノーマルマップの計算をするとおかしなライティングになってしまい、違和感を感じるものとなる(例えば、凹んでいるはずなのに影がない等)。そこで、画像描画部260は、上述した数式1〜数式4の計算を行うことにより、違和感をなくしたシェーディングを行うことができる。
また、ライティングが施されたテクスチャを利用して、そのテクスチャを補正することにより、光源計算をやり直すような負荷を省くことができる。
そして、画像処理部108が、このような画像描画部260として機能しうる。
【0066】
(画像生成装置の動作)
図6は、上述した構成の画像生成装置200において実行される画像生成処理の流れを示すフローチャートである。以下、本図を参照して画像生成装置200の動作について説明する。この画像生成装置は、ゲーム実行中において、描画サイクル毎(例えば、1/60秒毎)に、繰り返し実行される。
【0067】
まず、画像生成装置200は、仮想空間内における各オブジェクトの現在位置等を取得する(ステップS301)。つまり、オブジェクト情報記憶部210及び位置管理部240にて記憶(管理)される情報に基づいて、キャラクタや建物等のオブジェクト情報を取得する。
【0068】
画像生成装置200は、原画像を描画する(ステップS302)。
すなわち、原画像描画部261は、取得されたオブジェクト情報から、視界内に配置されるオブジェクトを特定し、そのオブジェクトに光源情報記憶部220の光源情報を適用して、ライティングを施した原画像を描画する。
【0069】
画像生成装置200は、着弾位置に弾痕を合成する(ステップS303)。つまり、合成部262は、オブジェクトの着弾位置が管理されている場合に、その着弾位置に弾痕を合成する。
具体的には、着弾位置の画像をテクスチャとして利用し、このテクスチャに弾痕のノーマルマップを適用することにより、上述した図4(b)に示すような弾痕D1〜D4を合成する。なお、図4(b)に示す画像は、壁自体にはリアリティがあるものの、弾痕D1〜D4については、着弾位置の画像をそのままテクスチャとして利用しているため、凹みのライティング等が不自然であり、まわりの壁ともなじんでおらず違和感を感じるものとなっている。
【0070】
画像生成装置200は、補正値を算定する(ステップS304)。
すなわち、補正値算定部263は、着弾したオブジェクトの法線と光源方向との内積を求め、この内積と所定の既定値との関係に基づいて補正値を算定する。具体的には、上述した数式1に基づいて、補正値を算定する。
【0071】
画像生成装置200は、輝度値を算定する(ステップS305)。
すなわち、輝度値算定部264は、弾痕のノーマルマップによる法線方向と光源方向との内積を求め、この内積及び所定の既定値のうち、大きい方を補正値算定部263により算定された補正値と加算することにより輝度値を算定する。具体的には、上述した数式2に基づいて、輝度値を算定する。
【0072】
そして、画像生成装置200は、シェーディングを行う(ステップS306)。
すなわち、シェーディング部265は、オブジェクトの色(現在描画されている画面の色)と、輝度値と、輝度値と「1.0」との小さい方とを掛け合わせて(乗算して)、シェーディングを行う。具体的には、上述した数式3に基づいて、シェーディングを行う。
また、画像生成装置200は、弾痕を目立たせるために、更に、テクスチャ合成係数等を掛け合わせる等の処理を加えてもよい。具体的には、上述した数式2に基づくシェーディングも更に行う。
具体的には、数式3の処理を行うことにより、図5(a)に示すような弾痕D1〜D4の画像に整える。この図5(a)に示す画像は、弾痕D1〜D4について、凹みのライティング等が補正され、まわりの壁とも自然になじんでおり、違和感を感じさせないものとなっている。
また、数式4の処理を行うことにより、図5(b)に示すような弾痕D1〜D4の画像に整える。この図5(b)に示す画像は、弾痕D1〜D4が、まわりの壁と自然になじんでいるだけでなく、暗いところ等が強調されてかなり目立つものとなっている。
【0073】
このような画像生成処理により、ライティング等を施して描画した段階の原画像をテクスチャとして利用し、このテクスチャに弾痕のノーマルマップを適用して弾が当たった表現にする。
この際、利用するテクスチャは、すでにライティングが施されたテクスチャであるため、通常のノーマルマップの計算をするとおかしなライティングになってしまい、違和感を感じるものとなる(例えば、凹んでいるはずなのに影がない等)。そこで、上述した数式1〜数式4の計算を行うことにより、違和感をなくしたシェーディングを行うことができる。
また、ライティングが施されたテクスチャを利用して、そのテクスチャを補正することにより、光源計算をやり直すような負荷を省くことができる。
【0074】
この結果、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【0075】
(他の実施形態)
上記の実施形態では、壁等に着弾した弾痕を表現する場合について説明したが、弾痕のような凹形状の場合以外にも、本願発明は適宜適用することができる。
例えば、凸形状の痕跡を合成する場合にも適用可能である。
【0076】
一例として、図7(a)に示すような金属製のドアDrを挟んで敵キャラクタと対峙している状況で、敵キャラクタから発せられた銃弾が、ドアDrの裏面(敵キャラクタ側の面)に着弾することが生じうる。この場合、ドアDrの表面から見ると、着弾した箇所が凸形状に膨らむことになる。そのため、ドアDrの表面には、図7(b)に示すような凸形状の痕跡Kを表示する必要がある。
この際、上記と同様に、ノーマルマップ(この場合は、凸形状)を適用して弾が当たった痕跡を表現にする。
【0077】
この場合も画像描画部260が、ライティング等を施して描画した段階の原画像(金属製のドアDrの画像)をテクスチャとして利用し、このテクスチャに痕跡のノーマルマップを適用して弾が当たった表現にする。
ここでも、利用するテクスチャは、すでにライティングが施されたテクスチャのため、通常のノーマルマップの計算をするとおかしなライティングになってしまい、違和感を感じるものとなる(例えば、出っ張っているはずなのに影がある等)。そこで、上述した数式1〜数式4の計算を適宜行うことにより、違和感をなくしたシェーディングを行うことができる。
また、ライティングが施されたテクスチャを利用して、そのテクスチャを補正することにより、光源計算をやり直すような負荷を省くことができる。
この結果、簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【0078】
以上説明したように、本発明によれば簡易な構成で、画像中に付加される痕跡を違和感なく表示することができる。
【図面の簡単な説明】
【0079】
【図1】本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。
【図2】本発明の実施形態に係る画像生成装置の概要構成を示す模式図である。
【図3】(a)が弾痕のテクスチャを示す模式図であり、(b)が弾痕のアルファデータを示す模式図であり、(c)が弾痕のノーマルマップを示す模式図である。
【図4】(a)が壁の画像を示す模式図であり、(b)が弾痕のテクスチャが合成された壁の画像を示す模式図である。
【図5】(a)が輝度値等を調整した弾痕が合成された壁の画像を示す模式図であり、(b)が目立たせる処理を加えた弾痕が合成された壁の画像を示す模式図である。
【図6】本発明の実施形態に係る画像生成処理の一例を示すフローチャートである。
【図7】(a),(b)共に、他の痕跡が合成された場合を説明するための模式図である。
【符号の説明】
【0080】
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 画像生成装置
210 オブジェクト情報記憶部
220 光源情報記憶部
230 操作部
240 位置管理部
250 弾痕情報記憶部
260 画像描画部

【特許請求の範囲】
【請求項1】
三次元の仮想空間に配置される所定のオブジェクトに凹形状又は凸形状の痕跡を合成した画像を生成する画像生成装置であって、
当該痕跡についての法線マップを含む痕跡情報を記憶する情報記憶部と、
当該仮想空間に配置された当該オブジェクトを含む原画像を描画する原画像描画部と、
描画された当該オブジェクトに、当該法線マップを適用した当該痕跡を合成する合成部と、
当該痕跡が合成された合成位置における当該オブジェクトの法線と光源方向との関係、並びに、合成した当該痕跡の当該法線マップによる法線と光源方向との関係、に基づいて、輝度値を算定する輝度値算定部と、
算定された当該輝度値に基づき、合成位置における当該オブジェクトの画像をシェーディングするシェーディング部と、を備える、
ことを特徴とする画像生成装置。
【請求項2】
三次元の仮想空間に配置される所定のオブジェクトに弾痕を合成した画像を生成する画像生成装置であって、
当該弾痕の凹形状を規定する法線マップを含む弾痕情報を記憶する情報記憶部と、
ライティングを施した当該オブジェクトを含む原画像を描画する原画像描画部と、
描画された当該オブジェクトの所定位置に、当該法線マップを適用した当該弾痕を合成する合成部と、
当該弾痕が合成された合成位置における当該オブジェクトの法線と光源方向との関係に基づいて、補正値を算定する補正値算定部と、
当該オブジェクトに合成した当該弾痕の当該法線マップによる法線と光源方向との関係、並びに、算定された当該補正値に基づいて、輝度値を算定する輝度値算定部と、
算定された当該輝度値を使用して、合成位置における当該オブジェクトの明暗(or 色の明暗)を変化させるシェーディングを行うシェーディング部と、を備える、
ことを特徴とする画像生成装置。
【請求項3】
請求項2に記載の画像生成装置であって、
前記補正値算定部は、当該オブジェクトの法線と光源方向との内積を求め、当該内積と所定の既定値との関係に基づいて補正値を算定する、
ことを特徴とする画像生成装置。
【請求項4】
請求項2又は3に記載の画像生成装置であって、
前記輝度値算定部は、当該弾痕の当該法線マップによる法線と光源方向との内積を求め、当該内積及び所定の既定値のうち、大きい方を前記補正値算定部により算定された補正値と加算することにより輝度値を算定し、
前記シェーディング部は、当該オブジェクトの色の値に、算定された当該輝度値を少なくとも1回乗じることにより、当該オブジェクトの明暗を変化させるシェーディングを行う、
ことを特徴とする画像生成装置。
【請求項5】
請求項4に記載の画像生成装置であって、
前記情報記憶部は、当該弾痕のテクスチャ色の情報を更に記憶し、
前記シェーディング部は、当該オブジェクトの色の値に当該輝度値を乗じた後に、当該弾痕のテクスチャ色に少なくとも所定の合成係数を乗じた値を更に乗じることにより、当該弾痕を強調するように当該オブジェクトの明暗を変化させる、
ことを特徴とする画像生成装置。
【請求項6】
記憶部、描画部、及び、演算部を有しており、三次元の仮想空間に配置される所定のオブジェクトに凹形状又は凸形状の痕跡を合成した画像を生成する画像生成装置における画像生成方法であって、
前記記憶部は、当該痕跡についての法線マップを含む痕跡情報を記憶しており、
前記描画部が行う、当該仮想空間に配置された当該オブジェクトを含む原画像を描画する原画像描画ステップと、
前記描画部が行う、描画された当該オブジェクトに、当該法線マップを適用した当該痕跡を合成する合成ステップと、
前記演算部が行う、当該痕跡が合成された合成位置における当該オブジェクトの法線と光源方向との関係、並びに、合成した当該痕跡の当該法線マップによる法線と光源方向との関係、に基づいて、輝度値を算定する輝度値算定ステップと、
前記描画部が行う、算定された当該輝度値に基づき、合成位置における当該オブジェクトの画像をシェーディングするシェーディングステップと、を備える、
ことを特徴とする画像生成方法。
【請求項7】
三次元の仮想空間に配置される所定のオブジェクトに凹形状又は凸形状の痕跡を合成した画像を生成するコンピュータを、
当該痕跡についての法線マップを含む痕跡情報を記憶する情報記憶部、
当該仮想空間に配置された当該オブジェクトを含む原画像を描画する原画像描画部、
描画された当該オブジェクトに、当該法線マップを適用した当該痕跡を合成する合成部、
当該痕跡が合成された合成位置における当該オブジェクトの法線と光源方向との関係、並びに、合成した当該痕跡の当該法線マップによる法線と光源方向との関係、に基づいて、輝度値を算定する輝度値算定部、
算定された当該輝度値に基づき、合成位置における当該オブジェクトの画像をシェーディングするシェーディング部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−48435(P2009−48435A)
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願番号】特願2007−214317(P2007−214317)
【出願日】平成19年8月21日(2007.8.21)
【特許番号】特許第4199817号(P4199817)
【特許公報発行日】平成20年12月24日(2008.12.24)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】