(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、
第１のプリミティブが、第２のプリミティブに少なくとも部分的にオーバーラップすることを確認するステップであって、前記第２のプリミティブは、前記第１のプリミティブによってオーバーラップされる第１の部分と、前記第１のプリミティブによってオーバーラップされない第２の部分とを含む、ステップと、
前記第２のプリミティブの前記第２の部分を決定するステップであって、前記第２のプリミティブの前記第２の部分を決定することは：
前記第２のプリミティブの前記第１の部分にオーバーラップする前記第１のプリミティブのピクセル座標域が、オーバーラップするプリミティブについての複雑性の閾値以上であるかどうかを判断することと、
前記第１のプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上でないと判断した場合、前記コンピューティングデバイスの中央処理ユニットに、前記第２のプリミティブの前記第２の部分を計算するよう要求を提示することと、
前記第１のプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上であると判断した場合、グラフィクスプロセッサに、前記第２のプリミティブの前記第２の部分を計算するよう要求を提示することと、
を含む、ステップと、
前記第１のプリミティブの前記ピクセル座標域に基づいて、前記第１のプリミティブと前記第２のプリミティブの前記第１の部分との組合せを処理すべきことを指定する、第１の処理命令を生成するステップと、
前記第１のプリミティブによってオーバーラップされていない前記第２のプリミティブの前記第２の部分を単一のプリミティブとして処理することにより、前記第２のプリミティブを処理すべきことを指定する、第２の処理命令を生成するステップと、
前記第１の処理命令及び前記第２の処理命令を、前記グラフィクスプロセッサによる実行のために提示するステップと、
を含む動作を実行させる、コンピュータプログラム。
【請求項２】
前記確認するステップは、前記第１のプリミティブ及び前記第２のプリミティブを特徴付ける空間データ構造を用いて、前記第２のプリミティブの少なくとも一部分にオーバーラップする前記第１のプリミティブの前記ピクセル座標域の少なくとも一部分を決定する、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記動作は、前記第１のプリミティブ又は前記第２のプリミティブのうちの１つ以上についてアンチエイリアシング情報を指定するよう、前記第１の処理命令又は前記第２の処理命令のうちの１つ以上を修正するステップ、
を含む、請求項１に記載のコンピュータプログラム。
【請求項４】
前記動作は、前記第１のプリミティブの１つ以上の不透明なピクセルが、前記第２のプリミティブの１つ以上のピクセルにオーバーラップする場合、前記第２のプリミティブの前記１つ以上のピクセルが処理されないことを指定するように、前記第１の処理命令を修正するステップ、
を含む、請求項１に記載のコンピュータプログラム。
【請求項５】
デバイスであって：
少なくとも１つのプロセッサと；
１つ以上のコンピュータ読取可能記憶媒体であって、前記少なくとも１つのプロセッサによって実行されると、当該デバイスに、
少なくとも１つのプリミティブが、１つ以上の他のプリミティブに少なくとも部分的にオーバーラップすることを判断するステップであって、前記１つ以上の他のプリミティブは、前記少なくとも１つのプリミティブによってオーバーラップされる第１の部分と、前記少なくとも１つのプリミティブによってオーバーラップされない第２の部分とを含む、ステップと；
前記１つ以上の他のプリミティティブの前記第２の部分を決定する決定ステップであって、
前記１つ以上の他のプリミティブの前記第１の部分にオーバーラップする前記少なくとも１つのプリミティブのピクセル座標域が、オーバーラップするプリミティブについての複雑性の閾値以上であるかどうかを判断することと、
前記少なくとも１つのプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上でない場合、前記少なくとも１つのプロセッサに、前記１つ以上の他のプリミティブの前記第２の部分を計算するよう要求を提示することと、
前記少なくとも１つのプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上である場合、グラフィクスプロセッサに、前記１つ以上の他のプリミティブの前記第２の部分を計算するよう要求を提示することと、
を含む決定ステップと、
前記少なくとも１つのプリミティブと、前記１つ以上の他のプリミティブの前記第１の部分とが表示のために単一のプリミティブに組み合わされるように、前記少なくとも１つのプリミティブと、前記１つ以上の他のプリミティブの前記第１の部分とを一緒に処理し、前記少なくとも１つのプリミティブによってオーバーラップされていない前記１つ以上の他のプリミティブの前記第２の部分を単一のプリミティブとして処理することにより、前記１つ以上の他のプリミティブを処理すべきことを指定する、処理命令を生成するステップと、
前記処理命令を、前記グラフィクスプロセッサへ提示するステップと、
を含む動作を実行させる命令を含む、１つ以上のコンピュータ読取可能記憶媒体と；
を備える、デバイス。
【請求項６】
前記生成するステップは、単一の書込みオペレーションを介して、処理中のメモリへの中間の書込みとは独立に、前記単一のプリミティブをメモリに書き込むべきことを指定する処理命令を生成することを含む、
請求項５に記載のデバイス。
【請求項７】
前記生成するステップは、前記単一のプリミティブに適用すべき１つ以上の視覚的効果を指定する処理命令を生成することを含み、前記視覚的効果は、クリッピング、不透明化、シェーディング又はアンチエイリアスプロシージャのうちの少なくとも１つを含む、
請求項５に記載のデバイス。
【請求項８】
前記生成するステップは、前記少なくとも１つのプリミティブの１つ以上のピクセルが不透明である場合、前記少なくとも１つのプリミティブの前記１つ以上のピクセルによってオーバーラップされる、前記１つ以上の他のプリミティブの１つ以上のピクセルが処理されないことを指定する処理命令を生成することを含む、
請求項５に記載のデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
今日のコンピューティングデバイスは、典型的に、様々なビジュアルコンテンツへのアクセスを有する。しかしながら、ビジュアルコンテンツを表示することは、リソース消費型の可能性がある。例えばアプリケーション用のユーザインタフェースを表示することは、複数のオペレーションを要する可能性がある。そのようなオペレーションの例には、ユーザインタフェース用のグラフィクスデータをメモリから読み出すこと、グラフィクスデータを処理すること、中間の処理結果をメモリ内に格納すること、そしてユーザインタフェース用に最終的に処理された画像をメモリに書き込み、メモリから読み出して表示できるようにすることが含まれる。これらのオペレーションは典型的にフレーム単位で行われるので、貴重なメモリ及び処理リソースを消費する。バッテリで動作するデバイス（例えばモバイルコンピューティングデバイス）では、これらのオペレーションはバッテリを更に消費し、このため充電の寿命を短くする可能性がある。したがって、デバイスのリソースに対するグラフィクスオペレーションの影響を制御することは、重要な考慮事項である。
【発明の概要】
【０００２】
この「発明の概要」における記載は、以下で「発明を実施するための形態」において更に説明される概念の選択を簡略化した形で紹介するために提供される。この「発明の概要」における記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を限定するのに使用されるようにも意図されていない。
【０００３】
複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。プリミティブの例には、線、カーブ、四角形等が含まれ、これらを組み合わせてより大きなグラフィカル要素を生成することができる。したがって、ディスプレイの領域内のピクセルを介してプリミティブをペイントし、アプリケーションのグラフィカルユーザインタフェースの部分のようなグラフィカル要素を生成することができる。
【０００４】
少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内における表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブを、例えばグラフィクスプロセッサによってメモリから読み出すことができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブを、メモリ内に（例えば単一の書込みオペレーションにより）書き込むことができ、処理されたプリミティブにアクセスし、ディスプレイデバイスによって表示することが可能になる。
【図面の簡単な説明】
【０００５】
詳細な説明は、添付の図面との関連で説明される。図面において、参照番号の最も左の桁は、その参照番号が最初に現れる図面を特定する。説明及び図面における異なる例での同じ参照番号の使用は、同様又は同じアイテムを示すことがある。
【図１】本明細書で説明される技術を用いるように動作可能な例示の実装における環境を示す図である。
【図２】１つ以上の実施形態に係る方法のステップを説明するフロー図である。
【図３】１つ以上の実施形態に係る方法のステップを説明するフロー図である。
【図４】１つ以上の実施形態に係る方法のステップを説明するフロー図である。
【図５】１つ以上の実施形態に係る方法のステップを説明するフロー図である。
【図６】１つ以上の実施形態に係る方法のステップを説明するフロー図である。
【図７】１つ以上の実施形態に係る例示の実装シナリオを説明するフロー図である。
【図８】本明細書で説明される技術の実施形態を実装するよう構成される、図１との関連で説明されるような例示のシステム及びコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００６】
＜概要＞
複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。プリミティブの例には、線、カーブ、四角形等が含まれ、これらを組み合わせてより大きなグラフィカル要素を生成することができる。したがって、ディスプレイの領域内の個々のピクセルを介してプリミティブをペイントし、アプリケーションのグラフィカルユーザインタフェースの部分のようなグラフィカル要素を生成することができる。
【０００７】
少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内での表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブを、例えばグラフィクスプロセッサによってメモリから読み出すことができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブを、メモリ内に（例えば単一の書込みオペレーションにより）書き込むことができ、処理されたプリミティブにアクセスして、ディスプレイデバイスによって表示することが可能になる。更なる詳細及び変形が以下で説明される。
【０００８】
以下の説明では、最初に、本明細書で説明される技術を用いるよう動作可能な例示の実施形態を説明する。次の「例示のプロシージャ」というタイトルのセクションで、１つ以上の実施形態に係る、幾つかの例示の方法を説明する。その次に、「例示の実装シナリオ」というタイトルのセクションで、１つ以上の実施形態に係る例示の実装シナリオを説明する。最後に、「例示のシステム及びデバイス」というセクションで、１つ以上の実施形態に従って、本明細書で説明される技術を用いるよう動作可能な例示のシステム及びデバイスを説明する。
【０００９】
１つ以上の実施形態に係る例示の実装を提示してきたので、次に、例示の実装が用いられ得る例示の環境を検討する。
【００１０】
＜例示の環境＞
図１は、本明細書で説明される複数のプリミティブを使用するグラフィクス処理のための技術を用いるように動作可能な例示の実装における環境１００の図である。図示される環境１００は、様々な方法で構成され得るコンピューティングデバイス１０２を含む。例えばコンピューティングデバイス１０２は、図８に関連して更に説明されるような、従来のコンピュータ（例えばデスクトップのパーソナルコンピュータ、ラップトップコンピュータ等）、モバイルステーション、エンターテインメント装置、テレビと通信的に結合されるセットトップボックス、ワイヤレスフォン、ネットブック、ゲームコンソール、ハンドヘルドデバイス（例えばタブレット）等にとして構成されてよい。
【００１１】
コンピューティングデバイス１０２は、コンピューティングデバイス１０２のための様々なタイプのデータ処理を実行する機能を表すプロセッサ１０４を含む。例えばプロセッサ１０４は、コンピューティングデバイス１０２の中央処理ユニット（ＣＰＵ）を表すことができる。プロセッサ１０４の実装の更なる例は、図８に関連して以下で説明される。
【００１２】
さらに、グラフィクスプロセッサ１０６が図示されており、グラフィクスプロセッサ１０６は、コンピューティングデバイス１０２の様々なグラフィクス関連のタスクを実行する機能を表す。グラフィクスプロセッサ１０６は、例えばコンピューティングデバイス１０２のグラフィクス処理ユニット（ＧＰＵ）を表すことができる。
【００１３】
コンピューティングデバイス１０２は、アプリケーション１０８及びグラフィクス管理モジュール１１０を更に含む。アプリケーション１０８は、コンピューティングデバイス１０２を介して様々なタスクを実行する機能を表す。アプリケーション１０８の例には、ワードプロセッサアプリケーション、電子メールアプリケーション、コンテンツ編集アプリケーション、ウェブブラウジングアプリケーション等が含まれる。
【００１４】
グラフィクス管理モジュール１１０は、本明細書で検討される複数のプリミティブを使用するグラフィクス処理のための技術に対して更なるタスクを実行する機能を表す。例えばグラフィクス管理モジュール１１０を、コンピューティングデバイス１０２のオペレーティングシステムのコンポーネントとして実装することができる。しかしながら、実施形態は、グラフィクス管理モジュール１１０の様々な異なる構成及び実装を用いることができる。グラフィクス管理モジュール１１０の実装に関する更なる詳細は、以下で説明される。
【００１５】
コンピューティングデバイス１０２はメモリ１１２を更に含み、メモリ１１２は、コンピューティングデバイス１０２の様々な機能により書き込み及び読み出しを行うことができる、データ記憶媒体を表す。メモリ１１２は、例えばコンピューティングデバイス１０２の主メモリを表すことができる。メモリ１１２の更なる詳細及び例は、図８に関連して以下で説明される。
【００１６】
コンピューティングデバイス１０２のためのグラフィクスを出力するように構成されるディスプレイ１１４も図示されている。例えばアプリケーション１０８の１つが現在実行中であり、ディスプレイデバイス１１４を介して表示されるべきアプリケーション１０８のグラフィック要素を提示する例示の実装を検討する。プロセッサ１０４を使用して、グラフィクス管理モジュール１１０は、本明細書で説明される技術を実装して、グラフィクス要素を調べて、そのグラフィクス要素が、グラフィクスプロセッサ１０６によりどのように処理されるべきかに関する決定を行うことができる。本明細書で詳述されるように、グラフィクス要素のついての処理の決定は、プリミティブのオーバーラップ、グラフィクス要素に適用されるべき視覚的効果、グラフィクス要素の視覚的な複雑性等といった、グラフィクス要素の様々な特性に基づくことができる。
【００１７】
処理の決定に基づいて、グラフィクス管理モジュール１１０は、グラフィクス要素をどのように処理すべきかを指定する、グラフィクス要素のための処理命令を生成する。本明細書で使用されるとき、「命令」という用語は、プロセッサによって読み取って処理することができる実行可能コードのような、コンピュータ実行可能な命令を指す。グラフィクス管理モジュール１１０は、処理命令をグラフィクスプロセッサ１０６へ提示し、グラフィクスプロセッサ１０６は、メモリ１１２からグラフィクス要素を読み出し、処理命令を使用してグラフィクス要素を処理する。グラフィクスプロセッサ１０６は、処理されたグラフィクス要素をメモリ１１２に書き込む。ディスプレイデバイス１１４は、処理されたグラフィカル要素をメモリ１１２から（例えばディスプレイコントローラを介して）読み出して、処理されたグラフィカル要素を表示することができる。
【００１８】
本明細書で説明される技術が動作し得る例示の環境を説明してきたので、次に、１つ以上の実施形態に係る幾つかの例示のプロシージャを検討する。
【００１９】
＜例示のプロシージャ＞
以下の記載では、１つ以上の実施形態に係る、複数のプリミティブを使用するグラフィクス処理のための幾つかの例示のプロシージャを説明する。例示のプロシージャは、図１の例示の環境１００、図８のシステム８００及び／又は任意の他の適切な環境で使用されてよい。
【００２０】
図２は、１つ以上の実施形態に係る方法のステップを説明するフロー図である。方法は、グラフィクスマネージャによって実行されるステップと、グラフィクスプロセッサによって実行されるステップとして図示されている。しかしながら、このステップの割り当ては、単に例示の目的のために提示されるものであり、ステップを様々な異なる機能の１つ又は複数によって実行することができる。
【００２１】
少なくとも一部の実施形態において、グラフィクスがデバイス上で処理されてレンダリングされている間、方法をフレームごとに実行することができる。したがって、方法は、ディスプレイデバイス上での表示のためにグラフィクスを合成及び／又はレンダリングする例示のやり方を示す。
【００２２】
ステップ２００は、特定のピクセル領域において、第１のプリミティブが第２のプリミティブにオーバーラップすることを判断する。特定の表示領域について、例えば特定のプリミティブが１つ以上の他のプリミティブの上にレイヤされると決定することができる。
【００２３】
様々な異なる技術を使用して、プリミティブのオーバーラップ及びプリミティブ間のオーバーラップの量を決定することができる。例えば空間データ構造を使用して、特定の表示フレーム内の一部として表示されるべきプリミティブの一部又は全てのように、表示エリアの領域内に表示すべきプリミティブを特徴付けることができる。４分木、ｋ次元木、バイナリ空間分割（ＢＳＰ）木等といった、様々なタイプの空間データ構造を用いることができる。したがって、一群のプリミティブのためのピクセル領域を特徴付ける空間データ構造を調べて、どのプリミティブがオーバーラップしているか、かつ／又はオーバーラップしているプリミティブの間にどのくらいのオーバーラップが存在するかを決定することができる。
【００２４】
ステップ２０２は、プリミティブを一緒に処理すべきことを指定する処理命令を生成する。処理命令は、例えばプリミティブについてのグラフィクスデータを、メモリから読み出すべきことを指定することができる。処理命令は更に、プリミティブを、単一のプリミティブとして組み合わせて処理し、メモリに書き込むように指示することもある。例えば処理命令は、プリミティブを処理し、中間の処理結果はメモリに書き込まずに、最終的な処理結果をメモリに書き込むように指定することができる。また、処理命令は、ブレンディング、クリッピング、シェーディング等といった、個々のプリミティブ及び／又は組合せのプリミティブに適用すべき視覚的効果を指定してもよい。少なくとも一部の実施形態において、処理命令は、プリミティブが処理された後に、処理されたプリミティブを、単一の書込みオペレーションによりメモリに書き込むべきことを指示することができる。
【００２５】
ステップ２０４は、処理命令をグラフィクス処理機能へ提示する。処理命令を、例えばグラフィクスプロセッサへ提示することができる。
【００２６】
ステップ２０６は、処理命令を受け取る。例えばグラフィクスプロセッサ１０６が、その命令を受け取ることができる。
【００２７】
ステップ２０８は、処理命令に基づいて、第１のプリミティブ及び第２のプリミティブについてのデータをメモリから読み出す。例えば関連するアプリケーションが、これらのプリミティブについてのデータをメモリの領域に書き込むことがあり、グラフィクスプロセッサは、そのメモリの領域からデータを読み出すことができる。データは、色やシェーディング、透明性、不透明性、表示領域情報等といった、プリミティブについての様々な情報を指定することができる。
【００２８】
ステップ２１０は、処理命令及びプリミティブについてのデータに基づいて、第１のプリミティブ及び第２のプリミティブを処理する。処理命令によって指定される、様々なタイプの視覚的効果のような様々な処理を、プリミティブに対して適用することができる。
【００２９】
ステップ２１２は、処理されたプリミティブをメモリに書き込む。処理されたプリミティブについてのデータを、例えば単一の書込みオペレーションで、処理中のメモリへの中間の書込みとは独立に、メモリの領域に書き込むことができる。例えば処理されたプリミティブを、処理済みのプリミティブを格納するのに使用されるメモリのレンダリング対象部分に書き込むことができる。ディスプレイデバイスのディスプレイコントローラを介するなどして、処理されたプリミティブをメモリの領域から読み出して、表示することができる。
【００３０】
説明の容易性のために、上述のプロシージャは、２つのプリミティブとの関連で説明されている。しかしながら、本明細書で説明される技術を、幾つかのオーバーラップするプリミティブ、例えば２つより多くのオーバーラップするプリミティブを処理するのに用いることができる。例えば３つ以上のプリミティブをメモリから読み出して処理し、処理中に中間メモリの書込みは行わずに、表示のためにメモリへ書き戻すことができる。
【００３１】
図３は、１つ以上の実施形態に係る方法のステップを説明するフロー図である。少なくとも一部の実施形態において、方法は、図２に関連して上述した方法２００の例示の実装を示す。
【００３２】
ステップ３００は、第１のプリミティブが第２のプリミティブにオーバーラップすることを確認する。例えばグラフィクスマネージャは、特定のフレームについて、あるプリミティブのピクセル領域が、別のプリミティブのピクセル領域に少なくとも部分的にオーバーラップすることを決定することができる。
【００３３】
ステップ３０２は、第１のプリミティブのピクセル領域と第２のプリミティブのピクセル領域との間の差を決定する。この差は、例えば第１のプリミティブのピクセル領域によってオーバーラップされる、第２のプリミティブのピクセル領域の部分に相当し得る。プリミティブのピクセル領域間の差を決定する例は、図７に関連して以下で説明される。プリミティブのピクセル領域間の差を決定するために様々な技術を用いることができ、その少なくとも一部が上記及び下記で説明される。
【００３４】
ステップ３０４は、第１のプリミティブと、第２のプリミティブの下になっている部分との組合せを、第１のプリミティブのピクセル領域に基づいて処理すべきことを指定する、第１の命令を生成する。例えば第１の命令は、第１のプリミティブのピクセル領域について、第１のプリミティブと、第１のプリミティブの下に位置する第２のプリミティブの部分とを一緒に処理すべきことを指定することができる。したがって、第１の命令は、第１のプリミティブと、第２のプリミティブの下になっている部分を、処理すべき単一のプリミティブとして識別することができる。
【００３５】
ステップ３０６は、第１のプリミティブのピクセル領域と第２のプリミティブのピクセル領域との間の差に基づいて、第２のプリミティブを処理すべきことを指定する、第２の命令を生成する。第２の命令は、例えば第２のプリミティブのうち、第１の命令によって指定された部分を省略することができる。したがって、第２のプリミティブの残りの部分（例えば第１の命令によって指定されていない部分）を、単一のプリミティブとして処理することができる。少なくとも一部の実施形態において、第１の命令によって指定された第２のプリミティブの部分を省略することは、メモリ及び／又は処理リソースをセーブすることができ、これらのリソースは、省略された部分を、例えば第１の命令に基づいて既に処理された後に、２度処理するのに使用されることがある。
【００３６】
図２に関連して説明したように、第１の命令及び第２の命令を、１組のプリミティブについての処理命令の一部としてグラフィクスプロセッサへ提示することができる。
【００３７】
この方法は、２つのプリミティブの処理との関連で説明されているが、これは、限定として意図されておらず、この方法を、１つ以上の実施形態に従って、複数のオーバーラップするプリミティブについて処理命令を生成するのに用いることができる。
【００３８】
様々な実施形態によると、プリミティブのピクセル領域の間の差を決定することは、様々な方法で実行される可能性がある。例えばグラフィクス機能（例えばグラフィクス管理モジュール１１０）は、コンピューティングデバイスの処理ユニット（例えばプロセッサ１０４）を利用して、異なる計算を実行することができる。あるいはまた、グラフィクス機能は、グラフィクスプロセッサ（例えばグラフィクスプロセッサ１０４）の機能を利用して異なる計算を実行することができる。
【００３９】
例えばプリミティブのピクセルデータを、プリミティブのピクセル領域の間の差を計算する要求とともに、グラフィクスプロセッサへ提示することができる。グラフィクスプロセッサは、ｚバッファリング技術（例えば深度バッファ）を用いてピクセルデータ（例えばピクセル座標）を処理し、プリミティブのピクセル領域間の差を決定することができる。グラフィクスプロセッサは、ピクセル領域間の差を用いて、例えばグラフィクスマネージャから受け取った処理命令に基づいて、プリミティブをどのように処理すべきかに関する決定を行うことができる。例示の実装として以下の方法を検討する。
【００４０】
図４は、１つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ４００は、オーバーラップするプリミティブのピクセル領域が、複雑性の閾値と合致する又は閾値を超えるかどうかを判断する。複雑性の閾値は、例えばオーバーラップするプリミティブの閾値数を指定することができる。別の例では、複雑性の閾値は、オーバーラップするプリミティブについて閾値のピクセルエリアを指定することができる。複雑性の閾値について多様な他のパラメータを考慮することができる。
【００４１】
オーバーラップするプリミティブのピクセル領域が、複雑性の閾値以上でない場合（「Ｎｏ」）、ステップ４０２は、ローカルの処理デバイスに、ピクセル領域間の差を計算するよう要求を提示する。グラフィクス管理モジュール１１０は、例えばプロセッサがプリミティブのピクセル領域間の差を計算することを要求する命令を、プロセッサ１０４へ提示することができる。
【００４２】
ステップ４０４は、プリミティブのピクセル領域間の差の指示を受け取る。例えばグラフィクス管理モジュール１１０は、プロセッサ１０４及び／又はグラフィクスプロセッサ１０６から差分の計算を受け取ることができる。
【００４３】
ステップ４００に戻ると、オーバーラップするプリミティブのピクセル領域が、複雑性の閾値以上である場合（「Ｙｅｓ」）、ステップ４０６は、グラフィクスプロセッサに、ピクセル領域間の差を計算するよう要求を提示する。グラフィクス管理モジュール１１０は、例えばグラフィクスプロセッサがプリミティブのピクセル領域間の差を計算することを要求する命令を、グラフィクスプロセッサ１０６へ提示することができる。少なくとも一部の実施形態において、命令は、グラフィクスプロセッサの深度バッファを用いて異なる計算を実行するように指定することができる。
【００４４】
ステップ４０８は、ピクセル領域間の差をグラフィクスプロセッサ上に格納する。例えば差分を、ＧＰＵの深度バッファ内に格納することができる。
【００４５】
ステップ４１０は、ピクセル領域間の差の指示を用いて、プリミティブについての処理決定を行う。例えば差分がローカルの処理デバイスにおいて計算される（例えばステップ４０２）シナリオでは、プリミティブをどのように処理するかを決定する際に使用されるよう、差分をグラフィクスプロセッサへ提示することができる。差分がグラフィクスプロセッサによって計算されて格納されるシナリオでは、グラフィクスプロセッサは、ローカルで差分情報にアクセスして、プリミティブの処理決定を行うことができる。そのような決定の例は、上記及び下記で説明される。
【００４６】
上記で提供される例は、ローカルプロセッサ又はグラフィクスプロセッサを使用することに関連する「いずれか／又は」のシナリオを提示する。しかしながら、これは、限定として意図されておらず、少なくとも一部の実施形態は、ローカルのプロセッサとグラフィクスプロセッサの双方を使用して、様々な態様の異なる計算を実行してよい。例えば一群の異なる計算を、より複雑な計算とあまり複雑でない計算とに分割することができる。あまり複雑でない計算を、ローカルのプロセッサで実行するように提示し、より複雑な計算を、グラフィクスプロセッサで実行するよう提示することができる。したがって、ローカルプロセッサとグラフィクスプロセッサを別個に使用して異なる計算を実行することができ、かつ／又はローカルプロセッサとグラフィクスプロセッサの組合せを用いて異なる計算を実行することもできる。
【００４７】
少なくとも一部の実施形態では、本明細書で説明される技術は、オーバーラップするプリミティブをどのようにレンダリングすべきかを、プリミティブの視覚的特性に基づいて指定することができる。例えば以下の方法を検討する。
【００４８】
図５は、１つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ５００は、第１のプリミティブが第２のプリミティブにオーバーラップすることを決定する。例えばプリミティブのｚオーダー（z-order）は、特定のフレームについて、第１のプリミティブが第２のプリミティブの一部又は全てにオーバーラップすることを指定することができる。
【００４９】
ステップ５０２は、第１のプリミティブのピクセルが不透明の場合は、第２のプリミティブのオーバーラップされたピクセルを処理しないように指定するよう、プリミティブについての処理命令を修正する。例えば第１のプリミティブをピクセルごとに調べて、不透明なピクセルを識別することを指定するように、プリミティブの処理命令を修正することができる。第２のプリミティブのピクセルにオーバーラップする不透明なピクセルが識別された場合、第２のプリミティブのオーバーラップされたピクセル（例えば第２のプリミティブの一部又は全て）は処理されず、かつ／又はメモリに書き込まれない。
【００５０】
例えば第１のプリミティブのオーバーラップしている部分が、いくつかの不透明なピクセルと、いくつかの不透明でないピクセル、例えば半透明なピクセルや透明なピクセル等を含むシナリオを考える。このようなシナリオでは、第１のプリミティブの不透明なピクセルによってオーバーラップされる第２のプリミティブのピクセルは、処理されず、かつ／又はメモリに書き込まれない。しかしながら、不透明でないピクセルによってオーバーラップされる第２のプリミティブのピクセルは処理することができ、本明細書で説明される技術に従って、例えば第１のプリミティブのオーバーラップしているピクセルとブレンドすることができる。
【００５１】
上述の技術を用いると、第１のプリミティブ及び第２のプリミティブを、グラフィクスプロセッサ、例えばグラフィクスプロセッサ１０６により処理するために、単一の組合せプリミティブとして、（例えばグラフィクス管理モジュール１１０により）一緒に組み合わせることができる。例えば単一の組合せプリミティブのための処理命令に基づいて、グラフィクスプロセッサは、メモリから、第１のプリミティブと、第２のプリミティブのいずれかオーバーラップされていない部分とを処理することができる。第２のプリミティブが第１のプリミティブによって完全にオーバーラップされる例示の実施形態では、第２のプリミティブのデータは単に処理せず、かつ／又はメモリに書き込まれないことがある。したがって、別のプリミティブの不透明のピクセルによってオーバーラップされるプリミティブの部分を、構成オペレーション（compositing  operation）から省略することができる。
【００５２】
したがって、少なくとも部分的に不透明なプリミティブが、下になるプリミティブのピクセルを覆い、下になるプリミティブのピクセルが、関連するディスプレイ領域の視覚的外観に寄与しないようになるとき、技術は、グラフィクスプロセッサに、オーバーラップするプリミティブの不透明なピクセルによってオーバーラップされる、下になるプリミティブのピクセルを省略するよう指示することにより、リソース（例えば処理及び／又はメモリリソース）を節約することができる。
【００５３】
少なくとも一部の実施形態において、本明細書で説明される技術を用いて、上述のような視覚的効果を適用することのように、様々なタイプのグラフィクス処理をプリミティブに対して実行することができる。例えば以下の方法を検討する。
【００５４】
図６は、１つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ６００は、複数のプリミティブを単一の組合せプリミティブとして一緒にグループ化する、第１の処理命令を生成する。例えばプリミティブを（例えばプリミティブのオーバーラップに基づいて）組み合わせる上述の実装を用いて、２つ以上のオーバーラップするプリミティブを組み合わせて、単一の組合せプリミティブにすることができる。
【００５５】
ステップ６０２は、単一の組合せプリミティブに適用すべき視覚的効果を指定する、第２の処理命令を生成する。視覚的効果の例には、クリッピング、シェーディング、グレイスケーリング、フェーディング等が含まれる。
【００５６】
少なくとも一部の実施形態において、視覚的効果は、組合せプリミティブに適用されるべき、アンチエイリアス効果を含むことができる。一般に、アンチエイリアスは、ピクセルのシェーディング及び／又は着色（tinting）を介してピクセルグラフィクス内のギザギザのピクセルを防止するような、グラフィクスのエッジをスムースにするための技術を指す。したがって、視覚的効果の命令は、アンチエイリアシングのためのピクセルのカバレッジ値を含むことができる。例えばカバレッジ値は、アンチエイリアス技術の一部として個々のピクセルに適用すべきカラーシェーディング及び／又は着色を含むことができる。
【００５７】
ステップ６０４は、第１の処理命令及び第２の処理命令をグラフィクスプロセッサへ提示する。処理命令を、例えばグラフィクス管理モジュール１１０によって生成して、グラフィクスプロセッサ１０６へ提示して実行することができる。
【００５８】
＜例示の実装シナリオ＞
以下の記載は、本明細書で説明される複数のプリミティブを使用するグラフィクス処理のための技術の例示の実装シナリオを説明する。例示の実装シナリオは、図１の環境１００、図８のシステム８００及び／又は任意の他の適切な環境において実装されてよい。実装シナリオは、上述の様々なプロシージャの態様を用いることがある。
【００５９】
図７は、１つ以上の実施形態に係る例示の実装シナリオ７００を図示している。シナリオ７００の上の部分はプリミティブ７０２及びプリミティブ７０４を含み、プリミティブ７０２、７０４は、ディスプレイ領域の一群のピクセルの一部としてレンダリングされて表示されるべきプリミティブのデータを表す。プリミティブ７０２、７０４は、例えばアプリケーション１０８のうちの１つに関連付けられるグラフィクス要素の一部とすることができる。プリミティブ７０２、７０４は、異なるサイズ、色、シェーディング、不透明性又は透明性のレベル等とすることができる。
【００６０】
シナリオ７００に対して更に、プリミティブ７０２、７０４は、プリミティブ７０４がプリミティブ７０２にオーバーラップすることを指定する、それぞれのｚオーダーを有する。したがって、プリミティブ７０２についての命令は、プリミティブ７０２が表示されるべき特定のピクセル領域を指定する。プリミティブ７０４についての命令は、その特定のピクセル領域のうち、プリミティブ７０４が表示されるべきサブ領域を指定する。
【００６１】
シナリオ７００の次の部分に続くと、プリミティブ７０２とプリミティブ７０４との間の領域の差７０６が計算される。領域の差７０６は、例えばプリミティブ７０２が表示されるべきピクセル領域（例えば一群のピクセル）と、プリミティブ７０４を表示すべきピクセル領域との間の差に相当し得る。例えばプリミティブ７０４のピクセル領域を、プリミティブ７０２のピクセル領域から差し引いて、ピクセル間の領域の差７０６、例えばプリミティブ７０２によって覆われるが、プリミティブ７０４によって覆われないピクセル領域、を決定することができる。
【００６２】
シナリオ７００の次の部分に進むと、プリミティブ７０４のピクセル領域に基づいて、プリミティブ７０２の一部分７０８及びプリミティブ７０４を処理する命令が生成される。例えば部分７０８は、プリミティブ７０２のうち、プリミティブ７０４の下に位置する部分に相当する。したがって、プリミティブ７０４のピクセル領域を処理することは、プリミティブ７０２とプリミティブ７０４の双方のそれぞれの部分をブレンドすることを含むことができる。
【００６３】
シナリオ７００の下の部分に進むと、領域の差７０６に基づいて、プリミティブ７０２を処理する命令が生成される。したがって、領域の差７０６のピクセル領域を処理することは、プリミティブ７０４と、プリミティブ７０２の一部分７０８を処理することを除外する。
【００６４】
シナリオ７００を介して生成された命令は、本明細書で説明される技術を用いるように、プリミティブ７０２、７０４を処理して表示することができるように、実行のためグラフィクスプロセッサへ提示され得る。
【００６５】
例示の実装シナリオを説明してきたので、次に、１つ以上の実施形態による例示のシステム及びでデバイスの議論について検討する。
【００６６】
＜例示のシステム及びデバイス＞
図８は、全体的に８００として例示のシステムを図示している。このシステムは、本明細書で説明される様々な技術を実装することができる１つ以上のコンピューティングシステム及び／又はデバイスを表す、例示のコンピューティングデバイス８０２を含む。例えば図１に関連して上述したコンピューティングデバイス１０２を、コンピューティングデバイス８０２として具現化することができる。コンピューティングデバイス８０２は、例えばサービスプロバイダのサーバ、クライアント（例えばクライアントデバイス）に関連付けられたデバイス、オンチップシステム及び／又は任意の他の適切なコンピューティングデバイス若しくはコンピュータシステムとすることができる。
【００６７】
図示されるように、例示のコンピューティングデバイス８０２は、相互に通信可能に接続される処理システム８０４と、１つ以上のコンピュータ読取可能媒体８０６と、１つ以上の入出力（Ｉ／Ｏ）インタフェース８０８とを含む。図示されていないが、コンピューティングデバイス８０２は更に、様々なコンポーネントを相互に結合するシステムバスあるいは他のデータ及びコマンド転送システムを含んでもよい。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス及び／又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような、異なるバス構造のうちのいずれか１つ又は組合せを含むことができる。制御及びデータ回線のような様々な他の例も考えられる。
【００６８】
処理システム８０４は、ハードウェアを使用して１つ以上の動作を実行する機能性を表す。したがって、処理システム８０４は、プロセッサ、機能ブロック等として構成され得るハードウェア要素８１０を含むように図示されている。これは、特定用途向け集積回路又は１つ若しくは複数の半導体を使用して形成される他の論理デバイスとして、ハードウェアの実装を含むことがある。ハードウェア要素８１０は、これらが形成される材料や用いられる処理機構に制限されない。例えばプロセッサは、半導体及び／又はトランジスタ（例えば電子集積回路（ＩＣ））から構成されることがある。そのようなコンテキストにおいて、プロセッサ実行可能命令は、電子的に実行可能な命令であってよい。
【００６９】
コンピュータ読取可能媒体８０６は、メモリ／ストレージ８１２を含むように図示されている。メモリ／ストレージ８１２は、１つ以上のコンピュータ読取可能媒体に関連付けられるメモリ／記憶機能を表す。メモリ／ストレージコンポーネント８１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）等）及び／又は非揮発性媒体（読取専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスク等）を含むことができる。メモリ／ストレージコンポーネント８１２は、固定の媒体（例えばＲＡＭ、ＲＯＭ、固定のハードドライブ等）並びに取外し可能媒体（例えばフラッシュメモリ、取外し可能ハードドライブ、光ディスク等）を含むことができる。コンピュータ読取可能媒体８０６は、以下で更に説明されるように様々な他の方法で構成されてもよい。
【００７０】
入出力（Ｉ／Ｏ）インタフェース８０８は、ユーザがコマンド及び情報をコンピューティングデバイス８０２に入力するのを可能にし、また様々な入出力デバイスを使用して、情報をユーザ及び／又は他のコンポーネント若しくはデバイスへ提示することを可能にする機能性を表す。入力デバイスの例には、キーボード、カーソル制御デバイス（例えばマウス）、（例えば音声認識及び／又は発話入力のための）マイク、スキャナ、タッチ機能（例えば物理的な接触を検出するように構成される容量式センサ又は他のセンサ）、カメラ（例えば赤外線周波数のような可視又は非可視の波長を用いて、接触を伴わない動きをジェスチャとして検出し得るもの）等が含まれる。出力デバイスの例には、ディスプレイデバイス（例えばモニタ又はプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等が含まれる。したがって、コンピューティングデバイス８０２は、以下で更に説明されるように、ユーザ対話をサポートするように様々な方法で構成され得る。
【００７１】
本明細書では、様々な技術がソフトウェア、ハードウェア要素又はプログラムモジュールの一般的なコンテキストにおいて説明され得る。一般に、そのようなモジュールは、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用されるとき、「モジュール」、「機能（性）」及び「コンポーネント」という用語は、一般的に、ソフトウェア、ファームウェア、ハードウェア又はこれらの組合せを表す。本明細書で説明される技術の特徴はプラットフォーム独立であるが、これは、本技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装され得ることを意味する。
【００７２】
説明されるモジュール及び技術の実装は、何らかの形式のコンピュータ読取可能媒体に格納されるか、そのコンピュータ読取可能媒体によって伝送され得る。コンピュータ読取可能媒体は、コンピューティングデバイス８０２によってアクセスされ得る様々な媒体を含み得る。限定ではなく例として、コンピュータ読取可能媒体は、「コンピュータ読取可能記憶媒体」と「コンピュータ読取可能信号媒体」とを含むことがある。
【００７３】
「コンピュータ読取可能記憶媒体」は、単なる信号伝送や、搬送波又は信号自体等とは対照的に、情報の持続的な記憶を可能にする媒体及び／又はデバイスを指すことができる。したがって、コンピュータ読取可能記憶媒体は、正確な意味では信号を含まない。コンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、ロジック要素／回路又は他のデータのような情報の記憶に適した方法又は技術で実装される、揮発性及び非揮発性、取外し可能及び取外し不可能の媒体及び／又はストレージデバイスのようなハードウェアを含む。コンピュータ読取可能記憶媒体の例には、これらに限られないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、あるいは所望の情報を格納するのに適切であって、コンピュータによってアクセス可能な他の記憶デバイス、有形の媒体又は製品が含まれる。
【００７４】
「コンピュータ読取可能信号媒体」は、命令を、ネットワークを介するなどしてコンピューティングデバイス８０２のハードウェアに伝送するように構成される信号担持媒体を指すことがある。信号媒体は典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波、データ信号又は他の伝送機構のような変調データ信号で具現化することができる。信号媒体は、任意の情報配信媒体も含む。「変調データ信号」という用語は、情報を信号にエンコードするような方法で設定又は変更された特性の１つ以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続のような有線媒体と、音響、無線周波数（ＲＦ）、赤外線及び他の無線媒体のような無線媒体とを含む。
【００７５】
上述のように、ハードウェア要素８１０及びコンピュータ読取可能媒体８０６は、一部の実施形態において、説明される技術の少なくとも一部の態様を実装するのに用いられるハードウェアの形で実装される、命令、モジュール、プログラマブルデバイスロジック及び／又は固定のデバイスロジックを表す。ハードウェア要素は、集積回路若しくはオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、結合プログラム可能論理回路（ＣＰＬＤ）及びシリコンでの他の実装や他のハードウェアデバイスが含まれる。このコンテキストにおいて、ハードウェア要素は、ハードウェア要素によって具現化される命令、モジュール及び／又はロジックによって定義されるプログラムタスクを実行する処理デバイス、並びに実行のために命令を格納するのに用いられるハードウェアデバイス、例えば前述したコンピュータ読取可能記憶媒体として動作してもよい。
【００７６】
上述の組合せを用いて、本明細書で説明される様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア又はプログラムモジュール及び他のプログラムモジュールを、何らかの形式のコンピュータ読取可能記憶媒体において及び／又は１つ以上のハードウェア要素８１０によって具現化される１つ以上の命令及び／又はロジックとして実装してもよい。コンピューティングデバイス８０２は、ソフトウェア及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実装するように構成され得る。したがって、コンピューティングデバイス８０２によって実行可能なモジュールのソフトウェアとしての実装は、少なくとも部分的にハードウェアで、例えばコンピュータ読取可能記憶媒体及び／又は処理システム８０４のハードウェア要素８１０の使用を通して達成され得る。命令及び／又は機能は、本明細書で説明される技術、モジュール及び実施例を実装するよう１つ以上の製品（例えば１つ以上のコンピューティングデバイス８０２及び／又は処理システム８０４）によって実行可能／動作可能である。
【００７７】
図８に更に図示されるように、例示のシステム８００は、アプリケーションをパーソナルコンピュータ（ＰＣ）、テレビジョンデバイス及び／又はモバイルデバイス上で実行するときに、シームレスなユーザ経験のためのユビキタス環境を可能にする。サービス及びアプリケーションは実質的に、アプリケーションを使用している間、ビデオゲームをプレイしている間、ビデオを観ている間等に、あるデバイスから次のデバイスに遷移する際に、共通のユーザ経験のために３つの全ての環境において同様に動作する。
【００７８】
例示のシステム８００において、複数のデバイスは中央コンピューティングデバイスを通して相互接続される。中央コンピューティングデバイスは、複数のデバイスにローカルであってもよく、複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、複数のデバイスにネットワーク、インターネット又は他のデータ通信リンクを通して接続される、１つ以上のサーバコンピュータのクラウドであってよい。
【００７９】
一実施形態において、この相互接続アーキテクチャは、複数のデバイスにわたって配信され、複数のデバイスのユーザに共通でシームレスな経験を提供するのを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスへの経験の配信を可能にする。この経験は、そのデバイスに対して調整されるが、全てのデバイスに対して共通でもある。一実施形態において、ターゲットデバイスのクラスを作成し、経験をデバイスの汎用クラスに対して調整する。デバイスのクラスを、物理的な特徴、利用のタイプ又はデバイスの他の共通の特性によって定義してもよい。
【００８０】
様々な実装において、コンピューティングデバイス８０２は、コンピュータ８１４用、モバイル８１６用、テレビジョン８１８用の使用のような様々な異なる構成を想定してもよい。これらの構成の各々は、一般に異なる構成及び能力を有することがあるデバイスを含み、したがって、コンピューティングデバイス８０２は、異なるデバイスクラスの１つ以上に従って構成され得る。例えばコンピューティングデバイス８０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ８１４クラスとして実装され得る。
【００８１】
コンピューティングデバイス８０２は、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンコンピュータ等のモバイルデバイスを含むデバイスのモバイル８１６クラスとして実装されてもよい。コンピューティングデバイス８０２は、簡潔な視聴環境において一般的に大きなスクリーンを有するか、これと接続されるデバイスを含むテレビジョン８１８クラスとして実装されてもよい。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
【００８２】
本明細書で説明される技術は、コンピューティングデバイス８０２のこれらの様々な構成によってサポートされ、本明細書で説明される技術の特定の実施例に限定されない。例えばグラフィクス管理モジュール１１０との関連で検討される機能は、以下で説明されるように、プラットフォーム８２２を介する「クラウド」８２０のように、分散システムの使用を通して全て又は部分的に実装され得る。
【００８３】
クラウド８２０は、リソース８２４のためのプラットフォーム８２２を含むか、及び／又はこれを表す。プラットフォーム８２２は、クラウド８２０のハードウェア（例えばサーバ）及びソフトウェアリソースの基礎となる機能を抽象化する。リソース８２４は、コンピューティングデバイス８０２からリモートのサーバ上でコンピュータ処理が実行されている間に用いることができるアプリケーション及び／又はデータを含み得る。リソース８２４は、インターネット上で及び／又はセルラ若しくはＷｉ−Ｆｉネットワークのような加入者ネットワークを通して提供されるサービスを含むこともできる。
【００８４】
プラットフォーム８２２は、コンピューティングデバイス８０２を他のコンピューティングデバイスに接続するリソース及び機能を抽出する。プラットフォーム８２２は、リソースのスケーリングを抽象化して、スケールの対応するレベルを、プラットフォーム８２２を介して実装されるリソース８２４について生じた要求に提供するように機能することもある。したがって、相互接続されるデバイスの実施形態において、本明細書で説明される機能性の実装をシステム８００にわたって分散してもよい。例えば機能性は、部分的にコンピューティングデバイス８０２内に実装されてもよく、クラウド８２０の機能性を抽象化するプラットフォーム８２２を介して実装されてもよい。
【００８５】
ここでは、本明細書で検討される技術を実施するように実装され得る幾つかの方法が検討されている。これらの方法の態様は、ハードウェア、ファームウェア又はソフトウェア、あるいはその組合せで実装され得る。方法は、１つ以上のデバイスによって実行される動作を指定するステップのセットとして示されているが、動作を実行するために個々のブロックにより示される順序に必ずしも限定されない。さらに、１つ以上の実装に従って、特定の方法と関連して示される動作は、異なる方法の動作と組み合わされてよく、及び／又は交換されてもよい。方法の態様を、環境１００との関連で上述した様々なエンティティの間の対話を介して実装することができる。
【００８６】
＜結論＞
複数のプリミティブを使用するグラフィクス処理の技術が説明される。実施形態は、構造的特徴及び／又は方法的動作に特有の言語で説明されるが、添付の特許請求の範囲において定義される実施形態は、必ずしも説明される具体的な特徴又は動作に限定されない。むしろ、具体的な特徴及び動作は、特許請求に係る実施形態を実装するための例示の形式として開示される。
【図１】
0006364066.tif 000002
【図２】
0006364066.tif 000003
【図３】
0006364066.tif 000004
【図４】
0006364066.tif 000005
【図５】
0006364066.tif 000006
【図６】
0006364066.tif 000007
【図７】
0006364066.tif 000008
【図８】
0006364066.tif 000009