JP5575846B2 - ハードウエア・アクセラレーティド・ブレンド・モード - Google Patents

ハードウエア・アクセラレーティド・ブレンド・モード Download PDF

Info

Publication number
JP5575846B2
JP5575846B2 JP2012163459A JP2012163459A JP5575846B2 JP 5575846 B2 JP5575846 B2 JP 5575846B2 JP 2012163459 A JP2012163459 A JP 2012163459A JP 2012163459 A JP2012163459 A JP 2012163459A JP 5575846 B2 JP5575846 B2 JP 5575846B2
Authority
JP
Japan
Prior art keywords
computer
primitive
pixel
destination
processing device
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
JP2012163459A
Other languages
English (en)
Other versions
JP2012198943A (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 JP2012198943A publication Critical patent/JP2012198943A/ja
Application granted granted Critical
Publication of JP5575846B2 publication Critical patent/JP5575846B2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)

Description

本発明は、コンピュータ画像の分野に関し、特に画像情報を処理するコンピュータハードウエアに関する。
ソース・プリミティブの色と出力先(destination)プリミティブの色を組み合わせてレンダード(rendered)・プリミティブに新しい色を形成するために使用されるのがブレンド・モードである。プリミティブは、典型的な画像処理(graphicprocessing)装置が描く最も単純なオブジェクトである。さらに、確固たる画像、形状、背景等を形成するため、プリミティブを組み合わすことができる。ソース・プリミティブは、既存のプリミティブの上にレンダリングされるプリミティブである。出力先プリミティブは、既存のプリミティブである。ソース・プリミティブを出力先プリミティブにするために特定のブレンド・モードを使用するとき、ブレンド・モードは、ソースおよび出力先プリミティブの各画素に適用される。この方法において、ブレンド・モードは、ソースの各画素および出力先プリミティブに適用されて、レンダリングされるプリミティブの各画素のための新しい色を計算する。
画素の色は、4つの成分の組み合わせによって説明される。3つの成分は、色における赤R、緑Gおよび青Bの量を表す。これらの成分は、R,G,Bと称され、これらの各々は、0から1の範囲での浮動小数である。4番目の成分は、アルファA値であり、画素の不透明性を表す。0のアルファA値は、透明な画素を表し、1のアルファA値は、不透明な画素を表し、分数のアルファAは、画素の半透明の度合いを表す。R、G、BおよびAの4つの値は、画素の色および透明度を表す。
ブレンド・モードの公式は、様々な方法において記述される。画像処理装置は、ソースの色Sおよび出力先の色Dの成分から新しい色Nの成分を計算する公式のためのビルトイン・サポートを提供する。公式は、パラメータPおよびQを含み、これらは、ブレンド・モードがどのように行動するかを決定する。「ソースブレンド・ファクター」と称されるパラメータPは、{0,1,DA,1−DA,DC,1−DC}の組から選択される。同様に、「出力先ブレンド・ファクター」と称されるパラメータQは、{0,1、SA、1−SA、SC、1−SC}の組から選択される。各画素についての新しい色または透明度Nを形成する画像処理装置内に形成されるブレンド・モードは、
=P・S+Q・D
=P・S+Q・D
=P・S+Q・D
=P・S+Q・D
を含む。
ブレンド・モードは、以下の表にあげられるようなPおよびQのパラメータを使用して達成される。
Figure 0005575846
PおよびQに加えて、パラメータを、ブレンド・モードの追加の変形例を提供するためにブレンド・モードに加えてもよい。例えば、パラメータX、Y、Zが使用され、0または1の値を有する定数である。透明なソース・プリミティブと透明な出力先プリミティブとを構成するとき、Xは、ソースと出力先プリミティブの交点が複合プリミティブ内に現れるか否かを決定し、Yは、出力先プリミティブの外側のソース・プリミティブの一部が現れるか否かを決定し、Zは、ソース・プリミティブの外側の出力先プリミティブの一部が現れるか否かを決定する。機能fは、ソースと出力先からの関数である。次の等式は、ブレンド・モードのさらに一般的な公式を提供し、各画素毎に所定のソース色Sおよび出力先色Dから新しい色または透明度Nを計算する。
= f(S,S,D,D)+Y・S・(1−D)+Z・D・(1−S
= f(S,S,D,D)+Y・S・(1−D)+Z・D・(1−S
= f(S,S,D,D)+Y・S・(1−D)+Z・D・(1−S
= X・S・D+Y・S・(1−D)+Z・D・(1−S
いくつかのブレンド・モードは、例えば、画像処理装置用のドライバに含まれ、他のブレンド・モードは、画像アプリケーション・プログラムによって供給される。このようなブレンド・モードについての例示のパラメータ値を次の表に示す。
Figure 0005575846
典型的には、画像処理装置が、少数のブレンド・モードを適用する。さらに複雑なまたは変化したブレンド・モードの場合、画像適用プログラムは、中央処理装置におけるソフトウエアを通してそれらのレンダリング計算の一部または全てを実行してもよい。すなわち、中央処理装置は、2つのプリミティブのブレンディングを実行し、レンダリングのためにビットマップを画像処理装置に送る。したがって、画像アプリケーション・プログラムの実行速度は、中央処理装置が複合プリミティブの画素を処理するレンダリング速度によって制限される。中央処理装置のレンダリング速度は、画像処理装置のレンダリング速度よりおそい。
例えば、画像アプリケーション・プログラムは、他のプリミティブ上に描かれるとき、特定のプリミティブが他のプリミティブの色を暗くしなければならないことを指定する。現在のプリミティブに適用されるダークニングの量は、ブレンド・モードによって新しく描かれるプリミティブの輝度によって制御される。典型的には、ブレンド・モードは、複合レンダリング内の新しいプリミティブの及ぶ範囲における各画素に、中央処理装置によって適用される。
中央処理装置を使用して、画素によってブレンド・モード画素を適用することによって、レンダリング処理が完了したときにアプリケーションの実行が遅くなる場合がある。さらに、中央処理装置は、他の作業を中断してブレンド・モードの適用を行うので、タスクのパフォーマンスを悪化させる場合がある。クライアントサーバシナリオにおいて、サーバ中央処理装置は、ブレンド・モードを適用し、次に、サーバからクライアントに複合プリミティブの全ての画素を伝達し、貴重なバンド幅を消費する。
したがって、画像処理装置の速度を有すると同時に、より効率的なレンダリングブレンド・モードの方法および装置が必要とされている。さらに、この方法および装置は、中央処理装置に必要な計算量およびレンダリング処理に必要なバンド幅を最小にする。
本発明は、中央処理装置上よりもむしろ画像処理装置上で画像アプリケーション・プログラムブレンド・モードを計算することを可能にする。本発明は、現在のグラフィクスハードウエアの接続された並列性の利点を生かし、中央処理装置を自由にして他の機能を実行し、サーバからクライアントへ複合プリミティブの画素の伝達を低減させる。2つまたはそれ以上のプリミティブのブレンディングを呼び出す画像アプリケーション・プログラム・コードは、実行時に、ブレンディングのブレンド・モードを適用するプログラムを中央処理装置に送ることができる。中央処理装置は、実行するためにプログラムを画像処理装置に送ることができる。
画像処理装置は、プログラムを実行し、例えば、ソース・テキスチャ・マップにソース・プリミティブを描き、出力先テキスチャマップに出力先プリミティブを描く。ブレンド・モードをプリミティブに適用するためのプログラムは、ソースおよび出力先テキスチャマップに適用されるように設定される。画像処理装置は、プリミティブの各画素にブレンド・モードを適用することができ、出力先レンダー対象内で複合プリミティブをレンダリングする。
本発明の観点を実施するコンピュータ環境の一例を示すブロック図である。 本発明によるハードウエア・アクセレート・ブレンド・モードを提供するための例示的なシステムのブロック図である。 本発明によるハードウエア・アクセレート・ブレンド・モードを提供するための例示的な方法のフローチャートである。 本発明によるハードウエア・アクセレート・ブレンド・モードを提供するための例示的な他の方法のフローチャートである。
図1および次の説明は、本発明の例示的な実施形態を実施するのに適当なコンピューティング環境100を概略的に説明することを意図している。この明細書で使用される用語「計算システム」「コンピュータシステム」は、プログラム・コードおよび/またはデータを実行するか、または処理することができるプロセッサを含む機械、システムまたは装置を言う。計算システムの例は、限定するものではないが、パーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、シンクライアント、ネットワークPC、サーバ、ワークステーション、ラップトップコンピュータ、携帯用コンピュータ、プログラム可能な・コンシューマ電子機器、マルチメディアコンソール、ゲームコンソール、衛星用受信機、セットトップボックス、自動テラーマシン、アーケードゲーム、携帯電話、パーソナルデジタルアシスタンス(PDA)、および他のプロセッサベースシステムまたは機械を含む。この明細書で使用する「プログラム・コード」および「コード」は、プロセッサによって実行されるか、または処理される命令の集合を言う。汎用コンピュータを説明するが、これは一例である。また、本発明は、ネットワークサーバー・インターオペラビリティおよびインターアクションを有するシンクライアント上で動作可能である。したがって、本発明の一例としての実施形態は、非常に小さいまたは最小限のクライアントが関係しているネットワークホストサービス環境、例えば、クライアント装置がワールド・ワイド・ウエブへのブラウザまたはインタフェイスとして単に作用するネットワーク環境において実施される。
必ずしも必要とはされないが、本発明は、アプリケーション・プログラミング・インターフェイス(API)を介して実施されることができ、デベロッパまたはテスタによって使用される場合、1つまたは複数のコンピュータ(例えば、クライアントワークステーション、サーバ、または他の装置)によって実行されるプログラムモジュールのような、コンピュータ実行可能命令の一般的な文脈において説明されるネットワークブラウジングソフトウエアに含まれる。一般に、プログラムモジュールは、特定の課題を実行するか、または特定の抽象データ型を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態内で望まれるように組み合わせられるか、分散される。また本発明の1つの実施形態は、課題が、通信ネットワークまたは他のデータ伝送媒体を通して連結されたリモート処理装置によって実行される分散コンピューティング環境で実行されることができる。分散コンピューティング環境においては、プログラムモジュールを、メモリ機構装置を含むローカルおよびリモート・コンピュータ記憶媒体の双方に配置することができる。
図1は、本発明を実行するのに適したコンピュータシステム環境100の一例を示し、上述したように、コンピュータシステム環境100は、適当なコンピュータ環境の一例に過ぎず、本発明の使用または機能の範囲に関する制限を示唆することは意図していない。コンピュータ環境100は、一例としての作動環境100内に示された1つのコンポーネントまたは組み合わせに関する依存性または要求を有すると解釈される。
図1を参照すると、本発明を実施するための一例としてのシステムは、コンピュータ110の形態をとる汎用コンピュータシステムを含む。コンピュータ110のコンポーネントは、限定ではないが、中央処理装置120、画像処理装置125、システムメモリ130、およびシステムメモリを含む種々のシステムコンポーネントを処理装置120に接続するシステムバス121を含む。システムバス121は、メモリバス、メモリコントローラ、周辺バス、および種々のバスアーキテクチャを使用するローカルバスを含むいくつかの種類のバス構造である。一例として限定ではないが、このようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA (Micro Channel Architecture) バス, EISA (Enhanced ISA)バス、VESA (Video Electronics Standards Association) ローカルバス およびメザニンバスとして知られているPCI(周辺コンポーネントインターコネクト)バスを含む。コンピュータ110は、さらに、アクセラレーティド画像バスを含み、これを通して画像処理装置125およびビデオインタフェイス190がモニタ191と通信する。
画像処理装置125は、例えば、プリミティブから個別のバッファに画像点を変換し、各画素での照明を計算し、表面においてテキスチャを計算し、プリミティブをレンダリングすることによってモニタ191上でプリミティブ(例えば、画像、形状、背景、画像等)の組み合わせをレンダリングする。
コンピュータ110は、典型的には、種々のコンピュータ読み取り可能な媒体を含む。コンピュータ読み取り可能な媒体は、コンピュータ110によってアクセスすることができる利用可能な媒体であり、この媒体は、揮発性および非揮発性、取り外し可能および固定の媒体を含む。例えば、限定ではないが、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータのような情報の記憶用の方法または技術内で実行される揮発性および非揮発性、取り外し可能および固定の媒体の双方を含む。コンピュータ記憶媒体は、限定ではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)電子的に消去可能なプログラム可能なリードオンリメモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリメモリ(CDROM)、デジタル多目的ディスク(DVD)または他の光ディスク記憶装置、または所望の情報を記憶することができ、コンピュータ110によってアクセス可能な他の媒体を含む。通信媒体は、典型的には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュールまたは搬送波または他の搬送機構のような変調データ信号内の他のデータを含み、情報配信媒体を含む。この明細書で使用される「変調データ信号」は、1つまたは複数の特性集合を有し、信号内の情報をエンコードするような態様で変化された信号を意味する。一例として、限定ではないが、通信媒体は、有線ネットワーックまたは直接有線接続のような有線媒体、および音響、無線周波数(RF)、赤外線および他の無線媒体のような無線媒体を含む。また、上述したものの組み合わせは、コンピュータ読み取り可能な媒体の範囲内に含まれる。
システムメモリ130は、ROM131およびRAM132のような揮発性および/または非揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時のようなコンピュータ110内の要素間の情報を伝達する助けとなる基本的なルーチンを含む基本的な入力/出力システム133(BIOS)は、典型的には、ROM131内に記憶される。RAM132は、典型的には、処理装置120によって現在作動されているか、すぐにアクセス可能なデータおよびまたはプログラムモジュールを含む。一例として、限定ではないが、図1は、オペレーティングシステム134、アプリケーション・プログラム135、他のプログラムモジュール136およびプログラムデータ137を示す。RAM132は、他のデータおよび/またはプログラムモジュールを含む。
また、コンピュータ110は、他の取り外し可能/固定の、揮発性/非揮発性コンピュータ記憶媒体を含む。図1は、一例として、固定の非揮発性磁気媒体から読み取り、書き込むハードディスクドライブと、取り外し可能な非揮発性磁気ディスク152から読み取り、書き込む磁気ディスクドライブ151、およびCDROMまたは他の光媒体のような取り外し可能な非揮発性光ディスクから読み取り、または書き込む光ディスクドライブ155を示す。限定ではないが、例示としての動作環境において使用することができる他の取り外し可能/固定の、揮発性/非揮発性コンピュータ記憶媒体は、磁気テープカセット、フラシュメモリカード、デジタル揮発性ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等を含む。ハードディスクドライブ141は、インタフェイス141のような固定のメモリインタフェイスを通してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、典型的には、インタフェイス150のような取り外し可能なメモリインタフェイスによってシステムバス121に接続される。
図1に示し、上述したドライブおよびそれらの関連したコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュールおよびコンピュータ110の他のデータの記憶装置を提供する。図1において、例えば、ハードディスクドライブ141は、記憶オペレーティングシステム144、アプリケーション・プログラム145、他のプログラムモジュール146、および他のプログラムデータ147として示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーション・プログラム135、他のプログラムモジュール136およびプログラムデータ137と同じかまたは異なっていてもよい。オペレーティングシステム144、アプリケーション・プログラム145、他のプログラムモジュール146およびプログラムデータ147は、最低限、それらが異なるコピーであることを示すために異なる符号が付与されている。ユーザは、通常、マウス、トラックボールまたはタッチパッドと称されるキーボード162およびポインティングデバイス161のような入力装置を介してコンピュータ110に命令および情報を入力する。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星用アンテナ、スキャナ等を含んでいる。これらおよび他の入力装置(図示せず)は、ユーザ入力インタフェイス160を介して処理装置に接続され、入力インタフェイス160は、システムバス121に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(UBS)のような他のインタフェイスおよびバス構造によって接続することもできる。
また、モニタ191または他の種類のディスプレイは、ビデオインタフェイス190のようなインタフェイスを介してシステムバス121に接続されている。モニタ191に加えて、コンピュータは、スピーカ197およびプリンタ196のような他の周辺出力装置を含み、これらは、出力周辺インタフェイス195を通して接続されることができる。
コンピュータ110は、リモート・コンピュータ180のような1つまたは複数のコンピュータへの論理接続を使用するネットワーク環境で動作する。リモート・コンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置または他の共通のネットワークノードであり、典型的には、コンピュータ110に関して上述した多数または全部の要素を含むが、メモリ記憶装置181は、図1に示されている。図1に示されている論理接続は、ローカルエリア・ネットワーク(LAN)171およびワイドエリア・ネットワーク(WAN)173を含むが、他のネットワークを含んでいてもよい。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて共通である。
LANネットワーキング環境において使用されるとき、コンピュータ110は、ネットワーク・インタフェイスまたはアダプタ170を介してLANに接続されている。コンピュータ110は、WANネットワーク環境で使用されるとき、インターネットのようなWAN173上で通信を確立するためのモデム172または他の手段を含む。内蔵または外付けのモデム172は、ユーザ入力インタフェイス160または他の適当な機構を介してシステムバス121に接続されてもよい。ネットワーク環境において、コンピュータ110に関して示されたプログラムモジュールまたはその一部は、リモートメモリ記憶装置に記憶されている。一例として、限定ではないが、図1は、メモリ装置181にあるようなリモート・アプリケーション・プログラム185を示している。図示したネットワーク接続は例示であり、コンピュータ間の通信を確立するための他の手段も使用することができることは理解できよう。
コンピュータ110または他のクライアント装置は、コンピュータネットワークの一部として用いられることができる。この観点において、本発明は、どのような数を有するメモリまたは記憶装置を有するコンピュータシステム、およびどのような数のアプリケーションおよび記憶装置の数または容量にわたって生じるプロセスに関する。本発明の実施形態は、リモートまたはローカル記憶装置を有するネットワーク環境で使用されるサーバ・コンピュータおよびクライアントコンピュータを有する環境に適用される。また本発明は、プログラミング言語機能、インタプリテーションおよび実行性能を有するスタンドアロンコンピュータ装置に適用される。
(例示的な実施形態)
図2は、本発明によるハードウエア・アクセレートブレンド・モードを提供するための例示的なシステム200のブロック図である。システム200は、サーバ・コンピュータ250と通信するクライアントコンピュータ210を含む。本発明の実施形態は、クライアントコンピュータ210またはサーバ・コンピュータ250単独で実行されることができる。システム200は、本発明の多数の例示的な実施形態の内の一例を示す。
クライアントコンピュータ210およびサーバ・コンピュータ250の各々は、図1において示すコンピュータ110である。クライアントコンピュータ210は、中央処理装置220、画像アプリケーション・プログラム235、およびプログム可能な処理装置225を含み、ディスプレイとしてモニタ291が接続されている。サーバ・コンピュータ250は、中央処理装置260および画像アプリケーション・プログラム265を含む。もちろん、クライアントコンピュータ210およびサーバ・コンピュータ250は、他のコンポーネントを含み、図1に関して説明したような他の装置と通信することができる。
プログラム可能な画像処理装置225は、モニタ291においてプリミティブおよびプリミティブの組み合わせ(画像、形状、背景、画像等)をレンダリングするハードウエア装置である。プログラム可能な画像処理装置225は、例えば、プリミティブから各バッファに画像点を変換し、各画素で照明を計算し、表面等の上でテキスチャを計算し、モニタ291においてプリミティブをレンダリングすることによってプリミティブをレンダリングすることができる。プログラム可能な画像処理装置225は、クライアントコンピュータ210の中央処理装置220と通信している。代替案として、または、さらに、プログラム可能な画像処理装置225は、クライアントコンピュータ210を通してサーバ・コンピュータ250の中央処理装置260と通信する。
画像アプリケーション・プログラム235、265の各々は、プリミティブのような画像情報をレンダリングするアプリケケーションである。このようなプリミティブは、バッファまたはモニタ上のディスプレイで処理される。プリミティブは、組み合わせられ、例えば、写真、ビデオ、イメージ、テキスト、図形または形状として処理される。画像アプリケーション・プログラム235,265は、画像処理装置を通して、出力先プリミティブとソース・プリミティブをブレンドするためにブレンド・モードを実施することができる。ブレンド・モードは、通常、画素シェイダと称される分離機能、プログラム、モジュール等の実行を介してプリミティブに実行され、または適用される。この明細書で使用される用語の画像シェイダは、ブレンド・モードに適用されるプログラム・コードである。画像アプリケーション・プログラム235,265は、画素シェイダのブレンド・モードのアプリケーションを提供する。各画素シェイダは、ブレンド・モードを実行するための機能またはプログラムである。
画像アプリケーション・プログラム235,265は、各中央処理装置220、260と通信するか、それらによって実行される。画像アプリケーション・プログラム235の実行中、ソース・プリミティブは、呼出されてブレンド・モードによって出力先プリミティブとブレンドされる。画像アプリケーション・プログラム235は、中央処理装置220に画素シェイダを送ることができる。本発明によって、画像アプリケーション・プログラム235は、中央処理装置上で画素シェイダを実行する代わりに、中央処理装置220に画素シェイダをプログラム可能な画像処理装置225に送らせるようにする。中央処理装置220は、プログラム可能な画像処理装置225に画素シェイダを実行するよう指示することができる。画素シェイダは、ソースおよび出力先プリミティブの各画素にブレンド・モードを適用することを容易にし、複合プリミティブをレンダリングする。すなわち、プログラム可能な画像処理装置225は、ブレンド・モードに従い、ソースおよび出力先プリミティブをブレンドするように指示することができる。プログラム可能な画像処理装置225は、画素シェイダを実行して、ブレンド・モードをソースおよび出力先プリミティブの各画素に適用するようにし、例えば、モニタ291上に複合プリミティブをレンダリングする。代替案として、画像アプリケーション・プログラム235は、画像アプリケーション・プログラム235と画像処理装置225との間を媒介するものとして作用するアプリケーションと通信する。このような媒介アプリケーションは、画像処理装置ドライバまたは画素シェイダを含む画像ライブラリである。画像アプリケーション・プログラム235は、媒介アプリケーションにブレンド操作のためにプログラム可能な画像処理装置225に適当な画素シェイダを提供するように指示することができる。媒介アプリケーションは、適当な画素シェイダを選択して適当なブレンディングを提供し、実行するために画素シェイダを画像処理装置に送ることができる。
他の実施例において、サーバ・コンピュータ250で作動している画像アプリケーション・プログラム265は、画素シェイダを中央処理装置260に送り、中央処理装置260にプログラム可能な画像処理装置225で実行するためにそれをクライアントコンピュータ210に送るように指示することができる。中央処理装置260は、プログラム可能な画像処理装置225に画素シェイダを実行し、複合プリミティブをレンダリングするように指示することができる。
図3は、本発明によるハードウエアアクセレーテドブレンド・モードを提供するための例示的な方法300のフローチャートである。方法は、ステップ310で開始し、画像アプリケーション・プログラム(例えば、ディスプレイ上で形成されるべきプリミティブのために呼び出されるアプリケーション)がコンピュータ上で実行される。コンピュータは、クライアントコンピュータ210または図2のサーバ・コンピュータ250である。ステップ320において、画像アプリケーション・プログラムは、バッファ(例えばディスプレイ)内でレンダリングされる出力先プリミティブとブレンドされるべきソース・プリミティブを提供する、または必要とする。画像アプリケーション・プログラムは、ステップ330で、中央処理装置にプログラム・コードを送り、このコードは、実行されるとき、ブレンド・モードを適用する。このようなプログラム・コードは、画素シェイダを含む。
ステップ340において、中央処理装置は、実行のためにプログラム・コードをプログラム可能な画像処理装置に送ることができる。プログラム可能な画像処理装置は、ステップ350において、プログラム・コードを実行し、ブレンド・モードをソースおよび出力先プリミティブの各画素に適用することができる。複合プリミティブは、ステップ360でディスプレイバッファ上にレンダリングされる。
図4は、本発明によってハードウエアアクセラレーティドブレンド・モードを提供するための他の例示的な方法400のフローチャートである。方法は、ステップ410で開始され、プログラム可能な画像処理装置は、例えば、供給された画素シェイダを使用してソース・プリミティブと出力先プリミティブとを混合するように指示することができる。画素シェイダは、例えば、画像アプリケーション・プログラム、ドライバ、画像ライブラリ、またはオペレーティングシステムによって供給される。ステップ420において、ソース・プリミティブは、一時的なテキスチャマップに受信され、およびレンダリングされ、一時テキスチャマップは、以降ソース・テキスチャ・マップと称される。ソース・プリミティブは、画像アプリケーション・プログラムからそれを受ける中央処理装置から受信される。
レンダー対象から出力先プリミティブのコピーが形成され、ステップ430で一時的なテキスチャマップに配置される。この一時的なテキスチャマップは、以降、出力先テキスチャマップと称される。使用されるプログラム可能な画像処理装置が画素シェイダに提供されないで出力先レンダー対象から画素の色を読まない場合、ステップ430が実行されることは理解できよう。プログラム可能な画像処理装置のためのアーキテクチャが同じレンダー対象へ読み書きすることができる、または許される場合、ステップ430は、方法400から省略することができる。
ステップ440において、画素シェイダは、その実行中にソースおよび出力先テキスチャマップを使用するために設定することができる。プログラム可能な画像処理装置は、ステップ450で画素シェイダを実行し、ソースおよび出力先テキスチャマップの各画素にブレンド・モードを適用し、出力先レンダー対象に塗りつぶされた矩形を描く。すなわち、プログラム可能な画像処理装置は、ソース画素色と出力先画素色とを組み合わせて、各画素のための出力先レンダー対象内に配置される最終的な色をつくる。画素シェイダは、例えば、ここで説明したようなものおよび例えば、画素シェイダアセンブリ言語または高級シェイディング言語を使用した他のもののようなブレンド・モードを処理するために開発されたことを理解すべきである。ステップ450において、さらにプリミティブがレンダリングされる場合、方法は、ステップ420から繰り返される。ステップ450において、プリミティブがそれ以上レンダリングされない場合、出力先レンダー対象が表示される。
ここに説明した種々の技術は、ハードウエアまたはソフトウエア、場合によっては双方の組み合わせと関連して実行される。したがって、本発明の方法および装置またはそのある観点およびその要素は、フロピィディスク、CD−ROM、ハードドライブまたは他の機械で読み取り可能な記憶媒体のような具体的な媒体に記憶されたプログラム・コード(すなわち、命令)の形態をとり、この場合、プログラム・コードは、コンピュータのような機械に記憶され、実行されるとき、機械は、本発明を実行するための装置になる。プログラム可能なコンピュータで実行されるプログラム・コードの場合、コンピュータ装置は、一般にプロセッサ、揮発性および非揮発性および/または記憶装置を含むプロセッサによって読み取り可能な記憶媒体、少なくとも1つの入力装置、少なくとも1つの出力装置を含む。コンピュータシステムと通信するために1つまたは複数のプログラムが高級手順またはオブジェクト指向プログラミング言語で実行されることが好ましい。しかしながら、プログラムは、所望ならば、アセンブリまたは機械言語で実施することができる。どの場合においても、言語は、編集または解釈された言語であるか、ハードウエアの実行と組み合わせられることができる。
本発明を種々の図面と関連した特定の例と関連して説明したが、本発明から逸脱することなく、他の実施例を使用するか、本発明と同じ機能を実行するために説明した実施例に対して変形例および追加例を実施することができる。本発明の説明において例が提供されたが、特許請求の範囲内で定義されたような本発明の態様を限定する意図はない。要するに、提供され説明された例は、本発明を限定するものではない。したがって、本発明は、単一の実施形態に限定されるべきではなく、添付した特許請求の範囲における観点によって解釈すべきである。
添付した図面と関連して読むとき、本発明の前述した要約および次の詳細な説明をさらによく理解できる。本発明の実施例を図面に示すが、本発明は、特定の方法およびそこに示された実施例には制限されない。

Claims (10)

  1. 第1の処理装置上で実行するアプリケーション・プログラムに代わってブレンドモードの作業を実行する方法であって、
    ソース・プリミティブの一部である第1の画素の色を表す一組の値R,G,B,Aを含む第1の情報 ,S ,S ,S を受信するステップと、
    出力先プリミティブの一部である第2の画素の色を表す一組の値R,G,B,Aを含む第2の情報 ,D ,D ,D を受信するステップと、
    前記第1の画素の色と前記第2の画素の色とを混合する公式を表す情報を受信するステップと、
    前記公式を前記第1の情報および前記第2の情報に適用して一組の値R,G,B,Aを含む第3の画素の色を表す第3の情報 ,N ,N ,N を形成するステップとを有し、
    前記公式を適用するステップは、第1の処理装置上で実行されるアプリケーション・プログラムに代わって第2の処理装置によって実行され、
    前記第1の画素の色と前記第2の画素の色とを混合する公式は
    = f(S ,S ,D ,D )+Y・S ・(1−D )+Z・D ・(1−S
    = f(S ,S ,D ,D )+Y・S ・(1−D )+Z・D ・(1−S
    = f(S ,S ,D ,D )+Y・S ・(1−D )+Z・D ・(1−S
    = X・S ・D +Y・S ・(1−D )+Z・D ・(1−S
    但し、X,Y,Zは、0または1の値を有するパラメータであって、透明なソース・プリミティブと透明な出力先プリミティブとを構成するとき、Xは、ソース・プリミティブと出力先プリミティブの交点が複合プリミティブ内に現れるか否かを決定し、Yは、出力先プリミティブの外側のソース・プリミティブの一部が現れるか否かを決定し、Zは、ソース・プリミティブの外側の出力先プリミティブの一部が現れるか否かを決定するものであり、fは、前記第1の情報及び第2の情報の関数である、
    で表される
    ことを特徴とする方法。
  2. 前記公式を表す情報を受信するステップは、前記第1の処理装置から前記公式を表す情報を受信するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記公式を表す情報を受信するステップは、前記第2の処理装置上で実行されるとき、前記第2の処理装置に前記第1の画素の色と前記第2の画素の色を混合するための公式を適用させるプログラム・コードを受信するステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記プログラム・コードは、画素シェイダの少なくとも一部を含むことを特徴とする請求項3に記載の方法。
  5. 前記第2の処理装置は、
    出力先レンダー対象からの出力先プリミティブをコピーして、前記出力先プリミティブを提供し、および
    前記出力先プリミティブのコピーを出力先テキスチャマップ内に配置する
    ことを特徴とする請求項に記載の方法。
  6. 前記第1の処理装置は、コンピュータ上に配置され、前記第2の処理装置は、前記コンピュータ上に配置されることを特徴とする請求項1に記載の方法。
  7. 前記第1の処理装置は、第1のコンピュータ上に配置され、前記第2の処理装置は、第2のコンピュータ上に配置されることを特徴とする請求項1に記載の方法。
  8. 前記第1のコンピュータは、サーバ・コンピュータであり、前記第2のコンピュータは、前記サーバ・コンピュータのクライアントである請求項に記載の方法。
  9. コンピュータに請求項1〜の何れか1項に記載のステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  10. コンピュータに請求項1〜の何れか1項に記載のステップを実行させるためのプログラム。
JP2012163459A 2005-02-25 2012-07-24 ハードウエア・アクセラレーティド・ブレンド・モード Active JP5575846B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/065,854 US7312801B2 (en) 2005-02-25 2005-02-25 Hardware accelerated blend modes
US11/065,854 2005-02-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006016559A Division JP2006238429A (ja) 2005-02-25 2006-01-25 ハードウエア・アクセラレーティド・ブレンド・モード

Publications (2)

Publication Number Publication Date
JP2012198943A JP2012198943A (ja) 2012-10-18
JP5575846B2 true JP5575846B2 (ja) 2014-08-20

Family

ID=36201439

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006016559A Pending JP2006238429A (ja) 2005-02-25 2006-01-25 ハードウエア・アクセラレーティド・ブレンド・モード
JP2012163459A Active JP5575846B2 (ja) 2005-02-25 2012-07-24 ハードウエア・アクセラレーティド・ブレンド・モード

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006016559A Pending JP2006238429A (ja) 2005-02-25 2006-01-25 ハードウエア・アクセラレーティド・ブレンド・モード

Country Status (5)

Country Link
US (1) US7312801B2 (ja)
EP (1) EP1696387A3 (ja)
JP (2) JP2006238429A (ja)
KR (1) KR101213872B1 (ja)
CN (1) CN1825353B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7973797B2 (en) * 2006-10-19 2011-07-05 Qualcomm Incorporated Programmable blending in a graphics processing unit
KR101349171B1 (ko) * 2007-01-17 2014-01-09 삼성전자주식회사 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법
US7876328B2 (en) * 2007-02-08 2011-01-25 Via Technologies, Inc. Managing multiple contexts in a decentralized graphics processing unit
US8638341B2 (en) * 2007-10-23 2014-01-28 Qualcomm Incorporated Antialiasing of two-dimensional vector images
WO2010010601A1 (en) * 2008-07-24 2010-01-28 Thomson Licensing Image processing device, method, and system
EP2306403A1 (en) * 2009-09-02 2011-04-06 Alcatel Lucent Method for drawing a composite image at a set top box STB of a telecommunication system
US20130063433A1 (en) * 2010-05-27 2013-03-14 Landmark Graphics Corporation Method and system of rendering well log values
CN102446364B (zh) 2011-09-05 2017-04-12 中兴通讯股份有限公司 一种基于透明度的图像处理方法、装置及终端
US9342322B2 (en) 2011-09-12 2016-05-17 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
US9202308B2 (en) 2011-12-28 2015-12-01 Think Silicon Sa Methods of and apparatus for assigning vertex and fragment shading operations to a multi-threaded multi-format blending device
US9058680B2 (en) 2011-12-28 2015-06-16 Think Silicon Ltd Multi-threaded multi-format blending device for computer graphics operations
CN104952030B (zh) * 2015-06-08 2019-04-19 广东小天才科技有限公司 图像处理方法和装置
US11328457B2 (en) 2019-09-11 2022-05-10 Microsoft Technology Licensing, Llc System and method for tinting of computer-generated object(s)
US12020349B2 (en) * 2020-05-01 2024-06-25 Samsung Electronics Co., Ltd. Methods and apparatus for efficient blending in a graphics pipeline
CN111882635A (zh) * 2020-07-24 2020-11-03 上海米哈游天命科技有限公司 一种画面渲染方法、装置、设备和介质
US20240054695A1 (en) * 2022-08-15 2024-02-15 Adobe Inc. Generating Blend Objects from Objects with Pattern Fills
CN117710502A (zh) * 2023-12-12 2024-03-15 摩尔线程智能科技(北京)有限责任公司 渲染方法、装置及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5704025A (en) * 1995-06-08 1997-12-30 Hewlett-Packard Company Computer graphics system having per pixel depth cueing
FR2735253B1 (fr) * 1995-06-08 1999-10-22 Hewlett Packard Co Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees
JPH09270024A (ja) * 1996-02-02 1997-10-14 Toshiba Corp 情報処理装置
US6437781B1 (en) * 1997-05-30 2002-08-20 Hewlett-Packard Company Computer graphics system having per pixel fog blending
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
GB0109720D0 (en) * 2001-04-20 2001-06-13 Koninkl Philips Electronics Nv Display apparatus and image encoded for display by such an apparatus
US20030158886A1 (en) * 2001-10-09 2003-08-21 Walls Jeffrey J. System and method for configuring a plurality of computers that collectively render a display
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
AU2003208477A1 (en) * 2002-03-01 2003-09-16 T5 Labs Ltd Centralised interactive graphical application server
US7081892B2 (en) * 2002-04-09 2006-07-25 Sony Computer Entertainment America Inc. Image with depth of field using z-buffer image data and alpha blending
GB2392072B (en) * 2002-08-14 2005-10-19 Autodesk Canada Inc Generating Image Data
GB0220138D0 (en) * 2002-08-30 2002-10-09 Kaydara Inc Matte extraction using fragment processors
US6933947B2 (en) * 2002-12-03 2005-08-23 Microsoft Corporation Alpha correction to compensate for lack of gamma correction
US8274517B2 (en) * 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques

Also Published As

Publication number Publication date
US20060192788A1 (en) 2006-08-31
EP1696387A3 (en) 2011-09-07
KR20060094850A (ko) 2006-08-30
JP2006238429A (ja) 2006-09-07
US7312801B2 (en) 2007-12-25
EP1696387A2 (en) 2006-08-30
CN1825353B (zh) 2012-07-11
JP2012198943A (ja) 2012-10-18
CN1825353A (zh) 2006-08-30
KR101213872B1 (ko) 2012-12-18

Similar Documents

Publication Publication Date Title
JP5575846B2 (ja) ハードウエア・アクセラレーティド・ブレンド・モード
US7532222B2 (en) Anti-aliasing content using opacity blending
US10311548B2 (en) Scaling render targets to a higher rendering resolution to display higher quality video frames
US8659589B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
WO2022193941A1 (zh) 图像渲染方法、装置、设备、介质和计算机程序产品
JP4290477B2 (ja) ベクターグラフィック用のマークアップ言語およびオブジェクトモデル
US7281213B2 (en) System and method for network transmission of graphical data through a distributed application
JP4922367B2 (ja) グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法
EP2092488B1 (en) Image compression and/or decompression
EP2245598B1 (en) Multi-buffer support for off-screen surfaces in a graphics processing system
US9159155B2 (en) Image rendering
AU2003203677A1 (en) Systems and methods for providing controllable texture sampling
JP2007509436A (ja) ベクトルグラフィックスのためのマークアップ言語およびオブジェクトモデル
KR20180060198A (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
US7050067B2 (en) Hardware accelerated anti-aliased primitives using alpha gradients
Pulli New APIs for mobile graphics
US20030122820A1 (en) Object culling in zone rendering
Nilsson et al. Glitz: Hardware Accelerated Image Compositing Using OpenGL.
US20070052722A1 (en) Compositing rendering layers
US20230377178A1 (en) Potentially occluded rasterization
US20230252596A1 (en) Image processing system and method
Hoddie et al. Drawing Graphics with Poco
CN117708454A (zh) 网页内容处理方法、装置、设备、存储介质及程序产品
Schmidt Toward improved batchability of 3D objects using a consolidated shader
CN116912379A (zh) 场景画面的渲染方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120814

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131219

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: 20140612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140702

R150 Certificate of patent or registration of utility model

Ref document number: 5575846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250