(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6293923
(24)【登録日】2018年2月23日
(45)【発行日】2018年3月14日
(54)【発明の名称】スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
(51)【国際特許分類】
G06T 15/04 20110101AFI20180305BHJP
【FI】
G06T15/04
【請求項の数】24
【全頁数】20
(21)【出願番号】特願2016-560398(P2016-560398)
(86)(22)【出願日】2015年3月23日
(65)【公表番号】特表2017-517054(P2017-517054A)
(43)【公表日】2017年6月22日
(86)【国際出願番号】US2015021987
(87)【国際公開番号】WO2015153170
(87)【国際公開日】20151008
【審査請求日】2016年9月30日
(31)【優先権主張番号】14/246,062
(32)【優先日】2014年4月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513244960
【氏名又は名称】ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】サーニー、マーク エヴァン
【審査官】
真木 健彦
(56)【参考文献】
【文献】
特開2000−155850(JP,A)
【文献】
特開2009−116550(JP,A)
【文献】
特開2006−293627(JP,A)
【文献】
米国特許第08300059(US,B1)
【文献】
米国特許第07339594(US,B1)
【文献】
米国特許出願公開第2011/0134136(US,A1)
【文献】
馬路 徹,最新スマホやタブレットはなぜ速いのか? いまこそ知りたい! CPU再入門,日経Linux 第14巻 第8号,日本,日経BP社,2012年 7月 8日,2012.8,P.127-132,ISSN 1345-0182
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 − 15/87
(57)【特許請求の範囲】
【請求項1】
ピクセル・シェーダ及びテクスチャ・ユニットを有するグラフィック演算処理装置(GPU)を備え、
前記ピクセル・シェーダが、ピクセル・サンプル位置毎のテクスチャ座標の1つまたは複数のセットを受信あるいは生成するように構成され、前記ピクセル・シェーダ及びテクスチャ・ユニットがそれらの間で、1つまたは複数の原形に関するテクスチャ空間の傾き値を計算し、前記傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の領域間で前記傾き値を滑らかに遷移させるように構成されたピクセル毎の傾きスケール要素を生成及び適用するように構成され、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の複数の領域は、領域内のピクセルの一部がレンダリングされない少なくとも1つのディスプレイ・デバイスのスクリーン空間の領域を含む、コンピュータ・グラフィック・システム。
【請求項2】
前記テクスチャ空間の傾き値は、スクリーン空間のサンプル分布の非正規直交性に関する訂正を含む、請求項1に記載のシステム。
【請求項3】
前記テクスチャ・ユニットは、特定用途の集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはチップ上のシステム(SOC)である、請求項1に記載のシステム。
【請求項4】
前記テクスチャ・ユニットは、さらに、前記調整された傾き値からの1つまたは複数の原形に適用される、テクスチャに関する複数のディテールのレベルから1つのディテールのレベルを選択するように構成された、請求項1に記載のシステム。
【請求項5】
前記テクスチャ・ユニットは、さらに、前記1つまたは複数の原形に前記テクスチャを適用するように構成された、請求項4に記載のシステム。
【請求項6】
前記GPUに結合されたディスプレイ・ユニットをさらに備え、前記ディスプレイ・ユニットは、前記1つまたは複数の原形に適用された前記テクスチャを含む画像を表示するように構成された、請求項5に記載のシステム。
【請求項7】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャ空間の傾き値を計算し、スケールが訂正された傾き値を得るために、前記ピクセル毎の傾きスケール要素を生成及び適用する、請求項1に記載のシステム。
【請求項8】
前記ピクセル・シェーダは、前記ピクセル毎の傾きのスケール要素を計算し、それらを、前記テクスチャ座標を有する前記テクスチャ・ユニットに提供する、請求項1に記載のシステム。
【請求項9】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャ空間の傾き値を計算し、次いで、調整された傾き値を得るために、前記供給された傾きのスケール要素を前記テクスチャ空間の傾きに適用する、請求項8に記載のシステム。
【請求項10】
前記ピクセル・シェーダは、前記テクスチャ座標から前記テクスチャ空間の傾きを計算し、前記テクスチャ座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダが前記テクスチャ・ユニットに、前記テクスチャ・ユニットが前記サンプル格子の任意の非正規直交性について前記テクスチャの傾き値を訂正しなければならないことを示す、請求項1に記載のシステム。
【請求項11】
前記ピクセル・シェーダはまた、前記ピクセル毎の傾きのスケール要素を判定し、それらを前記テクスチャ・ユニットに提供し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記調整された傾きを得るために前記傾きのスケール要素を前記傾きに適用しなければならないことを通知する、請求項10に記載のシステム。
【請求項12】
前記ピクセル・シェーダは、前記テクスチャ座標から前記調整されたテクスチャの傾きを計算し、それらを前記テクスチャ空間座標とともに前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記調整された傾きが、原形に適用されるテクスチャに関するディテールのレベルを選択するように使用されるものとすることを示す、請求項1に記載のシステム。
【請求項13】
ピクセル・シェーダ及びハードウェアで実施されたテクスチャ・ユニットを有するコンピュータ・グラフィック演算処理装置(GPU)におけるグラフィック処理方法であって、
前記ピクセル・シェーダが、ピクセル位置毎の1つまたは複数のテクスチャ座標を生成して、1つまたは複数のテクスチャ・マッピング操作のための座標セットを提供することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、前記テクスチャ座標から傾き値を計算することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、対応する傾き値を対応する調整された傾き値に調整するように構成された傾きスケール要素を判定することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、前記傾きスケール要素を前記傾き値に適用することであって、前記調整要素は、前記傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の領域間で前記傾き値を滑らかに遷移させるように構成された、適用することと、を含み、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の複数の領域は、領域内のピクセルの一部がレンダリングされない少なくとも1つのディスプレイ・デバイスのスクリーン空間の領域を含む、グラフィック処理方法。
【請求項14】
前記テクスチャ空間の傾き値は、スクリーン空間のサンプル分布の非正規直交性に関する訂正を含む、請求項13に記載の方法。
【請求項15】
前記テクスチャ・ユニットで、前記調整された傾き値から1つまたは複数の原形に適用されるテクスチャに関して、複数のディテールのレベルから1つのディテールのレベルを選択することをさらに含む、請求項13に記載の方法。
【請求項16】
前記テクスチャ・ユニットで、前記1つまたは複数の原形に前記テクスチャを適用することをさらに含む、請求項13に記載の方法。
【請求項17】
ディスプレイ・ユニットで、前記1つまたは複数の原形に適用された前記テクスチャを含む画像を表示することをさらに含む、請求項16に記載の方法。
【請求項18】
前記ピクセル・シェーダはピクセル位置毎に前記テクスチャ座標を生成し、各テクスチャ・マッピング操作に関する座標セットを前記テクスチャ・ユニットに提供する、請求項17に記載の方法。
【請求項19】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャの傾斜を計算し、前記訂正された傾き値を得るために、前記傾きのスケール要素を生成及び適用する、請求項18に記載の方法。
【請求項20】
前記ピクセル・シェーダは、前記傾きのスケール要素を計算し、それらを、前記テクスチャ座標とともに前記テクスチャ・ユニットに提供する、請求項13に記載の方法。
【請求項21】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給される前記テクスチャ座標からテクスチャ空間の傾き値を計算し、次いで、調整された傾き値を得るために、前記供給された傾きのスケール要素を前記テクスチャ空間の傾きに適用する、請求項20に記載の方法。
【請求項22】
前記ピクセル・シェーダは、前記テクスチャ座標から前記テクスチャ空間の傾きを計算し、前記テクスチャ座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記サンプル格子の任意の非正規直交性に関して前記テクスチャ傾き値を訂正しなければならないことを示す、請求項13に記載の方法。
【請求項23】
前記ピクセル・シェーダはまた、前記傾きのスケール要素を判定し、それらを前記テクスチャ・ユニットに提供し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記調整された傾きを得るために、前記傾きのスケール要素を前記傾きに適用しなければならないことを通知する、請求項22に記載の方法。
【請求項24】
前記ピクセル・シェーダは、前記テクスチャ座標から前記調整されたテクスチャの傾きを計算し、前記テクスチャ空間の座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記調整された傾きが、原形に適用されるテクスチャに関するディテールのレベルを選択するように使用されるものとすることを示す、請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、Tobias Berghoffによる、「METHOD FOR EFFICIENT CONSTRUCTION OF HIGH RESOLUTION DISPLAY BUFFERS(高解像度ディスプレイ・バッファの効果的な製造方法)」(代理人整理番号SCEA13055US00)と題され、本出願と同じ日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,064号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0002】
本出願は、Tobias Berghoffによる、「GRAPHICS PROCESSING ENHANCEMENT BY TRACKING OBJECT AND/OR PRIMITIVE IDENTIFIERS(物体追跡及び/またはプリミティブ識別子によるグラフィック処理向上)」(代理人整理番号SCEA13056US00)と題され、2014年4月5日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,067号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0003】
本出願は、Mark Evan Cernyによる、「GRADIENT ADJUSTMENT FOR TEXTURE MAPPING TO NON−ORTHONORMAL GRID(非正規直交性格子に対するテクスチャ・マッピングの傾き調整)」(代理人整理番号SCEA13057US00)と題され、2014年4月5日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,068号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0004】
本出願は、Tobias Berghoffによる、「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY CHANGING ACTIVE COLOR SAMPLE COUNT WITHIN MULTIPLE RENDER TARGETS(マルチプル・レンダリング目標でアクティブなカラーサンプル数を変更することによりスクリーンの位置によって変化する有効解像度)」(代理人整理番号SCEA13058US00)と題され、2014年4月5日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,061号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0005】
本出願は、Mark Evan Cernyによる、「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY ALTERING RASTERIZATION PARAMETERS(ラスタ化パラメータを変更することによりスクリーンの位置によって変化する有効解像度)」(代理人整理番号SCEA13059US00)と題され、2014年4月5日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,063号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0006】
本出願は、Mark Evan Cernyによる、「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION IN GRAPHICS PROCESSING BY APPROXIMATING PROJECTION OF VERTICES ONTO CURVED VIEWPORT(湾曲したビューポートに近似の頂点の投影によるグラフィック処理におけるスクリーンの位置によって変化する有効解像度)」(代理人整理番号SCEA13060US00)と題され、2014年4月5日に出願された、共通に付与され、同時係属中の米国特許出願番号第14/246,066号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【0007】
[技術分野]
本開示の態様は、コンピュータ・グラフィックに関する。具体的には、本開示はテクスチャ・マッピングに使用される傾きの調整に関する。
【背景技術】
【0008】
グラフィック処理は通常、中央演算処理装置(CPU)とグラフィック演算処理装置(GPU)の2つのプロセッサの協同を伴う。GPUは、ディスプレイへの出力を意図したフレーム・バッファ内の画像の形成を促進するように設計された専門の電子回路である。GPUは、埋込型システム、携帯電話、パーソナル・コンピュータ、タブレット・コンピュータ、ポータブル・ゲーム・デバイス、ワークステーション、及びゲーム・コンソールに使用される。GPUは通常、コンピュータ・グラフィックの操作に効果的であるように設計されている。GPUはしばしば、GPUを、大きいブロックのデータの処理が並行して行われるアルゴリズムに関して多目的CPUよりも効果的とする、高度に並行な処理のアーキテクチャを有する。
【0009】
CPUは、一般にドロー・コマンドと呼ばれ、GPUに特定のグラフィック処理タスクを実施するように(たとえば、画像の以前のフレームに対して変化した特定のテクスチャをレンダリングするように)指示するGPU指示を送る場合がある。これらドロー・コマンドは、特定のアプリケーションの仮想環境の状態に対応するグラフィック・レンダリング・コマンドを出すために、CPUにより、グラフィック・アプリケーション・プログラミング・インターフェース(API)と協同させられる場合がある。
【0010】
特定のプログラム用のテクスチャをレンダリングするために、GPUは、「グラフィック・パイプライン」の一連の処理タスクを実施して、仮想環境における外観をディスプレイ上にレンダリングすることができる画像に変換することができる。通常のグラフィック・パイプラインは、仮想空間内の仮想対象への特定のレンダリングまたはシェーディング操作、出力ディスプレイに適切なピクセル・データを提供するための、そのシーンの仮想対称の変換及びラスタ化、ならびにディスプレイ上にレンダリングされた画像を出力する前のピクセル(またはフラグメント)上の追加のレンダリング・タスクを実施することを含み得る。
【0011】
画像の仮想対象はしばしば、原形として知られる形状に関して仮想空間に記載され、ともに仮想シーンにおいて対称の形状を形成する。たとえば、レンダリングされる3次元の仮想世界における対称は、3次元空間で協同し、それによりそれらポリゴンが対称の表面を形成することに関して規定される頂点を有する一連の別個の3角形の原形に低減される。各ポリゴンは、グラフィック処理システムによって使用されて、所与のポリゴンを他のポリゴンから区別することができる、関連するインデックスを有する場合がある。同様に、各頂点は、所与の頂点を他の頂点から区別するのに使用することができる、関連するインデックスを有し得る。グラフィック・パイプラインは、それら原形に特定の操作を実施して、仮想シーンのための外見を与え、このデータをディスプレイ上のピクセルによって再現するのに適切な2次元フォーマットに変換することができる。本明細書において使用されるグラフィック原形情報(またはシンプルに「原形情報」)は、グラフィックの原形を示すデータに言及するのに使用される。そのようなデータには、それに限定されないが、頂点情報(たとえば、頂点位置または頂点インデックスを示すデータ)及びポリゴン情報、たとえばポリゴン・インデックス、ならびに、特定の頂点を特定のポリゴンに関連付ける情報が含まれる。
【0012】
GPUは、一般にシェーダとして知られるプログラムを実行することにより、グラフィック・パイプラインのレンダリング・タスクを実行し得る。通常のグラフィック・パイプラインは、各頂点ベースで原形の特定の特性を操作し得る頂点シェーダ、及び、グラフィック・パイプラインにおける頂点シェーダから下流で作動し、ピクセル・データをディスプレイに伝達する前にピクセル毎ベースで特定の値を操作し得るピクセル・シェーダ(「フラグメント・シェーダ」としても知られる)を含み得る。フラグメント・シェーダは、テクスチャを原形に適用することに関する値を操作し得る。パイプラインは、頂点シェーダの出力を使用して、原形の新しいセットを生成する形状シェーダ、及び、GPUによって実施されて、特定の他の一般計算タスクを実施し得る計算シェーダ(CS)などの、パイプラインの様々なステージにおける他のシェーダをも含み得る。
【発明の概要】
【発明が解決しようとする課題】
【0013】
テクスチャを原形にマッピングするプロセスの一部には、スクリーン空間のピクセル位置からテクスチャ空間の傾きを計算することが含まれる。傾きの計算ではしばしば、ピクセル位置が矩形の正規直交の格子に基づくと見なされる。
【0014】
本開示が生じるのはこの文脈においてである。
【課題を解決するための手段】
【0015】
本開示の教示は、以下の詳細な説明を添付図面と関連して考慮することにより、容易に理解することができる。
【図面の簡単な説明】
【0016】
【
図1A】本開示の一態様に係るグラフィック処理システムのブロック図。
【
図1B】グラフィック処理パイプラインのブロック図。
【
図2A】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【
図2B】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【
図2C】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【
図2D】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【
図2E】本開示の一態様に係るピクセル毎の傾きスケールの訂正の一般化された例を示す図。
【発明を実施するための形態】
【0017】
以下の詳細な説明には、説明の目的のために、多くの具体的詳細が含まれるが、当業者であれば誰でも、以下の詳細に対する多くの変形及び変更が本発明の範囲内にあることを理解するであろう。したがって、以下に記載の本発明の例示的実施形態は、請求される発明に対し一般性を失うことなく、かつ、請求される発明を限定することなく説明される。
【0018】
イントロダクション
特定のグラフィック・アプリケーションでは、ビットマップで表示されたテクスチャがポリゴン上に「ペイント」される。そのような場合、出力デバイスによって抽出された各ピクセル値は、テクスチャからサンプリングされた1つまたは複数のピクセルから判定される。本明細書において使用される場合、ビットマップは概して、コンピュータのモニタ、紙、または他のディスプレイ・デバイス上の概ね矩形のピクセルの格子または色点を示すデータ・ファイルまたは構造に言及する。各ピクセルの色は個別に規定される。たとえば、色付けされたピクセルは、赤、緑、及び青に1バイトずつの、3バイトで規定され得る。ビットマップは通常、ビット用ビットをデバイス・テクスチャ・サンプリング・ユニットによって支持されるデータ・フォーマットに一致させる。デバイス・テクスチャ・サンプリング・ユニットは通常、たいていはディスプレイのビデオ・メモリに記憶されているのと同じか、デバイス個別のビットマップと同じ場合があるフォーマットで、チャンネル毎の様々なビット深度またはブロックの圧縮を含む任意選択範囲を含む。ビットマップは、ピクセルの画像の幅及び高さ、ならびに、表示できる色の数を判定するピクセル毎のビット数によって特徴付けられる。
【0019】
テクスチャ・ビットマップを表面に伝達するプロセスにはしばしば、テクスチャMIPマップ(mipmapとしても知られる)の使用が含まれる。この名称の中の「MIP」との文字は、ラテン語のフレーズmultum in parvoの頭文字であり、「小さい空間内に多く」を意味する。そのようなmipmapは予め計算され、最適化されたビットマップ画像のコレクションである。このビットマップ画像のコレクションは、レンダリング速度を増大させ、エイリアシング・アーチファクトを低減することが意図されたメイン・テクスチャを伴う。
【0020】
mipmapセットの各ビットマップ画像は、メイン・テクスチャのバージョンであるが、ディテールのレベル(LOD)がある程度低減されている。外観がフル・ディテールでレンダリングするのに十分である場合、メイン・テクスチャが依然として使用されることになるが、テクスチャが遠くから見られるか、小さいサイズである場合は、最終画像をレンダリングするグラフィック・ハードウェアが適切なmipmapレベルに切り換える(またはもっとも近い2つのレベルの間に差し込む)。レンダリング速度が上昇するが、この理由は、処理されるテクスチャ・ピクセル(「テクセル」)数をかなり少なくすることができ、メモリ内におけるテクスチャ・ピクセルの分配をシンプルなテクスチャに比べてより整合したものにできるためである。アーチファクトを低減できるが、この理由は、mipmap画像がすでに効果的にアンチエイリアシングされ、リアルタイムのレンダリング・ハードウェアから負荷がいくぶん除かれたためである。
【0021】
mipmapレベル間の混合は通常、ある形態のテクスチャ・フィルタリングを伴う。本明細書で使用される場合は、テクスチャ・フィルタリングはテクセル(テクスチャのピクセル)を3D対象のポイントにマッピングするのに使用される方法に関する。シンプルなテクスチャ・フィルタリング・アルゴリズムは、対象上のポイントを取り、その位置にもっとも近いテクセルを探し出すことができる。次いで、結果として得られるポイントが、その1つのテクセルからその色を得る。このシンプルな技術は、ときには最近傍フィルタリングと呼ばれる。より洗練された技術では、ポイント毎に2つ以上のテクセルを合わせる。実際にもっとも頻繁に使用されるアルゴリズムは、mipmapを使用する2直線に関するフィルタリングと3直線に関するフィルタリングである。2次または3次のフィルタリングなどの、異方性のフィルタリング及び高位の方法により、さらにより高品質の画像が得られる。
【0022】
テクスチャは通常、正方形であり、辺の長さは2の累乗に等しい。たとえば、テクスチャが256かける256ピクセルの基本寸法を有する場合、関連するmipmapセットは連続する8つの画像を含み得、それぞれのサイズは前のもののサイズの半分である。すなわち、128×128ピクセル、64×64、32×32、16×16、8×8、4×4、2×2、そして1×1(単一のピクセル)となる。たとえば、このテクスチャが、スクリーン空間の40×40ピクセルの部分にマッピングされると、64×64のmipmapと32×32のmipmapとの間への差込が使用されることになる。本明細書で使用される場合、「スクリーン空間」との用語は概して、グラフィック・パイプラインでディスプレイ・バッファによって使用される座標のセットに言及する。
【0023】
適切なmipmapレベルを判定するプロセスにおける重要な操作には、スクリーン空間からのピクセル位置の対応するエリア(XY座標空間と呼ばれることもある)に関する、テクスチャ座標空間で覆われたエリア(UV座標空間と呼ばれることもある)を判定することを伴う。大まかにいえば、差し込まれた、または計算されたテクスチャUV座標のスクリーン空間の傾きは、シーンの関連する部分におけるXY空間のピクセル位置でサンプリングされるUとVの値から計算される。いくつかの実施態様では、テクスチャ座標の傾きは、スクリーンのY座標が固定でスクリーンのX座標が変化する場合(du_dx,dv_dxと呼ばれる場合もある)に生じるテクスチャ座標の変化と、スクリーンのX座標が固定でスクリーンのY座標が変化する場合(du_dy,dv_dyと呼ばれる場合もある)に生じるテクスチャ座標の変化とを計算することにより、各スクリーン空間の方向X及びYについて判定される。このテクスチャ座標の傾きの計算は、任意選択的にサンプル格子の非正規直交性に関する訂正をも含み得る。非異方性のテクスチャの検索に関して、これら2つの内のより大きい規模の傾きが、ディテールのレベル(LOD)を選択するために使用される。異方性テクスチャリングに関して、規模の小さい傾きが、LODを選択するために使用され、規模の大きい傾斜に対応する線においてテクスチャがサンプリングされる。
【0024】
上述の計算は、1、2、3、またはそれ以上のテクスチャ座標の次元に一般化することができることにも留意されたい。通常のハードウェアは、テクスチャの次元数に応じて、U空間の1Dの傾き、またはUV空間の2Dの傾き、またはUVW空間の3Dの傾きを計算する。したがって、本開示の態様は、2つのテクスチャ座標の次元を伴う実施態様に限定されない。
【0025】
しかし、適切なMIPのディテールのレベルを判定するプロセスは、テクスチャが適用される仮想空間の関連する部分がサンプルの正規配置である、すなわち、スクリーン・ピクセル内のサンプル・ポイントが、垂直方向及び水平方向で、スクリーン空間全体にわたって均等に離間しているとの推定に基づく。しかし、可視アーチファクトは、サンプル・パターンの不連続性、たとえば、スクリーン空間においてサンプルの空間の空け方が異なるスクリーン・エリア間の境界から生じ得る。そのような境界では、境界の一方の側における局所的に適正なテクスチャ・フィルタリングが、著しく異なるMIPのディテールのレベルにアクセスする場合があり、境界の両側の出力画像の表示に顕著な変化をもたらす。そのような状況では、傾きは、滑らかに変化するテクスチャ・フィルタリングを提供し、それによって境界の可視性を低減するために、境界の各側で調整されなければならない。
【0026】
システム及び装置
本開示の態様には、テクスチャ・マッピングの傾き調整を実施するように構成されたグラフィック処理システムが含まれる。限定ではなく例として、
図1Aは、本開示の態様に係るグラフィック処理を実施するために使用され得るコンピュータ・システム100のブロック図を示している。本開示の態様によれば、システム100は、埋込型システム、携帯電話、パーソナル・コンピュータ、タブレット・コンピュータ、ポータブル・ゲーム・デバイス、ワークステーション、及びゲーム・コンソールなどである。
【0027】
システム100は通常、中央演算処理装置(CPU)102、グラフィック処理装置(GPU)104、及び、CPUとGPUとの両方にアクセス可能なメモリ108を含み得る。CPU102及びGPU104は各々が、1つまたは複数のプロセッサ・コア、たとえば単一のコア、2つのコア、4つのコア、8つのコア、またはそれ以上を含み得る。メモリ108は、アドレス可能メモリ、たとえばRAM、DRAMなどを提供する集積回路の形態であり得る。メモリ108は、グラフィック・リソースを記憶し得、グラフィック・レンダリング・パイプラインのためのデータのグラフィック・バッファ105を一時的に記憶し得るグラフィック・メモリ128を含み得る。グラフィック・バッファ105は、たとえば、強い頂点パラメータ値に関する頂点バッファ、頂点インデックスを保持するためのインデックス・バッファ、グラフィック・コンテンツの深度を記憶する深度バッファ(たとえばZバッファ)、ステンシル・バッファ、ディスプレイに送られる完全なフレームを記憶するフレーム・バッファ、及び他のバッファを含み得る。
図1Aに示す例では、グラフィック・メモリ128がメイン・メモリの一部として示されている。代替的実施態様では、グラフィック・メモリは別の構成要素とすることができ、場合によってはGPU104に統合される。
【0028】
限定ではなく例として、CPU102及びGPU104は、データ・バス109を使用してメモリ108にアクセスし得る。いくつかの場合では、システム100が2つ以上の異なるバスを含むことが有用であり得る。メモリ108は、CPU102及びGPU104によってアクセス可能なデータを含み得る。GPU104は、グラフィック処理タスクを並行して実施するように構成された複数の計算ユニットを含み得る。各計算ユニットは、ローカル・データ・シェアなどの、それ自体の専用のローカル・メモリ・ストアを含み得る。
【0029】
CPUは、グラフィック、コンパイラ、及びグラフィックAPIを利用するアプリケーションを含む場合があるCPUコード103
Cを実行するように構成され得る。グラフィックAPIは、ドロー・コマンドをGPUに実施されるプログラムに発するように構成され得る。CPUコード103
Cは、物理シミュレーション及び他の機能をも実施し得る。GPU104は、上述のように動作するように構成され得る。具体的には、GPUは、上述のように計算シェーダCS、頂点シェーダVS、及びピクセル・シェーダPSなどのシェーダを実施し得るGPUコード103
Gを実行し得る。計算シェーダCSと頂点シェーダVSとの間のデータのやり取りを促進するために、システムは、フレーム・バッファFBを含み得る1つまたは複数のバッファ105を含み得る。GPUコード103
Gは任意選択的に、ピクセル・シェーダまたは形状シェーダなどの他のタイプのシェーダ(図示せず)をも実施し得る。各計算ユニットは、ローカル・データ・シェアなどの、それ自体の専用のローカル・メモリ・ストアを含み得る。GPU104は、グラフィック・パイプラインの一部として、テクスチャを原形に適用するための特定の操作を実施するように構成された、1つまたは複数のテクスチャ・ユニット106を含み得る。
【0030】
本開示の態様によれば、ピクセル・シェーダPS及びテクスチャ・ユニット106は、1つまたは複数のテクスチャ座標UVを生成するように構成され、潜在的には、1つまたは複数の対応するピクセル・サンプル位置に関する各座標についてのテクスチャ空間の傾き値Grをも生成するように構成される。これら傾き値は、潜在的に、サンプル格子の非正規直交性に関して訂正され得る。これら傾き値Grにより、局所的に適正なテクスチャ・フィルタリングが提供されるが、いくつかの構成では、テクスチャ・フィルタリング表示の突然の変化として出力画像において視認可能になる場合がある様々なピクセル・サンプル構成を有するスクリーン・エリア間の突然の遷移が生じている場合がある。本開示の態様によれば、ピクセル・シェーダPSは、テクスチャ・ユニット106をスクリーン空間の傾きスケール要素Scとともに計算および供給し得る。傾きスケール要素Scは調整された傾き値Gr’を得るために、テクスチャ・ユニット106が、傾きGrに対し直線スクリーン軸と整列されたスケール変異として適用し得る。これら傾きスケール要素Scは、傾き値Grを変更し、異なるピクセル解像度を有するディスプレイ・デバイス116の領域間で傾きGrが滑らかに遷移するために、スクリーン・エリアの境界に漸次繋げるために使用され得る。
【0031】
限定ではなく例として、テクスチャ・ユニット106は、特定用途の集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはチップ上のシステム(SoC若しくはSOC)などの特定目的のためのハードウェアとして実施され得る。
【0032】
本明細書で使用される場合、及び、当業者に通常理解されているように、特定用途の集積回路(ASIC)は、多目的の使用を意図されているというよりは、特定の使用のためにカスタマイズされた集積回路である。
【0033】
本明細書で使用される場合、及び、当業者に通常理解されているように、フィールド・プログラマブル・ゲート・アレイ(FPGA)は、カスタマまたは設計者によって製造の後に構成されるように設計された集積回路であり、したがって、「フィールド・プログラマブル」である。FPGA構成は通常、ASICに使用されるものと同様に、ハードウェア記載言語(HDL)を使用して特定される。
【0034】
本明細書で使用される場合、及び、当業者に通常理解されているように、1つのチップ上のシステムまたはチップ上のシステム(SoCまたはSOC)は、コンピュータまたは他の電子システムの構成要素すべてを単一のチップに統合する集積回路(IC)である。この集積回路は、デジタル、アナログ、混合信号、及び、しばしばラジオ周波数機能を含み、すべて単一のチップ基板上にある。一般的な用途は、埋込型システムのエリア内にある。
【0035】
一般的なSoCは、以下のハードウェア構成要素を含む。
1つまたは複数のプロセッサ・コア(たとえば、マイクロコントローラ、マイクロプロセッサ、またはデジタル信号プロセッサ(DSP)のコア)。
メモリ・ブロック、たとえば、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、電気的に消去可能なプログラマブル・リードオンリ・メモリ(EEPROM)、及びフラッシュメモリ。
発振器または位相ロック・ループなどのタイミング・ソース。
カウンタタイマ、リードタイム・タイマ、またはパワーオン・リセット・ジェネレータなどの周辺機器。
外部インターフェース、たとえば、ユニバーサル・シリアル・バス(USB)、ファイアワイア、イーサネット(登録商標)、汎用非同期式受信/送信回路(USART)、シリアル周辺インターフェース(SPI)バスなどの工業規格。
アナログ・デジタル・コンバータ(ADC)及びデジタル・アナログ・コンバータ(DAC)を含むアナログ・インターフェース。
電圧レギュレータ及びパワー・マネジメント回路。
【0036】
これら構成要素は、専用または工業規格のバスによって接続されている。直接メモリ・アクセス(DMA)コントローラは、外部インターフェースとメモリとの間でデータを直接繋げ、プロセッサ・コアをバイパスし、それにより、SoCのデータ処理量を増大させる。
【0037】
一般的なSoCは、上述のハードウェア構成要素と、プロセッサ・コア(複数の場合もある)、周辺機器、及びインターフェースを制御する実行可能な指示(たとえば、ソフトウェアまたはファームウェア)との両方を含む。
【0038】
本開示の態様によれば、テクスチャ・ユニット106のいくつかまたはすべての機能は、代替的に、ソフトウェア・プログラマブル多目的コンピュータ・プロセッサによって実行される、適切に構成されたソフトウェア指示によって実施され得る。そのような指示は、コンピュータ可読媒体、たとえばメモリ108または記憶デバイス115内で実施され得る。
【0039】
システム100は、たとえばバス109を介して、システムの他の構成要素と通信し得る周知のサポート機能110をも含み得る。そのようなサポート機能は、それに限定されないが、入力/出力(I/O)要素111、電源(P/S)112、クロック(CLK)113、及びキャッシュ114を含み得る。キャッシュ114に加え、GPU104は、それ自体のGPUキャッシュ114Gを含む場合があり、GPUは、GPU104上で実行されるプログラムがGPUキャッシュ114Gをリードスルーまたはライトスルー可能であるように構成され得る。
【0040】
システム100は、任意選択的に、プログラム及び/またはデータを記憶するディスク・ドライブ、CD−ROMドライブ、フラッシュメモリ、テープ・ドライブなどのマス・ストレージ・デバイス115を含み得る。システム100は任意選択的に、レンダリングされたグラフィック117をユーザに提供するディスプレイ・デバイス116と、システム100とユーザとの間の相互作用を促進するユーザ・インターフェース・ユニット118をも含み得る。ディスプレイ・デバイス116は、可読テキスト、数字、グラフィカル・シンボル、または画像を表示可能であるフラット・パネル・ディスプレイ、ヘッド・マウント・ディスプレイ(HMD)、ブラウン管(CRT)スクリーン、プロジェクタ、または他のデバイスの形態をとり得る。ディスプレイ116は、本明細書に記載の様々な技術に従って処理された、レンダリングされたグラフィック画像117を表示し得る。ユーザ・インターフェース118は、グラフィカル・ユーザ・インターフェース(GUI)と関連して使用され得るキーボード、マウス、ジョイスティック、ライト・ペン、ゲーム・コントローラ、または他のデバイスを含み得る。システム100は、デバイスがネットワーク122を越えて他のデバイスと通信することを可能にするネットワーク・インターフェース120をも含み得る。ネットワーク122は、たとえば、ローカル・エリア・ネットワーク(LAN)、インターネットなどの広域ネットワーク、Bluetooth(登録商標)ネットワークなどのパーソナル・エリア・ネットワーク、または他のタイプのネットワークなどである場合がある。これら構成要素は、ハードウェア、ソフトウェア、若しくはファームウェア、またはこれらの内の2つ以上のある組合せの中で実施され得る。
【0041】
グラフィック・パイプライン
本開示の態様によれば、システム100は、グラフィック・レンダリング・パイプラインの各部分を実施するように構成される。
図1Bは、本開示の態様に係るグラフィック・レンダリング・パイプライン130の例を示している。
【0042】
レンダリング・パイプライン130は、グラフィックを、2次元、好ましくは、仮想空間(本明細書において「世界空間(world space)」と呼ばれる場合もある)における3次元形状のシーンを表示する画像としてレンダリングするように構成され得る。パイプラインの初期のステージには、シーンがラスタ化され、ディスプレイ・デバイス116上の出力に適切な別個のピクチャ要素のセットとしてスクリーン空間に変換される前に、仮想空間で実施される操作が含まれ得る。パイプラインを通して、グラフィック・メモリ128に含まれる様々なリソースがパイプラインの各ステージにおいて利用され得、画像の最終的な値が判定される前に、各ステージへの入力及び出力が一時的に、グラフィック・メモリに含まれるバッファ内に記憶され得る。
【0043】
レンダリング・パイプラインは、仮想空間でセットアップされ、シーンの座標に関して規定された形状を有する頂点のセットによって規定された1つまたは複数の仮想対象を含み得るデータ入力132上で作動し得る。パイプラインの初期のステージには、
図1Bの頂点処理ステージ134として広く分類されるものが含まれ得、このことは、仮想空間における対象の頂点を処理するための様々な計算を含み得る。このことは、位置値(たとえば、X−Y座標及びZ深度)、色値、ライティング値、テクスチャ座標などの、シーンの頂点の様々なパラメータ値を操作し得る頂点シェーディング計算136が含まれ得る。好ましくは、頂点シェーディング計算136は1つまたは複数のプログラム可能な頂点シェーダによって実施される。頂点処理ステージは任意選択的に、仮想空間に新たな頂点及び新たな形状を生成するのに任意選択的に使用され得るモザイク及び形状シェーダ計算138などの、追加の頂点処理計算を含み得る。頂点計算134と呼ばれるステージが完了すると、パイプラインのこのステージにおいて、各々が頂点パラメータ値139のセットを有する頂点のセットによってシーンが規定される。
【0044】
次いで、パイプライン130は、シーンの形状をスクリーン空間及び別個のピクチャ要素のセット、すなわちピクセルに変換することに関連するラスタ化処理ステージ140に進むことができる。仮想空間の形状は、スクリーン空間形状に、対象及び頂点の仮想空間からシーンのビューイング・ウインドウ(または「ビューポート」)への投影を効果的に計算し得る操作を通して変換される場合がある。頂点は、原形のセットを規定する場合がある。
【0045】
図1Bに示すラスタ化処理ステージ140は、シーンの頂点の各セットによって規定される原形をセットアップし得る原形アセンブリ操作142を含む場合がある。各頂点はインデックスによって規定される場合があり、各原形は、グラフィック・メモリ128内のインデックス・バッファ内に記憶され得るこれら頂点のインデックスに関して規定される場合がある。原形は好ましくは、各々が3つの頂点によって規定された3角形を少なくとも含むが、点の原形、線の原形、及び他の多角形形状をも含み得る。原形アセンブリステージ142の間は、特定の原形が任意選択的に集められ得る。たとえば、頂点が特定の巻込み順を示すそれら原形は、後ろ向きと見なされる場合があり、また、シーンから集められる場合がある。
【0046】
限定ではなく例として、原形が、3次元の仮想空間の頂点によって規定される三角形の形態である場合、原形アセンブリは、ディスプレイ116のスクリーン上の、各トライアングルが位置する場所を判定する。クリッピング及びスクリーン空間の変換操作は、通常、原形アセンブリ・ユニット142によって実施される。
【0047】
原形が組み立てられた後に、ラスタ化処理ステージは、各ピクセルの原形をサンプリングし、サンプルが原形で覆われている場合には、さらなる処理のために、原形からフラグメント(ピクセルと呼ばれる場合もある)を生成し得る、スキャン変換操作144を含む場合がある。スキャン変換操作には、スクリーン空間座標に変換された原形を取り、どのピクセルがその原形の一部であるかを判定する操作が含まれる。いくつかの実施態様では、スキャン変換操作144の間、各ピクセルについて複数のサンプルが原形内に取られ、このことは、アンチエイリアシング目的のために使用され得る。特定の実施態様では、様々なピクセルが別様にサンプリングされ得る。たとえば、ヘッド・マウント・ディスプレイ(HMD)などの特定のタイプのディスプレイ・デバイス116についてレンダリングする特定の態様を最適化するために、いくつかのエッジ・ピクセルが、中心のピクセルよりも低いサンプリング密度を含み得る。スキャン変換144の間に原形から生じるフラグメント(または「ピクセル」)は、それらを形成した原形の頂点の頂点パラメータ値139からピクセルの位置に差し込まれ得るパラメータ値を有する場合がある。ラスタ化ステージ140は、パイプラインの後のステージにおいてさらに処理するための入力として使用され得る、これら差し込まれたフラグメント・パラメータ値149を計算するためのパラメータ差込操作146のステージを含む場合がある。
【0048】
パイプライン130は、差込パラメータ値149をさらに操作し、フラグメントがディスプレイのための最終ピクセル値にどのように寄与するかを判定するさらなる操作を実施するための、
図1Bにおいては概して150で示されるさらなるピクセル処理操作を含み得る。これらピクセル処理タスクのいくつかは、フラグメントの差込パラメータ値149をさらに操作するのに使用され得るピクセル・シェーディング計算152を含む場合がある。ピクセル・シェーディング計算は、プログラマブル・ピクセル・シェーダによって実施され得、ピクセル・シェーダ実施148は、ラスタ化処理ステージ140の間に原形のサンプリングに基づき開始され得る。ピクセル・シェーディング計算152は、グラフィック・メモリ128内の1つまたは複数のバッファ105に値を出力し得る。このことは、レンダリング目標、または、複数の場合には、マルチプル・レンダリング目標(MRT)と呼ばれる場合がある。
【0049】
MRTにより、ピクセル・シェーダが、各々が同じスクリーン形状を有するが、潜在的に異なるピクセル・フォーマットの、2つ以上のレンダリング目標に任意選択的に出力することが可能になる。レンダリング目標のフォーマットの制限はしばしば、いずれか1つのレンダリング目標が4つもの個別の出力値(チャネル)を許容することのみ可能であり、これら4つのチャネルのフォーマットがしっかりと相互に結び付けられていることを意味している。MRTにより、単一のピクセル・シェーダが、様々なフォーマットが混合されている中に、多くのさらなる値を出力することが可能になる。レンダリング目標のフォーマットは「テクスチャ状」であり、その中では、フォーマットには、スクリーン空間・ピクセル毎に値を記憶しているが、様々なパフォーマンス上の理由から、レンダリング目標のフォーマットは、近年のハードウェアの世代ではより特殊化されるようになってきており、(常にではないが)ときには、テクスチャ・ユニット106に読み込まれるように互換性を有する前に、データをフォーマットし直す「分解(resolve)」と呼ばれるものを要求する。
【0050】
ピクセル処理150は通常、一般にラスタ化操作(ROP)として知られるものを含む場合があるレンダリング出力操作156で完結し得る。ラスタ化操作(ROP)は単に、複数のレンダリング目標(MRT)の中の各レンダリング目標について1回ずつ、ピクセル毎に複数回実行する。出力操作156の間、最終ピクセル値159はフレーム・バッファ内で判定され得る。このことは任意選択的に、フラグメントの結合、ステンシルの適用、深度テスト、及び特定のサンプル毎の処理タスクを含み得る。最終ピクセル値159には、すべてのアクティブなレンダリング目標(MRT)に対する集められた出力が含まれる。GPU104は、最終ピクセル値159を使用して、最終フレーム160を形成する。最終フレーム160は任意選択的に、リアルタイムでディスプレイ・デバイス116のピクセル上に表示され得る。
【0051】
出力操作150は、1つまたは複数のピクセル・シェーダPSによって幾分実施され、テクスチャ・ユニット106によって幾分実施され得る、テクスチャ・マッピング操作154をも含む場合がある。ピクセル・シェーディング計算152は、テクスチャ座標UVをスクリーン空間座標XYから計算することと、テクスチャ座標をテクスチャ操作154に送ることと、テクスチャ・データTXを受信することと、を含む。テクスチャ座標UVは、スクリーン空間座標XYから任意の方式で計算することができるが、通常は差し込まれた入力値から計算されるか、ときには前のテクスチャ操作の結果から計算される。傾きGrはしばしば、テクスチャ・ユニット106(テクスチャ操作ハードウェア・ユニット)により、テクスチャ座標のカッドから直接計算されるが、任意選択的に、ピクセル・シェーディング計算152によって明示的に計算され得、テクスチャ・ユニット106に頼るというよりはむしろ、テクスチャ操作154に渡して、標準的な計算を実施する。
【0052】
テクスチャ操作154は通常、ピクセル・シェーダPSとテクスチャ・ユニット106とのいくつかの組合せによって実施され得る以下のステージを含む。最初に、ピクセル位置XY毎の1つまたは複数のテクスチャ座標UVが生成され、各テクスチャ・マッピング操作について座標セットを提供するように使用される。次いで、潜在的にサンプル格子の非正規直交性に関する訂正を含み、ピクセル・サンプル位置に関するテクスチャ空間の傾き値Grが生成される。最後に、テクスチャ・フィルタリング操作に使用される最終的なテクスチャ空間の傾きGr’を提供するために、傾きGrが、ピクセル・シェーダPSによって供給される、ピクセル毎のスクリーン空間の傾きスケール要素Scによって変更される。傾きスケール要素Scは、様々なピクセルの解像度またはサンプル分布を有するディスプレイ・デバイス116の領域間で滑らかに遷移する傾き値Gr’を提供するために選択され得る。
【0053】
いくつかの実施態様では、ピクセル・シェーダPSは、ピクセル位置XY毎にテクスチャ座標UV及び傾きスケール要素Scを生成し、テクスチャ・ユニット106に各テクスチャ・マッピング操作のための座標セットを提供することができる。これにより、テクスチャ空間の傾き値Grを生成し、訂正されたテクスチャ空間の傾き値Gr’を提供するためにそれらを変更し得る。
【0054】
他の実施態様では、ピクセル・シェーダPSがテクスチャ空間座標UV、ピクセル位置XYからの十分な差異Gr、及び傾きスケール要素Scを計算し、これら値すべてをテクスチャ・ユニット606に渡し、テクスチャ・ユニット606に、依然としてあらゆる訂正を標準的に非正規直交性について実施し、次いで傾きスケール要素Scを適用して調整された傾き値Gr’を得なければならないことを示すことができる。
【0055】
他の代替的な実施態様では、ピクセル・シェーダPSは、テクスチャ空間座標UV及び十分に訂正された傾きGr’を計算し、それらをテクスチャ・ユニットに渡し、テクスチャ・ユニット106に、あらゆる必要な訂正がすでにソフトウェア内で適用されたこと、及び、訂正された傾きGr’を、LODを選択するように使用されるものとすることを示すことができる。
【0056】
ピクセル毎の傾き調整
本開示の態様は、テクスチャ・ユニット106に使用されて、グラフィック・パイプラインにおいて原形に適用されるテクスチャに関するmipmapレベル(LOD)を判定する傾きGrの調整を対象としている。基本的なコンセプトは
図2Eに示されている。
図2Eは、2つの直角のカッド(E0及びE1)の4つのピクセル・サンプルのテクスチャUV座標を示している。カッドE0では、XY空間内のすべてのサンプル・ポイントが、水平方向および垂直方向に1つのスクリーン・ピクセルの間隔を伴って直交格子上にある。
【0057】
カッドE0では、UV空間内のテクスチャの傾きGrが、テクスチャ座標UVから瑣末に計算される。テクスチャの傾きGrは、左上、右上、及び左下のピクセルのテクスチャ座標UV、それぞれ(u0,v0)、(u1,v1)、及び(u2,v2)に関して、以下のように数学的に表現され得る。
du_dx = u1−u0
dv_dx = v1−v0
du_dy = u2−u0
dv_dy = v2−v0
【0058】
du_dx = u1−u0などのこれら計算は、ピクセル・シェーダPSが、ソフトウェアが計算した値でそれらをオーバーライドすることを選択しない場合に、テクスチャ・ユニット・ハードウェア106によって実施され得る。テクスチャの傾きGrは次いで、テクスチャ・ユニット106によって使用されて、サンプルに対するmipmapLODレベルを判定する。
【0059】
本開示の態様によれば、傾きGr du_dx、dv_dx、du_dy、dv_dyは、ピクセル毎ベースで調整されて、ディスプレイにわたるピクセル解像度の不連続性に対処する。たとえば、特定のディスプレイ構成(たとえば、ヘッド・マウント・ディスプレイ(HMD)の用途)では、ディスプレイの異なる部分には異なる解像度を使用することが有利である。そのような場合、ピクセル毎ベースで傾きをスケーリングして、異なる解像度の隣接する領域間の境界またはその付近においてテクスチャ・フィルタリングで変化を平滑化することが非常に有利である。基本的なコンセプトは
図2A〜2Cに記載されている。
【0060】
図2A及び
図2Bに示すように、表示エリアは、様々なピクセルの解像度の2つ以上の領域201、202、203、204、205、206、207、208、及び209に分けられ得る。各領域は、たとえばヘッド・マウント・ディスプレイ(HMD)の場合に、ディスプレイの領域に沿っている立体角に関連する解像度を有し得る。限定ではなく例として、中央領域205は名目または基準ピクセル解像度R0を有し得る。エッジ領域202、204、206、208は、基準解像度の半分である1/2R0を有し得る。たとえば、これら領域のピクセルの半分が「オフにされて」いるか、ディスプレイ上にレンダリングされていない。コーナ領域201、203、207、及び209は、基準解像度の4分の1である1/4R0を有し得る。たとえば、これら領域のピクセルの4分の3が「オフにされて」いるか、ディスプレイ上にレンダリングされていない。
図2Bは、各領域の解像度に応じた様々なサイズに引き出された、これら様々な領域を示している。
【0061】
傾きは、隣接する領域間の境界付近のピクセルについて調整される必要がある場合がある。たとえば、
図2Cでは、セクション間の境界をマークする線が移動された。しかし、隣り合う領域間のテクスチャ・フィルタリングにおける不連続性により境界が視認可能になる。GPUは、領域間の境界付近のピクセルについて傾きを調整して、不連続性を滑らかにして、境界をより視認しにくくするように構成することができる。たとえば、
図2Dに示すように、
図2Cにおける列D−D’の全解像度の中央領域205における選択されたピクセル211、212に関する水平方向の傾きは、半解像度のエッジ領域204、206に向かって漸次ぼやけていくテクスチャ・フィルタリングを提供するようにスケーリングすることができ、それにより、境界の両側ですぐ隣接する2つのピクセルがほぼ同じMIP LODレベルにアクセスするようになっている。
【0062】
代替的には、半解像度のエッジ領域204、206の傾きは、全解像度の中央領域205に向かって漸次シャープになるようにスケーリングすることもできる。
【0063】
異なる解像度に対処するための傾きの一般化された調整は、
図2Eを参照して理解することができる。
図2Eは、UV空間において、水平スクリーン・エリアにおける境界の両側の2つの隣接するピクセルのカッドE0及びE1に関するテクスチャ座標を示している。
図2Cのスクリーン空間において対応して分類された長方形でも示されている。
図2Eでは、E0とE1の間のサンプルの水平方向の密度を半分にすることで、E0について計算される(du_dx,dv_dx)の長さの約2倍の、E1に関する(du_dx,dv_dx)が得られる。このことはとりわけ、E0に関するよりも低い、E1に関するディテールのレベルを選択することに繋がり得る。なお、カッドE0及びカッドE1に関するこれら傾きの計算は、約1つのテクスチャ・ピクセル(「テクセル」)を有する各スクリーン・ピクセルをカバーするmipmap LODを各々が正確に選択することにおいて、局所的には正確であるが、テクスチャ・フィルタリングにおけるこの突然の変化により、E0と同様のサンプル・パターンのカッドと、E1と同様のサンプル・パターンのカッドとの間の境界の両側において出力画像の表示における視認可能な変化を生じ得る。この境界の視認性は、滑らかに変化するmipmap LODの選択を提供するために、境界付近のピクセルの傾き値の調整を選択することによって低減され得る。
【0064】
UV空間における傾き(du_dx,dv_dx)、(du_dy,dv_dy)は、通常は各カッドについて計算される。このことは、いくつかの他の場合では、ローカル・サンプル分布の非正規直交性についての訂正を含む場合がある。傾きは次いで、ピクセル毎ベースで、ピクセル毎の傾きのスケール要素scaleX、scaleYで乗算されて、テクスチャ・ユニットが使用して適切なmipmapレベルを判定する、最終的な調整された傾き(du_dx’,dv_dx’)、(du_dy’,dv_dy’)を提供する。
du_dx’ = du_dx * scaleX
du_dy’ = du_dy * scaleY
dv_dx’ = dv_dx * scaleX
dv_dy’ = dv_dy * scaleY
【0065】
傾きのスケール要素scaleX及びscaleYは、ピクセル・シェーダPSによって計算され、テクスチャ・ユニット106に渡される。テクスチャ・ユニット106は、それらを使用して最終的な調整された傾きを計算する。
【0066】
上述の傾きのスケーリングの訂正は、各テクスチャ座標U及びVに同一に適用されるものであり、このため、1次元の座標(U)、2次元の座標(UV)、または3次元の座標(UVW)に瑣末に延ばすことができることを理解されたい。
【0067】
傾きのスケール要素scaleX、scaleYに適切な値は、異なるピクセル解像度の隣接する領域の境界に近い、選択されたピクセルに適用される傾きのスケール要素の値を繰り返すことによって経験的に判定され得る。傾きのスケール要素に適切な値の範囲は、隣接する領域の相対的なピクセル解像度から判定することができる。たとえば、列D−D’に沿って、ピクセルの解像度が、領域204の1/2Rから領域205のRに変化し、再び領域206の1/2Rに変化する。傾きのスケール値scaleXは、領域204と206との境界に近い領域205のいくつかのピクセルにわたって約1から約2に遷移する。
図2Eでは、2の傾きscaleXの要素の領域205からのカッドE0への適用が、領域206からの隣接するカッドE1について計算された傾きに概ねマッチする(du_dx’,dv_dx’)になり、このため、スケーリングが訂正された傾きの連続性と、テクスチャ・フィルタリングLODの選択を形成することを見て取ることができる。同様に、傾きのスケール値scaleX、scaleYは、約1の値から約2の値に、領域207と209との境界に近い領域208のいくつかのピクセルにわたって遷移する。傾きのスケール要素は、いくつかのピクセル、たとえば約4から8のピクセルにわたって、2つの値の間で変化し得る。
【0068】
テクスチャ・ユニット106は、最終的な調整された傾きを使用して、最終的な調整された傾きからの1つまたは複数の原形への適用のための適切なLODを選択し得る。
【0069】
さらなる態様
本開示のさらなる態様には、ピクセル・サンプル位置毎のテクスチャ座標の1つまたは複数のセットを受信あるいは生成することと、1つまたは複数の原形についてテクスチャ空間の傾き値を計算することと、傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスの領域間で傾き値を滑らかに遷移させるように構成されたピクセル毎の傾きスケール要素を生成及び適用することと、を含むグラフィック処理方法が含まれる。
【0070】
別の追加の態様は、前述の方法を実施するように構成されたグラフィック処理システムである。
【0071】
さらに別の追加の態様は、実行されると前述の方法を実施する、コンピュータ実施可能な指示を内部に有するコンピュータ可読媒体である。
【0072】
さらなる一態様は、前述の方法を実施するコンピュータ可読指示を伴う電磁信号または他の信号である。
【0073】
別のさらなる態様は、通信ネットワークからダウンロード可能であり、及び/または、コンピュータ可読及び/またはマイクロプロセッサで実行可能な媒体に記憶されたコンピュータ・プログラム製品であって、上述の方法を実施するプログラム・コード指示を備えることを特徴とする。
【0074】
上記は、本発明の好ましい実施形態の完全な記載であるが、様々な代替形態、変形形態、及び均等を使用することが可能である。したがって、本発明の範囲は、上述の記載を参照して判定されるべきではなく、代わりに、添付の特許請求の範囲を参照して、その均等の全範囲を伴って判定されるべきである。本明細書に記載の任意の特徴は、好ましいか好ましくないかに関わらず、本明細書に記載の任意の他の特徴と、好ましいか好ましくないかに関わらず、組み合わせてもよい。添付の特許請求の範囲においては、不定冠詞「A」または「An」は、別様に明確に述べられていなければ、その冠詞に続くアイテムの1つまたは複数の量に言及する。添付の特許請求の範囲は、「means for」とのフレーズを使用して、そのような限定が所与の請求項に明確に列挙されていない限り、ミーンズプラスファンクションの限定として解されるものではない。