説明

プログラム、情報記録媒体および画像生成システム

【課題】高速処理にて画像を生成しつつ、オブジェクトの動きを適格に表現することのできる画像生成システムを提供する。
【解決手段】仮想カメラに対してオブジェクトOBが相対移動する場合に、当該オブジェクトOBを構成する面の相対移動前の状態を示す第1の面OB0と相対移動後の状態を示す第2の面OB1とに基づいて、オブジェクトOBを構成する面の色に応じた色分布に対応するピクセルパターンTを有する所定のピクセル座標系における、移動軌跡ボリュームMVの描画ピクセルpと第1の面OB0との位置関係に応じた第1の位置C0と、該描画ピクセルpと第2の面OB1との位置関係に応じた第2の位置C1とを求め、第1の位置C0と第2の位置C1とを端点とする線分Lを所定のパターンで分割して得られる分割領域Dに基づいて、描画ピクセルpの色を求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記録媒体および画像生成システムに関する。
【背景技術】
【0002】
近年、仮想的な3次元空間(以下、「オブジェクト空間」という。)に配置設定されたキャラクタなどのオブジェクトを、仮想カメラ(所与の視点)に基づく所定の画像として生成する画像生成システムが実用化されている。このような画像生成システムは、仮想現実を体験させることができるものとして様々なシステムにて用いられるようになっており、特に、ゲームシステムにおいては、娯楽性および興趣性を向上させるためものとして重要視されている。
【0003】
このような画像生成システムでは、演算処理の効率化を図りつつ、仮想現実感の向上のためによりリアルな画像を生成することが課題となっている。そして、リアルな画像を生成する1つの手法として、ある描画フレームにおいてオブジェクトがぶれたような画像を生成する「モーションブラー」と呼ばれる手法が用いられている。
【0004】
かかる従来のモーションブラーの代表的な手法としては、
(1)オブジェクトの移動方向と移動速度に応じて当該オブジェクトを引き伸ばした移動軌跡ボリュームを用いたもの、
(2)2つのフレーム間の時間をさらに細かく分割し、当該分割した微少時間だけ時間を進めながら、何度もオブジェクトの画像をレンダリングし、最終的に全ての画像を平均化して合成するもの、
(3)ブラーのない画像とオブジェクトの速度を別々のテクスチャにレンダリングし、速度の向きと大きさからブラーのない画像をマルチサンプリングするもの、
などが知られており、オブジェクトの動きを表現し、現実感の高い画像を提供している(例えば、非特許文献1)。
【非特許文献1】今給黎隆「DirectX9シェーダプログラミングブック」株式会社毎日コミュニケーションズ発行、2004年1月5日
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述のモーションブラーを適用した画像生成システムにあっては、複数のレンダリングにより処理負荷が大きくなるため、オブジェクトの移動速度が速い場合にオブジェクトが離散的に見えてしまう、処理負荷については軽いものの的確にオブジェクトの動きを表現できない、または、オブジェクトの境界が不正確で、かつ、オブジェクト同士が交差した場合の表現ができないなど、高速処理にて画像を生成しつつ、オブジェクトの動きを適確に表現することができないという問題があった。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、高速処理にて画像を生成しつつ、オブジェクトの動きを適確に表現することのできる画像生成システムを提供することにある。
【課題を解決するための手段】
【0007】
(1)上記の課題を解決するために、本発明は、
オブジェクト空間において仮想カメラから見える画像を生成する画像生成システムであって、
前記仮想カメラに対してオブジェクトが相対移動する場合に、当該オブジェクトを構成する面の前記相対移動前の状態を示す第1の面と前記相対移動後の状態を示す第2の面とに基づいて、移動軌跡ボリュームを生成するボリューム生成部と、
前記生成された移動軌跡ボリュームを描画する移動軌跡ボリューム描画部とを含み、
前記移動軌跡ボリューム描画部が、
前記オブジェクトを構成する面の色分布に対応するピクセルパターンを有する所定のピクセル座標系における、前記移動軌跡ボリュームの描画ピクセルと前記第1の面との位置関係に応じた第1の位置と、該描画ピクセルと前記第2の面との位置関係に応じた第2の位置とを求め、前記第1の位置と前記第2の位置とを端点とする線分を所定のパターンで分割した分割領域に基づいて、該描画ピクセルの色を求めることを特徴とする画像生成システムに関係する。
【0008】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0009】
本発明によれば、移動軌跡ボリュームの描画ピクセルと第1の面と第2の面との対応関係を、所定のピクセル座標系におけるピクセルパターンと第1の位置と第2の位置との対応関係に変換する。そして所定のピクセル座標系における、第1の位置と第2の位置とを端点とする線分を所定のパターンで分割した分割領域に基づいて、移動軌跡ボリュームの描画ピクセルの色を求める。
【0010】
ここで本発明によれば、オブジェクトの仮想カメラに対する相対移動方向や相対移動速度が変化すると移動軌跡ボリュームが変化する。すると、所定のピクセル座標系における第1の位置および第2の位置が変化して、第1の位置と第2の位置とを端点とする線分と、ピクセルパターンとの対応関係が変化する。即ち本発明によれば、所定のピクセル座標系における第1の位置と第2の位置とを端点とする線分を、描画ピクセルの仮想的な移動状況として用いる。そして、所定のピクセル座標系において当該線分に対応するピクセルパターンに対応した色を、移動軌跡ボリュームの描画ピクセルの色として求める。
【0011】
従って本発明によれば、オブジェクトの仮想カメラに対する相対移動方向や相対移動速度の変化に応じて、移動軌跡ボリュームの描画ピクセルの色を求めることができる。
【0012】
更に本発明によれば、線分を所定のパターンで分割した分割領域に基づいて、移動軌跡ボリュームの描画ピクセルの色を求める。即ち、所定のピクセル座標系における線分のいずれかの分割領域に対応するピクセルパターンに基づいて、移動軌跡ボリュームの描画ピクセルの色を求めることができる。従って本発明によれば、各分割領域を、描画ピクセルの仮想的な移動状況を表す線分の時間分解能として用いて、移動軌跡ボリュームの各描画ピクセルの色を適宜変化させることができる。
【0013】
こうして本発明によれば、移動軌跡ボリュームを用いて適確にモーションブラーを表現することができるとともに、処理負荷が重い演算処理を行うことなく高速に画像を生成することができる。
【0014】
また本発明によれば、第1の位置と第2の位置とを端点とする線分のいずれかの分割領域に基づいて、移動軌跡ボリュームの各描画ピクセルの色を求めるので、移動軌跡ボリュームを形成するオブジェクトが複雑な形状を有する場合であっても、隣接するポリゴン又はプリミティブ面の色を時間分解能に応じて混在させた移動軌跡ボリュームを描画することができる。また、2以上のオブジェクトが交差して移動軌跡ボリューム同士が交差する場合であっても、それぞれの移動軌跡ボリュームにそれぞれのオブジェクトにおける色を反映させることができる。
【0015】
こうして本発明によれば、オブジェクトが複雑な形状である場合、又は移動軌跡が他のオブジェクトの移動軌跡と交差する場合であっても、移動軌跡ボリュームを用いて適確にモーションブラーを表現することができる。
【0016】
(2)また、本発明に係る画像生成システム、プログラムまたは情報記録媒体は、
前記移動軌跡ボリューム描画部が、
所与のディザ行列に基づいて分割領域を特定し、特定した分割領域に基づいて、前記生成された移動軌跡ボリュームの描画ピクセルの色を求めるようにしてもよい。
【0017】
本発明において所与のディザ行列とは、例えば分割領域の数に対応する異なるテクセル値からなるグレイスケールのディザテクスチャとすることができる。そしてかかるテクスチャをスクリーンにマッピングして、各描画ピクセルと分割領域とをテクセル値を介して対応付けるようにしてもよい。
【0018】
本発明によれば、移動軌跡ボリュームの描画ピクセルの色を求めるための分割領域を、ディザ行列に基づいて特定する。従って本発明によれば、ディザ行列に基づいて各描画ピクセルに対応する分割領域を分散させることができ、移動軌跡ボリュームの各描画ピクセルの色を適宜変化させることができる。こうして本発明によれば、移動軌跡ボリュームを用いて適確にモーションブラーを表現することができるとともに、処理負荷が重い演算処理を行うことなく高速に画像を生成することができる。
【0019】
(3)また、本発明に係る画像生成システム、プログラムまたは情報記録媒体は、
前記描画した移動軌跡ボリュームに対して、描画ピクセルの平滑化処理を行うエフェクト処理部を更に含むようにしてもよい。
【0020】
本発明によれば、移動軌跡ボリュームの各ピクセルの色を分割領域に応じて変化させた場合に、描画した移動軌跡ボリュームに対して、例えば、スーパーサンプリング(オーバーサンプリング)法または平滑化フィルタ法などを適用して、隣接する複数の描画ピクセルを用いて平滑化を行う。従って本発明によれば、移動軌跡ボリュームにおける隣接したピクセル間の変化を平滑にすることができるので、移動軌跡ボリュームの視覚効果を向上させて、更に適確にモーションブラーを表現することができる。
【0021】
特に本発明によれば、例えばディザ行列などを用いて分割領域を特定して移動軌跡ボリュームの描画ピクセルの色を求めた場合に、ディザ行列などの配列パターンが移動軌跡ボリュームに現れることを効果的に防止することができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明に好適な実施の形態について図面を用いて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態にて説明される構成の全てが、本発明の必須の構成要件であるとは限らない。
【0023】
1.構成
まず、図1を用いて本実施形態における画像生成システム(ゲームシステム)の構成について説明する。図1は、本実施形態における画像生成システムの機能ブロック図の一例である。なお、本実施形態の画像生成システムは、図1の構成要素(各部)の一部を省略した構成としてもよい。
【0024】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0025】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、最終的な表示画像等が記憶されるフレームバッファ172と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部173と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部174と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ176と、を含む。なお、これらの一部を省略する構成としてもよい。
【0026】
特に、本実施形態のオブジェクトデータ記憶部173には、移動体オブジェクト(車、キャラクタ等)、固定物オブジェクト(建物等)、背景オブジェクト(マップ、地形、天球等)のモデルデータが記憶されている。
【0027】
具体的には、このオブジェクトデータ記憶部173には、ローカル座標系において予め設定され、頂点の位置座標、テクスチャ座標、色データ、法線ベクトル(法線データ)およびα値などの各頂点データを含むオブジェクトデータまたは処理部100によって所定の演算により算出された各頂点データを含むオブジェクトデータが記憶される。
【0028】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0029】
この情報記憶媒体180には、処理部100において本実施形態の種々の処理を行うためのプログラム(データ)が記憶されている。即ち、この情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。
【0030】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0031】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0032】
携帯型情報記憶装置194には、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
【0033】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0034】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0035】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0036】
特に、本実施形態の処理部100は、オブジェクト空間に各種のオブジェクトを設定するオブジェクト空間設定部110と、オブジェクト空間における移動体オブジェクトの移動・動作演算を行う移動・動作処理部112と、仮想カメラを制御する仮想カメラ制御部114と、仮想カメラから見える画像を生成する描画部120と、音を生成する音生成部130と、を含む。なお、これらの一部を省略する構成としてもよい。
【0037】
オブジェクト空間設定部110は、各キャラクタオブジェクト、車、戦車、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ち、オブジェクト設定部110は、ワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0038】
移動・動作処理部112は、移動体オブジェクト(車又は飛行機の他にキャラクタが使用する道具等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち、この移動・動作処理部112は、操作部160によりプレーヤが入力した操作データ、設定されたパラメータや属性又はプログラム(移動・動作アルゴリズム)や各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作(モーション、アニメーション)を制御するための処理を行う。
【0039】
具体的には、本実施形態の移動・動作処理部112は、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは毎フレーム固定としてもよいし、処理負荷に応じて可変としてもよい。
【0040】
特に、本実施形態の移動・動作処理部112は、予め定められた特定の移動体オブジェクトがオブジェクト空間内を仮想カメラに対して相対的に移動する相対移動が行われる場合に、相対移動における移動体オブジェクトの移動・動作処理(シミュレーション処理)を行う。
【0041】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0042】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0043】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、本実施形態の描画部120は、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0044】
また、頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。
【0045】
ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をフレームバッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0046】
これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0047】
なお、描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0048】
そして、描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0049】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を記憶部170に記憶する。
【0050】
テクスチャマッピングでは、記憶部170のテクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部174からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出し、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0051】
なお、本実施形態では、オブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、マッピングされるテクスチャの色分布(テクセルパターン)を動的に変化させることができる。
【0052】
また、この場合において、色分布(ピクセルパターン)が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよい。
【0053】
隠面消去処理では、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照するとともに、当該参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0054】
αブレンディング(α合成)では、描画部120は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。
【0055】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0056】
また、描画部120は、移動体オブジェクトの移動軌跡ボリュームを生成する移動軌跡ボリューム生成部122と、移動軌跡ボリュームを描画する移動軌跡ボリューム描画部124と、描画された移動軌跡ボリュームに対して所定のエフェクト処理を行うエフェクト処理部126と、を含む。
【0057】
移動軌跡ボリューム生成部122は、仮想カメラに対してオブジェクトが相対移動する場合に、当該オブジェクトを構成する面の相対移動前の状態を示す第1の面と相対移動後の状態を示す第2の面とに基づいて、その描画フレームにおけるオブジェクトの移動の様子(移動軌跡)を示すボリューム(以下、「移動軌跡ボリューム」という。)を生成する。この移動軌跡ボリュームは、オブジェクトが高速で移動する際のモーションブラー(ぶれ)を表現するために用いるものである。
【0058】
詳細には、移動軌跡ボリューム生成部122は、予め定められた高速移動を行う特定のオブジェクトの相対移動前の位置(頂点座標)と相対移動後の位置(頂点座標)とに基づいて、移動軌跡ボリュームを生成する。この相対移動前の位置と相対移動後の位置は、その描画フレームにおける当該オブジェクトについての移動・動作演算(移動・動作シミュレーション)の結果や、仮想カメラの制御情報等に基づいて求めることができる。具体的には、その描画フレームにおけるオブジェクトの移動速度、移動方向、移動量等の移動情報、及び仮想カメラの位置、向き、画角の変化速度、変化方向、変化量等の制御情報に基づき、その描画フレームにおけるオブジェクトの相対移動前における位置(頂点座標)と相対移動後における位置(頂点座標)を求めることができる。
【0059】
特に本実施形態では、移動軌跡ボリューム生成部122は、前の描画フレームにおけるオブジェクトの位置をその描画フレームにおける相対移動前における位置とし、その描画フレームにおけるオブジェクトの位置を相対移動後における位置とする。そして、相対移動前における位置と相対移動後における位置とに基づいて、オブジェクトを構成する面の相対移動前の状態を示す第1の面と相対移動後の状態を示す第2の面とを端面とする移動軌跡ボリュームを生成する。
【0060】
移動軌跡ボリューム描画部124は、オブジェクトを構成する面の色分布に対応するピクセルパターンを有する所定のピクセル座標系における、前記移動軌跡ボリュームの描画ピクセルと前記第1の面との位置関係に応じた第1の位置と、該描画ピクセルと前記第2の面との位置関係に応じた第2の位置とを求め、前記第1の位置と前記第2の位置とを端点とする線分を所定のパターンで分割して得られる分割領域に基づいて、該描画ピクセルの色を求め、移動軌跡ボリュームを描画する。
【0061】
具体的には移動軌跡ボリューム描画部124は、所定のピクセル座標系として、生成された移動軌跡ボリュームを所定のマトリクスを用いて変換して得られるピクセル座標系を用いる。特に本実施形態では、移動軌跡ボリュームを構成する面(ポリゴンまたは三角形プリミティブ面)の頂点座標を所定のマトリクスで変換すると、当該面の色に応じた色分布に対応するピクセルパターンが直角三角形を形成するピクセル座標系を用いる。
【0062】
ここで本実施形態では、移動軌跡ボリュームを変換すると、当該移動軌跡ボリュームの描画ピクセルと第1の面との位置関係に応じた第1の位置と、第2の面との位置関係に応じた第2の位置と、オブジェクトを構成する面の色に応じた色分布を有するピクセルパターンとが配置されるピクセル座標系が構成されるマトリクスを逆算して求めておく。
【0063】
そして、移動軌跡ボリューム描画部124は、移動軌跡ボリュームの描画ピクセルと第1の面と第2の面との位置関係を、かかる所定のマトリクスを用いることにより、オブジェクトを構成する面の色に応じた色分布を有するピクセルパターンと第1の位置と第2の位置とが構成される所定のピクセル座標系に変換し、所定のピクセル座標系におけるピクセルパターンと第1の位置と第2の位置との位置関係から、移動軌跡ボリュームの描画ピクセルの色及び透明度を求める。
【0064】
詳細には移動軌跡ボリューム描画部124は、第1の位置と第2の位置とを端点とする線分を所定のパターンで分割して得られる分割領域に基づいて、前記生成されたボリュームの描画ピクセルの色を求める。具体的には本実施形態では、所与のディザ行列に基づいて分割領域を特定し、特定した分割領域に基づいて、前記生成された移動軌跡ボリュームの描画ピクセルの色を求める。
【0065】
ここで所与のディザ行列とは、線分における分割領域の数に対応するテクセルからなるテクスチャとすることができる。例えば線分の分割領域が16である場合には、4×4テクセルのテクスチャの各テクセルに、16段階のテクセル値(サンプル値)のいずれかを格納したグレイスケールのテクスチャをテクスチャ記憶部174に記憶しておく。そして、移動軌跡ボリューム描画部124は、このテクスチャをスクリーン上の描画ピクセルにマッピングし、移動軌跡ボリュームの各描画ピクセルにディザ行列の各成分(テクセル値)を対応させる。そして移動軌跡ボリュームの各描画ピクセルを描画する際に、各描画ピクセルに対応するテクセル値を参照し、その描画ピクセルを描画する際に用いる分割領域を特定する。そして特定した分割領域に基づいて、当該描画ピクセルの色を求める。即ち、ディザ行列に基づいて各描画ピクセルに対応する分割領域を分散させることにより、移動軌跡ボリュームの各描画ピクセルの色を適宜変化させる。
【0066】
また移動軌跡ボリューム描画部124は、第1の位置と第2の位置とを端点とする線分と、ピクセルパターンとの交差領域を求め、当該交差領域に基づいて移動軌跡ボリュームの描画ピクセルの色を求めるようにしてもよい。また移動軌跡ボリューム描画部124は、第1の位置と第2の位置とを端点とする線分と、ピクセルパターンとの交差領域を求め、第1の位置と第2の位置の距離と、交差領域の端点間の距離との比に基づいて、移動軌跡ボリュームの描画ピクセルの透明度を求めるようにしてもよい。
【0067】
エフェクト処理部126は、描画された移動軌跡ボリュームに対して、描画ピクセルの平滑化処理を行う。具体的にはエフェクト処理部126は、描画された移動軌跡ボリュームに対して、例えば、スーパーサンプリング(オーバーサンプリング)法または平滑化フィルタ法などを適用して、当該描画された移動軌跡ボリュームにおける隣接したピクセル間の色の変化を平滑化する平滑化処理を行う。
【0068】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0069】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0070】
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0071】
2.本実施形態の手法
2.1 概要
本実施形態の画像生成システムは、仮想カメラに対してオブジェクトが相対移動する場合に、前フレームのオブジェクトを構成する第1の面(相対移動前の状態を示す第1の面)と、現在フレームのオブジェクトを構成する第2の面(相対移動後の状態を示す第2の面)とを端面とする、当該オブジェクトの移動軌跡ボリュームを生成する。
【0072】
そして、オブジェクトを構成する面の色に応じた色分布に対応するピクセルパターンを有する所定のピクセル座標系(以下、「ローカル座標系」という。)における、移動軌跡ボリュームの描画ピクセルと第1の面との位置関係に応じた第1の位置と、該描画ピクセルと前記第2の面との位置関係に応じた第2の位置とを求める。更に、求めた第1の位置と第2の位置を端点とする線分(以下、「ピクセル線分」という。)を所定のパターンで分割し、ディザ行列を用いて描画ピクセルに対応する1の分割領域を特定する。そして、当該特定された分割領域に基づいて、生成されたボリュームの描画ピクセルの色を求める。
【0073】
即ち本実施形態では、移動軌跡ボリュームの各描画ピクセルについて、ローカル座標系における仮想的な移動軌跡を求める。そして仮想的な移動軌跡を分割した各分割領域を、仮想的な移動軌跡の時間分解能として用いて、かかる分割領域と、オブジェクトを構成する面の色に応じた色分布が展開されたピクセルパターン領域(以下、「色分布領域」という。)とに基づいて、移動軌跡ボリュームの各描画ピクセルの色を求める。
【0074】
このように本実施形態では、特定のオブジェクトのオブジェクト空間内における移動方向や移動速度に応じて変化するピクセル線分と、当該オブジェクトの色が反映された色分布領域とに基づいて、移動軌跡ボリュームの各描画ピクセルの色を求める。従って本実施形態では、オブジェクトのオブジェクト空間内における移動方向や移動速度に応じて、移動軌跡ボリュームの色を特定することができる。
【0075】
特に本実施形態では、ピクセル線分を所定のパターンで分割した分割領域のうち、ディザ行列を用いて特定された分割領域に対応する色を求めるため、当該求められる描画ピクセルの色を適宜変化させることができる。従って本実施形態では、移動軌跡ボリュームを形成するオブジェクトの形状が複雑なものであっても、時間分解能に応じて移動軌跡ボリュームの色分布を変化させることができる。
【0076】
例えば、図2(A)に示すオブジェクトOBを構成する面について本実施形態の手法を適用すると、図2(B)に示すように、オブジェクトOBの仮想カメラに対する相対移動方向や相対移動速度の変化に応じて、移動軌跡ボリュームMVの描画ピクセルの色を適確に描画することができるとともに、複雑な形状であっても、描画ピクセルの色を適確に描画することができる。こうして本実施形態によれば、オブジェクトの移動軌跡ボリュームMVを用いて適確にモーションブラーを表現することができる。
【0077】
2.2 移動軌跡ボリュームの生成
次に、本実施形態の移動軌跡ボリュームの生成手法について説明する。図3は、本実施形態の移動軌跡ボリュームの一例を説明するための図である。本実施形態では、図3に示すように、オブジェクト空間に、特定のオブジェクトの前フレームの位置に対応する前フレームのオブジェクトOB0(第1の面)と、現在フレームの位置に対応する現在フレームのオブジェクトOB1(第2の面)とを、それぞれの法線ベクトルnの向きが互いに逆向きになるように配置する。そして、前フレームのオブジェクトOB0の各頂点と現在フレームのオブジェクトOB1の各頂点とを結ぶ各稜線rに基づいて、各オブジェクトの間に法線ベクトルが外側に設定された縮退四角形のメッシュを挿入し、移動軌跡ボリュームMVを生成する。
【0078】
ここで、それぞれの法線ベクトルnは、前フレームのオブジェクトOB0の頂点座標と現在フレームのオブジェクトOB1の頂点座標とから求められる速度ベクトルaに基づいて向きを定める。即ち、図3に示すように、前フレームのオブジェクトOB0の法線ベクトルnは速度ベクトルaと逆方向に設定し、現在フレームのオブジェクトOB1の法線ベクトルnは速度ベクトルaに沿う方向に設定する。
【0079】
例えば、特定のオブジェクトが仮想カメラに対して奥側から手前側に相対移動する場合には、速度ベクトルaが手前側を向いているので、前フレームのオブジェクトOB0の法線ベクトルnは奥側を向くように設定され、現在フレームのオブジェクトOB1の法線ベクトルnは手前側を向くように設定される。一方、手前側から奥側に相対移動する場合には、速度ベクトルaが奥側を向いているので、前フレームのオブジェクトOB0の法線ベクトルnは手前側を向くように設定され、現在フレームのオブジェクトOB1の法線ベクトルnは奥側を向くように設定される。従って、本実施形態では、移動軌跡ボリュームMVを生成する際に、仮想カメラに対して手前側にあるオブジェクトOBのみを描画し、奥側にあるオブジェクトOBについてはバックフェースカリングを行うことができる。
【0080】
なお、特定のオブジェクトについての基準ボリュームを予め用意しておき、移動軌跡ボリュームMVを生成する際に、特定のオブジェクトの相対移動に関する情報に基づいて基準ボリュームを変形させて、そのフレームにおける移動軌跡ボリュームMVを生成するようにしてもよい。また、頂点計算を行った後に、特定のオブジェクトの相対移動に関する情報に基づいて、移動奇跡ボリュームMVを生成するようにしてもよい。
【0081】
2.3 移動軌跡ボリュームの描画
次に、本実施形態の移動軌跡ボリュームの描画手法について説明する。本実施形態では、生成された移動軌跡ボリュームを透視変換し、スクリーン座標系に射影変換するとともに、移動軌跡ボリュームを所定のマトリクスを用いて変換したローカル座標系における色分布領域(ピクセルパターン)と、描画ピクセルの色を求める際の基準となるピクセル座標の位置を特定するためのディザ行列と、を用いて当該描画ピクセルの色を求め、移動軌跡ボリュームを描画する。
【0082】
2.3.1 移動軌跡ボリュームの変換
図4(A)、(B)は、本実施形態の移動軌跡ボリュームMVを所定のローカル座標系に変換する手法の一例を説明するための図である。本実施形態では、図4(A)に示す移動軌跡ボリュームMVを描画する場合には、当該移動軌跡ボリュームMVを構成する面の頂点座標を所定のマトリクスで変換する。そして、図4(B)に示すような、移動軌跡ボリュームMVの現在フレームのオブジェクトOB1の面(q0,q1,q2)の色に応じた色分布に対応するピクセルパターンが、直角三角形((0,0),(0,1),(1,0))を形成するローカル座標系を得て、このローカル座標系を用いて移動軌跡ボリュームMVの各描画ピクセル色を求める。
【0083】
例えば、図4(A)に示す移動軌跡ボリュームMVの描画ピクセルpの色を求める場合を例に挙げると、移動軌跡ボリュームMVを所定のマトリクスで変換すると、図4(B)に示すローカル座標系において直角三角形((0,0),(0,1),(1,0))のピクセルパターンが形成されるとともに、描画ピクセルpと前フレームのオブジェクトOB0との位置関係に応じた前フレームの座標点C0(第1の位置)と、描画ピクセルpと現在フレームのオブジェクトOB1との位置関係に応じた現在フレームの座標点C1(第2の位置)とが求まる。
【0084】
即ち本実施形態では、所定のマトリクスを用いて、移動軌跡ボリュームMVにおける、描画ピクセルpに対応する前フレームのオブジェクトOB0の対応ピクセルP0と、当該描画ピクセルpに対応する現在フレームのオブジェクトOB1の対応ピクセルP1とを、オブジェクトOB1の面(q0,q1,q2)が直角三角形の色分布領域Tとなるローカル座標系における、前フレームの座標点C0と現在フレームの座標点C1に変換する。
【0085】
詳細には本実施形態では、描画ピクセルの位置をp(t)とし、時刻tの時の特定のオブジェクトの頂点のスクリーン座標上の位置をQ0(t)、Q1(t)、Q2(t)とすると、(式1)から導出された(式2)に基づいて、描画ピクセルの位置p(t)からC(t)を求めることができる。
p(t)−Q0(t)
=C(t).x(Q1(t)−Q0(t))+C(t).y(Q2(t)−Q0(t))
=M(t)C(t)
・・・(式1)
C(t)=M−1(t)(p(t)−Q0(t)) ・・・(式2)
【0086】
ここで[.x]、[.y]は、特定のオブジェクトのスクリーン座標における頂点位置のx及びy成分を示し、Mは、移動軌跡ボリュームMVをスクリーン座標系からローカル座標系にマトリクス変換する際のマトリクスを示す。
【0087】
そして本実施形態では、このようにして得られる図4(B)に示すローカル座標系において、前フレームの座標点C0と現在フレームの座標点C1とを端点とする線分Lと、色分布領域Tを含むピクセルパターンとに基づいて移動軌跡ボリュームMVの描画ピクセルpの色を求める。即ち移動軌跡ボリュームMVの描画ピクセルpの色として、オブジェクトのローカル座標系における仮想的な移動軌跡上の色を設定する。
【0088】
2.3.2 描画ピクセルの色の決定
特に本実施形態では、前フレームの座標点C0と現在フレームの座標点C1とを端点とする線分Lを所定数の分割領域に分割し、いずれかの分割領域に基づいて移動軌跡ボリュームMVの描画ピクセルの色を求める。本実施形態では、各描画ピクセルについて、分割領域の分割数に対応したディザ行列に基づいていずれかの分割領域を特定し、特定された分割領域に基づいて移動軌跡ボリュームMVの描画ピクセルの色を求める。
【0089】
図5は、特定された分割領域に基づいて、図4(A)の描画ピクセルpの色を求める手法を説明するための図である。本実施形態では、図5(A)に示すように、所定のローカル座標系において、前フレームの座標点C0と現在フレームの座標点C1とを端点とするピクセル線分Lを16の分割領域Dに分割する。そして描画ピクセルpを描画するときに用いる分割領域を、図5(B)に示す4×4のディザ行列DMの値に基づき特定する。
【0090】
具体的には本実施形態では、図5(B)に示すディザ行列DMの各成分値をテクセル値とするディザテクスチャを、テクスチャ記憶部174に記憶しておく。そして複数のディザテクスチャをスクリーン上に並べてマッピングして、スクリーン上の各描画ピクセルにテクセル値を対応付ける。本実施形態では、4×4テクセルの各テクセルに16段階のテクセル値(サンプル値)のいずれかが格納されたグレイスケールのディザテクスチャを、スクリーン座標の原点を基準としてスクリーン全面にマッピングする。これにより図4(A)の移動軌跡ボリュームMVの各描画ピクセルに、ディザテクスチャのテクセル値を対応付ける。なおディザテクスチャは、移動軌跡ボリュームMVの頂点や原点を基準としてマッピングしてもよく、少なくとも移動軌跡ボリュームMVの描画ピクセルにマッピングされればよい。
【0091】
そして本実施形態では、図5(A)に示す各分割領域Dについて左から順に、ディザ行列DMの各成分の値(サンプル値)である1〜16を対応付ける。即ち移動軌跡ボリュームMVの各描画ピクセルと、各分割領域Dとを、ディザ行列を介して対応付ける。そして本実施形態では、移動軌跡ボリュームMVの描画ピクセルpを描画する際に、描画ピクセルpに対応するテクセル値を参照して分割領域Dを特定する。
【0092】
こうして本実施形態では描画ピクセルpに対応する分割領域Dを特定し、特定された分割領域Dに対応する所定のローカル座標系のピクセルパターンに基づいて、描画ピクセルpの色を求める。例えば図4(A)の描画ピクセルpに対応するディザ行列DMの成分が「9」である場合には、図5(A)に示すように、ピクセル線分Lの左から9番目の分割領域D9に対応する色分布領域Tのピクセルの色を、図4(A)の描画ピクセルpの色として設定する。本実施形態では、分割領域D9の中点に対応する色分布領域Tのピクセルの色を、描画ピクセルpの色として設定する。なお、当該分割領域D9に対応する色分布領域Tのピクセルの色の平均値を、描画ピクセルpの色として設定してもよい。
【0093】
そして本実施形態では、かかる色の設定を移動軌跡ボリュームMVの各描画ピクセルについて行う。ここで、移動軌跡ボリュームMVの各描画ピクセルは、前フレームのオブジェクトOB0に対する位置関係、及び現在フレームのオブジェクトOB1に対する位置関係がそれぞれ異なる。従って、それぞれの描画ピクセルについて、図5(A)に示すローカル座標系における前フレームの座標点C0と現在フレームの座標点C1が異なり、線分Lの位置、範囲(長さ)も異なる。そして、ピクセル線分Lの分割数は同一のため、1つあたりの分割領域の範囲(長さ)も異なる。
【0094】
例えば図4(A)において、描画ピクセルpよりも下方であって、現在フレームのオブジェクトOB1に近い描画ピクセルp1の色を求める場合には、図6(A)に示すように、ローカル座標系における線分L1は、描画ピクセルpに対応する線分Lよりも下方に平行移動する。即ち描画ピクセルp1は、色分布領域Tにおいて描画ピクセルpよりも下方に位置するピクセルに対応する色で描画する。従って本実施形態では、移動軌跡ボリュームMVの描画ピクセルの色として、オブジェクトの色分布に対応する色を設定することができる。
【0095】
しかも本実施形態では、描画ピクセルp1に対応するディザ行列DMの成分についても、描画ピクセルpと異なる。例えば描画ピクセルp1に対応するディザ行列DMの成分が「2」である場合には、図6(A)に示すように、ピクセル線分Lの左から2番目の分割領域D2に対応する色分布領域Tのピクセルの色を、図4(A)の描画ピクセルp1の色として設定する。
【0096】
ここで、図6(A)に示すように、ピクセル線分L1の2番目の分割領域D2は色分布領域T外となっている。この場合には、スクリーン上において当該色分布領域Tに対応するポリゴン(オブジェクト)の隣のポリゴンに対応する色分布領域の色を設定する。また、当該色分布領域Tに対応するポリゴンが、移動軌跡ボリュームMVを構成するオブジェクトの輪郭を構成する場合には、隣のポリゴンが存在しないので当該描画ピクセルの色を無色(透明)に設定する。即ちこの場合には、最終的に出力される色は背景に対応する色となる。
【0097】
従って本実施形態では、移動軌跡ボリュームMVを形成するオブジェクトが複雑な形状を有する場合であっても、隣接するポリゴン又はプリミティブ面の色を時間分解能に応じて混在させた移動軌跡ボリュームMVを描画することができる。また、2以上のオブジェクトが交差して移動軌跡ボリュームMV同士が交差する場合であっても、それぞれの移動軌跡ボリュームMVにそれぞれのオブジェクトにおける色を反映させることができる。
【0098】
こうして本実施形態では、移動軌跡ボリュームMVの各描画ピクセルの色を、移動軌跡ボリュームMVを所定のマトリクスで変換した所定のローカル座標系と、予め定められた分割パターンであるディザ行列を用いて設定し、移動軌跡ボリュームMVを描画する。すると、図2(B)に示すように、オブジェクトの色分布に対応し、前後方向に向かうにつれ次第に色が薄くなるような移動軌跡ボリュームMVを描画することができる。こうして本実施形態では、複雑な形状のオブジェクトのモーションブラーを適確に表現する移動軌跡ボリュームMVを描画することができる。
【0099】
2.3.3 移動方向、移動速度に応じた色の決定
また、図6(B)は、オブジェクトの仮想カメラに対する相対的な移動方向、移動速度が、他の態様である場合に設定されるローカル座標系の例である。図6(B)の例では、オブジェクトの移動方向が、オブジェクト空間において下方向であって、移動速度が遅い、即ち当該描画フレームにおけるオブジェクトの移動量が小さい場合の例である。この場合には、移動軌跡ボリュームMVは上下方向に延びる形状として生成されるので、図6(B)の例では、ローカル座標系における線分L2が、移動軌跡ボリュームMVの延長方向に沿う上下方向に形成される。
【0100】
また、移動軌跡ボリュームMVは長さが短く生成されるので、生成される移動軌跡ボリュームMVにおいて、前フレームのオブジェクトOB0と現在フレームのオブジェクトOB1とが重なる領域が多くなる。すると図6(B)の線分L2については、前フレームの座標点C0及び現在フレームの座標点C1の位置が、色分布領域Tと重なる位置となっている。これは、描画ピクセルの移動軌跡ボリュームMVにおける位置が、前フレームのオブジェクトOB0と現在フレームのオブジェクトOB1とが重なる位置にあるためである。従って、ローカル座標系における前フレームの座標点C0と現在フレームの座標点C1の位置が、ともに色分布領域Tと重なる位置となっている。即ち図6(B)に示すように、ローカル座標系における線分L2も長さが短く形成される。
【0101】
従って図6(B)の例では、上下方向に短く形成される線分L2を16分割して得られる分割領域Dのいずれかに基づいて、描画ピクセルの色を設定する。一方、オブジェクトの仮想カメラに対する相対的な移動速度が速い場合には、移動軌跡ボリュームMVの長さが長く形成される。すると、ローカル座標系における前フレームの座標点C0と現在フレームの座標点C1との距離即ち線分Lが長くなり、長く形成される線分Lを16分割して得られる分割領域Dのいずれかに基づいて、描画ピクセルの色を設定する。
【0102】
このように本実施形態では、オブジェクトの仮想カメラに対する相対移動方向や相対移動速度が変化すると、ローカル座標系における色分布領域Tに対する前フレームの座標点C0と現在フレームの座標点C1が変化し、分割領域Dも変化する。従って本実施形態によれば、移動軌跡ボリュームMVの色を求める際に、オブジェクトの仮想カメラに対する相対移動方向や相対移動速度に応じて、移動軌跡ボリュームMVの描画ピクセルの色を求めることができる。こうして本発明によれば、オブジェクトの移動軌跡ボリュームを用いて的確にモーションブラーを表現することができる。
【0103】
2.3.4 交差領域に基づく色の決定
なお、本実施形態では、前フレームの座標点C0と現在フレームの座標点C1を端点とする線分Lと、色分布領域Tとに基づいて、交差領域Oを求め、当該求められた交差領域についてのみ時間分割を行い、分割された分割領域をディザ行列によって特定して移動軌跡ボリュームMVの描画ピクセルの色を求めてもよい。
【0104】
詳細には、本実施形態では、図7(A)に示すように、ローカル座標系におけるx=0、y=0、x+y=1と、前フレームの座標点C0と現在フレームの座標点C1とを通る直線との交点la、lb、lcを求める。そして、各交点la、lb、lcと、前フレームの座標点C0及び現在フレームの座標点C1との関係から、解析的にピクセル線分Lと色分布領域Tとの交差領域O(線分lblc)を求める。
【0105】
そして本実施形態では、図7(B)に示すように、この交差領域Oについて所定数の時間分割(例えば16分割)を行い、ディザ行列によって何れかの分割領域Dを定めることによって移動軌跡ボリュームMVの描画ピクセルpの色として、オブジェクトのローカル座標系における仮想的な移動軌跡上の色を設定する。
【0106】
ここで、移動軌跡ボリュームMVの各描画ピクセルは、上述したように、前フレームのオブジェクトOB0に対する位置関係、及び現在フレームのオブジェクトOB1に対する位置関係がそれぞれ異なるので、それぞれの描画ピクセルについて、図7(A)に示すローカル座標系における前フレームの座標点C0と現在フレームの座標点C1が異なり、交差領域Oの位置、範囲が、描画ピクセルの位置に応じて変化する。
【0107】
なお、上記説明においては、第1の面(前フレームのオブジェクトOB0)と第2の面(現在フレームのオブジェクトOB1)とを端面とする移動軌跡ボリュームを生成する例について説明したが、本実施形態では、第1の面と第2の面との間の位置など、第1の面と第2の面とに関連付けられた位置に移動軌跡ボリュームを生成すればよく、移動軌跡ボリュームに第1の面と第2の面とが含まれなくてもよい。また、第1の面と第2の面については描画しても描画しなくてもよい。
【0108】
また、本実施形態においては、ピクセル線分の分割領域を特定する場合に、一のディザ行列のみを用いてもよいし、描画ピクセルのスクリーン上の位置などに対応付けて複数のディザ行列を用いてもよい。また、ディザ行列を用いてピクセル線分の分割領域を特定するようになっているが、分割点を無作為に特定するためのパターンよって分割領域を定めることができれば、ディザ行列以外の如何なるパターンを用いてもよい。
【0109】
また、色分布領域Tの1のピクセルの色情報に基づいて描画ピクセルpの色を設定してもよいし、複数のピクセルの色情報に基づいて色を設定してもよい。複数のピクセルの色情報に基づく場合には、複数のピクセルの色の平均値を設定するようにしてもよい。
【0110】
また、色分布領域Tのピクセルパターンは、対応するオブジェクトの頂点色情報から構成してもよいし、テクスチャ色情報から構成してもよい。また、対応するオブジェクトの頂点色情報とテクスチャ色情報とを掛け合わせた色情報から構成してもよい。具体的には本実施形態のローカル座標系(オブジェクトを構成する面の色に応じた色分布に対応するピクセルパターンを有する所定のピクセル座標系)の座標点に、オブジェクトに対応するテクスチャ座標点を変換し、ピクセルパターンに対応するテクセルパターンを求めて色を求めるようにしてもよい。また、ローカル座標系のピクセルデータを、直接的にピクセルの色を指定するピクセルデータから構成してもよいし、間接的にピクセルの色を指定するピクセルデータから構成してもよい。
【0111】
また、本実施形態では、移動軌跡ボリュームの各描画ピクセルにおける色を求める場合に、描画ピクセルに対応するオブジェクトを構成する面の色に応じた色分布を有する2次元のローカル座標系を用いているが、オブジェクトを3次元的に解析して3次元のローカル座標を用いるようにしてもよい。
【0112】
2.3.5 平滑化処理
また、本実施形態では、描画した移動軌跡ボリュームに対して、描画ピクセルの平滑化処理を行う。具体的には、描画された移動軌跡ボリュームに対して、例えばスーパーサンプリング(オーバーサンプリング)法または平滑化フィルタ法などを適用して、当該描画された移動軌跡ボリュームにおける隣接したピクセル間の色の変化を平滑化する平滑化処理を行う。
【0113】
例えばスーパーサンプリング法を適用する場合には、移動軌跡ボリュームの各描画ピクセルを、表示する画像解像度より高解像度に描画して、高解像度画像を表示解像度に変換してから表示して色値を平滑化する。また、移動軌跡ボリュームの各描画ピクセルを、画面サイズよりも大きく描画し、描画した後に各ピクセルの色の平均値をとることにより平滑化する。これにより、図8(A)に示すスーパーサンプリング処理を行う前と比べ、図8(B)に示すように移動軌跡ボリュームMVの視覚効果を向上させることができる。
【0114】
特に本実施形態では、ディザテクスチャを用いて分割領域を特定して移動軌跡ボリュームの描画ピクセルの色を求めた場合に、ディザテクスチャの配列パターンが移動軌跡ボリュームに現れてしまう。しかし本実施形態によれば、移動軌跡ボリュームの各描画ピクセルを平滑化することにより、ディザテクスチャの配列パターンが移動軌跡ボリュームに現れることを効果的に防止することができる。
【0115】
2.4 マトリクスの詳細
次に、本実施形態において用いるマトリクスMの算出過程について説明する。例えば、オブジェクトを構成するポリゴンの頂点位置のローカル座標系における値をv0、v1、v2とし、当該ポリゴンの頂点位置の射影座標系における値をV0、V1及びV2とすると、射影座標Vは、ローカル座標vと、ワールド行列Mw、ビュー行列Mv及び射影行列Mpを通して(式3)の関係が成立する。ただし、i=(0,1,2)を示す。
Vi=Mp×Mv×Mw×vi ・・・(式3)
【0116】
このとき、スクリーン座標に対応した2次元のポリゴンの頂点位置座標Qを(式4)にて定義すると、このスクリーン座標系におけるスクリーン上のピクセルの位置pは(式5)にて対応付けられる。
【0117】
【数1】

【0118】
【数2】

【0119】
なお、[.x]、[.y]、[.w]は、頂点位置のx、y、w成分を示す。また、(x,y)はスクリーンにおけるピクセルの位置及び(X,Y)は、スクリーンの大きさを示す。
【0120】
ここで、スクリーン上のピクセルの位置pを頂点の位置座標Qiの差分から作ったベクトルで展開すると、展開係数ベクトルCにおいて(式6)の関係が成り立ち、これは(式7)によってマトリクスMにて書き直すことができる。
p=C.x×(Q1−Q0)+C.y×(Q2−Q0)+Q0 ・・・(式6)
p=M(t)×C+Q0 ・・・(式7)
【0121】
そして、展開係数ベクトル(ローカル座標における座標点)Cの定義から、このマトリクスMを(式8)のように表すことができる。ただし、[.x]、[.y]、[.w]は、上述と同様に頂点位置のx、y、w成分を示す。ここで、Mは、描画ピクセルpをオブジェクトを構成するポリゴンのローカル座標に座標変換する際に用いるマトリクスを示す。
【0122】
【数3】

【0123】
そして、マトリクスMはポリゴンの位置から求められ、pについても描画ピクセルの位置が定まれば特定することができるので、ローカル座標系におけるC、すなわち、展開係数ベクトルCを(式7)から逆算して(式9)のように求めることができる。
【0124】
【数4】

【0125】
3.本実施形態の処理
次に、本実施形態における移動軌跡ボリュームを描画する際の詳細な処理例について、図9のフローチャートを用いて説明する。まず、高速移動を行う予め定められた特定オブジェクトが、仮想カメラに対して相対的に移動する相対移動が行われた場合に、当該描画フレームにおける特定オブジェクトの相対移動に関する情報を求める(ステップS10)。具体的には、操作部160からの操作データやプログラムなどに基づいて、仮想カメラのオブジェクト空間内における位置を基準に、当該描画フレームにおける特定オブジェクトの位置の変化や方向の変化をリアルタイムに演算する。
【0126】
次いで、画面をクリアし、当該描画フレームにおける背景を描画する(ステップS20)。
【0127】
次いで、取得した特定オブジェクトの相対移動に関する情報に基づいて、特定オブジェクトに対応する基準ボリュームを変形し、特定オブジェクトの移動軌跡ボリュームを生成する(ステップS30)。
【0128】
次いで、生成された移動軌跡ボリュームを透視変換・射影変換し、スクリーン上における移動軌跡ボリュームの描画ピクセルを求める(ステップS40)。
【0129】
次いで、描画ピクセルに対応するディザ行列の成分(サンプル値)を特定する(ステップS50)。
【0130】
次いで、移動軌跡ボリュームの各描画ピクセルを、所定のマトリクスを用いてローカル座標系における前フレームの座標点と現在フレームの座標点に変換する(ステップS60)。
【0131】
次いで、ローカル座標系における前フレームの座標点と現在フレームの座標点とを端点とするピクセル線分を所定のパターンで分割して得られる分割領域のうち、ディザ行列を介して描画ピクセルに対応付けられた分割領域を特定する(ステップS70)。
【0132】
次いで、各描画ピクセルについて、ローカル座標系における分割領域に基づいて、色分布領域を基準に描画ピクセルの色(RGB)を求める(ステップS80)。
【0133】
そして、求めた色に基づいて、移動軌跡ボリュームを描画する(ステップS90)。
【0134】
そして、描画した移動軌跡ボリュームに対して平滑化処理を行う(ステップS100)。
【0135】
4.ハードウェア構成
次に、図10を用いて本実施形態を実現できるハードウェア構成について説明する。なお、図10は、本実施形態を実現できるハードウェア構成を示す一例である。
【0136】
メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
【0137】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0138】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0139】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。
【0140】
また、この描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0141】
なお、上記各プロセッサの各機能は、ハードウェアとして別々のプロセッサにより実現してもよいし、1つのプロセッサにより実現してもよい。また、プロセッサとしてCPUとGPUを設けた場合でも、いずれのプロセッサによりいかなる機能を実現するかは、任意に設定することができる。
【0142】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0143】
ROM950には、システムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。
【0144】
RAM960は、各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるDVD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0145】
なお、本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0146】
そして、本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0147】
また、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(プリミティブ面等)として引用された用語(ポリゴン等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0148】
また、本実施形態においては、移動軌跡ボリュームにおける各描画ピクセルに対して当該各描画ピクセルの色を特定しているが、スクリーンを構成する移動軌跡ボリューム以外を含む全描画ピクセルに対して上述の描画処理を行い、各描画ピクセルの色を特定してもよい。
【0149】
また、上述の描画処理は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含むことができる。
【0150】
また、本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0151】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】図2(A)は、本実施形態の処理対象の画像の一例の説明図、図2(B)は、本実施形態の処理結果として生成される画像の一例の説明図。
【図3】本実施形態で生成される移動軌跡ボリュームの一例の説明図。
【図4】図4(A)は、本実施形態のマトリクス変換前の移動軌跡ボリュームの一例の説明図、図4(B)は、本実施形態のマトリクス変換後のローカル座標系の一例の説明図。
【図5】図5(A)は、本実施形態のディザ行列の一例の説明図、図5(B)は、本実施形態のローカル座標系の一例の説明図。
【図6】図6(A)(B)は、本実施形態のローカル座標系の一例の説明図。
【図7】図7(A)(B)は、本実施形態のローカル座標系の一例の説明図。
【図8】本実施形態における平滑化処理についての説明図。
【図9】本実施形態の処理の一例を示すフローチャート図。
【図10】ハードウェアの構成例。
【符号の説明】
【0152】
OB オブジェクト、MV 移動軌跡ボリューム、
OB0 前フレームのオブジェクト、OB1 現在フレームのオブジェクト、
p 描画ピクセル、C0 前フレームの座標点、C1 現在フレームの座標点、
L 線分、T 色分布領域、O 交差領域、
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、120 画像生成部、122 移動軌跡ボリューム生成部、124 移動軌跡ボリューム描画部、126 エフェクト処理部、160 操作部、
170 記憶部、172 フレームバッファ、173 オブジェクトデータ記憶部、
174 テクスチャ記憶部、176 Zバッファ176、180 情報記憶媒体、
190 表示部、192 音出力部、194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
前記仮想カメラに対してオブジェクトが相対移動する場合に、当該オブジェクトを構成する面の前記相対移動前の状態を示す第1の面と前記相対移動後の状態を示す第2の面とに基づいて、移動軌跡ボリュームを生成するボリューム生成部と、
前記生成された移動軌跡ボリュームを描画する移動軌跡ボリューム描画部としてコンピュータを機能させ、
前記移動軌跡ボリューム描画部が、
前記オブジェクトを構成する面の色分布に対応するピクセルパターンを有する所定のピクセル座標系における、前記移動軌跡ボリュームの描画ピクセルと前記第1の面との位置関係に応じた第1の位置と、該描画ピクセルと前記第2の面との位置関係に応じた第2の位置とを求め、前記第1の位置と前記第2の位置とを端点とする線分を所定のパターンで分割して得られる分割領域に基づいて、該描画ピクセルの色を求めることを特徴とするプログラム。
【請求項2】
請求項1において、
前記移動軌跡ボリューム描画部が、
所与のディザ行列に基づいて分割領域を特定し、該特定した分割領域に基づいて、前記生成された移動軌跡ボリュームの描画ピクセルの色を求めることを特徴とするプログラム。
【請求項3】
請求項1、2のいずれかにおいて、
前記描画した移動軌跡ボリュームに対して、描画ピクセルの平滑化処理を行うエフェクト処理部として更にコンピュータを機能させることを特徴とするプログラム。
【請求項4】
コンピュータに読み取り可能な情報記憶媒体であって、請求項1乃至5のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項5】
オブジェクト空間において仮想カメラから見える画像を生成する画像生成システムであって、
前記仮想カメラに対してオブジェクトが相対移動する場合に、当該オブジェクトを構成する面の前記相対移動前の状態を示す第1の面と前記相対移動後の状態を示す第2の面とに基づいて、移動軌跡ボリュームを生成するボリューム生成部と、
前記生成された移動軌跡ボリュームを描画する移動軌跡ボリューム描画部とを含み、
前記移動軌跡ボリューム描画部が、
前記オブジェクトを構成する面の色分布に対応するピクセルパターンを有する所定のピクセル座標系における、前記移動軌跡ボリュームの描画ピクセルと前記第1の面との位置関係に応じた第1の位置と、該描画ピクセルと前記第2の面との位置関係に応じた第2の位置とを求め、前記第1の位置と前記第2の位置とを端点とする線分を所定のパターンで分割して得られる分割領域に基づいて、該描画ピクセルの色を求めることを特徴とする画像生成システム。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図2】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−272389(P2007−272389A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−95050(P2006−95050)
【出願日】平成18年3月30日(2006.3.30)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】