(57)【要約】【課題】  移動体オブジェクトの映り込みに対してもフィルタ処理の効果を確実に反映させることができるプログラム、情報記憶媒体及び画像生成システムを提供する。【解決手段】  フィルタ処理の対象となる半透明オブジェクトである水面オブジェクトＷＯＢに移動体オブジェクトＰＯＢが映り込む映り込みイベントが発生した場合に、移動体オブジェクトＰＯＢを所与の基準面に対してフリップさせたオブジェクト空間上の位置に移動体オブジェクトＰＯＢに対応する鏡像オブジェクトＭＯＢを配置設定し、移動体オブジェクトＰＯＢ及び鏡像オブジェクトＭＯＢを描画した後に水面オブジェクトＷＯＢを描画した元画像に対してフィルタ処理を行う。【選択図】      図４
2006318388.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間における仮想カメラから見た画像を生成するためのプログラムであって、
移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生したか否かを判定するイベント判定部と、
前記映り込みイベントが発生したと判定された場合に、移動体オブジェクトを所与の基準面に対してフリップさせた位置に該移動体オブジェクトの鏡像オブジェクトを配置設定する鏡像オブジェクト設定部と、
前記移動体オブジェクト及び前記鏡像オブジェクトを描画した後に前記半透明オブジェクトを描画した元画像に対してフィルタ処理を行う描画部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記オブジェクト空間に前記半透明オブジェクトに対応した仮想反射面オブジェクトが配置設定されており、
前記イベント判定部が、
前記仮想カメラの視線ベクトルを前記仮想反射面オブジェクトで反射させた反射視線ベクトルと前記移動体オブジェクトとの交差判定を行って、前記映り込みイベントが発生したか否かを判定することを特徴とするプログラム。
【請求項３】
請求項１において、
前記オブジェクト空間に前記半透明オブジェクトに対応した仮想反射面オブジェクトが配置設定されており、
前記イベント判定部が、
前記移動体オブジェクトを内包するバウンディングボリュームを設定し、前記仮想カメラの視線ベクトルを前記仮想反射面オブジェクトで反射させた反射視線ベクトルと前記バウンディングボリュームとの交差判定を行って、前記映り込みイベントが発生したか否かを判定することを特徴とするプログラム。
【請求項４】
請求項２または３において、
前記仮想反射面オブジェクトが複数のプリミティブ面に分割されており、
前記イベント判定部が、
前記視線ベクトルと交差しないプリミティブ面については、前記反射視線ベクトルの計算処理を省略することを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記描画部が、
前記半透明オブジェクトを前記移動体オブジェクト及び前記鏡像オブジェクトを含むオブジェクト群とは異なるα値で描画した前記元画像のαプレーンに設定されたα値をマスク情報として、前記画像に対してフィルタ処理を行うことを特徴とするプログラム。
【請求項６】
請求項５において、
前記描画部が、
前記元画像のうち前記半透明オブジェクトの描画領域のみを、前記元画像のαプレーンに設定されたα値をマスク情報としてコピーしたワーク画像を生成し、該ワーク画像に基づいてフィルタ画像を生成し、前記元画像と該フィルタ画像とを合成する前記フィルタ処理を行うことを特徴とするプログラム。
【請求項７】
請求項５において、
前記描画部が、
前記元画像をコピーしたワーク画像に基づいてフィルタ画像を生成し、該フィルタ画像のうち前記半透明オブジェクトの描画領域のみを、前記元画像のαプレーンに設定されたα値をマスク情報として元画像に合成する処理を行うことを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
所与の制御情報に基づいて仮想カメラを制御する仮想カメラ制御部と、
前記仮想カメラの制御情報に基づいて、前記仮想カメラの位置、方向、および画角の少なくとも一つが変化したと判断される場合に、前記フィルタ処理のフィルタ強度パラメータを変更するパラメータ設定部としてコンピュータを機能させることを特徴とするプログラム。
【請求項９】
請求項８において、
前記移動体オブジェクトに対して前記仮想カメラの注視点が設定され、
前記パラメータ設定部が、
前記移動体オブジェクトが前記オブジェクト空間内を移動することによって前記仮想カメラの注視点が移動した場合に、その移動距離に応じて前記フィルタ強度パラメータを変更することを特徴とするプログラム。
【請求項１０】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜９のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１１】
オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、
移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生したか否かを判定するイベント判定部と、
前記映り込みイベントが発生したと判定された場合に、移動体オブジェクトを所与の基準面に対してフリップさせた位置に該移動体オブジェクトの鏡像オブジェクトを配置設定する鏡像オブジェクト設定部と、
前記移動体オブジェクト、前記鏡像オブジェクト、及び前記半透明オブジェクトを描画する描画部と、
を含み、
前記描画部が、
前記移動体オブジェクト及び前記鏡像オブジェクトを描画した後に前記半透明オブジェクトを描画した元画像に対してフィルタ処理を行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関係する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム（ＲＰＧ）を楽しむことができる画像生成システムを例にとれば、プレーヤは、自身の分身であるプレーヤキャラクタ（プレーヤオブジェクト）を操作してオブジェクト空間内のマップ上で移動させ、敵キャラクタ（敵オブジェクト）と対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【０００３】
このような画像生成システムでは、水面の揺らぎ（さざ波）などを表現する場合に、一度描画した画像（元画像）に対して、さらなる処理を施して、元の画像とは異なる雰囲気の画像を作成するポストフィルタ手法（ポストエフェクト手法）が用いられる。例えば、時間経過に応じて元画像をゆがませる揺らぎフィルタ処理により、水面の揺らぎを表現することができる。ところで、このような水面の揺らぎを表現する場合においては、水際に存在するキャラクタが水面に映り込む様子などもリアルに表現されることが好ましく、キャラクタの映り込み画像にもポストフィルタの効果が確実に反映できる技術が望まれている。特にキャラクタが移動体オブジェクトである場合には、オブジェクト空間内における位置が時々刻々と変化するために、その変化の様子に合わせた映り込み表現が行われることが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上記事情に鑑みてなされたものであり、移動体オブジェクトの映り込みに対してもフィルタ処理の効果を確実に反映させることができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生したか否かを判定するイベント判定部と、前記映り込みイベントが発生したと判定された場合に、移動体オブジェクトを所与の基準面に対してフリップさせた位置に該移動体オブジェクトの鏡像オブジェクトを前記オブジェクト空間に配置設定する鏡像オブジェクト設定部と、前記移動体オブジェクト及び前記鏡像オブジェクトを描画した後に前記半透明オブジェクトを描画した元画像に対してフィルタ処理を行う描画部と、を含む画像生成システムに関係する。また、本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００６】
コンピュータとは、プロセッサ（処理部：ＣＰＵあるいはＧＰＵなど）、メモリ（記憶部）、入力装置、及び出力装置を基本的な構成要素とする物理的装置（システム）をいう。以下においても同様である。
【０００７】
本発明によれば、移動体オブジェクト及び移動体オブジェクトに対応する鏡像オブジェクトを描画した後に、フィルタ処理の対象となる半透明オブジェクトが描画される。このため、鏡像オブジェクトの配置設定及びその描画という追加的処理が行われるような場合であっても、半透明オブジェクトに映り込んだ移動体オブジェクトの鏡像に確実にフィルタ処理の効果が反映された画像を生成することができる。
【０００８】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト空間に前記半透明オブジェクトに対応した仮想反射面オブジェクトが配置設定されており、前記イベント判定部が、前記仮想カメラの視線ベクトルを前記仮想反射面オブジェクトで反射させた反射視線ベクトルと前記移動体オブジェクトとの交差判定を行って、前記映り込みイベントが発生したか否かを判定するようにしてもよい。このようにすれば、仮想反射面オブジェクトのサイズによって移動体オブジェクトの映り込みイベントが生じる範囲を予め特定することができる。
【０００９】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト空間に前記半透明オブジェクトに対応した仮想反射面オブジェクトが配置設定されており、前記イベント判定部が、前記移動体オブジェクトを内包するバウンディングボリュームを設定し、前記仮想カメラの視線ベクトルを前記仮想反射面オブジェクトで反射させた反射視線ベクトルと前記バウンディングボリュームとの交差判定を行って、前記映り込みイベントが発生したか否かを判定するようにしてもよい。このようにすれば、簡便に移動体オブジェクトの映り込みイベントが発生するか否かを判定することができる。
【００１０】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記仮想反射面オブジェクトが複数のプリミティブ面に分割されており、前記イベント判定部が、前記視線ベクトルと交差しないプリミティブ面については、前記反射視線ベクトルの計算処理を省略するようにしてもよい。このようにすれば、仮想反射面オブジェクトの配置設定範囲が広範囲にわたる場合に、処理を高速化できる。
【００１１】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、前記半透明オブジェクトを前記移動体オブジェクト及び前記鏡像オブジェクトを含むオブジェクト群とは異なるα値で描画した前記元画像のαプレーンに設定されたα値をマスク情報として、前記画像に対してフィルタ処理を行うようにしてもよい。このようにすれば、移動体オブジェクトはフィルタ処理の影響を受けず、半透明オブジェクトに映り込んだ鏡像オブジェクトのみがフィルタ処理の影響を受けた画像を生成することができる。
【００１２】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、前記元画像のうち前記半透明オブジェクトの描画領域のみを、前記元画像のαプレーンに設定されたα値をマスク情報としてコピーしたワーク画像を生成し、該ワーク画像に基づいてフィルタ画像を生成し、前記元画像と該フィルタ画像とを合成する前記フィルタ処理を行うようにしてもよい。このようにすれば、フィルタ処理が必要な部分にだけぼかし処理を施して、局所的なグレア表現などを簡便に行うことができる。
【００１３】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、前記元画像をコピーしたワーク画像に基づいてフィルタ画像を生成し、該フィルタ画像のうち前記半透明オブジェクトの描画領域のみを、前記元画像のαプレーンに設定されたα値をマスク情報として元画像に合成する処理を行うようにしてもよい。例えば、ピクセル入れ替え処理のような元画像の全てのピクセルの色情報が必要なフィルタ処理では、半透明オブジェクトの描画領域の周辺の色情報が失われてしまうと、ノイズの混じったような不自然な画像が生成されてしまう。このため、元画像の全体をコピーしたワーク画像についてピクセル入れ替え処理を行った上で、半透明オブジェクトの描画領域についてのみフィルタ画像と元画像とが合成されるようにすることによって、生成画像が不自然になるような事態を防ぐことができる。
【００１４】
また本発明の画像生成システムでは、所与の制御情報に基づいて仮想カメラを制御する仮想カメラ制御部と、前記仮想カメラの制御情報に基づいて、前記仮想カメラの位置、方向、および画角の少なくとも一つが変化したと判断される場合に、前記フィルタ処理のフィルタ強度パラメータを変更するパラメータ設定部とを含んでいてもよい。また本発明のプログラム及び情報記憶媒体では、上記仮想カメラ制御部及びパラメータ設定部としてコンピュータを機能させるようにしてもよい。このようにすれば、仮想カメラの位置、方向、及び画角の少なくとも一つが変化したと判断される場合にフィルタ強度パラメータが変更されるので、フィルタ処理の元画像への影響度を適切に調整することができる。このため、フィルタ処理後の画像が見栄えの悪い不自然なものとなることを防止することができ、高品質な映像を作成することができるようになる。
【００１５】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクトに対して前記仮想カメラの注視点が設定され、前記パラメータ設定部が、前記移動体オブジェクトが前記オブジェクト空間内を移動することによって前記仮想カメラの注視点が移動した場合に、その移動距離に応じて前記フィルタ強度パラメータを変更するようにしてもよい。このようにすれば、注目すべき移動体オブジェクトがオブジェクト空間内で移動する場合に限って、フィルタ強度パラメータを変更すればよいので、処理が簡便になる。
【発明を実施するための最良の形態】
【００１６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１７】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１８】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００１９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２４】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、パラメータ設定部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２５】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２６】
オブジェクト空間設定部１１０は、鏡像オブジェクト設定部１１１を含む。
【００２７】
鏡像オブジェクト設定部１１１は、移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生した場合に、移動体オブジェクトを所与の基準面に対してフリップさせたオブジェクト空間上の位置に、移動体オブジェクトの鏡像オブジェクトを配置する。
【００２８】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２９】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００３０】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３１】
なお仮想カメラ制御部１１４は、所与の制御情報に基づいて、位置（視点位置）、方向（視線方向）、画角などを制御する。仮想カメラの位置、方向、画角の変化情報、注視点の移動情報（移動距離、移動方向）、オブジェクトの移動情報や回転情報、あるいは操作部１６０の操作情報など、種々の情報を仮想カメラの制御情報として任意に定めることができる。例えば、注視点の移動情報を仮想カメラの制御情報とした場合には、オブジェクト空間において注視点の位置が変更された場合に、その移動距離や移動方向、言い換えれば注視点のワールド座標（Ｘ、Ｙ、Ｚ）の変化に応じて仮想カメラの視点位置（位置）、視線方向（方向）、画角等を制御することができる。なお注視点の移動情報という場合、広義には、ワールド座標系での注視点の位置座標の変化情報のみならず、カメラ座標系（視点座標系）やスクリーン座標系での注視点の位置座標の変化情報をも含む。また仮想カメラの注視点は、オブジェクトに関連づけて設定することができ、例えば、操作部１６０の操作情報に基づいて、移動体オブジェクトをオブジェクト空間内で移動あるいは動作させることができるようなシステムにおいては、移動体オブジェクトの任意の代表点（例えば、中心座標）を注視点として設定することができる。この場合には、移動体オブジェクトの移動あるいは動作に追従して注視点が移動するため、結果的には移動体オブジェクトの移動に追従するように仮想カメラの位置、方向、画角等が制御されることになる。
【００３２】
イベント判定部１１６は、移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生したか否かを判定する。
【００３３】
具体的には、仮想カメラの視線ベクトルを仮想反射面オブジェクトで反射させた反射視線ベクトルと移動体オブジェクトとの交差判定を行って、映り込みイベントが発生したか否かを判定する。
【００３４】
またイベント判定部１１６は、反射視線ベクトルと移動体オブジェクトとの交差判定を行う代わりに、移動体オブジェクトを内包するバウンディングボリューム（バウンディングボックス、バウンディングスフィア、円柱、四角錐等）を設定して、そのバウンディングボリュームと反射視線ベクトルとの交差判定によって、映り込みイベントが発生したか否かを判定することもできる。このようにすれば、処理を簡便化することができる。
【００３５】
また仮想反射面オブジェクトが複数のプリミティブ面に分割されて構成されていてもよく、この場合には、イベント判定部１１６が、視線ベクトルと交差しないプリミティブ面については、反射視線ベクトルの計算処理を省略することができる。このようにすれば、反射視線ベクトルの計算処理ルーチンを全てのプリミティブ面について行う必要がなくなるため、処理を高速化することができる。
【００３６】
パラメータ設定部１１８は、フィルタ処理の影響度を決めるフィルタ強度パラメータを設定する処理を行い、特に仮想カメラの制御情報に基づいて、仮想カメラの位置、方向、および画角の少なくとも一つが変化したと判断される場合には、フィルタ処理のフィルタ強度パラメータを変更する処理を行う。例えば、仮想カメラの注視点の移動距離情報に基づいて、仮想カメラの位置、方向、および画角の少なくとも一つが変化したと判断される場合に、フィルタ強度パラメータを変更することができる。なお移動体オブジェクトに対して注視点が設定されている場合には、移動体オブジェクトがオブジェクト空間内を移動することによって仮想カメラの注視点が移動した場合に、その移動距離に応じてフィルタ強度パラメータを変更してもよい。
【００３７】
ここでフィルタ処理の一例としてピクセル入れ替え処理を含むフィルタ処理を行う場合には、ピクセル入れ替え処理におけるピクセル入れ替え距離が減少するようにフィルタ強度パラメータを変更することができる。例えば、ピクセル入れ替え処理が周期関数に基づいてピクセル入れ替え距離が決定される処理である場合に、周期関数の振幅成分パラメータを減少させたり、周波数成分パラメータを増加させたりするパラメータ変更処理を行うことができる。ピクセル入れ替え処理とは、第Ｋのピクセルの色情報を所与のルールに従って第Ｌのピクセルの色情報に入れ替える処理であって、ピクセル入れ替え距離とは、第Ｋのピクセルと第Ｌのピクセルとの間の変位（距離）のことである。なおピクセル入れ替え処理では、ピクセルの入れ替えが生じないピクセルが存在していてもよく、あるピクセルの色情報が複数のピクセルの色情報として入れ替えられてもよい。
【００３８】
またフィルタ強度パラメータの変更処理は、仮想カメラの注視点の移動距離と予め設定しておいたしきい値との関係において、その許否を制御することができる。このようにすれば、頻繁にフィルタ強度パラメータが変更されてしまって、画像の見栄えが悪くなることを防ぐことができる。具体的には、仮想カメラの注視点の移動距離が所与のしきい値より大きい場合に、フィルタ強度パラメータを第１のレベルから第１のレベルより低い第２のレベルへ連続的に近づける処理を行うことができる。この場合に、フィルタ強度パラメータを第１のレベルから第２のレベルに向かって徐々に近づくように変化させることが好ましい。また仮想カメラの注視点の移動距離が一旦しきい値を超えた後にしきい値を下回るように変化した場合には、フィルタ強度パラメータを第２のレベルから第１のレベルへ戻す処理を行うことができる。この場合にも、フィルタ強度パラメータを第２のレベルから第１のレベルに向けて連続的に変化させるようにすることが好ましい。
【００３９】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（オブジェクトデータ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数のプリミティブ）を描画バッファ１７２（フレームバッファや中間バッファ（ワークバッファ）などのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように描画処理を行うこともできる。
【００４０】
描画部１２０は、描画処理として、ジオメトリ処理、テクスチャマッピング、陰面消去処理、αブレンディング等を行う。
【００４１】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００４２】
テクスチャマッピングは、テクスチャ記憶部１７６に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７６からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やテクセルの補間としてバイリニア補間などを行う。
【００４３】
また本実施形態では、テクスチャマッピングとして、ＬＵＴ記憶部１７５に記憶されるインデックスカラー・テクスチャマッピング用のカラールックアップテーブル（ＣＬＵＴ）を用いたテクスチャマッピングを行うこともできる。この場合には、元画像の各ピクセルの相対位置あるいは元画像を分割した分割ブロックの各ピクセルの相対的位置に基づいて定められる番号（色）をインデックス番号（インデックス色）として設定したインデックステクスチャを、インデックス番号と画像情報（Ｒ成分、Ｇ成分、Ｂ成分、Ａ成分（α成分））とを対応づけるカラールックアップテーブルを参照しながら、仮想オブジェクト（表示画面サイズのポリゴン、分割ブロックサイズのポリゴン）に対してテクスチャマッピングを行う。ピクセル入れ替え処理を行う場合には、元画像あるいは元画像の分割ブロックに対応するインデックステクスチャの各テクセルに与えられたインデックス番号を入れ替えるためのインデックステクスチャを用意し、そのインデックステクスチャをカラールックアップテーブルを参照しながら仮想オブジェクトにテクスチャマッピングすることによってピクセル入れ替え画像（フィルタ画像）を生成することができる。
【００４４】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７８（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７４に格納されるＺ値を参照する。そして参照されたＺバッファ１７４のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７４のＺ値を新たなＺ値に更新する。
【００４５】
αブレンディングとしては、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００４６】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。なお単純加算の場合はα＝１として下式（４）〜（６）の処理を行う。
【００４７】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。なお単純減算の場合はα＝１として下式（７）〜（９）の処理を行う。
【００４８】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７２に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７２に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４９】
そして本実施形態では、描画部１２０が、移動体オブジェクト及び鏡像オブジェクトを描画した後に半透明オブジェクトを描画した元画像に対してフィルタ処理を行う。フィルタ処理としては、ぼかし処理やピクセル入れ替え処理等を行うことができ、その際に元画像に対応するフィルタ画像を生成して、元画像とフィルタ画像とを合成することにより元画像に対してフィルタ処理を施すことができる。元画像とフィルタ画像との合成手法としては、αブレンディング（通常αブレンディング、加算αブレンディング、減算αブレンディング）やαテストを用いた半透明描画などがある。
【００５０】
また本実施形態では、描画部１２０が、半透明オブジェクトを移動体オブジェクト及び鏡像オブジェクトを含むオブジェクト群とは異なるα値で描画する。そして描画部１２０は、元画像のαプレーンに設定されたα値をマスク情報として用いたフィルタ処理を行うことができる。これにより元画像の所与の描画領域にのみフィルタ処理の効果が付加された画像を生成することができる。すなわち元画像に対して部分フィルタ処理を施すことができる。
【００５１】
元画像のαプレーンに設定されるα値をマスク情報となるように描画する手法としては、半透明オブジェクトの頂点の頂点色のα成分をα≧α１に設定し、他のオブジェクト（移動体オブジェクト、鏡像オブジェクト等）の頂点の頂点色のα成分をα＜α１に設定しておく手法、半透明オブジェクトにマッピングされるテクスチャのαプレーンにα≧α１を設定し、他のオブジェクト（移動体オブジェクト、鏡像オブジェクト等）にマッピングされるテクスチャのαプレーンにα＜α１を設定しておく手法、あるいは半透明オブジェクトの頂点色のα成分と、その半透明オブジェクト用のテクスチャのαプレーンに設定されたα値を乗算した値αがα≧α１となるように設定し、他のオブジェクト（移動体オブジェクト、鏡像オブジェクト等）の頂点色のα成分と、他のオブジェクト用のテクスチャのαプレーンに設定されたα値を乗算した値がα＜α１となるように設定しておく手法等がある。オブジェクトの頂点色のα成分にマスク情報を設定した場合、そのオブジェクトデータは、オブジェクトデータ記憶部１７６に記憶される。テクスチャのαプレーンにマスク情報を設定した場合、オブジェクトにマッピングされるテクスチャは、テクスチャ記憶部１７３に記憶される。
【００５２】
また描画部１２０は、フィルタ処理の内容に応じて元画像のαプレーンに設定されたマスク情報（α値）の使い方を切り替えている。
【００５３】
例えば、ぼかし処理を含むフィルタ処理（第１のフィルタ処理）を行う場合には、元画像のうち半透明オブジェクトの描画領域のみを、元画像のαプレーンに設定されたα値をマスク情報としてコピーしたワーク画像を生成し、そのワーク画像に基づいてフィルタ画像を生成し、元画像とフィルタ画像とを合成する処理を行う。
【００５４】
また例えば、ピクセル入れ替え処理を含むフィルタ処理（第２のフィルタ処理）を行う場合には、元画像の全体をコピーしたワーク画像に基づいてフィルタ画像を生成し、フィルタ画像のうち半透明オブジェクトの描画領域のみを、元画像のαプレーンに設定されたα値をマスク情報として元画像に合成する処理を行う。
【００５５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５７】
次に本実施形態の手法について図面を用いて説明する。なお以下では、グレアを表現するためのフィルタ処理、あるいはさざ波などの揺らぎを表現するためのフィルタ処理に関して本実施形態の手法を採用した場合について主に説明するが、本実施形態の手法は、このようなフィルタ処理のみならず、種々のフィルタ処理に適用できる。
【００５８】
２．１  鏡像オブジェクトの配置設定手法
本実施形態では、移動体オブジェクトがフィルタ処理の対象となる半透明オブジェクトに映り込む映り込みイベントが発生した場合に、移動体オブジェクトを所与の基準面に対してフリップさせた位置に、移動体オブジェクトの鏡像オブジェクトをオブジェクト空間に配置設定する手法を採用している。以下では、図２に示すように、オブジェクト空間内に、地形オブジェクトＧＯＢ、移動体オブジェクトＰＯＢ、及び水面オブジェクトＷＯＢが配置設定されている場合を例にして説明する。図２に示すオブジェクト空間では、移動体オブジェクトＰＯＢは地形オブジェクトＧＯＢの上を自由に移動でき、水面オブジェクトＷＯＢは半透明オブジェクトとして配置されている。すなわち、移動体オブジェクトＰＯＢが水面オブジェクトＷＯＢで表現される水面の水際に移動してくると、移動体オブジェクトＰＯＢが水面オブジェクトＷＯＢに映り込むイベント（映り込みイベント）が発生する。なお本実施形態の手法は、水面への映り込みのみならず、例えば、大理石への映り込みや、鏡への映り込みなどにも適用できる。
【００５９】
本実施形態では、図３（Ａ）に示すように、映り込みイベントが発生するか否かを移動体オブジェクトＰＯＢを内包するバウンディングボリュームＶｌｍと仮想カメラＶＣの視線ベクトルＶｃを仮想反射面オブジェクトＲＯＢで反射させた反射視線ベクトルＶｒとの交差判定によって行っている。そして反射視線ベクトルＶｒがバウンディングボリュームＶｌｍと交差すると判断される場合には、移動体オブジェクトＰＯＢを所与の基準面に対してフリップさせ、そのフリップした位置に移動体オブジェクトに対応する鏡像オブジェクトＭＯＢを配置設定している。この場合、基準面は、例えば、仮想反射面オブジェクトＲＯＢの面の延長上にある面（延長面）とすることができる。
【００６０】
仮想反射面オブジェクトＲＯＢは、複数の矩形（長方形、正方形）のプリミティブ面からなり、水面オブジェクトＷＯＢと地形オブジェクトＧＯＢとの境界領域（水際）に配置されている。すなわち仮想反射面オブジェクトＲＯＢは、移動体オブジェクトＰＯＢの映り込みが発生する可能性がある領域に水面オブジェクトＷＯＢの一部の領域にオーバーラップさせて配置してある。なお仮想反射面オブジェクトはオブジェクト空間に配置設定されるが描画されないオブジェクトとして扱われる。
【００６１】
反射視線ベクトルＶｒの交差判定用のバウンディングボリュームＶｌｍは、球形のバウンディングスフィアとしている。バウンディングスフィアの代わりに、移動体オブジェクトＰＯＢを内包するバウンディングボックス、円柱、四角錐等を設定するようにしてもよい。
【００６２】
そして反射視線ベクトルＶｒとバウンディングスフィア（バウンディングボリュームＶｌｍ）との交差判定は、例えば、図３（Ｂ）に示すように、反射視線ベクトルＶｒの延長線分とバウンディングスフィアの中心Ｃとの距離ｄが、バウンディングスフィアの半径ｒより短い場合（ｄ＜ｒ）には、両者が交差すると判定し、移動体オブジェクトの半透明オブジェクトへの映り込みが発生すると判断することができる。また例えば、図３（Ｃ）に示すように、反射視線ベクトルＶｒの延長線分とバウンディングスフィアの中心Ｃとの距離ｄが、バウンディングスフィアの半径ｒより長い場合（ｄ＞ｒ）には、両者は交差しないと判断することができる。本実施形態では、このようにして簡便に移動体オブジェクトＰＯＢの映り込みイベントが発生するか否かを判定することができる。なお反射視線ベクトルＶｒと物体（オブジェクト）との交差を、仮想カメラＶＣ（視点）から一定の距離より遠くの物体については検知しないようにしてもよい。
【００６３】
そして移動体オブジェクトＰＯＢの映り込みイベントが発生すると判断されたら、移動体オブジェクトＰＯＢをフリップした位置に鏡像オブジェクトＭＯＢを配置設定して描画する。鏡像オブジェクトＭＯＢの配置設定は、移動体オブジェクトＰＯＢのローカルマトリックスＭｏと、オブジェクトを基準面に垂直にフリップさせるフリップマトリックスＭｆａを乗算して得られるマトリクッスＭｆａ×Ｍｏを、鏡像オブジェクトＭＯＢのローカルマトリクスＭｒとしてワールド座標系に座標変換を行うことにより実現することができる。
【００６４】
なお、オブジェクト空間内で固定的に配置されるオブジェクト（固定オブジェクト）は、鏡面位置（基準面に対してフリップした位置）にフリップしたものを予め配置しておくことができる。移動体オブジェクトＰＯＢはオブジェクト空間内で動くことができるので鏡像オブジェクトＭＯＢを予め固定的に配置しておくことができないため、本実施形態のように映り込みを都度判定して、鏡像オブジェクトＭＯＢの配置設定を行う必要がある。また鏡像オブジェクトＭＯＢは、移動体オブジェクトＰＯＢをローカルマトリックス変換で配置設定した３Ｄオブジェクトなので、移動体オブジェクトＰＯＢの動きに合わせてモーションさせることができる。
【００６５】
また仮想反射面オブジェクトＲＯＢは複数のプリミティブ面から構成することができ、仮想カメラＶＣからの視線ベクトルとの交点を持たないプリミティブ面については、反射視線ベクトルＶｒの計算処理を省略して、処理負荷を軽くすることができる。またオブジェクト空間内に配置されるオブジェクト毎に映り込みの許可・不許可ができるようにしておいてもよい。この場合においても、許可されていないオブジェクト（映り込み不許可オブジェクト）については、反射視線ベクトルＶｒとの交差判定を省略することができる。
【００６６】
２．２  本実施形態のフィルタ手法
本実施形態では、図４（Ａ）に示すような元画像のαプレーンに設定されたα値をマスク情報として扱って、元画像のうちフィルタ処理対象となる水面オブジェクトＷＯＢの描画領域に選択的にフィルタ処理を施すことにより、図４（Ｂ）あるいは図４（Ｃ）に示すように、半透明オブジェクトである水面オブジェクトＷＯＢに映り込んだ移動体オブジェクトＰＯＢの鏡像オブジェクトＭＯＢにもフィルタ処理の効果が反映された画像が生成されるフィルタ手法を採用している。なお図４（Ｂ）では、揺らぎフィルタ処理が施されており、図４（Ｃ）では、グレアフィルタ処理が施されている。
【００６７】
＊揺らぎフィルタの手法
図５（Ａ）〜図５（Ｃ）に、揺らぎフィルタ処理を行う場合のフィルタ画像の生成過程を示す。
【００６８】
具体的には、図５（Ａ）及び図５（Ｂ）に示すように、フィルタ処理を施す元画像（図５（Ｂ））を生成する際に、移動体オブジェクトＰＯＢの鏡像オブジェクトＭＯＢを描画してから、水面オブジェクトＷＯＢを描画している。またフィルタ処理の対象である水面オブジェクト（フィルタ処理対象オブジェクト）ＷＯＢ（α＝α１）を地形オブジェクトＧＯＢ（α＝α２）、や移動体オブジェクトＰＯＢ（α＝α３）とは異なるα値で描画している。図５（Ａ）に示すように、鏡像オブジェクトＭＯＢについては当初、移動体オブジェクトＰＯＢと同様のα値（α＝α３）で描画されるが、図５（Ｂ）に示すように、水面オブジェクトＷＯＢが描画される際に、α値が上書きされて水面オブジェクトＷＯＢと鏡像オブジェクトＭＯＢとがオーバーラップして描画される領域のα値は水面オブジェクトＷＯＢのα値（α＝α１）で描画される。
【００６９】
そして本実施形態では、αテストによりα≧α１の領域にだけ図５（Ｃ）に示すフィルタ画像が合成（半透明描画）されるようにすることで、図４（Ｂ）に示すように、フィルタ処理の対象である鏡像オブジェクトＭＯＢが含まれる水面オブジェクトＷＯＢの描画領域にだけフィルタ処理が施された画像を生成することができる。なお、図５（Ａ）及び図５（Ｂ）に示す例では、オブジェクトの頂点色のα成分（Ａ成分）にマスク情報となるα値を設定してある。すなわち、ジオメトリ処理後のオブジェクトデータによってマスク情報が得られるようになっている。このように本実施形態の揺らぎフィルタ手法では、ジオメトリ処理された半透明オブジェクトである水面オブジェクトＷＯＢを描画するだけで、元画像のαプレーンにマスク情報を描き込むことができる。
【００７０】
また本実施の形態では、ワーク画像に対してピクセル入れ替え処理を行って、図５（Ｃ）に示すフィルタ画像を生成している。このときインデックスカラー・テクスチャマッピングの手法を用いて、周期的にピクセル入れ替え距離が変動するピクセル入れ替え処理を行っている。
【００７１】
具体的には、図６のＡ１に示すように、描画バッファに描画された元画像を複数の分割ブロックに分割して、その分割ブロック単位でピクセル入れ替え処理を行うことによって生成したフィルタ画像（フィルタ処理が施されたオブジェクトの画像）を元画像に合成（半透明描画）するフィルタ処理を行っている。
【００７２】
このとき各分割ブロックは、例えば１６×１６ピクセルのサイズとし、図６のＡ２に示すように、この２５６個のピクセルをそれらの相対位置に基づいてインデックス化したカラールックアップテーブルとして扱うことができる。また図６のＡ３に示すように、カラールックアップテーブル（ＣＬＵＴ）とは別に分割ブロックの各ピクセルの位置をずらしたずらしテーブルを用意し、そのずらしテーブルをインデックステクスチャとして扱うことができる。ずらしテーブルでは、分割ブロックのピクセルの相対位置に基づいて定めたインデックス番号を分割ブロック内におけるピクセルの座標値として扱い、各ピクセルについてピクセル入れ替え距離ΔＹだけずらした位置のピクセルのインデックス番号を設定する。
【００７３】
そして、図６のＡ４に示すように、カラールックアップテーブルを参照しながら、分割ブロックサイズのポリゴン（仮想オブジェクト）に対して、ずらしテーブルに基づいて設定されたインデックステクスチャをテクスチャマッピングする。そして図６のＡ５に示すように、インデックステクスチャをテクスチャマッピングした分割ブロックサイズのポリゴンを元画像における対応位置に描画する。このようにすることで、元画像のピクセルを入れ替える処理を実現することができる。これらの処理を全ての分割ブロックに対して行って元画像に対応するフィルタ画像を生成することができる。最終的には、図６のＡ６に示すように、元画像にフィルタ画像を合成することで元画像に対してポストエフェクトを施すフィルタ処理を行うことができる。
【００７４】
ところで本実施形態では、ピクセル入れ替えを行った図５（Ｃ）に示すフィルタ画像をワークバッファに作成している。この際、ワークバッファにフレームバッファに描画された元画像の全体をコピーすることが好ましい。これとは対照的に水面オブジェクトＷＯＢの描画領域だけをワークバッファに描き込むという部分コピーをする手法が考えられるが、このようにすると、水面オブジェクトＷＯＢの描画領域以外の色情報が失われてしまい、その状態でピクセル入れ替えを行うと、不自然な色のはみ出しがフィルタ画像に現れてしまう。このため、フレームバッファの元画像の全体をワークバッファにコピーして、そのコピー画像（ワーク画像）に対してピクセル入れ替え処理を行ってフィルタ画像を生成することにより、フィルタ画像において不自然な色のはみ出しが現れるという不都合を回避することができる。
【００７５】
＊グレアフィルタの手法
図７（Ａ）〜図７（Ｃ）に、グレアフィルタ処理を行う場合のフィルタ画像の生成過程を示す。
【００７６】
まず、図７（Ａ）に示すように、オブジェクト空間内に配置された仮想カメラから見えるシーン（ビューボリューム内）に存在するオブジェクトをフレームバッファに描画する際に、フィルタ処理対象の半透明オブジェクトである水面オブジェクトＷＯＢの描画領域がα１で描画され、地形オブジェクトＧＯＢがα１より値の小さいα２で描画され、移動体オブジェクトＰＯＢもα１より値の小さいα３で描画される。移動体オブジェクトＰＯＢに対応する鏡像オブジェクトＭＯＢと水面オブジェクトＷＯＢとがオーバーラップする描画領域では、水面オブジェクトＷＯＢが描画される際にα値がα１に書き換えられている。図７（Ａ）に示す例では、オブジェクトの頂点色のα成分（Ａ成分）にマスク情報となるα値を設定してある。すなわち、ジオメトリ処理後のオブジェクトデータによってマスク情報が得られるようになっている。
【００７７】
そしてグレアフィルタをフレームバッファに描画された元画像に対して施す場合には、図７（Ｂ）に示すように、元画像のαプレーンに設定されたα値をマスク情報としてαテストを行い、α≧α１の描画領域だけをフレームバッファよりサイズの小さいワークバッファに縮小コピーする。このときワークバッファの画像情報はクリアしておく（黒く塗りつぶしておく）ことが必要である。図７（Ａ）に示す例では、α≧α１となるのは、フィルタ処理の対象となる水面オブジェクトＷＯＢと鏡像オブジェクトＭＯＢとが含まれる描画領域だけであるので、図７（Ｂ）に示すように、水面オブジェクトＷＯＢと鏡像オブジェクトＭＯＢとが含まれる描画領域のみが縮小コピーされる。そして、ワークバッファに縮小コピーされた画像（ワーク画像）に対して色抽出処理とぼかし処理を行って、図７（Ｃ）に示すように、グレア表現用のフィルタ画像を生成することができる。
【００７８】
ここで、色抽出処理としては、ワーク画像の各ピクセルから基準色より明るい色を抽出して、その差分の色情報を得る処理を行う。例えば、図８のＢ１に示すように、基準色Ｃ１が頂点色に設定された単色の仮想ポリゴン（単色ポリゴン）を用意して、この単色ポリゴンをワークバッファに減算半透明で描画を行う。これにより図８のＢ２に示すように、ワーク画像の任意のピクセルＰの色をＣ２とすると、単色ポリゴンを減算半透明で描画した後のワークバッファに作成される色抽出画像のピクセルＰの色は、Ｃ２−Ｃ１となる。すなわち、色抽出画像では、基準色より暗い色は、黒にクランプされ、基準色より明るい色については、その差分の色となる。このようにある基準色より明るい色だけを求めることで、グレアのかかりやすい領域を特定することができる。
【００７９】
またぼかし処理としては、画像の縮小・拡大を繰り返すことによりバイリニアフィルタ方式で各ピクセルの色情報を補間させて画像をぼかす手法や、バイリニアフィルタ方式でテクスチャ座標をずらしながらテクスチャマッピングを行うことで各ピクセルの色情報を補間させて画像をぼかす手法などがある。ぼかし処理の手法は、上記のものには限られず、種々の手法を採用することができる。例えば、バイリニアフィルタ方式でのテクスチャマッピングにより画像をぼかす手法は、図９のＤ１に示すようにワークバッファのワーク画像をテクスチャとして設定して、そのテクスチャをワークバッファサイズの仮想ポリゴンにテクスチャ座標をずらしながらマッピングすることで実現される。例えば、図９のＤ２に示すように、テクスチャ座標をＸ方向（横方向）にシフトさせてワーク画像に基づくテクスチャを仮想ポリゴンにテクスチャマッピングしたり、図９のＤ３に示すように、テクスチャ座標をＹ方向（縦方向）にシフトさせてワーク画像に基づくテクスチャを仮想ポリゴンにテクスチャマッピングしたりすることでワークバッファの各ピクセルの色情報がバイリニアフィルタ方式で補間されて画像がぼけるようになる。このとき図９のＤ２に示す処理及びＤ３に示す処理を繰返し行うことで、画像のぼかし具合をより強くすることができる。
【００８０】
そして本実施形態のグレアフィルタ手法では、ワーク画像に対して色抽出処理とぼかし処理を行ってワークバッファに作成した図７（Ｃ）に示すフィルタ画像を図７（Ａ）に示すフレームバッファの元画像に加算合成することで、元画像のうち水面オブジェクトＷＯＢと鏡像オブジェクトＭＯＢとが含まれる描画領域付近にのみグレア処理が施された図４（Ｃ）に示したような画像を生成することができる。なお元画像とフィルタ画像との加算合成は、加算αブレンディングにより行うことができる。また本実施形態のグレアフィルタ手法を元画像とフィルタ画像との合成手法を通常αブレンディングによって行えば、フィルタ処理によるソフトフォーカス表現に適用することができる。
【００８１】
２．３  フィルタ強度パラメータの設定手法
本実施形態では、仮想カメラの視点位置、視線方向、および画角の少なくとも一つが変化したと判断される場合に、すなわち仮想カメラが移動、回転、ズーム、あるいはパンなどをする場合に、フィルタ処理のフィルタ強度パラメータを設定変更する手法を採用する。
【００８２】
ここで、本実施形態のフィルタ処理がピクセル入れ替え処理を含む場合に、そのピクセル入れ替え処理におけるピクセル入れ替え距離ΔＹを図１０に示すような周期関数に基づいて設定している。すなわちインデックステクスチャに設定されるずらしテーブルを、周期的に変化するピクセル入れ替え距離ΔＹに応じて書き換えている。なおピクセル入れ替え距離ΔＹを周期的に変化させた複数枚のインデックステクスチャを予め用意しておいてもよい。その周期関数は下式（Ａ）で表される。
【００８３】
ΔＹ＝Ａｓｉｎ（ωｔ＋ｆ（ｘ，ｙ））        （Ａ）
図１０に示すように、Ａは振幅成分パラメータである。ωは周波数成分パラメータである。ｆ（ｘ，ｙ）は、分割ブロック内でのピクセルの位置に基づいて決定される初期位相パラメータである。これらのパラメータのうちフィルタ処理の強さに大きく関連するパラメータは振幅成分パラメータＡと周波数成分パラメータωである。振幅成分パラメータＡが大きいと、ピクセル入れ替え距離ΔＹが大きくなり、揺らぎが大きくなる。また周波数成分パラメータωが小さいと、ピクセル入れ替え周期２π／ωが短くなるため、揺らぎの速度が速くなり単位時間あたりの揺らぎが大きくなる。
【００８４】
また本実施形態では、図１１に示すように、オブジェクト空間内を移動する移動体オブジェクトＯＢに対して仮想カメラＶＣの注視点ＶＰが設定されており、移動体オブジェクトＯＢが移動すると、仮想カメラＶＣの注視点ＶＰもオブジェクト空間内を移動する。仮想カメラＶＣは、注視点ＶＰを向くように視線方向が制御される。このため、移動体オブジェクトＯＢが移動して注視点ＶＰの位置（ワールド座標系の３次元座標）が変更されると、仮想カメラＶＣから見えるシーンは異なるものとなる。
【００８５】
ところで本実施形態で採用している元画像へのフィルタ処理は、２次元的なピクセル加工処理であるため、仮想カメラの視点位置、視線方向、画角等の変化とは無関係なものである。このため、時間パラメータに応じてその効果が変動するようなフィルタ処理であると、仮想カメラの移動による画像情報の変動とフィルタ処理の効果による画像情報の変動とが干渉を起こしてしまい、ある種のエイリアスのようなものが見えてしまうという不都合が生じうる。
【００８６】
そこで本実施の形態では、仮想カメラＶＣの注視点ＶＰの移動距離Ｌに応じてフィルタ処理の強さ、すなわちフィルタ処理の元画像への影響度を決定するフィルタ強度パラメータを設定変更し、フィルタ処理の効果が弱まるように制御している。
【００８７】
例えば、ピクセル入れ替え処理を伴う揺らぎフィルタ処理を元画像に対して行う場合には、図１０に示した周期関数の振幅成分パラメータＡを小さくすることで、ピクセル入れ替え距離ΔＹを短く抑えて揺らぎを小さくすることができる。また周波数成分パラメータωを大きくすることによっても単位時間当たりの揺らぎの変化が小さくなるので、フィルタ処理の効果を弱めることができる。もちろん、振幅成分パラメータＡを小さくするとともに、周波数成分パラメータωを大きくすることが効果的であることはいうまでもない。
【００８８】
またこのようにフィルタ強度パラメータを変更するということは、生成される画像の見栄え変わるということである。このため、フィルタ強度パラメータが頻繁に変更されると、逆に見づらい画像となってしまうおそれもある。このため本実施形態では、図１２に示すように、仮想カメラＶＣの注視点ＶＰの移動距離Ｌが所与のしきい値Ｌｔｈを超えると判断される場合に、振幅成分パラメータＡを第１の振幅レベルＡ１から第１の振幅レベルＡ１より低い第２の振幅レベルＡ２へ設定変更するようにしている。またいったん注視点ＶＰの移動距離Ｌがしきい値Ｌｔｈを上回った後に、しきい値Ｌｔｈを下回るように推移した場合には、第２の振幅レベルＡ２から第１の振幅レベルＡ１へ振幅パラメータＡを戻すようにしている。なお第１の振幅レベルＡ１から第２の振幅レベルＡ２の変化及び第２の振幅レベルＡ２から第１の振幅レベルＡ１への変化は、連続的に目的のレベルへ近づけるようにしている。これにより急激に画像の見栄えが変わってしまうことを防いでいる。また振幅パラメータＡを第２の振幅レベルＡ２から第１の振幅レベルＡ１へと戻すまでの時間ｔ２を第１の振幅レベルＡ１から第２の振幅レベルＡ２へ変化させるまでの時間ｔ１よりも短くしている。揺らぎフィルタ処理を元画像に対して定常的に行う場合には、本来の状態にいち早く戻すことが好ましいからである。
【００８９】
以上に述べたように本実施形態のフィルタ強度パラメータの設定手法によれば、フィルタ処理の元画像への影響度を適切に調整することができる。このため本手法によれば、フィルタ処理後の画像が見栄えの悪い不自然なものとなることを防止することができ、高品質な映像を作成することができるようになる。特に本実施形態の手法は、時間経過に応じてフィルタ処理の効果が変化する場合に好適である。
【００９０】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１３〜図１５のフローチャートを用いて説明する。
【００９１】
はじめに図１３のフローチャートを用いて説明する。
【００９２】
まず、移動体オブジェクトの描画を行う（Ｓ１０）。続いて、計算すべき反射視線ベクトルの有無を確認する（ステップＳ１１）。すなわち、仮想反射面オブジェクトが仮想カメラの視線ベクトルとの交点を持つ場合には、計算すべき反射視線ベクトルが存在すると判断される。この処理は、仮想反射面オブジェクトを構成する全てのプリミティブ面について行い、視線ベクトルとの交点を持たないプリミティブ面については、反射視線ベクトルの計算処理を省略することができる。
【００９３】
次に、計算すべき反射視線ベクトルが存在すると判断されたら（ステップＳ１１でＹＥＳ）、反射視線ベクトルと移動体オブジェクトを内包するバウンディングスフィアとの交差判定を行う（ステップＳ１２）。すなわち、図３（Ａ）〜図３（Ｃ）において説明してように、反射視線ベクトルの延長線分とバウンディングスフィアの中心との間の距離とバウンディングスフィアの半径とを比較して、反射視線ベクトルがバウンディングスフィアとの交点を持つか否かを判断する。そして、反射視線ベクトルとバウンディングスフィアとが交差していると判断されたら（ステップＳ１３でＹＥＳ）、移動体オブジェクトを仮想反射面オブジェクトの面を延長した面を基準面としてフリップさせた鏡像オブジェクトを配置設定して描画する（ステップＳ１４）。
【００９４】
その後半透明オブジェクトを描画して元画像を生成し（ステップＳ１５）、生成された元画像に対してフィルタ処理を行う（ステップＳ１６）。
【００９５】
次に図１４のフローチャートを用いて、図１３のステップＳ１６のフィルタ処理として揺らぎフィルタ処理を行う場合を説明する。
【００９６】
まず、さざ波が起きる領域のα値がα１（例えば１２８）以上、さざ波が起きない領域のα値がα１未満となるように仮想カメラから見たシーンをフレームバッファに描画して元画像を生成する（ステップＳ２０）。
【００９７】
次に、仮想カメラの位置、方向、画角等の変化情報に基づいて、波を強めるべきか（波面の動きが大きくなるのか）、波を弱めるべきか（波面の動きが小さくなるのか）を決定する（ステップＳ２１）。例えば、仮想カメラの注視点の移動距離がしきい値を超えていれば、波を弱めるべきであると判断する。また例えば、仮想カメラの注視点の移動距離がしきい値を超えていた状態からしきい値を下回るように推移した場合には、波を強めるべきであると判断する。
【００９８】
次に、フィルタ強度パラメータの設定処理を行う。具体的には、波面の動きが大きなさざ波の場合の波の強さレベル（第１のレベル）と波面の動きが小さなさざ波の場合の波の強さレベル（第２のレベル）とを予め設定しておき、現在の波の強さレベルと目的値とを比較することによって、現在の波の強さレベルが目的とする波の強さレベルと異なっていると判断される場合には、波の強さの値（周期関数の振幅成分パラメータあるいは周波数成分パラメータ）を目的値（第１のレベルあるいは第２のレベル）に近づける処理を行う（ステップＳ２２）。
【００９９】
次に、ステップＳ２２で設定された波の強さレベルに基づいて、ピクセルの各点の位置座標をずらすためのテーブルデータ（ずらしテーブル）を作成する（ステップＳ２３）。このテーブルデータは、インデックスカラー・テクスチャマッピングにおいて、インデックステクスチャとして扱われる。
【０１００】
次に、フレームバッファ（表示画面）の１／２サイズのワークバッファ（縮小バッファ）を用意し、そのワークバッファに画面全体（元画像）を縮小コピーする（ステップＳ２４）。
【０１０１】
次に、ワークバッファに縮小コピーされた画面（ワーク画像）を１６×１６（ピクセル）のサイズのブロックに分割し、各分割ブロックを、ブロック内の相対的位置によってインデックス化された２５６個のカラールックアップテーブル（ＣＬＵＴ）とみなして、インデックスカラー・テクスチャマッピング用のカラールックアップテーブルとして設定する（ステップＳ２５）。
【０１０２】
次に、ピクセルの位置座標をずらすテーブルデータを２５６色のインデックステクスチャとみなして、各分割ブロックに対応する位置にインデックステクスチャを、ステップＳ１５で設定されたカラールックアップテーブルを参照しながらテクスチャマッピングしたポリゴン（仮想オブジェクト）を描画する（ステップＳ２６）。これによりワークバッファにフィルタ画像が作成される。
【０１０３】
次にピクセル入れ替え処理の済んだ画像（フィルタ画像）を格納するワークバッファをフレームバッファのサイズに拡大してフレームバッファに書き込む（ステップＳ２７）。このときαテストを用いて、α値ビット列の最上位ビットの状態を判定して、α値がα１（例えば１２８）以上のピクセルにだけワークバッファに格納された画像を拡大した画像のピクセルを半透明描画によりフレームバッファの元画像に合成する。
【０１０４】
次に図１５のフローチャートを用いて、図１３のステップＳ１６のフィルタ処理としてグレアフィルタ処理を行う場合を説明する。
【０１０５】
まず、グレアが起きる領域のα値がα１（例えば１２８）以上、グレアが起きない領域のα値がα１未満となるように仮想カメラから見たシーンをフレームバッファに描画して元画像を生成する（ステップＳ３０）。
【０１０６】
次に、フレームバッファの１／２のサイズのワークバッファ（第１のワークバッファ）ＷＢ１をクリアする。すなわちワークバッファＷＢ１を黒色（Ｒ，Ｇ，Ｂ）＝（０，０，０）に塗りつぶしておく（ステップＳ３１）。
【０１０７】
次に、ワークバッファＷＢ１にフレームバッファの元画像を縮小コピーする（ステップＳ３２）。その際に、αテストを用いてα値ビット列の最上位ビットの状態を判定して、α値がα１（例えば１２８）以上のピクセルにだけワークバッファに縮小コピーする部分縮小コピーを行う。そして、ワークバッファＷＢ１に、単色ポリゴンの画像を減算合成する（ステップＳ３３）。すなわち図３で説明した色抽出処理により色の強さの低い成分が落とされる。
【０１０８】
次に、フレームバッファの１／４のサイズのワークバッファ（第２のワークバッファ）ＷＢ２にワークバッファＷＢ１の画像を縮小コピーする（ステップＳ３４）。そして図９のＤ１，Ｄ２において説明した手法を利用して、ワークバッファＷＢ２の画像を横にずらした画像をワークバッファＷＢ２に加算合成して、横方向（Ｘ方向）に画像をぼかす処理を行う（ステップＳ３５）。さらに、図９のＤ１，Ｄ３において説明した手法を利用して、ワークバッファＷＢ２の画像を縦にずらした画像をワークバッファＷＢ２に加算合成して、縦方向（Ｙ方向）に画像をぼかす処理を行う（ステップＳ３６）。
【０１０９】
次に、フレームバッファの１／８のサイズのワークバッファ（第３のワークバッファ）ＷＢ３にワークバッファＷＢ２の画像を縮小コピーする（ステップＳ３７）。そしてステップＳ３５と同様の手法で、ワークバッファＷＢ３の画像を横にずらした画像をワークバッファＷＢ３に加算合成して、横方向（Ｘ方向）に画像をぼかす処理を行う（ステップＳ３８）。さらに、ステップＳ３６と同様の手法で、ワークバッファＷＢ３の画像を縦にずらした画像をワークバッファＷＢ３に加算合成して、縦方向（Ｙ方向）に画像をぼかす処理を行う（ステップＳ３９）。
【０１１０】
次に、ワークバッファＷＢ２の画像をフレームバッファのサイズに拡大して、その拡大された画像を適当な係数（第１のα値）を掛けてフレームバッファに加算合成する（ステップＳ４０）。またワークバッファＷＢ３の画像をフレームバッファのサイズに拡大して、その拡大された画像を適当な係数（第２のα値）を掛けてフレームバッファに加算合成する（ステップＳ４１）。
【０１１１】
４．ハードウェア構成
図８に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１１２】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１１３】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１１４】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１１５】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１１６】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１１７】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１１８】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また鏡像オブジェクトの配置設定手法、グレアフィルタの手法、揺らぎフィルタの手法等は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１１９】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１２０】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施形態の手法の説明図。
【図３】図３（Ａ）〜図３（Ｃ）は本実施形態の手法の説明図。
【図４】図４（Ａ）〜図４（Ｃ）は本実施形態の手法の説明図。
【図５】図５（Ａ）〜図５（Ｃ）は本実施形態の手法の説明図。
【図６】本実施形態の手法の説明図。
【図７】図７（Ａ）〜図７（Ｃ）は本実施形態の手法の説明図。
【図８】本実施形態の手法の説明図。
【図９】本実施形態の手法の説明図。
【図１０】本実施形態の手法の説明図。
【図１１】本実施形態の手法の説明図。
【図１２】本実施形態の手法の説明図。
【図１３】本実施形態の具体的な処理例を示すフローチャート。
【図１４】本実施形態の具体的な処理例を示すフローチャート。
【図１５】本実施形態の具体的な処理例を示すフローチャート。
【図１６】ハードウェア構成例。
【符号の説明】
【０１２１】
ＰＯＢ  移動体オブジェクト、ＷＯＢ  水面オブジェクト（半透明オブジェクト）、
ＭＯＢ  鏡像オブジェクト、ＧＯＢ  地形オブジェクト、
ＶＣ  仮想カメラ、Ｖｃ  視線ベクトル、Ｖｒ  反射視線ベクトル、
Ｖｌｍ  バウンディングボリューム、
１００  処理部、
１１０  オブジェクト空間設定部、１１１  鏡像オブジェクト設定部、
１１２  移動・動作処理部、１１４  仮想カメラ制御部、１１６  イベント判定部、
１１８  パラメータ設定部、１２０  描画部、１３０  音生成部、
１６０  操作部、１７０  記憶部、
１７１  主記憶部、１７２  描画バッファ、１７３  テクスチャ記憶部、
１７４  Ｚバッファ、１７５  ＬＵＴ記憶部、１７６  オブジェクトデータ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006318388.tif 000003
【図２】
2006318388.tif 000004
【図３】
2006318388.tif 000005
【図４】
2006318388.tif 000006
【図５】
2006318388.tif 000007
【図６】
2006318388.tif 000008
【図７】
2006318388.tif 000009
【図８】
2006318388.tif 000010
【図９】
2006318388.tif 000011
【図１０】
2006318388.tif 000012
【図１１】
2006318388.tif 000013
【図１２】
2006318388.tif 000014
【図１３】
2006318388.tif 000015
【図１４】
2006318388.tif 000016
【図１５】
2006318388.tif 000017
【図１６】
2006318388.tif 000018