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

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

Info

Publication number
JP4592042B2
JP4592042B2 JP2001081316A JP2001081316A JP4592042B2 JP 4592042 B2 JP4592042 B2 JP 4592042B2 JP 2001081316 A JP2001081316 A JP 2001081316A JP 2001081316 A JP2001081316 A JP 2001081316A JP 4592042 B2 JP4592042 B2 JP 4592042B2
Authority
JP
Japan
Prior art keywords
primitive
value
nth
particle
virtual camera
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.)
Expired - Fee Related
Application number
JP2001081316A
Other languages
English (en)
Other versions
JP2002279445A (ja
Inventor
繁 橘高
明子 若林
直宏 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2001081316A priority Critical patent/JP4592042B2/ja
Publication of JP2002279445A publication Critical patent/JP2002279445A/ja
Application granted granted Critical
Publication of JP4592042B2 publication Critical patent/JP4592042B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム(RPG)を楽しむことができる画像生成システムを例にとれば、プレーヤは、自身の分身であるキャラクタ(オブジェクト)を操作してオブジェクト空間内のマップ上で移動させ、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【0003】
さて、このような画像生成システムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な課題になっている。従って、ゲーム中に発生する炎や煙などの不定形な表示物についても、リアルな画像で表現できることが望まれる。
【0004】
そして、このような炎などの不定形な表示物を表現する手法としては、以下に述べるような手法が考えられる。
【0005】
第1の手法では、炎の絵のテクスチャがマッピングされた炎ポリゴンを用いて、炎を表現する。
【0006】
しかしながら、この第1の手法では、種々の方向から炎ポリゴンを見た場合に、炎ポリゴンの形状が平面的であることがプレーヤに知られてしまい、プレーヤの仮想現実感を減退させてしまう。
【0007】
第2の手法では、いわゆるパーティクルシステムを用いる。即ち、位置や色などの属性情報を持ち所与の規則に従って発生、移動、消滅する炎パーティクルの集合により、不定形な形の炎を表現する。
【0008】
しかしながら、このようなパーティクルシステムには、画像生成システムの処理負荷が非常に重くなるという欠点がある。
【0009】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、表示物のリアルな画像を少ない処理負荷で生成できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0010】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行う画像生成システムであって、基準線から放射状に配置された第1〜第Nのプリミティブ面を含むオブジェクトを、オブジェクト空間に設定する手段と、前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面のα値を設定する手段と、設定されたα値に基づいて、前記第1〜第Nのプリミティブ面を含む前記オブジェクトについてのα合成処理を行う手段とを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴とする。
【0011】
本発明によれば、基準線から放射状に配置された第1〜第Nのプリミティブ面を含むオブジェクトが、オブジェクト空間に設定(配置)され、このオブジェクト空間において仮想カメラから見える画像が生成される。
【0012】
そして本発明によれば、オブジェクトのプリミティブ面と仮想カメラの向きとの相対的な方向関係(角度又は内積値等)に応じて、第1〜第Nのプリミティブ面のα値が設定され、そのα値によりα合成処理が行われる。
【0013】
このように本発明では、基準線から放射状に配置された第1〜第Nのプリミティブ面を含むオブジェクトを用いているため、あたかもボリュームを持つ立体形状であるかのようにオブジェクトを見せることが可能になる。
【0014】
そして本発明では、プリミティブ面と仮想カメラの向きとの相対的な方向関係に応じてプリミティブ面のα値が変化するため、オブジェクトのプリミティブ面の形状が目立ってしまうなどの不具合を効果的に防止できる。
【0015】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記オブジェクトが含む第K(1≦K≦N)のプリミティブ面と仮想カメラの向きとが平行になるにつれて該第Kのプリミティブ面が透明になるように、該第Kのプリミティブ面のα値が設定されることを特徴とする。
【0016】
このようにすれば、仮想カメラの向きと第Kのプリミティブ面の向きが平行になった場合に、第Kのプリミティブ面が、より透明に見えるようになる。これにより第Kのプリミティブ面の形状が目立ってしまうなどの不具合を防止できる。
【0017】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記第1〜第Nのプリミティブ面に設定される前記α値が、前記第1〜第Nのプリミティブ面の代表α値であり、前記代表α値に基づいて、前記オブジェクトの頂点のα値が求められることを特徴とする。
【0018】
このようにすれば、頂点単位でオブジェクトのα値を制御できるようになり、より自然なα合成処理が可能になる。
【0019】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記オブジェクトの頂点が属するプリミティブ面に設定された前記代表α値に基づいて所与の演算処理を行うことで、頂点のα値が求められることを特徴とする。
【0020】
このようにすれば、オブジェクトの頂点に対して、その頂点が属するプリミティブ面の代表α値に応じたα値を設定できるようになる。これにより、プリミティブ面の境界でα値の違いが目立ってしまうなどの不具合を防止できる。
【0021】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、求められた頂点のα値に基づく補間処理により、前記オブジェクトの各ピクセルのα値が求められることを特徴とする。
【0022】
このようにすれば、より自然で滑らかに変化するα値を用いてα合成処理を実現できるようになる。
【0023】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記第1〜第Nのプリミティブ面に対してマッピングされるテクスチャとして、共通のテクスチャが使用されることを特徴とする。
【0024】
このようにすれば、仮想カメラによりオブジェクトを種々の方向から見た場合にも、同じ絵柄のテクスチャの画像が仮想カメラに映し出されるようになる。これにより、あたかもボリュームを持つ立体形状であるかのようにオブジェクトを見せることが可能になる。
【0025】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記オブジェクトが、前記第1〜第Nのプリミティブ面に交差する第Jのプリミティブ面を含み、前記第Jのプリミティブ面と前記仮想カメラの向きとの相対的な方向関係に応じて、前記第Jのプリミティブ面のα値が設定されることを特徴とする。
【0026】
このようにすれば、仮想カメラの向きが、第Jのプリミティブ面に直交する向きであった場合にも、ある程度の面積を占める画像が仮想カメラに映し出されるようになり、よりリアルな画像を生成できる。
【0027】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面の描画順序が決定され、決定された描画順序で前記第1〜第Nのプリミティブ面が描画されることを特徴とする。
【0028】
このようにすれば、プリミティブ面と仮想カメラの向きとの相対的な方向関係を判断するという負荷の少ない処理で、第1〜第Nのプリミティブ面の描画順序を決定できるようになる。しかも、α値の設定の際に判断した方向関係に基づいて描画順序を決定できるため、処理負荷を更に軽減できる。
【0029】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【0030】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0031】
1.構成
図1に、本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外のブロックについては任意の構成要素とすることができる。
【0032】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【0033】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0034】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)をコンピュータに実現(実行、機能)させるためのプログラムが格納され、このプログラムは、例えば1又は複数のモジュール(オブジェクト指向におけるオブジェクトも含む)を含む。
【0035】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【0036】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0037】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0038】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0039】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0040】
なお本発明(本実施形態)の各手段を実現(実行、機能)するためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。
このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0041】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。
【0042】
ここで、処理部100が行う処理としては、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【0043】
処理部100は、オブジェクト空間設定部110、α値設定部112、パーティクル処理部114、描画順序決定部116(ソート部)、描画部120を含む。なお、処理部100に、これらの全ての機能ブロック110〜120を含ませる必要はなく、一部の機能ブロックを省略する構成にしてもよい。
【0044】
ここでオブジェクト空間設定部110は、マップなどの各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間内に設定(配置)するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度(方向)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転)でオブジェクトを配置する。
【0045】
そして本実施形態のオブジェクト空間設定部110は、基準線から放射状に配置された複数のプリミティブ面(ポリゴン、自由曲面又はサブディビジョンサーフェス等)を含むオブジェクト(交差する複数のプリミティブ面で構成されるオブジェクト)をオブジェクト空間に設定配置している。本実施形態では、このような形状のオブジェクトを用いて、例えば炎、煙などの不定形な表示物のリアルな表現に成功している。
【0046】
なお、このオブジェクトに、放射状に配置された複数のプリミティブ面に交差するプリミティブ面(ベース・プリミティブ面。広義には第Jのプリミティブ面。以下の説明でも同様)を含ませてもよい。このようなプリミティブ面を設けることで、オブジェクトを上方向から見た場合にも、一定の面積を占める画像が表示されるようになり、生成される画像のリアル度を増すことができる。
【0047】
α値設定部112は、オブジェクトが含む1又は複数のプリミティブ面と仮想カメラの向き(例えば視線方向)との相対的な方向関係(プリミティブ面の向きと仮想カメラの向きの相対的な関係であり、これらの向きのなす角度や、これらの向きにより得られる内積値や、これらの角度、内積値と数学的に均等なパラメータ等により判断される関係)に応じて、プリミティブ面のα値を設定する。
【0048】
より具体的には、例えば、仮想カメラの向きを表すベクトル(向きを表す3次元ベクトルでもよいし、この3次元ベクトルを所与の平面に投影した2次元ベクトルでもよい)と、プリミティブ面の向きを表すベクトル(プリミティブ面に沿った方向のベクトルでもよいし、プリミティブ面に直交するベクトルでもよい。また3次元ベクトルでもよいし、2次元ベクトルでもよい)とのなす角度(これらのベクトルの内積値)に基づいてα値を求め、このα値を、代表α値としてプリミティブ面自体に与えたり、或いは頂点α値としてプリミティブ面の頂点に与える。
【0049】
この場合に本実施形態では、オブジェクトのプリミティブ面(プリミティブ面に平行なベクトル)と仮想カメラの向き(視線方向)とが平行になるにつれて、そのプリミティブ面がより透明になるようなα値を、そのプリミティブ面に設定する。別の言い方をすれば、オブジェクトのプリミティブ面と仮想カメラの向きとが直交するにつれて、そのプリミティブ面がより不透明になるようなα値を、そのプリミティブ面に設定する。
【0050】
なお、α値(A値)は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0051】
パーティクル処理部114は、その形状が変形する不定形な表示物(例えば炎、煙、水、爆発)を表現するためのパーティクル・プリミティブ(例えば炎パーティクルや煙パーティクルのプリミティブ)を、時間経過に伴い順次発生させたり、移動させたり、消滅させたりする処理を行う。より具体的には、パーティクル・プリミティブの発生量、発生位置、移動状態(速度、加速度等)又は寿命等をランダムに変化させる処理を行う。これにより、炎などの不定形な表示物もリアルに表現できる。
【0052】
そして本実施形態のパーティクル処理部114は、複数のパーティクル・エリア(パーティクル存在エリア)の各パーティクル・エリアにおいて、所与の寿命に消滅する複数のパーティクル・プリミティブを発生させる処理を行う。また、これらのパーティクル・プリミティブが、発生したパーティクル・エリアの外に出ないように、その移動を制限するための処理も行う。
【0053】
なお、基準線から放射状に配置された複数のプリミティブ面でオブジェクトが構成される場合には、これらのプリミティブ面を用いて、パーティクル・エリアを区分けすることができる。
【0054】
また、パーティクル・プリミティブは、炎や煙などの絵のテクスチャがマッピングされたプリミティブ面(スプライトポリゴン)で表現してもよいし、プリミティブ点やプリミティブ線などで表現してもよい。
【0055】
描画順序決定部116は、オブジェクトが含む1又は複数のプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、オブジェクトのプリミティブ面についての描画順序を決定する。そして、決定された描画順序でプリミティブ面をソートする。また描画順序決定部116は、上述のパーティクル・エリアについての描画順序も決定する。
【0056】
この場合に、プリミティブ面と仮想カメラの向きとの相対的な方向関係(内積値)がα値設定部112により求められていている場合には、この求められた相対的な方向関係(内積値)に基づいて、プリミティブ面やパーティクル・エリアについての描画順序を決定することが望ましい。このようにすることで、処理負荷を軽減できる。
【0057】
また、基準線から放射状に配置された複数のプリミティブ面を含むオブジェクトが複数ある場合には、これらの複数のオブジェクトの描画順序についても描画順序決定部116が決定する。より具体的には、例えばZソート法(奥行き値によるソート)により、これらのオブジェクトをソートする。
【0058】
描画部120は、処理部100で行われる種々の処理の結果に基づいて画像の描画処理を行う。例えば、いわゆる3次元画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、プリミティブ面データ(プリミティブ面の頂点(構成点)の位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、このプリミティブ面データ(ポリゴン、自由曲面又はサブディビジョンサーフェス等のプリミティブ面のデータ。描画データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数のプリミティブ面)の画像が、描画バッファ174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成されるようになる。
【0059】
そして本実施形態の描画部120は、描画順序決定部116で決定された描画順序で、オブジェクトが含むプリミティブ面(プリミティブ面データ)を描画する。
【0060】
なお、描画部120での描画処理の際には、奥行き情報(例えばZ値)が格納される奥行きバッファ(例えばZバッファ、ステンシルバッファ)を用いて、奥行き比較法(例えばZバッファ法)によりピクセル単位での陰面消去を行うことが望ましい。
【0061】
描画部120は、テクスチャマッピング部122、α合成部124を含む。
【0062】
テクスチャマッピング部122は、テクスチャ記憶部176に記憶されるテクスチャをオブジェクトにマッピングするための処理を行う。
【0063】
ここで本実施形態では、テクスチャ記憶部176が、一連の第1〜第Nの圧縮テクスチャ(第1〜第Nの圧縮フレーム画像)を含む圧縮ムービーテクスチャ(圧縮ムービー)のデータを記憶する。
【0064】
そして、図示しない伸張部が、この圧縮ムービーテクスチャのデータに基づいて伸張処理を行い、テクスチャマッピング部122が、一連の第1〜第Nの圧縮テクスチャを伸張することで得られる一連の第1〜第Nの伸張テクスチャ(第1〜第Nの伸張フレーム画像)をオブジェクトに順次マッピングするための処理を行う。
【0065】
また本実施形態では、基準線から放射状に配置された複数のプリミティブ面でオブジェクトが構成される場合に、これらの複数のプリミティブ面に対して共通のテクスチャを使用するようにしている。例えば、テクスチャ記憶部176に、一連のムービーテクスチャ(例えば炎の絵を表すムービーテクスチャ)のデータが記憶されていた場合には、オブジェクトが含む全てのプリミティブ面に対して、この一連のムービーテクスチャをマッピングするようにする。
【0066】
なお、テクスチャをマッピングする単位は、1枚のプリミティブ面であってもよいし、複数のプリミティブ面であってもよい。或いは、1枚のプリミティブ面を更に分割したプリミティブ面であってもよい。
【0067】
α合成部124は、α値(A値)に基づくα合成処理(αブレンディング、α加算又はα減算等)を行う。例えばα合成がαブレンディングである場合には下式のような合成処理が行われる。
【0068】
Q=(1−α)×R1+α×R2 (1)
Q=(1−α)×G1+α×G2 (2)
Q=(1−α)×B1+α×B2 (3)
ここで、R1、G1、B1は、描画バッファ174に既に描画されている画像(背景画像)の色(輝度)のR、G、B成分であり、R2、G2、B2は、描画バッファに描画するオブジェクト(プリミティブ)の色のR、G、B成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像の色のR、G、B成分である。
【0069】
そして本実施形態では、α合成部124が、α値設定部112によりプリミティブ面に設定されたα値に基づいてα合成処理を行う。
【0070】
より具体的には、α値設定部112が、プリミティブ面に対して、そのプリミティブ面の代表α値を設定する。そして、この代表α値に基づいて、オブジェクト(プリミティブ面)の頂点(構成点)のα値が求められる。そして、この頂点のα値に基づく補間処理により、オブジェクト(透視変換後のオブジェクト)の各ピクセル(ドット)のα値が求められ、この求められた各ピクセルのα値に基づいてα合成処理が行われる。
【0071】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0072】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0073】
2.本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。
【0074】
なお、以下では、炎の表現に本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、炎以外の他の画像表現にも適用できる。また、本実施形態では、プリミティブ面がポリゴンである場合について主に例にとり説明するが、本実施形態のプリミティブ面はポリゴンに限定されない。
【0075】
2.1 オブジェクトの構成
本実施形態では、炎などの不定形表示物を表現するために、図2に示すような構成のオブジェクトOBを用いている。
【0076】
このオブジェクトOBは、基準線RL(中心線)から放射状に配置されたポリゴンPL1、PL2、PL3、PL4(広義には第1〜第Nのプリミティブ面。以下の説明でも同様)を含む。また、これらのポリゴンPL1〜4の端辺(下端辺)に接するように交差するポリゴンPL0(PL0-1〜PL0-4。広義には第Jのポリゴン。以下の説明でも同様)を含む。
【0077】
図3(A)〜(C)に、このオブジェクトOBのテクスチャマッピングに使用されるテクスチャ(ムービーテクスチャ)の例を示す。これらのテクスチャは炎を表現するテクスチャであり、これらの一連のテクスチャを連続してムービー再生することで、炎がゆらゆらと揺れながら燃えている様子をリアルに表現できる。
【0078】
本実施形態ではポリゴンPL0(PL0-1〜PL0-4)、PL1、PL2、PL3、PL4に対するテクスチャマッピングの際に、図3(A)〜(C)に示す共通のテクスチャを使用している。具体的には、図3(A)〜(C)の一連のテクスチャをポリゴンPL1、PL3のペアに対してマッピングする。同様に、これらの一連のテクスチャを、ポリゴンPL2、PL4のペア、PL0-1、PL0-2のペア、PL0-3、PL0-4のペアに対して、各々、マッピングしている。
【0079】
また、図3(A)〜(C)のB1に示す矢印の方向が、図2のB2〜B9に示す矢印の方向と一致するような方向で、図3(A)〜(C)のテクスチャをマッピングしている。
【0080】
このようにすれば、図2のC1〜C8に示すような種々の位置・方向の仮想カメラVCからオブジェクトOBを見た場合にも、図3(A)〜(C)のような炎の画像が常に見えるようになる。
【0081】
例えばC1の位置の仮想カメラVCからオブジェクトOBを見た場合には、ポリゴンPL2、PL4に図3(A)〜(C)のテクスチャがマッピングされた画像が見えるようになる。またC3の位置の仮想カメラVCからオブジェクトOBを見た場合には、ポリゴンPL1、PL3に図3(A)〜(C)のテクスチャがマッピングされた画像が見えるようになる。またC5の位置(真上)の仮想カメラVCからオブジェクトOBを見た場合には、ポリゴンPL0-1、PL0-2やPL0-3、PL0-4に図3(A)〜(C)のテクスチャがマッピングされた画像が見えるようになる。
【0082】
このようにすれば、いわゆる書き割り形状(十字形状)であるのにもかかわらず、あたかもボリュームを持つ立体形状であるかのようにオブジェクトOBを見せることが可能になる。従って、少ないポリゴン数で、炎のような不定形な表示物をリアルに表現できるようになり、少ない処理負荷でリアルな画像を生成できる。
【0083】
なお、オブジェクトOBの形状は図2に示す形状に限定されない。
【0084】
例えば図4(A)、(B)(オブジェクトOBを上方から見た図)に示すように基準線RLから放射状にポリゴンPL1〜8やPL1〜3を配置してもよい。
即ち、放射状に配置するポリゴンの個数や配置の仕方は任意である。
【0085】
また、放射状に配置するポリゴン以外のポリゴンをオブジェクトに設けてもよい。例えば図2では、このようなポリゴンとしてPL0が設けられている。そして、この場合に、図2や図4(C)(側面図)では、ポリゴンPL1〜4の端辺に接するように交差するポリゴンPL0を設けているが、図4(D)(側面図)に示すように、ポリゴンPL1〜4の上端辺と下端辺の間で交差するポリゴンPL0’を設けてもよい。
【0086】
2.2 α値の設定
さて、図2に示すようなオブジェクトOBを用いて炎の画像を生成した場合に、次のような課題があることが判明した。
【0087】
例えば仮想カメラVCが図5(A)に示すような位置にあった場合には、図5(B)に示すような画像が生成されてしまう。即ち、ポリゴンPL2とPL4の画像の間に、ポリゴンPL1の色で描かれた線上の画像が表示されてしまう。
【0088】
また仮想カメラVCが図5(C)に示すような位置にあった場合には、図5(D)に示すような画像が生成されてしまう。即ち、ポリゴンPL1とPL2、及びポリゴンPL3とPL4とが同一のα値で半透明合成された画像が生成されてしまう。従って、ポリゴンPL2の領域と、ポリゴンPL1及びPL2が重なっている領域との間、並びに、ポリゴンPL4の領域と、ポリゴンPL3及びPL4が重なっている領域との間で、色の濃さの違いが目立ってしまう。
【0089】
この結果、図2に示すような形状のオブジェクトOBを用いて、何も工夫せずに画像を生成すると、仮想カメラVCがオブジェクトOBの周囲で移動するにつれて、ポリゴンの線が見えてしまったり、色の濃い部分と薄い部分の差が目立ってしまうなどの問題が生じる。このため、オブジェクトOBが、実際にはボリュームを有する立体形状のオブジェクトではなく、図2に示すような書き割り形状のオブジェクトであることがプレーヤに知られてしまい、プレーヤの仮想現実感を減退させてしまう。
【0090】
そこで本実施形態では、このような課題を解決するために次のような手法を採用している。
【0091】
即ち本実施形態では図6(A)に示すように、オブジェクトOBのポリゴンPL1(PL2〜4)と仮想カメラVCとのなす角度θ(或いはcosθ。広義には相対的な方向関係。以下の説明でも同様)に応じて、ポリゴンPL1〜4のα値を設定している。
【0092】
例えば図6(B)では、仮想カメラVCの向きはポリゴンPL1(PL3)と平行(PL2、4と直交)になっており、θは0度になっている。この場合には、ポリゴンPL1(PL3)のα値はαMIN(最小値。例えば0.0)に設定され、PL1は、より透明に見えるようになる。一方、ポリゴンPL2、4のα値はαMAX(最大値。例えば1.0)に設定され、PL2、4は、より不透明に見えるようになる。このようにすることで、図5(B)では目立っていたポリゴンPL1の色の線が、目立たなくなり、より自然な画像を生成できる。
【0093】
また図6(C)では、仮想カメラVCの向きはポリゴンPL1とPL4の間の向きになっており、θは例えば45度になっている。この場合には、ポリゴンPL1(PL3)のα値及びPL4(PL2)のα値は共にαMINとαMAXの例えば平均値に設定される。従って、図5(D)では目立っていた色の濃い部分と薄い部分の差が、目立たなくなる。この結果、オブジェクトOBが書き割り形状であることがプレーヤに知られてしまう不具合を防止でき、より自然でリアルな画像を生成できる。
【0094】
また図6(D)では、仮想カメラVCの向きはポリゴンPL4(PL2)と平行(PL1、3と直交)になっており、θは90度になっている。この場合には、ポリゴンPL4(PL2)のα値はαMINに設定され、PL4は、より透明に見えるようになる。一方、ポリゴンPL1、3のα値はαMAXに設定され、PL1、3は、より不透明に見えるようになる。これにより、ポリゴンPL4の色の線が目立って見えてしまう不具合を解消できる。
【0095】
次に、α値の具体的な設定手法について図7のフローチャートを用いて更に詳しく説明する。
【0096】
まず、ベクトルFL、FX、FY、FZを求める(ステップS1)。
【0097】
ここでベクトルFLは、図8に示すように、オブジェクトOBの中心点CP(代表点。基準線RLとポリゴンPL0の交点)を始点とし、仮想カメラVCの方向を向く単位ベクトルである。
【0098】
また、ベクトルFXは、中心点CPを始点とし、ポリゴンPL2、PL4に直交する単位ベクトル(PL1、3の面に沿った方向を向く単位ベクトル)である。
【0099】
また、ベクトルFYは、中心点CPを始点とし、ポリゴンPL0に直交する単位ベクトルである。
【0100】
また、ベクトルFZは、中心点CPを始点とし、ポリゴンPL1、PL3に直交する単位ベクトル(PL2、4の面に沿った方向を向く単位ベクトル)である。
【0101】
言い換えれば、これらのベクトルFX、FY、FZは、中心点CP(代表点)を原点とするオブジェクトOBのローカル座標系でのX、Y、Z軸方向の単位ベクトルである。
【0102】
次に、これらのベクトルFX、FY、FZとFLとの内積値を下式のように求める(ステップS2)。
【0103】
INR0=FY・FL (4)
INR1=FX・FL (5)
INR2=FZ・FL (6)
これらの内積値INR0〜3は、2つのベクトルが直交している時には0になり、平行の時には1又は−1になる。
【0104】
次に、求められた内積値INR0〜2に基づいて、ポリゴンの代表α値を求める(ステップS3)。より具体的には、まず、下式のような変換を行う。
【0105】
INRα0=1−ABS(INR0) (7)
INRα1=1−ABS(INR1) (8)
INRα2=1−ABS(INR2) (9)
ここで、ABS(X)は、引数Xに対してその絶対値を返値として返す関数である。上式(7)、(8)、(9)のような変換を行うことで、INRα0、INRα1、INRα2は、2つのベクトルが直交している時には1になり、平行の時には0になる値となる。
【0106】
ポリゴンP0〜P4の代表α値αP0〜αP4は、これらのINRα0〜INRα2を用いて下式のように求められる。
【0107】
αP0=(1−INRα0)×A0+A1 (10)
αP1=INRα1×INRα0×A0+A1 (11)
αP2=INRα2×INRα0×A0+A1 (12)
αP3=INRα1×INRα0×A0+A1 (13)
αP4=INRα2×INRα0×A0+A1 (14)
ここで、A0=αMAX−αMIN、A1=αMINである。
【0108】
例えば、図8のベクトルFLがFYと平行な場合(FLがFX、FZと直交する場合)には、上式(4)〜(6)からINR0=1、INR1=0、INR2=0になり、上式(7)〜(9)からINRα0=0、INRα1=1、INRα2=1になる。従って、上式(10)〜(14)から、
αP0=A0+A1=αMAX
αP1=αP2=αP3=αP4=A1=αMIN
となる。
【0109】
即ち、ポリゴンPL1〜PL4のα値であるαP1〜αP4が小さくなるため(αMIN)、上方の仮想カメラVCから見て、PL1〜PL4がより透明に見えるようになり、PL1〜PL4の線が目立たなくなる。一方、ポリゴンPL0のα値であるαP0が大きくなるため(αMAX)、仮想カメラVCには、PL0にマッピングされた炎のテクスチャの画像が見えるようになる。
【0110】
また、ベクトルFLがFXと平行な場合(FLがFY、FZと直交する場合)には、上式(4)〜(6)からINR0=0、INR1=1、INR2=0になり、上式(7)〜(9)からINRα0=1、INRα1=0、INRα2=1になる。従って、上式(10)〜(14)から、
αP0=αP1=αP3=A1=αMIN
αP2=αP4=A0+A1=αMAX
となる。
【0111】
即ち、ポリゴンPL0、1、3のα値であるαP0、1、3が小さくなるため、ベクトルFXの方向にある仮想カメラVCから見て、PL0、1、3がより透明に見えるようになり、PL0、1、3の線が目立たなくなる。一方、ポリゴンPL2、4のα値であるαP2、4が大きくなるため、仮想カメラVCには、PL2、4にマッピングされた炎のテクスチャの画像が見えるようになる。
【0112】
また、ベクトルFLがFZと平行な場合(FLがFX、FYと直交する場合)には、上式(4)〜(6)からINR0=0、INR1=0、INR2=1になり、上式(7)〜(9)からINRα0=1、INRα1=1、INRα2=0になる。従って、上式(10)〜(14)から、
αP0=αP2=αP4=A1=αMIN
αP1=αP3=A0+A1=αMAX
となる。
【0113】
即ち、ポリゴンPL0、2、4のα値であるαP0、2、4が小さくなるため、ベクトルFZの方向にある仮想カメラVCから見て、PL0、2、4がより透明に見えるようになり、PL0、2、4の線が目立たなくなる。一方、ポリゴンPL1、3のα値であるαP1、3が大きくなるため、仮想カメラVCには、PL1、3にマッピングされた炎のテクスチャの画像が見えるようになる。
【0114】
次に図7のステップS4に示すように、求められたポリゴンPL0〜4の代表α値αP0〜4に基づいて、オブジェクトOB(ポリゴン)の頂点α値を求める。より具体的には、オブジェクトOBの頂点が属する1又は複数のポリゴンに設定された代表α値に基づいて所与の演算処理(例えば平均化処理)を行い、オブジェクトOBの頂点のα値が求める。
【0115】
例えば図9(A)において、頂点VX1、2、3、4の頂点α値αV1、αV2、αV3、αV4については下式のように求めることができる。
【0116】
αV1=αP4 (15)
αV2=(αP1+αP2+αP3+αP4)/4 (16)
αV3=(αP0+αP1+αP2+αP3+αP4)/5 (17)
αV4=(αP0+αP4)/2 (18)
即ち、図9(A)に示すように頂点VX1はポリゴンPL4にしか属していない。このため、頂点VX1のα値αV1は、PL4の代表α値であるαP4になる(式(15))。
【0117】
また、頂点VX2はポリゴンPL1、2、3、4に属している。このため、頂点VX2のα値αV2は、PL1〜4の代表α値であるαP1〜4の平均値になる(式(16))。
【0118】
また、頂点VX3はポリゴンPL0、1、2、3、4に属している。このため、頂点VX3のα値αV3は、PL0〜4の代表α値であるαP0〜4の平均値になる(式(17))。
【0119】
また、頂点VX4はポリゴンPL0、4に属している。このため、頂点VX4のα値αV4は、PL0、4の代表α値であるαP0、4の平均値になる(式(18))。
【0120】
以上のようにして頂点α値を求めれば、ポリゴンの境界においてα値が滑らかに変化するようになる。従って、例えば仮想カメラがオブジェクトOBの周囲を移動した場合にも、仮想カメラから見てポリゴンの境界が目立たなくなり、より自然な画像を生成できるようになる。
【0121】
なお、図9(B)に示すように、オブジェクト(透視変換後のオブジェクト、ポリゴン)の各ピクセル(ドット)のα値αPIXは、頂点α値αV1〜4を補間(例えば線形補間)することで求めることができる。そして、この求められたα値αPIXに基づいて、ピクセル単位でのα合成処理を実現できる。この場合、各ピクセルのα値を求める処理は、描画プロセッサの機能(グーローシェーディング機能等)により実現できる。
【0122】
2.3 描画順序の決定
さて、本実施形態では以下に説明するような手法でポリゴンの描画順序を決定し、決定された描画順序にしたがってポリゴンを描画バッファに描画している。この場合に本実施形態では、前述の手法で得られたα値に基づいてα合成処理(半透明処理)を行いながら、ポリゴンを描画バッファに描画する。
【0123】
例えば図10(A)に示すように、図2の形状のオブジェクトOB1〜4がオブジェクト空間に配置されている場合を考える。
【0124】
この場合に本実施形態では、まず、仮想カメラVCの視点座標系での奥行き値(Z値)に基づいて、図10(B)のD1に示すように、オブジェクトOB1〜4についての描画順序を決定する。即ち、オブジェクトOB1〜OB4のZソートを行う。例えば、図10(A)の場合の描画順序は、OB4、OB1、OB3、OB2の順となる。
【0125】
また本実施形態では図10(B)のD2〜D5に示すように、これらの各オブジェクトOB1〜OB4が含むポリゴンの描画順序を決定し、これらのポリゴンをソートする。
【0126】
そして図10(A)の場合には、まず、最も奥側のオブジェクトOB4が含むポリゴンを、描画優先順位の高いものから順に描画する。次に、OB1が含むポリゴンを描画優先順位の高いものから順に描画する。次に、OB3が含むポリゴンを描画優先順位の高いものから順に描画する。最後に、最も手前側のOB2が含むポリゴンを描画優先順位の高いものから順に描画する。
【0127】
以上のような手法によりポリゴンを描画することで、矛盾の無いポリゴンのα合成処理を実現できる。また、オブジェクトOB1〜4の全てのポリゴンを一度にソートする手法に比べて、ソート処理の負荷を格段に軽減できる。
【0128】
そして本実施形態では、オブジェクトが含むポリゴンの描画順序を次のような手法で決定している。
【0129】
即ち本実施形態では図11(A)に示すように、オブジェクトOBのポリゴンPL1(PL2〜4)と仮想カメラVCとのなす角度θ(cosθ。広義には相対的な方向関係。以下の説明でも同様)に応じて、ポリゴンPL1〜4の描画順序を決定している。
【0130】
例えば図11(A)では、θが0〜90度の間にあり、仮想カメラVCから見て、ポリゴンPL1、PL4が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にポリゴンPL2、PL3を描画し、最後にポリゴンPL1、4を描画する。
【0131】
なお、底面のポリゴンPL0については、炎のオブジェクトOBを下から見るような状況がない限り、一番最初に描画しても問題ない。即ち、一番最初にポリゴンPL0を描画しても、矛盾の無いα合成処理を実現できる。従って、ポリゴンPL0の描画優先順位は常に最も高い順位(最初に描画される順位)に設定されている。
【0132】
また図11(A)の仮想カメラVCの位置では、ポリゴンPL1とPL4や、PL2とPL3は互いに重なることがなく、これらのポリゴン同士のソートは必要ない。従って、ポリゴンPL1、PL4間の描画順序や、PL2、PL3間の描画順序は任意となる。
【0133】
また図11(B)では、θが90〜180度の間にあり、仮想カメラVCから見てポリゴンPL3、PL4が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にポリゴンPL1、PL2を描画し、最後にポリゴンPL3、4を描画する。なお、ポリゴンPL1、PL2間及びPL3、PL4間の描画順序は任意である。
【0134】
また図11(C)では、θが180〜270度の間にあり、仮想カメラVCから見てポリゴンPL2、PL3が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にポリゴンPL1、PL4を描画し、最後にポリゴンPL2、3を描画する。なお、ポリゴンPL1、PL4間及びPL2、PL3間の描画順序は任意である。
【0135】
また図11(D)では、θが270〜360度の間にあり、仮想カメラVCから見てポリゴンPL1、PL2が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にポリゴンPL3、PL4を描画し、最後にポリゴンPL1、2を描画する。なお、ポリゴンPL3、PL4間及びPL1、PL2間の描画順序は任意である。
【0136】
このように本実施形態では、オブジェクトOBの形状が特定形状(基準線から放射状にポリゴンが配置される形状)に固定されていることに着目し、ポリゴンの面と仮想カメラの向きとのなす角度θ(内積値。相対的な方向関係)に応じて、ポリゴンの描画順序を一意的に決めている。従って、ポリゴンの奥行き値を判定することなくポリゴンをソートできるようになるため、ソート処理の負荷を格段に軽減できる。
【0137】
また本実施形態では、前述のように、ポリゴンの面と仮想カメラの向きとのなす角度θに応じて、ポリゴンのα値も設定している。従って、このα値を求めるために用いた角度θ(より具体的には内積値)を有効利用して、ポリゴンの描画順序も決定できるようになるため、処理負荷を更に軽減できる。
【0138】
2.4 パーティクル・エリア
さて、オブジェクトOBの画像を更にリアルなものにするためには、パーティクル・プリミティブ(点、線又は面で構成されたパーティクル)を用いたパーティクルシステムを採用することが望ましい。
【0139】
そこで本実施形態では図12に示すように、複数のパーティクル・エリアPTA1、PTA2、PTA3、PTA4(パーティクル存在エリア)を設定し、これらのPTA1〜4において、所与の寿命で消滅するパーティクル・プリミティブを発生させるようにしている。
【0140】
なお図12では、これらのパーティクル・エリアPTA1〜4は、オブジェクトOBが含むポリゴンPL1〜PL4により区分けされている。
【0141】
このように、各パーティクル・エリアPTA1〜4においてパーティクル・プリミティブを発生させるようにすれば、単にポリゴンPL0〜4だけでオブジェクトOBを構成する場合に比べて、よりボリューム感があり、立体的に見える炎を表現できるようになる。これにより、プレーヤの仮想現実感を更に向上できる。
【0142】
なお、本実施形態では、パーティクル・プリミティブとして、パーティクルを表すテクスチャがマッピングされたスプライト・ポリゴン(ビルボード表示のポリゴン)を用いている。このようにすることで、プリミティブ点で表現される多数のパーティクルを発生して炎等を表現する場合に比べて、描画負荷を格段に軽減できる。即ち、少ない個数のプリミティブ数(ポリゴン数)で、より広い範囲を占める炎を表現できるようになる。
【0143】
但し、パーティクル・プリミティブとして、スプライト・ポリゴンではなく、プリミティブ点やプリミティブ線などを用いてもよい。
【0144】
なお、よりリアルなパーティクル表現を実現するためには、パーティクル・プリミティブに色やα値(半透明度)などの種々の属性を持たせると共に、パーティクル・プリミティブを所与の規則に従って発生、移動、消滅させて、不定形な炎を表現することが望ましい。即ち、パーティクル・プリミティブの初期速度(初期移動方向)をランダムに変化させたり、パーティクル・プリミティブの寿命をランダムに変化させる。このようにすることで、現実世界の炎のように見えるリアルな画像表現を実現できる。なお、パーティクル・プリミティブの消滅は、パーティクル・プリミティブのα値を制御して、パーティクル・プリミティブを時間経過に伴い徐々に透明にすることで実現できる。
【0145】
さて、このようにパーティクル・エリアを設け、パーティクル・プリミティブを発生させた場合に、パーティクル・エリアPTA1〜4(パーティクル・プリミティブ)についての描画順序をどのように決定するかが問題となる。
【0146】
本実施形態では、このパーティクル・エリアについての描画順序も、ポリゴンの面と仮想カメラの向きとの相対的な方向関係(角度θ。内積値)に応じて決定している。
【0147】
例えば図13(A)では、θが0〜90度の間にあり、仮想カメラVCから見て、ポリゴンPL1、PL4が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にパーティクル・エリアPTA3内のパーティクル・プリミティブを描画する。そして、ポリゴンPL2、PL3を描画し、次に、パーティクル・エリアPTA2、4内のパーティクル・プリミティブを描画する。そして、ポリゴンPL1、4を描画し、最後に、パーティクル・エリアPTA1内のパーティクル・プリミティブを描画する。
【0148】
なおPL2、PL3間、PTA2、PTA4間及びPL1、PL4間の描画順序は任意である。また、各パーティクル・エリア内においては、パーティクル・プリミティブをZソートしながら描画することが望ましい。
【0149】
また図13(B)では、θが90〜180度の間にあり、仮想カメラVCから見て、ポリゴンPL3、PL4が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にパーティクル・エリアPTA2内のパーティクル・プリミティブを描画する。そして、ポリゴンPL1、PL2を描画し、次に、パーティクル・エリアPTA1、3内のパーティクル・プリミティブを描画する。そして、ポリゴンPL3、4を描画し、最後に、パーティクル・エリアPTA4内のパーティクル・プリミティブを描画する。なおPL1、PL2間、PTA1、PTA3間及びPL3、PL4間の描画順序は任意である。
【0150】
また図14(A)では、θが180〜270度の間にあり、仮想カメラVCから見て、ポリゴンPL2、PL3が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にパーティクル・エリアPTA1内のパーティクル・プリミティブを描画する。そして、ポリゴンPL1、PL4を描画し、次に、パーティクル・エリアPTA2、4内のパーティクル・プリミティブを描画する。そして、ポリゴンPL2、3を描画し、最後に、パーティクル・エリアPTA3内のパーティクル・プリミティブを描画する。なおPL1、PL4間、PTA2、PTA4間及びPL2、PL3間の描画順序は任意である。
【0151】
また図14(B)では、θが270〜360度の間にあり、仮想カメラVCから見て、ポリゴンPL1、PL2が前面に位置している。この場合には、まずポリゴンPL0を描画し、次にパーティクル・エリアPTA4内のパーティクル・プリミティブを描画する。そして、ポリゴンPL3、PL4を描画し、次に、パーティクル・エリアPTA1、3内のパーティクル・プリミティブを描画する。そして、ポリゴンPL1、2を描画し、最後に、パーティクル・エリアPTA2内のパーティクル・プリミティブを描画する。なおPL3、PL4間、PTA1、PTA3間及びPL1、PL2間の描画順序は任意である。
【0152】
なお、ポリゴンの面と仮想カメラVCとの方向関係(角度θ)は、具体的には図15に示す手法により判断する。
【0153】
例えば図15において、FLはオブジェクトOBの中心点CPを始点としVCの方向を向く単位ベクトルであり、FXは、CPを始点としPL2、PL4に直交する単位ベクトルであり、FZは、CPを始点としPL1、PL3に直交する単位ベクトルである(図8参照)。
【0154】
本実施形態では、これらのベクトルを用いて下式の内積値INR1、2を求める。
【0155】
INR1=FX・FL (19)
INR2=FZ・FL (20)
そして、INR1>0、INR2>0の場合には、仮想カメラVCはPL1、PL4の前面に位置すると判断され、描画順序は図13(A)に示す順序になる。
【0156】
また、INR1≦0、INR2>0の場合には、仮想カメラVCはPL3、PL4の前面に位置すると判断され、描画順序は図13(B)に示す順序になる。
【0157】
また、INR1≦0、INR2≦0の場合には、仮想カメラVCはPL2、PL3の前面に位置すると判断され、描画順序は図14(A)に示す順序になる。
【0158】
また、INR1>0、INR2≦0の場合には、仮想カメラVCはPL1、PL2の前面に位置すると判断され、描画順序は図14(B)に示す順序になる。
【0159】
この場合に本実施形態では、これらの内積値INR1、INR2(式(19)、(20))として、α値の設定の際に求めた内積値INR1、INR2(式(5)、(6))をそのまま利用できる。このようにすることで、α値の設定の際に求めた内積値INR1、2を有効利用できるようになり、処理負荷を軽減できる。
【0160】
2.5 パーティクルの発生
本実施形態では、図16に示すように、各パーティクル・エリアPTA1〜4に対して、パーティクル・プリミティブのジェネレータG1〜4(発生場所)を設定している。そして、このジェネレータG1〜4から、所与の寿命が設定されたパーティクル・プリミティブを所与の初期速度で発生させている。
【0161】
例えばパーティクル・エリアPTA1の領域は、(X0、Z0)、(X0+XSZ、Z0+ZSZ)と定義できる。この場合に、パーティクル・エリアPTA1の領域が、PTA1を区分けしているポリゴンPL1、PL4に重ならないようにPTA1を定義する。
【0162】
この時、ジェネレータG1〜4の位置GP1〜4は下式のように表すことができる。
【0163】
GP1
=(X0+XSZ×VLMIN、Z0+ZSZ×VLMIN) (21)
GP2
=(X0+XSZ×VLMAX、Z0+ZSZ×VLMIN) (22)
GP3
=(X0+XSZ×VLMIN、Z0+ZSZ×VLMAX) (23)
GP4
=(X0+XSZ×VLMAX、Z0+ZSZ×VLMAX) (24)
ここで、VLMIN、VLMAXはジェネレータの位置を定義するためのパラメータであり、0<VLMIN<VLMAXの関係が成り立つ。
【0164】
上式(21)〜(24)のようにその位置を決めることで、ジェネレータG1〜4はパーティクル・エリアの内側に位置するようになる。
【0165】
さて、パーティクル・プリミティブに対するパラメータの設定手法としては、種々の手法があるが、本実施形態では、処理負荷を軽くするために、以下のようなパラメータだけを各パーティクル・プリミティブの属性情報として持たせている。
(PX、PY、PZ)、(VCX、VCY、VCZ)、LIFE
ここで、(PX、PY、PZ)は、パーティクル・プリミティブの発生位置を表すパラメータである。即ち、上記のGP1〜4のいずれかを表すパラメータである。
【0166】
また、(VCX、VCY、VCZ)はパーティクル・プリミティブの初速度を表すパラメータであり、LIFEはパーティクル・プリミティブの現在のライフ(年齢)を表すパラメータである。
【0167】
更に別のパラメータとして本実施形態ではLIFEMAXを用意している。このLIFEMAXはパーティクル・プリミティブの寿命を表すパラメータである。
【0168】
図17に、本実施形態のパーティクル処理についてのフローチャートを示す。
【0169】
まず、フレーム更新(描画バッファの更新)か否かを判断する(ステップS21)。これは、画像生成システムのハードウェアが垂直同期のタイミングで発生する割り込みに基づいて判断できる。
【0170】
フレーム更新であると判断された場合には、パーティクル番号NUMを0に設定する(ステップS22)。そして、NUM番目のパーティクル・プリミティブのLIFEを1だけインクリメントする(ステップS23)。
【0171】
次に、LIFE>LIFEMAXか否かを判断する(ステップS24)。そして、LIFE>LIFEMAXの場合には、LIFE=0に戻すと共に発生位置PX、PY、PZ、初期速度VCX、VCY、VCZを再設定する(ステップS25)。即ち、寿命を越えたパーティクル・プリミティブの発生位置や初期速度を再設定する。この場合に、パーティクル・プリミティブを発生させるジェネレータ及びパーティクル・プリミティブの初期速度は乱数に基づいて決定する。
【0172】
次に、パーティクル・プリミティブの描画位置(X、Y、Z)を下式のように決定する(ステップS26)。
【0173】
X=PX+VCX×LIFE (25)
Y=PY+VCY×LIFE (26)
Z=PZ+VCZ×LIFE (27)
即ち、各パーティクル・プリミティブの位置は、その発生位置と初期速度とLIFEとにより特定されることになる。
【0174】
次に、パーティクル番号NUMを1だけインクリメントする(ステップS27)。そして、NUM>NUMMAXか否かを判断し(ステップS28)、NUM≦NUMMAXの場合には、ステップS23に戻り、次のパーティクル・プリミティブに対する処理を行う。
【0175】
一方、NUM>NUMMAXの場合には、NUM個のパーティクル・プリミティブをZソートして、描画バッファに描画する(ステップS29)。これにより、当該フレームにおけるパーティクル・プリミティブの描画が完了する。
【0176】
さて、以上のようにしてパーティクル・プリミティブを発生させた場合、次のような問題がある。即ち、1つのパーティクル・エリアで発生したパーティクル・プリミティブが、そのパーティクル・エリアの外に出てしまい、他のパーティクル・エリアに進入してしまうと、誤った描画順序でそのパーティクル・プリミティブが描画されてしまうおそれがある。
【0177】
そこで本実施形態では図18(A)に示すように、パーティクル・プリミティブが、そのパーティクル・プリミティブが発生したパーティクル・エリア内だけで移動するように、その移動を制限している。これにより、図18(A)に示すように、例えばパーティクル・エリアPTA1で発生したパーティクル・プリミティブはPTA1内だけで移動して消滅するようになる。また、パーティクル・エリアPTA3で発生したパーティクル・プリミティブはPTA3内だけで移動して消滅するようになる。
【0178】
そして本実施形態では、このような移動の制限を、パーティクル・プリミティブの初速度や寿命の制御により実現している。
【0179】
例えば本実施形態では、パーティクル・プリミティブの初期条件の設定や、図17のステップS25での初期条件の再設定の際に、次のようにして初期速度を決定している。
【0180】
例えば、パーティクル・プリミティブが図18(B)に示すようにジェネレータG1から発生する場合には、VCX>0、VCZ>0となる条件の下で、パーティクル・プリミティブの初期速度(VCX、VCY、VCZ)を乱数で決定する。
【0181】
また、パーティクル・プリミティブが図18(C)に示すようにジェネレータG2から発生する場合には、VCX<0、VCZ>0となる条件の下で、パーティクル・プリミティブの初期速度(VCX、VCY、VCZ)を乱数で決定する。
【0182】
また、パーティクル・プリミティブが図18(D)に示すようにジェネレータG3から発生する場合には、VCX>0、VCZ<0となる条件の下で、パーティクル・プリミティブの初期速度(VCX、VCY、VCZ)を乱数で決定する。
【0183】
また、パーティクル・プリミティブが図18(E)に示すようにジェネレータG4から発生する場合には、VCX<0、VCZ<0となる条件の下で、パーティクル・プリミティブの初期速度(VCX、VCY、VCZ)を乱数で決定する。
【0184】
また、初期速度が大きすぎると、パーティクル・プリミティブがパーティクル・エリアの外に直ぐに出ていってしまうおそれがある。このため、例えばジェネレータG1から発生するパーティクル・プリミティブの初期速度(VCX、VCY、VCZ)に対しては、下式のような制限を加える。
0<ABS(VCX)×LIFEMAX<XSZ×(1−VLMIN)(28)0<ABS(VCZ)×LIFEMAX<ZSZ×(1−VLMIN)(29)ここで、ABS(X)は、Xの絶対値を返値として返す関数である。また前述のように、LIFEMAXは寿命を表すパラメータであり、XSZ、ZSZは、パーティクル・エリアを定義するためのパラメータであり、VLMINはジェネレータの位置を定義するためのパラメータである。
【0185】
このように本実施形態では、パーティクル・プリミティブの初期条件の設定又は再設定だけで、パーティクル・プリミティブがパーティクル・エリアの外に出ないことを保証することに成功している。
【0186】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図19、図20のフローチャートを用いて説明する。
【0187】
まず、炎オブジェクト(図2参照)を視点(カメラ)座標系でZソートする(ステップS31)。即ち図10(A)、(B)で説明したように、まず、炎オブジェクトOB1〜4についてのZソートを行う。
【0188】
次に、オブジェクト番号I=0に設定する(ステップS32)。そして、I番目の炎オブジェクトの中心点(代表点)の座標と仮想カメラの座標とに基づき、ベクトルFL(図8参照)を求める(ステップS33)。
【0189】
次に、I番目の炎オブジェクトのローカル座標系上におけるベクトルFX、FY、FZと、求められたFLとの内積値を求める(ステップS34)。そして、求められた内積値に基づいて、炎ポリゴン(PL0〜PL4)及びパーティクル・エリア(PTA1〜4)についてのα値及び描画順序を決定する(ステップS35)。
【0190】
次に、炎オブジェクトのベース・ポリゴン(PL0)を描画する(ステップS36)。そして、1番目の描画優先順位のパーティクル・エリア内のパーティクル・プリミティブを描画する(ステップS37)。
【0191】
次に、1番目、2番目の描画優先順位の炎ポリゴンを描画する(ステップS38)。そして、2番目、3番目の描画優先順位のパーティクル・エリア内のパーティクル・プリミティブを描画する(ステップS39)。
【0192】
次に、3番目、4番目の描画優先順位の炎ポリゴンを描画する(ステップS40)。そして、4番目の描画優先順位のパーティクル・エリア内のパーティクル・プリミティブを描画する(ステップS41)。
【0193】
次に、オブジェクト番号Iを1だけインクリメントする(ステップS42)。そして、I>IMAXか否かを判断し、I≦IMAXの場合には図19のステップS33に戻る。一方、I>IMAXの場合には処理を終了する。
【0194】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図21を用いて説明する。
【0195】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0196】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0197】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0198】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0199】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0200】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0201】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0202】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0203】
RAM960は、各種プロセッサの作業領域として用いられる。
【0204】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0205】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0206】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0207】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現(実行)してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0208】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【0209】
図22(A)に、本実施形態を業務用ゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤは、ディスプレイ1100、1101上に映し出されたゲーム画像を見ながら、ガン型コントローラ1102、1103などを操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラム(格納情報)と呼ぶ。
【0210】
図22(B)に、本実施形態を家庭用のゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ガン型コントローラ1202、1204などを操作してゲームを楽しむ。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209などに格納されている。
【0211】
図22(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-n(ゲーム機、携帯電話、テレビ)とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム(格納情報)は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0212】
なお、図22(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実現するようにしてもよい。また、本発明の各手段を実現するための上記格納プログラム(格納情報)を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0213】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0214】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0215】
例えば、本発明のオブジェクトの形状は図2、図4(A)〜(D)で説明したものに限定されず、種々の形状を採用できる。
【0216】
また、α値の設定手法も、図6(A)〜図9(B)で説明した手法に限定されず、これと均等な種々の変形実施が可能である。
【0217】
また、描画順序の決定手法も、図10(A)〜図15で説明した手法に限定されるものではない。
【0218】
更に、パーティクル・プリミティブの処理手法も、図16〜図18(E)で説明した手法に限定されない。
【0219】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0220】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0221】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システムの機能ブロック図の例である。
【図2】本実施形態で用いられるオブジェクトの形状の例を示す図である。
【図3】図3(A)、(B)、(C)は、オブジェクトにマッピングされるテクスチャ(ムービーテクスチャ)の例である。
【図4】図4(A)〜(D)は、オブジェクトの形状の他の例について説明するための図である。
【図5】図5(A)〜(D)は、図2の形状のオブジェクトを用いた場合の問題点について説明するための図である。
【図6】図6(A)〜(D)は、α値の設定手法について説明するための図である。
【図7】α値の設定手法の具体例について説明するためのフローチャートである。
【図8】α値の設定手法の具体例について説明するための図である。
【図9】図9(A)、(B)は、頂点のα値やピクセルのα値を求める手法について説明するための図である。
【図10】図10(A)、(B)は、本実施形態のソート処理について説明するための図である。
【図11】図11(A)〜(D)は、ポリゴンの面と仮想カメラの向きに応じてポリゴンの描画順序を決定する手法について説明するための図である。
【図12】パーティクル・エリアの設定とパーティクル・プリミティブの発生について説明するための図である。
【図13】図13(A)、(B)は、ポリゴンの面と仮想カメラの向きに応じてポリゴンやパーティクル・エリアの描画順序を決定する手法について説明するための図である。
【図14】図14(A)、(B)も、ポリゴンの面と仮想カメラの向きに応じてポリゴンやパーティクル・エリアの描画順序を決定する手法について説明するための図である。
【図15】ベクトルの内積値を利用してポリゴンの面と仮想カメラの向きの方向関係を決定する手法について説明するための図である。
【図16】パーティクル・プリミティブのジェネレータについて説明するための図である。
【図17】パーティクル処理について説明するためのフローチャートである。
【図18】図18(A)〜(E)は、パーティクル・プリミティブの移動を制限する手法について説明するための図である。
【図19】本実施形態の処理の詳細例について示すフローチャートである。
【図20】本実施形態の処理の詳細例について示すフローチャートである。
【図21】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図22】図22(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
VC 仮想カメラ
OB オブジェクト
PL0〜PL4 ポリゴン
RL 基準線
FX、FY、FZ ベクトル
VX1〜VX4 頂点
PTA1〜PTA4 パーティクル・エリア
CP 中心点
100 処理部
110 オブジェクト空間設定部
112 α値設定部
114 パーティクル処理部
116 描画順序決定部
120 描画部
122 テクスチャマッピング部
124 α合成部
160 操作部
170 記憶部
172 主記憶部
174 描画バッファ
176 テクスチャ記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

Claims (13)

  1. 画像生成を行う画像生成システムであって、
    基準線から放射状に配置された第1〜第Nのプリミティブ面を含むオブジェクトを、オブジェクト空間に設定する手段と、
    前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面のα値を設定する手段と、
    設定されたα値に基づいて、前記第1〜第Nのプリミティブ面を含む前記オブジェクトについてのα合成処理を行う手段とを含み、
    前記第1〜第Nのプリミティブ面に設定される前記α値が、前記第1〜第Nのプリミティブ面の代表α値であり、
    前記オブジェクトの頂点が属するプリミティブ面に設定された前記代表α値に基づいて、前記オブジェクトの頂点のα値が求められることを特徴とする画像生成システム。
  2. 請求項1において、
    前記オブジェクトが含む第K(1≦K≦N)のプリミティブ面と仮想カメラの向きとが平行になるにつれて該第Kのプリミティブ面が透明になるように、該第Kのプリミティブ面のα値が設定されることを特徴とする画像生成システム。
  3. 請求項又はにおいて、
    求められた頂点のα値に基づく補間処理により、前記オブジェクトの各ピクセルのα値が求められることを特徴とする画像生成システム。
  4. 請求項1乃至のいずれかにおいて、
    前記第1〜第Nのプリミティブ面に対してマッピングされるテクスチャとして、共通のテクスチャが使用されることを特徴とする画像生成システム。
  5. 請求項1乃至のいずれかにおいて、
    前記オブジェクトが、前記第1〜第Nのプリミティブ面に交差する第Jのプリミティブ面を含み、
    前記第Jのプリミティブ面と前記仮想カメラの向きとの相対的な方向関係に応じて、前記第Jのプリミティブ面のα値が設定されることを特徴とする画像生成システム。
  6. 請求項1乃至のいずれかにおいて、
    前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面の描画順序が決定され、
    決定された描画順序で前記第1〜第Nのプリミティブ面が描画されることを特徴とする画像生成システム。
  7. 基準線から放射状に配置された第1〜第Nのプリミティブ面を含むオブジェクトを、オブジェクト空間に設定する手段と、
    前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面のα値を設定する手段と、
    設定されたα値に基づいて、前記第1〜第Nのプリミティブ面を含む前記オブジェクトについてのα合成処理を行う手段としてコンピュータを機能させ
    前記第1〜第Nのプリミティブ面に設定される前記α値が、前記第1〜第Nのプリミティブ面の代表α値であり、
    前記オブジェクトの頂点が属するプリミティブ面に設定された前記代表α値に基づいて、前記オブジェクトの頂点のα値が求められることを特徴とするプログラム。
  8. 請求項において、
    前記オブジェクトが含む第K(1≦K≦N)のプリミティブ面と仮想カメラの向きとが平行になるにつれて該第Kのプリミティブ面が透明になるように、該第Kのプリミティブ面のα値が設定されることを特徴とするプログラム。
  9. 請求項又はにおいて、
    求められた頂点のα値に基づく補間処理により、前記オブジェクトの各ピクセルのα値が求められることを特徴とするプログラム。
  10. 請求項乃至のいずれかにおいて、
    前記第1〜第Nのプリミティブ面に対してマッピングされるテクスチャとして、共通のテクスチャが使用されることを特徴とするプログラム。
  11. 請求項乃至10のいずれかにおいて、
    前記オブジェクトが、前記第1〜第Nのプリミティブ面に交差する第Jのプリミティブ面を含み、
    前記第Jのプリミティブ面と前記仮想カメラの向きとの相対的な方向関係に応じて、前記第Jのプリミティブ面のα値が設定されることを特徴とするプログラム。
  12. 請求項乃至11のいずれかにおいて、
    前記オブジェクトが含む前記第1〜第Nのプリミティブ面の中の少なくとも1つのプリミティブ面と仮想カメラの向きとの相対的な方向関係に応じて、前記第1〜第Nのプリミティブ面の描画順序が決定され、
    決定された描画順序で前記第1〜第Nのプリミティブ面が描画されることを特徴とするプログラム。
  13. コンピュータにより読み取り可能な情報記憶媒体であって、請求項乃至12のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
JP2001081316A 2001-03-21 2001-03-21 画像生成システム、プログラム及び情報記憶媒体 Expired - Fee Related JP4592042B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001081316A JP4592042B2 (ja) 2001-03-21 2001-03-21 画像生成システム、プログラム及び情報記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001081316A JP4592042B2 (ja) 2001-03-21 2001-03-21 画像生成システム、プログラム及び情報記憶媒体

Publications (2)

Publication Number Publication Date
JP2002279445A JP2002279445A (ja) 2002-09-27
JP4592042B2 true JP4592042B2 (ja) 2010-12-01

Family

ID=18937447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001081316A Expired - Fee Related JP4592042B2 (ja) 2001-03-21 2001-03-21 画像生成システム、プログラム及び情報記憶媒体

Country Status (1)

Country Link
JP (1) JP4592042B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6473577B2 (ja) 2014-05-21 2019-02-20 任天堂株式会社 情報処理システム、情報処理方法、及び情報処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6069780A (ja) * 1983-08-30 1985-04-20 ゼネラル・エレクトリツク・カンパニイ ビデオ対象物発生器
JPH05210745A (ja) * 1991-09-06 1993-08-20 Canon Inc 3次元グラフィックス処理方法及びその装置
JPH11339008A (ja) * 1998-05-26 1999-12-10 Matsushita Electric Ind Co Ltd 画像処理装置
JP2000197769A (ja) * 1998-12-29 2000-07-18 Namco Ltd ゲ―ム装置及び情報記憶媒体
JP2001005997A (ja) * 1999-06-24 2001-01-12 Namco Ltd 光源表示方法および装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6069780A (ja) * 1983-08-30 1985-04-20 ゼネラル・エレクトリツク・カンパニイ ビデオ対象物発生器
JPH05210745A (ja) * 1991-09-06 1993-08-20 Canon Inc 3次元グラフィックス処理方法及びその装置
JPH11339008A (ja) * 1998-05-26 1999-12-10 Matsushita Electric Ind Co Ltd 画像処理装置
JP2000197769A (ja) * 1998-12-29 2000-07-18 Namco Ltd ゲ―ム装置及び情報記憶媒体
JP2001005997A (ja) * 1999-06-24 2001-01-12 Namco Ltd 光源表示方法および装置

Also Published As

Publication number Publication date
JP2002279445A (ja) 2002-09-27

Similar Documents

Publication Publication Date Title
JP3249955B2 (ja) 画像生成システム及び情報記憶媒体
JP3777288B2 (ja) ゲームシステム及び情報記憶媒体
JP4305903B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4610748B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4187192B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3420985B2 (ja) ゲームシステム及び情報記憶媒体
JP4577968B2 (ja) ゲームシステム及び情報記憶媒体
JP4592043B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4528008B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4707078B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4743733B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4245356B2 (ja) ゲームシステム及び情報記憶媒体
JP4574058B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2001229403A (ja) ゲームシステム及び情報記憶媒体
JP4229317B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4592042B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2002216167A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4412692B2 (ja) ゲームシステム及び情報記憶媒体
JP4394211B2 (ja) 画像生成システム及び情報記憶媒体
JP4698701B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4592039B2 (ja) ゲームシステム及び情報記憶媒体
JP4458607B2 (ja) ゲームシステム及び情報記憶媒体
JP4632521B2 (ja) ゲームシステム及び情報記憶媒体
JP4728510B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006252291A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100609

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100908

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4592042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees