説明

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

【課題】効率的なぼかし処理を実現できるプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】 画像生成システムは、ぼかし対象画像に対してその面積を縮小させる処理を行って、縮小画像を生成する縮小処理部と、縮小画像に対してぼかし処理を行って、ぼかし縮小画像を生成するぼかし処理部と、ぼかし縮小画像に対してその面積を拡大させる処理を行う拡大処理部を含む。縮小処理部は、ぼかし対象画像の第1のサンプリング点グループでの情報に基づいて第1の縮小画像を生成し、ぼかし対象画像の第2のサンプリング点グループでの情報に基づいて第2の縮小画像を生成し、・・・・・ぼかし対象画像の第J(Jは2以上の整数)のサンプリング点グループでの情報に基づいて第Jの縮小画像を生成する。縮小画像に対して、輝度が所与の値を閾値として高いピクセルの輝度を高くし、低いピクセルの輝度を低くする処理を行ってソフトフォーカス画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、グレア効果や被写界深度やソフトフォーカス効果などの種々の画像表現のために、ぼかし画像を生成する場合がある。このようなぼかし画像を生成する技術としては例えば特開2001−160153号公報に開示される従来技術がある。
【0004】
しかしながら、画像生成システムのハードウェアの処理能力には限界があり、処理時間にも制約がある。従って、ぼかし効果の高い効率的なぼかし処理の実現が望まれている。
【0005】
また例えば月明かりに照らされたゲームシーンの画像を生成する場合等には、写真撮影分野において用いられているソフトフォーカス効果をリアルに表現できれば、プレーヤの仮想現実感を更に高めることができる。
【特許文献1】特開2001−160153号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、効率的なぼかし処理を実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0007】
本発明は、画像を生成する画像生成システムであって、ぼかし対象画像に対してその面積を縮小させる処理を行って、縮小画像を生成する縮小処理部と、前記縮小画像に対してぼかし処理を行って、ぼかし縮小画像を生成するぼかし処理部と、前記ぼかし縮小画像に対してその面積を拡大させる処理を行う拡大処理部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0008】
本発明によれば、ぼかし対象画像が縮小され、縮小画像に対してぼかし処理が施され、ぼかし処理が施された縮小画像が拡大される。このようにすれば、ぼかし処理は、面積の小さい縮小画像に対して行えば済むため、ぼかし処理の負荷を軽減できる。また本発明では、ぼかし処理が施された縮小画像を拡大しているため、ぼかし長さを大きくすることが可能となり、少ない処理負荷で効率的なぼかし処理を実現できる。
【0009】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記縮小処理部が、ぼかし対象画像の第1のサンプリング点グループでの情報に基づいて第1の縮小画像を生成し、ぼかし対象画像の第2のサンプリング点グループでの情報に基づいて第2の縮小画像を生成し、・・・・・ぼかし対象画像の第J(Jは2以上の整数)のサンプリング点グループでの情報に基づいて第Jの縮小画像を生成するようにしてもよい。
【0010】
このようにすれば、ぼかし対象画像が有していた情報の喪失を最小限に抑えることが可能になり、生成されるぼかし画像の品質を高めることができる。
【0011】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ぼかし処理部が、前記第1〜第Jの縮小画像を合成し、合成された縮小画像に対してぼかし処理を行って、ぼかし合成縮小画像を生成し、前記拡大処理部が、前記ぼかし合成縮小画像の拡大処理を行うようにしてもよい。
【0012】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ぼかし処理部が、前記第1〜第Jの縮小画像に対してぼかし処理を行って、第1〜第Jのぼかし縮小画像を生成し、前記拡大処理部が、前記第1〜第Jのぼかし縮小画像の拡大処理と合成処理を行うようにしてもよい。
【0013】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記縮小処理部が、バイリニア補間方式のテクスチャマッピングにより縮小画像を生成するようにしてもよい。
【0014】
但し、バイリニアサンプリング以外(例えばポイントサンプリング)のテクスチャマッピングで縮小処理を実現してもよい。
【0015】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記縮小画像に対して、その輝度が、所与の値を閾値として高いピクセルについては輝度をより高くし、低いピクセルについてはより低くするビデオフィルタ処理を行うビデオフィルタ処理部を含み(ビデオフィルタ処理部としてコンピュータを機能させ)、前記ぼかし処理部が、前記ビデオフィルタ処理が施された縮小画像に対してぼかし処理を行うようにしてもよい。
【0016】
このようにすれば、いわゆるソフトフォーカス効果が施されたリアルな画像を生成できる。
【0017】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ビデオフィルタ処理部が、前記縮小画像の所与の色成分を強調するビデオフィルタ処理を行うようにしてもよい。
【0018】
このようにすれば、特定の色が強調されたソフトフォーカス画像を生成でき、生成される画像の多様性を増すことができる。
【0019】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ぼかし処理部が、前記縮小画像に対して複数回のぼかし処理を行う場合に、前記複数回のぼかし処理のうちの第Kのぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理を行い、変換処理後のぼかし画像に対して次の第K+1のぼかし処理を行うようにしてもよい。
【0020】
本発明によれば、縮小画像(第1〜第Jの縮小画像)に対して複数回のぼかし処理が行われる。そして、第Kのぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理が行われ、その変換処理が施されたぼかし画像に対して次の第K+1のぼかし処理が行われる。このようにすれば、ぼかし処理回数から期待されるぼかし長さよりも実際のぼかし長さの方が短くなってしまうなどの問題を解決でき、効率的なぼかし処理を実現できる。
【0021】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記変換処理のための変換テーブルを記憶する変換テーブル記憶部を含み(変換テーブル記憶部としてコンピュータを機能させ)、前記ぼかし処理部が、前記変換テーブルを用いて、ぼかし画像のピクセル値を増加させる前記変換処理を行うようにしてもよい。
【0022】
このようにすれば、ぼかし処理の回数や内容に応じた適正な変換テーブルを用いて、変換処理を実現できる。
【0023】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記変換テーブルが、インデックスカラー・テクスチャマッピング用のルックアップテーブルであり、前記ぼかし処理部が、第Kのぼかし処理で得られたぼかし画像のピクセル値を、前記ルックアップテーブルのインデックス番号として設定し、前記ルックアップテーブルを用いたインデックスカラー・テクスチャマッピングを行うことで、ぼかし画像のピクセル値を増加させる前記変換処理を行うようにしてもよい。
【0024】
このようにすれば、例えば1回のテクスチャマッピングで、ぼかし画像の変換処理を実現できるため、処理を効率化できる。
【0025】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ぼかし処理部が、テクスチャ座標をシフトさせてバイリニア補間方式で、前記インデックスカラー・テクスチャマッピングを行うことで、前記変換処理と前記第K+1のぼかし処理の両方を同時に行うようにしてもよい。
【0026】
このようにすれば、例えば1回のテクスチャマッピングで、ぼかし画像の変換処理とぼかし処理の両方を実現できるため、処理を更に効率化できる。
【0027】
なお、本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ぼかし処理部が、ぼかし処理の回数に応じた変換特性を有する変換テーブルを用いて、前記変換処理を行うようにしてもよい。また、前記ぼかし処理部が、ぼかし対象画像の輪郭からぼかし境界に向かってぼかし画像のピクセル値をリニアに変化させる変換テーブルを用いて、前記変換処理を行うようにしてもよい。
【発明を実施するための最良の形態】
【0028】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0029】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0030】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0031】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0032】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD(液晶表示装置)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0033】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0034】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0035】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0036】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0037】
オブジェクト空間設定部110は、キャラクタ、車、戦車、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0038】
移動・動作処理部112は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0039】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0040】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0041】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を描画バッファ172(フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0042】
描画部120は、テクスチャマッピング処理や隠面消去処理を行うことができる。
【0043】
ここでテクスチャマッピング処理は、テクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部174からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0044】
また隠面消去処理は、例えば、各ピクセルのZ値(奥行き情報)が格納されるZバッファ176(奥行きバッファ)を用いるZバッファ法(奥行き比較法、Zテスト)により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Zバッファ176に格納されるZ値を参照する。そして参照されたZバッファ176のZ値と、プリミティブ面の描画対象ピクセルでのZ値とを比較し、描画対象ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、そのピクセルの描画処理を行うと共にZバッファ176のZ値を新たなZ値に更新する。
【0045】
描画部120は、縮小処理部122、ぼかし処理部124、拡大処理部126、ビデオフィルタ処理部128、αブレンディング部129を含む。なおこれらの一部を省略する構成としてもよい。
【0046】
縮小処理部122は画像の縮小処理を行う。具体的には、ぼかし処理の対象となるぼかし対象画像(元画像等)に対してその面積を縮小させる処理を行って、縮小画像を生成する。この場合の縮小処理は、バイリニア補間方式のテクスチャマッピングで実現してもよいし、ポイントサンプリング方式のテクスチャマッピングで実現してもよい。なお、ぼかし対象画像である元画像は、オブジェクトに対してジオメトリ処理(透視変換等の座標変換処理)を施して、ジオメトリ処理後のオブジェクト(ポリゴン)をフレームバッファ(広義には描画領域)に描画(レンダリング)することなどにより生成できる。
【0047】
また縮小処理部122は、ぼかし対象画像の第1のサンプリング点グループでの情報に基づいて第1の縮小画像を生成し、ぼかし対象画像の第2のサンプリング点グループでの情報に基づいて第2の縮小画像を生成し、・・・・・ぼかし対象画像の第J(Jは2以上の整数)のサンプリング点グループでの情報に基づいて第Jの縮小画像を生成する。ここで第1〜第Jのサンプリング点グループの情報は、ぼかし対象画像のピクセル値により得られる情報であり、ピクセル値或いは複数のピクセル値の平均値などである。
【0048】
ぼかし処理部124は、縮小処理部122で縮小された縮小画像に対してぼかし処理を行って、ぼかし縮小画像を生成する。具体的には、縮小画像に対して複数回(M回)のぼかし処理を行う。例えば縮小画像に対して第1のぼかし処理を行い、第1のぼかし処理で得られたぼかし画像に対して第2のぼかし処理を行い・・・第Kのぼかし処理で得られたぼかし画像に対して第K+1のぼかし処理を行い・・・・第M−1のぼかし処理で得られたぼかし画像に対して第Mのぼかし処理を行う(Kは正の整数。Mは2以上の整数)。
【0049】
この場合に、ぼかし処理部124は、複数回のぼかし処理のうちの第Kのぼかし処理で得られたぼかし画像のピクセル値(α値、色情報等)を増加(かさ上げ)させる変換処理(補正処理)を行い、変換処理が施されたぼかし画像に対して第K+1のぼかし処理を行うこともできる。
【0050】
具体的には、記憶部170は、変換処理のための変換テーブル(インデックスカラー・テクスチャマッピング用のルックアップテーブル等)を記憶する変換テーブル記憶部171(主記憶部)を含む。この変換テーブル記憶部171は、ぼかし処理の回数に応じた変換特性を有する変換テーブルを記憶することができる。
【0051】
そしてぼかし処理部124は、変換テーブル記憶部171から変換テーブルを読み出し、この変換テーブルを用いて、ぼかし画像のピクセル値を増加させる変換処理を行う。具体的には、ぼかし処理部124は、第Kのぼかし処理で得られたぼかし画像のピクセル値(α値、色情報等)を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定する(インデックス番号とみなす)。そして、このルックアップテーブル(広義には変換テーブル)を用いたインデックスカラー・テクスチャマッピングを行うことで、第Kのぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理を行う。そしてこのインデックスカラー・テクスチャマッピングを、テクスチャ座標をシフト(0.5テクセルシフト)させてバイリニア補間方式(テクセル補間方式)で行うことで、変換処理と第K+1のぼかし処理の両方を行うことが可能になり、処理効率を高めることができる。
【0052】
なお変換処理は、全てのピクセルに対して行うこともできるし、一部のピクセルに対して行うこともできる。また複数回のぼかし処理により得られたぼかし画像を、元画像のぼかし画像として出力してもよいし、得られたぼかし画像と元画像の合成処理を行って、例えばグレア効果や被写界深度やソフトフォーカス効果等の画像エフェクトが元画像に施された画像を出力してもよい。
【0053】
拡大処理部126は画像の拡大処理を行う。具体的には、ぼかし処理部124でのぼかし処理により得られたぼかし縮小画像に対してその面積を拡大させる処理を行う。
【0054】
例えば縮小処理部122が第1〜第Jのサンプリング点グループでの情報に基づいて第1〜第Jの縮小画像を生成した場合には、ぼかし処理部124が、これらの第1〜第Jの縮小画像を合成し、合成された縮小画像に対してぼかし処理を行って、ぼかし合成縮小画像を生成する。そして拡大処理部126は、このぼかし合成縮小画像の拡大処理を行う。或いは、ぼかし処理部124が、第1〜第Jの縮小画像に対してぼかし処理を行って、第1〜第Jのぼかし縮小画像を生成し、拡大処理部126が、これらの第1〜第Jのぼかし縮小画像の拡大処理と合成処理(拡大しながら合成する処理)を行うようにしてもよい。
【0055】
ビデオフィルタ処理部128は種々のビデオフィルタ処理を行う。例えばビデオフィルタ処理部128は、縮小処理部122で生成された縮小画像(第1〜第Jの縮小画像を合成した画像)に対して、輝度補正のビデオフィルタ処理を行う。具体的には、輝度が所与の値よりも高いピクセルの輝度をより高くするビデオフィルタ処理を行う。或いは、これに加えて色調補正のビデオフィルタ処理を行ってもよい。具体的には、縮小画像の所与の色成分(RGBの少なくとも1つの色成分)を強調するビデオフィルタ処理を行う。そしてぼかし処理部124は、ビデオフィルタ処理が施された縮小画像に対してぼかし処理を施す。
【0056】
なお、ビデオフィルタ処理は、例えばインデックスカラー・テクスチャマッピングを利用して実現できる。具体的には縮小画像(第1〜第Jの縮小画像を合成した画像)の情報を、変換テーブル記憶部171に記憶されるインデックスカラー・テクスチャマッピング用ルックアップテーブルのインデックス番号として設定する(インデックス番号とみなす)。そして、このルックアップテーブル(広義には変換テーブル)を用いたインデックスカラー・テクスチャマッピングを行うことで、縮小画像の輝度や色調を補正する変換処理を実現する。
【0057】
αブレンディング部129は、α値(A値)に基づくαブレンディング処理(通常αブレンディング、α加算ブレンディング又はα減算ブレンディング等)を行う。例えば通常αブレンディングの場合には下式の処理を行う。
【0058】
Q=(1−α)×R1+α×R2
Q=(1−α)×G1+α×G2
Q=(1−α)×B1+α×B2
一方、加算αブレンディングの場合には下式の処理を行う。
【0059】
Q=R1+α×R2
Q=G1+α×G2
Q=B1+α×B2
ここで、R1、G1、B1は、描画バッファ172に既に描画されている画像(元画像)のRGB成分であり、R2、G2、B2は、描画バッファ172に描画すべき画像のRGB成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像のRGB成分である。なおα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0060】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0061】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0062】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0063】
2.1 縮小画像へのぼかし処理
ぼかし画像を生成する場合に、そのぼかし長さを大きくするためには、ぼかし処理を行う回数を増やせばよい。即ち、ぼかし対象画像に対して第1のぼかし処理を行い、第1のぼかし処理で得られた画像に対して第2のぼかし処理を施し・・・・第N−1のぼかし処理で得られた画像に対して第Nのぼかし処理を施す。しかしながら、ぼかし処理の回数を増やすと、処理負荷が増加してしまう。
【0064】
そこで本実施形態では図2のA1に示すように、ぼかし対象画像に対してその面積を縮小させる処理(1/L×1/L倍の縮小)を行って、縮小画像を生成する。次に、A2に示すようにこの縮小画像に対して1又は複数回のぼかし処理を行って、ぼかし縮小画像を生成する。そしてA3に示すようにこの縮小画像に対してその面積を拡大させる処理(L×L倍の拡大)を行って、ぼかし対象画像のぼかし画像を得る。なおこのぼかし画像を最終的なゲーム画像として出力してもよいし、このぼかし画像と元画像を合成(αブレンディング等)した画像を最終的なゲーム画像として出力してもよい。なお、図2は縦横の縮小・拡大倍率が等しい場合(1/L×1/L倍、L×L倍)の例を示したものであるが、縦横の縮小・拡大倍率が異なる場合(1/M×1/N倍、M×N倍)でも同様の処理が可能である。
【0065】
例えばぼかし処理はテクスチャ座標をシフトさせて行うバイリニア補間(テクセル補間)方式のテクスチャマッピングで実現できる。そしてバイリニア補間方式のテクスチャマッピングの処理負荷は、基本的には処理面積(処理領域のサイズ)に比例する。従って図2のA1、A2に示すように、ぼかし対象画像を縮小し、得られた縮小画像をテクスチャとするバイリニア補間方式のテクスチャマッピングを行うことで、ぼかし処理を実現すれば、ぼかし処理の負荷を大幅に軽減できる。特にぼかし処理の回数が多い場合にこの処理負荷の軽減の度合いは大きくなる。更に図2のA3では、ぼかし縮小画像を、元のぼかし対象画像の大きさになるように拡大しているため、ぼかし処理の回数がそれほど多くなくても、ぼかし長さを十分に大きくできるという利点がある。
【0066】
例えばテクスチャ座標を0.5テクセルだけシフトさせるバイリニア補間方式のテクスチャマッピングを1往復(0.5テクセルシフトと−0.5テクセルシフト)だけ行うことで、理想的には1ピクセルのぼかし長さを得ることができる。そして縮小・拡大処理を行わずにぼかし対象画像に対してN往復のぼかし処理を行うと、ぼかし長さはNピクセルになる。
【0067】
これに対して図2のように、ぼかし対象画像を1/L×1/L倍に縮小し、得られた縮小画像に対してN往復のぼかし処理を行い、得られたぼかし縮小画像をL×L倍に拡大する処理を行ったとする。この場合には、ぼかし対象画像を1/L×1/L倍に縮小し、ぼかし処理の後にL×L倍に拡大することで、ぼかし効果が長さに対してL倍になる。更に縮小/拡大により数ピクセル(Kピクセル。例えばK=2)分のぼかし長さが加わる。従って本実施形態によれば、ぼかし長さを例えば(L×N+K)ピクセルにすることができる。なおバイリニアサンプリングではなくポイントサンプリングで縮小/拡大を行った場合には、ぼかし長さは例えばL×Nピクセルにすることができる。
【0068】
以上のように本実施形態によれば、ぼかし処理の負荷を大幅に軽減しながら、ぼかし長さを十分に大きくすることができ、ソフトフォーカス効果、グレア効果、被写界深度などの画像表現に最適なぼかし処理を実現できる。
【0069】
2.2 サンプリング点グループを異ならせた複数の縮小画像の生成
図2では、ぼかし対象画像のB1〜B4に示す丸印のサンプリング点グループの情報に基づいて、縮小画像のB5、B6、B7、B8に示すピクセルの値を得ている。ここで、図2ではバイリニアサンプリング(バイリニア補間方式のテクスチャマッピング)で縮小画像を生成しているため、B1に示すサンプリング点の情報は、これに隣接する周囲のB9、B10、B11、B12に示すピクセルの値の平均値になっている。B2、B3、B4に示すサンプリング点の情報も同様である。但し、バイリニアサンプリングではなくポイントサンプリングで縮小画像を生成してもよい。
【0070】
さて図3に示すように、ぼかし対象画像は、丸印の第1のサンプリング点グループの情報と、四角印の第2のサンプリング点グループ情報と、三角印の第3のサンプリング点グループの情報と、黒丸印の第4のサンプリング点グループ情報を元々有している。従って、図2のように1つのサンプリング点グループ(丸印)だけに基づいて、縮小画像を生成すると、ぼかし対象画像が元々有していた情報が欠落する。従って、この縮小画像を拡大してぼかし画像を生成した場合に、このぼかし画像に基づき生成されるゲーム画像の品質が低下し、画面のチラツキ等の問題が発生する可能性がある。
【0071】
この場合、図2のようにバイリニアサンプリングで縮小画像を生成すれば、ぼかし対象画像が含んでいた情報の欠落をある程度防止できるが、それにも限界がある。例えば静止画では画面のチラツキは目立たないが、仮想カメラの移動やモデルオブジェクトの移動に伴い、画面のチラツキが発生するおそれがある。そして、図2では縮小倍率は面積比で1/4倍(1/2×1/2倍)になっているが、縮小倍率を例えば面積比で1/16倍(1/4×1/4倍)にすると、たとえバイリニアサンプリングで縮小画像を生成したとしても、縮小画像にその情報が全く反映されないサンプリング点グループが生じてしまう。
【0072】
そこで本実施形態ではサンプリング点グループを異ならせた複数の縮小画像を生成する手法を採用している。具体的には図4に示すように、ぼかし対象画像の第1のサンプリング点グループ(丸印)での情報(ピクセル値又はピクセル値の平均値)に基づいて第1の縮小画像を生成する。同様に、ぼかし対象画像の第2、第3、第4のサンプリング点グループ(四角印、三角印、黒丸印)での情報(ピクセル値又はピクセル値の平均値)に基づいて第2、第3、第4の縮小画像を生成する。
【0073】
そして得られた第1〜第4の縮小画像(広義には第1〜第Jの縮小画像)に基づいて、図2で説明したぼかし処理や拡大処理を行って、ぼかし対象画像のぼかし画像を生成する。そして、生成されたぼかし画像や、ぼかし画像と元画像の合成画像などを、最終的なゲーム画像として出力する。
【0074】
なお図4ではぼかし対象画像からサンプリング点グループが異なる4つの縮小画像を生成しているが、サンプリング点グループが異なる複数の縮小画像を生成するようにしてもよい。また図4では縮小倍率が面積比で1/4倍(1/2×1/2倍)の例を示しているが、縮小倍率はこれに限定されず、例えば1/2倍(1/21/2×1/21/2倍)、1/16倍(1/4×1/4倍)等であってもよい。即ちぼかし対象画像を面積比で1/L×1/L倍に縮小して第1〜第Jの縮小画像を生成する場合に、J≦L×L(M×N)の関係が成り立てばよい。
【0075】
例えば図21(A)に、縮小倍率が1/21/2×1/21/2倍(面積比で1/2倍)で、拡大倍率が21/2×21/2倍(面積比で2倍)の時の例を示す。この場合は図21(B)に示すようにサンプリング点グループは2種類になる。また図22(A)に、縮小倍率が1/51/2×1/51/2倍(面積比で1/5倍)で、拡大倍率が51/2×51/2倍(面積比で5倍)の時の例を示す。この場合には図22(B)に示すようにサンプリング点グループは5種類になる。
【0076】
さて、サンプリング点グループの異なる第1〜第Jの縮小画像は、バイリニア補間方式でテクスチャマッピングを行う際にテクスチャ座標を互いにずらすことで生成できる。具体的には図4の第1〜第4の縮小画像は、例えば図5に示すようにテクスチャ座標を互いにずらして設定することで実現できる。
【0077】
図5において第1〜第4の縮小画像の縦、横の長さは2になっており、第1〜第4の縮小画像の頂点V1、V2、V3、V4の座標(X、Y)は(0、0)、(2、0)、(2、2)、(0、2)になっている。
【0078】
そして第1の縮小画像では、これらの頂点V1、V2、V3、V4のテクスチャ座標(U、V)を(0、0)、(4、0)、(4、4)、(0、4)に設定する。また第2の縮小画像では、頂点V1、V2、V3、V4のテクスチャ座標(U、V)を(−1、−1)、(3、−1)、(3、3)、(−1、3)に設定する。また第3の縮小画像では、頂点V1、V2、V3、V4のテクスチャ座標(U、V)を(0、−1)、(4、−1)、(4、3)、(0、3)に設定する。また第4の縮小画像では、頂点V1、V2、V3、V4のテクスチャ座標(U、V)を(−1、0)、(3、0)、(3、4)、(−1、4)に設定する。このように、ぼかし対象画像をテクスチャに設定し、テクスチャ座標を互いにずらして(シフトさせて)バイリニアサンプリング(或いはポイントサンプリング)でテクスチャマッピングを行って、縮小画像サイズのポリゴン(仮想ポリゴン)を描画すれば、図4のようにサンプリング点グループが異なる複数の縮小画像を生成できる。
【0079】
なお、複数の縮小画像に基づくぼかし画像の生成手法としては種々の手法がある。
【0080】
例えば図6(A)では、ぼかし対象画像IMに基づき生成された縮小画像DI1〜DI4(第1〜第Jの縮小画像)を合成(αブレンディング)し、合成された縮小画像SIに対して1又は複数回のぼかし処理を行って、ぼかし合成縮小画像SDIを生成する。そしてこのぼかし合成縮小画像SDIの拡大処理を行って、IMのぼかし画像DIMを生成する。そして、このぼかし画像DIMや、DIMと元画像との合成画像(αブレンディング画像)を、最終的なゲーム画像として出力する。
【0081】
また図6(B)では、ぼかし対象画像に基づき生成されたDI1〜DI4(第1〜第Jの縮小画像)に対してぼかし処理を行って、ぼかし縮小画像DDI1〜DDI4(第1〜第Jのぼかし縮小画像)を生成する。そしてぼかし縮小画像DDI1〜DDI4の拡大処理と合成処理を行って、IMのぼかし画像DIMを生成する。そして、このぼかし画像DIMや、DIMと元画像との合成画像(αブレンディング画像)を、最終的なゲーム画像として出力する
このようにすることで、ぼかし対象画像の情報の欠落の最小限に抑えながらも、少ない処理負荷で、ぼかし長さの大きいぼかし画像を生成できるようになる。
【0082】
2.3 ソフトフォーカス
写真撮影の分野では、いわゆるソフトフォーカスと呼ばれる技術が知られている。ソフトフォーカスとは、ピントの合った部分や線や輪郭についてはシャープであり、且つ、その周辺に柔らかい光がにじみ出た、いわゆるフレア現象が出ているものである。このソフトフォーカス効果が施された画像は、ソフトであっても細部はしっかりとしている画像になっている。写真撮影の分野では、収差の大きいレンズで絞りを開放する手法や、ソフトフォーカス用のレンズなどを用いることで、ソフトフォーカス効果を実現している。
【0083】
本実施形態ではこのソフトフォーカス効果を擬似的に表現するために次のような手法を採用している。即ちビデオフィルタ処理により、画像をソフトフォーカスの色調に設定する。そしてバイリニアフィルタ(バイリニア補間のテクスチャマッピング)を用いて画像をぼかす。そしてぼかした画像と元画像を合成(αブレンディング)する。
【0084】
具体的には図7に示すように、ぼかし対象画像である元画像IMの複数のサンプリング点グループでの情報に基づいて複数の縮小画像DI1〜DI4(第1〜第Jの縮小画像)を生成する。
【0085】
次に、これらの縮小画像DI1〜DI4を合成(αブレンディング)して、合成された縮小画像SIを得る。
【0086】
次に、合成縮小画像SIに対してビデオフィルタ処理を施して、ビデオフィルタ処理が施された縮小画像VSIを得る。具体的には、輝度が高いピクセルの輝度をより高くするなどの輝度補正処理を施す。即ち輝度が所与の値よりも高いピクセルの輝度を強め、所与の値よりも小さいピクセルの輝度を弱める。また縮小画像の特定の色成分を強調するなどの色調補正処理を施す。即ち、月夜のシーンならば青成分を強調し、夕焼けのシーンならば赤成分を強調する。なおビデオフィルタ処理としては種々の変形実施が可能であり、輝度補正と色調補正の両方を行ってもよいし、いずれか一方を行ってもよい。或いは、他の補正処理を更に行ってもよい。
【0087】
次に、ビデオフィルタ処理が施された縮小画像VSIに対して1又は複数回のぼかし処理を行って、ぼかし合成縮小画像DVSIを生成する。
【0088】
次に、ぼかし合成縮小画像DVSIの拡大処理を行って元の面積に戻し、ぼかし画像DIMを得る。そしてこのぼかし画像DIMと元画像IMとを合成(αブレンディング)する。
【0089】
以上のような処理を行うことで、ピントの合った部分や線や輪郭についてはシャープであり、且つ、その周辺がぼやけて見えるソフトフォーカス効果を、元画像に施すことができる。これにより、生成される画像のバラエティ度を増すことができ、プレーヤの仮想現実感を高めることができる。
【0090】
なお図8(A)(B)(C)に図7のビデオフィルタ処理で使用される変換テーブル(ルックアップテーブルLUT)の例を示す。この変換テーブルは変換テーブル記憶部に記憶される。図8(A)(B)(C)において、RIN,GIN、BINは、ビデオフィルタ処理による変換前の入力ピクセル値のR、G、B成分であり、ROUT,GOUT、BOUTはビデオフィルタ処理による変換後の出力ピクセル値のR、G、B成分である。
【0091】
図8(A)(B)(C)の変換テーブルを用いれば、所与の値以上のピクセルの輝度を高めることができる。また青成分の色味を強調することができる。これにより、月明かりに照らされたゲームシーンなどに最適なソフトフォーカス効果を実現できる。
【0092】
なお図7〜図8(C)のビデオフィルタ処理は、インデックスカラー・テクスチャマッピング用のルックアップテーブル(LUT)を用いたインデックスカラー・テクスチャマッピングを利用して実現できる。具体的には合成縮小画像の情報(ピクセル値)をルックアップテーブル(LUT。図8(A)(B)(C))のインデックス番号に設定する。そしてこのルックアップテーブルを用いて、縮小サイズのポリゴンにインデックスカラー・テクスチャマッピングを行うことで、ビデオフィルタ処理が施された合成縮小画像を得ることができる。
【0093】
2.4 ぼかし処理におけるピクセル値の変換
本実施形態では、ぼかし画像のぼかし長さを大きくするために、複数回のぼかし処理を行う。具体的には、まず、ぼかし処理に使用されるワークバッファWBUF1、WBUF2をVRAM上に確保する。
【0094】
次にWBUF1に、ぼかし処理の対象となる画像を描画する。そしてWBUF1に描画した画像をテクスチャとして扱い、このテクスチャをマッピングした、テクスチャと同サイズのポリゴン(スプライト)をWBUF2に描画する。この時、ピクセル中心を4テクセルの中間に対応させて、バイリニア補間を使う。即ち、テクスチャ座標をシフトさせてバイリニア補間方式でテクスチャマッピングを行う。これにより、ワークバッファWBUF2には、WBUF1の画像を0.5ピクセルだけぼかした画像が描画される。
【0095】
次に、WBUF2の画像をテクスチャとして扱い、このテクスチャをマッピングした、テクスチャと同サイズのポリゴン(スプライト)をWBUF1に描画する。この時、ピクセル中心を4テクセルの中間に対応させて、バイリニア補間を使う。即ち、テクスチャ座標をシフトさせてバイリニア補間方式でテクスチャマッピングを行う。この結果、ワークバッファWBUF1には、WBUF2の画像を0.5ピクセルだけぼかした画像が描画される。
【0096】
以上のようなWBUF1からWBUF2への描画処理とWBUF2からWBUF1への描画処理という1往復の処理を行うことで、WBUF1の画像は、ぼかし対象画像を1ピクセルぼかした画像になる。必要とするぼかし長さがNピクセルである場合には、ぼかし処理をN往復だけ繰り返せばよい。
【0097】
さて、このようにバイリニア補間などを利用してぼかし画像を生成した場合、ぼかし処理の回数が多くなればなるほど(ぼかし長さが大きくなればなるほど)、ぼかし処理の効率が低下するという問題があることが判明した。
【0098】
例えば図9(A)は、元の1ピクセルに対してバイリニア補間のぼかし処理を4往復行って、4ピクセルだけぼかした時に、元のピクセルの値が周囲のピクセルに対してどのように分布するかを示した図である。
【0099】
図9(A)において、ぼかし中心に位置する元のピクセルのぼかし処理前のピクセル値は1であり、ぼかし処理後は4900/65536となっている。一方、ぼかし境界に位置する例えばE1に示すピクセルのぼかし処理後のピクセル値は、70/65536となっている。
【0100】
そして例えば元のピクセルのぼかし処理前のピクセル値(α値)を255として、1未満の端数を切り捨てた結果は図9(B)に示すようになる。なお実際には1回(0.5ピクセル)のぼかし処理毎に、端数の切り捨てが行われるので、4ピクセルぼかし後の値は、図9(B)に示す値よりも小さくなる。
【0101】
図9(B)において、ぼかし中心に位置する元のピクセルのぼかし処理後のピクセル値は、1未満の端数が切り捨てられることで、255×4900/65536=19.0658・・・=19になる。一方、ぼかし境界に位置する例えばE1に示すピクセルのぼかし処理後のピクセル値は、1未満の端数が切り捨てられることで、255×70/65536=0.2723・・・・=0になる。
【0102】
図9(B)の例では、元の1ピクセルが周囲に4ピクセルぼけることを期待しているにもかかわらず、ぼかし境界である最外周のピクセルの値が0になっているため、実質的なぼかし長さは3ピクセルになっている。このように、ぼかし処理を繰り返した場合に、ぼかし処理の回数よりも実際のぼかし長さの方が短くなり、ぼかし効率が悪化する。そしてぼかし処理の回数が多くなればなるほど、ぼかし効率は更に悪化する。
【0103】
このような問題を解決するために、本実施形態では、ぼかし処理の途中に例えばテーブル変換を介在させて、ぼかしの結果が小さくなりすぎないように変換処理を行っている。
【0104】
例えば図10(A)の元の1ピクセルに対して1回目の第1のぼかし処理(広義には第Kのぼかし処理)を施すと、元の1ピクセルのピクセル値がその周囲にしみ出して、図10(B)に示すようになる。
【0105】
この時に本実施形態では、図10(C)に示すように、第1のぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理を行う。例えば図10(C)では、ピクセル値が0よりも大きいピクセルに対して、そのピクセル値を増加させる変換処理を行っている。そして図10(D)に示すように、変換処理が施されたぼかし画像に対して、次の第2のぼかし処理(広義にはK+1のぼかし処理)を施す。なお、図10(C)の変換処理と図10(D)のぼかし処理を同時に行うようにしてもよい。
【0106】
次に本実施形態では図11(A)に示すように、第2のぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理を行う。そして図11(B)に示すように、変換処理が施されたぼかし画像に対して次の第3のぼかし処理を施す。
【0107】
以上のようにすれば、ぼかし処理後のぼかし画像のピクセル値がかさ上げされるため、図9(B)のようにぼかし画像の境界のピクセル値が小さくなって0になってしまう事態を防止できる。この結果、例えばN往復のぼかし処理で、Nピクセルの大きさのぼかし長さを得ることが可能になり、効率的なぼかし処理を実現できる。特に本実施形態の手法は、ぼかし処理の回数が多くなればなるほど、従来の手法に比べて有利になる。
【0108】
2.5 ぼかし処理の具体例
次に本実施形態のぼかし処理の具体例について説明する。
【0109】
図12(A)に示すように、ワークバッファWBUF1に描画された画像(縮小画像、合成縮小画像)をテクスチャとして扱い、バイリニア補間方式のテクスチャマッピングを行うことで、第1のぼかし処理が施されたぼかし画像をワークバッファWBUF2に描画する。
【0110】
次に図12(B)に示すように、ワークバッファWBUF2に描画された画像をテクスチャとして扱い、インデックスカラー&バイリニア補間方式のテクスチャマッピングを行うことで、ピクセル値を増加させる変換処理と第2のぼかし処理とが施されたぼかし画像をワークバッファWBUF1に描画する。
【0111】
次に図12(C)に示すように、ワークバッファWBUF1に描画された画像をテクスチャとして扱い、バイリニア補間方式のテクスチャマッピングを行うことで、第3のぼかし処理が施されたぼかし画像をワークバッファWBUF2に描画する。
【0112】
次に図12(D)に示すように、ワークバッファWBUF2に描画された画像をテクスチャとして扱い、インデックスカラー&バイリニア補間方式のテクスチャマッピングを行うことで、ピクセル値を増加させる変換処理と第4のぼかし処理とが施されたぼかし画像をワークバッファWBUF1に描画する。
【0113】
以上のぼかし処理を所定回数だけ繰り返すことで、所望のぼかし長さのぼかし画像を得ることができる。
【0114】
次に、バイリニア補間方式のテクスチャマッピングを利用したぼかし画像の生成手法について図13を用いて説明する。
【0115】
まず、ワークバッファWBUF1の画像(ピクセル値)をテクスチャとして設定する。そして図13のF1に示すように、このテクスチャを仮想ポリゴン(仮想オブジェクト)にバイリニア補間方式でマッピングする際に、仮想ポリゴンの頂点に与えるテクスチャ座標を、例えば(0.5、0.5)だけ右下方向にシフト(ずらす、移動)させて、ワークバッファWBUF2に描画する。すると、バイリニア補間により自動的にWBUF1の画像の各ピクセルの色が、そのピクセルの周囲のピクセルにしみ出すようになる。これにより、WBUF1の画像を0.5ピクセルだけぼかした画像がWBUF2に描画される。
【0116】
例えばWBUF1の画像の描画領域の頂点VX1、VX2、VX3、VX4の座標が(X、Y)=(X0、Y0)、(X0、Y1)、(X1、Y1)、(X1、Y0)であったとする。この場合に、仮想ポリゴンの頂点VVX1、VVX2、VVX3、VVX4に与えるテクスチャ座標(U、V)を、各々、(X0、Y0)、(X0、Y1)、(X1、Y1)、(X1、Y0)に設定すれば、ピクセル位置とテクセル位置とがずれずに一致する。従って画像はぼけない。これに対して、仮想ポリゴンの頂点VVX1、VVX2、VVX3、VVX4に与えるテクスチャ座標(U、V)を、各々、(X0+0.5、Y0+0.5)、(X0+0.5、Y1+0.5)、(X1+0.5、Y1+0.5)、(X1+0.5、Y0+0.5)に設定すれば、ピクセル位置とテクセル位置とがずれるようになる。従って、バイリニア補間により、色の補間が行われ、WBUF1の画像を0.5ピクセルだけぼかした画像がWBUF2に描画される。
【0117】
次に、WBUF2の画像をテクスチャとして設定する。そして図13のF2に示すように、このテクスチャを仮想ポリゴンにバイリニア補間方式でマッピングする際に、仮想ポリゴンの頂点に与えるテクスチャ座標を例えば(−0.5、−0.5)だけ左上方向にシフトさせて、WBUF1に描画する。これにより、WBUF2の画像を0.5ピクセルだけぼかした画像がWBUF1に描画される。これにより、結局、WBUF1に描画されていた画像を1ピクセルだけぼかした画像が、WBUF1に上書きされるようになる。
【0118】
次に、インデックスカラー・テクスチャマッピングを利用した変換処理の実現手法について説明する。
【0119】
インデックスカラー・テクスチャマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、実際の色情報(RGB)ではなく、インデックス番号がテクスチャの各テクセルに関連づけて記憶される。またインデックスカラー・テクスチャマッピング用のルックアップテーブルLUTには、インデックス番号により指定される色情報(ROUT、GOUT、BOUT)やα値(αOUT)が記憶される。本実施形態では、このインデックスカラー・テクスチャマッピングを、通常とは異なる形態で利用している。
【0120】
具体的には図14のD1に示すように、ワークバッファWBUF2の画像のピクセル値(色情報、α値等)をルックアップテーブルLUTのインデックス番号として設定する(インデックス番号とみなす)。そしてD2に示すように、WBUF2の画像のピクセル値がインデックス番号として設定されたルックアップテーブルLUTを用いて、仮想ポリゴン(スプライト)に対してインデックスカラー・テクスチャマッピングを行い、仮想ポリゴンをワークバッファWBUF1に描画する。
【0121】
このようにすれば、例えばWBUF2の画像のピクセル値を、ルックアップテーブルLUTにより変換して、WBUF1に描画できるようになる。しかも、WBUF2の全てのピクセルの値を、1回のテクスチャマッピングで変換してWBUF1に描画できるため、処理効率が高いという利点がある。
【0122】
本実施形態では、図13で説明したバイリニア補間方式で、図14で説明したインデックスカラー・テクスチャマッピングを行うことで、図12(B)のようにピクセル値の変換処理とぼかし処理の両方を同時に行うことに成功している。具体的には、WBUF2の画像のピクセル値をルックアップテーブルLUTのインデックス番号として設定する。そしてルックアップテーブルLUTを用いて、テクスチャ座標をシフトさせてバイリニア補間方式で、仮想ポリゴンに対してインデックスカラー・テクスチャマッピングを行い、仮想ポリゴンをワークバッファWBUF1に描画する。このようにすれば、1回のテクスチャマッピングで、ピクセル値の変換処理とぼかし処理の両方を同時に行うことが可能になり、処理を更に効率化できる。
【0123】
3.本実施形態の処理
次に、本実施形態の詳細な処理例について図15〜図18のフローチャートを用いて説明する。
【0124】
図15は初期設定処理のフローチャートである。まず、VRAMにワークバッファWBUF1、WBUF2、WBUF3を確保する(ステップS1)。次に各種パラメータの初期化を行う(ステップS2)。そしてビデオフィルタ処理(輝度・色調補正)用のルックアップテーブル(LUT。図8(A)(B)(C))の設定処理を行う(ステップS3)。
【0125】
図16はフレーム毎に行われる処理のフローチャートである。まずフレーム(1/60秒)更新のタイミングか否かを判断する(ステップS11)。そしてフレーム更新である場合には、ジオメトリ処理後(透視変換後)のオブジェクト(ポリゴン)をフレームバッファに描画して、元画像(画面サイズのゲーム画像)を生成する(ステップS12)。
【0126】
次に、フレームバッファの元画像をテクスチャとして、ワークバッファWBUF2に、面積比1/16(1/4×1/4)でポリゴンを縮小描画する(ステップS13)。これにより図2のA1で説明したように、ぼかし対象画像である元画像の縮小処理が実現される。
【0127】
次に、ワークバッファWBUF3にビデオフィルタ処理用のルックアップテーブル(LUT)をコピーする(ステップS21)。そしてワークバッファWBUF2の画像をテクスチャとして、ルックアップテーブル(LUT)を用いたインデックスカラー・テクスチャマッピングを行って、ワークバッファWBUF1にそのテクスチャがマッピングされたポリゴンを描画する(ステップS22)。これにより図7〜図8(C)で説明したビデオフィルタ処理が実現される。
【0128】
次に、ぼかし処理(1〜8回)を行う(ステップS24)。具体的には図12(A)〜図13で説明したように、WBUF1の画像を、テクスチャ座標をシフトさせてテクスチャマッピングを行いWBUF2にポリゴンを描画し、WBUF2の画像を、テクスチャ座標をシフトさせてテクスチャマッピングを行いWBUF1にポリゴンを描画する。そしてこの1往復の処理を1〜8回繰り返す。
【0129】
次に、WBUF1の画像を、フレームバッファ画像の所定の位置に拡大しながらαブレンディング(40%程度)描画する(ステップS25)。即ち図2のA3で説明した拡大処理を行うと共に図7で説明したαブレンディング処理を行う。これにより、元画像にソフトフォーカス効果が施された画像を生成できる。なお、ステップS25の処理の際には、図15のステップS2で設定されたパラメータに応じて、描画位置を上下左右にずらすこともできる。このようにすれば、月明かりのぼかし画像を例えば月の上側にずらして表示することなどが可能になり、よりリアルなソフトフォーカス画像を生成できる。
【0130】
図19(A)(B)は、各々、1/4倍、1/16倍(面積比)の縮小倍率で元画像を縮小した場合のバイリニアサンプリングの様子を示した図である。図19(A)のように縮小倍率が1/4倍である場合には、バイリニアサンプリングにより、全てのテクセルの値を考慮して縮小画像が生成されるため、縮小時における元画像の情報の喪失をある程度防止できる。しかしながら、図19(B)のように縮小倍率が1/16倍である場合には、サンプリング点の周囲の4テクセルからしかサンプリングが行われないため、情報が反映されないテクセルが存在するようになってしまう。従って、情報が反映されないテクセルの値に変化があった時にも、縮小画像にはその変化が反映されないようになってしまう。
【0131】
図17はこのような問題点を解決できる本実施形態の他の処理例のフローチャートである。図17は、図16と、ステップS14、S15、S16の処理が異なっている。
【0132】
即ち図17のステップS14では、フレームバッファの元画像をテクスチャとして、ワークバッファWBUF2に、面積比1/16でポリゴンを縮小描画する。これにより、図19(C)の第1のサンプリング点グループでの情報に基づく第1の縮小画像を生成できる。
【0133】
次にステップS15で、フレームバッファの元画像をテクスチャとして、ワークバッファWBUF1に、面積比1/16でポリゴンを縮小描画する。この時、図5で説明したようにテクスチャ座標(U、V)をずらして縮小画像を生成する。これにより、図19(C)の第2のサンプリング点グループでの情報に基づく第2の縮小画像を生成できる。
【0134】
次にステップS16で、WBUF1の画像(第2の縮小画像)をテクスチャとして、WBUF2(第1の縮小画像)に、αブレンディング(50%)で、そのテクスチャがマッピングされたポリゴンを描画する。これにより図6(A)で説明したように、ステップS14、S15で生成された第1、第2の縮小画像の合成縮小画像(SI)を生成できる。そしてステップS21以降の処理により、この合成縮小画像にビデオフィルタ処理やぼかし処理等を施すことで、元画像のソフトフォーカス画像を生成できる。
【0135】
図18も、本実施形態の他の処理例のフローチャートである。図18は、図16と、ステップS17、S18の処理が異なっている。
【0136】
即ち図18のステップS17では、フレームバッファの元画像をテクスチャとして、ワークバッファWBUF1に、面積比1/4でポリゴンを縮小描画する。そしてステップS18で、ワークバッファWBUF1の画像をテクスチャとして、ワークバッファWBUF2に、面積比1/4でポリゴンを縮小描画する。即ち1/4倍の縮小処理を2回繰り返す。このようにすれば、バイリニアサンプリングを利用して全テクセルの情報から1/16倍の縮小画像を生成できる。但し図18の手法は、処理負荷が比較的重く、必要とするワークバッファのサイズも大きいという不利点がある。しかしながら、仮想カメラやモデルオブジェクトが移動した時に、図16の手法に比べて画面のチラツキ等が改善されるという利点がある。
【0137】
4.ハードウェア構成
図20に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0138】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0139】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0140】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0141】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0142】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0143】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0144】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(描画領域、第1〜第Jの縮小画像、変換テーブル等)として引用された用語(フレームバッファ・ワークバッファ、第1〜第4の縮小画像、ルックアップテーブル等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0145】
また、ぼかし対象画像の縮小処理、ぼかし処理、拡大処理、ぼかし処理やピクセル値の変換処理も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0146】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0147】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】ぼかし対象画像を縮小した後にぼかし処理を行う手法の説明図。
【図3】サンプリング点グループの説明図。
【図4】サンプリング点グループが異なる複数の縮小画像を生成する手法の説明図。
【図5】サンプリング点グループが異なる複数の縮小画像を生成する手法の説明図。
【図6】図6(A)(B)は複数の縮小画像に基づくぼかし画像の生成手法の説明図。
【図7】ソフトフォーカス効果画像の生成手法の説明図。
【図8】図8(A)(B)(C)はビデオフィルタ処理の変換テーブルの例。
【図9】図9(A)(B)は複数回のぼかし処理を行った場合の問題点の説明図。
【図10】図10(A)〜(D)はぼかし処理時のピクセル値の変換処理の説明図。
【図11】図11(A)(B)はぼかし処理時のピクセル値の変換処理の説明図。
【図12】図12(A)〜(D)はぼかし処理の具体例の説明図。
【図13】バイリニア補間を用いたぼかし処理の説明図。
【図14】インデックスカラー・テクスチャマッピングを用いた変換処理の説明図。
【図15】本実施形態の具体的な処理のフローチャート。
【図16】本実施形態の具体的な処理のフローチャート。
【図17】本実施形態の具体的な処理のフローチャート。
【図18】本実施形態の具体的な処理のフローチャート。
【図19】図19(A)(B)(C)は本実施形態の具体的な処理の説明図。
【図20】ハードウェア構成例。
【図21】図21(A)(B)は図4とは縮小・拡大倍率が異なる他の例。
【図22】図22(A)(B)は図4とは縮小・拡大倍率が異なる他の例。
【符号の説明】
【0148】
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、120 描画部、122、縮小処理部、
124 ぼかし処理部、126 拡大処理部、128 ビデオフィルタ処理部、
129 αブレンディング部、130 音生成部、160 操作部、170 記憶部、
171 変換テーブル記憶部、172 描画バッファ、174 テクスチャ記憶部、
176 Zバッファ、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
画像を生成するためのプログラムであって、
ぼかし対象画像に対してその面積を縮小させる処理を行って、縮小画像を生成する縮小処理部と、
前記縮小画像に対してぼかし処理を行って、ぼかし縮小画像を生成するぼかし処理部と、
前記ぼかし縮小画像に対してその面積を拡大させる処理を行う拡大処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記縮小処理部が、
ぼかし対象画像の第1のサンプリング点グループでの情報に基づいて第1の縮小画像を生成し、ぼかし対象画像の第2のサンプリング点グループでの情報に基づいて第2の縮小画像を生成し、・・・・・ぼかし対象画像の第J(Jは2以上の整数)のサンプリング点グループでの情報に基づいて第Jの縮小画像を生成することを特徴とするプログラム。
【請求項3】
請求項2において、
前記ぼかし処理部が、
前記第1〜第Jの縮小画像を合成し、合成された縮小画像に対してぼかし処理を行って、ぼかし合成縮小画像を生成し、
前記拡大処理部が、
前記ぼかし合成縮小画像の拡大処理を行うことを特徴とするプログラム。
【請求項4】
請求項2において、
前記ぼかし処理部が、
前記第1〜第Jの縮小画像に対してぼかし処理を行って、第1〜第Jのぼかし縮小画像を生成し、
前記拡大処理部が、
前記第1〜第Jのぼかし縮小画像の拡大処理と合成処理を行うことを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記縮小処理部が、
バイリニア補間方式のテクスチャマッピングにより縮小画像を生成することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記縮小画像に対して、その輝度が、所与の値を閾値として高いピクセルについては輝度をより高くし、低いピクセルについては輝度をより低くするビデオフィルタ処理を行うビデオフィルタ処理部としてコンピュータを機能させ、
前記ぼかし処理部が、
前記ビデオフィルタ処理が施された縮小画像に対してぼかし処理を行うことを特徴とするプログラム。
【請求項7】
請求項6において、
前記ビデオフィルタ処理部が、
前記縮小画像の所与の色成分を強調するビデオフィルタ処理を行うことを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記ぼかし処理部が、
前記縮小画像に対して複数回のぼかし処理を行う場合に、前記複数回のぼかし処理のうちの第Kのぼかし処理で得られたぼかし画像のピクセル値を増加させる変換処理を行い、変換処理後のぼかし画像に対して次の第K+1のぼかし処理を行うことを特徴とするプログラム。
【請求項9】
請求項8において、
前記変換処理のための変換テーブルを記憶する変換テーブル記憶部としてコンピュータを機能させ、
前記ぼかし処理部が、
前記変換テーブルを用いて、ぼかし画像のピクセル値を増加させる前記変換処理を行うことを特徴とするプログラム。
【請求項10】
請求項9において、
前記変換テーブルが、インデックスカラー・テクスチャマッピング用のルックアップテーブルであり、
前記ぼかし処理部が、
第Kのぼかし処理で得られたぼかし画像のピクセル値を、前記ルックアップテーブルのインデックス番号として設定し、前記ルックアップテーブルを用いたインデックスカラー・テクスチャマッピングを行うことで、ぼかし画像のピクセル値を増加させる前記変換処理を行うことを特徴とするプログラム。
【請求項11】
請求項10において、
前記ぼかし処理部が、
テクスチャ座標をシフトさせてバイリニア補間方式で、前記インデックスカラー・テクスチャマッピングを行うことで、前記変換処理と前記第K+1のぼかし処理の両方を同時に行うことを特徴とするプログラム。
【請求項12】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至11のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項13】
画像を生成する画像生成システムであって、
ぼかし対象画像に対してその面積を縮小させる処理を行って、縮小画像を生成する縮小処理部と、
前記縮小画像に対してぼかし処理を行って、ぼかし縮小画像を生成するぼかし処理部と、
前記ぼかし縮小画像に対してその面積を拡大させる処理を行う拡大処理部とを含むことを特徴とする画像生成システム。
【請求項14】
請求項13において、
前記縮小処理部が、
ぼかし対象画像の第1のサンプリング点グループでの情報に基づいて第1の縮小画像を生成し、ぼかし対象画像の第2のサンプリング点グループでの情報に基づいて第2の縮小画像を生成し、・・・・・ぼかし対象画像の第J(Jは2以上の整数)のサンプリング点グループでの情報に基づいて第Jの縮小画像を生成することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2006−11539(P2006−11539A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−183803(P2004−183803)
【出願日】平成16年6月22日(2004.6.22)
【出願人】(000134855)株式会社ナムコ (1,157)
【Fターム(参考)】