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