JP2005141647A - プログラム、情報記憶媒体、及び画像生成システム - Google Patents
プログラム、情報記憶媒体、及び画像生成システム Download PDFInfo
- Publication number
- JP2005141647A JP2005141647A JP2003379894A JP2003379894A JP2005141647A JP 2005141647 A JP2005141647 A JP 2005141647A JP 2003379894 A JP2003379894 A JP 2003379894A JP 2003379894 A JP2003379894 A JP 2003379894A JP 2005141647 A JP2005141647 A JP 2005141647A
- Authority
- JP
- Japan
- Prior art keywords
- texture
- light
- paint
- image
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
【課題】水面等の流体表面のリアルな画像を少ない処理負荷で生成できるプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】 流体モデルオブジェクトの頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形し、流体モデルオブジェクトに設定される法線ベクトルの情報に基づいてテクスチャ座標を求め、求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら流体モデルオブジェクトを描画する。格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形する。格子点の位置座標成分に基づき基準テクスチャ座標を求め、基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、テクスチャ座標を求める。
【選択図】 図15
【解決手段】 流体モデルオブジェクトの頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形し、流体モデルオブジェクトに設定される法線ベクトルの情報に基づいてテクスチャ座標を求め、求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら流体モデルオブジェクトを描画する。格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形する。格子点の位置座標成分に基づき基準テクスチャ座標を求め、基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、テクスチャ座標を求める。
【選択図】 図15
Description
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
従来より、キャラクタなどのモデルオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において所与の視点(仮想カメラ)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
このような画像生成システムでは、例えば水面に波が生じる様子や水面の画像が歪む様子もリアルに表現できることが望ましい。しかしながら、これまでの画像生成システムでは、このような水面のリアルな画像を少ない処理負荷で生成することが難しかった。
特開平11−42371号公報
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、水面等の流体表面のリアルな画像を少ない処理負荷で生成できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
本発明は、オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明によれば、流体モデルオブジェクトの頂点の位置を変化させることで流体モデルオブジェクトの形状が変形される。そして流体モデルオブジェクトに設定される法線ベクトルの情報(座標成分、方向)に基づいてテクスチャ座標が求められ、このテクスチャ座標を用いて流体テクスチャ(流体面の画像を表現するためのテクスチャ)が流体モデルオブジェクトにマッピングされる。このようにすれば、流体モデルオブジェクトの形状変形により法線ベクトルの方向が変化し、この方向が変化する法線ベクトルに基づいてテクスチャ座標が求められる。従って、流体モデルオブジェクトの形状変形によりテクスチャ座標が変位し、この変位するテクスチャ座標に基づいて流体テクスチャがマッピングされるようになる。従って流体モデルオブジェクトの形状変形に伴い水面等の流体表面の画像が揺らぐようになり、リアルな流体表面画像を生成できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記形状変形部が、流体モデルオブジェクトに対応して設定された格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形するようにしてもよい。
このようにすれば、格子の格子点位置を変化させるという簡素な処理で、流体モデルオブジェクトの形状変形を実現できるようになる。なお格子点位置は例えば第2の座標軸(例えばY軸)方向に変化させることができる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、テクスチャ座標演算部が、格子点の位置座標成分に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標を求めるようにしてもよい。
このようにすれば、基準テクスチャ座標を中心として揺らぐテクスチャ座標に基づいて、流体テクスチャを流体モデルオブジェクトにマッピングできるようになり、リアルな流体表面画像を生成できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、表示用領域とペイント用領域とを有する記憶部と、光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部とを含み(記憶部と領域特定部としてコンピュータを機能させ)、前記描画部が、特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画するようにしてもよい。
本発明によれば、光透過領域又は光遮蔽物の配置情報と光源情報とに基づく投影演算により、光照射領域又は影領域がペイント用領域において特定される。そして特定された光照射領域又は影領域に、光照射画像又は影画像を描画することで、ペイントテクスチャが生成される。そして生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを表示用領域に描画することで、表示画像(ゲーム画像、フレーム画像)が生成される。このようにすれば、ペイントテクスチャを生成し、生成されたペイントテクスチャをマッピングするだけという少ない処理負荷で、光透過領域や光遮蔽物の配置情報や光源情報が考慮されたリアルな光照射画像や影画像を、流体モデルオブジェクトの表面に形成できる。
なお生成されたペイントテクスチャは、他のテクスチャと共に流体モデルオブジェクトに直接にマルチテクスチャマッピング手法によりマッピングしてもよいし、別に用意されたペイント用モデルオブジェクトにペイントテクスチャをマッピングするようにしてもよい。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記領域特定部が、光透過領域又は光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域又は影領域を形成するペイント用プリミティブ面の頂点を特定し、前記描画部が、頂点が特定されたペイント用プリミティブ面に光テクスチャ又は影テクスチャをマッピングし、光テクスチャ又は影テクスチャがマッピングされたペイント用プリミティブ面を前記ペイント用領域に描画することで、ペイントテクスチャを生成するようにしてもよい。
このようにすれば、投影演算により頂点が特定されたペイント用プリミティブ面を描画するだけで、光透過領域や影領域への光照射画像や影画像の描画処理を実現できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記領域特定部が、光透過領域又は光遮蔽物を簡略化した形状を投影面に投影する演算を行うことで、前記光照射領域又は前記影領域を特定するようにしてもよい。
このようにすれば、光透過領域や光遮蔽物が複雑な形状であっても、投影演算は、これらを簡略化した形状に対して行えば済むため、処理負荷を軽減できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、光遮蔽物の少なくとも一部が光透過領域に存在することを条件に、投影面に光遮蔽物を投影する演算を行うようにしてもよい。
このようにすれば、光透過領域に光遮蔽物が存在しない場合には、投影演算や描画処理を省略できるため、処理負荷を軽減できる。また光遮蔽物の一部だけが光透過領域に存在する場合にも投影演算や描画処理が行われるようになるため、光遮蔽物の一部の影が流体モデルオブジェクトの表面に形成される画像も生成できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、光透過領域に存在する光遮蔽物の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くするようにしてもよい。
このようにすれば、あたかも多数の光遮蔽物により光透過領域が覆われることで暗くなったかのように見えるリアルな画像を生成できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、フレーム更新の際に、リフレッシュ用の半透明の画像を前記ペイント用領域に描画するようにしてもよい。
このようにすれば、光遮蔽物の残像表現等を少ない処理負荷で実現できる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、視点制御部114、形状変形部116、テクスチャ座標演算部117、領域特定部118、描画部120、音生成部130を含む。なおこれらの一部を省略してもよい。
オブジェクト空間設定部110は、キャラクタ、車、樹木、柱、壁、建物、マップ(地形)などの表示物を表す各種モデルオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でモデルオブジェクトを配置する。
移動・動作処理部112は、モデルオブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データ、プログラム(移動・動作アルゴリズム)、或いは各種データ(モーションデータ)などに基づいて、モデルオブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、モデルオブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、モデルオブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、モデルオブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
視点制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
例えば仮想カメラによりモデルオブジェクトを後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。この場合には、仮想カメラの位置(移動経路)や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
形状変形部116は、流体モデルオブジェクト(広義には表示用モデルオブジェクト、狭義には水面モデルオブジェクト)の形状を変形するための処理を行う。具体的には流体モデルオブジェクトを構成するプリミティブ面(狭義にはポリゴン、自由曲面)の頂点(構成点、制御点)の位置を例えば時間経過(フレーム経過)やゲームイベントの発生などに伴い変化させることで、流体モデルオブジェクトの形状を変形する。更に具体的には、流体モデルオブジェクトに対応して設定された格子の格子点(grid point)の位置を時間経過に伴い変化させ、その格子点を頂点(構成点、制御点)とするプリミティブ面(ポリゴン、自由曲面)を生成することで、そのプリミティブ面により構成される流体モデルオブジェクトの形状をリアルタイムに変形する。
なお格子点の情報(X、Y、Z座標、法線ベクトル、テクスチャ座標)は、記憶部170の格子点情報領域171に記憶される。この格子点情報領域171は例えば格子点の個数分だけ確保される。そして形状変形部116は格子点情報領域171に記憶される格子点情報を利用して、流体モデルオブジェクトの形状変形処理を行う。
テクスチャ座標演算部117は、流体モデルオブジェクト(モデルオブジェクト)にマッピングされるテクスチャを指定するテクスチャ座標を求める処理を行う。具体的には、流体モデルオブジェクトに設定される法線ベクトルの情報に基づいて、流体テクスチャ(狭義には水面テクスチャ、液面テクスチャ)を指定するためのテクスチャ座標を求める。更に具体的には、格子点の第1、第3の位置座標成分(X、Z座標)に基づいて基準テクスチャ座標(BU、BV)を求める。そして求められた基準テクスチャ座標(BU、BV)を、法線ベクトルの第1、第3の座標成分(NX、NZ)に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標(U、V)を求める。なお法線ベクトルは、流体モデルオブジェクトを構成する頂点に設定されるものであってもよいし、流体モデルオブジェクトを構成するプリミティブ面に設定されるものであってもよい。
領域特定部118は、光照射領域や影領域を、記憶部170のペイント用領域174において特定(確保)するための処理を行う。具体的には、光透過領域(穴、窓等)や光遮蔽物(虫、動物、ゴミ、ホコリ等)の配置情報(光透過領域や光遮蔽物の位置、配置方向等)と、光源情報(光源の位置、方向等)とに基づいて、投影面に対して光透過領域や光遮蔽物を投影する処理を行う。そして光透過領域により形成されるべき光照射領域(光透過領域を透過する光により照らされる領域)や光遮蔽物により形成されるべき影領域(光遮蔽物の影が形成される領域)を、ペイント用領域174において特定する。この特定された光照射領域や影領域には、光照射画像や影画像が描画される。
更に具体的には領域特定部118は、光透過領域や光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域や影領域を形成するペイント用プリミティブ面(ポリゴン、自由曲面等)の頂点(構成点、制御点)を特定する。この頂点が特定されたペイント用プリミティブ面に光テクスチャや影テクスチャがマッピングされて、ペイント用領域174に描画される。
なお、表示用モデルオブジェクトは、画面に実際に表示されるモデルオブジェクト(複数のパーツオブジェクトで構成されるオブジェクト)であり、例えば水面などの流体、背景、キャラクタ、車、バイク、船、宇宙船、或いはロボットなどのゲームに登場する表示物を表すモデルオブジェクトである。また流体モデルオブジェクトは、水などの液体や煙などの気体の表面画像を表現するために用いられる表示用モデルオブジェクトである。
また投影面は、表示用モデルオブジェクトに対応する位置に設定される。例えば表示用モデルオブジェクトが、水面(広義には液面)モデルオブジェクトである場合には、水面モデルオブジェクトの近くの位置に水面に平行に投影面が配置される。
またVRAM等により構成される記憶部170の表示用領域172、ペイント用領域174は共に、ピクセル単位で画像情報を記憶できる領域である。そして、いわゆるフレームバッファに相当する表示用領域172は、各フレームで表示すべきフレーム画像(ゲーム画像、表示画像)が生成される領域である。この表示用領域172は、フレーム更新(例えば1フレームである1/60秒毎の更新)により描画画像がクリア(リフレッシュ)される。一方、ペイント用領域174は、ペイントテクスチャの生成のために使用される領域である。このペイント用領域174については、フレーム更新により描画画像をクリアしてもよいし、クリアしなくてもよい。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のモデルオブジェクト(1又は複数プリミティブ面)を表示用領域172に描画する。これにより、オブジェクト空間内において所与の視点(仮想カメラ)から見える画像が生成される。
そして描画部120は、ペイント用領域174にペイント画像(光照射画像、影画像)を描画することで、ペイントテクスチャを生成する。より具体的には、領域特定部118により特定された光照射領域や影領域に、光照射画像や影画像であるペイント画像を描画して、ペイントテクスチャを生成する。そして描画部120は、生成されたペイントテクスチャのテクスチャマッピングを行いながら、表示用モデルオブジェクト(流体モデルオブジェクト)を表示用領域172に描画する。このようにすることで、今回のフレームでのフレーム画像(ゲーム画像、表示画像)が生成される。
描画部120は、テクスチャマッピング部122、α合成部124を含む。テクスチャマッピング部122は、ペイント用領域174に生成されるペイントテクスチャやテクスチャ領域176に記憶されるテクスチャ(テクセル値)をモデルオブジェクトにマッピングする処理を行う。具体的には、モデルオブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いて、ペイント用領域174やテクスチャ領域176からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをモデルオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。このようにペイント用領域174にペイント画像を描画することでリアルタイム生成されたペイントテクスチャのマッピングは、このテクスチャマッピング部122により行われる。
なおテクスチャマッピング部122のテクスチャマッピング手法としては種々の手法がある。例えば第1の手法では、テクスチャ領域176に記憶されるテクスチャ(流体面テクスチャ、液面テクスチャ、水面テクスチャ)と、生成されたペイントテクスチャ(光テクスチャ、影テクスチャ)とを、いわゆるマルチテクスチャマッピングにより表示用モデルオブジェクトにマッピングする。そしてマルチテクスチャマッピングが施された表示用モデルオブジェクトを表示用領域172に描画する。一方、第2の手法では、テクスチャ領域176のテクスチャを表示用モデルオブジェクトにマッピングし、生成されたペイントテクスチャをペイント用モデルオブジェクトにマッピングする。そしてテクスチャ領域のテクスチャがマッピングされる表示用モデルオブジェクトと、ペイントテクスチャがマッピングされるペイント用モデルオブジェクトとを、表示用領域172に描画する。
α合成部124はα値(A値)に基づくα合成処理(αブレンディング、α加算又はα減算等)を行う。例えばα合成がαブレンディングである場合には下式の合成処理を行う。
RQ=(1−α)×R1+α×R2 (1)
GQ=(1−α)×G1+α×G2 (2)
BQ=(1−α)×B1+α×B2 (3)
一方、α合成が加算αブレンディングである場合には下式の合成処理を行う。
GQ=(1−α)×G1+α×G2 (2)
BQ=(1−α)×B1+α×B2 (3)
一方、α合成が加算αブレンディングである場合には下式の合成処理を行う。
RQ=R1+α×R2 (4)
GQ=G1+α×G2 (5)
BQ=B1+α×B2 (6)
ここで、R1、G1、B1は、表示用領域172やペイント用領域174に既に描画されている画像のRGB成分であり、R2、G2、B2は、表示用領域172やペイント用領域174に描画すべき画像のRGB成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
GQ=G1+α×G2 (5)
BQ=B1+α×B2 (6)
ここで、R1、G1、B1は、表示用領域172やペイント用領域174に既に描画されている画像のRGB成分であり、R2、G2、B2は、表示用領域172やペイント用領域174に描画すべき画像のRGB成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
次に本実施形態の手法について図面を用いて説明する。
2.1 光照射画像、影画像の描画
本実施形態では図2(A)に示すように、光源LSの情報(光源の位置、光の照射方向等)と、穴や窓などの光透過領域TRの配置情報(TRの位置、配置方向等)とに基づいて、TRを投影面PSに投影する演算を行う。そしてこの投影演算により、光照射領域IRを、ペイント用領域(VRAM)において特定する。即ち光透過領域TRを透過する光源LSからの光により照らされる領域である光照射領域IRを特定する。そして特定された光照射領域IRに、光照射画像(光により照らされることを表現する画像)を描画することで、光照射画像が描かれたペイントテクスチャをペイント用領域(VRAM)に生成する。
本実施形態では図2(A)に示すように、光源LSの情報(光源の位置、光の照射方向等)と、穴や窓などの光透過領域TRの配置情報(TRの位置、配置方向等)とに基づいて、TRを投影面PSに投影する演算を行う。そしてこの投影演算により、光照射領域IRを、ペイント用領域(VRAM)において特定する。即ち光透過領域TRを透過する光源LSからの光により照らされる領域である光照射領域IRを特定する。そして特定された光照射領域IRに、光照射画像(光により照らされることを表現する画像)を描画することで、光照射画像が描かれたペイントテクスチャをペイント用領域(VRAM)に生成する。
より具体的には、光透過領域TRを構成する頂点を投影面PSに投影して、頂点の投影点を求める。そしてこれらの投影点を頂点とするペイント用プリミティブ面(ポリゴン)を生成し、このペイント用プリミティブ面に光テクスチャをマッピングしてペイント用領域(VRAM)の光照射領域IRに描画することで、ペイントテクスチャを生成する。
なお図2(A)に示すように、投影面PSは表示用モデルオブジェクトDOBに対応する位置に配置されている。即ちDOBの近くの位置にDOBと平行になるように投影面PSを配置する。
次に本実施形態では図2(B)に示すように、光源LSの情報と、虫やホコリなどの光遮蔽物SOBの配置情報(SOBの位置、配置方向等)とに基づいて、SOBを投影面PSに投影する演算を行う。そしてこの投影演算により、影領域SRを、ペイント用領域において特定する。即ち光源LSからの光が光遮蔽物SOBにより遮られることで影が生成される領域である影領域を特定する。そして特定された影領域SRに、影画像(SOBの影を表現する画像)を描画することで、影画像が描かれたペイントテクスチャをペイント用領域に生成する。
より具体的には、光遮蔽物SOBの画像がマッピングされるプリミティブ面の頂点を投影面PSに投影して、頂点の投影点を求める。そしてこれらの投影点を頂点とするペイント用プリミティブ面(ポリゴン)を生成し、このペイント用プリミティブ面に影テクスチャをマッピングしてペイント用領域(VRAM)の影領域SRに描画することで、ペイントテクスチャを生成する。
なお本実施形態では、光遮蔽物SOBの少なくとも一部が光透過領域TRに存在することを条件に、光遮蔽物SOBを投影面PSに投影する演算を行い、影画像であるペイント画像を影領域に描画するようにすることができる。具体的には、光遮蔽物SOBと光透過領域TRに重なり部分がある場合に、図2(B)に示すようなSOBの投影処理を行い、その重なり部分に対応する影領域に影画像を描画する。
図3に、このようにしてVRAMのペイント用領域に生成されたペイントテクスチャの例を示す。図3において、明るい部分が光照射領域IRであり、虫の影が見える部分が影領域SRである。これらの光照射領域IRや影領域SRの位置、配置方向、大きさは、光透過領域TRや光遮蔽物SOBと光源LSとの位置関係に応じてリアルタイムに変化する。また光遮蔽物SOBと光透過領域TRに重なり部分がある場合に、その重なり部分に対応する影領域に影画像が描画される。
このようにして生成された図3のペイントテクスチャを、表示用モデルオブジェクトDOB(流体モデルオブジェクト、水面モデルオブジェクト)にマッピングすることで、図4に示すようなゲーム画像を生成できる。
図4では、部屋の壁には穴(光透過領域)が空いており、部屋の床には水面が張ってある。そして光源からの光が穴から漏れて水面に映り込んでおり、光源からの光により水面が照らされる様子(光照射画像)が表現されている。更に、穴付近には虫(遮蔽物)が存在し、その影も水面に映り込んでおり、虫の影が水面上で動く様子(影画像)がリアルに表現されている。なお図4において光源から伸びている投影ラインは、虫の影を生成する投影演算の際の投影ライン(投影ボリューム)である。
図5に、図4とは異なる視点から見た場合のゲーム画像を示す。図5は上方の視点から見たゲーム画像である。図5において、光に照らされて明るくなっている領域が、図3の光照射領域IRに相当する。また虫の影の周りの四角の線の領域が、図3の影領域SRに相当する。図5に示すように本実施形態では、光源と穴や虫との位置関係に応じて、光照射領域や影領域の位置、配置方向、大きさが変化する。また虫の一部だけが穴に存在する場合にはその一部の影だけが水面に映り込む。このように本実施形態では、これまでに無いリアルな光照射画像や影画像を生成できる。そしてこのような光照射画像や影画像の生成は図2(A)(B)の手法で図3に示すようなペイントテクスチャを生成し、このペイントテクスチャを表示用モデルオブジェクトにマッピングするだけで実現でき、少ない処理負荷でリアルな画像を生成することに成功している。
なお図6では、表示用モデルオブジェクトDOB(流体モデルオブジェクト)を構成するプリミティブ面の頂点の位置を変化させることで、DOBを変形させる。そして表示用モデルオブジェクトDOBを構成する頂点又はプリミティブ面に設定される法線ベクトルNに基づきテクスチャ座標を求め、このテクスチャ座標に基づいて図3のペイントテクスチャをDOBにマッピングする。このようにすることで、表示モデルオブジェクトDOBの形状変形に伴い、DOBにマッピングされる画像も揺らめくようになり、リアルな画像を生成できる。この図6のマッピング手法については後に詳述する。
2.2 光透過領域、光遮蔽物の形状の簡略化
光照射領域や影領域の特定は、光透過領域や光遮蔽物を簡略化した形状を投影面に投影する演算により行うことが望ましい。例えば図7(A)において光透過領域TRは6頂点になっている。この場合に、これらの全ての6頂点について投影演算を行うと、処理負荷が重くなる。
光照射領域や影領域の特定は、光透過領域や光遮蔽物を簡略化した形状を投影面に投影する演算により行うことが望ましい。例えば図7(A)において光透過領域TRは6頂点になっている。この場合に、これらの全ての6頂点について投影演算を行うと、処理負荷が重くなる。
そこで図7(A)に示すように、この6頂点の光透過領域TRを例えば4つの頂点VX1〜VX4で構成される形状に簡略化する(TRを内包する形状を用意する)。そして、これらの4つの頂点VX1〜VX4(簡略化形状)を投影面に投影することで、光照射領域(ペイント用プリミティブ面の頂点)を特定する。このようにすることで、処理負荷を軽減できる。
また、光遮蔽物である虫の形状は複雑であり、この複雑な形状の光遮蔽物の全ての頂点について投影演算を行うと、処理負荷が重くなる。
そこで、光遮蔽物SOBである虫を簡略化した形状に相当する例えば四角形のプリミティブ面(ポリゴン)を用意する(SOBを内包する形状を用意する)。そしてこのプリミティブ面に図7(B)のような虫のテクスチャ(光遮蔽物テクスチャ)をマッピングすることで、穴の近くで動く虫の画像を表現する。またこの四角形のプリミティブ面(簡略化形状)を投影面に投影することで、影領域(ペイント用プリミティブ面の頂点)を特定する。このようにすることで、処理負荷を軽減できる。なお光透過領域や光遮蔽物の簡略化形状は上述したような四角形状には限定されず、種々の変形実施が可能である。
2.3 光照射画像の輝度の制御
さて、正確な物理シミュレーションによるシェーディング演算を行って、穴の光や虫の影の画像を生成すると、光遮蔽物である虫の状態により光の照射状態も変化するはずである。
さて、正確な物理シミュレーションによるシェーディング演算を行って、穴の光や虫の影の画像を生成すると、光遮蔽物である虫の状態により光の照射状態も変化するはずである。
しかしながら本実施形態では図2(A)(B)に示すように、光照射画像や影画像の描画によりペイントテクスチャを生成し、生成されたペイントテクスチャを表示用モデルオブジェクトにマッピングすることで、穴の光や虫の影を表現している。このため光の照射状態は、光遮蔽物である虫の状態の影響を受けず、今ひとつリアルな画像を生成できない。
そこで図8では、穴(光透過領域)に存在する虫(光遮蔽物)の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くしている。このようにすれば、虫の数が多くなるにつれて、光の照射状態が暗くなり、あたかも多くの虫により穴がふさがれて暗くなったかのように見える画像を生成できる。これによりプレーヤの仮想現実感を向上できる。なお、元の光照射画像(光テクスチャ)の光部領域(光の領域)と、作成された光照射領域画像(影画像が形成された光照射画像)の光部領域との面積比(ドット数比)に応じて、光照射領域に描画される光照射画像の輝度を低くしてもよい。
また光遮蔽物の数が増えるにつれて光照射画像の輝度を低くする処理は、ペイント用ポリゴンにマッピングされる光テクスチャを、光遮蔽物の数に応じて高い輝度の光テクスチャから低い輝度の光テクスチャに切り替えることで実現できる。例えば光遮蔽物の個数が0〜L個の場合には高い輝度の第1の光テクスチャをペイント用ポリゴンにマッピングし、L〜M個の場合には中ぐらいの輝度の第2の光テクスチャをマッピングし、M〜N個の場合には低い輝度の第3の光テクスチャをマッピングする。或いは、光テクスチャがマッピングされるペイント用ポリゴン自体に設定する輝度を光遮蔽物の数に応じて切り替えるようにしてもよい。
2.4 リフレッシュ用半透明画像の描画
さて、虫の影画像のよりリアルな表現のためには、影の残像についても表現できることが望ましい。そこで本実施形態では、フレーム更新の際に、リフレッシュ用の半透明の画像をペイント用領域に描画するようにしている。
さて、虫の影画像のよりリアルな表現のためには、影の残像についても表現できることが望ましい。そこで本実施形態では、フレーム更新の際に、リフレッシュ用の半透明の画像をペイント用領域に描画するようにしている。
例えば図9では、図2(A)(B)の手法によりペイントテクスチャが生成されたペイント用領域の全領域に対して、フレーム更新の際にリフレッシュ用の半透明画像(例えば灰色の画像)を描画している。このようにすれば、前のフレームF−1で生成されたペイントテクスチャの画像が、フレームFにおいてペイント用領域に残るようになる。従って例えば虫が動いている場合には、動く虫の影の残像がペイントテクスチャ上に形成されるようになり、リアルな残像表現を実現できる。即ちフレーム更新の際に例えば真っ黒のリフレッシュ(クリア)画像を描画すると、前のフレームF−1のペイントテクスチャは消えてしまい、残像は残らなくなるが、半透明のリフレッシュ画像を描画すれば、残像を残すことができる。
なおリフレッシュ用の半透明画像を描画するタイミングは、各フレームの一番最初のタイミングであってもよいし、一番最後のタイミングであってもよい。またリフレッシュ用半透明画像は、例えばαブレンディングなどのα合成を行いながら描画することが望ましい。
2.5 水面の表現
本実施形態では水面のリアルな表現のために以下の手法を採用している。なお以下では水面の表現への適用例を主に説明するが、本実施形態の手法は、水面以外の液面の表現にも適用できる。或いは液体以外の流体(例えば煙などの気体)にも本実施形態の手法は適用できる。
本実施形態では水面のリアルな表現のために以下の手法を採用している。なお以下では水面の表現への適用例を主に説明するが、本実施形態の手法は、水面以外の液面の表現にも適用できる。或いは液体以外の流体(例えば煙などの気体)にも本実施形態の手法は適用できる。
図10に本実施形態により生成されるゲーム画像を示す。図10ではキャラクタが水の中を動くことで、水面が揺れたり流れるゲーム画像が生成されている。このような水面の挙動を表現するために、本実施形態では、水面モデルオブジェクト(広義には流体モデルオブジェクト。以下の説明でも同様)を構成するプリミティブ面の頂点の位置を、時間経過やゲームイベントの発生などに伴い変化させることで、水面モデルオブジェクトの形状を変形させている。
より具体的には水面モデルオブジェクトに対応した図11(A)に示すような格子を設定する。図11(A)は、格子(水面)を上から見た図であり、この格子の面は図10の水面(図6のDOB)に平行に設定されている。この格子の格子点(grid point)位置を、時間経過(フレーム更新)やゲームイベント(キャラクタの進入イベント)の発生などに応じて変化させ、その格子点を頂点(構成点、制御点)とするプリミティブ面(ポリゴン)を生成することで、そのプリミティブ面により構成される水面モデルオブジェクトの形状を変形させる。
そして図11(B)では格子点(格子交点)を高さ方向(Y方向)で変化させ、水平方向(X、Z方向)では変化させないようにしている。このように格子点を高さ方向で変化させることで、水面の波が上下する様子をリアルに表現できる。
また図12(A)に示すように、格子点G0の高さは、その周囲の格子点G1〜G4の影響を受けて決定される。即ち図12(B)に示すように、前のフレームF−1における周囲の格子点G2、G4の高さが高いと、格子点G2、G4の影響を受けて、当該フレームFでの格子点G0の高さも高くなる。このようにすれば例えば図10に示すようにキャラクタが水の中を動くと、それによって水面に波が生じ、その波がキャラクタの周辺から外側に向かって徐々に移動する様子を表現できる。従って水面に生じるさざ波などのリアルな画像表現を実現できる。
なおこのような周囲の格子点の影響を考慮する処理は、例えば各格子点に周囲の格子点からの影響度パラメータを持たせ、この影響度パラメータに基づいて各格子点の高さを演算すればよい。
本実施形態では、以上のような処理により変形する水面モデルオブジェクトに対して水面の元絵テクスチャや図3のペイントテクスチャをマッピングするためのテクスチャ座標を、水面モデルオブジェクト(格子点)の法線ベクトルに基づいて求めている。
例えば図13では、プリミティブ面(ポリゴン)SF1の向きを表す法線ベクトルとSF2の向きを表す法線ベクトルをベクトル加算して正規化したものが、頂点(格子点)VX1の法線ベクトルN1になっている。同様にプリミティブ面SF2、SF3の法線ベクトルをベクトル加算して正規化したものが、頂点VX2の法線ベクトルN2となり、SF3、SF4の法線ベクトルをベクトル加算して正規化したものが、頂点VX3の法線ベクトルN3となっている。なおプリミティブ面に設定される法線ベクトルをそのまま用いるようにしてもよい。
まず図14に示すように、格子点の位置座標成分(X、Z成分。第1、第3の座標成分)に基づいて基準テクスチャ座標(BU、BV)を求める。即ち左隅の格子点であれば基準テクスチャ座標の指定位置も左隅になり、右隅の格子点であれば基準テクスチャ座標の指定位置も右隅になる。
この場合、水面の元絵テクスチャ(水面の絵柄が描かれたテクスチャ)については、同じ絵柄のテクスチャをリピートして使用する手法を採用する。即ち、テクスチャのリピート間隔で隣り合う格子のブロック(ブロック)を第Jのブロック、第J+1のブロックとした場合に、第Jのブロックの第Iの格子点から求められる基準テクスチャ座標と、第J+1のブロックの第Iの格子点から求められる基準テクスチャ座標は同じになる。
一方、図3のペイントテクスチャでは、テクスチャをリピートする手法を採用せず、1枚のペイントテクスチャが格子(水面モデルオブジェクト)の全面に対応する。従って、各格子点のX、Z成分に1対1に対応するようにして基準テクスチャ座標が求められる。
次に、このようにして求められた基準テクスチャ座標(BU、BV)を、法線ベクトル(NX、NY、NZ)の情報に基づいて変位させることで、元絵テクスチャやペイントテクスチャをマッピングするためのテクスチャ座標(U、V)を求める。
例えば図15では、格子点G(X、Y、Z)のX、Z成分(第1、第3の座標成分)に基づいて、基準テクスチャ座標(BU、BV)が求められている。そして法線ベクトルの第1、第3の座標成分(NX、NZ)に基づいて、基準テクスチャ座標(BU、BV)が(DU、DV)だけ変位されて、テクスチャ座標(U、V)が求められる。
具体的には例えば、
U=BU+DU=BU+K×NX (7)
V=BV+DV=BV+K×NZ (8)
となる。
U=BU+DU=BU+K×NX (7)
V=BV+DV=BV+K×NZ (8)
となる。
ここでKは最終的なテクスチャ座標(U、V)を計算するための係数であり、Kの値を大きくすると、法線ベクトルの揺らぎ(変位)が小さくても、最終的なテクスチャ座標(U、V)の揺らぎは大きくなる。一方、Kの値を小さくすると、法線ベクトルの揺らぎが大きくても、最終的なテクスチャ座標(U、V)の揺らぎは小さくなる。
次に、格子点G(X、Y、Z)に対応する頂点に、この求められたテクスチャ座標(U、V)を設定する。そしてこのテクスチャ座標に基づいて、元絵テクスチャやペイントテクスチャを水面モデルオブジェクトにマッピングする。このようにすれば、水面モデルオブジェクトの形状が変化することで水面モデルオブジェクトの法線ベクトルの方向が揺らぐと(変位すると)、それに応じて、各頂点(各格子)に設定されるテクスチャ座標も揺らぐようになる。これにより、均一ではなく歪んだテクスチャが水面モデルオブジェクトにマッピングされるようになり、水面の変化に伴い水面の模様も揺らいでいるように見えるリアルな水面表現を実現できる。
3.本実施形態の処理
次に、本実施形態の詳細な処理例について図16、図17のフローチャートを用いて説明する
図16は、光照射画像や影画像のペイントテクスチャを生成してマッピングする処理のフローチャートである。まずペイントテクスチャを生成するためのペイント用領域をVRAMに確保し、リフレッシュ用の黒画像を描画してペイント用領域をクリアしておく(ステップS1)。そして光透過領域(穴)の配置情報と光源情報に基づき、光透過領域を投影面に投影し、ペイント用ポリゴンの頂点を特定する(ステップS2。図2(A)参照)。次に、頂点が特定されたペイント用ポリゴンに光テクスチャ(光照射画像)をマッピングして、そのペイント用ポリゴンをペイント用領域に描画する(ステップS3)。そして全ての光透過領域について処理したか否かを判断し(ステップS4)、処理していない光透過領域がある場合にはステップS2に戻る。
次に、本実施形態の詳細な処理例について図16、図17のフローチャートを用いて説明する
図16は、光照射画像や影画像のペイントテクスチャを生成してマッピングする処理のフローチャートである。まずペイントテクスチャを生成するためのペイント用領域をVRAMに確保し、リフレッシュ用の黒画像を描画してペイント用領域をクリアしておく(ステップS1)。そして光透過領域(穴)の配置情報と光源情報に基づき、光透過領域を投影面に投影し、ペイント用ポリゴンの頂点を特定する(ステップS2。図2(A)参照)。次に、頂点が特定されたペイント用ポリゴンに光テクスチャ(光照射画像)をマッピングして、そのペイント用ポリゴンをペイント用領域に描画する(ステップS3)。そして全ての光透過領域について処理したか否かを判断し(ステップS4)、処理していない光透過領域がある場合にはステップS2に戻る。
次に、光遮蔽物(虫)の少なくとも一部が光透過領域(穴)の中に入っているか否かを判断する(ステップS5)。そして光遮蔽物の少なくとも一部が入っている場合には、光遮蔽物の配置情報と光源情報に基づき、光遮蔽物を投影面に投影し、ペイント用ポリゴンの頂点を特定する(ステップS6。図2(B)参照)。次に、頂点が特定されたペイント用ポリゴンに影テクスチャ(影画像)をマッピングして、そのペイント用ポリゴンをペイント用領域に描画する(ステップS7)。そして、全ての光遮蔽物(虫)について処理したか否かを判断し(ステップS8)、処理していない光遮蔽物がある場合にはステップS5に戻る。
最後に、ペイント用領域に生成されたペイントテクスチャを、表示用モデルオブジェクト(水面モデルオブジェクト)にマッピングして、その表示用モデルオブジェクトをVRAMの表示用領域に描画する(ステップS9)。
以上のようにすることで、図3に示すようなペイントテクスチャが生成してマッピングされ、図4に示すようなゲーム画像を生成できる。
図17は水面モデルオブジェクト(表示用モデルオブジェクト)の形状変形とテクスチャマッピングの詳細を示すフローチャートである。
まず、格子点情報(座標、法線ベクトル、テクスチャ座標)を記憶するための格子点情報領域を、格子点の個数分だけ記憶部に確保する(ステップS11)。次に各格子点情報領域に各格子点の高さ(Y座標)を記憶する(ステップS12)。そして全ての格子点について処理したか否かを判断し(ステップS13)、処理していない格子点がある場合にはステップS12に戻る。
次に、処理対象となる格子点の周囲の4つの格子点の前回フレームでの高さを考慮して、処理対象となる格子点の当該フレームでの高さを決定する(ステップS14。図12(A)(B)参照)。そして全ての格子点について処理したか否かを判断し(ステップS15)、処理していない格子点がある場合にはステップS14に戻る。
次に、各格子点の法線ベクトルを算出し、各格子点情報領域に記憶する(ステップS16。図13参照)。そして全ての格子点について処理したか否かを判断し(ステップS17)、処理していない格子点がある場合にはステップS16に戻る。
次に、算出された法線ベクトルに基づき各格子点のテクスチャ座標(U、V)を算出し、各格子点情報領域に記憶する(ステップS18。図14、図15参照)。この際、格子点の位置座標に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を法線ベクトルに基づいて変位させることで、テクスチャ座標を求める。そして全ての格子点について処理したか否かを判断し(ステップS19)、処理していない格子点がある場合にはステップS18に戻る。
次に、算出されたテクスチャ座標(U,V)に基づいて、表示用モデルオブジェクト(水面モデルオブジェクト)に元絵テクスチャやペイントテクスチャをマッピングして、その表示用モデルオブジェクトを表示用領域に描画する(ステップS29)。
以上のようにすることで、図10に示すように水面の形状や模様が変化するリアルなゲーム画像を生成できる。
4.ハードウェア構成
図18に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
図18に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(表示用モデルオブジェクト、流体モデルオブジェクト、流体、液面、プリミティブ面等)として引用された用語(流体モデルオブジェクト、水面モデルパーティクル、水、水面、ポリゴン等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
またペイントテクスチャの生成手法やマッピング手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本実施形態では流体モデルオブジェクトが水面モデルオブジェクトである場合について説明したが、流体モデルオブジェクトは水面以外のモデルオブジェクトであってもよい。
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末等の種々の画像生成システムに適用できる。
LS 光源、PS 投影面、DOB 表示用(水面)モデルオブジェクト、
TR 光透過領域、IR 光照射領域、SOB 光遮蔽物、SR 影領域、
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 視点制御部、116 形状変形部、117 テクスチャ座標演算部、
118 領域特定部、120 画像生成部、122 テクスチャマッピング部、
124 α合成部、130 音生成部、160 操作部、170 記憶部、
171 格子点情報領域、172 表示用領域、174 ペイント用領域、
176 テクスチャ領域、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部
TR 光透過領域、IR 光照射領域、SOB 光遮蔽物、SR 影領域、
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 視点制御部、116 形状変形部、117 テクスチャ座標演算部、
118 領域特定部、120 画像生成部、122 テクスチャマッピング部、
124 α合成部、130 音生成部、160 操作部、170 記憶部、
171 格子点情報領域、172 表示用領域、174 ペイント用領域、
176 テクスチャ領域、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部
Claims (12)
- オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、
流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部として、
コンピュータを機能させることを特徴とするプログラム。 - 請求項1において、
前記形状変形部が、
流体モデルオブジェクトに対応して設定された格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形することを特徴とするプログラム。 - 請求項1又は2において、
テクスチャ座標演算部が、
格子点の位置座標成分に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標を求めることを特徴とするプログラム。 - 請求項1乃至3のいずれかにおいて、
表示用領域とペイント用領域とを有する記憶部と、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部として、
コンピュータを機能させ、
前記描画部が、
特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画することを特徴とするプログラム。 - 請求項4において、
前記領域特定部が、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域又は影領域を形成するペイント用プリミティブ面の頂点を特定し、
前記描画部が、
頂点が特定されたペイント用プリミティブ面に光テクスチャ又は影テクスチャをマッピングし、光テクスチャ又は影テクスチャがマッピングされたペイント用プリミティブ面を前記ペイント用領域に描画することで、ペイントテクスチャを生成することを特徴とするプログラム。 - 請求項4又は5において、
前記領域特定部が、
光透過領域又は光遮蔽物を簡略化した形状を投影面に投影する演算を行うことで、前記光照射領域又は前記影領域を特定することを特徴とするプログラム。 - 請求項4乃至6のいずれかにおいて、
前記描画部が、
光遮蔽物の少なくとも一部が光透過領域に存在することを条件に、投影面に光遮蔽物を投影する演算を行うことを特徴とするプログラム。 - 請求項4乃至7のいずれかにおいて、
前記描画部が、
光透過領域に存在する光遮蔽物の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くすることを特徴とするプログラム。 - 請求項4乃至8のいずれかにおいて、
前記描画部が、
フレーム更新の際に、リフレッシュ用の半透明の画像を前記ペイント用領域に描画することを特徴とするプログラム。 - コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至9のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
- オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、
流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、
流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部と、
を含むことを特徴とする画像生成システム。 - 請求項11において、
表示用領域とペイント用領域とを有する記憶部と、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部とを含み、
前記描画部が、
特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画することを特徴とする画像生成システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003379894A JP2005141647A (ja) | 2003-11-10 | 2003-11-10 | プログラム、情報記憶媒体、及び画像生成システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003379894A JP2005141647A (ja) | 2003-11-10 | 2003-11-10 | プログラム、情報記憶媒体、及び画像生成システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005141647A true JP2005141647A (ja) | 2005-06-02 |
Family
ID=34689798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003379894A Withdrawn JP2005141647A (ja) | 2003-11-10 | 2003-11-10 | プログラム、情報記憶媒体、及び画像生成システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005141647A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100898989B1 (ko) * | 2006-12-02 | 2009-05-25 | 한국전자통신연구원 | 물 표면의 포말 생성 및 표현 장치와 그 방법 |
JP2010026905A (ja) * | 2008-07-23 | 2010-02-04 | Sammy Corp | 画像生成装置、遊技機、及びプログラム |
JP2012125421A (ja) * | 2010-12-15 | 2012-07-05 | Sanyo Product Co Ltd | 遊技機 |
JP2014230808A (ja) * | 2014-07-30 | 2014-12-11 | 株式会社三洋物産 | 遊技機 |
JP2017119227A (ja) * | 2017-04-11 | 2017-07-06 | 株式会社三洋物産 | 遊技機 |
JP2019063653A (ja) * | 2019-02-05 | 2019-04-25 | 株式会社三洋物産 | 遊技機 |
CN113509731A (zh) * | 2021-05-19 | 2021-10-19 | 网易(杭州)网络有限公司 | 流体模型处理方法及装置、电子设备、存储介质 |
-
2003
- 2003-11-10 JP JP2003379894A patent/JP2005141647A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100898989B1 (ko) * | 2006-12-02 | 2009-05-25 | 한국전자통신연구원 | 물 표면의 포말 생성 및 표현 장치와 그 방법 |
JP2010026905A (ja) * | 2008-07-23 | 2010-02-04 | Sammy Corp | 画像生成装置、遊技機、及びプログラム |
JP2012125421A (ja) * | 2010-12-15 | 2012-07-05 | Sanyo Product Co Ltd | 遊技機 |
JP2014230808A (ja) * | 2014-07-30 | 2014-12-11 | 株式会社三洋物産 | 遊技機 |
JP2017119227A (ja) * | 2017-04-11 | 2017-07-06 | 株式会社三洋物産 | 遊技機 |
JP2019063653A (ja) * | 2019-02-05 | 2019-04-25 | 株式会社三洋物産 | 遊技機 |
CN113509731A (zh) * | 2021-05-19 | 2021-10-19 | 网易(杭州)网络有限公司 | 流体模型处理方法及装置、电子设备、存储介质 |
CN113509731B (zh) * | 2021-05-19 | 2024-06-04 | 网易(杭州)网络有限公司 | 流体模型处理方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4771821B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4305903B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2006195882A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2007141082A (ja) | プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム | |
JP3748451B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2007164557A (ja) | プログラム、情報記録媒体および画像生成システム | |
JP4868586B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4502678B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2005141647A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4754384B2 (ja) | プログラム、情報記録媒体および画像生成システム | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4073031B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2006323512A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4408681B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2001143100A (ja) | 三次元ビデオグラフィックスシステムにおける深度ぼかし効果提供方法および装置 | |
JP4528008B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4488346B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
US7710419B2 (en) | Program, information storage medium, and image generation system | |
JP5146054B2 (ja) | 仮想空間における音源より発生される音の生成制御プログラム | |
JP2005141646A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4754385B2 (ja) | プログラム、情報記録媒体および画像生成システム | |
US7724255B2 (en) | Program, information storage medium, and image generation system | |
JP4592087B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4476040B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2007164736A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070206 |