(57)【要約】【課題】自然な画像を表現するために少ない処理負荷でぼかし画像を生成可能なプログラム、情報記憶媒体、及び、画像生成システムを提供する。【解決手段】奥行き値Ｄ（各画素のＺ値を０〜１の値域に正規化された前方クリッピング面からの距離）に基づいて、画素（レンダリングする点）とサンプリング点間の間隔を調整するためのぼかしパラメータＺｏｏｍを求め、Ｚｏｏｍに基づきサンプリング点を求め、求めたサンプリング点に基づきぼかし処理を行う。【選択図】図３
2009245133.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間における仮想カメラから見える透視投影変換後の所与の画像に基づいてぼかし画像を生成するためのプログラムであって、
前記透視投影変換によって所定値域に正規化された奥行き値を有する前記画像において、画素の前記奥行き値に基づいて、画素のぼかしパラメータを求め、求めたぼかしパラメータに応じて画素周囲の複数のサンプリング点を決定する処理を行うサンプリング点決定部と、
前記サンプリング点の色を用いて平滑化処理を行い画素の色を決定する処理を行う平滑化処理部としてコンピュータを機能させ、
前記サンプリング点決定部が、
画素の奥行き値を所定指数で冪乗した演算値に基づいて、画素のぼかしパラメータを求めることを特徴とするプログラム。
【請求項２】
請求項１において、
前記平滑化処理部が、
前記複数のサンプリング点のうち、画素の奥行き値にスケーリングパラメータを乗算した値と、サンプリング点の奥行き値との前後関係に応じて平滑化対象のサンプリング点を決定し、決定されたサンプリング点の色を平滑化して画素の色を決定することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記サンプリング点決定部が、
前記画素のぼかしパラメータが最低ぼかしパラメータを下回らないように、前記画素のぼかしパラメータを求めることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記サンプリング点決定部が、
前記所与の画像の全画素毎に、画素周囲のサンプリング点を決定する処理を行い、
前記平滑化処理部が、
前記所与の画像の全画素毎に、平滑化処理を行い画素の色を決定する処理を行うことを特徴とするプログラム。
【請求項５】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１〜４のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項６】
オブジェクト空間における仮想カメラから見える透視投影変換後の所与の画像に基づいてぼかし画像を生成するための画像生成システムであって、
前記透視投影変換によって所定値域に正規化された奥行き値を有する前記画像において、画素の前記奥行き値に基づいて、画素のぼかしパラメータを求め、求めたぼかしパラメータに応じて画素周囲の複数のサンプリング点を決定する処理を行うサンプリング点決定部と、
前記サンプリング点の色を用いて平滑化処理を行い画素の色を決定する処理を行う平滑化処理部とを含み、
前記サンプリング点決定部が、
画素の奥行き値を所定指数で冪乗した演算値に基づいて、画素のぼかしパラメータを求めることを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び、画像生成システムに関する。
【背景技術】
【０００２】
従来から、複数のポリゴンが設定されるオブジェクト空間（仮想的な３次元空間）内において、仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感の向上のために、被写界深度を表現した自然な画像を生成することが重要な技術的課題となっている。
【０００４】
例えば、以下のように、従来から、ぼかし画像を生成する手法が知られている（特許文献１〜６）。
【０００５】
（１）第１の手法（特許文献１）
第１の手法は、処理画素アドレスを順次更新して、ぼかし範囲や、ぼかし画素アドレスを計算し、分配係数を計算する等の処理を繰り返させ、処理が終了した後に、画素値バッファに格納された各画素値と、分配係数バッファに格納された各分配係数とから順次出力画像の各画素値を計算して出力する処理を行っている。
【０００６】
つまり、第１の手法は、ぼかし範囲や分配係数等をセットアップしてから、輝度計算等を行うので、画素に対する処理が煩雑である。また、第１の手法は、ぼかし範囲である錯乱円を求めるための物理演算を要するので非常に処理負荷が高い。さらに、第１の手法は、画素値バッファや分配係数バッファを必要とするので、記憶領域を大量に要するという難点がある。
【０００７】
（２）第２の手法（特許文献２）
第２の手法は、第１の手法と同様に、煩雑な処理を行うので処理負荷が高く、記憶領域を大量に要し、処理負荷が高いことが難点である。
【０００８】
つまり、第２の手法は、全ての画素に対するぼかし範囲の大きさを求める計算が終了した後に、全画素に対するぼかし範囲の大きさを元に重み係数を計算して、出力画像の画素値計算を出力するので処理が煩雑である。
【０００９】
また、第２の手法も、第１の手法と同様に、ぼかし範囲である錯乱円を求めるための物理演算を要するので非常に処理負荷が高い。また、ぼかし範囲バッファを必要とするので、記憶領域を大量に要するという難点がある。
【００１０】
（３）第３の手法（特許文献３）
第３の手法は、画像の一部分を意図的にぼかすものであるので、自然な画像を生成することができない恐れがある。
【００１１】
（４）第４の手法（特許文献４）
第４の手法は、各画素の奥行き値に基づいて、ぼかし対象となる画素を決定する処理、つまり、ぼかす画素なのか、ぼかさない画素なのかを判別する処理が必要になる。近年の画像生成システムでは、この分岐処理が原因で処理負荷が高くなる恐れがある。
【００１２】
（５）第５の手法（特許文献５）
第５の手法は、各ピクセルの奥行きで２次元イメージを複数のゾーンに分割し、他のゾーンとの境界の任意の側のピクセルに対する奥行きに依存した畳み込みによりぼかし画像を生成するものである。
【００１３】
しかし、第５の手法は、光学的な計算に基づきぼかしスポットサイズを求めて複数の奥行きゾーンへの分割処理を行うので処理負荷が高いという難点がある（特許文献５の００１９〜００２３段落等を参照）。
【００１４】
（６）第６の手法（特許文献６）
第６の手法は、遠近情報（奥行き値）に対するカットオフ周波数を有するデジタルローパスフィルタによってぼかし画像を生成し遠近感を表現することができるものである。
【００１５】
しかし、カットオフ周波数を求める処理が必要になり、第６の手法も演算数が多く処理負荷が高いという難点がある。
【特許文献１】特許第３００８６８１号公報
【特許文献２】特許第２７９２３７６号公報
【特許文献３】特開第２００１−１４３１００号公報
【特許文献４】特開第２００３−５１０２４号公報
【特許文献５】特開第２００５−２５７６６号公報
【特許文献６】特許第３０８３９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、自然な画像を表現するために少ない処理負荷でぼかし画像を生成可能なプログラム、情報記憶媒体、及び、画像生成システムを提供することにある。
【課題を解決するための手段】
【００１７】
（１）本発明は、
オブジェクト空間における仮想カメラから見える透視投影変換後の所与の画像に基づいてぼかし画像を生成するためのプログラムであって、
前記透視投影変換によって所定値域に正規化された奥行き値を有する前記画像において、画素の前記奥行き値に基づいて、画素のぼかしパラメータを求め、求めたぼかしパラメータに応じて画素周囲の複数のサンプリング点を決定する処理を行うサンプリング点決定部と、
前記サンプリング点の色を用いて平滑化処理を行い画素の色を決定する処理を行う平滑化処理部としてコンピュータを機能させ、
前記サンプリング点決定部が、
画素の奥行き値を所定指数で冪乗した演算値に基づいて、画素のぼかしパラメータを求めることを特徴とするプログラムに関する。
【００１８】
また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する画像生成システムに関係する。
【００１９】
本発明によれば、オブジェクト空間における深度差を考慮した自然なぼかし画像を生成することができる。
【００２０】
（２）また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記平滑化処理部が、
前記複数のサンプリング点のうち、画素の奥行き値にスケーリングパラメータを乗算した値と、サンプリング点の奥行き値との前後関係に応じて平滑化対象のサンプリング点を決定し、決定されたサンプリング点の色を平滑化して画素の色を決定してもよい。
【００２１】
本発明によれば、より自然なぼかし画像を生成することができる。
【００２２】
（３）また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記サンプリング点決定部が、
前記画素のぼかしパラメータが最低ぼかしパラメータを下回らないように、前記画素のぼかしパラメータを求めてもよい。
【００２３】
本発明によれば、より顕著なアンチエイリアス効果を得ることができるぼかし画像を生成することができる。
【００２４】
（４）また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記サンプリング点決定部が、
前記所与の画像の全画素毎に、画素周囲のサンプリング点を決定する処理を行い、
前記平滑化処理部が、
前記所与の画像の全画素毎に、平滑化処理を行い画素の色を決定する処理を行うようにしてもよい。
【００２５】
本発明によれば、より自然なぼかし画像を生成することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２７】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２８】
操作部１６０は、プレーヤがオブジェクト（プレーヤキャラクタ、移動体）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００２９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３０】
なお、オブジェクトデータ記憶部１７６は、プレーヤの操作対象及び非操作対象のオブジェクト（プレーヤキャラクタや固定物等）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、α値等）を記憶する。
【００３１】
なお、操作部１６０は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ（操作データ）を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【００３２】
例えば、入力機器に加速度センサを備えている場合には、加速度センサは、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。
【００３３】
また、加速度センサは、１軸、２軸、６軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置（本体装置）に送信される。
【００３４】
また、入力機器に撮像部、赤外線フィルタ、レンズ、撮像素子（イメージセンサ）、画像処理回路を含む場合には次のように、撮像画像における光源の位置情報（特定位置）を検出してもよい。具体的には、赤外線フィルタは、入力装置の前方に配置され、表示部１９０に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【００３５】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３７】
通信部１９６は外部（例えば他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３８】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【００３９】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４０】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４１】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、サンプリング点決定部１１６、平滑化処理部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４２】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４３】
移動・動作処理部１１２は、オブジェクト（キャラクタ、移動体等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【００４５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、移動体）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００４６】
サンプリング点決定部１１６は、透視投影変換によって所定値域に正規化された奥行き値を有する前記画像において、画素の前記奥行き値に基づいて、画素のぼかしパラメータを求め、求めたぼかしパラメータに応じて画素周囲の複数のサンプリング点を決定する処理を行う。具体的には、サンプリング点決定部１１６は、画素の奥行き値を所定指数で冪乗した演算値に基づいて、画素のぼかしパラメータを求める。
【００４７】
なお、透視投影変換は、ビュー座標系（視点座標系）におけるオブジェクトの頂点座標を、投影座標系（射影座標系）の頂点座標に変換する処理を行う。
【００４８】
そして、透視投影変換によって所定値域に正規化された奥行き値とは、ビュー座標系のＺ値を、透視投影変換によって変換された投影座標系でのＺ値のことをいう。投影座標系でのＺ値（奥行き値）は０〜１の範囲に設定される。つまり、ビュー座標系における前方クリッピング面のＺ値＝Ｚｎが投影座標系における奥行き値＝０に設定され、ビュー座標系における後方クリッピング面のＺ値＝Ｚｆが、投影座標系における奥行き値＝１になる。要するに、画素の奥行き値は、画素に対応するオブジェクトの前方クリッピング面からの距離になる。
【００４９】
また、サンプリング点決定部１１６は、画素のぼかしパラメータが最低ぼかしパラメータを下回らないように、画素のぼかしパラメータを求める。
【００５０】
また、サンプリング点決定部１１６は、所与の画像の全画素毎に、画素周囲のサンプリング点を決定する処理を行う。つまりサンプリング点決定部１１６は、全画面処理を行うようにしてもよい。
【００５１】
平滑化処理部１１８は、サンプリング点の色を用いて平滑化処理を行い画素の色を決定する処理を行う。平滑化処理とは、例えば、サンプリング点決定部１１６で算出された複数のサンプリング点、或いは、サンプリング点決定部１１６で算出された複数のサンプリング点と処理対象の画素（注目画素）を加算平均、加重平均する処理を行う。
【００５２】
また、平滑化処理部１１８は、複数のサンプリング点のうち、画素の奥行き値にスケーリングパラメータを乗算した値と、サンプリング点の奥行き値との前後関係に応じて平滑化対象のサンプリング点を決定し、決定されたサンプリング点の色を平滑化して画素の色を決定してもよい。
【００５３】
また、平滑化処理部１１８は、所与の画像の全画素毎に、平滑化処理を行い画素の色を決定する処理を行うようにしてもよい。つまり、平滑化処理部１１８は、全画面処理を行うようにしてもよい。
【００５４】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５５】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００５６】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００５７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５８】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００５９】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００６０】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００６１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００６２】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００６３】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６４】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６５】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６６】
２．本実施形態の手法
本実施形態では、描画バッファに透視投影変換後の画像を描画し、描画された画素（ピクセル、ドット）毎に、画素周囲の複数のサンプリング点のカラーに基づき平滑化処理を行って出力カラーを決定して描画バッファに描画し、出力画像を生成するものである。つまり、本実施形態は、被写界深度によって生じるぼけに似た視覚効果をもたらし、奥行きに沿ってぼけが強くなるぼかし画像を生成するものである。
【００６７】
なお、複数の描画バッファをメモリ（ＲＡＭ、ＶＲＡＭ）に確保するようにしてもよい。例えば、解像度に応じた複数の描画バッファを確保するようにしてもよい。
【００６８】
以下、本実施形態のぼかし処理におけるサンプリング点を求める手法、平滑化処理の手法について具体的に説明する。
【００６９】
（１）サンプリング点を求める手法
従来では、描画された各画素のＺ値、あるいは、深度値に基づいて、ぼかし画像を生成することが一般的であった。例えば、奥行き値に基づき注視点を含む範囲を被写界深度の範囲として設定し、被写界深度の範囲内のオブジェクトの画素に対して焦点が合うような画像を生成し、被写界深度の範囲外のオブジェクトの画素に対して、ぼけが生じるような画像を生成していた。
【００７０】
しかし、通常、仮想カメラを基準とするビュー座標系を投影座標系に変換する処理では、仮想カメラから見て手前と後方とにおいて分解能を変更するように、投影座標系への変換処理がなされる。
【００７１】
従って、図２に示すように、奥行き値Ｄ（各画素のＺ値を０〜１の値域に正規化された前方クリッピング面からの距離）と、Ｚ値（Ｚ値は、仮想カメラを原点とするビュー空間のＺ値）とでは双曲線Ａを描く関係になる。
【００７２】
例えば、ビュー座標系におけるビューボリュームの範囲が仮想カメラから１２．５ｃｍ〜１０ｋｍであり、仮想カメラから１０ｍ〜２０ｍ前後に位置するオブジェクトの奥行き値Ｄが約０．９９０、背景（１０ｋｍ付近）における奥行き値Ｄが約０．９９９のように、近景であるオブジェクトの奥行き値Ｄと背景との奥行き値Ｄとの差が僅差になってしまい、単純に奥行き値Ｄに応じてぼかし処理を行うと、近景から背景（遠景）にかけて、ぼけが強くなる様子を表現できないという問題が生じてしまう。
【００７３】
そこで、本実施形態では、奥行き値Ｄに基づいて、画素（レンダリングする点）とサンプリング点間の間隔を調整するためのぼかしパラメータＺｏｏｍを求め、Ｚｏｏｍに基づきサンプリング点を求め、求めたサンプリング点に基づきぼかし処理を行っている。
【００７４】
例えば、図３に示すように、描画対象の画素Ｐ０周囲のサンプリング点Ｐ１〜Ｐ４それぞれをＺｏｏｍに基づきスケールし、サンプリング点Ｐ１〜Ｐ４の位置を決定する。つまり、図２に示す双曲線Ａではなく、より緩やかな曲線Ｂ、Ｃ、Ｄ、Ｅを描くＺｏｏｍを用いてサンプリング点を決定し、近景から背景にかけて、ぼけが増大するような画像を生成している。
【００７５】
また、画素Ｐ０の点と各サンプリング点Ｐ１〜Ｐ４それぞれの距離は所定距離Ｌ（例えば１ドット）になるように予め設定されており、予め設定された各サンプリング点Ｐ１〜Ｐ４それぞれを、Ｚｏｏｍに基づきスケールする。
【００７６】
なお、サンプリング点Ｐ１〜Ｐ４は、ＵＶ座標系における画素の配列に対して角度θ（０度＜θ＜９０度）だけ傾けた位置に設定される。
【００７７】
サンプリング点Ｐ１〜Ｐ４が、ＵＶ座標系における画素の配列に対して所定角度だけ傾けた位置に設定される理由は、自然なぼかし画像を生成するためである。例えば、画素の配列に平行な位置にサンプリング点を設定してしまうと、出力画像において矩形のぼけがいくつも生じているような画像が生成されてしまい、不自然な画像になってしまう。したがって、本実施形態では、画素の配列に対して、やや傾けた位置になるようサンプリング点を求めている。なお、画素の配列に対するサンプリング点の傾き度合いは、複数のサンプリング点それぞれにおいて互いに異ならせてもよいし、同一（一部同一）であってもよい。
【００７８】
なお、本実施形態では、４つのサンプリング点を求めているが、システムの処理能力に応じてサンプリング点の個数を決定してもよい。例えば、サンプリング点の個数は２点、３点としてもよいし、５点以上としてもよい。
【００７９】
次に、Ｚｏｏｍを求める手法について説明する。
【００８０】
まず、描画する画素Ｐ０の奥行き値Ｄ０（０≦Ｄ０≦１）に基づいて、以下の数式１によって、Ｚｏｏｍを求めている。
【００８１】
【数１】
2009245133.tif 000003
つまり、Ｚｏｏｍは、奥行き値Ｄ０を指数ＰＯＷ（０＜ＰＯＷ）で冪乗した計算結果であり、図２に示すように、奥行き値Ｄ０を示す曲線Ａは、より緩やかな曲線Ｂ、Ｃ、Ｄ、Ｅに変換されるようになる。例えば、ＰＯＷを大きな値にすればする程より緩やかな曲線に変換される。図２の例では、曲線ＢはＰＯＷ＝５６．０を設定した場合、曲線ＣはＰＯＷ＝３００．０を設定した場合、曲線ＤはＰＯＷ＝１０００．０を設定した場合、曲線ＥはＰＯＷ＝５０００．０を設定した場合である。
【００８２】
本実施形態では、画像を生成するためにＰＯＷ＝５６．０を設定してＺｏｏｍを求めているが、条件に応じて任意にＰＯＷの値を設定してもよい。具体的には平滑化処理を行うことによって生じる出力画像のぼけ具合をＰＯＷによって調整する。つまり、ＰＯＷを大きな値にして、曲線Ａの数値変化を緩やかにすることで、奥行きによるぼけの広がりを緩やかにすることができる。そのため、おおよそはっきりと映したい範囲と、その範囲よりも奥方向の範囲との間の奥行き値の差を反映したぼけを生じさせることができる。
【００８３】
また、注視点の位置をはっきり映したい場合には、注視点の視点情報からＺｏｏｍが所定値以下になるようにＰＯＷ値を逆算してもよい。
【００８４】
さらに、本実施形態では、以下の数式２に示すように、奥行き値Ｄ０をＰＯＷ値で冪乗したＺｏｏｍに、最低ぼかし量ＬＯＷを用いてＺｏｏｍを求めている。なお、０≦ＬＯＷ≦１、ＷＩＤＴＨ＝（１−ＬＯＷ）である。
【００８５】
【数２】
2009245133.tif 000004
このように、Ｚｏｏｍに最低ぼかし量ＬＯＷを加算している理由は、最低限のぼかし処理を行うことで、仮想カメラに対して手前側に配置されるオブジェクトに対しても、アンチエイリアスの効果を得られるようにするためである。
【００８６】
そして、数式２によって、最終的に求めたＺｏｏｍの倍率で、サンプリング点Ｐ１（Ｕ１，Ｖ１）〜Ｐ４（Ｕ４，Ｖ４）（以下、点ＰＮのＵＶ座標値を（ＵＮ，ＶＮ）と表記する。）それぞれをスケールして、画素Ｐ０に対するサンプリング点Ｐ１〜Ｐ４の相対座標を決定する。
【００８７】
つまり、Ｚｏｏｍが大きな値であればある程、画素とサンプリング点との距離は長くなり、Ｚｏｏｍが小さい値であればある程、画素とサンプリング点との距離は短くなる。したがって、Ｚｏｏｍに応じて、描画対象の画素のぼかし量も変化することになる。
【００８８】
以上のように、本実施形態では、各画素において、画素Ｐ０のＺｏｏｍを求め、Ｚｏｏｍに基づいてサンプリング点Ｐ１〜Ｐ４の相対座標を決定しているので、従来の手法ように、錯乱円を求める等の厳密な物理演算に基づきサンプリング点を求めたり、サンプリング点の個数を決定したりする場合に比較して、システムの処理負荷を抑えることができる。
【００８９】
（２）平滑化処理
そして、本実施形態では、描画対象の画素のサンプリング点を求めた後に、続いて平滑化処理を行い、出力カラーを描画バッファに出力する処理を行う。
【００９０】
図４（Ａ）に示すように、本実施形態では、仮想カメラに対して第１のオブジェクトＯＢ１と第２のオブジェクトＯＢ２とが仮想カメラに対して前後に配置される場合には、手前側（例えば前景）の第１のオブジェクトＯＢ１と、奥側（例えば背景）の第２のオブジェクトＯＢ２との違いを更に考慮した自然なぼかしを施すために、以下の平滑化処理を行う。
【００９１】
まず、画素Ｐ０の奥行き値Ｄ０をポイントサンプリング方式（サンプリング点に最も距離が近い画素の奥行き値を取得する方式）によって取得し、奥行き値Ｄ０にスケーリングパラメータｍｕｌｔを乗算する。このｍｕｌｔは、平滑化処理のために用いられる予め定めた値であり、例えば、ｍｕｌｔを０より大きな値であって１以下の値に設定する。
【００９２】
そして、求めたサンプリング点Ｐ１〜Ｐ４それぞれの、奥行き値Ｄ１〜Ｄ４をポイントサンプリング方式で取得し、奥行き値Ｄ０にｍｕｌｔを乗算した値Ｄ０´と、奥行き値Ｄ１〜Ｄ４との比較処理を行う。
【００９３】
そして、図４（Ｂ）に示すようにＤ０´と、Ｄ１〜Ｄ４とを比較した結果、Ｄ０´よりも大きい値であるＤ１〜Ｄ４に対応するサンプリング点のカラーＣＰ１〜ＣＰ４と、画素Ｐ０のカラーＣＰ０とを加算平均して画素Ｐ０の出力カラーＣを求める。
【００９４】
具体的に説明すると、本実施形態では、各サンプリング点Ｐ１〜Ｐ４に対応づけてフラグＦＬ１〜ＦＬ４を設定する。例えば、各サンプリング点に対応する奥行き値が、画素Ｐ０の奥行き値Ｄ０にｍｕｌｔを乗算した値Ｄ０´より大きい値である場合には、サンプリング点に対応づけてフラグを１に設定し、各サンプリング点に対応する奥行き値が、画素Ｐ０の奥行き値Ｄ０にｍｕｌｔを乗算した値Ｄ０´以下の値である場合には、サンプリング点に対応づけてフラグを０に設定する。そして、最終的にフラグが１に設定されたサンプリング点のカラーを加算平均の対象のサンプリング点のカラーとしている。
【００９５】
具体的には、画素Ｐ０のカラーをＣＰ０、サンプリング点Ｐ１〜Ｐ４のカラーをＣＰ１〜ＣＰ４とした場合には、以下の数式によって、画素Ｐ０の出力カラーＣを求めている。なお、画素Ｐ０のカラーＣＰ０、サンプリング点Ｐ１〜Ｐ４のカラーＣＰ１〜ＣＰ４はそれぞれ、各点周囲の複数の画素のカラーをバイリニアフィルタリング方式によって補間して求める。
【００９６】
【数３】
2009245133.tif 000005
また、本実施形態では、Ｄ０´とＤ１〜Ｄ４それぞれの大小を比較し比較結果に基づいて分岐処理を行い、加算対象のサンプリング点のカラーを用いた加算平均処理を行ってもよいし、プロセッサやコンパイラの機能によっては、分岐処理よりも三項演算子を用いた方が処理負荷を軽減できる場合には、分岐処理を行わずに三項演算子を用いて、Ｄ０´とＤ１〜Ｄ４それぞれの大小を比較する条件に基づき加算対象のサンプリング点のカラーを用いて加算平均処理を行ってもよい。ここで、三項演算子とは「条件？Ａ：Ｂ」のように３つの被演算子による命令文であり、例えば、条件（例えばＤ０´＜Ｄ１）が真ならばＡを実行し（例えばフラグＦＬ１に１を代入し）、条件（例えばＤ０´＜Ｄ１）が偽ならばＢを実行する（例えばフラグＦＬ１に０を代入する）ものである。
【００９７】
したがって、三項演算子を用いた演算により処理負荷を軽減できる場合には、以下の数式によって画素Ｐ０の出力カラーＣを求める。
【００９８】
【数４】
2009245133.tif 000006
以上の平滑化処理によって、手前側（例えば前景）の第１のオブジェクトＯＢ１と、奥側（例えば背景）の第２のオブジェクトＯＢ２との違いを更に考慮した現実世界におけるレンズの被写界深度に似た視覚効果を表現することができる。
【００９９】
また、本実施形態では、上述した平滑化処理だけでなく、サンプリング点Ｐ１〜Ｐ４と画素Ｐ０の５点に対応するカラーＣＰ０〜ＣＰ４（或いはサンプリング点Ｐ１〜Ｐ４の４点に対応するカラーＣＰ１〜ＣＰ４）に基づき平均化処理を行って、出力画像の画素のカラーを求めるようにしてもよい。例えば、以下の数式によって、出力カラーＣを求めることができる。
【０１００】
【数５】
2009245133.tif 000007
（３）全画面処理
本実施形態では、描画バッファに透視投影変換後の所与の画像を描画し、描画された画像の全画素それぞれについて、Ｚｏｏｍに基づきサンプリング点を求め、求めたサンプリング点に基づき画素の出力カラーを決定する平滑化処理を行う。
【０１０１】
このように全画面処理を行う理由は、全画素それぞれに、サンプリング点を求めて平滑化処理を行うことによってはじめて、近景から背景にかけて徐々にぼけが増大する画像を生成することができるからである。
【０１０２】
また、全ての画素に対して、画素の奥行き値Ｄに応じたＺｏｏｍを求め、Ｚｏｏｍに基づいてサンプリング点を求めて平滑化処理を行うので、厳密な被写界深度や錯乱円等の物理演算を行わなくても適切なサンプリング点を求めることができる。また、従来の手法のように被写界深度の範囲を設定したり、画素が被写界深度範囲内の画素か否かの判断する処理が不要になるので、従来の手法に比べて遙かに処理負荷を軽減できるという利点がある。
【０１０３】
さらに、本実施形態では、Ｚｏｏｍに最低限ぼかすための最低ぼかし量ＬＯＷが加算されているので、少なくとも手前側の画素についても、ぼかし処理が施されることになり、結果的にアンチエイリアスの効果が得られた自然な画像を生成することができる。
【０１０４】
つまり、本実施形態によれば、全画面処理を行うことによって、近景から背景にかけて徐々にぼけが増大する画像を生成すると共に、アンチエイリアスの効果を得ることができる。
【０１０５】
３．本実施形態の処理
（１）画像生成処理
次に、本実施形態の詳細な処理例について図５のフローチャートを用いて説明する。
【０１０６】
まず、これから描画する対象の画素Ｐ０の奥行き値Ｄ０をポイントサンプリング方式によって取得する処理を行う（ステップＳ１０）。
【０１０７】
そして、奥行き値Ｄ０にＰＯＷ値を冪乗して、Ｚｏｏｍを求める（ステップＳ１１）。
【０１０８】
次に、ステップＳ１１で求めたＺｏｏｍにＷＩＤＴＨを乗算し、さらにＬＯＷを加算した値を、Ｚｏｏｍに代入する。なお、０≦ＬＯＷ≦１であり、ＷＩＤＴＨ＝（１−ＬＯＷ）である（ステップＳ１２）。
【０１０９】
次に、Ｐ１〜Ｐ４のサンプリング相対座標（ＵＮ，ＶＮ）をステップＳ１２で求めたＺｏｏｍの倍率でスケールする（ステップＳ１３）。
【０１１０】
そして、平滑化処理を行い（ステップＳ１４）、画素Ｐ０のカラーを描画バッファに出力する処理を行う（ステップＳ１５）。以上で処理が終了する。
【０１１１】
（２）平滑化処理
次に、平滑化処理のフローチャートを、図６（Ａ）（Ｂ）を用いて説明する。
【０１１２】
本実施形態では、第１の処理、第２の処理のいずれかの処理で平滑化処理を行っている。第２の処理は、第１の処理よりも簡易な手法で平滑化処理を行っているので、第１の処理よりもシステムの処理負荷を軽減することができる。一方、第１の処理は、手前側の第１のオブジェクトＯＢ１と、奥側の第２のオブジェクトＯＢ２との違いを更に考慮した現実世界におけるレンズの被写界深度に似た視覚効果を表現することができる自然なぼかし画像を生成することができるという利点がある。したがって、システムの処理能力に応じて、いずれかの処理で平滑化処理を行うことが望ましい。
【０１１３】
まず、第１の処理について図６（Ａ）を用いて説明する。はじめに、求めたサンプリング点Ｐ１〜Ｐ４それぞれの奥行き値Ｄ１〜Ｄ４をポイントサンプリング方式によって取得する（ステップＳ２０）。次に、奥行き値ＤＮ（奥行き値Ｄ１〜Ｄ４）が、画素Ｐ０の奥行き値Ｄ０にｍｕｌｔを乗算した値よりも大きい値であると判定された奥行き値に対応するサンプリング点のカラー、画素Ｐ０のカラーを用いて、加算平均を行う（ステップＳ２１）。以上で処理が終了する。
【０１１４】
一方、図６（Ｂ）を用いて第２の処理について説明すると、第２の処理では、サンプリング点Ｐ１〜Ｐ４、及び、描画対象の画素Ｐ０の合計５点のカラーを用いて平均化処理を行う（ステップＳ３０）。
【０１１５】
４．出力画像の例
図７は、本実施形態の透視変換後の所与の画像（元画像）の一例を示す。本実施形態では、図７に示す画像の画素それぞれに対してサンプリング点を求めて平滑化処理を行い、図８に示すようなぼかし画像を生成する。
【０１１６】
図８は、サンプリング点Ｐ１〜Ｐ４を求め、求めたサンプリング点Ｐ１〜Ｐ４、及び、描画対象の画素Ｐ０の合計５点のカラーを用いて平均化処理を行い出力カラーを求めた出力画像の一例である。
【０１１７】
このように、本実施形態では元画像と比較すると手前側の剣を持つキャラクタオブジェクトの輪郭のジャギが軽減され、キャラクタオブジェクトから背景にかけて、さらにぼけが増大する画像を生成することができる。また、Ｚｏｏｍに最低限ぼかすための最低ぼかし量ＬＯＷが加算されているので、少なくとも仮想カメラに対して手前側の画素についてもぼかし処理が施され、アンチエイリアスの効果が得られた自然な画像を生成することができる。
【０１１８】
また、本実施形態では、スーパーサンプリングによってアンチエイリアス処理を行った画像を元画像として、各画素のサンプリング点を求めて平滑化処理を行うぼかし処理を行ってもよい。
【０１１９】
図９は、画像解像度を１．５倍から１倍に変換したスーパーサンプリングによってアンチエイリアス処理を行った画像の一例である。例えば、図９に示す元画像の全画素それぞれにおいて、サンプリング点を求めて平滑化処理を行い、図１０に示すようなぼかし画像を生成する。
【０１２０】
図１０は、Ｚｏｏｍに基づきサンプリング点Ｐ１〜Ｐ４を求め、サンプリング点Ｐ１〜Ｐ４それぞれの各奥行き値Ｄ１〜Ｄ４が、画素Ｐ０の奥行き値Ｄ０にｍｕｌｔ値を乗算した値Ｄ０´より大きい値であると判定された奥行き値に対応するサンプリング点のカラーを用いて、加算平均を行い出力カラーを求めた場合における出力画像の一例である。
【０１２１】
このように、本実施形態では元画像と比較すると手前側の剣を持つキャラクタオブジェクトの輪郭のジャギが軽減され、キャラクタオブジェクトから背景にかけてさらにぼけが増大する画像を生成することができる。また、キャラクタオブジェクトと背景との違いを考慮したぼかしが施され、さらに自然なぼかし画像を生成することができる。
【図面の簡単な説明】
【０１２２】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施形態の計算式に基づくグラフの一例。
【図３】本実施形態のサンプリング点を求める手法についての説明図。
【図４】図４（Ａ）（Ｂ）は本実施形態の平滑化処理の説明図。
【図５】本実施形態の処理のフローチャート。
【図６】図６（Ａ）（Ｂ）は、本実施形態の平滑化処理のフローチャート。
【図７】元画像の一例。
【図８】出力画像の一例。
【図９】元画像の一例。
【図１０】出力画像の一例。
【符号の説明】
【０１２３】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１１６  サンプリング点決定部、１１８  平滑化処理部、
１２０  描画部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、
１７４  描画バッファ、１７６  オブジェクトデータ記憶部、
１７８  テクスチャ記憶部、１７９  ｚバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2009245133.tif 000008
【図２】
2009245133.tif 000009
【図３】
2009245133.tif 000010
【図４】
2009245133.tif 000011
【図５】
2009245133.tif 000012
【図６】
2009245133.tif 000013
【図７】
2009245133.tif 000014
【図８】
2009245133.tif 000015
【図９】
2009245133.tif 000016
【図１０】
2009245133.tif 000017