(57)【特許請求の範囲】
【請求項１】
３次元モデルを構成するポリゴンの各頂点の輝度値を算出する輝度値算出手段と、
第１のパラメータに応じて濃淡が不連続に変化し、第２のパラメータに応じてその不連続に変化する濃淡の階調数が変化する階調表現用テクスチャを格納するテクスチャ格納手段と、
前記輝度値算出手段により算出された各頂点の輝度値に対応する前記階調表現用テクスチャの位置を算出するテクスチャ位置算出手段と、
算出された位置によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼り付けるマッピング手段と、
を備えたことを特徴とする画像描画システム。
【請求項２】
３次元モデルを構成するポリゴンの各頂点の輝度値を算出し、
第１のパラメータに応じて濃淡が不連続に変化し、第２のパラメータに応じてその不連続に変化する濃淡の階調数が変化する階調表現用テクスチャにおいて、算出された輝度値に対応する位置を算出し、
算出された位置によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼り付ける
ことを特徴とする画像描画方法。
【請求項３】
画像描画プログラムが記録された記録媒体であって、
前記画像描画プログラムは、
３次元モデルを構成するポリゴンの各頂点の輝度値を算出する輝度値算出ステップと、
第１のパラメータに応じて濃淡が不連続に変化し、第２のパラメータに応じてその不連続に変化する濃淡の階調数が変化する階調表現用テクスチャにおいて、算出された各頂点の輝度値に対応する位置を算出するテクスチャ座標算出ステップと、
算出された座標値によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼り付けるように指示するマッピングステップと、
を備えたことを特徴とする記録媒体。
【請求項４】
前記マッピングステップは、
ポリゴンを普通に描画することを指示する第１の描画ステップと、
前記階調表現用テクスチャと、前記第１の描画ステップで描画した描画結果とを混合して描画することを指示する第２の描画ステップと、
を備えたことを特徴とする請求項３に記載の記録媒体。
【請求項５】
３次元モデルを構成するポリゴンの各頂点の輝度値を算出する輝度値算出ステップと、
第１のパラメータに応じて濃淡が不連続に変化し、第２のパラメータに応じてその不連続に変化する濃淡の階調数が変化する階調表現用テクスチャにおいて、算出された各頂点の輝度値に対応する座標値を算出するテクスチャ座標算出ステップと、
算出された座標値によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼り付けて描画するように指示するマッピングステップと、
を備えたことを特徴とする画像描画プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックス（ＣＧ）に関し、特に、３次元（３Ｄ）モデルをセルアニメーション調に表示させる画像描画方式に関する。
【０００２】
【従来の技術】
近年のハードウェアの性能向上に伴い、家庭用ビデオゲーム機においても、３次元ＣＧをリアルタイムに描画して３次元ＣＧアニメーションを実現することが可能になってきている。
【０００３】
このような３次元ＣＧを描画する際に、３Ｄモデル表面の輝度値を求める方法としては、グーローシェーディングという方法が一般的に使用されている。
【０００４】
グーローシェーディングでは、まず、３Ｄモデルを構成するポリゴンの各頂点の輝度値（階調）を計算し、次に、ポリゴンを構成する他のピクセルの輝度値を、頂点の輝度値を滑らかに補完することで計算する。グーローシェーディングは、最近の描画チップにはハードウェアで実装されているので、非常に高速に実行できる。
【０００５】
図１１は、グーローシェーディングによる描画結果の例を示した図である。同図に示すように、４角形を構成するピクセルの輝度値は、４つの頂点の輝度値をなめらかに補完したものになっており、陰影（濃淡）づけされた画像が得られる。
【０００６】
【発明が解決しようとする課題】
一方、ゲームの内容等によっては、３次元ＣＧを、従来のセルアニメーションのように表示させたい場合がある。セルアニメーションでは、人が線画を描いて、その中を彩色することで画像を作成するため、滑らかな階調を実現するのが困難で、少ない階調表現になっている。したがって、セルアニメーション調な表示にするためには、滑らかな階調ではなく、例えば、４階調程度の階調表示にしなければならない。
【０００７】
しかし、前述したように、グーローシェーディングを使った場合は滑らかな階調になってしまうので、セルアニメーションのような階調表示にするには、何らかの方法によって、滑らかな階調を４階調程度に落とさなければならない。
【０００８】
このためには、例えば、所望の階調の境目の位置を計算してポリゴンを分割するという方法があるが、この方法では、ポリゴンの数が増えるため、その分計算量も増え、ポリゴンの数が数千・数万のオーダーになると処理速度的に間に合わなってしまう。
【０００９】
本発明の目的は、ポリゴン数の増加を招くことなく、セルアニメーションのような表示を可能にする画像描画方式を提供することにある。
【００１０】
【課題を解決するための手段】
本発明に係る画像描画システムは、３次元モデルを構成するポリゴンの各頂点の輝度値を算出する輝度値算出手段と、階調表現用テクスチャを格納するテクスチャ格納手段と、前記輝度値算出手段により算出された各頂点の輝度値に対応する前記階調表現用テクスチャの位置を算出するテクスチャ位置算出手段と、算出された位置によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼りつけるマッピング手段とを備えたことを特徴とする。
【００１１】
また、本発明に係る画像描画方法は、３次元モデルを構成するポリゴンの各頂点の輝度値を算出し、算出された各頂点の輝度値に対応する階調表現用テクスチャの位置を算出し、算出された位置によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼りつけることを特徴とする。
【００１２】
また、本発明に係る記録媒体は、画像描画プログラムが記録された記録媒体である。そして、画像描画プログラムは、３次元モデルを構成するポリゴンの各頂点の輝度値を算出する輝度値算出ステップと、算出された各頂点の輝度値に対応する階調表現用テクスチャの座標値を算出するテクスチャ座標値算出ステップと、算出された座標値によって規定される階調表現用テクスチャを、ポリゴンの表面に半透明で貼りつけるように指示するマッピングステップとを備えたことを特徴とする。
【００１３】
この場合において、前記マッピングステップは、ポリゴンを普通に描画することを指示する第１の描画ステップと、前記階調表現用テクスチャと、前記第１の描画ステップで描画した描画結果とを混合して描画することを指示する第２の描画ステップとを備えるようにしてもよい。
【００１４】
また、以上の場合において、前記階調表現用テクスチャは、例えば、予め定められた数の階調を有するものであってもよいし、第１のパラメータに応じて、濃淡が不連続に変化し、当該濃淡が不連続に変化する位置が、第２のパラメータに応じて変化するようなものであってもよい。
【００１５】
なお、前記プログラムは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード等の可搬記録媒体や、ネットワークを介して、頒布することができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しつつ、詳細に説明する。
【００１７】
まず、本発明が適用されるエンタテインメント装置について説明する。本エンタテインメント装置は、例えば、ＣＤ／ＤＶＤ等の記録媒体やネットワーク等によって提供されるゲーム等のアプリケーションを実行するものである。
【００１８】
図１は、本発明が適用されるエンタテインメント装置の構成を示すブロック図である。
【００１９】
同図に示すように、本エンタテインメント装置は、ＭＰＵ１００と、グラフィックスプロセッサ（ＧＰ）１１０と、Ｉ／Ｏプロセッサ（ＩＯＰ）１２０と、ＣＤ／ＤＶＤデコーダ１３０と、ＳＰＵ１４０と、ＯＳＲＯＭ１５０と、メインメモリ１６０と、ＩＯＰメモリ１７０とを備える。
【００２０】
ＭＰＵ１００とグラフィックスプロセッサ１１０とは、バス１０１によって接続され、ＭＰＵ１００とＩＯＰ１２０とは、バス１０２によって接続されている。また、ＩＯＰ１２０、ＣＤ／ＤＶＤデコーダ１３０、ＳＰＵ１４０及びＯＳＲＯＭ１５０は、バス１０３に接続されている。
【００２１】
また、ＭＰＵ１００には、メインメモリ１６０が接続され、ＩＯＰ１２０には、ＩＯＰメモリ１７０が接続されている。更に、ＩＯＰ１２０には、コントローラ（ＰＡＤ）１８０が接続される。
【００２２】
ＭＰＵ１００は、本エンタテインメント装置のメインＣＰＵである。ＭＰＵ１００は、ＯＳＲＯＭ１５０に格納されたプログラムや、ＣＤやＤＶＤからメインメモリ１６０にロードされたプログラムを実行することによって、所定の処理を行う。
【００２３】
グラフィックスプロセッサ１１０は、本エンタテインメント装置のレンダリングの機能を受け持つ描画プロセッサである。グラフィックスプロセッサ１１０は、ＭＰＵ１００からの指示に従って、描画処理を行う。グラフィックスプロセッサ１１０の詳細については後述する。
【００２４】
ＩＯＰ１２０は、ＭＰＵ１００と周辺装置（ＣＤ／ＤＶＤデコーダ１３０やＳＰＵ１４０等）との間のデータのやり取りを制御する入出力用サブ・プロセッサである。
【００２５】
ＣＤ／ＤＶＤデコーダ１３０は、ドライブに装着されているＣＤやＤＶＤからデータを読み出し、メインメモリ１６０への転送を行う。
【００２６】
ＳＰＵ１４０は、サウンド再生処理プロセッサであり、サウンドバッファ（不図示）に格納されたサウンドデータ（ＰＣＭデータ等）を、ＭＰＵ１００からの発音命令に基づいて、所定のサンプリング周波数で再生する。
【００２７】
ＯＳＲＯＭ１５０は、起動時等にＭＰＵ１００やＩＯＰ１２０が実行するプログラムが格納されているＲＯＭである。
【００２８】
メインメモリ１６０は、ＭＰＵ１００の主記憶であり、ＭＰＵ１００が実行する命令やＭＰＵ１００が利用するデータ等が格納される。
【００２９】
ＩＯＰメモリ１７０は、ＩＯＰ１２０の主記憶であり、ＩＯＰ１２０が実行する命令やＩＯＰ１２０が利用するデータ等が格納される。
【００３０】
コントローラ（ＰＡＤ）１８０は、ゲーム等の実行中に、プレイヤーの意図をアプリケーション等に伝達するインタフェースである。
【００３１】
次に、グラフィックスプロセッサ１１０の内部構成について説明する。
【００３２】
図２は、グラフィックスプロセッサ１１０の内部構成を示す図である。同図に示すように、グラフィックスプロセッサ１１０は、ホストインタフェース部２００と、描画機能ブロック２１０と、ローカルメモリ２２０と、ＣＲＴＣ部２３０とを備える。
【００３３】
ホストインタフェース部２００は、ＭＰＵ１００との間でデータのやり取りを行うためのインタフェース部である。
【００３４】
描画機能ブロック２１０は、ＭＰＵ１００からの指示に基づいて、レンダリング処理を行う論理回路部である。描画機能ブロック２１０は、ディジタル・ディファレンシャル・アナライザ（ＤＤＡ）とピクセル・エンジンをそれぞれ１６個備え、６４ビット（色情報３２ビット、Ｚ値３２ビット）の画素データを、最大１６個並列処理する。ＤＤＡは、ＭＰＵ１００から受け取った頂点情報を基に、ＲＧＢ値、Ｚ値、テクスチャ値などを計算する。これらのデータを基に、ピクセル・エンジンは、テクスチャマッピング、αブレンディング等の処理を行って最終的なピクセル・データを生成する。
【００３５】
ローカルメモリ２２０は、描画機能ブロック２１０によって生成されたピクセル・データやＭＰＵ１００から転送されたテクスチャ・データ等を格納する。
【００３６】
ＣＲＴＣ部２３０は、指定された出力フォーマット（ＮＴＳＣ、ＰＡＬ、ＶＥＳＡフォーマット等）に従って、ローカルメモリ２２０のフレームバッファ領域の内容を映像信号として出力する。
【００３７】
図３は、ローカルメモリ２２０の構成を示す図である。同図に示すように、ローカルメモリ２２０は、フレームバッファ領域２５０と、Ｚバッファ領域２６０と、テクスチャバッファ領域２７０と、テクスチャＣＬＵＴ領域２８０とを有する。
【００３８】
フレームバッファ領域２５０及びＺバッファ領域２６０は、描画対象領域で、フレームバッファ領域２５０は、描画結果のピクセルを格納し、Ｚバッファ領域２６０は、描画結果のＺ値を格納する。
【００３９】
テクスチャバッファ領域２７０は、テクスチャのイメージデータを格納し、テクスチャＣＬＵＴ領域２８０は、テクスチャがインデックスカラーの場合に使用するカラールックアップテーブル（ＣＬＵＴ）を格納する。
【００４０】
なお、領域２５０〜２８０は、所定の制御レジスタに適当な値を設定することで、ローカルメモリ２２０上の任意のアドレスに任意の順序で自由に配置することができる。
【００４１】
次に、以上のような構成を有するエンタテインメント装置によって実行される３Ｄモデルの描画処理について説明する。アプリケーションは、必要に応じて、ＣＤ／ＤＶＤに格納されている３Ｄモデルに基づいて、画像の描画を行う。なお、以下では、本発明による描画方法をポリゴンモデルに対し適用した場合について説明するが、スプラインモデルに対してもまったく同様に適用可能である。
【００４２】
まず、本描画方法を実現するために利用するグラフィックプロセッサ１１０の機能について説明する。本描画方法では、グラフィックプロセッサ１１０が有するテクスチャマッピング機能とαブレンディング機能とを利用する。
【００４３】
テクスチャマッピング機能とは、ローカルメモリ２２０のテクスチャバッファ領域２７０に格納されたテクスチャ（イメージデータ）をポリゴンの表面に貼りつけて、画像を描画する機能をいう。
【００４４】
図４は、グラフィックスプロセッサ１１０のテクスチャマッピング機能を説明するための図である。同図に示すように、テクスチャマッピング機能を利用すると、テクスチャバッファ領域２７０に用意されたテクスチャの全部又は一部分を適宜、拡大・縮小・変形等して、ポリゴンの表面に貼り付けることができる。ＭＰＵ１００は、グラフィックスプロセッサ１１０に、テクスチャ付きのポリゴンの描画を指示する場合は、ポリゴンの各頂点の座標値に加えて、各頂点に対応するテクスチャの座標値を指定して、描画を指示する。
【００４５】
グラフィックスプロセッサ１１０は、テクスチャマッピング機能をオンにして、ポリゴンの描画が指示されると、ポリゴンの各頂点毎に指定されるテクスチャの座標値をもとに、テクスチャバッファ領域２７０に置かれたイメージデータをテクスチャとして参照し、適宜補完を行って、テクスチャマッピングを行う。
【００４６】
一方、グラフィックスプロセッサ１１０が有するαブレンディング機能とは、ＭＰＵ１００からの指示に従って生成されたピクセルのアルファ値またはフレームバッファ領域２５０に格納されているアルファ値にしたがって、生成されたピクセルのＲＧＢ値とフレームバッファ領域２５０に格納されているＲＧＢ値のブレンディング（混合）を行って、画像を描画する機能をいう。
【００４７】
なお、テクスチャマッピング機能及びαブレンディング機能は、所定の制御レジスタに適当な値を設定することで、それぞれ、オン／オフ制御することができる。
【００４８】
本描画方法では、これらの機能を利用して、階調表現には、グラデーションを数階調に落としたテクスチャを予め用意し、このテクスチャを半透明で３Ｄモデルの表面に貼り付けることでセルアニメーション調の階調表現を実現する。
【００４９】
図５は、本描画方法による階調表現を説明するための図である。同図に示すように、ポリゴン５０の各頂点での輝度値に対応する階調表現用テクスチャ５１の位置を算出し、算出された位置によって規定される階調表現用テクスチャ５２（１次元テクスチャ）を、適宜補完して、半透明で張り付けることによって階調表示を実現する。
【００５０】
次に、本描画処理の流れについて説明する。図６は、本描画処理の流れを示すフローチャートである。本処理は、ＭＰＵ１００によって実行される。
【００５１】
まず、階調表現用テクスチャを、ローカルメモリ２２０のテクスチャバッファ領域２７０に転送する（Ｓ６００）。
【００５２】
次に、３Ｄモデルを構成するポリゴンの各頂点と光源との位置関係から、各頂点での明るさ（輝度値）を計算する（Ｓ６０２）。
【００５３】
次に、各頂点の明るさに基づいて、当該明るさに対応する階調表現用テクスチャの位置（座標値）を算出する（Ｓ６０４）。
【００５４】
図７は、明るさと階調表現用テクスチャの位置との関係を説明するための図である。同図に示すように、階調表現用テクスチャ７０は、４段階の陰影（濃淡）を有しており、左から右に行くに従って、不連続に階調が濃くなっている。このような階調表現用テクスチャ７０に対して、例えば、明るさに比例して、明るさ９０％に対応する位置として、位置Ｐ１を算出し、明るさ３０％に対応する位置として、位置Ｐ２を算出する。
【００５５】
図８は、階調表現用テクスチャの別の例を示す図である。同図に示すように、階調表現用テクスチャ８０は、図７に示した階調表現用テクスチャ７０と同様に、左から右に行くに従って、不連続に階調が濃くなっている。更に、階調表現用テクスチャ８０は、縦方向の位置によって、階調が変化する位置が異なっている。
【００５６】
図８に示したようなテクスチャを使用すると、縦方向の位置の選択の仕方によって、明るさの計算値はそのままで、各３Ｄモデルの表面の階調を変更することができる。例えば、階調を多めにした人の肌のような雰囲気や、ロボットのような金属的な、階調のきつい表現も、テクスチャの縦方向の選択のしかたのみでコントロールできるようになる。
【００５７】
次に、３Ｄモデルを構成するポリゴンを普通に描画するようにグラフィックスプロセッサ１１０に指示する（Ｓ６０６）。これにより、グラフィックスプロセッサ１１０は、３Ｄモデルを、陰影づけなしにフレームバッファ領域２５０に描画する。
【００５８】
次に、テクスチャマッピング機能及びαブレンディング機能をオンにし、ポリゴンの各頂点に対応するテクスチャ座標値を指定して、３Ｄモデルを構成するポリゴンの描画をグラフィックスプロセッサ１１０に指示する（Ｓ６０８）。これにより、グラフィックスプロセッサ１１０は、指定された階調表現用テクスチャを、ステップＳ６０６でフレームバッファ領域２５０に描画したポリゴン表面に半透明で貼りつけた画像を描画する。
【００５９】
以上のような処理により、セルアニメーション調の表示が可能となる。
【００６０】
図９は、従来の描画方法での描画結果と、本描画方法での描画の様子を概念的に説明するための図である。
【００６１】
同図（ａ）は、従来のグーローシェーディングを行って描画した描画結果を示している。同図に示すように、階調表現は滑らかになっている。
【００６２】
これに対して、本描画方法では、まず、同図（ｂ）に示すように、シェーディングなしで描画し、次に、各頂点の明るさに基づいて、同図（ｃ）のようなテクスチャをテクスチャバッファ領域２７０から切り出し、切り出したテクスチャを、シェーディングなしで描画した描画結果に半透明で貼りつける。このような処理によって、同図（ｄ）に示すようなセルアニメーション調の描画結果が得られる。
【００６３】
図１０は、本発明による描画方法で描画した画像の例を示す図である。同図に示すように、キャラクタは、少ない階調で表示され、セルアニメーションのような表示画面になっている。
【００６４】
【発明の効果】
以上、詳細に説明したように、本発明によれば、ポリゴン数の増加を招くことなく、セルアニメーションのような表示が可能になる。
【図面の簡単な説明】
【図１】  本発明が適用されるエンタテインメント装置の構成を示すブロック図である。
【図２】  グラフィックスプロセッサ１１０の内部構成を示す図である。
【図３】  ローカルメモリ２２０の構成を示す図である。
【図４】  グラフィックスプロセッサ１１０のテクスチャマッピング機能を説明するための図である。
【図５】  本発明による階調表現を説明するための図である。
【図６】  本発明による描画処理の流れを示すフローチャートである。
【図７】  明るさと階調表現用テクスチャの位置との関係を説明するための図である。
【図８】  階調表現用テクスチャの例を示す図である。
【図９】  従来の描画方法での描画結果と、本発明による描画方法での描画の様子を概念的に説明するための図である。
【図１０】  本発明による描画方法で描画した画像の例を示す図である。
【図１１】  グーローシェーディングによる描画結果の例を示す図である。
【符号の説明】
１００  ＭＰＵ
１１０  グラフィックスプロセッサ（ＧＰ）
１２０  Ｉ／Ｏプロセッサ（ＩＯＰ）
１３０  ＣＤ／ＤＶＤデコーダ
１４０  ＳＰＵ
１５０  ＯＳＲＯＭ
１６０  メインメモリ
１７０  ＩＯＰメモリ
１８０  コントローラ（ＰＡＤ）
【図１】
0003652586.tif 000002
【図２】
0003652586.tif 000003
【図３】
0003652586.tif 000004
【図４】
0003652586.tif 000005
【図５】
0003652586.tif 000006
【図６】
0003652586.tif 000007
【図７】
0003652586.tif 000008
【図８】
0003652586.tif 000009
【図９】
0003652586.tif 000010
【図１０】
0003652586.tif 000011
【図１１】
0003652586.tif 000012