説明

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

【課題】様々な状況に対応した適切な半透明オブジェクトの描画を行うことができる画像生成システム、プログラム、及び情報記憶媒体を提供すること。
【解決手段】オブジェクトに対応するピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定し、前記透明度情報の値が前記基準範囲にあると判定された場合には、前記ピクセルの奥行き情報を描画せずに、前記透明度情報に基づき前記ピクセルの色情報を描画し、前記透明度情報の値が前記基準範囲にないと判定された場合には、前記ピクセルの奥行き情報を描画し、前記透明度情報に基づき前記ピクセルの色情報を描画する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成システム、プログラム、及び情報記憶媒体に関する。
【背景技術】
【0002】
従来から、オブジェクトが配置設定されるオブジェクト空間(仮想的な3次元空間)内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムにおいて、奥行き情報を参照するZバッファ法によりオブジェクトの描画を行う場合に、半透明の部分を含むオブジェクトを正しく描画するための手法として、α値(透明度情報)が所定の条件を満たすか否かを判定して描画モードを切り替える手法が知られている(例えば特許文献1参照)。
【特許文献1】特開平11−102179号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記画像生成システムでは、上記条件が予めハードウェアに実装されていたため、設定できる条件の自由度が少なく様々な状況に対応した描画モードの切り替えが行えないという問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、様々な状況に対応した適切な半透明オブジェクトの描画を行うことができる画像生成システム、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
オブジェクト空間にオブジェクトを設定するオブジェクト空間設定部と、
前記オブジェクトに対応するピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定する判定部と、
前記透明度情報の値が前記基準範囲にあると判定された場合には、前記ピクセルの奥行き情報を描画せずに、前記透明度情報に基づき前記ピクセルの色情報を描画し、
前記透明度情報の値が前記基準範囲にないと判定された場合には、前記ピクセルの奥行き情報を描画し、前記透明度情報に基づき前記ピクセルの色情報を描画する描画部と、
してコンピュータを機能させることを特徴とする。
【0007】
また本発明は上記各部を含む画像生成システムに関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0008】
本発明によれば、ピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定して、奥行き情報と色情報を描画するモードと、奥行き情報を描画せず色情報を描画するモードとを切り替える処理を行うことで、適切な半透明オブジェクトの描画を行うことができる。
【0009】
(2)また本発明に係るプログラム及び情報記憶媒体では、
前記基準範囲が、最も透明度の高い値を含む範囲であり、且つ最も透明度の低い値を含まない範囲であることを特徴とする。
【0010】
本発明によれば、半透明オブジェクトを描画した後に当該オブジェクトよりも奥に位置するオブジェクトをさらに描画する場合においても、適切な描画処理を行うことができる。
【0011】
(3)また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクトに対応する前記基準範囲を記憶する記憶部と、
してコンピュータを機能させ、
前記判定部は、
前記透明度情報の値が、前記記憶部に記憶された前記基準範囲にあるか否かを判定することを特徴とする。
【0012】
本発明において、オブジェクトに対応する基準情報は、オブジェクトが複数ある場合に、各オブジェクトに対応付けられて記憶される基準情報を含む。
【0013】
また本発明において、透明度情報の値が記憶部に記憶された前記基準範囲にあるか否かを判定するとは、オブジェクトに対応する透明度情報の値が当該オブジェクトに対応付けられて記憶された基準範囲にあるか否かを判定する場合を含む。
【0014】
本発明によれば、オブジェクト毎に最適な基準範囲を設定しておくことができ、適切な半透明オブジェクトの描画を行うことができる。
【0015】
(4)また本発明に係るプログラム及び情報記憶媒体では、
前記記憶部に記憶された前記基準範囲を変更する変更部と、
してコンピュータを機能させることを特徴とする。
【0016】
本発明によれば、描画時の状況に応じた適切な基準範囲を設定することができ、適切な半透明オブジェクトの描画を行うことができる。
【0017】
(5)また本発明に係るプログラム及び情報記憶媒体では、
前記変更部は、
仮想カメラのオブジェクト空間における位置に基づき前記記憶部に記憶された前記基準範囲を変更することを特徴とする。
【0018】
本発明によれば、仮想カメラの位置に応じた適切な基準範囲を設定することができ、適切な半透明オブジェクトの描画を行うことができる。
【0019】
(6)また本発明に係るプログラム及び情報記憶媒体では、
前記変更部は、
前記オブジェクトのオブジェクト空間における位置に基づき前記記憶部に記憶された前記基準範囲を変更することを特徴とする。
【0020】
本発明によれば、オブジェクトの位置に応じた適切な基準範囲を設定することができ、適切な半透明オブジェクトの描画を行うことができる。
【発明を実施するための最良の形態】
【0021】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0022】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0023】
操作部160は、プレーヤがプレーヤオブジェクト(移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0024】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0025】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0026】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0027】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0028】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0029】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、基準範囲変更部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0030】
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。特に、本実施形態では、記憶部170のオブジェクトデータ記憶部176に、オブジェクト空間内のオブジェクト(移動体オブジェクト、背景オブジェクト)のオブジェクトデータが記憶されており、これらのオブジェクトをオブジェクト空間に配置する処理を行う。
【0031】
特に本実施形態では、オブジェクトデータ記憶部176は、各オブジェクトに対応する基準範囲を記憶する。また基準範囲をオブジェクトに対応付けずに記憶するようにしてもよい。またオブジェクトデータ記憶部176は、各仮想カメラに対応する基準範囲を記憶するようにしてもよい。本実施形態では、基準範囲として、最も透明度の高い値を0とし最も透明度の低い値を1とすると、0以上1未満の任意の範囲(例えば0以上0.2以下の範囲)が設定され記憶される。
【0032】
移動・動作処理部112は、オブジェクト(キャラクタ、車、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。また演算したオブジェクトの移動情報や動作情報は、オブジェクトデータ記憶部176に記憶される。
【0033】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を演算して制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。演算した仮想カメラの移動情報(位置、回転角度)は、オブジェクトデータ記憶部176に記憶される。
【0034】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0035】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色(色情報)を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。フレームバッファ、VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0036】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0037】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0038】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0039】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0040】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報、深度値)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0041】
αブレンディング(α合成)は、α値(A値、透明度情報)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば通常αブレンディングの場合には下式(1)〜(3)の処理を行う。
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
【0042】
ここで、R、G、Bは、描画バッファ174に既に描画されている画像(原画像)のRGB成分であり、R、G、Bは、描画バッファ174に描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、透明度情報(半透明度情報、不透明度情報と等価)、バンプ情報などとして使用できる。
【0043】
さらに本実施形態では描画部120が、判定部122を含む。
【0044】
判定部122は、オブジェクトに対応するピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定する。具体的には、描画ピクセルの透明度情報の値(α値)がオブジェクトデータ記憶部176に記憶された基準範囲にあるか否かを判定する。
【0045】
また判定部122は、オブジェクトに対応するピクセルの透明度情報の値が、オブジェクトデータ記憶部176に記憶された当該オブジェクトに対応する基準範囲にあるか否かを判定してもよい。
【0046】
また判定部122は、ピクセルの透明度情報の値が、現在の仮想カメラに対応付けて記憶された基準範囲にあるか否かを判定してもよい。
【0047】
描画部120は、判定部122によって前記透明度情報の値が前記基準範囲にあると判定された場合には、描画ピクセルの奥行き情報(Z値)を描画せずに、前記透明度情報に基づき前記ピクセルの色情報を描画バッファ174に描画し、判定部122によって前記透明度情報の値が前記基準範囲にないと判定された場合には、前記ピクセルの奥行き情報をZバッファ179に描画し(Zバッファ179のZ値を前記ピクセルのZ値に更新し)、前記透明度情報に基づき前記ピクセルの色情報を描画バッファ174に描画する。
【0048】
基準範囲変更部(変更部)116は、オブジェクトデータ記憶部176に記憶された基準範囲を変更(更新)する。
【0049】
また基準範囲変更部116は、仮想カメラ制御部114によって演算された仮想カメラの位置(オブジェクトデータ記憶部176に記憶された仮想カメラの移動情報)に基づき、オブジェクトデータ記憶部176に記憶された基準範囲を変更してもよい。
【0050】
また基準範囲変更部116は、移動・動作処理部112によって演算されたオブジェクトの位置(オブジェクトデータ記憶部176に記憶されたオブジェクトの移動情報)に基づき、オブジェクトデータ記憶部176に記憶された基準範囲を変更してもよい。
【0051】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0052】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0053】
2.本実施形態の手法
図2は、本実施形態の処理例について説明するための図である。
【0054】
図2に示す例においては、画像210が既に描画バッファ174に描画されており、この上に画像220における領域222(ポリゴン)を描画し、さらにその上に画像240における領域242(ポリゴン)を描画する処理を行っている。
【0055】
ここで領域222における領域224のα値(透明度情報)は0.0〜0.2(値0.0に近いほどより透明になり、値1.0に近いほどより不透明になる)の範囲の値であり、領域222における領域226のα値は0.2〜1.0の範囲の値であり、領域212、242のα値は1.0である。
【0056】
また領域212のZ値(奥行き情報)は1.0(値0.0に近いほどより手前に位置し、値1.0に近いほどより奥に位置する)であり、領域242のZ値は0.5であり、領域222のZ値は0.0である。すなわちオブジェクト空間において、仮想カメラからみて奥から領域212、領域242、領域222の順で各領域が位置している。またこの例では、α値の基準範囲として0.0〜0.2(0.2以下)の範囲が設定されている。
【0057】
画像230は、描画バッファ174に描画された画像210に対して領域222を描画したときに得られる画像である。ここでは領域222のZ値が、画像210における領域212のZ値よりも小さいため、領域212と重なる部分において領域222の色が画像210に対して描画されている。但し領域222における領域224のα値が小さい(透明度が高い)ためα値に基づく半透明合成処理の結果、領域224の色として領域212の色(に近い色)が画像210に対して描画されている。また領域224のα値は上記基準範囲内であるため、領域224のZ値は画像210に対して描画されず、領域226のZ値のみが画像210に対して描画される。すなわち画像230における領域232のZ値は0.0であり、領域234(領域232以外の領域)のZ値は1.0である。
【0058】
画像250は、描画バッファ174に描画された画像230に対して領域242を描画したときに得られる画像である。ここでは領域242のZ値が、画像230における領域234のZ値よりも小さく、領域232のZ値よりも大きいため、領域234と重なる部分においては領域242の色が画像230に対して描画され、領域232と重なる部分においては領域242の色は描画されない。
【0059】
このように本実施形態では、半透明の領域を含むポリゴン(オブジェクト)を描画する場合に、当該領域のα値が基準範囲にあるか否かを判定して、基準範囲にない場合には色情報とZ値とを描画する第1の描画モードで描画し、基準範囲にある場合にはZ値を描画せずに色情報を描画する第2の描画モードで描画する。
【0060】
図3は、本実施形態の処理例と比較するための処理例である。
【0061】
画像330は、描画バッファ174に描画された画像210に対して画像220における領域222を第1の描画モード(色情報とZ値とを描画するモード)のみで描画したときに得られる画像である。ここでは領域222における領域224のZ値は領域226のZ値と同様に画像210に対して描画される。すなわち画像230における領域332のZ値は0.0であり、領域332以外の領域のZ値は1.0である。
【0062】
画像350は、描画バッファ174に描画された画像330に対して画像240における領域242を描画したときに得られる画像である。ここでは領域242のZ値が、画像330における領域332のZ値よりも大きいため、領域332と重なる部分において領域242の色は画像330に対して描画されない。従って画像350においては、領域352に領域242の色が描画されずに、領域242よりも奥にあるはずの領域212の色が残ってしまい、図2に示した画像250と比較して見た目上不自然な画像となってしまう。
【0063】
このように半透明の領域を含むオブジェクト(画像220における領域222)を描画した後に、当該オブジェクトよりも仮想カメラから見て奥に位置するオブジェクト(画像240における領域242)を描画した場合に見た目に不自然な画像となってしまう場合があるが、本実施形態によればこのような場合であっても、オブジェクトを奥に位置するオブジェクトから順にソートする処理を行ってから描画する等の処理負担をかけずに適切な描画処理を行うことができる。
【0064】
次に、本実施形態の処理によって得られた画像(元画像)に対して、元画像のZ値(奥行き情報)を用いたポストエフェクト処理を行う場合について説明する。ここでは半透明の領域を含むオブジェクト(画像220における領域222)を描画して得られた図2に示す画像230(元画像)に対して被写界深度処理を行う場合について説明する。
【0065】
被写界深度処理を行う場合には、まず元画像に対してぼかし処理を行ってぼかし画像を生成する。次に元画像のZ値に基づきぼかし画像を合成する範囲を決定し、元画像の決定した範囲にぼかし画像を合成する処理を行う。このときZ値が大きい(奥に位置する)範囲がぼかし画像を合成する範囲として決定される。
【0066】
図2に示す画像230においては、領域232のZ値が小さく(値0.0)、領域234のZ値が大きい(値1.0)ので、ぼかし画像を合成する範囲として領域234(領域232以外の領域)が決定される。従って図2に示す画像230に対して被写界深度処理を行った場合には、画像230の領域234(領域232以外の領域)にぼかし画像が合成されることになり、より手前に位置する領域232がはっきり見え、より奥に位置する領域234がぼけて見える画像が生成される。
【0067】
一方、半透明の領域を含むオブジェクト(画像220における領域222)を第1の描画モード(色情報とZ値とを描画するモード)のみで描画して得られた図3に示す画像330においては、領域332のZ値が小さく(値0.0)、領域332以外の領域のZ値が大きい(値1.0)ので、ぼかし画像を合成する範囲として領域332以外の領域が決定される。従って図3に示す画像330に対して被写界深度処理を行った場合には、画像330の領域332以外の領域にぼかし画像が合成されることになり、領域332がはっきり見え、領域332以外の領域がぼけて見える画像が生成される。従って画像330における領域212(領域222よりも奥に位置する領域)の色が描画された部分のうち、領域332に含まれない部分についてのみぼけて見え、領域332に含まれる部分についえてははっきり見える画像が生成されてしまい、図2に示す画像250に対して被写界深度処理を行う場合と比較して見た目上不自然な画像となってしまう。
【0068】
このように本実施形態によれば、半透明の領域を含むオブジェクト(画像220における領域222)が描画された元画像に対して、元画像のZ値を用いたポストエフェクト処理を行う場合にも、適切な描画処理を行うことができる。
【0069】
3.本実施形態の処理
次に、本実施形態の詳細な処理例について図4のフローチャートを用いて説明する。
【0070】
まず描画するオブジェクトを選択し、当該オブジェクトが半透明オブジェクトであるか否かを判定する(ステップS10)。具体的には記憶部に各オブジェクトに対応付けて半透明オブジェクトであるか否かを示す情報が記憶され、当該情報を参照して上記判定を行う。
【0071】
ステップS10において、描画するオブジェクトが半透明オブジェクトであると判定された場合には、当該オブジェクトに対応するピクセルのうち1のピクセルを選択し、当該ピクセルのZ値とZバッファに格納されたZ値とを比較して、当該ピクセルのZ値が手前側となるZ値か否かを判定する(ステップS12)。
【0072】
ステップS12において、当該ピクセルのZ値が手前側となるZ値であると判定した場合には、記憶部に記憶された基準範囲を参照して、当該ピクセルのα値が当該基準範囲にあるか否かを判断する(ステップS14)。このとき描画しているオブジェクトに対応付けられた基準範囲を参照するようにしてもよいし、描画で使用している仮想カメラに対応付けられた基準範囲を参照するようにしてもよい。またオブジェクトの位置、仮想カメラの位置等に基づき変更された基準範囲を参照し、上記判断を行ってもよい。
【0073】
ステップS14において、当該ピクセルのα値が基準範囲にあると判定した場合には、ステップS16の処理を行わず、ステップS18の処理に進む。またステップS14において、当該ピクセルのα値が基準範囲にないと判定した場合には、当該ピクセルのZ値をZバッファに描画する(ZバッファのZ値を当該ピクセルの値に更新する)(ステップS16)。
【0074】
次に、当該ピクセルのα値に基づきαブレンディング処理を行い、得られた色情報を描画バッファに描画する(ステップS18)。ここで色情報と当該ピクセルのα値を描画バッファに描画するようにしてもよい。
【0075】
次に、描画しているオブジェクトに対応する全てのピクセルについて処理を行ったか否かを判断し(ステップS20)、全てのピクセルについて処理を行っていない場合にはステップS12に戻り、当該オブジェクトに対応する次のピクセルを選択し、当該オブジェクトに対応する全てのピクセルについて処理が終了するまでステップS12以下の処理を繰り返す。
【0076】
ステップS20において、全てのピクセルについて処理を行ったと判断した場合には、描画すべき全てのオブジェクトについて処理を行ったか否かを判断し(ステップS22)、全てのオブジェクトついて処理を行っていない場合にはステップS10に戻り、描画する次のオブジェクトを選択し、全てのオブジェクトについて処理が終了するまでステップS12以下の処理を繰り返す。
【0077】
ステップS10において、選択したオブジェクトが半透明オブジェクトでないと判断した場合には、当該オブジェクトに対応するピクセルのうち1のピクセルを選択し、当該ピクセルのZ値とZバッファに格納されたZ値とを比較して、当該ピクセルのZ値が手前側となるZ値か否かを判定する(ステップS24)。
【0078】
ステップS24において、当該ピクセルのZ値が手前側となるZ値であると判定した場合には、当該ピクセルのα値に基づきαブレンディング処理を行い、得られた色情報を描画バッファに描画するとともに当該ピクセルのZ値をZバッファに描画する(ZバッファのZ値を当該ピクセルの値に更新する)。
【0079】
次に、描画しているオブジェクトに対応する全てのピクセルについて処理を行ったか否かを判断し(ステップS28)、全てのピクセルについて処理を行っていない場合にはステップS24に戻り、当該オブジェクトに対応する次のピクセルを選択し、全てのピクセルについて処理が終了するまでステップS24以下の処理を繰り返す。全てのピクセルについて処理を行ったと判断した場合には、ステップS22に進む。
【0080】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0081】
また本発明は種々のゲーム(レーシングゲーム、格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0082】
【図1】本実施形態の画像生成システムの機能ブロック図。
【図2】本実施形態の手法の説明図。
【図3】本実施形態の手法の説明図。
【図4】本実施形態のゲーム装置の処理例を示すフローチャート。
【符号の説明】
【0083】
10 ゲーム装置
100 処理部
110 オブジェクト空間設定部
112 移動・動作処理部
114 仮想カメラ制御部
116 基準範囲変更部
120 描画部
122 判定部
140 音生成部
160 操作部
170 記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
オブジェクト空間にオブジェクトを設定するオブジェクト空間設定部と、
前記オブジェクトに対応するピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定する判定部と、
前記透明度情報の値が前記基準範囲にあると判定された場合には、前記ピクセルの奥行き情報を描画せずに、前記透明度情報に基づき前記ピクセルの色情報を描画し、
前記透明度情報の値が前記基準範囲にないと判定された場合には、前記ピクセルの奥行き情報を描画し、前記透明度情報に基づき前記ピクセルの色情報を描画する描画部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記基準範囲が、最も透明度の高い値を含む範囲であり、且つ最も透明度の低い値を含まない範囲であることを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記オブジェクトに対応する前記基準範囲を記憶する記憶部と、
してコンピュータを機能させ、
前記判定部は、
前記透明度情報の値が、前記記憶部に記憶された前記基準範囲にあるか否かを判定することを特徴とするプログラム。
【請求項4】
請求項3において、
前記記憶部に記憶された前記基準範囲を変更する変更部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項5】
請求項4において、
前記変更部は、
仮想カメラのオブジェクト空間における位置に基づき前記記憶部に記憶された前記基準範囲を変更することを特徴とするプログラム。
【請求項6】
請求項4において、
前記変更部は、
前記オブジェクトのオブジェクト空間における位置に基づき前記記憶部に記憶された前記基準範囲を変更することを特徴とするプログラム。
【請求項7】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至6のいずれかのプログラムを記録したことを特徴とする情報記憶媒体。
【請求項8】
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
オブジェクト空間にオブジェクトを設定するオブジェクト空間設定部と、
前記オブジェクトに対応するピクセルの透明度情報の値が所与の基準範囲にあるか否かを判定する判定部と、
前記透明度情報の値が前記基準範囲にあると判定された場合には、前記ピクセルの奥行き情報を描画せずに、前記透明度情報に基づき前記ピクセルの色情報を描画し、
前記透明度情報の値が前記基準範囲にないと判定された場合には、前記ピクセルの奥行き情報を描画し、前記透明度情報に基づき前記ピクセルの色情報を描画する描画部と、
を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図4】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2008−310377(P2008−310377A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−154707(P2007−154707)
【出願日】平成19年6月12日(2007.6.12)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】