(57)【要約】【課題】グラフィック処理システムの実施形態は乗算、平方、および平方根演算以外の演算を使用する簡単なハードウェア実装を容易にする。【解決手段】テクスチャ詳細レベルを計算するグラフィック処理システム。グラフィック処理システムの実施形態は、メモリ装置と、ドライバと、および詳細レベル計算ロジックを含む。メモリ装置は第１ルックアップテーブルを実装するように構成される。第１ルックアップテーブルは第１詳細レベル成分を提供するように構成される。ドライバは第２詳細レベル成分の対数値を算出するように構成される。詳細レベル計算ロジックはメモリ装置とドライバに結合される。詳細レベル計算ロジックは、ルックアップテーブルからの第１詳細レベル成分とドライバからの第２詳細レベル成分に基づいて、テクスチャマッピング演算のために詳細レベルを計算するように構成される。【選択図】図１
2008276781.tif 000002
【特許請求の範囲】
【請求項１】
テクスチャ詳細レベルを計算するグラフィック処理システムであって、
第１詳細レベル成分を提供する第１ルックアップテーブルを実装するメモリ装置と、
第２詳細レベル成分の対数値を算出するドライバと、
前記メモリ装置と前記ドライバに結合された詳細レベル計算ロジックであって、前記ルックアップテーブルからの前記第１詳細レベル成分と、前記ドライバからの前記第２詳細レベル成分に基づいて、テクスチャマッピング演算のための詳細レベルを計算する詳細レベル計算ロジックと、を備えるグラフィック処理システム。
【請求項２】
前記詳細レベル計算ロジックは、乗算演算以外の算術演算を使用して、前記詳細レベルを計算するように更に構成される請求項１のグラフィック処理システム。
【請求項３】
前記詳細レベル計算ロジックは、平方および平方根演算以外の算術演算を使用して、前記詳細レベルを計算するように更に構成される請求項１のグラフィック処理システム。
【請求項４】
前記詳細レベル計算ロジックのハードウェア実装を更に備える請求項１のグラフィック処理システム。
【請求項５】
前記詳細レベル計算ロジックは、テクスチャマップの幅寸法に対応する第１対数項と、前記テクスチャの高さ寸法に対応する第２対数項の最大値を決定するように更に構成される請求項１のグラフィック処理システム。
【請求項６】
前記メモリ装置は、第２ルックアップテーブルを実装するように更に構成され、前記第１ルックアップテーブルは、前記第１詳細レベル成分の対数値を提供する対数ルックアップテーブルを備え、前記第２ルックアップテーブルは、前記詳細レベル計算の関数成分の値を提供する関数ルックアップテーブルを備える請求項１のグラフィック処理システム。
【請求項７】
前記詳細レベル計算は、二次元詳細レベル計算を備え、前記詳細レベル計算の前記関数成分は、下記の式
ｆ（ｘ）＝０.５×ｌｏｇ（１＋２（２ｘ）），
で定義され、この式で、ｘ＝ｌｏｇ（ｄｔｄｘ）−ｌｏｇ（ｄｓｄｘ）＋ｌｏｇ（ｈｅｉｇｈｔ）−ｌｏｇ（ｗｉｄｔｈ）である請求項６のグラフィック処理システム。
【請求項８】
前記詳細レベル計算は、三次元詳細レベル計算を備える請求項６のグラフィック処理システム。
【請求項９】
前記ドライバに結合され、前記ドライバに寸法値を提供するソフトウェアモジュールを更に備え、前記第２詳細レベル成分は、前記寸法値の対数値を備える請求項６のグラフィック処理システム。
【請求項１０】
前記寸法値は、幅、高さ、または深さに対応する請求項９のグラフィック処理システム。
【請求項１１】
テクスチャ詳細レベルを計算する方法であって、
複数の第１詳細レベル成分に基づいて第１対数項を計算することであって、前記第１対数項は、テクスチャマップの第１寸法に対応し、前記複数の第１詳細レベル成分は、ルックアップおよび、乗算以外の算術演算により生成されることと、
複数の第２詳細レベル成分に基づいて第２対数項を計算することであって、前記第２対数項は、テクスチャマップの第２寸法に対応し、前記複数の第２詳細レベル成分は、ルックアップおよび、乗算以外の算術演算により生成されることと、
前記第１および第２対数項の最大値により前記詳細レベルを計算することと、を備える方法。
【請求項１２】
対数ルックアップテーブルから、前記第１対数項の第１詳細レベル成分を探すことを更に備える請求項１１の方法。
【請求項１３】
ソフトウェアから寸法値を受け取るドライバから、前記第１対数項の第２詳細レベル成分を取得することを更に備える請求項１２の方法。
【請求項１４】
関数ルックアップテーブルから、前記第１対数項の、関数成分を含む第３詳細レベル成分を探すことを更に備える請求項１３の方法。
【請求項１５】
前記第１対数項を計算するために、前記第１、第２、および第３詳細レベル成分の合計を生成することを更に備える請求項１４の方法。
【請求項１６】
前記算術演算は、平方および平方根演算以外の演算を備える請求項１１の方法。
【請求項１７】
前記第１および第２対数項は、
Ｌ１＝ｌｏｇ（ｄｓｄｘ）＋ｌｏｇ（ｗｉｄｔｈ）＋ｆ（ｘ）、および
Ｌ２＝ｌｏｇ（ｄｓｄｙ）＋ｌｏｇ（ｗｉｄｔｈ）＋ｆ（ｙ），
を備え、これらの式において、Ｌ１は前記第１対数項を表わし、ｆ（ｘ）は第１関数成分を表わし、Ｌ２は前記第２対数項を表わし、およびｆ（ｙ）は第２関数成分を表わす請求項１６の方法。
【請求項１８】
テクスチャ詳細レベルを計算する装置であって、
乗算、平方、および平方根演算以外の演算を使用して、第１および第２対数項を計算する手段と、
前記第１および第２対数項に基づいて、前記テクスチャ詳細レベルを計算する手段を備える装置。
【請求項１９】
前記第１および第２対数項を計算する前記手段は、ルックアップ演算と整数数値演算のみを使用して前記第１および第２対数項を計算するように更に構成される請求項１８の装置。
【請求項２０】
前記第１対数項に対して、複数の第１対数ルックアップ値を実装する手段と、
前記第１対数項に対して、複数の第１関数ルックアップ値を実装する手段と、
前記第２対数項に対して、複数の第２対数ルックアップ値を実装する手段と、
前記第２対数項に対して、複数の第２関数ルックアップ値を実装する手段と、を更に備える請求項１８の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
ビデオグラフィックスの適用においては、異なる形状およびサイズのグラフィカル画像を描くために多数の技術が使用される。典型的には、グラフィカル画像は、数千、あるいは数百万もの、三角形のような基本形から構成されている。各三角形は、その頂点の座標により定義される。グラフィックス描画の三次元的外観を強調するために、テクスチャを、三角形または他の描画ユニットのそれぞれに追加することができる。テクスチャ座標は、対象物が表示装置上で描画されるときに、テクスチャマップをそれぞれの対象物に割り当てるために使用される。テクスチャマップは、テクスチャの標準ブロックを形成するために組み合わされたテクスチャ要素（テクセル）のアレイである。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
描画される対象物にテクスチャをマッピングすることは、描画される場面における種々の対象物の深度（つまり、見る人に対する距離）のために複雑であり得る。描画される対象物の方位もまた、テクスチャを描画対象物にマッピングするときの複雑さに影響を与え得る。更に、テクスチャを単一の対象物に適用することは、対象物が表示装置上でその深度と方位を変えると複雑になり得る。
【０００３】
ミップマッピングは、それぞれが対応する詳細レベル（ＬＯＤ）を有する、異なるテクスチャマップをそのような対象物に対して適用するために使用される１つの従来技術である。ミップマッピングは、テクスチャマップを前以てフィルタ処理し、前以てフィルタ処理された異なるバージョンまたはレベルを格納して、テクスチャ縮小計算の複雑さを低減する。テクスチャ縮小は、描画対象物が表示装置上で遠くに現れるようするには縮小されるので、標準の詳細レベルを有する前以てフィルタ処理されたテクスチャマップを最小化して、複数のテクセルを単一ピクセルに相関付けることである。対照的に、テクスチャ拡大は、テクスチャ詳細レベルを、表示装置上で拡大されて見る人に相対的に近くに現れる対象物に相関付けることである。しかし、テクスチャフィルタ処理はまた、ピクセルが特別なテクスチャマップのテクセルに対して不整列になることもあるので、テクスチャ拡大と共に使用できることに留意されたい。
【０００４】
テクスチャ詳細レベル計算は、特別な描画対象物にテクスチャを適用するためにどのテクスチャマップを使用するかを決定するために実施される。一般的に、より詳細な（「レベル０」と指定されることもある）テクスチャマップは近い対象物に対して使用され、より詳細度が低い（「レベル１」、「レベル２」、「レベル３」、などと指定されることもある）テクスチャマップは、遠い対象物に対して使用される。
【０００５】
従来の二次元（２Ｄ）テクスチャ詳細レベル計算は、期待値を計算するために、２つの対数項のそれぞれに対して２回の乗算演算と、２回の平方演算と、１回の加法演算と、および１回の平方根演算を実施する。同様に、従来の三次元（３Ｄ）テクスチャ詳細レベル計算は、３つの対数項のそれぞれに対して３回の乗算演算と、３回の平方演算と、２回の加法演算と、および１回の平方根演算を実施する。これらの計算は、しばしば３２ビット浮動小数点空間で行われるので、これらの従来のテクスチャ詳細レベル計算はハードウェアで実施するには高価である。
【課題を解決するための手段】
【０００６】
システムの実施形態を説明する。１つの実施形態において、システムはテクスチャ詳細レベルを計算するためのグラフィック処理システムである。グラフィック処理システムの実施形態は、メモリ装置と、ドライバと、詳細レベル計算ロジックを含む。メモリ装置は、第１ルックアップテーブルを実装するように構成される。第１ルックアップテーブルは、第１詳細レベル成分を提供するように構成される。ドライバは、第２詳細レベル成分の対数値を算出するように構成される。詳細レベル計算ロジックはメモリ装置とドライバに結合される。詳細レベル計算ロジックは、ルックアップテーブルからの第１詳細レベル成分とドライバからの第２詳細レベル成分に基づいて、テクスチャマッピング演算のために詳細レベルを計算するように構成される。グラフィック処理システムの実施形態は、乗算、平方、および平方根演算以外の演算を使用して、簡単なハードウェア実装を容易にする。システムの他の実施形態もまた説明する。
【０００７】
方法の実施形態もまた説明する。１つの実施形態において、本方法は、テクスチャ詳細レベルを計算する方法である。本方法の実施形態は、複数の第１詳細レベル成分に基づいて第１対数項を計算することを含む。第１対数項は、テクスチャマップの第１寸法に対応する。複数の第１詳細レベル成分は、ルックアップおよび乗算以外の算術演算により生成される。本方法はまた、複数の第２詳細レベル成分に基づいて、第２対数項を計算することも含む。第２対数項は、テクスチャマップの第２寸法に対応する。複数の第２詳細レベル成分は、ルックアップおよび乗算以外の算術演算により生成される。本方法はまた、第１および第２対数項の最大値に従って詳細レベルを計算することも含む。本方法の他の実施形態も説明する。
【０００８】
装置の実施形態もまた説明する。１つの実施形態において、装置はテクスチャ詳細レベルを計算するための装置である。本装置の実施形態は、乗算、平方、平方根演算以外の演算を使用して第１および第２対数項を計算する手段を含む。本装置はまた、第１および第２対数項に基づいてテクスチャ詳細レベルを計算するための手段も含む。本装置の他の実施形態も説明する。
【０００９】
本発明の実施形態の他の形態および利点は、本発明の原理の例により示された、付随する図面と連係する下記の詳細な説明により明白になるであろう。
【発明を実施するための最良の形態】
【００１０】
図１は、コンピュータグラフィックスシステム１００の１つの実施形態の模式ブロック図を示している。コンピュータグラフィックスシステム１００は、下記に説明するように、テクスチャマッピングと詳細レベル計算を実装できる。図１に示されているように、コンピュータグラフィックスシステム１００は高度集積システムであり、集積プロセッサ回路１０２と、メモリ装置１０４と、および表示モニタ１０６を含む。１つの実施形態において、メモリ装置１０４は、リードオンリメモリ（ＲＯＭ）と、ランダムアクセスメモリ（ＲＡＭ）を含む。他の実施形態は異なるタイプのメモリ装置を含むことができる。高度集積アーキテクチャにより電力の節約が可能になる。他の実施形態は、周辺コントローラ（図示せず）のような他の構成要素を含むことができる。
【００１１】
示されている集積プロセッサ回路１０２は、メモリ管理ユニット（ＭＭＵ）１１０と１つまたは２つ以上の命令および／またはデータキャッシュ１１２を含む処理ユニット（ＣＰＵ）１０８を含む。集積プロセッサ回路１０２はまた、メモリ１０４とのインタフェースを取るためのメモリインタフェース１１４も含む。集積プロセッサ回路１０２はまた、テクスチャエンジン１１８を含むグラフィックスプロセッサ１１６も含む。１つの実施形態において、テクスチャエンジン１１８は図３に示され、下記により詳細に説明するテクスチャパイプライン１３０に関連する１つまたは２つ以上のテクスチャ演算を実施する。特に、テクスチャエンジン１１８は１つまたは２つ以上のテクスチャマップをグラフィカル対象物に適用できる。テクスチャエンジン１１８は、詳細レベル計算に基づいてどのテクスチャマップを適用するかを決定する。グラフィックスプロセッサ１１６は、バス１２０により処理ユニット１０８とメモリインタフェース１１４に結合される。
【００１２】
直接メモリアクセス（ＤＭＡ）コントローラ１２２もまたバス１２０に結合される。ＤＭＡコントローラ１２２はバス１２０をインタフェース（Ｉ／Ｆ）バス１２４に結合し、インタフェース（Ｉ／Ｆ）バス１２４にはエンコーダ／デコーダ（ＣＯＤＥＣ）インタフェース、パラレルインタフェース、シリアルインタフェース、および入力装置インタフェースのような他のコアロジック関数構成要素（図示せず）を結合できる。１つの実施形態において、ＤＭＡコントローラ１２２はメモリインタフェース１１４を介してメモリ装置１０４に格納されているデータにアクセスし、データをＩ／Ｆバス１２４に接続されている周辺装置に提供する。ＤＭＡコントローラ１２２はまた、データをメモリインタフェース１１４を介して周辺装置からメモリ装置１０４に送る。
【００１３】
１つの実施形態において、グラフィックスプロセッサ１１６はメモリインタフェース１１４を介して、メモリ装置１０４からグラフィカルデータを要求しアクセスする。その後、グラフィックスプロセッサ１１６はデータを処理し、処理データをフォーマットして、フォーマットされたデータを表示装置１０６に送る。いくつかの実施形態においては、表示装置１０６は液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）、またはテレビ（ＴＶ）モニタであってよい。コンピュータグラフィックスシステム１００の他の実施形態は、より多くのまたは少ない構成要素を含んでもよく、より少ないまたは多くの演算を実施できてもよい。
【００１４】
図２は、複数の詳細レベルに対応する複数のテクスチャマップ１３０の１つの実施形態の模式図を示している。特に、複数のテクスチャマップ１３０はテクセルの１６×１６アレイを含む高解像度テクスチャマップ１３２を含む。複数のテクスチャマップ１３０はまた単一テクセルである低解像度テクスチャマップ１３９も含む。高解像度テクスチャマップ１３２と低解像度テクスチャマップ１３９の間に、異なる解像度を有するいくつかの中間テクスチャマップ１３４、１３６、および１３８がある。例えば、テクスチャマップ１３４はテクセルの８×８アレイを含み、テクスチャマップ１３６はテクセルの４×４アレイを含み、テクスチャマップ１３８はテクセルの２×２アレイを含む。
【００１５】
複数のテクスチャマップ１３０のそれぞれは、テクスチャ表現の詳細は複数のテクスチャマップ１３０間で異なるので、詳細レベル（ＬＯＤ）に対応する。例えば、高解像度テクスチャマップ１３２は、第１中間テクスチャマップ１３４よりもより詳細なテクスチャを有している。そのため、高解像度テクスチャマップ１３２は、非常に詳細なテクスチャを見る人に近いものとして表示装置１０６上に表現される対象物または対象物の一部にマッピングするために使用できる。同様に、第１中間テクスチャマップ１３４は、第２中間テクスチャマップ１３６よりもより詳細なテクスチャを有し、第２中間テクスチャマップ１３６は、第３中間テクスチャマップ１３８よりもより詳細なテクスチャを有し、第３中間テクスチャマップは、低解像度テクスチャマップ１３９よりもより詳細なテクスチャを有する。従って、低解像度テクスチャマップ１３９は、見る人から遠いものとして表示装置１０６上で表現される対象物または対象物の一部に詳細度が低いテクスチャをマッピングするために使用できる。複数のテクスチャマップ１３０を生成することは、圧縮、内挿、フィルタ処理などを含む種々の既知のテクスチャマップ生成技術を使用して実行できる。
【００１６】
高解像度テクスチャマップ１３２は複数のテクスチャマップ１３０の最も詳細なテクスチャを表現するので、高解像度テクスチャマップ１３２は「レベル０」として指定できる。同様に、第１中間テクスチャマップ１３４は「レベル１」として、第２中間テクスチャマップ１３６は「レベル２」として、第３テクスチャマップ１３８は「レベル３」として、そして低解像度テクスチャマップ１３９は「レベル４」として指定できる。更に、詳細レベル計算からの種々の値はレベルのまたはテクスチャマップのそれぞれに対応する。このように、詳細レベル計算は、表示装置１０６上に表現される対象物または対象物の一部にテクスチャを与えるために使用される複数のテクスチャマップ１３０の１つを選択するために使用できる。
【００１７】
図３は、テクスチャエンジン１１８における実装のためのテクスチャマッピングパイプラインの１つの実施形態の模式ブロック図を示している。示されているテクスチャマッピングパイプラインは、シェイダー１４０と、テクスチャ座標ジェネレータ１４２と、テクスチャアドレスジェネレータ１４４と、テクスチャキャッシュ１４６と、およびテクスチャフィルタ１４８を含む。しかし、テクスチャマッピングパイプラインの他の実施形態はテクスチャエンジン１１８の他の実施形態において実装できる。更に、ここで説明されるいくつかの段階はグラフィックスプロセッサ１１６の他の構成要素により少なくとも部分的には実装できる。
【００１８】
１つの実施形態において、シェイダー１４０は表示装置１０６上に描画される三角形（または他の描画対象物）に対応するピクセル座標を受け取る。そして、テクスチャ座標ジェネレータ１４２はピクセル座標に対応するテクスチャ座標を生成する。１つの実施形態において、テクスチャ座標ジェネレータ１４２は下記に説明するように詳細レベル計算を実装する。そして、テクスチャアドレスジェネレータ１４４は詳細レベル計算に対応するテクスチャマップのメモリアドレスを決定する。テクスチャアドレスジェネレータ１４４はテクスチャマップアドレスをテクスチャキャッシュ１４６に送り、テクスチャキャッシュ１４６は要求されたテクスチャマップがキャッシュまたは別のメモリ装置内に格納されているかを判断する。テクスチャマップが別のメモリ装置に格納されていれば、テクスチャキャッシュ１４６は要求されたデータをメモリ装置から取り出して、それをテクスチャキャッシュ１４６に格納する。そして、テクスチャキャッシュ１４６は要求されたテクスチャマップのコピーをテクスチャフィルタ１４８に提供する。
【００１９】
テクスチャフィルタ１４８は、テクスチャマップのテクセルを表示装置１０６の対応するピクセルのそれぞれに相関付ける。いくつかの実施形態においては、テクセルとピクセルの間にはサイズと位置に関して１対１対応の相関がある。または、サイズに関してテクセルとピクセルの間に１対１対応の相関があってもよく、しかしそれにも拘わらず、テクスチャフィルタ１４８はテクセルの位置がピクセルの位置と整列していないので、テクスチャフィルタ処理を行う。他の実施形態においては、テクセルサイズはピクセルサイズとは異なり、従ってテクスチャフィルタ１４８は拡大または縮小を実施して、要求されたテクスチャマップのテクセルを表示装置１０６のピクセルに相関付ける。テクスチャフィルタ１４８の他の実施形態はテクスチャフィルタ処理の他のタイプを実装できる。
【００２０】
図４は、詳細レベル計算アーキテクチャ１５０の１つの実施形態の模式ブロック図を示している。示されている詳細レベル計算アーキテクチャ１５０は詳細レベル計算ロジック１５２とルックアップロジック１５４を含む。１つの実施形態において、ルックアップロジック１５４は少なくとも１つの対数ルックアップテーブル１５６と少なくとも１つの関数ルックアップテーブル１５８を実装する。これらのルックアップテーブル１５６と１５８はルックアップロジック１５４内に組み込むことができる。詳細レベル計算アーキテクチャ１５０はまたドライバ１６０とソフトウェア１６２を含む。一般的に、詳細レベル計算アーキテクチャ１５０は詳細レベル計算を実行するように構成される。
【００２１】
１つの実施形態において、詳細レベル計算アーキテクチャ１５０との連係で実行される詳細レベル計算は従来の詳細レベル計算から導出される対数数学方程式に基づいている。これらの方程式を使用すると従来の詳細レベル計算のハードウェア（またはソフトウェア）実装の複雑さを軽減できる。１つの実施形態において、この改善された詳細レベル計算は整数加法およびルックアップ演算を使用して実施される。更に、この詳細レベル計算の実施形態は乗算、平方、または平方根演算を使用せずに実施される。
【００２２】
下記の二次元（２Ｄ）詳細レベル方程式は図４の詳細レベル計算アーキテクチャ１５０により実装される詳細レベル計算を導出する開始点である。
【数１】
2008276781.tif 000003
【００２３】
この方程式は次のように書ける。
【数２】
2008276781.tif 000004
ここで、
【数３】
2008276781.tif 000005
および
【数４】
2008276781.tif 000006
である。
【００２４】
２つの対数項Ｌ１とＬ２のそれぞれに対して、２回の乗算演算と２回の平方演算と１回の加法演算と１回の平方根演算がある。これらの演算は、３２ビット浮動小数点空間において実施される。乗算、平方、および平方根演算を除去するために表記法、Ａ＝ｄｓｄｘ×ｗｉｄｔｈとＢ＝ｄｓｄｙ×ｈｅｉｇｈｔが使用される。
【００２５】
Ａ≧Ｂ、Ａ≧０、およびＢ≧０もまた仮定される。
【００２６】
従って、（ｄｓｄｘ×ｗｉｄｔｈ）２≧（ｄｔｄｘ×ｈｅｉｇｈｔ）２という結果になる。
【００２７】
これらの表記法と仮定を使用して第１対数項Ｌ１に対する方程式は次のように書き直せる。
【数５】
2008276781.tif 000007
【００２８】
ＡとＢを再び置き換えると次のような結果になる。
【数６】
2008276781.tif 000008
【００２９】
同様な結果が元の方程式の他の対数項Ｌ２に対して得られる。
【数７】
2008276781.tif 000009
【００３０】
このように、元の方程式の対数項Ｌ１とＬ２の両者は３成分を使用して対数方程式に書き直せる。第１成分はｌｏｇ（ｄｓｄｘ）、またはｌｏｇ（ｄｓｄｙ）成分である。第２成分はｌｏｇ（ｗｉｄｔｈ）成分である。そして、第３成分は関数成分と称される。１つの実施形態において、期待されるＬＯＤは固定小数点７.５フォーマットで表現され、それにより整数部分は７ビットを使用して表現され、少数部分は５ビットを使用して表現される。他の実施形態は他の数値フォーマットを使用できる。
【００３１】
１つの実施形態において、Ｌ１とＬ２の方程式のそれぞれの第１成分は対数ルックアップテーブル１５６のようなルックアップテーブル（または別個のルックアップテーブル）から導出できる。１つの実施形態において、対数ルックアップテーブル１５６は６ビットテーブルであるが、他の実施形態は他のタイプのテーブルを使用できる。
【００３２】
Ｌ１とＬ２の方程式のそれぞれの第２成分は部分的にはソフトウェア１６２により提供される。１つの実施形態において、第２成分はそれぞれテクスチャ属性であり、従ってｌｏｇ（ｗｉｄｔｈ）成分はドライバ１６０による固定小数点７.５フォーマットであってもよい。他の実施形態は別の方法で第２成分を生成できる。
【００３３】
Ｌ１とＬ２の方程式のそれぞれの第３成分は関数成分である。Ｌ１方程式に対する関数成分を得るためにそれは次のように書ける。
【数８】
2008276781.tif 000010
【００３４】
従って、Ｌ１方程式の関数成分に対する方程式は次のように書き直せる。
ｆ（ｘ）＝０.５×ｌｏｇ（１＋２２ｘ），
ここで、ｘ＝ｌｏｇ（ｄｔｄｘ）−ｌｏｇ（ｄｓｄｘ）＋ｌｏｇ（ｈｅｉｇｈｔ）−ｌｏｇ（ｗｉｄｔｈ）である。
【００３５】
この表記法を使用するとＬ１方程式は、次のように書き直せる。
Ｌ１＝ｌｏｇ（ｄｓｄｘ）＋ｌｏｇ（ｗｉｄｔｈ）＋ｆ（ｘ）
【００３６】
同様な数学および表記法を使用するとＬ２方程式は次のように書き直せる。
Ｌ２＝ｌｏｇ（ｄｓｄｙ）＋ｌｏｇ（ｗｉｄｔｈ）＋ｆ（ｙ），
ここで、ｆ（ｙ）＝０.５×ｌｏｇ（１＋２２ｙ）およびｙ＝ｌｏｇ（ｄｔｄｙ）−ｌｏｇ（ｄｓｄｙ）＋ｌｏｇ（ｈｅｉｇｈｔ）−ｌｏｇ（ｗｉｄｔｈ）である。
【００３７】
１つの実施形態において、Ｌ１とＬ２の方程式のそれぞれの第３成分つまり関数成分は、関数ルックアップテーブル１５８のようなルックアップテーブル（または別個のルックアップテーブル）から導出できる。関数ルックアップテーブル１５８の１つの例は下記のように提供されるが、他の実施形態は他の関数ルックアップテーブルを使用できる。
【数９】
2008276781.tif 000011
【００３８】
Ａ≧Ｂ，Ａ≧０，Ｂ≧０なので次のようになる。
【数１０】
2008276781.tif 000012
【００３９】
従って、Ｌ１とＬ２の方程式のそれぞれの関数成分は［０.０，０.５］の範囲内にある。１つの実施形態において、入力は７.５固定小数点フォーマットであり、関数ルックアップテーブル１５８は６ビットテーブルである。しかし、他の実施形態は他のフォーマットを使用できる。
【００４０】
１つの実施形態において、Ｌ１とＬ２の方程式のそれぞれに対する上記の成分の使用はルックアップテーブルと整数数学のみによる詳細レベル計算の実行を容易にする。従って、ハードウェアは乗算、平方、および平方根演算を実行するために実装することが必ずしも必要とは限らない。
【００４１】
別の実施形態において、対数数学もまた三次元（３Ｄ）詳細レベル計算のための類似方程式を導出するために使用できる。３Ｄ詳細レベル計算はまたボリュームテクスチャ詳細レベル計算とも称することができる。下記の３Ｄ詳細レベル方程式は図４の詳細レベル計算アーキテクチャ１５０により実装される詳細レベル計算を導出する開始点である。
【数１１】
2008276781.tif 000013
ここで、
【数１２】
2008276781.tif 000014
および
【数１３】
2008276781.tif 000015
である。
【００４２】
３Ｄ詳細レベル計算の各成分は、上記の２Ｄ詳細レベル計算に対して説明したものと類似の数学的演算を使用して簡略化できる。例えば、Ｖ１方程式は次のように書き直せる。
【数１４】
2008276781.tif 000016
ここで、Ａ＝ｄｓｄｘ×ｗｉｄｔｈ、
Ｂ＝ｄｔｄｘ×ｈｅｉｇｈｔ、および
Ｃ＝ｄｒｄｘ×ｄｅｐｔｈである。
【００４３】
追加の置換を行うことによりＶ１方程式は次のように書き直せる。
【数１５】
2008276781.tif 000017
ここで
【数１６】
2008276781.tif 000018
である。
【００４４】
従って次のようになる。
【数１７】
2008276781.tif 000019
【００４５】
第１項においてＤを置き換えて元に戻すと次のようになる。
【数１８】
2008276781.tif 000020
ここで、ｆ（ｘ’）＝０.５×ｌｏｇ（１＋２２ｘ’）およびｘ’＝ｌｏｇ（ｄｒｄｘ）−ｌｏｇ（ｄｅｐｔｈ）−Ｌ１である。
【００４６】
【数１９】
2008276781.tif 000021
とＬ１は２Ｄ詳細レベル計算に対して上記のように定義されるので、Ｖ１方程式は次のように書き直せる。
Ｖ１＝Ｌ１＋ｆ（ｘ’）
【００４７】
従って、３Ｄ詳細レベル計算は２Ｄ詳細レベル計算と類似する演算を使用して実行できる。更に、ある実施形態は上記の２Ｄ処理を使用してＬ１を計算し、ｆ（ｘ’）をｆ（ｘ）に対するのと同じルックアップロジックと計算方法を使用して計算する。１つの実施形態において、３Ｄ詳細レベル計算はルックアップテーブルと整数数学のみを使用して実行される。
【００４８】
図５は詳細レベル計算方法１７０の１つの実施形態の模式フローチャート図を示している。詳細レベル計算方法１７０のいくつかの実施形態は図４の詳細レベル計算アーキテクチャ１５０と連携して実装できるが、他の実施形態は他の詳細レベル計算アーキテクチャと連係して実装できる。また、詳細レベル計算方法１７０の示されている実装は２Ｄ詳細レベル計算に対応するが、他の実施形態は３Ｄ詳細レベル計算に対して実装できる。
【００４９】
示されている詳細レベル計算方法１７０において、ルックアップロジック１５４は対数ルックアップテーブル１５６を参照して第１対数項Ｌ１の第１成分ｌｏｇ（ｄｓｄｘ）を探す（１７２）。そして、ドライバ１６０は第１対数項Ｌ１の第２成分ｌｏｇ（ｗｉｄｔｈ）を提供する（１７４）。ルックアップロジック１５４は関数ルックアップテーブル１５８を参照して第１対数項Ｌ１の関数成分ｆ（ｘ）を探す（１７６）。これらの３つの成分を使用して、詳細レベル計算ロジック１５２は第１対数項Ｌ１を計算する（１７８）。
【００５０】
詳細レベル計算ロジック１５２は第２対数項Ｌ２に対して類似の演算を使用する。ルックアップロジック１５４は対数ルックアップテーブル１５６を参照して第２対数項Ｌ２の第１成分ｌｏｇ（ｄｓｄｙ）を探す（１８２）。そして、ドライバ１６０は第２対数項Ｌ２の第２成分ｌｏｇ（ｗｉｄｔｈ）を提供する（１８４）。ルックアップロジック１５４は関数ルックアップテーブル１５８を参照して第２対数項Ｌ２の関数成分ｆ（ｙ）を探す（１８６）。これらの３つの成分を使用して詳細レベル計算ロジック１５２は第２対数項Ｌ２を計算する（１８８）。
【００５１】
そして、詳細レベル計算ロジック１５２は第１および第２対数項Ｌ１とＬ２の最大値に基づいて詳細レベルを計算する（１９０）。そして示されている詳細レベル計算方法１７０は終了する。
【００５２】
詳細レベル計算方法１７０の実施形態はソフトウェア、ファームウェア、ハードウェア、またはそのある組合せにより実装できるということに留意されたい。更に、詳細レベル計算方法１７０のいくつかの実施形態は上記の演算に関連する１つまたは２つ以上のアルゴリズムのハードウェアまたはソフトウェア表現を使用して実装できる。例えば、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組合せを実装して上記の種々の項または成分の１つまたは２つ以上を計算できる。
【００５３】
本発明の実施形態はまた中央処理ユニット（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、またはマイクロプロセッサのようなコンピュータプロセッサにより実行される多数の関数も含むことができる。マイクロプロセッサは特別なタスクを定義するマシン読取可能ソフトウェアコードを実行することにより、特別なタスクを実行するように構成された特殊または専用マイクロプロセッサであってよい。マイクロプロセッサはまた直接メモリアクセスモジュール、メモリ格納装置、インターネット関連ハードウェア、およびデータ送信に関連する他の装置のような他の装置を作動およびそれらと通信するようにも構成できる。ソフトウェアコードはＪａｖａ（登録商標）、Ｃ＋＋、ＸＭＬ（拡張マークアップ言語）、およびここで記載されたことに関連する関数演算を実行することを要求される装置の演算に関連する関数を定義するために使用できる他の言語のようなソフトウェアのフォーマットを使用して構成できる。コードは異なる形式およびスタイルで書くことができ、その多くはこの技術に精通した者には知られている。異なるコードフォーマット、コード構成、ソフトウェアプログラムのスタイルおよび形式、およびコードを構成してマイクロプロセッサの演算を定義する他の手段を実装できる。
【００５４】
本発明を利用するコンピュータサーバーのような異なるタイプのコンピュータにおいては、ここで記載した関数のいくつかまたはすべてを実行する間に情報を格納および取り出す異なるタイプのメモリ装置が存在する。いくつかの実施形態においては、データが格納されるメモリ／格納装置はプロセッサの外側にある別個の装置であってもよく、または、単一の基板上で接続された構成要素のようにメモリまたは格納装置が同じ集積回路上に位置するモノリシックな装置に構成されてもよい。キャッシュメモリ装置は頻繁に格納および取り出される情報に対する便利な格納位置としてＣＰＵまたはＧＰＵにより使用されるために、コンピュータに含まれることもよくある。同様に、永続的メモリもまた中央処理ユニットにより頻繁に取り出される情報を維持するためにそのようなコンピュータでよく使用されるが、キャッシュメモリとは異なり永続的メモリ内では情報はあまり変更されない。メインメモリもまた中央処理ユニットにより実行されるときに、ある関数を実行するように構成されたデータおよびソフトウェアアプリケーションのようなより大きな量の情報を格納および取り出すために普通は含まれる。これらのメモリ装置はランダムアクセスメモリ（ＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ、および中央処理ユニットが情報を格納および取り出すためにアクセスできる他のメモリ格納装置として構成できる。実施形態は、普通に使用されるこれらのメモリ装置それぞれに情報を格納、またはそれぞれから情報を取り出すためのプロトコルと同様に、種々のメモリおよび格納装置により実装できる。
【００５５】
ここでの方法の演算は特別な順序で示され説明されたが、各方法の演算の順序は変更することができ、それによりある演算は逆の順序で実行でき、またはある演算は少なくとも部分的には他の演算と同時に実行できる。別の実施形態において、指令または個々の演算のサブ演算は間欠的および／または交互の方法で実施できる。
【００５６】
本発明の具体的な実施形態が説明され示されてきたが、本発明はこの説明され示された部分の特別な形式または構成に制限されない。本発明の範囲は、ここに付随する請求項とその均等物により定義される。
【００５７】
説明を通して、類似の参照番号が、類似の要素を特定するために使用されている。
【図面の簡単な説明】
【００５８】
【図１】図１は、コンピュータグラフィックスシステムの１つの実施形態の模式ブロック図を示している。
【図２】図２は、複数の詳細レベルに対応する複数のテクスチャマップの１つの実施形態の模式図を示している。
【図３】図３は、テクスチャエンジンにおける実装のための、テクスチャマッピングパイプラインの１つの実施形態の模式ブロック図を示している。
【図４】図４は、詳細レベル計算アーキテクチャの１つの実施形態の模式ブロック図を示している。
【図５】図５は、詳細レベル計算方法の１つの実施形態の模式フローチャート図を示している。
【図１】
2008276781.tif 000022
【図２】
2008276781.tif 000023
【図３】
2008276781.tif 000024
【図４】
2008276781.tif 000025
【図５】
2008276781.tif 000026
【外国語明細書】
2008276781.tif 000027
2008276781.tif 000028
2008276781.tif 000029
2008276781.tif 000030
2008276781.tif 000031
2008276781.tif 000032
2008276781.tif 000033
2008276781.tif 000034
2008276781.tif 000035
2008276781.tif 000036
2008276781.tif 000037
2008276781.tif 000038
2008276781.tif 000039
2008276781.tif 000040
2008276781.tif 000041
2008276781.tif 000042
2008276781.tif 000043
2008276781.tif 000044
2008276781.tif 000045
2008276781.tif 000046
2008276781.tif 000047
2008276781.tif 000048
2008276781.tif 000049
2008276781.tif 000050
2008276781.tif 000051
2008276781.tif 000052