説明

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

【課題】半透明オブジェクトのリアルな映り込み表現と透過表現を両立できるプログラム、情報記憶媒体、画像生成システムの提供。
【解決手段】画像生成システムは、半透明オブジェクトのライティング処理を行い、半透明オブジェクトの光の反射色を求めるライティング処理部と、求められた半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、半透明オブジェクトの色と、半透明オブジェクトの描画先の色であるディスティネーション色とを、求められたα値に基づいてブレンディングするαブレンディング部を含む。α値取得部は、半透明オブジェクトの反射色が強くなればなるほど半透明オブジェクトの色のブレンディング率が高くなるα値を求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、車、キャラクタ、戦闘機などの移動体のオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラなどの操作部を用いて自車を操作し、他のプレーヤが操作する他車と競争することでゲームを楽しむ。
【0003】
このようなレースゲームでは、車の窓に対する周りの光源や背景の光の映り込みについてもリアルに表現できることが望ましい。また、窓が透けて、車の内部のシートやドライバなどの様子も見えるようになれば、プレーヤの仮想現実感を更に向上できる。
【0004】
しかしながら、これまでの画像生成システムでは、このような窓への光源や背景の光の映り込み表現と、車の内部の様子が透けて見える透過表現の両立が難しいという課題があった。
【特許文献1】特開2001−325605号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、半透明オブジェクトのリアルな映り込み表現と透過表現を両立できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
本発明は、画像を生成する画像生成システムであって、半透明オブジェクトのライティング処理を行い、前記半透明オブジェクトの光の反射色を求めるライティング処理部と、求められた前記半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、前記半透明オブジェクトの色と、前記半透明オブジェクトの描画先の色であるディスティネーション色とを、求められたα値に基づいてブレンディングするαブレンディング部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0007】
本発明によれば、半透明オブジェクトの反射色が求められ、反射色の強さに応じてその値が変化するα値を求められる。そして半透明オブジェクトの色とディスティネーション色とが、求められたα値に基づいてブレンディングされる。このようにすれば、反射色の強い領域(ピクセル)と弱い領域(ピクセル)とで、半透明オブジェクトの色とディスティネーション色とのブレンディングに用いるα値が異なるようになる。これにより、半透明オブジェクトのリアルな映り込み表現と透過表現を両立できる。
【0008】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ライティング処理部は、照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、前記半透明オブジェクトの反射色を求め、前記α値取得部は、前記スペキュラ色により求められた反射色の強さに応じてその値が変化するα値を求めるようにしてもよい。
【0009】
このようにすれば、スペキュラ色の強い領域と弱い領域とでα値が異なるようになり、スペキュラ光のリアルな映り込み表現を実現できる。
【0010】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ライティング処理部は、光源ベクトルと、仮想カメラの視線ベクトルと、前記半透明オブジェクトの法線ベクトルとに基づいて、前記半透明オブジェクトのスペキュラ色を求めるようにしてもよい。
【0011】
このようにすれば、光源ベクトル、視線ベクトル、法線ベクトルの関係に応じてスペキュラ色が変化し、これによりα値も動的に変化するようになり、画像のリアル度を向上できる。
【0012】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記半透明オブジェクトの周囲の環境を表す環境テクスチャを前記半透明オブジェクトに対して環境マッピングするテクスチャマッピング部を含み(テクスチャマッピング部としてコンピュータを機能させ)、前記ライティング処理部は、前記環境マッピングで得られたマッピング色により、前記半透明オブジェクトの反射色を求め、前記α値取得部は、前記環境マッピングのマッピング色により求められた反射色の強さに応じてその値が変化するα値を求めるようにしてもよい。
【0013】
このようにすれば、スペキュラ色を擬似的に表現するマッピング色の強い領域と弱い領域とでα値が異なるようになり、環境マッピングを有効活用した映り込み表現を実現できる。
【0014】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値取得部は、前記半透明オブジェクトの反射色が強くなればなるほど前記半透明オブジェクトの色のブレンディング率が高くなるα値を求め、前記αブレンディング部は、前記半透明オブジェクトの反射色が強くなればなるほどディスティネーション色に対する前記半透明オブジェクトの色のブレンディング率が高くなるαブレンディング処理を行うようにしてもよい。
【0015】
このようにすれば、反射色の強い領域では、半透明オブジェクトの色のブレンディング率が高くなるαブレンディング処理が行われ、反射色の弱い領域では、半透明オブジェクトの色のブレンディング率が低くなるαブレンディング処理が行われようになり、反射色の強弱に応じたαブレンディング処理を実現できる。
【0016】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値取得部は、前記半透明オブジェクトの反射色の強さパラメータをSPとし、マテリアルパラメータをP1、P2とした場合に、α=P1+P2×SPの演算式でα値を求めるようにしてもよい。
【0017】
このようにすれば、例えばマテリアルパラメータP1を制御することで、半透明オブジェクトのデフォルトの透明度を制御することが可能になる。
【0018】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値取得部は、前記半透明オブジェクトのマテリアルに応じて異なった値に設定される前記マテリアルパラメータP1、P2に基づいて、α値を求めるようにしてもよい。
【0019】
このようにすれば、マテリアルパラメータP1、P2の設定を変えることで、種々のマテリアルの半透明オブジェクトを表現できるようになり、多様な画像表現が可能になる。
【0020】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記半透明オブジェクトの周囲の環境を表す環境テクスチャを前記半透明オブジェクトに対して環境マッピングするテクスチャマッピング部を含み(テクスチャマッピング部としてコンピュータを機能させ)、前記環境テクスチャの色チャネルには前記半透明オブジェクトのマッピング色が設定され、前記環境テクスチャのαチャネルには、前記マッピング色の強さに応じてその値が変化するα値が設定され、前記α値取得部は、前記環境マッピングにより、前記マッピング色である前記半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めるようにしてもよい。
【0021】
このようにすれば、環境マッピングを有効活用してα値を取得できるため、処理負荷を軽減できる。
【0022】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記αブレンディング部は、少なくともスペキュラ色とディフューズ色とアンビエント色に基づいて求められた半透明オブジェクトの色と、ディスティネーション色とを、求められたα値に基づいてブレンディングするようにしてもよい。
【0023】
また本発明は、画像を生成する画像生成システムであって、移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、前記移動体の窓オブジェクトの反射色を求めるライティング処理部と、求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0024】
本発明によれば、オブジェクト空間を移動する移動体の窓オブジェクトの反射色であるスペキュラ色が、照明モデルにより求められ、反射色の強さに応じてその値が変化するα値を求められる。そして窓オブジェクトの色と移動体の内部色とが、求められたα値に基づいてブレンディングされる。このようにすれば、移動体の窓オブジェクトのリアルな映り込み表現と透過表現を両立できる。また移動体の移動に伴い、光の映り込みの様子もリアルタイムに変化するようになり、これまでにないリアルな画像を生成できる。
【0025】
また本発明は、画像を生成する画像生成システムであって、移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、前記移動体の周囲の環境を表す環境テクスチャを前記移動体に対して環境マッピングするテクスチャマッピング部と、前記環境マッピングで得られたマッピング色により、前記移動体の窓オブジェクトの光の反射色を求めるライティング処理部と、求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部を含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0026】
本発明によれば、オブジェクト空間を移動する移動体の窓オブジェクトの反射色であるマッピング色が、環境マッピングにより求められ、反射色の強さに応じてその値が変化するα値を求められる。そして窓オブジェクトの色と移動体の内部色とが、求められたα値に基づいてブレンディングされる。このようにすれば、移動体の窓オブジェクトのリアルな映り込み表現と透過表現を両立できる。また移動体の移動に伴い、光の映り込みの様子もリアルタイムに変化するようになり、これまでにないリアルな画像を生成できる。
【発明を実施するための最良の形態】
【0027】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0028】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0029】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、ステアリング、アクセル、ブレーキ、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0030】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。この記憶部170は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置194よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0031】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0032】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0033】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される大容量の記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードや、HDDなどにより実現できる。この補助記憶装置194は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置194は、ゲームの途中結果などのセーブデータや、プレーヤ(ユーザ)の個人的画像データや音楽データなどを保存するために使用される。
【0034】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0035】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0036】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170(主記憶部172)をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0037】
処理部100は、ゲーム演算部108、オブジェクト空間設定部110、移動体演算部112、仮想カメラ制御部114、画像生成部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0038】
ゲーム演算部108はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0039】
オブジェクト空間設定部110は、モデルオブジェクト(車、戦闘機、人、ロボット、ミサイル、弾等の移動体)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のモデルデータ記憶部176には、移動体(車、戦闘機、キャラクタ)等のモデルデータが記憶されている。そしてオブジェクト空間設定部110は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定(配置)処理を行う。
【0040】
移動体演算部112は、移動体(移動体オブジェクト)を移動させるための演算を行う。また移動体を動作させるための演算も行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0041】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0042】
例えば仮想カメラにより車、キャラクタ、戦闘機などの移動体を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動体演算部112で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0043】
なお本実施形態の移動体は、自プレーヤが操作する移動体であってもよいし、他のプレーヤやコンピュータが操作(制御)する移動体であってもよい。また本実施形態により生成される画像は、プレーヤのゲームプレイにより画像が変化する通常のゲーム画像であってもよいし、ゲーム中以外に表示されるリプレイ画像、オープニング画像、エンディング画像であってもよい。
【0044】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずモデル(オブジェクト)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0045】
頂点処理(頂点シェーダ処理)では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0046】
ピクセル処理(ピクセルシェーダ処理)では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0047】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0048】
画像生成部120は、ライティング処理部122、テクスチャマッピング部124、α値取得部126、αブレンディング部128を含む。なおこれらの一部を省略する構成としてもよい。
【0049】
ライティング処理部122は、照明モデル等に基づくライティング処理(シェーディング処理)を行う。具体的にはこのライティング処理は、光源情報(光源ベクトル、光源色、明るさ、光源タイプ等)、仮想カメラ(視点)の視線ベクトル、オブジェクト(半透明オブジェクト)の法線ベクトル、オブジェクトのマテリアル(色、材質)などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【0050】
テクスチャマッピング部124は、オブジェクト(ポリゴン)にテクスチャをマッピングする処理を行う。ここでテクスチャマッピング処理は、テクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点やピクセルに設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部178からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0051】
α値取得部(α値演算部)126は、αブレンディングのためのα値を取得(演算)する処理を行う。ここでα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0052】
αブレンディング部128は、α値に基づくαブレンディング処理(色合成処理、半透明合成処理)を行う。ここでαブレンディング処理としては、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【0053】
=(1−α)×R+α×R
=(1−α)×G+α×G
=(1−α)×B+α×B
一方、加算αブレンディングの場合には下式の処理を行う。
【0054】
=R+α×R
=G+α×G
=B+α×B
また、減算αブレンディングの場合には下式の処理を行う。
【0055】
=R−α×R
=G−α×G
=B−α×B
ここで、R、G、Bは、描画バッファ174(フレームバッファ、色バッファ)に既に描画されている画像(元画像)の色成分(ディスティネーション色)であり、R、G、Bは、描画バッファ174に描画すべき画像の色成分(ソース色)である。また、R、G、Bは、αブレンディング処理により得られる画像の色成分(最終色)である。
【0056】
そして本実施形態ではライティング処理部122が、窓オブジェクト等の半透明オブジェクトのライティング処理を行い、半透明オブジェクトの光の反射色(スペキュラ色、疑似スペキュラ色)を求める。具体的にはライティング処理部122は、照明モデルに基づいてスペキュラ色を求め、求められたスペキュラ色に基づいて、半透明オブジェクトの反射色を求める。或いはテクスチャマッピング部124が、半透明オブジェクトの周囲の環境(周囲の画像)を表す環境テクスチャを半透明オブジェクトに対して環境マッピングする。そしてライティング処理部122は、この環境マッピングで得られたマッピング色により、半透明オブジェクトの反射色を求める。
【0057】
するとα値取得部126は、求められた半透明オブジェクトの反射色(例えばディフューズ色やアンビエント色を除いた反射色)の強さ(明るさ、インテンシティ、パワー)に応じてその値が変化するα値を求める。具体的には、半透明オブジェクトの反射色の強さを求め、反射色が強くなればなるほど半透明オブジェクトの色(ソース色)のブレンディング率が高くなるα値を求める。或いは、テクスチャ記憶部178に記憶される環境テクスチャのαチャネル(αプレーン)に、マッピング色の強さ(明るさ)に応じてその値が変化するα値を設定しておく。そしてα値取得部126は、環境マッピング部124による環境マッピングにより、マッピング色である半透明オブジェクトの反射色の強さに応じてその値が変化するα値を取得してもよい。
【0058】
そしてαブレンディング部128は、半透明オブジェクトの色(ソース色)と、半透明オブジェクトの描画先の色であるディスティネーション色(描画バッファ174に描かれている色)とを、α値に基づいてブレンディング(合成)する。具体的には、少なくともスペキュラ色とディフューズ色とアンビエント色に基づいて求められた半透明オブジェクトの色と、ディスティネーション色とを、α値取得部126により求められたα値に基づいてブレンディングする。
【0059】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0060】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0061】
2.本実施形態の手法
2.1 窓の表現
図2(A)において、車を表す移動体MOBには、車のフロントガラスの窓を表す半透明オブジェクトWOBが設けられている。なお以下では、移動体が車であり、半透明オブジェクトが窓オブジェクトである場合を例に取り説明するが、本実施形態はこれに限定されない。例えば移動体は車に限定されず、例えば戦闘機、列車、ロボット等であってもよい。また半透明オブジェクトは窓オブジェクトに限定されず、例えば水面オブジェクト等であってもよい。
【0062】
図2(A)において、プレーヤの仮想現実感の向上のためには、窓に対する光源LSや背景の光の映り込みについてもリアルに表現できることが望ましい。また、窓が透けて、移動体MOBの内部の様子が見える透過表現を実現できることが望ましい。
【0063】
しかしながら、これまでの画像生成システムでは、このような窓への光源や背景の光の映り込み表現と、窓を介した移動体内部の透過表現の両立が難しいという課題があった。
【0064】
例えば図2(B)においてソース色CSは、窓を表す半透明オブジェクトWOBの色(オブジェクト色、反射色、マテリアル色)であり、ディスティネーション色CDは、半透明オブジェクトWOBの描画先の色(描画バッファの色)である。
【0065】
窓への光源や背景の光の映り込み表現は、例えば照明モデル(モデルの演算式、光源情報、法線情報、仮想カメラ情報)に基づいて、半透明オブジェクトWOBの光の反射色を求め、求められた反射色に基づいて、窓オブジェクトWOBの色CSを求めることで実現できる。
【0066】
一方、窓を介した移動体内部の透過表現は、半透明オブジェクトWOBの色CSと、移動体内部のシートやドライバの色であるCDとを、α値に基づいてブレンディングすることで実現できる。
【0067】
この場合、例えば透明度が高い透き通った窓を表現するためには、半透明オブジェクトWOBの色CSのブレンディング率であるα値を小さくすればよい。このようにα値を小さくして、窓の透過率を高くすれば、車の窓を介して内部の様子がよく見えるようになり、画像のリアル度を増すことができる。
【0068】
ところが、α値を小さくすると、半透明オブジェクトWOBの色CSのブレンディング率が小さくなってしまう。従って、窓のマテリアルとしての色のみならず、光源や環境の映り込みによる反射色のブレンディング率も小さくなり、光源や環境の映り込み画像が薄くなって、目立たなくなってしまう。この結果、透明な窓ガラスに光源や環境が強く映り込んで見えるようなリアルな画像を表現できず、プレーヤの仮想現実感の向上が不十分となる。
【0069】
2.2 反射色の強さによるα値の制御
このような課題を解決するために本実施形態では、半透明オブジェクトWOBの反射色の強さ(明るさ)に応じてα値を制御する手法を採用している。
【0070】
例えば図3(A)、図3(B)では、半透明オブジェクトWOBのライティング処理を行い、WOBの光の反射色(例えばディフューズ色、アンビエント色を除く反射色)を求める。そして求められた反射色の強さに応じて、α値を変化させる。
【0071】
例えば図3(A)のように半透明オブジェクトWOBの反射色が弱い場合(インテンシティ、スペキュラパワーが小さい場合)には、色CDに対する色CSのブレンディング率に相当するα値を小さくする。一方、図3(B)のように半透明オブジェクトWOBの反射色が強い場合(インテンシティ、スペキュラパワーが大きい場合)には、α値を大きくする。このようにすれば、半透明オブジェクトWOBの反射色(スペキュラ色)が強くなればなるほど、色CDに対する半透明オブジェクトWOBの色CSのブレンディング率が高くなるαブレンディング処理を実現できる。これにより、透明度が高い窓に光源や環境がリアルに映り込んで見える表現を実現できる。
【0072】
即ち図3(A)では、ピクセルPXAにおける光の反射色が弱いため、PXAにおけるα値は小さくなる。従って、色CSのブレンディング率も小さくなり、ピクセルPXAでは半透明オブジェクトWOBの色CSが薄くなり、下の色CDがよく見えるようになる。従って、このピクセルPXAでは、透明な窓を介して移動体の内部がハッキリと見えるようになる。
【0073】
一方、図3(B)では、ピクセルPXBにおける光の反射色が強いため、PXBにおけるα値は大きくなる。従って、色CSのブレンディング率も大きくなり、ピクセルPXBでは下の色CDよりも半透明オブジェクトWOBを色CSの方が濃くなる。従って、このピクセルPXBでは、光源や環境の映り込みがハッキリと見えるようになる。
【0074】
例えば図4、図5に本実施形態により生成された画像の例を示す。図4は、車の窓の光の反射色が弱く、光源や環境の映り込みが弱い場合の画像の例である。図4では、窓に対する映り込みがなく、透明な窓を介して車内部のシートやドライバの様子がハッキリと透けて見える画像が生成されている。
【0075】
一方、図5は、車の窓の光の反射色が強く、光源や環境の映り込みが強い場合の画像の例である。図5では、窓に対して光源や環境が強く映り込んだ画像が生成されており、現実世界に近いリアルな画像の生成に成功している。
【0076】
そして本実施形態によれば、例えば移動体である車が移動し、車、仮想カメラ、光源、周囲の環境の間の位置関係が変化し、窓に対する光の反射色の強弱が変化すると、それに応じて窓への光源や環境の映り込みもリアルタイムに変化するようになる。例えば、車、仮想カメラ、光源、環境の間の位置関係が第1の位置関係である場合には図4に示すような画像が生成され、第2の位置関係である場合には図5に示すような画像が生成される。従って、位置関係の変化により窓の映り込み画像がリアルタイムに変化するため、これまでにないリアルな画像を生成できる。
【0077】
2.3 照明モデルによるライティング処理
次に、ライティング処理による反射色の求め方の具体例について説明する。現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。図6(A)、図6(B)に、光源が平行光である場合の照明モデルの例を示す。
【0078】
図6(A)はフォンの照明モデルを説明する図であり、この照明モデルは下式(1)のように表される。
【0079】
I=Ksp×(L・R)×Isp+Kdf×(N・L)×Idf+Kam×Iam (1)
ここで、Ksp、Kdf、Kamは、各々、スペキュラ光、ディフューズ光、アンビエント光についての反射率(物体色)であり、Isp、Idf、Iamは、スペキュラ光、ディフューズ光、アンビエント光の輝度(強さ、光源色)である。Nはオブジェクト(移動体、窓オブジェクト)の法線ベクトルであり、Lは光源(平行光源)LSのベクトルであり、Rは反射ベクトルであり、R=−E+2(N・E)Nと表すことができる。nは鏡面反射指数(ハイライト特性係数)である。
【0080】
このフォンの照明モデルでは、スペキュラ光の強さはライトベクトルLと反射ベクトルRの内積のべき乗で表される。従って、ライトベクトルLと反射ベクトルRの向きが近くなる場所ほど、スペキュラ光が強くなる。また鏡面反射指数nが例えば10以下というように小さい場合には、広い範囲にわたって鏡面反射のハイライトが広がり、鏡面反射指数Pが例えば100ぐらいに大きい場合には、ハイライトが小さな点になる。
【0081】
図6(B)はブリン・フォンの照明モデルを説明する図であり、この照明モデルは下式(2)のように表される。
【0082】
I=Ksp×(N・H)×Isp+Kdf×(N・L)×Idf+Kam×Iam (2)
ここで、Hはハーフベクトルであり、H=(E+L)/|E+L|と表すことができる。
【0083】
このブリン・フォンの照明モデルでは、スペキュラ光の強さは法線ベクトルNとハーフベクトルHの内積のべき乗で表される。従って、法線ベクトルNとハーフベクトルHの向きが近くなる場所ほど、スペキュラ光が強くなる。
【0084】
本実施形態では、上式(1)、(2)に示すような照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、半透明オブジェクトの反射色を求める。そして、スペキュラ色により求められた反射色の強さに応じてその値が変化するα値を求める。
【0085】
例えば上式(1)のフォンの照明モデルでは、スペキュラ色はCsp=Ksp×(L・R)×Ispというように求められる。また上式(2)のブリン・フォンの照明モデルでは、スペキュラ色はCsp=Ksp×(N・H)×Ispというように求められる。即ち光源ベクトルLと、仮想カメラVCの視線ベクトルEと、半透明オブジェクト(移動体)の法線ベクトルNに基づいて、スペキュラ色Cspが求められる。
【0086】
そして、求められたスペキュラ色Cspに基づいて、反射色(スペキュラ色)の強さパラメータSP=F(Csp)が求められ、強さパラメータSPに基づいて、α値α=G(SP)が求められる。なお、FはCspを引数とする所定の関数を表し、GはSPを引数とする所定の関数を表す。
【0087】
このように照明モデルに基づきスペキュラ色を求め、このスペキュラ色に基づきα値を求めれば、スペキュラ色の強弱に応じてα値を変化させることが可能になる。従って、例えばスペキュラ光の鏡面反射が弱い領域ではα値が小さくなる一方で、スペキュラ光の鏡面反射が強い領域ではα値が大きくなる表現が可能になる。これにより、透明な窓ガラスに対するスペキュラ光の映り込みのリアルな画像表現が可能になる。
【0088】
なお本実施形態で用いる照明モデルは上式(1)(2)に限定されない。例えば上式(1)(2)と数学的にほぼ等価な照明モデルであってもよいし、上式(1)(2)の照明モデルに対して明るさ補正等を行ってもよい。或いは、上式(1)(2)とは異なる式で表される照明モデルを用いてもよい。
【0089】
2.4 環境マッピングによるライティング処理
図7(A)では、移動体MOBへの背景の光の映り込みを表現するために、環境マッピングを利用している。具体的には、キューブオブジェクトCOB(広義には環境マッピング用オブジェクト)の画像を、環境テクスチャとしてオブジェクト空間で移動する移動体MOBに対して環境マッピングする。なお図8に、キューブ環境マッピングを用いる場合の環境テクスチャの例を示す。
【0090】
例えば図7(A)において、仮想カメラVCは移動体MOBに追従して移動しており、仮想カメラVCから見える画像には移動体MOBの画像が映し出されている。この時、キューブオブジェクトCOBの内側には、仮想カメラVCにより周囲を見回した時の背景画像が描かれており、この背景画像を、環境テクスチャとして移動体MOBにマッピングする。このようにすれば、周囲の環境を表す環境テクスチャが、移動体MOBの窓(半透明オブジェクト)に対してもマッピングされるようになり、窓への背景の光の映り込みを実現できる。そして、このような環境マッピングで得られたマッピング色により、窓の反射色を求め、求められた反射色の強さに応じてα値を変化させる。
【0091】
このようにすれば、窓に対する背景の光の映り込みが、移動体MOB、仮想カメラVC等の位置関係に応じて、リアルタイムに変化するようになる。即ち、映り込みが少ない位置関係にある場合には、図4のような画像が生成され、映り込みが多い位置関係にある場合には、図5のような画像が生成されるようになり、更にリアルな映り込み表現を実現できる。
【0092】
例えば図6(A)、図6(B)の照明モデルを用いる手法では、平行光源の鏡面反射による映り込みしか表現できない。これに対して図7(A)の環境マッピングを用いる手法では、周囲の複雑な背景の光の映り込みを表現できる。即ち図5に示すように、車内部が透けてみる透明な窓ガラスに対して、背景の明るい部分が映り込むリアルな表現を実現できる。
【0093】
なお図7(A)の環境マッピングは以下の手法で実現できる。即ち図7(A)において移動体MOBの各点(頂点、ピクセル、面)には法線ベクトルNが設定される。この場合に、例えば仮想カメラVCの視線ベクトルと法線ベクトルNとに基づいて、光の反射ベクトルRを求める。そしてこの反射ベクトルRを用いて環境テクスチャをフェッチする。具体的には、反射ベクトルRの例えばX、Y座標(或いは座標変換後のX、Y座標)に基づいて、所定の演算式により、環境マッピングのためのテクスチャ座標U、Vを求める。そして求められたテクスチャ座標U、Vに基づいて、キューブオブジェクトCOBの画像(環境テクスチャ)をサンプリングして、移動体MOBにマッピングする。このようにすれば、移動体MOBや仮想カメラVCの位置関係に応じてリアルに変化する映り込み画像を、移動体MOBにマッピングできる。
【0094】
なお図7(A)では、キューブ環境マッピングの例を示しているが、本実施形態の環境マッピングはこのようなキューブ環境マッピングに限定されず、スフィア環境マッピング、パラボロイド環境マッピング、シリンダ環境マッピングなどであってもよい。また、スペキュラ光による鏡面反射の表現は、図7(B)に示すように、円の中心に近づくほど明るくなり、円の中心から遠ざかるほど暗くなる反射マップテクスチャを用いた反射マッピングにより実現してもよい。
【0095】
2.5 α値の演算
次に、α値の具体的な演算手法について説明する。例えば図9(A)、図9(B)では、半透明オブジェクトWOBの反射色の強さパラメータ(明るさパラメータ)をSPとし、マテリアルパラメータをP1、P2とした場合に、これらのパラメータSP、P1、P2を用いた演算式によりα値を求めている。例えば反射色の強さパラメータは下式のような演算式により求めることができる。
【0096】
SP=F(Csp)=K×Rsp+K×Gsp+K×Bsp (3)
ここで、K、K、Kとしては、RGB−YUV変換においてRGB成分をY成分に変換する係数等を用いることができ、例えばK=0.299、K=0.587、K=0.114である。これにより反射色の強さ(明るさ、輝度)を抽出できる。
【0097】
また、α値は例えば下式のような演算式で求めることができる。
【0098】
α=G(SP)=P1+P2×SP (4)
ここで、マテリアルパラメータP1は、半透明オブジェクトWOBのデフォルトの透明度を表すパラメータであり、マテリアルパラメータP2は、反射色強度−α値の変換係数パラメータである。
【0099】
そして本実施形態では、半透明オブジェクトWOBのマテリアル(種類、材質)に応じて異なった値に設定されるマテリアルパラメータP1、P2に基づいて、α値を求めている。
【0100】
例えば図9(A)では、マテリアルパラメータP1が小さな値に設定されており、これにより、透明度が高い透明ガラスを表現できる。一方、図9(B)ではマテリアルパラメータP1が大きな値に設定されており、これにより、透明度が低いくもりガラス(スモークガラス)を表現できる。例えばP1=0に設定すると、反射色が映り込まない部分においては、α=0になり、下の色CDが完全に透けて見えるようになる。一方、P1を大きくすると、反射色が映り込まない部分においても、α=P1になるため、半透明な部分を介して下の色CDが見えるようになる。またマテリアルパラメータP2を大きな値に設定すればするほど、反射色の強い部分での透明度と反射色の弱い部分での透明度との差が大きくなる。
【0101】
このように上式(4)の演算式によりα値を求めれば、マテリアルパラメータP1、P2を制御することで、種々のマテリアルの半透明オブジェクトWOBを表現できるようになり、少ない処理負荷で多様な画像表現を実現できる。また例えばマテリアルパラメータP1、P2を、ゲーム処理に結果に応じてリアルタイムに変化させれば、アニメーション的な表現も可能になり、更に多様な画像表現を実現できる。
【0102】
なおα値の取得手法は上式(3)、(4)を用いる手法に限定されない。例えば上式(3)とは異なる演算式(例えば係数や次数や関数の形が異なる式)で反射光の強さを求めてもよいし、上式(4)とは異なる演算式(例えば次数や次数や関数の形が異なる式)でα値を求めてもよい。また、反射光の強さを求めずに、法線ベクトル、視線ベクトル、光源ベクトル等に基づいて直接にα値を求めることも可能である。
【0103】
或いは、環境マッピングを有効活用してα値を取得してもよい。例えば図10では、環境テクスチャの色チャネル(色プレーン、色テクセル)には半透明オブジェクトのマッピング色Cmpが設定されている。一方、環境テクスチャのαチャネル(αプレーン、αテクセル)には、マッピング色Cmpの強さ(明るさ)に応じてその値が変化するα値が設定される。即ちマッピング色Cmpが強くなればなるほど、半透明オブジェクトの色のブレンディング率が高くなるα値が設定される。
【0104】
このようにすれば、環境マッピングを利用して、マッピング色Cmpである半透明オブジェクトの反射色の強さに応じてその値が変化するα値を取得できるようになる。即ち、図7(A)のように環境マッピングにより反射色を求めている場合には、反射色となるマッピング色Cmpのフェッチの際に、α値もフェッチできる。従って、上式(3)、(4)のような演算も不要となり、環境マッピングを有効活用してα値を取得できるため、処理負荷を軽減できる。
【0105】
2.6 スペキュラ色の強さによるα値の演算
図11では、反射色のうちディフューズ色やアンビエント色を除くスペキュラ色の強さに応じてα値を演算している。
【0106】
具体的には図6(A)、図6(B)で説明した手法により、照明モデルによるスペキュラ色Csp’を求める。また図7(A)で説明した手法により、環境マッピングのマッピング色Cmpを擬似的なスペキュラ色として求める。そしてCsp’Cmpにより、α値の算出に用いるスペキュラ色Csp=Csp’+Cmpを求める。
【0107】
また照明モデル(例えばランバードの拡散照明モデル)を用いてディフューズ色Cdf、アンビエント色Camを求める。例えばディフューズ色Cdf、アンビエント色Camは、下式の照明モデルにより求めることができる。
【0108】
I=Kdf×(N・L)×Idf+Kam×Iam (5)
そして、このようにして求められたスペキュラ色Csp、ディフューズ色Cdf、アンビエント色Camにより、半透明オブジェクトの色CS(ソース色)を、下式のように求めることができる。
【0109】
CS=Csp+Cdf+Cam (6)
このように半透明オブジェクトの色CSは、少なくともスペキュラ色Cspとディフューズ色Cdfとアンビエント色Camに基づいて求められる。
【0110】
そして、最終的な色CQは、ソース色CSとディフューズ色CDとをα値に基づいてαブレンディングすることにより、下式のように求めることができる。
【0111】
CQ=(1−α)×CD+α×CS (7)
この時、α値は図11のA1に示すように、スペキュラ色Csp=Csp’+Cmpにより求められる。具体的にはスペキュラ色Csp(広義には反射色)の強さパラメータSP=F(Csp)が求められ、強さパラメータSPによりα値α=G(SP)が求められる。
【0112】
このように図11では、反射光のうちディフューズ色Cdfとアンビエント色Camを除くスペキュラ色Cspを求め、スペキュラ色Cspの強さに応じてα値を変化させている。このようにすることで、半透明オブジェクトに対するよりリアルな映り込み表現を実現できる。即ちα値の取得にディフューズ色Cdfとアンビエント色Camを用いると、マテリアルの色等がα値に影響を及ぼしてしまう。例えば白い半透明オブジェクトでは、光の映り込みが強くない領域においてもα値が大きくなってしまい、リアルな映り込み表現が難しくなる。これに対して、スペキュラ色Cspの強さに応じてα値を変化させれば、光の映り込みが強い領域ではα値が大きくなり、光の映り込みが弱い領域ではα値が大きくならないため、半透明オブジェクトへのよりリアルな映り込み表現を実現できる。従って、画像のリアル度の向上のためには、図11のようにスペキュラ色Cspの強さに応じてα値を変化させる手法が望ましい。
【0113】
2.7 詳細な処理例
次に本実施形態の詳細な処理例を図12、図13のフローチャートを用いて説明する。
【0114】
まず、移動体を含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定処理を行う(ステップS1)。次に、車等の移動体をオブジェクト空間内で移動させる移動体演算処理を行う(ステップS2)。具体的には、操作部160からの操作データやプログラムなどに基づいて、1フレームごとの移動体の位置の変化、方向の変化、動作の変化が、リアルタイムに演算される。
【0115】
次に頂点シェーダプログラムによる頂点シェーダ処理を行う(ステップS3)。この頂点シェーダ処理により得られた頂点座標、視線ベクトル、光源ベクトル、法線ベクトル等は、出力レジスタに格納され、ピクセルシェーダ処理に渡される。
【0116】
次に、ピクセルシェーダプログラムによるピクセルシェーダ処理を開始する(ステップS4)。このピクセルシェーダ処理によりステップS5〜S12の処理が行われる。
【0117】
具体的には、まず、図6(A)、図6(B)で説明したように、光源ベクトルL、視線ベクトルE、法線ベクトルNに基づいて、スペキュラ色Csp’を求める(ステップS5)。また図7(A)で説明したように、環境マッピングを行いマッピング色Cmpをフェッチする(ステップS6)。そしてスペキュラ色Csp=Csp’+Cmpを求める(ステップS7)。
【0118】
次にスペキュラ色Cspの強さパラメータSP=F(Csp)=K×Rsp+K×Gsp+K×Bspを求める(ステップS8)。そして、マテリアルパラメータP1、P2と強さパラメータSPに基づき、α=G(SP)=P1+P2×SPを求める(ステップS9)。
【0119】
次に、照明モデルに基づきディフューズ色Cdf、アンビエント色Camを求める(ステップS10)。そしてスペキュラ色Csp、ディフューズ色Cdf、アンビエント色Camに基づいて半透明オブジェクトの色CS=Csp+Cdf+Camを求める(ステップS11)。そして、色CSとディスティネーション色CDを、ステップS9で求められたα値に基づきブレンディングし、最終的な色CQ=(1−α)×CD+α×CSを求める(ステップS12)。
【0120】
図13は図10の手法を実現する処理のフローチャートである。ステップS21〜ステップS25では、図12のステップS1〜S5と同様の処理を行う。次に、環境マッピングを行い、マッピング色Cmpのみならずα値をフェッチする(ステップS26)。このα値は、マッピング色Cmpの強さに応じてその値が変化するα値となっている。
【0121】
次に、スペキュラ色Csp=Csp’+Cmpを求める(ステップS27)。そして図13では図12のステップS8、S9の処理が省略される。そしてステップS28〜S30では、図12のステップS10〜S12と同様の処理を行う。この場合に、ステップS30では、ステップS26の環境マッピングによりフェッチされたα値に基づき、αブレンディング処理が行われる。
【0122】
3.ハードウェア構成
図14(A)に本実施形態を実現できるハードウェアの構成例を示す。
【0123】
CPU900(メインプロセッサ)は、複数のCPUコア1、CPUコア2、CPUコア3を含むマルチコアプロセッサである。またCPU900は図示しないキャッシュメモリを含む。CPUコア1、2、3の各々にはベクタ演算器等が設けられている。そしてCPUコア1、2、3の各々は、例えば2つのH/Wスレッド処理をコンテクストスイッチをすることなしに並列実行でき、マルチスレッド機能がハードウェアでサポートされている。そして3つのCPUコア1、2、3の合計で、6つのH/Wスレッド処理を並列実行できる。
【0124】
GPU910(描画プロセッサ)は、頂点処理やピクセル処理を行って、描画(レンダリング)処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル(フラグメント)の描画色の決定を行う。1フレーム分の画像がVRAM920(フレームバッファ)に書き込まれると、その画像はビデオ出力を介してTVなどのディスプレイに表示される。なおメインメモリ930はCPU900やGPU910のワークメモリとして機能する。またGPU910では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またGPU910にはハードウェアのテッセレータも備えられている。またGPU910は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【0125】
ブリッジ回路940(サウスブリッジ)は、システム内部の情報流通を制御する回路であり、USBコントローラ(シリアルインターフェース)、ネットワーク(イーサネット(登録商標))の通信コントローラ、IDEコントローラ、或いはDMAコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路940により、ゲームコントローラ942、メモリーカード944、HDD946、DVDドライブ948との間のインターフェース機能が実現される。
【0126】
なお本実施形態を実現できるハードウェア構成は図14(A)に限定されず、例えば図14(B)のような構成であってもよい。
【0127】
図14(B)ではCPU902が、プロセッサエレメントPPと8つのプロセッサエレメントPE1〜PE8を含む。プロセッサエレメントPPは汎用的なプロセッサコアであり、プロセッサエレメントPE1〜PE8は比較的シンプルな構成のプロセッサコアである。そしてプロセッサエレメントPPとプロセッサエレメントPE1〜PE8のアーキテクチャは異なっており、プロセッサエレメントPE1〜PE8は、複数のデータに対して1命令で同じ処理を同時にできるSIMD型のプロセッサコアとなっている。これによりストリーミング処理などのマルチメディア処理を効率的に実行できる。プロセッサエレメントPPは、2つのH/Wスレッド処理を並列実行でき、プロセッサエレメントPE1〜PE8の各々は、1つのH/Wスレッド処理を実行できる。従って、CPU902では、合計で10個のH/Wスレッド処理の並列実行が可能になる。
【0128】
図14(B)では、GPU912とCPU902の連携が密になっており、GPU912は、CPU902側のメインメモリ930に直接にレンダリング処理を行うことができる。また例えばCPU902がジオメトリ処理を行って、頂点データを転送したり、GPU912からCPU902にデータを戻すことも容易にできる。またCPU902が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション(平面分割)やドットフィルをCPU902が実行できる。例えば抽象度の高い処理はCPU902が行い、抽象度が低い細かな処理はGPU912が行うというような役割分担が可能である。
【0129】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ(CPU、GPU)に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0130】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(環境マッピング用オブジェクト、反射色等)と共に記載された用語(キューブオブジェクト、スペキュラ色等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【0131】
また、ライティング処理、環境マッピング処理、α値取得処理、αブレンディング処理も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0132】
【図1】本実施形態の画像生成システムのブロック図の例。
【図2】図2(A)、図2(B)は車の窓に対する光の映り込み表現の説明図。
【図3】図3(A)、図3(B)は反射色の強さによるα値の制御手法の説明図。
【図4】本実施形態により生成された画像の例。
【図5】本実施形態により生成された画像の例。
【図6】図6(A)、図6(B)はスペキュラ色の照明モデルの説明図。
【図7】図7(A)、図7(B)は環境マッピング、反射マッピングの説明図。
【図8】環境テクスチャの例。
【図9】図9(A)、図9(B)はα値の演算手法の説明図。
【図10】環境テクスチャのαチャネルに設定されるα値を利用する手法の説明図。
【図11】スペキュラ色の強さに応じてα値を変化させる手法の説明図。
【図12】本実施形態の詳細な処理を説明するフローチャート。
【図13】本実施形態の詳細な処理を説明するフローチャート。
【図14】図14(A)、図14(B)はハードウェア構成例。
【符号の説明】
【0133】
100 処理部、108 ゲーム演算部、110 オブジェクト空間設定部、
112 移動体演算部、114 仮想カメラ制御部、120 画像生成部、
122 ライティング処理部、124 テクスチャマッピング部、126 α値取得部、
128 αブレンディング部、130 音生成部、160 操作部、170 記憶部、
172 主記憶部、174 描画バッファ、176 モデルデータ記憶部、
178 テクスチャ記憶部、180 情報記憶媒体、190 表示部、192 音出力部、
194 補助記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
半透明オブジェクトのライティング処理を行い、前記半透明オブジェクトの光の反射色を求めるライティング処理部と、
求められた前記半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記半透明オブジェクトの色と、前記半透明オブジェクトの描画先の色であるディスティネーション色とを、求められたα値に基づいてブレンディングするαブレンディング部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記ライティング処理部は、
照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、前記半透明オブジェクトの反射色を求め、
前記α値取得部は、
前記スペキュラ色により求められた反射色の強さに応じてその値が変化するα値を求めることを特徴とするプログラム。
【請求項3】
請求項2において、
前記ライティング処理部は、
光源ベクトルと、仮想カメラの視線ベクトルと、前記半透明オブジェクトの法線ベクトルとに基づいて、前記半透明オブジェクトのスペキュラ色を求めることを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記半透明オブジェクトの周囲の環境を表す環境テクスチャを前記半透明オブジェクトに対して環境マッピングするテクスチャマッピング部として、
コンピュータを機能させ、
前記ライティング処理部は、
前記環境マッピングで得られたマッピング色により、前記半透明オブジェクトの反射色を求め、
前記α値取得部は、
前記環境マッピングのマッピング色により求められた反射色の強さに応じてその値が変化するα値を求めることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記α値取得部は、
前記半透明オブジェクトの反射色が強くなればなるほど前記半透明オブジェクトの色のブレンディング率が高くなるα値を求め、
前記αブレンディング部は、
前記半透明オブジェクトの反射色が強くなればなるほどディスティネーション色に対する前記半透明オブジェクトの色のブレンディング率が高くなるαブレンディング処理を行うことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記α値取得部は、
前記半透明オブジェクトの反射色の強さパラメータをSPとし、マテリアルパラメータをP1、P2とした場合に、α=P1+P2×SPの演算式でα値を求めることを特徴とするプログラム。
【請求項7】
請求項6において、
前記α値取得部は、
前記半透明オブジェクトのマテリアルに応じて異なった値に設定される前記マテリアルパラメータP1、P2に基づいて、α値を求めることを特徴とするプログラム。
【請求項8】
請求項1乃至4のいずれかにおいて、
前記半透明オブジェクトの周囲の環境を表す環境テクスチャを前記半透明オブジェクトに対して環境マッピングするテクスチャマッピング部として、
コンピュータを機能させ、
前記環境テクスチャの色チャネルには前記半透明オブジェクトのマッピング色が設定され、前記環境テクスチャのαチャネルには、前記マッピング色の強さに応じてその値が変化するα値が設定され、
前記α値取得部は、
前記環境マッピングにより、前記マッピング色である前記半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めることを特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記αブレンディング部は、
少なくともスペキュラ色とディフューズ色とアンビエント色に基づいて求められた半透明オブジェクトの色と、ディスティネーション色とを、求められたα値に基づいてブレンディングすることを特徴とするプログラム。
【請求項10】
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、前記移動体の窓オブジェクトの反射色を求めるライティング処理部と、
求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項11】
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体の周囲の環境を表す環境テクスチャを前記移動体に対して環境マッピングするテクスチャマッピング部と、
前記環境マッピングで得られたマッピング色により、前記移動体の窓オブジェクトの光の反射色を求めるライティング処理部と、
求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項12】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至11のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項13】
画像を生成する画像生成システムであって、
半透明オブジェクトのライティング処理を行い、前記半透明オブジェクトの光の反射色を求めるライティング処理部と、
求められた前記半透明オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記半透明オブジェクトの色と、前記半透明オブジェクトの描画先の色であるディスティネーション色とを、求められたα値に基づいてブレンディングするαブレンディング部とを含むことを特徴とする画像生成システム。
【請求項14】
画像を生成する画像生成システムであって、
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色を求め、求められたスペキュラ色に基づいて、前記移動体の窓オブジェクトの反射色を求めるライティング処理部と、
求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部とを含むことを特徴とする画像生成システム。
【請求項15】
画像を生成する画像生成システムであって、
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体の周囲の環境を表す環境テクスチャを前記移動体に対して環境マッピングするテクスチャマッピング部と、
前記環境マッピングで得られたマッピング色により、前記移動体の窓オブジェクトの光の反射色を求めるライティング処理部と、
求められた前記窓オブジェクトの反射色の強さに応じてその値が変化するα値を求めるα値取得部と、
前記窓オブジェクトの色と、前記窓オブジェクトを介して見える前記移動体の内部色とを、求められたα値に基づいてブレンディングするαブレンディング部を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図6】
image rotate

【図7】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate


【公開番号】特開2008−77408(P2008−77408A)
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願番号】特願2006−256056(P2006−256056)
【出願日】平成18年9月21日(2006.9.21)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】