(57)【特許請求の範囲】
【請求項１】
空間中に曲面形状を生成することに代えて、テクスチャマッピング処理時にレンダリングされる画像中での想定する曲面形状を逆算して、歪めたテクスチャ画像を動的に生成して貼り付けるテクスチャ内シフト手法によるテクスチャマッピング方法を実行するレンダリング装置であって、
三次元座標においてひとつ又は複数のポリゴンにより構成される対象を用意するステップと、
前記ポリゴンの複数の頂点に対応づけられたテクスチャを用意するステップと、
前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行うステップと、
前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画するステップと、
前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を、前記複数の頂点の間で線形補間することにより求めるステップと、
三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θを求めるステップと、
三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを求めるステップと、
前記角度θおよび前記平面上の各点における浮き上がり量ｄに基づき、前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるステップと、
前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するステップと、
補正されたテクスチャ座標および前記テクスチャに基づきテクスチャマッピングを行うステップとを備え、
前記テクスチャ座標シフト量を用いることにより、テクスチャ画像生成処理を、実際にテクスチャ画像を歪めることに代えて、テクスチャマッピング処理時に各描画ピクセルのテクスチャ画像参照位置をずらしてやることで実現したことを特徴とするテクスチャマッピング方法を実行するレンダリング装置。
【請求項２】
前記テクスチャマッピング方法において、前記テクスチャ座標シフト量は、式：ｄ・tanθにより与えられることを特徴とする請求項１記載のレンダリング装置。
【請求項３】
前記テクスチャマッピング方法において、前記テクスチャ座標シフト量は、浮き上がり量の倍率をｋとしたとき、式：ｋ・ｄ・tanθにより与えられることを特徴とする請求項１記載のレンダリング装置。
【請求項４】
前記テクスチャマッピング方法において、三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの浮き上がり量を前記ポリゴンそれぞれについて予め記憶する浮き上がり量テーブルを用意するステップを備えることを特徴とする請求項１記載のレンダリング装置。
【請求項５】
前記テクスチャマッピング方法において、三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの浮き上がり量を前記ポリゴンそれぞれについて予め記憶する浮き上がり量テーブルを用意するステップを備え、
前記浮き上がり量テーブルは、浮き上がり量を濃淡とするテクスチャ画像であり、前記テクスチャ画像は、色情報とともにパラメータ値αを含み、前記パラメータ値αは前記テクスチャ画像ごとに異なる値に設定されることを特徴とする請求項１記載のレンダリング装置。
【請求項６】
前記テクスチャマッピング方法において、三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの浮き上がり量を前記ポリゴンそれぞれについて予め記憶する浮き上がり量テーブルを用意するステップを備え、
前記浮き上がり量テーブルは、浮き上がり量を濃淡とするテクスチャ画像であり、
前記テクスチャおよび前記浮き上がり量テーブルに基づきテクスチャマッピングを行うことを特徴とする請求項１記載のレンダリング装置。
【請求項７】
前記テクスチャマッピング方法において、面ごとに前記浮き上がり量をスケーリングするパラメータを用意することにより任意の曲率を表現することを特徴とする請求項５記載のレンダリング装置。
【請求項８】
空間中に曲面形状を生成することに代えて、テクスチャマッピング処理時にレンダリングされる画像中での想定する曲面形状を逆算して、歪めたテクスチャ画像を動的に生成して貼り付けるテクスチャ内シフト手法によるレンダリング装置であって、
三次元座標においてひとつ又は複数のポリゴンにより構成される対象を記憶する三次元モデル記憶部と、前記ポリゴンの複数の頂点に対応づけられたテクスチャを記憶するテクスチャ記憶部と、前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行う透視変換部と、前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画する描画部と、前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を前記複数の頂点の間で線形補間することにより求める線形補間部と、三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θ及び三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを受け、これらに基づき前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるテクスチャ座標シフト量計算部と、前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するテクスチャ座標補正部とを備え、
前記テクスチャ座標シフト量を用いることにより、テクスチャ画像生成処理を、実際にテクスチャ画像を歪めることに代えて、テクスチャマッピング処理時に各描画ピクセルのテクスチャ画像参照位置をずらしてやることで実現したことを特徴とするレンダリング装置。
【請求項９】
コンピュータに、
空間中に曲面形状を生成することに代えて、テクスチャマッピング処理時にレンダリングされる画像中での想定する曲面形状を逆算して、歪めたテクスチャ画像を動的に生成して貼り付けるテクスチャ内シフト手法によるテクスチャマッピング方法であって、
三次元座標においてひとつ又は複数のポリゴンにより構成される対象を用意するステップと、
前記ポリゴンの複数の頂点に対応づけられたテクスチャを用意するステップと、
前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行うステップと、
前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画するステップと、
前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を、前記複数の頂点の間で線形補間することにより求めるステップと、
三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θを求めるステップと、
三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを求めるステップと、
前記角度θおよび前記平面上の各点における浮き上がり量ｄに基づき、前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるステップと、
前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するステップと、
補正されたテクスチャ座標および前記テクスチャに基づきテクスチャマッピングを行うステップとを備え、
前記テクスチャ座標シフト量を用いることにより、テクスチャ画像生成処理を、実際にテクスチャ画像を歪めることに代えて、テクスチャマッピング処理時に各描画ピクセルのテクスチャ画像参照位置をずらしてやることで実現したことを特徴とするテクスチャマッピング方法を実行させるためのプログラムを記憶した記録媒体。
【請求項１０】
コンピュータに、
空間中に曲面形状を生成することに代えて、テクスチャマッピング処理時にレンダリングされる画像中での想定する曲面形状を逆算して、歪めたテクスチャ画像を動的に生成して貼り付けるテクスチャ内シフト手法によるテクスチャマッピング方法であって、
三次元座標においてひとつ又は複数のポリゴンにより構成される対象を用意するステップと、
前記ポリゴンの複数の頂点に対応づけられたテクスチャを用意するステップと、
前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行うステップと、
前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画するステップと、
前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を、前記複数の頂点の間で線形補間することにより求めるステップと、
三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θを求めるステップと、
三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを求めるステップと、
前記角度θおよび前記平面上の各点における浮き上がり量ｄに基づき、前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるステップと、
前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するステップと、
補正されたテクスチャ座標および前記テクスチャに基づきテクスチャマッピングを行うステップとを備え、
前記テクスチャ座標シフト量を用いることにより、テクスチャ画像生成処理を、実際にテクスチャ画像を歪めることに代えて、テクスチャマッピング処理時に各描画ピクセルのテクスチャ画像参照位置をずらしてやることで実現したことを特徴とするテクスチャマッピング方法を実行させるためのプログラム。
【発明の詳細な説明】
技術分野
この発明はテクスチャマッピング方法及びレンダリング装置に関し、特に、シェーディングとテクスチャマッピングの表示結果を一致させることができるテクスチャマッピング方法及びレンダリング装置に関する。
背景技術
近年のコンピュータ演算能力の急速な発展にともない、人間の操作に応答できるだけの十分な描画速度が必要とされる実時間ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）の分野においても非常に高度な表現が可能になってきた。実時間ＣＧでは、リアリティのある高度な表現と、それを算出するための計算量のトレードオフが常に問題となる。特にバーチャルリアリティなどの応用技術分野ではこの両方に対する要求が厳しく、解決されるべきいくつかの問題点が残っている。
はじめに、現在広く普及している実時間３ＤＣＧの画像生成（レンダリング）工程について概要をまとめる。
・３次元空間情報にもとづく計算処理（Ｔｒａｎｓｆｏｒｍ＆Ｌｉｇｈｔｉｎｇ）
３ＤＣＧにおけるオブジェクトは、多数の頂点によって貼られる多角形平面（Ｐｏｌｙｇｏｎ）の集合によって表されるのが一般的である。レンダリングは、立体モデルの各頂点の位置・結線情報、材質に関するデータなどをもとにして行う。
このデータに対して、視界範囲内の要素のみを抽出し（カリング）、各頂点が２次元画像上のどの位置に描画されるかを計算する（座標変換）。ここで立体モデルとそれを照らす光源との位置関係から、各頂点ごとの明るさを計算する（照光処理）。ここまでが３次元空間情報にもとづく計算処理（Ｔｒａｎｓｆｏｒｍ＆Ｌｉｇｈｔｉｎｇ）である。
・２次元画像上の各画素（ピクセル）ごとの計算処理（ラスタライズ）
続いて、２次元画像上の各画素（ピクセル）ごとの計算処理（ラスタライズ）を行う。各描画ピクセルの視点位置からの距離に応じて前後関係を判定し（陰面処理）、各頂点ごとの色や明るさを補間してその頂点で貼られるＰｏｌｙｇｏｎの色を滑らかに陰影付けする（シェーディング）。こうして得られた３次元オブジェクトの表面に２次元画像などを貼り付けることで擬似的に細部を表現する方法をテクスチャマッピングという。
現在広く普及している実時間３Ｄ−ＣＧの代表的な計算・表現技術について簡単に説明する。
（１）シェーディング
多角形（Ｐｏｌｙｇｏｎ）で構成された３次元オブジェクトの表面を、光源とオブジェクトの形状に基づいて陰影付けする方法をシェーディングという。物理的に正確なシェーディング計算を行うのは非常に困難であり計算畳も膨大なものになるため、これを軽減すべく様々な計算方法が考案されてきた。一般的に高品質な画質の得られるシェーディングほど計算量が多くなる。
シェーディングの種類として、Ｆｌａｔシェーディング、Ｇｏｕｒａｕｄシェーディング、Ｐｈｏｎｇシェーディングがある。
Ｆｌａｔシェーディングは、表面を構成する多角形の各面ごとに法線をたて、これと光源ベクトルの内積から面の色を決定する手法である。シェーディングの単位が面ごとであるため滑らかな曲面は表現できないが、計算量は少なく高速に表示できる。
Ｇｏｕｒａｕｄシェーディングは、表面を構成する多角形の各頂点ごとに法線をたて、これと光源ベクトルの内積から各頂点での色を決定する手法である。頂点間はそれぞれの頂点の色を線形補間して色付けする。比較的高速で滑らかな曲面も擬似的に表現できるが、曲率の高い曲面やハイライトの表現が不自然になる。
Ｐｈｏｎｇシェーディングは、表面を構成する多角形の各頂点ごとに法線をたて、次に頂点間の描画される結果画像のビクセルごとに各頂点での法線ベクトルから線形補間した法線をたて、これをもとに光源と法線の内積からピクセルごとに色を決定する手法である。高品質な結果が得られるがピクセルごとの計算量が多いため、現在の実時間３Ｄ−ＣＧで使用されることは稀である。
（２）テクスチャマッピング
テクスチャマッピングとは、３次元オブジェクトの表面に画像を張り付けることで質感を向上させる手法である。貼り付けるテクスチャ画像にｕ，ｖ座標系をとり、このｕ，ｖ座標値を各頂点に割り当てることで張りかた（マッピング方法）を決定する。
現在の実時間３Ｄ−ＣＧでは一般的に、Ｇｏｕｒａｕｄシェーディングとテクスチャマッピングを併用することで画像を生成している。
上記実時間３Ｄ−ＣＧの表現技術を用いることにより、定義されたオブジェクトの頂点位置はすべて正確に３次元空間内で計算され表示される。例えば平面のみで構成されるオブジェクトを正確にモデリングした場合には、任意の視点から見た完全に正しい形状を得ることができる。
これに照光による陰影表現、すなわちシェーディングを適用する。得られる画像品質と演算処理能力とのトレードオフから、Ｇｏｕｒａｕｄシェーディングが現在もっとも広く利用されている。これによって、正確な位置の頂点で張られる平面上に擬似的な陰影をつけることになる。
このようにして得られたオブジェクトにテクスチャマッピングを適用する。テクスチャ座標はオブジェクトの頂点ごとに定義され、その間を線形補間することで引き延ばされて張り付けられる。オブジェクトの平面に適用されたテクスチャは、任意の視点から見て完全に正しく表現されることになる。
平面のみで構成されるオブジェクトであれば、以上の方法でおよそ問題のない結果を得られるが、同様にして曲面を表現しようとした場合にはいくつかの問題が生じる。
曲面は細かい多角形の平面の集合に分割することで擬似的に表現されるが、この際に多くの頂点や平面が必要となり、計算量が著しく増加する。ここでは画像品質と計算量のトレードオフによって曲面の分割数が決定されるが、任意の視点からの画像を得られるという実時間３Ｄ−ＣＧの利点から考えると、細部を表示する場合にどうしても曲面が荒くなってしまうのは問題である。
シェーディングに関しては、Ｇｏｕｒａｕｄシェーディングによっておよそ滑らかな陰影をもつ擬似曲面表現が得られる。しかし頂点位置でのみ色を計算し陰影の変化を線形補間で近似しているため、マッハバンドなどの不自然な陰影が生じてしまう。
テクスチャマッピングを適用した場合、問題はさらに顕著になる。頂点間のテクスチャ座標が線形補間されることにより、テクスチャ画像中の直線部分は、曲面上でも曲がることなく平面的に張り付けられる。これはＧｏｕｒａｕｄシェーディングがグラデーションによって曲面上の陰影を視覚的にごまかしているのに対し、テクスチャ画像中には形状を知覚する手がかりが多く、視覚的にこのようなごまかしができないためである。
これらを原因として、とくに以下のような場合に疑似曲面表現が破綻する。これらはバーチャルリアリティなどの応用的な実装を考える際に深刻な問題になってくる。
（１）動くオブジェクトの表現
動きのあるオブジェクトを表示すると、曲面を擬似的に表現していることに起因する問題点は明確にあらわれる。オブジェクトが回転する際の不自然な外形の変化やテクスチャ画像の平面的な回転は、曲面の擬似的な表現を損なってしまう。
（２）立体視での融像
立体視を行う際、人間は左右の目から得られた画像中から適当な対応点を抽出し、これをもとに自己と対応点の距離を推測している。シェーディングのみによる疑似曲面を提示した場合には、グラデーションの濃淡によって曲面上の対応点はあいまいになるので、あまり違和感は生じない。しかしこれにテクスチャマッピングを適用した場合には、テクスチャ画像中のパターンはすべて明確な対応点となり、結果として曲面として表現したいものが平面的に融像してしまう。これに影響されてシェーディングによる疑似曲面表現も損なわれてしまう。
前述のように、実時間３Ｄ−ＣＧではオブジェクトを２次元画像上に投影し、照光による陰影付け（Ｓｈａｄｉｎｇ）、オブジェクト表面への画像パターンの貼り付け（テクスチャマッピング）などの過程を経て、近似的に結果画像を生成する。
しかし、同様の手法によりオブジェクトの曲面部分を描画しようとする場合に、シェーディングとテクスチャマッピングの近似表示結果が食い違ってくるという問題がある。この問題は従来議論されていなかったものであり、本発明者により初めて見出されたものである。
曲面において従来のテクスチャマッピングがシェーディングによる疑似曲面表現を損なっている、という点以外に、「両眼立体視を行なった場合に従来のシェーディング・テクスチャ処理では曲面表現が明瞭に破綻する。これを現状のハードウェア技術上の処理で効果的に解決できる」という点も同様かそれ以上に重要である。テクスチャがシェーディング表現を損ねる問題はこれまで「やむをえない」として許容もされてきたが、今後当然普及していくであろう両眼立体視環境ではこの問題がはるかに顕著に表れる。そのため、この解決手段を提示することは非常に意義があることである。
発明の開示
本発明は、係る新規な問題、すなわち、疑似曲面へのテクスチャマッピングの際に生じるシェーディングとテクスチャマッピングの表示結果の食い違いという問題を解決するためになされたものであり、両者を一致させることができるテクスチャマッピング方法及びレンダリング装置を提供することを目的とする。
この発明に係るテクスチャマッピング方法は、三次元座標においてひとつ又は複数のポリゴンにより構成される対象を用意するステップと、
前記ポリゴンの複数の頂点に対応づけられたテクスチャを用意するステップと、
前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行うステップと、
前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画するステップと、
前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を、前記複数の頂点の間で線形補間することにより求めるステップと、
三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θを求めるステップと、
三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを求めるステップと、
前記角度θおよび前記平面上の各点における浮き上がり量ｄに基づき、前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるステップと、
前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するステップと、
補正されたテクスチャ座標および前記テクスチャに基づきテクスチャマッピングを行うステップとを備えるものである。
この発明に係るレンダリング装置は、三次元座標においてひとつ又は複数のポリゴンにより構成される対象を記憶する三次元モデル記憶部と、前記ポリゴンの複数の頂点に対応づけられたテクスチャを記憶するテクスチャ記憶部と、前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行う透視変換部と、前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、前記テクスチャに基づき描画する描画部と、前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を前記複数の頂点の間で線形補間することにより求める線形補間部と、三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θ及び三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを受け、これらに基づき前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるテクスチャ座標シフト量計算部と、前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するテクスチャ座標補正部とを備え、補正されたテクスチャ座標に基づき前記テクスチャ記憶部のテクスチャデータが読み出され、このデータに基づき描画されることを特徴とするレンダリング装置。
発明を実施するための最良の形態
前述の問題に対して、この発明の実施の形態において、テクスチャマッピング処理時にこの問題のための補正を行う「テクスチャ内シフト」手法を提案する。すなわち空間中に曲面形状を生成するのではなく、最終的にレンダリングされる画像中での想定する曲面形状を逆算して、歪めたテクスチャ画像を動的に生成して貼り付けることで、同等の効果を得るという手法である。
テクスチャ画像を動的に生成する方法はＩｍａｇｅ−ｂａｓｅｄ  Ｒｅｎｄｅｒｉｎｇの分野で研究されてきている（Ｏｌｉｖｅｉｒａ，Ｍａｎｕｅｌ  Ｍ．Ｒｅｌｉｅｆ  Ｔｅｘｔｕｒｅ  Ｍａｐｐｉｎｇ．Ｐｈ．Ｄ．Ｄｉｓｓｅｒｔａｔｉｏｎ，Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｎｏｒｔｈ  Ｃａｒｏｌｉｎａ，２０００）が、今回のような目的で実時間内の計算量に抑えるにはさらに様々な工夫が必要になってくる。このテクスチャ画像生成処理を、実際にテクスチャ画像を歪めるのではなく、テクスチャマッピング処理時に各描画ピクセルのテクスチャ画像参照位置をずらしてやることで実現する。
これは従来のＰｏｌｙｇｏｎ細分化に対し、前述のテクスチャマッピング処理のうち後半のものの計算量増加だけですむという利点がある。またラスタライズ時の処理であるため、主な計算は最終的に描画されるピクセルのみについて選択的に行われ、視界の外や他のオブジェクトに隠された部分については計算が省かれる。さらに、この処理は常に描画ピクセル単位で行われるため、Ｐｏｌｙｇｏｎ細分化では粗さが見える程度まで拡大された場合にも有効である。
この発明の実施の形態に係る装置／方法について図を用いて具体的に説明する。
この装置／方法は、コンピュータにより実現される。周知のように、コンピュータは、中央処理装置（ＣＰＵ、メモリを含む）、外部記憶装置（ハードディスク、ＣＤ−ＲＯＭドライブ、フロッピーディスクドライブを含む）、入力装置（キーボード、ポインティングデバイスを含む）、出力装置（ＣＲＴディスプレイ、液晶ディスプレイを含む）、通信装置（モデム、ターミナルアダプタを含む）を備える。
図１は、この発明の実施の形態に係る装置の要部を示すブロック図である。この図は、例えば、この装置／方法に係るプログラムがインストールされたコンピュータにおける主要部を示す機能ブロック図である。説明の便宜上、必要な部分のみを示しており、この装置／方法は、必要に応じて図示されない他の部分を含んでもよい。
図１において、符号１は三次元座標においてひとつ又は複数のポリゴンにより構成される対象を記憶する三次元モデル記憶部、符号２は前記ポリゴンの複数の頂点をそれぞれスクリーン座標上に投影することにより前記対象の透視変換を行う透視変換部、符号３は前記ポリゴンの複数の頂点に対応する前記スクリーン座標上の画素を、テクスチャに基づき描画する描画部、符号４は前記ポリゴンの複数の頂点に対応づけられたテクスチャを記憶するテクスチャ記憶部、符号５は前記スクリーン座標上における前記ポリゴンの複数の頂点の間の画素に対応するテクスチャ座標を、前記複数の頂点の間で線形補間することにより求める線形補間部、符号６は三次元空間における視線方向と前記ポリゴンの面法線とのなす角度θ及び三次元空間における前記ポリゴンを構成する面から予め定められた曲面までの平面上の各点における浮き上がり量ｄを受け、これらに基づき前記視線方向から見たときの前記ポリゴンの面と前記曲面の間に生じる誤差量であるテクスチャ座標シフト量を求めるテクスチャ座標シフト量計算部、符号７は前記テクスチャ座標を前記テクスチャ座標シフト量に基づき補正するテクスチャ座標補正部である。
図２はこの発明の実施の形態にかかる処理のフローチャートである。
次に動作について説明する。
実時間３Ｄ−ＣＧ技術において、頂点単位での座標変換計算を終えた後、結果画像として各ピクセルを描画する過程をラスタライズと呼ぶ。Ｇｏｕｒａｕｄシェーディングでは、この段階で頂点を結果画像上に投影した位置や色、テクスチャ座標を元に、その間を線形補間して描画する。この際、補間計算されたテクスチャ座標をもとにテクスチャ画像中から対応する色を取得し、描画する各ピクセルの色を決定するのである。疑似曲面へのテクスチャの適用が問題となるのは、テクスチャ座標が頂点単位で定義されており、頂点間すなわち面上の点はすべて線形補間により計算されているためである。そこで、この発明の実施の形態の装置は、テクスチャ座標シフト量計算部６及びテクスチャ座標補正部７を備え、擬似曲面に合わせてテクスチャ座標をシフトする。これによりスムーズで自然なテクスチャ表現が可能になる。
テクスチャ座標シフト量計算部６及びテクスチャ座標補正部７は、ラスタライズ時にテクスチャ座標の参照位置を計算する。ラスタライズではピクセルごとの描画計算が行われるため、ピクセル単位での曲面計算が行えれば、常に非常に詳細な曲面表示が行える。これはシェーディングにおけるＧｏｕｒａｕｄシェーディングとＰｈｏｎｇシェーディングの違いに相当する。当然この分の計算量が増加するが、同一平面上のテクスチャ参照座標を求める計算は比較的簡単である。以下、この方法をテクスチャ座標シフトによる疑似曲面表現と呼ぶ。この処理を行う際に留意すべき点は
・実時間で実行可能な計算量に抑える
・可能な限りデータ量を増やさない
・可能な限り既存の技術上で実装する
ことである。
まず、動作原理について説明する。単位ベクトルｕ，ｖで張られるｕｖ座標系で、図３のようなテクスチャ座標を頂点に持つ長方形の面を考える。この面の法線ベクトルをｎ、面を見る視線方向ベクトルをｅとする。この平面は疑似曲面の一部をなし、平面上の各点で法線方向にｄ（ｕ，ｖ）だけ平面から浮き上がっているとする。これをｕ，ｎ平面に投影したものが図４である。
ｅｕはこの平面上に視線方向ベクトルｅを射影したものである。ここで、この平面が曲面であればＡに存在するべき点が平面上の点Ｂになってしまうため、ｅ方向から見た場合に平面と曲面の違いが生じる。これを補正するには、平面内のピクセルごとのテクスチャ座標をシフトし、Ｃの位置にＢのテクスチャ座標を割り当てる。すなわちＣを描画するためにテクスチャ座標値ｕを計算する際、線形補間により求められたｕ値からｎとｅｎのなす角をθとしてｄｔａｎθｕだけずれた値を用いればよい。これをテクスチャ座標値Ｖの計算においても同様に行うことで、ラスタライズで各ピクセルを描画する際に、曲面を想定したテクスチャマッピンク結果を得ることができる。
ここで、ラスタライズでＣを描画する際にＢのテクスチャ座標値が必要であり、そのためにはｄｔａｎθｕ、すなわちＢでの平面上の各点における浮き上がり量ｄが必要である。このｄを求めるにはやはりＢのテクスチャ座標値が必要である。そこで、想定する曲面が十分に滑らかであり、平面の法線と視線ベクトルのなす角βが十分に小さい（ｔａｎθが小さい）ことを仮定し、ｄ（Ｂ）≒ｄ（Ｃ）であると近似する。
ここで必要となるｎとｅのなす角θは、ピクセルごとではなく平面１枚につきひとつ求めてやればよい。また視線方向ベクトルと法線ベクトルとのなす角はシェーディングの際の照光計算でも求める必要があり、この種の計算はグラフィックチップ上で高速に行うことができる。
次に、平面から想定する曲面までの浮き上がり量ｄ（ｕ，ｖ）を求める。これは各頂点の位置や法線ベクトルなどから近似的に求める方法も可能であるが、ラスタライズ時に各ピクセルごとにこの計算を行うと計算量が非常に多くなってしまう。ここではこれを省くための方法を考える。
まず、求めるべき浮き上がり量はテクスチャ画像上の各点において異なるが、描画のたびに変化しない静的な値であることに注目する。これらの値はあらかじめ計算し、各面ごとに保持しておけばよい。ここでは浮き上がり量ｄ（ｕ，ｖ）を濃淡としたテクスチャ画像を用意し、ラスタライズ時にテクスチャ画像の各ピクセルの値を参照するのと同様にこれを参照することにする。
例えば、通常の色情報を含んだ画像の他に、もう一枚濃淡で浮き上がり量を表した画像を用意する。３ＤＣＧの描画時に、１枚のテクスチャだけでなく２枚のテクスチャの色を混合したりしながら張りつける技術は、「マルチテクスチャ技術」として一般的である。たとえば、ＤｉｒｅｃｔＸなどのＡＰＩにいて利用可能な機能になっている。ここでは２枚目の画像テクスチャを浮き上がり量テーブルとして用い、混合の代わりに「テクスチャ座標をシフト」させる処理を行なうことで、「マルチテクスチャ技術」「ＥＭＢＭ技術」などの現状のハードウェア技術上でもリアルタイム処理可能な実装方法を提供できる。
浮き上がり量をテクスチャ画像として用意するには、いくつかの方法が考えられる。
まずひとつは、テクスチャ画像中にＲＧＢ値の色とともにα値（通常透明度を表す）を持たせ、浮き上がり量をα値とする方法である。一般的にテクスチャ画像に色情報ＲＧＢとα値の計４チャンネルを持たせることで、色と透明度を表現する。
この方法ではそれぞれのテクスチャ画像に合った浮き上がり量を設定でき、任意の曲面形状を表現できる。しかし多数の平面にわたって１枚のテクスチャ画像を適用するため、浮き上がり量のｕ，ｖ方向の解像度が荒くなってしまうことが難点である。また、すべてのテクスチャにそれぞれの浮き上がり量データを持たせることは不必要なデータ量の増加につながる。
もう一つの方法は、一般的な浮き上がり量のテクスチャ画像を別に用意し、ラスタライズ時には２枚のテクスチャ画像を元に計算を行う方法（Ｍｕｌｔｉ−ｔｅｘｔｕｒｅ）である。図５に示すように、頂点ごとに適切なテクスチャ座標を設定してやることで、一枚の浮き上がり量テクスチャ画像を様々な曲面に適用できる。この方法では、各面ごとに浮き上がり量をスケーリングするパラメータを用意すると、一枚の浮き上がり量テクスチャ画像で任意の曲率を表現できるようになる。
ここで、透明度が不要な場合にはαチャンネル内に浮き上がり量テーブルを持たせることができ、また透明度が必要な場合には別途浮き上がり量テクスチャ画像を用意すれば良い。また、浮き上がり量テーブルはもっと広義に高さを表す高度テーブルとしても利用できる。これにより多種多様な応用、例えば、滑らかな曲面の表現だけでなく、地形や人の顔など任意の形状をわずかなポリゴンで表現するような場合などにも適用できる。
計算されたテクスチャ座標シフト量をもとに、ラスタライズの段階でテクスチャ画像の参照位置を補正する。
補正されたテクスチャ座標に基づきテクスチャマッピングを行う。実際の処理には公知の手法を用いることができる。たとえば、Ｍｉｃｒｏｓｏｆｔ社によって提唱されたＭｕｌｔｉｍｅｄｉａ  ＡＰＩ、ＤｉｒｅｃｔＸ中の実時間３Ｄ−ＣＧ描画用ＡＰＩであるＤｉｒｅｃｔ３Ｄ（商標）を用いることができる。Ｄｉｒｅｃｔ３Ｄ（商標）の１９９８年のＶｅｒｓｉｏｎ６の仕様において、Ｅｎｖｉｒｏｎｍｅｎｔ−Ｍａｐｐｅｄ  Ｂｕｍｐ−Ｍａｐｐｉｎｇ（ＥＭＢＭ）と呼ばれる機能がサポートされた。これは本来、環境マッピングを併用したバンプブマッピングという特殊効果のために提案された機能であるが、これを利用することで濃淡テクスチャ画像をシフト量としたピクセル単位でのテクスチャ画像設定が可能である。またこの機能は一部のグラフィックカード上でハードウェア的に実装されており、実時間内での処理が可能である。
この発明の実施の形態による装置／方法に係る、テクスチャ座標シフトによる疑似曲面の処理結果の例を図６に示す。図６（ｃ）は処理対象である対象を示す。この対象は上半分が３２角柱、下半分が８角柱である。図６（ｂ）は通常のテクスチャマッピングを適用したもの、図６（ａ）はテクスチャ座標シフトによる疑似曲面処理を行ったものである。図から分かるように、正面に近い部分ではテクスチャの曲率を持った歪みがおよそ正しく表現されている。またこの効果は、立体視においても実現されていることが確認できた。これらの表示はＥＭＢＭ等の機能を持つ既存のグラフィックカード上にて実時間で処理できる。
一方、面の法線と視線方向とのなす角が大きくなる側面付近では、円柱との表示結果に相違が見られる。また、テクスチャ座標シフトによって補正できない形状のシルエットは円柱の場合と異なる。
本発明の実施の形態に係るテクスチャ座標シフトによる疑似曲面表現手法では、１枚の平面内にほぼ任意の凹凸形状を表現できるので、バンプマッピンクと併用することでオブジェクト表面に様々なデイテールを付加することができる。
本発明の実施の形態によれば、実時間３Ｄ−ＣＧにおける疑似曲面表現でシェーディングとテクスチャマッピンクの近似表示が食い違うという問題（発明者が発見した新規な課題）を解決することができる。本発明の実施の形態によれば実時間での処理が十分可能である。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
また、本明細書において、手段とは必ずしも物理的手段を意味するものではなく、各手段の機能が、ソフトウェアによって実現される場合も包含する。さらに、一つの手段の機能が、二つ以上の物理的手段により実現されても、若しくは、二つ以上の手段の機能が、一つの物理的手段により実現されてもよい。
【図面の簡単な説明】
図１は、この発明の実施の形態に係る装置のブロック図である。
図２は、この発明の実施の形態に係る処理のフローチャートである。
図３は、この発明の実施の形態の動作説明図である。
図４は、この発明の実施の形態の動作説明図である。
図５は、この発明の実施の形態の動作説明図である。
図６は、この発明の実施の形態の処理結果の例である。
【図１】
0004714919.tif 000002
【図２】
0004714919.tif 000003
【図３】
0004714919.tif 000004
【図４】
0004714919.tif 000005
【図５】
0004714919.tif 000006
【図６】
0004714919.tif 000007