(57)【要約】【課題】  視点の向きと光源の向きに応じてオブジェクトを構成するプリミティブの描画ピクセルの色に反映させる光源の色を変化させることが可能なプログラム、情報記憶媒体、及び画像生成システムを提供すること。【解決手段】  オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、前記オブジェクト空間にオブジェクトと光源を配置するオブジェクト空間設定部と、前記オブジェクトを構成するプリミティブの描画ピクセルの色に前記光源の色を反映させる処理を行う光源処理部としてコンピュータを機能させ、前記光源処理部が、前記視点の向きと前記光源の向きとに基づいて、順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、前記描画ピクセルの色に反映させる色を求めることを特徴とする。【選択図】図９
2010033289.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、
前記オブジェクト空間にオブジェクトと光源を配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルの色に前記光源の色を反映させる処理を行う光源処理部としてコンピュータを機能させ、
前記光源処理部が、
前記視点の向きと前記光源の向きとに基づいて、順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、前記描画ピクセルの色に反映させる色を求めることを特徴とするプログラム。
【請求項２】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項３】
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間にオブジェクトと光源を配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルの色に前記光源の色を反映させる処理を行う光源処理部とを含み、
前記光源処理部が、
前記視点の向きと前記光源の向きとに基づいて、順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、前記描画ピクセルの色に反映させる色を求めることを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来から、複数のポリゴンが設定されるオブジェクト空間（仮想的な３次元空間）内において、仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、オブジェクトの法線ベクトルと視線ベクトルとに基づいて、オブジェクトの後方にある光源からの光がオブジェクトのシルエット（輪郭）を透過して見えるシルエット色を求めるものが知られている（例えば、特許文献１）。このような画像生成システムでは、光源色を基準色としてシルエット色を求めている。
【特許文献１】特開２００７−２２６５７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の画像生成システムでは、視点の向きが逆光状態であるか順光状態であるかに関わらずシルエット色の基準色は一定であり、視点の向きと光源の向きに応じたシルエット色の表現を行うことができなかった。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、
視点の向きと光源の向きに応じてオブジェクトを構成するプリミティブの描画ピクセルの色に反映させる光源の色を変化させることが可能なプログラム、情報記憶媒体、及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、
前記オブジェクト空間にオブジェクトと光源を配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルの色に前記光源の色を反映させる処理を行う光源処理部としてコンピュータを機能させ、
前記光源処理部が、
前記視点の向きと前記光源の向きとに基づいて、順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、前記描画ピクセルの色に反映させる色を求めることを特徴とする。
【０００７】
また本発明は上記各部を含む画像生成システムに関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【０００８】
本発明によれば、視点の向きと光源の向きに応じてオブジェクトを構成するプリミティブの描画ピクセルの色に反映させる光源の色を変化させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１０】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１１】
操作部１６０は、プレーヤがオブジェクト（プレーヤキャラクタ、移動体）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００１２】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７２と、最終的な表示画像等が記憶される描画バッファ１７４と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトに対応付けられたテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００１３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００１４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００１５】
通信部１９６は外部（例えば他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００１６】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【００１７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００１８】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００１９】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２０】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）や光源をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２１】
移動・動作処理部１１２（移動制御部）は、オブジェクト（キャラクタ、移動体オブジェクト等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２２】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。例えば、仮想カメラ制御部１１４は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行うようにしてもよい。すなわち、仮想カメラによりオブジェクト（例えばキャラクタ、移動体オブジェクト）を後方から撮影するために、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００２３】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００２４】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（視点を基準とした透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００２５】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００２６】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００２７】
そして描画部１２０は、オブジェクトを描画する際にテクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００２８】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点やピクセルに設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００２９】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００３０】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００３１】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００３２】
特に本実施形態の描画部１２０は、光源処理部１２２を含む。光源処理部１２２は、前記オブジェクトを構成するプリミティブの描画ピクセルの色に前記光源の色を反映させる処理を行う。
【００３３】
また光源処理部１２２は、前記視点の向きと前記光源の向きとに基づいて、順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、前記描画ピクセルの色に反映させる色を求める処理を行う。
【００３４】
また描画部１２０は、透視変換されたオブジェクトの輪郭に近いほど当該オブジェクトを構成するプリミティブの描画ピクセルの輝度を高める処理を行うようにしてもよい。具体的には、視点の向きと前記プリミティブの向きに応じた法線ベクトルとの内積に応じて前記プリミティブの描画ピクセルの輝度を高める処理を行う。
【００３５】
また描画部１２０は、オブジェクト空間の所与の軸方向に向く基準ベクトルと、前記プリミティブの向きに応じた法線ベクトルとの内積に応じて、前記プリミティブの描画ピクセルの輝度を減衰させる処理を行うようにしてもよい。
【００３６】
また描画部１２０は、前記視点の向きと前記プリミティブの向きに応じて前記オブジェクトに対応づけられたテクスチャのテクスチャ座標を設定し、設定されたテクスチャ座標に基づいて参照されるテクセルの色に従って前記プリミティブの描画ピクセルの輝度を変化させる処理を行うようにしてもよい。
【００３７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００３８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００３９】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００４０】
２−１．基準ベクトルによる輝度調整
本実施形態では、透視変換されたオブジェクトの輪郭に近いほどオブジェクトを構成するプリミティブの描画ピクセルの輝度を高める処理を行う。
【００４１】
具体的には、図２に示すように、仮想カメラＶＣの視線ベクトルＶＶ（視点の向き）とオブジェクトＯＢを構成するプリミティブの向きに応じた法線ベクトルＮＶとの内積（ＶＶ・ＮＶ）に基づきｃｏｓθ１（θ１は、視線ベクトルＶＶと法線ベクトルＮＶのなす角度）を求め、求めたｃｏｓθ１に基づき輝度増加パラメータＩＰを求めて、求めた輝度増加パラメータＩＰに基づきプリミティブの描画ピクセルの輝度を高める。
【００４２】
ここで輝度増加パラメータＩＰは、次式により求めることができる。
【００４３】
ＩＰ＝１−｜ｃｏｓθ１｜            （１）
従って、仮想カメラから見てオブジェクトＯＢの輪郭での描画ピクセルについて輝度増加パラメータＩＰを求めると、視線ベクトルＶＶと法線ベクトルＮＶのなす角度θ１が９０度になるため、ｃｏｓθ１＝０となり、ＩＰ＝１（最大値）となる。一方仮想カメラからみてオブジェクトＯＢの中心部での描画ピクセルについて輝度増加パラメータＩＰを求めると、θ１が１８０度になるため、ｃｏｓθ１＝−１となり、ＩＰ＝０（最小値）となる。なお式（１）において、｜ｃｏｓθ１｜（ｃｏｓθ１の絶対値）に代えて、（ｃｏｓθ１）ｎ（ｃｏｓθ１の累乗）を用いるようにしてもよい。
【００４４】
そして、輝度増加パラメータＩＰに基づきエフェクト色ＥＣを求める。ここでエフェクト色ＥＣは、エフェクト色の基準色をＳＣとすると、次式により求めることができる。
【００４５】
ＥＣ＝ＩＰ×ＳＣ            （２）
そして、求めたエフェクト色ＥＣとオブジェクトの色とを合成することによって描画ピクセルの色を求める。
【００４６】
図３は、輝度増加パラメータＩＰに基づき描画ピクセルの輝度を高める処理を行った場合の仮想カメラから見える画像の一例である。なお図３は、仮想カメラから見てオブジェクトＯＢの背後に光源がある場合（仮想カメラから見てオブジェクトＯＢの手前側に直接光があたっていない場合）の画像の例である。また図３の例では、基準色ＳＣを白色とした場合を示している。
【００４７】
図３に示すように、描画ピクセルの色は、オブジェクトＯＢの輪郭に近いほど輝度が高くなり、オブジェクトＯＢの輪郭から遠いほど輝度が低くなる。すなわちオブジェクトＯＢの輪郭ではＩＰ＝１となるためＥＣ＝ＳＣとなり描画ピクセルの輝度は最大となり、オブジェクトＯＢの中心部ではＩＰ＝０となるためＥＣ＝０となり描画ピクセルの輝度は最小となる。
【００４８】
ここで、図３に示す例では、オブジェクトＯＢの輪郭のうち、Ｙ軸下方向に存在する地面ＧＲに近い部分（本来輝度が高くなり得ない部分）まで均一に輝度が高くなっており、見た目に不自然な表現となっている。
【００４９】
そこで本実施形態では、図４に示すように、オブジェクト空間の−Ｙ軸（所与の軸方向）に向く基準ベクトルＳＶ（（０，−１，０）により表されるベクトル）と、オブジェクトＯＢを構成するプリミティブの向きに応じた法線ベクトルＮＶとの内積（ＳＶ・ＮＶ）に基づきｃｏｓθ２（θ２は、基準ベクトルＳＶと法線ベクトルＮＶのなす角度）を求めて、求めたｃｏｓθ２に基づき輝度減衰パラメータＡＰを求めて、求めた輝度減衰パラメータＡＰに基づきプリミティブの描画ピクセルの輝度を減衰させている。
【００５０】
ここで輝度減衰パラメータＡＰは、次式により求めることができる。
【００５１】
ＡＰ＝（１＋ｃｏｓθ２）／２            （３）
従って、仮想カメラからみてオブジェクトＯＢの上部での描画ピクセルについて輝度減衰パラメータＡＰを求めると、基準ベクトルＳＶと法線ベクトルＮＶのなす角度θ２が１８０度になるため、ｃｏｓθ２＝−１となり、ＡＰ＝０（最小値）となる。一方仮想カメラから見てオブジェクトＯＢの下部での描画ピクセルについて輝度減衰パラメータＡＰを求めると、θ２が０度になるため、ｃｏｓθ２＝１となり、ＡＰ＝１（最大値）となる。
【００５２】
そして、輝度増加パラメータＩＰと輝度減衰パラメータＡＰとに基づきエフェクト色ＥＣを求める。ここでエフェクト色ＥＣは、エフェクト色の基準色をＳＣとすると、次式により求めることができる。
【００５３】
ＥＣ＝（ＩＰ−ＡＰ）×ＳＣ            （４）
そして、求めたエフェクト色ＥＣとオブジェクトの色とを合成することによって描画ピクセルの色を求める。
【００５４】
図５は、輝度増加パラメータＩＰに基づき描画ピクセルの輝度を高め、且つ輝度減衰パラメータＡＰに基づき描画ピクセルの輝度を減衰させる処理を行った場合の仮想カメラから見える画像の一例である。なお図５は、図３と同様に仮想カメラから見てオブジェクトＯＢの背後に光源がある場合の画像の例である。
【００５５】
図５に示すように、オブジェクトＯＢの輪郭部分の描画ピクセルの色は、オブジェクトＯＢの上部（＋Ｙ軸方向）に近いほど輝度が高くなり、オブジェクトＯＢの下部（−Ｙ軸方向）に近いほど輝度が低くなる。すなわちオブジェクトＯＢ上部の輪郭ではＩＰ＝１、ＡＰ＝０となるためＥＣ＝ＳＣとなり描画ピクセルの輝度は最大となり、オブジェクトＯＢ下部の輪郭ではＩＰ＝１、ＡＰ＝１となるためＥＣ＝０となり描画ピクセルの輝度は最小となる。なおＩＰ−ＡＰ＜０となる場合には、ＥＣ＝０とする。
【００５６】
図５に示す例では、オブジェクトＯＢの輪郭のうち、地面ＧＲに近い部分については輝度が低くなっており、見た目に違和感のないリアルな表現となっている。
【００５７】
このように本実施形態によれば、オブジェクトの輪郭に近いほど描画ピクセルの輝度を高める処理を行うとともに、Ｙ軸下方向を向く基準ベクトルと法線ベクトルとの内積に基づき描画ピクセルの輝度を減衰させる処理を行うことで、オブジェクトの背後にある光源からの光があたかもオブジェクトの手前側に回り込んでいるかのような表現（或いは光源からの光がオブジェクトの輪郭を通過してみえる色の表現）を違和感なく表現することができる。
【００５８】
２−２．光源色の反映
本実施形態では、オブジェクトを構成するプリミティブの描画ピクセルの色に光源の色を反映させる処理を行う。
【００５９】
具体的には、図６（Ａ）、図６（Ｂ）に示すように、仮想カメラＶＣの視線ベクトルＶＶ（視点の向き）と光源ＳＬの光源ベクトルＬＶ（光源の向き）との内積（ＶＶ・ＬＶ）に基づきｃｏｓθ３（θ３は、視線ベクトルＶＶと光源ベクトルＬＶのなす角度）を求めて、求めたｃｏｓθ３に基づき合成パラメータＳＰを求め、求めた合成パラメータＳＰに基づき第１、第２の光源色を合成することによって式（４）におけるエフェクト色の基準色ＳＣを求める。
【００６０】
ここで合成パラメータＳＰは、次式により求めることができる。
【００６１】
ＳＰ＝（１＋ｃｏｓθ３）／２            （５）
従って、図６（Ａ）に示すような仮想カメラの背後に光源がある順光状態の場合に、合成パラメータＳＰを求めると、視線ベクトルＶＶと光源ベクトルＬＶのなす角度θ３が０度になるため、ｃｏｓθ３＝１となり、ＳＰ＝１（最大値）となる。一方図６（Ｂ）に示すような仮想カメラから見てオブジェクトＯＢの背後に光源がある逆光状態の場合に、合成パラメータＳＰを求めると、θ３が１８０度になるため、ｃｏｓθ３＝−１となり、ＳＰ＝０（最小値）となる。
【００６２】
そして、当該合成パラメータＳＰに基づき第１、第２の光源色を合成して基準色ＳＣを求める。ここで基準色ＳＣは、第１の光源色をＬＣ１、第２の光源色をＬＣ２とすると、次式により求めることができる。
【００６３】
ＳＣ＝ＳＰ×ＬＣ１＋（１−ＳＰ）×ＬＣ２            （６）
そして、求めた基準色ＳＣを用いて、式（４）によりエフェクト色ＥＣを求める。従って、仮想カメラと光源との位置関係が図６（Ａ）に示すような順光状態に近づくほど第１の光源色（例えば青っぽい白）がオブジェクトＯＢの輪郭部分の描画ピクセルの色に強く反映され、図６（Ｂ）に示すような逆光状態に近づくほど第２の光源色（例えば赤っぽい白）がオブジェクトＯＢの輪郭部分の描画ピクセルの色に強く反映される。すなわち順光状態ではＳＰ＝１となるためＳＣ＝ＬＣ１となりエフェクト色の基準色ＳＣが第1の光源色となり、逆光状態ではＳＰ＝０となるためＳＣ＝ＬＣ２となりエフェクト色の基準色ＳＣが第２の光源色となる。
【００６４】
このように、本実施形態によれば、仮想カメラと光源との位置及び向き関係に応じてオブジェクトの描画ピクセルの色に反映させる光源の色を変化させることができる。
【００６５】
２−３．テクスチャによる輝度調整
本実施形態では、視点の向きとオブジェクトを構成するプリミティブの向きに応じて前記オブジェクトに対応づけられたテクスチャのテクスチャ座標を設定し、設定されたテクスチャ座標に基づいて参照されるテクセルの色に従って前記プリミティブの描画ピクセルの輝度を変化させる。
【００６６】
具体的には、図７に示すように、仮想カメラＶＣの視線ベクトルＶＶ（視点の向き）とオブジェクトＯＢを構成するプリミティブの向きに応じた法線ベクトルＮＶとの内積（ＶＶ・ＮＶ）に基づきｃｏｓθ１（θ１は、視線ベクトルＶＶと法線ベクトルＮＶのなす角度）を求め、求めたｃｏｓθ１に基づきオブジェクトＯＢに対応付けられたテクスチャＴＸのテクスチャ座標を設定する。例えば、ｃｏｓθ１に基づいてテクスチャ座標（１−｜ｃｏｓθ１｜，ｖ）（ｖは０〜１の値）を設定する。
【００６７】
従って、仮想カメラＶＣから見てオブジェクトＯＢの中心部の描画ピクセルについては、θ１が１８０度になるため、ｃｏｓθ１＝−１となり、テクスチャ座標（０，ｖ）が設定される。一方仮想カメラＶＣから見てオブジェクトＯＢの輪郭の描画ピクセルについては、θ１が９０度になるため、ｃｏｓθ１＝０となり、テクスチャ座標（１，ｖ）が設定される。
【００６８】
ここで図７に示すように、テクスチャＴＸ（カラーマップ）は、ＵＶ座標系のＵ軸方向に沿ってテクセルの色の輝度が増加し彩度が減少する（テクセルの色がグラデーション変化する）パターンを有している。すなわちテクスチャ座標（０，ｖ）のテクセルの色は最も輝度が低く彩度が高い色（濃い色）であり、テクスチャ座標（１，ｖ）のテクセルの色は最も輝度が高く彩度が低い色（薄い色）である。
【００６９】
従って、視線ベクトルＶＶと法線ベクトルＮＶとの内積に応じて設定されたテクスチャ座標に基づいて参照されるテクセルの色は、オブジェクトＯＢの中心部に近いほど濃い色となりオブジェクトの中心部から遠いほど薄い色となる。
【００７０】
そして、参照されたテクセルの色とエフェクト色ＥＣとオブジェクトの色とを合成することによって描画ピクセルの色を求める。
【００７１】
図８は、本実施形態の手法によって参照されたテクセルの色に従って描画ピクセルの輝度を変化させる処理を行った場合の仮想カメラから見える画像の一例である。なお図８は、図５と同様に仮想カメラから見てオブジェクトＯＢの背後に光源がある場合の画像の例である。
【００７２】
図８に示すように、オブジェクトＯＢの輪郭部分における描画ピクセルの色は、図５に示す例と同様であるが、オブジェクトＯＢの輪郭部分以外の部分における描画ピクセルの色は、オブジェクトＯＢの中心部から輪郭部分に向けてグラデーション変化しており、輪郭部分以外の部分の階調が乏しい図５に示す例と比べて質感の高い表現となっている。
【００７３】
このように本実施形態によれば、仮想カメラから見てオブジェクトの背後に光源があるような場合（逆光状態にある場合）であっても、オブジェクトの輪郭部分以外の部分について質感の高いリアルな表現を行うことができる。
【００７４】
また本実施形態の手法により、人体のオブジェクトを描画する場合には、人体の輪郭に近いほど描画ピクセルの輝度を高める処理を行うとともに、Ｙ軸下方向を向く基準ベクトルと法線ベクトルとの内積に基づき描画ピクセルの輝度を減衰させる処理を行うことにより、人体の背後にある光源からの光があたかも人体の手前側に回り込んでいるかのような表現を行う際に、人体の輪郭のうち立地平面（地面）側の輪郭の輝度が高くなってしまうことを防止することができ、違和感のない上記表現を行うことができる。
【００７５】
また、視点ベクトルと光源ベクトルとの内積に基づき順光状態に対応する第1の光源色と逆光状態に対応する第２の光源色とを合成することによって、描画ピクセルの色に反映させる色を求めることにより、人体が逆光状態にある場合には、主光源（例えば太陽）からの光が人体の手前側に回り込んで（或いは人体の輪郭を通過して）人体の輪郭が赤みを帯び、人体が順光状態にある場合には、環境光（例えば空の色）が人体の手前側に回り込んで人体の輪郭が青みを帯びるといったリアルな表現を行うことができる。
【００７６】
また、視線ベクトルと法線ベクトルとの内積に応じて、人体に対応付けられたテクスチャ（例えば皮膚の色がグラデーション変化するテクスチャ）のテクスチャ座標を設定し、設定されたテクスチャ座標に基づいて参照されるテクセルの色に従って描画ピクセルの輝度を変化させることにより、人体の背後に光源があるような場合であっても、人体の輪郭部分以外の部分（人体の皮膚の表面）について質感の高いリアルな表現を行うことができる。
【００７７】
３．処理
次に、本実施形態の処理の一例について図９のフローチャートを用いて説明する。
【００７８】
まず、描画ピクセルの法線ベクトルＮＶと視線ベクトルＶＶとの内積に基づき輝度増加パラメータＩＰを求める（ステップＳ１０）。ここで各描画ピクセルの法線ベクトルは、頂点シェーダから出力されるオブジェクトの頂点の法線ベクトルを補間することで求めることができる。次に、基準ベクトルＳＶと描画ピクセルの法線ベクトルＮＶとの内積に基づき輝度減少パラメータＡＰを求める（ステップＳ１２）。
【００７９】
次に、視線ベクトルＶＶと光源ベクトルＬＶとの内積に基づき合成パラメータＳＰを求め（ステップＳ１４）、求めた合成パラメータＳＰに基づき第１の光源色と第２の光源色とを合成することによって、エフェクト色の基準色ＳＣを求める（ステップＳ１６）。
【００８０】
次に、輝度増加パラメータＩＰと輝度減少パラメータＡＰと基準色ＳＣとに基づきエフェクト色ＥＣを求める（ステップＳ１８）。
【００８１】
次に、描画ピクセルの法線ベクトルＮＶと視線ベクトルＶＶとの内積に基づきテクスチャのテクスチャ座標を設定し（ステップＳ２０）、設定されたテクスチャ座標に基づいてテクセルの色を求める（ステップＳ２２）。
【００８２】
次に、元画像の描画ピクセルの色とエフェクト色ＥＣとテクセルの色とを合成して描画ピクセルの最終的な色を求め、描画バッファに出力する（ステップＳ２４）。
【００８３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【図面の簡単な説明】
【００８４】
【図１】本実施形態の画像生成システムの機能ブロックの一例を示す図。
【図２】本実施形態の手法について説明するための図。
【図３】本実施形態の手法について説明するための図。
【図４】本実施形態の手法について説明するための図。
【図５】本実施形態の手法について説明するための図。
【図６】本実施形態の手法について説明するための図。
【図７】本実施形態の手法について説明するための図。
【図８】本実施形態の手法について説明するための図。
【図９】本実施形態の処理の一例を示すフローチャート図。
【符号の説明】
【００８５】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、１１４  仮想カメラ制御部、１２０  描画部、１２２  光源処理部、１６０  操作部、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2010033289.tif 000003
【図２】
2010033289.tif 000004
【図４】
2010033289.tif 000005
【図６】
2010033289.tif 000006
【図９】
2010033289.tif 000007
【図３】
2010033289.tif 000008
【図５】
2010033289.tif 000009
【図７】
2010033289.tif 000010
【図８】
2010033289.tif 000011