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

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

Info

Publication number
JP6364066B2
JP6364066B2 JP2016501096A JP2016501096A JP6364066B2 JP 6364066 B2 JP6364066 B2 JP 6364066B2 JP 2016501096 A JP2016501096 A JP 2016501096A JP 2016501096 A JP2016501096 A JP 2016501096A JP 6364066 B2 JP6364066 B2 JP 6364066B2
Authority
JP
Japan
Prior art keywords
primitive
primitives
processing
graphics
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016501096A
Other languages
English (en)
Other versions
JP2016517574A5 (ja
JP2016517574A (ja
Inventor
ペルトン,ブレイク,ディー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2016517574A publication Critical patent/JP2016517574A/ja
Publication of JP2016517574A5 publication Critical patent/JP2016517574A5/ja
Application granted granted Critical
Publication of JP6364066B2 publication Critical patent/JP6364066B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Description

今日のコンピューティングデバイスは、典型的に、様々なビジュアルコンテンツへのアクセスを有する。しかしながら、ビジュアルコンテンツを表示することは、リソース消費型の可能性がある。例えばアプリケーション用のユーザインタフェースを表示することは、複数のオペレーションを要する可能性がある。そのようなオペレーションの例には、ユーザインタフェース用のグラフィクスデータをメモリから読み出すこと、グラフィクスデータを処理すること、中間の処理結果をメモリ内に格納すること、そしてユーザインタフェース用に最終的に処理された画像をメモリに書き込み、メモリから読み出して表示できるようにすることが含まれる。これらのオペレーションは典型的にフレーム単位で行われるので、貴重なメモリ及び処理リソースを消費する。バッテリで動作するデバイス(例えばモバイルコンピューティングデバイス)では、これらのオペレーションはバッテリを更に消費し、このため充電の寿命を短くする可能性がある。したがって、デバイスのリソースに対するグラフィクスオペレーションの影響を制御することは、重要な考慮事項である。
この「発明の概要」における記載は、以下で「発明を実施するための形態」において更に説明される概念の選択を簡略化した形で紹介するために提供される。この「発明の概要」における記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を限定するのに使用されるようにも意図されていない。
複数のプリミティブを使用するグラフィクス処理の技術を説明する。一般に、コンピューティングデバイス上に表示されるグラフィクス要素は、複数のプリミティブから構成され得る。プリミティブの例には、線、カーブ、四角形等が含まれ、これらを組み合わせてより大きなグラフィカル要素を生成することができる。したがって、ディスプレイの領域内のピクセルを介してプリミティブをペイントし、アプリケーションのグラフィカルユーザインタフェースの部分のようなグラフィカル要素を生成することができる。
少なくとも一部の実施形態において、技術は、処理のために複数のプリミティブを組み合わせることができる。例えばあるプリミティブについて、別のプリミティブとのオーバーラップを検出することができる。プリミティブを、ピクセル領域内における表示のために、例えば単一のプリミティブとして一緒に処理することができる。プリミティブを、例えばグラフィクスプロセッサによってメモリから読み出すことができる。プリミティブをブレンドし、プリミティブに視覚的効果を適用すること等により、グラフィクスプロセッサによってプリミティブを処理することができる。処理されたプリミティブを、メモリ内に(例えば単一の書込みオペレーションにより)書き込むことができ、処理されたプリミティブにアクセスし、ディスプレイデバイスによって表示することが可能になる。
詳細な説明は、添付の図面との関連で説明される。図面において、参照番号の最も左の桁は、その参照番号が最初に現れる図面を特定する。説明及び図面における異なる例での同じ参照番号の使用は、同様又は同じアイテムを示すことがある。
本明細書で説明される技術を用いるように動作可能な例示の実装における環境を示す図である。 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との関連で上述した様々なエンティティの間の対話を介して実装することができる。
<結論>
複数のプリミティブを使用するグラフィクス処理の技術が説明される。実施形態は、構造的特徴及び/又は方法的動作に特有の言語で説明されるが、添付の特許請求の範囲において定義される実施形態は、必ずしも説明される具体的な特徴又は動作に限定されない。むしろ、具体的な特徴及び動作は、特許請求に係る実施形態を実装するための例示の形式として開示される。

Claims (8)

  1. コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、
    第1のプリミティブが、第2のプリミティブに少なくとも部分的にオーバーラップすることを確認するステップであって、前記第2のプリミティブは、前記第1のプリミティブによってオーバーラップされる第1の部分と、前記第1のプリミティブによってオーバーラップされない第2の部分とを含む、ステップと、
    記第2のプリミティブの前記第2の部分を決定するステップであって、前記第2のプリミティブの前記第2の部分を決定することは:
    前記第2のプリミティブの前記第1の部分にオーバーラップする前記第1のプリミティブのピクセル座標域が、オーバーラップするプリミティブについての複雑性の閾値以上であるかどうかを判断することと、
    前記第1のプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上でないと判断した場合、前記コンピューティングデバイスの中央処理ユニットに、前記第2のプリミティブの前記第2の部分を計算するよう要求を提示することと、
    前記第1のプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上であると判断した場合、グラフィクスプロセッサに、前記第2のプリミティブの前記第2の部分を計算するよう要求を提示することと、
    を含む、ステップと、
    前記第1のプリミティブの前記ピクセル座標域に基づいて、前記第1のプリミティブと前記第2のプリミティブの前記第1の部分との組合せを処理すべきことを指定する、第1の処理命令を生成するステップと、
    前記第1のプリミティブによってオーバーラップされていない前記第2のプリミティブの前記第2の部分を単一のプリミティブとして処理することにより、前記第2のプリミティブを処理すべきことを指定する、第2の処理命令を生成するステップと、
    前記第1の処理命令及び前記第2の処理命令を、前記グラフィクスプロセッサによる実行のために提示するステップと、
    を含む動作を実行させる、コンピュータプログラム。
  2. 前記確認するステップは、前記第1のプリミティブ及び前記第2のプリミティブを特徴付ける空間データ構造を用いて、前記第2のプリミティブの少なくとも一部分にオーバーラップする前記第1のプリミティブの前記ピクセル座標域の少なくとも一部分を決定する、
    請求項1に記載のコンピュータプログラム。
  3. 前記動作は、前記第1のプリミティブ又は前記第2のプリミティブのうちの1つ以上についてアンチエイリアシング情報を指定するよう、前記第1の処理命令又は前記第2の処理命令のうちの1つ以上を修正するステップ、
    を含む、請求項1に記載のコンピュータプログラム。
  4. 前記動作は、前記第1のプリミティブの1つ以上の不透明なピクセルが、前記第2のプリミティブの1つ以上のピクセルにオーバーラップする場合、前記第2のプリミティブの前記1つ以上のピクセルが処理されないことを指定するように、前記第1の処理命令を修正するステップ、
    を含む、請求項1に記載のコンピュータプログラム。
  5. デバイスであって:
    少なくとも1つのプロセッサと;
    1つ以上のコンピュータ読取可能記憶媒体であって、前記少なくとも1つのプロセッサによって実行されると、当該デバイスに、
    少なくとも1つのプリミティブが、1つ以上の他のプリミティブに少なくとも部分的にオーバーラップすることを判断するステップであって、前記1つ以上の他のプリミティブは、前記少なくとも1つのプリミティブによってオーバーラップされる第1の部分と、前記少なくとも1つのプリミティブによってオーバーラップされない第2の部分とを含む、ステップと;
    前記1つ以上の他のプリミティティブの前記第2の部分を決定する決定ステップであって、
    前記1つ以上の他のプリミティブの前記第1の部分にオーバーラップする前記少なくとも1つのプリミティブのピクセル座標域が、オーバーラップするプリミティブについての複雑性の閾値以上であるかどうかを判断することと、
    前記少なくとも1つのプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上でない場合、前記少なくとも1つのプロセッサに、前記1つ以上の他のプリミティブの前記第2の部分を計算するよう要求を提示することと、
    前記少なくとも1つのプリミティブの前記ピクセル座標域が、オーバーラップするプリミティブについての前記複雑性の閾値以上である場合、グラフィクスプロセッサに、前記1つ以上の他のプリミティブの前記第2の部分を計算するよう要求を提示することと、
    を含む決定ステップと、
    前記少なくとも1つのプリミティブ、前記1つ以上の他のプリミティブの前記第1の部分が表示のために単一のプリミティブに組み合わされるように、前記少なくとも1つのプリミティブと、前記1つ以上の他のプリミティブの前記第1の部分とを一緒に処理し、前記少なくとも1つのプリミティブによってオーバーラップされていない前記1つ以上の他のプリミティブの前記第2の部分を単一のプリミティブとして処理することにより、前記1つ以上の他のプリミティブを処理すべきことを指定する、処理命令を生成するステップと、
    前記処理命令を、前記グラフィクスプロセッサへ提示するステップと、
    を含む動作を実行させる命令を含む、1つ以上のコンピュータ読取可能記憶媒体と;
    を備える、デバイス。
  6. 前記生成するステップは、単一の書込みオペレーションを介して、処理中のメモリへの中間の書込みとは独立に、前記単一のプリミティブをメモリに書き込むべきことを指定する処理命令を生成することを含む、
    請求項5に記載のデバイス。
  7. 前記生成するステップは、前記単一のプリミティブに適用すべき1つ以上の視覚的効果を指定する処理命令を生成することを含み、前記視覚的効果は、クリッピング、不透明化、シェーディング又はアンチエイリアスプロシージャのうちの少なくとも1つを含む、
    請求項5に記載のデバイス。
  8. 前記生成するステップは、前記少なくとも1つのプリミティブの1つ以上のピクセルが不透明である場合、前記少なくとも1つのプリミティブの前記1つ以上のピクセルによってオーバーラップされる、前記1つ以上の他のプリミティブの1つ以上のピクセルが処理されないことを指定する処理命令を生成することを含む、
    請求項5に記載のデバイス。
JP2016501096A 2013-03-14 2014-03-11 複数のプリミティブを使用するグラフィック処理 Active JP6364066B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/804,329 2013-03-14
US13/804,329 US20140267327A1 (en) 2013-03-14 2013-03-14 Graphics Processing using Multiple Primitives
PCT/US2014/022891 WO2014159299A1 (en) 2013-03-14 2014-03-11 Graphics processing using multiple primitives

Publications (3)

Publication Number Publication Date
JP2016517574A JP2016517574A (ja) 2016-06-16
JP2016517574A5 JP2016517574A5 (ja) 2017-03-23
JP6364066B2 true JP6364066B2 (ja) 2018-07-25

Family

ID=50625068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016501096A Active JP6364066B2 (ja) 2013-03-14 2014-03-11 複数のプリミティブを使用するグラフィック処理

Country Status (6)

Country Link
US (2) US20140267327A1 (ja)
EP (1) EP2973413B1 (ja)
JP (1) JP6364066B2 (ja)
KR (1) KR102213727B1 (ja)
CN (1) CN105051788B (ja)
WO (1) WO2014159299A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
US10140268B2 (en) * 2015-08-27 2018-11-27 Qualcomm Innovation Center, Inc. Efficient browser composition for tiled-rendering graphics processing units
CN110751706B (zh) * 2019-10-29 2024-03-22 网易(杭州)网络有限公司 游戏中的图形处理方法、装置、设备及存储介质

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149148A (ja) * 1996-11-21 1998-06-02 Fuji Xerox Co Ltd 画像処理装置
US6300956B1 (en) * 1998-03-17 2001-10-09 Pixar Animation Stochastic level of detail in computer animation
US6720964B1 (en) * 1998-08-27 2004-04-13 Ati International Srl Method and apparatus for processing portions of primitives that are being rendered
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US7168048B1 (en) * 1999-03-24 2007-01-23 Microsoft Corporation Method and structure for implementing a layered object windows
US7362332B2 (en) 2002-06-20 2008-04-22 Nvidia Corporation System and method of simulating motion blur efficiently
JP3966832B2 (ja) * 2003-04-28 2007-08-29 株式会社東芝 描画処理装置、及び、描画処理方法
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
DE602004011234T2 (de) * 2004-11-19 2009-01-02 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder
JP4614389B2 (ja) * 2005-05-27 2011-01-19 キヤノン株式会社 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム
JP4764131B2 (ja) * 2005-10-19 2011-08-31 パナソニック株式会社 多重描画装置
US8081184B1 (en) 2006-05-05 2011-12-20 Nvidia Corporation Pixel shader program thread assembly
US8111260B2 (en) 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
US8212840B2 (en) * 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
US9058792B1 (en) * 2006-11-01 2015-06-16 Nvidia Corporation Coalescing to avoid read-modify-write during compressed data operations
US8537168B1 (en) * 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US20080284798A1 (en) * 2007-05-07 2008-11-20 Qualcomm Incorporated Post-render graphics overlays
US8004522B1 (en) * 2007-08-07 2011-08-23 Nvidia Corporation Using coverage information in computer graphics
EP2274725A1 (en) 2008-04-04 2011-01-19 Advanced Micro Devices, Inc. Filtering method and apparatus for anti-aliasing
JP5173578B2 (ja) * 2008-05-15 2013-04-03 キヤノン株式会社 画像処理方法及び印刷装置とその制御方法
US8259111B2 (en) 2008-05-30 2012-09-04 Advanced Micro Devices, Inc. Merged shader for primitive amplification
US8825660B2 (en) * 2009-03-17 2014-09-02 Ebay Inc. Image-based indexing in a network-based marketplace
US8339653B2 (en) 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on overlap characteristics
US8854381B2 (en) * 2009-09-03 2014-10-07 Advanced Micro Devices, Inc. Processing unit that enables asynchronous task dispatch
US8922555B2 (en) 2009-10-07 2014-12-30 Nvidia Corporation Pixel shader output map
US8561038B1 (en) * 2009-12-31 2013-10-15 Google Inc. High performance execution environment
US8949252B2 (en) * 2010-03-29 2015-02-03 Ebay Inc. Product category optimization for image similarity searching of image-based listings in a network-based publication system
US8861844B2 (en) * 2010-03-29 2014-10-14 Ebay Inc. Pre-computing digests for image similarity searching of image-based listings in a network-based publication system
US9405773B2 (en) * 2010-03-29 2016-08-02 Ebay Inc. Searching for more products like a specified product
US8773448B2 (en) * 2010-04-09 2014-07-08 Intel Corporation List texture
US8493404B2 (en) 2010-08-24 2013-07-23 Qualcomm Incorporated Pixel rendering on display
JP2012163621A (ja) * 2011-02-03 2012-08-30 Panasonic Corp 端末装置および画像処理方法
US8854383B2 (en) 2011-04-13 2014-10-07 Qualcomm Incorporated Pixel value compaction for graphics processing
CN102496169A (zh) * 2011-11-30 2012-06-13 威盛电子股份有限公司 重迭对象的绘制方法及装置
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives

Also Published As

Publication number Publication date
US20140267327A1 (en) 2014-09-18
EP2973413B1 (en) 2017-04-19
US11069020B2 (en) 2021-07-20
CN105051788A (zh) 2015-11-11
EP2973413A1 (en) 2016-01-20
KR102213727B1 (ko) 2021-02-05
US20180260930A1 (en) 2018-09-13
CN105051788B (zh) 2018-03-30
KR20150130307A (ko) 2015-11-23
JP2016517574A (ja) 2016-06-16
WO2014159299A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
US10016679B2 (en) Multiple frame distributed rendering of interactive content
JP6001221B1 (ja) グラフィックス処理のための任意の制御ポイントでのフォールトトレラントプリエンプションメカニズム
US11069020B2 (en) Graphics processing using multiple primitives
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
JP6595101B2 (ja) 後期深度試験と保守的深度試験との間の動的切替え
US20190325562A1 (en) Window rendering method and terminal
US10691880B2 (en) Ink in an electronic document
US11398065B2 (en) Graphic object modifications
US10043233B1 (en) Digital media environment for processing vector objects of vector artwork
WO2021128929A1 (zh) 一种全景应用中图像渲染的方法及终端设备
KR102521654B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법
JP2010175638A (ja) 表示装置及び表示装置の表示方法
CN108369726B (zh) 根据场景改变图形处理分辨率的方法和便携电子设备
US9384589B2 (en) Anti-aliasing for geometries
US10290134B2 (en) Coverage based approach to image rendering using opacity values
US11551391B2 (en) Digital image dynamic shadow generation
US20200151857A1 (en) Creation and Rasterization of Shapes using Geometry, Style Settings, or Location
US20170193698A1 (en) On-Demand Transformation Aware Shape Tessellation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180629

R150 Certificate of patent or registration of utility model

Ref document number: 6364066

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250