説明

画像生成装置、画像生成方法ならびに、プログラム

【課題】仮想空間に配置されるキャラクター頭部周縁等の色彩を変化させてハイライト表示する漫画やアニメーションの描法を、グラフィックス処理において効率良く行う画像生成装置等を提供する。
【解決手段】キャラクターの外形を表す外側サーフェス311にハイライト色のテクスチャを割り当て、そのポリゴン(601、602)の法線ベクトル(611、612)は内向きに設定し、外側サーフェス311に包まれる内側サーフェス331に通常色のテクスチャを割り当て、そのポリゴン(631、632)の法線ベクトル(641、642)は外向きに設定し、法線ベクトルと視線ベクトル652のなす角が鈍角のポリゴン(602、631)を視点651から遠い順にテクスチャ描画することで、キャラクターの輪郭にハイライト色が、その内部に通常色が配置された画像が生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【0002】
従来から、仮想空間に配置されるキャラクターを画面表示する際に、現実の人間や動物などが見える場合の様子に沿ったリアルな表現を求める手法と、日本独自の漫画やアニメーションにおいて広く見られるように、現実とは異なる省略や誇張などを用いて、キャラクター表現を豊かにする技術が提案されている。このような画像生成、画面表示の技術については、以下の文献に開示されている。
【特許文献1】特許第3490983号公報
【0003】
ここで、[特許文献1]には、現実世界には存在しないが漫画やアニメーションでは広く用いられる「輪郭線」を、ポリゴンモデルにより表現されたキャラクターに付与する技術が開示されている。
【0004】
すなわち、ポリゴンモデル(「主モデル」)と、このポリゴンモデルよりも若干大きなサイズの輪郭用ポリゴンモデル(「副モデル」)を準備し、副モデルはたとえば黒一色にし、副モデルの中に主モデルを内包させ、描画は、まず背景、次に副モデル、ついで主モデルの順で行い、この描画の際、副モデルに関してはZバッファの値を更新しない。これにより、視点から見て副モデルと主モデルとが重なる部分ではZバッファの値が主モデルにより更新され、副モデルと主モデルとが重ならない部分では副モデルが残される。この結果、主モデルの周囲に副モデルが輪郭として表示される。
【0005】
ここで、輪郭線は略一定の幅の線として描画されるものである。
【発明の開示】
【発明が解決しようとする課題】
【0006】
一方で、漫画やアニメーションの質感表現においては、髪の毛や金属などの物体の艶を見せるために、光源がどこに存在しようとも、輪郭線付近をある程度の幅で明るく彩色し、回折や乱反射、逆光があるような描法を用いることがある。
【0007】
このように、現実世界における回折現象や乱反射、逆光現象を誇張して、仮想空間に配置されるオブジェクトの周辺部分の色彩を、その形状の合わせた幅で変化させるような、日本独自の漫画やアニメーションのハイライト表現を、ポリゴンモデルやNURBS(Non-Uniform Rational B-Spline)曲面モデルで効率良く行いたい、との要望は大きい。
【0008】
本発明は、上記のような課題を解決するもので、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0010】
本発明の第1の観点に係る画像生成装置は、記憶部、生成部を備え、以下のように構成する。
【0011】
すなわち、記憶部は、仮想空間内に配置される物体の外形を表現する外側サーフェス(surface)の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する。
【0012】
たとえばキャラクター頭部の髪の毛にハイライト表現を施す場合を考える。外側サーフェスは、キャラクター頭部の形状をそのまま表現するものであり、ハイライト表現を行うか否かにかかわらず、必要となる。一方、内側サーフェスは、キャラクター頭部のハイライト部分を除去した形状を模したものであり、外側サーフェスの形状を、ハイライトされていることがわかる程度の幅だけ、小さくしたものである。
【0013】
一方、生成部は、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する。
【0014】
この際に、当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)である領域に、当該外側サーフェス用のテクスチャをマッピングする。
【0015】
また、当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする。
【0016】
一般的なコンピュータグラフィックスでは、サーフェスの表側(ポリゴンモデルによる表現される立体の外側)にテクスチャをマッピングするが、サーフェスの裏側(立体の内側)にはテクスチャをマッピングしない(すなわち、透明にする)、という対応付けがされるのが一般的である。すなわち、視点から見える領域が「サーフェスの表側」であり、見えない領域が「サーフェスの裏側」である。したがって、サーフェスが表現する立体の外側から内側に向かう法線ベクトルが、視線ベクトルとなす角が、90度以上180度以下(鈍角)である領域は、「サーフェスの裏側(立体の内側)」に相当し、透明になるが、0度以上90度以下である領域が、「サーフェスの表側(立体の外側)」に相当し、テクスチャがマッピングされる。
【0017】
本発明では、上記の関係を逆転させており、外側サーフェスのうち、立体の内側に相当する領域については、テクスチャをマッピングする(不透明の透明度でマッピングするのが典型的であるが、半透明や完全透明の領域がある場合には、その透明度でマッピングする。)が、立体の外側に相当する領域については、透明にする(完全透明の透明度でテクスチャをマッピングすることを含む。)のである。
【0018】
なお、内側サーフェスについては、従来のコンピュータグラフィックス同様、立体の外側に相当する領域について、テクスチャをマッピングする。立体の内側に相当する領域については、積極的にテクスチャをマッピングする必要はない(なお、描画したとしても、より視点の近くに存在する内側サーフェスが外側に相当する領域となるため、内側に相当する領域は、外側に相当する領域によって隠される)。
【0019】
このような処理を行うことで、[特許文献1]におけるような、モデルの描画順序を恣意的に変更する処理を行わなくとも済み、データを統一化することができるので、グラフィックスハードウェアの支援が受けやすくなり、処理の高速化を図ることができるのである。
【0020】
本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うことができる。
【0021】
また、本発明の画像生成装置は、以下のように構成することができる。
【0022】
すなわち、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現される。
【0023】
一方、生成部は、
(p)当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)であるポリゴンと、
(q)当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成する。
【0024】
本発明は、上記発明の好適実施形態に係るものであり、外側サーフェスを構成するポリゴンの法線ベクトルと内側サーフェスを構成するポリゴンの法線ベクトルとの向きが、互いに対向する(ほぼ逆向きになる)ように配置した上で、各サーフェスを構成するポリゴンの法線ベクトルと視線ベクトルとがなす角によって同一的に、各ポリゴンが描画の対象とするか否かを判定する。
【0025】
本発明によれば、外側サーフェスのポリゴンと内側サーフェスのポリゴンのそれぞれの表裏を表す法線ベクトルの向きを、互いに略対向するように設定する、という単純なデータ処理によって、ハイライト表現を簡易に実現することができるようになる。
【0026】
また、本発明の画像生成装置は、以下のように構成することができる。
【0027】
すなわち、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現される。
【0028】
一方、記憶部には、当該複数のポリゴンのそれぞれの初期透明度がさらに記憶される。
【0029】
さらに、生成部は、
(p)当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)であるポリゴンには、記憶部に記憶された初期透明度を対応付け、90度未満であるポリゴンには、完全透明の透明度を対応付け、
(q)当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)であるポリゴンには、記憶部に記憶された初期透明度を対応付け、90度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する。
【0030】
本発明は、上記発明の好適実施形態に係るものであり、ポリゴンにテクスチャをマッピングして描画する際の透明度を、初期透明度(完全不透明でも良いし、半透明でも良い。)とするか、完全透明とするか、を、法線ベクトルと視線ベクトルとがなす角によって、画一的に判断するものである。
【0031】
本発明によれば、透明度を制御することによって、ハイライト表現を簡易に実現することができるようになる。
【0032】
また、本発明の画像生成装置において、当該外側サーフェスおよび当該内側サーフェスは、それぞれ、NURBS(Non-Uniform Rational B-Spline)曲面により表現され、当該外側サーフェスおよび当該内側サーフェスのそれぞれを表現する複数のポリゴンは、当該NURBS曲面をテセレート(tesselate)近似するポリゴンであるように構成することができる。
【0033】
本発明は上記発明の好適実施形態に係るものであり、サーフェスを定めるためにNURBS曲面を用いて滑らかな形状を定めることができるようにする一方で、描画の際には、小さな三角形ポリゴンでサーフェスを近似して、ポリゴンによる三次元グラフィックスに帰着させるテセレート近似を行うものである。
【0034】
本発明によれば、滑らかな曲面に対してハイライト表現を簡易に実現することができるようになる。
【0035】
また、本発明の画像生成装置は、当該外側サーフェス用のテクスチャと、当該内側サーフェス用のテクスチャと、のいずれか一方のテクスチャに所定の色彩フィルタを施して得られたテクスチャを、当該他方のテクスチャとするフィルタ部をさらに備えるように構成することができる。
【0036】
ハイライト表現される領域は、輪郭線付近であり、通常表現された色を明るく表現したものが一般的である。したがって、内側サーフェス用のテクスチャには、キャラクターの通常の色の髪の毛の色や模様(メッシュや髪飾り等)を定義しておき、外側サーフェス用のテクスチャには、これを明るくするような色彩フィルタを施したものを採用することが考えられる。また、色彩フィルタの種類は、外部の光源の種類等によって適宜変更が可能である。
【0037】
本発明によれば、テクスチャの基本データを外側サーフェスと内側サーフェスとで共有することで、必要な画像データ量を低減することができるようになる。
【0038】
また、本発明の画像生成装置において、生成部において、当該ポリゴンの法線ベクトルとなす角が90度以上180度以下(鈍角)であるか否かを対比する対象として、視線ベクトルにかえて、当該ポリゴンの法線ベクトルと当該視点から当該ポリゴンに向かう方向ベクトルを採用するように構成することができる。
【0039】
上記発明は、主として平行投影によるテクスチャマッピングを想定したものであるが、本発明は、一点透視の透視投影によるテクスチャマッピングを想定したものであり、視線ベクトルと法線ベクトルがなす角が90度以上180度以下(鈍角)か否かを判定してポリゴンを分別するのではなく、視点からポリゴンへの方向ベクトルと法線ベクトルがなす角が90度以上180度以下(鈍角)か否かを判定してポリゴンを分別することとするものである。
【0040】
本発明によれば、平行投影のみならず、一点透視による透視投影においても適切に画像生成を行うことができるようになる。
【0041】
また、本発明の画像生成装置において、生成部は、
(1)当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
(2)当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
(3)当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
(4)当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得るように構成することができる。
【0042】
本発明は、上記発明の好適実施形態に係るものであり、並列処理が可能なグラフィックス処理プロセッサなどを利用する際に特に好適である。
【0043】
すなわち、視点からの距離の遠近によって、ポリゴンを複数のグループに分ける。そして、各グループごとに、典型的には並列に、ポリゴンのソートと描画を行う。最後に、グループごとの描画結果を遠い順にフレームバッファに展開することで、画像が得られる。
【0044】
また、各グループに分類されたポリゴンの個数が算定できるので、次回の描画の際にも、当該ポリゴンの距離分布に大きな変化はないと仮定して、ポリゴンの個数がグループごとに均等になるように、グループを区切る境界を、次回の画像生成用に修正するのである。
【0045】
本発明によれば、全ポリゴンについてまとめてソートして描画するのではなく、複数のグループ内で各々ソートして描画することができるため、並列計算によって高速化を図ることができるようになる。
【0046】
また、本発明の画像生成装置において、当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、記憶部に記憶させるサーフェス計算部をさらに備えるように構成することができる。
【0047】
本発明は上記発明の好適実施形態に係るものであり、外側サーフェスから内側サーフェスを自動生成するものである。この際に、外側サーフェスを均一に縮小して内側サーフェスを得るのではなく、外側サーフェスの各制御点における曲率に基づいて、縮小の度合を変更する。
【0048】
したがって、本発明によれば、外側サーフェスの曲率に応じて幅が変化するハイライト表現を実現することができ、簡易な計算で立体感のある画像を生成することができるようになる。
【0049】
本発明のその他の観点に係る画像生成方法は、記憶部、生成部を有する画像生成装置にて実行される。
【0050】
ここで、記憶部は、仮想空間内に配置される物体の外形を表現する外側サーフェス(surface)の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する。
【0051】
一方、生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
(a)当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下(鈍角)である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
(b)当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備えるように構成する。
【0052】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置として機能させるように構成する。
【0053】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0054】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0055】
本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【0056】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0057】
図1は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0058】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0059】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0060】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0061】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0062】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0063】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0064】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0065】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0066】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0067】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0068】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0069】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0070】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0071】
インターネット内のSNTPサーバにNIC 109を介して接続し、ここから情報を得ることによって現在の日時情報を得るようにすることができる。また、各種のネットワークゲームのサーバ装置が、SNTPサーバと同様の機能を果たすように構成設定してもよい。
【0072】
一旦日時情報が得られれば、情報処理装置100が動作中はタイマ割込によりリアルタイムクロックと同様の機能を果たすカウンタを更新することとしてもよいし、情報処理装置100がリアルタイムクロックを有する場合は、その日時情報を修正する態様を採用することもできる。この際に、修正するか否かをユーザに問い合わせてもよい。内蔵するリアルタイムクロックを修正しない場合には、リアルタイムクロックの情報と実際にサーバから得られた情報との差分を保持し、日時情報が必要な場合には、リアルタイムクロックから得られた情報にその差分を加算すればよい。
【0073】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0074】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0075】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0076】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0077】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0078】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0079】
図2は、本実施形態で実現しようとするハイライト表現について説明する説明図である。以下、本図を参照して説明する。
【0080】
本図に示すように、キャラクター201は、大別して毛髪部202、顔部203、胴体部204からなっている。
【0081】
ここで、胴体部204には、影205がキャラクター201の右腕側にできている。すなわち、照明は、キャラクター201の左腕側から照射していることになっている。
【0082】
一方で、毛髪部202の髪の毛部分を見ると、その輪郭の近傍には、色が明るいハイライト206ができている。このハイライト206は、照明の位置によるものではなく、乱反射や回折、(存在しない)逆光などの物理現象を援用、誇張したもので、日本の漫画やアニメーションなどで広く用いられる描法である。ハイライト206は、一般的な光学的物理現象に基づくものではないため、物理シミュレーションによって得ることはできない。
【0083】
そこで、本実施形態では、このようなハイライト206を、ポリゴンモデルやNURBS曲面を用いて実現することとする。
【0084】
なお、NURBS曲面は、滑らかな形状を定めることができるものであるが、描画の際には、小さな三角形ポリゴンでサーフェスを近似して、ポリゴンによる三次元グラフィックスに帰着させるテセレート近似を行うので、極めて多数のポリゴンからなるポリゴンモデルに帰着させることができる。
【0085】
したがって、以下の説明では、ポリゴンによりサーフェスを定義する手法を例として取り上げる。
【0086】
図3は、本実施形態に係るハイライト表現を実現するためのサーフェスの配置について説明する説明図である。以下、本図を参照して説明する。
【0087】
なお、上記のように、ハイライト206は、キャラクター201の毛髪部202の形状など、曲面上に配置されるのが一般的であるが、本図では、理解を容易にするため、キャラクター201に相当するオブジェクトの形状を、四面体(三角錐)に簡易化している。
【0088】
仮想空間301内に配置されるオブジェクト302の画像は、仮想空間内に配置された視点から視線ベクトルの方向に伸びる視線の方向に配置された投影面に、オブジェクト302を投射する透視投影(一点透視でも良いし、平行透視でも良い。)によって生成される。本図のオブジェクト302の様子は、平行投影によって表示されたものである。
【0089】
本図に示すように、仮想空間301に配置されるオブジェクト302は、四面体の外形を持ち、その外形は、外側サーフェス311によって定義される。したがって、外側サーフェス311は、4つの三角形ポリゴン312、313、314、315からなる。
【0090】
当該視点から見たとき、ポリゴン312は、外側サーフェス311の四面体の右側面に相当し、ポリゴン313は、左側面に相当し、ポリゴン314は、底面に相当し、ポリゴン315は、裏側面に相当する。
【0091】
各ポリゴン312、313、314、315の法線ベクトルは、四面体の内側を向くように設定されている。すなわち、いわゆる「外向き法線」とは逆向きである。
【0092】
そして、外側サーフェス311が包む領域内に、同じく四面体の形状からなる内側サーフェス331が配置されている。したがって、内側サーフェス331は、外側サーフェス311よりも小さい。また、内側サーフェス331の各面をなす4つの三角形ポリゴン332、333、334、335は、外側サーフェス311の三角形ポリゴン312、313、314、315と対向している。そして、三角形ポリゴン332、333、334、335の法線ベクトルは、四面体の外側を向くように設定されている。すなわち、いわゆる「外向き法線」と同じ向きである。
【0093】
ここで、当該視点から見たとき、ポリゴン332は、内側サーフェス331の四面体の右側面に相当し、ポリゴン333は、左側面に相当し、ポリゴン334は、底面に相当し、ポリゴン335は、裏側面に相当する。
【0094】
なお、本図に示すように、対向するポリゴン同士は、必ずしも平行でなくとも良い。すなわち、内側サーフェス331は、外側サーフェス311を単純に縮小したものでも良いし、別途用意した形状のものであっても構わない。
【0095】
さてここで、理解を容易にするため、従来のコンピュータグラフィックス処理の進行について説明する。図4は、従来のコンピュータグラフィックス処理における描画の様子を示す説明図である。以下、本図を参照して説明する。なお、本図(a)〜(d)では、理解を容易にするため、輪郭線を明示している。
【0096】
従来のコンピュータグラフィックス処理では、以下のように処理が進む。
(1)内側サーフェス331の隠面消去により、ポリゴン332、333が描画候補となる(本図(a))。
(2)外側サーフェス311の隠面消去により、ポリゴン312、313が描画候補となる(本図(b))。
(3)これら4つの描画候補を視点から遠い順に遠い順にテクスチャマッピングすることで、画像が生成される。ここで、内側サーフェス331のポリゴン332、333は、外側サーフェス311のポリゴン312、313よりも視点から遠い。
(4)したがって、まず内側サーフェス331のポリゴン332、333のテクスチャが貼り込まれ(本図(c))、その後に、外側サーフェス311のポリゴン312、313がテクスチャが貼り込まれる(本図(d))。外側サーフェス311の方が内側サーフェス331よりも大きいから、内側サーフェス331のポリゴン332、333のテクスチャは外側サーフェス311のポリゴン312、313がテクスチャで塗り潰され、完全に上書きされてしまう。
(5)このため、結果画像には、外側サーフェス311のポリゴン312、313に貼り込まれたテクスチャのみが残ることになる(本図(e))。
【0097】
この際、従来のコンピュータグラフィックス技術では、隠面消去の対象となるか否かを、以下のように判断する。
(a)平行投影の場合は、ポリゴンの外向き法線ベクトルと、視線ベクトルと、のなす角が、0度以上90度未満(鋭角)であれば、隠面であり、90度以上180度以下(鈍角)であれば、隠面ではない。
(b)一点投影の場合は、ポリゴンの外向き法線ベクトルと、視点からポリゴンに向かう方向ベクトルと、のなす角が、0度以上90度未満(鋭角)であれば、隠面であり、90度以上180度以下(鈍角)であれば、隠面ではない。
【0098】
なお、一点投影の場合に、手法(a)を近似的に採用することも可能である。また、視点からポリゴンに向かう方向ベクトルは、視点からポリゴンの頂点のいずれかあらかじめ定めたものへ向かう方向ベクトル、もしくは、視点からポリゴンの重心(中心)へ向かう方向ベクトルとするのが典型的である。
【0099】
さて、このような隠面消去に必要な計算処理は、画像処理部107が備える画像処理プロセッサなど、専用ハードウェアによって高速に行われることが多い。
【0100】
そこで、本発明のハイライト表現においても、できるだけ、このような専用ハードウェアの支援を利用できるようにすることが望ましい。そのため、上記のように、法線ベクトルの向きを定める上で、工夫をしているのである。
【0101】
すなわち、内側サーフェス331を構成するポリゴン332、333、334、335の法線ベクトルは、内側サーフェス331から外側サーフェスが配置される側に向かう。すなわち、ポリゴン332、333、334、335の「外向き法線」は、従来のコンピュータグラフィックスにおけるものと同様の向きとしている。
【0102】
一方、外側サーフェス311を構成するポリゴン312、313、314、315の法線ベクトルは、外側サーフェス311から内側サーフェス331が配置される側に向かうようにする。すなわち、ポリゴン312、313、314、315の「外向き法線」を、オブジェクト302の内側に向かうようにするのである。これは、従来のコンピュータグラフィックスにおけるものとは反対向きである。
【0103】
このように「外向き法線」を設定した上で、従来のコンピュータグラフィックス処理と同様に、ベクトル同士のなす角が90度以上180度以下(鈍角)か否かによって隠面消去するか描画候補とするかを判断することとすると、以下のようになる。
【0104】
図5は、本実施形態のコンピュータグラフィックス処理における描画の様子を示す説明図である。以下、本図を参照して説明する。なお、本図(a)〜(d)では、理解を容易にするため、輪郭線を明示している。
【0105】
本実施形態のコンピュータグラフィックス処理では、以下のように処理が進む。すなわち、
(1)内側サーフェス331の隠面消去により、ポリゴン332、333が描画候補となる(本図(a))。
(2)外側サーフェス311の隠面消去により、ポリゴン314、315が描画候補となる(本図(b)。
(3)これら4つの描画候補を視点から遠い順に遠い順にテクスチャマッピングすることで、画像が生成される。ここで、内側サーフェス331のポリゴン332、333は、外側サーフェス311のポリゴン314、315よりも視点に近い。
(4)したがって、まず、外側サーフェス311のポリゴン314、315のテクスチャが貼り込まれ(本図(c))、その後に、内側サーフェス331のポリゴン332、333のテクスチャが貼り込まれる(本図(d))。外側サーフェス311のポリゴン314、315のテクスチャは、内側サーフェス331のポリゴン332、333のテクスチャに上書きされるものの、内側サーフェス331は外側サーフェス311よりも小さいから、内側サーフェス331のポリゴン332、333に貼り込まれたテクスチャの周囲に外側サーフェス311のポリゴン314、315に貼り込まれたテクスチャの一部が残ることとなる。
(5)このため、結果画像には、内側サーフェス331の周囲に外側サーフェス311がハイライトとして残ることになる(本図(e))。
【0106】
図6は、より一般的な例において、外側サーフェスのポリゴンと、内側サーフェスのポリゴンと、が、テクスチャ貼り込みの対象となるか否かを判断する際の様子を説明する断面図である。以下、本図を参照して説明する。
【0107】
本図に示すように、外側サーフェス311と内側サーフェス331は、複数のポリゴンにより構成される。これらのうち、視点651から見て視線の方向に配置される外側サーフェス311のポリゴン601、602と、内側サーフェス331のポリゴン631、632と、を考える。
【0108】
これらは、視点651から近い順に並べると、ポリゴン601、631、632、602の順になる。
【0109】
ここで、ポリゴン601、602の法線ベクトル611、612は、内側サーフェス331に向くように配置されている。また、ポリゴン631、632の法線ベクトル641、642は、外側サーフェス311に向くように配置されている。
【0110】
したがって、本図に示す例では、視点651から視線の方向に伸びる視線ベクトル652(もしくは、上記のように、視点651から各ポリゴン601、602、631、632への方向ベクトルを採用しても良い。)と、各法線ベクトルとのなす角が、
(a)0度以上90度未満(鋭角)のものは、ポリゴン601(法線ベクトル611)、632(法線ベクトル642)であり、
(b)90度以上180度以下(鈍角)のものは、ポリゴン602(法線ベクトル612)、631(法線ベクトル641)である。
【0111】
したがって、ポリゴン601、632については、描画の際にテクスチャ貼り込みを行う必要がない(完全透明で描画しても良い)。本図では、テクスチャ貼り込みを行う必要がないポリゴンを、白抜き線で表現している。
【0112】
一方、ポリゴン602、631は、テクスチャ貼り込みを行う必要がある。そこで本図では、テクスチャ貼り込みを行う必要があるポリゴンを、灰抜き線で表現している。
【0113】
ポリゴン602はポリゴン631よりも視点から見て遠くにあるから、まずポリゴン602をテクスチャ貼り込みし、何個かポリゴンを描画した後で、ポリゴン631をテクスチャ貼り込みすることになる。
【0114】
このような処理を各ポリゴンについて行うことによって、外側サーフェス311のテクスチャが輪郭周辺に残り、内側サーフェス331のテクスチャがその内部に描画された画像が得られるのである。
【0115】
外側サーフェス311用のテクスチャと、内側サーフェス331用のテクスチャと、は、別途用意しても良いが、外側サーフェス311に貼り込むテクスチャは、内側サーフェス331に貼り込むテクスチャの色彩を明るくする色彩フィルタを施したものとするのが、データ容量の面からも有利である。この場合、典型的には、以下のような手順でオブジェクト302のテクスチャのデザインを行うこととなる。
(1)まず、ハイライト表現をしないものと想定して、オブジェクト302の外面(すなわち、外側サーフェス311)に貼り込むテクスチャをデザインする。この際に、外側サーフェス311の制御点がテクスチャ画像内のどの位置に対応付けられるか、が設定される。
(2)次に、得られたテクスチャを内側サーフェス331用にするために、内側サーフェス331の制御点が当該テクスチャ画像内のどの位置に対応付けるか、を決定する。外側サーフェス311と内側サーフェス331とが略同じ形状である場合(たとえば、外側サーフェス311の制御点位置を移動して内側サーフェスの制御点位置とした場合等)には、対向する制御点がテクスチャ画像内で同じ位置にマッピングされるように対応付けをする。
(3)そして、内側サーフェス331にテクスチャ画像を貼り込む場合には、そのまま貼り込み、外側サーフェス311にテクスチャ画像を貼り込む場合には、色彩フィルタを通してから(たとえば、明るい色とαブレンディングしてから)、貼り込むのである。
【0116】
なお、上記の説明では、ベクトル同士の角度が90度未満(鋭角)のポリゴンについては、「隠面消去」することとして、テクスチャ貼り込みは行っていないが、透明度を変化させて、テクスチャ貼り込みを行うこととしても良い。
【0117】
すなわち、各ポリゴンには、既定の初期透明度として適当な透明度を割り当てておく。典型的には「不透明」であるが、半透明としても良い。この透明度は、テクスチャ貼り込みの際のαブレンディングのパラメータとして利用される。
【0118】
そして、ベクトル同士の角度が90度未満(鋭角)のポリゴンは、完全透明でテクスチャを貼り込み(テクスチャを貼り込まないのと同様である。)ベクトル同士の角度が90度以上180度以下(鈍角)のポリゴンは、初期透明度により、テクスチャをαブレンディングして貼り込むのである。
【0119】
グラフィックス処理プロセッサの機能や能力により、描画対象とするポリゴンを抽出選択する手法と、描画対象としないポリゴンを完全透明にする手法の、いずれを選択することも可能である。
【0120】
以下の説明では、最も単純に、ポリゴンのテクスチャ貼り込みの可否を分類する手法を説明するが、透明度を用いる手法についても同様の処理が可能である。
【0121】
図7は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0122】
本実施形態に係る画像生成装置701は、記憶部702、生成部703を備える。このほか、省略可能な要素として、フィルタ部704、サーフェス計算部705を備えることとしても良い。以下、本図を参照して説明する。
【0123】
記憶部702に記憶される情報は、DVD−ROMドライブ108やハードディスクに装着されるDVD−ROMからRAM 103に読み出されるものとするのが典型的である。これには、以下の情報が含まれる。
(1)仮想空間内における視点の位置、視線の方向、視点から投影面までの距離。3次元コンピュータグラフィックスにおける視野を定めるのに用いられる情報である。
(2)仮想空間内に配置される外側サーフェス311の形状、位置、外側サーフェス311に貼り込まれるテクスチャ。図8は、外側サーフェス311の形状の例を示す説明図である(本図では、符号を省略している)。本図に示すように、本例の外側サーフェス311は、キャラクターの髪の毛の外形を定義している。
(3)仮想空間内に配置される内側サーフェス331の形状、位置、内側サーフェス331に貼り込まれるテクスチャ。図9は、内側サーフェス331の形状の例を示す説明図である(本図では、符号を省略している)。本図に示すように、本例の内側サーフェス331は、キャラクターの髪の毛の形状を、ハイライト分だけ小さくした形状となっている。
(4)仮想空間内に配置される他のオブジェクト。通常のサーフェスにより定義される。図10は、通常のサーフェスの形状の例を示す説明図である。本図に示すように、本例の通常のサーフェスは、キャラクターの顔面を定義するものとなっている。
(5)ポリゴンを複数のグループG1,…,GMに分類するための境界値数列。たとえば、グラフィックス処理プロセッサがM重の並列処理が可能である場合に利用し、ポリゴンを、視点からの距離に応じてM個のグループに分類する。M-1個の境界値d1,…,dM-1が必要である。また、理解を容易にするため、d0 = 0,dM = ∞としておく。この境界値数列は、d0<d1<…<dM-1<dMのように単調増加するように初期設定しておく。具体的な値は、処理が進むにつれて、修正される。
(6)各グループに対して分類されたポリゴンがいずれであるかを示す情報。ポリゴン情報のアドレスを記憶する配列やキューをM個用意するのでも良いし、ポリゴン情報としてグループ番号を示すフィールドを用意するのでも良い。
(7)その他、各種の画像生成処理に必要な情報。たとえば、画面に表示する画像を記憶するためのフレームバッファや、各グループ用のフレームバッファであるグループバッファ、ポリゴンをソートするためのZバッファ等、仮想空間の遠景を表す画像等も、RAM 103内に用意される。
【0124】
図11は、これらのサーフェスの相対的な位置関係を示す説明図である(本図では、符号を省略している)。図8、図9と対比すると、外側サーフェス311が包む領域内に内側サーフェス331が入っていることがわかる。
【0125】
これらの情報は、CPU 101の制御の下、RAM 103に読み込まれ、あるいは、計算によって適宜生成されて、結果がRAM 103内に格納される。したがって、RAM 103は、記憶部702として機能する。
【0126】
図12、図13は、本実施形態における画像処理方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0127】
上記のように、処理が開始されると、RAM 103に必要な情報が読み込まれ、記憶部702が初期化される(ステップS901)。初期化の際に、後述するように、サーフェス計算部705による外側サーフェス311から内側サーフェス331を生成する処理などを実行しても良い。
【0128】
なお、フィルタ部704が存在する場合には、この段階で、内側テクスチャに色彩フィルタを施して、外側テクスチャを生成することとしても良い。また、フィルタ部704が存在しない場合であっても、上述のように、テクスチャ貼り込みの際に適宜αブレンディング等を利用して、色彩フィルタを適用することができる。
【0129】
上記のように、本実施形態では、内側サーフェス331および通常のサーフェスのポリゴンの「外向き法線」を表す法線ベクトルは、通常のコンピュータグラフィックス技術におけるものと同様に向きとしておく。すなわち、内側サーフェス331のポリゴンの法線ベクトルは、外側サーフェス311の側に向く。
【0130】
また、外側サーフェス311の形状、位置を定めるポリゴンの「外向き法線」を表す法線ベクトルは、キャラクターの外側ではなく内側(内側サーフェス331の側)を向くものを採用しておく。
【0131】
このように、各ポリゴンの「外向き法線」を表す法線ベクトルの向きを定めて置くことで、以下の処理においては、あるポリゴンが、外側サーフェス311のものか、内側サーフェス331のものか、通常のサーフェスのものかを、一切区別する必要がなくなる。
【0132】
ついで、処理に使用される全N個のポリゴンを、適当な順序で単純にM個の集合1,…,Mに分類して(ステップS902)、各集合について以下の処理を並列に実行する(ステップS903〜S909)。すなわち、当該集合に属するポリゴンのそれぞれについて、以下の処理を繰り返す(ステップS904〜S908)。視点とポリゴンとの距離rを計算し(ステップS905)、境界値を参照してdi-1≦r<diを見たすiを探す(ステップS906)。上記のように、d0 = 0,dM = ∞であるから、このようなグループ番号iは必ず見つかる。そして、当該ポリゴンをグループ番号iのグループに分類する(ステップS907)。ステップS903〜S909の並列処理では、各並列単位は、N/M個のポリゴンの処理を行うことになる。
【0133】
このようにして、M重並列でポリゴンの分類が終わったら、各グループ1,2,…,Mについて、並列に、以下の処理を実行する(ステップS910〜S919)。まず、当該グループに割り当てられたグループバッファを透明色で塗り潰す(ステップS911)。ついで、当該グループに属する全ポリゴンを、視点からの距離でソートする(ステップS912)。視点からの距離は、ステップS905で計算済みであるから、この値を再利用できるように、ポリゴン情報の中に視点からの距離フィールドを用意しておき、ステップS905の後に得られた値を代入しておくことが望ましい。
【0134】
さらに、当該グループに属するポリゴンについて、視点から遠い順に以下の処理を繰り返す(ステップS913〜S918)。すなわち、当該ポリゴンの法線ベクトルと、視線ベクトルとのなす角度を計算する(ステップS914)。なお角度そのものではなく、角度の余弦をベクトルの内積から求めて、以下の判定を行うこととしても良い。
【0135】
また、視線ベクトルではなく、視点からポリゴンへの方向ベクトルを用いる場合には、ステップS905における距離の計算で、当該方向ベクトルも計算することとなるから、ポリゴン情報の中に視点からの方向ベクトルを用意しておき、ステップS905の後に得られた値を代入しておくことが望ましい。
【0136】
ついで、その角度が90度以上180度以下(鈍角)であるか否かを判定し(ステップS915)、90度以上180度以下(鈍角)であれば(ステップS915;Yes)、当該ポリゴンの各頂点が、投影面に対してどこに投影されるかの、投射先の座標を計算して(ステップS916)、当該座標を結ぶグループバッファ内の領域に対応する領域のテクスチャを展開して(ステップS917)、次のポリゴンの処理に進む(ステップS918)。一方、90度未満(鋭角)である場合(ステップS915;No),ステップS918にそのまま進む。
【0137】
なお、ステップS914〜ステップS917の処理は、グラフィックス処理プロセッサのハードウェアやライブラリによって高速な並列実行が可能なことも多い。そのようなハードウェアやライブラリを利用する場合には、たとえば角度の判断やテクスチャの貼り込みの詳細は、ライブラリ化されており、本発明の実装からライブラリを呼び出すだけで済む場合も多い。このような既存のライブラリを単純に呼び出すだけで済むようにするために、上記のように「外向き法線」の法線ベクトルの向きを設定しているのである。
【0138】
全グループについて、グループバッファへの画像の展開が終わったら(ステップS919)、フレームバッファに遠景画像を展開し(ステップS920)、視点から遠い順、すなわち、i = M,M-1,…,2,1の順で(ステップS921)、グループiのグループバッファの内容を、フレームバッファに転送する処理を(ステップS922)繰り返す(ステップS923)。この転送は、グループバッファに最初に展開された透明色を考慮して行う。
【0139】
これにより、遠くのポリゴンから順に描画したのと同じ画像が得られ、ステップS920〜ステップS923の処理によって、フレームバッファ内に、ハイライト表現がされたキャラクターを含む仮想空間の画像が生成される。
【0140】
したがって、CPU 101の制御の下、RAM 103等と共働して、グラフィックス処理プロセッサを有する画像処理部107は、生成部703として機能する。なお、M = 1の場合には、上記のフローに基づいて、処理の並列化は行わず、通常の単一プロセッサ処理を行えば良い。
【0141】
そして、各グループ1,…,Mのそれぞれに属するポリゴンの数を集計して(ステップS924)、グループに属するポリゴンの数ができるだけN/M個に近く均等になるように、境界値d1,…,dM-1を修正する(ステップS925)。
【0142】
具体的には、ポリゴン分布が一様であると仮定して境界値d1,…,dM-1を補間により求める手法が考えられる。
【0143】
このほか、グループ1,…,Mのそれぞれにおいてポリゴンは視点からの距離順にソート済であり、グループ1,…,Mのそれぞれもまた、全体として、視点からの距離順にソート済みであるから、各グループ内のポリゴン数がわかれば、視点からの距離がx番目のポリゴンがいずれであるかを同定することができる。そこで、1×N/M番目のポリゴンの距離をd1に、2×N/M番目のポリゴンの距離をd2に、…、M-1×N/M番目のポリゴンの距離をdM-1に、それぞれ設定することとする。
【0144】
このような境界値の修正を行うことにより、次回の画像生成におけるポリゴンのグループ分類ができるだけ均等になるようにして、並列度をあげることができるようになる。
【0145】
そして、垂直同期割込が生じるまで待機して(ステップS926)。この待機中には、他の処理(たとえば、RAM 103内に記憶される各オブジェクトやサーフェスの位置や向き、形状を、時間の経過やユーザからの処理に基づいて更新する等の処理)をコルーチン的に実行することができる。
【0146】
垂直同期割込が生じたら、画像処理部107はフレームバッファの内容をモニタに転送して画面に画像を表示し(ステップS927)、ステップS902に戻る。
【0147】
図14は、図8〜図11に示されるキャラクターがハイライト表現された画像の例を示す説明図である。以下、本図を参照して説明する(本図では符号は省略している)。
【0148】
本図に示すように、キャラクターの髪の毛の輪郭付近は、いずれも髪の毛の中心部分とは色彩が異なっており、ハイライト表現がなされている。なお、本図において、額周辺にも水平方向の帯状のハイライトがなされているが、これは、本発明によるものではなく、ステップS922の後に、生成された画像に対してフィルタ処理をかけることとしたためである。
【0149】
このように、本実施形態によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うことができる。
【0150】
さて上記のように、外側サーフェス311と内側サーフェス331とは、前者が包む領域に後者が含まれ、前者の法線ベクトルが内向き、後者の法線ベクトルが外向きになっている関係を持っていれば、両者の具体的な形状に制限はない。たとえば、三角錐の外側サーフェス311に暗いテクスチャを適用し、球形の内側サーフェス331に明るいテクスチャを適用する組み合わせで、太陽や球形のライトの映り込みを表現する、などの表現も可能である。
【0151】
本実施例では、外側サーフェス311の制御点(ポリゴンの頂点やNURBSの制御点)から内側サーフェス331の制御点の位置を定める手法について説明する。
【0152】
最も単純な手法は、外側サーフェス311を、所定の中心点(典型的には、外側サーフェス311の重心やユーザが指定した点)の周りで、所定の倍率だけ縮小するものである。縮小率は、ハイライトさせたい量に応じて適宜決めることができる。
【0153】
その他の手法としては、外側サーフェス311の制御点を所定の中心点に向かって縮小するのであるが、当該縮小率を、当該制御点の周りの曲率によって変化させる、というものである。たとえば図14に示す例を見ると、尖っている部分(曲率が大きい部分)では、ハイライト部分は細くなり、滑らかな部分(曲率が小さい部分)では、ハイライト部分は太くなっている傾向が見られる。
【0154】
そこで、曲率に対する縮小率をあらかじめテーブル等に用意しておいて、制御点周りの曲率を計算し、得られた曲率に対応付けられる縮小率で、外側サーフェス311の制御点を所定の中心点に向かって縮小した位置を、内側サーフェス331の制御点の位置とするのである。
【0155】
上記の例では、曲率が大きい部分は縮小率を等倍に近くしてハイライト部分を細くし、曲率が小さい部分は縮小率をより小さくしてハイライト部分を太くする。すなわち、曲率に対する縮小率が単調減少するように、あらかじめ対応付けを行うことになる。
【0156】
もちろん、これ以外の対応付けを採用しても良い。
【0157】
曲率を求める手法についてであるが、NURBS曲面においては、当該曲面を定義する有理式を微分することで、任意の制御点の近傍における曲率を求めることができる。
【0158】
また、単なるポリゴンの集合体でサーフェスが表現されている場合は、当該ポリゴンの頂点をNURBS曲面の制御点にして上記の手法を用いるか、あるいは、以下のような手法を使えば良い。
【0159】
すなわち、ある制御点Xの近傍での曲率を求めるには、その近くにある3つの制御点A,B,Cを選択する。ポリゴンによりサーフェスが定義されている場合には、ある制御点(頂点)に各ポリゴンの辺が集中するから、当該辺の逆の端点をこの制御点A,B,Cとすれば良い。制御点Xに4つ以上の辺が集中する場合には、その中で近い順にA,B,Cを選ぶ。
【0160】
そして、線分XAの垂直2等分面、線分XBの垂直2等分面、線分XCの垂直2等分面の交点Yを求める。この交点Yと制御点Xとの距離が曲率半径であり、曲率半径の逆数が曲率である。
【0161】
線分の垂直2等分面は、法線ベクトルが当該線分の方向であり、当該線分の中点を通過する。ほとんどの場合は、3つの面が交わる点はただ1つに定まる。
【0162】
線分XA,XBの方向ベクトルの1次結合により線分XCの方向ベクトルが得られる場合(線分XA,XB,XCが同一平面内に置かれている場合)には、交点が定まらないが、この場合は曲率0である、ということになる。
【0163】
このようにして制御点の座標が求められれば、外側サーフェス311の法線ベクトルと内側サーフェス331の法線ベクトルとが、互いに対向するように、その向きを設定する。
【0164】
これらの計算は、CPU 101がRAM 103に記憶された情報を元に行う。したがって、これらが共働して、サーフェス計算部705として機能する。
【0165】
このようにして、外側サーフェス311の各制御点における曲率を求めることにより、内側サーフェス331の各制御点の位置を計算して自動的に求めることができる。
【産業上の利用可能性】
【0166】
以上説明したように、本発明によれば、仮想空間に配置されるキャラクター等を画面表示する際に、キャラクター頭部周縁等の色彩を変化させてハイライト表示する等、回折現象や乱反射、逆光を誇張する漫画やアニメーションの描法を、グラフィックス処理において効率良く行うのに好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0167】
【図1】プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態で実現しようとするハイライト表現について説明する説明図である。
【図3】本実施形態に係るハイライト表現を実現するためのサーフェスの配置について説明する説明図である。
【図4】従来のコンピュータグラフィックス処理における描画の様子を示す説明図である。
【図5】本実施形態のコンピュータグラフィックス処理における描画の様子を示す説明図である。
【図6】外側サーフェスのポリゴンと、内側サーフェスのポリゴンと、が、テクスチャ貼り込みの対象となるか否かを判断する際の様子を説明する断面図である。
【図7】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図8】外側サーフェスの形状の例を示す説明図である。
【図9】内側サーフェスの形状の例を示す説明図である。
【図10】通常のサーフェスの形状の例を示す説明図である。
【図11】サーフェスの相対的な位置関係を示す説明図である。
【図12】本実施形態における画像処理方法の制御の流れを示すフローチャートである。
【図13】本実施形態における画像処理方法の制御の流れを示すフローチャートである。
【図14】本実施形態の手法により、キャラクターがハイライト表現された画像の例を示す説明図である。
【符号の説明】
【0168】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 キャラクター
202 毛髪部
203 顔部
204 胴体部
205 影
206 ハイライト
301 仮想空間
302 オブジェクト
311 外側サーフェス
312 外側サーフェスのポリゴン
313 外側サーフェスのポリゴン
314 外側サーフェスのポリゴン
315 外側サーフェスのポリゴン
331 内側サーフェス
332 内側サーフェスのポリゴン
333 内側サーフェスのポリゴン
334 内側サーフェスのポリゴン
335 内側サーフェスのポリゴン
601 外側サーフェスのポリゴン
602 外側サーフェスのポリゴン
611 外側サーフェスのポリゴンの法線ベクトル
612 外側サーフェスのポリゴンの法線ベクトル
631 内側サーフェスのポリゴンの法線ベクトル
632 内側サーフェスのポリゴンの法線ベクトル
651 視点
652 視線ベクトル
701 画像生成装置
702 記憶部
703 生成部
704 フィルタ部
705 サーフェス計算部

【特許請求の範囲】
【請求項1】
仮想空間内に配置される物体の外形を表現する外側サーフェス(surface)の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
(a)当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
(b)当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
を備えることを特徴とする画像生成装置。
【請求項2】
請求項1に記載の画像生成装置であって、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現され、
前記生成部は、
(p)当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下であるポリゴンと、
(q)当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下であるポリゴンと、
を、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開して、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項3】
請求項1に記載の画像生成装置であって、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、複数のポリゴンにより表現され、
前記記憶部には、当該複数のポリゴンのそれぞれの初期透明度がさらに記憶され、
前記生成部は、
(p)当該外側サーフェスを構成する複数のポリゴンのうち、当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、90度未満であるポリゴンには、完全透明の透明度を対応付け、
(q)当該内側サーフェスを構成する複数のポリゴンのうち、当該外側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下であるポリゴンには、前記記憶部に記憶された初期透明度を対応付け、90度未満であるポリゴンには、完全透明の透明度を対応付けて、
当該透明度を対応付けられた複数のポリゴンを、当該視点から遠い順にソートして、当該画像が生成されるフレームバッファにおいて、当該複数のポリゴンのそれぞれについて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を、当該対応付けられた透明度で展開して、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項4】
請求項2または3に記載の画像生成装置であって、
当該外側サーフェスおよび当該内側サーフェスは、それぞれ、NURBS(Non-Uniform Rational B-Spline)曲面により表現され、
当該外側サーフェスおよび当該内側サーフェスのそれぞれを表現する複数のポリゴンは、当該NURBS曲面をテセレート(tesselate)近似するポリゴンである
ことを特徴とする画像生成装置。
【請求項5】
請求項1から4のいずれか1項に記載の画像生成装置であって、
当該外側サーフェス用のテクスチャと、当該内側サーフェス用のテクスチャと、のいずれか一方のテクスチャに所定の色彩フィルタを施して得られたテクスチャを、当該他方のテクスチャとするフィルタ部
をさらに備えることを特徴とする画像生成装置。
【請求項6】
請求項2から5のいずれか1項に記載の画像生成装置であって、
前記生成部において、当該ポリゴンの法線ベクトルとなす角が90度以上180度以下であるか否かを対比する対象として、視線ベクトルにかえて、当該ポリゴンの法線ベクトルと当該視点から当該ポリゴンに向かう方向ベクトルを採用する
ことを特徴とする画像生成装置。
【請求項7】
請求項2から6のいずれか1項に記載の画像生成装置であって、
前記生成部は、
(1)当該複数のポリゴンのそれぞれと当該視点からの距離が、複数の境界に区切られる区間のいずれに属するかにより、当該複数のポリゴンを複数のグループに分類し、
(2)当該複数のグループのそれぞれにおいて、当該グループに分類されたポリゴンを当該視点からの距離が遠い順にソートして、当該グループに割り当てられるグループバッファにおいて、当該遠い順に、当該ポリゴンが投影される領域に、当該ポリゴンに対応付けられるテクスチャ情報を展開し、
(3)当該複数のグループに対応付けられる区間の視点からの距離が遠い順に、当該グループに対応付けられるグループバッファに展開された画像を、当該フレームバッファに展開し、
(4)当該複数のグループのそれぞれに分類されたポリゴンの個数の偏りを低減するように、当該複数の区間を区切る境界を修正して、
当該画像を得る
ことを特徴とする画像生成装置。
【請求項8】
請求項1から7のいずれか1項に記載の画像生成装置であって、
当該外側サーフェスの形状、位置を定める制御点のそれぞれについて、当該制御点における当該外側サーフェスの曲率を近似計算し、当該外側サーフェスの形状を定める制御点のそれぞれから、当該制御点において近似計算された曲率にあらかじめ対応付けられる割合だけ当該外側サーフェスが包む領域内に定められた所定の集中点に向かうように移動した位置を、当該内側サーフェスの形状を定める制御点として、当該内側サーフェスの形状、位置を計算して、前記記憶部に記憶させるサーフェス計算部
をさらに備えることを特徴とする画像生成装置。
【請求項9】
仮想空間内に配置される物体の外形を表現する外側サーフェス(surface)の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、生成部を有する画像生成装置にて実行される画像生成方法であって、
前記生成部が、当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する際に、
(a)当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下である領域に、当該外側サーフェス用のテクスチャをマッピングする工程、
(b)当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングする工程
を備えることを特徴とする画像生成方法。
【請求項10】
コンピュータを、
仮想空間内に配置される物体の外形を表現する外側サーフェス(surface)の形状、位置および当該外側サーフェス用のテクスチャと、当該仮想空間内において当該外側サーフェスが包む領域に内包されるように配置される内側サーフェスの形状、位置および当該内側サーフェス用のテクスチャと、当該仮想空間内に配置される視点の位置と、当該視点から伸びる視線の方向を表す視線ベクトルと、を記憶する記憶部、
当該仮想空間内に配置される物体を当該視点から当該視線の方向に見た画像を生成する生成部であって、
(a)当該外側サーフェスのうち当該内側サーフェスが配置される側に向かう法線ベクトルと当該視線ベクトルとがなす角が90度以上180度以下である領域に、当該外側サーフェス用のテクスチャをマッピングし、
(b)当該内側サーフェスに、当該内側サーフェス用のテクスチャをマッピングして、
当該画像を生成する生成部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2009−15706(P2009−15706A)
【公開日】平成21年1月22日(2009.1.22)
【国際特許分類】
【出願番号】特願2007−178638(P2007−178638)
【出願日】平成19年7月6日(2007.7.6)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】