(57)【特許請求の範囲】
【請求項１】
仮想３次元空間に配置された所定の光源から見たときのモデルの影の画像をビデオメモリのオフスクリーン領域に描画して当該モデルの影テクスチャを生成する工程と、
前記ビデオメモリのオンスクリーン領域に、前記モデルと位置的に関連付けて前記影テクスチャを描画する工程と、を含み、
前記オンスクリーン領域に描画される前記影テクスチャの画像には、所定の階調変化を付加する画像処理方法であって、
前記影テクスチャを生成する工程において、前記オフスクリーン領域における前記影テクスチャのＺ軸方向の奥行き情報を一時記憶域に画素単位で記憶し、その情報を参照して、前記所定の階調変化を表現できるように前記影テクスチャの各画素の階調を決定する画像処理方法。
【請求項２】
前記光源から離れるに従って前記影テクスチャの階調が漸次明るくなるように前記階調を変化させる請求項１に記載の画像処理方法。
【請求項３】
前記モデルから前記光源と反対側へ離れる一方向に沿ってのみ前記階調を変化させる請求項２に記載の画像処理方法。
【請求項４】
所定の基準点から前記Ｚ軸方向を含む少なくとも二方向に離れるほど前記階調が漸次明るくなるように前記階調を変化させる請求項２に記載の画像処理方法。
【請求項５】
コンピュータにより、影付きモデルの画像を描画するためのプログラムであって、
仮想３次元空間に配置された所定の光源から見たときのモデルの影の画像をビデオメモリのオフスクリーン領域に描画して当該モデルの影テクスチャを生成する工程と、
前記ビデオメモリのオンスクリーン領域に、前記モデルと位置的に関連付けて前記影テクスチャを描画する工程と、を前記コンピュータに実行させ、
前記影テクスチャを生成する工程において、前記オフスクリーン領域における前記影テクスチャのＺ軸方向の奥行き情報が所定の記憶域に画素単位で記憶され、その情報を参照して、所定の階調変化を表現できるように前記影テクスチャの各画素の階調が決定されることにより、前記オンスクリーン領域に描画される前記影テクスチャの画像には、前記所定の階調変化を付加するように構成された画像処理用プログラム。
【請求項６】
前記光源から離れるに従って前記影テクスチャの階調が漸次明るくなるように前記階調を変化させる請求項５に記載の画像処理用プログラム。
【請求項７】
前記モデルから前記光源と反対側へ離れる一方向に沿ってのみ前記階調を変化させるように構成された請求項６に記載の画像処理用プログラム。
【請求項８】
所定の基準点から前記Ｚ軸方向を含む少なくとも二方向に離れるほど前記階調が漸次明るくなるように前記階調を変化させる請求項６に記載の画像処理用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータグラフィックス技術を用いた画像処理方法及びプログラムに関する。
【０００２】
【従来の技術】
コンピュータグラフィックスにおいてモデルに影を付ける方法として、従来より円形等の単純な形状でかつ単一階調のテクスチャをモデルの近傍に描画することが行われていた。しかし、そのような単純な影では画像の質感を著しく損ねることがある。
【０００３】
そこで、近年では影付き画像のリアリティを高めるため、影が生じるモデルをビデオメモリのオフスクリーン領域に描画して影テクスチャを生成し、その影テクスチャをビデオメモリのオンスクリーン領域にモデルと位置的に関連付けて描画することにより、モデルの形状を反映したリアルな影を描画することが行われるようになっている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の方法では影を単一階調で描いているため、影が生じている画像のリアリティが損なわれるおそれがあった。すなわち、現実の世界では、単一の光源からの光によって階調が一定の影が生成されることは希であり、各種の散乱光や光の拡散により同一物体の影の様子が様々に変化する。
【０００５】
そこで、本発明は影が生じている画像のリアリティを向上させることが可能な画像処理方法及びその方法を実現するためのプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
以下、本発明について説明する。なお、本発明の理解を容易にするために添付図面の参照符号を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。
【０００７】
本発明の画像処理方法は、仮想３次元空間（１）に配置された所定の光源（３）から見たときのモデル（２）の影の画像をビデオメモリ（１５）のオフスクリーン領域（１５ｂ）に描画して当該モデルの影テクスチャ（４）を生成する工程と、前記ビデオメモリのオンスクリーン領域（１５ａ）に、前記モデルと位置的に関連付けて前記影テクスチャを描画する工程とを含み、前記オンスクリーン領域に描画される前記影テクスチャの画像には所定の階調変化を付加する画像処理方法であって、前記影テクスチャを生成する工程において、前記オフスクリーン領域における前記影テクスチャのＺ軸方向の奥行き情報を一時記憶域に画素単位で記憶し、その情報を参照して、前記所定の階調変化を表現できるように前記影テクスチャの各画素の階調を決定することにより、上述した課題を解決する。
【０００８】
本発明の画像処理方法によれば、オンスクリーン領域に描画される影テクスチャに階調変化が付加される。従って。影テクスチャを単一階調で表現する場合と比較して影テクスチャの現実感を高め、それにより画像のリアリティを向上させることができる。また、オフスクリーン領域への描画を利用した影テクスチャの生成時に、階調を変化させるためのデータが併せて作成される。従って、オンスクリーン領域に影テクスチャを描画する際に、階調変化を与えるための特別の処理を必要とせず、通常のテクスチャマッピングに使用される各種のテクスチャと同様に影テクスチャを扱うことができる。これによりオンスクリーン領域に対する描画処理の効率が損なわれるおそれがない。
【０００９】
また、本発明の画像処理用プログラムは、コンピュータ（１０）により、影付きモデルの画像を描画するための画像処理用プログラムであって、仮想３次元空間（１）に配置された所定の光源（３）から見たときのモデル（２）の影の画像をビデオメモリ（１５）のオフスクリーン領域に描画して当該モデルの影テクスチャ（４）を生成する工程と、前記ビデオメモリのオンスクリーン領域（１５ａ）に、前記モデルと位置的に関連付けて前記影テクスチャを描画する工程とを前記コンピュータに実行させ、前記影テクスチャを生成する工程において、前記オフスクリーン領域における前記影テクスチャのＺ軸方向の奥行き情報が所定の記憶域に画素単位で記憶され、その情報を参照して、所定の階調変化を表現できるように前記影テクスチャの各画素の階調が決定されることにより、前記オンスクリーン領域に描画される前記影テクスチャの画像には、前記所定の階調変化を付加するように構成されることにより、上述した課題を解決する。
【００１０】
この画像処理用プログラムをコンピュータにより実行すれば、コンピュータを本発明の画像処理方法を実現する画像処理装置として機能させることができる。
【００１１】
さらに、本発明は、仮想３次元空間（１）に配置された所定の光源（３）から見たときのモデル（２）の影の画像をビデオメモリ（１５）のオフスクリーン領域（１５ｂ）に描画して当該モデルの影テクスチャ（４）を生成する装置（１０）と、前記ビデオメモリのオンスクリーン領域（１５ａ）に、前記モデルと位置的に関連付けて前記影テクスチャを描画する装置（１０）とを含み、前記影テクスチャを生成する装置は、更に、前記オフスクリーン領域における前記影テクスチャのＺ軸方向の奥行き情報を所定の記憶域に画素単位で記憶し、その情報を参照して、所定の階調変化を表現できるように前記影テクスチャの各画素の階調を決定することにより、前記オンスクリーン領域に描画される前記影テクスチャの画像には、前記所定の階調変化が付加されている画像処理装置として具現化されてもよい。
【００１４】
本発明において、影テクスチャにおける階調変化は様々な条件に従って設定してよい。例えば光源から離れるに従って影テクスチャの階調が漸次明るくなるように階調を変化させてもよい。この場合には、光源から遠ざかるほどに光が拡散して影とその周辺のコントラストが低下し、それにより影が相対的に薄く見える様子をよく再現することができる。
【００１５】
本発明においては、前記モデルから前記光源と反対側へ離れる一方向に沿ってのみ前記階調を変化させてもよい。この場合には、影テクスチャの階調変化が一方向においてのみ変化するので、階調を変化させるために必要な演算処理量が削減される。
【００１６】
また、本発明では、所定の基準点（ＲＰ）から前記Ｚ軸方向を含む少なくとも二方向に離れるほど前記階調が漸次明るくなるように前記階調を変化させてもよい。この場合には、点光源のように比較的狭い範囲から拡散する光によって形成される影をリアルに表現できる。例えば、基準点を点光源と対応付け、その点光源からの光の拡散に応じて影が薄くなる様子を表現することもできる。
【００１７】
さらに、本発明によれば、前記影テクスチャの外周が中心部よりも明るくなるように前記階調を変化させてもよい。この場合には、モデルの周囲からの環境光の影響により、モデルの外周部で影が薄くなる様子を再現することができる。
【００１８】
なお、本発明のプログラムは記憶媒体に記録された状態で利用者に提供されてもよいし、有線又は無線のネットワークを通じて利用者に配布されてもよい。本発明において、モデルと影テクスチャとは所定の位置的関連性をもってオンスクリーン領域に描画される。例えばモデルが仮想３次元空間の面に接しているときはその接地位置から影テクスチャが光源と反対側に延びるように描画される。モデルが宙に浮いている場合でも光源から地表面等にモデルを投影したときの位置に従って影テクスチャを配置すればよい。
【００１９】
【発明の実施の形態】
図１は本発明の一実施形態に係る画像処理装置のブロック図である。画像処理装置１０は、記憶媒体（例えばＤＶＤ−ＲＯＭ）２５に記録された画像処理用プログラムに従って所定の画像描画処理を実行するコンピュータとして構成されている。画像処理装置１０は、マイクロプロセッサを主体として構成されたＣＰＵ１１と、そのＣＰＵ１１に対する主記憶装置としてのＲＯＭ１２及びＲＡＭ１３と、ＣＰＵ１１からの指示に基づいて画像処理及び音声処理に適した処理を行う画像描画装置１４及びサウンド処理装置１６と、記憶媒体としてのＤＶＤ−ＲＯＭ２５からプログラムやデータを読み取るためのＤＶＤ−ＲＯＭ読取装置１８とを有している。ＲＯＭ１２には、画像処理装置１０の全体の動作制御に必要なプログラムとしてのオペレーティングシステムが書き込まれる。ＲＡＭ１３には記憶媒体としてのＤＶＤ−ＲＯＭ２５から読み取ったプログラムやデータが必要に応じて書き込まれる。
【００２０】
ＣＰＵ１１の内部には、いわゆる３次元コンピュータグラフィックスにおけるポリゴン座標変換やベクトル演算等のジオメトリ処理を行うための画像処理用演算部１１ａが設けられる。この画像処理用演算部１１ａは例えばマイクロプロセッサと特定のソフトウエアとの組み合わせによって構成される。
【００２１】
一方、画像描画装置１４はＣＰＵ１１からポリゴンデータ等を受け取ってビデオメモリ１５に描画するいわゆるレンダリング処理を実行するとともに、そのビデオメモリ１５にレンダリングされた画像データに基づいて一フレームを構成するビデオ再生信号を生成し、そのビデオ再生信号を所定のタイミングでモニタ１９に出力する。
【００２２】
ビデオメモリ１５にはオンスクリーン領域１５ａとオフスクリーン領域１５ｂとが確保される。オンスクリーン領域１５ａは、モニタ１９に表示させるべき一フレームの画像が描画される、いわゆるフレームバッファとして機能する領域である。一方、オフスクリーン領域１５ｂはビデオメモリ１５内におけるオンスクリーン領域１５ａを除いた部分である。オフスクリーン領域１５ｂは、モデルの奥行き情報を画素単位で記憶するいわゆるＺバッフとして使用されたり、ポリゴンにマッピングされるテクスチャを記憶する領域として使用される。本実施形態では、特に影テクスチャ４（図３参照）を描画して記憶するための領域がオフスクリーン領域１５ｂに確保される。ビデオメモリ１５をこのようにオンスクリーン領域１５ａとオフスクリーン領域１５ｂとに分けて管理することは、例えば家庭用のビデオゲーム機やパーソナルコンピュータのように比較的安価な個人用途のコンピュータの分野においても広く実施されており、ここではそのための説明を省略する。
【００２３】
なお、図１において、ビデオメモリ１５は画像描画装置１４に対応して描画専用のメモリとして設けられているが、メインメモリとしてのＲＡＭ１３上にビデオメモリが確保されてもよい。また、ＣＰＵ１１及び画像描画装置１４によってそれぞれどのような処理を負担するかはハードウエアの構成に依存して相違するものであり、本発明は上記の構成に限定されるものではない。
【００２４】
サウンド処理装置１６は、ＤＶＤ−ＲＯＭ２５から読み出された音声、楽音等のデータや音源データ等を再生してスピーカ２０から出力させる。読取装置１８は、ＣＰＵ１１からの指示に従ってＤＶＤ−ＲＯＭ２５上に記録されたプログラムやデータを読み取り、その読み取った内容に対応した信号を出力する。
【００２５】
さらに、ＣＰＵ１１にはバス２４を介して入力装置２２及び外部記憶装置２３がそれぞれ接続される。外部記憶装置２３は例えば不揮発性の半導体メモリ、ハードディスク、光磁気ディスク等の書換えが可能な記憶装置である。このような構成はあくまで一例であり、本発明の画像処理方法が適用されるコンピュータの構成は適宜変更されてよい。なお、ＣＰＵ１１に対する各装置の接続態様は図１に限定されない。
【００２６】
記憶媒体としてのＤＶＤ−ＲＯＭ２５に記録された画像処理用プログラムには、本発明に従ってモデルに影を付けるための影描画モジュールが含まれている。また、ＤＶＤ−ＲＯＭ２５には、画像処理用プログラムに従って各種の画像を描画するために必要な画像描画用データが記録される。そのデータには、上述したオンスクリーン領域１５ａに３次元のモデルを描画するために使用されるモデルデータが含まれている。モデルデータはモデル毎、あるいはモデルをさらに分割したモデルのパーツ毎に設けられている。各モデル又はそのパーツのデータは、モデルを構成する複数のポリゴンの頂点座標等の情報を含んでいる。
【００２７】
図２は、画像処理装置１０が影描画モジュールに従って実行する影付け処理の手順を示すフローチャートである。以下においては、図３に示すように仮想３次元空間１の設置面１ａに置かれたモデル２と、そのモデル２に対応付けて床面１ａに形成される影テクスチャ４とを所定の視点５を基準としてその視点５に対応付けられた仮想スクリーン６に投影する場合を例に挙げて図２の処理を説明する。なお、図３においてモデル２は円錐体状に単純化されているが、本発明がこのような単純なモデルに限定されないことは勿論である。また、図２の処理は、画像処理装置１０のＣＰＵ１１が自ら実行し、又はＣＰＵ１１の要求に従って画像描画装置１４が実行するものであるが、以下では画像処理装置１０が実行するものとして説明する。設置面１ａは例えば地表面、床面、水面として仮想３次元空間１内に定義されるが、その他の面でもよい。設置面１ａは水平面として仮定しているが、本発明は設置面１ａが水平面以外の場合でも適用できる。
【００２８】
モデル２に影テクスチャ４を付けるように指定された場合、画像処理装置１０は、図１の影付きモデル描画モジュールに従って図２の処理を開始する。なお、影付けの指定は入力装置２２を介してユーザが行ってもよいし、画像の変化に応じて画像処理装置１０が自動的に影の要否を判断してもよい。
【００２９】
図２の処理が開始されると、まず画像処理装置１０は、仮想３次元空間１に設定された視点５を光源３に一致させ（ステップＳ１）、その光源３から見た影テクスチャ４の形状をビデオメモリ１５のオフスクリーン領域１５ｂに描画（レンダリング）する（ステップＳ２）。つまり、光源３を基準としてモデル２を設置面１ａに投影し、その投影された形状をオフスクリーン領域１５ｂに影テクスチャ４の形状として描画する。このとき、光源３と仮想スクリーン７との対応関係は本来の視点５と仮想スクリーン６との対応関係に等しい。
【００３０】
次に、レンダリングした影テクスチャに階調を設定して影テクスチャ４を完成する（ステップＳ３）。このとき、光源３からの距離が増加するほど漸次明るくなるように影テクスチャ４の階調を変化させる。図３の例では設置面１ａが水平であるため、仮想スクリーン７内の上側ほど明るくなるように影テクスチャ４の階調を変化させればよい。但し、光源３から影テクスチャ４の各点までの距離を検出し、その検出結果に応じて各点の階調を決定してもよい。例えば、光源３を視点として影テクスチャ４をオフスクリーン領域１５ｂにレンダリングする際に、その影テクスチャ４のＺ軸方向の奥行き情報をいわゆるＺバッファに画素単位で記憶し、そのＺバッファの値を参照して影テクスチャ４上の各画素の階調を決定してもよい。
【００３１】
以上の処理により、図４（ａ）に示すようにオフスクリーン領域１５ｂに影テクスチャ４がレンダリングされる。このようにして描画された影テクスチャ４のデータはオンスクリーン領域１５ａへの描画時までオフスクリーン領域１５ｂに確保された所定のデータ用バッファ領域に保存される（ステップＳ４）。なお、影テクスチャ４のデータは、光源３を視点としたときの視点座標系（そのＺ軸方向が撮影方向と一致する３軸直交座標系）における、影テクスチャ４の設置面１ａに対する投影位置の座標データ、例えば点Ａについての視点座標系における座標（Ｘａ、Ｙａ、Ｚａ）のデータを含んでいる。
【００３２】
影テクスチャの生成が終わると、画像処理装置１０は、光源３と一致させていた視点を図３に示す本来の視点５に戻す（ステップＳ５）。例えば画像処理装置１０がゲーム機の場合、本来の視点５は、モデル２を観察する位置として入力装置２２に対するユーザの操作を参照してフレーム毎に決定される。
【００３３】
視点５の変更後は、光源３を基準とした視点座標系に従って記述されている影テクスチャ４の各点の座標値を、本来の視点５を基準とした視点座標系の座標へと変換する（ステップＳ６）。その後、変換後の座標に基づいて、影テクスチャ４を仮想スクリーン６に投影した画像をオンスクリーン領域１５ａに描画する（ステップＳ７）。
【００３４】
以上の処理により、影テクスチャ４が視点５からみた画像としてオンスクリーン領域１５ａに描画され、その描画完了を以て図２の処理が終了する。その後に、視点５を基準としてモデル２を仮想スクリーン６に投影した画像をオンスクリーン領域１５ａに描画することにより、図４（ｂ）に示すようにモデル２に影テクスチャ４を付加した画像が形成される。オンスクリーン領域１５ａに対するモデル２の描画は影テクスチャ４と所定の位置関係を保つように行われる。例えば図３の例では、モデル２と設置面１ａとの接触部分において影テクスチャ４がモデル２に隠されるように影テクスチャ４に重ねてモデル２が描画される。
【００３５】
図５（ａ）〜（ｃ）は、光源３からみた影テクスチャ４の階調変化の例を示している。なお、これらの図では同一階調部分を結んで形成される輪郭線を一定階調毎に描くことにより階調の変化を示している。
【００３６】
図５（ａ）はモデル２からみて光源３と反対側へ離れる一方向（影が延びる方向）にのみ階調を暗から明へと変化させる例である。この場合には、影テクスチャ４上の階調が変化する方向と直交する方向に関しては階調が互いに等しく保たれる。このように階調を一方向のみ変化させた場合には、階調を設定するための演算処理が簡素化される。
【００３７】
図５（ｂ）は所定の基準点ＲＰから全方向に離れるほど階調が漸次明るくなるように階調を変化させた例である。この場合、同一階調部分を結んで形成される輪郭線は基準点ＲＰを中心とした同心円を描くようになる。基準点ＲＰは必ずしも影テクスチャ４上に設ける必要はなく、例えば光源３の設置面１ａに対する投影点を基準点ＲＰとしてもよい。また、同心円状の輪郭線に限定されず、楕円形状、矩形状等、様々な形状の輪郭線が描かれるように階調を変化させてもよい。
【００３８】
図５（ｃ）は、影テクスチャ４の外周が中心部よりも明るくなるように階調を変化させた例である。この場合には、光源３からみてモデル２の背後に環境光が回り込んで影が外周部で薄くなる様子を表現することができる。
【００３９】
以上に示した影テクスチャ４の階調変化は互いに矛盾が生じない範囲で組み合わせてもよい。例えば、図５（ａ）又は（ｂ）の例において、外周部の階調を中心部よりも明るく設定することができる。
【００４０】
以上の実施形態では、図２のステップＳ１〜ステップＳ３までが影テクスチャを生成する工程に相当し、図２のステップＳ５〜ステップＳ７までが影テクスチャをオンスクリーン領域に描画する工程に相当する。但し、本発明は上記実施形態に限定されず、種々の形態にて実施してよい。
【００４１】
例えば、影テクスチャを生成する工程では影テクスチャの形状のみを決定し、影テクスチャをオンスクリーン領域に描画する工程において階調を設定してもよい。光源は点光源に限らず、各種の光源を対象に影テクスチャを生成してよい。複数の光源からの影テクスチャを生成し、各影テクスチャに階調変化を与えつつそれらを合成してオンスクリーン領域に描画してもよい。
【００４２】
【発明の効果】
以上に説明したように、本発明によれば、ビデオメモリのオンスクリーン領域に描画される影テクスチャに階調変化が付加されるので、影テクスチャを単一階調で表現する場合と比較して影テクスチャの現実感を高め、それにより影が生じている画像のリアリティを向上させることができる。
【図面の簡単な説明】
【図１】本発明の画像処理方法を実行するための画像処理装置のブロック図。
【図２】図１の画像処理装置にて実行される影付け処理の手順を示すフローチャート。
【図３】仮想３次元空間に配置されたモデルと、そのモデルに対応付けて描画される影テクスチャとの関係を示す図。
【図４】図３の光源から影テクスチャを見たときに仮想スクリーンに投影される画像（ａ）と、図３の視点からモデル及び影テクスチャを見たときに仮想スクリーンに投影される画像（ｂ）とをそれぞれ示す図。
【図５】影テクスチャに設けられる階調の変化の例を示す図。
【符号の説明】
１  仮想３次元空間
２  モデル
３  光源
４  影テクスチャ
５  視点
６，７  仮想スクリーン
１０  画像処理装置
１１  ＣＰＵ
１１ａ  画像処理用演算部
１４  画像描画装置
１５  ビデオメモリ
１５ａ  オンスクリーン領域
１５ｂ  オフスクリーン領域
２５  ＤＶＤ−ＲＯＭ（記憶媒体）
【図１】
0003574628.tif 000002
【図２】
0003574628.tif 000003
【図３】
0003574628.tif 000004
【図４】
0003574628.tif 000005
【図５】
0003574628.tif 000006