複数のプリミティブを使用するグラフィック処理

 

複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内での表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブをメモリ内に書き込むことができ、処理されたプリミティブにアクセスし、ディスプレイデバイスによって表示することが可能になる。

 

 

今日のコンピューティングデバイスは、典型的に、様々なビジュアルコンテンツへのアクセスを有する。しかしながら、ビジュアルコンテンツを表示することは、リソース消費型の可能性がある。例えばアプリケーション用のユーザインタフェースを表示することは、複数のオペレーションを要する可能性がある。そのようなオペレーションの例には、ユーザインタフェース用のグラフィクスデータをメモリから読み出すこと、グラフィクスデータを処理すること、中間の処理結果をメモリ内に格納すること、そしてユーザインタフェース用に最終的に処理された画像をメモリに書き込み、メモリから読み出して表示できるようにすることが含まれる。これらのオペレーションは典型的にフレーム単位で行われるので、貴重なメモリ及び処理リソースを消費する。バッテリで動作するデバイス(例えばモバイルコンピューティングデバイス)では、これらのオペレーションはバッテリを更に消費し、このため充電の寿命を短くする可能性がある。したがって、デバイスのリソースに対するグラフィクスオペレーションの影響を制御することは、重要な考慮事項である。
この「発明の概要」における記載は、以下で「発明を実施するための形態」において更に説明される概念の選択を簡略化した形で紹介するために提供される。この「発明の概要」における記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を限定するのに使用されるようにも意図されていない。
複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。プリミティブの例には、線、カーブ、四角形等が含まれ、これらを組み合わせてより大きなグラフィカル要素を生成することができる。したがって、ディスプレイの領域内のピクセルを介してプリミティブをペイントし、アプリケーションのグラフィカルユーザインタフェースの部分のようなグラフィカル要素を生成することができる。
少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内における表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブを、例えばグラフィクスプロセッサによってメモリから読み出すことができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブを、メモリ内に(例えば単一の書込みオペレーションにより)書き込むことができ、処理されたプリミティブにアクセスし、ディスプレイデバイスによって表示することが可能になる。
詳細な説明は、添付の図面との関連で説明される。図面において、参照番号の最も左の桁は、その参照番号が最初に現れる図面を特定する。説明及び図面における異なる例での同じ参照番号の使用は、同様又は同じアイテムを示すことがある。
本明細書で説明される技術を用いるように動作可能な例示の実装における環境を示す図である。 1つ以上の実施形態に係る方法のステップを説明するフロー図である。 1つ以上の実施形態に係る方法のステップを説明するフロー図である。 1つ以上の実施形態に係る方法のステップを説明するフロー図である。 1つ以上の実施形態に係る方法のステップを説明するフロー図である。 1つ以上の実施形態に係る方法のステップを説明するフロー図である。 1つ以上の実施形態に係る例示の実装シナリオを説明するフロー図である。 本明細書で説明される技術の実施形態を実装するよう構成される、図1との関連で説明されるような例示のシステム及びコンピューティングデバイスを示す図である。
<概要>
複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。プリミティブの例には、線、カーブ、四角形等が含まれ、これらを組み合わせてより大きなグラフィカル要素を生成することができる。したがって、ディスプレイの領域内の個々のピクセルを介してプリミティブをペイントし、アプリケーションのグラフィカルユーザインタフェースの部分のようなグラフィカル要素を生成することができる。
少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内での表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブを、例えばグラフィクスプロセッサによってメモリから読み出すことができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブを、メモリ内に(例えば単一の書込みオペレーションにより)書き込むことができ、処理されたプリミティブにアクセスして、ディスプレイデバイスによって表示することが可能になる。更なる詳細及び変形が以下で説明される。
以下の説明では、最初に、本明細書で説明される技術を用いるよう動作可能な例示の実施形態を説明する。次の「例示のプロシージャ」というタイトルのセクションで、1つ以上の実施形態に係る、幾つかの例示の方法を説明する。その次に、「例示の実装シナリオ」というタイトルのセクションで、1つ以上の実施形態に係る例示の実装シナリオを説明する。最後に、「例示のシステム及びデバイス」というセクションで、1つ以上の実施形態に従って、本明細書で説明される技術を用いるよう動作可能な例示のシステム及びデバイスを説明する。
1つ以上の実施形態に係る例示の実装を提示してきたので、次に、例示の実装が用いられ得る例示の環境を検討する。
<例示の環境>
図1は、本明細書で説明される複数のプリミティブを使用するグラフィクス処理のための技術を用いるように動作可能な例示の実装における環境100の図である。図示される環境100は、様々な方法で構成され得るコンピューティングデバイス102を含む。例えばコンピューティングデバイス102は、図8に関連して更に説明されるような、従来のコンピュータ(例えばデスクトップのパーソナルコンピュータ、ラップトップコンピュータ等)、モバイルステーション、エンターテインメント装置、テレビと通信的に結合されるセットトップボックス、ワイヤレスフォン、ネットブック、ゲームコンソール、ハンドヘルドデバイス(例えばタブレット)等にとして構成されてよい。
コンピューティングデバイス102は、コンピューティングデバイス102のための様々なタイプのデータ処理を実行する機能を表すプロセッサ104を含む。例えばプロセッサ104は、コンピューティングデバイス102の中央処理ユニット(CPU)を表すことができる。プロセッサ104の実装の更なる例は、図8に関連して以下で説明される。
さらに、グラフィクスプロセッサ106が図示されており、グラフィクスプロセッサ106は、コンピューティングデバイス102の様々なグラフィクス関連のタスクを実行する機能を表す。グラフィクスプロセッサ106は、例えばコンピューティングデバイス102のグラフィクス処理ユニット(GPU)を表すことができる。
コンピューティングデバイス102は、アプリケーション108及びグラフィクス管理モジュール110を更に含む。アプリケーション108は、コンピューティングデバイス102を介して様々なタスクを実行する機能を表す。アプリケーション108の例には、ワードプロセッサアプリケーション、電子メールアプリケーション、コンテンツ編集アプリケーション、ウェブブラウジングアプリケーション等が含まれる。
グラフィクス管理モジュール110は、本明細書で検討される複数のプリミティブを使用するグラフィクス処理のための技術に対して更なるタスクを実行する機能を表す。例えばグラフィクス管理モジュール110を、コンピューティングデバイス102のオペレーティングシステムのコンポーネントとして実装することができる。しかしながら、実施形態は、グラフィクス管理モジュール110の様々な異なる構成及び実装を用いることができる。グラフィクス管理モジュール110の実装に関する更なる詳細は、以下で説明される。
コンピューティングデバイス102はメモリ112を更に含み、メモリ112は、コンピューティングデバイス102の様々な機能により書き込み及び読み出しを行うことができる、データ記憶媒体を表す。メモリ112は、例えばコンピューティングデバイス102の主メモリを表すことができる。メモリ112の更なる詳細及び例は、図8に関連して以下で説明される。
コンピューティングデバイス102のためのグラフィクスを出力するように構成されるディスプレイ114も図示されている。例えばアプリケーション108の1つが現在実行中であり、ディスプレイデバイス114を介して表示されるべきアプリケーション108のグラフィック要素を提示する例示の実装を検討する。プロセッサ104を使用して、グラフィクス管理モジュール110は、本明細書で説明される技術を実装して、グラフィクス要素を調べて、そのグラフィクス要素が、グラフィクスプロセッサ106によりどのように処理されるべきかに関する決定を行うことができる。本明細書で詳述されるように、グラフィクス要素のついての処理の決定は、プリミティブのオーバーラップ、グラフィクス要素に適用されるべき視覚的効果、グラフィクス要素の視覚的な複雑性等といった、グラフィクス要素の様々な特性に基づくことができる。
処理の決定に基づいて、グラフィクス管理モジュール110は、グラフィクス要素をどのように処理すべきかを指定する、グラフィクス要素のための処理命令を生成する。本明細書で使用されるとき、「命令」という用語は、プロセッサによって読み取って処理することができる実行可能コードのような、コンピュータ実行可能な命令を指す。グラフィクス管理モジュール110は、処理命令をグラフィクスプロセッサ106へ提示し、グラフィクスプロセッサ106は、メモリ112からグラフィクス要素を読み出し、処理命令を使用してグラフィクス要素を処理する。グラフィクスプロセッサ106は、処理されたグラフィクス要素をメモリ112に書き込む。ディスプレイデバイス114は、処理されたグラフィカル要素をメモリ112から(例えばディスプレイコントローラを介して)読み出して、処理されたグラフィカル要素を表示することができる。
本明細書で説明される技術が動作し得る例示の環境を説明してきたので、次に、1つ以上の実施形態に係る幾つかの例示のプロシージャを検討する。
<例示のプロシージャ>
以下の記載では、1つ以上の実施形態に係る、複数のプリミティブを使用するグラフィクス処理のための幾つかの例示のプロシージャを説明する。例示のプロシージャは、図1の例示の環境100、図8のシステム800及び/又は任意の他の適切な環境で使用されてよい。
図2は、1つ以上の実施形態に係る方法のステップを説明するフロー図である。方法は、グラフィクスマネージャによって実行されるステップと、グラフィクスプロセッサによって実行されるステップとして図示されている。しかしながら、このステップの割り当ては、単に例示の目的のために提示されるものであり、ステップを様々な異なる機能の1つ又は複数によって実行することができる。
少なくとも一部の実施形態において、グラフィクスがデバイス上で処理されてレンダリングされている間、方法をフレームごとに実行することができる。したがって、方法は、ディスプレイデバイス上での表示のためにグラフィクスを合成及び/又はレンダリングする例示のやり方を示す。
ステップ200は、特定のピクセル領域において、第1のプリミティブが第2のプリミティブにオーバーラップすることを判断する。特定の表示領域について、例えば特定のプリミティブが1つ以上の他のプリミティブの上にレイヤされると決定することができる。
様々な異なる技術を使用して、プリミティブのオーバーラップ及びプリミティブ間のオーバーラップの量を決定することができる。例えば空間データ構造を使用して、特定の表示フレーム内の一部として表示されるべきプリミティブの一部又は全てのように、表示エリアの領域内に表示すべきプリミティブを特徴付けることができる。4分木、k次元木、バイナリ空間分割(BSP)木等といった、様々なタイプの空間データ構造を用いることができる。したがって、一群のプリミティブのためのピクセル領域を特徴付ける空間データ構造を調べて、どのプリミティブがオーバーラップしているか、かつ/又はオーバーラップしているプリミティブの間にどのくらいのオーバーラップが存在するかを決定することができる。
ステップ202は、プリミティブを一緒に処理すべきことを指定する処理命令を生成する。処理命令は、例えばプリミティブについてのグラフィクスデータを、メモリから読み出すべきことを指定することができる。処理命令は更に、プリミティブを、単一のプリミティブとして組み合わせて処理し、メモリに書き込むように指示することもある。例えば処理命令は、プリミティブを処理し、中間の処理結果はメモリに書き込まずに、最終的な処理結果をメモリに書き込むように指定することができる。また、処理命令は、ブレンディング、クリッピング、シェーディング等といった、個々のプリミティブ及び/又は組合せのプリミティブに適用すべき視覚的効果を指定してもよい。少なくとも一部の実施形態において、処理命令は、プリミティブが処理された後に、処理されたプリミティブを、単一の書込みオペレーションによりメモリに書き込むべきことを指示することができる。
ステップ204は、処理命令をグラフィクス処理機能へ提示する。処理命令を、例えばグラフィクスプロセッサへ提示することができる。
ステップ206は、処理命令を受け取る。例えばグラフィクスプロセッサ106が、その命令を受け取ることができる。
ステップ208は、処理命令に基づいて、第1のプリミティブ及び第2のプリミティブについてのデータをメモリから読み出す。例えば関連するアプリケーションが、これらのプリミティブについてのデータをメモリの領域に書き込むことがあり、グラフィクスプロセッサは、そのメモリの領域からデータを読み出すことができる。データは、色やシェーディング、透明性、不透明性、表示領域情報等といった、プリミティブについての様々な情報を指定することができる。
ステップ210は、処理命令及びプリミティブについてのデータに基づいて、第1のプリミティブ及び第2のプリミティブを処理する。処理命令によって指定される、様々なタイプの視覚的効果のような様々な処理を、プリミティブに対して適用することができる。
ステップ212は、処理されたプリミティブをメモリに書き込む。処理されたプリミティブについてのデータを、例えば単一の書込みオペレーションで、処理中のメモリへの中間の書込みとは独立に、メモリの領域に書き込むことができる。例えば処理されたプリミティブを、処理済みのプリミティブを格納するのに使用されるメモリのレンダリング対象部分に書き込むことができる。ディスプレイデバイスのディスプレイコントローラを介するなどして、処理されたプリミティブをメモリの領域から読み出して、表示することができる。
説明の容易性のために、上述のプロシージャは、2つのプリミティブとの関連で説明されている。しかしながら、本明細書で説明される技術を、幾つかのオーバーラップするプリミティブ、例えば2つより多くのオーバーラップするプリミティブを処理するのに用いることができる。例えば3つ以上のプリミティブをメモリから読み出して処理し、処理中に中間メモリの書込みは行わずに、表示のためにメモリへ書き戻すことができる。
図3は、1つ以上の実施形態に係る方法のステップを説明するフロー図である。少なくとも一部の実施形態において、方法は、図2に関連して上述した方法200の例示の実装を示す。
ステップ300は、第1のプリミティブが第2のプリミティブにオーバーラップすることを確認する。例えばグラフィクスマネージャは、特定のフレームについて、あるプリミティブのピクセル領域が、別のプリミティブのピクセル領域に少なくとも部分的にオーバーラップすることを決定することができる。
ステップ302は、第1のプリミティブのピクセル領域と第2のプリミティブのピクセル領域との間の差を決定する。この差は、例えば第1のプリミティブのピクセル領域によってオーバーラップされる、第2のプリミティブのピクセル領域の部分に相当し得る。プリミティブのピクセル領域間の差を決定する例は、図7に関連して以下で説明される。プリミティブのピクセル領域間の差を決定するために様々な技術を用いることができ、その少なくとも一部が上記及び下記で説明される。
ステップ304は、第1のプリミティブと、第2のプリミティブの下になっている部分との組合せを、第1のプリミティブのピクセル領域に基づいて処理すべきことを指定する、第1の命令を生成する。例えば第1の命令は、第1のプリミティブのピクセル領域について、第1のプリミティブと、第1のプリミティブの下に位置する第2のプリミティブの部分とを一緒に処理すべきことを指定することができる。したがって、第1の命令は、第1のプリミティブと、第2のプリミティブの下になっている部分を、処理すべき単一のプリミティブとして識別することができる。
ステップ306は、第1のプリミティブのピクセル領域と第2のプリミティブのピクセル領域との間の差に基づいて、第2のプリミティブを処理すべきことを指定する、第2の命令を生成する。第2の命令は、例えば第2のプリミティブのうち、第1の命令によって指定された部分を省略することができる。したがって、第2のプリミティブの残りの部分(例えば第1の命令によって指定されていない部分)を、単一のプリミティブとして処理することができる。少なくとも一部の実施形態において、第1の命令によって指定された第2のプリミティブの部分を省略することは、メモリ及び/又は処理リソースをセーブすることができ、これらのリソースは、省略された部分を、例えば第1の命令に基づいて既に処理された後に、2度処理するのに使用されることがある。
図2に関連して説明したように、第1の命令及び第2の命令を、1組のプリミティブについての処理命令の一部としてグラフィクスプロセッサへ提示することができる。
この方法は、2つのプリミティブの処理との関連で説明されているが、これは、限定として意図されておらず、この方法を、1つ以上の実施形態に従って、複数のオーバーラップするプリミティブについて処理命令を生成するのに用いることができる。
様々な実施形態によると、プリミティブのピクセル領域の間の差を決定することは、様々な方法で実行される可能性がある。例えばグラフィクス機能(例えばグラフィクス管理モジュール110)は、コンピューティングデバイスの処理ユニット(例えばプロセッサ104)を利用して、異なる計算を実行することができる。あるいはまた、グラフィクス機能は、グラフィクスプロセッサ(例えばグラフィクスプロセッサ104)の機能を利用して異なる計算を実行することができる。
例えばプリミティブのピクセルデータを、プリミティブのピクセル領域の間の差を計算する要求とともに、グラフィクスプロセッサへ提示することができる。グラフィクスプロセッサは、zバッファリング技術(例えば深度バッファ)を用いてピクセルデータ(例えばピクセル座標)を処理し、プリミティブのピクセル領域間の差を決定することができる。グラフィクスプロセッサは、ピクセル領域間の差を用いて、例えばグラフィクスマネージャから受け取った処理命令に基づいて、プリミティブをどのように処理すべきかに関する決定を行うことができる。例示の実装として以下の方法を検討する。
図4は、1つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ400は、オーバーラップするプリミティブのピクセル領域が、複雑性の閾値と合致する又は閾値を超えるかどうかを判断する。複雑性の閾値は、例えばオーバーラップするプリミティブの閾値数を指定することができる。別の例では、複雑性の閾値は、オーバーラップするプリミティブについて閾値のピクセルエリアを指定することができる。複雑性の閾値について多様な他のパラメータを考慮することができる。
オーバーラップするプリミティブのピクセル領域が、複雑性の閾値以上でない場合(「No」)、ステップ402は、ローカルの処理デバイスに、ピクセル領域間の差を計算するよう要求を提示する。グラフィクス管理モジュール110は、例えばプロセッサがプリミティブのピクセル領域間の差を計算することを要求する命令を、プロセッサ104へ提示することができる。
ステップ404は、プリミティブのピクセル領域間の差の指示を受け取る。例えばグラフィクス管理モジュール110は、プロセッサ104及び/又はグラフィクスプロセッサ106から差分の計算を受け取ることができる。
ステップ400に戻ると、オーバーラップするプリミティブのピクセル領域が、複雑性の閾値以上である場合(「Yes」)、ステップ406は、グラフィクスプロセッサに、ピクセル領域間の差を計算するよう要求を提示する。グラフィクス管理モジュール110は、例えばグラフィクスプロセッサがプリミティブのピクセル領域間の差を計算することを要求する命令を、グラフィクスプロセッサ106へ提示することができる。少なくとも一部の実施形態において、命令は、グラフィクスプロセッサの深度バッファを用いて異なる計算を実行するように指定することができる。
ステップ408は、ピクセル領域間の差をグラフィクスプロセッサ上に格納する。例えば差分を、GPUの深度バッファ内に格納することができる。
ステップ410は、ピクセル領域間の差の指示を用いて、プリミティブについての処理決定を行う。例えば差分がローカルの処理デバイスにおいて計算される(例えばステップ402)シナリオでは、プリミティブをどのように処理するかを決定する際に使用されるよう、差分をグラフィクスプロセッサへ提示することができる。差分がグラフィクスプロセッサによって計算されて格納されるシナリオでは、グラフィクスプロセッサは、ローカルで差分情報にアクセスして、プリミティブの処理決定を行うことができる。そのような決定の例は、上記及び下記で説明される。
上記で提供される例は、ローカルプロセッサ又はグラフィクスプロセッサを使用することに関連する「いずれか/又は」のシナリオを提示する。しかしながら、これは、限定として意図されておらず、少なくとも一部の実施形態は、ローカルのプロセッサとグラフィクスプロセッサの双方を使用して、様々な態様の異なる計算を実行してよい。例えば一群の異なる計算を、より複雑な計算とあまり複雑でない計算とに分割することができる。あまり複雑でない計算を、ローカルのプロセッサで実行するように提示し、より複雑な計算を、グラフィクスプロセッサで実行するよう提示することができる。したがって、ローカルプロセッサとグラフィクスプロセッサを別個に使用して異なる計算を実行することができ、かつ/又はローカルプロセッサとグラフィクスプロセッサの組合せを用いて異なる計算を実行することもできる。
少なくとも一部の実施形態では、本明細書で説明される技術は、オーバーラップするプリミティブをどのようにレンダリングすべきかを、プリミティブの視覚的特性に基づいて指定することができる。例えば以下の方法を検討する。
図5は、1つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ500は、第1のプリミティブが第2のプリミティブにオーバーラップすることを決定する。例えばプリミティブのzオーダー(z-order)は、特定のフレームについて、第1のプリミティブが第2のプリミティブの一部又は全てにオーバーラップすることを指定することができる。
ステップ502は、第1のプリミティブのピクセルが不透明の場合は、第2のプリミティブのオーバーラップされたピクセルを処理しないように指定するよう、プリミティブについての処理命令を修正する。例えば第1のプリミティブをピクセルごとに調べて、不透明なピクセルを識別することを指定するように、プリミティブの処理命令を修正することができる。第2のプリミティブのピクセルにオーバーラップする不透明なピクセルが識別された場合、第2のプリミティブのオーバーラップされたピクセル(例えば第2のプリミティブの一部又は全て)は処理されず、かつ/又はメモリに書き込まれない。
例えば第1のプリミティブのオーバーラップしている部分が、いくつかの不透明なピクセルと、いくつかの不透明でないピクセル、例えば半透明なピクセルや透明なピクセル等を含むシナリオを考える。このようなシナリオでは、第1のプリミティブの不透明なピクセルによってオーバーラップされる第2のプリミティブのピクセルは、処理されず、かつ/又はメモリに書き込まれない。しかしながら、不透明でないピクセルによってオーバーラップされる第2のプリミティブのピクセルは処理することができ、本明細書で説明される技術に従って、例えば第1のプリミティブのオーバーラップしているピクセルとブレンドすることができる。
上述の技術を用いると、第1のプリミティブ及び第2のプリミティブを、グラフィクスプロセッサ、例えばグラフィクスプロセッサ106により処理するために、単一の組合せプリミティブとして、(例えばグラフィクス管理モジュール110により)一緒に組み合わせることができる。例えば単一の組合せプリミティブのための処理命令に基づいて、グラフィクスプロセッサは、メモリから、第1のプリミティブと、第2のプリミティブのいずれかオーバーラップされていない部分とを処理することができる。第2のプリミティブが第1のプリミティブによって完全にオーバーラップされる例示の実施形態では、第2のプリミティブのデータは単に処理せず、かつ/又はメモリに書き込まれないことがある。したがって、別のプリミティブの不透明のピクセルによってオーバーラップされるプリミティブの部分を、構成オペレーション(compositing operation)から省略することができる。
したがって、少なくとも部分的に不透明なプリミティブが、下になるプリミティブのピクセルを覆い、下になるプリミティブのピクセルが、関連するディスプレイ領域の視覚的外観に寄与しないようになるとき、技術は、グラフィクスプロセッサに、オーバーラップするプリミティブの不透明なピクセルによってオーバーラップされる、下になるプリミティブのピクセルを省略するよう指示することにより、リソース(例えば処理及び/又はメモリリソース)を節約することができる。
少なくとも一部の実施形態において、本明細書で説明される技術を用いて、上述のような視覚的効果を適用することのように、様々なタイプのグラフィクス処理をプリミティブに対して実行することができる。例えば以下の方法を検討する。
図6は、1つ以上の実施形態に係る方法のステップを説明するフロー図である。ステップ600は、複数のプリミティブを単一の組合せプリミティブとして一緒にグループ化する、第1の処理命令を生成する。例えばプリミティブを(例えばプリミティブのオーバーラップに基づいて)組み合わせる上述の実装を用いて、2つ以上のオーバーラップするプリミティブを組み合わせて、単一の組合せプリミティブにすることができる。
ステップ602は、単一の組合せプリミティブに適用すべき視覚的効果を指定する、第2の処理命令を生成する。視覚的効果の例には、クリッピング、シェーディング、グレイスケーリング、フェーディング等が含まれる。
少なくとも一部の実施形態において、視覚的効果は、組合せプリミティブに適用されるべき、アンチエイリアス効果を含むことができる。一般に、アンチエイリアスは、ピクセルのシェーディング及び/又は着色(tinting)を介してピクセルグラフィクス内のギザギザのピクセルを防止するような、グラフィクスのエッジをスムースにするための技術を指す。したがって、視覚的効果の命令は、アンチエイリアシングのためのピクセルのカバレッジ値を含むことができる。例えばカバレッジ値は、アンチエイリアス技術の一部として個々のピクセルに適用すべきカラーシェーディング及び/又は着色を含むことができる。
ステップ604は、第1の処理命令及び第2の処理命令をグラフィクスプロセッサへ提示する。処理命令を、例えばグラフィクス管理モジュール110によって生成して、グラフィクスプロセッサ106へ提示して実行することができる。
<例示の実装シナリオ>
以下の記載は、本明細書で説明される複数のプリミティブを使用するグラフィクス処理のための技術の例示の実装シナリオを説明する。例示の実装シナリオは、図1の環境100、図8のシステム800及び/又は任意の他の適切な環境において実装されてよい。実装シナリオは、上述の様々なプロシージャの態様を用いることがある。
図7は、1つ以上の実施形態に係る例示の実装シナリオ700を図示している。シナリオ700の上の部分はプリミティブ702及びプリミティブ704を含み、プリミティブ702、704は、ディスプレイ領域の一群のピクセルの一部としてレンダリングされて表示されるべきプリミティブのデータを表す。プリミティブ702、704は、例えばアプリケーション108のうちの1つに関連付けられるグラフィクス要素の一部とすることができる。プリミティブ702、704は、異なるサイズ、色、シェーディング、不透明性又は透明性のレベル等とすることができる。
シナリオ700に対して更に、プリミティブ702、704は、プリミティブ704がプリミティブ702にオーバーラップすることを指定する、それぞれのzオーダーを有する。したがって、プリミティブ702についての命令は、プリミティブ702が表示されるべき特定のピクセル領域を指定する。プリミティブ704についての命令は、その特定のピクセル領域のうち、プリミティブ704が表示されるべきサブ領域を指定する。
シナリオ700の次の部分に続くと、プリミティブ702とプリミティブ704との間の領域の差706が計算される。領域の差706は、例えばプリミティブ702が表示されるべきピクセル領域(例えば一群のピクセル)と、プリミティブ704を表示すべきピクセル領域との間の差に相当し得る。例えばプリミティブ704のピクセル領域を、プリミティブ702のピクセル領域から差し引いて、ピクセル間の領域の差706、例えばプリミティブ702によって覆われるが、プリミティブ704によって覆われないピクセル領域、を決定することができる。
シナリオ700の次の部分に進むと、プリミティブ704のピクセル領域に基づいて、プリミティブ702の一部分708及びプリミティブ704を処理する命令が生成される。例えば部分708は、プリミティブ702のうち、プリミティブ704の下に位置する部分に相当する。したがって、プリミティブ704のピクセル領域を処理することは、プリミティブ702とプリミティブ704の双方のそれぞれの部分をブレンドすることを含むことができる。
シナリオ700の下の部分に進むと、領域の差706に基づいて、プリミティブ702を処理する命令が生成される。したがって、領域の差706のピクセル領域を処理することは、プリミティブ704と、プリミティブ702の一部分708を処理することを除外する。
シナリオ700を介して生成された命令は、本明細書で説明される技術を用いるように、プリミティブ702、704を処理して表示することができるように、実行のためグラフィクスプロセッサへ提示され得る。
例示の実装シナリオを説明してきたので、次に、1つ以上の実施形態による例示のシステム及びでデバイスの議論について検討する。
<例示のシステム及びデバイス>
図8は、全体的に800として例示のシステムを図示している。このシステムは、本明細書で説明される様々な技術を実装することができる1つ以上のコンピューティングシステム及び/又はデバイスを表す、例示のコンピューティングデバイス802を含む。例えば図1に関連して上述したコンピューティングデバイス102を、コンピューティングデバイス802として具現化することができる。コンピューティングデバイス802は、例えばサービスプロバイダのサーバ、クライアント(例えばクライアントデバイス)に関連付けられたデバイス、オンチップシステム及び/又は任意の他の適切なコンピューティングデバイス若しくはコンピュータシステムとすることができる。
図示されるように、例示のコンピューティングデバイス802は、相互に通信可能に接続される処理システム804と、1つ以上のコンピュータ読取可能媒体806と、1つ以上の入出力(I/O)インタフェース808とを含む。図示されていないが、コンピューティングデバイス802は更に、様々なコンポーネントを相互に結合するシステムバスあるいは他のデータ及びコマンド転送システムを含んでもよい。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス及び/又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような、異なるバス構造のうちのいずれか1つ又は組合せを含むことができる。制御及びデータ回線のような様々な他の例も考えられる。
処理システム804は、ハードウェアを使用して1つ以上の動作を実行する機能性を表す。したがって、処理システム804は、プロセッサ、機能ブロック等として構成され得るハードウェア要素810を含むように図示されている。これは、特定用途向け集積回路又は1つ若しくは複数の半導体を使用して形成される他の論理デバイスとして、ハードウェアの実装を含むことがある。ハードウェア要素810は、これらが形成される材料や用いられる処理機構に制限されない。例えばプロセッサは、半導体及び/又はトランジスタ(例えば電子集積回路(IC))から構成されることがある。そのようなコンテキストにおいて、プロセッサ実行可能命令は、電子的に実行可能な命令であってよい。
コンピュータ読取可能媒体806は、メモリ/ストレージ812を含むように図示されている。メモリ/ストレージ812は、1つ以上のコンピュータ読取可能媒体に関連付けられるメモリ/記憶機能を表す。メモリ/ストレージコンポーネント812は、揮発性媒体(ランダムアクセスメモリ(RAM)等)及び/又は非揮発性媒体(読取専用メモリ(ROM)、フラッシュメモリ、光ディスク、磁気ディスク等)を含むことができる。メモリ/ストレージコンポーネント812は、固定の媒体(例えばRAM、ROM、固定のハードドライブ等)並びに取外し可能媒体(例えばフラッシュメモリ、取外し可能ハードドライブ、光ディスク等)を含むことができる。コンピュータ読取可能媒体806は、以下で更に説明されるように様々な他の方法で構成されてもよい。
入出力(I/O)インタフェース808は、ユーザがコマンド及び情報をコンピューティングデバイス802に入力するのを可能にし、また様々な入出力デバイスを使用して、情報をユーザ及び/又は他のコンポーネント若しくはデバイスへ提示することを可能にする機能性を表す。入力デバイスの例には、キーボード、カーソル制御デバイス(例えばマウス)、(例えば音声認識及び/又は発話入力のための)マイク、スキャナ、タッチ機能(例えば物理的な接触を検出するように構成される容量式センサ又は他のセンサ)、カメラ(例えば赤外線周波数のような可視又は非可視の波長を用いて、接触を伴わない動きをジェスチャとして検出し得るもの)等が含まれる。出力デバイスの例には、ディスプレイデバイス(例えばモニタ又はプロジェクタ)、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等が含まれる。したがって、コンピューティングデバイス802は、以下で更に説明されるように、ユーザ対話をサポートするように様々な方法で構成され得る。
本明細書では、様々な技術がソフトウェア、ハードウェア要素又はプログラムモジュールの一般的なコンテキストにおいて説明され得る。一般に、そのようなモジュールは、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用されるとき、「モジュール」、「機能(性)」及び「コンポーネント」という用語は、一般的に、ソフトウェア、ファームウェア、ハードウェア又はこれらの組合せを表す。本明細書で説明される技術の特徴はプラットフォーム独立であるが、これは、本技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装され得ることを意味する。
説明されるモジュール及び技術の実装は、何らかの形式のコンピュータ読取可能媒体に格納されるか、そのコンピュータ読取可能媒体によって伝送され得る。コンピュータ読取可能媒体は、コンピューティングデバイス802によってアクセスされ得る様々な媒体を含み得る。限定ではなく例として、コンピュータ読取可能媒体は、「コンピュータ読取可能記憶媒体」と「コンピュータ読取可能信号媒体」とを含むことがある。
「コンピュータ読取可能記憶媒体」は、単なる信号伝送や、搬送波又は信号自体等とは対照的に、情報の持続的な記憶を可能にする媒体及び/又はデバイスを指すことができる。したがって、コンピュータ読取可能記憶媒体は、正確な意味では信号を含まない。コンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、ロジック要素/回路又は他のデータのような情報の記憶に適した方法又は技術で実装される、揮発性及び非揮発性、取外し可能及び取外し不可能の媒体及び/又はストレージデバイスのようなハードウェアを含む。コンピュータ読取可能記憶媒体の例には、これらに限られないが、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、あるいは所望の情報を格納するのに適切であって、コンピュータによってアクセス可能な他の記憶デバイス、有形の媒体又は製品が含まれる。
「コンピュータ読取可能信号媒体」は、命令を、ネットワークを介するなどしてコンピューティングデバイス802のハードウェアに伝送するように構成される信号担持媒体を指すことがある。信号媒体は典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波、データ信号又は他の伝送機構のような変調データ信号で具現化することができる。信号媒体は、任意の情報配信媒体も含む。「変調データ信号」という用語は、情報を信号にエンコードするような方法で設定又は変更された特性の1つ以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続のような有線媒体と、音響、無線周波数(RF)、赤外線及び他の無線媒体のような無線媒体とを含む。
上述のように、ハードウェア要素810及びコンピュータ読取可能媒体806は、一部の実施形態において、説明される技術の少なくとも一部の態様を実装するのに用いられるハードウェアの形で実装される、命令、モジュール、プログラマブルデバイスロジック及び/又は固定のデバイスロジックを表す。ハードウェア要素は、集積回路若しくはオンチップシステム、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、結合プログラム可能論理回路(CPLD)及びシリコンでの他の実装や他のハードウェアデバイスが含まれる。このコンテキストにおいて、ハードウェア要素は、ハードウェア要素によって具現化される命令、モジュール及び/又はロジックによって定義されるプログラムタスクを実行する処理デバイス、並びに実行のために命令を格納するのに用いられるハードウェアデバイス、例えば前述したコンピュータ読取可能記憶媒体として動作してもよい。
上述の組合せを用いて、本明細書で説明される様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア又はプログラムモジュール及び他のプログラムモジュールを、何らかの形式のコンピュータ読取可能記憶媒体において及び/又は1つ以上のハードウェア要素810によって具現化される1つ以上の命令及び/又はロジックとして実装してもよい。コンピューティングデバイス802は、ソフトウェア及び/又はハードウェアモジュールに対応する特定の命令及び/又は機能を実装するように構成され得る。したがって、コンピューティングデバイス802によって実行可能なモジュールのソフトウェアとしての実装は、少なくとも部分的にハードウェアで、例えばコンピュータ読取可能記憶媒体及び/又は処理システム804のハードウェア要素810の使用を通して達成され得る。命令及び/又は機能は、本明細書で説明される技術、モジュール及び実施例を実装するよう1つ以上の製品(例えば1つ以上のコンピューティングデバイス802及び/又は処理システム804)によって実行可能/動作可能である。
図8に更に図示されるように、例示のシステム800は、アプリケーションをパーソナルコンピュータ(PC)、テレビジョンデバイス及び/又はモバイルデバイス上で実行するときに、シームレスなユーザ経験のためのユビキタス環境を可能にする。サービス及びアプリケーションは実質的に、アプリケーションを使用している間、ビデオゲームをプレイしている間、ビデオを観ている間等に、あるデバイスから次のデバイスに遷移する際に、共通のユーザ経験のために3つの全ての環境において同様に動作する。
例示のシステム800において、複数のデバイスは中央コンピューティングデバイスを通して相互接続される。中央コンピューティングデバイスは、複数のデバイスにローカルであってもよく、複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、複数のデバイスにネットワーク、インターネット又は他のデータ通信リンクを通して接続される、1つ以上のサーバコンピュータのクラウドであってよい。
一実施形態において、この相互接続アーキテクチャは、複数のデバイスにわたって配信され、複数のデバイスのユーザに共通でシームレスな経験を提供するのを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスへの経験の配信を可能にする。この経験は、そのデバイスに対して調整されるが、全てのデバイスに対して共通でもある。一実施形態において、ターゲットデバイスのクラスを作成し、経験をデバイスの汎用クラスに対して調整する。デバイスのクラスを、物理的な特徴、利用のタイプ又はデバイスの他の共通の特性によって定義してもよい。
様々な実装において、コンピューティングデバイス802は、コンピュータ814用、モバイル816用、テレビジョン818用の使用のような様々な異なる構成を想定してもよい。これらの構成の各々は、一般に異なる構成及び能力を有することがあるデバイスを含み、したがって、コンピューティングデバイス802は、異なるデバイスクラスの1つ以上に従って構成され得る。例えばコンピューティングデバイス802は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ814クラスとして実装され得る。
コンピューティングデバイス802は、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンコンピュータ等のモバイルデバイスを含むデバイスのモバイル816クラスとして実装されてもよい。コンピューティングデバイス802は、簡潔な視聴環境において一般的に大きなスクリーンを有するか、これと接続されるデバイスを含むテレビジョン818クラスとして実装されてもよい。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
本明細書で説明される技術は、コンピューティングデバイス802のこれらの様々な構成によってサポートされ、本明細書で説明される技術の特定の実施例に限定されない。例えばグラフィクス管理モジュール110との関連で検討される機能は、以下で説明されるように、プラットフォーム822を介する「クラウド」820のように、分散システムの使用を通して全て又は部分的に実装され得る。
クラウド820は、リソース824のためのプラットフォーム822を含むか、及び/又はこれを表す。プラットフォーム822は、クラウド820のハードウェア(例えばサーバ)及びソフトウェアリソースの基礎となる機能を抽象化する。リソース824は、コンピューティングデバイス802からリモートのサーバ上でコンピュータ処理が実行されている間に用いることができるアプリケーション及び/又はデータを含み得る。リソース824は、インターネット上で及び/又はセルラ若しくはWi−Fiネットワークのような加入者ネットワークを通して提供されるサービスを含むこともできる。
プラットフォーム822は、コンピューティングデバイス802を他のコンピューティングデバイスに接続するリソース及び機能を抽出する。プラットフォーム822は、リソースのスケーリングを抽象化して、スケールの対応するレベルを、プラットフォーム822を介して実装されるリソース824について生じた要求に提供するように機能することもある。したがって、相互接続されるデバイスの実施形態において、本明細書で説明される機能性の実装をシステム800にわたって分散してもよい。例えば機能性は、部分的にコンピューティングデバイス802内に実装されてもよく、クラウド820の機能性を抽象化するプラットフォーム822を介して実装されてもよい。
ここでは、本明細書で検討される技術を実施するように実装され得る幾つかの方法が検討されている。これらの方法の態様は、ハードウェア、ファームウェア又はソフトウェア、あるいはその組合せで実装され得る。方法は、1つ以上のデバイスによって実行される動作を指定するステップのセットとして示されているが、動作を実行するために個々のブロックにより示される順序に必ずしも限定されない。さらに、1つ以上の実装に従って、特定の方法と関連して示される動作は、異なる方法の動作と組み合わされてよく、及び/又は交換されてもよい。方法の態様を、環境100との関連で上述した様々なエンティティの間の対話を介して実装することができる。
<結論>
複数のプリミティブを使用するグラフィクス処理の技術が説明される。実施形態は、構造的特徴及び/又は方法的動作に特有の言語で説明されるが、添付の特許請求の範囲において定義される実施形態は、必ずしも説明される具体的な特徴又は動作に限定されない。むしろ、具体的な特徴及び動作は、特許請求に係る実施形態を実装するための例示の形式として開示される。



  1. 1つ以上のコンピュータ読取可能記憶媒体であって、コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、
    第1のプリミティブが、第2のプリミティブに少なくとも部分的にオーバーラップすることを確認するステップと、
    前記第1のプリミティブのピクセル領域と、前記第2のプリミティブのピクセル領域との間の差を決定するステップと、
    前記第1のプリミティブの前記ピクセル領域に基づいて、前記第1のプリミティブと前記第2のプリミティブの下になっている部分との組合せを処理すべきことを指定する、第1の処理命令を生成するステップと、
    前記第1のプリミティブのピクセル領域と前記第2のプリミティブのピクセル領域との間の差に基づいて、前記第2のプリミティブを処理すべきことを指定する、第2の処理命令を生成するステップと、
    前記第1の処理命令及び前記第2の処理命令を、グラフィクスプロセッサによる実行のために提示するステップと、
    を含む動作を実行させる命令を備える、1つ以上のコンピュータ読取可能記憶媒体。

  2. 前記確認するステップは、前記第1のプリミティブ及び前記第2のプリミティブを特徴付ける空間データ構造を用いて、前記第2のプリミティブの少なくとも一部分にオーバーラップする前記第1のプリミティブの少なくとも一部分を決定する、
    請求項1に記載の1つ以上のコンピュータ読取可能記憶媒体。

  3. 前記第1のプリミティブのピクセル領域と、前記第2のプリミティブのピクセル領域との間の差を決定するステップは、
    前記第2のプリミティブにオーバーラップする前記第1のプリミティブのピクセル領域が、複雑性の閾値以上であるかどうかを判断するステップと、
    前記第2のプリミティブにオーバーラップする前記第1のプリミティブのピクセル領域が、前記複雑性の閾値以上でない場合、前記コンピューティングデバイスの中央処理ユニット(CPU)に、前記差を計算するよう要求を提示するステップと、
    前記第2のプリミティブにオーバーラップする前記第1のプリミティブのピクセル領域が、前記複雑性の閾値以上である場合、グラフィクス処理ユニット(GPU)に、前記差を計算するよう要求を提示するステップと、
    を含む、請求項1に記載の1つ以上のコンピュータ読取可能記憶媒体。

  4. 前記動作は、前記第1のプリミティブの1つ以上の不透明なピクセルが、前記第2のプリミティブの1つ以上のピクセルにオーバーラップする場合、前記第2のプリミティブの前記1つ以上のピクセルが処理されないことを指定するように、前記第1の処理命令を修正するステップ、
    を含む、請求項1に記載の1つ以上のコンピュータ読取可能記憶媒体。

  5. デバイスであって:
    少なくとも1つのプロセッサと;
    1つ以上のコンピュータ読取可能記憶媒体であって、前記少なくとも1つのプロセッサによって実行されると、当該デバイスに、
    少なくとも1つのプリミティブが、特定のピクセル領域において、1つ以上の他のプリミティブに少なくとも部分的にオーバーラップすることを判断するステップと、
    前記少なくとも1つのプリミティブの少なくとも一部と、前記1つ以上の他のプリミティブとを表示のために単一のプリミティブに組み合わせるように、前記少なくとも1つのプリミティブと、前記1つ以上の他のプリミティブとを一緒に処理すべきことを指定する、処理命令を生成するステップと、
    前記処理命令を、前記少なくとも1つのプロセッサとは別個のグラフィクス処理機能へ提示するステップと、
    を含む動作を実行させる命令を含む、1つ以上のコンピュータ読取可能記憶媒体と;
    を備える、デバイス。

  6. 前記生成するステップは、単一の書込みオペレーションを介して、処理中のメモリへの中間の書込みとは独立に、前記単一のプリミティブをメモリに書き込むべきことを指定する処理命令を生成することを含む、
    請求項5に記載のデバイス。

  7. 前記生成するステップは、前記単一のプリミティブに適用すべき1つ以上の視覚的効果を指定する処理命令を生成することを含み、前記視覚的効果は、クリッピング、不透明化、シェーディング又はアンチエイリアスプロシージャのうちの少なくとも1つを含む、
    請求項5に記載のデバイス。

  8. 前記生成するステップは、前記少なくとも1つのプリミティブの1つ以上のピクセルが不透明である場合、前記少なくとも1つのプリミティブの前記1つ以上のピクセルによってオーバーラップされる、前記1つ以上の他のプリミティブの1つ以上のピクセルが処理されないことを指定する処理命令を生成することを含む、
    請求項5に記載のデバイス。

  9. 前記動作は、前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域と、前記少なくとも1つのプリミティブによってオーバーラップされる前記1つ以上の他のプリミティブのピクセル領域との間の差を決定するステップを備え、
    前記生成するステップは、
    前記少なくとも1つのプリミティブの前記ピクセル領域に基づいて、前記少なくとも1つのプリミティブと前記1つ以上の他のプリミティブの下になっている部分との組合せを処理すべきことを指定する、第1の処理命令を生成するステップと、
    前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域と、前記少なくとも1つのプリミティブによってオーバーラップされる前記1つ以上の他のプリミティブのピクセル領域との間の差に基づいて、前記1つ以上の他のプリミティブを処理すべきことを指定する、第2の処理命令を生成するステップと、
    を備える、請求項5に記載のデバイス。

  10. 前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域と、前記少なくとも1つのプリミティブによってオーバーラップされる前記1つ以上の他のプリミティブのピクセル領域との間の差を決定するステップは、
    前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域が、複雑性の閾値以上であるかどうかを判断するステップと、
    前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域が、前記複雑性の閾値以上でない場合、前記少なくとも1つのプロセッサを用いて前記差を計算するステップと、
    前記1つ以上の他のプリミティブにオーバーラップする前記少なくとも1つのプリミティブのピクセル領域が、前記複雑性の閾値以上である場合、前記グラフィクス処理機能に前記差を計算するように要求を提示するステップと
    を含む、請求項9に記載のデバイス。

 

 

Patent trol of patentswamp
類似の特許
幾つかの例においては、本開示の態様は、画像をレンダリングするための方法に関するものである。例えば、方法は、画像の可視のプリミティブを示すビジビリティ情報を生成することを含む。方法は、ビニング構成を用いて画像をレンダリングすることを含み、ビニング構成は、ビジビリティ情報に基づく。
【課題】 レンダリング方法及びその装置を提供する。
【解決手段】 タイルに基づくレンダリング方法において、現在フレームに対するビニングを行う段階と、現在フレームでレンダリングするタイルのビニング情報、またはレンダリングするタイルの属性情報に係わる識別コードを生成する段階と、レンダリングするタイルの識別コードと、以前フレームでレンダリングするタイルと同一位置の以前タイルの識別コードと、を比較する段階と、比較の結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいはレンダリングするタイルに対するピクセル処理を行い、現在フレームをレンダリングする段階と、を含むレンダリング方法である。
【選択図】 図3
カラーバッファ圧縮 // JP2016103288
【課題】画素またはサンプルのタイルを判定し記憶する方法を提供する。
【解決手段】テクスチャおよび断片処理ユニット42は、テクスチャキャッシュ46に連結される。キャッシュ46は、テクスチャ解凍モジュール54を介して、メモリ区画60に連結される。デプス比較および混合ユニット44は、デプスバッファキャッシュ48、カラーバッファキャッシュ50、およびタイルテーブルキャッシュ52に連結される。デプスバッファキャッシュ48は、デプスバッファコーダ/デコーダ(コーデック)56を介して、メモリ区画60に連結される。同様に、カラーバッファキャッシュ50は、カラーバッファコーダ/デコーダ(コーデック)58を介して、メモリ区画60に連結する。メモリ区画60は、システムメモリの一部であり得る動的ランダムアクセスメモリ(DRAM)62、64、66、および68に連結される。
【選択図】図1
【課題】 グラフィックプロセッシング装置、及びグラフィックプロセッシング装置でタイル基盤グラフィックス・パイプラインを遂行する方法を提供すること。【解決手段】 グラフィックプロセッシング装置において、グラフィックス・パイプラインを遂行する方法は、ハルシェーダから出力された出力パッチが含まれたタイルの個数に基づいて、出力パッチに対するテッセレーティングをスキップするか否かを判断し、該判断結果によって、出力パッチまたはテッセレーティングされたプリミティブに係わるタイルリストをビニングするビニング・パイプラインを遂行し、ビニングされたタイルリストに基づいて、タイル単位でレンダリング・パイプラインを遂行する。【選択図】 図1
一般に、グラフィック処理ユニット(GPU)における視界ベースの状態更新のための技法が記載される。状態データを格納するように構成されたメモリと、GPUとを備え、画像データをレンダリングするデバイスが、本技法を実施しうる。GPUは、画像データから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行するように構成されうる。GPUは、マルチ・パス・レンダリング処理の第1のパスの間に、画像データによって定義された複数のオブジェクトのための視界情報を決定する。視界情報は、複数のオブジェクトのうちのおのおのが、マルチ・パス・レンダリング処理の第2のパスの間に、画像データからレンダリングされた画像において目に見えるようになるか否かを示す。GPUは、その後、視界情報に基づいて、画像データの複数のオブジェクトをレンダリングする際にマルチ・パス・レンダリング処理の第2のパスによって使用される状態データをメモリから取得する。
本開示は、組成物及びその組成物を含む物品に関する。前記組成物は、発泡体及び発泡体中に分散した複数のゲル粒子を含む。前記ゲル粒子は、オレフィンブロックコポリマー及び油状物を含む。
【課題】 経路レンダリングを行う方法及びその装置を提供する。【解決手段】 レンダリングが行われる客体に含まれた頂点に係わる情報を含むデータを獲得する段階と、フレームに含まれたピクセルそれぞれの位置と、頂点が連結された少なくとも一つ以上の経路の進行方向との関係に基づいて、ピクセルそれぞれに対応する周回数を演算する段階と、周回数を利用して、ピクセルそれぞれにカラーを設定するか否かを決定する段階と、を含む経路レンダリングを行う方法である。【選択図】 図1
コンテンツのタイルベースレンダリングを行う方法である。コンテンツは、複数のタイルとして体系付けされたメモリ領域にレンダリングすることができる。コンテンツをレイヤに生成するシナリオにおいて、画像レイヤ群を合成することを含む操作について、上記画像の構成部分を処理する順番は、メモリアクセス回数の合計回数を減らすように選択することができ、これによって今度は、タイルベースレンダリングを行うコンピュータの性能を向上させることができる。画像は、同一タイルに対応する異なるレイヤの構成部分をレンダリングする操作に関連する操作群が順番に行われるように、処理することができる。このような処理は、タイルベースレンダリングをサポートするグラフィック処理ユニットを備えるコンピュータにおいて用いることができ、かつスレート・フォーム・ファクタを有するコンピュータに極めて良好に適合させることができる。コンピュータ内のグラフィック処理ユーティリティとのインターフェースが、フラグを供給して、操作群を再順序付けすることができるかどうかをアプリケーションに指定させることができる。
本発明はページデジタル画像のラスタ化処理方法と装置を提供する。この方法は、ページデジタル画像を解析することにより、画像データ、画像タイプ、画像幅、画像高さ及び画像ビット深度を含む画像基本情報と、画像位置情報と、画像ラスタ化処理情報とを取得するステップと、データのエンコーディングタイプをデコードし、画像データを取得してバッファーに格納するステップと、バッファーから画像データを取得し、画像タイプ、画像幅、画像高さ、画像ビット深度及び画像位置情報によって画像データに対してラスタ化処理を行い、ラスタ化されたページラティスを取得するステップとを備える。本発明は、デジタル画像のラスタ化処理において磁気ディスクのデータファイルへの読み書き動作が減らされる、デジタル画像のラスタ化処理の効率を向上することができる。
To top