(57)【要約】テクスチャマップを使用してコンピュータグラフィックスをレンダリングするための方法、システム、およびデバイスが開示される。ＲＧＢ色に対する整数データ型とＸＹＺ法線ベクトル成分に対する浮動小数点データ型の組み合わせなどの異なるデータ型を有する複数のテクスチャマップが、１つのテクスチャマップセットとしてグラフィックス処理ユニット（ＧＰＵ）に渡される。フィルタパラメータおよび他の補間パラメータが、異なるテクスチャマップ間で再使用される。ユーザーは、ＧＰＵによって一度に処理するための整数および浮動小数点ベースのチャネルの数を指定し、それによってテクスチャセット構造をカスタマイズすることができる。
2014519640.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理ユニット（ＧＰＵ）でグラフィックス処理する方法であって、
第１の基本データ型のテクセルを有する第１のテクスチャを受信することと、
第２の基本データ型のテクセルを有する第２のテクスチャを受信することであって、前記第１の基本データ型および第２の基本データ型が互いに異なることと、
メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、前記第１のテクスチャにおける前記第１のデータ型のテクセルに対する補間パラメータを決定し、三次元物体を表す画像のピクセルにマップすることと、
前記第２のテクスチャにおける前記第２のデータ型のテクセルを、前記第１のテクスチャに対して決定された前記補間パラメータを使用して前記ピクセルに適用することと、を含む、方法。
【請求項２】
データ型の一方が整数データ型であり、他方のデータ型が浮動小数点データ型である、請求項１に記載の方法。
【請求項３】
整数データ型のテクセルを有する前記テクスチャは、
拡散色テクスチャと、
鏡面反射色テクスチャと、
透明度マップと、
材料指数と、からなる群から選択される、請求項２に記載の方法。
【請求項４】
浮動小数点データ型のテクセルを有する前記テクスチャは、
法線ベクトルマップと、
反射マップと、
予め計算された光マップと、
グレースケールテクスチャと、からなる群から選択され、
前記浮動小数点データ型は、高ダイナミック範囲マップを可能にする、請求項２に記載の方法。
【請求項５】
前記整数データ型は、８ビット整数データ型である、請求項２に記載の方法。
【請求項６】
前記浮動小数点データ型は、３２ビット浮動小数点データ型である、請求項２に記載の方法。
【請求項７】
前記補間パラメータは、バイリニア補間から得られる加重である、請求項１に記載の方法。
【請求項８】
前記補間パラメータは、ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏマップ（ミップマップ）選択から得られる、請求項１に記載の方法。
【請求項９】
前記補間パラメータは、ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏマップ（ミップマップ）トリリニア補間から得られる加重である、請求項１に記載の方法。
【請求項１０】
前記補間パラメータは、異方性フィルタリングから得られる加重である、請求項１に記載の方法。
【請求項１１】
前記操作は、示される順に行われる、請求項１に記載の方法。
【請求項１２】
それぞれの操作が、前記メモリと動作可能に結合される前記少なくとも１つのプロセッサによって行われる、請求項１に記載の方法。
【請求項１３】
１つ以上の機械に請求項１に記載の前記操作を行わせるための命令を示す情報を具現化する、機械可読の有形記憶媒体。
【請求項１４】
コンピュータプログラムで命令を実行するコンピュータシステムであって、前記コンピュータプログラム命令は、請求項１に記載の操作を行うためのプログラムコードを含む、コンピュータシステム。
【請求項１５】
グラフィックス処理ユニット（ＧＰＵ）でグラフィックス処理する方法であって、
三次元モデルの外観を定義するテクスチャマップセットを受信することであって、前記テクスチャマップセットが、一方の基本データ型が他方と異なる基本データ型に基づくテクスチャを有することと、
メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、前記テクスチャマップの一方におけるテクセル位置に対して前記三次元モデル上の一部分に対する補間パラメータを決定することと、
前記決定された補間パラメータを使用し、他方のテクスチャマップにおける対応するテクセル上に処理を行うことと、
それによって異なる基本データ型のテクスチャに対する前記決定された補間パラメータを使用することと、を含む、方法。
【請求項１６】
整数ベースのテクスチャマップの数を示す第１の数をユーザーから受信することと、
浮動小数点ベースのテクスチャマップの数を示す第２の数をユーザーから受信することと、
前記ユーザーから受信された前記第１の数および第２の数を使用して前記テクスチャマップセットに対するグラフィックメモリ空間を構成することと、をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記補間パラメータは、バイリニア補間、ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏマップ（ミップマップ）選択、ミップマップトリリニア補間、または異方性フィルタリングから得られる、請求項１５に記載の方法。
【請求項１８】
前記テクスチャマップセットは、
３チャネル整数ベースの拡散色テクスチャと、
３チャネル整数ベースの鏡面反射色テクスチャと、
３チャネル浮動小数点ベースの法線マップと、
１チャネル整数ベースの透明度マップと、を含む、請求項１５に記載の方法。
【請求項１９】
前記基本データ型は、浮動小数点データ型および整数データ型を含む、請求項１５に記載の方法。
【請求項２０】
グラフィックス処理ユニット（ＧＰＵ）で遅延レンダリングする方法であって、
浮動小数点ベースの法線ベクトルテクスチャおよび整数ベースの材料指数を、三次元物体を表す画像に対する単一ターゲットｇバッファに記憶することと、
テクスチャパラメータとして前記ｇバッファを前記画像に対するフラグメントプログラムに渡すことと、
メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、前記ｇバッファおよび前記フラグメントプログラムを使用する前記画像に対するシェーディングを決定することと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１１年５月２日に出願された、米国特許出願第１３／０９９，２８１号の継続出願であり、その利益を主張するものであり、その全体があらゆる目的で参照により本明細書に組み込まれる。
【０００２】
本発明の実施形態は、概して、コンピュータグラフィックス処理システムに関し、具体的には、三次元シーンに対する関連した単一セットとして複数の異なる種類のテクスチャマップを受け取り、処理するグラフィックス処理ユニット（ＧＰＵ）に関する。
【背景技術】
【０００３】
現代のテレビゲームにおける三次元（３Ｄまたは３−Ｄ）モデルでは、３Ｄシーンの現実的な外観に近づくために複数のテクスチャを使用する。テクスチャマップと呼ばれることもあるテクスチャは典型的に、デジタル処理で３Ｄ物体の周囲に配置されるか、またはそうでなければ３Ｄ物体にマップされ得る、色の表、透明度、材料特性、表面配向、または他の特徴である。テレビゲームでは、３Ｄモデルに使用されるテクスチャとしては、拡散色テクスチャ、鏡面反射（光沢のある）色テクスチャ、法線マップ、透明度マップ、材料指数などが挙げられることが多い。これらのテクスチャは、適切なテクスチャをメモリに記憶し、かつメモリへのアドレスをグラフィックス処理ユニット（ＧＰＵ）に渡すことによって３Ｄモデルに１つずつ適用される。
【０００４】
図１は、グラフィックスプロセッサでテクスチャを画像に適用するための先行技術のシステムを示す。システム１００では、三次元モデル１０１がＧＰＵ１１３によって処理するためにメモリに記憶される。赤色（Ｒ）チャネルマップ１０２、緑色（Ｇ）チャネルマップ１０３、および青色（Ｂ）チャネルマップ１０４からなるテクスチャマップ１０５は、モデルに適用するためにメモリに記憶される。
【０００５】
チャネルマップのそれぞれは、補間およびフィルタリングのためのハードウェア支援を偶然有する一般的Ｎ次元表である。チャネルマップは、適用に応じて整数または浮動小数点ベースであり得る。例えば、拡散テクスチャマップ１０５は、すべてのデータが整数データ型１０９の中にある整数ベースである。拡散マップは、テクセルごとに３つの整数値を有し、Ｒ、Ｇ、およびＢが赤色、緑色、および青色の色成分を表す。それぞれのテクセルに対する３つの整数値は、メモリで互いに追従し、即ち、交互配置される。即ち、表の値は、ＲＧＢ、ＲＧＢ、ＲＧＢなどとして記憶される。それぞれ８ビット整数は、赤色の量を表し、０〜２５５の間およびそれらを含む許容値である。ＧおよびＢチャネルを取って、ＲＧＢテクスチャマップ１０５によって表される色の量は、２５６ｘ２５６ｘ２５６＝約１６００万色を超える。代替の形式では、さらなるアルファＡ（透明度）チャネルが「ＲＧＢＡ」形式でテクセルに対するＲＧＢ値と交互配置されるときがある。即ち、表の値は、ＲＧＢＡ、ＲＧＢＡ、ＲＧＢＡなどとして記憶される。これにより、８ビットチャネルテクスチャに対するテクセルの４バイトメモリアライメントが可能になる。アルファチャネルが別の形式で未使用である場合、浪費され、「ＲＧＢＸ」形式と呼ばれることもある。例示的な実施形態では、テクスチャマップ１０５のメモリアドレスが、３Ｄ物体にマップするために関数のパラメータとしてＧＰＵに送信される。
【０００６】
拡散色テクスチャマップ１０５の色が３Ｄモデル１０１に適用された後、ＧＰＵ１１３からレンダリングアプリケーション（即ち、ＧＰＵの「ユーザー」）に制御が戻される。次に、レンダリングアプリケーションは、鏡面反射（即ち、光沢のある）色ＲＧＢテクスチャマップ１０６を画像（のアドレス）が第１のステップの結果を記憶するＧＰＵ１１３に渡す。拡散色テクスチャマップ１０５のように、鏡面反射色テクスチャマップ１０６もまた、３つのチャネル、ＲＧＢからなる整数ベースのテクスチャマップである。鏡面反射色は、３Ｄモデルに適用され、画像を更新する。
【０００７】
拡散および鏡面反射色テクスチャが３Ｄモデルに適用された後、法線マップが使用され、画像を更新することができる。光源が表面に直行的に垂直（即ち、直角）である表面が、光源がある角度であるものとは異なって照らされる。同様に、仮想カメラの位置に対して表面から離れたグレージング角の光源が異なって照らされる。
【０００８】
法線マップ１０７がパラメータとしてＧＰＵ１１３に渡される。法線マップ１０７は、その表におけるすべてのデータに対する浮動小数点データ型１１０によって表される浮動小数点ベースである。そのＸ、Ｙ、およびＺ表におけるそれぞれの浮動小数点番号が空間の方向を表す。Ｘチャネルマップは、浮動小数点番号の二次元配列である。それぞれの３２ビット符号付き浮動小数点番号が、単位ベクトルが傾くＸ方向の大きさ、即ち、単位ベクトルのＸ成分を表す。ＹおよびＺチャネルはそれぞれ、単位ベクトルのＹおよびＺ成分を表す。それぞれの配列のメモリアドレスが、処理するためにパラメータとしてＧＰＵに送信され、画像を更新する。
【０００９】
法線マップを使用して照明が更新された後、透明度／不透明度が適用される。整数ベースのテクスチャマップの透明度マップ１０８が「アルファチャネル」と呼ばれることもある単一チャネルで表される。アルファチャネルは、整数の単一の二次元配列である。整数が大きいほど、より不透明である。値は典型的に、１マイナスの透明度を表す。
【００１０】
４つのテクスチャマップが３Ｄモデルに適用された後、比較的現実的に見える画像をテレビゲーム、コンピュータ支援設計（ＣＡＤ）画像、または他の三次元仮想環境でエンドユーザーに提示する準備ができる。画像１１１は、テクスチャマップのＧＰＵの適用の結果である。
【００１１】
他の先行技術の方法では、中央処理ユニット（ＣＰＵ）は、すべてのテクスチャのアドレスをＧＰＵに渡し、ＧＰＵにシェーダコードおよび形状を指定し、次いで制御をＧＰＵに引き渡す。ＧＰＵは、形状を描き、その形状を占めるそれぞれのピクセルに指定されたシェーダを適用する。シェーダは、補間支持で適用可能な配列型（例えば、１、２、または３次元配列）のローカル変数としてテクスチャにアクセスする。シェーダは、それらのテクスチャを使用し、最終生成物を生成し、さらに、複数回、テクスチャの１つまたは複数のチャネルを適用する。例えば、シェーダは、反射値として拡散チャネルのＲ成分を再使用することができる。しかしながら、テクスチャ補間が、数回無駄に繰り返される。
【００１２】
グラフィックスプロセッサおよびレンダリング技法が大量生産の消費者用テレビゲームハードウェアにおいて著しく、過去数十年間に飛躍的に改良されたが、より速くかつより効率的な３Ｄレンダリングに対する当該技術における常に存在する必要性がある。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
異なる種類のテクスチャをフィルタ処理および補間するために、１つのテクスチャセットにおける異なる種類のテクスチャを組み合わせ、次いでテクセル対ピクセルマッピングに対するフィルタリングおよび補間パラメータを使用するためのシステム、デバイス、および方法が概して記載される。マッピングにより、先行技術より少ないオーバーヘッドでピクセルまたは他の出力点における適切な色のレンダリングが可能になる。テクセルまたは複数のテクセルの潜在的に混合された値からのサンプルをもたらす補間パラメータが１回計算され、次いで複数のテクスチャに再使用される。全く異なる意味を有し、色テクスチャおよび法線マップなどの異なる目的に使用されるデータを有するテクスチャが同一の補間パラメータを使用して適用される。補間パラメータは、整数ベースの色テクスチャマップと浮動小数点法線マップとの間で再使用され得る。
【００１４】
補間パラメータは、インターフェースによって異なるテクスチャマップがパラメータとして１つの呼び出しでＧＰＵに渡されることが可能になるときに、ハードウェア内で再使用され得る。例えば、拡散ＲＧＢ（３）、鏡面反射ＲＧＢ（３）、法線マップＸＹＺ（３）、および透明度（１）テクスチャマップを含む１０チャネルテクスチャセットが、１つの関数呼び出しでＧＰＵに渡されることが可能であり、ＧＰＵは、それらをすべて同時に処理し、画像をレンダリングすることができる。
【００１５】
本明細書の方法は、遅延レンダリングと適合し、異なるテクスチャを使用し、フィルタパラメータ決定および補間に基づく他の技法のオーバーヘッドを取り除くことができる。遅延レンダリングに対するより良い支持に加えて、多重チャネルのチャネルテクスチャにより予め計算された放射輝度伝達およびスペクトルレンダリングに対するより良い支持が可能になり得る。テクスチャの数およびデータ型がユーザーによって指定されることを可能にする柔軟型バッファ（例えば、ピクセルにつき２つの整数および３つの浮動小数点値）がさらにより大きな柔軟性を可能にし得る。
【００１６】
本開示のいくつかの実施形態は、グラフィックス処理ユニット（ＧＰＵ）でグラフィックス処理する方法を対象とする。本方法は、第１の基本データ型のテクセルを有する第１のテクスチャを受信することと、第２の基本データ型のテクセルを有する第２のテクスチャを受信することであって、第１の基本データ型および第２の基本データ型が互いに異なることと、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、第１のテクスチャにおける第１のデータ型のテクセルに対する補間パラメータを決定し、三次元シーンを表す画像のピクセルにマップすることと、第２のテクスチャにおける第２のデータ型のテクセルを、第１のテクスチャに対して決定された補間パラメータを使用してピクセルに適用することとを含む。
【００１７】
いくつかの実施形態は、ＧＰＵでグラフィックス処理する方法を対象とする。本方法は、三次元モデルの外観を定義するテクスチャセットを受信することであって、該テクスチャセットが、一方の基本データ型が他方と異なる基本データ型に基づくテクスチャを有することと、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、テクスチャマップの一方におけるテクセル位置に対して三次元モデル上の一部分に対する補間パラメータを決定することと、決定された補間パラメータを使用し、他のテクスチャマップにおける対応するテクセル上に処理を行うことと、それによって異なる基本データ型のテクスチャに対する決定された補間パラメータを使用することとを含む。
【００１８】
本方法は、整数ベースのテクスチャマップの数を示す第１の数をユーザーから受信することと、浮動小数点ベースのテクスチャマップの数を示す第２の数をユーザーから受信することと、ユーザーから受信された第１の数および第２の数を使用してテクスチャセットに対するグラフィックメモリ空間を構成することとを含むことができる。
【００１９】
いくつかの実施形態は、ＧＰＵで遅延レンダリングする方法を対象とする。本方法は、浮動小数点ベースの法線ベクトルテクスチャおよび整数ベースの材料指数を、三次元シーンを表す画像全体に対する単一ターゲットｇバッファに記憶することと、テクスチャパラメータとしてｇバッファを画像全体に対するフラグメントプログラムに渡すことと、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、ｇバッファおよびフラグメントプログラムを使用する画像に対するシェーディングを決定することとを含む。
【００２０】
他の実施形態は、上述される方法に対する命令を用いるか、または記憶する機械可読の有形記憶媒体およびコンピュータシステムに関する。
【００２１】
本明細書に開示され、提案される実施形態の性質および利点のさらなる理解が、明細書および添付の図面の残り部分を参照することによって実現することができる。
【図面の簡単な説明】
【００２２】
【図１】グラフィックスプロセッサでテクスチャを画像に適用するための先行技術のシステムを示す。
【図２】一実施形態に従うグラフィックスプロセッサでテクスチャを画像に適用するためのシステムを示す。
【図３】一実施形態に従う整数データ型のテクセルを有するクワッドを示す。
【図４】一実施形態に従う浮動小数点データ型のテクセルを有するクワッドを示す。
【図５】一実施形態に従うミップマップを示す。
【図６】一実施形態に従う三次元モデルを示す。
【図７】一実施形態に従うテクスチャマップを示す。
【図８】一実施形態に従う図６の三次元モデルに適用される図７のテクスチャマップを示す。
【図９】一実施形態に従うプロセスのフローチャートである。
【図１０】一実施形態に従うプロセスのフローチャートである。
【図１１】一実施形態に従うプロセスのフローチャートである。
【図１２】一実施形態を実施するために好適なコンピュータシステムを示す。
【発明を実施するための形態】
【００２３】
概して、多テクスチャ加工の３Ｄ形状をレンダリングするときに計算オーバーヘッドを低減するための方法、システム、およびデバイスが記載される。本明細書に記載される対象により良質の予め計算された放射輝度伝達に対する支持、スペクトルレンダリング、および遅延レンダリングに対する改良された支持が可能になり得る。異なるデータ型テクスチャマップが、単一テクスチャマップセットにおいてグラフィックスレンダリングを行うことができるグラフィックス処理ユニットまたは他のハードウェアに渡され得る。整数および浮動小数点データ型を含む異なる基本データ型（プリミティブデータ型）は、テクスチャマップセットにおいてテクスチャマップに使用され得る。バイリニアおよびトリリニア補間、ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏマップ（ミップマップまたはＭＩＰマップ）レベル決定、異方性フィルタリング、ならびに他の補間から得られるものなどの補間パラメータが異なるテクスチャマップ間で再使用される。例えば、拡散色マップにおける赤色テクセルの加重は、法線マップにおいて法線ベクトルのＸ成分に再使用され得る。
【００２４】
本発明者は、異なる種類のテクスチャが、大きく異なる使用およびデータを有するものでさえ、同一の解像度およびマッピングを有することが多いことを認識した。しかしながら、先行技術のＧＰＵは、ハードウェアで別個のテクスチャリングユニットを使用してプログラマに別個のテクスチャとしてテクスチャを指定することを必要とすることが多い。これは、結局、同一のテクスチャ座標がすべのテクスチャに使用されるとしても、バイ／トリリニア補間および異方性フィルタリングなどのフィルタリング設定およびサンプリングアルゴリズムが次に複数回実行されなければならないため多くの場合に無駄であり得る。この浪費の理由のうちの１つは、先行技術のＧＰＵがテクスチャおよびフレームバッファに配置する任意制限であり、それらは最大４チャネル（即ち、「Ａ」がアルファチャネルであるＲＧＢＡ）のみ有することができる。
【００２５】
一実施形態では、ユーザー定義テクスチャセットがグラフィックスプロセッサに渡すために設定され得る。例えば、ピクセルにつき２つの整数および３つの浮動小数点値を有するテクスチャがプロラマによって指定され、ＧＰＵに渡され、１つのプログラム呼び出しでＧＰＵによってレンダリングされ得る。
【００２６】
本開示の実施形態の技術的優位性としては、３Ｄシーンに対するテクスチャマッピングでより速いレンダリングおよび一層の柔軟性が挙げられる。空間が懸案事項である、整数ベースのＲＧＢテクスチャマップなどのテクスチャマップは、高ダイナミック範囲が重要である、浮動小数点ベースの法線マップなどにおいてテクスチャマップで再使用される補間パラメータを有することができる。より良質の予め計算された放射輝度伝達（例えば、球面調和関数）に対するより良い支持があり得る。色チャネルにつき４つの係数（即ち、ＲＧＢＡ）のみを使用することは、特に影／光境界で視覚詳細を制限する。より多くの係数がより良い視覚品質を可能にする。色が一層密にサンプリングされたスペクトル（例えば、ちょうど３ではなく３２）によって表されるスペクトルレンダリングは、それぞれのピクセルでＲＧＢスペクトル変換の大きな計算オーバーヘッドを取り除くことができる。また、ＲＧＢ対スペクトル変換が不十分に抑制される。即ち、無数のメタマーが同一のＲＧＢトリプレットに変換する。したがって、元データが多重スペクトルであった場合、それをＲＧＢに変換し、多重スペクトルに戻すことは、重大な情報損失を招く可能性がある。元の、例えば、３２サンプルスペクトルテクスチャを記憶することは、高精度の色のレンダリングを可能にする。テクスチャと同様に実施形態をフレームバッファに広げることによって遅延レンダリングに対するより良い支持があり得る。これらにより照明段階に対するバッファに記憶される値の数および種類に関して一層の柔軟性が可能になり得る。技術的優位性は、３Ｄシーンをレンダリングすることをはるかに優れて超える。金融用途では、リアルタイムの３Ｄグラフィックスに使用される補間方法と類似するデータをサンプリングするアプリケーションが、整数、通貨、および浮動小数点データ型を受け取るプログラムに対してより速く動作することができる。
【００２７】
「基本データ型」としては、バイト、整数（例えば、短い、正則、長い）、浮動小数点（倍精度浮動小数点を含む）、ブール値、およびｃｈａｒデータ型が挙げられる。多くのプログラミング言語では、基本データ型は、Ｃ／Ｃ＋＋ｓｔｒｕｃｔコマンドの場合など、合成型に組み合わされ得る。基本データ型は、使用中のハードウェアまたはプログラミング言語によって直接支持され得る。
【００２８】
「ｇバッファ」は、グラフィックスバッファであり、遅延シェーディングに使用される。ｇバッファは、先行技術でマルチレンダーターゲット（ＭＲＴ）によって支持される複数の成分を含むことができる。複数の成分ｇバッファによりピクセルシェーダが一度にいくつかの色を出力することが可能になる。
【００２９】
テクセルの「補間パラメータ」は、テクセルからピクセルまたは出力点にシェードまたは他の値をマップするために、加重、シェード、または１つ以上のテクセルから取られる他のパラメータを含む。補間パラメータは、バイリニア補間、ミップマップ選択、トリリニアミップマップ補間、異方性フィルタリングなどから得られる任意のパラメータを指すことができる。最も近いミップマップの単純な選択は、時に補間と呼ばれ、補間パラメータを使用する。
【００３０】
「テクセル」は、いくつかのアドレスされた座標でテクスチャにおけるピクセルまたは他の位置を含む。テクセルは、拡散色テクスチャ、鏡面反射色テクスチャ、法線マップテクスチャ、透明度マップテクスチャ、反射マップテクスチャ、予め計算された光テクスチャ、材料指数テクスチャなどの要素を含む。
【００３１】
「色」は、従来の画面成分色の赤色、緑色、および青色（ＲＧＢ）によって表される色、シアン、マゼンタ、黄色、および黒色（ＣＭＹＫ）によって表される従来のリソグラフィ色、従来とは異なる多重スペクトル色（例えば、３２の色のチャネルであるハイパースペクトル）、グレースケール、および電磁放射特質の他の表示を含む。
【００３２】
図２は、一実施形態に従うグラフィックスプロセッサでテクスチャを画像に適用するためのシステムを示す。システム２００では、三次元モデル２０１がＧＰＵ２１３によって処理するためにメモリに記憶される。１０チャネルテクスチャマップセット２１４が、拡散色テクスチャマップ２０５と、鏡面反射色テクスチャマップ２０６と、法線マップ２０７と、透明度マップ２０８とを含む。拡散色テクスチャマップはそれぞれ、Ｒマップ２０２、Ｇマップ２０３、およびＢマップ２０４を含む。鏡面反射色テクスチャマップ２０６は、同様にＲＢＧマップを含む。テクスチャマップ２０５、２０６、および２０８は、それぞれのテクスチャのテクセルが整数データ型２０９としてデータを記憶する整数ベースである。法線マップ２０７は、それぞれのテクスチャ配列Ｘ、Ｙ、およびＺのテクセルが浮動小数点データ型２１０として記憶される浮動小数点ベースである。法線マップは、小さな角度が光反射に関して大きな変化を及ぼすため、高ダイナミック範囲を必要とするときがある。光マップまたは透明度マップは、バンディングアーティファクトを回避するために高ダイナミック範囲が必要になる可能性が高い。
【００３３】
１０チャネルテクスチャマップセット２１４は、パラメータとしてＧＰＵ２１３に渡される。ＧＰＵ２１３は、Ｒテクスチャマップ２０２におけるテクセルに対する補間パラメータを決定し、Ｇテクスチャマップ２０３およびＢテクスチャマップ２０４に対するだけでなく鏡面反射色テクスチャマップ２０６（ＲＧＢ）、法線マップ２０７（ＸＹＺ）、および透明度マップ２０８（α）の成分マップに対するその補間パラメータを再使用する。
【００３４】
例えば、画像におけるある位置のピクセルに関して、ピクセルに対する位置は、３Ｄモデル２０１上、したがってテクスチャマップ上で決定される。周囲のテクセルとともにテクスチャマップ上の対応するテクセルに対する加重は、テクセル上の位置の相対中心性から得られる。ピクセルにマップする１つのＲテクセルに対する加重は、法線マップ上のＸ成分に対する加重として再使用される。ピクセルにマップする１つのＧテクセルに対する加重は、法線マップ上のＹ成分に対する加重として再使用される。ピクセルにマップする１つのＢテクセルに対する加重は、法線マップ上のＺ成分に対する加重として再使用される。
【００３５】
１０チャネルテクスチャマップセット２１４が３Ｄモデル２０１に適用された後、三次元シーンを表す画像２１１が得られる。１０チャネルテクスチャマップは、テレビゲームにおけるリアルタイムの３Ｄレンダリングに使用される標準テクスチャのうちの多くを組み込むと考えられる。しかしながら、異なる数のチャネルが好適である。
【００３６】
いくつかの実施形態では、ユーザーがＧＰＵに入力されるテクスチャの数を指定することができる。例えば、ユーザーは、パラメータとしてＧＰＵ機能に渡される整数ベースのテクスチャマップを表す数を打ち込むか、入力するか、選択するか、またはそうでなければ示すことができる。ユーザーは、パラメータとしてＧＰＵ機能に渡される浮動小数点ベースのテクスチャマップの数を表す別の数を示すことができる。次に、ＧＰＵは、ユーザーによって指定された数を使用してテクスチャマップセットに対するグラフィックメモリ空間を構成することができる。ユーザーがレンダリング機能を呼び出すとき、テクスチャマップのテクセルを使用するピクセルをサンプリングするか、またはそうでなければ調節するために、整数または浮動小数点ベースにかかわらず、テクスチャのすべてに補間パラメータが使用される。パラメータとしてすべてのテクスチャを有するレンダリング機能を呼び出すことによって、テクスチャ間の計算された補間パラメータを再使用することがより簡易になり得る。
【００３７】
図３は、一実施形態に従う整数データ型のテクセルを有するクワッドを示す。ＲＧＢ色テクスチャマップからの４つのテクセルの組、クワッド３２０がテクセル３２１、３２２、３２３、および３２４を含む。テクセルのそれぞれが異なる成分色度を表す。例えば、テクセルのそれぞれが色のＲＧＢ表現における赤色の値を表す。それぞれのテクセルが整数３２５などの整数を含む。
【００３８】
画像におけるピクセルの中心がクワッドの位置３２８にマップする。ピクセルがクワッドの正確な中心にマップされた場合、それぞれのテクセル３２１、３２２、３２３、および３２４からの色は、均等に（即ち、それぞれ２５％）重み付けされ、混合された色をもたらす。例示的な実施形態では、ピクセルがあるテクセル３２１は、クワッドの他のテクセルより重く重み付けされる。クワッドの中心からの水平距離３２６「ａ」および垂直距離３２７「ｂ」に基づいて、テクセル３２１はピクセルに重み付けされる。水平距離３２６および垂直距離３２７は、加重値が基づくバイリニア補間から得られる補間パラメータである。加えて、距離（即ち、√（ａ２＋ｂ２））または水平距離３２６と垂直距離３２７の他の組み合わせは、補間パラメータと見なされ得る。
【００３９】
図４は、一実施形態に従う浮動小数点データ型のテクセルを有するクワッドを示す。法線マップからの４つのテクセルの組のクワッド４２０は、テクセル４２１、４２２、４２３、および４２４を含む。テクセルのそれぞれが単位ベクトルの方向成分を表す。例えば、テクセルのそれぞれが単位ベクトルのＸＹＺ表現におけるＸ成分を表す。浮動小数点番号４２５などの浮動小数点番号によってそれぞれのテクセルが表される。
【００４０】
画像におけるピクセルの中心がクワッドの位置４２８にマップする。ピクセルがクワッドの正確な中心にマップされた場合、それぞれのテクセル４２１、４２２、４２３、および４２４からのＸ成分は、均等に（即ち、それぞれ２５％）重み付けされ、平均化されたＸ成分をもたらす。例示的な実施形態では、ピクセルがあるテクセル４２１は、クワッドの他のテクセルより重く重み付けされる。クワッドの中心からの水平距離４２６「ａ」および垂直距離４２７「ｂ」に基づいて、テクセル４２１はピクセルに重み付けされる。水平距離４２６および垂直距離４２７は、加重値が基づく補間パラメータである。
【００４１】
本発明者は、ＲＧＢテクスチャに得られる補間パラメータのうちの多くがＸＹＺテクスチャに再使用され得ることを認識した。さらに、補間パラメータは、整数ベースのクワッドと浮動小数点ベースのクワッドとの間で再使用され得る。これは、ハードウェアのプロセッササイクルを節約することができる。
【００４２】
水平距離３２６／垂直距離３２７（図３）および水平距離４２６／垂直距離４２７（図４）を決定することは、ＧＰＵにおける大幅なオーバーヘッドをもたらし得る。図４の浮動小数点ベースのテクスチャに対する図３の整数ベースのテクスチャから得られた距離または加重値を再使用することができ、その結果、プロセッサは、距離もしくは加重を再計算するか、および／またはメモリキャッシュからそれらを探索する時間を浪費することが少なくなる。
【００４３】
図５は、一実施形態に従うミップマップを示す。ミップマップピラミッド５００は、ｌｘｌミップマップ５３１、２ｘ２ミップマップ５３２、４ｘ４ミップマップ５３３、８ｘ８ミップマップ５３４、１６ｘ１６ミップマップ５３５、および３２ｘ３２ミップマップ５３５を含む。ミップマップ５００は、ミップマップのより大きなミラミッドの一部であり得る。
【００４４】
使用するための１つ以上のミップマップを決定するとき、３Ｄシーンにおける物体に対して規模が決定される。例示的な実施形態では、関心の対象に対する規模はレベル５３７である。レベル５３７は、ミップマップ５３３とミップマップ５３４との間に位置する。より小さなミップマップ５３３までの相対距離は距離５２６「ａ」であり、より大きなミップマップ５３４までの相対距離は距離５２７「ｂ」である。ミップマップ５３３およびミップマップ５３４のトリリニア補間が補間パラメータ５２６および補間パラメータ５２７を使用する。両方のミップマップから補間値が選定される。次に、これらの２つ値は、それぞれのＭＩＰレベルまでの相対距離（即ち、距離５２６「ａ」および距離５２７「ｂ」）に基づく第３の補間（それ故に名前は「トリリニア」）パラメータを使用して補間される。
【００４５】
他の実施形態では、最も近い規模のミップマップの単純な選択が使用される。例えば、「距離」ｂ＜ａの場合、ミップマップ５３４はさらなる処理に使用される。即ち、ミップマップ５３７がミップマップ５３３よりミップマップ５３４に規模でより近い場合、ミップマップ５３４はさらなる処理に使用される。いくつかの実施形態では、ミップマップの単純な選択が補間パラメータと見なされる選択自体を使用する。
【００４６】
適切な規模のミップマップ（複数可）を決定することは、大幅なリソースを消費する可能性がある。整数または浮動小数点番号に基づくものを含む他のミップマップに対して補間パラメータ５２６および補間パラメータ５２７を再使用することは、このようなリソースに対する必要性を低減する可能性がある。これは、異方性フィルタリングが非対称ミップマップに使用される状況に極めて有用である場合がある。
【００４７】
図６は、一実施形態に従う三次元モデルを示す。人間の頭の３Ｄモデル６４０は、図示するためにワイヤーフレームでレンダリングされる。３Ｄモデル６４０上のピクセル６４１は、それにマップされるいくつかのテクスチャを有することができる。拡散および鏡面反射色テクスチャ、法線マップ、ならびに透明度マップを含むテクスチャは、三次元シーンにおけるモデルをレンダリングするために使用され得る。
【００４８】
図７は、一実施形態に従うテクスチャマップを示す。拡散色テクスチャマップのテクスチャマップ７４０は、目、耳、口などの特徴を含む。テクセル７４１は、図６上のピクセル６４１にマップする。他のテクスチャマップとともにテクスチャマップ７４０を３Ｄモデル６４０（図６）にマップすることによって、現実的な３Ｄ画像が生成され得る。
【００４９】
図８は、一実施形態に従う図６の三次元モデルに適用される図７のテクスチャマップを示す。３Ｄの頭８４０は、ピクセル６４１（図６）およびテクセル７４１（図７）に対応するピクセル８４１を有する。図の三次元物体は、テレビゲーム、ＣＡＤ図面、および他の３Ｄ環境に使用され得る。
【００５０】
図８のレンダリングはまた、遅延レンダリングを使用して達成され得る。浮動小数点ベースの法線マップおよび整数ベースの材料指数が単一ターゲットｇバッファに記憶され得る。単一ｇバッファは、テクスチャパラメータとして全画面画像全体に対するユーザー指定のフラグメントプログラムに渡され得る。画像に対するシェーディングは、ｇバッファおよびフラグメントプログラムを使用する画像に対して計算される。
【００５１】
図９は、一実施形態に従うプロセス９００を示すフローチャートである。操作９０１では、第１の基本データ型のテクセルを有する第１のテクスチャが受信される。操作９０２では、第２の基本データ型のテクセルを有する第２のテクスチャが受信される。第１および第２の基本データ型は互いに異なる。操作９０３では、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、第１のテクスチャにおける第１のデータ型のテクセルに対する補間パラメータが決定され、三次元物体またはシーンを表す画像のピクセルにマップする。操作９０４では、第２のテクスチャにおける第２のデータ型のテクセルが、第１のテクスチャに対して決定された補間パラメータを使用してピクセルに適用される。
【００５２】
図１０は、一実施形態に従うプロセス１０００を示すフローチャートである。操作１００１では、整数ベースのテクスチャマップの数を示す第１の数がユーザーから受信される。操作１００２では、浮動小数点ベースのテクスチャマップの数を示す第２の数がユーザー、場合により同一ユーザーから受信される。操作１００３では、ユーザーから受信された第１および第２のかず使用してテクスチャセットに対するグラフィックメモリ空間が構成される。操作１００４では、三次元モデルの外観を定義するテクスチャセットが受信され、テクスチャセットは、一方の基本データ型が他方と異なる基本データ型に基づくテクスチャを有する。操作１００５では、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、テクスチャマップの一方におけるテクセル位置に対して三次元モデル上の一部分に対する補間パラメータが決定される。操作１００６では、決定された補間パラメータは、他方のテクスチャマップにおける対応するテクセル上に処理を行うために使用される。これにより異なる基本データ型のテクスチャに対する決定された補間パラメータを使用することが可能になる。
【００５３】
図１１は、一実施形態に従うプロセス１１００を示すフローチャートである。操作１１０１では、浮動小数点ベースの法線ベクトルテクスチャおよび整数ベースの材料指数が、三次元物体またはシーンを表す画像に対する単一ｇバッファに記憶される。操作１１０２では、ｇバッファは、テクスチャパラメータとして画像全体に対するフラグメントプログラムに渡される。操作１１０３では、メモリと動作可能に結合される少なくとも１つのプロセッサを使用して、ｇバッファおよびフラグメントプログラムを使用する画像に対するシェーディングが決定される。
【００５４】
操作は、上記の順序または必要に応じて異なる順で行われてもよい。それらは、コンピュータまたは他の機械で自動化される可能性があり、ソフトウェア、ファームウェアでコード化され、または機械可読命令としてハードコードされる可能性があり、命令を実施することができる１つ以上のプロセッサによって動作させる。
【００５５】
図１２は、様々な実施形態に従うデバイスを実装するのに好適なハードウェアシステムの一例を示す。このブロック図は、本発明の実施形態を実践するのに好適なパーソナルコンピュータ、テレビゲーム機器および関連するディスプレイ、モバイルデバイス、パーソナルデジタルアシスタント、または他のデジタルデバイスなどのコンピュータシステム１２００を示す。コンピュータシステム１２００は、ソフトウェアアプリケーションおよび任意にオペレーティングシステムを動作させるための中央処理ユニット（ＣＰＵ）１２０５を含む。ＣＰＵ１２０５は、１つ以上の同種または異種の処理コアからなってもよい。メモリ１２１０は、ＣＰＵ１２０５によって使用するためのアプリケーションおよびデータを記憶する。ストレージ１２１５は、不揮発性ストレージおよび他のコンピュータ可読媒体をアプリケーションおよびデータに提供し、信号伝送および記憶媒体と同様に、固定ディスクドライブ、リムーバブルディスクドライブ、フラッシュメモリデバイス、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、Ｂｌｕ−ｒａｙ（登録商標）、ＨＤ−ＤＶＤ、または他の光学記憶デバイスを含んでもよい。ユーザー入力デバイス１２２０は、１つ以上のユーザーからのユーザー入力をコンピュータシステム１２００に伝達し、その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、静止カメラもしくはビデオカメラ、および／またはマイクが挙げられてもよい。ネットワークインターフェース１２２５によりコンピュータシステム１２００が電子通信ネットワークを介して他のコンピュータシステムと通信することが可能になり、またローカルエリアネットワークおよびインターネット等の広域ネットワーク上の有線または無線通信を含んでもよい。オーディオプロセッサ１２３０がＣＰＵ１２０５、メモリ１２１０、および／またはストレージ１２１５によって提供される命令および／またはデータからのアナログまたはデジタルオーディオ出力を生成するように適合される。ＣＰＵ１２０５、メモリ１２１０、データストレージ１２１５、ユーザー入力デバイス１２２０、ネットワークインターフェース１２２５、およびオーディオプロセッサ１２３０を含むコンピュータシステム１２００の構成要素は、１つ以上のデータバス１２３５を介して接続される。
【００５６】
グラフィックスサブシステム１２４０がデータバス１２３５およびコンピュータシステム１２００の構成要素とさらに接続される。グラフィックスサブシステム１２４０は、グラフィックス処理ユニット（ＧＰＵ）１２４５およびグラフィックスメモリ１２５０を含む。グラフィックスメモリ１２５０は、出力画像のそれぞれのピクセルに対するピクセルデータを記憶するために使用されるディスプレイメモリ（例えば、フレームバッファ）を含む。グラフィックスメモリ１２５０は、ＧＰＵ１２４５として同一のデバイスに統合され、別個のデバイスとしてＧＰＵ１２４５と接続され、および／またはメモリ１２１０内で実装され得る。ピクセルデータは、ＣＰＵ１２０５から直接グラフィックスメモリ１２５０に提供され得る。あるいは、ＣＰＵ１２０５は、所望の出力画像を定義するデータおよび／または命令をＧＰＵ１２４５に提供し、そこからＧＰＵ１２４５が１つ以上の出力画像のピクセルデータを生成する。所望の出力画像を定義するデータおよび／または命令は、メモリ１２１０および／またはグラフィックスメモリ１２５０に記憶され得る。一実施形態では、ＧＰＵ１２４５は、形状、照明、シェーディング、テクスチャリング、動作、および／またはシーンに対するカメラパラメータを定義する命令およびデータから出力画像に対するピクセルデータを生成するための３Ｄレンダリング能力を含む。ＧＰＵ１２４５は、シェーダプログラムを実行することができる１つ以上のプログラム可能な実行ユニットをさらに含むことができる。
【００５７】
グラフィックスサブシステム１２４０は、ディスプレイデバイス１２５５に表示されるようにグラフィックスメモリ１２５０からの画像に対するピクセルデータを定期的に出力する。ディスプレイデバイス１２５５は、ＣＲＴ、ＬＣＤ、プラズマ、およびＯＬＥＤディスプレイを含むコンピュータシステム１２００からの信号に応じて視覚情報を表示することができる任意のデバイスであり得る。コンピュータシステム１２００は、アナログまたはデジタル信号をディスプレイデバイス１２５５に提供することができる。
【００５８】
様々な実施形態に従って、ＣＰＵ１２０５は、１つ以上の処理コアを有する１つ以上の汎用マイクロプロセッサである。マイクロプロセッサアーキテクチャが媒体および双方向娯楽アプリケーションなどの高度に平行かつ計算集約的アプリケーションに特に適合される１つ以上のＣＰＵ１２０５を使用してさらなる実施形態が実施され得る。
【００５９】
システムの構成要素は、ネットワークを介して接続されてもよく、以下の任意の組み合わせであってもよい：ＩＰネットワーク、イントラネット、広域ネットワーク（「ＷＡＮ」）、ローカルエリアネットワーク（「ＬＡＮ」）、仮想プライベートネットワーク（「ＶＰＮ」）、公衆交換電話網（「ＰＳＴＮ」）、または異なる実施形態で本明細書に記載されるデバイス間のデータ通信を支持する任意の他の種類のネットワーク。ネットワークが光リンクを含む有線および無線接続の両方を含んでもよい。本開示に照らして多くの他の例が可能であり、当業者に明白である。本明細書の議論では、ネットワークが具体的に示されてもよく、または示されなくてもよい。
【００６０】
前述の明細書では、本発明は、その特定の実施形態を参照して記載されるが、当業者は、本発明がそれに限定されないことを認識するであろう。上述の発明の様々な特徴および態様が個別にまたは併せて使用されてもよい。さらに、本発明は、本明細書のより広範な趣旨および範囲から逸脱することなく本明細書に記載されるものを超えるあらゆる環境および用途に利用され得る。したがって、本明細書および図面は、限定されるものではなく例証として見なされる。
【００６１】
上述された方法、システム、およびデバイスは単に例であると意図されることに留意すべきである。様々な実施形態が必要に応じて様々な手順または構成要素を省略するか、代用するか、または追加してもよいことを強調されなければならない。例えば、代替的な実施形態では、本方法は記載されたものとは異なる順で行われてもよく、様々なステップが追加されるか、省略されるか、または組み合わされてもよいことを理解されるべきである。また、ある実施形態に関して記載された特徴が様々な他の実施形態で組み合わせられてもよい。本実施形態の異なる態様および要素が同様の方法で組み合わせられてもよい。また、技術が進化するため、要素のうちの多くが例であり、本発明の範囲を限定するように解釈されるべきではないことを強調されるべきである。
【００６２】
本実施形態の完全な理解を提供するために特定の詳細が説明に付与される。しかしながら、本実施形態がこれらの特定の詳細を用いることなく実践されてもよいことが当業者に理解されるであろう。例えば、本実施形態を不明瞭にしないために不必要な詳細を用いることなく、周知の回路、プロセス、アルゴリズム、構造、および技法が示された。
【００６３】
また、本実施形態はフロー図またはブロック図として図示されるプロセスとして記載されてもよいことに留意されたい。それぞれが順次プロセスとして操作を説明するが、操作のうちの多くが並行してまたは同時に行われ得る。加えて、操作の順は再編成されてもよい。プロセスが図に含まれない追加のステップを有してもよい。
【００６４】
さらに、本明細書で開示されるとき、用語「メモリ」または「メモリユニット」は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、マグネチックＲＡＭ、コアメモリ、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、または情報を記憶するための他のコンピュータ可読媒体を含むデータを記憶するための１つ以上のデバイスを表してもよい。用語「コンピュータ可読媒体」は、携帯可能または固定の記憶デバイス、光学記憶デバイス、無線チャネル、ＳＩＭカード、他のスマートカード、および命令またはデータを記憶するか、収容するか、または運ぶことができる様々な他の媒体を含むがこれらに限定されない。
【００６５】
さらに、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組み合わせによって実施形態が実施されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードに実装されるとき、必要なタスクを行うプログラムコードまたはコードセグメントは、記憶媒体などのコンピュータ可読媒体に記憶されてもよい。プロセッサが必要なタスクを行ってもよい。
【００６６】
いくつかの実施形態を記載したが、本発明の趣旨を逸脱することなく様々な修正、代替の構造物、および均等物が使用されてもよいことが当業者に認識されるであろう。例えば、上記の要素は、単により大きなシステムの構成要素であってもよく、他の規定が本発明の適用に優先するか、または別の様式で修正してもよい。また、いくつかのステップは、上記の要素が考慮される前、その間、またはその後に始められてもよい。したがって、上記の説明は、本発明の範囲を限定するものとして解釈されるべきではない。
【図１】
2014519640.tif 000003
【図２】
2014519640.tif 000004
【図３】
2014519640.tif 000005
【図４】
2014519640.tif 000006
【図５】
2014519640.tif 000007
【図６】
2014519640.tif 000008
【図７】
2014519640.tif 000009
【図８】
2014519640.tif 000010
【図９】
2014519640.tif 000011
【図１０】
2014519640.tif 000012
【図１１】
2014519640.tif 000013
【図１２】
2014519640.tif 000014
【国際調査報告】
2014519640.tif 000015
2014519640.tif 000016