(57)【特許請求の範囲】
【請求項１】
３Ｄオブジェクトの２Ｄビューを表示するコンピュータグラフィックスシステムであって、
３Ｄオブジェクトを表すポリゴンデータを記憶するバッファメモリと、
パラメトリックテクスチャマップのデータを記憶するメモリと、
前記バッファメモリに記憶された前記ポリゴンデータ、及び前記メモリに記憶されたパラメトリックテクスチャマップのデータに基いて、前記３Ｄオブジェクトの２Ｄビューを生成するグラフィックスプロセッサと、
前記グラフィックスプロセッサにより生成された前記３Ｄオブジェクトの前記２Ｄビューを表示する表示装置と
を含み、前記パラメトリックテクスチャマップのデータは、表面構造の各テクセルについて、ユーザ定義ベクトルに応答して変化するテクセル値を生成する方程式についての一組の係数を含む、コンピュータグラフィックスシステム。
【請求項２】
前記パラメトリックテクスチャマップの前記係数が、異なる照明入射角についての反射率の変化を示し、それによってオフスペキュラ効果およびフレネル効果を近似する、請求項１記載のシステム。
【請求項３】
前記パラメトリックテクスチャマップの前記係数の少なくとも１つが、一次元関数を表すために、定数であるように選択される、請求項１記載のシステム。
【請求項４】
前記パラメトリックテクスチャマップの前記係数のいずれもが、空間的な色の変化を符号化するために選択されない、請求項１記載のシステム。
【請求項５】
特定のサンプリングレートに合うように前記パラメトリックテクスチャマップの前記係数をフィルタリングするために、前記係数はＭＩＰマッピングされる、請求項１記載のシステム。
【請求項６】
前記パラメトリックテクスチャマップの前記係数の効果が、正面対向から背面対向までの移行時に減衰される、請求項１記載のシステム。
【請求項７】
前記方程式が多項式である、請求項１記載のシステム。
【請求項８】
前記方程式が非多項式である、請求項１記載のシステム。
【請求項９】
コンピュータグラフィックスシステムにおいて、パラメトリックテクスチャマップを使用して３Ｄオブジェクトの２Ｄビューを表示する方法であって、
グラフィックスプロセッサによって、バッファメモリに記憶された３Ｄオブジェクトを表すポリゴンデータを読み出すステップと、
前記グラフィックスプロセッサによって、メモリに記憶されたパラメトリックテクスチャマップのデータを読み出すステップと、
前記グラフィックスプロセッサによって、前記ポリゴンデータ、及び前記パラメトリックテクスチャマップのデータに基いて、前記３Ｄオブジェクトの２Ｄビューを生成するステップと、
前記グラフィックスプロセッサによって、前記３Ｄオブジェクトの前記２Ｄビューを表示装置上に表示するステップと
を含み、前記パラメトリックテクスチャマップのデータは、表面構造の各テクセルについて、ユーザ定義ベクトルに応答して変化する前記テクセルの値を生成する方程式についての一組の係数を含む、方法。
【請求項１０】
前記係数は、異なる照明入射角についての増加する反射率の変化を示し、それによってオフスペキュラ効果およびフレネル効果を近似する、請求項９記載の方法。
【請求項１１】
前記係数の少なくとも１つが、一次元関数を表すために、定数であるように選択される、請求項９記載の方法。
【請求項１２】
前記係数のいずれもが、空間的な色の変化を符号化するために選択されない、請求項９記載の方法。
【請求項１３】
特定のサンプリングレートに合うように前記パラメトリックテクスチャマップの前記係数をフィルタリングするために、前記係数はＭＩＰマッピングされる、請求項９記載の方法。
【請求項１４】
前記パラメトリックテクスチャマップの前記係数の効果が、正面対向から背面対向までの移行時に減衰される、請求項９記載の方法。
【発明の詳細な説明】
【０００１】
【発明の背景】
１．発明の分野
本発明は、概して、コンピュータグラフィックスの分野に関し、特に、コンピュータグラフィックスシステムにおいてパラメトリックテクスチャマップを使用して三次元（３Ｄ）オブジェクトをレンダリングするための装置および方法に関する。
【０００２】
２．従来技術の説明
近代のコンピュータシステムは、ますますグラフィックスを多用するようになってきた。このニーズを満たすために、専用の特殊用途メモリおよびハードウェアが開発されてきた。従来のコンピュータグラフィックスシステムは、二次元（２Ｄ）アレイの発光領域を有するディスプレイを含む。発光領域は通常、画素の略語であるピクセルと呼ばれる。このようなグラフィックスシステムは通常、ディスプレイの対応するピクセルから発せられるべき色または濃淡を決定する２Ｄアレイの値を生成するハードウェア、ソフトウェア、またはこれら双方を使用する。
【０００３】
コンピュータグラフィックスシステムは一般に、３Ｄオブジェクトの表示に使用される。通常、かかるシステムは、コンピュータメモリにおいてモデリングされる３Ｄオブジェクトの二次元（２Ｄ）ビューを生成することにより、２Ｄ表示装置上に３Ｄオブジェクトに見えるものを生成する。特定の時間に生成される３Ｄオブジェクトの２Ｄビューは通常、少なくとも、特定の時間における３Ｄオブジェクトと３Ｄオブジェクトのビューアとの間の空間関係に依存する。この空間関係は、視野方向または視点方向と呼ばれる場合がある。たとえば、車は、前後を有する３Ｄオブジェクトである。しかし、テールライトを見ることができるかどうかは、どこから車を見ているかに依存する。視野方向が車の真正面である場合、テールライトは見えないが、視野方向が車の背後である場合にはテールライトが見える。
【０００４】
コンピュータグラフィックスシステムが３Ｄオブジェクトの２Ｄビューに対する値を生成するプロセスは、イメージレンダリングまたは走査変換と一般に呼ばれる。グラフィックスシステムは通常、３Ｄオブジェクトをポリゴンのセットに細分し、各ポリゴンを個々にレンダリングすることにより、３Ｄオブジェクトをレンダリングする。
【０００５】
特定の視野方向に関してレンダリングされるポリゴンの値は通常、ポリゴンの表面特徴およびポリゴンに対する照明の影響に依存する。表面特徴は、表面の色および表面の構造などの詳細を含む。照明の影響は通常、ポリゴンと１つ以上の照明源との間の空間関係に依存する。この空間関係は、光源方向と呼ばれる場合がある。たとえば、光源が１つしかない場合、オブジェクトの光源に最も近い側が照明される一方、オブジェクトの光源から最も離れた側は影になりうる。
【０００６】
通常、特定の視野方向でのポリゴンの個々のピクセルに対する照明の影響の評価には、多数の３Ｄベクトル計算が必要とされる。当業者ならば、標準的なブリン（Blinn）／フォン（Phong）の照明方程式は以下であることを理解するであろう。
【数１】
Ｉ＝ｋａＩａ＋ｋｄＩｄ（Ｎ・Ｌ）＋ｋｓＩｓ（Ｎ・Ｈ）ｎ    （１）
ここで、ｋａ、ｋｄ、およびｋｓは定数である。数１は、特定ピクセルの光強度Ｉが、その場所での周囲の寄与Ｉａ、拡散寄与Ｉｄ、およびスペキュラ（specular）寄与Ｉｓの合計の関数であることを表す。数１に基づく照明計算は、正規化ベクトルと共に使用される場合、浮動小数点、平方根、および除算演算を含む。かかる計算は通常、ハードウェアで実施されるか、またはソフトウェアで実施されるかに関わりなく時間がかかり、かつコストがかかる。
【０００７】
このような計算のオーバヘッドを低減するための１つの従来の方法は、頂点等、ポリゴンの少数の領域のみにおける照明の影響を評価し、次いでその結果をポリゴン全体にわたって補間するというものである。このような方法の例には、一般にフラットシェーディングおよびグローシェーディングと呼ばれる方法が含まれる。このような方法は通常、走査変換中に行われる計算の数を低減し、それによってレンダリング速度を増大させる。不都合なことに、このような方法はまた、通常、個々のポリゴンの領域よりも小さなシェーディング特徴をレンダリングすることができない。ポリゴンが比較的大きい場合、ビューは目に見えてわかるように歪む。
【０００８】
ポリゴンの領域よりも小さな特徴をレンダリングするための１つの従来の方法は、一般にテクスチャマップと呼ばれるものを使用することである。典型的なテクスチャマップは、特定の表面特徴についての色値パターンを含むテーブルである。たとえば、木目調の表面特徴は、その表面と木目模様のカラーパターンを保持するテクスチャマップとを使用してレンダリングされ得る。不都合なことに、テクスチャマッピングは通常、視野方向または光源方向でもって変化しない相対的にフラットな表面特徴をもたらす。一方、実際の３Ｄオブジェクトの視覚的な見た目（appearance）は一般に、視野方向、光源方向、またはこれら双方でもって変化する。これらの方向性変化は一般に、オブジェクト表面上の３Ｄ構造（すなわち、オブジェクトは完全に平坦ではない）に起因する。かかる構造は、局所的なシェーディングまたはオクルージョン、または光源からの鏡面反射の変化をもたらしうる。影響は、所与の光源方向に対して視野方向でもって変化し、また所与の視野方向に対して光源方向でもって変化し得る。レンダリングされた２Ｄビューに、よりリアル感を提供するために、これら方向性変化を考慮するべきである。
【０００９】
ポリゴン表面におけるこのような構造的影響の方向依存性を処理するための１つの従来の方法は、一般にバンプマップと呼ばれるものを使用することである。典型的なバンプマップは、表面の３Ｄ法線ベクトルパターンが抽出される高さフィールドを含む。法線ベクトルは、表面の各ピクセルにおける照明方程式を解くために使用される。不都合なことに、かかる評価には通常、除算および平方根を含む、多数の高価で時間のかかる３Ｄベクトル計算が含まれる。これにより、レンダリング速度が低下する、またはグラフィックスシステムのコストが増大することになる。
【００１０】
グラフィックスを多用するコンピュータシステムの効率要件を満たすような能力を有するシステムが明確に必要とされている。特に、３Ｄオブジェクトの２Ｄビューを巧みにレンダリングすることのできるシステムが必要とされている。理想的には、かかるシステムは、従来のシステムよりも低いコストおよび高い生産性を有する。このタイプのシステムを使用すると、システムパフォーマンスを向上させることができる。本発明の主な目的は、この必要性を解決し、さらに関連する利点を提供することである。
【００１１】
【発明の概要】
パラメトリックテクスチャマップを使用するグラフィックスシステムが開示される。本グラフィックスシステムは、方向に依存するが、時間がかからず、またピクセル単位で照明方程式を解く際に高価な計算を含めることなく、３Ｄオブジェクトの表面特徴をレンダリングする。パラメトリックテクスチャマップは、表面構造の視覚的な見た目が方向ベクトルに応答して変化するように、表面構造を定義するパラメータのセットを保持する。方向ベクトルは、光源ベクトルまたは半角ベクトルを含む、任意のユーザ定義ベクトルとすることができる。パラメータは、所定の方程式のパラメータであり、式を解くに当たり、ベクトル計算は含まれない。方程式は、多項式または非多項式を含む、任意の形態をとることができる。本グラフィックスシステムは、方程式を使用して表面構造を有するポリゴンをレンダリングする。
【００１２】
本発明の上記および他の目的ならびに利点は、以下の詳細な説明を添付図面と併せて読むことからより容易に理解されるであろう。
【００１３】
【好適な実施形態の詳細な説明】
まず図１を参照すると、本発明の好適な実施形態によるコンピュータグラフィックスシステム１０のブロック図が示される。コンピュータグラフィックスシステム１０は、バッファ１２、グラフィックスプロセッサ１４、パラメトリックテクスチャマップ１６、フレームバッファ１８、およびディスプレイ２０を含む。バッファ１２は、ディスプレイ２０上に生成されるべき３Ｄオブジェクトを記述する幾何学的形状データを保持する。バッファ１２において、３Ｄオブジェクトは３Ｄ空間におけるポリゴンのセットとして表される。一実施形態では、ポリゴンは三角形であり、バッファ１２において、幾何学的形状データは三角形の頂点の３Ｄ座標を含む。
【００１４】
グラフィックスプロセッサ１４は、バッファ１２からポリゴンを定義するパラメータを読み取り、各ポリゴンを走査変換する。ポリゴンの走査変換により、視野方向および光源方向に依存するポリゴンの２Ｄビューが生成される。ポリゴンの２Ｄビューは、ディスプレイ２０の平面で見ることのできるポリゴンの各ピクセルの色値を含む。グラフィックスプロセッサ１４は、レンダリングされるポリゴンの色値をフレームバッファ１８に書き込む。色値は、フレーム単位でフレームバッファ１８からディスプレイ２０に提供される。ディスプレイ２０は、ラスタ走査装置またはフラットパネル表示装置などの任意の従来の２Ｄ表示装置とすることができる。
【００１５】
パラメトリックテクスチャマップ１６は、表面構造の視覚的な見た目が、ビューベクトル、光源ベクトル、または半角ベクトル等の任意のユーザ定義ベクトルでもって変化するように表面構造を定義するパラメータを保持する。半角ベクトルは、ビューベクトルと光源ベクトルとの中間にあるベクトルである。グラフィックスプロセッサ１４は、走査変換中に、パラメトリックテクスチャマップ１６で定義される表面構造を、バッファ１２から得られるポリゴンにマッピングする。その結果、テクスチャマッピングと比較して、３Ｄオブジェクトの表面の３Ｄ特徴がよりリアルにレンダリングされるが、バンプマッピングに関連する計算の犠牲がない。
【００１６】
一実施形態では、パラメトリックテクスチャマップ１６に含まれるパラメータは、以下の二次多項式を解くためのＡ１、Ａ２、Ａ３、Ａ４、Ａ５、およびＡ６の係数である。
【数２】
Ｃｉ＝Ａ１Ｄ２ｕ＋Ａ２Ｄ２ｖ＋Ａ３ＤｕＤｖ＋Ａ４Ｄｕ＋Ａ５Ｄｖ＋Ａ６
（２）
ここで、ＤｕおよびＤｖは、ユーザ定義ベクトルの２Ｄ成分である。たとえば、パラメトリックテクスチャマップ１６が視野方向に適合された場合、ＤｕおよびＤｖは、視点ベクトルの２Ｄ成分である。同様に、パラメトリックテクスチャマップ１６が半角ベクトルに適合される場合、ＤｕおよびＤｖ項は、半角ベクトルの２Ｄ成分である。
【００１７】
表１は、パラメトリックテクスチャマップ１６の全体的なコンテンツを示す。パラメトリックテクスチャマップ１６は、ｎ×ｍ個のエントリを含む。ｎ×ｍ個のエントリはそれぞれ、パラメトリックテクスチャマップ１６によってモデリングされる特定表面のサンプルに対応する。これらサンプルは、テクスチャエレメントの略語であるテクセルと呼ぶことができる。個々のテクセルについての係数はＡ１ｉ，ｊ〜Ａ６ｉ，ｊと表される。但し、ｉの範囲は１〜ｎであり、ｊの範囲は１〜ｍである。
【００１８】
【表１】
0005002742.tif 000002
【００１９】
パラメトリックテクスチャマップ１６は、グラフィックスシステム１０における３Ｄオブジェクトのレンダリングに使用され得るパラメトリックテクスチャマップのセットを表す。本技術による各パラメトリックテクスチャマップは、３Ｄオブジェクトにマッピングされるべき特定の表面構造に適合する。さらに、各パラメトリックテクスチャマップは、ユーザ定義ベクトルに応答してリアルな３Ｄレンダリングを提供するように適応される。たとえば、パラメトリックテクスチャマップ１６は、所与の固定された閲覧方向について様々な光源方向に応答してリアルな３Ｄレンダリングを提供するように適応され得る。代案として、パラメトリックテクスチャマップ１６は、所与の固定された光源方向について様々な視野方向に応答してリアルな３Ｄレンダリングを提供するように適応され得る。
【００２０】
一実施形態では、パラメトリックテクスチャマップは、ディスプレイ２０の特定のカラーチャネルに適合することができる。たとえば、グラフィックスシステム１０は、特定の表面構造についてＲＧＢディスプレイの赤、緑、および青の各チャネルごとに別個のパラメトリックテクスチャマップを含むことができる。この手法の１つの欠点は、３つのパラメトリックテクスチャマップが必要なことである。代案として、単一のパラメトリックテクスチャマップを完全なＲＧＢテクスチャマップ中の各チャネルで乗算してもよい。この実施形態では、パラメトリックテクスチャマップは、たとえば、光ベクトルの変化の結果としての輝度変化を符号化し、対応するテクスチャマップにおけるＲＧＢ色値を変調し、結果としての色値を生じる。また、このタイプのパラメトリックテクスチャマップを使用して、複数の光源で照明されるオブジェクトをレンダリングすることも可能である。ＲＧＢ色値は強さとは別個であるため、異なる光源について強度値を計算し、組み合わせて最終的な強度値を得ることができる。次に、ピクセル単位での強度値をＲＧＢ値で乗算して、出力色を得る。グラフィックスパイプラインにおけるテクスチャブレンディング中に、異なるブレンディングモードを用いて、パラメトリックテクスチャマップ評価結果を計算された照明、テクスチャマップ、または他のソースと組み合わせることにより、広範囲の有用な動作が達成され得る。
【００２１】
次に図２を参照すると、図１のバッファ１２において定義され、図１のパラメトリックテクスチャマップ１６により定義される表面特徴を用いて、図１のグラフィックスプロセッサ１４によってレンダリングされるべきポリゴン２２の図的表現が示される。ポリゴン２２は、３Ｄ空間における３つの頂点（Ｔ１、Ｔ２、およびＴ３）のセットにより定義される。局所的座標空間は、通常ポリゴン２２の空間テクスチャ座標によって定義される、ｕ軸およびｖ軸２４のセットによって表される。
【００２２】
ポリゴン２２の表面法線ベクトルＮを、視点ベクトルＶ、光源ベクトルＬ、および半角ベクトルＨと共に示す。法線ベクトルは通常、リアルさを増すために、ポリゴン全体ではなく頂点について定義されることに留意されたい。ここでは、簡略化のために、ポリゴンの単一の法線を示す。視点ベクトルＶは、ポリゴン２２のピクセルＰｋから視点２６までの視野方向を表す。光源ベクトルＬは、ピクセルＰｋから光源２８までの光源方向を表す。半角ベクトルＨは、視点ベクトルＶと光源ベクトルＬとの間の中間にあるベクトルを表す。また、ポリゴン２２の平面に射影される視点ベクトルＶである（Ｖｕ，Ｖｖ）ベクトルも示される。同様に、（Ｌｕ，Ｌｖ）ベクトルは光源ベクトルＬの射影であり、（Ｈｕ，Ｈｖ）ベクトルは半角ベクトルＨの射影である。
【００２３】
図３は、パラメトリックテクスチャマップによって定義される表面特徴を用いて、ポリゴンをレンダリングするための本発明による方法の流れ図を示す。図示されたステップは、図２のポリゴン２２におけるピクセルの各セットについて色値を生成するために使用される。例示のための以下の説明は、例として、図２のピクセルＰｋに焦点を合わせる。図１のパラメトリックテクスチャマップ１６中の係数Ａ１ｉｊ〜Ａ６ｉｊは、光源ベクトルまたは半角ベクトル等のユーザ定義ベクトルに応答して色値をもたらすように適合される。この適合は、様々なベクトル方向について各ピクセルでの色値を提供するイメージのセットからの線形回帰を用いることによって行われる。例示のための以下の説明は、係数Ａ１ｉｊ〜Ａ６ｉｊが、固定の視点ベクトルについて光源ベクトルに応答して色値を生成するように適合される例に焦点を合わせる。それにも関わらず、これらの技術は、任意のユーザ定義ベクトルに応答して色値を生成するように適合された係数を含むパラメトリックテクスチャマップに容易に適用可能である。さらに、パラメトリックテクスチャマップ１６中の係数Ａ１ｉｊ〜Ａ６ｉｊは、図１のディスプレイ２０の特定のカラーチャネルについての色値を生成する。さらなるパラメトリックテクスチャマップを使用して、残りのチャネルについての色値を生成することもできる。ステップは、図１のバッファ１２に格納されている３Ｄオブジェクトを表すポリゴンのセット中の各ポリゴンでもって繰り返される。プロセスは開始から始められる。
【００２４】
ステップ３０において、図１のグラフィックスプロセッサ１４は、ポリゴン２２の各頂点Ｔ１、Ｔ２、およびＴ３にパラメトリックテクスチャマップ１６の空間テクスチャ座標ｕおよびｖを割り当てる。頂点Ｔ１、Ｔ２、およびＴ３の空間テクスチャ座標は、ｕＴ１、ｖＴ１、ｕＴ２、ｖＴ２、およびｕＴ３、ｖＴ３、とそれぞれ示される。
【００２５】
ステップ３２において、グラフィックスプロセッサ１４は、ポリゴン２２の頂点における方向ベクトルを決定する。本例での方向ベクトルは、ポリゴン２２の頂点における光源ベクトルである。頂点Ｔ１における光源ベクトルは、Ｔ１から図２の光源２８の３Ｄ座標を指す正規化３Ｄベクトルである。同様に、頂点Ｔ２およびＴ３における光源ベクトルは、Ｔ２およびＴ３それぞれから光源２８の３Ｄ座標を指す正規化３Ｄベクトルである。
【００２６】
ステップ３４において、グラフィックスプロセッサ１４は、ステップ３２において決定された正規化３Ｄ方向ベクトルを、パラメトリックテクスチャマップ１６のテクスチャ座標系ｕおよびｖに射影する。これにより、パラメトリックテクスチャマップ１６のテクスチャ座標系における各正規化３Ｄ方向ベクトルの２Ｄパラメータ表示または２Ｄ成分が得られる。正規化３Ｄ方向ベクトルの２Ｄパラメータ表示は、Ｄｕ，Ｄｖと示される。
【００２７】
ステップ３６において、グラフィックスプロセッサ１４は、ステップ３４において決定された、射影された方向ベクトルＤｕ，Ｄｖと、ステップ３０において決定された空間テクスチャ座標ｕＴ１、ｖＴ１、ｕＴ２、ｖＴ２、およびｕＴ３、ｖＴ３とをポリゴン２２にわたって補間する。これにより、ポリゴン２２の各ピクセルが、Ｄｕ，Ｄｖパラメータ、およびパラメータテクスチャマップ１６の座標空間におけるｕおよびｖテクセル座標に関連付けられる。ステップ３６の補間は、様々な既知の技術を使用して実行され得る。
【００２８】
ステップ３８において、グラフィックスプロセッサ１４は、パラメトリックテクスチャマップ１６から多項式係数Ａ１ｉｊ〜Ａ６ｉｊを得て、補間する。テクスチャマップの値を求めること、および補間には、いくつかのオプションがあることに留意することが重要である。補間されたテクスチャ座標は、入力テクスチャマップにおいて正確なテクセルを生成しないため、テクスチャ補間が必要である。これらの補間方法はよく知られており、最隣接、双線形、トライリニア（trilinear）、および異方性補間（anisotropic interpolation）を含む。１つのオプションは、各サンプルポイントで多項式の数値を求めてから、出力値を補間するということである。別のオプションは、多項式係数を補間して、補間後の多項式を生成してから、多項式の数値を求めることである。図３は、２番目のオプションを示している。
【００２９】
ステップ４０において、グラフィックスプロセッサ１４は、ステップ３６からの補間後のＤｕおよびＤｖ項と、ステップ３８からの補間後のＡ１ｉｊ〜Ａ６ｉｊ係数とを使用してピクセル単位で数２の数値を求める。ピクセルＰｋの場合、数２は、テクセル値Ｃｉをもたらし、次にこのテクセル値を色値、輝度値、または他のピクセルもしくはテクスチャデータとして使用できる。
【００３０】
概して、パラメトリックテクスチャマッピングの効果は、使用中のユーザ定義ベクトルに対して正面対向するポリゴンにのみ適用されるべきである場合がある。正面対向または背面対向のポリゴンを識別するために、第３の変数を使用する。この第３のパラメータＤは通常、ユーザ定義ベクトルを頂点法線ベクトルに射影した結果である。正面対向ポリゴンの場合、Ｄは正であり、背面対向ポリゴンの場合、Ｄは負である。根本的に、Ｄは、頂点法線ベクトルとユーザ定義ベクトルとのドット積である。正面対向から背面対向に遷移するときにパラメトリックテクスチャマッピング効果を急に停止させることが望ましい場合もあれば、望ましくない場合もある。望ましい場合、ユーザは、効果を減衰させて、おそらくユーザ定義ベクトルに関して背面対向する三角形の評価を含む、急なまたはゆるやかなカットオフを必要に応じて与えることができる。
【００３１】
本技術は、表面の色への表面特徴の寄与を直接的にモデリングすることにより、表面特徴の３Ｄ効果をモデリングする。寄与は、数２の係数で表される。本技術は、方向依存性であり、ピクセル単位での照明方程式を解くことによりもたらされるものに匹敵する質のリアルさを提供する、表面特徴のポリゴンへのマッピングをもたらす。二次多項式である数２を解くことは、ピクセル単位で照明方程式を解くことと比較して、ハードウェア、ソフトウェア、またはこれら双方における実行が比較的容易である。数２を解くことには、整数の乗算および加法演算が含まれるが、照明方程式を解くことには、浮動小数点、平方根、および除算演算が含まれる。数２には四次多項式が選択されているが、双三次、およびより高次の多項式を使用してもよい。本技術は、非多項式関数であってもサポートすることができる。しかし、より複雑な関数は現在、実施コストがより高く、これは目下過度と考えられるため、好ましくない。
【００３２】
次に、図４Ａ〜図４Ｃを参照すると、例示的な表面構造４２に関する図１のパラメトリックテクスチャマップ１６の係数Ａ１ｉｊ〜Ａ６ｉｊを決定するための構成が示される。図４Ａは、表面構造４２の上面図を示す。表面構造４２は、一対の軸ＤｕおよびＤｖに位置合わせされて示される。表面構造は、正方形ピラミッド構造４４〜５２のアレイからなる。サブ領域５４は、表面構造のテクセルのうちの１つを表す。この表面構造は、表面構造の一例にすぎず、本技術を利用して、想像しうるあらゆる表面構造をモデリングすることができる。
【００３３】
図４Ｂは、カメラ５８および光源を位置決めするために使用される半球形ドーム５６と共に図４Ａの表面構造４２の側面図を示す。この場合、単一の光源が、ドームの２つの例示的な位置６０および６２に配置されて示される。ベクトル６４は、位置６０の場合の光源ベクトルを表し、ベクトル６６は、位置６２の場合の光源ベクトルを表す。
【００３４】
カメラ５８は、光源ベクトルに応答して色値を生成するように適合されるパラメトリックテクスチャマップ１６の係数を得る際に、ドーム５６の定位置に固定される。ベクトル６８は、カメラの固定位置の視点ベクトルを表す。カメラは、ドーム５６の光源の所定位置の各セットについて、表面構造４２のイメージを得るために使用される。光源の各所定位置は、異なる光源ベクトルを表し、カメラを使用して得られる対応イメージは、表面構造４２の各テクセルの色値をもたらす。たとえば、ｎ個の異なる光源位置から得られるイメージは、各テクセルごとにｎ個の色値をもたらし、各色値は、視点ベクトル６８について異なる光源ベクトルに対応する。
【００３５】
図４Ｃは、ドーム５６の６つの異なる光源位置についてカメラ５８を使用して得られるテクセル５４の色値のグラフを示す。これらの色値は、位置６０にある光源を使用して得られた色値６０’、および位置６２にある光源を使用して得られた色値６２’を含む。色値は、軸ＤｕおよびＤｖに対してプロットした。視点ベクトル６８についてのテクセル５４の係数Ａ１ｉｊ〜Ａ６ｉｊは、既知の技術を使用して、数２の多項式をテクセル５４について得られた色値にフィッテイングさせることにより得られる。数２の多項式とテクセル５４についてカメラ５８によって得られた６つの色値との間のフィッテイングを表す表面７０が示される。表面７０の、カメラ５８によって得られたｎ個の色値へのフィッテイングは、標準の最小平均二乗法を使用して多項式係数をもたらすことによって達成され得る。
【００３６】
この技術は、任意のユーザ定義ベクトルに応答して色値をもたらすように適合されたパラメトリックテクスチャマップ１６の係数を得るように容易に修正され得る。たとえば、光源を、光源ベクトル６４に対応する位置６０に固定することができる。次に、視点ベクトルを表すカメラ５８がドーム５６上のｎ個の異なる位置に移動する。得られた色値への表面フィッティングは、上記と同様に行われる。
【００３７】
本技術のさらなる修正は、有用な各種効果を生み出すように、パラメトリックテクスチャマップを、既存の頂点毎にまたはピクセル毎に照明ハードウェアに組み合わせることである。１つの方法は、標準のブリン／フォン照明計算の出力を、光源ベクトル依存のパラメトリックテクスチャマップの値を求めた結果により変調するということである。こうすることにより、数１は以下になる。
【数３】
Ｉ＝ｋａＩａ＋ｋｄＩｄ（Ｎ・Ｌ）＋ｋｓＩｓ（Ｎ・Ｈ）ｎＰＴＭ（ｕ，ｖ，Ｌｕ，Ｌｖ）
（３）
ここで、ＰＴＭは、数２の場合と同様にパラメトリックテクスチャマップ関数であり、ＬｕおよびＬｖは、上記のように光源ベクトルＬの射影を表す。パラメトリックテクスチャマップが空間的に変化するが、すべての光入射方向について一定であるという普通の場合では、数３は、当技術分野において良く知られているスペキュラマップまたはグロスマップに機能的に等価になる。従来のスペキュラマップでもって利用できない光方向の依存性は、テクセルが、小規模な表面のばらつきによるシャドーイングによりスペキュラハイライトを示さない、シャドーイング等の効果を再現するために使用され得る。
【００３８】
別の修正は、パラメトリックテクスチャマップを利用して、オフスペキュラ（off-specular）およびフレネル効果をシミュレートするということである。多くの表面では、目に見える粗さが減るため、入射角が低い場合にスペキュラが増大する。これは、入射角がグレージングに近づくにつれて大きさが増大するパラメトリックテクスチャマップを使用してスペキュラ寄与を変調することにより、上述の技術を使用して再現され得る。また、入射照明依存性を使用して、良く知られたフレネル効果を近似することも可能である。フレネル効果は、グレージング照明入射角の場合に反射率が大幅に増大する金属およびガラスなどの多くの表面に重要である。ガラスおよび他の誘電体の反射率は、入射方向が表面法線にほぼ等しい場合には低い。金属もまた、波長依存性を含むフレネル反射を示す。この結果、異なる波長について反射率が変化するため、反射光の色が、入射角の変化に応じて変化する。これらの依存性は、各テクセルに格納される多項式関数により近似され得る。これらの照明依存効果の組み合わせはすべて、単一のパラメトリックテクスチャマップに格納され得る。さらに、パラメトリックテクスチャマップにおけるテクセル多項式は独立しているため、これらの属性は表面にわたって変化することができる。この結果、パラメトリックテクスチャマップは、単一のテクスチャマップで異なる材料を表すことができる。
【００３９】
さらにまた、パラメトリックテクスチャマップを使用して、良く知られている異方性材料をモデリングすることができる。異方性材料は、反射関数が表面法線を中心にして循環変化する。それらの例には、毛皮、髪の毛、毛羽仕上げの材料、および艶出し加工された金属が含まれる。異方性材料をレンダリングするための従来の技術は、異方性の方向と並ぶ表面ポイントの法平面を定義する。次に、照明計算において、光入射方向の法平面への射影を用いる。本技術によれば、テクスチャマップ中の各テクセルについての関数は、法平面に射影された光入射方向の大きさに基づく。次に、パラメトリックテクスチャマップの値を求めた結果は、計算されたスペキュラ照明（specular lighting）でもって変調されるため、スペキュラハイライトは、光入射方向が異方性方向と整列する領域でのみ発生する。いくつかの従来の方法とは異なり、この技術によって、異方性材料が局所的な光源を使用しての遠近画法的ビューのもとでレンダリングされることが可能になる。
【００４０】
良く知られた従来の結果とは異なり、広範囲の新しい効果も達成され得る。これは、ユーザが、所望であれば射影されたベクトルを直接割り当てることができるため、パラメトリックテクスチャマップを使用して任意の所望のデータを表すことにより可能になる。ユーザは、一次元（１Ｄ）関数を表すために、パラメータのうちの１つを定数のままにするように選択することができる。たとえば、１日の中で時間が変化するようなあるシーンの連続写真など、いくつかの時変関数をこの方法で表現することができる。この効果に対する１つの制約は、フレームからフレームに急な変化を含むシーンを取り扱うことが困難なことである。
【００４１】
さらに、空間色変化を符号化するために、標準的な２Ｄテクスチャマッピングの２つの軸を使用する代わりに、テクスチャマップの２つのテクスチャ座標を、二変量関数のパラメータとして使用して、オブジェクトの反射属性を表すことができる。本技術は、単純な色値をテクスチャマップに格納する代わりに、本技術が２つの変数の関数を格納することができるという点において、従来の技術に対してさらなる利点を有する。この関数は、必要に応じて、光、視点、半角、または他のベクトルにより制御され得る。したがって、本技術を使用して、従来の技術でのような２つだけではなく、完全な四次元の反射関数を有するオブジェクトを表現しレンダリングすることができる。また、従来の技術とは異なり、本技術は、局所的な光または視点の影響を再現することができる。
【００４２】
さらにまた、本技術は、ボリュームレンダリングにも利用され得る。ボリュームレンダリングは、単に２Ｄパラメトリックテクスチャマップを格納する代わりに、３Ｄパラメトリックテクスチャマップを利用する。これは、２Ｄテクスチャマップのスタックとして視覚化され得る。ボリュームレンダリングの場合、上記と同様に、関数の係数があらゆるテクセルについて格納される。次に、あらゆるテクセルにおいてパラメトリックテクスチャマップの値を求めて、ボクセル、単位ボリュームエレメント、色値を決定することにより、３Ｄテクスチャマッピングハードウェアを使用してボリュームをレンダリングすることができる。さらに、さらなる関数を使用して、各ボクセルの透明度を表すことができる。透明度関数のパラメータは、所望の属性を有するボクセルを他のボクセルよりも多少不透明にするように、ユーザによって指定される。
【００４３】
伝統的なバンプマップを使用して表面の細部を表示することに伴う問題の１つは、特定のサンプリングレートに合わせるためにバンプマップをフィルタリングすることである。ＭＩＰマップを使用する幼稚な手法は、表面の平滑化につながり、それによってバンプ自体がなくなる。これは、バンプマップの目的に反する。再考すると、積分したい関数は、表面の乱れ自体ではなく、でこぼこなパッチから放射される光であることが認識されるであろう。パラメトリックテクスチャマップはイメージベースの表現であるため、係数Ａ１〜Ａ６自体をＭＩＰマッピングすることによりフィルタリング効果を達成することができる。かかる結論の裏付けは、ｎ個のサンプルを使用してパッチΩにわたって積分した以下の式を考えることによって認識され得る。
【００４４】
【数４】
0005002742.tif 000003
【００４５】
点検することにより、光依存性が係数において線形であることがわかる。数４によれば、パッチにわたって係数を累積してからその和を求めることは、独立して求めた場合の各テクセル寄与の色を累積することに等しい。これにより、係数を直接ＭＩＰマッピングすることが可能になるだけではなく、フットプリントアセンブリ（footprint assembly）等の向上した画質をもたらす異方性フィルタリング技術もサポートされ得る。したがって、パラメトリックテクスチャマップを使用しての補間には２つのオプションがある。第１に、すべてのサンプルポイントにおいて多項式の値を求めてから、計算された値を補間することができる。第２に、多項式の係数を補間してから、補間された多項式の値を求めることができる。どちらのオプションが好ましいかは、特定の実施によって決まる。
【００４６】
本発明は、特定の実施形態により例示され説明されたが、特許請求の範囲およびそれらの等価物に定義されるような本発明の思想および範囲から逸脱することなく、多くの変更および修正を行うことができることを理解されたい。
【図面の簡単な説明】
【図１】  本発明の好適な実施形態によるコンピュータグラフィックスシステムのブロック図である。
【図２】  図１のバッファにおいて定義され、図１のパラメトリックテクスチャマップにより定義される表面特徴を用いて、図１のグラフィックスプロセッサによりレンダリングされるべきポリゴンの図的表現である。
【図３】  パラメトリックテクスチャマップによって定義される表面特徴を用いて、ポリゴンをレンダリングする本発明による方法の流れ図である。
【図４Ａ〜図４Ｃ】  本発明に使用される表面構造例のパラメトリックテクスチャマップ中の係数を決定するための構成を示す図である。
【図１】
0005002742.tif 000004
【図２】
0005002742.tif 000005
【図３】
0005002742.tif 000006
【図４Ａ】
0005002742.tif 000007
【図４Ｂ】
0005002742.tif 000008
【図４Ｃ】
0005002742.tif 000009