JP4656616B2 - ゲームシステム、プログラム及び情報記憶媒体 - Google Patents
ゲームシステム、プログラム及び情報記憶媒体 Download PDFInfo
- Publication number
- JP4656616B2 JP4656616B2 JP2001020477A JP2001020477A JP4656616B2 JP 4656616 B2 JP4656616 B2 JP 4656616B2 JP 2001020477 A JP2001020477 A JP 2001020477A JP 2001020477 A JP2001020477 A JP 2001020477A JP 4656616 B2 JP4656616 B2 JP 4656616B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- depth value
- image
- pixel
- depth
- 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
Links
Images
Landscapes
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、ゲームシステム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、車(オブジェクト)を操作してオブジェクト空間内で走行させ、他のプレーヤやコンピュータが操作する車と競争することで3次元ゲームを楽しむ。
【0003】
さて、従来のゲームシステムにより生成される画像は、人間の視界画像のように視点からの距離に応じてフォーカシングされた画像ではなかった。このため、画像内の全ての被写体にピントが合っているかのような表現になっていた。
【0004】
しかしながら、至近距離から遠距離までの全ての被写体にピントが合っている画像は、日常生活では見ることができない画像であるため、見た目に不自然さがあった。
【0005】
よりリアリティを追求するためには、視点とオブジェクトとの距離や視線方向などに応じてピントの度合いが調節された画像を生成することが望ましい。しかしながら、ゲーム空間内の個々のオブジェクトについて視点との距離等を計算し、各オブジェクト毎にぼやけ具合を演算することで、ぼやけた画像を生成すると、処理負荷が過大になる。
【0006】
リアルタイムに変化する視点に対応した画像を、制約されたハードウェア資源を用いて生成する必要があるゲームシステムにおいては、如何にして少ない処理負担で、現実世界の視界画像のようにフォーカシングされた画像を生成するかが重要な課題となる。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、よりリアルな画像を少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供することにある。
【0008】
本発明の他の目的は、奥行き値に応じて設定されたα値を用いたリアルな画像を、少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供することにある。
【0009】
本発明の他の目的は、現実世界の視界画像のようにフォーカシングされた画像を、少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供することにある。
【0010】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、設定されたα値に基づいて画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0011】
本発明によれば、元画像の各画素の奥行き値が、奥行き値のビットI〜ビットJにより構成される第2の奥行き値に変換される。そして、この第2の奥行き値に応じた値に各画素のα値が設定され、このα値に基づいて画像が生成される。従って、このα値を用いた種々の画像表現(例えば被写界深度の画像表現、フォグ画像の表現、デプスキューイングの画像表現等)が可能になる。
【0012】
そして本発明によれば、奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に応じた値に、各画素のα値が設定される。従って、奥行き値の最上位ビットを含む上位のビット列を第2の奥行き値として設定する手法に比べて、α値の実効的な区分け数(奥行き値のしきい値の実効的な段階数)を増やすこと可能となる。これにより、α値を多段階のしきい値で精度良く制御できるようになり、生成される画像の品質を高めることができる。
【0013】
なお、α(アルファ)値は、各画素に関連づけられて記憶される情報であり、例えば色情報以外の情報である。また、第2の奥行き値に応じた値にα値を設定する手法としては、インデックスカラー・テクスチャマッピング用のルックアップテーブルを利用する手法、仮想オブジェクトを順次描画することで仮想オブジェクトの奥側や手前側の画素のα値を順次更新する手法等の種々の手法を採用できる。
【0014】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像と該元画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成することを特徴とする。
【0015】
本発明によれば、元画像の各画素の奥行き値が、奥行き値のビットI〜ビットJにより構成される第2の奥行き値に変換される。そして、この第2の奥行き値に応じた値に各画素のα値が設定され、このα値に基づいて元画像とぼかし画像とが合成される。従って、奥行き値(第2の奥行き値)に応じて、ぼかし画像の合成比率等を変化させることが可能になり、被写界深度などの表現が可能になる。
【0016】
そして本発明によれば、α値の実効的な区分け数を増やすことができるため、仮想カメラの焦点(注視点)付近にあるオブジェクトのぼけ具合を、多段階のしきい値で精度良く制御できるようになり、生成される画像の品質を高めることができる。
【0017】
なお、元画像の合成対象となるぼかし画像の合成手法としては、種々の手法を採用できる。またα値を用いた合成処理はαブレンディングに限定されない。
【0018】
また、本発明の手法により設定されたα値を利用する画像表現は、このような被写体深度の画像表現に限定されない。
【0019】
例えば、本発明の手法により設定されたα値に基づいて、元画像の色と所与の色とをα合成(αブレンディング等)すれば、視点から遠ざかる(或いは近づく)につれて元画像の色が所与の色に近づいて行くフォグ画像の表現が可能になる。
【0020】
また、設定されたα値に基づいて、元画像の輝度や彩度を変化させてもよい。
【0021】
また、設定されたα値に基づいて、元画像と所与の他の画像とをα合成してもよい。
【0022】
或いは、設定されたα値に基づいて、元画像と元画像の変換画像(ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタなどの変換を施した画像)とをα合成してもよい。
【0023】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像をテクスチャとして設定し、該テクスチャをテクセル補間方式で仮想オブジェクトにマッピングする際に仮想オブジェクトのテクスチャ座標をシフトさせ、元画像のぼかし画像を生成することを特徴とする。
【0024】
このようにすれば、テクスチャ座標をシフトさせながらテクセル補間方式で仮想オブジェクトに元画像をマッピングするだけという簡素な処理で、元画像のぼかし画像を生成できるようになる。
【0025】
なお、テクセル補間方式とは、特には限定はされないが、テクセルの画像情報を補間してピクセルの画像情報を得る方式などであり、例えば、バイリニアフィルタ方式やトライリニアフィルタ方式などを考えることができる。
【0026】
また、仮想オブジェクトは、ポリゴンなどのプリミティブ面であることが望ましいが、立体的なオブジェクトであってもよい。また、仮想オブジェクトは画面上に表示しないことが望ましいが、表示するようにしてもよい。
【0027】
また、テクセル補間方式のテクスチャマッピングでぼかし画像を生成する場合には、テクスチャ座標を1テクセルよりも小さい値だけシフトさせることが望ましい。また、テクスチャ座標を第1のシフト方向へシフトさせてテクセル補間方式でテクスチャマッピングを行った後に、テクスチャ座標を第2のシフト方向にシフトさせてテクセル補間方式でテクスチャマッピングを行ってもよい。或いは、第1のシフト方向へのシフトと第2のシフト方向へのシフトのセットを、複数回繰り返してもよい。
【0028】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記奥行き値のビットI〜ビットJ以外のビットの値に応じて、前記第2の奥行き値を所与の値にクランプすることを特徴とする。
【0029】
このようにすれば、奥行き値のビットI〜ビットJ以外のビットに1が立った場合等においても、矛盾の無い画像を生成できる。なお、所与の値としては、第2の奥行き値の最大値や最小値、或いは第2の奥行き値の上位のビット列を1にした値など、種々の値を考えることができる。
【0030】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記奥行き値を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定し、前記ルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を前記第2の奥行き値に変換することを特徴とする。
【0031】
このようにすれば、ルックアップテーブルの変換特性を変更するだけという少ない処理負担で、第2の奥行き値を所与の値にクランプするなどの多様な変換処理を実現できるようになる。
【0032】
なお、仮想オブジェクトは、ポリゴンなどのプリミティブ面であることが望ましいが、立体的なオブジェクトであってもよい。また、仮想オブジェクトは画面上に表示しないことが望ましいが、表示するようにしてもよい。
【0033】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記奥行き値のビットM〜ビットNを、インデックスカラー・テクスチャマッピング用の第1のルックアップテーブルのインデックス番号として設定し、前記第1のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第3の奥行き値に変換し、前記奥行き値のビットK〜ビットL(K≧I≧L>M≧J≧N)を、インデックスカラー・テクスチャマッピング用の第2のルックアップテーブルのインデックス番号として設定し、前記第2のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第4の奥行き値に変換し、前記第3、第4の奥行き値に基づいて前記第2の奥行き値を求めることを特徴とする。
【0034】
このようにすれば、奥行き値の所定範囲のビット列(例えば0〜7、8〜15、16〜23、24〜31ビット)しか取り出せないような制限がある場合においても、奥行き値の任意のビットI〜Jから構成される第2の奥行き値を得ることができる。これにより、α値の実効的な区分け数(奥行き値のしきい値の実効的な段階数)を増やすこと可能となり、生成される画像の品質を高めることができる。
【0035】
また本発明は、画像生成を行うゲームシステムであって、所与の画像情報のビットM〜ビットNを、インデックスカラー・テクスチャマッピング用の第1のルックアップテーブルのインデックス番号として設定し、前記第1のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記画像情報を第3の画像情報に変換する手段と、前記画像情報のビットK〜ビットLを、インデックスカラー・テクスチャマッピング用の第2のルックアップテーブルのインデックス番号として設定し、前記第2のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記画像情報を第4の画像情報に変換する手段と、前記第3、第4の画像情報に基づいて、前記画像情報のビットI〜ビットJ(K≧I≧L>M≧J≧N)により構成される第2の画像情報を求める手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0036】
本発明によれば、画像情報の所定範囲のビット列(例えば0〜7、8〜15、16〜23、24〜31ビット)しか取り出せないような制限がある場合においても、画像情報の任意のビットI〜Jから構成される第2の画像情報を得ることができる。
【0037】
また本発明によれば、ゲームシステム(画像生成システム)が元々有しているインデックスカラー・テクスチャマッピングの機能を有効利用して、画像情報を第2の画像情報に変換できる。従って、画像情報の変換処理を、例えば新たなハードウェアを追加することなく、高速に実行できるようになり、全表示画面分の画像情報の変換も容易となる。
【0038】
なお、画像情報や第2の画像情報は、例えば、描画領域(フレームバッファ、別バッファ等)に描画されている情報であり、色情報、α値又は奥行き値などを含む。
【0039】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とする。
【0040】
このようにすれば、全表示画面分の元画像の奥行き値を例えば1回(或いは数回)のテクスチャマッピングでα値に変換できるようになる。
【0041】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とする。
【0042】
このようにすれば、仮想オブジェクトを描画する領域の大きさを小さくすることが可能になり、記憶部の使用記憶容量を節約できる。
【0043】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0044】
1.構成
図1に、本実施形態のゲームシステム(画像生成システム)のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【0045】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0046】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【0047】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0048】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0049】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0050】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0051】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0052】
携帯型情報記憶装置194は、プレーヤの個人データ(セーブデータ)などが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0053】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0054】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0055】
処理部100は、ゲーム処理部110、画像生成部130、音生成部150を含む。
【0056】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部160からの操作データや、携帯型情報記憶装置194からの個人データや、ゲームプログラムなどに基づいて行う。
【0057】
画像生成部130は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する。また、音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、音声などの音を生成し、音出力部192に出力する。
【0058】
なお、ゲーム処理部110、画像生成部130、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0059】
ゲーム処理部110は、移動・動作演算部112を含む。
【0060】
ここで移動・動作演算部112は、車などのオブジェクトの移動情報(位置データ、回転角度データ)や動作情報(オブジェクトの各パーツの位置データ、回転角度データ)を演算するものであり、例えば、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【0061】
より具体的には、移動・動作演算部112は、オブジェクトの位置や回転角度を例えば1フレーム(1/60秒)毎に求める処理を行う。例えば(k−1)フレームでのオブジェクトの位置をPMk-1、速度をVMk-1、加速度をAMk-1、1フレームの時間を△tとする。するとkフレームでのオブジェクトの位置PMk、速度VMkは例えば下式(1)、(2)のように求められる。
【0062】
PMk=PMk-1+VMk-1×△t (1)
VMk=VMk-1+AMk-1×△t (2)
画像生成部130は、ジオメトリ処理部132、インデックス番号設定部134、描画部140を含む。
【0063】
ここで、ジオメトリ処理部132は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元演算)を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標などの形状データ、或いは頂点テクスチャ座標、輝度データ等)は、記憶部170の主記憶領域172に保存される。
【0064】
インデックス番号設定部134は、元画像の画像情報(例えば透視変換後の画像の情報)を、LUT(ルックアップテーブル)記憶部178に記憶されるインデックスカラー・テクスチャマッピング用のLUTのインデックス番号として設定するための処理を行う。ここで、画像情報としては、例えば、色情報(RGB、YUV等)、α値(各画素に関連づけられて記憶される情報であり色情報以外のプラスアルファの情報)、奥行き値(Z値)等、種々の情報を考えることができる。
【0065】
そして本実施形態では、元画像の各画素の奥行き値がインデックス番号として設定されたルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行うことで、元画像の各画素の奥行き値に応じた値に各画素のα値を設定する。これにより、いわゆる被写界深度の表現やフォグ画像の表現などが可能になる。
【0066】
なお、仮想カメラの焦点から遠い画素ほどα値が大きくなるように(広義には、ぼかし画像の合成比率が高くなるように)、LUT(ルックアップテーブル)における各画素の奥行き値(インデックス番号)とα値との対応関係を設定することが望ましい。また、LUTにおける各画素の奥行き値とα値との対応関係を変化させることで、被写界深度の範囲やぼかしエフェクトの強弱を可変に制御してもよい。
【0067】
描画部140は、ジオメトリ処理後のオブジェクト(モデル)を、描画領域174(フレームバッファ、別バッファ等のピクセル単位で画像情報を記憶できる領域)に描画するための処理を行うものであり、テクスチャマッピング部142、α合成部144、陰面消去部146を含む。
【0068】
ここでテクスチャマッピング部142は、テクスチャ記憶部176に記憶されるテクスチャをオブジェクトにマッピングするための処理(オブジェクトにマッピングするテクスチャを指定する処理、テクスチャを転送する処理等)を行う。この場合、テクスチャマッピング部142は、LUT記憶部178に記憶されるインデックスカラー・テクスチャマッピング用のLUT(ルックアップテーブル)を用いたテクスチャマッピングを行うことができる。
【0069】
そして本実施形態では、テクスチャマッピング部142が、元画像の画像情報がインデックス番号として設定されたLUTを用いて、仮想オブジェクト(表示画面サイズのポリゴン、分割ブロックサイズのポリゴン等)に対してテクスチャマッピングを行う。これにより、奥行き値(Z値)をNビット化する処理や、奥行き値をα値に変換する処理や、種々の画像変換処理(ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ、セピアフィルタ)を少ない処理負担で実現できるようになる。
【0070】
また本実施形態では、元画像とα合成(αブレンディング、α加算、α減算、半透明処理等)されるぼかし画像(最もぼけた画像)の生成処理を、テクセル補間方式(バイリニアフィルタ方式、トライリニアフィルタ方式)のテクスチャマッピングを有効利用して実現している。
【0071】
即ち、テクスチャマッピング部142は、テクスチャとして設定された元画像を、テクスチャ座標を例えば1ピクセル(テクセル)よりも小さい値だけシフトさせながら(例えば元画像の描画位置に基づき得られるテクスチャ座標からシフトさせながら)、テクセル補間方式で仮想オブジェクト(ぼかし領域と同一形状のオブジェクト)にマッピングする。このようにすれば、テクスチャ座標をシフトさせるだけという簡素な処理で、元画像の合成対象となるぼかし画像を生成できるようになる。
【0072】
α合成部144は、元画像とそのぼかし画像とを、描画領域174(フレームバッファ等)の各画素に対して設定されたα値(A値)に基づいて合成する処理を行う。例えばα合成がαブレンディングである場合には、下式のように元画像とぼかし画像とが合成される。
【0073】
RQ=(1−α)×R1+α×R2 (3)
GQ=(1−α)×G1+α×G2 (4)
BQ=(1−α)×B1+α×B2 (5)
ここで、R1、G1、B1は、描画領域174に既に描画されている元画像の色(輝度)のR、G、B成分であり、R2、G2、B2は、ぼかし画像の色のR、G、B成分である。またRQ、GQ、BQは、αブレンディングにより生成されるR、G、B成分である。
【0074】
なお、元画像とα合成(αブレンディング、α加算、α減算、半透明処理等)される画像はぼかし画像に限定されない。例えば、元画像と他の画像とをα合成してもよい。或いは、元画像と元画像の変換画像(ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ或いはセピアフィルタなどの変換を施した画像)とをα合成してもよい。
【0075】
陰面消去部146は、Z値(奥行き値)が格納されるZバッファ179(Zプレーン)を用いて、Zバッファ法のアルゴリズムにしたがった陰面消去を行う。本実施形態では、このZバッファ179に書き込まれたZ値をα値に変換し、そのα値に基づいて元画像とぼかし画像の合成処理を行っている。
【0076】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0077】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム装置、携帯電話)を用いて生成してもよい。
【0078】
2.本実施形態の特徴
2.1 インデックスカラー・テクスチャマッピングの利用
さて、ゲームシステムにおいて画像を生成する際には、モニタ(表示部)の非線形特性を補正するために、画像に対してガンマ補正と呼ばれる変換を施すことが望ましい。
【0079】
そして、このようなガンマ補正を実現する手法としては、以下に説明する第1、第2の手法がある。
【0080】
第1の手法では、図2(A)に示すように、メインメモリ802上にガンマ補正用のLUT(ルックアップテーブル)を用意しておく。そして、CPU800(CPU上で動作するソフトウェア)は、VRAM806内にあるフレームバッファ808から、元画像の各画素の色情報(RGB)を読み出す。そして、読み出された色情報に基づいてガンマ補正用LUTを参照し、ガンマ補正後の色情報を得る。次に、得られたガンマ補正後の色情報をフレームバッファの対応する画素に書き戻す。そして、以上の処理を、元画像の全ての画素に対して行う。
【0081】
一方、第2の手法では、図2(B)に示すように、CPU810の制御下で動作する描画プロセッサ812の後段に、ハードウェアによりガンマ補正を実現するガンマ補正回路814を設ける。そして、描画プロセッサ812により生成された色情報に対して、ガンマ補正回路814がガンマ補正を施し、モニタ816に出力する。
【0082】
しかしながら、図2(A)の第1の手法では、フレームバッファ808からの色情報の読み出し、ガンマ補正用LUT804の参照、ガンマ補正用LUT804からの色情報の読み出し、読み出した色情報のフレームバッファ808への書き戻しなどの全ての処理を、CPU800上で動作するソフトウェアが行うことになる。従って、処理の高速化を図れず、表示画面の全画素に対するガンマ補正を、1フレーム内で完了するのは困難となる。また、CPU800の処理負荷が非常に重くなり、他の処理に悪影響を及ぼすという問題も招く。
【0083】
一方、図2(B)の第2の手法では、専用のハードウェアであるガンマ補正回路814が使用されるため、高速なガンマ補正が可能になる。従って、表示画面の全画素に対するガンマ補正を1フレーム内で完了することも容易となる。また、CPU810の処理負荷も少ないため、他の処理に悪影響が及ぶ問題も解決できる。
【0084】
しかしながら、図2(B)の第2の手法では、専用のハードウェアであるガンマ補正回路814が別途必要になってしまう。従って、ゲームシステムが大規模化し、製品コストの増加の問題を招く。
【0085】
特に、家庭用ゲームシステムにおいては、製品の普及化を図るために、低コスト化が厳しく要求されており、ほとんどの家庭用ゲームシステムでは、図2(B)に示すようなガンマ補正回路がハードウェアとして設けられていない。従って、ガンマ補正を実現するためには、図2(A)のような第1の手法を採用せざるを得ない。
【0086】
ところが、前述のように第1の手法では、1フレーム内で全表示画面分のガンマ補正を完了するのは困難であり、他の処理にも悪影響を及ぼす。従って、家庭用ゲームシステムにおいては、ガンマ補正の実施自体を断念せざるを得なかった。
【0087】
そこで、本出願の発明者は、インデックスカラー・テクスチャマッピングにおいて使用されるルックアップテーブルLUTの存在に着目した。
【0088】
即ち、インデックスカラーテクスチャーマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、図3のA1に示すように、実際の色情報(RGB)ではなくインデックス番号が、テクスチャの各テクセルに関連づけて記憶される。また、図3のA2に示すように、インデックスカラー・テクスチャマッピング用のLUT(カラーパレット)には、インデックス番号により指定される色情報が記憶される。そして、オブジェクトに対してテクスチャマッピングを行う際には、テクスチャの各テクセルのインデックス番号に基づいてLUTを参照し、対応する色情報をLUTから読み出し、読み出された色情報をフレームバッファに描画する。
【0089】
このようなインデックスカラーモードのテクスチャマッピングでは、LUTを用いない通常モードのテクスチャマッピングに比べて、使用できる色数は少なくなる(例えば256色)。しかしながら、テクスチャ記憶部に実際の色情報(例えば16ビットの色情報)を記憶する必要が無くなるため、テクスチャ記憶部の使用記憶容量を大幅に節約できる。
【0090】
本実施形態は、このようなインデックスカラー・テクスチャマッピングを通常とは異なる形態で利用している点に特徴がある。
【0091】
即ち、まず図4のB1に示すように、フレームバッファ(広義には描画領域)に描画されている元画像の各画素の画像情報(例えば色情報)を、ガンマ補正用のルックアップテーブルLUTのインデックス番号として設定する(インデックス番号とみなす)。そしてB2に示すように、元画像の画像情報がインデックス番号として設定されたLUTを用いて、仮想オブジェクト(例えば表示画面サイズのポリゴン)に対してインデックスカラー・テクスチャマッピングを行い、元画像の画像情報を変換する。そしてB3に示すように、変換後の画像情報を、フレームバッファ(描画領域)などに描き戻す。
【0092】
以上のようにして本実施形態では、図5(A)に示すような元画像から、図5(B)に示すようなガンマ補正が施された画像を得ることに成功している。即ち図5(B)の画像では、図5(A)に比べて、よりコントラストのはっきりした画像になっている。
【0093】
例えば図2(A)の第1の手法では、元画像の色情報の読み出し、ガンマ補正用LUTの参照、色情報のフレームバッファへの書き戻しなどの全ての処理をCPU上で動作するソフトウェアが行うことになるため、処理の高速化を図れないと共に、CPUの処理負荷も過大になる。
【0094】
これに対して本実施形態では、インデックスカラー・テクスチャマッピングを有効利用してガンマ補正を実現しており、このインデックスカラー・テクスチャマッピングは、専用のハードウェアである描画プロセッサ(描画部)により高速に実行される。従って本実施形態によれば、図2(A)の第1の手法に比べて高速にガンマ補正を実行でき、全表示画面分のガンマ補正を1フレーム(例えば1/60秒、1/30秒)内で完了することも容易となる。
【0095】
また、インデックスカラー・テクスチャマッピングは、メインプロセッサ(CPU)とは独立に動作する描画プロセッサにより実行できるため、メインプロセッサ(CPU)の処理負荷の増加も最小限に抑えることができる。従って、ガンマ補正の実行が要因となって他の処理に悪影響が及ぶ事態も防止できる。
【0096】
また、従来のゲームシステムでは、描画プロセッサの処理能力はそれほど高くなかった。従って、フレームバッファへの元画像の描画と、表示画面サイズのポリゴンの描画を、1フレーム内で完了させることは難しかった。
【0097】
しかしながら、ゲームシステムにおいて、描画プロセッサの処理能力の向上は、他の回路ブロックの処理能力の向上に比べて著しく大きく、非常に高いフィルレート(1秒間にレンダリングできるテクセル数)を持つ描画プロセッサがゲームシステムに使用されるようになってきた。従って、フレームバッファへの元画像の描画と、表示画面サイズのポリゴンの描画を、1フレーム内で完了させることも容易となり、インデックスカラー・テクスチャマッピングを有効利用したガンマ補正も無理なく実現できるようになってきた。
【0098】
また図2(B)の第2の手法では、専用のハードウェアであるガンマ補正回路が別途必要になり、ゲームシステムの高コスト化を招く。また、このようなガンマ補正回路を元々有しない家庭用ゲームシステムなどでは、図2(B)に示す第2の手法を実現することはできず、図2(A)の手法を採用せざるを得なかった。
【0099】
これに対して本実施形態では、インデックスカラー・テクスチャマッピングを有効利用してガンマ補正を実現しており、このインデックスカラー・テクスチャマッピングは、描画プロセッサが元々持っているハードウェアにより実行される。従って本実施形態によれば、図2(B)のようなガンマ補正回路を新たに付加する必要がなく、ゲームシステムが高コスト化してしまう事態を防止できる。また、ガンマ補正回路を元々有していない家庭用ゲームシステムにおいても、ハードウェアによる高速なガンマ補正を実現できるようになる。
【0100】
なお、図4では表示画面サイズのポリゴンにテクスチャマッピングしてガンマ補正(ビデオフィルタ)を実現しているが、表示画面を分割したブロックのサイズのポリゴンにテクスチャマッピングするようにしてもよい。
【0101】
即ち、図6のC1に示すように、フレームバッファ上の元画像(表示画面)を複数のブロックに分割し、C2に示すように、各ブロックの画像を、LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする。そして、得られた分割ブロックサイズの画像をフレームバッファ(描画領域)に描き戻す。
【0102】
或いは、透視変換後(スクリーン座標系への変換後)のオブジェクトの画像の全部又は一部を内包し、透視変換後のオブジェクトの大きさに応じてその大きさが変化するようなポリゴン(仮想オブジェクト)を生成し、そのポリゴンにテクスチャマッピングする。
【0103】
このようにすれば、例えばテクスチャマッピングされたポリゴンを別バッファに一時的に描画するような場合に、VRAM上での別バッファの占有領域を小さくできる。
【0104】
即ち、図4のように表示画面サイズのポリゴンにテクスチャマッピングすると、この表示画面サイズのポリゴンを一時的に描画するために、表示画面サイズの別バッファをVRAM上に確保しなければならず、他の処理に支障を来すおそれがある。
【0105】
図6のように、分割ブロックサイズのポリゴンにテクスチャマッピングするようにすれば、VRAM上には分割ブロックサイズの別バッファを用意すれば済むため、別バッファの占有領域を小さくできる。従って、限られたハードウェア資源を有効利用することが可能になる。
【0106】
2.2 マスク処理
さて、ガンマ補正では、1つの入力値(RIN、GIN又はBIN)に対して1つの値(ROUT、GOUT又はBOUT)が出力されるようなLUTが必要になる。
【0107】
ところが、図3に示すインデックスカラー・テクスチャマッピング用のLUTは、元々、ガンマ補正用に設計されたものではないため、1つ入力値(インデックス番号)に対して、複数の値(例えばROUT、GOUT、及びBOUT)が出力されてしまう。従って、このLUTの不整合を解決しなければならないという課題がある。
【0108】
そこで本実施形態では、元画像の画像情報(R、G、B、Z値又はα値等)をLUTのインデックス番号として設定する場合において、変換により得られた画像情報のうち必要な画像情報のみが描画領域(フレームバッファ、別バッファ)に描画され、他の画像情報が描画されないようにするためのマスク処理を行っている。
【0109】
より具体的には、図7のD1に示すように、元画像のRプレーンの値をインデックス番号に設定して、LUTを用いたテクスチャマッピングを行うと、R(ROUT)、G(GOUT)、B(BOUT)という3つプレーンの値が出力される。そして、この場合には、D2に示すように、出力されたRプレーンの値のみを描画領域に描画し、Gプレーン、Bプレーンの値についてはマスクして描画領域に描画されないようにする。
【0110】
また、図7のD3に示すように、元画像のGプレーンの値をインデックス番号に設定してテクスチャマッピングを行った場合には、D4に示すように、出力されたGプレーンの値のみを描画領域に描画し、Rプレーン、Bプレーンの値についてはマスクして描画領域に描画されないようにする。
【0111】
また、図7のD5に示すように、元画像のBプレーンの値をインデックス番号に設定してテクスチャマッピングを行った場合には、出力されたBプレーンの値のみを描画領域に描画し、Rプレーン、Gプレーンの値についてはマスクして描画領域に描画されないようにする。
【0112】
以上のようにすることで、元々はガンマ補正用に設計されていないインデックスカラー・テクスチャマッピング用のLUTを用いながらも、少ない処理負荷で、元画像の画像変換処理を実行できるようになる。
【0113】
2.3 Z値、α値への利用
以上では、インデックスカラー・テクスチャマッピング用のLUTに基づき出力される色情報R、G、Bを利用する場合について説明した。
【0114】
しかしながら、インデックスカラー・テクスチャマッピング用のLUTに基づき出力されるα値(A値。画素に関連づけて設定される色情報以外の情報)を利用するようにしてもよい。
【0115】
例えば図8に示すように、Rプレーン(又はG、B)の値をインデックス番号として設定して、LUTを用いたテクスチャマッピングを行い、α(αOUT)プレーンを生成する。そして、生成されたαプレーンを用いて、マスク処理などを行うようにする。
【0116】
即ち、例えばR値が0〜127の時にはα値(αOUT)が0になり、R値が128〜255の時にはα値が255になるようにα値が設定されたLUTを使用する。そして、α値が255よりも小さい画素についてはマスク処理を行わず、α値が255の画素についてはマスク処理を行うようにする。このようにすれば、R値が128以上の画素に対してだけマスク処理が行われるようになり、各画素のR値の大小に応じたマスク処理を行うことができるようになる。
【0117】
なお、生成されたαプレーンの値をα合成の係数(透明度、半透明度、不透明度)として使用してもよい。
【0118】
また、LUTのインデックス番号として設定される画像情報は色情報に限定されない。即ち、描画領域(VRAM)上にあり、LUTのインデックス番号として設定できる画像情報であればよい。
【0119】
例えば図9に示すように、Z値(奥行き値)をLUTのインデックス番号として設定するようにしてもよい。
【0120】
そして、この場合には、Z値をインデックス番号に設定してインデックスカラー・テクスチャマッピングを行うことで得られるαプレーンの値を、例えばα合成の係数として使用するようにする。このようにすることで、Z値に応じた値のα値を設定できるようになり、ぼかし画像を用いた被写界深度などの表現が可能になる。
【0121】
即ち図9に示すようなLUTを用いたテクスチャマッピングを行うことで、図10のF1に示すように、元画像の各画素A、B、C、DのZ値ZA、ZB、ZC、ZDに応じた値に各画素のα値αA、αB、αC、αDを設定する。そして、例えば図10のF2に示すようなαプレーンを生成する。より具体的には、仮想カメラ10の焦点(注視点)から遠い画素(焦点とのZ値の差が大きい画素)ほど、例えば大きなα値を設定する。これにより、仮想カメラ10の焦点から遠い画素ほど、ぼかし画像の合成比率が高くなる。
【0122】
そして、図10のF3に示すように、生成されたαプレーン(各画素に設定されたα値)に基づいて、元画像とぼかし画像のα合成(αブレンディング等)を行う。なお、図11(A)に元画像の例を示し、図11(B)に、そのぼかし画像の例を示す。
【0123】
このように、Z値(奥行き値)に応じて設定されたα値に基づき元画像(図11(A))とぼかし画像(図11(B))のα合成を行うことで、例えば、仮想カメラの焦点(ピントが合っている点として設定される点)から遠くなるほどぼけて見える画像を生成できるようになり、いわゆる被写界深度の表現が可能になる。これにより、画面内の全ての被写体にピントが合っていた従来のゲーム画像とは異なり、現実世界の視界画像のように視点からの距離に応じてフォーカシングされたリアルで自然なゲーム画像を生成できる。この結果、プレーヤの仮想現実感を格段に向上できる。
【0124】
例えば図12に、Z値に応じたα値の設定の一例を示す。なお、図12では、α値は、その大きさが1.0以下になるように正規化されている。
【0125】
そして図12では、Z値Z1〜Z4、Z1’〜Z4’(しきい値)により領域AR0〜AR4、AR1’〜AR4’の区分けが行われる。そして、これらの領域AR0〜AR4、AR1’〜AR4’に対して、α値α0〜α4、α1’〜α4’が設定される。
【0126】
例えば、Z1〜Z2の間の領域AR1にある画素については、そのα値がα1に設定され、Z2〜Z3の間の領域AR2にある画素については、そのα値がα2に設定される。また、Z1’〜Z2’の間の領域AR1’にある画素については、そのα値がα1’に設定され、Z2’〜Z3’の間の領域AR2’にある画素については、そのα値がα2’に設定される。
【0127】
そして、各領域に設定されるα値には例えば以下の関係式が成り立つ。
【0128】
α0<α1 <α2 <α3 <α4 (6)
α0<α1’<α2’<α3’<α4’ (7)
これらの式(6)、(7)から明らかなように、仮想カメラ10の焦点(注視点)から遠いほどα値が大きくなっている。即ち、仮想カメラ10の焦点とのZ値の差が大きい画素ほど、ぼかし画像の合成比率が高くなるように、α値が設定されている。
【0129】
このようにα値を設定することで、仮想カメラの焦点から遠くなるほどぼけて見える画像を生成でき、いわゆる被写界深度の表現が可能になる。
【0130】
しかも本実施形態では、LUTを用いた1回のテクスチャマッピングで、各画素のZ値をα値に変換できるため、処理負担が非常に軽いという利点がある。
【0131】
即ち、LUTを用いないα値の設定手法の例として、図13(A)、(B)、(C)に示す手法が考えられる。
【0132】
この手法では図13(A)に示すように、まず、Z値がZ1に設定される仮想オブジェクトOB1(ポリゴン)を、フレームバッファに描画することで、仮想オブジェクトOB1を基準に奥側にある画素のα値を更新する。即ち、Z値に基づく陰面消去手法を有効利用して、OB1よりも奥側にある画素のα値を更新する。
【0133】
次に、図13(B)に示すように、Z値がZ2に設定される仮想オブジェクトOB2をフレームバッファに描画することで、仮想オブジェクトOB2を基準に奥側にある画素のα値を更新する。同様に、図13(C)に示すように、Z値がZ3に設定される仮想オブジェクトOB3をフレームバッファに描画することで、仮想オブジェクトOB3を基準に奥側にある画素のα値を更新する。
【0134】
このような手法を採用すれば、領域AR1にある画素のα値をα1に設定し、領域AR2にある画素のα値をα2に設定し、領域AR3にある画素のα値をα3に設定できるようになる。即ち、LUTを用いなくても、各画素のZ値に応じた値に各画素のα値を設定できる。
【0135】
しかしながら、この手法では、Z値のしきい値の段階数分だけ、仮想オブジェクトの描画処理が必要になる。例えば図12の場合は8回の描画処理が必要になる。従って、この手法には描画処理の負担が重くなるという欠点がある。一方、描画処理の負担を軽減するためにZ値のしきい値の段階数を減らすと、今度は、Z値のしきい値の境界が表示画面上で帯状に見えてしまう事態が生じ、表示品質が低下する。
【0136】
LUTを用いてZ値をα値に変換する本実施形態の手法によれば、LUTを用いた1回のテクスチャマッピングで、各画素のZ値をα値に一斉に変換できる。例えば、LUTのインデックス番号(エントリー)のビット数が8ビットの場合には、LUTを用いた1回のテクスチャマッピングで、256段階のZ値のしきい値で区分けされるα値を得ることができる。従って、Z値のしきい値の境界が表示画面上で帯状に見えてしまう事態を防止でき、少ない処理負担で高品質な画像を生成できる。
【0137】
2.4 Z値の8ビット化
さて、ゲームシステムにおいては、陰面消去の精度を高めるために、Z値のビット数は例えば24ビット、32ビットというように非常に多い。
【0138】
一方、インデックスカラー・テクスチャマッピング用のLUTのインデックス番号のビット数(LUTのエントリーのビット数)は、例えば8ビットというようにZ値のビット数に比べて少ない。
【0139】
従って、図9のようにインデックスカラー・テクスチャマッピング用のLUTを用いてZ値をα値に変換する場合には、その前処理として、Z値を、LUTのインデックス番号のビット数と同じビット数のZ値(以下、Z2値と呼ぶ)に変換する処理が必要になる。即ち、LUTのインデックス番号のビット数が8ビットである場合には、Z値を8ビットのZ2値(第2の奥行き値)に変換する処理が必要になる。
【0140】
この場合に、矛盾の無いZ2値を得るためには、Z値の最上位ビットを含む上位の8ビットをビットセレクトしたものをZ2値とする必要がある。即ち図14において、ビット23(最上位ビット)〜16の8ビットをビットセレクトして、Z2値として設定する。
【0141】
しかしながら、このようにZ値の上位ビット23〜16の8ビットをZ2値に設定し、このZ2値をLUTを用いてα値に変換すると、α値の区分け数が少なくなってしまうということが判明した。
【0142】
例えば図15のように、Z値が4ビットであり、Z値の上位の2ビットをセレクトしてZ2値に設定し、このZ2値をα値に変換した場合を考える。この場合には、Z=0〜15の全範囲において4段階のしきい値でα値が区分けされることになる。
【0143】
しかしながら、図15のOB1のようにスクリーンSC(透視変換面)の手前にあるオブジェクトについては、通常はニアクリップされてしまう。そして、例えば図15においてZ=10〜15の範囲にあるオブジェクトがニアクリップされるような場合には、Z値の最上位ビットに1が立つことは希となる。また、OB2のようにスクリーンSCの近くにあるオブジェクトについては、何れにせよ最もぼけた画像になるため、ぼけ具合を精度良く制御する必要がない。従って、図15のG1に示す部分における2段階の区分けは無駄になる。
【0144】
そこで本実施形態では図14に示すように、元画像の各画素のZ値(奥行き値)を、Z値の最上位ビットよりも下位のビットI〜J(例えばビット19〜12)により構成されるZ2値(第2の奥行き値)に変換し、このZ2値を、インデックスカラー・テクスチャマッピング用のLUTのインデックス番号として設定してテクスチャマッピングを行い、各画素のα値を求める。そして、この求められた各画素のα値に基づいて、元画像とぼかし画像をα合成する。
【0145】
このようにすれば図16に示すように、仮想カメラ10の焦点(注視点)付近にあるオブジェクト(例えばOB3、OB4)についてだけ、多段階(図16では4段階)のしきい値で区分けされたα値により、ぼけ具合を精度良く制御できるようになる。従って、生成される画像の品質を高めることができる。
【0146】
そして本実施形態では、Z値のビットI〜J以外のビットの値に応じて、Z2値を所与の値にクランプするようにしている。より具体的には図16に示すように、Z値の上位のビットに例えば1が立った場合には、Z2値を最大値(広義には所与の値)にクランプする。このようにすれば、OB1やOB2のように、ぼけ具合を精度良く制御する必要がないオブジェクトについては、Z2値が最大値に設定され、最もぼけた画像に設定される。従って、Z値を、そのビットI〜Jにより構成されるZ2値に変換しても、矛盾の無い画像を生成できる。
【0147】
2.5 LUTを利用したZ値の変換処理
さて本実施形態では、図14で説明したZ値をZ2値に変換する処理(8ビット化処理)を、インデックスカラー・テクスチャマッピング用のLUTを利用したテクスチャマッピングにより実現している。即ち、Z値をLUTのインデックス番号として設定し、そのLUTを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、Z値をZ2値に変換する。
【0148】
例えば図17に示すように24ビットのZ値をLUTを用いて変換する場合を考える。この場合には図17のH1に示すように、Z値のビット15〜8(ビットM〜N)をLUT1(第1のルックアップテーブル)のインデックス番号に設定し、LUT1を用いてインデックスカラー・テクスチャマッピングを行い、Z値をZ3値(第3の奥行き値)に変換する。
【0149】
次に図17のH2に示すように、Z値のビット23〜16(ビットK〜L)をLUT2(第2のルックアップテーブル)のインデックス番号に設定し、LUT2を用いてインデックスカラー・テクスチャマッピングを行い、Z値をZ4値(第4の奥行き値)に変換する。
【0150】
そして図17のH4に示すようにZ3値とZ4値とに基づいてZ2値を求め、H5に示すようにこのZ2値をLUT3(第3のルックアップテーブル)を用いてα値に変換する。
【0151】
より具体的には、LUT1の変換により得られたZ3値を描画領域(フレームバッファ、別バッファ)に描画する。その後、LUT2の変換により得られたZ4値を描画領域に描画する。この際、Z3値の下位の4ビット(有効ビット)をマスクして、これらのビットにZ4値が上書きされないようにして、Z2値を求める。
【0152】
図17の手法を採用することで、Z値の任意の8ビット(広義には任意のビットI〜J)を取り出すことが可能になる。
【0153】
即ち、LUTのインデックス番号に設定するためにZ値の8ビットを取り出そうとした場合に、Z値のビット23〜16、15〜8又は7〜0というように所定範囲の8ビットしか取り出せない場合がある。
【0154】
一方、Z値の中のどの8ビットを取り出すかは、図14、図15で説明したように、ニアクリップの範囲や、仮想カメラの焦点(注視点)の位置などに応じて決められる。
【0155】
従って、Z値のビット23〜16、15〜8又は7〜0というように所定範囲の8ビットしか取り出せないと、仮想カメラの焦点付近で最も精度良くぼけ具合を制御できるような適切なα値を得ることができない。
【0156】
例えば、Z値のビット19〜12をZ2値として取り出せば、α値の実効的な区分け数(Z値のしきい値数)を256段階にできる場合を考える。このような場合に、Z値のビット23〜16や15〜8しか取り出せないと、α値の実効的な区分け数が例えば16段階になってしまい、画質が低下する。
【0157】
これに対して、図17に示す手法を採用すれば、上記のようにZ値の所定範囲の8ビットしか取り出せないような場合にも、Z値の任意のビットI〜JをZ2値として取り出すことができるようになる。従って、ニアクリップの範囲や、仮想カメラの焦点の位置などに応じて、α値を区分けするZ値のしきい値の設定を最適なものにすることが可能になり、より高品質な画像を生成できるようになる。
【0158】
なお図18、図19、図20(A)に、LUT1、LUT2、LUT3の具体例を示す。また図20(B)に、Z2値をα値に変換するLUT3の変換特性曲線の例を示す。
【0159】
図18に示すようにLUT1は、インデックス番号として入力されたZ値のビット15〜8(ビットM〜N)を4ビットだけ右にシフトする変換を行う。例えば0x10(16進数表現)は0x01に変換され、0x20は0x02に変換される。
【0160】
また図19に示すようにLUT2は、インデックス番号として入力されたZ値のビット23〜16(ビットK〜L)を4ビットだけ左にシフトする変換を行う。例えば0x01は0x10に変換され、0x02は0x20に変換される。
【0161】
そして図19のQ1に示すように、入力されたZ値が0x0Fよりも大きい場合には、LUT2の出力は0xF0にクランプされる。
【0162】
Z値がクランプされた場合の例を図21に示す。図21に示すように、ビット20(ビットI〜J以外のビット)に1が立った場合には、LUT2の出力が0xF0にクランプされる。これによりZ2値は0xF1になる。
【0163】
例えばLUT2の出力をクランプせずに、Z値のビット19〜12をそのまま取り出してしまうと、ビット20に1が立っているにもかかわらず、Z2値は0x11になってしまい、被写界深度の設定が誤った設定になってしまう問題が生じる。
【0164】
LUT2の出力をクランプするようにすれば、このような問題が生じるのを防止でき、被写界深度の設定を適正なものにすることができる。
【0165】
しかも、このようにLUT2の出力をクランプしても、図16から明らかなように、ニアクリップされるオブジェクトOB1やスクリーンSCの近くのオブジェクトOB2のぼけ度合いが最大値に設定されるだけであるため、画像が不自然になることもない。
【0166】
2.6 ぼかし画像の生成
さて、本実施形態では、テクスチャマッピングのバイリニアフィルタ方式(テクセル補間方式)を有効利用して、元画像(図11(A))の合成対象となるぼかし画像(図11(B))を生成している。
【0167】
即ち、テクスチャマッピングにおいては画素の位置とテクセルの位置がずれる場合がある。
【0168】
この場合に、図22に示すように、ポイントサンプリング方式では、画素(サンプリング点)Pの色CP(広義には画像情報)は、Pに最も距離が近いテクセルTAの色CAになる。
【0169】
一方、バイリニアフィルタ方式では、Pの色CPは、Pの周りのテクセルTA、TB、TC、TDの色CA、CB、CC、CDを補間した色になる。
【0170】
より具体的には、TA〜TDの座標とPの座標とに基づき、X軸方向の座標比β:1−β(0≦β≦1)と、Y軸方向の座標比γ:1−γ(0≦γ≦1)を求める。
【0171】
この場合に、Pの色CP(バイリニアフィルタ方式での出力色)は、下式のようになる。
【0172】
本実施形態では、このようにバイリニアフィルタ方式では色が自動的に補間されることに着目して、ぼかし画像を生成している。
【0173】
より具体的には図23のR1に示すように、例えばフレームバッファに描画されている元画像をテクスチャとして設定する。そして、このテクスチャ(元画像)を仮想オブジェクトにバイリニアフィルタ方式でマッピングする際に、仮想オブジェクトの頂点に与えるテクスチャ座標を、例えば(0.5、0.5)だけ右下方向にシフト(ずらす、移動)させる。このようにすることで、バイリニアフィルタ方式の補間機能により自動的に、元画像の画素の色が周囲ににじんだようなぼかし画像を生成できるようになる。
【0174】
なお、画面全体をぼかす場合には、テクスチャ(元画像)をマッピングする仮想オブジェクトの形状は、画面(ぼかし領域)と同一形状に設定される。即ち、画面の頂点座標が(X、Y)=(0、0)、(640、0)、(640、480)、(0、480)であった場合には、仮想オブジェクトの頂点座標も(X、Y)=(0、0)、(640、0)、(640、480)、(0、480)になる。
【0175】
そして、この場合に、仮想オブジェクトの頂点VX1、VX2、VX3、VX4に与えるテクスチャ座標(U、V)を、各々、(0、0)、(640、0)、(640、480)、(0、480)に設定すれば、画面の画素の位置とテクスチャのテクセルの位置とがずれずに一致する。従って、画像はぼけない。
【0176】
これに対して、仮想オブジェクトの頂点VX1、VX2、VX3、VX4に与えるテクスチャ座標(U、V)を、各々、(0.5、0.5)、(640.5、0.5)、(640.5、480.5)、(0.5、480.5)に設定すれば、画面の画素の位置とテクスチャのテクセルの位置とがずれるようになる。従って、バイリニアフィルタ方式の補間機能により、色の補間が行われ、画像がぼけて見えるようになる。
【0177】
なお、画面の一部の領域をぼかす場合には、仮想オブジェクトの形状を、そのぼかし領域と同一形状にすればよい。
【0178】
また本実施形態では、図24のR3に示すように、元画像をテクスチャに設定し、例えば右下方向(第1のシフト方向)に0.5テクセルだけシフトしてバイリニアフィルタ方式でテクスチャマッピングを行い、第1のぼかし画像を生成する。次に、図24のR4に示すように、この第1のぼかし画像をテクスチャに設定し、例えば左上方向(第2のシフト方向)に0.5テクセルだけシフトしてバイリニアフィルタ方式でテクスチャマッピングを行い、第2のぼかし画像を生成する。或いは、以上の処理(右下方向のシフトと左上方向のシフト)を複数回繰り返す。このようにすることで、更に自然でぼかし効果の強いぼかし画像を生成できるようになる。
【0179】
次に、バイリニアフィルタ方式の補間機能によりぼかし画像が生成される原理について説明する。
【0180】
例えば図25(A)に示すように、テクスチャ座標を0.5テクセルだけ右下方向にシフトさせて、バイリニアフィルタ方式のテクスチャマッピングを行ったとする。この場合には、上式(8)においてβ=γ=1/2になるため、テクセルT44、T45、T54、T55の色をC44、C45、C54、C55とすると、画素P44の色CP44は下式のようになる。
【0181】
CP44=(C44+C45+C54+C55)/4 (9)
以上から明らかなように、図25(A)に示す変換により、テクセルT44の色C44(変換前の元画像の画素P44の元の色に相当)は、周りの画素P33、P34、P43、P44に対して1/4ずつしみ出すことになる。
【0182】
そして、その後に図25(B)に示すように、図25(A)で得られた画像をテクスチャとして、テクスチャ座標を0.5テクセルだけ左上方向にシフトさせてバイリニアフィルタ方式でテクスチャマッピングを行ったとする。この場合には、図25(A)の画素P33、P34、P43、P44が、図25(B)のテクセルT33、T34、T43、T44に対応するようになる。そして、図25(A)でP33、P34、P43、P44(T33、T34、T43、T44)に対して1/4ずつしみ出した色C44が、更に1/4倍されて周りの4つの画素に対してしみ出すことになる。即ち、結局、元のT44の色C44が1/4×1/4=1/16ずつ周りにしみ出すことになる。
【0183】
従って、図25(A)、(B)の変換により、画素P33、P34、P35には、各々、色C44(フレームバッファに描かれた元画像の画素P44の元の色に相当)が1/16、2/16、1/16ずつしみ出すことになる。また、画素P43、P44、P45には、各々、色C44が2/16、4/16、2/16ずつしみ出し、画素P53、P54、P55には、各々、色C44が1/16、2/16、1/16ずつしみ出すことになる。
【0184】
従って、図25(A)、(B)の変換により、結局、図26(A)に示すような平面フィルタが元画像に対して施されるようになる。この平面フィルタによれば、元画像の各画素の色がその周りに均一に広がるようになり、元画像の理想的なぼかし画像を生成できる。
【0185】
また、図25(A)、(B)の変換のセットを2回行えば、図26(B)に示すような平面フィルタが元画像に対して施されるようになる。この平面フィルタによれば、図26(A)よりも更に理想的なぼかし画像を生成できる。
【0186】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図27、図28のフローチャートを用いて説明する。
【0187】
まず、元画像(透視変換後の画像)をフレームバッファに描画する(ステップS1)。この際に、Zバッファには各画素のZ値が書き込まれることになる。
【0188】
次に、ZバッファのZ値のビット15〜8を変換するLUT1(図18)、ビット23〜16を変換するLUT2(図19)、8ビット化されたZ値をα値(A値)に変換するLUT3(図20(A))を、VRAMに転送する(ステップS2)。
【0189】
次に、Z値のビット15〜8をLUT1のインデックス番号に設定し、LUT1を用いて仮想ポリゴンにテクスチャマッピングを行い、その仮想ポリゴンを別バッファに描画する(ステップS3)。
【0190】
次に、Z値のビット23〜16をLUT2のインデックス番号に設定し、LUT2を用いて仮想ポリゴンにテクスチャマッピングを行い、その仮想ポリゴンを別バッファに描画する(ステップS4)。この際、図17で説明したように、8ビット化されたZ値の下位の4ビット(データ有効ビット)については上書きされないようにマスクしておく。
【0191】
次に、ステップS4で得られた8ビットのZ2値をLUT3のインデックス番号に設定し、LUT3を用いて仮想ポリゴンにテクスチャマッピングを行い、その仮想ポリゴンをフレームバッファ(αプレーン)に描画する(ステップS5)。
【0192】
次に、ステップS1でワークバッファに描画された元画像を、テクスチャ座標U、Vを(0.5、0.5)だけシフトしてバイリニアフィルタ方式で仮想ポリゴンにマッピングしながら、その仮想ポリゴンを別バッファに描画する(ステップS6)。
【0193】
次に、ステップS6で別バッファに描画された画像を、テクスチャ座標U、Vを(−0.5、−0.5)だけシフトしてバイリニアフィルタ方式で仮想ポリゴンにマッピングしながら、その仮想ポリゴンをフレームバッファに描画する(ステップS7)。この際、ステップS5でフレームバッファに描画されたα値を用いてαブレンディングを行い、元画像とぼかし画像のα合成を行う。
【0194】
以上のようにして、いわゆる被写界深度の表現が可能になる。
【0195】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図29を用いて説明する。
【0196】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0197】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0198】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0199】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0200】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0201】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0202】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0203】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0204】
RAM960は、各種プロセッサの作業領域として用いられる。
【0205】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0206】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0207】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0208】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0209】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0210】
図30(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム又はデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0211】
図30(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0212】
図30(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に伝送し端末において出力することになる。
【0213】
なお、図30(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0214】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0215】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0216】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0217】
また、本実施形態では、設定されたα値に基づいて、元画像とぼかし画像とをα合成して被写体深度の画像表現を実現する場合について主に説明した。しかしながら、本発明の手法で設定されたα値を用いる画像表現はこれに限定されない。例えば、設定されたα値に基づいて、元画像の色と所与の色(背景色、ターゲット色)とをα合成したり、元画像の輝度や彩度を変化させたり、元画像と所与の他の画像とをα合成したり、元画像と元画像の変換画像とをα合成してもよい。
【0218】
また、奥行き値の第2の奥行き値への変換は、図17で説明したようにインデックスカラー・テクスチャマッピング用のルックアップテーブルを利用する手法で実現することが特に望ましいが、他の手法により実現してもよい。
【0219】
また、第2の奥行き値に応じた値にα値を設定する手法としては、図4、図9で説明したようなインデックスカラー・テクスチャマッピング用のルックアップテーブルを利用する手法、図13で説明したような仮想オブジェクトを順次描画することで仮想オブジェクトの奥側や手前側の画素のα値を順次更新する手法等の種々の手法を採用できる。
【0220】
また、図21では奥行き値の任意のビットI〜Jを取り出す場合について主に説明した。しかしながら、図21の手法は、奥行き値以外の画像情報(例えば、色情報、α値等の描画領域に描画されている情報)の任意のビットI〜Jを取り出す場合にも広く適用できる。
【0221】
また、ルックアップテーブルの変換特性も図18、図19、図20(A)、(B)に示した変換特性に限定されず、種々の変形実施が可能である。
【0222】
また、元画像の合成対象となるぼかし画像は、図23、図24で説明した手法により生成することが特に望ましいが、これに限定されない。例えば元画像と元画像をずらした画像を合成したり、当該フレームの元画像と前のフレームの元画像とを合成したりしてぼかし画像を生成してもよい。
【0223】
また、テクセル補間方式を利用してぼかし画像を生成する発明も、図23〜図26(B)で説明した手法に限定されない。例えば、画面全体をぼかすのではなく、画面よりも小さいぼかし領域を設定して、その領域にある元画像をぼかすようにしてもよい。
【0224】
また、本実施形態では視点から近いほど奥行き値が大きくなる場合を例にとり説明したが、視点から遠いほど奥行き値が大きくなる場合にも本発明は適用できる。
【0225】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0226】
また、本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態のゲームシステムのブロック図の例である。
【図2】図2(A)、(B)は、ガンマ補正を実現する第1、第2の手法について説明するための図である。
【図3】インデックスカラー・テクスチャマッピングについて説明するための図である。
【図4】インデックスカラー・テクスチャマッピング用のLUTを有効利用して、元画像を変換する手法について説明するための図である。
【図5】図5(A)、(B)は、本実施形態により生成されるゲーム画像の例である。
【図6】元画像を複数のブロックに分割し、各ブロックの画像を、LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする手法について説明するための図である。
【図7】LUTの変換により得られた画像情報のうち、必要な画像情報のみが描画領域に描画され、他の画像情報が描画されないようにマスク処理を行う手法について説明するための図である。
【図8】LUTを利用したテクスチャマッピングを行い、αプレーンを作成する手法について説明するための図である。
【図9】Z値をLUTのインデックス番号に設定する手法について説明するための図である。
【図10】Z値に応じたα値を設定し、設定されたα値を用いて元画像とぼかし画像を合成する手法について説明するための図である。
【図11】図11(A)、(B)は、元画像とそのぼかし画像の例である。
【図12】Z値に応じたα値の設定手法について説明するための図である。
【図13】図13(A)、(B)、(C)は、仮想オブジェクトを描画することで仮想オブジェクトの奥側の画素のα値を更新する手法について説明するための図である。
【図14】Z値をZ2値に変換し、そのZ2値をα値に変換して元画像とぼかし画像を合成する手法について説明するための図である。
【図15】Z値の最上位ビットを含む上位ビットでZ2値を構成した場合の問題点について説明するための図である。
【図16】Z値の最上位ビットよりも下位のビットI〜JビットでZ2値を構成すると共にZ2値を所与の値にクランプする手法について説明するための図である。
【図17】LUTを用いてZ値をZ2値に変換する手法について説明するための図である。
【図18】Z値のビット15〜8を変換するLUT1の具体例を示す図である。
【図19】Z値のビット23〜16を変換するLUT2の具体例を示す図である。
【図20】図20(A)、(B)は、Z2値をα値に変換するLUT3の具体例とその変換特性曲線の例を示す図である。
【図21】クランプ処理について説明するための図である。
【図22】バイリニアフィルタ方式のテクスチャマッピングについて説明するための図である。
【図23】バイリニアフィルタ方式を有効利用してぼかし画像を生成する手法について説明するための図である。
【図24】バイリニアフィルタ方式を有効利用してぼかし画像を生成する手法について説明するための図である。
【図25】図25(A)、(B)は、バイリニアフィルタ方式の補間機能によりぼかし画像が生成される原理について説明するための図である。
【図26】図26(A)、(B)も、バイリニアフィルタ方式の補間機能によりぼかし画像が生成される原理について説明するための図である。
【図27】本実施形態の処理の詳細例について示すフローチャートである。
【図28】本実施形態の処理の詳細例について示すフローチャートである。
【図29】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図30】図30(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
10 仮想カメラ
100 処理部
110 ゲーム処理部
112 移動・動作演算部
130 画像生成部
132 ジオメトリ処理部
134 インデックス番号設定部
140 描画部
142 テクスチャマッピング部
144 α合成部
146 陰面消去部
150 音生成部
160 操作部
170 記憶部
172 主記憶領域
174 フレームバッファ
176 テクスチャ記憶部
178 LUT記憶部
179 Zバッファ
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部
Claims (13)
- 画像生成を行うゲームシステムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段と、
を含み、
元画像をテクスチャとして設定し、該テクスチャをテクセル補間方式で仮想オブジェクトにマッピングする際に仮想オブジェクトのテクスチャ座標をシフトさせ、元画像のぼかし画像を生成し、
元画像と該ぼかし画像とを、各画素に設定されるα値に基づいて合成することを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段と、
を含み、
前記奥行き値のビットI〜ビットJ以外のビットの値に応じて、前記第2の奥行き値を所与の値にクランプすることを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段と、
を含み、
前記奥行き値を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定し、前記ルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を前記第2の奥行き値に変換することを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段と、
を含み、
前記奥行き値のビットM〜ビットNを、インデックスカラー・テクスチャマッピング用の第1のルックアップテーブルのインデックス番号として設定し、前記第1のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第3の奥行き値に変換し、
前記奥行き値のビットK〜ビットL(K≧I≧L>M≧J≧N)を、インデックスカラー・テクスチャマッピング用の第2のルックアップテーブルのインデックス番号として設定し、前記第2のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第4の奥行き値に変換し、
前記第3、第4の奥行き値に基づいて前記第2の奥行き値を求めることを特徴とするゲームシステム。 - 請求項3又は4において、
前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とするゲームシステム。 - 請求項3又は4において、
前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とするゲームシステム。 - コンピュータが使用可能なプログラムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段として、コンピュータを機能させ、
元画像をテクスチャとして設定し、該テクスチャをテクセル補間方式で仮想オブジェクトにマッピングする際に仮想オブジェクトのテクスチャ座標をシフトさせ、元画像のぼかし画像を生成し、
元画像と該ぼかし画像とを、各画素に設定されるα値に基づいて合成することを特徴とするプログラム。 - コンピュータが使用可能なプログラムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段として、コンピュータを機能させ、
前記奥行き値のビットI〜ビットJ以外のビットの値に応じて、前記第2の奥行き値を所与の値にクランプすることを特徴とするプログラム。 - コンピュータが使用可能なプログラムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段として、コンピュータを機能させ、
前記奥行き値を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定し、前記ルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を前記第2の奥行き値に変換することを特徴とするプログラム。 - コンピュータが使用可能なプログラムであって、
元画像の各画素の奥行き値を、前記奥行き値の最上位ビットよりも下位のビットI〜ビットJにより構成される第2の奥行き値に変換する手段と、
前記第2の奥行き値に応じた値に、各画素のα値を設定する手段と、
設定されたα値に基づいて画像を生成する手段として、コンピュータを機能させ、
前記奥行き値のビットM〜ビットNを、インデックスカラー・テクスチャマッピング用の第1のルックアップテーブルのインデックス番号として設定し、前記第1のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第3の奥行き値に変換し、
前記奥行き値のビットK〜ビットL(K≧I≧L>M≧J≧N)を、インデックスカラー・テクスチャマッピング用の第2のルックアップテーブルのインデックス番号として設定し、前記第2のルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、前記奥行き値を第4の奥行き値に変換し、
前記第3、第4の奥行き値に基づいて前記第2の奥行き値を求めることを特徴とするプログラム。 - 請求項9又は10において、
前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とするプログラム。 - 請求項9又は10において、
前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とするプログラム。 - コンピュータが使用可能な情報記憶媒体であって、請求項7〜12のいずれかのプログラムを含むことを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001020477A JP4656616B2 (ja) | 2000-01-28 | 2001-01-29 | ゲームシステム、プログラム及び情報記憶媒体 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000020464 | 2000-01-28 | ||
JP2000-214351 | 2000-07-14 | ||
JP2000214351 | 2000-07-14 | ||
JP2000-20464 | 2000-07-14 | ||
JP2001020477A JP4656616B2 (ja) | 2000-01-28 | 2001-01-29 | ゲームシステム、プログラム及び情報記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002092630A JP2002092630A (ja) | 2002-03-29 |
JP4656616B2 true JP4656616B2 (ja) | 2011-03-23 |
Family
ID=27342173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001020477A Expired - Fee Related JP4656616B2 (ja) | 2000-01-28 | 2001-01-29 | ゲームシステム、プログラム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4656616B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3715222B2 (ja) | 2000-12-27 | 2005-11-09 | 株式会社ソニー・コンピュータエンタテインメント | 描画方法、描画装置、描画処理プログラム、描画処理プログラムを記録した記録媒体、および描画処理プログラム実行装置 |
US7081892B2 (en) | 2002-04-09 | 2006-07-25 | Sony Computer Entertainment America Inc. | Image with depth of field using z-buffer image data and alpha blending |
JP4481275B2 (ja) * | 2006-06-19 | 2010-06-16 | 日本電信電話株式会社 | 3次元映像情報の伝送方法 |
JP4805094B2 (ja) * | 2006-10-31 | 2011-11-02 | 富士通セミコンダクター株式会社 | フォグ効果処理方法、グラフィックス装置、グラフィックス用半導体集積回路装置及びフォグ効果処理プログラム |
JP5274298B2 (ja) * | 2009-02-20 | 2013-08-28 | 任天堂株式会社 | 描画処理装置、および、描画処理プログラム |
JP2011036544A (ja) * | 2009-08-17 | 2011-02-24 | Sanyo Product Co Ltd | 遊技機 |
CN105778506B (zh) | 2014-12-25 | 2019-04-30 | 广东生益科技股份有限公司 | 一种有机硅树脂组合物及使用它的预浸料、层压板、覆铜板以及铝基板 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996028794A1 (fr) * | 1995-03-10 | 1996-09-19 | Hitachi, Ltd. | Dispositif d'affichage graphique tridimensionnel |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123980A (ja) * | 1994-10-21 | 1996-05-17 | Matsushita Electric Ind Co Ltd | 三次元図形描画装置 |
JP3642952B2 (ja) * | 1997-06-16 | 2005-04-27 | 株式会社ソニー・コンピュータエンタテインメント | 画像合成方法及び装置、並びに情報処理システム |
-
2001
- 2001-01-29 JP JP2001020477A patent/JP4656616B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996028794A1 (fr) * | 1995-03-10 | 1996-09-19 | Hitachi, Ltd. | Dispositif d'affichage graphique tridimensionnel |
Also Published As
Publication number | Publication date |
---|---|
JP2002092630A (ja) | 2002-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3262772B2 (ja) | 画像生成システム及び情報記憶媒体 | |
US7116334B2 (en) | Game system and image creating method | |
JP2006318389A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
WO2001055970A1 (fr) | Systeme de jeux et procede de creation d'images | |
JP4804120B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4187188B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4656616B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP3449993B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2004334661A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3280355B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4223244B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2006011539A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2006252426A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4443083B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4656617B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP2002163671A (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP3467259B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP4159082B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3656054B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4913898B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP4605914B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP4632855B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4704615B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4680670B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2006277488A (ja) | プログラム、情報記憶媒体及び画像生成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101129 |
|
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: 20101215 |
|
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: 20101220 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4656616 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: 20140107 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 |