(57)【特許請求の範囲】
【請求項１】
２次元（２Ｄ）イメージを３次元（３Ｄ）モデルデータからレンダリングするためのデバイスであって、
シェーディングピクセルによりカバーされる２Ｄスクリーン画像の第１の領域内の３Ｄモデルから派生した前記２Ｄスクリーン画像の第１の可視プリミティブをクリッピングして、前記第１の領域と前記第１の可視プリミティブとの交点を表す第１のポリゴンを形成するクリッピングコンポーネントと、
前記第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを、前記第１のポリゴンの各頂点に対して補間するための第１の補間コンポーネントと、
前記第１のポリゴンの前記複数の頂点の複数の色値を、前記２Ｄスクリーン画像のスクリーンピクセルによりカバーされる第２の領域内のポイントに対して補間するための第２の補間コンポーネントとを備え、
前記第２の領域は、前記第１の領域より小さく、前記第１の領域と少なくとも部分的に一致する、デバイス。
【請求項２】
前記ポイントは、前記スクリーンピクセルの中心に位置し、
前記デバイスは、多数のポリゴンの各ポリゴンの複数の境界に対する前記ポイントの前記位置に基づいて、前記クリッピングコンポーネントにより形成される前記多数のポリゴンの複数の頂点から前記第１のポリゴンの前記複数の頂点を選択し、前記少なくとも１つのアトリビュートを、前記第１のポリゴンの前記複数の頂点から補間するシェーディングコンポーネントを備え、
前記多数のポリゴンは、前記第１のポリゴンを含む、請求項１に記載のデバイス。
【請求項３】
前記ポイントは、前記スクリーンピクセル内に収まるサンプルの位置と一致し、
前記サンプルは、前記第１の可視プリミティブのラスタライズにおいて使用される、請求項１に記載のデバイス。
【請求項４】
前記第１のポリゴンの前記複数の頂点の前記複数の色値を、前記第１のポリゴンの前記複数の頂点に対して補間される前記少なくとも１つのアトリビュートから派生させるためのシェーディングコンポーネントを備える、請求項１に記載のデバイス。
【請求項５】
前記クリッピングコンポーネントは、前記第１の領域内の前記２Ｄスクリーン画像の第２の可視プリミティブをクリッピングして、前記第１の領域と前記第２の可視プリミティブとの交点を表す第２のポリゴンを形成し、
前記第２のポリゴンは、前記第１のポリゴンとエッジの少なくとも一部を共有する、請求項１に記載のデバイス。
【請求項６】
前記第１のポリゴンの頂点は、前記シェーディングピクセルの境界に沿った位置を前記第２のポリゴンの頂点と共有する、請求項５に記載のデバイス。
【請求項７】
前記３Ｄモデルの複数のプリミティブをラスタライズして、前記２Ｄスクリーン画像において可視の多数の可視プリミティブを識別するためのラスタライズコンポーネントを備え、前記多数の可視プリミティブは、前記第１の可視プリミティブを含む、請求項１に記載のデバイス。
【請求項８】
前記スクリーン画像を提示するディスプレイを備える、請求項１に記載のデバイス。
【請求項９】
２次元（２Ｄ）イメージを３次元（３Ｄ）モデルデータからレンダリングするためのデバイスであって、
シェーディングピクセルによりカバーされる２Ｄスクリーン画像の領域内で３Ｄモデルから派生した前記２Ｄスクリーン画像の第１の可視プリミティブおよび第２の可視プリミティブをクリッピングして、前記シェーディングピクセルによりカバーされる前記領域と前記第１の可視プリミティブとの交点を表す第１のポリゴンを形成し、前記シェーディングピクセルによりカバーされる前記領域と前記第２の可視プリミティブとの交点を表す第２のポリゴンを形成するためのクリッピングコンポーネントと、
前記第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを前記第１のポリゴンの各頂点に対して補間し、前記第２の可視プリミティブの複数の頂点の前記少なくとも１つのアトリビュートを前記第２のポリゴンの各頂点に対して補間する第１の補間コンポーネントと、
前記第１のポリゴンの前記複数の頂点の複数の色値を前記２Ｄスクリーン画像の第１のスクリーンピクセルによりカバーされる領域内の第１のポイントに対して補間し、前記第２のポリゴンの前記複数の頂点の複数の色値を前記２Ｄスクリーン画像の第２のスクリーンピクセルによりカバーされる領域内の第２のポイントに対して補間する第２の補間コンポーネントとを備え、
前記第１のスクリーンピクセルおよび前記第２のスクリーンピクセルによりカバーされる複数の前記領域の各々は、前記シェーディングピクセルによりカバーされる前記領域と一致する、デバイス。
【請求項１０】
前記第１のポイントは、前記第１のスクリーンピクセルの中心に位置し、
前記第２のポイントは、前記第２のスクリーンピクセルの中心に位置し、
前記第２の補間コンポーネントは、多数のポリゴンの各ポリゴンの複数の境界に対する前記第１のポイントの前記位置に基づいて、前記クリッピングコンポーネントにより形成される前記多数のポリゴンの複数の頂点から前記第１のポリゴンの前記複数の頂点を選択し、前記少なくとも１つのアトリビュートを、前記第１のポリゴンの前記複数の頂点から前記第１のポイントに対して補間し、前記多数のポリゴンの各ポリゴンの複数の境界に対する前記第２のポイントの前記位置に基づいて、前記多数のポリゴンの複数の頂点から前記第２のポリゴンの前記複数の頂点を選択し、前記少なくとも１つのアトリビュートを、前記第２のポリゴンの前記複数の頂点から前記第２のポイントに対して補間し、
前記多数のポリゴンは、前記第１のポリゴンおよび前記第２のポリゴンを含む、請求項９に記載のデバイス。
【請求項１１】
前記第２の可視プリミティブは、前記第１の可視プリミティブとエッジの少なくとも第１の部分を共有する、請求項９に記載のデバイス。
【請求項１２】
前記クリッピングコンポーネントは、前記第１のポリゴンおよび前記第２のポリゴンが前記エッジの少なくとも第２の部分を共有することを可能にするように、前記第１の可視プリミティブおよび前記第２の可視プリミティブをクリッピングする、請求項１１に記載のデバイス。
【請求項１３】
前記クリッピングコンポーネントは、前記第１のポリゴンの頂点が前記シェーディングピクセルの境界に沿った位置を前記第２のポリゴンの頂点と共有することを可能にするように、前記第１の可視プリミティブおよび前記第２の可視プリミティブをクリッピングする、請求項１２に記載のデバイス。
【請求項１４】
前記スクリーン画像を表すスクリーン画像データを別のデバイスに送信するためのインターフェースを備える、請求項９に記載のデバイス。
【請求項１５】
前記スクリーン画像の平面の向きの表示を別のデバイスから受信するためのラスタライズコンポーネントを備える、請求項１４に記載のデバイス。
【請求項１６】
２次元（２Ｄ）イメージを３次元（３Ｄ）モデルデータからレンダリングするためのコンピュータ実装方法であって、
シェーディングピクセルによりカバーされる２Ｄスクリーン画像の第１の領域内の３Ｄモデルから派生した前記２Ｄスクリーン画像の第１の可視プリミティブをクリッピングして、前記第１の領域と前記第１の可視プリミティブとの交点を表す第１のポリゴンを形成する段階と、
前記第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを、前記第１のポリゴンの各頂点に対して補間する段階と、
前記第１のポリゴンの前記複数の頂点の複数の色値を、前記２Ｄスクリーン画像のスクリーンピクセルによりカバーされる第２の領域内のポイントに対して補間する段階とを備え、
前記第２の領域は、前記第１の領域より小さく、前記第１の領域と少なくとも部分的に一致する、コンピュータ実装方法。
【請求項１７】
前記コンピュータ実装方法は、前記２Ｄスクリーン画像の多数の可視プリミティブの特性に基づいて前記第１の領域のサイズを決定する段階を備え、
前記多数の可視プリミティブは、前記第１の可視プリミティブを含む、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記ポイントは、前記スクリーンピクセルの中心に位置し、
前記コンピュータ実装方法は、多数のポリゴンの各ポリゴンの複数の境界に対する前記ポイントの前記位置に基づいて、クリッピングコンポーネントにより形成される前記多数のポリゴンの複数の頂点から前記第１のポリゴンの前記複数の頂点を選択し、前記少なくとも１つのアトリビュートを、前記第１のポリゴンの前記複数の頂点から補間する段階を備え、
前記多数のポリゴンは、前記第１のポリゴンを含む、請求項１６に記載のコンピュータ実装方法。
【請求項１９】
前記ポイントは、前記スクリーンピクセル内に収まるサンプルの位置と一致し、
前記サンプルは、前記第１の可視プリミティブのラスタライズにおいて使用される、請求項１６に記載のコンピュータ実装方法。
【請求項２０】
前記コンピュータ実装方法は、前記第１のポリゴンの前記複数の頂点の前記複数の色値を、前記第１のポリゴンの前記複数の頂点に対して補間される前記少なくとも１つのアトリビュートから派生させる段階を備える、請求項１６に記載のコンピュータ実装方法。
【請求項２１】
前記コンピュータ実装方法は、前記第１の領域内の前記２Ｄスクリーン画像の第２の可視プリミティブをクリッピングして、前記第１の領域と前記第２の可視プリミティブとの交点を表す第２のポリゴンを形成する段階を備え、
前記第２のポリゴンは、前記第１のポリゴンとエッジの少なくとも一部を共有する、請求項１６に記載のコンピュータ実装方法。
【請求項２２】
前記第１のポリゴンの頂点は、前記シェーディングピクセルの境界に沿った位置を前記第２のポリゴンの頂点と共有する、請求項２１に記載のコンピュータ実装方法。
【請求項２３】
前記コンピュータ実装方法は、前記スクリーン画像を表すスクリーン画像データを別のデバイスに送信する段階を備える、請求項１６に記載のコンピュータ実装方法。
【請求項２４】
前記コンピュータ実装方法は、前記３Ｄモデルの複数のプリミティブをラスタライズして、前記２Ｄスクリーン画像において可視の多数の可視プリミティブを識別する段階を備え、前記多数の可視プリミティブは、前記第１の可視プリミティブを含む、請求項１６に記載のコンピュータ実装方法。
【請求項２５】
コンピュータに、請求項１６〜２４のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【請求項２６】
請求項２５に記載のコンピュータプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
３次元（３Ｄ）モデルからの２次元（２Ｄ）のコンピュータ生成画像（ＣＧＩ）のレンダリングは、かつては比較的特化したコンピュータベースの機能の実行の一部としてのみ行われたが、コンピューティングデバイスを動作させる更に多くの態様においてますます使用されるようになっている。具体的には、ビデオゲームは、そのような複数の画像の最も普及した使用を示し続けるが、これらの使用は、複数のウェブサイトにおいてデバイスの更に増大するアレイにおけるグラフィカルユーザインターフェース（ＧＵＩ）の一部として定着し始めている。
【０００２】
グラフィックスレンダリングハードウェアの設計における進歩およびレンダリングアルゴリズムの効率性における向上により、３Ｄモデルに基づいたＣＧＩの使用におけるこの増大の多くを可能にしたが、これらの進歩および効率性の向上は、携帯デバイスにおいて典型的な処理リソースおよび電源における限界に完全に対処するには十分ではない。具体的には、画像におけるオブジェクトに色およびテクスチャを提供するグラフィックスプリミティブをシェーディングする作業は、相当な処理リソースを要求し続け、この処理リソースは更に、複数の携帯デバイスにおいて通常見られる複数のバッテリおよび／または他の電源により与えられる電源の限界に対して相当な要求をする。更に、複数の携帯デバイスに組み込まれた複数のディスプレイのピクセル解像度は、向上し続けるので、処理および電力の要求においてなされる低減は、そのような解像度の増大により生じるシェーディングの量における急激な増加に圧倒されている。
【０００３】
実行されるシェーディングの量を直接に低減することを試みることにより、電源に対するこれらの増大する要求に少なくとも限度を設けるように、これまで努力がなされた。しかし、そのようなアプローチは、補間計算の実行の最中に外挿が行われることが増えるなど、不正確または正しくない情報が入力としてシェーディングに導入される例を増加させている。そのような不正確または正しくない情報は、「ツインクル（ｔｗｉｎｋｌｉｎｇ）」ピクセルカラーのような複数の視覚的アーティファクトの導入、複数のプリミティブから構成されるオブジェクトの湾曲面にわたる複数の色移行部における滑らかさの欠如、および／または誤配置されたシャドー境界を頻繁にもたらす。
【図面の簡単な説明】
【０００４】
【図１】グラフィックスレンダリングシステムの例示的な実施形態を図示する。
【図２】グラフィックスレンダリングシステムの代替の例示的な実施形態を図示する。
【図３】例示的な実施形態の一部を図示する。
【図４】３Ｄモデルのラスタライズの例示的な実施形態を図示する。
【図５】ポリゴンを画定するためのクリッピングの例示的な実施形態を図示する。
【図６】ポリゴンの複数の頂点のアトリビュートを派生させる補間の例示的な実施形態を図示する。
【図７】ポリゴンの複数の頂点をピクセルシェーディングする例示的な実施形態を図示する。
【図８】スクリーンピクセルをカラーリングするための補間の例示的な実施形態を図示する。
【図９Ａ】２つ以上のポリゴンを画定するためのクリッピングの例示的な実施形態を図示する。
【図９Ｂ】２つ以上のポリゴンを画定するためのクリッピングの例示的な実施形態を図示する。
【図１０】一実施形態によるロジックフローを図示する。
【図１１】一実施形態によるロジックフローを図示する。
【図１２】一実施形態による処理アーキテクチャを図示する。
【図１３】グラフィックス処理システムの別の代替的な実施形態を図示する。
【図１４】デバイスの一実施形態を図示する。
【発明を実施するための形態】
【０００５】
様々な実施形態は、概ね、スクリーン画像の複数のスクリーンピクセルより粗い複数のシェーディングピクセルによるシェーディングを通じて、２Ｄスクリーン画像を３Ｄモデルからレンダリングするときに複数の可視プリミティブをシェーディングする処理要求を減らしつつ、視覚的アーティファクトも最小化する複数の技術を対象にする。ラスタライズの後に、個別の複数のシェーディングピクセルによりカバーされる領域と複数の可視プリミティブとの交点を表す複数のポリゴンを画定するべく、複数の可視プリミティブのクリッピングは、シェーディングピクセルの各々の内側で実行される。複数の可視プリミティブの頂点におけるアトリビュートは、複数のポリゴンの頂点に対して補間され、次に、ピクセルシェーディングは、複数のポリゴンの頂点におけるアトリビュートを用いて実行され、複数のポリゴンの頂点における複数の色を派生させる。次に、複数のポリゴンの頂点における複数の色は、複数のスクリーンピクセルの色を派生させるべく補間される。
【０００６】
いくつかの実施形態において、ラスタライズは、スクリーン画像の各スクリーン画像ピクセルに割り当てられた１つのサンプル（例えば、各スクリーン画像ピクセルの中央の１つのサンプル）のみを使用して、複数のスクリーン画像ピクセルの位置でスクリーン画像の視点から可視の３Ｄモデルのプリミティブの複数の部分を識別し得る。複数の他の実施形態において、ラスタライズは、スーパーサンプリング、確率的サンプリング、マルチサンプリング等を含む、可視の３Ｄモデルの複数のプリミティブの複数の部分をそのように識別するべく、スクリーン画像の各スクリーン画像ピクセルに割り当てられた複数のスクリーン画像サンプルが存在する様々な複数のタイプのサンプリングのいずれかを使用し得る。ラスタライズの前に、頂点シェーディングは、複数のプリミティブの各々の複数の頂点の各々に対する複数のアトリビュートを派生させるように実行され得る。当業者には既知であるように、３Ｄモデルの複数のオブジェクトが生成される態様に応じて、プリミティブは全て、三角形であってもよく、または異なる複数のタイプのポリゴンの組み合わせであってもよい。しかし、各プリミティブの形状に関係なく、各プリミティブの全ての部分は、単一平面内に存在しなければならない。複数の相対位置を含むプリミティブの複数の頂点のアトリビュートは、当該プリミティブおよびそれが存在する平面を画定し得る。
【０００７】
複数のシェーディングピクセルが複数のスクリーンピクセルより粗く、従って各シェーディングピクセルが各スクリーンピクセルより大きな領域をカバーする複数のシェーディングピクセルのグリッドは、スクリーン画像の複数のスクリーンピクセルのグリッドと一致し得る。いくつかの実施形態において、複数のシェーディングピクセルは、それらの境界がスクリーンピクセルの境界と一致し、従って各シェーディングピクセルがスクリーンピクセルの整数倍に対応する（例えば、各シェーディングピクセルは、複数のスクリーンピクセルうちの４つに対応し得る）ように画定され得る。ラスタライズの後に、クリッピングは、各シェーディングピクセルの領域と、当該シェーディングピクセル内で可視のプリミティブの一部によりカバーされる各シェーディングピクセル内の領域との交点を表す各シェーディングピクセル内で、１または複数のポリゴンを派生させるべく使用され得る。要するに、各可視プリミティブは、シェーディングピクセル内のそのような交点を各々表す１または複数のポリゴンに分割される。
【０００８】
クリッピングの後に、各可視プリミティブの複数の頂点のアトリビュートは、複数のポリゴンの各々の頂点に対して補間され、当該プリミティブは、これらのポリゴンに分割されており、それらのポリゴンの頂点における複数のアトリビュートを派生させる。次に、ピクセルシェーディングは、複数のポリゴンの各々の複数の頂点の各々において実行され、複数のポリゴンの各々の頂点に対する複数の色値を派生させる。
【０００９】
複数のポリゴンの複数の頂点におけるピクセルシェーディングの後に、複数のポリゴンの頂点における複数の色値は、複数のスクリーンピクセルに対する色値を派生させるように補間される。いくつかの実施形態において、どの頂点がどのスクリーンピクセルに対して色値を補間するときに使用されるかは、複数のポリゴンの境界に対する各スクリーンピクセルの中心の位置に基づき得る。異なる述べ方をすれば、特定のスクリーンピクセルの中心が特定のポリゴンの複数の境界内に収まる場合、当該特定のポリゴンの複数の頂点における色値は、当該特定のスクリーンピクセルの色値を派生させるように補間される。しかし、複数の他の実施形態において、各ポリゴンの複数の頂点における色値は、当該ポリゴン内に収まるスクリーン画像の各サンプルの色値を派生させるように補間され、各スクリーンピクセル内に収まる複数のサンプルの色値は、当該スクリーンピクセルの色を派生させるように平均される。複数のポリゴンの頂点からの複数の色値の補間が複数のスクリーンピクセルの中心に対するものか、または、次に平均するスクリーン画像の複数のサンプルに対するものか否かに関係なく、複数のポリゴンの頂点における他のアトリビュートもそのように補間され得る。
【００１０】
本明細書において用いられる複数の表記および用語を一般的に参照することにより、以下の詳細な説明の複数の部分は、コンピュータまたは複数のコンピュータのネットワーク上で実行されるプログラム手順の観点から提示される場合がある。これらの手順上の説明および表現は、当業者により、その作業の本質を他の当業者に最も効率的に伝えるべく用いられるものである。ここにおいて、また一般に、手順は、所望の結果をもたらす首尾一貫した一連の動作であると考えられる。これらの動作は、物理的量の物理的操作を必要とするものである。必ずしもではないが通常、これらの量は、格納され、転送され、組み合わされ、比較され、そうでなければ操作されることができる電気、磁気または光信号の形態を取る。主に共通に使用するという理由から、これらの信号をビット、値、要素、記号、文字、用語、数字等として言及することが好都合であると判明する場合がある。しかし、これらおよび類似の用語の全ては、適切な複数の物理的量に関連し、それらの量に適用される単に便宜的な符号であることに留意されたい。
【００１１】
更に、これらの操作は多くの場合、追加または比較等の用語において言及され、これらは通常、ヒューマンオペレータにより実行される頭脳上の動作に関連する。
【００１２】
しかし、１または複数の実施形態の一部を形成する本明細書において説明される複数の動作のいずれにおいて、ほとんどの場合に、ヒューマンオペレータのそのような能力は必要とされないか、または所望でない。むしろ、これらの動作は、機械的動作である。様々な実施形態の複数の動作を実行するための有用な複数の機械は、本明細書の教示に従って書き込まれる内部に格納されたコンピュータプログラムにより選択的にアクティブ化または構成されるような汎用デジタルコンピュータを含み、および／または要求される目的のために特別に構築される装置を含む。また、様々な実施形態は、これらの動作を実行するための複数の装置またはシステムに関する。これらの装置は、要求される目的のために特別に構築され得、または汎用コンピュータを含み得る。これらの様々な機械に必要とされる構造は、提供される説明から明らかになるであろう。
【００１３】
ここで図面を参照する。同一の符号は、全体を通して同一の要素を指すべく用いられる。本明細書の以下において、説明を目的として、多数の具体的な詳細は、その完全な理解を提供するべく記載される。しかし、新規な複数の実施形態は、これらの具体的な詳細を用いることなく実施され得ることが明らかな場合がある。他の複数の例において、周知の複数の構造体およびデバイスは、その説明を容易にするべくブロック図の形態で示される。この意図は、特許請求の範囲内の全ての修正形態、均等物、および代替形態を包含することである。
【００１４】
図１は、ソースデバイス３００、コンピューティングデバイス５００、および表示デバイス７００のうちの１または複数を組み込むグラフィックスレンダリングシステム１０００の一実施形態のブロック図を図示する。コンピューティングデバイス５００は、スクリーン画像８８０の２Ｄ平面上に投影される３次元（３Ｄ）モデル２８０の２次元（２Ｄ）スクリーン画像８８０を生成する。コンピューティングデバイス５００は、ソースデバイス３００から、画定される３Ｄ空間内の１または複数のオブジェクトの３Ｄモデル２８０を表す３Ｄモデルデータ３３０を受信し得る。３Ｄモデルデータ３３０は、モデル２８０の１または複数のオブジェクトを構成するプリミティブ、および／またはそれらのプリミティブのアトリビュートを直接に指定し得るか、またはそれらのプリミティブおよび／またはそれらのアトリビュートの派生を可能にするのに十分な情報を含み得るかのいずれかである。
【００１５】
スクリーン画像８８０の生成後に、コンピューティングデバイス５００は、ディスプレイ５８０上にスクリーン画像８８０を提示し、および／またはスクリーン画像８８０を表すスクリーン画像データ７３０を、ディスプレイ７８０上に提示される表示デバイス７００に送信し得る。スクリーン画像データ７３０は、スクリーン画像８８０における各ピクセルの色が様々なフォーマットのいずれかでエンコードされ得るスクリーン画像８８０のビットマップを含み得る。いくつかの実施形態において、スクリーン画像８８０のピクセル解像度は、ディスプレイ５８０および／またはディスプレイ７８０のピクセル解像度に一致するように選択され得る。現に、いくつかの実施形態において、表示デバイス７００は、ディスプレイ７８０のピクセル解像度の表示をコンピューティングデバイス５００に提供し、スクリーン画像８８０のピクセル解像度がディスプレイ７８０のピクセル解像度に一致するように設定されることを可能にし得る。
【００１６】
これらのコンピューティングデバイスの各々は、デスクトップコンピュータシステム、データエントリ端末、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、ハンドヘルド携帯情報端末、スマートフォン、スマートグラス、スマートリストウォッチ、デジタルカメラ、衣類に組み込まれる身体着用コンピューティングデバイス、車両（例えば、自動車、自転車、車椅子等）に統合されるコンピューティングデバイス、サーバ、サーバのクラスタ、サーバファーム等を含むが、これらに限定されない様々なタイプのコンピューティングデバイスのいずれかであり得る。
【００１７】
図示されるように、これらのコンピューティングデバイス３００、５００、および７００は、ネットワーク９９９を介して３Ｄモデルおよび／または２Ｄスクリーン画像を表すデータを搬送する複数の信号を交換する。しかし、これらのコンピューティングデバイスのうちの１または複数は、ネットワーク９９９を介して、３Ｄモデルから２Ｄ画像をレンダリングすることに全く無関係の他のデータを、互いにおよび／または更に他の複数のコンピューティングデバイス（図示せず）と交換し得る。様々な実施形態において、ネットワークは、場合によっては単一の建物または他の比較的限定された領域内に広がることに限定された単一のネットワーク、場合によっては相当な距離にわたって広がる接続ネットワークの組み合わせであってもよく、および／またはインターネットを含み得る。従って、ネットワーク９９９は、電気的および／または光学的に伝導性のケーブル配線を使用する複数の有線技術、および赤外線、無線周波数、または他の複数の形態の無線送信を使用する複数の無線技術を含むが、これらに限定されない、信号が交換され得る様々な通信技術（または組み合わせ）のいずれかに基づいてもよい。
【００１８】
様々な実施形態において、コンピューティングデバイス５００は、プロセッサコンポーネント５５０、ストレージ５６０、ディスプレイ５８０、コントローラ６００、およびコンピューティングデバイス５００をネットワーク９９９に結合するインターフェース５９０のうちの１または複数を組み込む。ストレージ５６０は、制御ルーチン５４０、３Ｄモデルデータ３３０、および制御データ３３５のうちの１または複数を格納する。コントローラ６００は、プロセッサコンポーネント６５０およびストレージ６６０のうちの１または複数を組み込む。ストレージ６６０は、制御ルーチン６４０、可視プリミティブデータ６３２、ポリゴンデータ６３３、シェーディングされたポリゴンデータ６３５、アトリビュート付きポリゴンデータ６３６、サンプルカラーデータ６３７、およびスクリーン画像データ７３０のうちの１または複数を格納する。
【００１９】
制御ルーチン５４０は、コンピューティングデバイス５００のメインプロセッサコンポーネントとして様々な機能を実行するロジックを実装するという役割に、プロセッサコンポーネント５５０上で動作可能な複数の命令のシーケンスを組み込む。制御ルーチン５４０を実行するときに、プロセッサコンポーネント５５０は、ネットワーク９９９を介して３Ｄモデルデータ３３０をソースデバイス３００から受信し得、３Ｄモデル２８０の少なくとも一部を表す３Ｄモデルデータ３３０の少なくとも一部をストレージ５６０に格納し得る。３Ｄモデルデータ３３０は、複数の２Ｄ画像の生成または送信を含む、いずれかの使用が行われる前に、相当な期間、ストレージ５６０に格納されてもよいことに留意されたい。スクリーン画像８８０を表すスクリーン画像データ７３０の生成後に、プロセッサコンポーネント５５０は、表示用のディスプレイ５８０上に画像８８０を視覚的に提示し、および／またはスクリーン画像８８０が表示用のディスプレイ７８０上に提示されることを可能にするべく、スクリーン画像データ７３０を表示デバイス７００に送信し得る。
【００２０】
いくつかの実施形態において、プロセッサコンポーネント５５０は、スクリーン画像８８０を３Ｄモデル２８０から生成するときに使用するための様々な構成パラメータの複数の表示を受信し得る。例えば、スクリーン画像８８０がディスプレイ７８０上に提示するための表示デバイス７００に送信される複数の実施形態において、ディスプレイ７８０のピクセル解像度、カラーデプス、フレームレート、および／または他の複数のパラメータの複数の表示は、表示デバイス７００から（例えば、ネットワーク９９９を介して）受信され得る。別の例として、３Ｄモデル２８０に対するスクリーン画像８８０の平面および／または境界の位置および／または向きの複数の表示は、ネットワーク９９９を介して表示デバイス７００から、および／または更に別のデバイス（図示せず）から受信され得る。プロセッサコンポーネント５５０は、そのような複数のパラメータの表示を、スクリーン画像８８０を生成するときにプロセッサコンポーネント６５０によって使用するための制御データ３３５の一部として格納し得る。あるいは、または更に、ピクセル解像度の表示は、ディスプレイ７８０ではなく、ディスプレイ５８０によるものであってもよい。
【００２１】
制御ルーチン６４０は、コンピューティングデバイス５００におけるコントローラ６００のコントローラプロセッサコンポーネントとして様々な機能を実行するロジックを実装するという役割に、プロセッサコンポーネント６５０上で動作可能な複数の命令のシーケンスを組み込む。評価ルーチン６４０を実行するときに、プロセッサコンポーネント６５０は、３Ｄモデル２８０を表す３Ｄモデルデータ３３０から、スクリーン画像８８０を表すスクリーン画像データ７３０を生成する。より正確には、プロセッサコンポーネント６５０は、スクリーン画像８８０を３Ｄモデル２８０の２Ｄ投影として、スクリーン画像８８０の平面上にレンダリングする。図３は、スクリーン画像８８０を表すスクリーン画像データ７３０を、３Ｄモデル２８０を表す３Ｄモデルデータ３３０からそのように生成する例示的な実施形態を図示する。図示されるように、制御ルーチン６４０は、ラスタライズコンポーネント６４２、シェーディング・クリッピング・コンポーネント６４３、アトリビュート補間コンポーネント６４５、ピクセルシェーディングコンポーネント６４６、色補間コンポーネント６４７、および平均コンポーネント６４８のうちの１または複数を組み込み得る。制御ルーチン６４０を実行するときに、プロセッサコンポーネント６５０は、制御ルーチン６４０のコンポーネント６４２、６４３、６４５、６４６、６４７、および６４８のうちの１または複数を実行し得る。
【００２２】
ラスタライズコンポーネント６４２は、制御データ３３５から、３Ｄモデル２８０の１もしくは複数のオブジェクトに対するスクリーン画像８８０の平面の位置および向き、ならびに／または当該平面内のスクリーン画像８８０の複数の境界の表示を取得し得る。次に、ラスタライズコンポーネント６４２は、スクリーン画像８８０のピクセル毎に複数のサンプルを用いて３Ｄモデル２８０の１または複数のオブジェクトのグラフィックスプリミティブをラスタライズするときに当該表示を使用して、それらのプリミティブのどれが、スクリーン画像８８０において少なくとも部分的に可視の可視プリミティブであるかを判断し得る。図４は、そのようなラスタライズの一例の複数の態様をより詳細に図示する。図示されるように、３Ｄモデルデータ３３０は、サイズ、形状、位置、および／または向き等、３Ｄモデル２８０のプリミティブ２８２の様々な特性の複数の表示を含むプリミティブデータ３３２を組み込み得る。既に検討されたように、各プリミティブ２８２は、様々なタイプのポリゴンのいずれかであり得、それらの各々は、単一平面内に延在する。しかし、やはり既に検討されたように、典型的３Ｄモデルの複数のプリミティブの（全てではないにしても）大部分は、三角形である。
【００２３】
３Ｄモデル２８０のどのプリミティブ２８２が、スクリーン画像８８０において少なくとも部分的に可視の可視プリミティブ８８２でもあるかを判断するラスタライズを実行するときに、ラスタライズコンポーネント６４２は、スクリーン画像８８０のスクリーン画像ピクセル８８５毎に、多数のスクリーン画像サンプル８８８（視覚的に見やすくするためにそれらのうちの１つのみが図示される）を３Ｄモデル２８０に向かって投影し得る。スクリーン画像サンプル８８８をそのように投影するときに、様々なサンプリング技術のいずれかが、１スクリーン画像ピクセル８８５当たりのスクリーン画像サンプル８８８の数量を選択するとき、および各スクリーン画像ピクセル８８５によりカバーされる領域内の複数のスクリーン画像サンプル８８８の位置を選択するときに用いられ得る。そのような複数の技術としては、スーパーサンプリング、マルチサンプリング、および／または確率的サンプリングが挙げられるが、これらに限定されない。各スクリーン画像サンプル８８８が（スクリーン画像８８０の平面から、これに鉛直に延在する線のように）３Ｄモデル２８０に向かって投影されると、各スクリーン画像サンプル８８８が対面する３Ｄモデル２８０の第１のプリミティブ２８２は、スクリーン画像８８０において少なくとも部分的に可視の可視プリミティブ８８２になる。
【００２４】
どの可視プリミティブ８８２がラスタライズにより識別されるかの複数の表示は、可視プリミティブデータ６３２の一部として格納され得る。図示されるように、そのように格納される複数の可視プリミティブ８８２に関する情報の中で、様々なアトリビュートの複数の表示は、可視プリミティブ８８２の各々における複数の頂点８８３の各々に関連付けられ得る。格納された複数のアトリビュートとしては、複数の頂点の位置、鉛直のベクトル、複数のマテリアルの仕様、スクリーン画像８８０の平面に対する複数のデプス等のうちの１または複数が挙げられ得るが、これらに限定されない。いくつかの実施形態において、可視プリミティブデータ６３２は、「ジオメトリバッファ」（Ｇバッファ）と称され得る。
【００２５】
図３に戻ると、ラスタライズコンポーネント６４２により実行されるラスタライズの後に、シェーディング・クリッピング・コンポーネント６４３は、可視プリミティブ８８２の各々を、各々が可視プリミティブ８８２とシェーディングピクセルとの交点を表す１または複数のポリゴンに分割して、後続のピクセルシェーディングにおいて使用するための複数の頂点を派生させ得る。図５は、例示的な可視プリミティブ８８２のそのような分割の複数の態様をより詳細に図示する。より具体的には、後続のピクセルシェーディング中に使用される複数のシェーディングピクセル６８５のより粗いグリッドは、ラスタライズ中に使用される複数のスクリーンピクセル８８５のグリッド上にスーパーインポーズされる。図示されるように、複数のシェーディングピクセル６８５の各々は、複数のスクリーンピクセル８８５より大きな領域をカバーし得る。また、複数のシェーディングピクセル６８５の境界は、複数のスクリーンピクセル８８５の境界の少なくとも１つのサブセットと位置合わせされ得、従って、複数のシェーディングピクセル６８５のうちの１つによりカバーされる領域は、複数のスクリーンピクセル８８５の整数倍によりカバーされる領域と重なり合う（例えば、図示されるように、各シェーディングピクセル６８５は、複数のスクリーンピクセル８８５のうちの４つの領域に対応し、これをカバーする）。複数のシェーディングピクセル６８５とスクリーンピクセル８８５との間の位置および領域における対応関係の特定の態様のそのような図示にも関わらず、複数の境界が位置合わせされず、および／またはシェーディングピクセル６８５によりカバーされる領域がスクリーンピクセル８８５によりカバーされる領域の整数倍でない複数の他の実施形態が可能であることに留意されたい。
【００２６】
いくつかの実施形態において、ピクセル６８５および８８５によりカバーされる複数の境界および／または領域が対応する態様は、構成データ３３５内に格納された表示（例えば、図示されるように、各シェーディングピクセル６８５が複数のスクリーンピクセル８８５のうちの４つの領域をカバーすることを示す表示）により判断され得、当該表示は、シェーディング・クリッピング・コンポーネント６４３により構成データ３３５から取得され得る。複数の他の実施形態において、シェーディング・クリッピング・コンポーネント６４３は、可視プリミティブ８８２の１または複数の特性の分析に基づいて（例えば、複数の可視プリミティブ８８２によりカバーされる平均領域のような統計値に基づいて）、複数のシェーディングピクセル６８５によりカバーされる複数の境界および／または領域を決定するべく、シェーディングピクセル解像度コンポーネント６４３５を含み得る。
【００２７】
複数のスクリーンピクセル８８５に対する複数のシェーディングピクセル６８５のサイズおよび／または境界が決定される態様に関係なく、シェーディング・クリッピング・コンポーネント６４３は、複数のシェーディングピクセル６８５の各々の内側に収まる複数の可視プリミティブ８８２の複数の部分のクリッピングを実行して、各々がシェーディングピクセル６８５によりカバーされる領域と当該シェーディングピクセル６８５内に収まる可視プリミティブ８８２の一部との交点を表す複数のポリゴン６８２を派生させ得る。より具体的には、図示されるように、ラスタライズコンポーネント６４２により先に識別された例示的な可視プリミティブ８８２は、色値が求められる例示的なスクリーンピクセル８８５（強調表示される）に対応する例示的なシェーディングピクセル６８５（やはり強調表示される）を含む複数のシェーディングピクセル６８５のグリッドとオーバーレイされる。例示的なシェーディングピクセル６８５内で、例示的な可視プリミティブ８８２のクリッピングは、例示的なシェーディングピクセル６８５の複数のコーナー部のうちの２つの近傍で実行され、例示的なシェーディングピクセル６８５によりカバーされる複数の領域と例示的なシェーディングピクセル６８５内に収まる例示的な可視プリミティブ８８２の一部との交点により画定される形状を有する例示的なポリゴン６８２（やはり強調表示される）を画定する。
【００２８】
いくつかの実施形態において、シェーディング・クリッピング・コンポーネント６４３は、クリッピングを制御するべく、各可視プリミティブ８８２上に重心座標系を生成し得る。当業者に既知であるように、重心座標系は、複数の頂点の相対的位置、複数の頂点の間に延在する各セグメントの中心、および／またはポリゴンの重心に基づいている。更に、少なくとも複数の凸多角形内において、重心座標系は、専ら非負の座標値を有する全ポイントをポリゴンのエッジまたはポリゴン内のいずれかにあるとして規定し、任意の負の座標値を有する全ポイントをポリゴン外部にあるものとして規定する。従って、シェーディング・クリッピング・コンポーネント６４３が可視プリミティブ８８２毎に重心座標系を生成する複数の実施形態において、シェーディング・クリッピング・コンポーネント６４３は次に、シェーディングピクセル６８５内における可視プリミティブ８８２のエッジの複数の位置を識別することの一部として、任意の負の座標値に対して制限を課し、クリッピングが当該シェーディングピクセル６８５内のどこで行われるべきかを決定し得る。
【００２９】
クリッピングをどこで実行して各ポリゴン６８２を生成するかについての決定が行われる態様に関係なく、シェーディング・クリッピング・コンポーネント６４３は、そのようなクリッピングによりシェーディングピクセル６８５の各々の内側に画定され得る各ポリゴン６８２によりカバーされる複数の領域の表示を、ポリゴンデータ６３３の一部として格納し得る。いくつかの実施形態において、そのような各ポリゴン６８２の複数のジオメトリは、それらの頂点の位置の表示によりポリゴンデータ６３３内に記載され得る。
【００３０】
図３に戻ると、クリッピングコンポーネント６４３により実行されるクリッピングの後に、アトリビュート補間コンポーネント６４５は、各可視プリミティブ８８２の複数の頂点における１または複数のアトリビュートを、複数のポリゴン６８２の頂点に対して補間し得る。複数の可視プリミティブ８８２は、クリッピングの結果として複数のポリゴン６８２に分割されている。図６は、例示的なプリミティブ８８２の複数の頂点からの複数のアトリビュートを、図５における例示的なポリゴン６８２の複数の頂点に対してそのように補間する一例の態様をより詳細に図示する。より具体的に図６における図示を参照すると、アトリビュート補間コンポーネント６４５は、例示的な可視プリミティブ８８２の複数の頂点８８３の各々の１または複数のアトリビュートを、例示的なポリゴン６８２の複数の頂点６８３の各々に対して補間する。これを行うときに、アトリビュート補間コンポーネント６４５は、例示的な可視プリミティブ８８２の複数の頂点８８３のアトリビュートの表示を可視プリミティブデータ６３２から取得してもよく、例示的なポリゴン６８２の複数の頂点６８２の位置の表示をポリゴンデータ６３３から取得してもよい。
【００３１】
アトリビュート補間コンポーネント６４５によって例示的な可視プリミティブ８８２の複数の頂点８８３の各々における１または複数のアトリビュートから例示的なポリゴン６８２の複数の頂点６８３へと補間を実行することにより、複数の頂点８８３からの補間が例示的な可視プリミティブ８８２の外側の１または複数の位置に対して行われる外挿の複数の例を回避する。プリミティブの複数の頂点の各々から当該プリミティブの外側の位置へと複数のアトリビュートを補間することは、論理的に一貫性がないと考えられ得る。なぜなら、当該プリミティブの複数のアトリビュートが何も存在し得ないか、または全く異なる複数のアトリビュートを有する別のプリミティブが存在し得る位置であり得るものに対する任意の適用可能性を有するという固有の前提に対する根拠が存在し得ないからである。例として、例示的な可視プリミティブ８８２の複数の頂点８８３における複数の色値から例示的な可視プリミティブ８８２の外側の位置へと補間することは、意味がない可能性がある。なぜなら、色値を与えられる位置に何も存在しない場合があり、または当該位置に全く異なる色を有する異なるプリミティブが存在する場合があるからである。
【００３２】
例示的なポリゴン６８２の複数の頂点６８３は、例示的な可視プリミティブ８８２の外部ではなく、例示的な可視プリミティブ８８２内に存在し、または例示的な可視プリミティブ８８２の複数のエッジのうちの１または複数に沿って存在するかのいずれかであると知られている複数の位置のセットを提供する。結果として、アトリビュート補間コンポーネント６４５による複数の補間は、それらの補間のうちの１または複数が外挿であるリスクなしに、例示的な可視プリミティブ８８２の複数の頂点８８３から例示的なポリゴン６８２の複数の頂点６８３の各々へと実行することができる。これは、そのような補間が例示的な可視プリミティブ８８２の複数の頂点８８３から、例示的なポリゴン６８２が形成されるシェーディングピクセル６８５のコーナー部または当該シェーディングピクセル６８５および１または複数の隣接シェーディングピクセル６８５の中心のいずれかへと実行される他の既知の技術とは対照的である。それらの他の既知の技術の複数のそのような補間は各々、（図５を参照することにより見られ得る）複数の外挿をもたらす。アトリビュート補間コンポーネント６４５は、アトリビュート付きポリゴンデータ６３５の一部として、例示的なポリゴン６８２の複数の頂点６８３の各々について派生する複数のアトリビュートの表示を格納し得る。いくつかの実施形態において、アトリビュート付きポリゴンデータ６３５は、複数の頂点６８３の各々の位置の表示も含み得る。
【００３３】
図３に戻ると、アトリビュート補間コンポーネント６４５により実行される複数のポリゴン６８２の各々の複数の頂点６８３における複数のアトリビュートを派生させるための補間の後に、ピクセルシェーディングコンポーネント６４６は、各ポリゴン６８２の頂点６８３毎に複数の色値を派生させるべく、各ポリゴン６８２の各頂点６８３においてピクセルシェーディングを実行することに対する複数の入力として、各ポリゴン６８２の各頂点６８３において複数のアトリビュートを使用し得る。例えば、例示的なポリゴン６８２の各頂点６８３において、ピクセルシェーディングコンポーネント６４６は、当該頂点６８３において１または複数のアトリビュートを使用して、当該頂点６８３において色を指定する色値を派生させ得る。これを行うときに、ピクセルシェーディングコンポーネント６４６は、例示的なポリゴン６８２の頂点６８３毎に１または複数のアトリビュートの複数の表示を、アトリビュート付きポリゴンデータ６３５から取得し得る。次に、ピクセルシェーディングコンポーネント６４６は、例示的なポリゴン６８２の複数の頂点６８３の各々において色を指定する複数の色値の表示を、シェーディングされたポリゴンデータ６３６の一部として格納し得る。いくつかの実施形態において、シェーディングされたポリゴンデータ６３６は、複数の頂点６８３の各々の位置の表示および／または複数の頂点６８３の各々の複数のアトリビュートも含み得る。
【００３４】
ピクセルシェーディングコンポーネント６４６により実行される複数のポリゴン６８２の各々の複数の頂点６８３においてシェーディングした後、色補間コンポーネント６４７は、各ポリゴン６８２の各頂点において複数の色値を補間して、複数のスクリーンピクセル８８５の色値を派生させ得る。図７は、図５および図６の例示的なポリゴン６８２と一致する例示的なスクリーンピクセル８８５の色値を派生させるためのそのような補間の一例の複数の態様をより詳細に図示する。
【００３５】
色補間コンポーネント６４７により実行される補間は、複数のポリゴン６８２の対応するものの複数の頂点６８３についてピクセルシェーディングコンポーネント６４６により派生した複数の色値から、スクリーン画像８８０のスクリーンピクセル８８５毎に色を指定する色値を少なくとも補間することを含むことに留意されたい。しかし、色補間コンポーネント６４７により実行される補間は、アトリビュート補間コンポーネント６４５によって複数のポリゴン６８２の対応するものの複数の頂点６８３について派生したそれらのアトリビュートを同様に補間することにより、スクリーンピクセル８８５毎に１または複数の他のアトリビュートを派生させることも含み得る。これを行うときに、色補間コンポーネント６４７は、シェーディングされたポリゴンデータ６３６から、複数のポリゴン６８２の複数の頂点６８３の各々において複数の色値および／またはアトリビュートの複数の値の表示を取得し得る。次に、色補間コンポーネント６４７は、スクリーンピクセル８８５について補間により派生した複数の色値および／またはアトリビュートの複数の値を、スクリーン画像データ７３０の一部として格納し得る。各スクリーン画像ピクセル８８５の値は、スクリーン画像データ７３０に格納され、スクリーン画像データ７３０は、スクリーン画像８８０の表現になり得る。
【００３６】
従って、色補間コンポーネント６４７は、ピクセルシェーディングコンポーネント６４６により例示的なポリゴン６８２の複数の頂点６８３の各々について派生した複数の色値を補間して、例示的なスクリーンピクセル８８５について色を指定する色値を派生し得る。同様に、色補間コンポーネント６４７は、ピクセルシェーディングコンポーネント６４６により例示的なポリゴン６８２の複数の頂点６８３の各々について派生した１または複数の他のアトリビュートの複数の値を更に補間して、例示的なスクリーンピクセル８８５についてそれらの１または複数の他のアトリビュートに対する値を派生させ得る。色補間コンポーネント６４７により実行されるこれらの補間が対象とし得る位置は、例示的なスクリーンピクセル８８５の中心であり得る。更に、例示的なスクリーンピクセル８８５は、例示的なスクリーンピクセル８８５の中心が例示的なポリゴン６８２内に収まることの結果として、例示的なポリゴン６８２に対応するものとみなされ得、例示的なポリゴン６８２へのこの形式の対応関係により、例示的なスクリーンピクセル８８５について派生する複数のアトリビュート（色値を含む）が例示的なポリゴン６８２の複数の頂点６８３から補間されることを決定し得る。
【００３７】
ちょうど説明されたように、色補間コンポーネント６４７によるポリゴン６８２の複数の頂点６８３からの複数のスクリーンピクセル８８５の各々の中心に対するそのような補間は、スクリーンピクセル８８５毎に１つのサンプルが存在する複数の実施形態（またはスクリーンピクセル８８５毎の複数の色値の派生がピクセル毎にいくつのサンプルが存在し得るかに関係なく、ピクセル毎のサンプルの数量に基づかない複数の実施形態）において実行され得る。しかし、スクリーンピクセル８８５毎の複数のサンプルがラスタライズ中に使用される複数の実施形態において、色補間コンポーネント６４７は、複数のポリゴンの複数の頂点６８３からそれらのサンプルの各々へと補間し得る。図８は、各スクリーンピクセル８８５の各サンプルに対するそのような補間の一例をより詳細に図示する。
【００３８】
具体的には、図示されるように、例示的なスクリーンピクセル８８５内に収まる４つのサンプル８８８が存在し得、従って色補間コンポーネント６４７は、例示的なポリゴン６８２の複数の頂点６８３における色値および／または複数の他のアトリビュートの値を、例示的なスクリーンピクセル８８５の複数のサンプル８８８の各々に対して補間し得る。これを行うときに、色補間コンポーネント６４７は、サンプル８８８毎にそのように派生するそれらの値の表示を、サンプルカラーデータ６３７の一部として格納し得る。次に、平均コンポーネント６４８は、例示的なスクリーンピクセル８８５の複数のサンプル８８８の各々について補間によりちょうど派生した複数の色値を平均して、例示的なスクリーンピクセル８８５の色値を派生させ得る。平均コンポーネント６４８は、例示的なスクリーンピクセル８８５の複数のサンプル８８８の各々について、やはり補間によりちょうど派生した１または複数の他のアトリビュートの複数の値を更に平均して、例示的なスクリーンピクセル８８５の１または複数の他のアトリビュートの値を派生させ得る。これを行うときに、平均コンポーネント６４８は、例示的なスクリーンピクセル８８５の色値および／または１もしくは複数の他のアトリビュートの値を、スクリーン画像データ７３０の一部として格納し得る。
【００３９】
２Ｄスクリーン画像８８０をレンダリングすることの一部として、３Ｄモデル２８０からスクリーンピクセル８８５に対する少なくとも複数の色値を派生させることについての明確な検討を可能にするべく、図５〜図８における単一の例示的なポリゴン６８２を形成および使用する例示は、本明細書において提示される比較的単純な例であることを意図することに留意されたい。しかし、当業者には認識可能であるように、複数のシェーディングピクセル６８５のうちの少なくともいくつかの内側に２つ以上の可視プリミティブ８８２の複数の部分を有することは全く普通であり得、従って２つ以上のポリゴン６８２は、それらのシェーディングピクセル６８５の各々の内側に形成される。図９Ａおよび９Ｂは共に、隣接する可視プリミティブ８８２ａおよび８８２ｂのペアの複数の部分が代替の例示的なシェーディングピクセル６８５内に収まることの結果として、代替の例示的なシェーディングピクセル６８５内に隣接ポリゴンのペア６８２ａおよび６８２ｂを形成する態様を図示する。
【００４０】
より具体的に図９Ａを参照すると、図示されるように、２つの隣接する可視プリミティブ８８２ａおよび８８２ｂは、代替の例示的なシェーディングピクセル６８５を通って延在し、代替の例示的なシェーディングピクセル６８５の一部と一致する代替の例示的なスクリーンピクセル８８５を通って延在する共通の複数の頂点８８３を有する共通のエッジを形成するように接する。また、共有される２つの頂点８８３を含む、隣接する可視プリミティブ８８２ａおよび８８２ｂの各々の複数の頂点８８３の相対的位置が図示される。
【００４１】
より具体的に図９Ｂを参照すると、シェーディング・クリッピング・コンポーネント６４３は、代替の例示的なシェーディングピクセル６８５内で隣接する可視プリミティブ８８２ａおよび８８２ｂの各々のクリッピングを実行して、その中に隣接ポリゴンのペア６８２ａおよび６８２ｂを形成する。図示されるように、隣接のポリゴン６８２ａおよび６８２ｂは、隣接のポリゴン６８２ａおよび６８２ｂの間の共通のエッジとして、隣接する可視プリミティブ８８２ａおよび８８２ｂの間で共通のエッジの一部を共有する。また、共有される２つの頂点６８３を含む、隣接のポリゴン６８２ａおよび６８２ｂの各々の複数の頂点６８３の相対的位置が図示される。共有される２つの頂点６８３は、シェーディング・クリッピング・コンポーネント６４３により実行されるクリッピングの結果として、代替の例示的なシェーディングピクセル６８５の複数の境界に沿って画定される。
【００４２】
隣接する可視プリミティブ８８２ａおよび８８２ｂが同一オブジェクトの同一面における複数の部分を画定する複数の可視プリミティブのセットの一部である複数の実施形態において、代替の例示的なシェーディングピクセル６８５の複数の境界に沿った共通位置を共有する隣接のポリゴン６８２ａおよび６８２ｂの各々の複数の頂点６８３について派生した複数の色値は、実質的に類似する可能性がある。結果として、隣接する可視プリミティブ８８２ａおよび８８２ｂにより画定される当該表面の複数の部分の間で生じているものとして、スムーズな移行が認められ得る。現に、図９Ｂは、本明細書において説明されるような可視プリミティブの１または複数のポリゴンへの分割が複数の共通位置を共有する複数の隣接する可視プリミティブと関連付けられる複数のポリゴン頂点の形成を生じさせる可能性があり、これは、次いで複数の隣接する可視プリミティブ間にそのような類似の色値をもたらす可能性があることを図示する。
【００４３】
図１に戻ると、スクリーン画像８８０を表すスクリーン画像データ７３０の生成後に、説明されたように、処理コンポーネント５５０は、ディスプレイ５８０上に画像８８０を提示し得る。あるいは、または更に、プロセッサコンポーネント５５０は、スクリーン画像データ７３０を表示デバイス７００のような別のデバイスに送信して、ディスプレイ７８０のような別のディスプレイ上に画像８８０を提示することを可能にするようにインターフェース５９０を動作させ得る。
【００４４】
様々な実施形態において、表示デバイス７００は、プロセッサコンポーネント７５０、ストレージ７６０、ディスプレイ７８０、および表示デバイス７００をネットワーク９９９に結合するインターフェース７９０のうちの１または複数を組み込む。ストレージ７６０は、制御ルーチン７４０およびスクリーン画像データ７３０のうちの１または複数を格納する。制御ルーチン７４０は、表示デバイス７００のメインプロセッサコンポーネントとして様々な機能を実行するロジックを実装するという役割に、プロセッサコンポーネント７５０上で動作可能な複数の命令のシーケンスを組み込む。いくつかの実施形態において制御ルーチン７４０を実行するときに、プロセッサコンポーネント７５０は、ディスプレイ７８０のピクセル解像度の表示をコンピューティングデバイス５００に送信するようにインターフェース７９０を動作させ得る。既に検討されたように、そのような表示は、制御データ３３５の一部としてコンピューティングデバイス５００内に格納され、その後、スクリーン画像８８０をレンダリングする１または複数の態様（例えば、スクリーン画像８００のピクセル解像度の設定）に使用され得る。あるいは、または更に、プロセッサコンポーネント７５０は、説明されたように、コンピューティングデバイス５００がスクリーン画像８８０をレンダリングした後に、スクリーン画像８８０を表すスクリーン画像データ７３０を、コンピューティングデバイス５００から受信するようにインターフェース７９０を動作させ得る。次に、プロセッサコンポーネント７５０は、モーションスクリーン画像８８０をディスプレイ７８０上に視覚的に提示し得る。
【００４５】
図２は、コンピューティングデバイス５００の代替的な実施形態を含むグラフィックスレンダリングシステム１０００の代替的な実施形態のブロック図を図示する。図２におけるグラフィックスレンダリングシステム１０００の代替的な実施形態は、多くの点で図１における実施形態に類似し、従って同一の符号は、全体を通じて同一の要素を指すように用いられている。しかし、図１のコンピューティングデバイス５００と異なり、図２のコンピューティングデバイス５００は、コントローラ６００を組み込まない。従って、図１のコンピューティングデバイス５００と異なり、図２のコンピューティングデバイス５００においては、それを行うために存在する別個のプロセッサコンポーネント６５０に代えて、プロセッサコンポーネント５５０が、制御ルーチン６４０を実行する。従って、図２のグラフィックスレンダリングシステム１０００の代替的な実施形態において、プロセッサコンポーネント５５０は、プロセッサコンポーネント６５０による制御ルーチン６４０の実行に関して説明されたものとは異ならない態様で、ラスタライズ、シェーディング、およびフィルタリングを含む、スクリーン画像８８０のレンダリングを実行する。
【００４６】
様々な実施形態において、プロセッサコンポーネント５５０および６５０の各々は、商業的に入手可能な多種多様なプロセッサのいずれかを含み得る。また、これらのプロセッサコンポーネントのうちの１または複数は、複数のプロセッサ、マルチスレッドプロセッサ、マルチコアプロセッサ（複数のコアが同一のダイまたは別個のダイ上に共存するか否かに関わらず）、および／または複数の物理的に別個のプロセッサが何らかの形でリンクされる何らかの他の変形によるマルチプロセッサアーキテクチャを含み得る。また、プロセッサコンポーネント５５０および６５０の各々は、様々なタイプのプロセッサのいずれかを含み得るが、コントローラ６００のプロセッサコンポーネント６５０（存在する場合）は、何らかの形でグラフィックスおよび／または動画に関する複数のタスクの実行に特化され、および／または最適化され得ることが想定されている。より広くは、コントローラ６００は、プロセッサコンポーネント６５０およびそのより密に関係する複数のコンポーネントとは別個の異なる複数のコンポーネントを用いて、グラフィックスレンダリング、動画圧縮、画像のリスケーリング等に関する複数のタスクの実行を可能にするためのコンピューティングデバイス５００のグラフィックスサブシステムを実施することが想定されている。
【００４７】
様々な実施形態において、ストレージ５６０、６６０および７６０の各々は、場合によっては途切れることのない電力のプロビジョニングを必要とする複数の揮発性技術を含み、場合によっては取り外し可能であり得るか、または取り外し可能でない場合がある機械可読ストレージ媒体の使用を必要とする複数の技術を含む多種多様な情報ストレージ技術のいずれかに基づき得る。従って、これらのストレージの各々は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲ−ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、ポリマーメモリ（例えば、強誘電体ポリマーメモリ）、オボニックメモリ、相変化もしくは強誘電体メモリ、シリコン・酸化物・窒化物・酸化物・シリコン（ＳＯＮＯＳ）メモリ、磁気もしくは光カード、１もしくは複数の個別の強磁性ディスクドライブ、または１もしくは複数のアレイに組織化された複数のストレージデバイス（例えば、独立ディスク冗長アレイによるアレイ、すなわちＲＡＩＤアレイに組織化された複数の強磁性ディスクドライブ）を含むが、これらに限定されない多種多様なタイプのストレージデバイス（または複数のタイプの組み合わせ）のいずれかを含み得る。これらのストレージの各々は、単一のブロックとして図示されるが、これらのうちの１または複数は、異なる複数のストレージ技術に基づき得る複数のストレージデバイスを含み得ることに留意されたい。従って、例えば、これらの図示される複数のストレージの各々のうち１または複数は、複数のプログラムおよび／またはデータが何らかの形態の機械可読ストレージ媒体上に格納および搬送され得る光ドライブもしくはフラッシュメモリカードリーダ、比較的長期間、複数のプログラムおよび／もしくはデータをローカルに格納するための強磁性ディスクドライブ、ならびに複数のプログラムおよび／またはデータへの比較的速いアクセスを可能にする１もしくは複数の揮発性ソリッドステートメモリデバイス（例えば、ＳＲＡＭもしくはＤＲＡＭ）の組み合わせを表し得る。また、これらのストレージの各々は、同一のストレージ技術に基づく複数のストレージコンポーネントから構成され得ることにも留意されたい。しかし、これらは、使用法が専門化した結果として別々に維持され得る（例えば、いくつかのＤＲＡＭデバイスは、メインストレージとして使用されるが、他の複数のＤＲＡＭデバイスは、グラフィックスコントローラの別個のフレームバッファとして使用される）。
【００４８】
様々な実施形態において、インターフェース５９０および７９０は、これらのコンピューティングデバイスが説明された複数の他のデバイスに結合されることを可能にする多種多様なシグナリング技術のいずれかを使用し得る。これらのインターフェースの各々は、そのような結合を可能にするために必須の機能のうちの少なくともいくつかを提供する回路を含む。しかし、これらのインターフェースの各々は、やはり、（例えば、プロトコルスタックまたは他の複数の機能を実装するべく）複数のプロセッサコンポーネントのうちの対応する複数のものにより実行される複数の命令の複数のシーケンスと共に少なくとも部分的に実装され得る。電気的および／または光学的伝導性のケーブル配線が使用される場合、これらのインターフェースは、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＵＳＢ、Ｅｔｈｅｒｎｅｔ（登録商標）（ＩＥＥＥ−８０２．３）、またはＩＥＥＥ−１３９４を含むが、これらに限定されない様々な業界標準のいずれかに適合するシグナリングおよび／または複数のプロトコルを使用し得る。無線信号送信の使用が必要とされる場合、これらのインターフェースは、ＩＥＥＥ８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１６、８０２．２０（通常、「モバイルブロードバンド無線アクセス」と称される）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、または汎用パケット無線サービスを用いるＧＳＭ（登録商標）（ＧＳＭ（登録商標）／ＧＰＲＳ）、ＣＤＭＡ／１ｘＲＴＴ、広域展開用高速データレート（ＥＤＧＥ）、エボリューション・データオンリ／オプティマイズド（Ｅｖ−ＤＯ）、エボリューション・フォー・データ・アンド・ボイス（ＥＶ−ＤＶ）、高速ダウンリンクパケットアクセス（ＨＳＤＰＡ）、高速アップリンクパケットアクセス（ＨＳＵＰＡ）、４Ｇ  ＬＴＥ等のようなセルラー無線電話サービスを含むが、これらに限定されない様々な業界標準のいずれかに適合するシグナリングおよび／または複数のプロトコルを使用し得る。
【００４９】
図１０は、ロジックフロー２１００の一実施形態を図示する。ロジックフロー２１００は、本明細書に説明される１または複数の実施形態により実行される複数の動作のいくつかまたは全てを表し得る。より具体的には、ロジックフロー２１００は、少なくとも制御ルーチン６４０を実行するときにプロセッサコンポーネント５５０および／または６５０により実行される動作、および／またはコンピューティングデバイス５００の他のコンポーネントにより実行される動作を図示し得る。
【００５０】
２１１０において、コンピューティングデバイスのプロセッサコンポーネント（例えば、コンピューティングデバイス５００のプロセッサコンポーネント５５０および／または６５０）は、３Ｄモデルからレンダリングされる２Ｄスクリーン画像（例えば、スクリーン画像８８０）の平面の視点から、３Ｄモデル（例えば、３Ｄモデル２８０のプリミティブ２８２）の全てのグラフィックスプリミティブのラスタライズを実行する。これを行うときに、プロセッサコンポーネントは、２Ｄスクリーン画像の視点から可視の３Ｄモデルの複数のプリミティブ（例えば、可視プリミティブ８８２）の全てを識別して、それらの可視プリミティブの各々の複数の頂点に関連付けられた様々なアトリビュートを得る。検討されたように、そのような平面の位置および／または向き、ならびに当該平面内のスクリーン画像の複数の境界は、別のコンピューティングデバイス（例えば、表示デバイス７００）から受信され得る。
【００５１】
２１２０において、プロセッサコンポーネントは、可視プリミティブの少なくとも一部が収まる複数のシェーディングピクセルの各々の内側における複数の可視プリミティブのクリッピングを実行して、各々が、複数のシェーディングピクセルの複数の領域と、複数のシェーディングピクセル内に収まる複数の可視プリミティブの複数の部分との交点を表す複数のポリゴンを派生させる。既に検討されたように、複数のシェーディングピクセルは各々、２Ｄスクリーン画像を構成する複数のスクリーンピクセルの各々より大きな領域を含むように画定され得、従って複数のシェーディングピクセルのグリッドは、複数のスクリーンピクセルのグリッドより粗くなり得る。やはり既に検討されたように、複数のシェーディングピクセルは、複数のスクリーンピクセルの複数の境界の少なくとも１つのサブセットと位置合わせする複数の境界で画定され得、従って、各シェーディングピクセルは、複数のスクリーンピクセル（例えば、本明細書に図示されているように、４つのスクリーンピクセルに対応する各シェーディングピクセル）の整数倍と一致するように画定され得る。
【００５２】
２１３０において、プロセッサコンポーネントは、複数の可視プリミティブのうちの関連付けられた複数のものの複数の頂点から複数のポリゴンの複数の頂点に対して補間された複数のアトリビュートから、複数のポリゴンの複数の頂点における色値を派生させるべく、ピクセルシェーディングを実行する。２１４０において、プロセッサコンポーネントは、複数のポリゴンの複数の頂点からの複数の色値を複数のスクリーンピクセルの複数の中心に対して補間し、複数のスクリーンピクセルの複数の色値を派生させ得る。既に検討されたように、複数のポリゴンに対する複数のスクリーンピクセルの各々の中心の位置は、どのポリゴンの頂点が補間される色値を提供するべく使用されるかを判断するように使用され得る。
【００５３】
図１１は、ロジックフロー２２００の一実施形態を図示する。ロジックフロー２２００は、本明細書に説明される１または複数の実施形態により実行される複数の動作のいくつかまたは全てを表し得る。より具体的には、ロジックフロー２２００は、少なくとも制御ルーチン６４０を実行するときにプロセッサコンポーネント５５０および／もしくは６５０により実行される動作、ならびに／またはコンピューティングデバイス５００の他のコンポーネントにより実行される動作を図示し得る。
【００５４】
２２１０において、コンピューティングデバイスのプロセッサコンポーネント（例えば、コンピューティングデバイス５００のプロセッサコンポーネント５５０および／または６５０）は、２Ｄスクリーン画像の視点から可視の３Ｄモデルの複数のプリミティブ（例えば、可視プリミティブ８８２）の全てを識別するべく、３Ｄモデルからレンダリングされる２Ｄスクリーン画像（例えば、スクリーン画像８８０）の平面の視点から、３Ｄモデル（例えば、３Ｄモデル２８０のプリミティブ２８２）の全てのグラフィックスプリミティブのラスタライズを実行する。検討されたように、そのような平面の位置および／または向き、ならびに当該平面内のスクリーン画像の複数の境界は、別のコンピューティングデバイス（例えば、表示デバイス７００）から受信され得る。
【００５５】
２２２０において、プロセッサコンポーネントは、可視プリミティブの少なくとも一部が収まるシェーディングピクセルの各々の内側における複数の可視プリミティブのクリッピングを実行して、各々が、複数のシェーディングピクセルの複数の領域と、複数のシェーディングピクセル内に収まる複数の可視プリミティブの複数の部分との交点を表す複数のポリゴンを派生させる。既に検討されたように、複数のシェーディングピクセルは各々、２Ｄスクリーン画像を構成する複数のスクリーンピクセルの各々より大きな領域を含むように画定され得、従って複数のシェーディングピクセルのグリッドは、複数のスクリーンピクセルのグリッドより粗くなり得る。
【００５６】
やはり既に検討されたように、複数のシェーディングピクセルは、複数のスクリーンピクセルの複数の境界の少なくとも１つのサブセットと位置合わせする複数の境界で画定され得、従って、各シェーディングピクセルは、複数のスクリーンピクセル（例えば、本明細書に図示されているように、４つのスクリーンピクセルに対応する各シェーディングピクセル）の整数倍と一致するように画定され得る。
【００５７】
２２３０において、プロセッサコンポーネントは、複数の可視プリミティブのうちの関連付けられた複数のものの複数の頂点における複数のアトリビュートから補間することにより、複数のポリゴンの複数の頂点における複数のアトリビュートを派生するための補間を実行する。２２４０において、プロセッサコンポーネントは、複数のポリゴンの複数の頂点における複数のアトリビュートから複数のポリゴンの複数の頂点における色値を派生させるべく、ピクセルシェーディングを実行する。
【００５８】
２２５０において、プロセッサコンポーネントは、複数のポリゴンの複数の頂点からの少なくとも複数の色値を、複数のポリゴンの各々の内側に収まる複数のサンプルに対して補間し得る。２２６０において、プロセッサコンポーネントは、各スクリーンピクセル内に収まる複数のサンプルにおける少なくとも複数の色値を平均して、複数のスクリーンピクセルの複数の色値を派生させる。説明されたように、複数の他のアトリビュートの値も、複数のポリゴンの複数の頂点から複数のサンプルに対して補間され、次に、各スクリーンピクセルに対するそれらのアトリビュートの値を派生させるべく、複数のサンプルから平均され得る。
【００５９】
図１２は、上記の様々な実施形態を実装するのに好適な例示的な処理アーキテクチャ３０００の実施形態を図示する。より具体的には、処理アーキテクチャ３０００（またはその変形）は、コンピューティングデバイス３００、５００、もしくは７００のうちの１または複数の一部として、ならびに／またはコントローラ６００の一部として実装され得る。処理アーキテクチャ３０００の複数のコンポーネントには、最後の２桁が先に図示された複数のコンポーネントのうちの少なくともいくつかの符号の最後の２桁に対応する複数の符号が与えられ、コンピューティングデバイス３００、５００、および７００、ならびにコントローラ６００の一部として説明されることに留意されたい。これは、各々の相関する複数のコンポーネントに対する補助として行われている。
【００６０】
処理アーキテクチャ３０００は、１または複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント、電源等を含むが、これらに限定されない、デジタル処理において通常使用される様々な要素を含む。本願において用いられるように、「システム」および「コンポーネント」という用語は、デジタル処理が実行されるコンピューティングデバイスのエンティティを指すことを意図し、当該エンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアであり、これらの例は、図示されるこの例示的な処理アーキテクチャにより提供される。例えば、コンポーネントは、プロセッサコンポーネント上で実行される処理、プロセッサコンポーネント自体、光および／もしくは磁気ストレージ媒体を使用し得るストレージデバイス（例えば、ハードディスクドライブ、アレイにおける複数のストレージドライブ等）、ソフトウェアオブジェクト、実行可能な複数の命令のシーケンス、実行スレッド、プログラム、および／またはコンピューティングデバイス全体（例えば、コンピュータ全体）であり得るが、これらに限定されない図示として、サーバ上で実行されるアプリケーションおよびサーバの双方が、コンポーネントであり得る。１または複数のコンポーネントは、処理および／または実行スレッド内に存在し得、コンポーネントは、１つのコンピューティングデバイス上に局部化され、および／または２つまたはそれより多くのコンピューティングデバイスの間に分散され得る。更に、複数のコンポーネントは、複数の動作を調整するための様々なタイプの通信媒体により互いに通信可能に結合され得る。調整は、情報の一方向または双方向の交換を含み得る。例えば、複数のコンポーネントは、通信媒体を介して通信される複数の信号の形態で情報を通信し得る。情報は、１または複数の信号線に割り当てられた複数の信号として実装され得る。（コマンド、ステータス、アドレス、またはデータのメッセージを含む）メッセージは、複数のそのような信号のうちの１つであってもよく、または複数のそのような信号であってもよく、様々な接続および／またはインターフェースのいずれかを介してシリアルもしくは実質的にパラレルのいずれかで送信されてもよい。
【００６１】
図示されるように、処理アーキテクチャ３０００を実装するときに、コンピューティングデバイスは、少なくともプロセッサコンポーネント９５０、ストレージ９６０、複数の他のデバイスへのインターフェース９９０、およびカップリング９５９を含む。説明されるように、そのようなコンピューティングデバイスは、意図される使用および／または使用の条件を含む、処理アーキテクチャ３０００を実装するコンピューティングデバイスの様々な態様に応じて、ディスプレイインターフェース９８５のような追加の複数のコンポーネントを更に含み得るが、これらに限定されない。
【００６２】
カップリング９５９は、少なくともプロセッサコンポーネント９５０をストレージ９６０に通信可能に結合する１または複数のバス、ポイントツーポイント相互接続、トランシーバ、バッファ、クロスポイントスイッチ、および／または他の複数の導体、および／またはロジックを含む。カップリング９５９は、インターフェース９９０、オーディオサブシステム９７０、およびディスプレイインターフェース９８５（これらおよび／または更に他の複数のコンポーネントのどれかが示されるかに応じて）のうちの１または複数に、プロセッサコンポーネント９５０を更に結合し得る。プロセッサコンポーネント９５０は、そのようにカップリング９５９により結合されるので、前述の複数のコンピューティングデバイスのいずれが処理アーキテクチャ３０００を実装するにしても、プロセッサコンポーネント９５０は、縷々上記した複数のタスクの様々なものを実行することができる。カップリング９５９は、複数の信号が光学的および／または電気的に搬送される様々な複数の技術または複数の技術の組み合わせのいずれかを用いて実装され得る。更に、カップリング９５９の少なくとも複数の部分は、アクセラレーティッドグラフィックスポート（ＡＧＰ）、ＣａｒｄＢｕｓ、拡張業界標準アーキテクチャ（Ｅ−ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、ＮｕＢｕｓ、周辺構成要素相互接続（拡張）（ＰＣＩ−Ｘ）、ＰＣＩエクスプレス（ＰＣＩ−Ｅ）、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）バス、ハイパートランスポート（登録商標）、ＱｕｉｃｋＰａｔｈ等を含むが、これらに限定されない多種多様な業界標準のいずれかに適合する複数のタイミングおよび／またはプロトコルを使用し得る。
【００６３】
既に検討されたように、（プロセッサコンポーネント５５０、６５０、および７５０に対応する）プロセッサコンポーネント９５０は、多種多様な技術のいずれかを使用して、いくつかの態様のいずれかで物理的に組み合わされた１または複数のコアと共に実装される多種多様な商業的に入手可能なプロセッサのいずれかを含み得る。
【００６４】
既に検討されたように、（ストレージ５６０、６６０、および７６０に対応する）ストレージ９６０は、多種多様な技術のいずれか、または複数の技術の組み合わせに基づく１または複数の別個のストレージデバイスから構成され得る。より具体的には、図示されるように、ストレージ９６０は、揮発性ストレージ９６１（例えば、ＲＡＭテクノロジーの１または複数の形態に基づくソリッドステートストレージ）、不揮発性ストレージ９６２（例えば、コンテンツを保持するべく電力の恒常的プロビジョニングを必要としないソリッドステートストレージ、強磁性ストレージ、もしくは他のストレージ）、およびリムーバブルメディアストレージ９６３（例えば、複数のコンピューティングデバイス間で情報が搬送され得るリムーバブルディスクもしくはソリッドステートメモリカードストレージ）のうちの１または複数を含み得る。場合によって複数の別個のタイプのストレージを含むものとしてストレージ９６０をこのように図示することにより、あるタイプが比較的高速の読み取りおよび書き込み機能を提供し、プロセッサコンポーネント９５０によりデータのより迅速な操作を可能にし、（しかし、場合によっては電力を絶えず必要とする「揮発性」技術を用いる）が、別のタイプが比較的高密度の不揮発性ストレージを提供する（しかし、比較的低速の読み取りおよび書き込み機能を提供する可能性がある）２つ以上のタイプのストレージデバイスがコンピューティングデバイスにおいて通常使用されることが認識される。
【００６５】
異なる複数の技術を使用する異なるストレージデバイスのしばしば異なる特性を考慮すると、そのような複数の異なるストレージデバイスが、異なる複数のインターフェースを介して異なる複数のストレージデバイスに結合される異なる複数のストレージコントローラを介して、コンピューティングデバイスの他の複数の部分に結合されることもよく見られる。揮発性ストレージ９６１が提示され、ＲＡＭテクノロジーに基づく例としては、揮発性ストレージ９６１は、場合によって行および列のアドレス指定を使用する揮発性ストレージ９６１に適切なインターフェースを提供するストレージコントローラ９６５ａを介して、カップリング９５９に通信可能に結合され得、ストレージコントローラ９６５ａは、揮発性ストレージ９６１内に格納された情報を保持する助けとなるように、行リフレッシュおよび／または他の複数のメンテナンスタスクを実行し得る。不揮発性ストレージ９６２が存在し、１または複数の強磁性および／またはソリッドステートディスクドライブを含む別の例として、不揮発性ストレージ９６２は、ストレージコントローラ９６５ｂを介してカップリング９５９に通信可能に結合され、場合によっては情報の複数のブロックおよび／または複数のシリンダおよびセクタのアドレス指定を使用する不揮発性ストレージ９６２に、適切なインターフェースを提供し得る。リムーバブルメディアストレージ９６３が存在し、１または複数個の機械可読ストレージ媒体９６９を使用する１または複数の光および／またはソリッドステートディスクドライブを含む更に別の例として、リムーバブルメディアストレージ９６３は、ストレージコントローラ９６５ｃを介してカップリング９５９に通信可能に結合され、場合によって情報の複数のブロックのアドレス指定を使用するリムーバブルメディアストレージ９６３に、適切なインターフェースを提供し得、ストレージコントローラ９６５ｃは、機械可読ストレージ媒体９６９の耐用年数を伸ばすことに固有の態様で読み取り、消去、書き込みの動作を調整し得る。
【００６６】
各々が基づく技術に応じて、揮発性ストレージ９６１または不揮発性ストレージ９６２のうちの一方または他方は、プロセッサコンポーネント９５０により実行可能な複数の命令のシーケンスを含むルーチンが格納され得る機械可読ストレージ媒体の形態の製造物品を含み得る。不揮発性ストレージ９６２が強磁性ベースのディスクドライブ（例えば、いわゆる「ハードドライブ」）を含む例としては、各々のそのようなディスクドライブは通常、磁気応答性粒子のコーティングが堆積され、様々なパターンに磁気的に方向付けられる１または複数の回転プラッタを使用して、フロッピー（登録商標）ディスケットのようなストレージ媒体に類似の態様で複数の命令のシーケンス等の情報を格納する。別の例として、不揮発性ストレージ９６２は、ソリッドステートストレージデバイスの複数のバンクで構成され、コンパクトフラッシュ（登録商標）カードに類似の態様で複数の命令の複数のシーケンス等の情報を格納し得る。更に、実行可能なルーチンおよび／またはデータを格納するべく、コンピューティングデバイスにおいて異なる時点に異なる複数のタイプのストレージデバイスを使用することは、よく見られる。
【００６７】
従って、プロセッサコンポーネント９５０により実行される複数の命令のシーケンスを含むルーチンは、最初に機械可読ストレージ媒体９６９上に格納され得、次に、リムーバブルメディアストレージ９６３は、機械可読ストレージ媒体９６９の継続的存在を必要としないより長い期間の格納のための不揮発性ストレージ９６２、および／または当該ルーチンが実行されるときに、プロセッサコンポーネント９５０によるより高速のアクセスを可能にする揮発性ストレージ９６１に当該ルーチンをコピーする際に使用され得る。
【００６８】
既に検討されたように、（場合によってはインターフェース５９０または７９０に対応する）インターフェース９９０は、コンピューティングデバイスを１または複数の他のデバイスに通信可能に結合するべく使用され得る様々な通信技術のいずれかに対応する様々なシグナリング技術のいずれかを使用し得る。更に、様々な形態の有線または無線シグナリングの一方または双方は、場合によってはネットワーク（例えば、ネットワーク９９９）または相互接続された複数のネットワークのセットを介して、プロセッサコンポーネント９５０が複数の入力／出力デバイス（例えば、図示された例示的キーボード９２０もしくはプリンタ９２５）および／または他の複数のコンピューティングデバイスとインタラクトすることを可能にするべく使用され得る。多くの場合に任意の１つのコンピューティングデバイスによりサポートされなければならない複数のタイプのシグナリングおよび／またはプロトコルのしばしば大幅に異なる性質を認識して、インターフェース９９０は、複数の異なるインターフェースコントローラ９９５ａ、９９５ｂ、および９９５ｃを含むものとして図示される。インターフェースコントローラ９９５ａは、シリアルに送信される複数のメッセージを、図示されるキーボード９２０のような複数のユーザ入力デバイスから受信するべく、様々なタイプの有線のデジタルシリアルインターフェースまたは無線周波数の無線インターフェースのいずれかを使用し得る。インターフェースコントローラ９９５ｂは、図示されるネットワーク９９９（場合によっては１または複数のリンクで構成されるネットワーク、より小さい複数のネットワーク、または場合によってはインターネット）を介して他の複数のコンピューティングデバイスにアクセスするべく、様々なケーブルベースもしくは無線のシグナリング、タイミング、および／またはプロトコルのいずれかを使用し得る。インターフェース９９５ｃは、様々な導電性のケーブル配線のいずれかを使用して、シリアルまたはパラレル信号伝送のいずれかの使用を可能にし、図示されるプリンタ９２５にデータを搬送し得る。インターフェース９９０の１または複数のインターフェースコントローラを介して通信可能に結合され得る複数のデバイスの他の例としては、複数の人が発し得る声または他の音を介してそれらの人によりシグナリングされる複数のコマンドおよび／またはデータを受け取るべくそれらの人の音をモニタリングするマイク、遠隔制御器、スタイラスペン、カードリーダ、フィンガープリントリーダ、仮想現実インタラクショングローブ、グラフィカル入力タブレット、ジョイスティック、他のキーボード、網膜スキャナ、タッチスクリーンのタッチ入力コンポーネント、トラックボール、様々なセンサ、ジェスチャおよび／または顔の表情を介して複数の人によりシグナリングされた複数のコマンドおよび／またはデータを受け取るべく、それらの人の動きをモニタリングするためのカメラもしくはカメラのアレイ、レーザプリンタ、インクジェットプリンタ、機械ロボット、ミリングマシン等が挙げられるが、これらに限定されない
【００６９】
コンピューティングデバイスがディスプレイ（例えば、図示された例示的なディスプレイ９８０）に通信可能に結合される（または場合によってはディスプレイを実際に組み込む）場合、処理アーキテクチャ３０００を実装するそのようなコンピューティングデバイスは、ディスプレイインターフェース９８５も含み得る。より一般化された複数のタイプのインターフェースがディスプレイに通信可能に結合する場合に使用され得るが、多くの場合に、ディスプレイ上で様々な形態のコンテンツを視覚的に表示するときに必要とされるやや特殊な追加の処理、ならびに用いられる複数のケーブルベースのインターフェースのやや特殊な性質は、多くの場合、所望の別個のディスプレイインターフェースのプロビジョニングを行う。ディスプレイ９８０の通信カップリングにおいてディスプレイインターフェース９８５により使用され得る有線および／または無線シグナリング技術は、様々なアナログビデオインターフェース、デジタルビデオインターフェース（ＤＶＩ）、ＤｉｓｐｌａｙＰｏｒｔ等のいずれかを含むが、これらに限定されない様々な業界標準のいずれかに適合するシグナリングおよび／または複数のプロトコルを用い得る。
【００７０】
図１３は、システム４０００の一実施形態を図示する。様々な実施形態において、システム４０００は、グラフィックスレンダリングシステム１０００、コンピューティングデバイス３００、５００、もしくは７００のうちの１もしくは複数、および／またはロジックフロー２１００もしくは２２００のうちの１または複数等、本明細書に説明される１もしくは複数の実施形態と共に使用するのに好適なシステムまたはアーキテクチャを表し得る。実施形態は、この点で限定されない。
【００７１】
示されるように、システム４０００は、複数の要素を含み得る。１または複数の要素は、設計または性能の制約の所与のセットに所望されるような１または複数の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェアサブルーチン、モジュール、またはこれらの任意の組み合わせを用いて実装され得る。図１３は、例として特定のトポロジーにおける限定された数の複数の要素を示すが、所与の実装に所望されるような任意の好適なトポロジーにおけるより多いか、またはより少ない要素がシステム４０００において用いられ得ることが理解され得る。実施形態は、この文脈において限定されない。
【００７２】
複数の実施形態において、システム４０００はメディアシステムであってもよいが、システム４０００は、この文脈に限定されるものではない。例えば、システム４０００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレットまたはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス等に組み込まれてもよい。
【００７３】
複数の実施形態において、システム４０００は、ディスプレイ４９８０に結合されたプラットフォーム４９００ａを備える。プラットフォーム４９００ａは、コンテンツサービスデバイス４９００ｃもしくはコンテンツ配信デバイス４９００ｄ、または他の類似のコンテンツソース等のコンテンツデバイスからコンテンツを受信し得る。１または複数のナビゲーション機能を備えるナビゲーションコントローラ４９２０は、例えば、プラットフォーム４９００ａおよび／またはディスプレイ４９８０とインタラクトするように用いられてもよい。これらのコンポーネントの各々は、以下により詳細に説明される。
【００７４】
複数の実施形態において、プラットフォーム４９００ａは、プロセッサコンポーネント４９５０、チップセット４９５５、メモリユニット４９６９、トランシーバ４９９５、ストレージ４９６２、複数のアプリケーション４９４０、および／またはグラフィックスサブシステム４９８５の任意の組み合わせを含み得る。チップセット４９５５は、プロセッサ回路４９５０、メモリユニット４９６９、トランシーバ４９９５、ストレージ４９６２、複数のアプリケーション４９４０、および／またはグラフィックスサブシステム４９８５間の相互通信を提供し得る。例えば、チップセット４９５５は、ストレージ４９６２との相互通信を提供することができるストレージアダプタ（図示せず）を含み得る。
【００７５】
プロセッサコンポーネント４９５０は、任意のプロセッサまたは論理デバイスを用いて実装され得、プロセッサコンポーネント５５０、６５０、もしくは７５０、および／または図１２のプロセッサコンポーネント９５０のうちの１または複数と同一であるか、類似し得る。
【００７６】
メモリユニット４９６９は、データを格納することができる任意の機械可読またはコンピュータ可読媒体を用いて実装され得、図１２のストレージ媒体９６９と同一であるか、または類似し得る。
【００７７】
トランシーバ４９９５は、様々な好適の無線通信技術を用いて複数の信号を送受信できる１または複数の無線機を含み得、図１２のトランシーバ９９５ｂと同一であるか、または類似し得る。
【００７８】
ディスプレイ４９８０は、任意のテレビタイプのモニタまたはディスプレイを含み得、ディスプレイ５８０および７８０、ならびに／または図１２のディスプレイ９８０のうちの１または複数と同一であるか、または類似し得る。
【００７９】
ストレージ４９６２は、不揮発性ストレージデバイスとして実装され得、図１２の不揮発性ストレージ９６２と同一であるか、または類似し得る。
【００８０】
グラフィックスサブシステム４９８５は、表示のために静止画像または動画のような複数の画像の処理を実行し得る。グラフィックスサブシステム４９８５は、例えば、グラフィックス処理ユニット（ＧＰＵ）またはビジュアルプロセッシングユニット（ＶＰＵ）であってもよい。アナログまたはデジタルインターフェースは、グラフィックスサブシステム４９８５およびディスプレイ４９８０を通信可能に結合するように用いられてもよい。例えば、インターフェースは、高細精度マルチメディアインターフェース、ＤｉｓｐｌａｙＰｏｒｔ、無線ＨＤＭＩ（登録商標）、および／または無線ＨＤに準拠する技術のいずれかであってもよい。グラフィックスサブシステム４９８５は、プロセッサ回路４９５０またはチップセット４９５５に集積され得る。グラフィックスサブシステム４９８５は、チップセット４９５５に通信可能に結合されたスタンドアロンカードであり得る。
【００８１】
本明細書に説明されるグラフィックスおよび／または動画処理技術は、様々なハードウェアアーキテクチャで実装され得る。例えば、グラフィックスおよび／または動画機能は、チップセット内に集積され得る。あるいは、別個のグラフィックスおよび／またはビデオプロセッサが用いられてもよい。なおも別の実施形態として、グラフィックスおよび／または複数のビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装され得る。更なる実施形態において、これらの機能は、家庭用電子デバイスに実装され得る。
【００８２】
複数の実施形態において、コンテンツサービスデバイス４９００ｂは、任意の国家的、国際的、および／または独立系サービスによりホストされ、従って例えばインターネットを介してプラットフォーム４９００ａにアクセス可能であり得る。コンテンツサービスデバイス４９００ｂは、プラットフォーム４９００ａおよび／またはディスプレイ４９８０に結合され得る。プラットフォーム４９００ａおよび／またはコンテンツサービスデバイス４９００ｂは、ネットワーク４９９９に、およびネットワーク４９９９からメディア情報を通信する（例えば送信し、および／または受信する）べくネットワーク４９９９に結合され得る。コンテンツ配信デバイス４９００ｃは、プラットフォーム４９００ａおよび／またはディスプレイ４９８０にも結合され得る。
【００８３】
複数の実施形態において、コンテンツサービスデバイス４９００ｂは、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネットが可能なデバイス、もしくはデジタル情報および／またはコンテンツを提供することができる電気機器、およびネットワーク４９９９を介し、または直接に複数のコンテンツプロバイダと、プラットフォーム４９００ａと、ディスプレイ４９８０との間で一方向または双方向にコンテンツを通信することができるその他の類似のデバイスを含み得る。コンテンツは、ネットワーク４９９９を介してシステム４０００における複数のコンポーネントのうちのいずれか１つおよびコンテンツプロバイダに、およびこれらから一方向および／または双方向に通信され得ることが理解されよう。コンテンツの複数の例としては、例えば、動画、音楽、医療およびゲーム情報等を含む任意のメディア情報が挙げられ得る。
【００８４】
コンテンツサービスデバイス４９００ｂは、メディア情報、デジタル情報、および／または他のコンテンツを含むケーブルテレビ番組等のコンテンツを受信する。コンテンツプロバイダの複数の例としては、任意のケーブルもしくは衛星テレビ、またはラジオもしくはインターネットコンテンツプロバイダが挙げられ得る。提供される複数の例は、適用可能な実施形態を限定することを意図しない。
【００８５】
複数の実施形態において、プラットフォーム４９００ａは、１または複数のナビゲーション機能を有するナビゲーションコントローラ４９２０から複数の制御信号を受信し得る。ナビゲーションコントローラ４９２０の複数のナビゲーション機能は、例えば、ユーザインターフェース４８８０とインタラクトするように用いられ得る。複数の実施形態において、ナビゲーションコントローラ４９２０は、ユーザが空間（例えば、連続した多次元の）データをコンピュータに入力することを可能にする、コンピュータハードウェアコンポーネント（具体的にはヒューマンインターフェースデバイス）であり得るポインティングデバイスであってもよい。グラフィカルユーザインターフェース（ＧＵＩ）等の多くのシステム、ならびに複数のテレビおよびモニタは、ユーザが物理的なジェスチャを用いてコンピュータまたはテレビを制御し、これらにデータを提供することを可能にする。
【００８６】
ナビゲーションコントローラ４９２０におけるナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の複数の視覚インジケータの動きにより、ディスプレイ（例えば、ディスプレイ４９８０）上に反映され得る。例えば、ソフトウェアアプリケーション４９４０の制御下で、ナビゲーションコントローラ４９２０上に位置する複数のナビゲーション機能は、ユーザインターフェース４８８０上に表示される複数の仮想ナビゲーション機能にマッピングされ得る。複数の実施形態において、ナビゲーションコントローラ４９２０は、別個のコンポーネントではなく、プラットフォーム４９００ａおよび／またはディスプレイ４９８０に統合されてもよい。しかし、実施形態は、本明細書に示され、または説明される要素または文脈に限定されない。
【００８７】
複数の実施形態において、複数のドライバ（図示せず）は、例えば、有効にされると、初期ブートアップ後にユーザがボタンに触れることによりテレビ等のプラットフォーム４９００ａを即座にオンおよびオフにすることを可能にする技術を備え得る。プラットフォームが「オフ」にされると、プログラムロジックは、プラットフォーム４９００ａがコンテンツをメディアアダプタもしくは他のコンテンツサービスデバイス４９００ｂ、またはコンテンツ配信デバイス４９００ｃにストリーミングすることを可能にし得る。更に、チップセット４９５５は、例えば、５．１サラウンドサウンドオーディオおよび／またはハイデフィニション７．１サラウンドサウンドオーディオに対するハードウェアおよび／またはソフトウェアのサポートを備え得る。複数のドライバは、複数の統合グラフィックスプラットフォームためのグラフィックスドライバを含み得る。複数の実施形態において、複数のグラフィックスドライバは、周辺構成要素相互接続（ＰＣＩ）エクスプレスグラフィックスカードを備え得る。
【００８８】
様々な実施形態において、システム４０００において示される複数のコンポーネントのうちの任意の１または複数が統合され得る。例えば、プラットフォーム４９００ａおよびコンテンツサービスデバイス４９００ｂが統合されてもよく、またはプラットフォーム４９００ａおよびコンテンツ配信デバイス４９００ｃが統合されてもよく、または例えば、プラットフォーム４９００ａ、コンテンツサービスデバイス４９００ｂ、およびコンテンツ配信デバイス４９００ｃが統合されてもよい。様々な実施形態において、プラットフォーム４９００ａおよびディスプレイ４９８０は、統合されたユニットであってもよい。例えば、ディスプレイ４９８０およびコンテンツサービスデバイス４９００ｂが統合されてもよく、またはディスプレイ４９８０およびコンテンツ配信デバイス４９００ｃが統合されてもよい。これらの例は、実施形態を限定することを意図しない。
【００８９】
様々な実施形態において、システム４０００は、無線システム、有線システム、または双方の組み合わせとして実装され得る。無線システムとして実装される場合、システム４０００は、１または複数のアンテナ、トランスミッタ、レシーバ、トランシーバ、増幅器、フィルタ、制御ロジック等のような無線共有媒体を介して通信するのに好適な複数のコンポーネントおよびインターフェースを含み得る。無線共有媒体の例としては、ＲＦスペクトル等のような無線スペクトルの複数の部分が挙げられ得る。有線システムとして実装される場合、システム４０００は、Ｉ／Ｏアダプタ、対応する有線通信媒体とＩ／Ｏアダプタを接続する物理コネクタ、ネットワークインターフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のような有線通信媒体を介して通信するのに好適な複数のコンポーネントおよびインターフェースを含み得る。有線通信媒体の複数の例としては、ワイヤ、ケーブル、金属リード線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等が挙げられ得る。
【００９０】
プラットフォーム４９００ａは、情報を通信するべく１または複数の論理または物理チャネルを確立し得る。情報は、メディア情報および制御情報を含み得る。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを指し得る。コンテンツの複数の例としては、例えば、音声会話、ビデオ会議、ストリーミング動画、電子メール（「ｅメール」）メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト等からのデータが挙げられ得る。音声会話からのデータは、例えば、発言情報、無音期間、バックグラウンドノイズ、コンフォートノイズ、トーン等であり得る。制御情報は、自動システム向けの複数のコマンド、命令、または制御ワードを表す任意のデータを指し得る。例えば、制御情報は、システムを通じてメディア情報をルーティングし、または予め定められたようにメディア情報を処理するようノードに指示するべく用いられ得る。しかし、実施形態は、図１３に示され、または説明される要素または文脈に限定されない。
【００９１】
上記のように、システム４０００は、異なる物理的スタイルまたはフォームファクタで実施され得る。図１４は、システム４０００が実施され得る小さいフォームファクタデバイス５０００の複数の実施形態を図示する。例えば複数の実施形態において、デバイス５０００は、無線機能を有するモバイルコンピューティングデバイスとして実装され得る。例えば、モバイルコンピューティングデバイスは、処理システム、および１または複数のバッテリ等、モバイル電源または電力供給を有する任意のデバイスを指し得る。
【００９２】
上記のように、モバイルコンピューティングデバイスの複数の例としては、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレットまたはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス等が挙げられ得る。
【００９３】
モバイルコンピューティングデバイスの複数の例としては、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューズコンピュータ（ｓｈｏｅ  ｃｏｍｐｕｔｅｒ）、衣類コンピュータ（ｃｌｏｔｈｉｎｇ  ｃｏｍｐｕｔｅｒ）、および他のウェアラブルコンピュータ等、人により着用されるように構成された複数のコンピュータも挙げられ得る。例えば複数の実施形態において、モバイルコンピューティングデバイスは、複数のコンピュータアプリケーション、ならびに音声通信および／またはデータ通信を実行することができるスマートフォンとして実装され得る。いくつかの実施形態は、例として、スマートフォンとして実装されるモバイルコンピューティングデバイスと共に説明され得るが、他の複数の無線モバイルコンピューティングデバイスを同様に用いる複数の他の実施形態が実装され得ることが理解され得る。これらの実施形態は、この文脈において限定されない。
【００９４】
図１４に示されるように、デバイス５０００は、ディスプレイ５９８０、ナビゲーションコントローラ５９２０ａ、ユーザインターフェース５８８０、ハウジング５９０５、Ｉ／Ｏデバイス５９２０ｂ、およびアンテナ５９９８を含み得る。
【００９５】
ディスプレイ５９８０は、モバイルコンピューティングデバイスに適した情報を表示するための任意の好適なディスプレイユニットを含み得、図１３のディスプレイ４９８０と同一であるか、または類似し得る。
【００９６】
ナビゲーションコントローラ５９２０ａは、ユーザインターフェース５８８０とインタラクトするように用いられ得る１または複数のナビゲーション機能を含み得、図１３のナビゲーションコントローラ４９２０と同一であるか、または類似し得る。Ｉ／Ｏデバイス５９２０ｂは、情報をモバイルコンピューティングデバイスに入力するための任意の好適なＩ／Ｏデバイスを含み得る。Ｉ／Ｏデバイス５９２０ｂの複数の例としては、英数字キーボード、テンキー、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイス、およびソフトウェア等が挙げられ得る。情報は、マイクによりデバイス５０００にも入力され得る。そのような情報は、音声認識デバイスによりデジタル化され得る。実施形態は、この文脈において限定されない。
【００９７】
より一般には、本明細書に説明され、図示される複数のコンピューティングデバイスの様々な要素は、様々なハードウェア要素、ソフトウェア要素、または双方の組み合わせを含み得る。複数のハードウェア要素の例としては、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサコンポーネント、回路素子（例えば、トランジスタ、レジスタ、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等が挙げられ得る。複数のソフトウェア要素の例としては、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、手順、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはこれらの任意の組み合わせが挙げられ得る。しかし、所与の実装に所望されるように、実施形態がハードウェア要素および／またはソフトウェア要素を用いて実装されるか否かの判断は、所望の計算レート、電力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバスの速度、および他の設計または性能の制約等、任意の数の要因に応じて変わり得る。
【００９８】
いくつかの実施形態は、「一実施形態」または「実施形態」という表現を、それらの派生語と共に用いて説明され得る。これらの用語は、実施形態に関連して説明される特定の機能、構造、または特性が少なくとも一実施形態に含まれることを意味する。本明細書の様々な箇所において「一実施形態において」という文言が現われても、全てが同一の実施形態を必ずしも指すわけではない。更に、いくつかの実施形態は、「結合される」および「接続される」という表現を、それらの派生語と共に用いて説明され得る。これらの用語は、互いに同義語として必ずしも意図されるものではない。例えば、いくつかの実施形態は、２またはそれより多い要素が互いに直に物理的または電気的に接触することを示すべく、「接続される」および／または「結合される」という用語を用いて説明される場合がある。しかし、「結合される」という用語は、２またはそれより多い要素が互いに直に接触しないが、それでも互いに協働または相互作用することも意味する場合がある。更に、異なる複数の実施形態の複数の態様または要素が組み合わされ得る。
【００９９】
本開示の要約は、読者が技術的開示の本質を速やかに確認することを可能にするべく提供されていることが強調される。本開示は、特許請求の範囲または意味を解釈または限定するべく用いられるものではないとの理解に従うものと考えられる。更に、上述の詳細な説明において、様々な機能は、本開示を効率的なものにする目的で単一の実施形態に互いにグループ化されることを見て取ることができる。開示のこの方法は、特許請求される実施形態が各請求項において明示的に列挙されるものより多くの機能を必要とするとの意図を反映すると解釈されるものではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、開示される単一の実施形態の全ての機能よりは少ないものに存する。従って、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれ、各請求項は、別個の実施形態として独立している。添付の特許請求の範囲において、「含む」および「その中で（ｉｎ  ｗｈｉｃｈ）という用語は、「備える」および「そこで（ｗｈｅｒｅｉｎ）」という各用語と同等の平易な英語のとして各々用いられる。更に、「第１の」、「第２の」、「第３の」等の用語は、単に符号として用いられ、その対象に数値的要求を課することを意図しない。
【０１００】
上記された事柄は、開示されるアーキテクチャの複数の例を含む。勿論、複数のコンポーネントおよび／または方法論の考えられる各組み合わせを記載することは可能ではないが、当業者は、多くの更なる組み合わせおよび変形が可能であることを認識し得る。従って、新規なアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内に包含される全てのそのような変更形態、修正形態、および変形形態を含むことを意図する。ここで、詳細な本開示は、更なる実施形態に関する複数の例の提供に取り掛かる。以下に提供される複数の例は、限定的であることを意図しない。
【０１０１】
例１において、２Ｄイメージを３Ｄモデルデータからレンダリングするためのデバイスは、シェーディングピクセルによりカバーされる２Ｄスクリーン画像の第１の領域内の３Ｄモデルから派生したスクリーン画像の第１の可視プリミティブをクリッピングして、第１の領域と第１の可視プリミティブとの交点を表す第１のポリゴンを形成するクリッピングコンポーネントと、第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを、第１のポリゴンの各頂点に対して補間するための第１の補間コンポーネントと、第１のポリゴンの複数の頂点の複数の色値を、スクリーン画像のスクリーンピクセルによりカバーされる第２の領域内のポイントに対して補間するための第２の補間コンポーネントとを備え、第２の領域は、第１の領域より小さく、第１の領域と少なくとも部分的に一致する。
【０１０２】
例１の主題を含む例２において、デバイスは、２Ｄスクリーン画像の多数の可視プリミティブの特性に基づいて第１の領域のサイズを決定するピクセル解像度コンポーネントを備え得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１０３】
例１〜２のいずれかの主題を含む例３において、ポイントは、スクリーンピクセルの中心に位置し得、シェーディングコンポーネントは、多数のポリゴンの各ポリゴンの複数の境界に対するポイントの位置に基づいて、クリッピングコンポーネントにより形成される多数のポリゴンの複数の頂点から第１のポリゴンの複数の頂点を選択し、少なくとも１つのアトリビュートを、第１のポリゴンの複数の頂点から補間し、多数のポリゴンは、第１のポリゴンを含む。
【０１０４】
例１〜３のいずれかの主題を含む例４において、ポイントは、スクリーンピクセル内に収まるサンプルの位置と一致し得、サンプルは、第１の可視プリミティブのラスタライズにおいて使用される。
【０１０５】
例１〜４のいずれかの主題を含む例５において、デバイスは、第１のポリゴンの複数の頂点の複数の色値を、第１のポリゴンの複数の頂点に対して補間される少なくとも１つのアトリビュートから派生させるためのシェーディングコンポーネントを備え得る。
【０１０６】
例１〜５のいずれかの主題を含む例６において、クリッピングコンポーネントは、第１の領域内の２Ｄスクリーン画像の第２の可視プリミティブをクリッピングして、第１の領域と第２の可視プリミティブとの交点を表す第２のポリゴンを形成し得、第２のポリゴンは、第１のポリゴンとエッジの少なくとも一部を共有する。
【０１０７】
例１〜６のいずれかの主題を含む例７において、第１のポリゴンの頂点は、シェーディングピクセルの境界に沿った位置を第２のポリゴンの頂点と共有し得る。
【０１０８】
例１〜７のいずれかの主題を含む例８において、デバイスは、３Ｄモデルの複数のプリミティブをラスタライズして、２Ｄスクリーン画像において可視の多数の可視プリミティブを識別するためのラスタライズコンポーネントを備え得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１０９】
例１〜８のいずれかの主題を含む例９において、ラスタライズコンポーネントは、スクリーン画像のピクセル解像度をディスプレイのピクセル解像度に設定し得る。
【０１１０】
例１〜９のいずれかの主題を含む例１０において、デバイスは、スクリーン画像を提示するためのディスプレイを備え得る。
【０１１１】
例１〜１０のいずれかの主題を含む例１１において、デバイスは、スクリーン画像を表すスクリーン画像データを別のデバイスに送信するためのインターフェースを備え得る。
【０１１２】
例１２において、２Ｄイメージを３Ｄモデルデータからレンダリングするためのデバイスは、シェーディングピクセルによりカバーされる２Ｄスクリーン画像の領域内で３Ｄモデルから派生したスクリーン画像の第１の可視プリミティブおよび第２の可視プリミティブをクリッピングして、シェーディングピクセルによりカバーされる領域と第１の可視プリミティブとの交点を表す第１のポリゴンを形成し、シェーディングピクセルによりカバーされる領域と第２の可視プリミティブとの交点を表す第２のポリゴンを形成するためのクリッピングコンポーネントと、第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを第１のポリゴンの各頂点に対して補間し、第２の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを第２のポリゴンの各頂点に対して補間する第１の補間コンポーネントと、第１のポリゴンの複数の頂点の複数の色値をスクリーン画像の第１のスクリーンピクセルによりカバーされる領域内の第１のポイントに対して補間し、第２のポリゴンの複数の頂点の複数の色値をスクリーン画像の第２のスクリーンピクセルによりカバーされる領域内の第２のポイントに対して補間する第２の補間コンポーネントとを備え、第１のスクリーンピクセルおよび第２のスクリーンピクセルによりカバーされる複数の領域の各々は、シェーディングピクセルによりカバーされる領域と一致する。
【０１１３】
例１２の主題を含む例１３において、第１のポイントは、第１のスクリーンピクセルの中心に位置し得、第２のポイントは、第２のスクリーンピクセルの中心に位置し得、第２の補間コンポーネントは、多数のポリゴンの各ポリゴンの複数の境界に対する第１のポイントの位置に基づいて、クリッピングコンポーネントにより形成される多数のポリゴンの複数の頂点から第１のポリゴンの複数の頂点を選択し、少なくとも１つのアトリビュートを、第１のポリゴンの複数の頂点から第１のポイントに対して補間し得、多数のポリゴンの各ポリゴンの複数の境界に対する第２のポイントの位置に基づいて、第２のポリゴンの複数の頂点から第２のポリゴンの複数の頂点を選択し、少なくとも１つのアトリビュートを、多数のポリゴンの複数の頂点のうちの第２のポイントに対して補間し得、多数のポリゴンは、第１のポリゴンおよび第２のポリゴンを含む。
【０１１４】
例１２〜１３のいずれかの主題を含む例１４において、第２の可視プリミティブは、エッジの少なくとも第１の部分を第１の可視プリミティブと共有し得る。
【０１１５】
例１２〜１４のいずれかの主題を含む例１５において、クリッピングコンポーネントは、第１のポリゴンおよび第２のポリゴンがエッジの少なくとも第２の部分を共有することを可能にするように、第１の可視プリミティブおよび第２の可視プリミティブをクリッピングし得る。
【０１１６】
例１２〜１５のいずれかの主題を含む例１６において、クリッピングコンポーネントは、第１のポリゴンの頂点がシェーディングピクセルの境界に沿った位置を第２のポリゴンの頂点と共有することを可能にするように、第１の可視プリミティブおよび第２の可視プリミティブをクリッピングし得る。
【０１１７】
例１２〜１６のいずれかの主題を含む例１７において、デバイスは、スクリーン画像を提示するためのディスプレイを備え得る。
【０１１８】
例１２〜１７のいずれかの主題を含む例１８において、デバイスは、スクリーン画像のピクセル解像度をディスプレイのピクセル解像度に設定するためのラスタライズコンポーネントを備え得る。
【０１１９】
例１２〜１８のいずれかの主題を含む例１９において、デバイスは、スクリーン画像を表すスクリーン画像データを別のデバイスに送信するためのインターフェースを備え得る。
【０１２０】
例１２〜１９のいずれかの主題を含む例２０において、デバイスは、スクリーン画像の平面の向きの表示を他のデバイスから受信するためのラスタライズコンポーネントを備え得る。
【０１２１】
例２１において、２Ｄイメージを３Ｄモデルデータからレンダリングするためのコンピュータ実装方法は、シェーディングピクセルによりカバーされる２Ｄスクリーン画像の第１の領域内の３Ｄモデルから派生したスクリーン画像の第１の可視プリミティブをクリッピングして、第１の領域と第１の可視プリミティブとの交点を表す第１のポリゴンを形成する段階と、第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを、第１のポリゴンの各頂点に対して補間する段階と、第１のポリゴンの複数の頂点の複数の色値を、スクリーン画像のスクリーンピクセルによりカバーされる第２の領域内のポイントに対して補間する段階とを備え、第２の領域は、第１の領域より小さく、第１の領域と少なくとも部分的に一致する。
【０１２２】
例２１の主題を含む例２２において、方法は、２Ｄスクリーン画像の多数の可視プリミティブの特性に基づいて第１の領域のサイズを決定する段階を備え得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１２３】
例２１〜２２のいずれかの主題を含む例２３において、ポイントは、スクリーンピクセルの中心に位置し得、方法は、多数のポリゴンの各ポリゴンの複数の境界に対するポイントの位置に基づいて、クリッピングコンポーネントにより形成される多数のポリゴンの複数の頂点から第１のポリゴンの複数の頂点を選択し、少なくとも１つのアトリビュートを、第１のポリゴンの複数の頂点から補間する段階を備え得、多数のポリゴンは、第１のポリゴンを含む。
【０１２４】
例２１〜２３のいずれかの主題を含む例２４において、ポイントは、スクリーンピクセル内に収まるサンプルの位置と一致し得、サンプルは、第１の可視プリミティブのラスタライズにおいて使用される。
【０１２５】
例２１〜２４のいずれかの主題を含む例２５において、方法は、第１のポリゴンの複数の頂点の複数の色値を、第１のポリゴンの複数の頂点に対して補間される少なくとも１つのアトリビュートから派生させる段階を備え得る。
【０１２６】
例２１〜２５のいずれかの主題を含む例２６において、方法は、第１の領域内の２Ｄスクリーン画像の第２の可視プリミティブをクリッピングして、第１の領域と第２の可視プリミティブとの交点を表す第２のポリゴンを形成する段階を備え得、第２のポリゴンは、第１のポリゴンとエッジの少なくとも一部を共有する。
【０１２７】
例２１〜２６のいずれかの主題を含む例２７において、第１のポリゴンの頂点は、シェーディングピクセルの境界に沿った位置を第２のポリゴンの頂点と共有し得る。
【０１２８】
例２１〜２７のいずれかの主題を含む例２８において、方法は、ディスプレイ上にスクリーン画像を提示する段階を備え得る。
【０１２９】
例２１〜２８のいずれかの主題を含む例２９において、方法は、スクリーン画像を表すスクリーン画像データを別のデバイスに送信する段階を備え得る。
【０１３０】
例２１〜２９のいずれかの主題を含む例３０において、方法は、３Ｄモデルの複数のプリミティブをラスタライズして、２Ｄスクリーン画像において可視の多数の可視プリミティブを識別する段階を備え得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１３１】
例３１において、少なくとも１つの機械可読ストレージ媒体は、コンピューティングデバイスにより実行されると、コンピューティングデバイスに、シェーディングピクセルによりカバーされる２Ｄスクリーン画像の第１の領域内の３Ｄモデルから派生したスクリーン画像の第１の可視プリミティブをクリッピングして、第１の領域と第１の可視プリミティブとの交点を表す第１のポリゴンを形成し、第１の可視プリミティブの複数の頂点の少なくとも１つのアトリビュートを、第１のポリゴンの各頂点に対して補間し、第１のポリゴンの複数の頂点の複数の色値を、スクリーン画像のスクリーンピクセルによりカバーされる第２の領域内のポイントに対して補間する複数の命令を備え、第２の領域は、第１の領域より小さく、第１の領域と少なくとも部分的に一致する。
【０１３２】
例３１の主題を含む例３２において、コンピューティングデバイスは、２Ｄスクリーン画像の多数の可視プリミティブの特性に基づいて第１の領域のサイズを決定するようにされ得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１３３】
例３１〜３２のいずれかの主題を含む例３３において、ポイントは、スクリーンピクセルの中心に位置し得、コンピューティングデバイスは、多数のポリゴンの各ポリゴンの複数の境界に対するポイントの位置に基づいて、クリッピングコンポーネントにより形成される多数のポリゴンの複数の頂点から第１のポリゴンの複数の頂点を選択し、少なくとも１つのアトリビュートを、第１のポリゴンの複数の頂点から補間するようにされ、多数のポリゴンは、第１のポリゴンを含む。
【０１３４】
例３１〜３３のいずれかの主題を含む例３４において、ポイントは、スクリーンピクセル内に収まるサンプルの位置と一致し得、サンプルは、第１の可視プリミティブのラスタライズにおいて使用される。
【０１３５】
例３１〜３４のいずれかの主題を含む例３５において、コンピューティングデバイスは、第１のポリゴンの複数の頂点の複数の色値を、第１のポリゴンの複数の頂点に対して補間される少なくとも１つのアトリビュートから派生させるようにされ得る。
【０１３６】
例３１〜３５のいずれかの主題を含む例３６において、コンピューティングデバイスは、第１の領域内の２Ｄスクリーン画像の第２の可視プリミティブをクリッピングして、第１の領域と第２の可視プリミティブとの交点を表す第２のポリゴンを形成するようにされ得、第２のポリゴンは、第１のポリゴンとエッジの少なくとも一部を共有する。
【０１３７】
例３１〜３６のいずれかの主題を含む例３７において、第１のポリゴンの頂点は、シェーディングピクセルの境界に沿った位置を第２のポリゴンの頂点と共有し得る。
【０１３８】
例３１〜３７のいずれかの主題を含む例３８において、コンピューティングデバイスは、ディスプレイ上にスクリーン画像を提示するようにされ得る。
【０１３９】
例３１〜３８のいずれかの主題を含む例３９において、コンピューティングデバイスは、スクリーン画像を表すスクリーン画像データを別のデバイスに送信するようにされ得る。
【０１４０】
例３１〜３９のいずれかの主題を含む例４０において、コンピューティングデバイスは、スクリーン画像のピクセル解像度をディスプレイのピクセル解像度に設定するようにされ得る。
【０１４１】
例３１〜４０のいずれかの主題を含む例４１において、コンピューティングデバイスは、３Ｄモデルの複数のプリミティブをラスタライズして、２Ｄスクリーン画像において可視の多数の可視プリミティブを識別するようにさせられ得、多数の可視プリミティブは、第１の可視プリミティブを含む。
【０１４２】
例４２において、少なくとも１つの機械可読ストレージ媒体は、コンピューティングデバイスにより実行されると、コンピューティングデバイスに上記のいずれかを実行させる複数の命令を備え得る。
【０１４３】
例４３において、２Ｄイメージを３Ｄモデルデータからレンダリングするためのデバイスは、上記のいずれかを実行するための手段を備え得る。
【図１】
0006326152.tif 000002
【図２】
0006326152.tif 000003
【図３】
0006326152.tif 000004
【図４】
0006326152.tif 000005
【図５】
0006326152.tif 000006
【図６】
0006326152.tif 000007
【図７】
0006326152.tif 000008
【図８】
0006326152.tif 000009
【図９Ａ】
0006326152.tif 000010
【図９Ｂ】
0006326152.tif 000011
【図１０】
0006326152.tif 000012
【図１１】
0006326152.tif 000013
【図１２】
0006326152.tif 000014
【図１３】
0006326152.tif 000015
【図１４】
0006326152.tif 000016