(57)【特許請求の範囲】
【請求項１】
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、当該複数のポリゴンの初期透明度と、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
を備え、
前記生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付け、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項２】
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
を備え、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現され、
前記生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成し、
前記生成部は、
（１）当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
（２）当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
（３）当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
（４）当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得る
ことを特徴とする画像生成装置。
【請求項３】
仮想空間内に配置される物体の外形を表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部、
当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、前記記憶部に記憶させるサーフェス計算部
を備えることを特徴とする画像生成装置。
【請求項４】
請求項１から３のいずれか１項に記載の画像生成装置であって、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、ＮＵＲＢＳ（Non-Uniform Rational B-Spline）曲面により表現され、
当該外側サーフェスおよび当該内側サーフェスのそれぞれを表現する複数のポリゴンは、当該ＮＵＲＢＳ曲面をテセレート（tesselate）近似するポリゴンである
ことを特徴とする画像生成装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像生成装置であって、
当該外側サーフェス用のテクスチャと、当該内側サーフェス用のテクスチャと、のいずれか一方のテクスチャに所定の色彩フィルタを施して得られたテクスチャを、当該他方のテクスチャとするフィルタ部
をさらに備えることを特徴とする画像生成装置。
【請求項６】
請求項１から５のいずれか１項に記載の画像生成装置であって、
前記生成部において、当該ポリゴンの法線ベクトルとなす角が９０度以上１８０度以下であるか否かを対比する対象として、視線ベクトルにかえて、当該ポリゴンの法線ベクトルと当該視点から当該ポリゴンに向かう方向ベクトルを採用する
ことを特徴とする画像生成装置。
【請求項７】
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、当該複数のポリゴンの初期透明度と、を記憶する記憶部、生成部を有する画像生成装置にて実行される画像生成方法であって、
前記生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備え、
前記生成部による工程では、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付け、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する
ことを特徴とする画像生成方法。
【請求項８】
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、生成部を有する画像生成装置にて実行される画像生成方法であって、
前記生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備え、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現され、
前記生成部による工程では、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成し、
前記生成部による工程では、
（１）当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
（２）当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
（３）当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
（４）当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得る
ことを特徴とする画像生成方法。
【請求項９】
仮想空間内に配置される物体の外形を表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、生成部、サーフェス計算部を有する画像生成装置にて実行される画像生成方法であって、
前記生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備え、
前記サーフェス計算部が、当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、前記記憶部に記憶させるサーフェス計算工程
を備えることを特徴とする画像生成方法。
【請求項１０】
コンピュータを、
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、当該複数のポリゴンの初期透明度と、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
として機能させ、
前記生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付け、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する
ように機能させることを特徴とするプログラム。
【請求項１１】
コンピュータを、
仮想空間内に配置される物体の外形を複数のポリゴンにより表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置され、複数のポリゴンにより表現される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
として機能させ、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現され、
前記生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成し、
前記生成部は、
（１）当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
（２）当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
（３）当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
（４）当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得る
ように機能させることを特徴とするプログラム。
【請求項１２】
コンピュータを、
仮想空間内に配置される物体の外形を表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部、
当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、前記記憶部に記憶させるサーフェス計算部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間に配置されるキャラクターを画面表示する際に、現実の人間や動物などが見える場合の様子に沿ったリアルな表現を求める手法と、日本独自の漫画やアニメーションにおいて広く見られるように、現実とは異なる省略や誇張などを用いて、キャラクター表現を豊かにする技術が提案されている。このような画像生成、画面表示の技術については、以下の文献に開示されている。
【特許文献１】特許第３４９０９８３号公報
【０００３】
ここで、[特許文献１]には、現実世界には存在しないが漫画やアニメーションでは広く用いられる「輪郭線」を、ポリゴンモデルにより表現されたキャラクターに付与する技術が開示されている。
【０００４】
すなわち、ポリゴンモデル（「主モデル」）と、このポリゴンモデルよりも若干大きなサイズの輪郭用ポリゴンモデル（「副モデル」）を準備し、副モデルはたとえば黒一色にし、副モデルの中に主モデルを内包させ、描画は、まず背景、次に副モデル、ついで主モデルの順で行い、この描画の際、副モデルに関してはＺバッファの値を更新しない。これにより、視点から見て副モデルと主モデルとが重なる部分ではＺバッファの値が主モデルにより更新され、副モデルと主モデルとが重ならない部分では副モデルが残される。この結果、主モデルの周囲に副モデルが輪郭として表示される。
【０００５】
ここで、輪郭線は略一定の幅の線として描画されるものである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方で、漫画やアニメーションの質感表現においては、髪の毛や金属などの物体の艶を見せるために、光源がどこに存在しようとも、輪郭線付近をある程度の幅で明るく彩色し、回折や乱反射、逆光があるような描法を用いることがある。
【０００７】
このように、現実世界における回折現象や乱反射、逆光現象を誇張して、仮想空間に配置されるオブジェクトの周辺部分の色彩を、その形状の合わせた幅で変化させるような、日本独自の漫画やアニメーションのハイライト表現を、ポリゴンモデルやＮＵＲＢＳ（Non-Uniform Rational B-Spline）曲面モデルで効率良く行いたい、との要望は大きい。
【０００８】
本発明は、上記のような課題を解決するもので、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る画像生成装置は、記憶部、生成部を備え、以下のように構成する。
【００１１】
すなわち、記憶部は、仮想空間内に配置される物体の外形を表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する。
【００１２】
たとえばキャラクター頭部の髪の毛にハイライト表現を施す場合を考える。外側サーフェスは、キャラクター頭部の形状をそのまま表現するものであり、ハイライト表現を行うか否かにかかわらず、必要となる。一方、内側サーフェスは、キャラクター頭部のハイライト部分を除去した形状を模したものであり、外側サーフェスの形状を、ハイライトされていることがわかる程度の幅だけ、小さくしたものである。
【００１３】
一方、生成部は、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する。
【００１４】
この際に、当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）である領域に、当該外側サーフェス用のテクスチャをマッピングする。
【００１５】
また、当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする。
【００１６】
一般的なコンピュータグラフィックスでは、サーフェスの表側（ポリゴンモデルによる表現される立体の外側）にテクスチャをマッピングするが、サーフェスの裏側（立体の内側）にはテクスチャをマッピングしない（すなわち、透明にする）、という対応付けがされるのが一般的である。すなわち、視点から見える領域が「サーフェスの表側」であり、見えない領域が「サーフェスの裏側」である。したがって、サーフェスが表現する立体の外側から内側に向かう法線ベクトルが、視線ベクトルとなす角が、９０度以上１８０度以下（鈍角）である領域は、「サーフェスの裏側（立体の内側）」に相当し、透明になるが、０度以上９０度以下である領域が、「サーフェスの表側（立体の外側）」に相当し、テクスチャがマッピングされる。
【００１７】
本発明では、上記の関係を逆転させており、外側サーフェスのうち、立体の内側に相当する領域については、テクスチャをマッピングする（不透明の透明度でマッピングするのが典型的であるが、半透明や完全透明の領域がある場合には、その透明度でマッピングする。）が、立体の外側に相当する領域については、透明にする（完全透明の透明度でテクスチャをマッピングすることを含む。）のである。
【００１８】
なお、内側サーフェスについては、従来のコンピュータグラフィックス同様、立体の外側に相当する領域について、テクスチャをマッピングする。立体の内側に相当する領域については、積極的にテクスチャをマッピングする必要はない（なお、描画したとしても、より視点の近くに存在する内側サーフェスが外側に相当する領域となるため、内側に相当する領域は、外側に相当する領域によって隠される）。
【００１９】
このような処理を行うことで、[特許文献１]におけるような、モデルの描画順序を恣意的に変更する処理を行わなくとも済み、データを統一化することができるので、グラフィックスハードウェアの支援が受けやすくなり、処理の高速化を図ることができるのである。
【００２０】
本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うことができる。
【００２１】
また、本発明の画像生成装置は、以下のように構成することができる。
【００２２】
すなわち、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現される。
【００２３】
一方、生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）であるポリゴンと、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成する。
【００２４】
本発明は、上記発明の好適実施形態に係るものであり、外側サーフェスを構成するポリゴンの法線ベクトルと内側サーフェスを構成するポリゴンの法線ベクトルとの向きが、互いに対向する（ほぼ逆向きになる）ように配置した上で、各サーフェスを構成するポリゴンの法線ベクトルと視線ベクトルとがなす角によって同一的に、各ポリゴンが描画の対象とするか否かを判定する。
【００２５】
本発明によれば、外側サーフェスのポリゴンと内側サーフェスのポリゴンのそれぞれの表裏を表す法線ベクトルの向きを、互いに略対向するように設定する、という単純なデータ処理によって、ハイライト表現を簡易に実現することができるようになる。
【００２６】
また、本発明の画像生成装置は、以下のように構成することができる。
【００２７】
すなわち、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現される。
【００２８】
一方、記憶部には、当該複数のポリゴンのそれぞれの初期透明度がさらに記憶される。
【００２９】
さらに、生成部は、
（ｐ）当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）であるポリゴンには、記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付け、
（ｑ）当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）であるポリゴンには、記憶部に記憶された初期透明度を対応付け、９０度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する。
【００３０】
本発明は、上記発明の好適実施形態に係るものであり、ポリゴンにテクスチャをマッピングして描画する際の透明度を、初期透明度（完全不透明でも良いし、半透明でも良い。）とするか、完全透明とするか、を、法線ベクトルと視線ベクトルとがなす角によって、画一的に判断するものである。
【００３１】
本発明によれば、透明度を制御することによって、ハイライト表現を簡易に実現することができるようになる。
【００３２】
また、本発明の画像生成装置において、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、ＮＵＲＢＳ（Non-Uniform Rational B-Spline）曲面により表現され、当該外側サーフェスおよび当該内側サーフェスのそれぞれを表現する複数のポリゴンは、当該ＮＵＲＢＳ曲面をテセレート（tesselate）近似するポリゴンであるように構成することができる。
【００３３】
本発明は上記発明の好適実施形態に係るものであり、サーフェスを定めるためにＮＵＲＢＳ曲面を用いて滑らかな形状を定めることができるようにする一方で、描画の際には、小さな三角形ポリゴンでサーフェスを近似して、ポリゴンによる三次元グラフィックスに帰着させるテセレート近似を行うものである。
【００３４】
本発明によれば、滑らかな曲面に対してハイライト表現を簡易に実現することができるようになる。
【００３５】
また、本発明の画像生成装置は、当該外側サーフェス用のテクスチャと、当該内側サーフェス用のテクスチャと、のいずれか一方のテクスチャに所定の色彩フィルタを施して得られたテクスチャを、当該他方のテクスチャとするフィルタ部をさらに備えるように構成することができる。
【００３６】
ハイライト表現される領域は、輪郭線付近であり、通常表現された色を明るく表現したものが一般的である。したがって、内側サーフェス用のテクスチャには、キャラクターの通常の色の髪の毛の色や模様（メッシュや髪飾り等）を定義しておき、外側サーフェス用のテクスチャには、これを明るくするような色彩フィルタを施したものを採用することが考えられる。また、色彩フィルタの種類は、外部の光源の種類等によって適宜変更が可能である。
【００３７】
本発明によれば、テクスチャの基本データを外側サーフェスと内側サーフェスとで共有することで、必要な画像データ量を低減することができるようになる。
【００３８】
また、本発明の画像生成装置において、生成部において、当該ポリゴンの法線ベクトルとなす角が９０度以上１８０度以下（鈍角）であるか否かを対比する対象として、視線ベクトルにかえて、当該ポリゴンの法線ベクトルと当該視点から当該ポリゴンに向かう方向ベクトルを採用するように構成することができる。
【００３９】
上記発明は、主として平行投影によるテクスチャマッピングを想定したものであるが、本発明は、一点透視の透視投影によるテクスチャマッピングを想定したものであり、視線ベクトルと法線ベクトルがなす角が９０度以上１８０度以下（鈍角）か否かを判定してポリゴンを分別するのではなく、視点からポリゴンへの方向ベクトルと法線ベクトルがなす角が９０度以上１８０度以下（鈍角）か否かを判定してポリゴンを分別することとするものである。
【００４０】
本発明によれば、平行投影のみならず、一点透視による透視投影においても適切に画像生成を行うことができるようになる。
【００４１】
また、本発明の画像生成装置において、生成部は、
（１）当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
（２）当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
（３）当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
（４）当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得るように構成することができる。
【００４２】
本発明は、上記発明の好適実施形態に係るものであり、並列処理が可能なグラフィックス処理プロセッサなどを利用する際に特に好適である。
【００４３】
すなわち、視点からの距離の遠近によって、ポリゴンを複数のグループに分ける。そして、各グループごとに、典型的には並列に、ポリゴンのソートと描画を行う。最後に、グループごとの描画結果を遠い順にフレームバッファに展開することで、画像が得られる。
【００４４】
また、各グループに分類されたポリゴンの個数が算定できるので、次回の描画の際にも、当該ポリゴンの距離分布に大きな変化はないと仮定して、ポリゴンの個数がグループごとに均等になるように、グループを区切る境界を、次回の画像生成用に修正するのである。
【００４５】
本発明によれば、全ポリゴンについてまとめてソートして描画するのではなく、複数のグループ内で各々ソートして描画することができるため、並列計算によって高速化を図ることができるようになる。
【００４６】
また、本発明の画像生成装置において、当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、記憶部に記憶させるサーフェス計算部をさらに備えるように構成することができる。
【００４７】
本発明は上記発明の好適実施形態に係るものであり、外側サーフェスから内側サーフェスを自動生成するものである。この際に、外側サーフェスを均一に縮小して内側サーフェスを得るのではなく、外側サーフェスの各制御点における曲率に基づいて、縮小の度合を変更する。
【００４８】
したがって、本発明によれば、外側サーフェスの曲率に応じて幅が変化するハイライト表現を実現することができ、簡易な計算で立体感のある画像を生成することができるようになる。
【００４９】
本発明のその他の観点に係る画像生成方法は、記憶部、生成部を有する画像生成装置にて実行される。
【００５０】
ここで、記憶部は、仮想空間内に配置される物体の外形を表現する外側サーフェス（surface）の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する。
【００５１】
一方、生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
（ａ）当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が９０度以上１８０度以下（鈍角）である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
（ｂ）当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備えるように構成する。
【００５２】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置として機能させるように構成する。
【００５３】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００５４】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００５５】
本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【００５６】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００５７】
図１は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５８】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００５９】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【００６０】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００６１】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００６２】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００６３】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００６４】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００６５】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００６６】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００６７】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００６８】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００６９】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００７０】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００７１】
インターネット内のＳＮＴＰサーバにＮＩＣ  １０９を介して接続し、ここから情報を得ることによって現在の日時情報を得るようにすることができる。また、各種のネットワークゲームのサーバ装置が、ＳＮＴＰサーバと同様の機能を果たすように構成設定してもよい。
【００７２】
一旦日時情報が得られれば、情報処理装置１００が動作中はタイマ割込によりリアルタイムクロックと同様の機能を果たすカウンタを更新することとしてもよいし、情報処理装置１００がリアルタイムクロックを有する場合は、その日時情報を修正する態様を採用することもできる。この際に、修正するか否かをユーザに問い合わせてもよい。内蔵するリアルタイムクロックを修正しない場合には、リアルタイムクロックの情報と実際にサーバから得られた情報との差分を保持し、日時情報が必要な場合には、リアルタイムクロックから得られた情報にその差分を加算すればよい。
【００７３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００７４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００７５】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００７６】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００７７】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００７８】
たとえば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００７９】
図２は、本実施形態で実現しようとするハイライト表現について説明する説明図である。以下、本図を参照して説明する。
【００８０】
本図に示すように、キャラクター２０１は、大別して毛髪部２０２、顔部２０３、胴体部２０４からなっている。
【００８１】
ここで、胴体部２０４には、影２０５がキャラクター２０１の右腕側にできている。すなわち、照明は、キャラクター２０１の左腕側から照射していることになっている。
【００８２】
一方で、毛髪部２０２の髪の毛部分を見ると、その輪郭の近傍には、色が明るいハイライト２０６ができている。このハイライト２０６は、照明の位置によるものではなく、乱反射や回折、（存在しない）逆光などの物理現象を援用、誇張したもので、日本の漫画やアニメーションなどで広く用いられる描法である。ハイライト２０６は、一般的な光学的物理現象に基づくものではないため、物理シミュレーションによって得ることはできない。
【００８３】
そこで、本実施形態では、このようなハイライト２０６を、ポリゴンモデルやＮＵＲＢＳ曲面を用いて実現することとする。
【００８４】
なお、ＮＵＲＢＳ曲面は、滑らかな形状を定めることができるものであるが、描画の際には、小さな三角形ポリゴンでサーフェスを近似して、ポリゴンによる三次元グラフィックスに帰着させるテセレート近似を行うので、極めて多数のポリゴンからなるポリゴンモデルに帰着させることができる。
【００８５】
したがって、以下の説明では、ポリゴンによりサーフェスを定義する手法を例として取り上げる。
【００８６】
図３は、本実施形態に係るハイライト表現を実現するためのサーフェスの配置について説明する説明図である。以下、本図を参照して説明する。
【００８７】
なお、上記のように、ハイライト２０６は、キャラクター２０１の毛髪部２０２の形状など、曲面上に配置されるのが一般的であるが、本図では、理解を容易にするため、キャラクター２０１に相当するオブジェクトの形状を、四面体（三角錐）に簡易化している。
【００８８】
仮想空間３０１内に配置されるオブジェクト３０２の画像は、仮想空間内に配置された視点から視線ベクトルの方向に伸びる視線の方向に配置された投影面に、オブジェクト３０２を投射する透視投影（一点透視でも良いし、平行透視でも良い。）によって生成される。本図のオブジェクト３０２の様子は、平行投影によって表示されたものである。
【００８９】
本図に示すように、仮想空間３０１に配置されるオブジェクト３０２は、四面体の外形を持ち、その外形は、外側サーフェス３１１によって定義される。したがって、外側サーフェス３１１は、４つの三角形ポリゴン３１２、３１３、３１４、３１５からなる。
【００９０】
当該視点から見たとき、ポリゴン３１２は、外側サーフェス３１１の四面体の右側面に相当し、ポリゴン３１３は、左側面に相当し、ポリゴン３１４は、底面に相当し、ポリゴン３１５は、裏側面に相当する。
【００９１】
各ポリゴン３１２、３１３、３１４、３１５の法線ベクトルは、四面体の内側を向くように設定されている。すなわち、いわゆる「外向き法線」とは逆向きである。
【００９２】
そして、外側サーフェス３１１が包む領域内に、同じく四面体の形状からなる内側サーフェス３３１が配置されている。したがって、内側サーフェス３３１は、外側サーフェス３１１よりも小さい。また、内側サーフェス３３１の各面をなす４つの三角形ポリゴン３３２、３３３、３３４、３３５は、外側サーフェス３１１の三角形ポリゴン３１２、３１３、３１４、３１５と対向している。そして、三角形ポリゴン３３２、３３３、３３４、３３５の法線ベクトルは、四面体の外側を向くように設定されている。すなわち、いわゆる「外向き法線」と同じ向きである。
【００９３】
ここで、当該視点から見たとき、ポリゴン３３２は、内側サーフェス３３１の四面体の右側面に相当し、ポリゴン３３３は、左側面に相当し、ポリゴン３３４は、底面に相当し、ポリゴン３３５は、裏側面に相当する。
【００９４】
なお、本図に示すように、対向するポリゴン同士は、必ずしも平行でなくとも良い。すなわち、内側サーフェス３３１は、外側サーフェス３１１を単純に縮小したものでも良いし、別途用意した形状のものであっても構わない。
【００９５】
さてここで、理解を容易にするため、従来のコンピュータグラフィックス処理の進行について説明する。図４は、従来のコンピュータグラフィックス処理における描画の様子を示す説明図である。以下、本図を参照して説明する。なお、本図（ａ）〜（ｄ）では、理解を容易にするため、輪郭線を明示している。
【００９６】
従来のコンピュータグラフィックス処理では、以下のように処理が進む。
（１）内側サーフェス３３１の隠面消去により、ポリゴン３３２、３３３が描画候補となる（本図（ａ））。
（２）外側サーフェス３１１の隠面消去により、ポリゴン３１２、３１３が描画候補となる（本図（ｂ））。
（３）これら４つの描画候補を視点から遠い順に遠い順にテクスチャマッピングすることで、画像が生成される。ここで、内側サーフェス３３１のポリゴン３３２、３３３は、外側サーフェス３１１のポリゴン３１２、３１３よりも視点から遠い。
（４）したがって、まず内側サーフェス３３１のポリゴン３３２、３３３のテクスチャが貼り込まれ（本図（ｃ））、その後に、外側サーフェス３１１のポリゴン３１２、３１３がテクスチャが貼り込まれる（本図（ｄ））。外側サーフェス３１１の方が内側サーフェス３３１よりも大きいから、内側サーフェス３３１のポリゴン３３２、３３３のテクスチャは外側サーフェス３１１のポリゴン３１２、３１３がテクスチャで塗り潰され、完全に上書きされてしまう。
（５）このため、結果画像には、外側サーフェス３１１のポリゴン３１２、３１３に貼り込まれたテクスチャのみが残ることになる（本図（ｅ））。
【００９７】
この際、従来のコンピュータグラフィックス技術では、隠面消去の対象となるか否かを、以下のように判断する。
（ａ）平行投影の場合は、ポリゴンの外向き法線ベクトルと、視線ベクトルと、のなす角が、０度以上９０度未満（鋭角）であれば、隠面であり、９０度以上１８０度以下（鈍角）であれば、隠面ではない。
（ｂ）一点投影の場合は、ポリゴンの外向き法線ベクトルと、視点からポリゴンに向かう方向ベクトルと、のなす角が、０度以上９０度未満（鋭角）であれば、隠面であり、９０度以上１８０度以下（鈍角）であれば、隠面ではない。
【００９８】
なお、一点投影の場合に、手法（ａ）を近似的に採用することも可能である。また、視点からポリゴンに向かう方向ベクトルは、視点からポリゴンの頂点のいずれかあらかじめ定めたものへ向かう方向ベクトル、もしくは、視点からポリゴンの重心（中心）へ向かう方向ベクトルとするのが典型的である。
【００９９】
さて、このような隠面消去に必要な計算処理は、画像処理部１０７が備える画像処理プロセッサなど、専用ハードウェアによって高速に行われることが多い。
【０１００】
そこで、本発明のハイライト表現においても、できるだけ、このような専用ハードウェアの支援を利用できるようにすることが望ましい。そのため、上記のように、法線ベクトルの向きを定める上で、工夫をしているのである。
【０１０１】
すなわち、内側サーフェス３３１を構成するポリゴン３３２、３３３、３３４、３３５の法線ベクトルは、内側サーフェス３３１から外側サーフェスが配置される側に向かう。すなわち、ポリゴン３３２、３３３、３３４、３３５の「外向き法線」は、従来のコンピュータグラフィックスにおけるものと同様の向きとしている。
【０１０２】
一方、外側サーフェス３１１を構成するポリゴン３１２、３１３、３１４、３１５の法線ベクトルは、外側サーフェス３１１から内側サーフェス３３１が配置される側に向かうようにする。すなわち、ポリゴン３１２、３１３、３１４、３１５の「外向き法線」を、オブジェクト３０２の内側に向かうようにするのである。これは、従来のコンピュータグラフィックスにおけるものとは反対向きである。
【０１０３】
このように「外向き法線」を設定した上で、従来のコンピュータグラフィックス処理と同様に、ベクトル同士のなす角が９０度以上１８０度以下（鈍角）か否かによって隠面消去するか描画候補とするかを判断することとすると、以下のようになる。
【０１０４】
図５は、本実施形態のコンピュータグラフィックス処理における描画の様子を示す説明図である。以下、本図を参照して説明する。なお、本図（ａ）〜（ｄ）では、理解を容易にするため、輪郭線を明示している。
【０１０５】
本実施形態のコンピュータグラフィックス処理では、以下のように処理が進む。すなわち、
（１）内側サーフェス３３１の隠面消去により、ポリゴン３３２、３３３が描画候補となる（本図（ａ））。
（２）外側サーフェス３１１の隠面消去により、ポリゴン３１４、３１５が描画候補となる（本図（ｂ）。
（３）これら４つの描画候補を視点から遠い順に遠い順にテクスチャマッピングすることで、画像が生成される。ここで、内側サーフェス３３１のポリゴン３３２、３３３は、外側サーフェス３１１のポリゴン３１４、３１５よりも視点に近い。
（４）したがって、まず、外側サーフェス３１１のポリゴン３１４、３１５のテクスチャが貼り込まれ（本図（ｃ））、その後に、内側サーフェス３３１のポリゴン３３２、３３３のテクスチャが貼り込まれる（本図（ｄ））。外側サーフェス３１１のポリゴン３１４、３１５のテクスチャは、内側サーフェス３３１のポリゴン３３２、３３３のテクスチャに上書きされるものの、内側サーフェス３３１は外側サーフェス３１１よりも小さいから、内側サーフェス３３１のポリゴン３３２、３３３に貼り込まれたテクスチャの周囲に外側サーフェス３１１のポリゴン３１４、３１５に貼り込まれたテクスチャの一部が残ることとなる。
（５）このため、結果画像には、内側サーフェス３３１の周囲に外側サーフェス３１１がハイライトとして残ることになる（本図（ｅ））。
【０１０６】
図６は、より一般的な例において、外側サーフェスのポリゴンと、内側サーフェスのポリゴンと、が、テクスチャ貼り込みの対象となるか否かを判断する際の様子を説明する断面図である。以下、本図を参照して説明する。
【０１０７】
本図に示すように、外側サーフェス３１１と内側サーフェス３３１は、複数のポリゴンにより構成される。これらのうち、視点６５１から見て視線の方向に配置される外側サーフェス３１１のポリゴン６０１、６０２と、内側サーフェス３３１のポリゴン６３１、６３２と、を考える。
【０１０８】
これらは、視点６５１から近い順に並べると、ポリゴン６０１、６３１、６３２、６０２の順になる。
【０１０９】
ここで、ポリゴン６０１、６０２の法線ベクトル６１１、６１２は、内側サーフェス３３１に向くように配置されている。また、ポリゴン６３１、６３２の法線ベクトル６４１、６４２は、外側サーフェス３１１に向くように配置されている。
【０１１０】
したがって、本図に示す例では、視点６５１から視線の方向に伸びる視線ベクトル６５２（もしくは、上記のように、視点６５１から各ポリゴン６０１、６０２、６３１、６３２への方向ベクトルを採用しても良い。）と、各法線ベクトルとのなす角が、
（ａ）０度以上９０度未満（鋭角）のものは、ポリゴン６０１（法線ベクトル６１１）、６３２（法線ベクトル６４２）であり、
（ｂ）９０度以上１８０度以下（鈍角）のものは、ポリゴン６０２（法線ベクトル６１２）、６３１（法線ベクトル６４１）である。
【０１１１】
したがって、ポリゴン６０１、６３２については、描画の際にテクスチャ貼り込みを行う必要がない（完全透明で描画しても良い）。本図では、テクスチャ貼り込みを行う必要がないポリゴンを、白抜き線で表現している。
【０１１２】
一方、ポリゴン６０２、６３１は、テクスチャ貼り込みを行う必要がある。そこで本図では、テクスチャ貼り込みを行う必要があるポリゴンを、灰抜き線で表現している。
【０１１３】
ポリゴン６０２はポリゴン６３１よりも視点から見て遠くにあるから、まずポリゴン６０２をテクスチャ貼り込みし、何個かポリゴンを描画した後で、ポリゴン６３１をテクスチャ貼り込みすることになる。
【０１１４】
このような処理を各ポリゴンについて行うことによって、外側サーフェス３１１のテクスチャが輪郭周辺に残り、内側サーフェス３３１のテクスチャがその内部に描画された画像が得られるのである。
【０１１５】
外側サーフェス３１１用のテクスチャと、内側サーフェス３３１用のテクスチャと、は、別途用意しても良いが、外側サーフェス３１１に貼り込むテクスチャは、内側サーフェス３３１に貼り込むテクスチャの色彩を明るくする色彩フィルタを施したものとするのが、データ容量の面からも有利である。この場合、典型的には、以下のような手順でオブジェクト３０２のテクスチャのデザインを行うこととなる。
（１）まず、ハイライト表現をしないものと想定して、オブジェクト３０２の外面（すなわち、外側サーフェス３１１）に貼り込むテクスチャをデザインする。この際に、外側サーフェス３１１の制御点がテクスチャ画像内のどの位置に対応付けられるか、が設定される。
（２）次に、得られたテクスチャを内側サーフェス３３１用にするために、内側サーフェス３３１の制御点が当該テクスチャ画像内のどの位置に対応付けるか、を決定する。外側サーフェス３１１と内側サーフェス３３１とが略同じ形状である場合（たとえば、外側サーフェス３１１の制御点位置を移動して内側サーフェスの制御点位置とした場合等）には、対向する制御点がテクスチャ画像内で同じ位置にマッピングされるように対応付けをする。
（３）そして、内側サーフェス３３１にテクスチャ画像を貼り込む場合には、そのまま貼り込み、外側サーフェス３１１にテクスチャ画像を貼り込む場合には、色彩フィルタを通してから（たとえば、明るい色とαブレンディングしてから）、貼り込むのである。
【０１１６】
なお、上記の説明では、ベクトル同士の角度が９０度未満（鋭角）のポリゴンについては、「隠面消去」することとして、テクスチャ貼り込みは行っていないが、透明度を変化させて、テクスチャ貼り込みを行うこととしても良い。
【０１１７】
すなわち、各ポリゴンには、既定の初期透明度として適当な透明度を割り当てておく。典型的には「不透明」であるが、半透明としても良い。この透明度は、テクスチャ貼り込みの際のαブレンディングのパラメータとして利用される。
【０１１８】
そして、ベクトル同士の角度が９０度未満（鋭角）のポリゴンは、完全透明でテクスチャを貼り込み（テクスチャを貼り込まないのと同様である。）ベクトル同士の角度が９０度以上１８０度以下（鈍角）のポリゴンは、初期透明度により、テクスチャをαブレンディングして貼り込むのである。
【０１１９】
グラフィックス処理プロセッサの機能や能力により、描画対象とするポリゴンを抽出選択する手法と、描画対象としないポリゴンを完全透明にする手法の、いずれを選択することも可能である。
【０１２０】
以下の説明では、最も単純に、ポリゴンのテクスチャ貼り込みの可否を分類する手法を説明するが、透明度を用いる手法についても同様の処理が可能である。
【０１２１】
図７は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１２２】
本実施形態に係る画像生成装置７０１は、記憶部７０２、生成部７０３を備える。このほか、省略可能な要素として、フィルタ部７０４、サーフェス計算部７０５を備えることとしても良い。以下、本図を参照して説明する。
【０１２３】
記憶部７０２に記憶される情報は、ＤＶＤ−ＲＯＭドライブ１０８やハードディスクに装着されるＤＶＤ−ＲＯＭからＲＡＭ  １０３に読み出されるものとするのが典型的である。これには、以下の情報が含まれる。
（１）仮想空間内における視点の位置、視線の方向、視点から投影面までの距離。３次元コンピュータグラフィックスにおける視野を定めるのに用いられる情報である。
（２）仮想空間内に配置される外側サーフェス３１１の形状、位置、外側サーフェス３１１に貼り込まれるテクスチャ。図８は、外側サーフェス３１１の形状の例を示す説明図である（本図では、符号を省略している）。本図に示すように、本例の外側サーフェス３１１は、キャラクターの髪の毛の外形を定義している。
（３）仮想空間内に配置される内側サーフェス３３１の形状、位置、内側サーフェス３３１に貼り込まれるテクスチャ。図９は、内側サーフェス３３１の形状の例を示す説明図である（本図では、符号を省略している）。本図に示すように、本例の内側サーフェス３３１は、キャラクターの髪の毛の形状を、ハイライト分だけ小さくした形状となっている。
（４）仮想空間内に配置される他のオブジェクト。通常のサーフェスにより定義される。図１０は、通常のサーフェスの形状の例を示す説明図である。本図に示すように、本例の通常のサーフェスは、キャラクターの顔面を定義するものとなっている。
（５）ポリゴンを複数のグループG1，…，GMに分類するための境界値数列。たとえば、グラフィックス処理プロセッサがM重の並列処理が可能である場合に利用し、ポリゴンを、視点からの距離に応じてM個のグループに分類する。M-1個の境界値d1，…，dM-1が必要である。また、理解を容易にするため、d0 = 0，dM = ∞としておく。この境界値数列は、d0＜d1＜…＜dM-1＜dMのように単調増加するように初期設定しておく。具体的な値は、処理が進むにつれて、修正される。
（６）各グループに対して分類されたポリゴンがいずれであるかを示す情報。ポリゴン情報のアドレスを記憶する配列やキューをM個用意するのでも良いし、ポリゴン情報としてグループ番号を示すフィールドを用意するのでも良い。
（７）その他、各種の画像生成処理に必要な情報。たとえば、画面に表示する画像を記憶するためのフレームバッファや、各グループ用のフレームバッファであるグループバッファ、ポリゴンをソートするためのＺバッファ等、仮想空間の遠景を表す画像等も、ＲＡＭ  １０３内に用意される。
【０１２４】
図１１は、これらのサーフェスの相対的な位置関係を示す説明図である（本図では、符号を省略している）。図８、図９と対比すると、外側サーフェス３１１が包む領域内に内側サーフェス３３１が入っていることがわかる。
【０１２５】
これらの情報は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３に読み込まれ、あるいは、計算によって適宜生成されて、結果がＲＡＭ  １０３内に格納される。したがって、ＲＡＭ  １０３は、記憶部７０２として機能する。
【０１２６】
図１２、図１３は、本実施形態における画像処理方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１２７】
上記のように、処理が開始されると、ＲＡＭ  １０３に必要な情報が読み込まれ、記憶部７０２が初期化される（ステップＳ９０１）。初期化の際に、後述するように、サーフェス計算部７０５による外側サーフェス３１１から内側サーフェス３３１を生成する処理などを実行しても良い。
【０１２８】
なお、フィルタ部７０４が存在する場合には、この段階で、内側テクスチャに色彩フィルタを施して、外側テクスチャを生成することとしても良い。また、フィルタ部７０４が存在しない場合であっても、上述のように、テクスチャ貼り込みの際に適宜αブレンディング等を利用して、色彩フィルタを適用することができる。
【０１２９】
上記のように、本実施形態では、内側サーフェス３３１および通常のサーフェスのポリゴンの「外向き法線」を表す法線ベクトルは、通常のコンピュータグラフィックス技術におけるものと同様に向きとしておく。すなわち、内側サーフェス３３１のポリゴンの法線ベクトルは、外側サーフェス３１１の側に向く。
【０１３０】
また、外側サーフェス３１１の形状、位置を定めるポリゴンの「外向き法線」を表す法線ベクトルは、キャラクターの外側ではなく内側（内側サーフェス３３１の側）を向くものを採用しておく。
【０１３１】
このように、各ポリゴンの「外向き法線」を表す法線ベクトルの向きを定めて置くことで、以下の処理においては、あるポリゴンが、外側サーフェス３１１のものか、内側サーフェス３３１のものか、通常のサーフェスのものかを、一切区別する必要がなくなる。
【０１３２】
ついで、処理に使用される全N個のポリゴンを、適当な順序で単純にM個の集合1，…，Mに分類して（ステップＳ９０２）、各集合について以下の処理を並列に実行する（ステップＳ９０３〜Ｓ９０９）。すなわち、当該集合に属するポリゴンのそれぞれについて、以下の処理を繰り返す（ステップＳ９０４〜Ｓ９０８）。視点とポリゴンとの距離rを計算し（ステップＳ９０５）、境界値を参照してdi-1≦r＜diを見たすiを探す（ステップＳ９０６）。上記のように、d0 = 0，dM = ∞であるから、このようなグループ番号iは必ず見つかる。そして、当該ポリゴンをグループ番号iのグループに分類する（ステップＳ９０７）。ステップＳ９０３〜Ｓ９０９の並列処理では、各並列単位は、N/M個のポリゴンの処理を行うことになる。
【０１３３】
このようにして、M重並列でポリゴンの分類が終わったら、各グループ1，2，…，Mについて、並列に、以下の処理を実行する（ステップＳ９１０〜Ｓ９１９）。まず、当該グループに割り当てられたグループバッファを透明色で塗り潰す（ステップＳ９１１）。ついで、当該グループに属する全ポリゴンを、視点からの距離でソートする（ステップＳ９１２）。視点からの距離は、ステップＳ９０５で計算済みであるから、この値を再利用できるように、ポリゴン情報の中に視点からの距離フィールドを用意しておき、ステップＳ９０５の後に得られた値を代入しておくことが望ましい。
【０１３４】
さらに、当該グループに属するポリゴンについて、視点から遠い順に以下の処理を繰り返す（ステップＳ９１３〜Ｓ９１８）。すなわち、当該ポリゴンの法線ベクトルと、視線ベクトルとのなす角度を計算する（ステップＳ９１４）。なお角度そのものではなく、角度の余弦をベクトルの内積から求めて、以下の判定を行うこととしても良い。
【０１３５】
また、視線ベクトルではなく、視点からポリゴンへの方向ベクトルを用いる場合には、ステップＳ９０５における距離の計算で、当該方向ベクトルも計算することとなるから、ポリゴン情報の中に視点からの方向ベクトルを用意しておき、ステップＳ９０５の後に得られた値を代入しておくことが望ましい。
【０１３６】
ついで、その角度が９０度以上１８０度以下（鈍角）であるか否かを判定し（ステップＳ９１５）、９０度以上１８０度以下（鈍角）であれば（ステップＳ９１５；Ｙｅｓ）、当該ポリゴンの各頂点が、投影面に対してどこに投影されるかの、投射先の座標を計算して（ステップＳ９１６）、当該座標を結ぶグループバッファ内の領域に対応する領域のテクスチャを展開して（ステップＳ９１７）、次のポリゴンの処理に進む（ステップＳ９１８）。一方、９０度未満（鋭角）である場合（ステップＳ９１５；Ｎｏ），ステップＳ９１８にそのまま進む。
【０１３７】
なお、ステップＳ９１４〜ステップＳ９１７の処理は、グラフィックス処理プロセッサのハードウェアやライブラリによって高速な並列実行が可能なことも多い。そのようなハードウェアやライブラリを利用する場合には、たとえば角度の判断やテクスチャの貼り込みの詳細は、ライブラリ化されており、本発明の実装からライブラリを呼び出すだけで済む場合も多い。このような既存のライブラリを単純に呼び出すだけで済むようにするために、上記のように「外向き法線」の法線ベクトルの向きを設定しているのである。
【０１３８】
全グループについて、グループバッファへの画像の展開が終わったら（ステップＳ９１９）、フレームバッファに遠景画像を展開し（ステップＳ９２０）、視点から遠い順、すなわち、i = M，M-1，…，2，1の順で（ステップＳ９２１）、グループiのグループバッファの内容を、フレームバッファに転送する処理を（ステップＳ９２２）繰り返す（ステップＳ９２３）。この転送は、グループバッファに最初に展開された透明色を考慮して行う。
【０１３９】
これにより、遠くのポリゴンから順に描画したのと同じ画像が得られ、ステップＳ９２０〜ステップＳ９２３の処理によって、フレームバッファ内に、ハイライト表現がされたキャラクターを含む仮想空間の画像が生成される。
【０１４０】
したがって、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３等と共働して、グラフィックス処理プロセッサを有する画像処理部１０７は、生成部７０３として機能する。なお、M = 1の場合には、上記のフローに基づいて、処理の並列化は行わず、通常の単一プロセッサ処理を行えば良い。
【０１４１】
そして、各グループ1，…，Mのそれぞれに属するポリゴンの数を集計して（ステップＳ９２４）、グループに属するポリゴンの数ができるだけN/M個に近く均等になるように、境界値d1，…，dM-1を修正する（ステップＳ９２５）。
【０１４２】
具体的には、ポリゴン分布が一様であると仮定して境界値d1，…，dM-1を補間により求める手法が考えられる。
【０１４３】
このほか、グループ1，…，Mのそれぞれにおいてポリゴンは視点からの距離順にソート済であり、グループ1，…，Mのそれぞれもまた、全体として、視点からの距離順にソート済みであるから、各グループ内のポリゴン数がわかれば、視点からの距離がx番目のポリゴンがいずれであるかを同定することができる。そこで、1×N/M番目のポリゴンの距離をd1に、2×N/M番目のポリゴンの距離をd2に、…、M-1×N/M番目のポリゴンの距離をdM-1に、それぞれ設定することとする。
【０１４４】
このような境界値の修正を行うことにより、次回の画像生成におけるポリゴンのグループ分類ができるだけ均等になるようにして、並列度をあげることができるようになる。
【０１４５】
そして、垂直同期割込が生じるまで待機して（ステップＳ９２６）。この待機中には、他の処理（たとえば、ＲＡＭ  １０３内に記憶される各オブジェクトやサーフェスの位置や向き、形状を、時間の経過やユーザからの処理に基づいて更新する等の処理）をコルーチン的に実行することができる。
【０１４６】
垂直同期割込が生じたら、画像処理部１０７はフレームバッファの内容をモニタに転送して画面に画像を表示し（ステップＳ９２７）、ステップＳ９０２に戻る。
【０１４７】
図１４は、図８〜図１１に示されるキャラクターがハイライト表現された画像の例を示す説明図である。以下、本図を参照して説明する（本図では符号は省略している）。
【０１４８】
本図に示すように、キャラクターの髪の毛の輪郭付近は、いずれも髪の毛の中心部分とは色彩が異なっており、ハイライト表現がなされている。なお、本図において、額周辺にも水平方向の帯状のハイライトがなされているが、これは、本発明によるものではなく、ステップＳ９２２の後に、生成された画像に対してフィルタ処理をかけることとしたためである。
【０１４９】
このように、本実施形態によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うことができる。
【０１５０】
さて上記のように、外側サーフェス３１１と内側サーフェス３３１とは、前者が包む領域に後者が含まれ、前者の法線ベクトルが内向き、後者の法線ベクトルが外向きになっている関係を持っていれば、両者の具体的な形状に制限はない。たとえば、三角錐の外側サーフェス３１１に暗いテクスチャを適用し、球形の内側サーフェス３３１に明るいテクスチャを適用する組み合わせで、太陽や球形のライトの映り込みを表現する、などの表現も可能である。
【０１５１】
本実施例では、外側サーフェス３１１の制御点（ポリゴンの頂点やＮＵＲＢＳの制御点）から内側サーフェス３３１の制御点の位置を定める手法について説明する。
【０１５２】
最も単純な手法は、外側サーフェス３１１を、所定の中心点（典型的には、外側サーフェス３１１の重心やユーザが指定した点）の周りで、所定の倍率だけ縮小するものである。縮小率は、ハイライトさせたい量に応じて適宜決めることができる。
【０１５３】
その他の手法としては、外側サーフェス３１１の制御点を所定の中心点に向かって縮小するのであるが、当該縮小率を、当該制御点の周りの曲率によって変化させる、というものである。たとえば図１４に示す例を見ると、尖っている部分（曲率が大きい部分）では、ハイライト部分は細くなり、滑らかな部分（曲率が小さい部分）では、ハイライト部分は太くなっている傾向が見られる。
【０１５４】
そこで、曲率に対する縮小率をあらかじめテーブル等に用意しておいて、制御点周りの曲率を計算し、得られた曲率に対応付けられる縮小率で、外側サーフェス３１１の制御点を所定の中心点に向かって縮小した位置を、内側サーフェス３３１の制御点の位置とするのである。
【０１５５】
上記の例では、曲率が大きい部分は縮小率を等倍に近くしてハイライト部分を細くし、曲率が小さい部分は縮小率をより小さくしてハイライト部分を太くする。すなわち、曲率に対する縮小率が単調減少するように、あらかじめ対応付けを行うことになる。
【０１５６】
もちろん、これ以外の対応付けを採用しても良い。
【０１５７】
曲率を求める手法についてであるが、ＮＵＲＢＳ曲面においては、当該曲面を定義する有理式を微分することで、任意の制御点の近傍における曲率を求めることができる。
【０１５８】
また、単なるポリゴンの集合体でサーフェスが表現されている場合は、当該ポリゴンの頂点をＮＵＲＢＳ曲面の制御点にして上記の手法を用いるか、あるいは、以下のような手法を使えば良い。
【０１５９】
すなわち、ある制御点Xの近傍での曲率を求めるには、その近くにある３つの制御点A，B，Cを選択する。ポリゴンによりサーフェスが定義されている場合には、ある制御点（頂点）に各ポリゴンの辺が集中するから、当該辺の逆の端点をこの制御点A，B，Cとすれば良い。制御点Xに４つ以上の辺が集中する場合には、その中で近い順にA，B，Cを選ぶ。
【０１６０】
そして、線分XAの垂直２等分面、線分XBの垂直２等分面、線分XCの垂直２等分面の交点Yを求める。この交点Yと制御点Xとの距離が曲率半径であり、曲率半径の逆数が曲率である。
【０１６１】
線分の垂直２等分面は、法線ベクトルが当該線分の方向であり、当該線分の中点を通過する。ほとんどの場合は、３つの面が交わる点はただ１つに定まる。
【０１６２】
線分XA，XBの方向ベクトルの１次結合により線分XCの方向ベクトルが得られる場合（線分XA，XB，XCが同一平面内に置かれている場合）には、交点が定まらないが、この場合は曲率０である、ということになる。
【０１６３】
このようにして制御点の座標が求められれば、外側サーフェス３１１の法線ベクトルと内側サーフェス３３１の法線ベクトルとが、互いに対向するように、その向きを設定する。
【０１６４】
これらの計算は、ＣＰＵ  １０１がＲＡＭ  １０３に記憶された情報を元に行う。したがって、これらが共働して、サーフェス計算部７０５として機能する。
【０１６５】
このようにして、外側サーフェス３１１の各制御点における曲率を求めることにより、内側サーフェス３３１の各制御点の位置を計算して自動的に求めることができる。
【産業上の利用可能性】
【０１６６】
以上説明したように、本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【０１６７】
【図１】プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態で実現しようとするハイライト表現について説明する説明図である。
【図３】本実施形態に係るハイライト表現を実現するためのサーフェスの配置について説明する説明図である。
【図４】従来のコンピュータグラフィックス処理における描画の様子を示す説明図である。
【図５】本実施形態のコンピュータグラフィックス処理における描画の様子を示す説明図である。
【図６】外側サーフェスのポリゴンと、内側サーフェスのポリゴンと、が、テクスチャ貼り込みの対象となるか否かを判断する際の様子を説明する断面図である。
【図７】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図８】外側サーフェスの形状の例を示す説明図である。
【図９】内側サーフェスの形状の例を示す説明図である。
【図１０】通常のサーフェスの形状の例を示す説明図である。
【図１１】サーフェスの相対的な位置関係を示す説明図である。
【図１２】本実施形態における画像処理方法の制御の流れを示すフローチャートである。
【図１３】本実施形態における画像処理方法の制御の流れを示すフローチャートである。
【図１４】本実施形態の手法により、キャラクターがハイライト表現された画像の例を示す説明図である。
【符号の説明】
【０１６８】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  キャラクター
２０２  毛髪部
２０３  顔部
２０４  胴体部
２０５  影
２０６  ハイライト
３０１  仮想空間
３０２  オブジェクト
３１１  外側サーフェス
３１２  外側サーフェスのポリゴン
３１３  外側サーフェスのポリゴン
３１４  外側サーフェスのポリゴン
３１５  外側サーフェスのポリゴン
３３１  内側サーフェス
３３２  内側サーフェスのポリゴン
３３３  内側サーフェスのポリゴン
３３４  内側サーフェスのポリゴン
３３５  内側サーフェスのポリゴン
６０１  外側サーフェスのポリゴン
６０２  外側サーフェスのポリゴン
６１１  外側サーフェスのポリゴンの法線ベクトル
６１２  外側サーフェスのポリゴンの法線ベクトル
６３１  内側サーフェスのポリゴンの法線ベクトル
６３２  内側サーフェスのポリゴンの法線ベクトル
６５１  視点
６５２  視線ベクトル
７０１  画像生成装置
７０２  記憶部
７０３  生成部
７０４  フィルタ部
７０５  サーフェス計算部
【図１】
0004468974.tif 000002
【図２】
0004468974.tif 000003
【図３】
0004468974.tif 000004
【図４】
0004468974.tif 000005
【図５】
0004468974.tif 000006
【図６】
0004468974.tif 000007
【図７】
0004468974.tif 000008
【図８】
0004468974.tif 000009
【図９】
0004468974.tif 000010
【図１０】
0004468974.tif 000011
【図１１】
0004468974.tif 000012
【図１２】
0004468974.tif 000013
【図１３】
0004468974.tif 000014
【図１４】
0004468974.tif 000015