(57)【特許請求の範囲】
【請求項１】
記憶手段と演算手段を備えた画像処理装置によって実行されるプログラムであって、
前記演算手段に、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成して前記記
憶手段に格納するステップ、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルの各成分を画素値の範
囲に正規化して色空間に変換することによって法線マップを生成して前記記憶手段に格納
するステップ、
（ｃ）各ポリゴンの頂点座標をテクスチャ座標に変換するステップ、
（ｄ）前記法線マップ上の前記テクスチャ座標に格納されている法線ベクトルと、前記テ
クスチャ座標に隣接する３点の法線ベクトルとを平均化するステップ、
（ｅ）前記ステップ（ｄ）での平均化により得られる法線ベクトルと、光源ベクトルと、
ランバート照明モデルに基づき、第１の輝度値を求めるステップ、
（ｆ）前記頂点座標の光源からの深度値と、前記シャドウマップに格納されている、前記
テクスチャ座標の深度値とを比較し、シャドウ成分を求めるステップ、
（ｇ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を得るステップ、
（ｈ）前記第２の輝度値に基づいて、前記記憶手段から読み出した、光が当たった状態の
表示対象の画像を示す明部のテクスチャデータと、影になった場合の前記表示対象の画像
を示す暗部のテクスチャデータとを加算し、その演算結果を前記記憶手段に格納するステ
ップ、
を実行させることを特徴とするプログラム。
【請求項２】
前記ステップ（ｅ）は、
前記ステップ（ｄ）での平均化により得られる前記法線ベクトルと、第１の光源と、前
記ランバート照明モデルと、に基づき第３の輝度値を求めるステップと、
前記ステップ（ｄ）での平均化により得られる前記法線ベクトルと、第２の光源と、前
記ランバート照明モデルと、に基づき第４の輝度値を求めるステップと、
前記第３の輝度値及び前記第４の輝度値を加算し、さらに前記シャドウ成分を乗算して
前記第２の輝度値を得るステップと、
を含む、請求項１に記載のプログラム。
【請求項３】
前記ステップ（ｈ）は、前記明部のテクスチャデータに前記第２の輝度値を乗算し、こ
の乗算結果に前記暗部のテクスチャデータを加算する、請求項１に記載のプログラム。
【請求項４】
更に、前記演算手段に、
（ｉ）前記ステップ（ｄ）での平均化により得られる前記法線ベクトルと、視線ベクトル
と、環境色と、に基づきフレネル項を算出するステップ、
（ｊ）前記フレネル項を前記ステップ（ｈ）で得られる加算後のテクスチャデータに対し
て加算するステップ、
を実行させることを特徴とする請求項１に記載のプログラム。
【請求項５】
請求項１乃至４のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可
能な記録媒体。
【請求項６】
記憶手段と演算手段を備えた画像処理装置であって、
前記演算手段は、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成して前記記
憶手段に格納し、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルの各成分を画素値の範
囲に正規化して色空間に変換することによって法線マップを生成して前記記憶手段に格納
し、
（ｃ）各ポリゴンの頂点座標をテクスチャ座標に変換し、
（ｄ）前記法線マップ上の前記テクスチャ座標に格納されている法線ベクトルと、前記テ
クスチャ座標に隣接する３点の法線ベクトルとを平均化し、
（ｅ）前記平均化により得られる法線ベクトルと、光源ベクトルと、ランバート照明モデ
ルに基づき、第１の輝度値を求め、
（ｆ）前記頂点座標の光源からの深度値と、前記シャドウマップに格納されている、前記
テクスチャ座標の深度値とを比較し、シャドウ成分を求め、
（ｇ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求め、
（ｈ）前記第２の輝度値に基づいて、前記記憶手段から読み出した、光が当たった状態の
表示対象の画像を示す明部のテクスチャデータと、影になった場合の前記表示対象の画像
を示す暗部のテクスチャデータとを加算し、その演算結果を前記記憶手段に格納する、
ことを特徴とする画像処理装置。
【請求項７】
記憶手段と演算手段を備えた画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、仮想三次元空間内に配置されるモデルに基づいてシャドウマップ
を生成して前記記憶手段に格納するステップと、
（ｂ）前記演算手段が、前記モデルを構成する各ポリゴンに設定された法線ベクトルの各
成分を色空間に変換することによって法線マップを生成して前記記憶手段に格納するステ
ップと、
（ｃ）前記演算手段が、各ポリゴンの頂点座標をテクスチャ座標に変換するステップと、
（ｄ）前記演算手段が、前記法線マップ上の前記テクスチャ座標に格納されている法線ベ
クトルと、前記テクスチャ座標に隣接する３点の法線ベクトルとを平均化するステップと
、
（ｅ）前記演算手段が、前記平均化により得られる法線ベクトルと、光源ベクトルと、ラ
ンバート照明モデルに基づき、第１の輝度値を求めるステップと、
（ｆ）前記演算手段が、前記頂点座標の光源からの深度値と、前記シャドウマップに格納
されている、前記テクスチャ座標の深度値とを比較し、シャドウ成分を求めるステップと
、
（ｇ）前記演算手段が、前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を
求めるステップと、
（ｈ）前記演算手段が、前記第２の輝度値に基づいて、前記記憶手段から読み出した、光
が当たった状態の表示対象の画像を示す明部のテクスチャデータと、影になった場合の前
記表示対象の画像を示す暗部のテクスチャデータとを加算し、その演算結果を前記記憶手
段に格納するステップと、
を含むことを特徴とする画像処理方法。
【請求項８】
記憶手段と演算手段を備えた画像処理装置によって実行されるプログラムであって、
前記演算手段に、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成し、前記記
憶手段に格納するステップ、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルを画素値の範囲に正規
化することによりピクセル単位の法線ベクトルに変換するステップ、
（ｃ）各ポリゴンの頂点座標をテクスチャ座標に変換し、
（ｄ）前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバート照明モデルに基
づき、第１の輝度値を求めるステップ、
（ｅ）前記頂点座標の光源からの深度値と、前記シャドウマップに格納されている、前記
テクスチャ座標の深度値とを比較し、シャドウ成分を求めるステップ、
（ｆ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求めるステップ、
（ｇ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と
、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、
という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を
減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算す
ることにより第３の輝度値を求めるステップ、
（ｈ）前記第３の輝度値に基づいて、前記記憶手段から読み出した、光が当たった状態の
表示対象の画像を示す明部のテクスチャデータと、影になった場合の前記表示対象の画像
を示す暗部のテクスチャデータとを加算し、前記記憶手段に格納するステップ、
を実行させることを特徴とするプログラム。
【請求項９】
前記ステップ（ｇ）における前記フィルタ関数は、陰影付けの境界位置ｔとこの境界位
置を中心に設定されるグラデーション幅ｗをパラメータとして設定され、（ｔ−ｗ×０．
５）が前記陰影付け開始輝度値、（ｔ＋ｗ×０．５）が前記陰影付け終了輝度値、として
用いられる、請求項８に記載のプログラム。
【請求項１０】
前記ステップ（ｄ）は、
前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、第１の光源と、前
記ランバート照明モデルと、に基づき第４の輝度値を求めるステップと、
前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、第２の光源と、前記
ランバート照明モデルと、に基づき第５の輝度値を求めるステップと、
前記第４の輝度値及び前記第５の輝度値を加算するステップと、
を含む、請求項８に記載のプログラム。
【請求項１１】
前記ステップ（ｈ）は、前記明部のテクスチャデータに前記第３の輝度値を乗算し、こ
の乗算結果に前記暗部のテクスチャデータを加算する、請求項８に記載のプログラム。
【請求項１２】
更に、前記演算手段に、
（ｉ）前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、視線ベクトル
と、環境色と、に基づきフレネル項を算出するステップ、
及び、
（ｊ）前記フレネル項を前記ステップ（ｈ）で得られる加算後のテクスチャデータに対し
て加算するステップ、
を実行させることを特徴とする請求項８に記載のプログラム。
【請求項１３】
請求項８乃至１２のいずれか１項に記載のプログラムを記録したコンピュータ読み取り
可能な記録媒体。
【請求項１４】
記憶手段と演算手段を備えた画像処理装置であって、
前記演算手段は、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成して前記記
憶手段に格納し、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルを画素値の範囲に正規
化することによりピクセル単位の法線ベクトルに変換し、
（ｃ）各ポリゴンの頂点座標をテクスチャ座標に変換し、
（ｄ）前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバート照明モデルに基
づき、第１の輝度値を求め、
（ｅ）前記頂点座標の光源からの深度値と、前記シャドウマップに格納されている、前記
テクスチャ座標の深度値とを比較し、シャドウ成分を求め、
（ｆ）前記シャドウ成分を前記第１輝度値に乗算して第２の輝度値を求め、
（ｇ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と
、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、
という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を
減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算す
ることにより第３の輝度値を求め、
（ｈ）前記第３の輝度値に基づいて、前記記憶手段から読み出した、光が当たった状態の
表示対象の画像を示す明部のテクスチャデータと、影になった場合の前記表示対象の画像
を示す暗部のテクスチャデータとを加算し、前記記憶手段に格納する、
ことを特徴とする画像処理装置。
【請求項１５】
記憶手段と演算手段を備えた画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、仮想三次元空間内に配置されるモデルに基づいてシャドウマップ
を生成して前記記憶手段に格納するステップ、
（ｂ）前記演算手段が、前記モデルを構成する各ポリゴンに設定された法線ベクトルを画
素値の範囲に正規化することによりピクセル単位の法線ベクトルに変換するステップ、
（ｃ）各ポリゴンの頂点座標をテクスチャ座標に変換するステップ、
（ｄ）前記演算手段が、前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバー
ト照明モデルに基づき、第１の輝度値を求めるステップ、
（ｅ）前記頂点座標の光源からの深度値と、前記シャドウマップに格納されている、前記
テクスチャ座標の深度値とを比較し、シャドウ成分を求めるステップ、
（ｆ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求めるステップ、
（ｇ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と
、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、
という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を
減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算す
ることにより第３の輝度値を求めるステップ、
（ｈ）前記第３の輝度値に基づいて、前記記憶手段から読み出した、光が当たった状態の
表示対象の画像を示す明部のテクスチャデータと、影になった場合の前記表示対象の画像
を示す暗部のテクスチャデータとを加算し、前記記憶手段に格納するステップ、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想三次元空間に設定される事象を透視投影変換して二次元画像を生成する技術に関する。
【背景技術】
【０００２】
近年のコンピュータ技術の発展に伴い、ビデオゲーム装置、シミュレータ（擬似体験装置）などに関する画像処理技術が広く一般に普及するようになっている。このようなシステムにおいては、表示される画像をより表現力豊かにすることが商品価値を高めるうえで重要となっている（例えば、特許文献１参照）。
【０００３】
ところで、例えばイラストタッチやこれに類する画像を用いる場合における陰影付けには、従来のより写実的な（すなわち現実世界に近い）画像を用いる場合における陰影付けの手法を適用しただけでは不十分な場合がある。
【０００４】
【特許文献１】特開２００４−３８３９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることを可能とする画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、記憶手段と演算手段を備えた画像処理装置によって実行されるプログラムであって、
前記演算手段に、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成するステップ、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルの各成分を色空間に変換することによって法線マップを生成するステップ、
（ｃ）前記法線マップ上の参照点に格納されている法線ベクトルと、前記参照点の近傍の３点の法線ベクトルとを平均化するステップ、
（ｄ）前記ステップ（ｃ）での平均化により得られる法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求めるステップ、
（ｅ）前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求めるステップ、
（ｆ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を得るステップ、
（ｇ）前記第２の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、その演算結果を前記記憶手段に格納するステップ、
を実行させることを特徴とする。このプログラムは、コンピュータ読み取り可能な記録媒体（例えば、コンパクトディスク、デジタルバーサタイルディスク等の各種ディスク）に記録されていてもよい。
【０００７】
上記の本発明によれば、テクスチャの陰影の境界部分のぼかし幅を画像空間で二次元的に揃える効果が得られ、陰影付けが滑らかになる。したがって、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることができる。
【０００８】
好ましくは、前記ステップ（ｄ）は、
前記ステップ（ｃ）での平均化により得られる前記法線ベクトルと、第１の光源と、前記ランバート照明モデルと、に基づき第３の輝度値を求めるステップと、
前記ステップ（ｃ）での平均化により得られる前記法線ベクトルと、第２の光源と、前記ランバート照明モデルと、に基づき第４の輝度値を求めるステップと、
前記第３の輝度値及び前記第４の輝度値を加算するステップと、
を含む。
【０００９】
好ましくは、前記ステップ（ｇ）は、前記明部のテクスチャデータに前記第２の輝度値を乗算し、この乗算結果に前記暗部のテクスチャデータを加算する。
【００１０】
好ましくは、上記プログラムは更に、前記演算手段に、
（ｈ）前記ステップ（ｃ）での平均化により得られる前記法線ベクトルと、視線ベクトルと、環境色と、に基づきフレネル項を算出するステップ、
（ｉ）前記フレネル項を前記ステップ（ｇ）で得られる加算後のテクスチャデータに対して加算するステップ、
を実行させることを特徴とする。
【００１１】
また、本発明は、記憶手段と演算手段を備えた画像処理装置であって、
前記演算手段が、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成し、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルの各成分を色空間に変換することによって法線マップを生成し、
（ｃ）前記法線マップ上の参照点に格納されている法線ベクトルと、前記参照点の近傍の３点の法線ベクトルとを平均化し、
（ｄ）前記平均化により得られる法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求め、
（ｅ）前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求め、
（ｆ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求め、
（ｇ）前記第２の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、その演算結果を前記記憶手段に格納する、
ことを特徴とする。
【００１２】
また、本発明は、記憶手段と演算手段を備えた画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成するステップと、
（ｂ）前記演算手段が、前記モデルを構成する各ポリゴンに設定された法線ベクトルの各成分を色空間に変換することによって法線マップを生成するステップと、
（ｃ）前記演算手段が、前記法線マップ上の参照点に格納されている法線ベクトルと、前記参照点の近傍の３点の法線ベクトルとを平均化するステップと、
（ｄ）前記演算手段が、前記平均化により得られる法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求めるステップと、
（ｅ）前記演算手段が、前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求めるステップと、
（ｆ）前記演算手段が、前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求めるステップと、
（ｇ）前記演算手段が、前記第２の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、その演算結果を前記記憶手段に格納するステップと、
を含むことを特徴とする。
【００１３】
上記の各発明によれば、テクスチャの陰影の境界部分のぼかし幅を画像空間で二次元的に揃える効果が得られ、陰影付けが滑らかになる。したがって、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることができる。
【００１４】
他の本発明は、記憶手段と演算手段を備えた画像処理装置によって実行されるプログラムであって、前記演算手段に、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成するステップ、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルをピクセル単位の法線ベクトルに変換するステップ、
（ｃ）前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求めるステップ、
（ｄ）前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求めるステップ、
（ｅ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求めるステップ、
（ｆ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算することにより第３の輝度値を求めるステップ、
（ｇ）前記第３の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、前記記憶手段に格納するステップ、
を実行させることを特徴とする。このプログラムは、コンピュータ読み取り可能な記録媒体（例えば、コンパクトディスク、デジタルバーサタイルディスク等の各種ディスク）に記録されていてもよい。
【００１５】
上記の本発明によれば、フィルタ関数の特性を適宜設定することにより、テクスチャの陰影の境界のぼかし幅、ぼかし位置を調整することが可能になる。したがって、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることができる。
【００１６】
好ましくは、前記ステップ（ｆ）における前記フィルタ関数は、陰影付けの境界位置ｔとこの境界位置を中心に設定されるグラデーション幅ｗをパラメータとして設定され、（ｔ−ｗ×０．５）が前記陰影付け開始輝度値、（ｔ＋ｗ×０．５）が前記陰影付け終了輝度値、として用いられる。
【００１７】
好ましくは、前記ステップ（ｃ）は、
前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、第１の光源と、前記ランバート照明モデルと、に基づき第４の輝度値を求めるステップと、
前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、第２の光源と、前記ランバート照明モデルと、に基づき第５の輝度値を求めるステップと、
前記第４の輝度値及び前記第５の輝度値を加算するステップと、
を含む。
【００１８】
好ましくは、前記ステップ（ｇ）は、前記明部のテクスチャデータに前記第３の輝度値を乗算し、この乗算結果に前記暗部のテクスチャデータを加算する。
【００１９】
更に好ましくは、上記プログラムは、
（ｈ）  前記演算手段が、前記ステップ（ｂ）で得られるピクセル単位の前記法線ベクトルと、視線ベクトルと、環境色と、に基づきフレネル項を算出するステップ、
及び、
（ｉ）  前記演算手段が、前記フレネル項を前記ステップ（ｇ）で得られる加算後のテクスチャデータに対して加算するステップ、
を含むことを特徴とする。
【００２０】
また、本発明は、記憶手段と演算手段を備えた画像処理装置であって、
前記演算手段が、
（ａ）仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成し、
（ｂ）前記モデルを構成する各ポリゴンに設定された法線ベクトルをピクセル単位の法線ベクトルに変換し、
（ｃ）前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求め、
（ｄ）前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求め、
（ｅ）前記シャドウ成分を前記第１輝度値に乗算して第２の輝度値を求め、
（ｆ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算することにより第３の輝度値を求め、
（ｇ）前記第３の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、前記記憶手段に格納する、
ことを特徴とする。
【００２１】
また、本発明は、記憶手段と演算手段を備えた画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、仮想三次元空間内に配置されるモデルに基づいてシャドウマップを生成するステップ、
（ｂ）前記演算手段が、前記モデルを構成する各ポリゴンに設定された法線ベクトルをピクセル単位の法線ベクトルに変換するステップ、
（ｃ）前記演算手段が、前記ピクセル単位の法線ベクトルと、光源ベクトルと、ランバート照明モデルに基づき、第１の輝度値を求めるステップ、
（ｄ）前記シャドウマップに格納された深度値と、各ピクセルの光源からの深度値とを比較し、シャドウ成分を求めるステップ、
（ｅ）前記シャドウ成分を前記第１の輝度値に乗算して第２の輝度値を求めるステップ、
（ｆ）陰影付け開始輝度値と、この陰影付け開始輝度値より大きい陰影付け終了輝度値と、を有し、前記陰影付け開始輝度値と前記陰影付け終了輝度値との間は線形に増加する、という特性を有するフィルタ関数を用い、前記第２の輝度値から前記陰影付け開始輝度を減算した値を、前記陰影付け終了輝度から前記陰影付け開始輝度を減算した値、で除算することにより第３の輝度値を求めるステップ、
（ｇ）前記第３の輝度値に基づいて、前記記憶手段から読み出した明部のテクスチャデータ及び暗部のテクスチャデータを加算し、前記記憶手段に格納するステップ、
を含むことを特徴とする。
【００２２】
上記の本発明によれば、フィルタ関数の特性を適宜設定することにより、テクスチャの陰影の境界のぼかし幅、ぼかし位置を調整することが可能になる。したがって、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることができる。
【発明の効果】
【００２３】
本発明によれば、イラストタッチやこれに類する画像を用いる場合における陰影付けの表現力を高めることが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、画像生成装置の一例としてゲーム装置を採り上げて、本発明の実施の形態について説明する。
【００２５】
（第１の実施形態）
図１は、一実施形態のゲーム装置の構成を示すブロック図である。図１に示す本実施形態のゲーム装置１は、ＣＰＵ（Central Processing Unit）１０、システムメモリ１１、記憶媒体１２、ブートロム（BOOT ROM）１３、バスアービタ１４、ＧＰＵ（Graphics Processing Unit）１６、グラフィックメモリ１７、オーディオプロセッサ１８、オーディオメモリ１９、通信インタフェース（Ｉ／Ｆ）２０、ペリフェラルインターフェース２１、を含んで構成されている。すなわち、本実施形態のゲーム装置１は、演算手段（演算部）としてのＣＰＵ１０及びＧＰＵ１６、記憶手段（記憶部）としてのシステムメモリ１１、グラフィックメモリ１７及びオーディオメモリ１９等を含んで構成されるコンピュータ（コンピュータシステム）を備え、当該コンピュータに所定のプログラムを実行させることによってゲーム装置として機能するものである。具体的には、ゲーム装置１は、ゲーム演出を行うために、仮想三次元空間（ゲーム空間）内を仮想カメラから見た二次元画像を順次生成するとともに、効果音などの音声を生成する。
【００２６】
ＣＰＵ（Central Processing Unit）１０は、所定のプログラムを実行することによりゲーム装置１全体を制御する。
【００２７】
システムメモリ１１は、ＣＰＵ１０が使用するプログラムやデータを格納する。このシステムメモリ１１は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００２８】
記憶媒体１２は、ゲームプログラムや出力する画像や音声などのデータが記録されている。このプログラムデータ用ＲＯＭとしての記憶媒体１２は、マスクロムやフラッシュロムなどの電気的にデータを読み出せるＩＣメモリや、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの光学的にデータを読み出せる装置と光ディスクまたは磁気ディスク等であっても良い。
【００２９】
ブートロム１３は、ゲーム装置１を起動させた際に各ブロックを初期化するためのプログラムを格納する。
【００３０】
バスアービタ１４は、各ブロック間でプログラムやデータのやり取りを行うバスを制御する。
【００３１】
ＧＰＵ１６は、ディスプレイに表示するオブジェクトの仮想三次元空間（ゲーム空間）での位置座標や向きの演算（ジオメトリ演算）と、このオブジェクトの向きや位置座標等に基づいてディスプレイに出力する画像を生成（描画）する処理（レンダリング）を行う。
【００３２】
グラフィックメモリ１７は、ＧＰＵ１６に接続されており、画像を生成するためのデータやコマンドなど格納する。このグラフィックメモリ１７は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００３３】
オーディオプロセッサ１８は、スピーカから音声出力を行うためのデータを生成する。このオーディオプロセッサ１８によって生成された音声データが図示しないデジタル／アナログ変換器によってアナログ信号に変換され、スピーカに入力されることにより、スピーカから音声出力がなされる。
【００３４】
オーディオメモリ１９は、オーディオプロセッサ１８に構成されており、音声を生成するためのデータやコマンドなど格納する。このオーディオメモリ１９は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００３５】
通信インタフェース（Ｉ／Ｆ）２０は、ゲーム装置１が他のゲーム装置やサーバ装置等との間でデータ通信の必要がある場合における通信処理を行う。
【００３６】
ペリフェラルインターフェース（Ｉ／Ｆ）２１は、外部からのデータ入出力を行うインターフェースが組み込まれており、ここに周辺装置としてのペリフェラルが接続される。ここで、ペリフェラルには、マウス（ポインティングデバイス）やキーボード、ゲーム用コントローラ等のキー操作のためのスイッチ、及びタッチペンの他、プログラムの途中経過や生成したデータを保存するバックアップメモリ、表示装置、撮影装置等、画像処理装置本体あるいは他のペリフェラルに接続可能なものが含まれる。
【００３７】
なお、システムメモリ１１、グラフィックメモリ１７、サウンドメモリ１９は、１つの
メモリをバスアービタ１４に接続して各機能で共通に使用するようにしてもよい。また各
機能ブロックも機能として画像処理部２内に存在すればよく、機能ブロック同士が統合
されていても、また、機能ブロック内部の各構成要素が他のブロックとして分離されてい
ても良い。
【００３８】
本実施形態のゲーム装置は以上のような構成を備えており、次に本実施形態の画像生成処理の内容について説明する。本実施形態では、仮想空間内に配置されるモデルとして人物を想定し、この人物の顔（特に鼻から顎の周辺）の画像を生成する場合について例示する。
【００３９】
図２は、本実施形態において想定する仮想三次元空間内の光源について模式的に示した概念図である。まず、図２を用いて光源について説明する。本実施形態では、仮想三次元空間内（シーン内）には光源が二つ存在する。図２ではこれらをそれぞれ光源ａ、光源ｂと記す。光源ａは、視点（仮想カメラの位置）からの視線ベクトルに対してワールド座標系のＹ軸ベクトル（任意長）を加算することによって得られるベクトルを光源ベクトルとして有する平行光源である、また、光源ｂは、任意方向を向いている平行光源である。被写体（モデル）に対する陰影付けには光源ａ、ｂが共に使用される。また、被写体により発生する影成分の生成には光源ａのみが使用される。
【００４０】
図３は、画像生成処理の手順を説明するフローチャートである。このフローチャートに沿って、以下に本実施形態の画像生成処理の内容を説明する。
【００４１】
ＧＰＵ１６は、仮想三次元空間内に配置されるモデルのジオメトリ情報をＣＰＵ１０から取得する（ステップＳ１０）。ここで「ジオメトリ情報」には、モデルの仮想三次元空間内での座標値やモデルを構成する各ポリゴンの情報（法線ベクトルなど）などが含まれる。
【００４２】
次にＧＰＵ１６は、各ポリゴンの頂点座標などを含むオブジェクトデータを読み込み、所定の座標変換処理を行う（ステップＳ１１）。具体的には、ＧＰＵ１６は、各ポリゴンの頂点ごとに、頂点座標を光源ａ（図２参照）を視点として射影空間に変換する。
【００４３】
次にＧＰＵ１６は、射影空間での深度情報をグラフィックメモリ１７に出力する（ステップＳ１２）。ここで「深度情報」とは、各頂点の光源ａからの距離（ｚ成分）をいう。これにより、シャドウマップが生成され、グラフィックメモリ１７に格納された状態となる。シャドウマップの概念模式図を図４（Ａ）に示す。
【００４４】
上記処理と前後し、あるいは並行してＧＰＵ１６は、上記オブジェクトデータを読み込み、以下に説明する所定の座標変換処理を行う（ステップＳ１３）。
【００４５】
具体的には、ＧＰＵ１６は、オブジェクトデータを読み込み（ステップＳ１３−１）、各ポリゴンの頂点ごとに、頂点座標を射影空間に変換し（ステップＳ１３−２）、かつ法線ベクトルをビュー空間に変換する（ステップＳ１３−３）。そして、ＧＰＵ１６は、このビュー空間に変換した法線ベクトルを正規化し、法線ベクトルの各成分（−１．０〜＋１．０）を色空間（０．０〜１．０）に変換する（ステップＳ１３−４）。
【００４６】
次にＧＰＵ１６は、色空間（画像空間）に変換した法線ベクトル（法線情報）をグラフィックメモリ１７に出力する（ステップＳ１４）。この「法線情報」は、モデルを構成する各ポリゴンに設定された法線ベクトルを色データとして落とし込んだものになる。これにより、法線マップが生成され、グラフィックメモリ１７に格納された状態となる。法線マップの概念模式図を図４（Ｂ）に示す。
【００４７】
上記処理と前後し、あるいは並行してＧＰＵ１６は、上記オブジェクトデータを読み込み、所定の座標変換処理を行う（ステップＳ１５）。
【００４８】
具体的には、ＧＰＵ１６は、読み込んだ頂点座標を射影空間に変換する（ステップＳ１５−１）。また、ＧＰＵ１６は、読み込んだ頂点座標を、光源ａを視点として射影空間に変換する（ステップＳ１５−２）。また、ＧＰＵ１６は、頂点座標をテクスチャ座標に変換する（ステップＳ１５−３）。
【００４９】
次にＧＰＵ１６は、法線ベクトルを平均化する処理を行う（ステップＳ１６）。
【００５０】
具体的には、ＧＰＵ１６は、グラフィックメモリ１７に格納されている法線マップから、上記ステップＳ１５で求めたテクスチャ座標のピクセル（画素値）を取得する（ステップＳ１６−１）。また、ＧＰＵ１６は、上記ステップＳ１５で求めたテクスチャ座標の近傍のピクセルを３点求める（ステップＳ１６−２）。そして、ＧＰＵ１６は、法線マップから取得したテクスチャ座標のピクセルと上記３点のピクセルのそれそれの法線ベクトルを平均化する（ステップＳ１６−３）。より詳細には、本ステップの処理は以下の式により表される。
normal＝  0.25×（normalreference＋Σnormalneighbor）
ここで、「normal」は平均化された法線ベクトル、「normalreference」は法線マップ上の参照点に格納されている法線ベクトル、「normalneighbor」は法線マップ上の近傍点に格納されている法線ベクトル、をそれぞれ示している。
【００５１】
次にＧＰＵ１６は、ランバートの照明モデルに基づいて輝度値（第１の輝度値）を算出する（ステップＳ１７）。
【００５２】
具体的には、まずＧＰＵ１６は、上記ステップＳ１６において法線ベクトルが平均化されたピクセルの各成分（０．０〜１．０）を法線ベクトルの空間（−１．０〜＋１．０）に変換する（ステップＳ１７−１）。
【００５３】
次にＧＰＵ１６は、シャドウマップに書き込まれている深度値（深度情報）を取得し、これと、現在処理しているピクセルの光源からの深度値とを比較し、シャドウ成分（影部＝0.0、非影部＝1.0）を求める（ステップＳ１７−２）。この処理は以下の式により表される。
shadow＝  0.0（depthmap ＜ depthcurrent）  or  1.0（depthmap ≧ depthcurrent）
ここで、「shadow」はシャドウ成分、「depthmap」はシャドウマップに書き込まれている深度値、「depthcurrent」は現在処理しているピクセルの光源からの深度値、をそれぞれ示している。
【００５４】
次にＧＰＵ１６は、上記ステップＳ１７−１で求めた法線ベクトル（normal）と光源ベクトルａと、ランバート照明モデルに基づき、輝度値（第３の輝度値）を求める（ステップＳ１７−３）。ここで「ランバート照明モデル」とは、拡散反射(diffuse reflection)だけでシェーディングを行う照明モデルをいい、ライトの向きとその点の法線だけで計算されるため視点がどこにあってもその点の明るさは一定である。同様に、ＧＰＵ１６は、上記ステップＳ１７−１で求めた法線ベクトルと光源ベクトルｂと、ランバート照明モデルに基づき、輝度値（第４の輝度値）を求める（ステップＳ１７−４）。次にＧＰＵ１６は、上記ステップＳ１７−３で求めた輝度値に対して上記ステップＳ１７−４で求めた輝度値を加算し（ステップ１７−５）、この加算後の輝度値に対して、シャドウ成分を乗算して第２の輝度値を求める（Ｓ１７−６）。これらの輝度値を求める一連の処理は以下の式により表される。
brightness＝bias＋shadow×Σmax（0.0，normal・lightn×intensityn）
ここで、「brightness」は輝度値、「bias」は輝度値のバイアス値（基準値、中間値）、「normal」は平均化された法線ベクトル、「lightn」は光源ベクトル、「intensityn」は光源の強度、をそれぞれ示している。
【００５５】
次にＧＰＵ１６は、明部のテクスチャデータ、暗部のテクスチャデータの２つをシステムメモリ１１或いは記録媒体１２から読み出し、上記ステップＳ１７で求めた輝度値に基づき、２つのテクスチャデータを混合（加算）する（ステップＳ１８）。テクスチャデータ（明部）の概念模式図を図５（Ａ）、テクスチャデータ（暗部）の概念模式図を図５（Ｂ）にそれぞれ示す。ここで「明部のテクスチャデータ」とは、光が当たった場合の明るいテクスチャデータ（図示の例では顔画像のテクスチャデータ）をいう。また、「暗部のテクスチャデータ」とは、影になった場合の暗いテクスチャデータ（図示の例では顔画像のテクスチャデータ）をいう。本ステップの処理は以下の式により表される。
colorbase＝brightness×colorhighlight＋colordark
ここで「colorbase」は混合したテクスチャデータのカラー、「brightness」は輝度値、「colorhighlight」はテクスチャデータ（明部）のカラー、「colordark」はテクスチャデータ（暗部）のカラー、をそれぞれ示している。
【００５６】
上記処理と前後し、あるいは並行してＧＰＵ１６は、上記ステップＳ１７−１で求めた法線ベクトルと、視線ベクトル、および環境色に基づいてフレネル項（カラー）を算出する（ステップＳ１９）。本ステップの処理は以下の式により表される。
intensityfresnel＝max（0.0，1.0−｜view・normal｜×scalefresnel＋biasfresnel）
colorfresnel    ＝colorambient×intensityfresnel
ここで、「intensityfresnel」はフレネルの強度、「view」は視線ベクトル、「scalefresnel」はフレネルのスケール値、「biasfresnel」はフレネルのバイアス値、「colorfresnel」はフレネル項（フレネルカラー）、「colorambient」は環境カラー、をそれぞれ示している。
【００５７】
次にＧＰＵ１６は、上記ステップＳ１８で求めたテクスチャデータのカラー（colorbase）と上記ステップＳ１９で求めたフレネル項（colorfresnel）とを合成し、合成後の出力カラーをグラフィックメモリ１７に出力する（ステップＳ２０）。本ステップの処理は以下の式により表される。出力カラーの概念模式図を図６に示す。
coloroutput＝colorbase＋colorfresnel
ここで、「coloroutput」は出力カラー、「colorbase」は混合したテクスチャデータのカラー、「colorfresnel」はフレネル項（フレネルカラー）、をそれぞれ示している。
【００５８】
図７及び図８は、本実施形態において最終的に生成される二次元画像（出力カラー）の一例と、これに対する比較例の二次元画像を示す図である。図７（Ａ）は本実施形態の二次元画像である。図７（Ｂ）は比較例の二次元画像であり、頂点単位で計算した法線ベクトルをそのまま光源計算に使用した場合の結果を示している。また、図８（Ａ）は本実施形態の二次元画像における陰影の境界を点線で示した図であり、また、図８（Ｂ）は比較例の二次元画像における陰影の境界を点線で示した図である。本実施形態の二次元画像では、人物の顔のなかでも特に二平面のなす角度が小さい（鋭角である）部分（例えば、図示のような鼻の部位）において、陰影付けが滑らかになる。
【００５９】
以上のように本実施形態によれば、テクスチャの陰影の境界部分のぼかし幅を画像空間で二次元的に揃える効果が得られ、陰影付けが滑らかになる。したがって、イラストタッチの画像を用いる場合における陰影付けの表現力を高めることができる。
【００６０】
（第２の実施形態）
次に、第２の実施形態の画像処理技術について説明する。ゲーム装置のハードウェア構成や、光源の設定については上記第１の実施形態と同様であるため、ここでは説明を省略する（上記図１、図２参照）。
【００６１】
図９は、画像生成処理の手順を説明するフローチャートである。このフローチャートに沿って、以下に本実施形態の画像生成処理の内容を説明する。なお、上記第１の実施形態と重複する事項については適宜説明を省略する。
【００６２】
ＧＰＵ１６は、仮想三次元空間内に配置されるモデルのジオメトリ情報（形状、位置、方向などの情報）をＣＰＵ１０から取得する（ステップＳ５０）。
【００６３】
次にＧＰＵ１６は、各ポリゴンの頂点座標などを含むオブジェクトデータを読み込み、所定の座標変換処理を行う（ステップＳ５１）。具体的には、ＧＰＵ１６は、各ポリゴンの頂点ごとに、頂点座標を光源ａ（図２参照）を視点として射影空間に変換する。
【００６４】
次にＧＰＵ１６は、射影空間での深度情報をグラフィックメモリ１７に出力する（ステップＳ５２）。これにより、グラフィックメモリ１７にシャドウマップが格納された状態となる（図４（Ａ）参照）。
【００６５】
上記処理と前後し、あるいは並行してＧＰＵ１６は、上記オブジェクトデータを読み込み、所定の座標変換処理を行う（ステップＳ５３）。
【００６６】
具体的には、まずＧＰＵ１６は、読み込んだ頂点座標をワールド空間に配置する（ステップＳ５３−１）。また、ＧＰＵ１６は、読み込んだ頂点座標を、光源ａを視点として射影空間に変換する（ステップＳ５３−２）。また、ＧＰＵ１６は、法線ベクトルをビュー空間（ワールド空間を視点を基準として変換した空間）に変換する（ステップＳ５３−３）。
【００６７】
次にＧＰＵ１６は、上記ステップＳ５３−３で求めた法線ベクトルをピクセル単位の法線ベクトルに変換する処理（正規化する処理）を行う（ステップＳ５４）。本ステップの処理は以下の式により表される。
normal＝normalvertex／｜normalvertex｜
ここで、「normal」はピクセル単位の法線ベクトル、「normalvertex」は頂点単位の法線ベクトル、をそれぞれ示している。なお、頂点単位の法線ベクトルは、頂点間については線形補間される。
【００６８】
次にＧＰＵ１６は、ランバート照明モデルに基づいて輝度値（第１の輝度値）を算出する（ステップＳ５５）。
【００６９】
具体的には、まずＧＰＵ１６は、シャドウマップに書き込まれている深度値（深度情報）を取得し、これと、現在処理しているピクセルの光源からの深度値（ｚ値）とを比較し、シャドウ成分（影部＝0.0、非影部＝1.0）を求める（ステップＳ５５−１）。この処理は以下の式により表される。
shadow＝  0.0（depthmap ＜ depthcurrent）  or  1.0（depthmap ≧ depthcurrent）
ここで、「shadow」はシャドウ成分、「depthmap」はシャドウマップに書き込まれている深度値、「depthcurrent」は現在処理しているピクセルの光源からの深度値、をそれぞれ示している。
【００７０】
次にＧＰＵ１６は、上記ステップＳ５４で求めた法線ベクトル（normal）と光源ベクトルａと、ランバート照明モデルに基づき、輝度値（第４の輝度値）を求める（ステップＳ５５−２）。同様に、ＧＰＵ１６は、上記ステップＳ５４で求めた法線ベクトルと光源ベクトルｂと、ランバート照明モデルに基づき、輝度値（第５の輝度値）を求める（ステップＳ５５−３）。次にＧＰＵ１６は、上記ステップＳ５５−２で求めた輝度値に対して上記ステップＳ５５−３で求めた輝度値を加算し（ステップ５５−４）、この加算後の輝度値に対して、シャドウ成分を乗算して第２の輝度値を求める（Ｓ５５−５）。これらの輝度値を求める一連の処理は以下の式により表される。
brightness＝bias＋shadow×Σmax（0.0，normal・lightn×intensityn）
ここで、「brightness」は輝度値、「bias」は輝度値のバイアス値、「normal」は平均化された法線ベクトル、「lightn」は光源ベクトル、「intensityn」は光源の強度、をそれぞれ示している。
【００７１】
次にＧＰＵ１６は、上記ステップＳ５５で求めた輝度値の特性を、所定のフィルタ関数を通すことによって調整する（ステップＳ５６）。
【００７２】
本実施形態では以下の式で表されるフィルタ関数が用いられる。
thresholdmin  ＝threshold−width×0.5
thresholdmax  ＝threshold＋width×0.5
ここで、「thresholdmin」は陰影付け開始輝度値、「thresholdmax」は陰影付け終了輝度値、「threshold」は陰影の境界位置、「width」は陰影のグラデーション幅、をそれぞれ示している。
【００７３】
図１０は、フィルタ関数をグラフにして示すものである。図示のように、このフィルタ関数は、陰影付け開始輝度値と、この陰影付け開始値より大きい陰影付け終了輝度値と、を有し、陰影付け開始値と陰影付け終了輝度値との間は線形に増加する、という特性を有する。図１０に示すフィルタ関数は、threshold＝0.55、width＝0.1とそれぞれ設定した場合のものである。またこのフィルタ関数は、陰影付けの境界位置threshold（ｔ）と、この境界位置を中心に設定されるグラデーション幅width（ｗ）をパラメータとして設定されており、上記のように、（ｔ−ｗ×０．５）が陰影付け開始輝度値thresholdmin、（ｔ＋ｗ×０．５）が陰影付け終了輝度値thresholdmax、としてそれぞれ用いられている。フィルタ関数を規定するパラメータとして陰影付けの境界位置とこの境界位置を中心に設定されるグラデーション幅とを用いることにより、フィルタ関数の特性の調整が直感的に行いやすくなる。
【００７４】
このフィルタ関数を用いた輝度値の調整は、第２の輝度値から陰影付け開始輝度を減算した値を、陰影付け終了輝度から陰影付け開始輝度を減算した値、で除算することにより行われる。具体的には、以下の式により表される。
brightnessmodified＝（brightness−thresholdmin）／（thresholdmax−thresholdmin）
ここで、「brightness」は第２の輝度値、「brightnessmodified」は特性調整済みの輝度値（第３の輝度値）、をそれぞれ示している。
【００７５】
次にＧＰＵ１６は、テクスチャデータ（明部）およびテクスチャデータ（暗部）の２つ（図５参照）をシステムメモリ１１或いは記録媒体１２から読み出し、上記ステップＳ１７で求めた輝度値に基づき、２つのテクスチャデータを混合する（ステップＳ５７）。本ステップの処理は以下の式により表される。
colorbase＝brightness×colorhighlight＋colordark
ここで「colorbase」は混合したテクスチャデータのカラー、「brightnessmodified」は特性調整後の輝度値、「colorhighlight」はテクスチャデータ（明部）のカラー、「colordark」はテクスチャデータ（暗部）のカラー、をそれぞれ示している。
【００７６】
上記処理と前後し、あるいは並行してＧＰＵ１６は、上記ステップＳ５４で求めた各ピクセルごとの法線ベクトル（normal）と、視線ベクトル、および環境色に基づいてフレネル項（カラー）を算出する（ステップＳ５８）。本ステップの処理は以下の式により表される。
intensityfresnel＝max（0.0，1.0−｜view・normal｜×scalefresnel＋biasfresnel）
colorfresnel    ＝colorambient×intensityfresnel
ここで、「intensityfresnel」はフレネルの強度、「view」は視線ベクトル、「scalefresnel」はフレネルのスケール値、「biasfresnel」はフレネルのバイアス値、「colorfresnel」はフレネル項（フレネルカラー）、「colorambient」は環境カラー、をそれぞれ示している。
【００７７】
次にＧＰＵ１６は、上記ステップＳ５７で求めたテクスチャデータのカラー（colorbase）と上記ステップＳ５８で求めたフレネル項（colorfresnel）とを合成し、合成後の出力カラー（図６参照）をグラフィックメモリ１７に出力する（ステップＳ２０）。本ステップの処理は以下の式により表される。
coloroutput＝colorbase＋colorfresnel
ここで、「coloroutput」は出力カラー、「colorbase」は混合したテクスチャデータのカラー、「colorfresnel」はフレネル項（フレネルカラー）、をそれぞれ示している。
【００７８】
図１１は、本実施形態において最終的に生成される二次元画像（出力カラー）の一例を示す図である。図１１（Ａ）〜図１１（Ｃ）はそれぞれ上述したフィルタ関数における陰影の境界位置（threshold）および陰影のグラデーション値（width）を種々に設定した場合の画像例を示している。具体的には、図１１（Ａ）はthreshold＝0.90、width＝0.48と設定した場合、図１１（Ｂ）はthreshold＝0.90、width＝1.06と設定した場合、図１１（Ｃ）はthreshold＝0.20、width＝1.06と設定した場合、である。影の境界位置（threshold）および陰影のグラデーション値（width）を変更することにより、陰影の境界を自在に調整することが可能となる。
【００７９】
図１２は、本実施形態において最終的に生成される二次元画像（出力カラー）の一例を示す図である。図１２は、上記した関数のパラメータの１つである陰影の境界位置（threshold）の効果をより詳細に説明するために例示された画像である。図１２（Ａ）の画像ではthreshold＝0.177と設定され、図１２（Ｂ）の画像ではthreshold＝0.253と設定され、図１２（Ｃ）の画像ではthreshold＝0.292と設定されている。また、これらの画像では陰影のグラデーション値がwidth≒0.0に固定して設定されている。影の境界位置（threshold）を変更することにより、明るい部分と暗い部分との境界位置が移動する。図示の例では、例えば顔の顎から頬にかけての部分や、顎から下唇にかけての部分などを参照すると、thresholdの値を可変することによる効果を確認できる。すなわち、thresholdの値を小さくすると暗い部分の面積が相対的に小さくなり、thresholdの値を大きくすると暗い部分の面積が相対的に大きくなる。また、width≒0.0に設定することにより、陰影の境界にはほとんどグラデーションがなくなることが分かる。
【００８０】
図１３は、本実施形態において最終的に生成される二次元画像（出力カラー）の一例を示す図である。図１３は、上記した関数のパラメータの１つである陰影のグラデーション値（width）の効果をより詳細に説明するために例示された画像である。図１３（Ａ）の画像ではwidth＝0.0104と設定され、図１３（Ｂ）の画像ではwidth＝0.0365と設定され、図１３（Ｃ）の画像ではwidth ＝0.0833と設定されている。また、これらの画像では陰影の境界位置がthreshold＝0.253に固定して設定されている。陰影のグラデーション値（width）を変更することにより、明るい部分と暗い部分との境界のグラデーションの度合いを制御できる。図示の例では、例えば顔の顎から頬にかけての部分や顎から下唇にかけての部分における明部と暗部の境界を参照すると、widthの値を可変することによる効果を確認できる。すなわち、widthの値が大きいほど、明るい部分と暗い部分との境界のグラデーションが相対的に滑らかになる。
【００８１】
以上のようの本実施形態によれば、フィルタ関数の特性を適宜設定することにより、テクスチャの陰影の境界のぼかし幅、ぼかし位置を調整することが可能になる。したがって、イラストタッチの画像を用いる場合における陰影付けの表現力を高めることができる。
【００８２】
（その他の実施態様）
なお、本発明は上述した各実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では一例として人物の顔の画像を生成する場合について説明していたが、本発明の適用範囲はこれに限定されるものではない。
【００８３】
また、上述した実施形態では、ＣＰＵ等のハードウェアを含むコンピュータに所定のプログラムを実行させることによってゲーム装置が実現されていたが、ゲーム装置に備わっていた各機能ブロックはそれぞれ専用のハードウェア等を用いて実現されていてもよい。
【００８４】
また、上述した実施形態では一例としてゲーム装置を採り上げていたが、本発明の適用範囲はゲーム装置に限定されるものではない。例えば、現実世界の各種体験（例えば、運転操作等）を擬似的に再現するシミュレータ装置等に対しても本発明を適用することが可能である。
【図面の簡単な説明】
【００８５】
【図１】一実施形態のゲーム装置の構成を示すブロック図である。
【図２】光源について模式的に示した概念図である。
【図３】第１の実施形態における画像生成処理の全体的な手順を示すフローチャートである。
【図４】シャドウマップ及び法線マップの概念図である。
【図５】テクスチャデータの概念模式図である。
【図６】出力カラーの概念模式図である。
【図７】最終的に生成される二次元画像（出力カラー）の一例と、これに対する比較例の二次元画像を示す図である。
【図８】最終的に生成される二次元画像（出力カラー）の一例と、これに対する比較例の二次元画像を示す図である。
【図９】第２の実施形態における画像生成処理の手順を説明するフローチャートである。
【図１０】フィルタ関数の一例を示す図である。
【図１１】最終的に生成される二次元画像（出力カラー）の一例を示す図である。
【図１２】最終的に生成される二次元画像（出力カラー）の一例を示す図である。
【図１３】最終的に生成される二次元画像（出力カラー）の一例を示す図である。
【符号の説明】
【００８６】
１０…ＣＰＵ
１１…システムメモリ
１２…記憶媒体
１３…ブートロム
１４…バスアービタ
１５…ジオメトリプロセッサ
１６…レンダリングプロセッサ
１７…グラフィックメモリ
１８…オーディオプロセッサ
１９…オーディオメモリ
２０…通信インタフェース（Ｉ／Ｆ）
２１…ペリフェラルインターフェース
【図１】
0004816928.tif 000002
【図２】
0004816928.tif 000003
【図３】
0004816928.tif 000004
【図９】
0004816928.tif 000005
【図１０】
0004816928.tif 000006
【図４】
0004816928.tif 000007
【図５】
0004816928.tif 000008
【図６】
0004816928.tif 000009
【図７】
0004816928.tif 000010
【図８】
0004816928.tif 000011
【図１１】
0004816928.tif 000012
【図１２】
0004816928.tif 000013
【図１３】
0004816928.tif 000014