説明

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

【課題】少ない処理負荷で効果的なカラーシフトを実現できるプログラム、情報記憶媒体及び画像生成システムの提供。
【解決手段】画像生成システムは、オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、スペキュラ中心からその周囲に向かうにつれて第1の補間色からスペキュラ色に変化する第2の補間色を求める第2の色補間部と、少なくとも第2の補間色とディフューズ色に基づいて、オブジェクトの色を求める色合成部を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、車、キャラクタ、戦闘機などの移動体のオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラなどの操作部を用いて自車を操作し、他のプレーヤが操作する他車と競争することでゲームを楽しむ。
【0003】
このようなレースゲームでは、プレーヤが操作できるレースカーとして、様々な配色のレースカーが用意される。プレーヤは、これらの用意されたレースカーの中から、自身が好む配色のレースカーを選択して、ゲームプレイを楽しむ。従って、このようなプレーヤの選択対象となるレースカーとして、例えば現実世界の車において流行しているマジョーラ(日本ペイントの登録商標)と呼ばれる玉虫色の配色が施されたレースカーについても用意することが望ましい。
【0004】
しかしながら、このようなレースゲームの画像を生成する画像生成システムでは、一般的に、RGBのカラーモデルを使用して色を表現している。一方、玉虫色のカラーシフトでは、例えば虹の色のように光の波長に応じて色が変化する。従って、これまでの画像生成システムでは、玉虫色のようなカラーシフトを実現することが困難であるという課題があった。
【特許文献1】特開2001−325605号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷で効果的なカラーシフトを実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
本発明は、画像を生成する画像生成システムであって、オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、少なくとも前記第2の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0007】
本発明によれば、第1の色補間により第1の補間色が求められ、第2の色補間により第2の補間色が求められる。このようにして求められた第2の補間色は、例えば、第1の設定色から第2の設定色を経由してスペキュラ色に変化するというような色になる。そして本発明では、この第2の補間色とディフューズ色に基づいて、オブジェクトの色が求められるため、少ない処理負荷で効果的なカラーシフトを実現できる。
【0008】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第1の色補間部は、前記スペキュラ色の強さに応じてその値が変化する第1の補間係数を求め、前記第1、第2の設定色を前記第1の補間係数で補間することで、前記第1の補間色を求めるようにしてもよい。
【0009】
このようにすれば、スペキュラ色の強さに応じた第1の補間係数で第1の色補間が行われるようになるため、スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化するカラーシフトを実現できる。
【0010】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第1の色補間部は、前記スペキュラ色の強さパラメータをSPとした場合に、R1=a×SP+bの演算式により前記第1の補間係数R1を求めるようにしてもよい。
【0011】
このようにすれば、単なる線形補間では実現できない補間処理の実現が可能になる。
【0012】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第2の色補間部は、前記スペキュラ色の強さに応じてその値が変化する第2の補間係数を求め、前記第1の補間色と前記スペキュラ色を前記第2の補間係数で補間することで、前記第2の補間色を求めるようにしてもよい。
【0013】
このようにすれば、スペキュラ色の強さに応じた第2の補間係数で第2の色補間が行われるようになるため、スペキュラ中心からその周囲に向かうにつれて第1の補間色から第2の補間色を経由してスペキュラ色に変化するカラーシフトを実現できる。
【0014】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第1の色補間部は、オブジェクト毎に異なる色に設定された前記第1、第2の設定色を補間することで、前記第1の補間色を求めるようにしてもよい。
【0015】
このようにすれば、オブジェクト毎に異なるカラーシフトを実現でき、生成される画像の多様度を増すことができる。
【0016】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求めるスペキュラ用法線ベクトル取得部と、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求めるディフューズ用法線ベクトル取得部を含み(スペキュラ用法線ベクトル取得部とディフューズ用法線ベクトル取得部としてコンピュータを機能させ)、前記ライティング処理部は、求められた前記スペキュラ用法線ベクトルに基づいてオブジェクトの前記スペキュラ色を求め、求められた前記ディフューズ用法線ベクトルに基づいてオブジェクトの前記ディフューズ色を求めるようにしてもよい。
【0017】
本発明では、スペキュラ用法線ベクトルとディフューズ用法線ベクトルというように、別々の法線ベクトルを用いて、スペキュラ色、ディフューズ色が求められる。従って、スペキュラ用法線ベクトルの摂動成分と、ディフューズ用法線ベクトルの摂動成分を別々に制御することが可能になるため、スペキュラやディフューズについての質感表現を向上できる。
【0018】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ライティング処理部は、光源ベクトルと、仮想カメラの視線ベクトルと、前記スペキュラ用法線ベクトルに基づいて、オブジェクトの前記スペキュラ色を求め、前記光源ベクトルと、前記ディフューズ用法線ベクトルに基づいて、オブジェクトの前記ディフューズ色を求めるようにしてもよい。
【0019】
このようにすれば、照明モデルによりスペキュラ色を求める際と、照明モデルによりディフューズ色を求める際とで、異なる法線ベクトルを使用できるようになるため、ライティング処理による多様な画像表現が可能になる。
【0020】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、オブジェクトの法線ベクトル情報に基づいて、オブジェクトの基本法線ベクトルを求める基本法線ベクトル取得部を含み(基本法線ベクトル取得部としてコンピュータを機能させ)、前記スペキュラ用法線ベクトル取得部は、前記基本法線ベクトルと前記スペキュラ用法線摂動成分に基づいて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、前記基本法線ベクトルと前記ディフューズ用法線摂動成分に基づいて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【0021】
このようにすれば、スペキュラ用法線ベクトル、ディフューズ用法線ベクトルに、オブジェクトの法線ベクトル情報を反映させることが可能になり、画像のリアル度を増すことができる。
【0022】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線ベクトル取得部は、オブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャに基づいて、前記基本法線ベクトルを求めるようにしてもよい。
【0023】
このようにすれば、例えばオブジェクトの法線ベクトル情報や法線テクスチャが反映された基本法線ベクトルの取得が可能になる。
【0024】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、基本法線摂動成分を求める基本法線摂動成分取得部を含み(基本法線摂動成分取得部としてコンピュータを機能させ)、前記スペキュラ用法線ベクトル取得部は、前記基本法線摂動成分に基づき前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、前記基本法線摂動成分に基づき前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【0025】
このようにすれば、共通の基本法線摂動成分を用いて、スペキュラ用法線摂動成分とディフューズ用法線摂動成分を求めることが可能になるため、処理負荷を軽減できる。
【0026】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スペキュラ用法線ベクトル取得部は、前記基本法線摂動成分をNRとし、法線摂動成分の割合パラメータをβとした場合に、β×NRに応じた前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、(1−β)×NRに応じた前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【0027】
このようにすれば、1つの割合パラメータβを制御するだけで、スペキュラ用法線摂動成分とディフューズ用法線摂動成分の大小関係を連動して制御することが可能になるため、制御処理を簡素化できる
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スペキュラ用法線ベクトル取得部は、法線摂動成分の強さパラメータをCPとした場合に、NRS=CP×β×NRの演算式により前記スペキュラ用法線摂動成分NRSを求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、NRD=CP×(1−β)×NRの演算式により前記ディフューズ用法線摂動成分NRDを求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【0028】
このようにすれば、1つの強さパラメータCPを制御するだけで、摂動の度合いを制御することが可能になるため、制御処理を簡素化できる。
【0029】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線摂動成分取得部は、テクスチャを繰り返しマッピングするリピートモードにテクスチャラッピングモードを設定して、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めるようにしてもよい。
【0030】
このようにすれば、オブジェクトの接近画像を生成した場合にも、摂動成分テクスチャの十分な解像度を維持でき、質感を維持できる。
【0031】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線摂動成分取得部は、倍率パラメータをP1、P2とした場合に、U’=P1×U、V’=P2×Vの変換式によりテクスチャ座標変換を行って、前記摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めるようにしてもよい。
【0032】
このようにすれば、倍率パラメータP1、P2によりテクスチャの繰り返し回数を制御できる。
【0033】
また本発明は、画像を生成する画像生成システムであって、移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、少なくとも前記第2の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0034】
本発明によれば、オブジェクト空間を移動する移動体のスペキュラ色やディフューズ色が求められる。そしてこのスペキュラ色に応じた第1、第2の色補間により第1、第2の補間色が求められる。このようにして求められた第2の補間色は、例えば、第1の設定色から第2の設定色を経由してスペキュラ色に変化するというような色になる。そして本発明では、この第2の補間色とディフューズ色に基づいて、移動体の色が求められるため、少ない処理負荷で効果的なカラーシフトを実現できる。また移動体の移動に伴い、移動体の色のカラーシフトの様子もリアルタイムに変化するようになり、これまでにないリアルな画像を生成できる。
【発明を実施するための最良の形態】
【0035】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0036】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0037】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、ステアリング、アクセル、ブレーキ、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0038】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。この記憶部170は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置194よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0039】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0040】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0041】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される大容量の記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードや、HDDなどにより実現できる。この補助記憶装置194は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置194は、ゲームの途中結果などのセーブデータや、プレーヤ(ユーザ)の個人的画像データや音楽データなどを保存するために使用される。
【0042】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0043】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0044】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170(主記憶部172)をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0045】
処理部100は、ゲーム演算部108、オブジェクト空間設定部110、移動体演算部112、仮想カメラ制御部114、画像生成部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0046】
ゲーム演算部108はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0047】
オブジェクト空間設定部110は、モデルオブジェクト(車、戦闘機、人、ロボット、ミサイル、弾等の移動体)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のモデルデータ記憶部176には、移動体(車、戦闘機、キャラクタ)等のモデルデータが記憶されている。そしてオブジェクト空間設定部110は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定(配置)処理を行う。
【0048】
移動体演算部112は、移動体(移動体オブジェクト)を移動させるための演算を行う。また移動体を動作させるための演算も行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0049】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0050】
例えば仮想カメラにより車、キャラクタ、戦闘機などの移動体を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動体演算部112で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0051】
なお本実施形態の移動体は、自プレーヤが操作する移動体であってもよいし、他のプレーヤやコンピュータが操作(制御)する移動体であってもよい。また本実施形態により生成される画像は、プレーヤのゲームプレイにより画像が変化する通常のゲーム画像であってもよいし、ゲーム中以外に表示されるリプレイ画像、オープニング画像、エンディング画像であってもよい。
【0052】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずモデル(オブジェクト)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0053】
頂点処理(頂点シェーダ処理)では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0054】
ピクセル処理(ピクセルシェーダ処理)では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0055】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0056】
また画像生成部120は、テクスチャマッピング処理を行うことができる。ここでテクスチャマッピング処理は、テクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクト(ポリゴン)にマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点やピクセルに設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部178からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0057】
また画像生成部120は、α値に基づくαブレンディング処理(色合成処理、半透明合成処理)を行うこともできる。ここでαブレンディング処理としては、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。またα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0058】
画像生成部120は、ライティング処理部121、第1の色補間部122、第2の色補間部123、色合成部124、スペキュラ用法線ベクトル取得部126、ディフューズ用法線ベクトル取得部127、基本法線ベクトル取得部128、基本法線摂動成分取得部129を含む。なおこれらの一部を省略する構成としてもよい。
【0059】
ライティング処理部121は、照明モデル等に基づくライティング処理(シェーディング処理)を行う。具体的にはこのライティング処理は、光源情報(光源ベクトル、光源色、明るさ、光源タイプ等)、仮想カメラ(視点)の視線ベクトル、オブジェクトの法線ベクトル、オブジェクトのマテリアル(色、材質)などを用いて行われる。そして、このオブジェクト(移動体)のライティング処理により、オブジェクトの少なくともスペキュラ色とディフューズ色が求められる。
【0060】
なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【0061】
第1の色補間部122は、スペキュラ中心からその周囲に向かうにつれて(スペキュラ中心から放射方向に沿って)、第1の設定色から第2の設定色に変化する第1の補間色を求める処理を行う。ここでスペキュラ中心は例えばスペキュラ強度が最も強い部分である。具体的には第1の色補間部122は、ライティング処理部121により求められたスペキュラ色の強さ(明るさ、インテンシティ、パワー)に応じてその値が変化する第1の補間係数を求める。そして、第1、第2の設定色(第1、第2の基準色)を、求められた第1の補間係数で補間することで、第1の補間色を求める。例えばスペキュラ色の強さパラメータをSPとした場合に、SPを引数とする関数G(SP)により第1の補間係数を求めることができる。例えばR1=G(SP)=a×SP+bの演算式により第1の補間係数R1を求めることができる。
【0062】
第2の色補間部123は、スペキュラ中心からその周囲に向かうにつれて(スペキュラ中心から放射方向に沿って)、第1の補間色からスペキュラ色に変化する第2の補間色を求める処理を行う。具体的には第2の色補間部123は、ライティング処理部121により求められたスペキュラ色の強さに応じてその値が変化する第2の補間係数を求める。そして、第1の色補間部122で求められた第1の補間色と、ライティング処理部121で求められたスペキュラ色を、第2の補間係数で補間することで、第2の補間色を求める。例えばスペキュラ色の強さパラメータをSPとした場合に、SPを引数とする関数H(SP)により第2の補間係数を求めることができる。
【0063】
色合成部124は、最終的な色を求めるための色合成処理を行う。例えば色合成部124は、少なくとも第2の補間色とディフューズ色に基づいて、オブジェクトの色を求める。具体的には、第2の補間色を補間後のスペキュラ色に設定し、このスペキュラ色と、ディフューズ色及びアンビエント色を合成して、オブジェクトの色(反射色)を求める。
【0064】
スペキュラ用法線ベクトル取得(演算)部126は、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求める処理を行う。このスペキュラ用法線ベクトルは、オブジェクトの反射色であるスペキュラ色を求める際に使用される法線ベクトルである。
【0065】
ディフューズ用法線ベクトル取得(演算)部127は、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求める処理を行う。このディフューズ用法線ベクトルは、オブジェクトの反射色であるディフューズ色を求める際に使用される法線ベクトルである。
【0066】
基本法線ベクトル取得部128は、オブジェクトの法線ベクトル情報(頂点法線ベクトル等)に基づいて、オブジェクトの基本法線ベクトル(オブジェクトのデフォルトの法線ベクトル。摂動前の法線ベクトル)を求める処理を行う。具体的には、例えばオブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャ(バンプテクスチャ)に基づいて、基本法線ベクトルを求める。
【0067】
基本法線摂動成分取得部129は、スペキュラ用法線摂動成分やディフューズ用法線摂動成分を求めるための基本法線摂動成分を求める処理を行う。具体的には、テクスチャを繰り返しマッピングするリピートモード(繰り返しモード)にテクスチャラッピングモードを設定する。そして、各テクセルに摂動成分(法線ベクトルの摂動成分)が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、基本法線摂動成分を求める。
【0068】
そして本実施形態では、基本法線摂動成分取得部129が基本法線摂動成分を求めると、スペキュラ用法線ベクトル取得部126は、求められた基本法線摂動成分に基づいて、スペキュラ用法線摂動成分を求める。例えば基本法線摂動成分をNRとし、法線摂動成分の割合パラメータをβとした場合には、β×NRに応じたスペキュラ用法線摂動成分を求める(β×NRを項として含む演算式により求める)。
【0069】
また基本法線摂動成分取得部129が基本法線摂動成分を求めると、ディフューズ用法線ベクトル取得部127は、求められた基本法線摂動成分に基づいて、ディフューズ用法線摂動成分を求める。例えば(1−β)×NRに応じたディフューズ用法線摂動成分を求める((1−β)×NRを項として含む演算式により求める)。
【0070】
また基本法線ベクトル取得部128が基本法線ベクトルを求めると、スペキュラ用法線ベクトル取得部126は、求められた基本法線ベクトルとスペキュラ用法線摂動成分に基づいて、スペキュラ用法線ベクトルを求める。またディフューズ用法線ベクトル取得部127は、求められた基本法線ベクトルとディフューズ用法線摂動成分に基づいて、ディフューズ用法線ベクトルを求める。
【0071】
そしてライティング処理部121は、求められたスペキュラ用法線ベクトルに基づいて、オブジェクトのスペキュラ色を求め、求められたディフューズ用法線ベクトルに基づいて、オブジェクトのディフューズ色を求める。具体的には、光源ベクトルと、仮想カメラの視線ベクトルと、スペキュラ用法線ベクトルに基づいて、オブジェクトのスペキュラ色を求める。また光源ベクトルと、ディフューズ用法線ベクトルに基づいて、オブジェクトのディフューズ色を求める。
【0072】
なおスペキュラ用法線ベクトル取得部126が、リピートモードにテクスチャラッピングモードを設定し、各テクセルにスペキュラ用摂動成分が設定されたスペキュラ用摂動成分テクスチャのテクスチャマッピングを行うことで、スペキュラ用法線摂動成分を求めてもよい。またディフューズ用法線ベクトル取得部127が、リピートモードにテクスチャラッピングモードを設定して、各テクセルにディフューズ用摂動成分が設定されたディフューズ用摂動成分テクスチャのテクスチャマッピングを行うことで、ディフューズ用法線摂動成分を求めてもよい。
【0073】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0074】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0075】
2.本実施形態の手法
2.1 第1、第2の色補間処理
レースゲームなどでは、プレーヤは、選択画面に表示されたレースカーの中から、自身が好む配色のレースカーを選択し、選択されたレースカーを操作してゲームを楽しむ。従って、このような選択画面において選択できるレースカーとして、現実世界で流行しているマジョーラ(日本ペイントの登録商標)と呼ばれる玉虫色の配色が施されたレースカーを用意できれば、プレーヤの満足度を高めることができる。
【0076】
しかしながら、図1の画像生成システムでは、RGBのカラーモデルにより色を表現して、画像を生成している。一方、玉虫色のカラーシフトでは、例えば光の波長に応じて色が変化する。即ち、いわゆる玉虫色において、見る角度や光の当たり方で色彩が変わるのは、入射角度が異なれば、車体の塗料において発生する光の波長も変化し、この波長の変化が異なった色として視覚化されるからである。従って、RGBのカラーモデルを採用する画像生成システムでは、このような玉虫色のカラーシフトを実現するのが困難であった。
【0077】
例えば図2(A)において、光源LSからの光が、車などの移動体MOB(広義にはオブジェクト)の車体(ボンネット)で反射し、その反射色が、プレーヤの視点である仮想カメラVCにより観測されている。なお図2(A)において、Lは光源ベクトルであり、Eは仮想カメラVCの視線ベクトルである。
【0078】
図2(A)のように光が当たった場合に、通常の照明モデルを用いたライティング処理を行うと、図2(B)のように、スペキュラ中心SCから周囲に向かってスペキュラ色Cspからディフューズ色CdfにオブジェクトOB(移動体)の色が変化する画像が生成される。
【0079】
ところが、図2(B)の画像表現では、スペキュラ色Cspとディフューズ色Cdfの2色の補間が行われるだけであるため、玉虫色のカラーシフトを実現することはできない。
【0080】
例えば図3にHSVのカラーモデルを示す。HSVは色相(Hue)、彩度(Saturation)、明度(Value)を意味する。色相は色の種類を表し、彩度は色の鮮やかさを表し、明度は色の明るさを表す。図3は環状のHSV色空間であり、Hにより、例えば赤、黄、緑、シアン、青、マジェンダというように色相が変化する。またSにより彩度が変化し、Vにより明度が変化する。
【0081】
例えば玉虫色のカラーシフトで青から赤に色を変化させる場合には、図3のように青と赤の中間色として、マジェンダを表示する必要がある。
【0082】
しかしながら、図2(B)では、スペキュラ色Cspとディフューズ色CdfがRGBのカラーモデルにより補間されるだけであるため、図3のような青からマジェンダを経由して赤に変化するというようなカラーシフトを実現できないという課題がある。
【0083】
このような課題を解決するために、本実施形態では以下に説明するような手法を採用している。なお以下では、オブジェクトが移動体(レースカー、車)である場合を例に取り説明するが、本実施形態はこれに限定されない。例えばオブジェクトは、車などの移動体に限定されず、例えば戦闘機、列車、ロボット等の車以外の移動体であってもよいし、移動しない静止オブジェクト等であってもよい。
【0084】
まず、後述するように照明モデル等を用いてオブジェクトのライティング処理を行い、オブジェクトのスペキュラ色Cspやディフューズ色Cdfを求める。
【0085】
また玉虫色のカラーシフトを実現するための第1、第2の設定色CA、CBを予め設定しておく。これらの第1、第2の設定色CA、CBは、オブジェクト毎に異なる色に設定することができる。具体的には、プレーヤが選択した移動体(広義にはオブジェクト)に応じて、異なる色に設定できる。例えば第1の玉虫色が配色された第1の移動体には、第1、第2の設定色CA1、CB1が設定され、第2の玉虫色が配色された第2の移動体には、第1、第2の設定色CA2、CB2が設定される。
【0086】
そして図4(A)に示すような第1の補間処理により、ライティング処理で求められたスペキュラ色Cspが最も強い点であるスペキュラ中心SCから、その周囲に向かうにつれて、第1の設定色CAから第2の設定色CBに変化する第1の補間色CI1を求める。即ちスペキュラ中心SCから放射方向に、設定色CAからCBに変化する補間色CI1を求める。
【0087】
具体的にはスペキュラ色Cspの強さに応じてその値が変化する第1の補間係数(補間率)R1を求める。そして設定色CA、CBを補間係数R1で補間することで、補間色CI1を求める。例えば線形補間を用いる場合には、下式のような演算式により補間色CI1を求めることができる。
【0088】
CI1=R1×CA+(1−R1)×CB (1)
またスペキュラ色Cspの強さパラメータ(明るさパラメータ)SPは、下式のような演算式により求めることができる。
【0089】
SP=F(Csp)=K×Rsp+K×Gsp+K×Bsp (2)
ここで、K、K、Kとしては、RGB−YUV変換においてRGB成分をY成分に変換する係数等を用いることができ、例えばK=0.299、K=0.587、K=0.114である。これによりスペキュラ色Cspの強さ(明るさ、輝度)を抽出できる。
【0090】
また補間係数R1は、スペキュラ色Cspの強さパラメータSPを引数とする関数G(SP)を用いて、R1=G(SP)というように表すことができる。具体的には例えば下式のような1次式の演算式により求めることができる。
【0091】
R1=G(SP)=a×SP+b (3)
ここで、調整パラメータをCVとした場合には例えば下式のような演算式を採用できる。
【0092】
R1=2CV×(SP−1)+1 (4)
上式(4)では、a=2CV、b=1−2CVになる。
【0093】
上式(3)、(4)のような演算式により補間係数R1を求めれば、単なる線形補間では実現できない補間処理を実現できる。例えば、補間色CI1が設定色CAとCBの中間色(CA+CB)/2になる位置を、ずらすことが可能になり、配色を決めるデザイナーの設計の自由度を増すことができる。
【0094】
なお補間係数R1を求める関数は、強さパラメータSPの2次以上の次数の関数であってもよいし、非線形の関数であってもよい。或いは強さパラメータSPそのものを補間係数R1として用いることも可能である。
【0095】
次に、図4(B)に示すような第2の補間処理により、スペキュラ中心SCから、その周囲に向かうにつれて、第1の補間色CI1からスペキュラ色Cspに変化する第2の補間色CI2を求める。即ちスペキュラ中心SCから放射方向に、補間色CI1からスペキュラ色Cspに変化する補間色CI2を求める。
【0096】
具体的にはスペキュラ色Cspの強さに応じてその値が変化する第2の補間係数(補間率)R2を求める。そして補間色CI1とスペキュラ色Cspを補間係数R2で補間することで、補間色CI2を求める。例えば線形補間を用いる場合には、下式のような演算式により補間色CI2を求めることができる。
【0097】
CI2=R2×CI1+(1−R2)×Csp (5)
また補間係数R2は、スペキュラ色Cspの強さパラメータSPを引数とする関数H(SP)を用いて、R2=H(SP)というように表すことができる。
【0098】
なお補間係数R2を求める関数は、強さパラメータSPの2次以上の次数の関数であってもよいし、非線形の関数であってもよい。或いは強さパラメータSPそのものを補間係数R2として用いることも可能である。
【0099】
本実施形態では、以上のような2回の色補間を行うことで、玉虫色の擬似的なカラーシフトを実現している。即ち図5のように、スペキュラ中心SCからその周囲(周辺)に向かうにつれて、設定色CAから、中間色である設定色CBを経由して、スペキュラ色Cspに色が変化するカラーシフトを実現できる。
【0100】
例えば図6(A)に示すように、設定色CAを青に設定し、設定色CBをマジェンダに設定すれば、青から、中間色であるマジェンダを経由して、スペキュラ色Cspである赤に色が変化するカラーシフトを実現できる。また図6(B)に示すように、設定色CAを黄に設定し、設定色CBを緑に設定すれば、黄から、中間色である緑を経由して、スペキュラ色Cspであるシアンに色が変化するカラーシフトを実現できる。従って、図3のHSVのカラーモデルにおける色相の変化と同様のカラーシフトを実現できるようになる。
【0101】
例えば図7に本実施形態により生成された画像の例を示す。図7は、図2(A)の移動体MOBの車体の画像の例である。図7では、スペキュラ中心から周囲に向かって、青からマジェンダを経由して赤に車体の色が変化している。この図7のような画像を生成できれば、プレーヤが選択できるレースカーとして、玉虫色の配色が施されたレースカーを用意できるようになり、プレーヤの満足度を向上できる。
【0102】
即ち、現実世界における玉虫色の物理現象を忠実にシミュレートして、図3のようなHSVのカラーモデルにしたがったカラーシフトを実現しようとすると、プログラムが複雑化すると共に処理負荷も重くなる。
【0103】
これに対して本実施形態では、図4(A)、図4(B)に示すような2回の色補間を行うだけで、玉虫色のカラーシフトを擬似的に表現できる。そしてこれらの2回の色補間は、上式(1)(5)のような演算だけで済むため、プログラムを簡素化でき、少ない処理負荷で玉虫色のカラーシフトを実現できる。
【0104】
またレースカーをデザインするデザイナーは、第1、第2の設定色CA、CBや、上式(3)(4)のパラメータa、b、CVを調整するだけで、様々なマジョーラ(登録商標)のカラーのレースカーをデザインできる。これにより、様々な配色のレースカーをプレーヤに提供でき、多様な趣向のプレーヤに対応できるようになる。
【0105】
2.2 照明モデルによるライティング処理
次に、ライティング処理によるスペキュラ色、ディフューズ色の求め方について説明する。現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。図8(A)、図8(B)に、光源が平行光である場合の照明モデルの例を示す。
【0106】
図8(A)はフォンの照明モデルを説明する図であり、この照明モデルは下式(6)のように表される。
【0107】
I=Ksp×(L・R)×Isp+Kdf×(N・L)×Idf+Kam×Iam (6)
ここで、Ksp、Kdf、Kamは、各々、スペキュラ光、ディフューズ光、アンビエント光についての反射率(物体色)であり、Isp、Idf、Iamは、スペキュラ光、ディフューズ光、アンビエント光の輝度(強さ、光源色)である。Nはオブジェクト(移動体)の法線ベクトルであり、Lは光源(平行光源)LSのベクトルであり、Rは反射ベクトルであり、R=−E+2(N・E)Nと表すことができる。nは鏡面反射指数(ハイライト特性係数)である。
【0108】
このフォンの照明モデルでは、スペキュラ光の強さはライトベクトルLと反射ベクトルRの内積のべき乗で表される。従って、ライトベクトルLと反射ベクトルRの向きが近くなる場所ほど、スペキュラ光が強くなる。また鏡面反射指数nが例えば10以下というように小さい場合には、広い範囲にわたって鏡面反射のハイライトが広がり、鏡面反射指数Pが例えば100ぐらいに大きい場合には、ハイライトが小さな点になる。
【0109】
図8(B)はブリン・フォンの照明モデルを説明する図であり、この照明モデルは下式(7)のように表される。
【0110】
I=Ksp×(N・H)×Isp+Kdf×(N・L)×Idf+Kam×Iam (7)
ここで、Hはハーフベクトルであり、H=(E+L)/|E+L|と表すことができる。
【0111】
このブリン・フォンの照明モデルでは、スペキュラ光の強さは法線ベクトルNとハーフベクトルHの内積のべき乗で表される。従って、法線ベクトルNとハーフベクトルHの向きが近くなる場所ほど、スペキュラ光が強くなる。
【0112】
本実施形態では、上式(6)、(7)に示すような照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色や、ディフューズ光による反射色であるディフューズ色を求める。そして求められたスペキュラ色、ディフューズ色等に基づいて、オブジェクトの最終的な色(反射色)を求める。
【0113】
なお本実施形態で用いる照明モデルは上式(6)(7)に限定されない。例えば上式(6)(7)と数学的にほぼ等価な照明モデルであってもよいし、上式(6)(7)の照明モデルに対して明るさ補正等を行ってもよい。或いは、上式(6)(7)とは異なる式で表される照明モデルを用いてもよい。またスペキュラ光による鏡面反射の表現は、例えば円の中心に近づくほど明るくなり、円の中心から遠ざかるほど暗くなる反射マップテクスチャを用いた反射マッピングにより実現してもよい。或いは、オブジェクト(移動体)に対して、周囲の環境を表すテクスチャをマッピングする環境マッピングにより、環境の光の映り込みを表現してもよい。この場合には、上式(6)(7)等の照明モデルにより得られた色と、環境マッピングにより得られたマッピング色を合成した色を、鏡面反射によるスペキュラ色として用いればよい。
【0114】
2.3 スペキュラ用法線ベクトル、ディフューズ用法線ベクトル
図9(A)では、レースカーを表す移動体MOBから遠くの位置に仮想カメラVCが配置されて、ゲーム画像が生成されている。一方、図9(B)では、仮想カメラVCが移動体MOBに接近して、ゲーム画像が生成されている。
【0115】
図9(A)の場合に、移動体MOBの表面で光がスペキュラ反射している画像を生成すれば、車体に塗られたワックス等の表現が可能になる。
【0116】
しかしながら、図9(B)のように仮想カメラVCが移動体MOBに接近した場合には、このようなスペキュラ反射の画像表現だけでは、いかにもCGで作られた画像のように見えてしまう。従って、車体表面の質感のディテール表現が不十分であり、生成される画像のリアル度の向上が不十分であるという課題がある。
【0117】
このような課題を解決するために、スペキュラ色を求めるためのスペキュラ用法線ベクトルと、ディフューズ色を求めるためのディフューズ用法線ベクトルを、別々に設ける手法を採用する。即ち、従来の手法では、1種類の法線ベクトルに基づいてオブジェクトのスペキュラ色、ディフューズ色が求められていたが、図10(A)、図10(B)では、スペキュラ用法線ベクトルとディフューズ用法線ベクトルというように、別々の2種類の法線ベクトルの各々を用いて、スペキュラ色、ディフューズ色を求める。
【0118】
具体的には図10(A)、図10(B)に示すように、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルNSを取得すると共に、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルNDを取得する。例えば図10(A)では、スペキュラ用法線ベクトルNSの摂動成分は小さく、ディフューズ用法線ベクトルNDの摂動成分は大きい。一方、図10(B)では、スペキュラ用法線ベクトルNSの摂動成分は大きく、ディフューズ用法線ベクトルNDの摂動成分は小さい。このように図10(A)、図10(B)の手法によれば、スペキュラ用法線ベクトルNSの摂動成分の大小と、ディフューズ用法線ベクトルNDの摂動成分の大小を別々に制御できるため、画像のリアル度を増すことができる。
【0119】
例えば図10(A)のようにスペキュラ用法線ベクトルNSの摂動成分を小さく設定すれば、乱反射の少ないスペキュラ反射を表現できるため、車体に綺麗にムラなく塗られたワックスを表現できる。そして図10(A)のようにディフューズ用法線ベクトルNDの摂動成分を大きく設定すれば、車体の塗装や金属の微粒子によるディフューズ光の乱反射等を表現できる。
【0120】
即ち、図9(A)のように仮想カメラVCが遠くにある場合には、スペキュラ反射でピカピカと光った質感の車体を表現できる。一方、図9(B)のように仮想カメラVCが接近した場合には、スペキュラ反射のワックスの下層にある塗装や金属の微粒子の乱反射の画像表現が可能になる。即ち仮想カメラVCが遠くにある場合には見えなかった車体の塗装や金属の粒々感が、仮想カメラVCが近づくにつれて見えるようになる。このため、車体表面が、あたかもスペキュラ層とディフューズ層の2層構造になっているかのように見える。従って、車体表面における内部反射をリアルに表現でき、車体表面の質感のディテール表現を大幅に向上できる。
【0121】
また例えば図10(B)のようにスペキュラ用法線ベクトルNSの摂動成分を大きく設定すれば、車体表面のワックスのムラを表現できるようになる。またディフューズ用法線ベクトルNDの摂動成分を小さく設定すれば、ムラのあるワックス層の下に、滑らかで粒々感の少ない塗装や金属の層が存在するという画像表現を実現できる。
【0122】
図11、図12に本実施形態により生成された画像の例を示す。図11は、図10(A)のようにスペキュラ用法線ベクトルNSの摂動成分が小さく設定され、ディフューズ用法線ベクトルNDの摂動成分が大きく設定されている場合の画像の例である。図11では、ムラのないワックスの層の下に、粒々感のある塗装や金属の層が見える画像が生成されている。即ちスペキュラ光の乱反射は少なく、ディフューズ光の乱反射が大きい画像が生成されている。
【0123】
一方、図12は、図10(B)のようにスペキュラ用法線ベクトルNSの摂動成分が大きく設定され、ディフューズ用法線ベクトルNDの摂動成分が小さく設定されている場合の画像の例である。図12では、ムラのあるワックスの層の下に、滑らかで粒々感の少ない塗装や金属の層が見える画像が生成されている。即ちスペキュラ光の乱反射が大きく、ディフューズ光の乱反射が少ない画像が生成されている。
【0124】
このように図10(A)、図10(B)では、スペキュラ用法線ベクトルNSとディフューズ用法線ベクトルNDとを別々に設けて、その摂動成分を別々に制御することで、オブジェクトの表面の内部反射のディテールを表現し、従来手法では達成できなかったリアルな内部反射表現の実現に成功している。
【0125】
なお図10(A)、図10(B)の手法を採用する場合には、上式(6)(7)のように照明モデルに基づきスペキュラ色、ディフューズ色を求める際に、スペキュラ用法線ベクトルとディフューズ用法線ベクトルとを使い分ける。
【0126】
例えば上式(6)のKsp×(L・R)×Ispの項であるスペキュラ色において、反射ベクトルR=−E+2(N・E)Nを求める際には、法線ベクトルNとしてスペキュラ用法線ベクトルNSを用いる。一方、上式(6)のKdf×(N・L)×Idfの項であるディフューズ色を求める際には、法線ベクトルNとしてディフューズ用法線ベクトルNDを用いる。
【0127】
また上式(7)のKsp×(N・H)×Ispの項であるスペキュラ色を求める際には、法線ベクトルNとしてスペキュラ用法線ベクトルNSを用いる。一方、上式(7)のKdf×(N・L)×Idfの項であるディフューズ色を求める際には、法線ベクトルNとしてディフューズ用法線ベクトルNDを用いる。このようにすることで、図11、図12に示すような画像の生成が可能になる。
【0128】
2.4 基本法線ベクトル
図13のA1では、オブジェクトのデフォルトの法線ベクトルである基本法線ベクトルNBを、まず求めている。この基本法線ベクトルNBはオブジェクトの法線ベクトル情報に基づいて求めることができる。
【0129】
そして図13のA2、A3では、このようにして求められた基本法線ベクトルNBに基づいて、スペキュラ用法線ベクトルNSとディフューズ用法線ベクトルNDを求める。具体的には、基本法線ベクトルNBとスペキュラ用法線摂動成分に基づいて、スペキュラ用法線ベクトルNSを求める。また基本法線ベクトルNBとディフューズ用法線摂動成分に基づいて、ディフューズ用法線ベクトルNDを求める。
【0130】
このようにすれば、オブジェクトの形状や表面の凹凸を表す基本法線ベクトルNBに基づいて、スペキュラ用法線ベクトルNSとディフューズ用法線ベクトルNDを求めることができる。従って、スペキュラ用法線ベクトルNSとディフューズ用法線ベクトルNDは、オブジェクトの形状や表面の凹凸に応じたベクトルになり、摂動成分だけが基本法線ベクトルNBとは異なるベクトルになる。即ち、スペキュラ用法線ベクトルNSとディフューズ用法線ベクトルNDは、その方向が、オブジェクトの形状や表面の凹凸に応じた方向に、ある程度向くベクトルになり、その摂動の度合いだけが図10(A)、図10(B)のように互いに異なるベクトルになる。
【0131】
このようにすれば、スペキュラ用法線ベクトルNS、ディフューズ用法線ベクトルNDに、オブジェクトの形状や凹凸を反映させることが可能になり、画像のリアル度を増すことができる。なお、スペキュラ用法線ベクトルを求める際に使用する基本法線ベクトルと、ディフューズ用法線ベクトルを求める際に使用する基本法線ベクトルとを、異なるベクトルにする変形実施も可能である。
【0132】
次に図14(A)、図14(B)に基づいて、基本法線ベクトルNBの具体的な取得手法について説明する。例えば図14(A)では、オブジェクトOBに対して、デカール形式の法線テクスチャがマッピングされる。この法線テクスチャ(法線マップテクスチャ)は、オブジェクトOBの表面の凹凸(バンプ)を表すためのテクスチャである。具体的には、この法線テクスチャは、オブジェクトOBの展開図に対応した法線ベクトルパターンを有し、法線ベクトルの情報が各テクセルに設定される展開図方式のテクスチャである。この展開図方式の法線テクスチャを、オブジェクトOBにマッピングすることで、オブジェクトOBの表面の凹凸を表現するバンプ処理が実現される。
【0133】
なお図14(A)では、説明を簡単にするために、オブジェクトOBが立方体である場合の例を示しているが、実際の法線テクスチャの形状は複雑な形状になる。例えばオブジェクトが車である場合には、法線テクスチャは車の展開図に対応した形状のテクスチャになる。そして法線テクスチャの各テクセルには、車の表面の凹凸を表すため法線ベクトル情報(バンプ情報)が設定される。
【0134】
図14(B)に示すように、基本法線ベクトルは、オブジェクトの頂点VX1〜VX4に設定される頂点法線ベクトルNV1〜NV4と、オブジェクトにマッピングされる法線テクスチャに基づいて求められる。具体的には、頂点法線ベクトルNV1〜NV4を、フォンシェーディング等の手法により補間して、各ピクセルに対応する法線ベクトルを求める。そしてこのようにして求められた法線ベクトルと、法線テクスチャの各テクセルに設定されるバンプ用の法線ベクトルとに基づいて、各ピクセルにおける基本法線ベクトルを求める。この場合に、頂点法線ベクトルNV1〜NV4は、オブジェクトの全体的な形状を表すベクトルであり、オブジェクトのモデルデータとして記憶される。一方、法線テクスチャに設定される法線ベクトルは、オブジェクトの表面における微少な凹凸を表すベクトルになる。従って、これらの頂点法線ベクトルと法線テクスチャの法線ベクトルとにより求められた基本法線ベクトルは、オブジェクトの形状と表面の凹凸に応じたベクトルになる。
【0135】
なお図14(B)に示すように、法線テクスチャの法線ベクトルのX、Y、Z座標成分は、テクスチャのR、G、Bチャネル(R、G、Bプレーン)にR、G、Bデータとして設定できる。
【0136】
2.5 スペキュラ用法線摂動成分、ディフューズ用法線摂動成分
次に図15(A)、図15(B)を用いて、スペキュラ用法線摂動成分、ディフューズ用法線摂動成分の具体的な取得手法について説明する。
【0137】
例えば図15(A)、図15(B)では、基本法線摂動成分NRがまず求められる。そして、この基本法線摂動成分NRに基づきスペキュラ用法線摂動成分NRS=CP×β×NRが求められ、スペキュラ用法線ベクトルNS=NB+NRS=NB+CP×β×NRが求められる。また基本法線摂動成分NRに基づきディフューズ用法線摂動成分NRD=CP×(1−β)×NRが求められ、ディフューズ用法線ベクトルND=NB+NRD=NB+CP×(1−β)×NRが求められる。ここで、βは法線摂動成分の割合パラメータ(配分、比率パラメータ)であり、CPは法線摂動成分の強さパラメータ(係数パラメータ)である。
【0138】
そして図15(A)では、割合パラメータβを小さな値に設定することで、スペキュラ用法線ベクトルNSの摂動成分が小さく設定され、ディフューズ用法線ベクトルNDの摂動成分が大きく設定される。これにより図11に示すような画像を生成できる。
【0139】
一方、図15(B)では、割合パラメータβを大きな値に設定することで、スペキュラ用法線ベクトルNSの摂動成分が大きく設定され、ディフューズ用法線ベクトルNDの摂動成分が小さく設定される。これにより図12に示すような画像を生成できる。
【0140】
また強さパラメータCPを制御することで、基本法線ベクトルNBに対する摂動成分NRS、NRDの割合を制御できる。例えばパラメータCPを大きな値に設定すれば、NRS、NRDによる摂動の度合いが大きくなり、CPを小さな値に設定すれば、NRS、NRDによる摂動の度合いが小さくなる。
【0141】
図15(A)、図15(B)の手法によれば、1つの割合パラメータβを制御するだけで、スペキュラ用法線摂動成分NRSとディフューズ用法線摂動成分NRDとの大小関係を連動して制御できる。また1つの強さパラメータCPを制御するだけで、摂動の度合いを制御できる。従って制御処理を簡素化できるという利点がある。また基本法線摂動成分NRに対応する1つの摂動成分テクスチャを用意するだけで済むため、テクスチャの使用記憶容量も節約できるという利点がある。
【0142】
なおスペキュラ用法線ベクトルとディフューズ用法線ベクトルとで、異なる基本法線摂動成分を用いたり、異なる割合パラメータ、強さパラメータを用いる変形実施も可能である。例えばスペキュラ用法線摂動成分をNRS=CP1×β1×NR1の演算式により求め、ディフューズ用法線摂動成分をNRD=CP2×β2×NR2の演算式により求めるなどの変形実施も可能である。
【0143】
2.6 摂動成分テクスチャ
次に、摂動成分テクスチャを利用して法線ベクトルの摂動成分を取得する手法について説明する。
【0144】
テクスチャ座標U、Vの値域の範囲は例えば0.0≦U≦1.0、0.0≦V≦1.0になっている。この値域の範囲を超えたU、Vが指定された場合のテクスチャラッピングモードには、リピートモードやクランプモードがある。そしてテクスチャラッピングモードがリピートモードに設定された場合には、値域の範囲外の余白のテクスチャ画像を埋めるために、図16の模式図に示すようにテクスチャの繰り返しマッピングが行われる。
【0145】
具体的には、倍率パラメータをP1、P2とした場合に、U’=P1×U、V’=P2×Vの変換式により、摂動成分テクスチャのテクスチャ座標の変換を行う。ここで、P1、P2はP1>1、P2>1となるパラメータであり、例えばP1>100、P2>100というような値が設定される。
【0146】
このようなテクスチャ座標変換を行い、テクスチャラッピングモードをリピートモードに設定する。そして、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行えば、図16に示すような摂動成分テクスチャの繰り返しマッピングを実現できる。
【0147】
例えば図16の模式図では、図14(A)の展開図方式の法線テクスチャや色テクスチャに比べて、十分に小さな外形の摂動成分テクスチャが、オブジェクトに対して繰り返しマッピングされる。図17には、このようにマッピングされる摂動成分テクスチャ(ノイズテクスチャ)の例を示す。この摂動成分テクスチャは、法線ベクトルのノイズ的な揺らぎを表現するためのテクスチャである。そして、摂動成分テクスチャのR、G、Bチャネル(R、G、Bプレーン)には、摂動のX、Y、Z成分がR、G、Bデータとして格納される。
【0148】
図17のような摂動成分テクスチャを図16のように繰り返しマッピングすれば、図11に示すような車体の塗料や金属の微粒子による乱反射を表現できるようになる。
【0149】
即ち、このような摂動成分テクスチャとして、図14(A)に示すような展開図方式のテクスチャを用いたとする。すると、図9(B)のように仮想カメラVCがオブジェクトOBに接近した場合に、テクスチャの解像度が足りなくなり、微粒子による乱反射の表現が難しくなる。
【0150】
この点、図16に示すように、外形の小さい摂動成分テクスチャを、リピートモードに設定して繰り返しマッピングする手法を採用すれば、図9(B)に示すように仮想カメラVCが接近した場合にも、摂動成分テクスチャの十分な解像度を維持できる。従って仮想カメラVCが接近した場合でも、摂動成分のランダム性を維持でき、微粒子による乱反射を表現できる。この結果、オブジェクトの表面の質感のディテール表現を、負荷の少ない処理で実現できるという利点がある。
【0151】
またU’=P1×U、V’=P2×Vの変換式における倍率パラメータP1、P2を、互いに異なる値に設定してテクスチャ座標変換を行えば、いわゆるヘアライン加工のような表現が可能になる。
【0152】
2.7 詳細な処理例
次に本実施形態の詳細な処理例を図18、図19のフローチャートを用いて説明する。
【0153】
まず、移動体を含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定処理を行う(ステップS1)。次に、車等の移動体をオブジェクト空間内で移動させる移動体演算処理を行う(ステップS2)。具体的には、操作部160からの操作データやプログラムなどに基づいて、1フレームごとの移動体の位置の変化、方向の変化、動作の変化が、リアルタイムに演算される。
【0154】
次に頂点シェーダプログラムによる頂点シェーダ処理を行う(ステップS3)。この頂点シェーダ処理により得られた頂点座標、視線ベクトル、光源ベクトル、法線ベクトル等は、出力レジスタに格納され、ピクセルシェーダ処理に渡される。
【0155】
次に、ピクセルシェーダプログラムによるピクセルシェーダ処理を開始する(ステップS4)。このピクセルシェーダ処理によりステップS5〜S13の処理が行われる。
【0156】
具体的には、まず、図14(A)、図14(B)で説明したように、頂点法線ベクトルと、テクスチャ記憶部178からフェッチした法線テクスチャとに基づいて、基本法線ベクトルNBを求める(ステップS5)。そして、図16で説明したように、倍率パラメータP1、P2に基づいて、テクスチャ座標U、VをU’=P1×U、V’=P2×Vに変換する(ステップS6)。そして、変換により得られたテクスチャ座標U’、V’に基づいて、基本法線摂動成分NRのテクスチャ(ノイズテクスチャ)をテクスチャ記憶部178からフェッチする(ステップS7)。
【0157】
次に、図15(A)、図15(B)で説明したように、ステップS6で求められた基本法線ベクトルNBと、ステップS7で取得された基本法線摂動成分NRと、法線摂動成分の割合パラメータβ及び強さパラメータCPに基づいて、スペキュラ用法線ベクトルNS=NB+CP×β×NRを求める(ステップS8)。同様に、基本法線ベクトルNBと、基本法線摂動成分NRと、法線摂動成分の割合パラメータβ及び強さパラメータCPに基づいて、ディフューズ用法線ベクトルND=NB+CP×(1−β)×NRを求める(ステップS9)。
【0158】
次に、図8(A)、図8(B)で説明したように、光源ベクトルLと視線ベクトルEとスペキュラ用法線ベクトルNSに基づいて、照明モデルにしたがったスペキュラ色Cspを求める(ステップS10)。なおステップS5〜S9の処理を省略する変形実施も可能である。この場合にはステップS10のスペキュラ用法線ベクトルNSはオブジェクトの通常の法線ベクトルになる。
【0159】
次にスペキュラ色Cspの強さパラメータSP=F(Csp)=K×Rsp+K×Gsp+K×Bspを求める(ステップS11)。そして求められた強さパラメータSPに基づいて、第1の補間係数R1=G(SP)を求める(ステップS12)。そして図4(A)で説明したように、第1、第2の設定色CA、CBを第1の補間係数R1で補間し、第1の補間色CI1=R1×CA+(1−R1)×CBを求める(ステップS13)。
【0160】
次に、ステップS11で求められた強さパラメータSPに基づいて、第2の補間係数R2=H(SP)を求める(ステップS14)。そして図4(B)で説明したように、ステップS13で求められた第1の補間色CI1とスペキュラ色Cspを第2の補間係数R2で補間し、第2の補間色CI2=R2×CI1+(1−R2)×Cspを求める(ステップS15)。そして求められた第2の補間色CI2をスペキュラ色Cspに設定する(ステップS6)。
【0161】
次に、光源ベクトルLとディフューズ用法線ベクトルNDに基づいて、照明モデルにしたがったディフューズ色Cdfを求める(ステップS17)。更にアンビエント色Camを求める(ステップS18)。
【0162】
そして最後に、スペキュラ色Csp、ディフューズ色Cdf、アンビエント色Camに基づいて、オブジェクトの色CS=Csp+Cdf+Camを求める(ステップS19)。
【0163】
3.ハードウェア構成
図20(A)に本実施形態を実現できるハードウェアの構成例を示す。
【0164】
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スレッド処理を並列実行できる。
【0165】
GPU910(描画プロセッサ)は、頂点処理やピクセル処理を行って、描画(レンダリング)処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル(フラグメント)の描画色の決定を行う。1フレーム分の画像がVRAM920(フレームバッファ)に書き込まれると、その画像はビデオ出力を介してTVなどのディスプレイに表示される。なおメインメモリ930はCPU900やGPU910のワークメモリとして機能する。またGPU910では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またGPU910にはハードウェアのテッセレータも備えられている。またGPU910は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【0166】
ブリッジ回路940(サウスブリッジ)は、システム内部の情報流通を制御する回路であり、USBコントローラ(シリアルインターフェース)、ネットワーク(イーサネット(登録商標))の通信コントローラ、IDEコントローラ、或いはDMAコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路940により、ゲームコントローラ942、メモリーカード944、HDD946、DVDドライブ948との間のインターフェース機能が実現される。
【0167】
なお本実施形態を実現できるハードウェア構成は図20(A)に限定されず、例えば図20(B)のような構成であってもよい。
【0168】
図20(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スレッド処理の並列実行が可能になる。
【0169】
図20(B)では、GPU912とCPU902の連携が密になっており、GPU912は、CPU902側のメインメモリ930に直接にレンダリング処理を行うことができる。また例えばCPU902がジオメトリ処理を行って、頂点データを転送したり、GPU912からCPU902にデータを戻すことも容易にできる。またCPU902が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション(平面分割)やドットフィルをCPU902が実行できる。例えば抽象度の高い処理はCPU902が行い、抽象度が低い細かな処理はGPU912が行うというような役割分担が可能である。
【0170】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ(CPU、GPU)に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0171】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(オブジェクト等)と共に記載された用語(移動体等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【0172】
また、第1、第2の色補間処理、ライティング処理、法線ベクトルの取得処理、法線摂動成分の取得処理、テクスチャマッピング処理の手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0173】
【図1】本実施形態の画像生成システムのブロック図の例。
【図2】図2(A)、図2(B)は玉虫色のカラーシフトの課題の説明図。
【図3】HSVのカラーモデルの説明図。
【図4】図4(A)、図4(B)は本実施形態の第1、第2の色補間処理の説明図。
【図5】本実施形態の色補間処理の説明図。
【図6】図6(A)、図6(B)は本実施形態により実現される玉虫色のカラーシフトの説明図。
【図7】本実施形態により生成された画像の例。
【図8】図8(A)、図8(B)は照明モデルの説明図。
【図9】図9(A)、図9(B)は車体表面の質感のディテール表現の課題の説明図。
【図10】図10(A)、図10(B)はスペキュラ用、ディフューズ用法線ベクトルの取得手法の説明図。
【図11】本実施形態により生成された画像の例。
【図12】本実施形態により生成された画像の例。
【図13】基本法線ベクトルを用いる手法の説明図。
【図14】図14(A)、図14(B)は基本法線ベクトルの取得手法の説明図。
【図15】図15(A)、図15(B)はスペキュラ用、ディフューズ用法線摂動成分の取得手法の説明図。
【図16】テクスチャの繰り返しマッピング手法を説明するための模式図。
【図17】摂動成分テクスチャ(ノイズテクスチャ)の例。
【図18】本実施形態の詳細な処理を説明するフローチャート。
【図19】本実施形態の詳細な処理を説明するフローチャート。
【図20】図20(A)、図20(B)はハードウェア構成例。
【符号の説明】
【0174】
100 処理部、108 ゲーム演算部、110 オブジェクト空間設定部、
112 移動体演算部、114 仮想カメラ制御部、120 画像生成部、
121 ライティング処理部、122 第1の色補間部、123 第2の色補間部、
124 色合成部、126 スペキュラ用法線ベクトル取得部、
127 ディフューズ用法線ベクトル取得部、128 基本法線ベクトル取得部、
129 基本法線摂動成分取得部、130 音生成部、160 操作部、170 記憶部、
172 主記憶部、174 描画バッファ、176 モデルデータ記憶部、
178 テクスチャ記憶部、180 情報記憶媒体、190 表示部、192 音出力部、
194 補助記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、
少なくとも前記第2の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記第1の色補間部は、
前記スペキュラ色の強さに応じてその値が変化する第1の補間係数を求め、前記第1、第2の設定色を前記第1の補間係数で補間することで、前記第1の補間色を求めることを特徴とするプログラム。
【請求項3】
請求項2において、
前記第1の色補間部は、
前記スペキュラ色の強さパラメータをSPとした場合に、R1=a×SP+bの演算式により前記第1の補間係数R1を求めることを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記第2の色補間部は、
前記スペキュラ色の強さに応じてその値が変化する第2の補間係数を求め、前記第1の補間色と前記スペキュラ色を前記第2の補間係数で補間することで、前記第2の補間色を求めることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記第1の色補間部は、
オブジェクト毎に異なる色に設定された前記第1、第2の設定色を補間することで、前記第1の補間色を求めることを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求めるスペキュラ用法線ベクトル取得部と、
ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求めるディフューズ用法線ベクトル取得部として、
コンピュータを機能させ、
前記ライティング処理部は、
求められた前記スペキュラ用法線ベクトルに基づいてオブジェクトの前記スペキュラ色を求め、求められた前記ディフューズ用法線ベクトルに基づいてオブジェクトの前記ディフューズ色を求めることを特徴とするプログラム。
【請求項7】
請求項6において、
前記ライティング処理部は、
光源ベクトルと、仮想カメラの視線ベクトルと、前記スペキュラ用法線ベクトルに基づいて、オブジェクトの前記スペキュラ色を求め、前記光源ベクトルと、前記ディフューズ用法線ベクトルに基づいて、オブジェクトの前記ディフューズ色を求めることを特徴とするプログラム。
【請求項8】
請求項6又は7において、
オブジェクトの法線ベクトル情報に基づいて、オブジェクトの基本法線ベクトルを求める基本法線ベクトル取得部として、
コンピュータを機能させ、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線ベクトルと前記スペキュラ用法線摂動成分に基づいて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
前記基本法線ベクトルと前記ディフューズ用法線摂動成分に基づいて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項9】
請求項8において、
前記基本法線ベクトル取得部は、
オブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャに基づいて、前記基本法線ベクトルを求めることを特徴とするプログラム。
【請求項10】
請求項6乃至9のいずれかにおいて、
基本法線摂動成分を求める基本法線摂動成分取得部として、
コンピュータを機能させ、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線摂動成分に基づき前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
前記基本法線摂動成分に基づき前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項11】
請求項10において、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線摂動成分をNRとし、法線摂動成分の割合パラメータをβとした場合に、β×NRに応じた前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
(1−β)×NRに応じた前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項12】
請求項11において、
前記スペキュラ用法線ベクトル取得部は、
法線摂動成分の強さパラメータをCPとした場合に、NRS=CP×β×NRの演算式により前記スペキュラ用法線摂動成分NRSを求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
NRD=CP×(1−β)×NRの演算式により前記ディフューズ用法線摂動成分NRDを求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項13】
請求項10乃至12のいずれかにおいて、
前記基本法線摂動成分取得部は、
テクスチャを繰り返しマッピングするリピートモードにテクスチャラッピングモードを設定して、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めることを特徴とするプログラム。
【請求項14】
請求項13において、
前記基本法線摂動成分取得部は、
倍率パラメータをP1、P2とした場合に、U’=P1×U、V’=P2×Vの変換式によりテクスチャ座標変換を行って、前記摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めることを特徴とするプログラム。
【請求項15】
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、
少なくとも前記第2の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項16】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至15のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項17】
画像を生成する画像生成システムであって、
オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、
少なくとも前記第2の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部とを含むことを特徴とする画像生成システム。
【請求項18】
画像を生成する画像生成システムであって、
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第1の設定色から第2の設定色に変化する第1の補間色を求める第1の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第1の補間色から前記スペキュラ色に変化する第2の補間色を求める第2の色補間部と、
少なくとも前記第2の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部とを含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図7】
image rotate

【図11】
image rotate

【図12】
image rotate

【図17】
image rotate


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