説明

画像生成システム、プログラム及び情報記憶媒体

【課題】視点の向きと、オブジェクトを構成するプリミティブの向きとの関係に応じて、描画ピクセルの色を調整することができるようにした画像生成システム、プログラム及び情報記憶媒体を提供すること。
【解決手段】オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムである。この画像生成システムは、オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部110と、視点の向きと、オブジェクトを構成するプリミティブの向きとに基づいて、当該プリミティブの描画ピクセルの色を調整する色調整部122とを含み、色調整部122が、視点の向きと正対する基準方向からのずれに応じてプリミティブの描画ピクセルの色が明るくなるように、プリミティブの描画ピクセルの色を調整する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例に取れば、プレーヤは、操作部(ゲームコントローラ等)を用いて移動体(キャラクタ等)に関する操作(攻撃操作、防御操作、移動操作等)を行い、他のプレーヤ(コンピュータプレーヤも含まれる)の移動体と格闘するゲームを楽しむ。
【0003】
ところで、上述した画像生成システムに関して、オブジェクト空間に光源を設定し、光源からの光をオブジェクトの表面において反射させることにより、オブジェクトの表面の質感を表現するライティング手法が提案されている(特許文献1参照)。
【特許文献1】特開2007−66064号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来から提案されているライティング手法では、オブジェクトの表面における光を反射する領域の描画ピクセルの色が、光源とオブジェクトとの位置関係に応じて規定されていた。
【0005】
本出願は上記事情に鑑みてなされたものであり、その目的は、視点の向きと、オブジェクトを構成するプリミティブの向きとの関係に応じて、描画ピクセルの色を調整することができるようにした画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記視点の向きと、前記オブジェクトを構成するプリミティブの向きとに基づいて、当該プリミティブの描画ピクセルの色を調整する色調整部とを含み、
前記色調整部が、
前記視点の向きと正対する基準方向からのずれに応じて前記プリミティブの描画ピクセルの色が明るくなるように、前記プリミティブの描画ピクセルの色を調整することを特徴とする画像生成システムに関するものである。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【0007】
本発明では、プリミティブの向きが視点から見て側面となる向きに近づくにつれ、そのプリミティブの描画ピクセルの色を明るくし、プリミティブの向きが視点から見て正面となる向きに近づくにつれ、そのプリミティブの描画ピクセルの色を暗くする。これにより本発明では、横方向から見ると相対的に明るい色に見え、正面方向から見ると相対的に暗い色に見えるベルベット織物などの、無数の切毛(毛羽、短毛)が表面から突出している布がオブジェクトの表面を覆っている状態を表現することができる。
【0008】
(2)また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記色調整部が、
前記オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された属性情報を参照して前記プリミティブの描画ピクセルの色を調整するようにしてもよい。
【0009】
このようにすれば、オブジェクトの表面のうち、視点の向きと正対する基準方向からのずれに応じて色が明るくなりやすい領域と明るくなりにくい領域とを設定することができるので、布の表面から突出している切毛の向きや長さにばらつきがあることや、布の表面に立体的な模様が施されていることを表現することができる。
【0010】
(3)また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記色調整部が、
前記オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された法線を参照して前記プリミティブの描画ピクセルの色を調整するようにしてもよい。
【0011】
このようにすれば、オブジェクトの表面において、布の表面から突出している切毛の向きや長さにばらつきがあることや、布の表面に立体的な模様が施されていることを、陰影をつけることにより表現することができる。
【発明を実施するための最良の形態】
【0012】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0013】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0014】
操作部160は、プレーヤがプレーヤオブジェクト(移動体オブジェクトの一例、プレーヤが操作するプレーヤキャラクタなど)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(メインメモリ172)、VRAM(ビデオメモリ174)などにより実現できる。
【0015】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0016】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0017】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0018】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170のメインメモリ172)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0019】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内のメインメモリ172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU(メインプロセッサ)、GPU(描画プロセッサ)、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0020】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0021】
オブジェクト空間設定部110は、オブジェクトデータ記憶部172に記憶されているオブジェクトデータに基づいて、キャラクタ、車、建物、樹木、柱、壁、コース(道路)、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)や、光が進行する方向や強さや色を示す光源をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、決定された位置(X、Y、Z)に決定された回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトや光源を配置する。
【0022】
移動・動作処理部112は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0023】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0024】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報(所定の制御情報の一例)に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータ(所定の制御情報の一例)に基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0025】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)がオブジェクトデータ記憶部172Bから入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセル(画素)とが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をレンダリングターゲット(ピクセル単位で画像情報を記憶できるバッファ。メインメモリ172のフレームバッファ172B、ビデオメモリ174のワークバッファ174Cやフレームバッファ174D)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色(色値、輝度値)、法線、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0026】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0027】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0028】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。光源計算(第1の光源計算)では、光源に設定される各種パラメータ(光源の強さ、色、位置、光源ベクトルなど)、オブジェクト(プリミティブ)や頂点に設定される各種パラメータ(反射属性、法線(第1の法線)などのベクトルなど)、仮想カメラに設定される各種パラメータ(視線ベクトル、視点の位置など)に基づいて光の反射をシミュレートし、頂点毎に基本色(ディフューズ)と鏡面反射成分(スペキュラ)とを求める。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、メインメモリ172のオブジェクトデータ記憶部172Aに保存される。
【0029】
テクスチャマッピングは、ビデオメモリ174のデカールテクスチャ記憶部174Aに記憶されるデカールテクスチャなどのテクスチャ(テクセル値、UV座標値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いてビデオメモリ174のデカールテクスチャ記憶部174Aからテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間、トライリニア補間などを行う。
【0030】
特に本実施形態では、各テクセルについてRGB成分の輝度値の代わりにモデル座標系における座標値が設定されることにより、テクセル毎に法線(単位ベクトル、第2の法線)が格納されたノーマルマップが用意されており、このノーマルマップをオブジェクトにマッピングすることにより、オブジェクトの描画ピクセルに法線(第2の法線)を設定することができる。そして、描画ピクセル毎に設定された法線と、光源に設定される各種パラメータ(光源の強さ、色、位置、光源ベクトルなど)、仮想カメラに設定される各種パラメータ(視線ベクトル、視点の位置など)に基づいて光の反射をシミュレートする光源計算(第2の光源計算)を行い、描画ピクセルの色を調整する。これにより、平面を構成するオブジェクトの表面に対しても描画ピクセルの法線に応じた凹凸(陰影)が施される。すなわち本実施形態では、オブジェクト(プリミティブ)や頂点に設定される法線(第1の法線)と、ノーマルマップにより設定される描画ピクセルの法線(第2の法線)と、光源ベクトルと、視線ベクトルとに基づいて、光の反射をシミュレートする光源計算が行われる。
【0031】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ174B(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ174Bに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ174BのZ値を新たなZ値に更新する。
【0032】
αブレンディングとしては、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。例えば通常αブレンディングの場合には下式(1)〜(3)の処理を行う。
【0033】
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
また、加算αブレンディングの場合には下式(4)〜(6)の処理を行う。なお単純加算の場合はα=1として下式(4)〜(6)の処理を行う。
【0034】
=R+α×R (4)
=G+α×G (5)
=B+α×B (6)
また、減算αブレンディングの場合には下式(7)〜(9)の処理を行う。なお単純減算の場合はα=1として下式(7)〜(9)の処理を行う。
【0035】
=R−α×R (7)
=G−α×G (8)
=B−α×B (9)
ここで、R、G、Bは、フレームバッファ172Bあるいはフレームバッファ174Dに既に描画されている画像(原画像)のRGB成分であり、R、G、Bは、フレームバッファ172Bあるいはフレームバッファ174Dに描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0036】
そして本実施形態では描画部120は、色調整部122を更に含む。色調整部122は、視点の向きと、オブジェクトを構成するプリミティブの向きとに基づいて、当該プリミティブの描画ピクセルの色を調整する。詳細には色調整部122は、視点の向きを示す視線ベクトルとプリミティブの向きに応じた法線ベクトルとの内積に基づき、視点の向きと正対する基準方向からのずれに応じてプリミティブの描画ピクセルの色が明るくなるように、プリミティブの描画ピクセルの色を調整する。
【0037】
更に本実施形態では色調整部122は、オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された属性情報を参照してプリミティブの描画ピクセルの色を調整する画像領域を設定する。また色調整部122は、オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された法線を参照してプリミティブの描画ピクセルの色を調整する画像領域を設定する。
【0038】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0039】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0040】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。本実施形態では、仮想カメラ(視点)の向きを示す視線ベクトルとプリミティブの向きに応じた法線ベクトルとの内積に基づき、仮想カメラの向きと正対する基準方向からのずれに応じてプリミティブの描画ピクセルの色が明るくなるように、プリミティブの描画ピクセルの色を調整する手法を採用する。これにより本実施形態では、側面から見ると相対的に明るい色に見え、正面から見ると相対的に暗い色に見えるベルベット織物などの、無数の切毛(毛羽、短毛)が表面から突出している布がオブジェクトの表面を覆っている状態が表現されるようにしている。
【0041】
図2は、本実施形態の画像生成システムにより生成される画像の一例を示す図である。図2では、オブジェクト空間に配置されたキャラクタを見た画像のうち、キャラクタの肩部分周辺を拡大した画像が示されている。図2の例では、キャラクタが着ている服は、キャラクタの肩部分において、肩部分の形状に沿って丸みを帯びた曲面を構成している。そしてキャラクタが着ている服は、暗いオレンジ色のベルベット織物を素材としたものとされており、図2に示すように服の表面には唐草模様が施されている。特に図2の例では、ベルベット織物の表面から突出している切毛が長くなっている領域が唐草模様部分を構成し、切毛が短くなっている領域が下地部分を構成しているような表面特性が表現されている。
【0042】
図3(A)は、このような表面特性を表現するために用いられるデカールテクスチャの一部を示す図である。図3(A)の例のデカールテクスチャでは、ベルベット織物の表面を表現するために、暗いオレンジ色と明るいオレンジ色とが混在するが全体として暗いオレンジ色に見えるように、かつ、唐草模様部分と下地部分とが区別されるように、各テクセルの色が指定されている。
【0043】
更に本実施形態では、ベルベット織物の表面の唐草模様が立体的に施されていることを表現するために、ノーマルマップ(法線UV情報、テクスチャの一例)が用いられている。このノーマルマップでは、各テクセルについてRGB成分の輝度値の代わりにモデル座標系における座標値が設定されることにより、テクセル毎に法線(単位ベクトル)が格納されている。本実施形態では、図3(B)に示すように、図3(A)のデカールテクスチャに合わせて作成されたノーマルマップが用いられる。
【0044】
図3(B)の例のノーマルマップでは、図3(A)に示すデカールテクスチャが図3(C)に示すような断面形状を有しているかのように、光源計算により描画ピクセルの色が調整されるように、図3(D)に示すように法線が各テクセルに設定されている。従って、基準面に対して垂直な単位ベクトル(0,0,1)が設定されたテクセルが描画ピクセルについて参照されると、基準面に対して平行な面であるように光源計算により描画ピクセルの色が調整された色が求められる。また、基準面に対して垂直でない単位ベクトル(x,y,z)が設定されたテクセルが描画ピクセルについて参照されると、基準面に対して平行でない面であるように(単位ベクトルが法線となるように)光源計算により描画ピクセルの色が調整された色が求められる。こうして図2の例に示すように、唐草模様部分が下地部分よりも盛り上がっているように凹凸(陰影)が表現された画像が生成される。
【0045】
また、図2の例では、キャラクタの肩部分の形状に沿って丸みを帯びた曲面を構成している服の表面の向きが、仮想カメラから見て側面の向きとなるにつれ表面の色が明るくなっており、仮想カメラから見て正面の向きとなるにつれ表面の色が暗くなっている。すなわちベルベット織物とは、横方向から見ると切毛を横方向から見ることになるため、反射される光が多くなり相対的に明るい色に見え、正面方向から見ると切毛を先端方向から見ることになるため、反射される光が少なくなり相対的に暗い色に見えるが、本実施形態ではこのような現象が再現されることにより、キャラクタの肩部分を覆う服の素材がベルベット織物であることが表現されている。
【0046】
図4は、このような表現を実現するためのアルゴリズムを説明するための図である。本実施形態では、図4に示すように、仮想カメラVCの視線ベクトルVV(視点の向き、視線方向を示す単位ベクトル)と、オブジェクトOBを構成するプリミティブの向きに応じた法線ベクトルNV(プリミティブの向きに応じた向きを示す単位ベクトル、プリミティブの頂点の法線ベクトルが補間された補間後の法線ベクトル)との内積(VV・NV)に基づきcosθ(θは、視線ベクトルVVと法線ベクトルNVのなす角度)を求める。そして、求めたcosθに基づき輝度増加パラメータIPを求めて、求めた輝度増加パラメータIPに基づきプリミティブの描画ピクセルの輝度を高める。
【0047】
ここで輝度増加パラメータIPは、次式により求めることができる。
【0048】
IP=1−|cosθ| (10)
従って、仮想カメラから見てオブジェクトOBの側面となる領域での描画ピクセルについて輝度増加パラメータIPを求めると、視線ベクトルVVと法線ベクトルNVのなす角度θが90度になるため、cosθ=0となり、IP=1(最大値)となる。一方仮想カメラから見てオブジェクトOBの正面となる領域での描画ピクセルについて輝度増加パラメータIPを求めると、θが180度になるため、cosθ=−1となり、IP=0(最小値)となる。
【0049】
そして、輝度増加パラメータIPに基づきエフェクト色ECを求める。ここでエフェクト色ECは、エフェクト色の基準色をSCとすると、次式により求めることができる。
【0050】
EC=IP×SC (11)
すなわち、(11)式によれば、輝度増加パラメータIPの値が大きくなるにつれエフェクト色ECの輝度が高くなり、輝度増加パラメータIPの値が小さくなるにつれエフェクト色ECの輝度が低くなる。
【0051】
図5は、上述のようにして描画ピクセルのエフェクト色ECを求めたオブジェクトOBを仮想カメラから見た場合における、エフェクト色ECの分布を示す図である。図5に示すように、オブジェクトOBのエフェクト色ECは、オブジェクトOBの輪郭に近いほど輝度が高くなり、オブジェクトOBの輪郭から遠いほど輝度が低くなっている。すなわち、オブジェクトOBの表面の向きが仮想カメラから見て側面の向きとなるにつれ、輝度増加パラメータIPの値が大きくなるためエフェクト色ECの輝度値が高くなり、仮想カメラから見て正面の向きとなるにつれ、輝度増加パラメータIPの値が小さくなるためエフェクト色ECの輝度値が低くなる。
【0052】
そして本実施形態では、このようにして求められたエフェクト色ECと、図3のようにして求められたオブジェクトOBの色とが合成されることによって描画ピクセルの色が求められる。これにより本実施形態では、図2に示したように、キャラクタの肩部分の形状に沿って丸みを帯びた曲面を構成している服の表面の向きが、仮想カメラから見て側面となる向きに近づくにつれ表面の色が明るくなり、仮想カメラから見て正面となる向きに近づくにつれ表面の色が暗くるように、描画ピクセルの色が調整される。すなわち本実施形態では、仮想カメラの向きと正対する基準方向からのずれに応じてオブジェクトOB(プリミティブ)の描画ピクセルの色が明るくなるように、描画ピクセルの色が調整される。
【0053】
ここで図2の例では、キャラクタの服の表面のうち、仮想カメラの向きと正対する基準方向からのずれに応じて色がより明るくなっている領域と、色があまり明るくなっていない領域とが存在している。図2の例では、仮想カメラから見て側面に近い領域において、唐草模様部分の領域の色はより明るくなっており、下地部分の領域の色はあまり明るくなっていない。これにより図2の例では、ベルベット織物の表面から突出している切毛が長くなっている唐草模様部分では、相対的に多くの光が反射され、切毛が短くなっている下地部分では、相対的に少ない光が反射されるというベルベット織物の表面特性が表現されている。
【0054】
図6は、このような表現を実現するために用いられるスペキュラマップ(反射属性UV情報、テクスチャの一例)の一部を示す図である。このスペキュラマップでは、各テクセルについてオブジェクトの表面の反射属性を示す反射属性値A(属性情報の一例)が格納されている。本実施形態では、図3(A)のデカールテクスチャのαプレーンに、この反射属性値Aが設定されている。そして図6の例のスペキュラマップでは、唐草模様部分に対応するテクセル値にエフェクト色ECをより明るくする反射属性値Aが設定されており、下地部分に対応するテクセル値にエフェクト色ECをあまり明るくしない反射属性値Aが設定されている。これにより、ノーマルマップによる凹凸の表現に加えて、更にスペキュラマップによる反射属性の表現が行われることにより、ベルベット織物に特有の表面特性を表現することができる。
【0055】
ここで図6の例のスペキュラマップでは、唐草模様部分における反射属性値Aが、そして下地部分における反射属性値Aが、それぞれの部分において一様に設定されているのではなく、唐草模様部分および下地部分のそれぞれにおいて反射属性値Aがむらとなるように設定されている。これにより図6の例のスペキュラマップでは、唐草模様部分の方が下地模様部分よりも切毛の長さが全体的に長くなっているとともに、唐草模様部分および下地部分のそれぞれにおいて切毛の向きや長さにばらつきがあることを表現することができる。
【0056】
そして本実施形態では、図3で示したようにノーマルマップが参照される際にこのスペキュラマップも参照され、その描画ピクセルの反射属性値Aが設定される。すなわち本実施形態では、描画ピクセルについて設定された法線と反射属性値Aとに基づいて描画ピクセルの色が調整される。
【0057】
図7(A)〜(E)は、図2で示した画像における仮想カメラの位置を、仮想カメラの注視点をキャラクタに設定したまま変化させた場合に生成される一連の画像を示す図である。図7(A)〜(E)に示すように、キャラクタが静止した状態で仮想カメラの位置が変化すると、キャラクタの肩部分を構成するプリミティブそれぞれの向きと、仮想カメラの向きとの関係が変化する。すると、各フレームにおいて各描画ピクセルについて上述した処理が行われることにより、図7(A)〜(E)に示すように、キャラクタの肩部分を覆う服の表面のうち、仮想カメラの向きと正対する基準方向からのずれに応じて色がより明るくなっている領域と、色があまり明るくなっていない領域とが、仮想カメラの位置と向きの変化に応じて変化する。
【0058】
こうして本実施形態では、各フレームにおいて、仮想カメラの向きを示す視線ベクトルとプリミティブの向きに応じた法線ベクトルとの内積に基づき、仮想カメラの向きと正対する基準方向からのずれに応じてプリミティブの描画ピクセルの色が明るくなるように、プリミティブの描画ピクセルの色が調整されることにより、側面から見ると相対的に明るい色に見え、正面から見ると相対的に暗い色に見えるベルベット織物などの、無数の切毛(毛羽、短毛)が表面から突出している布がオブジェクトの表面を覆っている状態を表現することができる。
【0059】
3.本実施形態の処理
次に、本実施形態の処理の一例について図8のフローチャートを用いて説明する。図8に示すように、本実施形態では、まず、フレームの更新タイミングが到来すると(ステップS10でY)、オブジェクト空間にオブジェクトが配置され(ステップS12)、頂点の法線ベクトルが補間されて補間法線ベクトルが求められる(ステップS14)。すると、視線ベクトルと補間法線との内積に応じたエフェクト色ECが求められる(ステップS16)。
【0060】
すると、描画ピクセルについてデカールテクスチャのテクセルの色が参照され(ステップS20)、描画ピクセルについてデカールテクスチャのテクセルの反射属性値Aが参照され(ステップS22)、描画ピクセルについてノーマルマップのテクセルの法線が参照される(ステップS24)。そして、光源ベクトルと視線ベクトルと描画ピクセルの法線と反射属性値Aとに基づいて描画ピクセルの色が調整され(ステップS26)、エフェクト色ECと描画ピクセルの色とが合成される(ステップS28)。
【0061】
4.ハードウェア構成例
本実施形態の画像生成システムを実現するハードウェアの構成の一例について図9を用いて説明する。なお図9では、主要な構成のみを図示しており、図9に示されていないハードウェア(メモリコントローラやスピーカなど)を必要に応じて設けることができる。
【0062】
メインプロセッサ10は、光ディスク72(CD、DVD、ブルーレイディスク等の情報記憶媒体)に格納されたプログラム、通信インターフェース80を介して転送されたプログラム、或いはハードディスク60に格納されたプログラムなどに基づき動作し、内部バスb4を介してアクセス可能なメインメモリ40を作業領域(ワーク領域)としてゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0063】
メインプロセッサ10は、1基のプロセッサ12と複数のベクトルプロセッサ14で構成される。プロセッサ12は、OSの実行、ハードウェアリソースの管理、ゲーム処理、ベクトルプロセッサ14の動作管理などの種々の処理を実行する。またベクトルプロセッサ14は、ベクトル演算に特化したプロセッサであり、主にジオメトリ処理、画像データや音データのコーデック処理などの処理を実行する。
【0064】
描画プロセッサ20は、内部バスb1(第1の内部バス)を介してビデオメモリ30にアクセス可能に形成されている。また描画プロセッサ20は、描画プロセッサ20とメインプロセッサ10を接続する内部バスb2(第2の内部バス)と、メインプロセッサ10内部のバスb3と、メインプロセッサ10とメインメモリ40を接続する内部バスb4を介してメインメモリ40にアクセス可能に形成されている。すなわち描画プロセッサ20はビデオメモリ30と、メインメモリ40とをレンダリングターゲットとして利用することができる。
【0065】
描画プロセッサ20は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ10で動作するプログラムが、その処理を描画プロセッサ20に指示する。
【0066】
また描画プロセッサ20は、ジオメトリ処理後のオブジェクト(ポリゴンや曲面などのプリミティブ面で構成されるオブジェクト)の画像のレンダリング処理を高速に実行するものである。マルチパスレンダリング処理の際には、描画プロセッサ20は、描画データ(頂点データや他のパラメータ)等に基づいて、Zバッファ34などを利用した陰面消去を行いながら、画像をビデオメモリ30又はメインメモリ40の一方のメモリにレンダリングする。そしてビデオメモリ30又はメインメモリ40の一方のメモリに記憶された画像に基づき他方のメモリに新たな画像をレンダリングする処理を必要なレンダリングパスの回数だけ行う。描画プロセッサ20は、上記マルチパスレンダリング処理として、グレアフィルタ処理、モーションブラー処理、被写界深度処理、フォグ処理等のフィルタ処理を行うことができる。
【0067】
そして、最後のレンダリングパスで画像がビデオメモリ30に設けられたフレームバッファ32にレンダリングされると、その画像をディスプレイ50に出力する。また最後のレンダリングパスで画像がメインメモリ40にレンダリングされた場合には当該画像をフレームバッファ32にコピー(書き込み)した上でディスプレイ50に出力する。
【0068】
ハードディスク60にはシステムプログラム、セーブデータ、個人データなどが格納される。
【0069】
光学ドライブ70は、プログラム、画像データ、或いは音データなどが格納される光ディスク72(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0070】
通信インターフェース80は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース170に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0071】
上述したように本実施形態の画像生成システム(コンピュータ)は、内部バスb1(第1の内部バス)を介してビデオメモリ30にアクセス可能であるとともに、内部バスb2(第2の内部バス)を介してメインメモリ40にアクセス可能である描画プロセッサ20を含んで構成されており、描画プロセッサ20は、光ディスク72(情報記憶媒体の一例)あるいはハードディスク60(情報記憶媒体の一例)に格納されているシェーダプログラムに従って種々のシェーダ処理を実行する。
【0072】
なお、本実施形態の各部(各手段)は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0073】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ10、20等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ10、20等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【0074】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。またグレアフィルタの手法は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0075】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【0076】
また上記実施形態では、キャラクタが着ている服がベルベット織物であることを表現する例を挙げて説明したが、上記手法は、キャラクタが着ている服だけでなく、武器などのアイテムや置物、床、階段などの表面がベルベット織物などであることを表現する際に適用することができる。また、上記実施形態では、ベルベット織物の表面特性を表現する例を挙げて説明したが、本発明は、無数の切毛(毛羽、短毛)が表面から突出しているものであれば、パイル織物やコーデュロイ織物、毛皮、動物の表皮など、種々の表面特性の表現に適用することができる。
【0077】
また上記実施形態では、視線ベクトルVVと法線ベクトルNVとの内積に基づき輝度増加パラメータIPを求めて、求めた輝度増加パラメータIPに基づきプリミティブの描画ピクセルの輝度を高める例を挙げて説明したが、図10に示すように、視線ベクトルVVと法線ベクトルNVとの内積に基づき、テクスチャ座標が指定されることによりエフェクト色ECが設定されるようにしてもよい。すなわち色調整部122が、視線ベクトルと法線ベクトルとの内積に対応づけられたテクスチャを構成するテクセルに格納された色情報を参照してプリミティブの描画ピクセルの色を調整するようにしてもよい。
【0078】
この場合には図10に示すように、仮想カメラVCの視線ベクトルVV(視点の向き)とオブジェクトOBを構成するプリミティブの向きに応じた法線ベクトルNVとの内積(VV・NV)に基づきcosθ(θは、視線ベクトルVVと法線ベクトルNVのなす角度)を求め、求めたcosθに基づき、テクセルにエフェクト色ECが格納されたテクスチャTX(オブジェクトOBに対応付けられたテクスチャの一例)のテクスチャ座標を指定する。例えば、cosθに基づいてテクスチャ座標(1−|cosθ|,v)(vは0〜1の値)を指定する。
【0079】
従って、仮想カメラVCから見てオブジェクトOBの中心部の描画ピクセルについては、θが180度になるため、cosθ=−1となり、テクスチャ座標(0,v)が指定される。一方仮想カメラVCから見てオブジェクトOBの輪郭の描画ピクセルについては、θが90度になるため、cosθ=0となり、テクスチャ座標(1,v)が指定される。
【0080】
ここで図10に示すように、テクスチャTX(カラーマップ)は、UV座標系のU軸方向に沿ってテクセルの色の輝度値が増加する(テクセルの色がグラデーション変化する)パターンを有している。すなわちテクスチャ座標(0,v)のテクセルの色は最も輝度値が低い色(暗い色)となっており、テクスチャ座標(1,v)のテクセルの色は最も輝度値が高い色(明るい色)となっている。
【0081】
従って、視線ベクトルVVと法線ベクトルNVとの内積に応じて指定されたテクスチャ座標に基づいて参照されるエフェクト色ECは、オブジェクトOBの中心部に近いほど暗い色となりオブジェクトの中心部から遠いほど明るい色となる。
【図面の簡単な説明】
【0082】
【図1】本実施形態の画像生成システムの機能ブロック図。
【図2】本実施形態で生成される画像の一例を示す図。
【図3】本実施形態の手法の説明図。
【図4】本実施形態の手法の説明図。
【図5】本実施形態の手法の説明図。
【図6】本実施形態の手法の説明図。
【図7】本実施形態で生成される画像の一例を示す図。
【図8】本実施形態の処理の流れを示すフローチャート。
【図9】本実施形態の画像生成システムのハードウェア構成例。
【図10】変形実施形態の手法の説明図。
【符号の説明】
【0083】
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、120 描画部、122 色調整部、
130 音生成部、160 操作部、170 記憶部、172 メインメモリ、
172A オブジェクトデータ記憶部、172B フレームバッファ、
174 ビデオメモリ、174A デカールテクスチャ記憶部、174B Zバッファ、
174C ワークバッファ、174D フレームバッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記視点の向きと、前記オブジェクトを構成するプリミティブの向きとに基づいて、当該プリミティブの描画ピクセルの色を調整する色調整部としてコンピュータを機能させ、
前記色調整部が、
前記視点の向きと正対する基準方向からのずれに応じて前記プリミティブの描画ピクセルの色が明るくなるように、前記プリミティブの描画ピクセルの色を調整することを特徴とするプログラム。
【請求項2】
請求項1において、
前記色調整部が、
前記オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された属性情報を参照して前記プリミティブの描画ピクセルの色を調整することを特徴とするプログラム。
【請求項3】
請求項1または2において、
前記色調整部が、
前記オブジェクトに対応づけられたテクスチャを構成するテクセルに格納された法線を参照して前記プリミティブの描画ピクセルの色を調整することを特徴とするプログラム。
【請求項4】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1〜3のいずれかに記載されたプログラムを記憶することを特徴とする情報記憶媒体。
【請求項5】
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記視点の向きと、前記オブジェクトを構成するプリミティブの向きとに基づいて、当該プリミティブの描画ピクセルの色を調整する色調整部とを含み、
前記色調整部が、
前記視点の向きと正対する基準方向からのずれに応じて前記プリミティブの描画ピクセルの色が明るくなるように、前記プリミティブの描画ピクセルの色を調整することを特徴とする画像生成システム。

【図1】
image rotate

【図6】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−33288(P2010−33288A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−194072(P2008−194072)
【出願日】平成20年7月28日(2008.7.28)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】