(57)【特許請求の範囲】
【請求項１】
３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの内積値を求める第１の計算工程のプログラムと、
前記３次元モデルとカメラとの距離を求める第２の計算工程のプログラムと、
前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピングプログラム。
【請求項２】
３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの角度差を求める第１の計算工程のプログラムと、
前記３次元モデルとカメラとの距離を求める第２の計算工程のプログラムと、
前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピングプログラム。
【請求項３】
更に、前記特定工程で特定された画素を前記３次元モデルにテクスチャマッピングした処理済み３次元モデルに対して更に文字線画が描画されたテクスチャ画像をテクスチャマッピングすると共に、
前記処理済み３次元モデルと前記カメラとの距離に応じて前記文字線画の透明度を制御する透明度制御工程のプログラムを含むことを特徴とする請求項１または２に記載のテクスチャマッピングプログラム。
【請求項４】
前記透明度制御工程のプログラムは、前記処理済み３次元モデルと前記カメラとの距離が近いほど透明度を下げ、遠いほど透明度を上げることを特徴とする請求項３に記載のテクスチャマッピングプログラム。
【請求項５】
３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの内積値を求める第１の計算工程のプログラムと、
前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの内積値を求める第２の計算工程のプログラムと、
前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの内積値に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピングプログラム。
【請求項６】
３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの角度差を求める第１の計算工程のプログラムと、
前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの角度差を求める第２の計算工程のプログラムと、
前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの角度差に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピングプログラム。
【請求項７】
前記テクスチャマッピングはトゥーンシェーディング処理であることを特徴とする請求項１乃至６のいずれか１項に記載のテクスチャマッピングプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テクスチャマッピングプログラムに関するものである。
【０００２】
【従来の技術】
画像処理技術においてテクスチャマッピングという処理がある。これは一般的には３次元モデルの表面に２次元の画像（テクスチャ画像）を貼り付ける（マッピングする）処理である。このテクスチャマッピング処理において、光源からの光の方向ベクトルと３次元モデルの表面の各点における法線ベクトルとが成す角度の差に応じて粗い階調で３次元モデルに対して陰影を付け、あたかも２次元のアニメ調の画像となるように、３次元モデルに対して行う処理（以下、トゥーンシェーディング処理と呼ぶ）がある。
【０００３】
【発明が解決しようとする課題】
３次元モデルがカメラの位置から遠い場所に位置する場合、３次元モデルの詳細は表示された画面上ではわかりにくい。よってこの場合、３次元モデルの画像情報を減らしていくことが好ましい。また、光源の位置と３次元モデルの位置関係によっては、３次元モデルの表面の色情報が変化する。例えば３次元モデルがカメラに対して逆光の場所に位置する場合、カメラの位置から見た３次元モデルは概ね黒い物体として見える。
【０００４】
本発明はこのような点を考慮して成されたものであり、３次元モデル、光源、カメラのうち一部、もしくは全部の位置関係に応じたテクスチャマッピングを３次元モデルに対して行うことを目的とする。
【０００５】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明のテクスチャマッピングプログラムは以下の構成を備える。
【０００６】
すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの内積値を求める第１の計算工程のプログラムと、
前記３次元モデルとカメラとの距離を求める第２の計算工程のプログラムと、
前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とする。
【０００７】
本発明の目的を達成するために、例えば本発明のテクスチャマッピングプログラムは以下の構成を備える。
【０００８】
すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの角度差を求める第１の計算工程のプログラムと、
前記３次元モデルとカメラとの距離を求める第２の計算工程のプログラムと、
前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とする。
【０００９】
更に上記テクスチャマッピングプログラムは、前記特定工程で特定された画素を前記３次元モデルにテクスチャマッピングした処理済み３次元モデルに対して更に文字線画が描画されたテクスチャ画像をテクスチャマッピングすると共に、
前記処理済み３次元モデルと前記カメラとの距離に応じて前記文字線画の透明度を制御する透明度制御工程のプログラムを含むことを特徴とする。
【００１０】
本発明の目的を達成するために、例えば本発明のテクスチャマッピングプログラムは以下の構成を備える。
【００１１】
すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの内積値を求める第１の計算工程のプログラムと、
前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの内積値を求める第２の計算工程のプログラムと、
前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの内積値に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とする。
【００１２】
本発明の目的を達成するために、例えば本発明のテクスチャマッピングプログラムは以下の構成を備える。
【００１３】
すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピングプログラムであって、
３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの角度差を求める第１の計算工程のプログラムと、
前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの角度差を求める第２の計算工程のプログラムと、
前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの角度差に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算工程での計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定工程のプログラムとを含み、
前記特定工程で特定された画素を前記注目部分にテクスチャマッピングすることを特徴とする。
【００１４】
【発明の実施の形態】
以下添付図面を参照して、本発明の好適な実施形態について詳細に説明する。
【００１５】
まず、従来のトゥーンシェーディング処理の概要について説明する。一般にコンピュータによって３次元モデルを生成し、表示装置に表示する場合、３次元モデルにはシェーディング処理が施される。光源から照射される光の方向ベクトル（以下、光源ベクトル）と３次元モデルの表面の各点における法線ベクトルとの内積値を計算し、内積値が大きいほど暗く、内積値が小さいほど明るい色で各点を表現することで、３次元モデルの表面になだらかな（細かい階調で）陰影を付けることができる。
【００１６】
上記シェーディング処理（以下、トゥーンシェーディング処理と区別するために一般シェーディング処理と呼ぶことがある）を施された３次元モデルの画像をアニメーション画像に合成して用いる場合、アニメーションの画像は登場する各物体（生物を含む）の陰影が粗い階調で表現されているため、合成後の画像を見た観察者に、細かい階調で陰影が付けられた上記シェーディング処理を施された３次元モデルの画像に対する違和感を与えることになる。そこで、３次元モデルに上記シェーディング処理による画像の階調を粗くした、あたかも２次元のアニメ調の画像となるようなテクスチャ画像を、３次元モデルに貼り付ける処理（トゥーンシェーディング処理）を行う。
【００１７】
図１に３次元モデルと光源とを示す。シェーディング処理では、３次元モデルの任意の点Ｐ（３次元モデルがポリゴンで形成されている場合はポリゴン）における法線ベクトルＶＮと光源ベクトルＶＬとの内積値に応じて点Ｐにおける陰影を決定する。一方、トゥーンシェーディング処理ではこの内積値に応じて、テクスチャ画像のうち点Ｐに貼り付ける画素の位置を決定し、決定した位置の画素を３次元モデルの点Ｐに貼り付ける処理を行う。
【００１８】
図２にこのトゥーンシェーディング処理で用いるテクスチャ画像を示す。同図に示した画像は縦Ｍ画素、横Ｎ画素であって、同図左から白、グレー、そして黒の領域を有する。夫々の領域の横方向の長さは任意である。ここで３次元モデル上の任意の点における上記内積値がａである場合、この点には、図２に示したテクスチャ画像において左から（ａ＋１）（Ｎ−１）／２番目の位置の画素を貼り付けることになる（左端の画素を０番目とした場合）。つまり、内積値が大きい点ほどテクスチャ画像の右側の画素を用いる傾向にあり、内積値が小さい点ほど左側の画素を用いる傾向にある。これにより、内積値が大きい点ほど暗い色（同図では黒）、内積値が小さいほど明るい色（同図では白）を割り当てることができると共に、テクスチャ画像で用いられている各色は大まかに分かれているので、トゥーンシェーディング処理の結果、３次元モデルに上記シェーディング処理による画像の階調を粗くした、あたかも２次元のアニメ調の画像となるようなテクスチャ画像を、３次元モデルに貼り付けることができる。
【００１９】
しかし上記従来のトゥーンシェーディング処理において、テクスチャ画像（図２）を参照する方向は内積値に応じて横方向のみであった。つまり、同図のテクスチャ画像において縦方向を参照することはなかった。そこで下記の実施形態では、状況（３次元モデル、光源、カメラのうち一部、もしくは全部の位置関係）に応じて用いるべき情報を縦方向に有するテクスチャ画像と、このテクスチャ画像を用いてトゥーンシェーディング処理を行うプログラムについて説明する。
【００２０】
［第１の実施形態］
本実施形態におけるトゥーンシェーディング処理を行うプログラムは、用いるテクスチャ画像の縦方向を、このテクスチャ画像を貼り付ける３次元モデルとカメラとの距離に応じて参照する。
【００２１】
図３に本実施形態におけるトゥーンシェーディングを行うプログラムを実行する情報処理装置の基本構成を示す。なお、同図に示した情報処理装置は一般のパーソナルコンピュータやワークステーション、ゲーム装置等を含む。
【００２２】
３０１はＣＰＵで、ＲＡＭ３０２やＲＯＭ３０３に格納されたプログラムやデータを用いて本装置全体の制御を行うと共に、後述のトゥーンシェーディング処理を含む各種の画像処理を行う。３０２はＲＡＭで、ハードディスドライブ３０４（以下、ＨＤＤ）やＣＤ−ＲＯＭドライブ３０５から読み出されたプログラムやデータなどを一時的に記憶するエリアを備えると共に、ＣＰＵ３０１が各種の処理を実行する際に用いるワークエリアも備える。３０３はＲＯＭで、本装置全体の制御を行うためのプログラムやデータなどを格納する。３０４は上記ＨＤＤで、ＣＤ−ＲＯＭドライブ３０５から読み出されたプログラムやデータなどをファイルとして保存することができる。３０５はＣＤ−ＲＯＭドライブで、プログラムやデータを格納した記憶媒体としてのＣＤ−ＲＯＭからプログラムやデータを読み出す。３０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字等を表示する。３０７は操作部で、キーボードやマウス、ゲームを行うためのパッド、ジョイスティックなどにより構成されており、操作者からの本装置に対する入力指示を行うためのインターフェースとして機能する。３０８は上述の各部を繋ぐバスである。
【００２３】
尚、上記構成に加えて、ＣＤ−ＲＯＭ以外にもＤＶＤ−ＲＯＭやフロッピーディスクなど、他の記憶媒体からプログラムやデータを読み出すためのドライブを備えても良い。
【００２４】
次に、本実施形態におけるテクスチャ画像について説明する。図４に本実施形態におけるテクスチャ画像を示す。本実施形態におけるテクスチャ画像は縦Ｍ画素、横Ｎ画素である。また同図において原点（０，０）を同図画像の左上隅に取り、横方向をｘ軸方向、縦方向をｙ軸方向とする。本実施形態では説明を簡単にするために、３次元モデルにおいて最も明るい部分の色を白とするがこれに限定されるものではない。
【００２５】
同図に示したテクスチャ画像をトゥーンシェーディング処理に適用する場合、まず、３次元モデルとカメラとの距離を計算する。計算した距離をｙとする。次に、３次元モデルにおいてテクスチャを貼る点Ｐにおける法線ベクトルと光源ベクトルとの内積値を求め、これをｘとする。そして、図４に示したテクスチャ画像において（（ｘ＋１）×（Ｎ−１）／２、ｙ×Ｍ／Ｌ２）に対応する位置の画素を３次元モデルにおける点Ｐに貼り付ける。
【００２６】
図４に示したテクスチャ画像は、３次元モデルとカメラとの距離が遠くなるに従って使用可能な色の種類が減るように構成されていると共に、３次元モデルとカメラとの距離が遠くなるに従ってほとんどの内積値に対する色がグレーとなるように構成されている。具体的には、同図では距離が近い（距離０から距離Ｌ１）場合には白、グレー、黒の３色が内積値に応じて使用可能である。しかし距離がＬ１以上である場合、内積値が如何なる値をとっても使用可能な色はグレー、黒の２色となる。尚、距離がＬ２以上の場合、Ｌ２として扱う。
【００２７】
よって、図４に示したテクスチャ画像を用いて上述の通りトゥーンシェーディング処理を行うことで、３次元モデルとカメラとの距離に応じて使用可能な色やその色数、各内積値に対する各色の割合を変化させることができる。つまり、同図に示したテクスチャ画像を用いてトゥーンシェーディング処理を行うことで従来のトゥーンシェーディング処理による結果が得られると共に、３次元モデルとカメラとの距離に応じて表現色を変化させることができる。
【００２８】
図５に本実施形態における上記テクスチャ画像を用いたトゥーンシェーディング処理のフローチャートを示す。なお、同図に示したフローチャートに従ったプログラムはＲＡＭ３０２に読み出され、ＣＰＵ３０１により実行されるので、本実施形態における情報処理装置は上記トゥーンシェーディング処理を行うことができる。また、同図に示したフローチャートはトゥーンシェーディング処理を施された３次元モデルを表示装置３０６の画面上に表示する際のレンダリング処理（サブルーチン）として実行される。
【００２９】
まず、カメラと３次元モデルとの距離（ｙ）を計算し、ＲＡＭ３０２に記憶する（ステップＳ５０１）。これは互いの３次元座標値を用いて求めることができる。なお、この距離を求める処理は同図に示したフローチャートに従った処理の外部で行い、ステップＳ５０１では、外部で求めた距離をＲＡＭ３０２に読み込んでも良い。次に、３次元モデル上の１点（３次元モデルがポリゴンにより形成されている場合には１つのポリゴン）における法線ベクトルと光源ベクトルとの内積値（ｘ）を求め、ＲＡＭ３０２に記憶する（ステップＳ５０２）。
【００３０】
次に、ステップＳ５０１，ステップＳ５０２において求め、ＲＡＭ３０２に記憶されているｘ、ｙを用いて図４に示したテクスチャ画像において（（（ｘ＋１）×（Ｎ−１）／２、ｙ×Ｍ／Ｌ２））に位置する画素を上記１点に貼り付ける（ステップＳ５０３）。そして未だテクスチャ画像を貼り付けていない点が３次元モデルにある場合には処理をステップＳ５０２に戻し、この点に対して以下、同様に処理を行う。
【００３１】
以上説明した、ステップＳ５０１〜ステップＳ５０３の処理を３次元モデル上の全ての点に対して行うことで、３次元モデル上に本実施形態におけるトゥーンシェーディングを行うことができる。
【００３２】
なお、上記説明ではテクスチャ画像に用いる色の数を最大３つとしたがこれに限定されるものではない。また、上記説明は図４に示したテクスチャ画像に限定されるものではない。つまり、図４に示した各色の割合や分布はこれに限定されるものではない。またテクスチャ画像においてｘ軸方向は法線ベクトルと光源ベクトルとの内積値に限定されるものではなく、他にも例えば法線ベクトルと光源ベクトルとの角度差であってもよい。
【００３３】
次に、上記トゥーンシェーディング処理を施された３次元モデルに対して文字線画が描画されたテクスチャ画像を更に貼り付ける場合について説明する。図６は、上記トゥーンシェーディング処理を施された３次元モデル６０１に対して点線が描画されたテクスチャ画像６０２を貼り付け、野球のボールの３次元モデル６０３を生成する流れを示す図である。テクスチャ画像６０２は点線の部分（ボールの縫い目の部分）のみが任意の色で描画されており、それ以外の領域は貼り付けた３次元モデルの下地の色（即ち、本実施形態におけるトゥーンシェーディング処理がなされた３次元モデルの表面の色）が見えるように透明となっている。
【００３４】
同図に示した方法により生成されたボールの３次元モデル６０３がカメラから遠ざかるに従って下地の色は上記トゥーンシェーディング処理により変化していくが、上記の通り、縫い目の部分は確認し難くなると共に、ちらつく。そこで、カメラとの距離が大きくなるに従ってこの縫い目の部分のα値を下げていき、カメラとの距離が大きくなるに従ってこの縫い目の部分の透明度を上げていくことが好適である。
【００３５】
［第２の実施形態］
本実施形態におけるトゥーンシェーディング処理を行うプログラムは、用いるテクスチャ画像の縦方向を光源とカメラとの位置関係に応じて参照する。図７にカメラ、３次元モデル、光源を示す。ＶＬ、ＶＮは図１に示したものと同じで、ＶＣはカメラから３次元モデルに対する方向ベクトル（視線ベクトル）である。
【００３６】
視線ベクトルＶＣと光源ベクトルＶＬとが成す角度が１８０度の場合、すなわち、逆光の場合、カメラから見て３次元モデルは概ね図８（ａ）に示すように見える。つまり、見える範囲で３次元モデルのほとんどは黒く見え、周辺部分のみが若干明るく見える。一方、視線ベクトルＶＣと光源ベクトルＶＬとが成す角度が０度の場合、即ち順光の場合、カメラから見て３次元モデルは概ね図８（ｂ）に示すように見える。つまり、見える範囲で３次元モデルのほとんどは白く見える。このようにカメラと光源の位置関係により３次元モデルの見え方は変化する。
【００３７】
図９に本実施形態におけるテクスチャ画像を示す。本実施形態でも第１の実施形態と同様にテクスチャ画像は縦Ｍ画素、横Ｎ画素であって、原点（０，０）を同図画像の左上隅に取り、横方向をｘ軸方向、縦方向をｙ軸方向とする。また本実施形態でも第１の実施形態と同様に、３次元モデルにおいて最も明るい部分の色を白とするがこれに限定されるものではない。
【００３８】
同図に示したテクスチャ画像をトゥーンシェーディング処理に適用する場合、まず、視線ベクトルと光源ベクトルとが成す角度の差を計算する。計算した角度の差をｙとする。次に、３次元モデルにおいてテクスチャを貼る点Ｐにおける法線ベクトルと光源ベクトルとの内積値を求め、これをｘとする。そして、図９に示したテクスチャ画像において座標（（ｘ＋１）×（Ｎ−１）／２、ｙ×Ｍ／３６０）に位置する画素を３次元モデルにおける点Ｐに貼り付ける。
【００３９】
図９に示したテクスチャ画像は、視線ベクトルと光源ベクトルとの角度差が１８０度、すなわち、逆光に近いほど使用する暗い色の種類と割合が増えるように構成されている。また、テクスチャ画像において各色の種類、分布は１８０度を境に上部、下部は対象である。
【００４０】
よって、図９に示したテクスチャ画像を用いて上述の通りトゥーンシェーディング処理を行うことで、カメラと光源の位置関係に応じて使用可能な色やその色数、各内積値に対する各色の割合を変化させることができる。つまり、同図に示したテクスチャ画像を用いてトゥーンシェーディング処理を行うことで従来のトゥーンシェーディング処理による結果が得られると共に、カメラと光源との位置関係に応じて表現色を変化させることができる。
【００４１】
図１０に本実施形態における上記テクスチャ画像を用いたトゥーンシェーディング処理のフローチャートを示す。なお、同図に示したフローチャートに従ったプログラムはＲＡＭ３０２に読み出され、ＣＰＵ３０１により実行されるので、本実施形態における情報処理装置は上記トゥーンシェーディング処理を行うことができる。また、同図に示したフローチャートはトゥーンシェーディング処理を施された３次元モデルを表示装置３０６の画面上に表示する際のレンダリング処理（サブルーチン）として実行される。
【００４２】
まず、視線ベクトルと光源ベクトルとの角度差（ｙ）を計算し、ＲＡＭ３０２に記憶する（ステップＳ１００１）。視線ベクトルは、カメラの座標と３次元モデルの座標を用いて求めることができる。光源ベクトルは光源の座標と３次元モデルの座標を用いて求めることができる。なお、この角度差を求める処理は同図に示したフローチャートに従った処理の外部で行い、ステップＳ１００１では、外部で求めた角度差をＲＡＭ３０２に読み込んでも良い。次に、３次元モデル上の１点（３次元モデルがポリゴンにより形成されている場合には１つのポリゴン）における法線ベクトルと光源ベクトルとの内積値を（ｘ）求め、ＲＡＭ３０２に記憶する（ステップＳ１００２）。
【００４３】
次に、ステップＳ１００１，ステップＳ１００２において求め、ＲＡＭ３０２に記憶しているｘ、ｙを用いて図９に示したテクスチャ画像において（（（ｘ＋１）×（Ｎ−１）／２、ｙ×Ｍ／３６０））に位置する画素を上記１点に貼り付ける（ステップＳ１００３）。そして未だテクスチャ画像を貼り付けていない点が３次元モデルにある場合には処理をステップＳ１００２に戻し、この点に対して以下、同様に処理を行う。
【００４４】
以上説明した、ステップＳ１００１〜ステップＳ１００３の処理を３次元モデル上の全ての点に対して行うことで、３次元モデル上に本実施形態におけるトゥーンシェーディングを行うことができる。
【００４５】
なお、上記説明ではテクスチャ画像に用いる色の数を最大３つとしたがこれに限定されるものではない。また、上記説明は図９に示したテクスチャ画像に限定されるものではない。つまり、図９に示した各色の成分の割合や分布はこれに限定されるものではない。またテクスチャ画像においてｘ軸方向は法線ベクトルと光源ベクトルとの内積値に限定されるものではなく、他にも例えば法線ベクトルと光源ベクトルとが成す角度であってもよい。同様に、ｙ軸方向は視線ベクトルと光源ベクトルとの角度差に限定されるものではなく、他にも例えば視線ベクトルと光源ベクトルとの内積値であってもよい。
【００４６】
［第３の実施形態］
以上の処理（例えば図５，１０に示したフローチャートの一部、もしくは全部に従った処理）をプログラムとしてＣＤ−Ｒ、ＲＯＭやＤＶＤ−ＲＯＭ、ＭＯ等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませる（インストール、もしくはコピーさせる）ことで、このコンピュータは以上の処理を行うことができる。よって、この記憶媒体も本発明の範疇にあることは明白である。
【００４７】
また、上記実施形態で説明したトゥーンシェーディング処理は以下の構成を備えるテクスチャマッピング装置でも実現可能である。すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピング装置であって、３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの内積値を求める第１の計算手段と、前記３次元モデルとカメラとの距離を求める第２の計算手段と、前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算手段による計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定手段とを備え、前記特定手段により特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピング装置により上記実施形態で説明した一連の処理を行うことができるので、上記構成を備える装置は本発明の範疇にあることは明確である。
【００４８】
また、上記実施形態で説明したトゥーンシェーディング処理は以下の構成を備えるテクスチャマッピング装置でも実現可能である。すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピング装置であって、３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の方向ベクトルとの角度差を求める第１の計算手段と、前記３次元モデルとカメラとの距離を求める第２の計算手段と、前記方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記３次元モデルと前記カメラとの距離に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算手段による計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定手段とを備え、前記特定手段により特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピング装置により上記実施形態で説明した一連の処理を行うことができるので、上記構成を備える装置は本発明の範疇にあることは明確である。
【００４９】
また上記構成を備えるテクスチャマッピング装置は更に、特定手段が特定した画素を３次元モデルにテクスチャマッピングした処理済み３次元モデルに対して更に文字線画が描画されたテクスチャ画像をテクスチャマッピングすると共に、処理済み３次元モデルとカメラとの距離に応じて文字線画の透明度を制御する透明度制御手段を備えてもよい。
【００５０】
また、上記実施形態で説明したトゥーンシェーディング処理は以下の構成を備えるテクスチャマッピング装置でも実現可能である。すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピング装置であって、３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの内積値を求める第１の計算手段と、前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの内積値を求める第２の計算手段と、前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの内積値に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの内積値に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算手段による計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定手段とを備え、前記特定手段により特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピング装置により上記実施形態で説明した一連の処理を行うことができるので、上記構成を備える装置は本発明の範疇にあることは明確である。
【００５１】
また、上記実施形態で説明したトゥーンシェーディング処理は以下の構成を備えるテクスチャマッピング装置でも実現可能である。すなわち、３次元モデルに対してテクスチャマッピングを行うテクスチャマッピング装置であって、３次元モデルにおいて注目部分の法線ベクトルと、光源から当該３次元モデルに対して照射される光の第１の方向ベクトルとの角度差を求める第１の計算手段と、前記第１の方向ベクトルと、カメラから前記３次元モデルに対する第２の方向ベクトルとの角度差を求める第２の計算手段と、
前記第１の方向ベクトルと、前記３次元モデルにおいてテクスチャマッピングを行う部分の夫々の法線ベクトルとの角度差に応じた画素値を有する画素列を第１の方向に、前記第１の方向ベクトルと前記第２の方向ベクトルとの角度差に応じた画素値を有する画素列を前記第１の方向とは直交する第２の方向に配置するテクスチャ画像から、前記第１，２の計算手段による計算結果に基づいて前記注目部分にテクスチャマッピングを行う画素を特定する特定手段とを備え、前記特定手段により特定された画素を前記注目部分にテクスチャマッピングすることを特徴とするテクスチャマッピング装置により上記実施形態で説明した一連の処理を行うことができるので、上記構成を備える装置は本発明の範疇にあることは明確である。
【００５２】
【発明の効果】
以上の説明により、本発明によって、３次元モデル、光源、カメラのうち一部、もしくは全部の位置関係に応じたテクスチャマッピングを３次元モデルに対して行うことができる。
【図面の簡単な説明】
【図１】３次元モデルと光源を示す図である。
【図２】従来のトゥーンシェーディング処理で用いるテクスチャ画像を示す図である。
【図３】本発明の実施形態における情報処理装置の基本構成を示すブロック図である。
【図４】本発明の第１の実施形態におけるテクスチャ画像を示す図である。
【図５】本発明の第１の実施形態におけるトゥーンシェーディング処理のフローチャートである。
【図６】本発明の第１の実施形態におけるトゥーンシェーディング処理を施された３次元モデル６０１に対して点線画鋲がされたテクスチャ画像６０２を貼り付け、ボールの３次元モデル６０３を生成する流れを示す図である。
【図７】カメラ、３次元モデル、光源を示す図である。
【図８】（ａ）は逆光の時に見える３次元モデルを示す図で、（ｂ）は順光の時に見える３次元モデルを示す図である。
【図９】本発明の第２の実施形態におけるテクスチャ画像を示す図である。
【図１０】本発明の第２の実施形態におけるトゥーンシェーディング処理のフローチャートである。
【図１】
0003586253.tif 000002
【図２】
0003586253.tif 000003
【図３】
0003586253.tif 000004
【図４】
0003586253.tif 000005
【図５】
0003586253.tif 000006
【図６】
0003586253.tif 000007
【図７】
0003586253.tif 000008
【図８】
0003586253.tif 000009
【図９】
0003586253.tif 000010
【図１０】
0003586253.tif 000011