(57)【要約】  本開示はディスプレイ上でピクセルをレンダリングするための技術を説明する。処理ユニットは、複数の平面の各平面の平面ピクセルに関するピクセル値を受信しうる。処理ユニットは更に、複数の平面の順序を受信しうる。処理ユニットは、少なくとも、複数の平面のロケーションおよび順序に基づいて、コロケート平面ピクセルに関するピクセル値を混合しうる。処理ユニットはまた、コロケート平面ピクセルに関する不透明値および／またはコロケート平面ピクセルを持つ平面に関する不透明値を累積しうる。【選択図】      図１
2013541032.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイ上に表示される複数の平面の各々１つのロケーションを、処理ユニットを用いて受信することと、
少なくとも、前記複数の平面の各々１つのロケーションに基づいて、前記ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む前記複数の平面のうちの１以上の平面を、前記処理ユニットを用いて識別することと、
少なくとも、前記複数の平面のうちの識別された１以上の平面の順序に基づいて、前記少なくとも１つのピクセルとコロケートしている、前記識別された１以上の平面のうちの１以上のコロケート平面ピクセルのピクセル値を、前記処理ユニットを用いて混合することとを備える方法。
【請求項２】
前記１以上のコロケート平面ピクセルの不透明値と、前記識別された１以上の平面の不透明値とのうちの少なくとも１つを累積することを更に備える請求項１に記載の方法。
【請求項３】
請求項２に記載の方法であって、前記不透明値を累積することは、累積不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えるまで、前記識別された１以上の平面の順序に基づいて、不透明値を累積することを備え、前記方法は更に、前記累積不透明値が、前記不透明値しきい値に等しいか、あるいはそれを超える場合、前記累積することと、前記混合することとを終了することを更に備える方法。
【請求項４】
前記不透明値しきい値は、完全不透明度に対応する値を備える請求項３に記載の方法。
【請求項５】
前記不透明値を累積することは、前記識別された１以上の平面のうちの最前面の平面から開始し、前記識別された１以上の平面の最後面の平面に向かって続行して、不透明値を累積することを備え、前記最前面の平面および前記最後面の平面は、前記複数の平面のうちの識別された１以上の平面の順序に基づいて決定される請求項２に記載の方法。
【請求項６】
バッチで前記不透明値を読み出すことを更に備え、
前記不透明値を累積することは、前記バッチで読み出された前記不透明値を累積することを備える請求項２に記載の方法。
【請求項７】
前記複数の平面の各平面の順序を受信することを更に備え、
前記複数の平面のうちの識別された１以上の平面の順序は、前記受信された順序に基づく請求項１に記載の方法。
【請求項８】
前記混合することに基づいて、前記少なくとも１つのピクセルをレンダリングすることを更に備える請求項１に記載の方法。
【請求項９】
前記複数の平面の各々１つのロケーションは、前記複数の平面の各々１つの少なくとも２つの頂点の座標を備える請求項１に記載の方法。
【請求項１０】
前記処理ユニットを含むデバイス上で実行される１以上のアプリケーションによって生成された可視オブジェクトは、前記複数の平面の各々１つを形成する請求項１に記載の方法。
【請求項１１】
前記複数の平面の少なくとも１つは、前記複数の平面のうちの別の平面に部分的または全面的にオーバラップしている請求項１に記載の方法。
【請求項１２】
前記ピクセル値は、カラー値および不透明値を備える請求項１に記載の方法。
【請求項１３】
前記１以上の平面ピクセルのピクセル値を混合することは、前記１以上のコロケート平面ピクセルを一度だけ混合することを備える請求項１に記載の方法。
【請求項１４】
前記１以上の平面ピクセルのピクセル値を混合することは、最後面の平面から開始し、最前面の平面まで続行して、ピクセル値を混合することを備える請求項１に記載の方法。
【請求項１５】
ディスプレイ上に表示される複数の平面の各々１つのロケーションを受信するように構成されたグラフィック処理ユニット（ＧＰＵ）と、
前記複数の平面の各々１つのロケーションに基づいて、前記ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む前記複数の平面のうちの１以上の平面を識別し、
少なくとも、前記複数の平面のうちの前記識別された１以上の平面の順序に基づいて、前記少なくとも１つのピクセルとコロケートしている、前記識別された１以上の平面のうちの１以上のコロケート平面ピクセルのピクセル値を混合する
ように構成されたシェイダーと、
前記混合されたピクセル値を記憶するように構成されたメモリと
を備える装置。
【請求項１６】
前記ＧＰＵは前記シェイダーを含む請求項１５に記載の装置。
【請求項１７】
前記ディスプレイ上に表示される前記複数の平面の各々１つのロケーションを識別し、前記１以上の平面ピクセルに関するピクセル値を割り当て、前記複数の平面の順序を決定するように構成されたホストプロセッサを更に備える請求項１５に記載の装置。
【請求項１８】
前記シェイダーは更に、前記１以上のコロケート平面ピクセルの不透明値と、前記識別された１以上の平面の不透明値とのうちの少なくとも１つを累積するように構成される請求項１５に記載の装置。
【請求項１９】
前記シェイダーは更に、累積された不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えるまで、前記識別された１以上の平面の順序に基づいて不透明値を累積し、
前記累積された不透明値が、前記不透明値しきい値に等しいか、あるいはそれを超える場合、前記累積および前記混合を終了する
ように構成される請求項１８に記載の装置。
【請求項２０】
前記不透明値しきい値は、完全不透明度に対応する値を備える請求項１９に記載の装置。
【請求項２１】
前記シェイダーは更に、前記識別された１以上の平面のうちの最前面の平面から開始し、前記識別された１以上の平面の最後面の平面に向かって続行して、不透明値を累積するように構成され、前記最前面の平面および前記最後面の平面は、前記複数の平面のうちの識別された１以上の平面の順序に基づいて決定される請求項１８に記載の装置。
【請求項２２】
前記シェイダーは更に、
バッチで不透明値を読み出し、
前記バッチで読み出された前記不透明値を累積する
ように構成される請求項１８に記載の装置。
【請求項２３】
前記ＧＰＵは更に、
前記複数の平面の各平面の順序を受信し、
前記複数の平面のうちの識別された１以上の平面の順序は、前記受信された順序に基づく請求項１５に記載の装置。
【請求項２４】
前記ＧＰＵは更に、前記混合に基づいて、前記少なくとも１つのピクセルをレンダリングするように構成される請求項１５に記載の装置。
【請求項２５】
前記複数の平面の各々１つのロケーションは、前記複数の平面の各々１つの少なくとも２つの頂点の座標を備える請求項１５に記載の装置。
【請求項２６】
前記装置上で実行される１以上のアプリケーションによって生成された可視オブジェクトは、前記複数の平面の各々１つを形成する請求項１５に記載の装置。
【請求項２７】
前記複数の平面の少なくとも１つは、前記複数の平面のうちの別の平面に部分的または全面的にオーバラップしている請求項１５に記載の装置。
【請求項２８】
前記ピクセル値は、カラー値および不透明値を備える請求項１５に記載の装置。
【請求項２９】
前記シェイダーは、前記１以上のコロケート平面ピクセルを一度だけ混合するように構成される請求項１５に記載の装置。
【請求項３０】
前記シェイダーは、最後面の平面から開始し、最前面の平面まで続行して、混合するように構成される請求項１５に記載の装置。
【請求項３１】
１以上のプロセッサに、
ディスプレイ上に表示される複数の平面の各々１つのロケーションを受信させ、
少なくとも、前記複数の平面の各々１つのロケーションに基づいて、前記ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む前記複数の平面のうちの１以上の平面を識別させ、
少なくとも、前記複数の平面のうちの前記識別された１以上の平面の順序に基づいて、前記少なくとも１つのピクセルとコロケートしている、前記識別された１以上の平面のうちの１以上のコロケート平面ピクセルのピクセル値を混合させる
命令群を備えるコンピュータ可読記憶媒体。
【請求項３２】
前記１以上のプロセッサに、
前記１以上のコロケート平面ピクセルの不透明値と、前記識別された１以上の平面の不透明値とのうちの少なくとも１つを累積させる命令群を更に備える請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記１以上のプロセッサに不透明値を累積させる命令群は、累積された不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えるまで、前記識別された１以上の平面の順序に基づいて、前記１以上のプロセッサに不透明値を累積させる命令群を備え、前記命令群は更に、前記累積不透明値が前記不透明値しきい値に等しいか、あるいはそれを超える場合、前記１以上のプロセッサに、前記累積および前記混合を終了させる命令群を備える請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記不透明値しきい値は、完全不透明度に対応する値を備える請求項３３に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記１以上のプロセッサに不透明値を累積させる命令群は、前記１以上のプロセッサに、前記識別された１以上の平面のうちの最前面の平面から開始し、前記識別された１以上の平面の最後面の平面に向かって続行して、不透明値を累積させる命令群を備え、前記最前面の平面および前記最後面の平面は、前記複数の平面のうちの識別された１以上の平面の順序に基づいて決定される請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３６】
請求項３２に記載のコンピュータ可読記憶媒体であって、前記１以上のプロセッサに、
バッチで前記不透明値を読み出させる命令群を更に備え、
前記１以上のプロセッサに不透明値を累積させる命令群は、前記１以上のプロセッサに、前記バッチで読み出された不透明値を累積させる命令群を備えるコンピュータ可読記憶媒体。
【請求項３７】
請求項３１に記載のコンピュータ可読記憶媒体であって、前記１以上のプロセッサに、
前記複数の平面の各平面の順序を受信させる命令群を更に備え、
前記複数の平面のうちの識別された１以上の平面の順序は、前記受信された順序に基づくコンピュータ可読記憶媒体。
【請求項３８】
前記１以上のプロセッサに、
前記混合することに基づいて、前記少なくとも１つのピクセルをレンダリングさせる命令群を更に備える請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記複数の平面の各々１つのロケーションは、前記複数の平面の各々１つの少なくとも２つの頂点の座標を備える請求項３１に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記ピクセル値は、カラー値および不透明値を備える請求項３１に記載のコンピュータ可読記憶媒体。
【請求項４１】
前記１以上のプロセッサに前記１以上の平面ピクセルのピクセル値を混合させる命令群は、前記１以上のプロセッサに、前記１以上のコロケート平面ピクセルを一度だけ混合させる命令群を備える請求項３１に記載のコンピュータ可読記憶媒体。
【請求項４２】
ディスプレイ上に表示される複数の平面の各々１つのロケーションを受信する手段と、
少なくとも、前記複数の平面の各々１つのロケーションに基づいて、前記ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む前記複数の平面のうちの１以上の平面を識別する手段と、
少なくとも、前記複数の平面のうちの前記識別された１以上の平面の順序に基づいて、前記少なくとも１つのピクセルとコロケートしている、前記識別された１以上の平面のうちの１以上のコロケート平面ピクセルのピクセル値を混合する手段と
を備える装置。
【請求項４３】
前記１以上のコロケート平面ピクセルの不透明値と、前記識別された１以上の平面の不透明値とのうちの少なくとも１つを累積する手段を更に備える請求項４２に記載の装置。
【請求項４４】
請求項４３に記載の装置であって、前記累積する手段は、累積不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えるまで、前記識別された１以上の平面の順序に基づいて、不透明値を累積し、前記装置は更に、前記累積不透明値が、前記不透明値しきい値に等しいか、あるいはそれを超える場合、前記累積することと、前記混合することとを終了する手段を更に備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ディスプレイ上でピクセルをレンダリングすることに関する。
【背景技術】
【０００２】
視覚的提示のためのコンテンツを提供するデバイスは一般的に、グラフィック処理ユニット（ＧＰＵ）を含む。ＧＰＵは、ディスプレイ上でコンテンツの標本（representative）であるピクセルをレンダリングする。ＧＰＵは、ディスプレイ上の各ピクセルに関する１以上のピクセル値を受信する。ＧＰＵは、提示のために各ピクセルをレンダリングするために、ディスプレイ上の各ピクセルに関するピクセル値を混合する。
【発明の概要】
【０００３】
本開示は一般に、ディスプレイ上でピクセルをレンダリングするための技術を説明する。グラフィック処理ユニット（ＧＰＵ）のような処理ユニットは、ディスプレイ上で表示される複数の平面（surface）のロケーションを受信しうる。ディスプレイのピクセルについて、処理ユニットは、どの平面がディスプレイのピクセルとコロケート（co-located）している平面ピクセルを含んでいるかを識別しうる。各平面ピクセルは、ピクセルのカラーと、ピクセルの不透明値（opaqueness value）とを含むピクセル値によって定義されうる。いくつかの実例において、ピクセルのカラーは更にピクセルの明度（intensity）を含みうる。
【０００４】
いくつかの実例において、各平面ピクセルに関する不透明値の代わりに、またはそれに加えて、各平面はその平面の不透明値によって定義されうる。処理ユニットは、識別された平面の順序に基づいて、コロケート平面ピクセルのカラー値を混合しうる。処理ユニットは、複数の平面のうちの識別された平面の順序に基づいて、コロケート平面ピクセルの不透明値および／またはコロケート平面ピクセルを含む識別された平面の平面不透明値を累積しうる。いくつかの実例において、処理ユニットは、累積不透明値に基づいて、カラー値を混合することを終了するかどうかを決定しうる。
【０００５】
１つの実例において、本開示の態様は、処理ユニットを用いて、ディスプレイ上で表示される複数の平面の各々１つのロケーションを受信することと、処理ユニットを用いて、少なくとも、複数の平面の各々１つのロケーションに基づいて、ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む複数の平面のうちの１以上の平面を識別することと、処理ユニットを用いて、少なくとも、複数の平面のうちの識別された１以上の平面の順序に基づいて、少なくとも１つのピクセルとコロケートしている、識別された１以上の平面の１以上のコロケート平面ピクセルのピクセル値を混合することとを備える方法に関する。
【０００６】
別の実例において、本開示の態様は、ディスプレイ上で表示される複数の平面の各々１つのロケーションを受信するように構成されたグラフィック処理ユニット（ＧＰＵ）と、複数の平面の各々１つのロケーションに基づいて、ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む複数の平面のうちの１以上の平面を識別し、少なくとも、複数の平面のうちの識別された１以上の平面の順序に基づいて、少なくとも１つのピクセルとコロケートしている、識別された１以上の平面の１以上のコロケート平面ピクセルのピクセル値を混合するように構成されたシェイダーと、混合ピクセル値を記憶するように構成されたメモリとを備える装置に関する。
【０００７】
別の実例において、本開示の態様は、１以上のプロセッサに、ディスプレイ上で表示される複数の平面の各々１つのロケーションを受信させ、少なくとも、複数の平面の各々１つのロケーションに基づいて、ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む複数の平面のうちの１以上の平面を識別させ、少なくとも、複数の平面のうちの識別された１以上の平面の順序に基づいて、少なくとも１つのピクセルとコロケートしている、識別された１以上の平面の１以上のコロケート平面ピクセルのピクセル値を混合させる命令群を備えるコンピュータ可読記憶媒体に関する。
【０００８】
別の実例において、本開示の態様は、ディスプレイ上で表示される複数の平面の各々１つのロケーションを受信する手段と、複数の平面の各々１つのロケーションに基づいて、ディスプレイの少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む複数の平面のうちの１以上の平面を識別する手段と、少なくとも、複数の平面のうちの識別された１以上の平面の順序に基づいて、少なくとも１つのピクセルとコロケートしている、識別された１以上の平面の１以上のコロケート平面ピクセルのピクセル値を混合する手段とを備える装置に関する。
【０００９】
１以上の実例の詳細が、添付の図面および以下の説明において説明される。その他の特徴、目的、利点が、説明、図面、および請求項の範囲から明らかとなるだろう。
【図面の簡単な説明】
【００１０】
【図１】図１は、本開示の態様を実現するように構成されうるデバイスを例示するブロック図である。
【図２】図２は、複数の平面を提示するディスプレイの実例的な例示である。
【図３】図３は、本開示のいくつかの態様にしたがって、グラフィック処理ユニット（ＧＰＵ）の実例的な動作を例示するフローチャートである。
【図４】図４は、本開示のいくつかの態様にしたがって、ＧＰＵの別の実例的な動作を例示するフローチャートである。
【発明を実施するための形態】
【００１１】
デバイス上で実行される１以上のアプリケーションは、ディスプレイ上で提示される可視オブジェクトを生成しうる。可視オブジェクトは、平面と見なされうる。各平面は、ディスプレイ上でピクセルとコロケートしている平面ピクセルを含む。各平面は、ディスプレイ上のそのロケーションによって識別されうる。
【００１２】
いくつかのインスタンスにおいて、例えば、２つの平面がオーバラップしているロケーションを含んでいる場合、平面は別の平面にオーバラップしうる、または、別の平面にオーバラップされうる。これらのインスタンスにおいて、オーバラップしている平面の平面ピクセルのうちの少なくともいくつかは、オーバラップされている平面の平面ピクセルのうちの少なくともいくつかとコロケートしている。本開示において使用される場合に、コロケートピクセルとは、ディスプレイ上の実質的に同様のロケーションに位置する複数のピクセルを指す。
【００１３】
本開示のいくつかの態様では、ディスプレイのピクセルに関して、処理ユニットが、どの平面がディスプレイのピクセルに対するコロケート平面ピクセルを含んでいるかを識別しうる。処理ユニットは、少なくとも、識別された平面の順序に基づいて、コロケート平面ピクセルに関するピクセル値を混合しうる。ピクセル値は、ピクセルのカラーおよび不透明値を示しうる。カラーを示すインジケーションは更に、ピクセルの明度を示しうる。処理ユニットは更に、少なくとも、識別された平面の順序に基づいて、コロケート平面ピクセルの不透明値および／またはコロケート平面ピクセルを含む識別された平面の平面不透明値を累積しうる。いくつかの実例において、処理ユニットは、累積不透明値が不透明値しきい値を超える、あるいはそれに実質的に等しくなった後、累積および混合を終了しうる。
【００１４】
これらのケースでは、その後の識別された平面におけるコロケート平面ピクセルは、累積不透明値が不透明値しきい値を超えている、あるいはそれに実質的に等しい場合に塞がれ、不可視となりうる。その後の識別された平面におけるコロケート平面ピクセルは不可視である可能性があるため、これらの平面ピクセルは処理される必要がない可能性があり、処理ユニットは混合および累積を終了することができる。累積および混合が終了すると、処理ユニットはディスプレイ上でピクセルをレンダリングしうる、または更なる提示のためにディスプレイバッファに最終ピクセル値を記憶しうる。
【００１５】
識別された平面の順序は、どの平面が、最前面の平面（front-most surface）、最前面の平面の後ろの平面（next front-most surface）、および更にその後ろの平面であるかを、最後面の平面（back-most surface）まで示しうる。識別された平面は、ディスプレイの所与のピクセルとコロケートしているコロケート平面ピクセルを含む平面でありうる。本開示において使用される場合に、識別された平面のうちの最前面の平面は、その他の識別された平面のいずれによってもオーバラップされていない平面を指し、識別された平面のうちの最後面の平面は、その他の識別された平面のいずれにもオーバラップしてない平面を指す。最前面の平面の後ろの平面は、最前面の平面と最後面の平面との間にありうる平面である。例えば、最前面の平面の後ろの平面は、最前面の平面によって、部分的または全面的にオーバラップされている可能性があり、最後面の平面に部分的にまたは全面的にオーバラップしている可能性がある。最前面の平面と最後面の平面との間に介在する複数の平面が存在しうる。最後面の平面はディスプレイの背景でありうる。
【００１６】
識別された平面の順序は、順序識別子にしたがって順序付けられうる。順序識別子は、どの平面が、その他のどの平面の前にあるかを示し、また、その逆を同様に示しうる（and vice versa）。より詳細に以下に説明されるように、いくつかの実例では、順序識別子が、識別された平面の順序を明示的に示しうるが、本開示の態様はそこまで限定はされない。
【００１７】
図１は、本開示の態様を実現するように構成されうるデバイス２を例示するブロック図である。デバイス２の実例は、モバイル無線電話と、携帯情報端末（ＰＤＡ）と、ビデオディスプレイを含むビデオゲーム機と、モバイルビデオ・カンファレンスユニットと、ラップトップコンピュータと、デスクトップコンピュータと、テレビセットトップ・ボックスなどを含むが、それらに限定はされない。デバイス２は、ホストプロセッサ４と、グラフィック処理ユニット（ＧＰＵ）６と、ディスプレイ８と、ディスプレイバッファ１０と、記憶デバイス１２と、トランシーバモジュール１４と、ユーザインタフェース１６とを含みうる。ホストプロセッサ４および／またはＧＰＵ６は処理ユニットの実例でありうる。デバイス２は、明確化のために、図１に図示されない追加的なモジュールまたはユニットを含みうる。例えば、デバイス２は、デバイス２がモバイル無線電話である実例において電話通信を生じさせるために、スピーカおよびマイクロフォンを含みうる。これらのどちらも、図１には図示されていない。更に、デバイス２内に図示されている様々なモジュールおよびユニットは、デバイス２のすべての実例において必要なわけではない可能性がある。例えば、デバイス２がデスクトップコンピュータである実例において、ユーザインタフェース１６およびディスプレイ８はデバイス２の外側にある可能性がある。
【００１８】
ホストプロセッサ４は１以上のアプリケーションを実行しうる。アプリケーションの実例は、ウェブブラウザ、ｅメールアプリケーション、スプレッドシート、ビデオゲーム、または提示のための可視オブジェクトを生成するその他のアプリケーションを含む。１以上のアプリケーションは、記憶デバイス１２内に記憶されうる。いくつかのインスタンスにおいて、ホストプロセッサ４は、トランシーバモジュール１４を介して１以上のアプリケーションをダウンロードしうる。ホストプロセッサ４は、ユーザインタフェース１６を介したユーザによる選択に基づいて１以上のアプリケーションを実行しうる。いくつかの実例において、ホストプロセッサ４は、ユーザインタラクションなしで１以上のアプリケーションを実行しうる。
【００１９】
ホストプロセッサ４の実例は、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、またはその他の同等の集積または離散ロジック回路を含むが、それらに限定されるわけではない。記憶デバイス１２は、１以上のコンピュータ可読記憶媒体を備えうる。記憶デバイス１２の実例は、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用されることができ、かつ、コンピュータまたはプロセッサによってアクセスされることができるその他任意の媒体を含むが、それに限定されるわけではない。いくつかの態様では、記憶デバイス１２は、ホストプロセッサ４および／またはグラフィック処理ユニット６に、本開示におけるホストプロセッサ４およびグラフィック処理ユニット６に属するものとみなされる機能を実行させる命令群を含みうる。
【００２０】
ユーザインタフェース１６の実例は、トラックボールと、マウスと、キーボードと、その他のタイプの入力デバイスとを含むが、それらに限定されるわけではない。ユーザインタフェース１６は更に、タッチスクリーンである可能性があり、ディスプレイ８の一部として組み込まれうる。トランシーバモジュール１４は、デバイス２と別のデバイスまたはネットワークとの間の無線または有線通信を可能にする回路を含みうる。トランシーバモジュール１４は、変調器と、復調器と、増幅器と、有線または無線通信のための、その他のこのような回路とを含みうる。
【００２１】
１以上のアプリケーションを実行する際、ホストプロセッサ４は、平面の形態で可視オブジェクトを生成しうる。平面は、提示のために、画像としてディスプレイ８上でレンダリングされうる。いくつかのインスタンスにおいて、平面の平面ピクセルのうちのいくつかはその他のコロケート平面ピクセルによって塞がれうるので、これらの平面ピクセルはレンダリングされない可能性がある。平面は、円、線、長方形、三角形、またはその他のタイプの多角形でありうる。ホストプロセッサ４はまた、ディスプレイ８のピクセル座標に基づいて、ディスプレイ８上の平面が位置しているロケーションを識別しうる。ロケーションは、ディスプレイ８上の平面の範囲（extent）を識別しうる。
【００２２】
ディスプレイ８は、液晶ディスプレイ（ＬＣＤ）、ブラウン管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスを備えうる。ディスプレイ８は、２次元（２−Ｄ）ピクセルアレイにおいて水平および垂直に配置された複数のピクセルを含む。ディスプレイ８の各ピクセルは、例えば、デカルト座標において、その２−Ｄ座標によって識別可能でありうる。例えば、ディスプレイ８の左上隅に位置するピクセルは、（０、０）に位置するピクセルとして識別されうる。（０、０）に位置するピクセルのすぐ右のピクセルは、（１、０）に位置するピクセルとして識別されうる。（０、０）に位置するピクセルのすぐ下のピクセルは、（０、１）に位置するピクセルとして識別されうる。ディスプレイ８のすべてのピクセルが同様に識別されうる。
【００２３】
上述されたデカルト座標は、例示のみを目的として説明される。ディスプレイ８のピクセルは、例えば、極座標、双極座標、放物線座標などのような、異なるタイプの座標システムによって識別可能でありうる。更に、実例的なピクセルのロケーションもまた、例示のみを目的として説明される。いくつかの実例において、（０、０）に位置するピクセルは、左下、右上、右下、またはディスプレイ８のその他任意のピクセルロケーションに位置しうる。
【００２４】
ホストプロセッサ４によって生成された平面のロケーションは、少なくとも、平面の座標に基づいて定義されうる。平面が円である実例において、平面のロケーションは、少なくとも、円の中心座標と半径とに基づきうる。例えば、平面の周囲の長さのような、平面の範囲はその後、円の中心座標と半径とに基づいて計算されうる。
【００２５】
一般に、多角形に関して、平面のロケーションは、少なくとも、平面の複数の頂点の１以上の頂点座標に基づいて定義されうる。平面の頂点の頂点座標は平面の範囲を識別しうる。平面が長方形である実例において、平面のロケーションは、長方形の４つの頂点の頂点座標に基づきうる。平面が長方形である、いくつかのインスタンスにおいて、少なくとも２つの頂点座標は、平面のロケーションおよび範囲を識別するために十分でありうる。残りの頂点座標は、２つの頂点座標から計算されうる。例えば、頂点座標は、長方形の左上の頂点を識別する（ｘｍｉｎ、ｙｍｉｎ）座標と、長方形の右下の頂点を識別する（ｘｍａｘ、ｙｍａｘ）座標でありうる。その時、長方形の左下の頂点は（ｘｍｉｎ、ｙｍａｘ）であり、その時、長方形の右上の頂点は（ｘｍａｘ、ｙｍｉｎ）である。
【００２６】
例示を目的として、本開示の態様は長方形平面のコンテキストにおいて説明される。しかしながら、平面は、長方形平面に限定されると見なされるべきではなく、その他の多角形や円などの形態を取りうる。
【００２７】
１以上のアプリケーションの実行によって生成される各平面は１以上の平面ピクセルを含む。ホストプロセッサ４は、明度値および不透明値を含むカラー値のようなピクセル値を、複数の平面の各々１つに対する複数の平面ピクセルの各々１つに対して割り当てうる。各平面ピクセルのピクセル値は、平面ピクセルのカラーと、輝度と、不透明性とを示す。ホストプロセッサ４は更に、１以上の平面の各々１つに関して、平面全体に対する不透明値を割り当てうる。
【００２８】
平面ピクセルは、ディスプレイのピクセルを表し、ディスプレイ８上のピクセルとコロケートしているものと見なされる。例えば、第１の平面の（１、１）に位置する平面ピクセルは、ディスプレイ８の（１、１）に位置するピクセルとコロケートしており、また、ディスプレイ８の（１、１）に位置するピクセルを表している。第２の平面の（１、１）に位置する平面ピクセルは、第１の平面の（１、１）に位置する平面ピクセルおよびディスプレイ８の（１、１）に位置するピクセルとコロケートし、更に、ディスプレイ８の（１、１）に位置するピクセルを表す。
【００２９】
各平面ピクセルのカラー値は、レッド値、グリーン値、およびブルー値（ＲＧＢ値）に基づきうる。ＲＧＢ値は、各平面ピクセルのカラーおよび明度を表しうる。明度は、平面ピクセルの輝度を示しうる。各平面ピクセルの不透明値は、各平面ピクセルの不透明度（opacity）を表しうる。各平面の平面不透明値は、平面全体の不透明度を表しうる。平面ピクセルの不透明度、または平面の不透明度は、平面ピクセルまたは平面の不透明性（opaqueness）を示しうる。不透明値は、完全不透明度に対する割合（a fraction of complete opacity）として表されうる。例えば、完全に不透明な平面ピクセルまたは完全に不透明な平面、すなわち不透明度１００％は、不透明値１を割り当てられる。５０％不透明である半透明の平面ピクセルまたは半透明の平面、すなわち不透明度５０％は、不透明値０.５を割り当てられうる、また、その他もこれらと同様である。半透明平面ピクセルまたは半透明平面は、その他のピクセルまたは平面を全面的には塞がない可能性がある。むしろ、半透明平面ピクセルまたは半透明平面は、その他のピクセルまたは平面を部分的に塞ぎうる。上述されたカラー値および不透明値は、例示を目的として提供されるものであり、限定するものと見なされるべきではない。カラー値および不透明値を識別する任意の技術が、本開示の態様にしたがって利用されうる。
【００３０】
ホストプロセッサ４は更に、１以上のアプリケーションの実行によって生成された複数の平面の順序を決定しうる。例えば、平面の少なくとも一部が実質的に同様のロケーションにある場合、平面は１以上のその他の平面に部分的または全面的にオーバラップしうる。一例として、第１の平面に対する直角座標は（１、１）、（５、１）、（１、５）、および（５、５）であり、第２の平面に対する直角座標は、（２、３）、（２、７）、（１０、３）、および（１０、７）である。この実例において、第１の平面は第２の平面に部分的にオーバラップするか、またはその逆でありうる。ユーザの観点から、別の平面にオーバラップしている平面は、その別の平面の前にあるものとみなされうる。ユーザの観点から、別の平面によってオーバラップされている平面は、その別の平面の後ろにあるものとみなされうる。平面の順序は、どの平面が、その他のどの平面の前または後ろにあるのかを示しうる。
【００３１】
平面の順序を識別するために、ホストプロセッサ４は、順序識別子を各平面に割り当てうる。例えば、その他のすべての平面の前にある平面は、順序識別子１を割り当てられうる。順序識別子１を有する平面のすぐ後ろにある平面は、順序識別子２を割り当てられ、それ以降も同様である（and so forth）。上述された順序識別子の実例は、平面の順序付けの一例であり、本開示の態様は、上述された順序付けの実例に限定されると見なされるべきではない。いくつかの実例において、ホストプロセッサ４は、順序識別子を各平面に明示的に割り当てることをしない可能性がある。平面の順序は、以下により詳細に説明されるように、ホストプロセッサ４が平面を処理した方式に基づいて決定されうる。
【００３２】
平面の順序は、ユーザによって、またはユーザの介入なしでホストプロセッサ４によって、選択されうる。例えば、ユーザは、選択された平面がその他の平面よりも、より顕著に表示されることを望みうる。ユーザは、その他のいずれの平面も、選択された平面にオーバラップしないことを望みうるが、その他の平面が、その選択された平面によってオーバラップされることは許可しうる。この実例では、その他のいずれの平面も、選択された平面にオーバラップしていないので、その選択された平面は、その他のすべての平面の前にあると見なされうる。別の実例として、ホストプロセッサ４は、実行されているアプリケーションのタイプに基づいて、どの平面がその他の平面よりも顕著に表示されるべきかを選択しうる。この実例では、ホストプロセッサ４によって選択された平面は、その他の平面にオーバラップしている可能性があるが、その他のいずれの平面によってもオーバラップされていない可能性がある。ホストプロセッサ４によって選択された平面は、その他のすべての平面の前にあると見なされうる。
【００３３】
いくつかの実例において、ホストプロセッサ４は、各平面の、順序と、ロケーションと、平面ピクセル値と、いくつかの実例では、平面不透明値とを、記憶のために記憶デバイス１２に送信しうる。いくつかの実例において、ホストプロセッサ４は、各平面の、順序と、ロケーションと、平面ピクセル値と、平面不透明値とを、更なる処理のためにグラフィック処理ユニット６に送信しうる。
【００３４】
上述されたように、いくつかの実例において、ホストプロセッサ４は、順序識別子を各平面に割り当てない可能性がある。これらのインスタンスのうちのいくつかでは、一例として、グラフィック処理ユニット６は、ホストプロセッサ４が各平面のロケーションを記憶デバイス１２に記憶した順序に基づいて、平面の順序を決定しうる。別の実例として、グラフィック処理ユニット６は、ホストプロセッサ４が各平面のロケーションを記憶した記憶デバイス１２内のロケーションに基づいて、平面の順序を決定しうる。例えば、ホストプロセッサ４は、記憶デバイス１２におけるアドレス０に最後面の平面を記憶し、記憶デバイス１２におけるアドレス１に最後面の平面の前の平面（next back-most surface）を記憶し、記憶デバイス１２におけるアドレスｎに最前面の平面を記憶するまで続行しうる。これらの実例において、順序識別子は、ホストプロセッサ４が記憶デバイス１２における各平面に関する情報を記憶した順序を示すインジケーションと見なされうる。各平面の順序を識別するためのその他の技術が利用される可能性があり、本開示の態様は、上記で提供された実例に限定されるものと見なされるべきではない。
【００３５】
グラフィック処理ユニット６は、ディスプレイ８上の提示のために平面ピクセルを処理しうる。グラフィック処理ユニット６の実例は、ＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはその他の同等の集積あるいは離散ロジック回路を含むが、それらに限定されるわけではない。図１では別々に図示されているが、いくつかの実例において、ホストプロセッサ４はグラフィック処理ユニット６を含みうる。
【００３６】
ディスプレイ８の少なくとも１つのピクセルに関して、グラフィック処理ユニット（ＧＰＵ）６は、どの平面ピクセルが、ディスプレイ８の少なくとも１つのピクセルとコロケートしている平面ピクセルを含んでいるかを識別しうる。ＧＰＵ６は、少なくとも、記憶デバイス１２に記憶された、またはホストプロセッサ４から受信された、平面ロケーションに基づいて平面を識別しうる。ＧＰＵ６がホストプロセッサ４から平面ロケーションを受信する実例において、ＧＰＵ６は、例えば、ＧＰＵ６内のキャッシュのような内部メモリに、受信された平面ロケーションを記憶しうる。
【００３７】
一例として、ディスプレイ８上の（５、５）に位置するピクセルに関して、ＧＰＵ６は、同様に（５、５）に位置する平面ピクセルをどの平面が含んでいるかを識別しうる。ＧＰＵ６は、少なくとも平面のロケーションに基づいて、ディスプレイ８上の（５、５）に位置するピクセルに対するコロケート平面ピクセルをどの平面が含んでいるかを識別しうる。コロケート平面ピクセルは、互いに関して、およびディスプレイ８のピクセルのロケーションに関して、コロケートしていると見なされうる。
【００３８】
ＧＰＵ６はまた、ホストプロセッサ４または記憶デバイス１２から平面の順序を受信しうる。平面の順序は、どの平面が、その他のどの平面の前または後ろにあるのかを識別しうる。ＧＰＵ６がホストプロセッサ４から平面の順序を受信する実例において、ＧＰＵ６は、順序識別子をそのキャッシュに記憶しうる。
【００３９】
上述されたように、いくつかの実例において、ホストプロセッサ４は、順序識別子を各平面に割り当てない可能性がある。これらの実例のうちのいくつかでは、ＧＰＵ６は、ホストプロセッサ４が平面に関する情報を記憶デバイス１２に記憶した順序に基づいて、平面の順序を決定しうる。例えば、ホストプロセッサ４は、各平面に関する情報が記憶された記憶デバイス１２におけるロケーションの順序付けられたリストをＧＰＵ６に送信しうる。順序付けられたリストにおける第１のロケーションは、最後面の平面に関する情報が記憶されている記憶デバイス１２内のロケーションに対応し、順序付けられたリストにおける第２のロケーションは、最後面の平面の前の平面に関する情報が記憶されている記憶デバイス１２内のロケーションに対応し、それ以降も同様である。ＧＰＵ６は、各平面に関する情報が記憶されている記憶デバイス１２におけるロケーションの順序付けられたリストに基づいて、平面の順序を識別しうる。
【００４０】
明確化および例示を目的として、本開示の態様は順序識別子に関して説明されうる。しかしながら、本開示の態様は、ホストプロセッサ４が順序識別子を割り当てない可能性がある実例に適用可能である。これらの実例において、上述されたように、ＧＰＵ６は、ホストプロセッサ４が平面に関する情報を記憶デバイス１２に記憶した順序に基づいて、平面の順序を決定しうる。
【００４１】
ＧＰＵ６はシェイダー１８を含みうるが、いくつかのインスタンスにおいて、シェイダー１８はＧＰＵ６の外側にありうる。シェイダー１８は、ハードウェアユニット、ファームウェアユニット、またはソフトウェアユニットとして実現されうる。シェイダー１８がファームウェアまたはソフトウェアとして実現される実例では、ＧＰＵ６のようなハードウェアユニットがシェイダー１８を実行しうる。更に、シェイダー１８がファームウェアまたはソフトウェアとして実現されるいくつかの実例において、シェイダー１８はＧＰＵ６にアップロードされうる。シェイダー１８は、互いに関して、およびディスプレイ８のピクセルに関して、コロケートしている平面ピクセルに関するピクセル値を混合するように構成されうる。いくつかの実例において、シェイダー１８は、ラスター形式でディスプレイ８上のピクセルに関する平面ピクセル値を混合しうる。
【００４２】
本開示において使用される場合に、用語「混合（blend）」は、ディスプレイ８上でレンダリングされる混合ピクセル値を生成するために、複数の平面ピクセルの起こりうる組み合わせを表す。したがって、本開示において使用される用語「混合（blend）」または「混合する（blending）」は、平面ピクセル値が混合される状況を包含する。いくつかのインスタンスにおいて、２つ以上のコロケート平面ピクセルを混合する場合、かつ、その他のコロケート平面ピクセルまたはピクセルの前にある平面ピクセルに関する不透明値が不透明度１００％を示す場合、シェイダー１８は前にある平面ピクセル（in front surface pixel）のピクセル値のみを利用しうる。これらの実例において、前にある平面ピクセルは、その他のコロケート平面ピクセルを全面的に塞ぐ可能性があり、前にあるフロント平面ピクセルのピクセル値のみが、シェイダー１８による処理のために必要とされうる。
【００４３】
例えば、シェイダー１８はディスプレイ８上の（０、０）に位置するピクセルにおいて開始しうる。シェイダー１８は、平面のロケーションに基づいて、ディスプレイ８上の（０、０）に位置するピクセルとコロケートしているコロケート平面ピクセルをどの平面が含んでいるかを識別しうる。例えば、第１の平面のロケーションは、第１の平面の頂点が（０、０）、（１、０）、（０、１）、および（１、１）から位置付けられていることを示しうる。この実例において、第１の平面は、ディスプレイ８上の（０、０）に位置するピクセルとコロケートしている、例えば、（０、０）に位置する平面ピクセルのような平面ピクセルを含む。シェイダー１８は更に、識別された平面の順序を決定しうる。シェイダー１８は、各平面のための順序識別子を受信しうるか、またはＧＰＵ６によって決定された、識別された平面の順序を受信しうる。いくつかの実例において、シェイダー１８は、受信された順序識別子に基づいて、識別された平面の順序を決定しうる。識別された平面は、ホストプロセッサ４によって生成された平面のサブセットでありうる。識別された平面は、コロケート平面ピクセルを含む平面である。識別された平面の順序に基づいて、シェイダー１８は、識別された平面のうちの最前面の平面を識別し、識別された平面のうちの最後面の平面を識別し、識別された平面のうちの最前面の平面と、識別された平面のうちの最後面の平面との間に介在する任意の平面の順序を識別しうる。
【００４４】
ディスプレイ８上の（０、０）に位置するピクセルとコロケートしているコロケート平面ピクセルを含む平面の順序を決定した後、シェイダー１８は、識別された平面のうちの最前面の平面のコロケート平面ピクセルのピクセル値を読み出し（retrieve）、いくつかの実例では、更に、最前面の平面の平面不透明値を読み出しうる。シェイダー１８は、記憶デバイス１２またはＧＰＵ６のキャッシュから、ピクセル値および平面不透明値を読み出しうる。
【００４５】
ＧＰＵ６のキャッシュまたは記憶デバイス１２は、累積不透明値および混合カラー値を記憶しうる。シェイダー１８は、コロケート平面ピクセルの不透明値およびカラー値に基づいて、記憶された混合カラー値を更新しうる。各平面が平面不透明値を含んでいる実例において、コロケート平面ピクセルの不透明値は、平面不透明値と同等でありうる。記憶された混合カラー値を更新するために、シェイダー１８は、最新の（current）記憶された混合カラー値を読み出し、最新の記憶された混合カラー値を最前面の平面のコロケート平面ピクセルのカラー値と混合しうる。カラー値を混合するための技術が、より詳細に以下に説明される。
【００４６】
いくつかの実例において、シェイダー１８は更に、コロケート平面ピクセルの不透明値に基づいて、累積不透明値を更新しうる。いくつかの実例において、それに代わってまたはそれに加えて、シェイダー１８は、最前面の平面の平面不透明値に基づいて、累積不透明値を更新しうる。
【００４７】
いくつかの非限定的な実例において、シェイダー１８は、累積不透明値が、不透明値しきい値に実質的に等しいか、あるいはそれを超えているかを判定しうる。いくつかの実例において、不透明値しきい値は、例えば、不透明度１００％のような完全不透明度でありうるが、その他の不透明値しきい値である可能性もある。
【００４８】
累積不透明値は、最初は０でありうる。累積不透明値は、１から最新の累積不透明値を減じることによって更新されうる。結果として生じた値は、最新のピクセルの不透明値および最新の平面の不透明値と乗じられうる。累積不透明値を計算するための式が以下に示される。  
新たな不透明値＝Ｄｅｓｔ＿ａｌｐｈａ＋（１−Ｄｅｓｔ＿ａｌｐｈａ）＊（Ｓｒｃ＿ａｌｐｈａ＊ｓｕｒｆａｃｅ［ｉ］．ｓｕｒｆａｃｅ＿ａｌｐｈａ）  
Ｄｅｓｔ＿ａｌｐｈａ＝新たな不透明値
前述の式において、Ｄｅｓｔ＿ａｌｐｈａは最新の累積不透明値であり、Ｓｒｃ＿ａｌｐｈａは最新の平面ピクセルの不透明値であり、ｓｕｒｆａｃｅ［ｉ］．ｓｕｒｆａｃｅ＿ａｌｐｈａは最新の平面の不透明値である。
【００４９】
一例として、第１の平面の第１の平面ピクセルの不透明値が０.４であり、第２の平面の、第１の平面ピクセルとコロケートしている第２の平面ピクセルの不透明値が０.６であり、第３の平面の、第１および第２の平面ピクセルとコロケートしている第３の平面ピクセルの不透明値が０.８であると仮定する。この実例において、第１、第２、および第３の平面の不透明値、例えば、平面不透明値は、１であると仮定する。また、この実例において、不透明値しきい値は０.９５であると仮定する。
【００５０】
この実例において、第１の平面ピクセルの不透明値は０.４であり、第１の平面の不透明値は１であり、シェイダー１８が第１の平面ピクセルを処理した後、更新された累積不透明値は０.４であり、すなわち、０＋（１−０）＊（０.４＊１）である。いくつかの実例において、シェイダー１８は、累積不透明値と不透明値しきい値とを比較しうる、例えば、０.４と０.９５とを比較する。累積不透明値がしきい値に満たないので、シェイダー１８は第２の平面上の第２の平面ピクセルへ進みうる。
【００５１】
上述したように、第２の平面ピクセルの不透明値は０.６であり、第２の平面の不透明値は１である。この実例において、シェイダー１８が第２の平面ピクセルを処理した後、更新された累積不透明値は０.７６であり、すなわち、０.４＋（１−０.４）＊（０.６＊１）である。累積不透明値、例えば０.７６、が不透明値しきい値、例えば０.９５、に満たないので、シェイダー１８は第３の平面上の第３の平面ピクセルへ進みうる。
【００５２】
上述したように、第３の平面ピクセルに関する不透明値は０.８であり、第３の平面の不透明値は１である。この実例において、シェイダー１８が第３の平面ピクセルを処理した後、更新された累積不透明値は０.９５２であり、すなわち、０.７６＋（１−０.７６）＊（０.８＊１）である。この実例において、累積不透明値、例えば０.９５２、が不透明値しきい値、例えば０.９５、を超えるので、シェイダー１８は累積を終了しうる。この実例において、第１、第２、および第３の平面ピクセルとコロケートし、第３の平面の後続の平面に属している任意の平面ピクセルは、第１、第２、第３の平面の合計不透明度が不透明値しきい値を超えるので、塞がれていると見なされ、不可視であると見なされうる。
【００５３】
シェイダー１８はその後、識別された平面のうちの最前面の平面の後ろの平面に進みうる。最前面の平面の後ろの平面は、一例として、順序識別子によって識別されうる。シェイダー１８は、（０、０）に位置する最前面の後ろの平面のコロケート平面ピクセルの不透明値を累積し、更に、累積不透明値と共に、最前面の平面の後ろの平面の平面不透明値を累積しうる。シェイダー１８は更に、最前面の平面の後ろの平面のコロケート平面ピクセルのカラー値を、記憶された混合カラー値と混合しうる。シェイダー１８は、累積不透明値が、不透明値しきい値に実質的に等しいか、あるいはそれを超えているかを判定しうる。
【００５４】
シェイダー１８はその後、最前面の平面の後ろの平面の後ろにある平面に進み、上述されたものと同様の機能を実行しうる。いくつかの実例において、シェイダー１８は、最後面の平面に達するまで、平面に対して続行し（continue with the surfaces）、その後、混合および累積を終了する。いくつかの実例において、シェイダー１８は、累積不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えるまで、平面に対して続行しうる。これらの実例では、累積不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えた場合、シェイダー１８は混合および累積を終了しうる。
【００５５】
上述したように、いくつかの実例において、ディスプレイ８の所与のピクセルに関して、シェイダー１８が最前面の識別された平面のコロケート平面ピクセルに関するピクセル値を読み出し、その後、混合することを実行しうる。シェイダー１８はその後、最前面の平面の後ろの平面に進み、混合することを実行し、最前面の平面の後ろの平面の後ろにある平面に進みうる。しかしながら、本開示の態様はそこまで限定されるわけではない。いくつかの実例において、シェイダー１８は、最前面の識別された平面から開始するのではなく、最後面の識別された平面から開始しうる。ディスプレイ８の所与のピクセルでは、シェイダー１８が、最後面の識別された平面のコロケート平面ピクセルに関するピクセル値を読み出し、混合することを実行しうる。シェイダー１８はその後、最後面の平面の前の識別された平面に進み、混合することを実行し、最後面の平面の前の識別された平面に進み、その後も同様の処理を実行する。シェイダー１８は、最前面の識別された平面のコロケートピクセルを処理した後に、混合することを終了しうる。シェイダー１８が最後面の平面から開始し、最前面の平面まで進む実例において、シェイダー１８は、平面ピクセルの不透明値または平面不透明値を累積しない可能性がある。
【００５６】
混合および累積を終了した後、ＧＰＵ６は、少なくとも、混合カラー値に基づいて、ディスプレイ８上の（０、０）に位置するピクセルをレンダリングしうる。ＧＰＵ６は、レンダリングされたピクセル値を、提示のためにディスプレイ８に送信するか、または一時的な記憶のためにディスプレイバッファ１０に送信しうる。ＧＰＵ６が、レンダリングされたピクセル値をディスプレイ８に送信する実例において、ディスプレイ８は、例えば、ディスプレイ８上の（０、０）に位置するピクセルのような、レンダリングされたピクセルを提示する。
【００５７】
ディスプレイバッファ１０は、ディスプレイ８と同じサイズにサイズ指定されたバッファでありうる。例えば、ディスプレイバッファ１０は、ピクセル値の記憶のために２−Ｄ記憶アレイを含みうる。２−Ｄ記憶アレイ内の各ロケーションは、ディスプレイ８上の各ピクセルに対応しうる。例えば、ディスプレイバッファ１０の２−Ｄ記憶アレイにおける（１００、５０）ロケーションは、ディスプレイ８上の（１００、５０）に位置するピクセルに対応する。ＧＰＵ６が、レンダリングされたピクセル値をディスプレイバッファ１０に送信する実例において、ディスプレイバッファ１０は、レンダリングされたピクセル値を、２−Ｄ記憶アレイにおける対応するロケーションに記憶しうる。例えば、ＧＰＵ６がディスプレイ８上の（１００、５０）に位置するピクセルをレンダリングし、レンダリングされたピクセル値をディスプレイバッファ１０に送信した後、ディスプレイバッファ１０は、レンダリングされたピクセル値を、２−Ｄ記憶アレイの（１００、５０）ロケーションに記憶する。
【００５８】
ディスプレイバッファ１０は、ＧＰＵ６がディスプレイ８上のすべてのピクセルのレンダリングを完了するまで、レンダリングされたピクセル値を記憶しうる。ディスプレイバッファ１０はその後、レンダリングされたピクセル値を提示のためにディスプレイ８に送信し、記憶されたすべての値を消去しうる。ディスプレイバッファ１０は、例示のみを目的として提供されており、デバイス２のすべての実例に必要とされるわけではない可能性がある。
【００５９】
前述の実例において、シェイダー１８はディスプレイ８上の（０、０）に位置するピクセルから開始している。ディスプレイ８上の（０、０）に位置するピクセルとコロケートしている平面ピクセルのための混合および累積の終了後、シェイダー１８は、ディスプレイ８上の別のピクセルに進み、同様の機能を実行しうる。例えば、シェイダー１８は、ディスプレイ８上の（０、１）に位置するピクセルに関するピクセル値を混合することを進めうる。シェイダー１８は、上述されたものと同様の技術を利用して、ディスプレイ８上の１以上のピクセルに関するピクセル値を混合しうる。
【００６０】
上述されたように、シェイダー１８は、ディスプレイ８上の１以上のピクセルに関するピクセル値を１つずつ混合しうる。例えば、上述されたように、シェイダー１８は、ディスプレイ８上の（０、０）に位置するピクセルに関するピクセル値を混合し、その後、（０、１）に位置するピクセルに関するピクセル値を混合することに進み、また、それ以降についても同様である。いくつかの実例において、シェイダー１８は、ピクセル値を１つずつ混合するのではなく、複数のピクセルに関するピクセル値を同時に混合しうる。例えば、シェイダー１８は、ディスプレイ８上の（０、０）、（０、１）、および（０、２）に位置するピクセルに関するピクセル値を同時に混合し、その後、ディスプレイ８上の（０、３）、（０、４）、（０、５）に位置するピクセルに進み、また、それ以降についても同様である。
【００６１】
更に、上述したように、シェイダー１８はコロケート平面ピクセルのピクセル値を１つずつ読み出しうる。例えば、上述したように、シェイダー１８は、識別された平面のうちの最前面の平面からのコロケート平面ピクセルからピクセル値を読み出し、ピクセル値を混合し、その後、識別された平面のうちの最前面の平面の後ろの平面からのコロケート平面ピクセルからピクセル値を読み出し、また、それ以降についても同様である。いくつかの実例において、シェイダー１８は、コロケート平面ピクセルのピクセル値を１つずつ読み出すのではなく、バッチで（in a batch）コロケート平面ピクセルのうちの少なくともいくつかのピクセル値を読み出しうる。コロケート平面ピクセルのバッチは、異なる平面上の複数のコロケート平面ピクセルを指しうる。コロケート平面ピクセルのバッチの読み出しは、シェイダー１８が、ＧＰＵ６または記憶デバイス１２のキャッシュへの１つのアクセスを用いて、異なる平面上の複数のコロケート平面ピクセルを読み出すことを含みうる。例えば、シェイダー１８は、例えば、ＧＰＵ６または記憶デバイス１２のキャッシュへの１つのアクセスを用いて、バッチで、最前面の平面と、最前面の平面の後ろの平面と、最前面の平面の後ろの平面のすぐ後ろの平面とのコロケート平面ピクセルに関するピクセル値を読み出しうる。
【００６２】
本開示のいくつかの態様において、ＧＰＵ６は一度だけ、ディスプレイ８上のピクセルに関するピクセル値を読み取ることと、書き込むこととを実行することができる。メモリからピクセル値を読み取ることと、ディスプレイのためにピクセル値を書き込むこととは、ブロック変換（ＢＬＴ）または（ＢＬＴｉｎｇ）と称される。反復ＢＬＴｉｎｇ（Repeated BLTing）は、ピクセル値を求める反復要求と、レンダリングされたピクセル値の書込とに起因する多大な処理および帯域幅の消費を必要としうる。この反復ＢＬＴｉｎｇは、処理ユニットが最後面の平面から開始し、最前面の平面に向かって続行するいくつかのデバイスにおいて生じうる。更に、反復ＢＬＴｉｎｇはまた、オーバラップしている平面ピクセルによって後に塞がれるピクセルをレンダリングしうる。
【００６３】
本開示の非限定的な実例において、ディスプレイ８上のピクセルに関して、ＧＰＵ６は、コロケート平面ピクセルのピクセル値を一度読み取る必要があるだけであり、レンダリングされたピクセル値を一度書き込む必要があるだけである可能性があり、それにより、効率的な処理および帯域幅消費を促進しうる。上述したように、シェイダー１８は、一例として、識別された平面のうちの最前面の平面から開始し、識別された平面のうちの最後面の平面に向かって続行して、ディスプレイ８上のピクセルとコロケートしている各コロケート平面ピクセルに関する混合カラー値を更新しうる。上述したように、シェイダー１８は、一例として、識別された平面のうちの最後面の平面から開始し、識別された平面のうちの最前面の平面に向かって続行して、ディスプレイ８上のピクセルとコロケートしている各コロケート平面ピクセルに関する混合カラー値を更新しうる。ディスプレイ８上のピクセルに関するレンダリングされたピクセル値がその後、コロケート平面ピクセルが混合された後に毎回ではなく、累積の終了後、一度だけ提供される。シェイダー１８は、単一スクリーンサイズＢＬＴ動作を実行するシェイダーと見なされうる。
【００６４】
本開示の非限定的な態様はまた、効率的な処理および帯域幅消費を更に促進しうる。上述したように、いくつかの非限定的な実例において、シェイダー１８は、各コロケート平面ピクセルに関する不透明値および／または各平面の不透明値、例えば、平面不透明値を累積しうる。シェイダー１８は、識別された平面のうちの最前面の平面から開始し、識別された平面のうちの最後面の平面に向かって続行して、不透明値を累積しうる。いくつかの実例では、累積不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超えた後、シェイダー１８は混合および累積を終了しうる。
【００６５】
これらの実例では、シェイダー１８は、シェイダー１８が混合および累積を終了した平面の後ろにあるその他のコロケート平面ピクセルに関するピクセル値を読み出さない可能性がある。例えば、シェイダー１８は、識別された平面の前から後ろへの順序付け（front-to-back ordering）における３番目の平面でありうる第３の平面の後にコロケート平面ピクセルのための混合および累積を終了したと仮定する。この実例において、シェイダー１８は、第３の平面の後ろにある平面のコロケート平面ピクセルに関するピクセル値を読み出しうる。このケースにおいて、このようなピクセルは、ピクセルが実質的にまたは完全に塞がれるほどに不透明値が十分に高いので、レンダリングされたとしても、提示されない（あるいは、少なくとも十分な程度まで提示されない）だろう。
【００６６】
シェイダー１８が混合および累積を終了した場合、シェイダー１８が混合および累積を終了した平面の後ろのコロケート平面ピクセルは、完全に塞がれている可能性があり、ユーザによって不可視でありうる。上述したように、シェイダー１８は、不透明値が、不透明値しきい値に実質的に等しくなるか、あるいはそれを超える場合、混合および累積を終了しうる。不透明値しきい値は、完全不透明度でありうるが、その他のしきい値である可能性がある。完全不透明度は、累積が完全不透明度を示した平面ピクセルの後ろにあるコロケート平面ピクセルが、不可視であることを示しうる。
【００６７】
シェイダー１８が混合および累積を終了した平面の後ろにあるコロケート平面ピクセルは、ユーザによって不可視となるので、シェイダー１８は、それらのピクセルの値を読み出して処理する必要がない可能性がある。この方式において、シェイダー１８は、可視であるコロケート平面ピクセルに関するピクセル値を読み出して処理し、不可視であるコロケート平面ピクセルに関するピクセル値を読み出さないことにより、十分な処理および帯域幅消費を更に促進しうる。
【００６８】
いくつかの実例において、本開示の態様は、テッセレーション化（tessellation）を用いることなく実現されうる。テッセレーション化は、処理ユニットが、１以上のその他の平面によってオーバラップされている平面の一部を決定することを必要としうる。処理ユニットはその後、この平面をサブ平面に分割、すなわち、テッセレーション化（tesselate）する。このサブ平面は、その他の平面によってオーバラップされている部分、またはその他の平面にオーバラップしている部分でありうる。処理ユニットはその後、テッセレーション化されたこれらのサブ平面を処理する。しかしながら、テッセレーション化は複雑であり、比較的、時間がかかる処理でありうる。テッセレーション化は、不透明平面ピクセルおよび半透明平面ピクセルの両方ともを含む平面を処理する際に効率的ではない可能性がある。
【００６９】
本開示の態様はまた、初期のＺテスト技術を用いるＺバッファに関するケースにおいて、各ピクセルのためのＺ（すなわち、奥行）座標を必要とすることなく、カラーのみの処理技術を利用して実現されうる。初期のＺテスト技術を用いるＺバッファは、プロセッサが、（ｘ、ｙ）のみではなく、（ｘ、ｙ、ｚ）座標システムに基づいて各ピクセルを識別することを必要とし、追加的なメモリ平面が、各ピクセルに関するｚ座標値を記憶することを必要としうる。追加的なｚ座標の記憶および読取は、追加的な帯域幅を必要としうる。しかしながら、追加的なＺバッファ処理を用いることなく、カラーと、（ｘ、ｙ）座標と、既知の平面の順序付けとに基づいて、各ピクセルを処理することによって、本開示の態様は、ＧＰＵ６の数または読取および書込を低減し、不透明平面ピクセルおよび半透明平面ピクセルのミクスチャ（mixture）を含む平面を効率的に処理する方式でピクセルをレンダリングする際に役立ちうる。
【００７０】
図２は、複数の平面を提示するディスプレイ８の実例的な例示である。図２の実例は、例示のみを目的として提供され、限定と見なされるべきではない。図２に図示されるように、ディスプレイ８は、平面２０、平面２２、平面２４、および平面２６を提示する。平面２０はディスプレイ８の背景でありうる。例示を目的として、ディスプレイ８は１００×１００ピクセルの２−Ｄアレイを備える。平面２０は、（０、０）、（０、１００）、（１００、０）、および（１００、１００）における頂点を含む。平面２２は、（５、５）、（５、７５）、（２５、５）、および（２５、７５）における頂点を含む。平面２４は、（２０、１０）、（２０、５０）、（４０、１０）、および（４０、５０）における頂点を含む。平面２６は、（３５、３０）、（３５、６０）、（７０、３０）、および（７０、６０）における頂点を含む。
【００７１】
図２に図示されるように、平面２２は平面２４によってオーバラップされている。平面２４の一部２８は、平面２２の一部にオーバラップしている。平面２２の破線は、平面２４によってオーバラップされており、ユーザによって不可視である平面２２の範囲を示す。平面２４は、平面２６によってオーバラップされている。平面２６の一部３０は、平面２４の一部にオーバラップしている。平面２４の破線は、平面２６によってオーバラップされており、ユーザによって不可視である平面２４の範囲を示す。
【００７２】
本開示の態様では、ＧＰＵ６は、平面２０、２２、２４、および２６の各々１つのロケーションおよび順序を受信しうる。ロケーションは、それらの頂点によって定義された平面２０、２２、２４、および２６の範囲に基づきうる。平面の順序は、平面２６を第１の平面として識別し、平面２４を第２の平面として識別し、平面２２を第３の平面として識別し、ディスプレイ８の背景でありうる平面２０を第４の平面として識別しうる。
【００７３】
ディスプレイ８のピクセルに関して、ＧＰＵ６は、平面２０、２２、２４、および２６のどれが、ディスプレイ８上のピクセルとコロケートしているコロケート平面ピクセルを含んでいるかを示しうる。ＧＰＵ６は、少なくとも、平面のロケーションに基づいて、平面２０、２２、２４、２６を識別しうる。平面２０、２２、２４、および２６のロケーションは、それらの頂点によって定義されうる。例えば、ディスプレイ８上の（１０、２０）に位置するピクセルは、平面２２、２０からの平面ピクセルとコロケートしている。別の実例として、ディスプレイ８上の（２２、３０）に位置するピクセルは、平面２４、２２、および２０からの平面ピクセルとコロケートしている。更に別の実例として、ディスプレイ８上の（３７、４０）に位置するピクセルは、平面２６、２４、および２０からの平面ピクセルとコロケートしている。
【００７４】
ディスプレイ８上のピクセルに関して、シェイダー１８は、カラー値を混合し、いくつかの実例では、ディスプレイ８上のピクセルとコロケートしている１以上のコロケート平面ピクセルの不透明値を累積しうる。１以上のコロケート平面ピクセルに関して、シェイダー１８は、少なくとも、コロケート平面ピクセルのカラー値および不透明値に基づいて、ピクセル値を混合しうる。ピクセル値を混合するための実例的な技術が、より詳細に以下に提供される。シェイダー１８は、各コロケート平面ピクセルを混合した後に、記憶された混合カラー値を更新しうる。シェイダー１８は、各コロケート平面ピクセルの不透明値か、またはコロケート平面ピクセルを含む平面の各々の不透明値かを累積した後、記憶された累積不透明値を更新しうる。混合および累積に関して、シェイダー１８は、識別された平面のうちの最前面の平面で開始し、識別された平面のうちの最後面の平面に向かって続行しうる。
【００７５】
一例として、（２２、３０）に位置するディスプレイ８上のピクセルに関して、シェイダー１８は、ディスプレイ８上の（２２、３０）に位置するピクセルとコロケートしている平面ピクセルを各々が含む平面として、平面２４、２２、および２０を識別しうる。一例として、平面２４、２２、および２０の順序識別子に基づいて、シェイダー１８は、識別された平面のうちの最前面の平面と、識別された平面のうちの最後面の平面と、介在する任意の平面の順序とを識別しうる。１つの実例において、シェイダー１８は、平面２４を最前面の平面として識別し、平面２２を最前面の平面の後ろの平面として識別し、平面２０を最後面の平面として識別しうる。
【００７６】
シェイダー１８が、識別された平面のうちの最前面の平面から処理を開始する実例では、平面２４が最前面の平面なので、シェイダー１８はその後、平面２４のコロケート平面ピクセルに関するピクセル値を読み出しうる。シェイダー１８は、平面２４のコロケート平面ピクセルのピクセル値を、記憶された混合カラー値と混合しうる。記憶された混合カラー値は、ゼロに初期化され、シェイダー１８による各ピクセルの混合の後に更新されうる。シェイダー１８は、平面２４のコロケート平面ピクセルのピクセル値に基づいて、記憶された混合カラー値を更新しうる。
【００７７】
シェイダー１８はまた、累積不透明値で、例えば、平面２４の平面不透明値のような、平面２４のコロケート平面の不透明値および／または平面２４の不透明値を累積しうる。累積不透明値は、ゼロに初期化され、シェイダー１８による各累積の後に更新されうる。
【００７８】
いくつかの実例において、各混合の後、シェイダー１８は累積不透明値を不透明値しきい値と比較しうる。累積不透明値が不透明値しきい値に満たない場合、シェイダー１８は、前から後ろへの形式で、次の平面へ進みうる。この実例において、シェイダー１８は平面２２に進み、平面２４のコロケート平面ピクセルに関して、上述されたのと実質的に同様の形式で、平面２２のコロケート平面を処理しうる。
【００７９】
累積不透明値が不透明値しきい値に実質的に等しくなるか、あるいはそれを超えた場合、シェイダー１８は混合および累積を終了しうる。この実例において、シェイダー１８は、平面２２のコロケート平面ピクセルを処理しない可能性がある。この実例において、平面２２のコロケート平面ピクセルは、平面２４のコロケート平面ピクセルによって完全に塞がれうる。平面２２の完全に塞がれた平面ピクセルは、ユーザによって不可視である可能性があり、処理される必要がない可能性がある。
【００８０】
シェイダー１８が、識別された平面のうちの最後面の平面から処理を開始する実例では、平面２０が最後面の平面なので、シェイダー１８はその後、平面２０のコロケート平面ピクセルに関するピクセル値を読み出しうる。シェイダー１８はカラー値を混合しうる。シェイダー１８は、平面２０のコロケート平面ピクセルのピクセル値を、記憶された混合カラー値と混合しうる。シェイダー１８はその後、最後面の平面の前の平面に進みうる。これは、図２に例示される実例における平面２２である。
【００８１】
図３は、本開示のいくつかの態様にしたがって、ＧＰＵ６の実例的な動作を例示するフローチャートである。例示を目的として、図１が参照される。ＧＰＵ６は処理ユニットでありうる。例えば、処理ユニットは、ＧＰＵ６およびシェイダー１８に関して上述されるような平面ピクセルを処理するように構成されうる。
【００８２】
ＧＰＵ６は、ディスプレイ上に表示される複数の平面の各々１つのロケーションを受信しうる（３２）。いくつかの実例において、ＧＰＵ６内に形成されうるシェイダー１８は、少なくとも、複数の平面の各々１つのロケーションに基づいて、ディスプレイ上の少なくとも１つのピクセルとコロケートしている１以上のコロケート平面ピクセルを含む複数の平面のうちの１以上の平面を識別しうる（３４）。少なくとも１つのピクセルとコロケートする１以上のコロケート平面ピクセルは、互いに関してコロケートしている可能性がある。ＧＰＵ６はその後、少なくとも、複数の平面のうちの識別された１以上の平面の順序に基づいて、少なくとも１つのピクセルとコロケートしている、識別された１以上の平面のうちの１以上のコロケート平面ピクセルのピクセル値を混合しうる（３６）。
【００８３】
図４は、本開示の態様にしたがって、ＧＰＵ６の別の実例的な動作を例示するフローチャートである。例示を目的として、図１が参照される。ＧＰＵ６は処理ユニットでありうる。ＧＰＵ６は、記憶された混合カラー値および累積不透明値をゼロに初期化しうる（３８）。ＧＰＵ６は、ディスプレイ８上のピクセルを選択しうる（４０）。いくつかの実例において、ＧＰＵ６はディスプレイ８上の（０、０）に位置するピクセルを選択しうるが、ＧＰＵ６はディスプレイ８上のその他任意のピクセルを選択しうる。
【００８４】
ＧＰＵ６は、ディスプレイ８上の選択されたピクセルとコロケートしている平面ピクセルを含む平面を識別しうる（４２）。いくつかの実例において、ＧＰＵ６は、少なくとも平面のロケーションに基づいて平面を識別しうる。ホストプロセッサ４は、一例として、平面の頂点の頂点座標に基づいて、平面のロケーションを判定しうる。ホストプロセッサ４は、内部記憶のためにＧＰＵ６に、または、記憶のために記憶デバイス１２に、平面のロケーションを送信しうる。ＧＰＵ６は、自らのキャッシュまたは記憶デバイス１２から平面のロケーションを受信しうる。
【００８５】
少なくとも、識別された平面に基づいて、ＧＰＵ６は、例えば、識別された平面のうちの最前面の平面のような、コロケート平面ピクセルを最新の平面として含むその他すべての平面の前にあるコロケート平面ピクセルを含む平面を識別しうる（４４）。ＧＰＵ６は、少なくとも、平面の順序識別子に基づいて、最新の平面を識別しうる。ホストプロセッサ４またはユーザは、平面の順序を選択しうる。ホストプロセッサ４は、順序識別子を各平面に割り当てうる。ホストプロセッサ４は、内部記憶のためにＧＰＵ６に、または、記憶のために記憶デバイス１２に、順序識別子を送信しうる。ＧＰＵ６は、自らのキャッシュまたは記憶デバイス１２から平面の順序識別子を受信しうる。
【００８６】
いくつかの実例において、ホストプロセッサ４は、順序識別子を各平面に割り当てない可能性がある。これらの実例のうちのいくつかにおいて、ＧＰＵ６は、ホストプロセッサ４が平面に関する情報を記憶デバイス１２に記憶した順序に基づいて、平面の順序を決定しうる。
【００８７】
シェイダー１８は、最新の平面のコロケート平面ピクセルに関するピクセル値を、記憶された混合カラー値と混合しうる（４６）。ピクセル値は、最新の平面のコロケート平面ピクセルのカラー値および不透明値を含みうる。ピクセル値を混合するために、シェイダー１８は以下の式を実施しうる。  
Ｎｅｗ＿ｃｏｌｏｒ＿ｖａｌｕｅ＝（Ｓｒｃ＿ｃｏｌｏｒ）（Ｓｒｃ＿ａｌｐｈａ）＋（１−Ｓｒｃ＿ａｌｐｈａ）（Ｄｅｓｔ＿ｃｏｌｏｒ）
上述の式において、Ｓｒｃ＿ｃｏｌｏｒは、最新の平面のコロケート平面ピクセルのカラー値に等しい。Ｓｒｃ＿ｃｏｌｏｒはまた、コロケート平面ピクセルの明度を含みうる。Ｓｒｃ＿ａｌｐｈａは、最新の平面のコロケート平面ピクセルの不透明値に等しい。Ｄｅｓｔ＿ｃｏｌｏｒは、記憶された混合カラー値に等しい。最新の平面のコロケート平面ピクセルのカラー値および不透明値は、ホストプロセッサ４によって割り当てられうる。
【００８８】
シェイダー１８は、ピクセル値を混合した後に、記憶された混合カラー値を更新しうる（４８）。記憶された混合カラーを更新するために、シェイダー１８は、混合ピクセル値に等しい記憶された混合カラー値を設定しうる。例えば、シェイダー１８は、Ｄｅｓｔ＿ｃｏｌｏｒ＝Ｎｅｗ＿ｃｏｌｏｒ＿ｖａｌｕｅと設定しうる。
【００８９】
いくつかの実例において、シェイダー１８は更に、記憶された累積不透明値を更新しうる（５０）。ホストプロセッサ４は、各平面ピクセルに不透明値を割り当てうる。ホストプロセッサ４は更に、各平面に不透明値を割り当てうる。シェイダー１８は、少なくとも、コロケート平面ピクセルの記憶された累積不透明値および不透明値および／または最新の平面の不透明値に基づいて、累積不透明値を更新しうる。
【００９０】
上述されたように、シェイダー１８は、記憶された不透明値を更新するために以下の式を実現しうる。  
Ｎｅｗ＿ｏｐａｑｕｅｎｅｓｓ＿ｖａｌｕｅ＝Ｄｅｓｔ＿ａｌｐｈａ＋（１−Ｄｅｓｔ＿ａｌｐｈａ）＊（Ｓｒｃ＿ａｌｐｈａ＊ｓｕｒｆａｃｅ［ｉ］．ｓｕｒｆａｃｅ＿ａｌｐｈａ）  
Ｄｅｓｔ＿ａｌｐｈａ＝Ｎｅｗ＿ｏｐａｑｕｅｎｅｓｓ＿ｖａｌｕｅ
上述の式において、Ｓｒｃ＿ａｌｐｈａは、最新の平面の少なくとも１つのコロケート平面ピクセルの不透明値と、最新の平面の不透明値とに等しい。ｓｕｒｆａｃｅ［ｉ］．ｓｕｒｆａｃｅ＿ａｌｐｈａは、「ｉ番目」の平面の平面不透明値に等しい。変数「ｉ」は、処理されている最新の平面の順序を示しうる。Ｄｅｓｔ＿ａｌｐｈａは、記憶された累積不透明値に等しい。
【００９１】
シェイダー１８は、累積不透明値が不透明値しきい値に満たないかどうかを判定しうる（５２）。不透明値しきい値は不透明度１００％でありうるが、その他のより低いしきい値である可能性がある。累積不透明値が不透明値しきい値に実質的に等しくなるか、あるいはそれを超える場合（５２の「いいえ」）、ＧＰＵ６はディスプレイ８上の選択されたピクセルをレンダリングしうる（５８）。ＧＰＵ６は、少なくとも、記憶されたカラー値に基づいて、ディスプレイ８上の選択されたピクセルをレンダリングしうる。
【００９２】
累積不透明値が不透明値しきい値に満たない場合（５２の「はい」）、ＧＰＵ６は、ディスプレイ８上の選択されたピクセルとコロケートしているコロケート平面ピクセルを含む更なる（more）平面、例えば、更なる識別された平面、が存在するかどうかを判定しうる（５４）。コロケート平面ピクセルを含む更なる平面が存在しない場合（５４の「いいえ」）、ＧＰＵ６はディスプレイ８上の選択されたピクセルをレンダリングしうる（５８）。コロケート平面ピクセルを含む更なる平面が存在する場合（５４の「はい」）、ＧＰＵ６は平面の受信された順序付けに基づいて次の平面を選択しうる。
【００９３】
次の平面は、最新の平面のコロケート平面ピクセルによってオーバラップされているコロケート平面ピクセルを含む平面でありうる。次の平面のコロケート平面ピクセルは、ディスプレイ８上の選択されたピクセルとコロケートしうる。ＧＰＵ６は、次の平面を最新の平面として識別しうる（５６）。ＧＰＵ６は、不透明値が不透明値しきい値を超えるか、コロケート平面ピクセルを含む更なる平面が存在しなくなるまで、ピクセル値を混同する動作（４６）と、カラー値および不透明値を更新する動作（４８および５０）とを反復しうる。
【００９４】
ＧＰＵ６がピクセルをレンダリングした後（５８）、ＧＰＵ６はディスプレイ８上にレンダリングされるべき更なるピクセルが存在するかどうかを判定しうる（６０）。レンダリングされるべき更なるピクセルがディスプレイ８上に存在する場合（６０の「はい」）、ＧＰＵ６は、ディスプレイ８上の次のピクセルを、選択されたピクセルとして識別しうる（６２）。いくつかの実例において、ＧＰＵ６はラスター形式で次のピクセルを選択しうる。ＧＰＵ６はその後、選択されたピクセルとコロケートしている平面ピクセルを持つ平面を識別しうる（４２）。ＧＰＵ６およびシェイダー１８は、ディスプレイ８上にレンダリングされるべき更なるピクセルが存在しなくなるまで、上述された動作を反復しうる。
【００９５】
本開示の態様の実例的な実施のための擬似コードが以下に示される。この擬似コードは、記憶デバイス１２に記憶され、ＧＰＵ６およびシェイダー１８によって実現されるか、または、ＧＰＵ６の内部にあるメモリに記憶されうる。  
１０.  Dest_alpha = ０;
２０.  Dest_color = ０;
３０.  for （i=０; <= #of_source_surfaces; i++）
４０.  {
５０.        if （（Screen_X >= Surface[i].leftmost_x） && （Screen_X <=
６０.  Surface[i].righmost_x） && （Screen_Y >= Surface[i].topmost_y） &&
７０.  （Screen_Y <= Surface[i].bottommost））
８０.      {
９０.            Source = Texture_Fetch[Screen_X + Surface[i].X_Offset,
１００.      Screen_Y + Surface[i].Y_Offset, sampler[i],texture[i]];
１１０.          Dest_color += Source.color*（１-Dest_alpha） * Source.alpha *
１２０.      Surface[i].Surface_Alpha;
１３０.          Dest_alpha += （１-Dest_alpha） * （Source.alpha *
１４０.      Surface[i].Surface_Alpha;
１５０.    }
１６０.    if （Dest_alpha >= １.０）
１７０.          break;
１８０.    }
１９０.    Write_to_System_Memory （Dest_color）.
この実例的な擬似コードでは、ライン１０および２０において、シェイダー１８が、記憶された混合カラー値および累積不透明値をゼロに初期化する。ライン３０において、ディスプレイ８上のピクセルとコロケートしているコロケート平面ピクセルを含む識別された各平面に関して、シェイダー１８はライン５０から１８０の命令を実施する。
【００９６】
ライン５０から７０において、シェイダー１８は、コロケート平面ピクセルが最新の平面内に位置していることを確実にする。ライン９０および１００において、シェイダー１８は、記憶デバイス１２またはＧＰＵ６の内部にあるメモリからコロケートピクセルのピクセル値を読み出す。ライン１１０および１２０において、シェイダー１８は、コロケート平面ピクセルのカラー値を、記憶された混合カラー値と混合し、混合カラー値を更新する。ライン１３０および１４０において、シェイダー１８は、コロケート平面ピクセルの不透明値を用いて、累積不透明値を更新する。
【００９７】
ライン１６０および１７０において、シェイダー１８は、累積不透明値が、不透明値しきい値を超えているか、あるいはそれに等しいかどうかを判定する。実例的な擬似コードにおいて、不透明値しきい値は不透明度１００％である。累積不透明値が不透明値しきい値を超える、あるいはそれに等しい場合、シェイダー１８はコロケート平面ピクセルの累積および混合を終了する。ライン１９０において、ＧＰＵ６は、今後の提示のために、例えばバッファ１０のようなバッファに混合カラー値を書き込む。
【００９８】
１以上の実例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれら任意の組み合わせで実現されうる。ソフトウェアにおいて実現される場合、機能は、非一時的なコンピュータ可読媒体を備える製造物品上の１以上の命令群またはコードとして記憶されうる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体またはコンピュータデータ記憶媒体を含みうる。データ記憶媒体は、本開示において説明される技術の実施のための命令群、コード、および／またはデータ構造を読み出すために、１以上のコンピュータまたは１以上のプロセッサによってアクセスされることができる任意の利用可能な媒体でありうる。限定ではなく実例として、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用されることができ、かつ、コンピュータによってアクセスされることができるその他任意の媒体を含むことができる。ディスク（ｄｉｓｋ）とディスク（ｄｉｓｃ）は、本明細書で使用される場合、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、ブルーレイ（登録商標）ディスクを含む。ここで、ディスク（ｄｉｓｋ）は通常、磁気的にデータを再生し、ディスク（ｄｉｓｃ）はレーザーで光学的にデータを再生する。上記の組み合わせもコンピュータ可読媒体の範囲に含まれるべきである。
【００９９】
コードは、１以上のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいはその他同等の集積または離散ロジック回路のような、１以上のプロセッサによって実行されうる。したがって、本明細書において使用される用語「プロセッサユニット」は、上述された構造のうちの任意のもの、または、本明細書において説明された技術の実施に適したその他任意の構造を指しうる。本明細書において使用される用語「処理ユニット」は、ホストプロセッサ４、ＧＰＵ６、シェイダー１８、またはそれら任意の組み合わせを指しうる。それに加えて、いくつかの態様では、本明細書において説明された機能は、符号化および復号のために構成されるか、または結合したコーデックに組み込まれた、専用ハードウェアおよび／またはソフトウェアモジュール内で提供されうる。更に、この技術は、１以上の回路またはロジック要素において完全に実施されうる。
【０１００】
本開示の技術は、無線ハンドセット、集積回路（ＩＣ）、またはＩＣのセット（例えば、チップセット）を含む多種多様なデバイスまたは装置において実施されうる。様々な構成要素、モジュール、またはユニットが、開示される技術を実行するように構成されたデバイスの機能的態様を強調するために本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。むしろ、上記に説明されたように、様々なユニットが、コーデックハードウェアユニットにおいて組み合わせられるか、または、適切なソフトウェアおよび／またはファームウェアと併せて、上述されたような１以上のプロセッサを含む、インターオペラティブ（interoperative）ハードウェアユニットの集合によって提供されうる。
【０１０１】
様々な実例が説明されている。これらとその他の実例とが、以下の特許請求の範囲のスコープに含まれる。
【図１】
2013541032.tif 000003
【図２】
2013541032.tif 000004
【図３】
2013541032.tif 000005
【図４】
2013541032.tif 000006
【国際調査報告】
2013541032.tif 000007
2013541032.tif 000008