ミップマップ・レベルの選択
コンピュータ・グラフィックは、ミップマップ構造にテクスチャ・マップを格納するテクスチャ・メモリ(134)を含み、テクスチャ・マップのテクセルは、u座標とv座標の対で指定される。ラスタライザ(120)が、テクセル(u,v)について、初期4Dミップマップ・レベル(mmlu,mmlv)と、そのテクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求める。ラスタライザは、次いで、求められた初期4Dミップマップ・レベルmmlu,mmlvと拡大率に依存して最終的な4Dミップマップ・レベルを求める。テクスチャ空間リサンプラ(132)が、最終的な4Dミップマップ・レベルからのペアにより識別されるテクスチャ・マップからテクスチャ・データを取得する。テクスチャ・マッパ(140)が、取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・グラフィック処理のシステムおよび方法に関する。
【背景技術】
【0002】
3Dグラフィックをレンダリングする際の重要な要素の1つはテクスチャ・マッピングである。コンピュータで生成されたオブジェクトの表面上にテクスチャをマッピングすることは、オブジェクトの外見の現実感を大幅に向上させる技術である。テクスチャは、通例、写真やコンピュータで生成された画像などの2Dピクチャである。例えば、壁の2D画像(の一部)を、コンピュータ・ゲームの壁の3次元表現に投影することができる。大半の3Dオブジェクトは、画面のわずかな部分しかカバーせず、しばしば、結果的にテクスチャ・マップ(近くで見た時にそこそこの外見を提供するためにも十分な解像度を持つ)が縮小される。しばしば、例えば壁が遠く離れている場合など、テクスチャ・マッピングの際に2Dピクチャを大幅に縮小しなければならないことがある。原理上は、その場合、テクスチャ・マッピングは、元の画像を大幅に倍率縮小することによって行うことができる。高解像度の2Dピクチャを読み取るために必要とされる帯域幅を低減するために、しばしば、倍率が縮小されたバージョンの2Dピクチャがいくつか作成される前処理ステップが行われる。テクスチャ・マッピングの際に、解像度がスクリーン画像と最も一致する倍率縮小ピクチャの中でより小さいピクチャのみの一部分が、読み取られ、画面にマッピングされる。倍率縮小されたバージョンを伴う元の2Dピクチャは、ミップマップと呼ばれる。テクスチャ・マッピングとミップマップについては、"Survey of Texture Mapping Paul S. Heckbert, IEEE Computer Graphics and Applications, Nov. 1986, pp. 56-67 and in U.S. 6,236,405 Blに詳細に記載される。ミップマップでは、元の画像がレベル0と表される。レベル1では、各エントリは、例えば2×2個のテクセルの平均値を保持する。本発明で使用される用語「テクセル(texture element)」とは、テクスチャのピクチャ要素(ピクセル)を意味する。これは、テクスチャ全体の平均色を保持する1つのみのエントリがある最上位レベルに達するまで継続されることができる。したがって、正方形のミップマップでは、レベルnは、レベルn−1の4分の1のサイズになる。本明細書では、用語「テクスチャ」は、オブジェクトの上にマッピングされる画像または構造の同義語として使用される。
【0003】
いくつかのタイプのミップマップが知られており、どの倍率縮小画像が格納されるかが異なる。3Dミップマップでは、両方の方向に同じ率だけ倍率縮小されるのに対し、4Dミップマップでは、元の画像が両方の次元で別々に倍率縮小される。3Dミップマップと比較すると、4Dミップマップ構成は、記憶するために多くのメモリを必要とする。したがって、ゲームなどのコンピュータ・グラフィックは、多くの場合3Dミップマップ構造を用いる。1B02/05468として出願された整理番号PHNL010924EPPの未公開欧州特許出願は、3Dミップマップから直接4Dミップマップを生成する方法を記載する。これは、グラフィック・システムに4Dミップマップを供給しないプログラムと組み合わせても、高品質のレンダリングを可能にする。
【0004】
一般に、画面のグリッドに(ミップマップ化された)画像をマッピングするにはいくつかの知られた方法がある。最も一般的なコンピュータ・グラフィック・システムは、いわゆる逆方向テクスチャ・マッピング方式を用いる。この方式では、画面のピクセルが順次処理され、各ピクセルについて、ラスタ化プロセスでテクスチャへの画面ピクセルの投影(結果としてピクセルの「フットプリント」が得られる)が決定され、通常は重み付き平均の形で、正しいピクセル色を最も近似する平均値が計算される。これに代わる方式は、いわゆる順方向テクスチャ・マッピング法である。この方法は、テクスチャ・マップで定義された座標系中のテクセルをトラバースすることによって機能する。そして、一般にビデオの倍率変更に用いられるリサンプラを使用して、テクセル色が画面ピクセルに配置(splat)される。
【0005】
レンダリングされる2Dまたは3Dオブジェクトは、通例、プリミティブ(通常は三角形)を使用してモデル化される。グラフィック・システムの頂点シェーダは、入力としてプリミティブの頂点を受け取り、頂点シェーディング・プログラムを使用して、その頂点それぞれを変更する、あるいは属性を追加する。順方向マッピング・システムでは、次いで、ラスタライザが、その属性を補間しながら、テクスチャ空間のプリミティブをトラバースする。ラスタライザは、三角形の頂点を定義する頂点座標を受け付ける。ラスタライザは、三角形に投影される各テクセルのテクスチャ座標(u,v)を計算する。トラバース(visit)されるテクスチャの各グリッド位置(u,v)について、テクセル・シェーダが、その属性からプリミティブの表面の局所的な色を計算する。その表面色は、次いで、画面空間リサンプラによって画面のピクセル位置にリサンプリングされる。2回のパスの順方向マッピング方式では、2D画像のマッピングは、2回の1Dマッピングに分解される。まず、画像が1つの方向、通例は走査線方向、すなわち横方向にマッピングされ、次いでもう一方の方向にマッピングされる。最初のパスでは、完全な走査線を処理し、したがって、テクスチャ空間ラスタライザの縦方向のミップマップ・レベルが、レンダリングされるプリミティブ全体(三角形)に対して固定される。ラスタライザは、三角形について、頂点についての情報に基づいて、必要とされるディテールの最大量を示す。なお横方向のミップマップ・レベルを変えることができるように、4Dのミップマップ構成が使用される。1回のパスの2Dフィルタを用い、横方向と縦方向両方のミップマップ・レベルを変えることも可能である。供給される情報は、横方向のミップマップ・レベルmmluと縦方向のミップマップ・レベルmmlvを含む。ラスタライザは、それら2つの4Dミップマップ・レベル値で決定されるグリッドに沿ってテクセルを処理する。テクスチャ空間リサンプラは、識別された4Dミップマップからテクセル位置にデータをリサンプリングする。
【発明の開示】
【発明が解決しようとする課題】
【0006】
よく考慮された使用ミップマップの選択を行うことが望まれる。過度に細かいミップマップを選択すると、過度に多くのメモリ帯域幅が生じる。過度に粗いミップマップを選択すると、品質の低すぎる画像が生成される。詳細には、三角形のあらゆる位置で必要とされるディテールの最大量に基づいて三角形全体について縦方向のミップマップ・レベルが固定される2回のパスの順方向テクスチャ・マッピング・グラフィック・システムの場合は、過度に細かいレベルを選択することの危険性が高い。
【課題を解決するための手段】
【0007】
本発明の目的は、ミップマップ・レベルを選択する方法およびシステムを提供することである。
【0008】
本発明のこの目的を満たすために、表示する画像をレンダリングするシステムは、
ミップマップ構造にテクスチャ・マップを格納するテクスチャ・メモリであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されるテクスチャ・メモリと、
テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を決定し、
決定された初期4Dミップマップ・レベルmmlu,mmlvと拡大率に依存して、対応する最終的な4Dミップマップ・レベルを決定する
ように動作するラスタライザと、
最終的な4Dミップマップ・レベルの対で識別されるテクスチャ・マップからテクスチャ・データを取得するテクスチャ空間リサンプラと、
取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングするテクスチャ・マッパと
を含む。
【0009】
ラスタライザは、初期4Dミップマップ・レベル(mmlu,mmlv)で(三角形内のいずれかの位置で必要とされる最大ディテール量に対応する形で)決定されるグリッドで動作するが、それらの値(従来のようにラスタライザからテクスチャ空間リサンプラに供給される)は、ミップマップ構造からテクスチャを選択する理想的な手段ではなく、三角形内の特定の点で実際に必要とされるよりもはるかにディテールが細かいレベルを示す場合があることを本発明者は認識した。これは特に、三角形が高い視点(perspective)で見られる場合にそうである。これは、グリッドの直角方向の1つまたは両方への拡大を生じさせる。例えば、縦方向の拡大率(縦方向は通常vで表される)は、現在のラスタ化グリッド位置について、縦方向のラスタ化ミップマップ・レベルmmlvのv値が1違う2つのテクセルが画面上でどれだけ離れるかを示す。そして、拡大率は、テクスチャ空間のリサンプリングに使用されるミップマップ・レベルの選択に影響する。本発明によるシステムは、逆方向テクスチャ・マッピング・システムにも順方向テクスチャ・マッピング・システムにも使用されることができる。
【0010】
従属請求項2の手段によれば、縦方向の4Dミップマップ・レベルは、縦方向の拡大に依存して調整される。これは、ラスタライザ自体が最初のパスで、三角形内の任意の位置で必要とされる最大ディテール量と可変の横方向のミップマップ・レベルとに基づいて、三角形全体について固定された縦方向の4Dミップマップ・レベルで動作する、2回のパスのグラフィック・システムと良好に結合する。そのような従来のラスタライザは、テクセルごとに変わる横方向の4Dミップマップ・レベルをすでに使用している。本発明によれば、ラスタライザは、テクセルごとに、縦方向の拡大に応じて初期の縦方向4Dミップマップ・レベルを調整することにより、テクスチャ空間リサンプラが使用する最終的な縦方向の4Dミップマップ・レベルも決定する。ラスタライザのすべての他の動作は、影響を受けず、固定された縦方向の4Dミップマップ・レベルでなお動作することができる。
【0011】
従属請求項3の手段によれば、ミップマップ・レベルmmlvは、拡大率が小さい場合に下げられる。その場合、より低い縦方向の解像度が使用されることができる。従来、ラスタライザによって供給される縦方向の4Dミップマップ・レベルは、プリミティブ中の1つのテクセルに必要とされる最高レベルのディテールに相当する。詳細には、拡大率が小さい場合(その方向の視点が高い場合)は、その方向に比較的大きい縮小が行われ、その方向でディテールが少ない4Dミップマップを使用できるようにする。
【0012】
従属請求項4の手段によれば、テクスチャ・メモリは、4Dミップマップ構造を格納する。テクスチャ空間リサンプラは、最終的に決定されたレベル(恐らくは解像度がより低い)で示される4Dミップマップに作用する。ラスタライザは、なお初期4Dミップマップ(可能性としては不要な高ディテールを有する)に作用する。リサンプラは、最終的に識別された4Dミップマップから(例えば補間を通じて)データを再構築することにより、ラスタライザにデータを提供する。このようにして、品質が影響を受けないテクセルではテクスチャ・メモリへの帯域幅が低減されることができる。
【0013】
従属請求項5の手段によれば、ゲームなどのコンピュータ・グラフィック・アプリケーションで通常そうであるように、テクスチャ・メモリは、3Dミップマップ構造を格納する。テクスチャ空間リサンプラは、3Dミップマップの1つから、最終的に識別された4Dミップマップを直接生成する。未公開欧州特許出願IB02/05468は、3Dミップマップから直接4Dミップマップを生成する方法を記載する。これは、グラフィック・システムに4Dミップマップを供給しないプログラムと組み合わせても高品質のレンダリングを可能にする。
【0014】
従属請求項6および7の手段によれば、それぞれ、高品質のレンダリングが優先される場合は、3Dミップマップ・レベルが、両方の4Dミップマップ・レベルのうち最大のレベルに選択されることができ、または、メモリ帯域幅を低減することが優先される場合は、3Dミップマップ・レベルが、両方の4Dミップマップ・レベルのうち最小のレベルに選択されることができる。
【0015】
従属請求項8の手段によれば、3Dミップマップ・レベルを選択する際に、最大異方性レベルも考慮される。従属請求項9は、最大異方性レベルを考慮に入れる好ましい方式を示す。
【0016】
本発明の目的を満たすために、表示する画像をレンダリングする方法は、
ミップマップ構造にテクスチャ・マップを格納することであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されることと、
ラスタ化動作で、テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
テクセルがディスプレイ上の対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
求められた4Dミップマップ・レベルmmlu,mmlvおよび拡大率に依存した、最終的な4Dミップマップ・レベルを求めることと、
テクスチャ空間のリサンプリング動作で、最終的な4Dミップマップ・レベルによって識別されるテクスチャ・マップについてのテクスチャ・データを取得することと、
取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングすることと
を含む。
【0017】
本発明の上記および他の態様は、以下で説明される実施形態を参照することから明らかになり、解明されよう。
【発明を実施するための最良の形態】
【0018】
(システムの概要)
図1に、本発明が利用されることができるグラフィック・パイプラインの終末段階の例示的アーキテクチャを示す。図1は、順方向テクスチャ・マッピング・システムを示す。図2は、逆方向テクスチャ・マッピング・システムのグラフィック・パイプラインの終末段階を示す。この説明では、視覚化されるモデルは、三角形をプリミティブとして使用して描写されるものとする。当業者は、同じ技術を、他の多角形や四辺形(quad)、ベジェ・パッチなどの曲面などの他のプリミティブに容易に適用することができる。パイプラインへの入力は、コンピュータ・ゲームなどのグラフィック・プログラムとグラフィック・パイプラインの初めの方のステージにより、その頂点で指定されたプリミティブである。プリミティブは、(x,y)座標を使用する画面空間と、(u,v)座標を使用する個々のテクセル空間の両方で与えられる。パイプラインは、頂点シェーダ110、テクスチャ空間ラスタライザ120、テクセル空間リサンプラ132およびテクスチャ・メモリ134を備えるテクセル・シェーダ130、画面空間リサンプラ140、およびEAA&HSR(輪郭線のアンチエイリアシングおよび隠面消去)ユニット150を含む。出力されるピクセルは、例えばRAM DACなどのD/A変換器を使用して表示してアナログ出力を生成するために、フレーム・バッファ160に格納される。必要に応じて、DVIなどのデジタル・インタフェースが使用されて、ピクセル・データをディスプレイに供給してもよい。ディスプレイは、CRT、LCD、プラズマ・ディスプレイを含む任意のタイプでよい。あるいは、レンダリングされるピクチャは、後のプリミティブのテクスチャ・マップとして使用されてもよい。次いで、図1および2に示すグラフィック・パイプラインの機能をより詳細に説明して、本発明が使用されることができる例示的システムを具体的に説明する。
【0019】
図1の頂点シェーダ110と図2の頂点シェーダ210は、入力として三角形(プリミティブ)の頂点を受け取り、頂点シェーディング・プログラムを使用して、その各頂点を変更する、または属性を追加する。頂点シェーダによって提供されるデータは通常、拡散反射色および/または鏡面反射色、テクスチャ座標、(同次の(homogeneous))画面座標のような属性と、場合によっては表面法線やシェーディング・プロセスに必要とされる他のデータなどの追加データを含む。頂点シェーダは、従来の変換および照明ユニットでよい。頂点シェーダによって生成される属性は、ラスタライザに供給される。
【0020】
図2のラスタライザ220は、いわゆる逆方向テクスチャ・マッピング・システム(画面のピクセルにテクスチャを投影するのではなく、画面空間のピクセルがテクスチャ空間のテクスチャにマッピングされる)の画面空間で動作する。このようなラスタライザは、走査線アルゴリズムを使用して、ラスタ化プロセスのための駆動変数として頂点属性から画面座標を選択することにより、画面のプリミティブの投影内に存在するピクセルをトラバースする。したがってラスタライザは、「画面グリッド」上でプリミティブをトラバースする。画面空間の座標として、x(「横」方向)とy(「縦」方向)が用いられる。
【0021】
図1に示す好ましい実施形態では、ラスタライザ120は、表面空間で動作する(いわゆる順方向テクスチャ・マッピング・システム)。以降の説明は、この好ましい実施形態を対象とする。当業者は、以下に概説される原理を逆方向マッピング・システムにも等しく適用することができる。表面空間ラスタライザは、例えば、ラスタ化プロセスの駆動変数として(画面座標ではなく)テクスチャ座標を選択することにより、(画面への投影ではなく)プリミティブの表面のパラメータ化をトラバースする。ラスタライザは、「表面グリッド」上のプリミティブをトラバースする。テクスチャ・マップに関連付けられたグリッドがそのような表面グリッドを提供することができ、表面グリッドとして使用されることが好ましい(その理由は、テクスチャ・グリッドでテクスチャ・サンプルを得るとリサンプリングが不要であるため)。テクスチャ・マップがない場合、または例えばテクスチャが1Dまたは3Dである場合は、別のグリッドが選択されてよい。テクスチャ空間の座標として、u(「横」方向)とv(「縦」方向)が使用される。この説明における「横方向」と「縦方向」は、相対的なものに過ぎないことは理解されよう。例えば、画面が回転されて、グラフィック処理は影響されないままにし、画面上の出力を回転させることができる。テクスチャ・グリッドはしばしば表面グリッドとして用いられるので、「テクスチャ・グリッド」という表記(および「テクスチャ空間」と「テクセル」)は、そのような一般化されたグリッド(およびそれに関連付けられた空間とサンプル)を表すために用いられる。ラスタライザがグリッドのテクセル位置をトラバースする際、各頂点で与えられたすべての属性がグリッド上で補間される(テクセルが投影される画面座標が透視補間されるのを除いては通例線形補間)。すると、各テクセル位置で属性が入手できるようになり、テクセル・シェーダ130がその属性を使用することができる。基本グリッドのuおよびvテクスチャ座標をトラバースする際、ラスタライザは、対応する画面座標(x,y)も保持する(または逆方向マッピング・システムの場合はその逆)。この対応関係は、
【数1】
【数2】
【数3】
の線形補間によって対応関係が維持されることができ、
【数4】
は同次座標を表す。このような座標は当技術分野でよく知られており、ここではこれ以上説明しない。そして、透視分割
【数5】
と
【数6】
を使用して画面座標が計算されることができる。下記でより詳細に説明するように、2回の1Dリサンプリング・パスに基づく画面空間のリサンプリングを使用する場合、画面のy座標は、ミップマップを決定する目的のみに使用される。1パスの2D画面空間リサンプラを使用すると、y座標は、リサンプラへの入力としても使用される。実際の色を計算するために、ラスタライザは、拡散反射色(RGBA)、鏡面反射色(RGB)、および追加的なテクスチャ座標の対(多重テクスチャ付けを可能にする)を補間することができる。他の属性(表面法線など)も補間されることができる。
【0022】
本発明によるシステムでは、テクスチャ空間ラスタライザは、図3に示すように、4Dのミップマップ化に対応するグリッド上のテクスチャ・マップをトラバースする。3Dミップマップでは、両方の方向が同じ率だけ縮小される。3Dミップマップは、ミップマップ・レベルmmlで指定される。元の画像はレベル0と表される。レベル1では、各エントリは、例えば2×2テクセルの平均値を保持する。これは、テクスチャ全体の平均色を保持する1つのみのエントリがある最上位レベルに達するまで継続されることができる。したがって、後続のレベルが各方向に2分の1に縮小される正方形のミップマップでは、レベルnは、レベルn−1の4分の1の大きさになる。他の倍率も使用されてよい。4Dミップマップでは、元の画像は、両方の次元で別々に倍率縮小される。4Dミップマップは、横方向のミップマップ・レベルmmluと、縦方向のミップマップ・レベルmmlvで指定される。図3に、16個のミップマップ・レベル(0,0),(1,0),...,(3,3)のディテールを与える4Dミップマップを示す。グレーで表すミップマップ・レベル(0,0),(1,1),(2,2)および(3,3)が、それぞれ元の3Dミップマップ・レベル0、1、2、3を形成する。ラスタライザは、各テクセル(u,v)について、対応する4Dミップマップ・レベル(mmlu、mmlv)をテクセル・シェーダ130に供給する。
【0023】
テクセル・シェーダ130は、テクセルごとに、局所的な表面色を計算する。図2のピクセル・シェーダ230も同じように動作する。テクセル・シェーダは、表面グリッドのグリッド位置における属性に対して作用し、プリミティブに関連付けられた2次的なテクスチャがある場合には、標準のテクスチャ空間リサンプラ132とともに逆方向マッピングを使用して、それらのテクスチャから色を得る。テクスチャ・データが必要とされる時は、テクスチャ空間リサンプラが使用されて、テクスチャ座標を考慮してテクスチャ・サンプルを得る。それらのテクスチャ座標は、ラスタライザから受け取られる補間された座標と、以前に行われたテクスチャのフェッチ(いわゆる依存テクスチャ付け)および/または計算の結果に基づいて、テクセル・シェーダによって生成される。テクスチャ・フィルタ動作は、通常、近傍テクセルのバイリニアまたはトリリニア補間、または異方性(透視変換された)フィルタ・フットプリントを近似するそのようなテクスチャ・プローブの組み合わせに基づく。テクセル空間リサンプラの2Dリサンプリング動作は、1D FIRフィルタ構造を使用して2回の1Dリンサプルパスで実行されることが好ましい。
【0024】
好ましい実施形態では、テクスチャ・メモリ134(および図2の234)は、3Dミップマップ構造にテクスチャ・マップを格納する。そのような実施形態では、テクスチャ空間リサンプラ132(および図2の232)は、下記でより詳しく説明するように、3Dミップマップから所望の4Dミップマップを直接再構築するように構成されることが好ましい。すると、テクスチャのフェッチは、テクスチャ・メモリ134に格納された3Dミップマップ・データから4Dミップマップを再構築することに相当する。図3の例では、4Dミップマップ(3,0)が、3Dミップマップ・レベル0のダウンサンプリングを通じて再構築される。フェッチされたテクセルは、補間された拡散反射色または鏡面反射色と組み合わせられて、そのテクスチャ・サンプルが画面上でマッピングされる場所を示す、関連付けられた(一般には非整数の)画面座標を持つ表面の色サンプルを得ることができる。本発明による直接の4Dミップマップ再構築を使用すると、テクセル・シェーダ130は、ミップマップの再構築機構とみなすことができる。テクスチャ空間リサンプラは、例えば標準的なバイリニア補間を介して、2次的なテクスチャ・マップからテクスチャ・サンプルを取得する。それが要求される場合は、これは、トリリニアまたは異方性のフィルタリング方法に拡張されることができ、また、1Dおよび3Dのテクスチャをフェッチするサポートが追加されることができる(このサポートが追加されると、ラスタライザによるテクスチャ座標の補間も、存在する可能性のある第3の座標をサポートするように一般化される必要がある)。あるいは、テクスチャ・メモリ134は、テクスチャ・マップを4Dのミップマップ構造に格納することもできる。そのような実施形態では、テクセル空間リサンプラは、単に、指定された4Dミップマップからテクセル・データを取り出すことができる。下記で述べるように、ラスタライザは、よりディテールの細かい4Dミップマップで動作することができる。そのような場合、テクセル空間リサンプラは、リサンプリングに使用されるそれほど細かくない4Dミップマップから、ラスタライザのためのより細かい4Dミップマップ・データを直接再構築するように構成されることが好ましい。
【0025】
画面空間リサンプラ140は、マッピングされたテクセルを整数の画面位置に配置して、画面でのプリミティブの画像を提供する。画面空間のリサンプリングには、次の操作が含まれる。
−テクセル・グリッドの色情報を連続信号に再構築する。
−その連続信号をテクスチャ空間から画面空間にマッピングする。
−マッピングされた連続信号を画面空間で事前フィルタリングする。
−画面空間で事前フィルタリングされた信号をサンプリングする。
【0026】
初めにテクスチャ空間から画面空間へのマッピングが行われ、その後マッピングされた信号を再構築してもよいことは理解されよう。図4に、枠を再構築フィルタのフットプリントとして使用するマッピングと再構築フィルタリングを示す。より高次のフィルタなどの他のフィルタも使用されてよい。この図は、ピクセルのグリッドを示す。各ピクセルは、そのピクセルの無次元の位置を囲む四角形として示される。黒い点は、変換(マッピング)後の無次元の入力テクセル座標の位置を表す。元のテクセルのフットプリントが取り出され、画面に投影される。変換後のテクセルの大きさと位置とフットプリントは、図4の点線の四角形として示される。
【0027】
図5に示すように、次いで、画面空間の事前フィルタ・フットプリントが画面空間の再構築された枠(テクセルを画面空間にマッピングした後)と重なる画面空間のピクセルに、マッピングされた各テクセルが配置される。テクセルの再構築された枠500は、強調表示された長方形510で示す。事前フィルタのフットプリントは、数ピクセルに及ぶことができる。フィルタは、横方向のみに及ぶことができるが、縦方向の範囲を持ってもよい。図5の例では、その範囲が属するピクセルを中心とし、2つの隣接ピクセルを包含する、3ピクセルからなる横方向と縦方向の範囲両方にフィルタが用いられる。この場合は、12個の出力ピクセルが寄与を受ける。それら出力ピクセルそれぞれについて、各自の事前フィルタの形状を使用して入力テクセル値を重み付けすることにより、寄与が求められる。
【0028】
画面空間リサンプラから得られたピクセル断片が次いで、図1の150(および図2の250)のEAA&HSR(輪郭線のアンチエイリアシングおよび隠面消去)で組み合わせられ、ユニット150は、図1の断片バッファ160を使用する(および図2の260)。ピクセル断片は、このバッファに深度ソート(depth sort)されて、隠面問題を解決する。すべてのプリミティブがレンダリングされると、各ピクセルの表示される断片がすべて組み合わせられ(画面空間リサンプラが事前フィルタですでに重み付けされた色を供給するので、大半の場合は単純な加算に相当する)、フレーム・バッファに送られる。輪郭線の近くで画面空間ラスタライザによって生成された部分的な寄与を組み合わせることから輪郭線のアンチエイリアシングが得られ、結果として、異なるプリミティブにある色の組み合わせである最終的なピクセル色が得られる。
【0029】
(4Dミップマップ・レベルの調整)
ラスタライザ化グリッドを提供したテクスチャ・マップに対して、ラスタライザは、それぞれ別個の横方向と縦方向のミップマップ・レベルを保持し、それらがともに4Dミップマップ・レベルのインデックスを形成する。4Dミップマップのテクセル再構築プロセスで、ラスタライザは、各ラスタライザ・グリッド位置について、フェッチされる必要のあるテクセルのu座標とv座標を、そのテクセルの4Dミップマップ・レベル(mmlu,mmlv)とともに提供する。
【0030】
連続するレベルが各方向に2倍または2分の1に倍率変更されるミップマップを使用する場合は、通例、0.5〜1の拡大率を提供するミップマップ・レベルが選択される。ある方向の拡大率は、テクセルがその方向に1だけ変更される(1だけ増されるなど)場合には、ピクセルの差になる。あるテクセル範囲の両方向への拡大率1は、そのテクセル範囲に、その範囲が投影される範囲にあるピクセルと同じ数のテクセルがある状況におよそ相当する。そして、両方向への0.5の拡大率は、テクセル範囲に、その範囲が投影される範囲にあるピクセルの4倍の数のテクセルがある状況に相当する。0.5より低い拡大では、より高いレベルの3Dミップマップ、すなわちより低い解像度のミップマップ(十分な解像度を与え、必要とする帯域幅がより小さい)を使用した方がよいことになる。4Dミップマップでは、原理上、両方向に固有のレベルが別々に選択されることができる。
【0031】
ミップマップ・レベル間で2の倍率(通常の場合)を使用すると、拡大率sでの1つの方向のミップマップ・レベルは、−2log(s)で得られる。当業者は、他の倍率とミップマップ・レベルの他の番号付けの場合に、同様のミップマップ選択を行うことができる。
【0032】
ラスタライザは、各テクセル(u,v)について、対応する初期の4Dミップマップ・レベル(mmlu、mmlv)を求める。ラスタライザが縦方向(および/または必要に応じて横方向)に固定されたミップマップ・レベルを使用するシステムでは、ラスタライザは、三角形の頂点におけるその方向の拡大率を求め、最も大きい拡大率を選択することにより、その方向のこの初期の4Dミップマップ・レベルを求める。そのため、所与の方向について、頂点の1つで拡大率が1であり、他の2つの頂点で0.5である場合、ラスタライザは、1を選び、その方向のミップマップ・レベルを−2log(1)=0と計算する。3つの頂点が拡大率として0.25を2回、0.5を1回有する場合は、−2log(0.5)=1になる。初期4Dミップマップ・レベルは、ラスタライザが作用するグリッドを決定する。そのレベルは、三角形内の各テクセルのテクスチャ空間リサンプリングに最も適した値とは限らない。したがって、ラスタライザの動作について縦方向のミップマップ・レベルが固定され、横方向のミップマップ・レベルが可変である場合、ラスタライザは、1つの三角形につき1回縦方向の4Dミップマップ・レベルを求め、テクセルごとに、対応する横方向の4Dミップマップ・レベルを求める。本発明によれば、ラスタライザは、各テクセル(u,v)について、そのテクセルがディスプレイ上で対応するピクセル位置にマッピングされる際に行われる拡大に相当する、対応する拡大率も求める。本発明によれば、最終的な4Dミップマップ・レベルは、初期の4Dミップマップ・レベルと拡大率に依存して決定される。最終的な4Dミップマップ・レベルは、テクスチャ空間リサンプラによって使用される。拡大率は、縦方向のみであることが好ましく、その場合、ラスタライザ自体が、三角形ごとに固定された縦方向のミップマップ・レベルを用いる。これは、処理が2回の1Dスキャンで行われる場合に特に有利である。その場合、最初のスキャンは、ディスプレイの走査線方向(「横方向」)で行われて中間画像を生成することが好ましい。そして、2回目のスキャンは、もう一方の方向でその中間画像に作用する。最初のスキャンでは、テクスチャ空間で、走査線ごとに、横方向の座標uが可変であり、縦方向の座標vが線ごとに固定される。ラスタライザは、三角形全体にわたって一定に保たれるmmlvの値を提供する。mmluの値は、テクセルごとに求められる。このようにして、ラスタライザは、テクセルごとに、最終的な値fmmluの役割も果たす初期値mmluを決定する。次いで、ラスタライザの動作に対して一定に保たれる初期4Dレベルmmlvが、下記で述べるテクスチャ空間のリサンプリングのために、テクセルごとに最終値fmmlvに調整される。
【0033】
最終的な縦方向のミップマップ・レベルfmmlvは、拡大率が所定の閾値より小さい場合はmmlvを調整してより低い解像度のミップマップ・レベルを識別し、その他の場合は求められたmmlvミップマップ・レベルを維持することによって決定される。変更を決定するために、ラスタライザは、2回目のパス(v値をy値にマッピングする)の拡大率を示す∂y/∂vを計算する。この値は、現在選択されているラスタ化グリッドの位置に基づいて、縦方向のラスタ化ミップマップ・レベルmmlvのv値が1だけ違う2つのテクセルが画面上でどれだけ離れているかを示す。mmlvの選択のために、これは最高でも1ピクセル分の間隔であるが、三角形内の縮小の相違のため、またずれ(shear)の低減の結果ラスタ化グリッドが縦方向に精緻にされている場合があるために、1ピクセルより大幅に小さい場合がある。2倍および2分の1の倍率変更を使用する場合、閾値は1/2であることが好ましい。当業者は、他の倍率に最適な閾値を決定することができる。したがって、∂y/∂vが1/2より小さい場合は、初期のmmlvで想定するよりも粗い4Dミップマップ・レベルmmlvが選択されてよい(そして、フェッチされた4Dミップマップ・レベルmmlvのその後の行で1/2〜1の間になお有効な画面ピクセル間隔がある)。より正確には、∂y/∂vは、特定のラスタ化グリッド位置についての適正なディテール量を供給するために実際に必要とされる縦方向の4Dミップマップ・レベルに達するためにmmlvに可算されることができる、ミップマップ・レベルの差Δ=mmlv=2log(∂y/∂v)を決定する。これは、最終的なミップマップ・レベルfmmlv=mmlv+Δmmlvを与える。好ましくは、ラスタライザは、初期4Dミップマップ・レベルに加えて、テクセルごとの縦方向の拡大率を提供する。そして、上で示した最終的な縦方向の4Dミップマップ・レベルを求める計算は、テクスチャ空間リサンプラによって行われることができるが、システムの別のユニットによって行われてもよい。上記の好ましい実施形態についての説明は、縦方向の拡大についてであることは理解されよう。他のシステムでは、同じ原理を横方向または両方の方向に使用することができる。上記の技術を使用すると、三角形内の一部の位置ではより細かいグリッドでラスタ化が行われるのにも関わらず、リサンプリングに最適な4Dミップマップ・レベルが選択される。そのため、この細かいラスタ化はより多くの処理力を要するが、テクスチャ・マップをフェッチするために必要なメモリ帯域幅は影響されない。
【0034】
最終的な4Dミップマップ・レベルは、テクスチャ・メモリが完全な4Dミップマップ構造を格納する場合は、指定された4Dミップマップからテクスチャ・データをフェッチするためにテクスチャ空間リサンプラによって使用されることができる。最終的な4Dミップマップは、ラスタライザに使用される初期4Dミップマップより低い解像度でよい。帯域幅を節減するために、補間を使用して、低い解像度の4Dミップマップからより高い解像度の4Dミップマップが直接再構築されることができる。
【0035】
(4Dミップマップ再構築のための3Dミップマップ・レベルの選択)
アプリケーションは通常、標準的な3Dミップマップ表現のみでテクスチャを供給するので、好ましい実施形態では、ラスタ化グリッドを提供したテクスチャ・マップには、3Dミップマップからの直接の4Dミップマップ再構築が適用される。そして、テクセル・シェーダが4Dミップマップの再構築機構として機能する。上記で述べたように、ラスタライザは、別個の横方向のミップマップ・レベルと縦方向のミップマップ・レベルを保持し、それらがともに4Dミップマップ・レベルのインデックスを形成する。4Dミップマップのテクセル再構築プロセスで、本発明によるラスタライザは、各ラスタ化グリッド位置について、フェッチされる必要があるテクセルのu座標とv座標を、そのテクセルの縦方向の拡大率(あるいは最終的な4Dミップマップ・レベル(mmlu、fmmlv))とともに提供する。4D再構築ユニットは、要求される座標(u,v)におけるサンプルを提供するためにフィルタリングされることができるテクセルをフェッチする3Dミップマップ・レベルmmlを求める必要がある。3Dミップマップ・レベルmmlは、4Dミップマップ・レベル(mml,mml)に対応し、図3、6、7ではこれらを網掛けした四角形として図示する。それらの四角形から、非対角のミップマップ・レベルにあるサンプルが生成される必要がある。これらの図は、拡大を使用して3Dミップマップ・レベル3から(図6)、拡大を使用して3Dミップマップ・レベル0から(図3)、または、それらの間にあるレベルから(図7)、どのように4Dミップマップ・レベル(3,0)のテクセルが生成されることができるかを示している。あるテクセル・サンプルについてラスタライザから提供される(可能性としては上記のように調整された)4Dミップマップ・レベル(mmlu、fmmlv)を考慮して、テクスチャ・メモリをアドレス指定するために用いられる3Dミップマップ・レベルmmlを決定する機能が必要とされる。以下の3つの代替方式をここでより詳細に説明し、それぞれの方法は、異なる品質/性能のトレードオフを提供する。
【0036】
低品質の設定では、図6に示すように、2つの4Dミップマップ・レベルのより粗い方に対応する3Dミップマップ・レベルが選択される。そのレベルが次いでもう一方の方向に拡大されて(その方向のぼかしをもたらす)、4Dミップマップ・レベルのテクセルに到達する。拡大は、線形補間、あるいは必要に応じてより高次のフィルタを使用して得られることが好ましい。この利点は、最小量の3Dテクセルがフェッチされ、テクスチャのキャッシングを用いて、後の4Dミップマップ・レベル・テクセルを生成するためにテクスチャ・サンプルを再使用することができる点である(多くの4Dミップマップ・サンプルは、同じ3Dミップマップ・レベル・サンプル間で生成されるため)。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MAX(mmlu,fmmlv)
である。
【0037】
高品質の設定では、図3に示すように、2つの4Dミップマップ・レベルのうちより細かい方に対応する3Dミップマップ・レベルが選択される。そして、そのレベルがもう一方の方向に縮小されて、4Dミップマップ・レベルのテクセルに到達する。この利点は、最大限の品質と鮮明さが維持されることである。しかし、これは、生成される必要のある4Dミップマップ・レベルのテクセルごとに、可能性としては多数回のテクセル・フェッチを行った上で得られる。生成されたテクセルは、フェッチされたテクセルの非重み付け平均であることが好ましい(より高次のフィルタも使用されてよい)。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MIN(mmlu,fmmlv)
である。
【0038】
中程度の品質の設定では、図7に示すように、低品質設定と高品質設定の間の妥協点が選択される。好ましい実施形態で、この設定は、いくらかの(高コストな)縮小(高品質設定の場合のような)を可能にするが、多くともa個のミップマップ・レベルを許可するパラメータa(最大異方性レベル)で調整される。これは、最大で2a個のテクセルが1つの方向で組み合わせられることを意味する。横方向のミップマップ・レベルと縦方向のミップマップ・レベルとのより大きな差は、低品質設定に類似の手法を使用して埋められる。この選択肢が、好ましい設定a=2の場合について図7に示される。aを0に設定すると、低品質の設定になり、aを非常に大きく設定すると高品質の設定になる。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MAX(MAX(mmlu,fmmlv)−a,MIN(mmlu,fmmlv))
である。
【0039】
低品質の設定(非常に限られた異方性レベルのみを許可する)では、図8に示すように、アーチファクトが生じる可能性がある。(従来の非異方性フィルタリングのように)ある角度から見たテクスチャがぼやけて見えるようになるが、バイリニアのテクスチャ・フィルタリングを使用する際にはミップマップ・レベルを離散的に切り替えるので、ぼやけの急な変化が見えるようになる。テクセルごとに3Dミップマップ・レベルが選択されるので、それらの線は、見る者の移動に伴って移動する(三角形の輪郭線に固定されない)。低品質のオプションを使用して帯域幅が制限される必要がある場合は、トリリニア・フィルタリング(ミップマップ・レベル間を混合する)のようなものが取り込まれて、推移をゆるやかにすることができる。しかし、高品質の設定の場合(またはa=3などの中間設定で許される妥当な異方性レベルの場合)は、そうした設定では十分なディテールが得られ、トリリニア・フィルタリングで生じるさらなるぼやけは望まないので、トリリニア・フィルタリング等の導入は不要である。
【0040】
上記の計算でmmlに割り当てられる値は、ミップマップ・レベルが利用可能な範囲の値に制限され(例えばmmlの負の値を排除するため)、メモリ中でミップマップ・レベルを指示するために使用される整数レベルに変換されなければならないことに留意されたい。これは、例えば丸めや切捨てなどの適切な方法で行ってよい。残りの小数部は、トリリニア・フィルタリングに使用されることが好ましい。丸めの瞬間は、選択することができる。好ましくは、mmlの最終値は丸められることが好ましく、mmlは例えば上記の3つの手法の1つで求められる。それが要求される場合は、Δmmlvも、求められた時に直ちに例えば切り捨てで丸められてもよい。
【数7】
【0041】
図9に、コンピュータ900のブロック図を示し、コンピュータ900は、中央演算処理装置910、メモリ920、ディスプレイ930、および本発明によるコンピュータ・グラフィック・システム940を含む。コンピュータは、パーソナル・コンピュータや、ゲーム機、ワーク・ステーションなどの従来のコンピュータでよい。コンピュータ・グラフィック・システムは、グラフィック・プロセッサを使用して実施されることができる。そのようなグラフィック・プロセッサは、そのグラフィック・プロセッサに本発明による方法を実行させるプログラムの制御下で操作されることができる。プログラムは、(例えばROMに)固定して埋め込まれることができるが、バックグラウンド・メモリからロードされることもできる。後者の場合、プログラムは、例えばCD−ROMなどの記録担体、あるいはインターネットなどの有線または無線の通信手段を使用して、適切な形態で分散することができる。
【0042】
上述の実施形態は、本発明を制限するものではなく、本発明を例示するものであることに留意されたく、当業者は、頭記の特許請求の範囲から逸脱することなく多数の代替実施形態を設計することができる。請求項では、括弧内に入れられた参照符号は、請求項を制限するものと解釈すべきでない。動詞「〜を備える」とその変化形の使用は、請求項に述べられる要素またはステップ以外の要素またはステップの存在を除外しない。要素につく冠詞「a」あるいは「an」は、その要素が複数存在することを除外しない。本発明は、いくつかの別個の要素からなるハードウェアにより、また、適切にプログラムされたコンピュータにより実施されることができる。いくつかの手段を列挙するデバイス請求項では、それら手段のいくつかは、1つの同一のハードウェア項目によって実施されることができる。特定の手段が相互に異なる独立請求項に記載されるという単なる事実は、それら手段の組み合わせが有利に使用されることができないことを意味するものではない。
【図面の簡単な説明】
【0043】
【図1】順方向テクスチャ・マッピング・システムのグラフィック・パイプラインを示す図である。
【図2】逆方向テクスチャ・マッピング・システムのグラフィック・パイプラインを示す図である。
【図3】4Dミップマップ構造を示す図である。
【図4】再構築フィルタリングを説明する図である。
【図5】画面空間の事前フィルタリングを説明する図である。
【図6】低品質のミップマップ選択を示す図である。
【図7】中間品質のミップマップ選択を示す図である。
【図8】低品質のミップマップ選択における、目に見えるミップマップ・レベルの推移を示す図である。
【図9】本発明によるグラフィック・システムを組み込んだコンピュータのブロック図である。
【技術分野】
【0001】
本発明は、コンピュータ・グラフィック処理のシステムおよび方法に関する。
【背景技術】
【0002】
3Dグラフィックをレンダリングする際の重要な要素の1つはテクスチャ・マッピングである。コンピュータで生成されたオブジェクトの表面上にテクスチャをマッピングすることは、オブジェクトの外見の現実感を大幅に向上させる技術である。テクスチャは、通例、写真やコンピュータで生成された画像などの2Dピクチャである。例えば、壁の2D画像(の一部)を、コンピュータ・ゲームの壁の3次元表現に投影することができる。大半の3Dオブジェクトは、画面のわずかな部分しかカバーせず、しばしば、結果的にテクスチャ・マップ(近くで見た時にそこそこの外見を提供するためにも十分な解像度を持つ)が縮小される。しばしば、例えば壁が遠く離れている場合など、テクスチャ・マッピングの際に2Dピクチャを大幅に縮小しなければならないことがある。原理上は、その場合、テクスチャ・マッピングは、元の画像を大幅に倍率縮小することによって行うことができる。高解像度の2Dピクチャを読み取るために必要とされる帯域幅を低減するために、しばしば、倍率が縮小されたバージョンの2Dピクチャがいくつか作成される前処理ステップが行われる。テクスチャ・マッピングの際に、解像度がスクリーン画像と最も一致する倍率縮小ピクチャの中でより小さいピクチャのみの一部分が、読み取られ、画面にマッピングされる。倍率縮小されたバージョンを伴う元の2Dピクチャは、ミップマップと呼ばれる。テクスチャ・マッピングとミップマップについては、"Survey of Texture Mapping Paul S. Heckbert, IEEE Computer Graphics and Applications, Nov. 1986, pp. 56-67 and in U.S. 6,236,405 Blに詳細に記載される。ミップマップでは、元の画像がレベル0と表される。レベル1では、各エントリは、例えば2×2個のテクセルの平均値を保持する。本発明で使用される用語「テクセル(texture element)」とは、テクスチャのピクチャ要素(ピクセル)を意味する。これは、テクスチャ全体の平均色を保持する1つのみのエントリがある最上位レベルに達するまで継続されることができる。したがって、正方形のミップマップでは、レベルnは、レベルn−1の4分の1のサイズになる。本明細書では、用語「テクスチャ」は、オブジェクトの上にマッピングされる画像または構造の同義語として使用される。
【0003】
いくつかのタイプのミップマップが知られており、どの倍率縮小画像が格納されるかが異なる。3Dミップマップでは、両方の方向に同じ率だけ倍率縮小されるのに対し、4Dミップマップでは、元の画像が両方の次元で別々に倍率縮小される。3Dミップマップと比較すると、4Dミップマップ構成は、記憶するために多くのメモリを必要とする。したがって、ゲームなどのコンピュータ・グラフィックは、多くの場合3Dミップマップ構造を用いる。1B02/05468として出願された整理番号PHNL010924EPPの未公開欧州特許出願は、3Dミップマップから直接4Dミップマップを生成する方法を記載する。これは、グラフィック・システムに4Dミップマップを供給しないプログラムと組み合わせても、高品質のレンダリングを可能にする。
【0004】
一般に、画面のグリッドに(ミップマップ化された)画像をマッピングするにはいくつかの知られた方法がある。最も一般的なコンピュータ・グラフィック・システムは、いわゆる逆方向テクスチャ・マッピング方式を用いる。この方式では、画面のピクセルが順次処理され、各ピクセルについて、ラスタ化プロセスでテクスチャへの画面ピクセルの投影(結果としてピクセルの「フットプリント」が得られる)が決定され、通常は重み付き平均の形で、正しいピクセル色を最も近似する平均値が計算される。これに代わる方式は、いわゆる順方向テクスチャ・マッピング法である。この方法は、テクスチャ・マップで定義された座標系中のテクセルをトラバースすることによって機能する。そして、一般にビデオの倍率変更に用いられるリサンプラを使用して、テクセル色が画面ピクセルに配置(splat)される。
【0005】
レンダリングされる2Dまたは3Dオブジェクトは、通例、プリミティブ(通常は三角形)を使用してモデル化される。グラフィック・システムの頂点シェーダは、入力としてプリミティブの頂点を受け取り、頂点シェーディング・プログラムを使用して、その頂点それぞれを変更する、あるいは属性を追加する。順方向マッピング・システムでは、次いで、ラスタライザが、その属性を補間しながら、テクスチャ空間のプリミティブをトラバースする。ラスタライザは、三角形の頂点を定義する頂点座標を受け付ける。ラスタライザは、三角形に投影される各テクセルのテクスチャ座標(u,v)を計算する。トラバース(visit)されるテクスチャの各グリッド位置(u,v)について、テクセル・シェーダが、その属性からプリミティブの表面の局所的な色を計算する。その表面色は、次いで、画面空間リサンプラによって画面のピクセル位置にリサンプリングされる。2回のパスの順方向マッピング方式では、2D画像のマッピングは、2回の1Dマッピングに分解される。まず、画像が1つの方向、通例は走査線方向、すなわち横方向にマッピングされ、次いでもう一方の方向にマッピングされる。最初のパスでは、完全な走査線を処理し、したがって、テクスチャ空間ラスタライザの縦方向のミップマップ・レベルが、レンダリングされるプリミティブ全体(三角形)に対して固定される。ラスタライザは、三角形について、頂点についての情報に基づいて、必要とされるディテールの最大量を示す。なお横方向のミップマップ・レベルを変えることができるように、4Dのミップマップ構成が使用される。1回のパスの2Dフィルタを用い、横方向と縦方向両方のミップマップ・レベルを変えることも可能である。供給される情報は、横方向のミップマップ・レベルmmluと縦方向のミップマップ・レベルmmlvを含む。ラスタライザは、それら2つの4Dミップマップ・レベル値で決定されるグリッドに沿ってテクセルを処理する。テクスチャ空間リサンプラは、識別された4Dミップマップからテクセル位置にデータをリサンプリングする。
【発明の開示】
【発明が解決しようとする課題】
【0006】
よく考慮された使用ミップマップの選択を行うことが望まれる。過度に細かいミップマップを選択すると、過度に多くのメモリ帯域幅が生じる。過度に粗いミップマップを選択すると、品質の低すぎる画像が生成される。詳細には、三角形のあらゆる位置で必要とされるディテールの最大量に基づいて三角形全体について縦方向のミップマップ・レベルが固定される2回のパスの順方向テクスチャ・マッピング・グラフィック・システムの場合は、過度に細かいレベルを選択することの危険性が高い。
【課題を解決するための手段】
【0007】
本発明の目的は、ミップマップ・レベルを選択する方法およびシステムを提供することである。
【0008】
本発明のこの目的を満たすために、表示する画像をレンダリングするシステムは、
ミップマップ構造にテクスチャ・マップを格納するテクスチャ・メモリであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されるテクスチャ・メモリと、
テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を決定し、
決定された初期4Dミップマップ・レベルmmlu,mmlvと拡大率に依存して、対応する最終的な4Dミップマップ・レベルを決定する
ように動作するラスタライザと、
最終的な4Dミップマップ・レベルの対で識別されるテクスチャ・マップからテクスチャ・データを取得するテクスチャ空間リサンプラと、
取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングするテクスチャ・マッパと
を含む。
【0009】
ラスタライザは、初期4Dミップマップ・レベル(mmlu,mmlv)で(三角形内のいずれかの位置で必要とされる最大ディテール量に対応する形で)決定されるグリッドで動作するが、それらの値(従来のようにラスタライザからテクスチャ空間リサンプラに供給される)は、ミップマップ構造からテクスチャを選択する理想的な手段ではなく、三角形内の特定の点で実際に必要とされるよりもはるかにディテールが細かいレベルを示す場合があることを本発明者は認識した。これは特に、三角形が高い視点(perspective)で見られる場合にそうである。これは、グリッドの直角方向の1つまたは両方への拡大を生じさせる。例えば、縦方向の拡大率(縦方向は通常vで表される)は、現在のラスタ化グリッド位置について、縦方向のラスタ化ミップマップ・レベルmmlvのv値が1違う2つのテクセルが画面上でどれだけ離れるかを示す。そして、拡大率は、テクスチャ空間のリサンプリングに使用されるミップマップ・レベルの選択に影響する。本発明によるシステムは、逆方向テクスチャ・マッピング・システムにも順方向テクスチャ・マッピング・システムにも使用されることができる。
【0010】
従属請求項2の手段によれば、縦方向の4Dミップマップ・レベルは、縦方向の拡大に依存して調整される。これは、ラスタライザ自体が最初のパスで、三角形内の任意の位置で必要とされる最大ディテール量と可変の横方向のミップマップ・レベルとに基づいて、三角形全体について固定された縦方向の4Dミップマップ・レベルで動作する、2回のパスのグラフィック・システムと良好に結合する。そのような従来のラスタライザは、テクセルごとに変わる横方向の4Dミップマップ・レベルをすでに使用している。本発明によれば、ラスタライザは、テクセルごとに、縦方向の拡大に応じて初期の縦方向4Dミップマップ・レベルを調整することにより、テクスチャ空間リサンプラが使用する最終的な縦方向の4Dミップマップ・レベルも決定する。ラスタライザのすべての他の動作は、影響を受けず、固定された縦方向の4Dミップマップ・レベルでなお動作することができる。
【0011】
従属請求項3の手段によれば、ミップマップ・レベルmmlvは、拡大率が小さい場合に下げられる。その場合、より低い縦方向の解像度が使用されることができる。従来、ラスタライザによって供給される縦方向の4Dミップマップ・レベルは、プリミティブ中の1つのテクセルに必要とされる最高レベルのディテールに相当する。詳細には、拡大率が小さい場合(その方向の視点が高い場合)は、その方向に比較的大きい縮小が行われ、その方向でディテールが少ない4Dミップマップを使用できるようにする。
【0012】
従属請求項4の手段によれば、テクスチャ・メモリは、4Dミップマップ構造を格納する。テクスチャ空間リサンプラは、最終的に決定されたレベル(恐らくは解像度がより低い)で示される4Dミップマップに作用する。ラスタライザは、なお初期4Dミップマップ(可能性としては不要な高ディテールを有する)に作用する。リサンプラは、最終的に識別された4Dミップマップから(例えば補間を通じて)データを再構築することにより、ラスタライザにデータを提供する。このようにして、品質が影響を受けないテクセルではテクスチャ・メモリへの帯域幅が低減されることができる。
【0013】
従属請求項5の手段によれば、ゲームなどのコンピュータ・グラフィック・アプリケーションで通常そうであるように、テクスチャ・メモリは、3Dミップマップ構造を格納する。テクスチャ空間リサンプラは、3Dミップマップの1つから、最終的に識別された4Dミップマップを直接生成する。未公開欧州特許出願IB02/05468は、3Dミップマップから直接4Dミップマップを生成する方法を記載する。これは、グラフィック・システムに4Dミップマップを供給しないプログラムと組み合わせても高品質のレンダリングを可能にする。
【0014】
従属請求項6および7の手段によれば、それぞれ、高品質のレンダリングが優先される場合は、3Dミップマップ・レベルが、両方の4Dミップマップ・レベルのうち最大のレベルに選択されることができ、または、メモリ帯域幅を低減することが優先される場合は、3Dミップマップ・レベルが、両方の4Dミップマップ・レベルのうち最小のレベルに選択されることができる。
【0015】
従属請求項8の手段によれば、3Dミップマップ・レベルを選択する際に、最大異方性レベルも考慮される。従属請求項9は、最大異方性レベルを考慮に入れる好ましい方式を示す。
【0016】
本発明の目的を満たすために、表示する画像をレンダリングする方法は、
ミップマップ構造にテクスチャ・マップを格納することであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されることと、
ラスタ化動作で、テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
テクセルがディスプレイ上の対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
求められた4Dミップマップ・レベルmmlu,mmlvおよび拡大率に依存した、最終的な4Dミップマップ・レベルを求めることと、
テクスチャ空間のリサンプリング動作で、最終的な4Dミップマップ・レベルによって識別されるテクスチャ・マップについてのテクスチャ・データを取得することと、
取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングすることと
を含む。
【0017】
本発明の上記および他の態様は、以下で説明される実施形態を参照することから明らかになり、解明されよう。
【発明を実施するための最良の形態】
【0018】
(システムの概要)
図1に、本発明が利用されることができるグラフィック・パイプラインの終末段階の例示的アーキテクチャを示す。図1は、順方向テクスチャ・マッピング・システムを示す。図2は、逆方向テクスチャ・マッピング・システムのグラフィック・パイプラインの終末段階を示す。この説明では、視覚化されるモデルは、三角形をプリミティブとして使用して描写されるものとする。当業者は、同じ技術を、他の多角形や四辺形(quad)、ベジェ・パッチなどの曲面などの他のプリミティブに容易に適用することができる。パイプラインへの入力は、コンピュータ・ゲームなどのグラフィック・プログラムとグラフィック・パイプラインの初めの方のステージにより、その頂点で指定されたプリミティブである。プリミティブは、(x,y)座標を使用する画面空間と、(u,v)座標を使用する個々のテクセル空間の両方で与えられる。パイプラインは、頂点シェーダ110、テクスチャ空間ラスタライザ120、テクセル空間リサンプラ132およびテクスチャ・メモリ134を備えるテクセル・シェーダ130、画面空間リサンプラ140、およびEAA&HSR(輪郭線のアンチエイリアシングおよび隠面消去)ユニット150を含む。出力されるピクセルは、例えばRAM DACなどのD/A変換器を使用して表示してアナログ出力を生成するために、フレーム・バッファ160に格納される。必要に応じて、DVIなどのデジタル・インタフェースが使用されて、ピクセル・データをディスプレイに供給してもよい。ディスプレイは、CRT、LCD、プラズマ・ディスプレイを含む任意のタイプでよい。あるいは、レンダリングされるピクチャは、後のプリミティブのテクスチャ・マップとして使用されてもよい。次いで、図1および2に示すグラフィック・パイプラインの機能をより詳細に説明して、本発明が使用されることができる例示的システムを具体的に説明する。
【0019】
図1の頂点シェーダ110と図2の頂点シェーダ210は、入力として三角形(プリミティブ)の頂点を受け取り、頂点シェーディング・プログラムを使用して、その各頂点を変更する、または属性を追加する。頂点シェーダによって提供されるデータは通常、拡散反射色および/または鏡面反射色、テクスチャ座標、(同次の(homogeneous))画面座標のような属性と、場合によっては表面法線やシェーディング・プロセスに必要とされる他のデータなどの追加データを含む。頂点シェーダは、従来の変換および照明ユニットでよい。頂点シェーダによって生成される属性は、ラスタライザに供給される。
【0020】
図2のラスタライザ220は、いわゆる逆方向テクスチャ・マッピング・システム(画面のピクセルにテクスチャを投影するのではなく、画面空間のピクセルがテクスチャ空間のテクスチャにマッピングされる)の画面空間で動作する。このようなラスタライザは、走査線アルゴリズムを使用して、ラスタ化プロセスのための駆動変数として頂点属性から画面座標を選択することにより、画面のプリミティブの投影内に存在するピクセルをトラバースする。したがってラスタライザは、「画面グリッド」上でプリミティブをトラバースする。画面空間の座標として、x(「横」方向)とy(「縦」方向)が用いられる。
【0021】
図1に示す好ましい実施形態では、ラスタライザ120は、表面空間で動作する(いわゆる順方向テクスチャ・マッピング・システム)。以降の説明は、この好ましい実施形態を対象とする。当業者は、以下に概説される原理を逆方向マッピング・システムにも等しく適用することができる。表面空間ラスタライザは、例えば、ラスタ化プロセスの駆動変数として(画面座標ではなく)テクスチャ座標を選択することにより、(画面への投影ではなく)プリミティブの表面のパラメータ化をトラバースする。ラスタライザは、「表面グリッド」上のプリミティブをトラバースする。テクスチャ・マップに関連付けられたグリッドがそのような表面グリッドを提供することができ、表面グリッドとして使用されることが好ましい(その理由は、テクスチャ・グリッドでテクスチャ・サンプルを得るとリサンプリングが不要であるため)。テクスチャ・マップがない場合、または例えばテクスチャが1Dまたは3Dである場合は、別のグリッドが選択されてよい。テクスチャ空間の座標として、u(「横」方向)とv(「縦」方向)が使用される。この説明における「横方向」と「縦方向」は、相対的なものに過ぎないことは理解されよう。例えば、画面が回転されて、グラフィック処理は影響されないままにし、画面上の出力を回転させることができる。テクスチャ・グリッドはしばしば表面グリッドとして用いられるので、「テクスチャ・グリッド」という表記(および「テクスチャ空間」と「テクセル」)は、そのような一般化されたグリッド(およびそれに関連付けられた空間とサンプル)を表すために用いられる。ラスタライザがグリッドのテクセル位置をトラバースする際、各頂点で与えられたすべての属性がグリッド上で補間される(テクセルが投影される画面座標が透視補間されるのを除いては通例線形補間)。すると、各テクセル位置で属性が入手できるようになり、テクセル・シェーダ130がその属性を使用することができる。基本グリッドのuおよびvテクスチャ座標をトラバースする際、ラスタライザは、対応する画面座標(x,y)も保持する(または逆方向マッピング・システムの場合はその逆)。この対応関係は、
【数1】
【数2】
【数3】
の線形補間によって対応関係が維持されることができ、
【数4】
は同次座標を表す。このような座標は当技術分野でよく知られており、ここではこれ以上説明しない。そして、透視分割
【数5】
と
【数6】
を使用して画面座標が計算されることができる。下記でより詳細に説明するように、2回の1Dリサンプリング・パスに基づく画面空間のリサンプリングを使用する場合、画面のy座標は、ミップマップを決定する目的のみに使用される。1パスの2D画面空間リサンプラを使用すると、y座標は、リサンプラへの入力としても使用される。実際の色を計算するために、ラスタライザは、拡散反射色(RGBA)、鏡面反射色(RGB)、および追加的なテクスチャ座標の対(多重テクスチャ付けを可能にする)を補間することができる。他の属性(表面法線など)も補間されることができる。
【0022】
本発明によるシステムでは、テクスチャ空間ラスタライザは、図3に示すように、4Dのミップマップ化に対応するグリッド上のテクスチャ・マップをトラバースする。3Dミップマップでは、両方の方向が同じ率だけ縮小される。3Dミップマップは、ミップマップ・レベルmmlで指定される。元の画像はレベル0と表される。レベル1では、各エントリは、例えば2×2テクセルの平均値を保持する。これは、テクスチャ全体の平均色を保持する1つのみのエントリがある最上位レベルに達するまで継続されることができる。したがって、後続のレベルが各方向に2分の1に縮小される正方形のミップマップでは、レベルnは、レベルn−1の4分の1の大きさになる。他の倍率も使用されてよい。4Dミップマップでは、元の画像は、両方の次元で別々に倍率縮小される。4Dミップマップは、横方向のミップマップ・レベルmmluと、縦方向のミップマップ・レベルmmlvで指定される。図3に、16個のミップマップ・レベル(0,0),(1,0),...,(3,3)のディテールを与える4Dミップマップを示す。グレーで表すミップマップ・レベル(0,0),(1,1),(2,2)および(3,3)が、それぞれ元の3Dミップマップ・レベル0、1、2、3を形成する。ラスタライザは、各テクセル(u,v)について、対応する4Dミップマップ・レベル(mmlu、mmlv)をテクセル・シェーダ130に供給する。
【0023】
テクセル・シェーダ130は、テクセルごとに、局所的な表面色を計算する。図2のピクセル・シェーダ230も同じように動作する。テクセル・シェーダは、表面グリッドのグリッド位置における属性に対して作用し、プリミティブに関連付けられた2次的なテクスチャがある場合には、標準のテクスチャ空間リサンプラ132とともに逆方向マッピングを使用して、それらのテクスチャから色を得る。テクスチャ・データが必要とされる時は、テクスチャ空間リサンプラが使用されて、テクスチャ座標を考慮してテクスチャ・サンプルを得る。それらのテクスチャ座標は、ラスタライザから受け取られる補間された座標と、以前に行われたテクスチャのフェッチ(いわゆる依存テクスチャ付け)および/または計算の結果に基づいて、テクセル・シェーダによって生成される。テクスチャ・フィルタ動作は、通常、近傍テクセルのバイリニアまたはトリリニア補間、または異方性(透視変換された)フィルタ・フットプリントを近似するそのようなテクスチャ・プローブの組み合わせに基づく。テクセル空間リサンプラの2Dリサンプリング動作は、1D FIRフィルタ構造を使用して2回の1Dリンサプルパスで実行されることが好ましい。
【0024】
好ましい実施形態では、テクスチャ・メモリ134(および図2の234)は、3Dミップマップ構造にテクスチャ・マップを格納する。そのような実施形態では、テクスチャ空間リサンプラ132(および図2の232)は、下記でより詳しく説明するように、3Dミップマップから所望の4Dミップマップを直接再構築するように構成されることが好ましい。すると、テクスチャのフェッチは、テクスチャ・メモリ134に格納された3Dミップマップ・データから4Dミップマップを再構築することに相当する。図3の例では、4Dミップマップ(3,0)が、3Dミップマップ・レベル0のダウンサンプリングを通じて再構築される。フェッチされたテクセルは、補間された拡散反射色または鏡面反射色と組み合わせられて、そのテクスチャ・サンプルが画面上でマッピングされる場所を示す、関連付けられた(一般には非整数の)画面座標を持つ表面の色サンプルを得ることができる。本発明による直接の4Dミップマップ再構築を使用すると、テクセル・シェーダ130は、ミップマップの再構築機構とみなすことができる。テクスチャ空間リサンプラは、例えば標準的なバイリニア補間を介して、2次的なテクスチャ・マップからテクスチャ・サンプルを取得する。それが要求される場合は、これは、トリリニアまたは異方性のフィルタリング方法に拡張されることができ、また、1Dおよび3Dのテクスチャをフェッチするサポートが追加されることができる(このサポートが追加されると、ラスタライザによるテクスチャ座標の補間も、存在する可能性のある第3の座標をサポートするように一般化される必要がある)。あるいは、テクスチャ・メモリ134は、テクスチャ・マップを4Dのミップマップ構造に格納することもできる。そのような実施形態では、テクセル空間リサンプラは、単に、指定された4Dミップマップからテクセル・データを取り出すことができる。下記で述べるように、ラスタライザは、よりディテールの細かい4Dミップマップで動作することができる。そのような場合、テクセル空間リサンプラは、リサンプリングに使用されるそれほど細かくない4Dミップマップから、ラスタライザのためのより細かい4Dミップマップ・データを直接再構築するように構成されることが好ましい。
【0025】
画面空間リサンプラ140は、マッピングされたテクセルを整数の画面位置に配置して、画面でのプリミティブの画像を提供する。画面空間のリサンプリングには、次の操作が含まれる。
−テクセル・グリッドの色情報を連続信号に再構築する。
−その連続信号をテクスチャ空間から画面空間にマッピングする。
−マッピングされた連続信号を画面空間で事前フィルタリングする。
−画面空間で事前フィルタリングされた信号をサンプリングする。
【0026】
初めにテクスチャ空間から画面空間へのマッピングが行われ、その後マッピングされた信号を再構築してもよいことは理解されよう。図4に、枠を再構築フィルタのフットプリントとして使用するマッピングと再構築フィルタリングを示す。より高次のフィルタなどの他のフィルタも使用されてよい。この図は、ピクセルのグリッドを示す。各ピクセルは、そのピクセルの無次元の位置を囲む四角形として示される。黒い点は、変換(マッピング)後の無次元の入力テクセル座標の位置を表す。元のテクセルのフットプリントが取り出され、画面に投影される。変換後のテクセルの大きさと位置とフットプリントは、図4の点線の四角形として示される。
【0027】
図5に示すように、次いで、画面空間の事前フィルタ・フットプリントが画面空間の再構築された枠(テクセルを画面空間にマッピングした後)と重なる画面空間のピクセルに、マッピングされた各テクセルが配置される。テクセルの再構築された枠500は、強調表示された長方形510で示す。事前フィルタのフットプリントは、数ピクセルに及ぶことができる。フィルタは、横方向のみに及ぶことができるが、縦方向の範囲を持ってもよい。図5の例では、その範囲が属するピクセルを中心とし、2つの隣接ピクセルを包含する、3ピクセルからなる横方向と縦方向の範囲両方にフィルタが用いられる。この場合は、12個の出力ピクセルが寄与を受ける。それら出力ピクセルそれぞれについて、各自の事前フィルタの形状を使用して入力テクセル値を重み付けすることにより、寄与が求められる。
【0028】
画面空間リサンプラから得られたピクセル断片が次いで、図1の150(および図2の250)のEAA&HSR(輪郭線のアンチエイリアシングおよび隠面消去)で組み合わせられ、ユニット150は、図1の断片バッファ160を使用する(および図2の260)。ピクセル断片は、このバッファに深度ソート(depth sort)されて、隠面問題を解決する。すべてのプリミティブがレンダリングされると、各ピクセルの表示される断片がすべて組み合わせられ(画面空間リサンプラが事前フィルタですでに重み付けされた色を供給するので、大半の場合は単純な加算に相当する)、フレーム・バッファに送られる。輪郭線の近くで画面空間ラスタライザによって生成された部分的な寄与を組み合わせることから輪郭線のアンチエイリアシングが得られ、結果として、異なるプリミティブにある色の組み合わせである最終的なピクセル色が得られる。
【0029】
(4Dミップマップ・レベルの調整)
ラスタライザ化グリッドを提供したテクスチャ・マップに対して、ラスタライザは、それぞれ別個の横方向と縦方向のミップマップ・レベルを保持し、それらがともに4Dミップマップ・レベルのインデックスを形成する。4Dミップマップのテクセル再構築プロセスで、ラスタライザは、各ラスタライザ・グリッド位置について、フェッチされる必要のあるテクセルのu座標とv座標を、そのテクセルの4Dミップマップ・レベル(mmlu,mmlv)とともに提供する。
【0030】
連続するレベルが各方向に2倍または2分の1に倍率変更されるミップマップを使用する場合は、通例、0.5〜1の拡大率を提供するミップマップ・レベルが選択される。ある方向の拡大率は、テクセルがその方向に1だけ変更される(1だけ増されるなど)場合には、ピクセルの差になる。あるテクセル範囲の両方向への拡大率1は、そのテクセル範囲に、その範囲が投影される範囲にあるピクセルと同じ数のテクセルがある状況におよそ相当する。そして、両方向への0.5の拡大率は、テクセル範囲に、その範囲が投影される範囲にあるピクセルの4倍の数のテクセルがある状況に相当する。0.5より低い拡大では、より高いレベルの3Dミップマップ、すなわちより低い解像度のミップマップ(十分な解像度を与え、必要とする帯域幅がより小さい)を使用した方がよいことになる。4Dミップマップでは、原理上、両方向に固有のレベルが別々に選択されることができる。
【0031】
ミップマップ・レベル間で2の倍率(通常の場合)を使用すると、拡大率sでの1つの方向のミップマップ・レベルは、−2log(s)で得られる。当業者は、他の倍率とミップマップ・レベルの他の番号付けの場合に、同様のミップマップ選択を行うことができる。
【0032】
ラスタライザは、各テクセル(u,v)について、対応する初期の4Dミップマップ・レベル(mmlu、mmlv)を求める。ラスタライザが縦方向(および/または必要に応じて横方向)に固定されたミップマップ・レベルを使用するシステムでは、ラスタライザは、三角形の頂点におけるその方向の拡大率を求め、最も大きい拡大率を選択することにより、その方向のこの初期の4Dミップマップ・レベルを求める。そのため、所与の方向について、頂点の1つで拡大率が1であり、他の2つの頂点で0.5である場合、ラスタライザは、1を選び、その方向のミップマップ・レベルを−2log(1)=0と計算する。3つの頂点が拡大率として0.25を2回、0.5を1回有する場合は、−2log(0.5)=1になる。初期4Dミップマップ・レベルは、ラスタライザが作用するグリッドを決定する。そのレベルは、三角形内の各テクセルのテクスチャ空間リサンプリングに最も適した値とは限らない。したがって、ラスタライザの動作について縦方向のミップマップ・レベルが固定され、横方向のミップマップ・レベルが可変である場合、ラスタライザは、1つの三角形につき1回縦方向の4Dミップマップ・レベルを求め、テクセルごとに、対応する横方向の4Dミップマップ・レベルを求める。本発明によれば、ラスタライザは、各テクセル(u,v)について、そのテクセルがディスプレイ上で対応するピクセル位置にマッピングされる際に行われる拡大に相当する、対応する拡大率も求める。本発明によれば、最終的な4Dミップマップ・レベルは、初期の4Dミップマップ・レベルと拡大率に依存して決定される。最終的な4Dミップマップ・レベルは、テクスチャ空間リサンプラによって使用される。拡大率は、縦方向のみであることが好ましく、その場合、ラスタライザ自体が、三角形ごとに固定された縦方向のミップマップ・レベルを用いる。これは、処理が2回の1Dスキャンで行われる場合に特に有利である。その場合、最初のスキャンは、ディスプレイの走査線方向(「横方向」)で行われて中間画像を生成することが好ましい。そして、2回目のスキャンは、もう一方の方向でその中間画像に作用する。最初のスキャンでは、テクスチャ空間で、走査線ごとに、横方向の座標uが可変であり、縦方向の座標vが線ごとに固定される。ラスタライザは、三角形全体にわたって一定に保たれるmmlvの値を提供する。mmluの値は、テクセルごとに求められる。このようにして、ラスタライザは、テクセルごとに、最終的な値fmmluの役割も果たす初期値mmluを決定する。次いで、ラスタライザの動作に対して一定に保たれる初期4Dレベルmmlvが、下記で述べるテクスチャ空間のリサンプリングのために、テクセルごとに最終値fmmlvに調整される。
【0033】
最終的な縦方向のミップマップ・レベルfmmlvは、拡大率が所定の閾値より小さい場合はmmlvを調整してより低い解像度のミップマップ・レベルを識別し、その他の場合は求められたmmlvミップマップ・レベルを維持することによって決定される。変更を決定するために、ラスタライザは、2回目のパス(v値をy値にマッピングする)の拡大率を示す∂y/∂vを計算する。この値は、現在選択されているラスタ化グリッドの位置に基づいて、縦方向のラスタ化ミップマップ・レベルmmlvのv値が1だけ違う2つのテクセルが画面上でどれだけ離れているかを示す。mmlvの選択のために、これは最高でも1ピクセル分の間隔であるが、三角形内の縮小の相違のため、またずれ(shear)の低減の結果ラスタ化グリッドが縦方向に精緻にされている場合があるために、1ピクセルより大幅に小さい場合がある。2倍および2分の1の倍率変更を使用する場合、閾値は1/2であることが好ましい。当業者は、他の倍率に最適な閾値を決定することができる。したがって、∂y/∂vが1/2より小さい場合は、初期のmmlvで想定するよりも粗い4Dミップマップ・レベルmmlvが選択されてよい(そして、フェッチされた4Dミップマップ・レベルmmlvのその後の行で1/2〜1の間になお有効な画面ピクセル間隔がある)。より正確には、∂y/∂vは、特定のラスタ化グリッド位置についての適正なディテール量を供給するために実際に必要とされる縦方向の4Dミップマップ・レベルに達するためにmmlvに可算されることができる、ミップマップ・レベルの差Δ=mmlv=2log(∂y/∂v)を決定する。これは、最終的なミップマップ・レベルfmmlv=mmlv+Δmmlvを与える。好ましくは、ラスタライザは、初期4Dミップマップ・レベルに加えて、テクセルごとの縦方向の拡大率を提供する。そして、上で示した最終的な縦方向の4Dミップマップ・レベルを求める計算は、テクスチャ空間リサンプラによって行われることができるが、システムの別のユニットによって行われてもよい。上記の好ましい実施形態についての説明は、縦方向の拡大についてであることは理解されよう。他のシステムでは、同じ原理を横方向または両方の方向に使用することができる。上記の技術を使用すると、三角形内の一部の位置ではより細かいグリッドでラスタ化が行われるのにも関わらず、リサンプリングに最適な4Dミップマップ・レベルが選択される。そのため、この細かいラスタ化はより多くの処理力を要するが、テクスチャ・マップをフェッチするために必要なメモリ帯域幅は影響されない。
【0034】
最終的な4Dミップマップ・レベルは、テクスチャ・メモリが完全な4Dミップマップ構造を格納する場合は、指定された4Dミップマップからテクスチャ・データをフェッチするためにテクスチャ空間リサンプラによって使用されることができる。最終的な4Dミップマップは、ラスタライザに使用される初期4Dミップマップより低い解像度でよい。帯域幅を節減するために、補間を使用して、低い解像度の4Dミップマップからより高い解像度の4Dミップマップが直接再構築されることができる。
【0035】
(4Dミップマップ再構築のための3Dミップマップ・レベルの選択)
アプリケーションは通常、標準的な3Dミップマップ表現のみでテクスチャを供給するので、好ましい実施形態では、ラスタ化グリッドを提供したテクスチャ・マップには、3Dミップマップからの直接の4Dミップマップ再構築が適用される。そして、テクセル・シェーダが4Dミップマップの再構築機構として機能する。上記で述べたように、ラスタライザは、別個の横方向のミップマップ・レベルと縦方向のミップマップ・レベルを保持し、それらがともに4Dミップマップ・レベルのインデックスを形成する。4Dミップマップのテクセル再構築プロセスで、本発明によるラスタライザは、各ラスタ化グリッド位置について、フェッチされる必要があるテクセルのu座標とv座標を、そのテクセルの縦方向の拡大率(あるいは最終的な4Dミップマップ・レベル(mmlu、fmmlv))とともに提供する。4D再構築ユニットは、要求される座標(u,v)におけるサンプルを提供するためにフィルタリングされることができるテクセルをフェッチする3Dミップマップ・レベルmmlを求める必要がある。3Dミップマップ・レベルmmlは、4Dミップマップ・レベル(mml,mml)に対応し、図3、6、7ではこれらを網掛けした四角形として図示する。それらの四角形から、非対角のミップマップ・レベルにあるサンプルが生成される必要がある。これらの図は、拡大を使用して3Dミップマップ・レベル3から(図6)、拡大を使用して3Dミップマップ・レベル0から(図3)、または、それらの間にあるレベルから(図7)、どのように4Dミップマップ・レベル(3,0)のテクセルが生成されることができるかを示している。あるテクセル・サンプルについてラスタライザから提供される(可能性としては上記のように調整された)4Dミップマップ・レベル(mmlu、fmmlv)を考慮して、テクスチャ・メモリをアドレス指定するために用いられる3Dミップマップ・レベルmmlを決定する機能が必要とされる。以下の3つの代替方式をここでより詳細に説明し、それぞれの方法は、異なる品質/性能のトレードオフを提供する。
【0036】
低品質の設定では、図6に示すように、2つの4Dミップマップ・レベルのより粗い方に対応する3Dミップマップ・レベルが選択される。そのレベルが次いでもう一方の方向に拡大されて(その方向のぼかしをもたらす)、4Dミップマップ・レベルのテクセルに到達する。拡大は、線形補間、あるいは必要に応じてより高次のフィルタを使用して得られることが好ましい。この利点は、最小量の3Dテクセルがフェッチされ、テクスチャのキャッシングを用いて、後の4Dミップマップ・レベル・テクセルを生成するためにテクスチャ・サンプルを再使用することができる点である(多くの4Dミップマップ・サンプルは、同じ3Dミップマップ・レベル・サンプル間で生成されるため)。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MAX(mmlu,fmmlv)
である。
【0037】
高品質の設定では、図3に示すように、2つの4Dミップマップ・レベルのうちより細かい方に対応する3Dミップマップ・レベルが選択される。そして、そのレベルがもう一方の方向に縮小されて、4Dミップマップ・レベルのテクセルに到達する。この利点は、最大限の品質と鮮明さが維持されることである。しかし、これは、生成される必要のある4Dミップマップ・レベルのテクセルごとに、可能性としては多数回のテクセル・フェッチを行った上で得られる。生成されたテクセルは、フェッチされたテクセルの非重み付け平均であることが好ましい(より高次のフィルタも使用されてよい)。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MIN(mmlu,fmmlv)
である。
【0038】
中程度の品質の設定では、図7に示すように、低品質設定と高品質設定の間の妥協点が選択される。好ましい実施形態で、この設定は、いくらかの(高コストな)縮小(高品質設定の場合のような)を可能にするが、多くともa個のミップマップ・レベルを許可するパラメータa(最大異方性レベル)で調整される。これは、最大で2a個のテクセルが1つの方向で組み合わせられることを意味する。横方向のミップマップ・レベルと縦方向のミップマップ・レベルとのより大きな差は、低品質設定に類似の手法を使用して埋められる。この選択肢が、好ましい設定a=2の場合について図7に示される。aを0に設定すると、低品質の設定になり、aを非常に大きく設定すると高品質の設定になる。この代替方式に対応する3Dミップマップ・レベルの選択式は
mml=MAX(MAX(mmlu,fmmlv)−a,MIN(mmlu,fmmlv))
である。
【0039】
低品質の設定(非常に限られた異方性レベルのみを許可する)では、図8に示すように、アーチファクトが生じる可能性がある。(従来の非異方性フィルタリングのように)ある角度から見たテクスチャがぼやけて見えるようになるが、バイリニアのテクスチャ・フィルタリングを使用する際にはミップマップ・レベルを離散的に切り替えるので、ぼやけの急な変化が見えるようになる。テクセルごとに3Dミップマップ・レベルが選択されるので、それらの線は、見る者の移動に伴って移動する(三角形の輪郭線に固定されない)。低品質のオプションを使用して帯域幅が制限される必要がある場合は、トリリニア・フィルタリング(ミップマップ・レベル間を混合する)のようなものが取り込まれて、推移をゆるやかにすることができる。しかし、高品質の設定の場合(またはa=3などの中間設定で許される妥当な異方性レベルの場合)は、そうした設定では十分なディテールが得られ、トリリニア・フィルタリングで生じるさらなるぼやけは望まないので、トリリニア・フィルタリング等の導入は不要である。
【0040】
上記の計算でmmlに割り当てられる値は、ミップマップ・レベルが利用可能な範囲の値に制限され(例えばmmlの負の値を排除するため)、メモリ中でミップマップ・レベルを指示するために使用される整数レベルに変換されなければならないことに留意されたい。これは、例えば丸めや切捨てなどの適切な方法で行ってよい。残りの小数部は、トリリニア・フィルタリングに使用されることが好ましい。丸めの瞬間は、選択することができる。好ましくは、mmlの最終値は丸められることが好ましく、mmlは例えば上記の3つの手法の1つで求められる。それが要求される場合は、Δmmlvも、求められた時に直ちに例えば切り捨てで丸められてもよい。
【数7】
【0041】
図9に、コンピュータ900のブロック図を示し、コンピュータ900は、中央演算処理装置910、メモリ920、ディスプレイ930、および本発明によるコンピュータ・グラフィック・システム940を含む。コンピュータは、パーソナル・コンピュータや、ゲーム機、ワーク・ステーションなどの従来のコンピュータでよい。コンピュータ・グラフィック・システムは、グラフィック・プロセッサを使用して実施されることができる。そのようなグラフィック・プロセッサは、そのグラフィック・プロセッサに本発明による方法を実行させるプログラムの制御下で操作されることができる。プログラムは、(例えばROMに)固定して埋め込まれることができるが、バックグラウンド・メモリからロードされることもできる。後者の場合、プログラムは、例えばCD−ROMなどの記録担体、あるいはインターネットなどの有線または無線の通信手段を使用して、適切な形態で分散することができる。
【0042】
上述の実施形態は、本発明を制限するものではなく、本発明を例示するものであることに留意されたく、当業者は、頭記の特許請求の範囲から逸脱することなく多数の代替実施形態を設計することができる。請求項では、括弧内に入れられた参照符号は、請求項を制限するものと解釈すべきでない。動詞「〜を備える」とその変化形の使用は、請求項に述べられる要素またはステップ以外の要素またはステップの存在を除外しない。要素につく冠詞「a」あるいは「an」は、その要素が複数存在することを除外しない。本発明は、いくつかの別個の要素からなるハードウェアにより、また、適切にプログラムされたコンピュータにより実施されることができる。いくつかの手段を列挙するデバイス請求項では、それら手段のいくつかは、1つの同一のハードウェア項目によって実施されることができる。特定の手段が相互に異なる独立請求項に記載されるという単なる事実は、それら手段の組み合わせが有利に使用されることができないことを意味するものではない。
【図面の簡単な説明】
【0043】
【図1】順方向テクスチャ・マッピング・システムのグラフィック・パイプラインを示す図である。
【図2】逆方向テクスチャ・マッピング・システムのグラフィック・パイプラインを示す図である。
【図3】4Dミップマップ構造を示す図である。
【図4】再構築フィルタリングを説明する図である。
【図5】画面空間の事前フィルタリングを説明する図である。
【図6】低品質のミップマップ選択を示す図である。
【図7】中間品質のミップマップ選択を示す図である。
【図8】低品質のミップマップ選択における、目に見えるミップマップ・レベルの推移を示す図である。
【図9】本発明によるグラフィック・システムを組み込んだコンピュータのブロック図である。
【特許請求の範囲】
【請求項1】
表示する画像をレンダリングするシステムであって、
ミップマップ構造でテクスチャ・マップを格納するテクスチャ・メモリであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されるテクスチャ・メモリと、
テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
前記テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
前記求められた初期4Dミップマップ・レベルmmlu,mmlvと前記拡大率に依存して、対応する最終的な4Dミップマップ・レベルを求める
ように動作するラスタライザと、
前記最終的な4Dミップマップ・レベルの対で識別されるテクスチャ・マップからテクスチャ・データを取得するテクスチャ空間リサンプラと、
前記取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングするテクスチャ・マッパと
を含むシステム。
【請求項2】
前記拡大率は、座標vで示される縦方向への拡大を表す請求項1に記載のシステム。
【請求項3】
前記ラスタライザは、前記拡大率が所定の閾値より小さい場合はmmlvを調整して解像度がより低い縦方向の4Dミップマップ・レベルを識別し、それ以外の場合は求められたmmlvミップマップ・レベルを維持することにより、最終的な縦方向の4Dミップマップ・レベルfmmlvを求めるように動作する請求項2に記載のシステム。
【請求項4】
前記テクスチャ・メモリは、4Dミップマップ構造に前記テクスチャ・マップを格納するように構成され、各テクスチャ・マップは、4Dミップマップ・レベルの対で識別され、
前記テクスチャ空間リサンプラは、前記ラスタライザが使用するための前記最終的な4Dミップマップ・レベルの対で識別される前記テクスチャ・メモリ中の4Dミップマップのテクスチャ・マップから、初期4Dミップマップ・レベルの対で識別される4Dミップマップのテクスチャ・マップの少なくとも一部を直接再構築するように動作する請求項1に記載のシステム。
【請求項5】
前記テクスチャ・メモリは、3Dミップマップ構造で前記テクスチャ・マップを格納するように構成され、各テクスチャ・マップは、個々の3Dミップマップ・レベルmmlで識別され、
前記テクスチャ空間リサンプラは、前記テクスチャ・メモリ中のレベルmmlの関連付けられた3Dミップマップから、識別された4Dミップマップのテクスチャ・マップの少なくとも一部分を直接再構築するように動作する請求項1に記載のシステム。
【請求項6】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MAX(mmlu,fmmlv)で与えられる請求項3および5に記載のシステム。
【請求項7】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MIN(mmlu,fmmlv)で与えられる請求項4および5に記載のシステム。
【請求項8】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、所定の最大異方性レベルaに依存して求められる請求項4および5に記載のシステム。
【請求項9】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MAX(MAX(mmlu,fmmlv)−a,MIN(mmlu,fmmlv))で与えられる請求項8に記載のシステム。
【請求項10】
中央演算処理装置、メモリ、ディスプレイ、および請求項1に記載のシステムを含むコンピュータ。
【請求項11】
表示する画像をレンダリングする方法であって、
ミップマップ構造にテクスチャ・マップを格納することであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されることと、
ラスタ化動作で、テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
前記テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
前記求められた初期4Dミップマップ・レベルmmlu,mmlvと前記拡大率に依存して、対応する最終的な4Dミップマップ・レベルを求めることと、
テクスチャ空間のリサンプリング動作で、前記最終的な4Dミップマップ・レベルで識別されるテクスチャ・マップについてのテクスチャ・データを取得することと
前記取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングすることと
を含む方法。
【請求項12】
請求項11に記載の方法をプロセッサに行わせるように動作するコンピュータ・プログラム。
【請求項1】
表示する画像をレンダリングするシステムであって、
ミップマップ構造でテクスチャ・マップを格納するテクスチャ・メモリであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されるテクスチャ・メモリと、
テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
前記テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
前記求められた初期4Dミップマップ・レベルmmlu,mmlvと前記拡大率に依存して、対応する最終的な4Dミップマップ・レベルを求める
ように動作するラスタライザと、
前記最終的な4Dミップマップ・レベルの対で識別されるテクスチャ・マップからテクスチャ・データを取得するテクスチャ空間リサンプラと、
前記取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングするテクスチャ・マッパと
を含むシステム。
【請求項2】
前記拡大率は、座標vで示される縦方向への拡大を表す請求項1に記載のシステム。
【請求項3】
前記ラスタライザは、前記拡大率が所定の閾値より小さい場合はmmlvを調整して解像度がより低い縦方向の4Dミップマップ・レベルを識別し、それ以外の場合は求められたmmlvミップマップ・レベルを維持することにより、最終的な縦方向の4Dミップマップ・レベルfmmlvを求めるように動作する請求項2に記載のシステム。
【請求項4】
前記テクスチャ・メモリは、4Dミップマップ構造に前記テクスチャ・マップを格納するように構成され、各テクスチャ・マップは、4Dミップマップ・レベルの対で識別され、
前記テクスチャ空間リサンプラは、前記ラスタライザが使用するための前記最終的な4Dミップマップ・レベルの対で識別される前記テクスチャ・メモリ中の4Dミップマップのテクスチャ・マップから、初期4Dミップマップ・レベルの対で識別される4Dミップマップのテクスチャ・マップの少なくとも一部を直接再構築するように動作する請求項1に記載のシステム。
【請求項5】
前記テクスチャ・メモリは、3Dミップマップ構造で前記テクスチャ・マップを格納するように構成され、各テクスチャ・マップは、個々の3Dミップマップ・レベルmmlで識別され、
前記テクスチャ空間リサンプラは、前記テクスチャ・メモリ中のレベルmmlの関連付けられた3Dミップマップから、識別された4Dミップマップのテクスチャ・マップの少なくとも一部分を直接再構築するように動作する請求項1に記載のシステム。
【請求項6】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MAX(mmlu,fmmlv)で与えられる請求項3および5に記載のシステム。
【請求項7】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MIN(mmlu,fmmlv)で与えられる請求項4および5に記載のシステム。
【請求項8】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、所定の最大異方性レベルaに依存して求められる請求項4および5に記載のシステム。
【請求項9】
前記関連付けられた3Dミップマップの3Dミップマップ・レベルmmlは、MAX(MAX(mmlu,fmmlv)−a,MIN(mmlu,fmmlv))で与えられる請求項8に記載のシステム。
【請求項10】
中央演算処理装置、メモリ、ディスプレイ、および請求項1に記載のシステムを含むコンピュータ。
【請求項11】
表示する画像をレンダリングする方法であって、
ミップマップ構造にテクスチャ・マップを格納することであって、テクスチャ・マップのテクセルは、u座標とv座標の対で指定されることと、
ラスタ化動作で、テクセル(u,v)について、
対応する初期4Dミップマップ・レベル(mmlu,mmlv)を求め、
前記テクセルがディスプレイの対応するピクセル位置にマッピングされる際に行われる拡大を表す拡大率を求め、
前記求められた初期4Dミップマップ・レベルmmlu,mmlvと前記拡大率に依存して、対応する最終的な4Dミップマップ・レベルを求めることと、
テクスチャ空間のリサンプリング動作で、前記最終的な4Dミップマップ・レベルで識別されるテクスチャ・マップについてのテクスチャ・データを取得することと
前記取得されたテクスチャ・データを、ディスプレイ画像を定義する対応するピクセル・データにマッピングすることと
を含む方法。
【請求項12】
請求項11に記載の方法をプロセッサに行わせるように動作するコンピュータ・プログラム。
【図1】
【図3】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図3】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公表番号】特表2007−519056(P2007−519056A)
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2006−518440(P2006−518440)
【出願日】平成16年6月30日(2004.6.30)
【国際出願番号】PCT/IB2004/051054
【国際公開番号】WO2005/004064
【国際公開日】平成17年1月13日(2005.1.13)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願日】平成16年6月30日(2004.6.30)
【国際出願番号】PCT/IB2004/051054
【国際公開番号】WO2005/004064
【国際公開日】平成17年1月13日(2005.1.13)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】
[ Back to top ]