(57)【要約】  電子デバイスが説明される。電子デバイスはプロセッサを含む。プロセッサは、画像の第１のゾーンをレンダリングするように構成される。プロセッサは、画像の第２のゾーンをレンダリングするようにも構成される。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有する。プロセッサは、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示するようにさらに構成される。【選択図】      図２３
2019510993.tif 000002
【特許請求の範囲】
【請求項１】
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を行うように構成されたプロセッサ
を備える、電子デバイス。
【請求項２】
前記電子デバイスが、少なくとも１つのディスプレイを備え、前記プロセッサが、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを前記少なくとも１つのディスプレイに送るように構成された、請求項１に記載の電子デバイス。
【請求項３】
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、請求項２に記載の電子デバイス。
【請求項４】
前記プロセッサが、第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項５】
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、請求項４に記載の電子デバイス。
【請求項６】
前記プロセッサが、ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項７】
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、請求項６に記載の電子デバイス。
【請求項８】
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、請求項６に記載の電子デバイス。
【請求項９】
前記プロセッサが、
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
を行うように構成された、請求項１に記載の電子デバイス。
【請求項１０】
前記プロセッサが、
複数のユーザについてアイトラッキングを実行することと、
前記アイトラッキングに基づいて、ゾーンレンダリングに優先度を付けることと
を行うように構成された、請求項９に記載の電子デバイス。
【請求項１１】
前記プロセッサが、第３のゾーンをレンダリングするように構成され、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、請求項１に記載の電子デバイス。
【請求項１２】
前記プロセッサが、前記少なくとも１つの車両ウィンドウ上に前記第３のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項１３】
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、請求項１に記載の電子デバイス。
【請求項１４】
電子デバイスによって実行される方法であって、前記方法は、
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を備える、方法。
【請求項１５】
前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送ることをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、請求項１５に記載の方法。
【請求項１７】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、請求項１４に記載の方法。
【請求項１８】
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、請求項１７に記載の方法。
【請求項１９】
ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示することをさらに備える、請求項１４に記載の方法。
【請求項２０】
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、請求項１９に記載の方法。
【請求項２１】
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、請求項１９に記載の方法。
【請求項２２】
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
をさらに備える、請求項１４に記載の方法。
【請求項２３】
第３のゾーンをレンダリングすることをさらに備え、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、請求項１４に記載の方法。
【請求項２４】
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、請求項１４に記載の方法。
【請求項２５】
その上に命令を有する非一時的有形コンピュータ可読媒体を備える、コンピュータプログラム製品であって、前記命令は、
電子デバイスに、画像の第１のゾーンをレンダリングさせるためのコードと、
前記電子デバイスに、前記画像の第２のゾーンをレンダリングさせるためのコードと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
前記電子デバイスに、少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示させるためのコードと
を備える、コンピュータプログラム製品。
【請求項２６】
前記命令は、前記電子デバイスに、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送らせるためのコードを備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
画像の第１のゾーンをレンダリングするための手段と、
前記画像の第２のゾーンをレンダリングための手段と、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示するための手段と
を備える、装置。
【請求項２９】
提示するための前記手段が、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送るための手段を備える、請求項２８に記載の装置。
【請求項３０】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するための手段をさらに備える、請求項２８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、一般に電子デバイスに関する。より詳細には、本開示は、複数の詳細レベル（level of detail）をレンダリングするためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]いくつかの電子デバイス（たとえば、スマートフォン、コンピュータ、テレビジョン、自動車、ビデオゲームシステム、メディアプレーヤ、カメラ、セルラーフォン、パーソナルカメラ、セットトップボックス、プロジェクタ、モニタなど）は、画像を表示する。たとえば、スマートフォンは、静止画像および／またはビデオ画像をキャプチャし、および／または処理し得る。画像を処理することは、比較的大きい量の時間、メモリおよびエネルギーリソースを要求し得る。要求されるリソースは、処理することの複雑さに従って変動し得る。
【０００３】
[0003]大量の画像データを処理することは、特に困難であり得る。たとえば、大量の画像データは、電力、時間、プロセッサ帯域幅、メモリおよび／または金銭的コストなど、比較的大量のリソースを必要とし得る。この説明からわかるように、画像処理を改善するシステムおよび方法が有益であり得る。
【発明の概要】
【０００４】
[0004]電子デバイスが説明される。本電子デバイスは、画像の第１のゾーンをレンダリングするように構成されたプロセッサを含む。プロセッサは、画像の第２のゾーンをレンダリングするようにも構成される。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベル（tessellated level of detail）を有する。プロセッサは、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示するようにさらに構成される。本電子デバイスは、車両中の取外し可能なモジュールの少なくとも一部であり得る。
【０００５】
[0005]本電子デバイスは、少なくとも１つのディスプレイを含み得る。プロセッサは、第１のゾーンと第２のゾーンとを提示するために、第１のゾーンと第２のゾーンとを少なくとも１つのディスプレイに送るように構成され得る。少なくとも１つのディスプレイは、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルであり得る。
【０００６】
[0006]プロセッサは、第１のウィンドウ上に第１のゾーンを提示し、第２のウィンドウ上に第２のゾーンを提示するように構成され得る。第１のウィンドウは、フロントウインドシールド（windshield）であり得、第２のウィンドウは、車両の別のウィンドウであり得る。
【０００７】
[0007]プロセッサは、ウィンドウの第１のセクション上に第１のゾーンを提示するように構成され得、ウィンドウの第２のセクション上に第２のゾーンを提示するように構成され得る。第１のセクションは、ウインドシールドのある側のセクションであり得、第２のセクションは、ウインドシールドの別の側のセクションであり得る。第１のセクションは、ウインドシールドにわたる第１の水平バーであり得、第２のセクションは、ウインドシールドにわたる第２の水平バーであり得る。
【０００８】
[0008]プロセッサは、アイトラッキング（eye tracking）を実行するように構成され得る。プロセッサはまた、アイトラッキングに基づいて、第１のゾーンと第２のゾーンとをレンダリングするように構成され得る。プロセッサは、複数のユーザについてアイトラッキングを実行するように構成され得る。プロセッサは、アイトラッキングに基づいて、ゾーンレンダリングに優先度を付け得る。
【０００９】
[0009]プロセッサは、第３のゾーンをレンダリングするように構成され得る。第３のゾーンは、第１のゾーンおよび第２のゾーンよりも低いテッセレーション詳細レベルを有し得る。プロセッサは、少なくとも１つの車両ウィンドウ上に第３のゾーンを提示するように構成され得る。
【００１０】
[0010]電子デバイスによって実行される方法も説明される。本方法は、画像の第１のゾーンをレンダリングすることを含む。本方法は、画像の第２のゾーンをレンダリングすることをも含む。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有する。本方法は、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示することさらに含む。
【００１１】
[0011]コンピュータプログラム製品も説明される。本コンピュータプログラム製品は、命令をもつ非一時的有形コンピュータ可読媒体を含む。命令は、電子デバイスに、画像の第１のゾーンをレンダリングさせるためのコードを含む。命令は、電子デバイスに、画像の第２のゾーンをレンダリングさせるためのコードをも含む。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有する。命令は、電子デバイスに、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示させるためのコードをさらに含む。
【００１２】
[0012]装置も説明される。本装置は、画像の第１のゾーンをレンダリングするための手段を含む。本装置は、画像の第２のゾーンをレンダリングするための手段をも含む。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有する。本装置は、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示するための手段をさらに含む。
【図面の簡単な説明】
【００１３】
【図１】[0013]複数の詳細レベルをレンダリングするためのシステムおよび方法が実装され得る電子デバイスの一構成を示すブロック図。
【図２】[0014]複数の詳細レベルをレンダリングするための方法の一構成を示す流れ図。
【図３】[0015]複数の詳細レベルをレンダリングするためのシステムおよび方法が実装され得る電子デバイスの一構成を示すブロック図。
【図４】[0016]非一様フレームバッファの一例を示す図。
【図５】[0017]複数の詳細レベルをレンダリングするための方法のより具体的な構成を示す流れ図。
【図６】[0018]フォービエイテッドレンダリング（foveated rendering）のための方法の例を示す流れ図。
【図７】[0019]フォービエイテッドレンダリングの一例を示す図。
【図８】[0020]超長命令語（ＶＬＩＷ：very long instruction word）回路を含む電子デバイスの一例を示すブロック図。
【図９】[0021]図８に関して説明されるアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図。
【図１０】[0022]超長命令語（ＶＬＩＷ）回路を含む電子デバイスの別の例を示すブロック図。
【図１１】[0023]図１０に関して説明されるアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の別の例を示すブロック図。
【図１２】[0024]超長命令語（ＶＬＩＷ）回路を含む電子デバイスの別の例を示すブロック図。
【図１３】[0025]図１２に関して説明されるアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図。
【図１４】[0026]超長命令語（ＶＬＩＷ）回路を含む電子デバイスの別の例を示すブロック図。
【図１５】[0027]図１４に関して説明されるアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図。
【図１６】[0028]複数のゾーンをレンダリングするためのシステムおよび方法が実装され得る電子デバイスの一構成を示すブロック図。
【図１７】[0029]複数のゾーンをレンダリングするための方法を示す流れ図。
【図１８】[0030]ウィンドウディスプレイのいくつかの例を示す図。
【図１９】[0031]ウィンドウ上のゾーンの一例を示す図。
【図２０】[0032]ウィンドウ上のゾーンの別の例を示す図。
【図２１】[0033]複数のウィンドウ上のゾーンの別の例を示す図。
【図２２】[0034]複数のゾーンをレンダリングするための方法のより具体的な構成を示す流れ図。
【図２３】[0035]ウィンドウ上のゾーンの別の例を示す図。
【図２４】[0036]電子デバイス内に含まれ得るいくつかの構成要素を示す図。
【発明を実施するための形態】
【００１４】
[0037]本明細書で開示されるシステムおよび方法は、複数の詳細レベルをレンダリングするための手法を与え得る。たとえば、複数の異なる詳細レベルが、同じ画像においてレンダリングされ得る。これは、レンダリング効率および／またはユーザエクスペリエンスを改善し得る。本明細書で使用される「レンダリングする（render）」という用語およびその変形態は、画像データを生成するために１つまたは複数の動作を実行することを意味し得る。たとえば、レンダリングすることは、ジオメトリデータ（たとえば、幾何学的モデル、頂点、多角形など）を画像データ（たとえば、ピクセルデータ、ピクセル、視覚領域データなど）にコンバートするために１つまたは複数の動作を実行することを含み得る。レンダリングすることから生じる画像データは、ディスプレイ上に提示され、記憶され、および／または送信され得る。たとえば、レンダリングされた画像データは、ディスプレイ上に即時に提示されることも提示されないこともある。レンダリングされた画像データは、（たとえば、ディスプレイ上での後の提示のために）記憶され得、（たとえば、レンダリングされた画像データをディスプレイ上に提示し得る）別のデバイスに送信され得、および／またはディスプレイ上に提示され得る。
【００１５】
[0038]レンダリング非効率は、１つの現在の問題であり得る。たとえば、仮想現実（ＶＲ）は、シーンの２つのビューをレンダリングすることを含み得、これは、レンダリングするのが２倍遅いコンテンツを作り得る。１つの手法は、（正確におよび安価に実行され得る）アイトラッキングを実行することと、異なる粗さレベルをもつ３つのジオメトリパスをレンダリングすることと、アンチエイリアシング（anti-aliasing）を実行することと、３つの異なるフレームバッファ品質を一緒にブレンドすることとを伴い得る。しかしながら、この手法は、複数のジオメトリパスが重複し、その結果、いくつかのピクセルが繰り返し処理され得るので、非効率的であり得る。
【００１６】
[0039]いくつかの構成では、本明細書で開示されるシステムおよび方法は、単一パスマルチ詳細レベル（マルチＬＯＤ）レンダリング（たとえば、単一パスフォービエイテッドレンダリング）のための手法を与え得る。たとえば、いくつかの手法は、テッセレータ（たとえば、テッセレーションエンジン）、マルチサンプルアンチエイリアシング（ＭＳＡＡ：multisample anti-aliasing）、動的カーネルディスパッチおよび／または多重解像度（たとえば、非一様）フレームバッファ（たとえば、フレームバッファオブジェクト（ＦＢＯ：frame buffer object））を利用し得る。いくつかの手法では、１つのジオメトリパスのみが必要とされ得る。この改善は、ジオメトリ帯域幅使用を低減し得、および／またはＭＳＡＡを再利用し得る。
【００１７】
[0040]本明細書で開示されるシステムおよび方法のいくつかの構成は、１つまたは複数の性能利益を提供し得る。たとえば、多重解像度ＦＢＯおよび／または動的カーネルディスパッチを含むハードウェアが実装され得る。これは、帯域幅消費を低減し得る。たとえば、テッセレータ（たとえば、テッセレーションエンジン）を使用して、複数の（たとえば、３つの）ジオメトリパスが１つにまとめられ得る。いくつかの構成では、ラスタ化ハードウェアアンチエイリアシングが再利用され得る。これは、通常コンテンツレンダリングにおける改善を可能にし得る。追加または代替として、フラグメントカーネルの動的ディスパッチングが、計算を低減し得る。これらの改善は、（たとえば、立体視ビューのために）シーンの複数のビューが一度にレンダリングされ得る、仮想現実（ＶＲ）および／または拡張現実（ＡＲ）のコンテキストにおいて特に有益であり得る。いくつかの構成では、ＶＲとＡＲとが組み合わせられ得る。本明細書で開示されるシステムおよび方法は、グラフィックス処理産業が、没入型エクスペリエンスを与える方法を探索するので、有益であり得る。
【００１８】
[0041]本明細書で開示されるシステムおよび方法はまた、ウィンドウ上での提示のために複数のゾーンをレンダリングするための手法について説明する。これらのシステムおよび方法は、運転者支援および自律走行車両（たとえば、自動運転自動車）などの適用例において、ユーザエクスペリエンスを向上させるための車両のコンテキストにおいて特に有益であり得る。
【００１９】
[0042]次に、図を参照しながら様々な構成が説明され、ここで、同様の参照番号は機能的に同様の要素を示し得る。本明細書で概して説明され、図に示されるシステムおよび方法は、多種多様な異なる構成で構成および設計され得る。したがって、図に表されるいくつかの構成の以下のより詳細な説明は、請求される範囲を限定するものではなく、システムおよび方法を代表するものにすぎない。
【００２０】
[0043]図１は、複数の詳細レベルをレンダリングするためのシステムおよび方法が実装され得る電子デバイス１０２の一構成を示すブロック図である。電子デバイス１０２の例は、スマートフォン、コンピュータ（たとえば、デスクトップコンピュータ、ラップトップコンピュータなど）、ヘッドマウントディスプレイ（たとえば、仮想現実（ＶＲ）ヘッドセット、拡張現実（ＡＲ）ヘッドセットなど）、ＶＲデバイス、ＡＲデバイス、タブレットデバイス、メディアプレーヤ、テレビジョン、自動車、車両、カメラ、ビデオカムコーダ、デジタルカメラ、セルラーフォン、パーソナルカメラ、アクションカメラ、航空機、ドローン、無人航空機（ＵＡＶ）、ヘルスケア機器、ゲーミングコンソール、携帯情報端末（ＰＤＡ）、セットトップボックス、メディアプレーヤなどを含む。電子デバイス１０２は、１つまたは複数の構成要素または要素を含み得る。構成要素または要素のうちの１つまたは複数は、ハードウェア（たとえば、回路）、ファームウェア、および／またはハードウェアとソフトウェアの組合せ（たとえば、命令をもつプロセッサ）で実装され得る。
【００２１】
[0044]いくつかの構成では、電子デバイス１０２は、超長命令語（ＶＬＩＷ）回路１０４と、システムメモリ１１４とを含み得る。ＶＬＩＷ回路１０４は、命令レベル並列性を実装する回路（たとえば、プロセッサ）であり得る。たとえば、ＶＬＩＷ回路１０４は、命令を並列に（たとえば、同時に）実行し得る。ＶＬＩＷ回路１０４は、システムメモリ１１４に結合され得る（たとえば、それと電子通信していることがある）。ＶＬＩＷ回路１０４は、画像をレンダリングするためのデバイスであり得る。たとえば、ＶＬＩＷ回路１０４は、ジオメトリデータ（たとえば、（１つまたは複数の）幾何学的モデル、２次元（２Ｄ）または３次元（３Ｄ）ジオメトリデータ、頂点、多角形など）を１つまたは複数の画像にコンバートし得る。（１つまたは複数の）得られた画像は１つまたは複数のディスプレイ上に提示され得る。たとえば、（１つまたは複数の）画像は、２Ｄビューを生成するための単一の画像であり得るか、または３Ｄビューを生成するための複数の画像（たとえば、立体視画像）であり得る。たとえば、ＶＬＩＷ回路１０４は、立体視ビューのために複数の画像（たとえば、異なるビュー）を生成し得る（たとえば、左眼のための１つの画像および右眼のための別の画像）。ＶＬＩＷ回路１０４が一連の画像（たとえば、ビデオ）をレンダリングし得ることに留意されたい。ＶＬＩＷ回路１０４は、ハードウェアで、またはハードウェアとソフトウェアの組合せで実装され得る。ＶＬＩＷ回路１０４の一例はグラフィックス処理ユニット（ＧＰＵ）である。
【００２２】
[0045]いくつかの構成では、電子デバイス１０２は、図２〜図５、図９、図１１、図１３および図１５〜図２４のうちの１つまたは複数に関して説明される機能、プロシージャ、方法、ステップなどのうちの１つまたは複数を実行し得る。追加または代替として、電子デバイス１０２は、図２〜図５、図９、図１１、図１３および図１５〜図２４のうちの１つまたは複数に関して説明される構造のうちの１つまたは複数を含み得る。
【００２３】
[0046]システムメモリ１１４は命令および／またはデータを記憶し得る。システムメモリ１１４の例は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ（ＤＤＲ  ＳＤＲＡＭ）、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、スタティックランダムアクセスメモリ（ＳＲＡＭ）、レジスタ、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリなどを含む。ＶＬＩＷ回路１０４は、システムメモリ１１４にアクセスし（たとえば、それから読み取り、および／またはそれに書き込み）得る。システムメモリ１１４は、１つまたは複数のプロセッサ（たとえば、中央処理ユニット（ＣＰＵ））など、電子デバイス１０２の（もしあれば）他の要素によってアクセス可能であり得る。システムメモリ１１４はＶＬＩＷ回路１０４とは別個であり得る。システムメモリ１１４によって記憶され得る命令および／またはデータの例は、命令、コマンドデータ、ジオメトリデータ（たとえば、頂点、多角形、法線（たとえば、オブジェクト配向）、プリミティブ、メタデータなど）、テクスチャデータ、無順序アクセスビュー（unordered access view）データ、（１つまたは複数の）レンダリングパラメータ（たとえば、（１つまたは複数の）詳細レベルパラメータ）などを含み得る。いくつかの構成では、電子デバイス１０２（たとえば、システムメモリ１１４）は１つまたは複数のフレームバッファを含み得る。（１つまたは複数の）フレームバッファは画像データをバッファ（たとえば、記憶）し得る。バッファされた画像データは、１つまたは複数のディスプレイ上に提示され得る。
【００２４】
[0047]ＶＬＩＷ回路１０４は、画像をレンダリングするための１つまたは複数の要素を含み得る。要素のいくつかの例は、フロントエンド（ＦＥ）、頂点プロセッサ（ＶＰ、頂点フェッチャ（ＶＦ）、頂点シェーダ（vertex shader）（ＶＳ）、テッセレーション制御シェーダ（ＴＣＳ）、ハルシェーダ（ＨＳ）、テッセレータ（たとえば、テッセレーションエンジン）（ＴＥＳＳ）、テッセレーション評価シェーダ（ＴＥＳ）、ドメインシェーダ（ＤＳ）、ジオメトリシェーダ（ＧＳ）、ラスタライザ（Ｒａｓｔ）、フラグメントシェーダ（ＦＳ）、ピクセルシェーダ（ＰＳ）、タイラ（tiler）、レンダー出力ユニット（ＲＯＰ）、クリッパー（Ｃｌｉｐ）および／またはストリームアウト（ＳＯＬ）などを含み得る。いくつかの構成では、これらの要素のうちの１つまたは複数は、グラフィックスパイプライン１０６と呼ばれることがある。テッセレータは、いくつかの構成では、固定機能テッセレーションエンジンであり得ることに留意されたい。テッセレータ（および／またはグラフィックスパイプラインの１つまたは複数の他の要素）は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実装され得る。
【００２５】
[0048]ＶＬＩＷ回路１０４はオンチップメモリ１１０を含み得る。オンチップメモリ１１０は、高速メモリアクセスを与えるためにＶＬＩＷ回路１０４上に実装され得る。たとえば、オンチップメモリ１１０は、システムメモリ１１４よりも迅速にアクセスされ得る。オンチップメモリ１１０の例は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ（ＤＤＲ  ＳＤＲＡＭ）、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、スタティックランダムアクセスメモリ（ＳＲＡＭ）、レジスタ、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリなどを含み得る。いくつかの構成では、オンチップメモリ１１０は、複数のレベル（たとえば、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュなど）で実装され得る。オンチップメモリ１１０によって記憶され得るデータの例は、ジオメトリデータ（たとえば、頂点、多角形、法線、プリミティブ、メタデータなど）、テクスチャデータ、無順序アクセスビューデータ、１つまたは複数のレンダリングパラメータ（たとえば、（１つまたは複数の）詳細レベル（ＬＯＤ）パラメータ）などを含み得る。いくつかの構成では、オンチップメモリ１１０は、（たとえば、システムメモリ１１４に加えて、またはそれの代替として）１つまたは複数のフレームバッファを含み得る。（１つまたは複数の）フレームバッファは画像データをバッファ（たとえば、記憶）し得る。バッファされた画像データは、１つまたは複数のディスプレイ上に提示され得る。
【００２６】
[0049]いくつかの構成では、ＶＬＩＷ回路１０４は非同期メモリコントローラ１０８を含み得る。非同期メモリコントローラ１０８は、ハードウェア、またはハードウェアとソフトウェアの組合せで実装され得る。非同期メモリコントローラ１０８は、ＶＬＩＷ回路１０４で実装され得るか、ＶＬＩＷ回路とは別個に実装され得るか、または部分的にＶＬＩＷ回路１０４で実装され、部分的にＶＬＩＷ回路１０４とは別個に実装され得る。非同期メモリコントローラ１０８は、メモリ（たとえば、オンチップメモリ１１０および／またはシステムメモリ１１４）に非同期的にアクセスするように構成され得る。いくつかの構成では、非同期メモリコントローラ１０８は、非同期メモリコントローラ１０８が、処理されている（たとえば、テッセレーションされている）データのセットとの同期外れで、メモリ（たとえば、（１つまたは複数の）パラメータ、（１つまたは複数の）詳細レベル（ＬＯＤ）パラメータなど）にアクセスし得るという意味で、「非同期的に」動作する。たとえば、ＶＬＩＷ回路１０４は、データのセットを周期的に処理し得る。データの単一のセットを処理する（たとえば、テッセレーションする）ことは、描画呼出し（draw call）と呼ばれることがある。たとえば、描画呼出しは、ＶＬＩＷ回路１０４がデータのセットを処理する（たとえば、レンダリングする）ための命令（たとえば、プログラマチック要求、命令など）であり得る。１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ、テッセレーション設定、１つまたは複数の他のパラメータなど）は、描画呼出しに関連し、および／または描画呼出しのために設定され得る。したがって、描画呼出しは、たとえば、データのセットのためのレンダリングされるべきＬＯＤを確立し得る。
【００２７】
[0050]知られている手法では、データの各セット（たとえば、描画呼出し）は固定詳細レベル（ＬＯＤ）を有する。それらの手法では、データのセットのためのＬＯＤは、処理がデータのそのセットに着手すると、変わることができない（たとえば、描画呼出し中に変わることができない）。さらに、各データのセットは、知られている手法では、単一のＬＯＤのみを有し得る。
【００２８】
[0051]本明細書で開示されるシステムおよび方法によれば、非同期メモリコントローラ１０８は、（たとえば、描画呼出しの処理中に）単一のデータセット内の異なる詳細レベル（たとえば、異なる詳細レベルをもつ異なるゾーン）をレンダリングすることを可能にするために、メモリ（たとえば、オンチップメモリ１１０および／またはシステムメモリ１１４）に非同期的にアクセスし得る。たとえば、非同期メモリコントローラ１０８は、データのセットに対する処理（たとえば、テッセレーション、シェーディングなど）が開始した後、およびデータのセットに対する処理が完了される前に、メモリ（たとえば、パラメータ、ＬＯＤパラメータなど）にアクセスし得る。これは、ＶＬＩＷ回路１０４が、データの１つのセット中で異なるＬＯＤを生成するために、データのセットの処理中にＬＯＤを変更することを可能にし得る。データの各セットは複数のプリミティブ（たとえば、点、多角形など）を含み得る。いくつかの構成では、データの各セットは、割り当てられた単一のＬＯＤを（最初に）有し得る。しかしながら、非同期メモリコントローラ１０８は、データセットの処理中に、異なるＬＯＤをデータのそのセットに割り当て得る。言い換えれば、非同期メモリコントローラ１０８は、（データのそのセットに対する処理（たとえば、テッセレーション、シェーディングなど）が開始した後に、ただしデータのそのセットに対する処理（たとえば、テッセレーション、シェーディングなど）が完了する前に）データのセットのためのＬＯＤを変更し得る。たとえば、本明細書で開示されるシステムおよび方法は、（たとえば、データのセット内でも）ピクセルごとおよび／またはプリミティブごとにＬＯＤを変更することを可能にし得る。いくつかの構成では、パラメータ（たとえば、（１つまたは複数の）パラメータ、（１つまたは複数の）ＬＯＤパラメータなど）は、処理中に更新され得る。たとえば、プロセッサ（たとえば、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）など）または任意の専用ハードウェアブロック（たとえば、センサーデータ（たとえば、アイトラッキングセンサーデータ、動きセンサーデータなど）を扱う任意のハードウェア）が、パラメータを更新し得る。ＶＬＩＷ回路１０４（たとえば、ＧＰＵ）は、パラメータを含むメモリ（たとえば、オンチップメモリ１１０および／またはシステムメモリ１１４）のセクションから読み取り得る（たとえば、常に読み取り得る、連続的に読み取り得る、周期的に読み取り得る、など）。したがって、ＶＬＩＷ回路１０４（たとえば、ＧＰＵ）は、描画呼出し全体についての代わりにプリミティブごとに、相応に調整し得る。いくつかの構成では、ＶＬＩＷ回路１０４は、単一の描画呼出しにおいて異なる詳細レベルをレンダリングし得る。
【００２９】
[0052]本明細書で開示されるシステムおよび方法は、１つまたは複数の利益を与え得る。たとえば、非同期メモリコントローラ１０８は、複数のＬＯＤをレンダリングするときに、より効率的な処理を可能にし得る。知られている手法では、複数の重複するレイヤがレンダリングされ得、ここで、各レイヤは異なるＬＯＤを有する。次いで、重複するレイヤはブレンドされ得る。しかしながら、この手法は、同じデータが複数回レンダリングされるので、非効率的である。本明細書で開示されるシステムおよび方法によれば、異なるＬＯＤは、単一のパスにおいてレンダリングされ得る。これは、同じデータを再レンダリングすることを回避し得、および／または異なる詳細レベルをもつ複数のレイヤをブレンドしなければならないことを回避し得る。
【００３０】
[0053]追加または代替として、本明細書で開示されるシステムおよび方法は、ＬＯＤを非同期的に変更することを可能にし得る。たとえば、画像の１つまたは複数のゾーンをレンダリングすることが、アイトラッキングに基づき得る。たとえば、電子デバイス１０２は、異なる詳細レベルをもつ複数のゾーンをレンダリングし得、ここで、最も高い詳細レベルをもつゾーンが、ユーザが現在見ているエリアにおいてレンダリングされる。アイトラッキングは、画像の異なる部分を見るためにユーザがいつ視線を変更するかを検出し得る。本明細書で開示されるシステムおよび方法（たとえば、非同期メモリコントローラ１０８）は、アイトラッキングに基づいてレンダリングされるＬＯＤを即時に変更し得る。たとえば、ＶＬＩＷ回路１０４は、データセットの処理中でも、ユーザがそれを閲覧するために視線を変更した画像のエリアにおけるＬＯＤを増加させ得る。これは、より良好なユーザエクスペリエンスを与え得る。さらに、本明細書で開示されるシステムおよび方法（たとえば、非同期メモリコントローラ１０８）は、ユーザの視線がもはや向けられていない画像のエリアにおけるＬＯＤを低減し得る。これは、不要な処理を低減し得る。
【００３１】
[0054]ＶＬＩＷ回路１０４は非一様フレームバッファコントローラ１１２を含み得る。非一様フレームバッファコントローラ１１２（たとえば、多重解像度ＦＢＯ）は、ハードウェア、またはハードウェアとソフトウェアの組合せで実装され得る。非一様フレームバッファコントローラ１１２は、ＶＬＩＷ回路１０４で実装され得るか、ＶＬＩＷ回路１０４とは別個に実装され得るか、または部分的にＶＬＩＷ回路１０４で実装され、部分的にＶＬＩＷ回路１０４とは別個に実装され得る。いくつかの構成では、非一様フレームバッファコントローラ１１２は、グラフィックスパイプライン１０６の一部として実装され得る。代替的に、非一様フレームバッファコントローラ１１２は、オンチップメモリ１１０の一部として実装され得る。別の実装形態では、非一様フレームバッファコントローラ１１２は、ＶＬＩＷ回路１０４で実装されるが、グラフィックスパイプライン１０６およびオンチップメモリ１１０とは別個であり得る。
【００３２】
[0055]非一様フレームバッファコントローラ１１２は、１つまたは複数のフレームバッファの異なるサブセットに動的にアクセスするように構成され得る。いくつかの構成では、フレームバッファの異なるサブセットは、異なる詳細レベル、異なる詳細レベルおよび／または異なるミップマップ（mipmap）レベルをもつゾーンに対応し得る。たとえば、非一様フレームバッファコントローラ１１２は、フレームバッファの異なるサブセットに対して動的に動作するように構成され得る。２つまたはそれ以上のフレームバッファサブセットがあり得ることに留意されたい。いくつかの構成では、非一様フレームバッファの異なるサブセットは、異なるビュー（たとえば、立体視レンダリングのための左眼ビューおよび右眼ビュー）に対応し得る。非一様フレームバッファは帯域利用を改善し得る。非一様フレームバッファを用いると、たとえば、左眼ビューと右眼ビューとは、並行して（たとえば、同時に）処理され、１つのパスにおいてシステムメモリ１１４に保存され得る。追加または代替として、たとえば、非一様フレームバッファは、１つのパスにおいて複数のＬＯＤをレンダリングするためのメモリ利用を可能にし、および／または改善し得る。
【００３３】
[0056]いくつかの構成では、フレームバッファの異なるサブセットに動的にアクセスすることは、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスすることを含み得る。第１のゾーンと第２のゾーンとは、異なる詳細レベルに対応し得る。たとえば、非一様フレームバッファコントローラ１１２は、（たとえば、より高いＬＯＤをもつ）あるゾーンのピクセルが、（たとえば、より低いＬＯＤをもつ）別のゾーンのピクセルよりも高いレートで処理されることを可能にし得る。この手法は、１つまたは複数のゾーン（たとえば、より低いＬＯＤのゾーン）の処理を遅くすることによって、電力節約を可能にし得る。２つまたはそれ以上の異なるレートでアクセスされ得る２つまたはそれ以上のゾーンからのピクセルがあり得ることに留意されたい。
【００３４】
[0057]追加または代替として、フレームバッファの異なるサブセットに動的にアクセスすることは、シェーダサブルーチンスワッピングを可能にすることを含み得る。たとえば、シェーダサブルーチンスワッピングは、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに、実行され得る。たとえば、フレームバッファの第１のサブセットは、第１のシェーダサブルーチンを用いて処理された１つまたは複数のピクセルのために割り振られ得、フレームバッファの第２のサブセットは、第２のシェーダサブルーチンを用いて処理された１つまたは複数のピクセルのために割り振られ得る。１つまたは複数の第２のシェーダサブルーチンピクセルの処理が完了されたとき、電子デバイス１０２は、フレームバッファの第２のサブセットを占有するために、シェーダサブルーチンをスワップし得る。これは、フレームバッファ容量がより効率的に利用されることを可能にすることによって、より効率的な処理を与え得る。フレームバッファの２つまたはそれ以上のサブセットが、サブセットのうちの１つまたは複数のためのサブルーチンスワッピングを可能にするために利用され得ることに留意されたい。
【００３５】
[0058]非一様フレームバッファコントローラ１１２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換するように構成され得る。第１のピクセルは、第２のピクセルとは異なる数のサンプルを有し得る。たとえば、第１のゾーンからの第１のピクセルは、より低いＬＯＤをもつ第２のゾーンからの隣接する第２のピクセルよりも高いＬＯＤを有し得る。非一様フレームバッファコントローラ１１２は、第２のピクセルの（処理されていない）サンプルを第１のピクセルの（処理された）サンプルと交換し得る。このようにして、非一様フレームバッファコントローラ１１２は処理を低減し得る。非一様フレームバッファコントローラ１１２が、１つまたは複数のピクセルの１つまたは複数の（処理されていない）サンプルを１つまたは複数の他のピクセルの１つまたは複数の（処理された）サンプルと交換し得ることに留意されたい。
【００３６】
[0059]いくつかの構成では、電子デバイス１０２は、１つまたは複数のディスプレイ（たとえば、ヘッドマウントディスプレイ）を含み、および／またはそれに結合され得る。（１つまたは複数の）ディスプレイは、異なる詳細レベルを提示するように構成され得る。
【００３７】
[0060]図２は、複数の詳細レベルをレンダリングするための方法２００の一構成を示す流れ図である。方法２００は、図１に関して説明された電子デバイス１０２によって実行され得る。
【００３８】
[0061]電子デバイス１０２は、２０２においてジオメトリデータを取得する。たとえば、電子デバイス１０２は、ジオメトリデータをストレージ（たとえば、ハードディスクストレージ、外部ハードドライブ、デジタルビデオディスク（ＤＶＤ）ドライブ、Ｂｌｕ−Ｒａｙ（登録商標）ドライブ、コンパクトディスク（ＣＤ）、サムドライブなどのリムーバブルストレージなど）からメモリ（たとえば、システムメモリ１１４および／またはオンチップメモリ１１０）にロードし得る。追加または代替として、電子デバイス１０２は、別のデバイスからジオメトリデータを受信し得る。たとえば、電子デバイス１０２は、通信インターフェース（たとえば、イーサネット（登録商標）、米国電気電子技術者協会（ＩＥＥＥ）８０２．１１インターフェース、セルラーネットワークインターフェースなど）を介してジオメトリデータを受信し、ジオメトリデータをメモリ（たとえば、システムメモリ１１４および／またはオンチップメモリ１１０）にロードし得る。ジオメトリデータの例は、点、線および／または多角形（たとえば、三角形）などを含み得る。
【００３９】
[0062]電子デバイス１０２は、２０４において、異なる詳細レベルを非同期的にレンダリングする。これは、図１に関して上記で説明されたように達成され得る。たとえば、電子デバイス１０２は、異なる詳細レベルをレンダリングするために、メモリ（たとえば、システムメモリ１１４および／またはオンチップメモリ１１０）に非同期的にアクセスし得る。たとえば、電子デバイス１０２は、（たとえば、データのセットが、異なるＬＯＤを最初に有した場合）処理中にデータのセットのためのＬＯＤを変更し得る。いくつかの構成では、２０４において異なる詳細レベルを非同期的にレンダリングすることは、動的ＬＯＤテッセレーションを実行することを含み得る。
【００４０】
[0063]電子デバイス１０２は、２０６において、フレームバッファの異なるサブセットに動的にアクセスする。これは、図１に関して上記で説明されたように達成され得る。たとえば、電子デバイス１０２は、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスし得る。追加または代替として、電子デバイス１０２は、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに、シェーダサブルーチンスワッピングを可能にし得る。追加または代替として、電子デバイス１０２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換し得る。
【００４１】
[0064]図３は、複数の詳細レベルをレンダリングするためのシステムおよび方法が実装され得る電子デバイス３０２の一構成を示すブロック図である。図３に関して説明される電子デバイス３０２は、図１に関して説明された電子デバイス１０２の一例であり得る。いくつかの構成では、電子デバイス３０２の構成要素または要素のうちの１つまたは複数は、図１に関して説明された対応する構成要素または要素と同様であり得る。構成要素または要素のうちの１つまたは複数は、ハードウェア（たとえば、回路）、またはハードウェアとソフトウェアの組合せ（たとえば、命令をもつプロセッサ）で実装され得る。
【００４２】
[0065]いくつかの構成では、電子デバイス３０２は、超長命令語（ＶＬＩＷ）回路３０４、システムメモリ３１４、１つまたは複数のディスプレイ３３２、１つまたは複数の画像センサー３１６、１つまたは複数の光学システム３１８、１つまたは複数の通信インターフェース３２０、１つまたは複数のアンテナ３２２および／または１つまたは複数のプロセッサ３２４を含み得る。図３に関して説明される要素または構成要素のうちの２つまたはそれ以上は、互いと電子通信していることがある。たとえば、ＶＬＩＷ回路３０４は、システムメモリ３１４に結合され得る（たとえば、それと電子通信していることがある）。ＶＬＩＷ回路３０４は、図１および図２のうちの１つまた複数に関して上記で説明されたように画像をレンダリングするためのデバイスであり得る。いくつかの構成では、（１つまたは複数の）得られた画像は１つまたは複数のディスプレイ３３２上に提示され得る。ＶＬＩＷ回路３０４は、いくつかの実装形態では、プロセッサ３２４とは別個であり得る。他の実装形態では、ＶＬＩＷ回路３０４はプロセッサ３２４に組み込まれ得る。
【００４３】
[0066]通信インターフェース３２０は、電子デバイス３０２が１つまたは複数の他の電子デバイスと通信することを可能にし得る。たとえば、通信インターフェース３２０は、ワイヤードおよび／またはワイヤレス通信のためのインターフェースを与え得る。いくつかの構成では、通信インターフェース３２０は、無線周波数（ＲＦ）信号を送信および／または受信するために、１つまたは複数のアンテナ３２２に結合され得る。追加または代替として、通信インターフェース３２０は、１つまたは複数の種類のワイヤライン（たとえば、ユニバーサルシリアルバス（ＵＳＢ）、イーサネット、ビデオグラフィックスアレイ（ＶＧＡ）、デジタルビジュアルインターフェース（ＤＶＩ）、高精細度マルチメディアインターフェース（ＨＤＭＩ（登録商標））、ＤｉｓｐｌａｙＰｏｒｔ、モバイル高精細度リンク（ＭＨＬ）など）通信を可能にし得る。
【００４４】
[0067]いくつかの構成では、複数の通信インターフェース３２０が実装および／または利用され得る。たとえば、１つの通信インターフェース３２０はセルラー（たとえば、３Ｇ、ロングタームエボリューション（ＬＴＥ（登録商標））、ＣＤＭＡなど）通信インターフェース３２０であり得、別の通信インターフェース３２０はイーサネットインターフェースであり得、別の通信インターフェース３２０はユニバーサルシリアルバス（ＵＳＢ）インターフェースであり得、また別の通信インターフェース３２０はワイヤレスローカルエリアネットワーク（ＷＬＡＮ）インターフェース（たとえば、米国電気電子技術者協会（ＩＥＥＥ）８０２．１１インターフェース）であり得、また別の通信インターフェース３２０はＢｌｕｅｔｏｏｔｈ（登録商標）インターフェースであり得る。
【００４５】
[0068]いくつかの構成では、電子デバイス３０２は、図１、図３〜図５、図９、図１１、図１３および図１５〜図２４のうちの１つまたは複数に関して説明される機能、プロシージャ、方法、ステップなどのうちの１つまたは複数を実行し得る。追加または代替として、電子デバイス３０２は、図１、図３〜図５、図９、図１１、図１３および図１５〜図２４のうちの１つまたは複数に関して説明される構造のうちの１つまたは複数を含み得る。
【００４６】
[0069]システムメモリ３１４は命令および／またはデータを記憶し得る。図３に関して説明されるシステムメモリ３１４は、図１に関して説明されたシステムメモリ１１４の一例であり得る。ＶＬＩＷ回路３０４は、システムメモリ３１４にアクセスし（たとえば、それから読み取り、および／またはそれに書き込み）得る。システムメモリ３１４はまた、（１つまたは複数の）プロセッサ３２４によってアクセス可能であり得る。システムメモリ３１４はジオメトリデータ３２８を記憶し得る。いくつかの構成では、システムメモリ３１４はフレームバッファ３３０ａを含み得る。フレームバッファ３３０ａは、画像データを記憶するためのシステムメモリ３１４の一部分であり得る。バッファされた画像データは、いくつかの構成では、１つまたは複数のディスプレイ３３２上に提示され得る。
【００４７】
[0070]ＶＬＩＷ回路３０４は、画像をレンダリングするための１つまたは複数の要素を含み得る。要素のいくつかの例は、フロントエンド（ＦＥ）、頂点プロセッサ（ＶＰ、頂点フェッチャ（ＶＦ）、頂点シェーダ（ＶＳ）、テッセレーション制御シェーダ（ＴＣＳ）、ハルシェーダ（ＨＳ）、テッセレータ（たとえば、テッセレーションエンジン）（ＴＥＳＳ）、テッセレーション評価シェーダ（ＴＥＳ）、ドメインシェーダ（ＤＳ）、ジオメトリシェーダ（ＧＳ）、ラスタライザ（Ｒａｓｔ）、フラグメントシェーダ（ＦＳ）、ピクセルシェーダ（ＰＳ）、タイラ、レンダー出力ユニット（ＲＯＰ）、クリッパー（Ｃｌｉｐ）および／またはストリームアウト（ＳＯＬ）などを含み得る。いくつかの構成では、これらの要素のうちの１つまたは複数は、グラフィックスパイプラインと呼ばれることがある。
【００４８】
[0071]ＶＬＩＷ回路３０４はオンチップメモリ３１０を含み得る。図３に関して説明されるオンチップメモリ３１０は、図１に関して説明されたオンチップメモリ１１０の一例であり得る。いくつかの構成では、オンチップメモリ３１０は、（たとえば、システムメモリ３１４中のフレームバッファ３３０ａに加えて、またはそれの代替として）フレームバッファ３３０ｂを含み得る。フレームバッファは、画像データを記憶するためのオンチップメモリ３１０の一部分であり得る。バッファされた画像データは、いくつかの構成では、１つまたは複数のディスプレイ３３２上に提示され得る。
【００４９】
[0072]いくつかの構成では、ＶＬＩＷ回路３０４は非同期メモリコントローラ３０８を含み得る。非同期メモリコントローラ３０８は、ハードウェア、またはハードウェアとソフトウェアの組合せで実装され得る。非同期メモリコントローラ３０８は、ＶＬＩＷ回路３０４で実装され得るか、ＶＬＩＷ回路とは別個に実装され得るか、または部分的にＶＬＩＷ回路３０４で実装され、部分的にＶＬＩＷ回路３０４とは別個に実装され得る。非同期メモリコントローラ３０８は、メモリ（たとえば、オンチップメモリ３１０および／またはシステムメモリ３１４）に非同期的にアクセスするように構成され得る。非同期メモリコントローラ３０８がオンチップメモリ１１０および／またはシステムメモリ１１４（たとえば、いずれかまたは両方）を利用（たとえば、アクセス）し得ることに留意されたい。いくつかの構成は使用事例に依存し得る。たとえば、高いレート（たとえば、１０００ヘルツ（Ｈｚ））でセンサーデータ（たとえば、画像センサー３１６データ）が書き込まれている場合、キャッシングが、時間、バッテリーおよび／または他のリソースを浪費し得る。図３に関して説明される非同期メモリコントローラ３０８は、図１に関して説明された非同期メモリコントローラ１０８の一例であり得る。図３に関して説明される非同期メモリコントローラ３０８は、図１に関して説明された非同期メモリコントローラ１０８に関して説明されたように動作し得る。
【００５０】
[0073]ＶＬＩＷ回路３０４は非一様フレームバッファコントローラ３１２を含み得る。非一様フレームバッファコントローラ３１２は、ハードウェア、またはハードウェアとソフトウェアの組合せで実装され得る。非一様フレームバッファコントローラ３１２は、ＶＬＩＷ回路３０４で実装され得るか、ＶＬＩＷ回路３０４とは別個に実装され得るか、または部分的にＶＬＩＷ回路３０４で実装され、部分的にＶＬＩＷ回路３０４とは別個に実装され得る。いくつかの構成では、非一様フレームバッファコントローラ３１２は、グラフィックスパイプラインの一部として実装され得る。代替的に、非一様フレームバッファコントローラ３１２は、オンチップメモリ３１０の一部として実装され得る。別の実装形態では、非一様フレームバッファコントローラ３１２は、ＶＬＩＷ回路３０４で実装されるが、グラフィックスパイプライン３０６およびオンチップメモリ３１０とは別個であり得る。図３に関して説明される非一様フレームバッファコントローラ３１２は、図１に関して説明された非一様フレームバッファコントローラ１１２の一例であり得る。図３に関して説明される非一様フレームバッファコントローラ３１２は、図１に関して説明された非一様フレームバッファコントローラ１１２に関して説明されたように動作し得る。
【００５１】
[0074]いくつかの構成では、電子デバイス３０２は、単一パスマルチＬＯＤレンダリング（single-pass multi-LOD rendering）を実行し得る。マルチＬＯＤレンダリングは、異なる詳細レベルをもつ画像の異なるゾーンをレンダリングすることを含み得る。単一パスマルチＬＯＤレンダリングは、異なる詳細レベル（たとえば、テッセレーション詳細レベル）をもつ異なるゾーンを（たとえば、ピクセルを繰り返し処理することなしに）単一のパスにおいてレンダリングすることを含み得る。単一パスフォービエイテッドレンダリングは、単一パスマルチＬＯＤレンダリングの一例であり得、ここで、異なる詳細レベルをもつ異なるゾーンがアイトラッキングに基づき得る。たとえば、ゾーンは、ユーザが見ているディスプレイ（たとえば、画像）の点を近似的に中心とする円形エリア（または別の形状のエリア）であり得る。追加または代替として、単一パスレンダリング（たとえば、単一パスマルチＬＯＤレンダリング）は、左眼ビューと右眼ビューの両方がレンダリングされる必要があるにもかかわらず、レンダリングされるべきデータおよび／またはテクスチャにわたる１つのパス（たとえば、処理パス）を実行することを含み得る。したがって、本明細書で開示されるシステムおよび方法のいくつかの構成は、システムメモリとオンチップメモリ（たとえば、ＧＰＵメモリ）との間でデータを移動する前に、できる限り両方の眼ビューのために同じくらい多くのデータを利用し得る。いくつかの構成では、非同期メモリコントローラ３０８および／または非一様フレームバッファコントローラ３１２は、単一パスマルチＬＯＤレンダリング（たとえば、単一フォービエイテッドレンダリング）の実行を可能にし得る。たとえば、非同期メモリコントローラ３０８は、揮発性メモリブロックから（１つまたは複数の）パラメータ（たとえば、（１つまたは複数の）詳細レベル（ＬＯＤ）パラメータ）を読み取ること（たとえば、描画呼出し中に動的に適応すること）を可能にし得る。たとえば、非同期メモリコントローラ３０８は、テッセレーション制御シェーダ（ＴＣ）、テッセレータ（ＴＥＳＳ）、テッセレーション評価シェーダ（ＴＥＳ）、ジオメトリシェーダ（ＧＳ）、ラスタライザおよびフラグメントシェーダ（ＦＳ）のうちの１つまたは複数が、揮発性メモリブロックからの１つまたは複数のパラメータにアクセスすること（たとえば、描画呼出し中に動的に適応すること）を可能にし得る。
【００５２】
[0075]いくつかの構成では、ＶＬＩＷ回路３０４はラスタライザを含み得る。ラスタライザは、ＭＳＡＡがプリミティブのより多くのサンプリングを実行することを可能にし得、これは、より多くのフラグメントシェーダ（ＦＳ）評価をアクティブにし得る。さらに、プリミティブのサンプリングは、ジャギーのようなアーティファクトを回避するために実行され得、アーティファクトは、十分でないサンプルが処理され、平均化されることに起因する。
【００５３】
[0076]電子デバイス３０２は、１つまたは複数の画像（たとえば、デジタル画像、画像フレーム、ビデオなど）を取得し得る。１つまたは複数の画像は、１人または複数のユーザおよび／またはシーンの画像（たとえば、１つまたは複数のオブジェクトおよび／または背景）であり得る。たとえば、電子デバイス３０２は、１つまたは複数の画像センサー３１６、および／または（１つまたは複数の）光学システム３１８の視野内に位置するオブジェクトの画像を（１つまたは複数の）画像センサー３１６上に合焦させる光学システム３１８（たとえば、レンズ）を含み得る。いくつかの構成では、（１つまたは複数の）画像センサー３１６は、１つまたは複数の画像をキャプチャし得る。（１つまたは複数の）画像センサー３１６および／または（１つまたは複数の）光学システム３１８は、プロセッサ３２４に結合され、および／またはそれによって制御され得る。
【００５４】
[0077]追加または代替として、電子デバイス３０２は、１つまたは複数の画像を、別のデバイス（たとえば、電子デバイス３０２に結合された外部画像センサー、ネットワークサーバ、トラフィックカメラ、ドロップカメラ、自動車カメラ、ウェブカメラなど）に要求し、および／またはそれから受信し得る。いくつかの構成では、電子デバイス３０２は、通信インターフェース３２０を介して１つまたは複数の画像を要求および／または受信し得る。たとえば、電子デバイス３０２は、カメラ（たとえば、画像センサー３１６および／または光学システム３１８）を含むことも含まないこともあり、リモートデバイスから画像を受信し得る。
【００５５】
[0078]いくつかの構成では、電子デバイス３０２中に含まれる１つまたは複数の画像センサー３１６および／または電子デバイス３０２に結合された１つまたは複数の他の画像センサーは、ユーザの１つまたは複数の画像をキャプチャするように配向され得る。たとえば、スマートフォンが、ディスプレイ（たとえば、ディスプレイ３３２）と同じ面上に取り付けられたカメラを含み得る。このようにして、カメラは、ユーザがディスプレイを見ている間に、ユーザの画像をキャプチャし得る。別の例では、カメラは、ユーザ（たとえば、運転者）の画像をキャプチャするために、車両のコンソールおよび／またはステアリングホイールに取り付けられ得る。
【００５６】
[0079]追加または代替として、電子デバイス３０２中に含まれる１つまたは複数の画像センサー３１６および／または電子デバイス３０２に結合された１つまたは複数の他の画像センサーは、風景をキャプチャするように配向され得る。たとえば、１つまたは複数のカメラが、スマートフォンの裏面上に取り付けられ得る。別の例では、１つまたは複数のカメラが、車両の外部上に取り付けられ得る。いくつかの構成では、電子デバイス３０２は、拡張現実（ＡＲ）適用例、仮想現実（ＶＲ）適用例および／または他の適用例（たとえば、サラウンドビュー可視化（surround view visualization）、運転者支援、先進運転者支援システム（ＡＤＡＳ：advanced driver assistance system）など）において風景の画像を利用し得る。
【００５７】
[0080]いくつかの構成では、（１つまたは複数の）画像センサー３１６によってキャプチャされ、および／または（１つまたは複数の）通信インターフェース３２０を介して受信された（１つまたは複数の）画像が、アイトラッキングのために電子デバイス３０２によって利用され得る。たとえば、プロセッサ３２４は、アイトラッカー３２６を含み、および／または実装し得る。アイトラッカー３２６は、１人または複数のユーザの（１つまたは複数の）眼の視線（たとえば、ルック方向（look direction））を追跡し得る。たとえば、アイトラッカー３２６は、（１つまたは複数の）画像における１人または複数のユーザの（１つまたは複数の）眼の位置を特定し得、（１人または複数の）ユーザの視線（たとえば、ルック方向）を推定し得る。たとえば、アイトラッカー３２６は、ユーザがディスプレイ（たとえば、ディスプレイ３３２または外部ディスプレイ）上のどこを見ているか、および／またはユーザがディスプレイによって提示された画像上のどこを見ているかを決定（たとえば、推定）し得る。言い換えれば、アイトラッカー３２６は、画像および／またはディスプレイに対してどこにユーザの視線が向けられているかを決定（たとえば、推定）し得る。
【００５８】
[0081]本明細書で開示されるシステムおよび方法は、ＬＯＤを非同期的に変更すること、および／または単一のパスにおいて複数の詳細レベルをレンディングすることを可能にし得る。いくつかの構成では、画像の１つまたは複数のゾーンをレンダリングすることが、アイトラッキングに基づき得る。画像のゾーンは異なる詳細レベルを有し得る。たとえば、電子デバイス３０２は、異なる詳細レベルをもつ複数のゾーンをレンダリングし得、ここで、最も高い詳細レベルをもつゾーンが、ユーザが現在見ているエリアにおいてレンダリングされる。いくつかの構成では、これは、フォービエイテッドレンダリングと呼ばれることがある。アイトラッカー３２６はアイトラッキング情報を生成し得る。アイトラッキング情報は、ディスプレイおよび／または画像に対してどこにユーザの視線が向けられるか（たとえば、複数ユーザの視線が向けられているか）を示し得る。いくつかの構成では、プロセッサ３２４および／またはＶＬＩＷ回路３０４は、アイトラッキング情報に基づいて、１つまたは複数のＬＯＤパラメータを決定し得る。（１つまたは複数の）ＬＯＤパラメータは、画像の１つまたは複数のゾーンのためのレンダリングされるべきＬＯＤを示し得る。（１つまたは複数の）ＬＯＤパラメータは、システムメモリ３１４および／またはオンチップメモリ３１０に記憶され得る。（１つまたは複数の）ＬＯＤパラメータは、ＶＬＩＷ回路３０４によって処理されているデータのセット（たとえば、描画呼出し）に関して、非同期的に更新され得る。非同期メモリコントローラ３０８は、データセット（たとえば、描画呼出し）の処理中に、（システムメモリ３１４および／またはオンチップメモリ３１０から）（１つまたは複数の）ＬＯＤパラメータを読み取り得る。たとえば、非同期メモリコントローラ３０８は、データセット（たとえば、描画呼出し）の処理中に、テッセレーション設定を更新し得る。
【００５９】
[0082]アイトラッカー３２６は、画像の異なる部分を見るためにユーザがいつ視線を変更するかを検出し得る。本明細書で開示されるシステムおよび方法（たとえば、非同期メモリコントローラ３０８）は、アイトラッキング（たとえば、アイトラッキング情報および／または（１つまたは複数の）ＬＯＤパラメータ）に基づいてレンダリングされるＬＯＤを即時に変更し得る。たとえば、非同期メモリコントローラ３０８は、データセット（たとえば、描画呼出し）の処理中に変わり得る、１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ）を読み取り得る。たとえば、ＶＬＩＷ回路３０４は、データセットの処理中でも、ユーザがそれを閲覧するために視線を変更した画像のエリア（たとえば、ゾーン）におけるＬＯＤを増加させ得る。追加または代替として、本明細書で開示されるシステムおよび方法（たとえば、非同期メモリコントローラ３０８）は、ユーザの視線がもはや向けられていない画像のエリア（たとえば、ゾーン）におけるＬＯＤを低減し得る。いくつかの構成では、ゾーンは、ユーザが見ているディスプレイ（たとえば、画像）の点を近似的に中心とする円形エリア（または別の形状のエリア）であり得る。他の構成では、ゾーンは、ユーザが閲覧しているウィンドウに対応する画像のエリア全体であり得る。
【００６０】
[0083]いくつかの構成では、電子デバイス３０２は、カメラアプリケーションおよび／またはディスプレイ３３２を含み得る。カメラアプリケーションが動作しているとき、光学システム３１８の視野内に位置するオブジェクトの画像が画像センサー３１６によってキャプチャされ得る。画像センサー３１６によってキャプチャされている画像は、ディスプレイ３３２上に提示され得る。いくつかの構成では、これらの画像は、所与の時間的瞬間において、光学システム３１８の視野内に位置するオブジェクトがディスプレイ３３２上に提示されるように、比較的高いフレームレートで迅速に連続して表示され得る。
【００６１】
[0084]電子デバイス３０２中に示されている要素のうちの１つまたは複数が随意であり得ることに留意されたい。たとえば、電子デバイス３０２中に示されている要素のうちの１つまたは複数は、含まれることも含まれないこともあり、および／または実装されることも実装されないこともある。追加または代替として、プロセッサ３２４および／またはＶＬＩＷ回路３０４に示されている要素のうちの１つまたは複数は、プロセッサ３２４および／またはＶＬＩＷ回路３０４とは別個に（たとえば、他の回路で、別のプロセッサ上で、別個の電子デバイス上でなど）実装され得る。たとえば、画像センサー３１６、光学システム３１８、通信インターフェース３２０、プロセッサ３２４、アイトラッカー３２６および／またはディスプレイ３３２は、電子デバイス３０２上に実装されないことがある。いくつかの構成では、電子デバイス３０２は、別のデバイスから画像および／またはアイトラッキング情報を受信し得る。追加または代替として、１つまたは複数のディスプレイが、１つまたは複数の別個のデバイス上に実装され得る。
【００６２】
[0085]いくつかの構成では、電子デバイス３０２は、ディスプレイ３３２上にユーザインターフェース３３４を提示し得る。たとえば、ユーザインターフェース３３４は、ユーザが電子デバイス３０２と対話することを可能にし得る。いくつかの構成では、ディスプレイ３３２は、（たとえば、指、スタイラス、または他のツールによる）物理的タッチから入力を受信するタッチスクリーンであり得る。追加または代替として、電子デバイス３０２は、別の入力インターフェースを含むかまたはそれに結合され得る。たとえば、電子デバイス３０２は、ユーザに面するカメラを含み得、ユーザのジェスチャー（たとえば、手のジェスチャー、腕のジェスチャー、アイトラッキング、まぶたの瞬きなど）を検出し得る。別の例では、電子デバイス３０２は、マウスに結合され得、マウスクリックを検出し得る。いくつかの構成では、ユーザ入力が必要でないことがあることに留意されたい。
【００６３】
[0086]いくつかの構成では、電子デバイス３０２は、動きセンサー（たとえば、（１つまたは複数の）ジャイロスコープ、（１つまたは複数の）加速度計など）を随意に含み得る。たとえば、動きセンサーは、（たとえば、電子デバイス３０２の）動きおよび／または配向を検出し得る。いくつかの構成では、レンダリングされている画像は、動きおよび／または配向情報に基づき得る。たとえば、電子デバイス３０２は、ヘッドマウントディスプレイ（たとえば、仮想現実（ＶＲ）ヘッドセット、拡張現実（ＡＲ）ヘッドセットなど）、車両（たとえば、自動車、ドローン、飛行機など）、モバイルデバイス（たとえば、スマートフォン）、あるいは画像をレンダリングするために動きおよび／または配向情報を利用し得る他のデバイスであり得る。たとえば、動きおよび／または配向情報は、レンダリングされたシーンにおける一般的な閲覧方向を示し得る。電子デバイス３０２は、いくつかの構成では、アイトラッキング情報に加えて、またはそれの代替として、この閲覧方向に基づいて画像をレンダリングし得る。動きセンサーの使用は、非同期メモリコントローラ３０８の非同期動作の別の態様を示し得る。たとえば、動きセンサーが、特定のレート（たとえば、１０００ヘルツ（Ｈｚ））で動き情報および／または配向情報をメモリ（たとえば、システムメモリ３１４および／またはオンチップメモリ３１０）に与え得、ＶＬＩＷ回路３０４は、比較的低いレート（たとえば、３０フレーム毎秒（ｆｐｓ））でフレームをレンダリングし得る。非同期メモリコントローラ３０８は、動き情報および／または配向情報に基づいてデータのセットをレンダリングしている最中に、１つまたは複数のレンダリング動作（たとえば、テッセレーション）を非同期的に変更し得る。
【００６４】
[0087]図４は、非一様フレームバッファ４３０の一例を示す図である。この例では、フレームバッファ４３０は、２ｎ×２ｍ個のピクセルの容量を有する。いくつかの構成では、電子デバイス３０２は、４３２において、フレームバッファ４３０をタイル４３６に随意にタイリングし得る。図４に示されている例では、サイズ（ｎ、ｍ）の４つのタイル４３６が示されている。いくつかの実装形態では、オンチップメモリ３１０またはオンチップメモリ３１０の一部分が、タイル４３６のサイズに制限され得る。したがって、電子デバイス３０２は、フレームバッファ４３０をタイル４３６にスプリットし得る。他の実装形態では、オンチップメモリ３１０またはオンチップメモリ３１０の一部分は、フレームバッファ４３０全体に適応するのに十分に大きくなり得、４３４においてタイリングが実行されないことがある。
【００６５】
[0088]電子デバイス３０２は、４３８において、フレームバッファ４３０および／またはタイル４３６を、スケーリングされた部分４４０に再分割し得る。たとえば、フレームバッファ４３０および／またはタイル４３６は、複数の解像度および／または詳細レベルに合うように再分割され得る。図４に示されている例では、スケーリングされた部分４４０は、サイズ（ｎ／ｃ、ｍ／ｃ）のものであり、ここで、ｃはスケーリングファクタである。スケーリングファクタｃは、変動し得、および／または構成に基づいて選択され得る。
【００６６】
[0089]電子デバイス３０２（たとえば、非一様フレームバッファコントローラ３１２）は、フレームバッファ４３０の異なるサブセット４４２ａ〜ｃに動的にアクセスし得る。図４に示されている例では、電子デバイス３０２は、バッファサブセットＡ４４２ａと、バッファサブセットＢ４４２ｂと、バッファサブセットＣ４４２ｃとに動的にアクセスし得る。より少ないまたはより多いバッファサブセットが利用され得ることに留意されたい。また、フレームバッファ４３０の全部または一部分のみがバッファサブセットによって占有され得ることに留意されたい。たとえば、フレームバッファの他の非斜線部分は、１つまたは複数の他のサブセットによって利用され得る。
【００６７】
[0090]異なるフレームバッファサブセット（たとえば、バッファサブセット４４２ａ〜ｃ）の動的アクセス（たとえば、読取りおよび／または書込み）は、１つまたは複数の手法が、画像をレンダリングする際により大きい制御および／または効率を与えることを可能にし得る。いくつかの手法では、異なるフレームバッファサブセットの動的アクセスが、単一パスマルチＬＯＤレンダリングを可能にし得る。これは、ゾーンをあるＬＯＤでレンダリングすることが、別のゾーンを異なるＬＯＤでレンダリングすることが開始され得る前に、完了される必要がないからである。この手法では、バッファサブセット４４２ａ〜ｃのうちの１つまたは複数が、異なる画像ゾーンに対応し得る。たとえば、バッファサブセットＡ４４２ａは最も高いＬＯＤをもつゾーンに対応し得、バッファサブセットＢ４４２ｂは中間ＬＯＤをもつゾーンに対応し得、バッファサブセットＣ４４２ｃはより低いＬＯＤをもつゾーンに対応し得る。たとえば、ＶＬＩＷ回路３０４は、バッファサブセットＡ４４２ａに書き込まれ得る最も高いＬＯＤゾーンをレンダリングしながら、同時にまたは連続的に、バッファサブセットＢ４４２ｂに書き込まれ得る中間ＬＯＤゾーンをレンダリングし得る。異なるＬＯＤゾーンが、任意の順序（たとえば、最も高いＬＯＤから最も低いＬＯＤに向かって、逆順または別の順序）でレンダリングされ得ることに留意されたい。追加または代替として、異なるフレームバッファサブセットの動的アクセスは、異なるレートで異なるゾーンを処理することを可能にし得る（たとえば、より迅速に処理されるべきあるゾーンのためにより大きいフレームバッファサブセットが割り振られ得、より遅く処理されるべき別のゾーンのためにより小さいフレームバッファサブセットが割り振られ得る）。
【００６８】
[0091]いくつかの手法では、異なるフレームバッファサブセットの動的アクセスは、並列シェーダプロセス（たとえば、サブルーチン）を可能にし得る。たとえば、異なるシェーダプロセスが並列に実行され得、ここで、あるシェーダプロセスがフレームバッファのあるサブセットにアクセスし、別のシェーダプロセスがフレームバッファの別のサブセットにアクセスする。追加または代替として、異なるフレームバッファサブセットの動的アクセスは、シェーダサブルーチンスワッピングを可能にし得る。たとえば、バッファサブセットＡ４４２ａにアクセスする第１のシェーダサブルーチンが実行され得る。第１のシェーダサブルーチンが進行中である間、バッファサブセットＢ４４２ｂにアクセスする第２のシェーダサブルーチンが終了し得る。第２のシェーダサブルーチンは、第１のシェーダサブルーチンが進行中である間、（たとえば、バッファサブセットＢ４４２ｂにアクセスし得る）別のシェーダサブルーチンにスワップされ得る。これは、別のシェーダサブルーチンが開始され得る前にシェーダサブルーチンが終了するのを待たなければならないのではなく、フレームバッファのスペースを利用する際により大きい効率を可能にし得る。
【００６９】
[0092]いくつかの手法では、異なるフレームバッファサブセットの動的アクセスは、サンプル置換を可能にし得る。たとえば、非一様フレームバッファコントローラ３１２は、処理されたピクセルの１つまたは複数のサンプルを別のピクセルの１つまたは複数のサンプルにスワップし得る。いくつかの構成では、ＶＬＩＷ回路３０４は、アンチエイリアシング（たとえば、マルチサンプルアンチエイリアシング（ＭＳＡＡ））を実行し得る。アンチエイリアシングを実行する際に、異なるピクセルが異なる数のサンプルを有し得る。たとえば、バッファサブセットＡ４４２ａ中の第１の（たとえば、「細かい」）ピクセルは、４つのサンプルを有し得、高品質シェーディングを使用し得るが、バッファサブセットＢ４４２ｂ中の近くの（たとえば、隣接の）第２の（たとえば、「粗い」）ピクセルは、１つのサンプルを有し、低品質シェーディングを使用し得る。処理（たとえば、シェーディング）を第２のピクセルに対して実行する代わりに、非一様フレームバッファコントローラ３１２は、第１のピクセルのサンプルで第２のピクセルのサンプルを置換し得る。これは、第２のピクセルのための処理のいずれをも実行することを回避し得る。追加または代替として、非一様フレームバッファコントローラ３１２は、ミップマップを処理する際にサンプル置換を実行し得る。たとえば、非一様フレームバッファコントローラ３１２は、（たとえば、バッファサブセットＡ４４２ａ中の）より高いレベルからのサンプルで、（たとえば、バッファサブセットＢ４４２ｂ中の）より低いレベルからのサンプルを置換し得る。これは、一部、あるいは１つまたは複数のより低いレベルで処理することを回避し得る。
【００７０】
[0093]非一様フレームバッファコントローラ３１２は、シェーダ処理（たとえば、サブルーチン、カーネルなど）の動的ディスパッチを可能にし得、ピクセルサンプル置換を可能にし得、および／またはマルチＬＯＤフレームバッファを与え得る。図４に示されているように、フレームバッファ４３０は、複数のレンダリングされたターゲット４４４としてストリームアウトされ得る画像データを記憶し得る。
【００７１】
[0094]リスティング（１）が、非一様フレームバッファ機能のための１つ手法を示す擬似コードの一例を示す。ＧＬＳＬはＯｐｅｎＧＬシェーディング言語（OpenGL Shading Language）の略語であり、ＳＳＢＯはシェーダストレージバッファオブジェクト（Shader Storage Buffer Object）の略語であることに留意されたい。リスティング（１）は、異なる詳細レベルをもつ複数のゾーンがどのようであるかを示す
ｖｏｉｄ  ｍａｉｎ（）｛    ／／ＧＬＳＬ＋任意のテクスチャを使用して、ｂｕｆｆｅｒ＿ｓｕｂｓｅｔ＿Ａを計算する。
【００７２】
／／書込み機構としてのｉｍａｇｅＳｔｏｒｅ（）／色バッファ／ＳＳＢＯ。
【００７３】
｝
ｖｏｉｄ  ｍａｉｎ＿ｌｏｄ＿１（ｓａｍｐｌｅｒＴｉｌｅ／ｉｍａｇｅＴｉｌｅ  ｒｅｄ＿ｓｑｕａｒｅ）｛
／／ＧＬＳＬ＋任意のテクスチャを使用して、緑色の方形を計算する
／／場合によっては、ｔｅｘｔｕｒｅ（ｒｅｄ＿ｓｑｕａｒｅ，ｕｖ）／ｉｍａｇｅＲｅａｄ（）
｝
．．．
ｖｏｉｄ  ｍａｉｎ＿ｌｏｄ＿ｎ（ｓａｍｐｌｅｒＴｉｌｅ  ｌａｓｔ＿ｓｑｕａｒｅ）｛
／／”＿ｌｏｄ＿＜ｎ＞（）”は、ｌｅｖｅｌ  ０（ｂｕｆｆｅｒ＿ｓｕｂｓｅｔ＿Ａ）のレンダリングの後にトリガされることになる。 
／／フルスクリーン三角形と変化するビューポートとを介してシミュレートされ得る。
【００７４】
／／”＿ｌｏｄ＿＜ｉ＞（）”は、順方向［０  ｔｏ  ｎ−１］または逆方向［ｎ−１  ｔｏ  ０］のいずれかで実行することができる。
【００７５】
｝
リスティング（１）
[0095]図５は、複数の詳細レベルをレンダリングするための方法５００のより具体的な構成を示す流れ図である。方法５００は、図３に関して説明された電子デバイス３０２によって実行され得る。
【００７６】
[0096]電子デバイス３０２は、５０２においてジオメトリデータ（たとえば、ジオメトリデータ３２８）を取得する。これは、図１〜図３のうちの１つまたは複数に関して説明されたように達成され得る。たとえば、電子デバイス３０２は、ジオメトリデータをストレージからメモリ（たとえば、システムメモリ３１４および／またはオンチップメモリ３１０）にロードし得、および／または別のデバイスからジオメトリデータを受信し、ジオメトリデータをメモリ（たとえば、システムメモリ３１４および／またはオンチップメモリ３１０）にロードし得る。
【００７７】
[0097]電子デバイス３０２は、５０４においてアイトラッキングを実行する。これは、図３に関して説明されたように達成され得る。たとえば、電子デバイス３０２は、１つまたは複数の画像を取得（たとえば、キャプチャおよび／または受信）し得、１つまたは複数の画像に基づいて、ユーザの視線がどこに向けられているか（たとえば、ユーザが、ディスプレイ上の、および／またはディスプレイ上に提示されている画像上のどこを見ているか）を決定し得る。
【００７８】
[0098]電子デバイス３０２は、５０６において、アイトラッキングに基づいて、異なる詳細レベルを非同期的にレンダリングする。これは、図１〜図３のうちの１つまたは複数に関して上記で説明されたように達成され得る。たとえば、電子デバイス３０２は、アイトラッキングに基づいて異なる詳細レベルをレンダリングするために、メモリ（たとえば、システムメモリ３１４および／またはオンチップメモリ３１０）に非同期的にアクセスし得る。たとえば、電子デバイス３０２は、データのセットのためのゾーンがアイトラッキングに基づいて変わるとき、（たとえば、データのセットが、異なるＬＯＤを最初に有した場合）処理中にデータのセットのためのＬＯＤを変更し得る。いくつかの構成では、電子デバイス３０２は、ユーザの視線が、データのセットに対応する画像のエリアに向けられているとき、データのセットのためのＬＯＤを増加させ得る。追加または代替として、電子デバイス３０２は、ユーザの視線方向が、データのセットに対応する画像のエリアから遠ざかるとき、データのセットのためのＬＯＤを減少させ得る。
【００７９】
[0099]いくつかの構成では、５０６において異なる詳細レベルを非同期的にレンダリングすることは、動的ＬＯＤテッセレーションを実行することを含み得る。たとえば、メモリ（たとえば、システムメモリ３１４および／またはオンチップメモリ３１０）は、（１つまたは複数の）ＬＯＤテッセレーションパラメータ（たとえば、テッセレーションの程度）の変更を示すために更新され得る。非同期メモリコントローラ３０８は、ＬＯＤテッセレーションを非同期的に変更するために、更新されたＬＯＤテッセレーションパラメータにアクセスし得る。
【００８０】
[00100]電子デバイス３０２は、５０８において、フレームバッファの異なるサブセットに動的にアクセスする。これは、図１〜図４のうちの１つまたは複数に関して上記で説明されたように達成され得る。たとえば、電子デバイス３０２は、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスし得る。追加または代替として、電子デバイス３０２は、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに、シェーダサブルーチンスワッピングを可能にし得る。追加または代替として、電子デバイス３０２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換し得る。
【００８１】
[00101]電子デバイス３０２は、５１０において、レンダリングされた画像を提示する。たとえば、電子デバイス３０２は、異なる詳細レベルを用いて５０６において非同期的にレンダリングされた画像データをストリームアウトし得る。いくつかの構成では、画像データは、一体型ディスプレイ３３２に与えられ得る。他の構成では、画像データは、電子デバイス３０２と通信しているリモートディスプレイに与えられ得る。たとえば、電子デバイス３０２は、（ＶＧＡ、ＤＶＩ、ＨＤＭＩなどを介して）電子デバイス３０２に結合されたディスプレイに画像データを与え得る。
【００８２】
[00102]図６は、フォービエイテッドレンダリングのための方法６００の例を示す流れ図である。本方法では、６０２においてジオメトリデータを取得する。また、６０４においてアイトラッキングを実行する。６０６において粗いレイヤをレンダリングし、６０８において中間レイヤをレンダリングし、６１０において細かいレイヤをレンダリングする。たとえば、細かいレイヤは、６１０において、ユーザの視線が向けられている画像上にレンダリングされ得る。中間レイヤは、６０８において、細かいレイヤエリアと重複するより大きいエリアにおいてレンダリングされ得る。粗いレイヤは、６０６において、中間レイヤエリアと細かいレイヤエリアとを含むさらにより大きいエリア（たとえば、全画像）においてレンダリングされ得る。したがって、レイヤ間にかなりの重複があり得る。６１２において、アンチエイリアシングを用いて、粗いレイヤと中間レイヤと細かいレイヤとをマージする。６１４において、得られた画像をフレームバッファに出力する。
【００８３】
[00103]わかるように、方法６００は、かなりの量の重複するエリアをレンダリングすることを含み得る。たとえば、細かい詳細エリアは、３回、すなわち、粗いレイヤにおいて１回、中間レイヤにおいて１回、および細かいレイヤにおいて１回レンダリングされ得る。これは、それが同じピクセルにわたって複数のレンダリングパスを実行するので、非効率的であり得る。
【００８４】
[00104]図７は、フォービエイテッドレンダリングの一例を示す。特に、図７は、フォービエイテッドレンダリングのためのシーンの一例を示す。フォービエイテッドレンダリングのためのシーンは、粗い詳細エリア７４８と、中間詳細エリア７５０と、細かい詳細エリア７５２とを含む。図６に関して説明されたように、フォービエイテッドレンダリングに対する１つの手法は、粗いレイヤ７５４をレンダリングすることと、中間レイヤ７５６をレンダリングすることと、細かいレイヤ７５８をレンダリングすることとを含む。次いで、マージングおよびブレンディング７６０が、最終のブレンドされた画像７６２を生成するために、粗いレイヤ７５４と、中間レイヤ７５６と、細かいレイヤ７５８とに対して実行され得る。たとえば、中間レイヤ７５６と粗いレイヤ７５４とをブレンドするために、中間レイヤ７５６と粗いレイヤ７５４との間のブレンドマスクＡ７６４ａが使用され得る。さらに、中間レイヤ７５６と細かいレイヤ７５８とをブレンドするために、中間レイヤ７５６と細かいレイヤ７５８との間のブレンドマスクＢ７６４ｂが使用され得る。わかるように、この手法は、同じピクセルを複数のパスにおいてレンダリングし、非効率につながる。ブレンドマスク７６４ａ〜ｂのうちの１つまたは複数が、いくつかの構成では、重み付けされた（たとえば、漸進的な）ブレンドを与え得、ここで、ブレンディング重み（blending weight）がブレンドマスクの外縁から内側エリアに向かって増加することに留意されたい。また、粗いレイヤ７５４および／または最終のブレンドされた画像７６２は、便宜上シーン全体のサブセットとして図７に示されていることに留意されたい。しかしながら、粗いレイヤ７５４および／または最終のブレンドされた画像７６２は、シーン全体をカバーし得る。
【００８５】
[00105]図８は、超長命令語（ＶＬＩＷ）回路８６８を含む電子デバイス８６６の一例を示すブロック図である。特に、図８は、グラフィックス処理のためのアーキテクチャの一例を示す。図８に関して説明されるアーキテクチャの１つまたは複数の態様は、Ｎｖｉｄｉａアーキテクチャの態様と同様に機能し得る。このアーキテクチャは、電力およびダイ面積を犠牲にして、高帯域幅設計を用いた即時モードレンダリング（ＩＭＲ：immediate mode rendering）を与え得る。この設計では、帯域幅を低減するために（たとえば、繰り返されるサンプリング、システムメモリ８０５からの読取りおよび／またはそれへの書込みを回避するために）、キャッシュ８０１が利用され得る。たとえば、キャッシュ８０１は、画像フレーム全体のためのデータに適応するのに十分に大きくなり得る。本明細書で説明されるグラフィックスパイプラインのうちの１つまたは複数が、ＤｉｒｅｃｔＸおよび／またはＯｐｅｎＧＬパイプラインおよび／またはアプリケーションプログラミングインターフェース（ＡＰＩ）と同様の１つまたは複数の態様を有し得ることに留意されたい。米国特許出願公開第２０１４／０３４７３６３号は、ＤｉｒｅｃｔＸパイプラインとの類似度を有し得るグラフィックス処理のいくつかの態様について説明する。
【００８６】
[00106]電子デバイス８６６は、ＶＬＩＷ回路８６８（たとえば、ＧＰＵ）とシステムメモリ８０５（たとえば、ＤＲＡＭ）とを含み得る。ＶＬＩＷ回路８６８は、グラフィックスパイプライン８７０とオンチップメモリ８０３とを含み得る。グラフィックスパイプライン８７０は、フロントエンド（ＦＥ）８７２と、頂点フェッチャ（ＶＦ）８７４と、頂点シェーダ（ＶＳ）８７６と、テッセレーション制御シェーダ（ＴＣＳ）８７８と、テッセレータ（ＴＥＳＳ）８８０（たとえば、テッセレーションエンジン）と、テッセレーション評価シェーダ（ＴＥＳ）８８２と、ジオメトリシェーダ（ＧＳ）８８４と、ラスタライザ（Ｒａｓｔ）８８６と、フラグメントシェーダ（ＦＳ）８９０と、レンダー出力ユニット（ＲＯＰ）８９４とのうちの１つまたは複数を含み得る。要素ラベルのうちの多くが、便宜上省略されている。オンチップメモリ８０３は、バッファ８９６と、合成／分解（Ｃ／Ｄ：composition/decomposition）メモリ８９８と、キャッシュ８０１とを含み得る。いくつかの構成では、バッファ８９６は、テクスチャバッファ、フレームバッファ、および／またはオンチップメモリ９１０の別のブロックであり、ならびに／あるいはそれらを含み得る。システムメモリ８０５は、コマンドデータ（Ｃｍｄ）８０７と、頂点データ８０９と、テクスチャデータおよび無順序アクセスビューデータ８１１と、レンダリングされたターゲットデータ８１３とを含み得る。
【００８７】
[00107]シーンをレンダリングするために、電子デバイス８６６は、コマンドデータ８０７と頂点データ８０９とを、システムメモリ８０５からオンチップメモリ８０３中のキャッシュ８０１にロードし得る。頂点データ８０９は、１つまたは複数の点（たとえば、頂点）、線および／または多角形を示し得る。頂点データ８０９は、シーンおよび／またはシーン中の１つまたは複数のオブジェクトを表し得る。
【００８８】
[00108]ＦＥ８７２は、キャッシュ８０１とグラフィックスパイプライン８７０（たとえば、ＶＦ８７４）との間のインターフェースを与え得る。たとえば、ＦＥ８７２は、ＶＦ８７４によってデフォーマットされるべきデータを取得し得、および／またはキャッシュ８０１から取り出されるデータ（たとえば、頂点データ）に関してＶＦ８７４を制御し得る。
【００８９】
[00109]ＶＦ８７４は、キャッシュ８０１からグラフィックスパイプライン８７０に頂点データをフェッチし得る。ＶＦ８７４はバッファ８９６にアクセスし得る。たとえば、ＶＦは、データをバッファ８９６に書き込み得る。ＶＦ８７４は、頂点データをＶＳ８７６に与え得る。追加または代替として、ＶＳ８７６は、バッファ８９６から頂点データを取り出し得る。
【００９０】
[00110]ＶＳ８７６は、頂点データを異なる空間に変換し得る。たとえば、ＶＳ８７６は、頂点データを３次元（３Ｄ）空間から２次元（２Ｄ）空間に変換し得る。ＶＳ８７６は、変換された頂点データをＴＣＳ８７８に与え得、および／または変換された頂点データをバッファ８９６に記憶し得る。
【００９１】
[00111]ＴＣＳ８７８は、ＶＳ８７６からおよび／またはバッファ８９６から頂点データ（たとえば、変換された頂点データ）を受信し得る。ＴＣＳ８７８は、頂点データ（たとえば、変換された頂点データ）の基底（basis）を変換し得る。たとえば、ＴＣＳ８７８は、（たとえば、三角形などの多角形を効率的に再分割するために）頂点データの基底をテッセレーションのための基底に変換し得る。ＴＣＳ８７８は情報をキャッシュ８０１に記憶し得る。たとえば、ＴＣＳ８７８は、ＴＣＳ８７８によって実行された基底変換を示す基底インジケータを記憶し得る。基底変換された頂点データは、ＴＥＳＳ８８０に与えられ得る。
【００９２】
[00112]ＴＥＳＳ８８０は、頂点データ（たとえば、基底変換された頂点データ）をテッセレーションし得る。たとえば、ＴＥＳＳ８８０は、頂点データに基づいて、より多くの頂点を生成し得る（たとえば、三角形をより多くの三角形に再分割し得る）。ＴＥＳＳ８８０は、ＬＯＤパラメータに基づいて動作し得る。ＬＯＤパラメータは、ＬＯＤを指定し得、および／またはＴＥＳＳ８８０が実行するためのテッセレーションの程度を示し得る。テッセレーションされた頂点データは、ＴＥＳ８８２に与えられ得る。
【００９３】
[00113]ＴＥＳ８８２は、頂点データ（たとえば、テッセレーションされた頂点データ）の基底を変換し得る。たとえば、ＴＥＳ８８２は、頂点データの基底を、ＴＣＳ８７８によって適用された基底変換よりも前の基底に変換して戻し得る。いくつかの構成では、ＴＥＳ８８２は、頂点データの基底を変換する（たとえば、逆変換する）ために、キャッシュ８０１から基底インジケータを読み取り得る。ＴＥＳ８８２は、頂点データ（たとえば、逆基底変換された頂点データ）をＧＳ８８４に与え、および／または頂点データをバッファ８９６に記憶し得る。
【００９４】
[00114]ＧＳ８８４は、１つまたは複数の動作を頂点データ（たとえば、逆基底変換された頂点データ）に対して実行し得る。たとえば、ＧＳ８８４は、頂点データに基づいて追加のジオメトリを生成し得る。ＧＳ８８４は、（たとえば、追加のジオメトリをもつ）頂点データをラスタライザ８８６および／またはキャッシュ８０１に与え得る。
【００９５】
[00115]ラスタライザ８８６は、ＧＳ８８４および／またはキャッシュ８０１から頂点データを受信し得る。ラスタライザ８８６は頂点データをラスタライズし得る。たとえば、ラスタライザは、頂点データをピクセルデータにコンバートし得る。ピクセルデータはＦＳ８９０に与えられ得る。
【００９６】
[00116]ＦＳ８９０は、フラグメントシェーディングまたはピクセルシェーディングをピクセルデータに対して実行し得る。たとえば、ＦＳ８９０は、１つまたは複数のピクセルの１つまたは複数の属性（たとえば、色、輝度、透過性など）を決定し得る。いくつかの構成では、ＦＳ８９０は隠れ面削除（ＨＳＲ：hidden surface removal）を実行し得る。ＦＳ８９０は合成／分解（Ｃ／Ｄ）ブロック８９２を含み得る。代替的に、Ｃ／Ｄ８９２は、ＦＳ８９０とは別個であり、および／またはＦＳ８９０に結合され得る。
【００９７】
[00117]いくつかの構成では、Ｃ／Ｄ８９２は、テクスチャリングおよび／またはブレンディングなどの動作を実行し得る。たとえば、Ｃ／Ｄ８９２は、最終のピクセル値を決定するために、複数のレイヤをブレンドし得る。いくつかの構成では、Ｃ／Ｄ８９２は、異なるフレームバッファを組み合わせ得る（たとえば、複数の画像をピクセルごとに一緒にブレンドし得る）。Ｃ／Ｄ８９２は、（ＶＬＩＷ回路８６８上に）オンチップで、グラフィックスパイプライン８７０で、オンチップメモリ８０３で、および／またはＶＬＩＷ回路８６８とは別個に実装され得ることに留意されたい。Ｃ／Ｄ８９２は、いくつかの構成では、システムメモリ８０５で実装されないことがある。Ｃ／Ｄ８９２は、画像データがシステムメモリ８０５におよび／または別のストリームアウト（たとえば、ＨＤＭＩストリームアウト）に書き出される前に、画像データに対して動作し得る。ＦＳ８９０（および／またはＣ／Ｄ８９２）はＣ／Ｄメモリ８９８にアクセスし得る。たとえば、システムメモリ８０５は、テクスチャデータおよび／または無順序アクセスビューデータ８１１をキャッシュ８０１に与え得る。ＦＳ８９０は、Ｃ／Ｄメモリおよび／またはキャッシュ８０１にアクセスすることによって、１つまたは複数の動作を実行し得る。ＦＳ８９０は、ピクセルデータ（たとえば、処理されたピクセルデータ）をＲＯＰ８９４に与え得る。
【００９８】
[00118]ＲＯＰ８９４は、ピクセルデータ（たとえば、処理されたピクセルデータ）を出力し得る。たとえば、ＲＯＰ８９４は、レンダリングされたターゲットデータ８１３としてピクセルデータをＣ／Ｄメモリ８９８および／またはキャッシュ８０１を介してシステムメモリ８０５に出力し得る。レンダリングされたターゲットデータ８１３は、提示のために与えられ（たとえば、出力され）得る。たとえば、レンダリングされたターゲットデータ８１３は、提示のためにディスプレイに送られ得る。
【００９９】
[00119]本明細書で開示されるシステムおよび方法がなければ、図８に関して説明される動作は、データセット（たとえば、頂点、ピクセルおよび／または画像データのセット）に関して実行され得、ここで、各データセットは、レンダリングのための１つまたは複数の確立されたパラメータ（たとえば、（１つまたは複数の）レンダリングパラメータ）を有し得ることに留意されたい。たとえば、各データセットは、テッセレーション動作のために割り当てられた固定ＬＯＤを有し得る。したがって、ＬＯＤは、データセットのためのレンダリング中に（たとえば、描画呼出し中に）変更されないことがある。これは、たとえば、図６〜図７に関して説明されたように、複数のＬＯＤをレンダリングするための複数のパスを生じ得る。追加または代替として、（オンチップメモリ８０３、バッファ８９６および／またはキャッシュ８０１で実装され得る）フレームバッファは一様であり得る。たとえば、フレームバッファは、一様なデータ（たとえば、同じＬＯＤをもつデータ、同数のピクセルサンプルをもつデータ、同じシェーダサブルーチンからのデータなど）を含み得る。たとえば、バッファのサブセットは、独立して（たとえば、異なるシェーダサブルーチンによって同時に）アクセスされないことがある。たとえば、フレームバッファは、一度にフレームバッファへの１つのデータ書込みのみが発生し得るという意味で、一様であり得る。追加または代替として、フレームバッファは、一度に各データ書込みが単一のシェーダサブルーチンのみからであり得るという意味で、一様であり得る。追加または代替として、フレームバッファは、各データ書込みが、同じＬＯＤをもつおよび／または同数のピクセルサンプルをもつデータのみを含み得るという意味で、一様であり得る。
【０１００】
[00120]図９は、図８に関して説明されたアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図である。特に、図９は電子デバイス９０２を示す。図９に関して説明される電子デバイス９０２は、図１〜図５のうちの１つまたは複数に関して上記で説明された電子デバイス１０２、３０２のうちの１つまたは複数の一例であり得る。電子デバイス９０２は、図１〜図５のうちの１つまたは複数に関して説明された方法、機能、ステップ、動作などのうちの１つまたは複数を実行するように構成され得る。
【０１０１】
[00121]電子デバイス９０２は、ＶＬＩＷ回路９０４（たとえば、ＧＰＵ）とシステムメモリ９１４とを含み得る。ＶＬＩＷ回路９０４は、図１〜図５のうちの１つまたは複数に関して上記で説明されたＶＬＩＷ回路１０４、３０４のうちの１つまたは複数の一例であり得る追加または代替として、システムメモリ９１４は、図１〜図５のうちの１つまたは複数に関して説明されたシステムメモリ１１４、３１４のうちの１つまたは複数の一例であり得る。システムメモリ９１４は、コマンドデータ（Ｃｍｄ）９０７、頂点データ９０９、テクスチャおよび無順序アクセスビューデータ９１１ならびに／またはレンダリングされたターゲットデータ９１３を含み得る。コマンドデータ（Ｃｍｄ）９０７、頂点データ９０９、テクスチャおよび無順序アクセスビューデータ９１１ならびに／またはレンダリングされたターゲットデータ９１３のうちの１つまたは複数は、図８に関して説明された対応するデータと同様であり得る。
【０１０２】
[00122]ＶＬＩＷ回路９０４は、グラフィックスパイプライン９０６とオンチップメモリ９１０とを含み得る。図９に関して説明されるグラフィックスパイプライン９０６は、図１〜図５のうちの１つまたは複数に関して説明されたグラフィックスパイプライン１０６、３０６のうちの１つまたは複数の一例であり得る。追加または代替として、図９に関して説明されるオンチップメモリ９１０は、図１〜図５のうちの１つまたは複数に関して説明されたオンチップメモリ１１０、３１０のうちの１つまたは複数の一例であり得る。
【０１０３】
[00123]オンチップメモリ９１０は、バッファ９９６、キャッシュ９０１および／またはＣ／Ｄメモリ９９８を含み得る。いくつかの構成では、オンチップメモリ９１０、バッファ９９６、キャッシュ９０１および／またはＣ／Ｄメモリ９９８のうちの１つまたは複数は、図８に関して説明された対応する要素と同様であり得る。オンチップメモリ９１０は、図３〜図４のうちの１つまたは複数に関して説明されたように１つまたは複数のフレームバッファを含み得ることに留意されたい。（１つまたは複数の）フレームバッファは、オンチップメモリ９１０、バッファ９９６、キャッシュ９０１および／またはＣ／Ｄメモリ９９８のうちの１つまたは複数中に含まれ得る。追加または代替として、（１つまたは複数の）フレームバッファは、システムメモリ９１４中に含まれ得る。いくつかの構成では、１つまたは複数のフレームバッファは、オンチップメモリ９１０、システムメモリ９１４、またはその両方中に含まれ得る。
【０１０４】
[00124]グラフィックスパイプライン９０６は、ＦＥ９７２、ＶＦ９７４、ＶＳ９７６、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６、ＦＳ９９０およびＲＯＰ９９４のうちの１つまたは複数を含み得る。いくつかの構成では、ＦＥ９７２、ＶＦ９７４、ＶＳ９７６、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６、ＦＳ９９０およびＲＯＰ９９４のうちの１つまたは複数は、図８に関して説明された１つまたは複数の対応する要素の動作のうちの１つまたは複数を実行し得る。
【０１０５】
[00125]図９に示されている構成では、ＶＬＩＷ回路９０４（たとえば、グラフィックスパイプライン９０６）は非同期メモリコントローラ９０８を含み得る。非同期メモリコントローラ９０８は、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６およびＦＳ９９０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得る。完全にまたは部分的に、たとえば、非同期メモリコントローラ９０８ａが、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６および／またはＦＳ９９０で実装され得る。総称的なラベル「９０８」は、非同期メモリコントローラ９０８が、図９に示されている要素９０８ａ〜ｆのいずれかまたはすべてで実装され得ることを示し得る。いくつかの構成では、非同期メモリコントローラ９０８は、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２およびＧＳ９８４のうちの１つまたは複数でのみ実装され得る。たとえば、データは後のステージにフォワーディングされ得るので、非同期メモリコントローラ９０８は、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２および／またはＧＳ９８４中でのみ１つまたは複数のパラメータを非同期的に読み取り得る。
【０１０６】
[00126]図９に関して説明される非同期メモリコントローラ９０８は、図１〜図５のうちの１つまたは複数に関して説明されたメモリコントローラ１０８、３０８のうちの１つまたは複数の一例であり得る。たとえば、非同期メモリコントローラ９０８は、（たとえば、データセットの処理中に）オンチップメモリ９１０および／またはシステムメモリ９１４から１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ）を非同期的に読み取り得る。いくつかの構成では、（１つまたは複数の）更新されたパラメータは、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６およびＦＳ９９０のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６およびＦＳ９９０のうちの１つまたは複数は、データセットが処理されている間、データセットのために最初に確立された処理とは異なるようにデータセットの処理を変更し得る。
【０１０７】
[00127]いくつかの構成では、これは、電子デバイス９０２が単一パスマルチプルＬＯＤレンダリングを実行することを可能にし得る。たとえば、非同期メモリコントローラ９０８は、現在処理および／またはレンダリング（たとえば、テッセレーション）されているデータのセットのために最初に確立された別のＬＯＤパラメータとは異なる、ＬＯＤパラメータを読み取り得る。更新されたＬＯＤパラメータは、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６およびＦＳ９９０のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ９７８、ＴＥＳＳ９８０、ＴＥＳ９８２、ＧＳ９８４、ラスタライザ９８６およびＦＳ９９０のうちの１つまたは複数は、１つまたは複数の異なるパラメータを用いて開始されたデータセットの処理中に、更新されたＬＯＤパラメータに従って、データセットの処理を変更（たとえば、テッセレーションレベルを変更）し得る。
【０１０８】
[00128]ＶＬＩＷ回路９０４（たとえば、グラフィックスパイプライン９０６）は、非一様フレームバッファコントローラ９１２を含み得る。図９に示されているように、非一様フレームバッファコントローラ９１２は、ＦＳ９９０（たとえば、Ｃ／Ｄ９９２）中に含まれ、および／またはそれで実装され得る。非一様フレームバッファコントローラ９１２は、追加または代替として、ＦＳ９９０、Ｃ／Ｄ９９２、グラフィックスパイプライン９０６およびオンチップメモリ９１０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得ることに留意されたい。完全にまたは部分的に、たとえば、非一様フレームバッファコントローラ９１２は、ＦＳ９９０、Ｃ／Ｄ９９２、グラフィックスパイプライン９０６、オンチップメモリ９１０および電子デバイス９０２のうちの１つまたは複数で実装され得る。非一様フレームバッファコントローラ９１２はＣ／Ｄ９９２で実装され得る。場合によっては余分のレイテンシが招かれ得ることに留意されたい。
【０１０９】
[00129]図９に関して説明される非一様フレームバッファコントローラ９１２は、図１〜図５のうちの１つまたは複数に関して説明された非一様フレームバッファコントローラ１１２、３１２のうちの１つまたは複数の一例であり得る。たとえば、非一様フレームバッファコントローラ９１２は、１つまたは複数のフレームバッファの異なるサブセットに動的にアクセスし得る。いくつかの構成では、フレームバッファの異なるサブセットに動的にアクセスすることは、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスすることを含み得る。追加または代替として、フレームバッファの異なるサブセットに動的にアクセスすることは、（たとえば、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに）動的シェーダサブルーチンスワッピングを可能にすることを含み得る。追加または代替として、非一様フレームバッファコントローラ９１２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換するように構成され得る。
【０１１０】
[00130]いくつかの構成では、特定のテクスチャを処理し、ターゲットをレンダリングするために、専用キャッシュが実装され得る。キャッシュは、テクスチャ自体のセットと同じ大きさであり得る。
【０１１１】
[00131]図１０は、超長命令語（ＶＬＩＷ）回路１０６８を含む電子デバイス１０６６の別の例を示すブロック図である。特に、図１０は、グラフィックス処理のためのアーキテクチャの別の例を示す。図１０に関して説明されるアーキテクチャの１つまたは複数の態様は、Ｉｎｔｅｌアーキテクチャの態様と同様に機能し得る。このアーキテクチャは、即時モードレンダリング（ＩＭＲ）ならびに共有物理および仮想メモリを用いたユニファイドメモリアーキテクチャ（ＵＭＡ：unified memory architecture）を与え得る。このアーキテクチャは、ゼロコピー共有ならびにポインタ共有を可能にし得る。
【０１１２】
[00132]電子デバイス１０６６はプロセッサ１０１５（たとえば、ＣＰＵ）を含み得る。この例では、プロセッサ１０１５はＶＬＩＷ回路１０６８を含み得る。たとえば、ＶＬＩＷ回路１０６８はプロセッサ１０１５に組み込まれ得る。
【０１１３】
[00133]電子デバイス１０６６は、ＶＬＩＷ回路１０６８（たとえば、ＧＰＵ）とシステムメモリ１００５とを含み得る。ＶＬＩＷ回路１０６８は、グラフィックスパイプライン１０７０とオンチップメモリ１００３とを含み得る。グラフィックスパイプライン１０７０は、コマンドストリーマ（ＣＳ）１０１７と、頂点フェッチャ（ＶＦ）１０７４と、頂点シェーダ（ＶＳ）１０７６と、ハルシェーダ（ＨＳ）１０７８と、テッセレータ（ＴＥＳＳ）１０８０（たとえば、テッセレーションエンジン）と、ドメインシェーダ（ＤＳ）１０８２と、ジオメトリシェーダ（ＧＳ）１０８４と、ストリームアウト（ＳＯＬ）１０１９と、クリッパー（Ｃｌｉｐ）１０２１と、ラスタライザ（Ｒａｓｔ）１０８６と、フラグメントシェーダ（ＦＳ）１０９０とのうちの１つまたは複数を含み得る。要素ラベルのうちの多くが、便宜上省略されている。オンチップメモリ１００３は、１つまたは複数のバッファ、１つまたは複数のキャッシュなどを含み得る。いくつかの構成では、オンチップメモリ１００３は、テクスチャバッファ、フレームバッファ、および／またはオンチップメモリ１１１０の別のブロックを含み得る。システムメモリ１００５は、コマンドデータ、頂点データ（たとえば、ジオメトリデータ）および／またはテクスチャデータを含み得る。
【０１１４】
[00134]シーンをレンダリングするために、電子デバイス１０６６は、システムメモリからコマンドデータと頂点データとを取得し得る。たとえば、ＣＳ１０１７は、システムメモリ１００５から（１つまたは複数の）レンダリングコマンドを受信し、および／または実行し得る。頂点データは、１つまたは複数の点（たとえば、頂点）、線および／または多角形を示し得る。頂点データ１００９は、シーンおよび／またはシーン中の１つまたは複数のオブジェクトを表し得る。
【０１１５】
[00135]ＶＦ１０７４は、システムメモリ１００５からＶＬＩＷ回路１０６８（たとえば、グラフィックスパイプライン１０７０）に頂点データをフェッチし得る。ＶＦ１０７４は、頂点データをＶＳ１０７６に与え得、および／または頂点データをキャッシュ１００１に記憶し得る。
【０１１６】
[00136]ＶＳ１０７６は、頂点データを異なる空間に変換し得る。たとえば、ＶＳ１０７６は、頂点データを３次元（３Ｄ）空間から２次元（２Ｄ）空間に変換し得る。ＶＳ１０７６は、変換された頂点データをＨＳ１０７８に与え得、および／または変換された頂点データをキャッシュ１００１に記憶し得る。
【０１１７】
[00137]ＨＳ１０７８は、ＶＳ１０７６からおよび／またはキャッシュ１００１から頂点データ（たとえば、変換された頂点データ）を受信し得る。ＨＳ１０７８は、頂点データ（たとえば、変換された頂点データ）の基底を変換し得る。たとえば、ＨＳ１０７８は、（たとえば、三角形などの多角形を効率的に再分割するために）頂点データの基底をテッセレーションのための基底に変換し得る。ＨＳ１０７８は情報をキャッシュ１００１に記憶し得る。たとえば、ＨＳ１０７８は、ＨＳ１０７８によって実行された基底変換を示す基底インジケータを記憶し得る。基底変換された頂点データは、ＴＥＳＳ１０８０に与えられ得る。
【０１１８】
[00138]ＴＥＳＳ１０８０は、頂点データ（たとえば、基底変換された頂点データ）をテッセレーションし得る。たとえば、ＴＥＳＳ１０８０は、頂点データに基づいて、より多くの頂点を生成し得る（たとえば、三角形をより多くの三角形に再分割し得る）。ＴＥＳＳ１０８０は、ＬＯＤパラメータに基づいて動作し得る。ＬＯＤパラメータは、ＬＯＤを指定し得、および／またはＴＥＳＳ１０８０が実行するためのテッセレーションの程度を示し得る。テッセレーションされた頂点データは、ＤＳ１０８２に与えられ得る。
【０１１９】
[00139]ＤＳ１０８２は、頂点データ（たとえば、テッセレーションされた頂点データ）の基底を変換し得る。たとえば、ＤＳ１０８２は、頂点データの基底を、ＨＳ１０７８によって適用された基底変換よりも前の基底に変換して戻し得る。いくつかの構成では、ＤＳ１０８２は、頂点データの基底を変換する（たとえば、逆変換する）ために、キャッシュ１００１から基底インジケータを読み取り得る。他の構成では、ＤＳ１０８２は、ＨＳ１０７８に直接結合され得、頂点データの基底を変換する（たとえば、逆変換する）ために、ＨＳ１０７８から基底インジケータを受信し得る。ＤＳ１０８２は、頂点データ（たとえば、逆基底変換された頂点データ）をＧＳ１０８４に与え、および／または頂点データをキャッシュ１００１に記憶し得る。
【０１２０】
[00140]ＧＳ１０８４は、１つまたは複数の動作を頂点データ（たとえば、逆基底変換された頂点データ）に対して実行し得る。たとえば、ＧＳ１０８４は、頂点データに基づいて追加のジオメトリを生成し得る。ＧＳ１０８４は、（たとえば、追加のジオメトリをもつ）頂点データをＳＯＬ１０１９に与え得る。
【０１２１】
[00141]ＳＯＬ１０１９は、（たとえば、追加のジオメトリをもつ）頂点データをシステムメモリ１００５にストリーミングし、および／または頂点データをシステムメモリ１００５に記憶し得る。ＳＯＬ１０１９は、（たとえば、追加のジオメトリをもつ）頂点データをクリッパー１０２１に与え得る。
【０１２２】
[00142]クリッパー１０２１は、（たとえば、追加のジオメトリをもつ）頂点データの一部を廃棄し得る。たとえば、クリッパー１０２１は、ビュー（たとえば、視野角錐体（viewing frustum））の外部にある頂点データを廃棄し得る。クリッパー１０２１は、クリッピングされた頂点データをラスタライザ１０８６および／またはキャッシュ１００１に与え得る。
【０１２３】
[00143]ラスタライザ１０８６は、クリッパー１０２１および／またはキャッシュ１００１からクリッピングされた頂点データを受信し得る。ラスタライザ１０８６は頂点データをラスタライズし得る。たとえば、ラスタライザは、頂点データをピクセルデータにコンバートし得る。ピクセルデータは、ＦＳ１０９０におよび／またはキャッシュ１００１に与えられ得る。
【０１２４】
[00144]ＦＳ１０９０は、フラグメントシェーディングまたはピクセルシェーディングをピクセルデータに対して実行し得る。たとえば、ＦＳ１０９０は、１つまたは複数のピクセルの１つまたは複数の属性（たとえば、色、輝度、透過性など）を決定し得る。いくつかの構成では、ＦＳ１０９０は隠れ面削除（ＨＳＲ）を実行し得る。いくつかの構成では、ＦＳ１０９０は合成／分解（Ｃ／Ｄ）ブロック１０９２を含み得る。代替的に、Ｃ／Ｄ１０９２は、図１０に示されているように、ＦＳ１０９０とは別個であり、および／またＦＳ１０９０に結合され得る。
【０１２５】
[00145]いくつかの構成では、Ｃ／Ｄ１０９２は、テクスチャリングおよび／またはブレンディングなどの動作を実行し得る。たとえば、Ｃ／Ｄ１０９２は、最終のピクセル値を決定するために、複数のレイヤをブレンドし得る。いくつかの構成では、Ｃ／Ｄ１０９２は、異なるフレームバッファを組み合わせ得る（たとえば、複数の画像をピクセルごとに一緒にブレンドし得る）。Ｃ／Ｄ１０９２は、（ＶＬＩＷ回路１０６８上に）オンチップで、グラフィックスパイプライン１０７０で、オンチップメモリ１００３で、および／またはＶＬＩＷ回路１０６８とは別個に実装され得ることに留意されたい。Ｃ／Ｄ１０９２は、画像データがシステムメモリ１００５におよび／または別のストリームアウト（たとえば、ＨＤＭＩストリームアウト）に書き出される前に、画像データに対して動作し得る。いくつかの構成では、システムメモリ１００５は、ＦＳ１０９０および／またはＣ／Ｄ１０９２によってアクセスされ得る、キャッシュ１００１にテクスチャデータを与え得る。ＦＳ１０９０は、キャッシュ１００１にアクセスすることによって、１つまたは複数の動作を実行し得る。ＦＳ１０９０は、ピクセルデータ（たとえば、処理されたピクセルデータ）をＣ／Ｄ１０９２に与え得、Ｃ／Ｄ１０９２は合成／分解を実行し、ピクセルデータをキャッシュ１００１に与え得る。
【０１２６】
[00146]ピクセルデータは、キャッシュ１００１を介してシステムメモリ１００５に出力され得る。ピクセルデータは、提示のために与えられ（たとえば、出力され）得る。たとえば、ピクセルデータは、提示のためのディスプレイに送られ得る。
【０１２７】
[00147]本明細書で開示されるシステムおよび方法がなければ、図１０に関して説明される動作は、図８に関して説明されたようにデータセット（たとえば、頂点、ピクセルおよび／または画像データのセット）に関して実行され得ることに留意されたい。
【０１２８】
[00148]図１１は、図１０に関して説明されたアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の別の例を示すブロック図である。特に、図１１は電子デバイス１１０２を示す。図１１に関して説明される電子デバイス１１０２は、図１〜図５のうちの１つまたは複数に関して上記で説明された電子デバイス１０２、３０２のうちの１つまたは複数の一例であり得る。電子デバイス１１０２は、図１〜図５のうちの１つまたは複数に関して説明された方法、機能、ステップ、動作などのうちの１つまたは複数を実行するように構成され得る。
【０１２９】
[00149]電子デバイス１１０２はプロセッサ１１２４（たとえば、ＣＰＵ）を含み得る。プロセッサ１１２４は、図３に関して説明されたプロセッサ３２４の一例であり得る。この例では、プロセッサ１０１５はＶＬＩＷ回路１１０４を含み得る。たとえば、ＶＬＩＷ回路１１０４はプロセッサ１１２４に組み込まれ得る。
【０１３０】
[00150]電子デバイス１１０２は、ＶＬＩＷ回路１１０４（たとえば、ＧＰＵ）とシステムメモリ１１１４とを含み得る。ＶＬＩＷ回路１１０４は、図１〜図５のうちの１つまたは複数に関して上記で説明されたＶＬＩＷ回路１０４、３０４のうちの１つまたは複数の一例であり得る追加または代替として、システムメモリ１１１４は、図１〜図５のうちの１つまたは複数に関して説明されたシステムメモリ１１４、３１４のうちの１つまたは複数の一例であり得る。システムメモリ１１１４は、コマンドデータ、頂点データ（たとえば、ジオメトリデータ）、テクスチャデータおよび／またはレンダリングされたターゲットデータ（たとえば、ピクセルデータ）を含み得る。
【０１３１】
[00151]ＶＬＩＷ回路１１０４は、グラフィックスパイプライン１１０６とオンチップメモリ１１１０とを含み得る。図１１に関して説明されるグラフィックスパイプライン１１０６は、図１〜図５のうちの１つまたは複数に関して説明されたグラフィックスパイプライン１０６、３０６のうちの１つまたは複数の一例であり得る。追加または代替として、図１１に関して説明されるオンチップメモリ１１１０は、図１〜図５のうちの１つまたは複数に関して説明されたオンチップメモリ１１０、３１０のうちの１つまたは複数の一例であり得る。
【０１３２】
[00152]オンチップメモリ１１１０は、１つまたは複数のフレームバッファ、１つまたは複数のキャッシュ１１０１などを含み得る。たとえば、レベル１（Ｌ１）および／またはレベル２（Ｌ２）キャッシュが、オンチップストレージとして利用され得る。いくつかの構成では、パイプライン予測ハードウェアが無効にされ得る。オンチップメモリ１１１０は、図３〜図４のうちの１つまたは複数に関して説明されたように１つまたは複数のフレームバッファを含み得ることに留意されたい。（１つまたは複数の）フレームバッファは、オンチップメモリ１１１０、キャッシュ１１０１などのうちの１つまたは複数中に含まれ得る。追加または代替として、（１つまたは複数の）フレームバッファは、システムメモリ１１１４中に含まれ得る。いくつかの構成では、１つまたは複数のフレームバッファは、オンチップメモリ１１１０、システムメモリ１１１４、またはその両方中に含まれ得る。
【０１３３】
[00153]グラフィックスパイプライン１１０６は、ＣＳ１１１７、ＶＦ１１７４、ＶＳ１１７６、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ＳＯＬ１１１９、クリッパー１１２１、ラスタライザ１１８６、ＦＳ１１９０およびＣ／Ｄ１１９２のうちの１つまたは複数を含み得る。いくつかの構成では、ＣＳ１１１７、ＶＦ１１７４、ＶＳ１１７６、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ＳＯＬ１１１９、クリッパー１１２１、ラスタライザ１１８６、ＦＳ１１９０およびＣ／Ｄ１１９２のうちの１つまたは複数は、図１０に関して説明された１つまたは複数の対応する要素の動作のうちの１つまたは複数を実行し得る。
【０１３４】
[00154]図１１に示されている構成では、ＶＬＩＷ回路１１０４（たとえば、グラフィックスパイプライン１１０６）は非同期メモリコントローラ１１０８を含み得る。非同期メモリコントローラ１１０８は、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６およびＦＳ１１９０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得る。完全にまたは部分的に、たとえば、非同期メモリコントローラ１１０８ａは、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６および／またはＦＳ１１９０で実装され得る。総称的なラベル「１１０８」は、非同期メモリコントローラ１１０８が、図１１に示されている要素１１０８ａ〜ｆのいずれかまたはすべてで実装され得ることを示し得る。いくつかの構成では、非同期メモリコントローラ１１０８は、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２およびＧＳ１１８４のうちの１つまたは複数でのみ実装され得る。たとえば、データは後のステージにフォワーディングされ得るので、非同期メモリコントローラ１１０８は、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２および／またはＧＳ１１８４中でのみ１つまたは複数のパラメータを非同期的に読み取り得る。
【０１３５】
[00155]図１１に関して説明される非同期メモリコントローラ１１０８は、図１〜図５のうちの１つまたは複数に関して説明されたメモリコントローラ１０８、３０８のうちの１つまたは複数の一例であり得る。たとえば、非同期メモリコントローラ１１０８は、（たとえば、データセットの処理中に）オンチップメモリ１１１０および／またはシステムメモリ１１１４から１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ）を非同期的に読み取り得る。いくつかの構成では、（１つまたは複数の）更新されたパラメータは、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６およびＦＳ１１９０のうちの１つまたは複数に与えられ得る。したがって、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６およびＦＳ１１９０のうちの１つまたは複数は、データセットが処理されている間、データセットのために最初に確立された処理とは異なるようにデータセットの処理を変更し得る。
【０１３６】
[00156]いくつかの構成では、これは、電子デバイス１１０２が単一パスマルチプルＬＯＤレンダリングを実行することを可能にし得る。たとえば、非同期メモリコントローラ１１０８は、現在処理および／またはレンダリング（たとえば、テッセレーション）されているデータのセットのために最初に確立された別のＬＯＤパラメータとは異なる、ＬＯＤパラメータを読み取り得る。更新されたＬＯＤパラメータは、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６およびＦＳ１１９０のうちの１つまたは複数に与えられ得る。したがって、ＨＳ１１７８、ＴＥＳＳ１１８０、ＤＳ１１８２、ＧＳ１１８４、ラスタライザ１１８６およびＦＳ１１９０のうちの１つまたは複数は、１つまたは複数の異なるパラメータを用いて開始されたデータセットの処理中に、更新されたＬＯＤパラメータに従って、データセットの処理を変更（たとえば、テッセレーションレベルを変更）し得る。
【０１３７】
[00157]ＶＬＩＷ回路１１０４（たとえば、グラフィックスパイプライン１１０６）は、非一様フレームバッファコントローラ１１１２を含み得る。図１１に示されているように、非一様フレームバッファコントローラ１１１２は、Ｃ／Ｄ１１９２中に含まれ、および／またはそれで実装され得る。非一様フレームバッファコントローラ１１１２は、追加または代替として、ＦＳ１１９０、Ｃ／Ｄ１１９２、グラフィックスパイプライン１１０６およびオンチップメモリ１１１０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得ることに留意されたい。完全にまたは部分的に、たとえば、非一様フレームバッファコントローラ１１１２は、ＦＳ１１９０、Ｃ／Ｄ１１９２、グラフィックスパイプライン１１０６、オンチップメモリ１１１０および電子デバイス１１０２のうちの１つまたは複数で実装され得る。
【０１３８】
[00158]図１１に関して説明される非一様フレームバッファコントローラ１１１２は、図１〜図５のうちの１つまたは複数に関して説明された非一様フレームバッファコントローラ１１２、３１２のうちの１つまたは複数の一例であり得る。たとえば、非一様フレームバッファコントローラ１１１２は、１つまたは複数のフレームバッファの異なるサブセットに動的にアクセスし得る。いくつかの構成では、フレームバッファの異なるサブセットに動的にアクセスすることは、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスすることを含み得る。追加または代替として、フレームバッファの異なるサブセットに動的にアクセスすることは、（たとえば、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに）動的シェーダサブルーチンスワッピングを可能にすることを含み得る。追加または代替として、非一様フレームバッファコントローラ１１１２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換するように構成され得る。いくつかの構成では、図１１に関して説明された電子デバイス１１０２は、共有メモリおよび／または適応マルチ周波数シェーディングを使用して非同期適応アンチエイリアシングを実行するように実装され得ることに留意されたい。
【０１３９】
[00159]図１２は、超長命令語（ＶＬＩＷ）回路１２６８を含む電子デバイス１２６６の別の例を示すブロック図である。特に、図１２は、グラフィックス処理のためのアーキテクチャの一例を示す。図１２に関して説明されるアーキテクチャの１つまたは複数の態様は、Ｉｍａｇｉｎｅ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（たとえば、ＰｏｗｅｒＶＲグラフィックス）アーキテクチャの態様と同様に機能し得る。このアーキテクチャは、タイルベース遅延レンダリング（ＴＢＤＲ：Tile-Based Deferred Rendering）を与え得るタイルアーキテクチャ（tiled architecture）である。不透明ジオメトリは、（たとえば、キャッシングの代わりに）タイルに分類され得る。
【０１４０】
[00160]電子デバイス１２６６は、ＶＬＩＷ回路１２６８（たとえば、ＧＰＵ）とシステムメモリ１２０５（たとえば、ＤＲＡＭ）とを含み得る。ＶＬＩＷ回路１２６８は、グラフィックスパイプライン１２７０とオンチップメモリ１２０３とを含み得る。グラフィックスパイプライン１２７０は、頂点プロセッサ（ＶＰ）１２７４と、頂点シェーダ（ＶＳ）１２７６と、テッセレーション制御シェーダ（ＴＣＳ）１２７８と、テッセレータ（ＴＥＳＳ）１２８０（たとえば、テッセレーションエンジン）と、テッセレーション評価シェーダ（ＴＥＳ）１２８２と、ジオメトリシェーダ（ＧＳ）１２８４と、タイラ１２２３と、ラスタライザ（Ｒａｓｔ）１２８６と、フラグメントシェーダ（ＦＳ）１２９０とのうちの１つまたは複数を含み得る。要素ラベルのうちの多くが、便宜上省略されている。オンチップメモリ１２０３は、深度バッファ１２３７と色バッファ１２３９とを含み得る。システムメモリ１２０５は、ジオメトリデータ１２０９と、パラメータバッファ１２３５と、テクスチャデータ１２１１と、フレームバッファ１２４１とを含み得る。ジオメトリデータ１２０９は、１つまたは複数の点（たとえば、頂点）、線および／または多角形を示し得る。ジオメトリデータ１２０９は、シーンおよび／またはシーン中の１つまたは複数のオブジェクトを表し得る。
【０１４１】
[00161]ＶＰ１２７４は、システムメモリ１２０５からＶＬＩＷ回路１２６８（たとえば、グラフィックパイプライン１２７０）にジオメトリデータをフェッチし得る。ＶＰ１２７４は、ジオメトリデータをＶＳ１２７６に与え得る。
【０１４２】
[00162]ＶＳ１２７６は、ジオメトリデータを異なる空間に変換（投影）し得る。たとえば、ＶＳ１２７６は、ジオメトリデータを３次元（３Ｄ）空間から２次元（２Ｄ）空間に変換し得る。いくつかの構成では、ＶＳ１２７６は、クリッピング、投影および／またはカリングを実行し得る。たとえば、ＶＳ１２７６は、視野角錐体の外部にあるジオメトリデータをクリップアウトし得る。ＶＳ１２７６は、ジオメトリデータを３Ｄ空間から２Ｄ空間に投影し得る。ＶＳ１２７６はまた、ジオメトリデータの一部をカリングし得る。たとえば、遮られたジオメトリ（たとえば、他のジオメトリによって阻止されるので、閲覧可能でないジオメトリ）に対応するジオメトリデータが、削除され得る。ＶＳ１２７６は、変換されたジオメトリデータをＴＣＳ１２７８に与え得る。
【０１４３】
[00163]ＴＣＳ１２７８は、ＶＳ１２７６からおよび／またはバッファ１２９６からジオメトリデータ（たとえば、変換されたジオメトリデータ）を受信し得る。ＴＣＳ１２７８は、ジオメトリデータ（たとえば、変換されたジオメトリデータ）の基底を変換し得る。たとえば、ＴＣＳ１２７８は、（たとえば、三角形などの多角形を効率的に再分割するために）ジオメトリデータの基底をテッセレーションのための基底に変換し得る。たとえば、ＴＣＳ１２７８は、ＴＣＳ１２７８によって実行された基底変換を示す基底インジケータを生成し得る。基底変換されたジオメトリデータは、ＴＥＳＳ１２８０に与えられ得る。
【０１４４】
[00164]ＴＥＳＳ１２８０は、ジオメトリデータ（たとえば、基底変換されたジオメトリデータ）をテッセレーションし得る。たとえば、ＴＥＳＳ１２８０は、ジオメトリデータに基づいて、より多くのジオメトリデータ（たとえば、頂点）を生成し得る（たとえば、三角形をより多くの三角形に再分割し得る）。ＴＥＳＳ１２８０は、ＬＯＤパラメータに基づいて動作し得る。ＬＯＤパラメータは、ＬＯＤを指定し得、および／またはＴＥＳＳ１２８０が実行するためのテッセレーションの程度を示し得る。テッセレーションされたジオメトリデータは、ＴＥＳ１２８２に与えられ得る。
【０１４５】
[00165]ＴＥＳ１２８２は、ジオメトリデータ（たとえば、テッセレーションされたジオメトリデータ）の基底を変換し得る。たとえば、ＴＥＳ１２８２は、ジオメトリデータの基底を、ＴＣＳ１２７８によって適用された基底変換よりも前の基底に変換して戻し得る。いくつかの構成では、ＴＥＳ１２８２は、ジオメトリデータの基底を変換する（たとえば、逆変換する）ために、ＴＣＳ１２７８および／またはメモリ（たとえば、オンチップメモリ１２０３および／またはシステムメモリ１２０５）から基底インジケータを取得し得る。ＴＥＳ１２８２は、ジオメトリデータ（たとえば、逆基底変換されたジオメトリデータ）をＧＳ１２８４に与え得る。
【０１４６】
[00166]ＧＳ１２８４は、１つまたは複数の動作をジオメトリデータ（たとえば、逆基底変換されたジオメトリデータ）に対して実行し得る。たとえば、ＧＳ１２８４は、ジオメトリデータに基づいて追加のジオメトリを生成し得る。ＧＳ１２８４は、（たとえば、追加のジオメトリをもつ）ジオメトリデータをタイラ１２２３に与え得る。
【０１４７】
[00167]タイラ１２２３は、（たとえば、追加のジオメトリをもつ）ジオメトリデータをタイルにスプリットし得る。たとえば、タイラ１２２３は、ジオメトリデータをジオメトリデータのより小さいグループに分割し得る。タイルは、連続するジオメトリデータを含み得る。タイラ１２２３は、タイルをパラメータバッファ１２３５に与え得る。
【０１４８】
[00168]パラメータバッファ１２３５はタイルを記憶し得る。たとえば、パラメータバッファ１２３５は、プリミティブ（たとえば、ジオメトリデータ、頂点、線、多角形など）のリストを記憶し得る。図１２で説明されるタイルアーキテクチャでは、タイル処理は、システムメモリアクセスの空間局所性を活用し得る。たとえば、タイルに対して局所的である動作は、比較的「安価」であり得る（たとえば、ごくわずかな処理、電力、メモリおよび／または時間リソースを利用し得る）。いくつかの構成では、ＶＬＩＷ回路１２６８は、ジオメトリデータをテッセレーションし、それらのジオメトリデータをタイリングのためにパラメータバッファ１２３５に送り出し得る。ジオメトリデータ（たとえば、タイリングされたジオメトリデータ、プリミティブなど）は、ラスタライザ１２８６に与えられ得る。パラメータバッファ１２３５に記憶されたパラメータは、（１つまたは複数の）レンダリングパラメータ（たとえば、（１つまたは複数の）ＬＯＤパラメータ）を含み得ることに留意されたい。
【０１４９】
[00169]ラスタライザ１２８６は、パラメータバッファ１２３５からジオメトリデータ（たとえば、タイリングされたジオメトリデータ、プリミティブなど）を受信し得る。ラスタライザ１２８６はジオメトリデータをラスタライズし得る。たとえば、ラスタライザは、ジオメトリデータをピクセルデータにコンバートし得る。ピクセルデータはＦＳ１２９０に与えられ得る。
【０１５０】
[00170]ＦＳ１２９０は、フラグメントシェーディングまたはピクセルシェーディングをピクセルデータに対して実行し得る。たとえば、ＦＳ１２９０は、１つまたは複数のピクセルの１つまたは複数の属性（たとえば、色、輝度、透過性など）を決定し得る。いくつかの構成では、ＦＳ１２９０は、隠れ面削除（ＨＳＲ）および深度テスト（ＤＴ）ブロック１２２５と、タグバッファ（ＴＢ）１２２７と、テクスチャおよびシェード（Ｔ＆Ｓ）ブロック１２２９と、アルファテスト（ＡＴ）ブロック１２３１と、アルファブレンド（ＡＢ）ブロック１２３３とのうちの１つまたは複数を含み得る。ＨＳＲ＆ＤＴ１２２５は、深度テストと隠れ面削除とを実行し得る。たとえば、深度テストは、ピクセルに対応する深度を決定することを含み得る。ＨＳＲ＆ＤＴは、各ピクセルについて深度を決定し、深度インジケータを深度バッファ１２３７に記憶し得る。隠れ面削除を実行することは、他のピクセルよりも大きい深度における（たとえば、他のピクセルによって遮られた）ピクセルを廃棄することを含み得る。いくつかの手法では、タグバッファ（ＴＢ）１２２７は、より速い実行のためにピクセルを随意に再グループ化し得る。Ｔ＆Ｓ１２２９は、システムメモリからテクスチャデータ１２１１を取得し得る。ＡＴ１２３１は、カスタム「ステンシル（stencil）」テスト（たとえば、別の深度テスト）を実行し得る。いくつかの構成では、ＡＴ１２３１は、ＨＳＲ＆ＤＴ１２２５を更新し得る。ＡＢ１２３３は、ピクセル（たとえば、１つまたは複数のレイヤおよび／またはフレームバッファからのピクセル）をブレンドし得る。たとえば、ＡＢ１２３３は、合成および／または分解動作を実行し得、ここで、アルファ値を使用して２つの画像がブレンドされ得る。
【０１５１】
[00171]ＡＢ１２３３は、ピクセルデータを色バッファ１２３９に与え得る。図１２に示されているように、色および深度バッファデータは、オンチップで記憶され得る。色バッファ１２３９は、ピクセルデータをフレームバッファ１２４１に与え得る。フレームバッファ１２４１はピクセルデータを出力し得る。ピクセルデータは、提示のために与えられ（たとえば、出力され）得る。たとえば、ピクセルデータは、提示のためのディスプレイに送られ得る。
【０１５２】
[00172]本明細書で開示されるシステムおよび方法がなければ、図１２に関して説明される動作は、図８に関して説明されたようにデータセット（たとえば、頂点、ピクセルおよび／または画像データのセット）に関して実行され得ることに留意されたい。
【０１５３】
[00173]図１３は、図１２に関して説明されたアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図である。このアーキテクチャはＴＢＤＲを与え得る。特に、図１３は電子デバイス１３０２を示す。図１３に関して説明される電子デバイス１３０２は、図１〜図５のうちの１つまたは複数に関して上記で説明された電子デバイス１０２、３０２のうちの１つまたは複数の一例であり得る。電子デバイス１３０２は、図１〜図５のうちの１つまたは複数に関して説明された方法、機能、ステップ、動作などのうちの１つまたは複数を実行するように構成され得る。
【０１５４】
[00174]電子デバイス１３０２は、ＶＬＩＷ回路１３０４（たとえば、ＧＰＵ）とシステムメモリ１３１４とを含み得る。ＶＬＩＷ回路１３０４は、図１〜図５のうちの１つまたは複数に関して上記で説明されたＶＬＩＷ回路１０４、３０４のうちの１つまたは複数の一例であり得る追加または代替として、システムメモリ１３１４は、図１〜図５のうちの１つまたは複数に関して説明されたシステムメモリ１１４、３１４のうちの１つまたは複数の一例であり得る。システムメモリ１３１４は、ジオメトリデータ１３０９、パラメータバッファ１３３５、テクスチャデータ１３１１および／またはフレームバッファ１３４１を含み得る。ジオメトリデータ１３０９、パラメータバッファ１３３５、テクスチャデータ１３１１および／またはフレームバッファ１３４１のうちの１つまたは複数は、図１２に関して説明された対応する要素と同様であり得る。システムメモリ１３１４は、図３〜図４のうちの１つまたは複数に関して説明されたように１つまたは複数のフレームバッファを含み得ることに留意されたい。たとえば、フレームバッファ１３４１は、図３〜図４のうちの１つまたは複数に関して説明されたフレームバッファのうちの１つまたは複数の一例であり得る。いくつかの構成では、１つまたは複数のフレームバッファは、オンチップメモリ１３１０、システムメモリ１３１４、またはその両方中に含まれ得る。
【０１５５】
[00175]ＶＬＩＷ回路１３０４は、グラフィックスパイプライン１３０６とオンチップメモリ１３１０とを含み得る。図１３に関して説明されるグラフィックスパイプライン１３０６は、図１〜図５のうちの１つまたは複数に関して説明されたグラフィックスパイプライン１０６、３０６のうちの１つまたは複数の一例であり得る。追加または代替として、図１３に関して説明されるオンチップメモリ１３１０は、図１〜図５のうちの１つまたは複数に関して説明されたオンチップメモリ１１０、３１０のうちの１つまたは複数の一例であり得る。
【０１５６】
[00176]オンチップメモリ１３１０は、キャッシュ１３０１ならびに／または深度および色バッファ１３４３を含み得る。いくつかの構成では、オンチップメモリ１３１０、キャッシュ１３０１ならびに／または深度色バッファ１３４３のうちの１つまたは複数は、図１２に関して説明された対応する要素と同様であり得る。
【０１５７】
[00177]グラフィックスパイプライン１３０６は、ＶＰ１３７４、ＶＳ１３７６、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、タイラ１３２３、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数を含み得る。いくつかの構成では、ＶＰ１３７４、ＶＳ１３７６、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、タイラ１３２３、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数は、図１２に関して説明された１つまたは複数の対応する要素の動作のうちの１つまたは複数を実行し得る。ＦＳ１３９０は、いくつかの構成では、図１２に関して説明されたようにＨＳＲ＆ＤＴ、ＴＢ、Ｔ＆Ｓ、ＡＴおよびＡＢのうちの１つまたは複数を含み得ることに留意されたい。
【０１５８】
[00178]図１３に示されている構成では、ＶＬＩＷ回路１３０４（たとえば、グラフィックスパイプライン１３０６）は非同期メモリコントローラ１３０８を含み得る。非同期メモリコントローラ１３０８は、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得る。完全にまたは部分的に、たとえば、非同期メモリコントローラ１３０８は、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６および／またはＦＳ１３９０で実装され得る。総称的なラベル「１３０８」は、非同期メモリコントローラ１３０８が、図１３に示されている要素１３０８ａ〜ｆのいずれかまたはすべてで実装され得ることを示し得る。いくつかの構成では、非同期メモリコントローラ１３０８は、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２およびＧＳ１３８４のうちの１つまたは複数でのみ実装され得る。たとえば、データは後のステージにフォワーディングされ得るので、非同期メモリコントローラ１３０８は、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２および／またはＧＳ１３８４中でのみ１つまたは複数のパラメータを非同期的に読み取り得る。
【０１５９】
[00179]図１３に関して説明される非同期メモリコントローラ１３０８は、図１〜図５のうちの１つまたは複数に関して説明されたメモリコントローラ１０８、３０８のうちの１つまたは複数の一例であり得る。たとえば、非同期メモリコントローラ１３０８は、（たとえば、データセットの処理中に）システムメモリ１３１４から１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ）を非同期的に読み取り得る。いくつかの構成では、（１つまたは複数の）更新されたパラメータは、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数は、データセットが処理されている間、データセットのために最初に確立された処理とは異なるようにデータセットの処理を変更し得る。
【０１６０】
[00180]いくつかの構成では、これは、電子デバイス１３０２が単一パスマルチプルＬＯＤレンダリングを実行することを可能にし得る。たとえば、非同期メモリコントローラ１３０８は、現在処理および／またはレンダリング（たとえば、テッセレーション）されているデータのセットのために最初に確立された別のＬＯＤパラメータとは異なる、ＬＯＤパラメータを読み取り得る。更新されたＬＯＤパラメータは、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ１３７８、ＴＥＳＳ１３８０、ＴＥＳ１３８２、ＧＳ１３８４、ラスタライザ１３８６およびＦＳ１３９０のうちの１つまたは複数は、１つまたは複数の異なるパラメータを用いて開始されたデータセットの処理中に、更新されたＬＯＤパラメータに従って、データセットの処理を変更（たとえば、テッセレーションレベルを変更）し得る。
【０１６１】
[00181]ＶＬＩＷ回路１３０４（たとえば、グラフィックスパイプライン１３０６）は、非一様フレームバッファコントローラ１３１２を含み得る。図１３に示されているように、非一様フレームバッファコントローラ１３１２は、ＦＳ１３９０中に含まれ、および／またはそれで実装され得る。非一様フレームバッファコントローラ１３１２は、追加または代替として、ＦＳ１３９０、グラフィックスパイプライン１３０６およびオンチップメモリ１３１０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得ることに留意されたい。完全にまたは部分的に、たとえば、非一様フレームバッファコントローラ１３１２は、ＦＳ１３９０、グラフィックスパイプライン１３０６、オンチップメモリ１３１０および電子デバイス１３０２のうちの１つまたは複数で実装され得る。
【０１６２】
[00182]図１３に関して説明される非一様フレームバッファコントローラ１３１２は、図１〜図５のうちの１つまたは複数に関して説明された非一様フレームバッファコントローラ１１２、３１２のうちの１つまたは複数の一例であり得る。たとえば、非一様フレームバッファコントローラ１３１２は、１つまたは複数のフレームバッファ（たとえば、フレームバッファ１３４１）の異なるサブセットに動的にアクセスし得る。いくつかの構成では、フレームバッファの異なるサブセットに動的にアクセスすることは、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスすることを含み得る。追加または代替として、フレームバッファの異なるサブセットに動的にアクセスすることは、（たとえば、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに）動的シェーダサブルーチンスワッピングを可能にすることを含み得る。追加または代替として、非一様フレームバッファコントローラ１３１２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換するように構成され得る。図１３に示されているアーキテクチャは、オンチップバッファ（たとえば、深度および色バッファ）のカスタム構成を可能にし得る。これは、ＶＲのための並列レンダリング、ミップマップ生成などを可能にし得る。
【０１６３】
[00183]図１４は、超長命令語（ＶＬＩＷ）回路１４６８を含む電子デバイス１４６６の別の例を示すブロック図である。特に、図１４は、グラフィックス処理のためのアーキテクチャの一例を示す。このアーキテクチャは、即時モード（たとえばＩＭＲ）とタイルモード（tiled mode）（たとえば、ＴＢＤＲ）の両方を与え（たとえば、サポートし）得る。たとえば、アーキテクチャは、即時モードまたはタイルモードの選択を与え得る。図１４に示されている例は、（たとえば、中間ジオメトリのために必要とされる）大きいオンチップキャッシュ／バッファを回避し得る。
【０１６４】
[00184]電子デバイス１４６６は、ＶＬＩＷ回路１４６８（たとえば、ＧＰＵ）とシステムメモリ１４０５（たとえば、ＤＲＡＭ）とを含み得る。ＶＬＩＷ回路１４６８は、グラフィックスパイプライン１４７０とオンチップメモリ１４０３とを含み得る。グラフィックスパイプライン１４７０は、頂点プロセッサ（ＶＰ）１４７４と、頂点シェーダ（ＶＳ）１４７６と、スイッチＡ１４４７ａ〜スイッチＢ１４４７ｂ（たとえば、マルチプレクサ）と、テッセレーション制御シェーダ（ＴＣＳ）１４７８と、テッセレータ（ＴＥＳＳ）１４８０（たとえば、テッセレーションエンジン）と、テッセレーション評価シェーダ（ＴＥＳ）１４８２と、ジオメトリシェーダ（ＧＳ）１４８４と、タイラ１４４９と、ラスタライザ（Ｒａｓｔ）１４８６と、フラグメントシェーダ（ＦＳ）１４９０とのうちの１つまたは複数を含み得る。要素ラベルのうちの多くが、便宜上省略されている。オンチップメモリ１４０３は、キャッシュ１４０１と、深度および色バッファ１４４３とを含み得る。システムメモリ１４０５は、ジオメトリデータ１４０９と、パラメータバッファ１４３５と、テクスチャデータ１４１１と、フレームバッファ１４４１とを含み得る。ジオメトリデータ１４０９は、１つまたは複数の点（たとえば、頂点）、線および／または多角形を示し得る。ジオメトリデータ１４０９は、シーンおよび／またはシーン中の１つまたは複数のオブジェクトを表し得る。
【０１６５】
[00185]ＶＰ１４７４は、システムメモリ１４０５からＶＬＩＷ回路１４６８（たとえば、グラフィックスパイプライン１４７０）にジオメトリデータをフェッチし得る。ＶＰ１４７４は、ジオメトリデータをＶＳ１４７６に与え得る。
【０１６６】
[00186]ＶＳ１４７６は、ジオメトリデータを異なる空間に変換（投影）し得る。たとえば、ＶＳ１４７６は、ジオメトリデータを３次元（３Ｄ）空間から２次元（２Ｄ）空間に変換し得る。いくつかの構成では、ＶＳ１４７６は、クリッピング、投影および／またはカリングを実行し得る。たとえば、ＶＳ１４７６は、視野角錐体の外部にあるジオメトリデータをクリップアウトし得る。ＶＳ１４７６は、ジオメトリデータを３Ｄ空間から２Ｄ空間に投影し得る。ＶＳ１４７６はまた、ジオメトリデータの一部をカリングし得る。たとえば、遮られたジオメトリ（たとえば、他のジオメトリによって阻止されるので、閲覧可能でないジオメトリ）に対応するジオメトリデータが、削除され得る。ＶＳ１４７６は、変換されたジオメトリデータをスイッチＡ１４４７ａ（たとえば、マルチプレクサ）に与え得る。
【０１６７】
[00187]スイッチＡ１４４７ａは、変換されたジオメトリデータを、モード１４４５に基づいて、ＴＣＳ１４７８にまたはタイラ１４４９にルーティングし得る。たとえば、モード１４４５はレンダリングモードを示し得る。いくつかの構成では、レンダリングモードは、タイルモード（たとえば、タイルベース遅延レンダリング（ＴＢＤＲ）モード）と即時モード（たとえば、即時モードレンダリング（ＩＭＲ））とを含み得る。テッセレーションが使用可能である場合、スイッチＡ１４４７ａは、テッセレーションされるべき変換されたジオメトリデータをルーティングし得る。他の場合、スイッチＡ１４４７ａは、タイリングされるべき変換されたジオメトリデータをルーティングし得る。たとえば、モード１４４５がタイルモードを示す場合、スイッチＡ１４４７ａは、変換されたジオメトリをタイラ１４４９にダイレクトし得る。モード１４４５が即時モードを示す場合、スイッチＡ１４４７ａは、変換されたジオメトリをＴＣＳ１４７８にダイレクトし得る。即時モードは、図８および図１０のうちの１つまたは複数に関して説明された動作のうちの１つまたは複数を含み得る。タイルモードは、図１２に関して説明された動作のうちの１つまたは複数を含み得る。
【０１６８】
[00188]ＴＣＳ１４７８は、スイッチＡ１４４７ａ（たとえば、ＶＳ１４７６）からジオメトリデータ（たとえば、変換されたジオメトリデータ）を受信し得る。ＴＣＳ１４７８は、ジオメトリデータ（たとえば、変換されたジオメトリデータ）の基底を変換し得る。たとえば、ＴＣＳ１４７８は、（たとえば、三角形などの多角形を効率的に再分割するために）ジオメトリデータの基底をテッセレーションのための基底に変換し得る。たとえば、ＴＣＳ１４７８は、ＴＣＳ１４７８によって実行された基底変換を示す基底インジケータを生成し得る。基底変換されたジオメトリデータは、ＴＥＳＳ１４８０に与えられ得る。
【０１６９】
[00189]ＴＥＳＳ１４８０は、ジオメトリデータ（たとえば、基底変換されたジオメトリデータ）をテッセレーションし得る。たとえば、ＴＥＳＳ１４８０は、ジオメトリデータに基づいて、より多くのジオメトリデータ（たとえば、頂点）を生成し得る（たとえば、三角形をより多くの三角形に再分割し得る）。ＴＥＳＳ１４８０は、ＬＯＤパラメータに基づいて動作し得る。ＬＯＤパラメータは、ＬＯＤを指定し得、および／またはＴＥＳＳ１４８０が実行するためのテッセレーションの程度を示し得る。テッセレーションされたジオメトリデータは、ＴＥＳ１４８２に与えられ得る。
【０１７０】
[00190]ＴＥＳ１４８２は、ジオメトリデータ（たとえば、テッセレーションされたジオメトリデータ）の基底を変換し得る。たとえば、ＴＥＳ１４８２は、ジオメトリデータの基底を、ＴＣＳ１４７８によって適用された基底変換よりも前の基底に変換して戻し得る。いくつかの構成では、ＴＥＳ１４８２は、ジオメトリデータの基底を変換する（たとえば、逆変換する）ために、ＴＣＳ１４７８および／またはメモリ（たとえば、オンチップメモリ１４０３および／またはシステムメモリ１４０５）から基底インジケータを取得し得る。ＴＥＳ１４８２は、ジオメトリデータ（たとえば、逆基底変換されたジオメトリデータ）をＧＳ１４８４に与え得る。
【０１７１】
[00191]ＧＳ１４８４は、１つまたは複数の動作をジオメトリデータ（たとえば、逆基底変換されたジオメトリデータ）に対して実行し得る。たとえば、ＧＳ１４８４は、ジオメトリデータに基づいて追加のジオメトリを生成し得る。ＧＳ１４８４は、（たとえば、追加のジオメトリをもつ）ジオメトリデータをスイッチＢ１４４７ｂに与え得る。スイッチＢ１４４７ｂ（たとえば、マルチプレクサ）は、（たとえば、即時モードの場合）（たとえば、追加のジオメトリをもつ）ジオメトリデータをラスタライザ１４８６にルーティングし得る。
【０１７２】
[00192]モード１４４５がＴＢＤＲモードを示す場合、スイッチＡ１４４７ａは、変換されたジオメトリデータを（たとえば、ＶＳ１４７６から）タイラ１４４９に与え得る。タイラ１４４９は、変換されたジオメトリデータをタイルにスプリットし得る。たとえば、タイラ１４４９は、ジオメトリデータをジオメトリデータのより小さいグループに分割し得る。タイルは、連続するジオメトリデータを含み得る。タイラ１４４９は、タイルをパラメータバッファ１４３５に与え得る。
【０１７３】
[00193]パラメータバッファ１４３５はタイルを記憶し得る。たとえば、パラメータバッファ１４３５は、プリミティブ（たとえば、ジオメトリデータ、頂点、線、多角形など）のリストを記憶し得る。図１４で説明されるタイルモードでは、タイル処理は、システムメモリアクセスの空間局所性を活用し得る。たとえば、タイルに対して局所的である動作は、比較的「安価」であり得る（たとえば、ごくわずかな処理、電力、メモリおよび／または時間リソースを利用し得る）。ジオメトリデータ（たとえば、タイリングされたジオメトリデータ、プリミティブなど）は、スイッチＢ１４４７ｂに与えられ得る。スイッチＢ１４４７ｂは、（たとえば、タイルモードの場合）ジオメトリデータをパラメータバッファ１４３５からラスタライザ１４８６にルーティングし得る。
【０１７４】
[00194]ラスタライザ１４８６は、ジオメトリデータ（たとえば、パラメータバッファ１４３５からのタイリングされたジオメトリデータ、またはＧＳ１４８４からの（たとえば、追加のジオメトリをもつ）ジオメトリデータ）を受信し得る。ラスタライザ１４８６はジオメトリデータをラスタライズし得る。たとえば、ラスタライザは、ジオメトリデータをピクセルデータにコンバートし得る。ピクセルデータはＦＳ１４９０に与えられ得る。
【０１７５】
[00195]ＦＳ１４９０は、フラグメントシェーディングまたはピクセルシェーディングをピクセルデータに対して実行し得る。たとえば、ＦＳ１４９０は、１つまたは複数のピクセルの１つまたは複数の属性（たとえば、色、輝度、透過性など）を決定し得る。たとえば、ＦＳ１４９０は、図８〜図１２のうちの１つまたは複数に関して説明されたＦＳ８９０、９９０、１０９０、１１９０、１２９０、１３９０のうちの１つまたは複数に関して上記で説明された、動作のうちの１つまたは複数を実行し得、および／または構造のうちの１つまたは複数を含み得る。
【０１７６】
[00196]ＦＳ１４９０は、ピクセルデータを、キャッシュ１４０１と深度および色バッファ１４４３とのうちの１つまたは複数に与え得る。いくつかの構成では、ＦＳ１４９０ならびに／または深度および色バッファ１４４３は、本明細書で説明される合成／分解ブロックと同様の機能を与え得る。いくつかの構成では、図１４に関して説明されるアーキテクチャは、即時モードとタイルモードとを混合しないことがある。たとえば、モード（たとえば、モード１４４５）は、テッセレーション即時モードまたは非テッセレーションタイルモードを示し得る。
【０１７７】
[00197]キャッシュ１４０１は、システムメモリからテクスチャデータ１４１１を受信し得る。いくつかの構成では、テクスチャアクセスおよびフレームバッファタイルのみが、キャッシュされ得る。即時モードの場合、フレームバッファ１４４１全体のサイズであるタイルが割り振られ得る。
【０１７８】
[00198]図１４に示されているように、色および深度バッファデータは、オンチップで記憶され得る。深度および色バッファ１４４３は、ピクセルデータをフレームバッファ１４４１に与え得る。フレームバッファ１４４１はピクセルデータを出力し得る。ピクセルデータは、提示のために与えられ（たとえば、出力され）得る。たとえば、ピクセルデータは、提示のためのディスプレイに送られ得る。
【０１７９】
[00199]本明細書で開示されるシステムおよび方法がなければ、図１４に関して説明される動作は、図８に関して説明されたようにデータセット（たとえば、頂点、ピクセルおよび／または画像データのセット）に関して実行され得ることに留意されたい。
【０１８０】
[00200]図１５は、図１４に関して説明されたアーキテクチャにおいて実装される本明細書で開示されるシステムおよび方法の一例を示すブロック図である。このアーキテクチャは、即時モード（たとえばＩＭＲ）とタイルモード（たとえば、ＴＢＤＲ）とを与え得る。特に、図１５は電子デバイス１５０２を示す。図１５に関して説明される電子デバイス１５０２は、図１〜図５のうちの１つまたは複数に関して上記で説明された電子デバイス１０２、３０２のうちの１つまたは複数の一例であり得る。電子デバイス１５０２は、図１〜図５のうちの１つまたは複数に関して説明された方法、機能、ステップ、動作などのうちの１つまたは複数を実行するように構成され得る。
【０１８１】
[00201]電子デバイス１５０２は、ＶＬＩＷ回路１５０４（たとえば、ＧＰＵ）とシステムメモリ１５１４とを含み得る。ＶＬＩＷ回路１５０４は、図１〜図５のうちの１つまたは複数に関して上記で説明されたＶＬＩＷ回路１０４、３０４のうちの１つまたは複数の一例であり得る追加または代替として、システムメモリ１５１４は、図１〜図５のうちの１つまたは複数に関して説明されたシステムメモリ１１４、３１４のうちの１つまたは複数の一例であり得る。システムメモリ１５１４は、ジオメトリデータ１５０９、パラメータバッファ１５３５、テクスチャデータ１５１１および／またはフレームバッファ１５４１を含み得る。ジオメトリデータ１５０９、パラメータバッファ１５３５、テクスチャデータ１５１１および／またはフレームバッファ１５４１のうちの１つまたは複数は、図１４に関して説明された対応する要素と同様であり得る。システムメモリ１５１４は、図３〜図４のうちの１つまたは複数に関して説明されたように１つまたは複数のフレームバッファを含み得ることに留意されたい。たとえば、フレームバッファ１５４１は、図３〜図４のうちの１つまたは複数に関して説明されたフレームバッファのうちの１つまたは複数の一例であり得る。いくつかの構成では、１つまたは複数のフレームバッファは、オンチップメモリ１５１０、システムメモリ１５１４、またはその両方中に含まれ得る。
【０１８２】
[00202]ＶＬＩＷ回路１５０４は、グラフィックスパイプライン１５０６とオンチップメモリ１５１０とを含み得る。図１５に関して説明されるグラフィックスパイプライン１５０６は、図１〜図５のうちの１つまたは複数に関して説明されたグラフィックスパイプライン１０６、３０６のうちの１つまたは複数の一例であり得る。追加または代替として、図１５に関して説明されるオンチップメモリ１５１０は、図１〜図５のうちの１つまたは複数に関して説明されたオンチップメモリ１１０、３１０のうちの１つまたは複数の一例であり得る。
【０１８３】
[00203]オンチップメモリ１５１０は、キャッシュ１５０１ならびに／または深度および色バッファ１５４３を含み得る。いくつかの構成では、オンチップメモリ１５１０、キャッシュ１５０１ならびに／または深度色バッファ１５４３のうちの１つまたは複数は、図１４に関して説明された対応する要素と同様であり得る。
【０１８４】
[00204]グラフィックスパイプライン１５０６は、ＶＰ１５７４、ＶＳ１５７６、スイッチＡ１５４７ａ〜スイッチＢ１５４７ｂ、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、タイラ１５４９、ラスタライザ１５８６およびＦＳ１５９０のうちの１つまたは複数を含み得る。いくつかの構成では、ＶＰ１５７４、ＶＳ１５７６、スイッチ１５４７ａ〜ｂ、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、タイラ１５４９、ラスタライザ１５８６およびＦＳ１５９０のうちの１つまたは複数は、図１４に関して説明された１つまたは複数の対応する要素の動作のうちの１つまたは複数を実行し得る。ＦＳ１５９０は、いくつかの構成では、図１４に関して説明されたようにＨＳＲ＆ＤＴ、ＴＢ、Ｔ＆Ｓ、ＡＴおよびＡＢのうちの１つまたは複数を含み得ることに留意されたい。
【０１８５】
[00205]図１５に示されている構成では、ＶＬＩＷ回路１５０４（たとえば、グラフィックスパイプライン１５０６）は非同期メモリコントローラ１５０８を含み得る。非同期メモリコントローラ１５０８は、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０およびタイラ１５４９のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得る。完全にまたは部分的に、たとえば、非同期メモリコントローラ１５０８は、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０および／またはタイラ１５４９で実装され得る。総称的なラベル「１５０８」は、非同期メモリコントローラ１５０８が、図１５に示されている要素１５０８ａ〜ｇのいずれかまたはすべてで実装され得ることを示し得る。いくつかの構成では、非同期メモリコントローラ１５０８は、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２およびＧＳ１５８４のうちの１つまたは複数でのみ実装され得る。たとえば、データは後のステージにフォワーディングされ得るので、非同期メモリコントローラ１５０８は、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２および／またはＧＳ１５８４中でのみ１つまたは複数のパラメータを非同期的に読み取り得る。
【０１８６】
[00206]スイッチＡ１５４７ａは、データを、モード１５４５に基づいて、ＴＣＳ１５７８にまたはタイラ１５４９にルーティングし得る。たとえば、モード１５４５はレンダリングモードを示し得る。いくつかの構成では、レンダリングモードは、タイルモード（たとえば、タイルベース遅延レンダリング（ＴＢＤＲ）モード）と即時モード（たとえば、即時モードレンダリング（ＩＭＲ））とを含み得る。テッセレーションが使用可能である場合、スイッチＡ１５４７ａは、テッセレーションされるべきデータをルーティングし得る。他の場合、スイッチＡ１５４７ａは、タイリングされるべきデータをルーティングし得る。即時モードは、図８および図１０のうちの１つまたは複数に関して説明された動作のうちの１つまたは複数を含み得る。タイルモードは、図１２に関して説明された動作のうちの１つまたは複数を含み得る。
【０１８７】
[00207]タイルモードでは、いくつかの構成では、タイラ１５４９、ラスタライザ１５８６およびＦＳ１５９０のうちの１つまたは複数中に含まれる非同期メモリコントローラ１５０８ｅ〜ｇは、ゾーニング、および／またはＦＳ１５９０の計算を低減することを実行し得る。たとえば、非同期メモリコントローラ１５０８ｅ〜ｇは、より費用がかかるシェーダを高いＬＯＤゾーンのために採用し、中程度に費用がかかるシェーダを中間ＬＯＤゾーンのために採用し、より安価なシェーダを低いＬＯＤゾーンのために採用し得る。たとえば、フォービエイテッドレンダリングは、ジオメトリのＬＯＤおよび／またはシェーダ計算を含み得る。いくつかの構成では（たとえば、タイルモードでは）、ジオメトリは、修正されないことがあるが、ピクセルごとに動作される１つまたは複数のシェーダは、変動する計算費用を有し得る。
【０１８８】
[00208]図１５に関して説明される非同期メモリコントローラ１５０８は、図１〜図５のうちの１つまたは複数に関して説明されたメモリコントローラ１０８、３０８のうちの１つまたは複数の一例であり得る。たとえば、非同期メモリコントローラ１５０８は、（たとえば、データセットの処理中に）システムメモリ１５１４から１つまたは複数のパラメータ（たとえば、ＬＯＤパラメータ）を非同期的に読み取り得る。いくつかの構成では、（１つまたは複数の）更新されたパラメータは、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０およびタイラ１５４９のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０およびタイラ１５４９のうちの１つまたは複数は、データセットが処理されている間、データセットのために最初に確立された処理とは異なるようにデータセットの処理を変更し得る。
【０１８９】
[00209]いくつかの構成では、これは、電子デバイス１５０２が単一パスマルチプルＬＯＤレンダリングを実行することを可能にし得る。たとえば、非同期メモリコントローラ１５０８は、現在処理および／またはレンダリング（たとえば、テッセレーション）されているデータのセットのために最初に確立された別のＬＯＤパラメータとは異なる、ＬＯＤパラメータを読み取り得る。更新されたＬＯＤパラメータは、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０およびタイラ１５４９のうちの１つまたは複数に与えられ得る。したがって、ＴＣＳ１５７８、ＴＥＳＳ１５８０、ＴＥＳ１５８２、ＧＳ１５８４、ラスタライザ１５８６、ＦＳ１５９０およびタイラ１５４９のうちの１つまたは複数は、１つまたは複数の異なるパラメータを用いて開始されたデータセットの処理中に、更新されたＬＯＤパラメータに従って、データセットの処理を変更（たとえば、テッセレーションレベルを変更、および／または１つまたは複数のシェーダを変更）し得る。
【０１９０】
[00210]ＶＬＩＷ回路１５０４（たとえば、グラフィックスパイプライン１５０６）は、非一様フレームバッファコントローラ１５１２を含み得る。図１５に示されているように、非一様フレームバッファコントローラ１５１２は、ＦＳ１５９０中に含まれ、および／またはそれで実装され得る。非一様フレームバッファコントローラ１５１２は、追加または代替として、ＦＳ１５９０、グラフィックスパイプライン１５０６およびオンチップメモリ１５１０のうちの１つまたは複数中に含まれ、ならびに／またはそれらで実装され得ることに留意されたい。完全にまたは部分的に、たとえば、非一様フレームバッファコントローラ１５１２は、ＦＳ１５９０、グラフィックスパイプライン１５０６、オンチップメモリ１５１０および電子デバイス１５０２のうちの１つまたは複数で実装され得る。
【０１９１】
[00211]図１５に関して説明される非一様フレームバッファコントローラ１５１２は、図１〜図５のうちの１つまたは複数に関して説明された非一様フレームバッファコントローラ１１２、３１２のうちの１つまたは複数の一例であり得る。たとえば、非一様フレームバッファコントローラ１５１２は、１つまたは複数のフレームバッファ（たとえば、フレームバッファ１５４１）の異なるサブセットに動的にアクセスし得る。いくつかの構成では、フレームバッファの異なるサブセットに動的にアクセスすることは、第２のゾーンの少なくとも１つのピクセルとは異なるレートで、第１のゾーンの少なくとも１つのピクセルにアクセスすることを含み得る。追加または代替として、フレームバッファの異なるサブセットに動的にアクセスすることは、（たとえば、第１のピクセルの処理が進行中であり、第２のピクセルのプロセスが完了されたときに）動的シェーダサブルーチンスワッピングを可能にすることを含み得る。追加または代替として、非一様フレームバッファコントローラ１５１２は、第２のピクセルの第２のサンプルを処理することを回避するために、第１のピクセルの処理された第１のサンプルで第２のピクセルの第２のサンプルを置換するように構成され得る。図１５に示されているアーキテクチャは、オンチップバッファ（たとえば、深度および色バッファ）のカスタム構成を可能にし得る。これは、ＶＲのための並列レンダリング、ミップマップ生成などを可能にし得る。
【０１９２】
[00212]追加または代替として、非一様フレームバッファコントローラ３１２は、効率的なフレームバッファ区分、読取りおよび／または書込みを与え得る。たとえば、非一様フレームバッファコントローラ３１２は、フラグメントシェーダ（ＦＳ）および／または合成／分解ブロックが、フレームバッファに非一様様式でアクセスすること（たとえば、異なる詳細レベルをもつフレームバッファの異なるサブセットに同時に書き込むこと、異なる数のサンプルをもつ異なるサブセットに書き込むことなど）を可能にし得る。
【０１９３】
[00213]図１６は、複数のゾーンをレンダリングするためのシステムおよび方法が実装され得る電子デバイス１６５１の一構成を示すブロック図である。電子デバイス１６５１の例は、スマートフォン、コンピュータ（たとえば、デスクトップコンピュータ、ラップトップコンピュータなど）、ヘッドマウントディスプレイ（たとえば、仮想現実（ＶＲ）ヘッドセット、拡張現実（ＡＲ）ヘッドセットなど）、ＶＲデバイス、ＡＲデバイス、タブレットデバイス、メディアプレーヤ、テレビジョン、自動車、車両、カメラ、ビデオカムコーダ、デジタルカメラ、セルラーフォン、パーソナルカメラ、アクションカメラ、航空機、ドローン、無人航空機（ＵＡＶ）、ヘルスケア機器、ゲーミングコンソール、携帯情報端末（ＰＤＡ）、セットトップボックス、メディアプレーヤなどを含む。いくつかの構成では、電子デバイス１６５１は、車両中の取外し可能なモジュールの少なくとも一部であり得る。たとえば、電子デバイス１６５１は、車両中に含まれ、および／またはそれに結合され得、車両から取外し可能であり得る。図１６に関して説明される電子デバイス１６５１は、図１〜図５および図８〜図１５のうちの１つまたは複数に関して説明された電子デバイス１０２、３０２、８６６、９０２、１０６６、１１０２、１２６６、１３０２、１４６６、１５０２のうちの１つまたは複数の一例であることも一例でないこともある。いくつかの構成では、電子デバイス１６５１の構成要素または要素のうちの１つまたは複数は、図１〜図５および図８〜図１５のうちの１つまたは複数に関して説明された対応する構成要素または要素と同様であることも同様でないこともある。構成要素または要素のうちの１つまたは複数は、ハードウェア（たとえば、回路）、またはハードウェアとソフトウェアの組合せ（たとえば、命令をもつプロセッサ）で実装され得る。
【０１９４】
[00214]いくつかの構成では、電子デバイス１６５１は、メモリ１６６７、１つまたは複数のディスプレイ１６７３、１つまたは複数の画像センサー１６５３、１つまたは複数の光学システム１６５５、１つまたは複数の通信インターフェース１６５７、１つまたは複数のアンテナ１６５９および／または１つまたは複数のプロセッサ１６６１を含み得る。図１６に関して説明される要素または構成要素のうちの２つまたはそれ以上は、互いと電子通信していることがある。たとえば、プロセッサ１６６１は、メモリ１６６７に結合され得る（たとえば、それと電子通信していることがある）。（１つまたは複数の）プロセッサ１６６１は、１つまたは複数の中央処理ユニット（ＣＰＵ）、超長命令語（ＶＬＩＷ）回路、グラフィックス処理ユニット、特定用途向け集積回路（ＡＳＩＣ）など、またはそれらの任意の組合せを含み得る。たとえば、プロセッサ１６６１は、図１〜図５および図８〜図１５のうちの１つまたは複数に関して説明されたＶＬＩＷ回路１０４、３０４、８６８、９０４、１０６８、１１０４、１２６８、１３０４、１４６８、１５０４であり得る。いくつかの構成では、プロセッサ１６６１は、一体型ＶＬＩＷ回路（たとえば、ＧＰＵ）をもつＣＰＵであり得るか、またはＣＰＵおよび別個のＶＬＩＷ回路（たとえば、ＧＰＵ）であり得る。たとえば、プロセッサ１６６１は、画像をレンダリングするためのデバイスであり得る。いくつかの構成では、（１つまたは複数の）得られた画像は１つまたは複数のディスプレイ１６７３上に提示され得る。
【０１９５】
[00215]通信インターフェース１６５７は、電子デバイス１６５１が１つまたは複数の他の電子デバイスと通信することを可能にし得る。たとえば、通信インターフェース１６５７は、ワイヤードおよび／またはワイヤレス通信のためのインターフェースを与え得る。いくつかの構成では、通信インターフェース１６５７は、無線周波数（ＲＦ）信号を送信および／または受信するために、１つまたは複数のアンテナ１６５９に結合され得る。追加または代替として、通信インターフェース１６５７は、１つまたは複数の種類のワイヤライン（たとえば、ユニバーサルシリアルバス（ＵＳＢ）、イーサネット、ビデオグラフィックスアレイ（ＶＧＡ）、デジタルビジュアルインターフェース（ＤＶＩ）、高精細度マルチメディアインターフェース（ＨＤＭＩ）、ＤｉｓｐｌａｙＰｏｒｔ、モバイル高精細度リンク（ＭＨＬ）など）通信を可能にし得る。
【０１９６】
[00216]いくつかの構成では、複数の通信インターフェース１６５７が実装および／または利用され得る。たとえば、１つの通信インターフェース１６５７はセルラー（たとえば、３Ｇ、ロングタームエボリューション（ＬＴＥ）、ＣＤＭＡなど）通信インターフェース１６５７であり得、別の通信インターフェース１６５７はイーサネットインターフェースであり得、別の通信インターフェース１６５７はユニバーサルシリアルバス（ＵＳＢ）インターフェースであり得、また別の通信インターフェース１６５７はワイヤレスローカルエリアネットワーク（ＷＬＡＮ）インターフェース（たとえば、米国電気電子技術者協会（ＩＥＥＥ）８０２．１１インターフェース）であり得、また別の通信インターフェース１６５７はＢｌｕｅｔｏｏｔｈインターフェースであり得る。
【０１９７】
[00217]いくつかの構成では、電子デバイス１６５１は、図１〜図１５および図１７〜図２４のうちの１つまたは複数に関して説明される機能、プロシージャ、方法、ステップなどのうちの１つまたは複数を実行し得る。追加または代替として、電子デバイス１６５１は、図１〜図１５および図１７〜図２４のうちの１つまたは複数に関して説明される構造のうちの１つまたは複数を含み得る。
【０１９８】
[00218]メモリ１６６７は命令および／またはデータを記憶し得る。メモリ１６６７は、システムメモリおよび／またはオンチップメモリを含み得る。図１６に関して説明されるメモリ１６６７は、図１〜図５および図８〜図１５のうちの１つまたは複数に関して説明されたメモリ１１０、１１４、３１０、３１４、８０３、８０５、９１０、９１４、１００３、１００５、１１１０、１１１４、１２０３、１２０５、１３１０、１３１４、１４０３、１４０５、１５１０、１５１４のうちの１つまたは複数の一例であることも一例でないこともある。プロセッサ１６６１は、メモリ１６６７にアクセスし（たとえば、それから読み取り、および／またはそれに書き込み）得る。メモリ１６６７はジオメトリデータ１６６９を記憶し得る。いくつかの構成では、メモリ１６６７はフレームバッファ１６７１を含み得る。フレームバッファ１６７１は、画像データを記憶するためのメモリ１６６７の一部分であり得る。バッファされた画像データは、いくつかの構成では、１つまたは複数のディスプレイ１６７３上に提示され得る。
【０１９９】
[00219]いくつかの構成では、プロセッサ１６６１は、画像をレンダリングするための１つまたは複数の要素を含み得る。要素のいくつかの例は、フロントエンド（ＦＥ）、頂点プロセッサ（ＶＰ、頂点フェッチャ（ＶＦ）、頂点シェーダ（ＶＳ）、テッセレーション制御シェーダ（ＴＣＳ）、ハルシェーダ（ＨＳ）、テッセレータ（たとえば、テッセレーションエンジン）（ＴＥＳＳ）、テッセレーション評価シェーダ（ＴＥＳ）、ドメインシェーダ（ＤＳ）、ジオメトリシェーダ（ＧＳ）、ラスタライザ（Ｒａｓｔ）、フラグメントシェーダ（ＦＳ）、ピクセルシェーダ（ＰＳ）、タイラ、レンダー出力ユニット（ＲＯＰ）、クリッパー（Ｃｌｉｐ）および／またはストリームアウト（ＳＯＬ）などを含み得る。いくつかの構成では、これらの要素のうちの１つまたは複数は、グラフィックスパイプラインと呼ばれることがある。
【０２００】
[00220]プロセッサ１６６１は、マルチゾーンレンダラ１６６３を含み、および／または実装し得る。たとえば、マルチゾーンレンダラは、ハードウェア、またはハードウェアとソフトウェアの組合せで実装され得る。マルチゾーンレンダラ１６６３は、画像の複数のゾーンをレンダリングし得る。たとえば、マルチゾーンレンダラ１６６３は、ジオメトリデータ１６６９に基づいて、画像の複数のゾーンをレンダリングし得る。複数のゾーンが、異なるテッセレーション詳細レベルを用いてレンダリングされ得る。たとえば、マルチゾーンレンダラ１６６３は、Ｎ個のゾーンをレンダリングし得、ここで、ゾーンのうちの少なくとも２つが、異なるテッセレーション詳細レベルを有する。たとえば、マルチゾーンレンダラは、第１のテッセレーション詳細レベルで画像の第１のゾーンをレンダリングし得、第２のより高いテッセレーション詳細レベルを用いて画像の第２のゾーンをレンダリングし得る。ゾーンは、静的または動的であり得る。たとえば、ゾーンは、ディスプレイ１６７３上のあらかじめ決定されたロケーションにあり得る。したがって、マルチゾーンレンダラ１６６３は、静的ゾーンに対応する詳細レベルでジオメトリをレンダリングし得る。他の構成では、ゾーンは動的であり得る。たとえば、ゾーンは、アイトラッキングおよび／または他のファクタ（たとえば、オブジェクトタイプ、優先度、受信された設定など）に基づいて移動し得る。いくつかの構成では、ゾーンは、ユーザが見ているディスプレイ（たとえば、画像）の点を近似的に中心とする円形エリア（または別の形状のエリア）であり得る。他の構成では、ゾーンは、ユーザが閲覧しているウィンドウに対応する画像のエリア全体であり得る。
【０２０１】
[00221]電子デバイス１６５１は、１つまたは複数のディスプレイ１６７３に結合され得る。たとえば、電子デバイス１６５１は、１つまたは複数のディスプレイ１６７３を含み得、および／または１つまたは複数の外部（たとえば、リモート）ディスプレイ１６７３に結合され得る。ディスプレイ１６７３の例は、液晶ディスプレイ（ＬＣＤ）パネル、発光ダイオード（ＬＥＤ）パネル（たとえば、有機発光ダイオード（ＯＬＥＤ））パネル、陰極線管（ＣＲＴ）ディスプレイ、モニタ、テレビジョン、プロジェクタ、プラズマディスプレイ、（１つまたは複数の）ヘッドマウントディスプレイ、電子インクディスプレイなどを含む。
【０２０２】
[00222]いくつかの構成では、（１つまたは複数の）ディスプレイ１６７３は、１つまたは複数のウィンドウ（たとえば、車両ウィンドウ、建造物ウィンドウなど）上に画像を提示することが可能であり得る。たとえば、（１つまたは複数の）ディスプレイ１６７３は、１つまたは複数のウィンドウプロジェクタおよび／または１つまたは複数の一体型ウィンドウディスプレイパネルを含み得る。マルチゾーンレンダラ１６６３は、（たとえば、２つまたはそれ以上のゾーンが、異なる詳細レベルを有し得る）複数のゾーンをレンダリングし得る。いくつかの構成では、電子デバイス１６５１（たとえば、プロセッサ１６６１）は、異なるウィンドウ上に異なるゾーンを提示し得る。たとえば、第１のゾーンが、第１のウィンドウ（たとえば、ウインドシールド）上に提示され得、第２のゾーンが、第２のウィンドウ（たとえば、（１つまたは複数の）車両ドアウィンドウ）上に提示され得、および／または第３のゾーンが、第３のウィンドウ（たとえば、車両バックウィンドウ）上に提示され得る。いくつかの構成では、異なるゾーンが、同じウィンドウの異なるセクション上に提示され得る。たとえば、第１のゾーンが、ウィンドウの第１のセクション（たとえば、ウインドシールドの運転者側セクション）上に提示され得、第２のゾーンが、ウィンドウの第２のセクション（たとえば、ウインドシールドの同乗者側セクション）上に提示され得る。別の例では、ゾーンは、ウィンドウ上にバー（たとえば、水平または垂直バー）として提示され得る。たとえば、第１のゾーンは、ウィンドウ（たとえば、ウインドシールド）上の中間水平バー上に提示され得、第２のゾーンは、ウィンドウ（たとえば、ウインドシールド）上の下側および上側水平バー上に提示され得る。いくつかの構成では、上記の手法の組合せが利用され得る。たとえば、第１のゾーンが、ウインドシールドの運転者側上に提示され得、第２のゾーンが、ウインドシールドの同乗者側上に与えられ得、第３のゾーンが、車両ドアウィンドウ上に提示され得る。他の変形形態が実装され得る。
【０２０３】
[00223]いくつかの構成では、電子デバイス１６５１は、非同期メモリコントローラおよび／または非一様フレームバッファコントローラを含み得る。たとえば、マルチゾーンレンダラ１６６３は、非同期メモリコントローラおよび／または非一様フレームバッファコントローラを含み、および／またはそれに結合され得る。マルチゾーンレンダラ１６６３は、本明細書で説明されるように非同期メモリコントローラおよび／または非一様フレームバッファコントローラに関して説明される動作、機能および／または手法に従って、複数のゾーンをレンダリングすることもレンダリングしないこともある。たとえば、電子デバイス１６５１は、本明細書で説明されるように単一パスマルチＬＯＤレンダリングを実行することも実行しないこともある。
【０２０４】
[00224]電子デバイス１６５１は、１つまたは複数の画像（たとえば、デジタル画像、画像フレーム、ビデオなど）を取得し得る。１つまたは複数の画像は、１人または複数のユーザおよび／またはシーンの画像（たとえば、１つまたは複数のオブジェクトおよび／または背景）であり得る。たとえば、電子デバイス１６５１は、１つまたは複数の画像センサー１６５３、および／または（１つまたは複数の）光学システム１６５５の視野内に位置するオブジェクトの画像を（１つまたは複数の）画像センサー１６５３上に合焦させる光学システム１６５５（たとえば、レンズ）を含み得る。いくつかの構成では、（１つまたは複数の）画像センサー１６５３は、１つまたは複数の画像をキャプチャし得る。（１つまたは複数の）画像センサー１６５３および／または（１つまたは複数の）光学システム１６５５は、プロセッサ１６６１に結合され、および／またはそれによって制御され得る。
【０２０５】
[00225]追加または代替として、電子デバイス１６５１は、１つまたは複数の画像を、別のデバイス（たとえば、電子デバイス１６５１に結合された外部画像センサー、ネットワークサーバ、トラフィックカメラ、ドロップカメラ、自動車カメラ、ウェブカメラなど）に要求し、および／またはそれから受信し得る。いくつかの構成では、電子デバイス１６５１は、通信インターフェース１６５７を介して１つまたは複数の画像を要求および／または受信し得る。たとえば、電子デバイス１６５１は、カメラ（たとえば、画像センサー１６５３および／または光学システム１６５５）を含むことも含まないこともあり、リモートデバイスから画像を受信し得る。
【０２０６】
[00226]いくつかの構成では、電子デバイス１６５１中に含まれる１つまたは複数の画像センサー１６５３および／または電子デバイス１６５１に結合された１つまたは複数の他の画像センサーは、ユーザの１つまたは複数の画像をキャプチャするように配向され得る。たとえば、スマートフォンが、ディスプレイ（たとえば、ディスプレイ１６７３）と同じ面上に取り付けられたカメラを含み得る。このようにして、カメラは、ユーザがディスプレイを見ている間に、ユーザの画像をキャプチャし得る。別の例では、カメラは、ユーザ（たとえば、運転者）の画像をキャプチャするために、車両のコンソールおよび／またはステアリングホイールに取り付けられ得る。
【０２０７】
[00227]追加または代替として、電子デバイス１６５１中に含まれる１つまたは複数の画像センサー１６５３および／または電子デバイス１６５１に結合された１つまたは複数の他の画像センサーは、風景をキャプチャするように配向され得る。たとえば、１つまたは複数のカメラが、スマートフォンの裏面上に取り付けられ得る。別の例では、１つまたは複数のカメラが、車両の外部上に取り付けられ得る。いくつかの構成では、電子デバイス１６５１は、拡張現実（ＡＲ）適用例、仮想現実（ＶＲ）適用例および／または他の適用例（たとえば、サラウンドビュー可視化、運転者支援、先進運転者支援システム（ＡＤＡＳ）など）において風景の画像を利用し得る。
【０２０８】
[00228]いくつかの構成では、（１つまたは複数の）画像センサー１６５３によってキャプチャされ、および／または（１つまたは複数の）通信インターフェース１６５７を介して受信された（１つまたは複数の）画像が、アイトラッキングのために電子デバイス１６５１によって利用され得る。たとえば、プロセッサ１６６１は、アイトラッカー１６６５を含み、および／または実装し得る。アイトラッカー１６６５は、１人または複数のユーザの（１つまたは複数の）眼の視線（たとえば、ルック方向）を追跡し得る。たとえば、アイトラッカー１６６５は、（１つまたは複数の）画像における１人または複数のユーザの眼の（１つまたは複数の）位置を特定し得、（１人または複数の）ユーザの視線（たとえば、ルック方向）を推定し得る。たとえば、アイトラッカー１６６５は、ユーザがディスプレイ（たとえば、ディスプレイ１６７３または外部ディスプレイ）上のどこを見ているか、および／またはユーザがディスプレイによって提示された画像上のどこを見ているかを決定（たとえば、推定）し得る。言い換えれば、アイトラッカー１６６５は、画像および／またはディスプレイに対してどこにユーザの視線が向けられているかを決定（たとえば、推定）し得る。いくつかの構成では、アイトラッカー１６６５は、図３に関して上記で説明されたアイトラッカー３２６と同様にアイトラッキングを実行し得る。
【０２０９】
[00229]いくつかの構成では、マルチゾーンレンダラ１６６３は、アイトラッキングに基づいて画像の１つまたは複数のゾーンをレンダリングし得る。画像のゾーンは異なる詳細レベルを有し得る。たとえば、マルチゾーンレンダラ１６６３は、異なる詳細レベルをもつ複数のゾーンをレンダリングし得、ここで、最も高い詳細レベルをもつゾーンが、ユーザが現在見ているエリアにおいてレンダリングされる。いくつかの構成では、これは、フォービエイテッドレンダリングと呼ばれることがある。アイトラッカー１６６５はアイトラッキング情報を生成し得る。アイトラッキング情報は、ディスプレイおよび／または画像に対してどこにユーザの視線が向けられるか（たとえば、複数ユーザの視線が向けられているか）を示し得る。いくつかの構成では、プロセッサ１６６１および／またはプロセッサ１６６１は、アイトラッキング情報に基づいて、１つまたは複数のＬＯＤパラメータを決定し得る。（１つまたは複数の）ＬＯＤパラメータは、画像の１つまたは複数のゾーンのためのレンダリングされるべきＬＯＤを示し得る。（１つまたは複数の）ＬＯＤパラメータはメモリ１６６７に記憶され得る。（１つまたは複数の）ＬＯＤパラメータは、プロセッサ１６６１によって処理されているデータのセット（たとえば、描画呼出し）に関して、非同期的に更新されることも更新されないこともある。
【０２１０】
[00230]アイトラッカー１６６５は、画像の異なる部分を見るためにユーザがいつ視線を変更するかを検出し得る。本明細書で開示されるシステムおよび方法は、アイトラッキング（たとえば、アイトラッキング情報および／または（１つまたは複数の）ＬＯＤパラメータ）に基づいて、ＬＯＤレンダリングを変更し得る。たとえば、マルチゾーンレンダラ１６６３は、ユーザがそれを閲覧するために視線を変更した画像のエリアにおけるＬＯＤを増加させ得る。追加または代替として、本明細書で開示されるシステムおよび方法は、ユーザの視線がもはや向けられていない画像のエリアにおけるＬＯＤを低減し得る。上記で説明されたように、いくつかの構成では、異なるゾーンが異なるウィンドウに対応し得る。マルチゾーンレンダラ１６６３は、ユーザがどのウィンドウを見ているかに基づいて、ウィンドウ（および／またはウィンドウセクション）に対応するゾーンを変更し得る。たとえば、マルチゾーンレンダラ１６６３は、ユーザ（たとえば、運転者）がウインドシールドを（たとえば、通して）見ている間、車両のウインドシールド上に高いＬＯＤゾーンをレンダリングし得る。ユーザ（たとえば、運転者）が別のウィンドウを見る（たとえば、死角を確認するためにおよび／またはバックギアで運転するために向きを変える）とき、マルチゾーンレンダラ１６６３は、高いＬＯＤゾーンを、ユーザがそれを（たとえば、通して）見ているウィンドウ（たとえば、サイドウィンドウおよび／またはバックウィンドウ）に変更し得る。
【０２１１】
[00231]いくつかの構成では、アイトラッカー１６６５は、複数のユーザの各々の１つまたは複数の眼（たとえば、運転者の眼および１人または複数の同乗者の眼）を追跡し得る。本明細書で開示されるシステムおよび方法は、アイトラッキング（たとえば、アイトラッキング情報および／または（１つまたは複数の）ＬＯＤパラメータ）に基づいて、ゾーンレンダリング（たとえば、ＬＯＤレンダリング）に優先度を付け得る。いくつかの手法では、マルチゾーンレンダラ１６６３は、あるユーザに対応するゾーンに（または、たとえば、優先ユーザのセットに対応するゾーンに）より高いＬＯＤを与え、１人または複数の他のユーザに対応する１つまたは複数のゾーンに１つまたは複数のより低いＬＯＤを与え得る。追加または代替として、マルチゾーンレンダラ１６６３は、あるユーザに対応するゾーン第１を最初にレンダリングし得、その後（たとえば、シーケンス中で）１人または複数の他のユーザに対応する１つまたは複数の他のゾーンをレンダリングし得る。たとえば、マルチゾーンレンダラ１６６３は、運転者によって閲覧されている画像のエリアにおいて増加されたＬＯＤを与え得、および／または、運転者によって閲覧されている画像のエリアにおける画像を最初にレンダリングし得る。マルチゾーンレンダラ１６６３は、同乗者によって閲覧されている画像のエリアにおいてより低いＬＯＤを与え得、および／または、同乗者によって閲覧されている画像のエリアにおける画像を、運転者のそれの後にレンダリングし得る。いくつかの構成では、優先度は、あらかじめ決定され得（たとえば、製造業者および／またはユーザが優先度を設定し得）、ユーザロケーションに基づき得（たとえば、車両運転者が最も高い優先度を獲得し、（１人または複数の）同乗者がより低い優先度を獲得し）、ならびに／あるいはユーザ認識に基づき得る（たとえば、ある認識されたユーザがより高い優先度を獲得し、他の認識されたおよび／または認識されないユーザが（１つまたは複数の）より低い優先度を獲得する）。
【０２１２】
[00232]本明細書で開示されるシステムおよび方法は、ウィンドウディスプレイ技術における改善を与え得る。たとえば、車両が、１つまたは複数のウィンドウディスプレイ（たとえば、（１つまたは複数の）ウィンドウプロジェクタおよび／または（１つまたは複数の）ウィンドウディスプレイパネル）を装備し得る。（１つまたは複数の）ウィンドウディスプレイは、１つまたは複数の適用例において動作するように構成され得る。たとえば、車両ウィンドウディスプレイが、運転方向を運転者に提示し得る。たとえば、電子デバイス１６５１は、脇道における今度のターンを示す矢印をもつ画像をレンダリングし得る。他の画像が、レンダリングされおよび／または提示され得る。たとえば、電子デバイス１６５１は、道路標識、停止標識、交通信号、歩行者、ナビゲーション情報（たとえば、運転方向、地図、車両ロケーション、目的地など）、障害物、警告、他の安全情報（たとえば、前の別の車両までの距離、現在の速度において十分な停止距離があるかどうかなど）、車両情報（たとえば、現在の速度、低燃料インジケータ、毎分回転数（ＲＰＭ）、移動された距離、温度、時間、オイル交換インジケータ、エンジン点検インジケータ、エンジン温度、温度警告）、エンターテインメント情報（たとえば、ラジオ局、音楽トラック名、曲持続時間、再生された曲時間、映画名、映画持続時間、再生された映画時間、映画コンテンツ、写真コンテンツなど）、通信情報（たとえば、通話情報、ローカルエリアネットワーク（ＬＡＮ）ステータス、Ｂｌｕｅｔｏｏｔｈ接続性など）などを示し、および／または強調する、（１つまたは複数の）インジケータおよび／または（１つまたは複数の）強調表示をレンダリングし得る。
【０２１３】
バック画像コンテンツは、品質が高まり続けると（たとえば、より詳細なジオメトリ、より高い解像度テクスチャ、より大きいディスプレイ領域など）、高度に詳細なコンテンツを表示することが、困難であることがある。これは、処理帯域幅および／または電力効率制限が問題であるプラットフォームについて、特に当てはまり得る。異なる詳細レベル（たとえば、テッセレーション詳細レベル）をもつ異なるゾーンをレンダリングすることは、レンダリングリソースに優先度を付けるのを助け得る。したがって、ユーザにとって、より重要でありおよび／または関係する情報にさらなる詳細が与えられ得る。たとえば、ユーザが見ているおよび／または見ている可能性がある場所に（たとえば、ユーザの眼が凝視している、警告が表示されているなどの、ウインドシールドの中間部分において）、より高いＬＯＤをもつゾーンがレンダリングされ得る。これは、興味深いおよび／または重要な情報が、より高い詳細で提示されるので、改善されたエクスペリエンスを与え得る。追加または代替として、ユーザがあまり詳細に気づかないことがある（たとえば、周辺視野における）エリア、および／または、一般に、あまり重要でない情報を含んでいるエリア（たとえば、サイドウィンドウ）は、処理および／またはエネルギーリソースを節約するために、あまり詳細にレンダリングされないことがある。
【０２１４】
[00234]テッセレーション詳細レベルが、ピクセル解像度とは異なることに留意されたい。たとえば、ピクセル解像度は、ピクセル密度を指し、および／またはある画像（または画像のエリア）にいくつのピクセルが専用であるかを指すことがある。テッセレーション詳細レベルは、レンダリングされたジオメトリがどのくらい細かくテッセレーションされる（たとえば、再分割される）かを指すことがある。たとえば、画像のジオメトリおよび／またはエリアをレンダリングするために専用である、より多数の点、多角形および／または線が、テッセレーション詳細レベル（ＬＯＤ）を反映し得る。追加または代替として、異なる詳細レベルは、異なる品質シェーダに対応し得る（たとえば、より高いＬＯＤはより高い品質シェーダに対応し得、ここで、より詳細なおよび／または費用がかかる処理が実行される）。いくつかの構成では、ピクセル解像度がテッセレーションレベルを制約し得ることに留意されたい。たとえば、１つのピクセルが１００個の三角形を必要としないことがある、１０×１０タイルが１，０００個の三角形を必要としないことがある、など。
【０２１５】
[00235]いくつかの構成では、電子デバイス１６５１は、カメラアプリケーションおよび／またはディスプレイ１６７３を含み得る。カメラアプリケーションが動作しているとき、光学システム１６５５の視野内に位置するオブジェクトの画像が画像センサー１６５３によってキャプチャされ得る。画像センサー１６５３によってキャプチャされている画像は、ディスプレイ１６７３上に提示され得る。いくつかの構成では、これらの画像は、所与の時間的瞬間において、光学システム１６５５の視野内に位置するオブジェクトがディスプレイ１６７３上に提示されるように、比較的高いフレームレートで迅速に連続して表示され得る。
【０２１６】
[00236]電子デバイス１６５１中に示されている要素のうちの１つまたは複数が随意であり得ることに留意されたい。たとえば、電子デバイス１６５１中に示されている要素のうちの１つまたは複数は、含まれることも含まれないこともあり、および／または実装されることも実装されないこともある。追加または代替として、プロセッサ１６６１に示されている要素のうちの１つまたは複数は、プロセッサ１６６１とは別個に（たとえば、他の回路で、別のプロセッサ上で、別個の電子デバイス上でなど）実装され得る。たとえば、画像センサー１６５３、光学システム１６５５、通信インターフェース１６５７、アイトラッカー１６６５および／またはディスプレイ１６７３は、電子デバイス１６５１上に実装されないことがある。いくつかの構成では、電子デバイス１６５１は、別のデバイスから画像および／またはアイトラッキング情報を受信し得る。追加または代替として、１つまたは複数のディスプレイが、別個のデバイス上に実装され得る。
【０２１７】
[00237]いくつかの構成では、電子デバイス１６５１は、ディスプレイ１６７３上にユーザインターフェース１６７５を提示し得る。たとえば、ユーザインターフェース１６７５は、ユーザが電子デバイス１６５１と対話することを可能にし得る。いくつかの構成では、ディスプレイ１６７３は、（たとえば、指、スタイラス、または他のツールによる）物理的タッチから入力を受信するタッチスクリーンであり得る。追加または代替として、電子デバイス１６５１は、別の入力インターフェースを含むかまたはそれに結合され得る。たとえば、電子デバイス１６５１は、ユーザに面するカメラを含み得、ユーザのジェスチャー（たとえば、手のジェスチャー、腕のジェスチャー、アイトラッキング、まぶたの瞬きなど）を検出し得る。別の例では、電子デバイス１６５１は、マウスに結合され得、マウスクリックを検出し得る。いくつかの構成では、ユーザ入力が必要でないことがあることに留意されたい。
【０２１８】
[00238]いくつかの構成では、電子デバイス１６５１は、動きセンサー（たとえば、（１つまたは複数の）ジャイロスコープ、（１つまたは複数の）加速度計など）を随意に含み得る。たとえば、動きセンサーは、（たとえば、電子デバイス１６５１の）動きおよび／または配向を検出し得る。いくつかの構成では、レンダリングされている画像は、動きおよび／または配向情報に基づき得る。たとえば、電子デバイス１６５１は、ヘッドマウントディスプレイ（たとえば、仮想現実（ＶＲ）ヘッドセット、拡張現実（ＡＲ）ヘッドセットなど）、車両（たとえば、自動車、ドローン、飛行機など）、モバイルデバイス（たとえば、スマートフォン）、あるいは画像をレンダリングするために動きおよび／または配向情報を利用し得る他のデバイスであり得る。たとえば、動きおよび／または配向情報は、レンダリングされたシーンにおける一般的な閲覧方向を示し得る。電子デバイス１６５１は、いくつかの構成では、アイトラッキング情報に加えて、またはそれの代替として、この閲覧方向に基づいて画像をレンダリングし得る。
【０２１９】
[00239]図１７は、複数のゾーンをレンダリングするための方法１７００を示す流れ図である。方法１７００は、図１６に関して説明された電子デバイス１６５１によって実行され得る。
【０２２０】
[00240]電子デバイス１６５１は、１７０２において、画像の第１のゾーンをレンダリングする。これは、図１６に関して上記で説明されたように達成され得る。たとえば、電子デバイス１６５１は、画像の第１のゾーンに対応する、ジオメトリフェッチング（たとえば、頂点フェッチング）、頂点シェーディング、テッセレーション制御シェーディング、テッセレーション、テッセレーション評価シェーディング、ジオメトリシェーディング、タイリング、ラスタライジング、および／またはフラグメントシェーディングのうちの１つまたは複数を実行し得る。
【０２２１】
[00241]電子デバイス１６５１は、１７０４において、画像の第２のゾーンをレンダリングする。これは、図１６に関して上記で説明されたように達成され得る。たとえば、電子デバイス１６５１は、画像の第２のゾーンに対応する、ジオメトリフェッチング（たとえば、頂点フェッチング）、頂点シェーディング、テッセレーション制御シェーディング、テッセレーション、テッセレーション評価シェーディング、ジオメトリシェーディング、タイリング、ラスタライジング、および／またはフラグメントシェーディングのうちの１つまたは複数を実行し得る。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有し得る。たとえば、第１のゾーンは、第２のゾーンのためのテッセレーション設定よりも高いテッセレーション設定（たとえば、より高いジオメトリ密度）を有し得る。
【０２２２】
[00242]電子デバイス１６５１は、１７０６において、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示する。これは、図１６に関して上記で説明されたように達成され得る。たとえば、第１のゾーンおよび第２のゾーンは、ウィンドウ（たとえば、ウインドシールド）の別個のセクション上におよび／または異なるウィンドウ上に提示され得る。
【０２２３】
[00243]図１８は、ウィンドウディスプレイのいくつかの例１８７７ａ〜ｂを示す図である。特に、例Ａ１８７７ａは、ウィンドウＡ１８７９ａ（たとえば、ウインドシールド）を示す。例Ａ１８７７ａでは、プロジェクタ１８８１が、画像をウィンドウＡ１８７９ａ上に投影するために取り付けられる。たとえば、１つまたは複数のプロジェクタ１８８１が、車両のダッシュボード、ドア、天井および／または壁（たとえば、フレーミング）に取り付けられ得る。いくつかの構成では、単一のプロジェクタ１８８１が、画像を１つまたは複数のウィンドウに投影するように構成され得る。他の構成では、複数のプロジェクタ１８８１が、画像を１つまたは複数のウィンドウに投影するように構成され得る。いくつかの構成では、プロジェクタ１８８１は、取外し可能なデバイスおよび／またはモバイルデバイスに取り付けられ得る。
【０２２４】
[00244]例Ｂ１８７７ｂは、ウィンドウＢ１８７９ｂ（たとえば、ウインドシールド）を示す。例Ｂ１８７７ｂでは、一体型ディスプレイ１８８３がウィンドウＢ１８７９に取り付けられ得る。たとえば、一体型ディスプレイ１８８３は、透明または半透明であり得る。一体型ディスプレイ１８８３は、ウィンドウＢ１８７９ｂ上に画像を提示し得る。たとえば、一体型ディスプレイ１８８３は、ＬＤＣパネル、ＯＬＥＤパネルなどであり得る。いくつかの構成では、単一のプロジェクタ一体型ディスプレイ１８８３が、１つまたは複数のウィンドウ上に画像を提示するように構成され得る。他の構成では、複数の一体型ディスプレイ１８８３が、１つまたは複数のウィンドウ上に画像を提示するように構成され得る。ウィンドウプロジェクタおよび／または一体型ディスプレイが、多くの種類のウィンドウ（たとえば、車両、建造物、飛行機、ボート、路面電車、列車などにおける（１つまたは複数の）ウィンドウ）で実装され得ることに留意されたい。
【０２２５】
[00245]図１９は、ウィンドウ１９７９上のゾーン１９８５ａ〜ｂの一例を示す図である。この例では、ゾーンＡ１９８５ａは、ウィンドウ１９７９（たとえば、ウインドシールド）のある側のセクション（たとえば、左側セクション）であり、ゾーンＢ１９８５ｂは、ウィンドウの別の側のセクション（たとえば、右側セクション）である。ウィンドウ１９７９が、たとえば、車両におけるウインドシールドであると仮定すると、電子デバイス１６５１（たとえば、マルチゾーンレンダラ１６６３）は、運転者側に対応するゾーン（たとえば、ゾーンＡ１９８５ａ）において、より高い詳細レベルをレンダリングし得る。より低い詳細レベルが、同乗者側に対応するゾーン（たとえば、ゾーンＢ１９８５ｂ）においてレンダリングされ得る。このようにして、運転者は、運転者が一般に見るエリアにおいて、より高い詳細レベルの画像の閲覧し得る。異なる数のゾーンがレンダリングされ得ることに留意されたい。追加または代替として、ゾーン１９８５ａとゾーン１９８５ｂとは各々、ウィンドウ１９７９の１／２または異なる比率（たとえば、７０％対３０％）を占有し得る。
【０２２６】
[00246]図２０は、ウィンドウ２０７９上のゾーン２０８５ａ〜ｃの別の例を示す図である。この例では、ゾーンＡ２０８５ａは、ウィンドウ２０７９（たとえば、ウインドシールド）の中間部分にわたる水平バーである。ゾーンＢ２０８５ｂは、ゾーンＡ２０８５ａに接する２つの水平バーを含み、ゾーンＣ２０８５ｃは、ゾーンＢ２０８５ｂに接する２つの水平バーを含む。ウィンドウ２０７９が、たとえば、車両におけるウインドシールドであると仮定すると、電子デバイス１６５１（たとえば、マルチゾーンレンダラ１６６３）は、ゾーンＡ２０８５ａにおいて、より高い詳細レベルをレンダリングし得る。より低い詳細レベルが、ゾーンＢ２０８５ｂにおいてレンダリングされ得る。さらにより低い詳細レベルが、ゾーンＣ２０８５ｃにおいてレンダリングされ得る。このようにして、運転者は、ウインドシールドの範囲にわたって見るときに運転者が見るエリアにおいて、より高い詳細レベルの画像の閲覧し得る。異なる数のゾーンがレンダリングされ得ることに留意されたい。追加または代替として、ゾーン２０８５ａとゾーン２０８５ｂとゾーン２０８５ｃとは各々、ウィンドウ２０７９の等しい比率または異なる比率（たとえば、５０％／３０％／２０％）を占有し得る。
【０２２７】
[00247]図２１は、複数のウィンドウ２１７９ａ〜ｅ上のゾーン２１８５ａ〜ｃの別の例を示す図である。この例では、ゾーンＡ２１８５ａは、ウィンドウＡ２１７９ａ（たとえば、ウインドシールド）上にレンダリングされる。ゾーンＢ２１８５ｂは、ウィンドウＢ２１７９ｂおよびウィンドウＣ２１７９ｃ（たとえば、フロント左ウィンドウおよびフロント右ウィンドウ）上にレンダリングされる。ゾーンＣ２１８５ｃは、ウィンドウＤ２１７９ｄおよびウィンドウＥ２１７９ｅ（たとえば、バック左ウィンドウおよびバック右ウィンドウ）上にレンダリングされる。ウィンドウＡ２１７９ａが、たとえば、車両におけるウインドシールドであると仮定すると、電子デバイス１６５１（たとえば、マルチゾーンレンダラ１６６３）は、ゾーンＡ２１８５ａにおいて、より高い詳細レベルをレンダリングし得る。より低い詳細レベルが、ゾーンＢ２１８５ｂにおいてレンダリングされ得る。さらにより低い詳細レベルが、ゾーンＣ２１８５ｃにおいてレンダリングされ得る。このようにして、運転者は、ウインドシールドの外を見るときに運転者が見るエリアにおいて、より高い詳細レベルの画像の閲覧し得る。ゾーンの異なる構成および／または異なる数のゾーンがレンダリングされ得ることに留意されたい。たとえば、ゾーンＣ２１８５ｃ（または別のゾーン）が、リアウインドウ上にレンダリングされ得る。
【０２２８】
[00248]図２２は、複数のゾーンをレンダリングするための方法２２００のより具体的な構成を示す流れ図である。方法２２００は、図１６に関して説明された電子デバイス１６５１によって実行され得る。
【０２２９】
[00249]電子デバイス１６５１は、２２０２においてアイトラッキングを実行する。これは、図３、図５および図１６のうちの１つまたは複数に関して説明されたように達成され得る。たとえば、電子デバイス１６５１は、ユーザ（たとえば、１人または複数のユーザ）の１つまたは複数の画像をキャプチャし得る。電子デバイス１６５１は、（１つまたは複数の）画像における１人または複数のユーザの１つまたは複数の眼を識別し得る。電子デバイス１６５１は、次いで、１つまたは複数のディスプレイ（たとえば、ディスプレイ１６７３）および／または（１つまたは複数の）ディスプレイ上の（１つまたは複数の）画像に対してどこに１人または複数のユーザの（１つまたは複数の）眼が向けられているかを決定し得る。
【０２３０】
[00250]電子デバイス１６５１は、２２０４において、アイトラッキングに基づいて画像の第１のゾーンをレンダリングする。これは、図１〜図５および図８〜図１７のうちの１つまたは複数に関して説明されたように達成され得る。たとえば、電子デバイス１６５１は、画像の第１のゾーンに対応する、ジオメトリフェッチング（たとえば、頂点フェッチング）、頂点シェーディング、テッセレーション制御シェーディング、テッセレーション、テッセレーション評価シェーディング、ジオメトリシェーディング、タイリング、ラスタライジング、および／またはフラグメントシェーディングのうちの１つまたは複数を実行し得る。第１のゾーンのロケーションは、アイトラッキングに基づき得る。たとえば、電子デバイス１６５１は、ユーザの（１つまたは複数の）眼が向けられているロケーションの周りの画像のセクションとして、第１のゾーンを確立し得る。いくつかの構成では、第１のゾーンは、ユーザが見ているディスプレイ（たとえば、画像）の点を近似的に中心とする円形エリア（または別の形状のエリア）であり得る。他の構成では、第１のゾーンは、ユーザが閲覧しているウィンドウに対応する画像のエリア全体であり得る。
【０２３１】
[00251]電子デバイス１６５１は、２２０６において、アイトラッキングに基づいて画像の第２のゾーンをレンダリングする。これは、図１〜図５および図８〜図１７のうちの１つまたは複数に関して説明されたように達成され得る。たとえば、電子デバイス１６５１は、画像の第２のゾーンに対応する、ジオメトリフェッチング（たとえば、頂点フェッチング）、頂点シェーディング、テッセレーション制御シェーディング、テッセレーション、テッセレーション評価シェーディング、ジオメトリシェーディング、タイリング、ラスタライジング、および／またはフラグメントシェーディングのうちの１つまたは複数を実行し得る。第１のゾーンは、第２のゾーンよりも高いテッセレーション詳細レベルを有し得る。たとえば、第１のゾーンは、第２のゾーンのためのテッセレーション設定よりも高いテッセレーション設定（たとえば、より高いジオメトリ密度）を有し得る。第２のゾーンのロケーションは、アイトラッキングに基づき得る。いくつかの構成では、電子デバイス１６５１は、第１のゾーンの周りの画像のセクションとして、第２のゾーンを確立し得る。たとえば、第２のゾーンは、第１のゾーンを囲む円形エリア（または別の形状のエリア）であり得る。他の構成では、第２のゾーンは、ユーザが閲覧していないウィンドウに対応する画像のエリアであり得る。また他の構成では、第２のゾーンは、第１のゾーンを除く全画像であり得る。より多くのゾーンがレンダリングされ得ることに留意されたい。ゾーンは、重複することも重複しないこともある。いくつかの構成では、ゾーンレンダリングは、図１６に関して説明されたように優先度を付けられ得る。
【０２３２】
[00252]電子デバイス１６５１は、２２０８において、少なくとも１つの車両ウィンドウ上に第１のゾーンと第２のゾーンとを提示する。これは、図１６〜図２１のうちの１つまたは複数に関して上記で説明されたように達成され得る。たとえば、第１のゾーンおよび第２のゾーンは、ウィンドウ（たとえば、ウインドシールド）の別個のセクション上におよび／または異なるウィンドウ上に提示され得る。
【０２３３】
[00253]図２３は、ウィンドウ２３７９上のゾーン２３８５ａ〜ｃの別の例を示す図である。この例では、ゾーンＡ２３８５ａは、アイトラッキングに基づく、ユーザが見ているウィンドウ２３７９（たとえば、ウインドシールド）の円形エリアである。ゾーンＢ２３８５ｂは、ゾーンＡ２３８５ａを囲む円形エリアである。ゾーンＣ２３８５ｃは、ゾーンＡ２３８５ａとゾーンＢ２３８５ｂとを含まないウィンドウ２３７９のエリアである。ウィンドウ２３７９が、たとえば、車両におけるウインドシールドであると仮定すると、電子デバイス１６５１（たとえば、マルチゾーンレンダラ１６６３）は、ゾーンＡ２３８５ａにおいて、より高い詳細レベルをレンダリングし得る。より低い詳細レベルが、ゾーンＢ２３８５ｂにおいてレンダリングされ得る。さらにより低い詳細レベルが、ゾーンＣ２３８５ｃにおいてレンダリングされ得る。このようにして、運転者は、運転者が現在見ているエリア（ウインドシールド上のどこか）において、より高い詳細レベルの画像の閲覧し得る。異なる数のゾーンがレンダリングされ得ることに留意されたい。
【０２３４】
[00254]図２４は、電子デバイス２４８７内に含まれ得るいくつかの構成要素を示す。電子デバイス２４８７は、カメラ、ビデオカムコーダ、デジタルカメラ、セルラーフォン、スマートフォン、コンピュータ（たとえば、デスクトップコンピュータ、ラップトップコンピュータなど）、タブレットデバイス、メディアプレーヤ、テレビジョン、車両、ヘッドセット（たとえば、仮想現実ヘッドセット、拡張現実ヘッドセット）、ヘッドマウントディスプレイ、パーソナルカメラ、アクションカメラ、監視カメラ、取り付けられたカメラ、接続されたカメラ、ロボット、航空機、ドローン、無人航空機（ＵＡＶ）、ヘルスケア機器、ゲーミングコンソール、携帯情報端末（ＰＤＡ）、セットトップボックスなどであり得る（またはそれらの内部に含まれ得る）。電子デバイス２４８７は、本明細書で説明された電子デバイス１０２、３０２、８６６、９０２、１０６６、１１０２、１２６６、１３０２、１４６６、１５０２、１６５１のうちの１つまたは複数に従って実装され得る。
【０２３５】
[00255]電子デバイス２４８７はプロセッサ２４０７を含む。プロセッサ２４０７は、汎用シングルまたはマルチチップマイクロプロセッサ（たとえば、ＡＲＭ）、専用マイクロプロセッサ（たとえば、デジタル信号プロセッサ（ＤＳＰ））、マイクロコントローラ、プログラマブルゲートアレイなどであり得る。プロセッサ２４０７は、中央処理ユニット（ＣＰＵ）および／またはＶＬＩＷ回路（たとえば、ＧＰＵ）と呼ばれることがある。プロセッサ２４０７は、本明細書で説明されたＶＬＩＷ回路１０４、３０４、８６８、９０４、１０６８、１１０４、１２６８、１３０４、１４６８、１５０４および／またはプロセッサ３２４、１０１５、１１２４、１６６１のうちの１つまたは複数に従って実装され得る。電子デバイス２４８７中に単一のプロセッサ２４０７のみが示されているが、代替構成では、プロセッサの組合せ（たとえば、ＡＲＭとＤＳＰ、ＣＰＵとＧＰＵなど）が使用され得る。
【０２３６】
[00256]電子デバイス２４８７はメモリ２４８９をも含む。メモリ２４８９は、電子情報を記憶することが可能な任意の電子的構成要素であり得る。メモリ２４８９は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、磁気ディスク記憶媒体、光記憶媒体、ＲＡＭ中のフラッシュメモリデバイス、プロセッサに含まれるオンボードメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタなど、およびそれらの組合せとして実施され得る。メモリ２４８９は、本明細書で説明されたメモリ１１０、１１４、３１０、３１４、８０３、８０５、９１０、９１４、１００３、１００５、１１１０、１１１４、１２０３、１２０５、１３１０、１３１４、１４０３、１４０５、１５１０、１５１４、１６６７のうちの１つまたは複数に従って実装され得る。
【０２３７】
[00257]データ２４９３ａおよび命令２４９１ａがメモリ２４８９に記憶され得る。命令２４９１ａは、本明細書で説明された方法２００、５００、６００、１７００、２２００のうちの１つまたは複数を実装するために、プロセッサ２４０７によって実行可能であり得る。命令２４９１ａを実行することは、メモリ２４８９に記憶されたデータ２４９３ａの使用を伴い得る。プロセッサ２４０７が命令２４９１を実行すると、命令２４９１ｂの様々な部分がプロセッサ２４０７上にロードされ得、様々ないくつかのデータ２４９３ｂがプロセッサ２４０７上にロードされ得る。
【０２３８】
[00258]電子デバイス２４８７は、電子デバイス２４８７との間での信号の送信および受信を可能にするために、送信機２４９７と受信機２４９９とをも含み得る。送信機２４９７および受信機２４９９は、トランシーバ２４０１と総称されることがある。１つまたは複数のアンテナ２４０９ａ〜ｂがトランシーバ２４０１に電気的に結合され得る。電子デバイス２４８７は、複数の送信機、複数の受信機、複数のトランシーバおよび／または追加のアンテナをも含み得る（図示せず）。
【０２３９】
[00259]電子デバイス２４８７はデジタル信号プロセッサ（ＤＳＰ）２４０３を含み得る。電子デバイス２４８７は通信インターフェース２４０５をも含み得る。通信インターフェース２４０５は、１つまたは複数の種類の入力および／または出力を可能にし得る。たとえば、通信インターフェース２４０５は、他のデバイスを電子デバイス２４８７にリンクするための１つまたは複数のポートおよび／または通信デバイスを含み得る。追加または代替として、通信インターフェース２４０５は、１つまたは複数の他のインターフェース（たとえば、タッチスクリーン、キーパッド、キーボード、マイクロフォン、カメラなど）を含み得る。たとえば、通信インターフェース２４０５は、ユーザが電子デバイス２４８７と対話することを可能にし得る。
【０２４０】
[00260]電子デバイス２４８７の様々な構成要素は、電力バス、制御信号バス、ステータス信号バス、データバスなどを含み得る、１つまたは複数のバスによって互いに結合され得る。明快のために、図２４では様々なバスはバスシステム２４９５として示されている。
【０２４１】
[00261]「決定すること」という用語は多種多様なアクションを包含し、したがって、「決定すること」は、計算すること（calculating）、計算すること（computing）、処理すること、導出すること、調査すること、ルックアップすること（たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること）、確認することなどを含むことができる。また、「決定すること」は、受信すること（たとえば、情報を受信すること）、アクセスすること（たとえば、メモリ中のデータにアクセスすること）などを含むことができる。また、「決定すること」は、解決すること、選択すること、選定すること、確立することなどを含むことができる。
【０２４２】
[00262]「に基づいて」という句は、別段に明示されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という句は、「のみに基づいて」と「に少なくとも基づいて」の両方を表す。
【０２４３】
[00263]「プロセッサ」という用語は、汎用プロセッサ、中央処理ユニット（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、グラフィックス処理ユニット（ＧＰＵ）、コントローラ、マイクロコントローラ、状態機械などを包含するものと広く解釈されたい。いくつかの状況下では、「プロセッサ」は、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを指すことがある。「プロセッサ」という用語は、処理デバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、ＣＰＵとＧＰＵとの組合せ、あるいは他のそのような構成を指すことがある。
【０２４４】
[00264]「メモリ」という用語は、電子情報を記憶することが可能な任意の電子的構成要素を包含するものと広く解釈されたい。メモリという用語は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データストレージ、レジスタなど、様々なタイプのプロセッサ可読媒体を指すことがある。プロセッサがメモリから情報を読み取り、および／または情報をメモリに書き込むことができる場合、メモリはプロセッサと電子通信していると言われる。プロセッサに一体化されたメモリは、プロセッサと電子通信している。
【０２４５】
[00265]「命令」および「コード」という用語は、任意のタイプの（１つまたは複数の）コンピュータ可読ステートメントを含むものと広く解釈されたい。たとえば、「命令」および「コード」という用語は、１つまたは複数のプログラム、ルーチン、サブルーチン、関数、プロシージャなどを指すことがある。「命令」および「コード」は、単一のコンピュータ可読ステートメントまたは多くのコンピュータ可読ステートメントを備え得る。
【０２４６】
[00266]本明細書で説明された機能は、ハードウェアによって実行されるソフトウェアまたはファームウェアで実装され得る。機能は、１つまたは複数の命令としてコンピュータ可読媒体上に記憶され得る。「コンピュータ可読媒体」または「コンピュータプログラム製品」という用語は、コンピュータまたはプロセッサによってアクセスされ得る任意の有形記憶媒体を指す。限定ではなく例として、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。コンピュータ可読媒体は有形で非一時的であり得ることに留意されたい。「コンピュータプログラム製品」という用語は、コンピューティングデバイスまたはプロセッサによって実行、処理または計算され得るコードまたは命令（たとえば、「プログラム」）と組み合わせたコンピューティングデバイスまたはプロセッサを指す。本明細書で使用される「コード」という用語は、コンピューティングデバイスまたはプロセッサによって実行可能であるソフトウェア、命令、コードまたはデータを指すことがある。
【０２４７】
[00267]ソフトウェアまたは命令はまた、伝送媒体を介して送信され得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線およびマイクロ波などのワイヤレス技術は、伝送媒体の定義に含まれる。
【０２４８】
[00268]本明細書で開示される方法は、説明された方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、説明された方法の適切な動作のためにステップまたはアクションの特定の順序が必要とされない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲を逸脱することなく修正され得る。
【０２４９】
[00269]さらに、本明細書で説明された方法および技法を実行するためのモジュールおよび／または他の適切な手段は、デバイスによってダウンロードされ、および／または他の方法で取得され得ることを諒解されたい。たとえば、デバイスは、本明細書で説明された方法を実行するための手段の転送を可能にするために、サーバに結合され得る。代替的に、本明細書で説明された様々な方法は、デバイスが、記憶手段をそのデバイスに結合するかまたは与えると様々な方法を取得し得るように、記憶手段（たとえば、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）またはフロッピーディスクなどの物理記憶媒体など）によって与えられ得る。
【０２５０】
[00270]特許請求の範囲は、上記で示された厳密な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、本明細書で説明されたシステム、方法、および装置の構成、動作および詳細において、様々な修正、変更、および変形が行われ得る。
【図１】
2019510993.tif 000003
【図２】
2019510993.tif 000004
【図３】
2019510993.tif 000005
【図４】
2019510993.tif 000006
【図５】
2019510993.tif 000007
【図６】
2019510993.tif 000008
【図７】
2019510993.tif 000009
【図８】
2019510993.tif 000010
【図９】
2019510993.tif 000011
【図１０】
2019510993.tif 000012
【図１１】
2019510993.tif 000013
【図１２】
2019510993.tif 000014
【図１３】
2019510993.tif 000015
【図１４】
2019510993.tif 000016
【図１５】
2019510993.tif 000017
【図１６】
2019510993.tif 000018
【図１７】
2019510993.tif 000019
【図１８】
2019510993.tif 000020
【図１９】
2019510993.tif 000021
【図２０】
2019510993.tif 000022
【図２１】
2019510993.tif 000023
【図２２】
2019510993.tif 000024
【図２３】
2019510993.tif 000025
【図２４】
2019510993.tif 000026
【手続補正書】
【提出日】平成30年9月25日(2018.9.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高い幾何学的なテッセレーション詳細レベルを有し、前記テッセレーション詳細レベルは、少なくとも１つの車両ウィンドウの少なくとも１つのセクションに基づいている、
前記少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を行うように構成されたプロセッサ
を備える、電子デバイス。
【請求項２】
前記電子デバイスが、少なくとも１つのディスプレイを備え、前記プロセッサが、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを前記少なくとも１つのディスプレイに送るように構成された、請求項１に記載の電子デバイス。
【請求項３】
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、請求項２に記載の電子デバイス。
【請求項４】
前記プロセッサが、第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項５】
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、請求項４に記載の電子デバイス。
【請求項６】
前記プロセッサが、ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項７】
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、請求項６に記載の電子デバイス。
【請求項８】
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、請求項６に記載の電子デバイス。
【請求項９】
前記プロセッサが、
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
を行うように構成された、請求項１に記載の電子デバイス。
【請求項１０】
前記プロセッサが、
複数のユーザについてアイトラッキングを実行することと、
前記アイトラッキングに基づいて、ゾーンレンダリングに優先度を付けることと、ここにおいて、ゾーンレンダリングに優先度を付けることは、第１のタイミングで、または第１の詳細レベルの少なくとも１つを有する第１のユーザに対応する前記第１のゾーンをレンダリングすることと、第２の後のタイミングで、または第２のより低い詳細レベルの少なくとも１つを有する第２のユーザに対応する前記第２のゾーンをレンダリングすることとを備える、
を行うように構成された、請求項９に記載の電子デバイス。
【請求項１１】
前記プロセッサが、第３のゾーンをレンダリングするように構成され、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、請求項１に記載の電子デバイス。
【請求項１２】
前記プロセッサが、前記少なくとも１つの車両ウィンドウ上に前記第３のゾーンを提示するように構成された、請求項１に記載の電子デバイス。
【請求項１３】
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、請求項１に記載の電子デバイス。
【請求項１４】
電子デバイスによって実行される方法であって、前記方法は、
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高い幾何学的なテッセレーション詳細レベルを有し、前記テッセレーション詳細レベルは、少なくとも１つの車両ウィンドウの少なくとも１つのセクションに基づいている、
前記少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を備える、方法。
【請求項１５】
前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送ることをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、請求項１５に記載の方法。
【請求項１７】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、請求項１４に記載の方法。
【請求項１８】
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、請求項１７に記載の方法。
【請求項１９】
ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示することをさらに備える、請求項１４に記載の方法。
【請求項２０】
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、請求項１９に記載の方法。
【請求項２１】
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、請求項１９に記載の方法。
【請求項２２】
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
をさらに備える、請求項１４に記載の方法。
【請求項２３】
第３のゾーンをレンダリングすることをさらに備え、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、請求項１４に記載の方法。
【請求項２４】
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、請求項１４に記載の方法。
【請求項２５】
その上に命令を有する非一時的有形コンピュータ可読媒体を備える、コンピュータプログラム製品であって、前記命令は、
電子デバイスに、画像の第１のゾーンをレンダリングさせるためのコードと、
前記電子デバイスに、前記画像の第２のゾーンをレンダリングさせるためのコードと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高い幾何学的なテッセレーション詳細レベルを有し、前記テッセレーション詳細レベルは、少なくとも１つの車両ウィンドウの少なくとも１つのセクションに基づいている、
前記電子デバイスに、前記少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示させるためのコードと
を備える、コンピュータプログラム製品。
【請求項２６】
前記命令は、前記電子デバイスに、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送らせるためのコードを備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
画像の第１のゾーンをレンダリングするための手段と、
前記画像の第２のゾーンをレンダリングための手段と、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高い幾何学的なテッセレーション詳細レベルを有し、前記テッセレーション詳細レベルは、少なくとも１つの車両ウィンドウの少なくとも１つのセクションに基づいている、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示するための手段と
を備える、装置。
【請求項２９】
提示するための前記手段が、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送るための手段を備える、請求項２８に記載の装置。
【請求項３０】
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するための手段をさらに備える、請求項２８に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２５０
【補正方法】変更
【補正の内容】
【０２５０】
[00270]特許請求の範囲は、上記で示された厳密な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、本明細書で説明されたシステム、方法、および装置の構成、動作および詳細において、様々な修正、変更、および変形が行われ得る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を行うように構成されたプロセッサ
を備える、電子デバイス。
［Ｃ２］
前記電子デバイスが、少なくとも１つのディスプレイを備え、前記プロセッサが、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを前記少なくとも１つのディスプレイに送るように構成された、Ｃ１に記載の電子デバイス。
［Ｃ３］
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、Ｃ２に記載の電子デバイス。
［Ｃ４］
前記プロセッサが、第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するように構成された、Ｃ１に記載の電子デバイス。
［Ｃ５］
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、Ｃ４に記載の電子デバイス。
［Ｃ６］
前記プロセッサが、ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示するように構成された、Ｃ１に記載の電子デバイス。
［Ｃ７］
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、Ｃ６に記載の電子デバイス。
［Ｃ８］
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、Ｃ６に記載の電子デバイス。
［Ｃ９］
前記プロセッサが、
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
を行うように構成された、Ｃ１に記載の電子デバイス。
［Ｃ１０］
前記プロセッサが、
複数のユーザについてアイトラッキングを実行することと、
前記アイトラッキングに基づいて、ゾーンレンダリングに優先度を付けることと
を行うように構成された、Ｃ９に記載の電子デバイス。
［Ｃ１１］
前記プロセッサが、第３のゾーンをレンダリングするように構成され、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、Ｃ１に記載の電子デバイス。
［Ｃ１２］
前記プロセッサが、前記少なくとも１つの車両ウィンドウ上に前記第３のゾーンを提示するように構成された、Ｃ１に記載の電子デバイス。
［Ｃ１３］
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、Ｃ１に記載の電子デバイス。
［Ｃ１４］
電子デバイスによって実行される方法であって、前記方法は、
画像の第１のゾーンをレンダリングすることと、
前記画像の第２のゾーンをレンダリングすることと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示することと
を備える、方法。
［Ｃ１５］
前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送ることをさらに備える、Ｃ１４に記載の方法。
［Ｃ１６］
前記少なくとも１つのディスプレイが、ウィンドウプロジェクタまたは一体型ウィンドウディスプレイパネルである、Ｃ１５に記載の方法。
［Ｃ１７］
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、Ｃ１４に記載の方法。
［Ｃ１８］
前記第１のウィンドウが前面ウインドシールドであり、前記第２のウィンドウが、車両の別のウィンドウである、Ｃ１７に記載の方法。
［Ｃ１９］
ウィンドウの第１のセクション上に前記第１のゾーンを提示し、前記ウィンドウの第２のセクション上に前記第２のゾーンを提示することをさらに備える、Ｃ１４に記載の方法。
［Ｃ２０］
前記第１のセクションが、ウインドシールドのある側のセクションであり、前記第２のセクションが、前記ウインドシールドの別の側のセクションである、Ｃ１９に記載の方法。
［Ｃ２１］
前記第１のセクションが、ウインドシールドにわたる第１の水平バーであり、前記第２のセクションが、前記ウインドシールドにわたる第２の水平バーである、Ｃ１９に記載の方法。
［Ｃ２２］
アイトラッキングを実行することと、
前記アイトラッキングに基づいて、前記第１のゾーンと前記第２のゾーンとをレンダリングすることと
をさらに備える、Ｃ１４に記載の方法。
［Ｃ２３］
第３のゾーンをレンダリングすることをさらに備え、ここにおいて、前記第３のゾーンが、前記第１のゾーンおよび前記第２のゾーンよりも低いテッセレーション詳細レベルを有する、Ｃ１４に記載の方法。
［Ｃ２４］
前記電子デバイスが、車両中の取外し可能なモジュールの少なくとも一部である、Ｃ１４に記載の方法。
［Ｃ２５］
その上に命令を有する非一時的有形コンピュータ可読媒体を備える、コンピュータプログラム製品であって、前記命令は、
電子デバイスに、画像の第１のゾーンをレンダリングさせるためのコードと、
前記電子デバイスに、前記画像の第２のゾーンをレンダリングさせるためのコードと、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
前記電子デバイスに、少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示させるためのコードと
を備える、コンピュータプログラム製品。
［Ｃ２６］
前記命令は、前記電子デバイスに、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送らせるためのコードを備える、Ｃ２５に記載のコンピュータプログラム製品。
［Ｃ２７］
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示することをさらに備える、Ｃ２５に記載のコンピュータプログラム製品。
［Ｃ２８］
画像の第１のゾーンをレンダリングするための手段と、
前記画像の第２のゾーンをレンダリングための手段と、ここにおいて、前記第１のゾーンが、前記第２のゾーンよりも高いテッセレーション詳細レベルを有する、
少なくとも１つの車両ウィンドウ上に前記第１のゾーンと前記第２のゾーンとを提示するための手段と
を備える、装置。
［Ｃ２９］
提示するための前記手段が、前記第１のゾーンと前記第２のゾーンとを提示するために、前記第１のゾーンと前記第２のゾーンとを少なくとも１つのディスプレイに送るための手段を備える、Ｃ２８に記載の装置。
［Ｃ３０］
第１のウィンドウ上に前記第１のゾーンを提示し、第２のウィンドウ上に前記第２のゾーンを提示するための手段をさらに備える、Ｃ２８に記載の装置。
【国際調査報告】
2019510993.tif 000027
2019510993.tif 000028
2019510993.tif 000029