(57)【特許請求の範囲】
【請求項１】
グラフィックスパイプラインを実施するための方法であって、
高解像度の第１のシャドーマップを作ることと、
前記第１のシャドーマップに基づいて、前記第１のシャドーマップよりも低解像度を有する第２のシャドーマップを作ることと、
仮想シーンに影響を及ぼす光源を判定することと、
前記仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影することと、
少なくとも１つのフラグメントを含むジオメトリの第１のセットが第１の画素に描かれたことを判定することと、
前記光源に基づいて、前記ジオメトリの第１のセットがシャドー内にあることを判定することと、
前記グラフィックスパイプラインのフラグメントシェーダを用いて、前記仮想シーンの画像をレンダリングするとき、ユーザの注目が向く場所に対応する、中心窩領域を判定することと、
前記フラグメントシェーダを用いて、前記ジオメトリの第１のセットが前記中心窩領域の外側にあることを判定することと、
前記第２のシャドーマップを使用して、前記第１の画素に関する前記ジオメトリの第１のセットをレンダリングすることと、
を含む、方法。
【請求項２】
ジオメトリの第２のセットが第２の画素に描かれたことを判定することと、
前記ジオメトリの第２のセットが前記中心窩領域の内側にあることを判定することと、
前記第１のシャドーマップを使用して、前記第２の画素に関する前記ジオメトリの第２のセットをレンダリングすることと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記中心窩領域からの距離に基づいて、一連のシャドーマップを作ることであって、前記中心窩領域からの前記距離が増加するにつれて、前記一連のシャドーマップの解像度は減少する、前記作ることと、
ジオメトリの第３のセットが前記中心窩領域の外側にある第３の画素に描かれたことを判定することと、
前記光源に基づいて、前記第３のセットがシャドー内にあることを判定することと、
前記中心窩領域から前記第３の画素内に描かれた前記ジオメトリの第３のセットの距離を判定することと、
前記ジオメトリの第３のセットの前記距離に基づいて、第３のシャドーマップを前記一連のシャドーマップから選択することと、
前記第３のシャドーマップを使用して、前記第３の画素に関する前記ジオメトリの第３のセットをレンダリングすることと、
をさらに含む、請求項１に記載の方法。
【請求項４】
静止している前記中心窩領域を前記ディスプレイの中心にセンタリングすること、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記仮想シーンを視認するユーザの視線を追跡することであって、前記視線は前記ユーザの前記注目が向いている前記仮想シーンへの方向を示す、前記追跡することと、
前記ユーザが前記仮想シーンの前記画像を視認する第１の方向を判定することと、
前記第１の方向に基づいて、前記中心窩領域を前記画像内で移動させることと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ディスプレイは、ヘッドマウントディスプレイを含む、請求項１に記載の方法。
【請求項７】
前記第１の画素に関する前記ジオメトリの第１のセットをレンダリングするとき、前記中心窩領域の周辺領域内のシャドーイングを前記第２のシャドーマップを使用してレンダリングすることに制限すること、
をさらに含む、請求項１に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ビデオゲーム技術の進歩にともない、ビデオゲームは、ますます、人気が出ている。例えば、高出力のグラフィックスプロセッサは、ビデオゲームをプレイするとき、信じられないほどの視聴及び対話型体験を提供している。加えて、ディスプレイは、より高い解像度で設計されている。例えば、本発明の技術は、約１９：１０のアスペクト比を有する２Ｋ解像度（例えば、２０４８×１０８０画素にわたる２．２メガピクセル）を有するディスプレイを含む。１６：９のアスペクト比を有する４Ｋ  ＵＨＤ（超高精細）解像度（例えば、３８４０×２１６０画素にわたる８．２メガピクセル）を有する他のディスプレイは、現在、市場に販売促進され、勢いが増すことが予想される。高解像度ディスプレイとともにグラフィックス処理能力は増加し、特に、より高解像度のディスプレイを利用するように設計されたビデオゲーム及びゲームエンジンをプレイするとき、従来では信じられないほどの視聴経験をユーザに提供している。
【０００２】
また、レンダリング画像／フレームを高解像度ディスプレイに反映するには、レンダリングエンジンとディスプレイとの間等の帯域幅容量を増加する必要がある。ほとんどの場合、有線接続は、ディスプレイをサポートするために必要な帯域幅を扱うことが可能なはずである。しかしながら、ゲームシステムは、ますます、データをディスプレイに反映するとき、障壁をもたらし得る無線接続で構成されるようになっている。例えば、無線接続は、ユーザに対してローカルにあるゲーム機とディスプレイとの間で確立し得る。これらの場合、無線接続は、より高解像度のディスプレイを十分に利用するために必要な帯域幅を扱うのに十分に安定性が高くない場合があり、それにより、レンダリングされる動画像列全体を表示するために（バッファで満たされるときに）、表示されるビデオゲームは妨害され得る。いくつかの場合、ビデオゲーム処理は、ディスプレイへの無線接続の低域帯域幅と一致するために、スロットル調整され得、それにより、ビデオフレームは、遮断することなく、無線接続を通して、ビデオデータを反映するために、より低解像度でレンダリングされ得る。しかしながら、処理をスロットル調整することによって、ユーザに、より高解像度のグラフィックスで十分なゲーム経験が与えられない。
【０００３】
特に、ビデオゲームをプレイするとき、ユーザにとって高レベルの満足感を達成するために、グラフィックス処理を修正することは有益である。
【０００４】
この状況において、本開示の実施形態が生じる。
【発明の概要】
【０００５】
本開示の実施形態は、高解像度を有する中心窩領域内の画像の部分と、より低解像度を有する中心窩領域の外側の部分とを表示するように構成される、中心窩レンダリングに関する。具体的には、中心窩領域の内側にある画像内のオブジェクトのシャドーイングは、高解像度のシャドーマップを使用してレンダリングされる。中心窩領域の外側にあるオブジェクトのシャドーイングは、より低解像度のシャドーマップを使用してレンダリングされる。したがって、より高解像度で全てのシャドーを算出する代わりに、中心窩領域内部に表示されるシャドーだけが、より高解像度のシャドーマップを使用してレンダリングされる。当該方式では、例えば、複雑度が少ない画像に部分的に起因して、表示される一連のビデオフレームに関する全帯域幅は小さくなる。さらに、一連のビデオフレームは、算出複雑度が少なくなるため最小のレイテンシで、またはレイテンシがなく、リアルタイムで、（例えば、有線または無線接続を通して）送達されることができる。加えて、中心窩領域の内側にある画像内のオブジェクトのアニメーションは、フル解像度のボーン階層を使用して行われ及びレンダリングされる。中心窩領域の外側にあるオブジェクトのアニメーションは、より低解像度のボーン階層を使用して行われ及びレンダリングされる。したがって、周辺領域内に位置するオブジェクトは、オブジェクトをレンダリングするための処理コストを減らすより低解像度のボーン階層を使用してアニメ化及びレンダリングされる。当該方式では、表示される一連のビデオフレームに関する全帯域幅は小さくなる。
【０００６】
一実施形態では、グラフィックスパイプラインを実施するための方法を開示する。本方法は、高解像度の第１のシャドーマップを作ることを含む。本方法は、第１のシャドーマップに基づいて、第２のシャドーマップを作ることを含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。本方法は、仮想シーンに影響を及ぼす光源を判定することを含む。本方法は、仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影することを含む。本方法は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、ジオメトリの第１のセットが第１の画素に描かれたことを判定することを含む。本方法は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定することを含む。本方法は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定することを含む。本方法は、第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングすることを含む。
【０００７】
さらに別の実施形態では、コンピュータシステムが開示される。コンピュータシステムはプロセッサ及びメモリを含み、メモリは、プロセッサに結合され、コンピュータシステムによって実行される場合、コンピュータシステムに、グラフィックスパイプラインを実施するための方法を実行させる命令をメモリ内に記憶する。本方法は、高解像度の第１のシャドーマップを作ることを含む。本方法は、第１のシャドーマップに基づいて、第２のシャドーマップを作ることを含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。本方法は、仮想シーンに影響を及ぼす光源を判定することを含む。本方法は、仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影することを含む。本方法は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、ジオメトリの第１のセットが第１の画素に描かれたことを判定することを含む。本方法は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定することを含む。本方法は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定することを含む。本方法は、第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングすることを含む。
【０００８】
別の実施形態では、グラフィックスパイプラインを実施するためのコンピュータプログラムを記憶する非一時的なコンピュータ可読媒体が開示される。コンピュータ可読媒体は、高解像度の第１のシャドーマップを作るためのプログラム命令を含む。当該媒体は、第１のシャドーマップに基づいて、第２のシャドーマップを作るためのプログラム命令を含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。当該媒体は、仮想シーンに影響を及ぼす光源を判定するためのプログラム命令を含む。当該媒体は、仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影するためのプログラム命令を含む。当該媒体は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定するためのプログラム命令を含み、中心窩領域はユーザの注目が向く場所に対応する。当該媒体は、ジオメトリの第１のセットが第１の画素に描かれたことを判定するためのプログラム命令を含む。当該媒体は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定するためのプログラム命令を含む。当該媒体は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定するためのプログラム命令を含む。当該媒体は、第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングするためのプログラム命令を含む。
【０００９】
一実施形態では、グラフィックスパイプラインを実施するための方法を開示する。本方法は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成することを含む。本方法は、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定することを含む。本方法は、オブジェクトを含む仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、オブジェクトの少なくとも一部が画像に関する周辺領域内に位置していることを判定することを含む。本方法は、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化することを含む。
【００１０】
さらに別の実施形態では、コンピュータシステムが開示される。コンピュータシステムはプロセッサ及びメモリを含み、メモリは、プロセッサに結合され、コンピュータシステムによって実行される場合、コンピュータシステムに、グラフィックスパイプラインを実施するための方法を実行させる命令をメモリ内に記憶する。本方法は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成することを含む。本方法は、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定することを含む。本方法は、オブジェクトを含む仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、オブジェクトの少なくとも一部が画像に関する周辺領域内に位置していることを判定することを含む。本方法は、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化することを含む。
【００１１】
別の実施形態では、グラフィックスパイプラインを実施するためのコンピュータプログラムを記憶する非一時的なコンピュータ可読媒体が開示される。コンピュータ可読媒体は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成するためのプログラム命令を含む。当該媒体は、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定するためのプログラム命令を含む。当該媒体は、オブジェクトを含む仮想シーンの画像をレンダリングするとき、中心窩領域を判定するためのプログラム命令を含み、中心窩領域はユーザの注目が向く場所に対応する。当該媒体は、オブジェクトの少なくとも一部が画像に関する周辺領域内に位置していることを判定するためのプログラム命令を含む。当該媒体は、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化するためのプログラム命令を含む。
【００１２】
本開示の他の利点は、本開示の原理の例を用いて示す添付の図面と併せて解釈される以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１３】
本開示は、添付の図面と併せて解釈される以下の説明を参照して最良に理解され得る。
【００１４】
【図１Ａ】本開示の一実施形態による、対話型体験をＶＲコンテンツに提供するように構成されるシステムを示す。
【００１５】
【図１Ｂ】本発明の実施形態による、実行するビデオゲームと併せてＨＭＤの機能を概念的に示す。
【図１Ｃ】本発明の実施形態による、実行するビデオゲームと併せてＨＭＤの機能を概念的に示す。
【００１６】
【図２Ａ】本開示の一実施形態による、対応するユーザに対してローカルで実行する１つ以上のゲームアプリケーションをプレイする１人以上のユーザにゲーム制御を提供する、システムを示す。
【００１７】
【図２Ｂ】本開示の一実施形態による、クラウドゲームネットワークを通して実行されるゲームアプリケーションをプレイする１人以上のユーザにゲーム制御を提供する、システムを示す。
【００１８】
【図３Ａ】本開示の一実施形態による、ディスプレイ上に示され、高解像度の中心窩領域を含み、中心窩領域がディスプレイの中心に対応する、画像を示す。
【００１９】
【図３Ｂ】本開示の一実施形態による、ディスプレイ上に示され、高解像度の中心窩領域を含み、中心窩領域が、ユーザの自身の視線が向いているディスプレイの場所に対応する、画像を示す。
【００２０】
【図４】本開示の一実施形態による、異なるシャドーマップを使用して、シャドーのレンダリングを含む中心窩レンダリングを行うように構成されるグラフィックスプロセッサを実施し、シャドーが中心窩領域内にあるかどうかに基づいて適切なシャドーマップを使用してシャドーをレンダリングし、中心窩領域に関して表示されるその場所に基づいて適切なシャドーマップを使用して、シャドーをレンダリングする、グラフィックスプロセッサを示す。
【００２１】
【図５】本開示の一実施形態による、異なるシャドーマップを使用してシャドーのレンダリングを含む中心窩レンダリングを行うように構成されるグラフィックスパイプラインを実施し、中心窩領域内の画像の部分がより高解像度でレンダリングされ、周辺領域内の画像の部分がより低解像度でレンダリングされ、中心窩領域に関して表示されるその場所に基づいて適切なシャドーマップを使用して、シャドーをレンダリングする方法のステップを示すフロー図である。
【００２２】
【図６Ａ】本開示の一実施形態による、画像が中心窩領域内に表示されるシャドーのレンダリングを示す、ゲーム世界の仮想シーンの画像の例証図である。
【００２３】
【図６Ｂ】本開示の一実施形態による、画像内でレンダリングされる、周辺領域内に表示されるシャドーのレンダリングを示す、図６Ａに導入される仮想シーンの例証図である。
【００２４】
【図６Ｃ】本開示の一実施形態による、図６Ａに導入される仮想シーンに適用される徐々に低解像度になる一連のシャドーマップの例証図である。
【００２５】
【図７】本開示の一実施形態による、アニメ化されたオブジェクトが中心窩領域内に表示されたかどうかに応じて異なるボーン階層を使用して、オブジェクトのアニメーション及びレンダリングを含む中心窩レンダリングを行うように構成されるグラフィックスパイプラインを実施する、グラフィックスプロセッサを示す。
【００２６】
【図８】本開示の一実施形態による、中心窩レンダリングを行うように構成されるグラフィックスパイプラインを実施し、中心窩領域内の画像の部分がより高解像度でレンダリングされ、周辺領域内の画像の部分がより低解像度でレンダリングされ、高解像度のボーン階層を使用して中心窩領域内のオブジェクトのアニメーション及びレンダリングを行い、低解像度のボーン階層を使用して中心窩領域内のオブジェクトのアニメーション及びレンダリングを行う方法のステップを示すフロー図である。
【００２７】
【図９】本開示の一実施形態による、オブジェクトが中心窩領域内に表示されるときに高解像度のボーン階層を使用するオブジェクトのアニメーション及びレンダリングと、オブジェクトが周辺領域内に表示されるときに低解像度のボーン階層を使用するオブジェクトのアニメーション及びレンダリングとの例証図である。
【００２８】
【図１０】本開示の実施形態による、ヘッドマウントディスプレイのコンポーネントを示す図である。
【００２９】
【図１１】本開示の様々な実施形態による、ゲームシステムのブロック図である。
【発明を実施するための形態】
【００３０】
以下の詳細な説明が例証の目的のために多くの具体的な詳細を含有するが、当業者は、以下の詳細に対する多くの変形及び改変が本開示の範囲内にあることを認識する。したがって、下記に説明される本開示の態様は、一般概念のいかなる損失を生じさせることなく、この説明に続く「特許請求の範囲」に制限を課すことなく記述されている。
【００３１】
概して、本開示の様々な実施形態は、中心窩レンダリングを行うように構成されるビデオレンダリングシステムのグラフィックスプロセッサを説明し、中心窩領域内の画像の部分は高解像度でレンダリングされ得、中心窩領域の外側の部分はより低解像度でレンダリングされ得る。具体的には、中心窩領域の内側に表示されるオブジェクトのシャドーイングはより高解像度のシャドーマップを使用してレンダリングされ、中心窩領域の外側に表示されるオブジェクトのシャドーイングはより低解像度のシャドーマップを使用してレンダリングされる。また、オブジェクトが周辺領域内にあるとき、低解像度のボーン階層を使用してオブジェクトのアニメーションを行い、それにより、また、低解像度のボーン階層に関連付けられるより低解像度のプリミティブを使用して、オブジェクトをレンダリングする。また、オブジェクトが中心窩領域内にあるとき、高解像度のボーン階層を使用してオブジェクトのアニメーションを行い、それにより、高解像度のボーン階層に関連付けられるより高解像度のプリミティブを使用して、オブジェクトをレンダリングする。いくつかの実施形態では、中心窩レンダリングは、ヘッドマウントディスプレイ（ＨＭＤ）の内部に画像を表示する目的の範囲内、または、その目的のために行われる。
【００３２】
様々な実施形態の上記の一般的理解によって、ここで、実施形態の例示的詳細は、様々な図面を参照して説明される。
【００３３】
本明細書の全体を通して、「ビデオゲーム」または「ゲームアプリケーション」への言及は、入力コマンドの実行によって指示される任意の種類の対話型アプリケーションを表すことを意味する。例証の目的だけのために、対話型アプリケーションは、ゲーム用アプリケーション、ワード処理、ビデオ処理、ビデオゲーム処理等を含む。さらに、用語「ビデオゲーム」及び「ゲームアプリケーション」は交換可能である。
【００３４】
図１Ａは、本発明の実施形態による、ビデオゲームの対話型ゲームプレイ用のシステムを示す。ユーザ１００がヘッドマウントディスプレイ（ＨＭＤ）１０２を装着するように示されている。ＨＭＤ１０２は、眼鏡、ゴーグル、またはヘルメットと同様の方式で装着され、ビデオゲームを対話型ビデオゲームから、または他のコンテンツを対話型アプリケーションから、ユーザ１００に表示するように構成される。ＨＭＤ１０２は、ユーザの眼に密接する表示機構のその準備によって、超没入体験をユーザに提供する。したがって、ＨＭＤ１０２は、ユーザの視野の大部分またはさらに全体を占めるユーザの眼のそれぞれに、表示領域を提供することができる。図１Ａ〜図１Ｂ及び他の図によって、レンダリング画像を表示するために、ＨＭＤを使用して示されているが、本発明の実施形態は任意の表示デバイス内で中心窩レンダリングを行うために適切であり、中心窩レンダリングは、中心窩領域に対するシャドーの場所に基づいて、画像内のシャドーをレンダリングすることと、レンダリング画像を任意のディスプレイ上に表示することとを含む。
【００３５】
一実施形態では、ＨＭＤ１０２は、中心窩レンダリングで構成される画像を表示するように構成可能であり、中心窩領域内の画像の部分が高解像度で表示され、中心窩領域の外側の部分がより低解像度で表示される。具体的には、シャドーが表示される中心窩領域の内側または外側にあるかどうかに応じて、異なるように、シャドーイングをレンダリングする。例えば、中心窩領域の内側にある画像内のオブジェクトのシャドーイングは、高解像度のシャドーマップを使用してレンダリングされる。中心窩領域の外側にあるオブジェクトのシャドーイングは、より低解像度のシャドーマップを使用してレンダリングされる。したがって、より高解像度のシャドーマップを使用して全てのシャドーイングを算出する代わりに、中心窩領域内部に表示されるシャドーだけが、より高解像度のシャドーマップを使用してレンダリングされ、それによって、対応する画像内の全てのシャドーイングをレンダリングするのに必要な算出を少なくする。また、中心窩領域の外側にあるより低解像度でレンダリングされるシャドーを含有する各画像は、より高解像度で全てレンダリングされるシャドーを含有する画像よりも少なく、データを定義することが要求される。当該方式では、表示される一連のビデオフレームに関する全帯域幅は小さくなる。
【００３６】
一実施形態では、ＨＭＤ１０２は、コンピュータまたはゲーム機１０６に接続されることができる。コンピュータ１０６への接続は、有線または無線であり得る。コンピュータ１０６は、限定ではないが、ゲーム機、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、携帯電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイス等を含む、当技術分野で既知である任意の汎用または専用コンピュータであり得る。一実施形態では、コンピュータ１０６は、ビデオゲームを実行し、ＨＭＤ１０２によってレンダリングするために、ビデオ及び音声をビデオゲームから出力するように構成され得る。コンピュータ１０６は、ビデオゲームを実行することが制限されていないが、また、ＨＭＤ１０２によってレンダリングするために、ＶＲコンテンツ１９１を出力する対話型アプリケーションを実行するように構成され得る。一実施形態では、コンピュータ１０６は、中心窩領域の外側に表示される画像内のオブジェクトのシャドーをレンダリングするとき、より低解像度のシャドーマップの選択及び使用を行う。
【００３７】
ユーザ１００は、コントローラ１０４を動作させ、ビデオゲームに入力を提供し得る。加えて、カメラ１０８は、ユーザ１００が位置する対話環境の１つ以上の画像をキャプチャするように構成され得る。これらのキャプチャ画像は、ユーザ１００、ＨＭＤ１０２、及びコントローラ１０４の場所及び移動を判定するために分析されることができる。一実施形態では、コントローラ１０４は、その場所及び配向を判定するために追跡することができる、光または他のマーカ要素を含む。カメラ１０８は、音を対話環境からキャプチャする１つ以上のマイクロホンを含み得る。マイクロホン配列によってキャプチャされる音は、音源の場所を識別するために処理され得る。識別された場所からの音は、識別された場所からではない他の音を排除するために、選択的に利用または処理されることができる。さらに、カメラ１０８は、複数の画像キャプチャデバイス（例えば、立体カメラ対）、ＩＲカメラ、深度カメラ、及びそれらの組み合わせを含むように定義されることができる。
【００３８】
別の実施形態では、コンピュータ１０６は、クラウドゲームプロバイダ１１２とネットワークを通して通信して、シンクライアントとして機能する。クラウドゲームプロバイダ１１２は、ユーザ１０２によってプレイされるビデオゲームを維持及び実行する。コンピュータ１０６は、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８からの入力をクラウドゲームプロバイダに伝送し、クラウドゲームプロバイダは、実行するビデオゲームのゲーム状態に影響を及ぼす入力を処理する。ビデオデータ、音声データ、及び触覚フィードバックデータ等の実行するビデオゲームからの出力は、コンピュータ１０６に伝送される。コンピュータ１０６は、さらに、伝送前にデータを処理し得る、または、データを関連デバイスに直接伝送し得る。例えば、ビデオ及び音声ストリームはＨＭＤ１０２に提供される一方、触覚フィードバックデータは、コントローラ１０４に提供される振動フィードバックコマンドを生成するために使用される。
【００３９】
一実施形態では、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８は、それら自体が、ネットワーク１１０に接続し、クラウドゲームプロバイダ１１２と通信する、ネットワークデバイスであり得る。例えば、コンピュータ１０６は、別にビデオゲーム処理を行わないが、通過ネットワークトラフィックを容易にする、ルータ等のローカルネットワークデバイスであり得る。ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８（すなわち、画像キャプチャデバイス）によるネットワークへの接続は、有線または無線であり得る。
【００４０】
さらに別の実施形態では、コンピュータ１０６はビデオゲームの一部を実行し得る一方、ビデオゲームの残りの部分は、クラウドゲームプロバイダ１１２上で実行され得る。他の実施形態では、ビデオゲームの一部は、また、ＨＭＤ１０２で実行され得る。例えば、ビデオゲームをコンピュータ１０６からダウンロードするための要求は、クラウドゲームプロバイダ１１２によってサービスされ得る。要求がサービスされている間に、クラウドゲームプロバイダ１１２はビデオゲームの一部を実行し、ＨＭＤ１０２上にレンダリングするために、ゲームコンテンツをコンピュータ１０６に提供し得る。コンピュータ１０６は、ネットワーク１１０を通して、クラウドゲームプロバイダ１１２と通信し得る。ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８から受信した入力がクラウドゲームプロバイダ１１２に伝送され、その間に、ビデオゲームはコンピュータ１０６上にダウンロードしている。クラウドゲームプロバイダ１１２は、実行するビデオゲームのゲーム状態に影響を及ぼす入力を処理する。ビデオデータ、音声データ、及び触覚フィードバックデータ等の実行するビデオゲームからの出力は、各々のデバイスへの前方伝送のために、コンピュータ１０６に伝送される。
【００４１】
いったんビデオゲームがコンピュータ１０６に完全にダウンロードされると、コンピュータ１０６は、ビデオゲームを実行し、クラウドゲームプロバイダ１１２上に中止した場所からビデオゲームのゲームプレイを再開し得る。ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８からの入力はコンピュータ１０６によって処理され、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８から受信された入力に応答して、ビデオゲームのゲーム状態を調節する。係る実施形態では、コンピュータ１０６におけるビデオゲームのゲーム状態は、クラウドゲームプロバイダ１１２におけるゲーム状態と同期する。同期化は、コンピュータ１０６及びクラウドゲームプロバイダ１１２の両方において、ビデオゲームの現在の状態を継続することが定期的に行われ得る。コンピュータ１０６は、出力データを関連デバイスに直接伝送し得る。例えば、ビデオ及び音声ストリームはＨＭＤ１０２に提供される一方、触覚フィードバックデータは、コントローラ１０４に提供される振動フィードバックコマンドを生成するために使用される。
【００４２】
図１Ｂは、本発明の実施形態による、ＶＲコンテンツ１９１の生成と併せたＨＭＤ１０２の機能（例えば、アプリケーション及び／またはビデオゲームの実行等）を概念的に示す。いくつかの実施態様では、ＶＲコンテンツエンジン１２０は、ＨＭＤ１０２に通信するように結合されるコンピュータ１０６（図示されない）で実行される。コンピュータは、ＨＭＤに対してローカルであり得る（例えば、ローカルエリアネットワークの一部）、または、リモートに位置し（例えば、広域ネットワーク、クラウドネットワーク等の一部）、ネットワークを介してアクセスされ得る。ＨＭＤ１０２とコンピュータ１０６との間の通信は、有線接続プロトコルまたは無線接続プロトコルに従い得る。例えば、アプリケーションを実行するＶＲコンテンツエンジン１２０は、ビデオゲームを実行するビデオゲームエンジンであり得、ビデオゲームのゲーム状態を更新するために入力を受信するように構成される。図１Ｂの以下の説明は、簡潔及び明確にする目的のために、ビデオゲームを実行するＶＲコンテンツエンジン１２０の状況の範囲内で説明され、ＶＲコンテンツ１９１を生成することが可能である任意のアプリケーションの実行を表すことが意図される。オブジェクトの存在及び場所、仮想環境の状態、イベントのトリガ、ユーザプロフィール、視点等の様々な態様の現在のゲームプレイを定義するビデオゲームの様々なパラメータの値によって、少なくとも部分的に、ビデオゲームのゲーム状態を定義することができる。
【００４３】
示される実施形態では、ゲームエンジン１２０は、例として、コントローラ入力１６１、音声入力１６２、及び運動入力１６３を受信する。コントローラ入力１６１は、ハンドヘルドゲームコントローラ１０４（例えば、Ｓｏｎｙ  ＤＵＡＬＳＨＯＣＫ（登録商標）４  無線コントローラ、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｍｏｖｅ  モーションコントローラ）、または装着可能グローブインターフェースコントローラ等の装着可能コントローラ等の、ＨＭＤ１０２から分離しているゲームコントローラの動作から定義され得る。例として、コントローラ入力１６１は、方向入力、ボタン押し、トリガアクティベーション、運動、ジェスチャ、またはゲームコントローラの動作から処理される他の種類の入力を含み得る。音声入力１６２は、ＨＭＤ１０２のマイクロホン１５１から、もしくは画像キャプチャデバイス１０８内に含まれるマイクロホンから、またはローカルシステム環境内の他の場所で処理されることができる。運動入力１６３は、ＨＭＤ１０２内に含まれる運動センサ１５９から、またはＨＭＤ１０２の画像をキャプチャするときに画像キャプチャデバイス１０８から処理されることができる。ＶＲコンテンツエンジン１２０（例えば、ゲームアプリケーションを実行するエンジン）は、ビデオゲームのゲーム状態を更新するゲームエンジンの構成に従って処理される入力を受信する。エンジン１２０は、ゲーム状態データを様々なレンダリングモジュールに出力し、レンダリングモジュールは、ゲーム状態データを処理し、ユーザに提示されるコンテンツを定義する。
【００４４】
示される実施形態では、ビデオレンダリングモジュール１８３は、ＨＭＤ１０２上に提示するために、ビデオストリームをレンダリングすることが定義される。中心窩ビューレンダラ１９０は、ビデオレンダリングモジュール１８３と一体となっている及び／またはビデオレンダリングモジュール１８３から独立して、中心窩画像をレンダリングするように構成される。加えて、複数の実施形態では、中心窩ビューレンダラ１９０によって提供される機能は、ビデオレンダリングモジュール１８３の内部に組み込まれ得る。具体的には、中心窩ビューレンダラ１９０は、中心窩レンダリングを行うように構成され、中心窩領域内の画像の部分は高解像度を伴い、中心窩領域の外側の部分はより低解像度を有する。より具体的には、対応する画像をレンダリングための算出を減らすために、より低解像度のシャドーマップを使用して、中心窩領域の外側にあるオブジェクトのシャドーイングをレンダリングする。中心窩領域の内側にあるオブジェクトのシャドーイングは、より高解像度のシャドーマップを使用してレンダリングされる。中心窩フラグメント判定部１９２は、レンダリングされたフラグメントが中心窩領域の内側または外側に表示されたかどうかを判定するように構成される。シャドーマップセレクタ１９４は、対応するフラグメントをレンダリングするときに、どのシャドーマップを使用するかを判定するように構成される。例えば、フラグメントが中心窩領域の内側に表示されるとき、より高解像度のシャドーマップを選択し、フラグメントが中心窩領域の外側に表示されるとき、より低解像度のシャドーマップを選択する。さらに、表示されるように、シャドーマップセレクタ１９４は、対応するフラグメントの中心窩領域からの距離に基づいて、適切なシャドーマップを選択するように構成され、中心窩領域からの距離が増加するにつれて一連のシャドーマップの解像度が減少するような中心窩領域からの距離に基づいて、一連のシャドーマップを生成する。シャドーマップ生成部１９５は、より高解像度及びより低解像度のシャドーマップを作るように構成され、上記に説明したような一連のシャドーマップを含む。例えば、第１のシャドーマップはより高解像度で生成され得、第１のシャドーマップの他のミップマップは、第１のシャドーマップ（例えば、解像度を減少させるシャドーマップ）に基づいて生成され得る。具体的には、一連のミップマップは、それぞれが第１のシャドーマップの徐々に低解像度になる、シャドーマップを定義し得る。
【００４５】
ＨＭＤ１０２内の光学部１７０のレンズは、ＶＲコンテンツ１９１を視認するように構成される。ディスプレイスクリーン１７５は、光学部１７０のレンズの後ろに配置され、その状態では、光学部１７０のレンズは、ＨＭＤ１０２がユーザによって装着されるとき、ディスプレイスクリーン１７５とユーザの眼１６０との間にある。当該方式では、ビデオストリームは、ディスプレイスクリーン／プロジェクタ機構１７５によって提示され、ユーザの眼１６０によって光学部１７０を通して視認され得る。ＨＭＤユーザは、例えば、ＨＭＤを装着し、ゲームプレイ用のビデオゲームを選択することによって、対話型ＶＲコンテンツ１９１（例えば、ＶＲビデオソース、ビデオゲームコンテンツ等）と対話することを選び得る。ビデオゲームから生じる対話型仮想現実（ＶＲ）シーンは、ＨＭＤのディスプレイスクリーン１７５上でレンダリングされる。当該方式では、ＨＭＤは、ユーザの眼に密接するＨＭＤの表示機構を準備することによって、ユーザがゲームプレイに完全に没入することを可能にする。コンテンツをレンダリングするためのＨＭＤのディスプレイスクリーン内に画定される表示領域は、ユーザの視野の大部分またはさらに全体を占め得る。一般的に、各眼は、１つ以上のディスプレイスクリーンを視認している光学部１７０の関連レンズによって支えられる。
【００４６】
音声レンダリングモジュール１８２は、ユーザによって聞くために、音声ストリームをレンダリングするように構成される。一実施形態では、音声ストリームは、ＨＭＤ１０２に関連付けられるスピーカ１５２を通して出力される。スピーカ１５２は、オープンエアスピーカ、ヘッドホン、または音声を提示することが可能である任意の他の種類のスピーカの形態を取り得ることを認識されたい。
【００４７】
一実施形態では、視線追跡カメラ１６５は、ＨＭＤ１０２内に含まれ、ユーザの視線の追跡を可能にする。１つだけの視線追跡カメラ１６５が含まれるが、２つ以上の視線追跡カメラが、ユーザの視線を追跡するために使用され得ることに留意されたい。視線追跡カメラは、ユーザの眼の画像をキャプチャし、画像はユーザの視線方向を判定するために分析される。一実施形態では、ユーザの視線方向についての情報は、ビデオレンダリングに影響を及ぼすために利用されることができる。例えば、ユーザの眼が特定の方向に見ていることが判定された場合、中心窩ビューレンダラ１９０によって提供される中心窩レンダリングによって、より詳細な高解像度、中心窩内に表示されるシャドーイングのより高解像度、中心窩の外側に表示されるシャドーイングのより低解像度、またはユーザが見ている領域のより高速な更新等を提供することによって、その方向に対するビデオレンダリングを優先または強調することができる。ユーザの視線方向は、ヘッドマウントディスプレイに対して、ユーザが位置する実環境に対して、及び／またはヘッドマウントディスプレイ上にレンダリングされる仮想環境に対して定義されることができることを認識されたい。
【００４８】
大まかに言って、視線追跡カメラ１６５によってキャプチャされた画像の分析は、単独で考慮されるとき、ＨＭＤ１０２に対するユーザの視線方向を提供する。しかしながら、ＨＭＤ１０２の追跡された場所及び配向と組み合わせて考慮されるとき、ＨＭＤ１０２の場所及び配向がユーザの頭部の場所及び配向と同じであるように、ユーザの現実世界の視線方向を判定することができる。すなわち、ユーザの眼の位置移動を追跡することと、ＨＭＤ１０２の場所及び配向を追跡することとから、ユーザの現実世界の視線方向を判定することができる。仮想環境のビューがＨＭＤ１０２上でレンダリングされるとき、ユーザの現実世界の視線方向は、仮想環境におけるユーザの仮想世界の視線方向を判定するために適用されることができる。
【００４９】
加えて、触覚フィードバックモジュール１８１は、コントローラ１０４等のＨＭＤユーザによって動作するＨＭＤ１０２または別のデバイスのいずれかに含まれる触覚フィードバックハードウェアに、信号を提供するように構成される。触覚フィードバックは、振動フィードバック、温度フィードバック、圧力フィードバック等の様々な種類の触感の形態を取り得る。
【００５０】
図１Ｃは、本発明の実施形態による、ＶＲコンテンツ１９１の生成と併せてＨＭＤ１０２の機能（例えば、アプリケーション及び／またはビデオゲームの実行等）を概念的に示す。図１Ｃは、図１ＣのＨＭＤ１０２がメッシュスキニングを適応するように構成される中心窩ビューレンダラ９１９０を含むことを除いて、図１Ｂと同様であり、図１ＢのＨＭＤ１０２は、シャドーを最適化するように構成される中心窩ビューレンダラ１９０を含む。同様に、図１Ｂ及び図１Ｃで、（ならびに、本明細書全体を通して）番号付けされたコンポーネントは、同一であり、同じ機能を行う。
【００５１】
示される実施形態では、ビデオレンダリングモジュール１８３は、ＨＭＤ１０２上に提示するために、ビデオストリームをレンダリングすることが定義される。中心窩ビューレンダラ９１９０は、ビデオレンダリングモジュール１８３と一体となっている及び／またはビデオレンダリングモジュール１８３から独立して、中心窩画像をレンダリングするように構成される。加えて、複数の実施形態では、中心窩ビューレンダラ９１９０によって提供される機能は、ビデオレンダリングモジュール１８３の内部に組み込まれ得る。具体的には、中心窩ビューレンダラ９１９０は、中心窩レンダリングを行うように構成され、中心窩領域内の画像の部分は高解像度を伴い、中心窩領域の外側の部分はより低解像度を有する。より具体的には、対応する画像をレンダリングための算出を減らすために、より低解像度のボーン階層を使用して、中心窩領域の外側にあるオブジェクトのアニメ化を行う。中心窩領域の内側にあるオブジェクトのアニメーションは、高解像度のボーン階層を使用して行われる。中心窩ビューレンダラ９１９０は、中心窩領域に対して対応する画像内のオブジェクトの各々の場所に応じて、オブジェクトのアニメーション及びレンダリングを行うように構成される。具体的には、中心窩ボーンシステム判定部９１９２は、アニメ化及び／またはレンダリングされたボーン（または、多角形または頂点を含むそのプリミティブ等）が中心窩領域の内側または外側に表示されたかどうかを判定するように構成される。ボーンシステム生成部９１９５は、オブジェクトをアニメ化するために使用されるボーン階層を生成するように構成され、オブジェクトが周辺領域内にあるとき、オブジェクトをアニメ化及びレンダリングするために使用されることができるより低解像度のボーン階層から取られたボーンのサブシステムを生成するように構成されるボーンシステムレデューサ９１９６を含む。アニメーションモジュール９１９９は、オブジェクトが中心窩領域内に表示されるときに高解像度のボーン階層を使用して、オブジェクトが周辺領域内に表示されるときに低解像度のボーン階層を使用して、オブジェクトのアニメーションを行うように構成される。ボーンシステム及びサブシステムレンダラ９４０２は、フレーム毎に基づいて、ここで、アニメ化されたオブジェクトをレンダリングするためのグラフィックスパイプラインに見られる動作を行うように構成される。
【００５２】
一実施形態では、視線追跡カメラ１６５は、ＨＭＤ１０２内に含まれ、ユーザの視線の追跡を可能にする。１つだけの視線追跡カメラ１６５が含まれるが、２つ以上の視線追跡カメラが、ユーザの視線を追跡するために使用され得ることに留意されたい。視線追跡カメラは、ユーザの眼の画像をキャプチャし、画像はユーザの視線方向を判定するために分析される。一実施形態では、ユーザの視線方向についての情報は、ビデオレンダリングに影響を及ぼすために利用されることができる。例えば、ユーザの眼が特定の方向に見ていることが判定された場合、中心窩領域内に表示されるオブジェクトをアニメ化及びレンダリングするときにより高解像度のボーン階層を使用して、周辺領域内に表示されるオブジェクトをアニメ化及びレンダリングするときにより低解像度のボーン階層を使用して、中心窩ビューレンダラ９１９０によって提供される中心窩レンダリングによって、より詳細な高解像度、またはユーザが見ている領域のより高速な更新等を提供することによって、その方向に対するビデオレンダリングを優先または強調することができる。ユーザの視線方向は、ヘッドマウントディスプレイに対して、ユーザが位置する実環境に対して、及び／またはヘッドマウントディスプレイ上にレンダリングされる仮想環境に対して定義されることができることを認識されたい。
【００５３】
図２Ａは、対応するユーザに対してローカルで実行する１つ以上のゲームアプリケーションをプレイする１人以上のユーザにゲーム制御を提供するシステム２００Ａを示し、バックエンドサーバサポート（例えば、ゲームサーバ２０５を経由してアクセス可能である）が複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され得、各ローカルコンピューティングデバイスは、シングルプレイヤーまたはマルチプレイヤービデオゲーム等のビデオゲームのインスタンスを実行し得る。例えば、マルチプレイヤーモードでは、ビデオゲームがローカルで実行している間、クラウドゲームネットワークは、同時に、情報（例えば、ゲーム状態データ）を各ローカルコンピューティングデバイスから受信し、１つ以上のローカルコンピューティングデバイスの全体を通して、適宜、当該情報を分散し、これにより、各ユーザは、マルチプレイヤービデオゲームのゲーム環境において、（例えば、ビデオゲームの対応するキャラクタによって）他のユーザと対話することが可能である。当該方式では、クラウドゲームネットワークは、マルチプレイヤーゲーム環境内でユーザ毎に、ゲームプレイを調整及び組み合わせる。ここで図面を参照すると、同様の参照番号は同一の部分または対応する部分を示す。
【００５４】
図２Ａに示されるように、複数のユーザ２１５（例えば、ユーザ１００Ａ、ユーザ１００Ｂ・・・ユーザ１００Ｎ）は、複数のゲームアプリケーションをプレイし、ゲームアプリケーションのそれぞれは、対応するユーザの対応するクライアントデバイス１０６（例えば、ゲームコンソール）上で、ローカルで実行される。クライアントデバイス１０６のそれぞれは、対応するゲームアプリケーションのローカルでの実行が行われる点で、同様に構成され得る。例えば、ユーザ１００Ａは、対応するクライアントデバイス１０６上の第１のゲームアプリケーションをプレイし得、第１のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン２１１によって実行される。第１のゲームアプリケーションを実施するゲームロジック２２６Ａ（例えば、実行可能コード）は、対応するクライアントデバイス１０６上に記憶され、第１のゲームアプリケーションを実行するために使用される。例証の目的のために、ゲームロジックは、携帯用媒体（例えば、フラッシュドライブ、コンパクトディスク等）によって、またはネットワークを経由して（例えば、ゲームプロバイダからインターネット２５０を経由してダウンロードされる）、対応するクライアントデバイス１０６に送達され得る。加えて、ユーザ１００Ｂは、対応するクライアントデバイス１０６上の第２のゲームアプリケーションをプレイし、第２のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン２１１によって実行される。第２のゲームアプリケーションは、ユーザ１００Ａのために実行する第１のゲームアプリケーションに同一であり得る、または異なるゲームアプリケーションであり得る。第２のゲームアプリケーションを実施するゲームロジック２２６Ｂ（例えば、実行可能コード）は、前述に説明したような対応するクライアントデバイス１０６上に記憶され、第２のゲームアプリケーションを実行するために使用される。さらに、ユーザ１００Ｎは、対応するクライアントデバイス１０６上のＮ番目のゲームアプリケーションをプレイし、Ｎ番目のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン２１１によって実行される。Ｎ番目のゲームアプリケーションは、第１もしくは第２のゲームアプリケーションに同一であり得る、または完全に異なるゲームアプリケーションであり得る。第３のゲームアプリケーションを実施するゲームロジック２２６Ｎ（例えば、実行可能コード）は、前述に説明したような対応するクライアントデバイス１０６上に記憶され、Ｎ番目のゲームアプリケーションを実行するために使用される。
【００５５】
前述に説明したように、クライアントデバイス１０６は、ゲームコントローラ、タブレットコンピュータ、キーボード等の様々な種類の入力デバイスからの入力と、ビデオカメラ、マウス、タッチパッド等によってキャプチャされるジェスチャとを受信し得る。クライアントデバイス１０６は、ネットワーク１５０を通してゲームサーバ２０５に接続することが可能である、少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス１０６は、ローカルまたはリモートで実行するゲームタイトル実行エンジン２１１によって実行されるレンダリング画像を生成するように、及びレンダリング画像をディスプレイ（例えば、ディスプレイ１１、ＨＭＤ１０２等）上に表示するように構成される。例えば、レンダリング画像は、ユーザ１００Ａのクライアントデバイス１０６上で実行する第１のゲームアプリケーションのインスタンスに関連付けられ得る。例えば、対応するクライアントデバイス１０６は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザのゲームプレイを実施するために、ローカルまたはリモートで実行される対応するゲームアプリケーションのインスタンスと相互作用するように構成される。クライアントデバイス１０６のいくつかの例は、パーソナルコンピュータ（ＰＣ）、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話機、またはゲームサーバ２０５と相互作用し、ビデオゲームのインスタンスを実行することができる任意の他の種類のコンピューティングデバイスを含む。
【００５６】
一実施形態では、クライアントデバイス１０６は、ゲームアプリケーションをプレイする対応するユーザのためのシングルプレイヤーモードで動作している。別の実施形態では、複数のクライアントデバイス１０６は、それぞれのユーザが特定のゲームアプリケーションをプレイする対応するユーザのためのマルチプレイヤーモードで動作している。その場合、ゲームサーバを介するバックエンドサーバサポートは、マルチプレイヤー処理エンジン２１９等によってマルチプレイヤー機能を提供し得る。具体的には、マルチプレイヤー処理エンジン２１９は、特定のゲームアプリケーション用のマルチプレイヤーゲームセッションを制御するように構成される。例えば、マルチプレイヤー処理エンジン２１９は、マルチプレイヤーセッションコントローラ２１６と通信し、マルチプレイヤーセッションコントローラ２１６は、マルチプレイヤーゲームセッションに参加するユーザ及び／またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成される。当該方式では、当該セッションにおいて、ユーザは、マルチプレイヤーセッションコントローラ２１６によって制御され、相互に通信することができる。
【００５７】
さらに、マルチプレイヤー処理エンジン２１９は、各ユーザの対応するゲーム環境内でユーザ間の対話を可能にするために、マルチプレイヤーロジック２１８と通信する。具体的には、状態共有モジュール２１７は、マルチプレイヤーゲームセッションにおけるユーザのそれぞれに関する状態を管理するように構成される。例えば、状態データは、特定地点における、対応するユーザに関する（ゲームアプリケーションの）ゲームプレイの状態を定義するゲーム状態データを含み得る。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフオーバーレイ等を含み得る。当該方式では、ゲーム状態データは、ゲームアプリケーションの対応する地点において存在するゲーム環境の生成を可能にする。ゲーム状態データは、また、ＣＰＵ、ＧＰＵ、メモリ、登録値、プログラムカウンタ値、プログラム可能ＤＭＡ状態、ＤＭＡに関するバッファデータ、オーディオチップ状態、ＣＤ−ＲＯＭ状態等の状態など、ゲームプレイをレンダリングするために使用されるすべてのデバイスの状態を含み得る。ゲーム状態データは、また、どの実行可能コードの一部が当該地点からビデオゲームを実行するためにロードされる必要があるかを識別し得る。ゲーム状態データは、データベース（図示されない）内に記憶され得、状態共有モジュール２１７によってアクセス可能である。
【００５８】
さらに、状態データは、対応するプレイヤーに関するビデオゲームを個人用にする情報を含むユーザ保存データを含み得る。これは、ユーザによってプレイされるキャラクタに関連付けられる情報を含み、これにより、ビデオゲームは、ユーザに一意であり得るキャラクタ（例えば、場所、姿、見た目、衣類、武器等）でレンダリングされる。当該方式では、ユーザ保存データは、対応するユーザのゲームプレイのキャラクタの生成を可能にし、当該キャラクタは、対応するユーザによって現在経験しているゲームアプリケーションの地点に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときに対応するユーザ１００Ａによって選択されたゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタの場所、残された寿命の数値、利用可能である寿命に関する可能である合計数、鎧、戦利品、時間カウンタ値等を含み得る。例えば、ユーザ保存データは、また、対応するユーザ１００Ａを識別するユーザプロフィールデータを含み得る。ユーザ保存データは、ストレージ（図示されない）内に記憶され得る。
【００５９】
当該方式では、状態共有データ２１７及びマルチプレイヤーロジック２１８を使用するマルチプレイヤー処理エンジン２１９は、オブジェクト及びキャラクタを、マルチプレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオーバーレイ／挿入することが可能である。例えば、第１のユーザのキャラクタは、第２のユーザのゲーム環境にオーバーレイ／挿入される。これは、それらの各々のゲーム環境のそれぞれ（例えば、スクリーン上に表示されるようなもの）を介して、マルチプレイヤーゲームセッションにおけるユーザ間の対話を可能にする。
【００６０】
図２Ｂは、本開示の一実施形態による、クラウドゲームネットワークを通して実行される各々のＶＲ視聴環境においてゲームアプリケーションをプレイする１人以上のユーザ２１５（例えば、ユーザ１００Ｌ、１００Ｍ・・・１００Ｚ）にゲーム制御を提供するシステム２００Ｂを示す。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で起動する複数の仮想マシン（ＶＭ）を含むゲームクラウドシステム２１０であり得、１つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。ここで図面を参照すると、同様の参照番号は同一の部分または対応する部分を示す。
【００６１】
示されるように、ゲームクラウドシステム２１０は、複数の対話型ビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能である任意の種類のサーバコンピューティングデバイスであり得、１つ以上のホスト上で実行する１つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ２０５は、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。したがって、複数の仮想マシンに関連付けられるゲームサーバ２０５の複数のゲームプロセッサは、複数のユーザ２１５のゲームプレイに関連付けられるゲームアプリケーションの複数のインスタンスを実行するように構成される。当該方式では、バックエンドサーバサポートは、複数のゲームアプリケーションのゲームプレイのメディア（例えば、ビデオ、音声等）を、複数の対応するユーザにストリーミングすることを提供する。
【００６２】
複数のユーザ２１５は、ネットワーク２５０を介してゲームクラウドシステム２１０にアクセスし、ユーザ（例えば、ユーザ１００Ｌ、１００Ｍ・・・１００Ｚ）は、対応するクライアントデバイス１０６’を介してネットワーク２５０にアクセスし、クライアントデバイス１０６’は、図２Ａのクライアントデバイス１０６（例えば、ゲーム実行エンジン２１１等を含む）と同様に構成され得る、または算出機能を提供するバックエンドサーバ（例えば、ゲーム実行エンジン２１１を含む）とのインターフェースを提供するシンクライアントとして構成され得る。
【００６３】
具体的には、対応するユーザ１００Ｌのクライアントデバイス１０６’は、インターネット等のネットワーク２５０を通して、ゲームアプリケーションへのアクセスを要求するように、ならびにゲームサーバ２０５によって実行され及び対応するユーザ１００Ｌに関連付けられる表示デバイスに送達されるゲームアプリケーション（例えば、ビデオゲーム）のインスタンスをレンダリングするように構成される。例えば、ユーザ１００Ｌは、ゲームサーバ２０５のゲームプロセッサ上で実行するゲームアプリケーションのインスタンスで、クライアントデバイス１０６’を経由して対話し得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン２１１によって実行される。ゲームアプリケーションを実施するゲームロジック（例えば、実行可能コード）は、データストア（図示されない）によって記憶され及びアクセス可能であり、ゲームアプリケーションを実行するために使用される。示されるように、ゲームタイトル処理エンジン２１１は、複数のゲームロジック２７７を使用して、複数のゲームアプリケーションをサポートすることが可能である。
【００６４】
前述に説明したように、クライアントデバイス１０６’は、ゲームコントローラ、タブレットコンピュータ、キーボード等の様々な種類の入力デバイスからの入力と、ビデオカメラ、マウス、タッチパッド等によってキャプチャされるジェスチャとを受信し得る。クライアントデバイス１０６’は、ネットワーク２５０を通してゲームサーバ２０５に接続することが可能である、少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス１０６’は、ローカルまたはリモートで実行するゲームタイトル実行エンジン２１１によって実行されるレンダリング画像を生成するように、及びレンダリング画像をディスプレイ上に表示するように構成される。例えば、レンダリング画像は、ユーザ１００Ｌのクライアントデバイス１０６’上で実行する第１のゲームアプリケーションのインスタンスに関連付けられ得る。例えば、対応するクライアントデバイス１０６’は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザのゲームプレイを実施するために、ローカルまたはリモートで実行される対応するゲームアプリケーションのインスタンスと相互作用するように構成される。
【００６５】
クライアントデバイス１０６’は、レンダリング画像を受信するように、及びレンダリング画像をディスプレイ１１またはＨＭＤ１０２上に表示する（例えば、ＶＲコンテンツを表示する）ように構成される。例えば、クラウドベースサービスによって、レンダリング画像は、ユーザ１００に関連して、ゲームサーバ２０５のゲーム実行エンジン２１１上で実行するゲームアプリケーションのインスタンスによって送達され得る。別の例では、ローカルゲーム処理によって、レンダリング画像は、ローカルゲーム実行エンジン２１１によって送達され得る。いずれの場合、クライアントデバイス１０６は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザ１００のゲームプレイに関連して、ローカルまたはリモートの実行エンジン２１１と相互作用するように構成される。別の実施態様では、レンダリング画像は、クラウドベースサービスから直接、または、クライアントデバイス１０６（例えば、ＰｌａｙＳｔａｔｉｏｎ（登録商標）リモートプレイ）を介して、無線または有線で、スマートフォンまたはタブレットにストリームされ得る。
【００６６】
別の実施形態では、前述に説明したようなマルチプレイヤー処理エンジン２１９は、ゲームアプリケーション用のマルチプレイヤーゲームセッションを制御するために提供する。具体的には、マルチプレイヤー処理エンジン２１９がマルチプレイヤーゲームセッションを管理しているとき、マルチプレイヤーセッションコントローラ２１６は、マルチプレイヤーゲームセッションのユーザ及び／またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成される。当該方式では、当該セッションにおいて、ユーザは、マルチプレイヤーセッションコントローラ２１６によって制御されるように、相互に通信することができる。
【００６７】
さらに、マルチプレイヤー処理エンジン２１９は、各ユーザの対応するゲーム環境内でユーザ間の対話を可能にするために、マルチプレイヤーロジック２１８と通信する。具体的には、状態共有モジュール２１７は、マルチプレイヤーゲームセッションにおけるユーザのそれぞれに関する状態を管理するように構成される。例えば、前述に説明したように、状態データは、特定地点における、対応するユーザ１００に関する（ゲームアプリケーションの）ゲームプレイの状態を定義するゲーム状態データを含み得る。さらに、前述に説明したように、状態データは、対応するプレイヤーに関するビデオゲームを個人用にする情報を含むユーザ保存データを含み得る。例えば、状態データはユーザのキャラクタに関連付けられる情報を含み、これにより、ビデオゲームは、ユーザに一意であり得るキャラクタ（例えば、姿、見た目、衣類、武器等）でレンダリングされる。当該方式では、状態共有データ２１７及びマルチプレイヤーロジック２１８を使用するマルチプレイヤー処理エンジン２１９は、オブジェクト及びキャラクタを、マルチプレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオーバーレイ／挿入することが可能である。これは、それらの各々のゲーム環境のそれぞれ（例えば、スクリーン上に表示されるようなもの）を介して、マルチプレイヤーゲームセッションにおけるユーザ間の対話を可能にする。
【００６８】
図３Ａは、本開示の一実施形態による、ディスプレイ３００上に示される画像３１０を示し、当該画像は高解像度の中心窩領域３１０Ａを含み、中心窩領域がディスプレイの中心に対応する。具体的には、単純及び明確にするために、画像３１０は、文字「Ｅ」の行列を含む。画像３１０は、中心窩領域３１０Ａ及び周辺領域３１０Ｂを含む複数の領域に分割される。
【００６９】
示されるように、中心窩領域３１０Ａは静止しており、ディスプレイ３００の中心に対応する。中心窩領域３１０Ａは、ビデオゲームのグラフィックスを視認するとき等に、ほとんど、ユーザが（例えば、眼の窩を使用して）視線を向ける領域と想定される。時々、ユーザの視線は中心から外れるように向き得るが、視線は、ほとんど、（メインコンテンツを視認するために）中心に向いている。いくつかの場合、画像は、最初に、（例えば、着目オブジェクトを視認するために）ユーザの視線を中心から外れるようにし、次に、（例えば、中心窩領域３１０Ａに向かってオブジェクトを移動させることによって）視線を中心に戻すように設計されている。
【００７０】
具体的には、中心窩領域３１０Ａの内部に表示される及び位置する画像３１０等の任意の画像の部分（複数可）は、より高解像度でレンダリングされる。例えば、グラフィックスパイプラインは、算出複雑度を減らすために使用される任意の技術の使用を最小にしながら、中心窩領域３１０Ａ内で画像の部分をレンダリングする。具体的には、本発明の実施形態に関して、中心窩領域３１０Ａに対応する画素を使用して表示されるオブジェクトに影響を及ぼす光源は、オブジェクト上のその効果のそれぞれ（例えば、オブジェクトの多角形上の色、テクスチャ、シャドーイング等）を判定するために、グラフィックスパイプライン内で個別に算出される。より高解像度を表すものとして、中心窩領域３１０Ａの内部で表示される文字「Ｅ」のオブジェクトは、明瞭に、鮮やかな色、及び最小のぼやけで示される。これは、ディスプレイ３００上で中心窩領域３１０Ａに向かうユーザの視線と一致し、それを利用している。
【００７１】
加えて、中心窩領域３１０Ｂ内に配置される及び位置する画像３１０等の画像の部分（複数可）は、より低解像度（例えば、中心窩領域３１０Ａ内に位置する画像及び／またはオブジェクトの部分の解像度よりも低い）でレンダリングされるだろう。一般的に、ユーザの視線は、その視線の主な焦点が中心窩領域３１０Ａ内のオブジェクトに向いているとき、周辺領域３１０Ｂ内に位置する及び／または表示されるオブジェクトに向いていない。シーン内の現実のビューと一致するように、周辺領域３１０Ｂ内のオブジェクトは、より低解像度でレンダリングされ、例えば、ユーザが移動オブジェクト（例えば、膝の屈伸運動の代わりに脚を伸ばして歩行している人間）を知覚することが可能であるように十分に詳細に、周辺領域３１０Ｂ内の単数のオブジェクト内の、または複数のオブジェクト間で十分なコントラストでレンダリングされる。より低解像度でレンダリングを達成するために、グラフィックスパイプラインは、算出複雑度を減らす計算効率の良い技術を使用して、周辺領域３１０Ｂ内で画像の部分をレンダリングし得る。具体的には、本発明の実施形態に関して、中心窩領域の内側にある画像内のオブジェクトのシャドーイングは、高解像度のシャドーマップを使用してレンダリングされる。中心窩領域の外側にあるオブジェクトのシャドーイングは、より低解像度のシャドーマップを使用してレンダリングされる。したがって、より高解像度で全てのシャドーを算出する代わりに、中心窩領域内部に表示されるシャドーだけが、より高解像度のシャドーマップを使用してレンダリングされる。これは、画像全体をレンダリングするときに算出処理を減らし、特に、周辺領域３１０Ｂ内でレンダリングされたオブジェクトに関する算出処理を減らす。
【００７２】
また、シーン内の現実のビューと一致するように、周辺領域３１０Ｂ内のオブジェクトは、より低解像度でレンダリングされ、例えば、ユーザが移動オブジェクト（例えば、膝の屈伸運動の代わりに脚を伸ばして歩行している人間）を知覚することが可能であるように十分に詳細に、周辺領域３１０Ｂ内の単数のオブジェクト内の、または複数のオブジェクト間で十分なコントラストでレンダリングされる。より低解像度でレンダリングを達成するために、グラフィックスパイプラインは、算出複雑度を減らす計算効率の良い技術を使用して、周辺領域３１０Ｂ内で画像の部分をレンダリングし得る。具体的には、本発明の実施形態に関して、中心窩領域の内側にある画像内のオブジェクトのアニメ化及びレンダリングは、高解像度のボーン階層を使用して行われる。中心窩領域の外側にあるオブジェクトのアニメーション及びレンダリングは、より低解像度のボーン階層を使用して行われる。したがって、ボーン階層の全てのボーンを使用してアニメーションを算出する代わりに、周辺領域内に位置するオブジェクトをアニメ化及びレンダリングするとき、ボーンのサブシステムを算出する。これは、画像全体をレンダリングするときに算出処理を減らし、特に、周辺領域３１０Ｂ内でレンダリングされたオブジェクトに関する算出処理を減らし、ディスプレイに対応する画像のそれぞれを（例えば、無線または有線で）送達することに必要なデータの量を減らす。
【００７３】
図３Ｂは、本開示の一実施形態による、ディスプレイ３００上に示され、高解像度の中心窩領域３１０Ａ’を含み、中心窩領域が、ユーザの自身の視線が向いているディスプレイの場所に対応する、画像３１０’を示す。具体的には、画像３１０’は、図３Ａに示される画像３１０と同様であり、単純及び明確にするために、文字「Ｅ」の行列を含む。画像３１０は、中心窩領域３１０Ａ’及び周辺領域３１０Ｂ’を含む複数の領域に分割される。
【００７４】
示されるように、中心窩領域３１０Ａ’は、ユーザの視線がどの方向に向いているかに応じて、ディスプレイ３００の全体にわたって動的に移動する。前述に説明したように、例えば、ＨＭＤ１０２の視線追跡カメラ１６５を使用して、視線を追跡し得る。したがって、中心窩領域３１０Ａ’は必ずしも、ディスプレイ３００の中心に対応しない場合があるが、代わりに、画像３１０’の内部のユーザの注目の実際の方向及び焦点に相関する。すなわち、中心窩領域３１０Ａ’はユーザの片眼及び／または両眼の移動と一緒に動的に移動する。
【００７５】
前述に紹介したように、中心窩領域３１０Ａ’の内部に表示される及び位置する画像３１０’等の任意の画像の部分（複数可）は、中心窩領域３１０Ａ’内に位置するオブジェクトをレンダリングするときに算出複雑度を減らすために使用される任意のレンダリング技術の使用を最小にすることによって、より高解像度でレンダリングされるだろう。具体的には、本発明の実施形態に関して、中心窩領域３１０Ａ’に対応する画素を使用して表示されるオブジェクトに影響を及ぼす光源は、オブジェクト上のその効果のそれぞれ（例えば、オブジェクトの多角形上の色、テクスチャ、シャドーイング等）を判定するために、グラフィックスパイプライン内で個別に算出される。より高解像度を表すものとして、中心窩領域３１０Ａ’の内部で表示される文字「Ｅ」のオブジェクトは、明瞭に、鮮やかな色、及び最小のぼやけで示される。
【００７６】
加えて、中心窩領域３１０Ｂ’内に配置される及び位置する画像３１０’等の画像の部分（複数可）は、より低解像度（例えば、中心窩領域３１０Ａ内に位置する画像及び／またはオブジェクトの部分の解像度よりも低い）でレンダリングされるだろう。前述に紹介したように、一般的に、ユーザの視線は、その視線の主な焦点が中心窩領域３１０Ａ’内のオブジェクトに向いているとき、周辺領域３１０Ｂ’内に位置する及び／または表示されるオブジェクトに向いていない。したがって、周辺領域３１０Ｂ’内のオブジェクトは、より低解像度でレンダリングされ、例えば、ユーザが移動オブジェクト（例えば、膝の屈伸運動の代わりに脚を伸ばして歩行している人間）を知覚することが可能であるように十分に詳細に、周辺領域３１０Ｂ’内の単数のオブジェクト内の、または複数のオブジェクト間で十分なコントラストでレンダリングされる。より低解像度でレンダリングを達成するために、グラフィックスパイプラインは、算出複雑度を減らす計算効率の良い技術を使用して、周辺領域３１０Ｂ’内で画像の部分をレンダリングし得る。具体的には、本発明の実施形態に関して、周辺領域３１０Ｂ’内にあるオブジェクトのシャドーイングは、より低解像度のシャドーマップを使用してレンダリングされる。さらに、周辺領域３１０Ｂ’内のオブジェクトは、より低解像度でレンダリングされ得、例えば、ユーザが移動オブジェクト（例えば、膝の屈伸運動の代わりに脚を伸ばして歩行している人間）を知覚することが可能であるように十分に詳細に、周辺領域３１０Ｂ’内の単数のオブジェクト内の、または複数のオブジェクト間で十分なコントラストでレンダリングされる。より低解像度でレンダリングを達成するために、グラフィックスパイプラインは、算出複雑度を減らす計算効率の良い技術を使用して、周辺領域３１０Ｂ’内で画像の部分をレンダリングし得る。具体的には、本発明の実施形態に関して、周辺領域３１０Ｂ’内にあるオブジェクトのアニメ化及びレンダリングは、より低解像度のボーン階層（ボーン階層のボーンの減少したセット）を使用して行われる。
【００７７】
中心窩レンダリングシステムにおけるシャドーの最適化
図４は、本開示の一実施形態による、中心窩レンダリングを行うように構成されるグラフィックスパイプライン４００Ａを実施する、グラフィックスプロセッサを示す。グラフィックスパイプライン４００Ａは、３Ｄ（３次元）多角形レンダリングプロセスを使用して画像をレンダリングするための全体的プロセスを示しているが、中心窩レンダリングを行うパイプライン内部の追加プログラマブル素子を含む。レンダリング画像のためのグラフィックスパイプライン４００Ａは、ディスプレイ内の画素毎の対応する色情報を出力し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドーイング等）を表し得る。グラフィックスパイプライン４００Ａは、図１Ａのゲームコンソール１０６、図１ＢのＶＲコンテンツエンジン１２０、図２Ａ及び図２Ｂのクライアントデバイス１０６、及び／または図２Ｂのゲームタイトル処理エンジン２１１の内部で実施可能である。
【００７８】
示されるように、グラフィックスパイプラインは、入力ジオメトリ４０５を受信する。例えば、入力ジオメトリ４０５は、３Ｄゲーム世界内の頂点と、頂点のそれぞれに対応する情報とを含み得る。頂点によって定義される多角形（例えば、三角形）を使用してゲーム世界内の所与のオブジェクトを表すことができ、次に、対応する多角形の表面は、グラフィックスパイプライン４００Ａによって処理され、最終効果（例えば、色、テクスチャ等）を達成する。頂点属性は、法線（例えば、その方向は頂点に対して直角である）、色（例えば、ＲＧＢ―赤、緑、及び青の３色の組等）、及びテクスチャ座標／マッピング情報を含み得る。
【００７９】
頂点シェーダ及び／またはプログラム４１０は、入力ジオメトリ４０５を受信し、３Ｄシーン内でオブジェクトを構成する多角形またはプリミティブを作る。すなわち、頂点シェーダ４１０は、オブジェクトがゲーム世界内にセットされるとき、プリミティブを使用してオブジェクトを作り上げる。頂点シェーダ４１０は、シーンのライティングに応じて、多角形に関するライティング計算及びシャドーイング計算を行うように構成され得る。プリミティブは、頂点シェーダ４１０によって出力され、グラフィックスパイプライン４００Ａの次のステージに送達される。また、クリッピング（例えば、ゲーム世界内の視点によって定義されるようなビューフラスタムの外側にあるプリミティブを識別及び無視する）等の追加動作は、頂点シェーダ４１０によって行われ得る。
【００８０】
本発明の実施形態では、グラフィックスプロセッサ４００は、効率的な方式でシャドーをレンダリングすることを含む、中心窩レンダリングを行うように構成される。シャドーマップは、グラフィックスプロセッサ４００の内部で実施され、仮想シーン内のオブジェクトのシャドーが、シャドーマップを使用してシーンの画像内でレンダリングされる。前述に説明したように、一連のシャドーマップは、最高解像度で生成される第１のシャドーマップに基づいて作成される。第１のシャドーマップを含む一連のシャドーマップは、事前に判定された一連のシャドー画像を含み、（例えば、第１のシャドーマップに基づいて）、そのシャドー画像のそれぞれは、徐々に低解像度に関連付けられる。図１Ｂのシャドーマップ生成部１９５は、第１のシャドーマップを生成するように構成される。加えて、シャドーマップ生成部１９５は、ミップマップ技術を使用して、低解像度の関連シャドーマップを生成するように構成される。概して、最高解像度の第１のシャドーマップは、より低解像度の第２のシャドーマップを生成するために、詳細に減少したレベルで複製される。適用される減少に応じて、解像度を減少させる複数のシャドーマップは生成され得、シャドーマップのそれぞれは第１のシャドーマップに基づくものである。画像内のシャドーをレンダリングするために使用されるテクセルの数が、より高解像度でシャドーをレンダリングするときのものよりも小さくなるため、減少した解像度のシャドーマップを使用して、画像のレンダリング速度を増加させる。
【００８１】
シャドーマップは、ストレージ４６０内に記憶され得る。具体的には、一連のシャドーマップ４６５は、シャドーマップ生成部１９５による生成後にストレージ４６０内に位置し、適切な解像度を有するシャドーマップを使用して、シャドーを適切にレンダリングするために、グラフィックスパイプライン４００によってアクセスされ得る。一実施形態では、シャドーマップのバイナリシステムが一連のシャドーマップ４６５として実施され、第１のシャドーマップがより高解像度であり、第２のシャドーマップが第１のシャドーマップよりも低い解像度である。より具体的には、より高解像度の第１のシャドーマップは、表示される画像の中心窩領域内に位置するシャドーをレンダリングするために使用され、より低解像度の第２のシャドーマップは、周辺領域内に位置するシャドーをレンダリングするために使用される。別の実施形態では、中心窩領域からの距離に基づいて、一連のシャドーマップを作り、中心窩領域からの距離が増加するにつれて、一連のシャドーマップの解像度は減少する。
【００８２】
頂点シェーダ４１０は、値の深度またはｚバッファ４１４を生成するように構成されるｚバッファ生成部４１２を含む。具体的には、どのオブジェクト及び／または表面がシャドーをキャストするかと、どのオブジェクト及び／または表面がシャドー内にあるかとを判定するために、仮想シーンが対応する光源の視点からレンダリングされる。シーンがレンダリングされるとき、デプステクスチャは、ｚバッファ４１４でキャプチャされ、ｚバッファ４１４は、参照画像平面内の画素毎に、仮想シーン内の最も近い表面の深度を記憶する。例証のために、対応する画素を通過する光源から直線に沿って、複数のオブジェクトは、直線に沿って様々な深度においてレンダリングされ得る。ｚバッファ４１４は、その直線に沿ってシャドーをキャストする表面に対応する光源に最も近い深さを記憶する。中心窩フラグメントシェーダ及び／またはプログラム４３０によって、多角形をレンダリングするとき、ｚバッファ４１４を参照する。
【００８３】
頂点シェーダ４１０によって出力されるプリミティブはラスタライザ４２０にフィードされ、ラスタライザ４２０は、シーン内のオブジェクトを、３Ｄゲーム世界内の視点（例えば、カメラ場所、ユーザの眼の位置等）によって定義される２次元（２Ｄ）の画像平面に投影するように構成される。単純化レベルにおいて、ラスタライザ４２０は各プリミティブを確認して、対応するプリミティブによってどの画素が影響を受けるかを判定する。具体的には、ラスタライザ４２０はプリミティブを画素サイズフラグメントに分割し、各フラグメントは、ディスプレイの内部、及び／またはレンダリング視点（例えば、カメラビュー）に関連付けられる基準面の内部の画素に対応する。１つ以上のフラグメントが、画像を表示するとき、対応する画素の色に寄与し得ることに留意することが重要である。また、視点に対する、クリッピング（ビューフラスタムの外側にあるフラグメントを識別及び無視する）と、カリング（より近いオブジェクトによって塞がれたフラグメントを無視する）等の追加動作は、ラスタライザ４２０によって行われ得る。
【００８４】
中心窩フラグメントシェーダ４３０は、そのコアにおいて、フラグメント上でシェーディング動作を行い、プリミティブの色及び明るさが利用可能なライティングによりどのように変わるかを判定する。例えば、フラグメントシェーダ４３０は、フラグメント毎に、深度、色、法線、及びテクスチャ座標（例えば、テクスチャ細部）を判定し得、さらに、フラグメントに関する光、暗さ、及び色の適切なレベルを判定し得る。具体的には、フラグメントシェーダ４３０は、色及び他の属性（例えば、視点からの距離に関するｚ深度、及び透明度に関するアルファ値）を含む、各フラグメントの特質を計算する。加えて、フラグメントシェーダ４３０は、対応するフラグメントに影響を及ぼす利用可能なライティングに基づいて、ライティング効果をフラグメントに適用する。さらに、下記に説明されるように、フラグメントシェーダ４３０は、フラグメント毎に、シャドーイング効果を適用し得る。説明の目的のために、ゲーム世界内の明確な位置を有する点光のような、光を全方向に放射する光源だけが説明されている。指向性ライティング等の他のライティングが利用可能である。
【００８５】
より具体的には、中心窩フラグメントシェーダ４３０は、フラグメントが中心窩領域または周辺領域の内部にあるかどうかに基づいて、上記に説明したようなシェーディング動作を行う。表示される画像の中心窩領域内部に位置するフラグメントは、中心窩領域内部のフラグメントに関する詳細なテクスチャ及び明度を達成するために処理効率を考慮せず、高解像度におけるシェーディング動作を使用して処理される。他方では、中心窩フラグメントシェーダ４３０は、移動及び十分なコントラスト等を提供する最小の動作で十分に詳細にフラグメントを処理するために処理効率に着目し、周辺領域内部に位置するフラグメント上でシェーディング動作を行う。
【００８６】
例えば、本発明の実施形態では、中心窩領域の内側に表示されるオブジェクトのシャドーイングはより高解像度のシャドーマップを使用してレンダリングされ、周辺領域内に表示されるオブジェクトのシャドーイングはより低解像度のシャドーマップを使用してレンダリングされる。具体的には、中心窩フラグメントシェーダは、フラグメントがシャドー内にあるかどうかを判定するように、及び／または画素の色に寄与する１つ以上のオブジェクトの複数のフラグメントがｚバッファ４１４の値に近くなることによって、シャドー内にあるどうかを判定するように構成される。（例えば、カメラ視点または視点からの）３Ｄゲーム空間内及びビュー空間内におけるフラグメントの座標の相関関係は、頂点シェーダ４１０またはフラグメントシェーダ４３０によって行われ得る。具体的には、いったんフラグメントがシャドー内にあることを判定すると、シャドーマップセレクタ１９４は、フラグメントの場所に応じて、適切なシャドーマップを選択する。中心窩フラグメント判定部１９２は、フラグメントが中心窩領域内または周辺領域内に表示されたかどうかを判定するように構成される。例えば、フラグメントが中心窩領域内に表示されるとき、シャドーマップセレクタ１９４は、フラグメントをレンダリングするために、最高解像度の第１のシャドーマップを一連のシャドーマップ４６５から選ぶ。また、フラグメントが非中心窩領域内に表示されるとき、シャドーマップセレクタ１９４は、フラグメントをレンダリングするために、より低解像度の第２のシャドーマップを一連のシャドーマップ４６５から選ぶ。これは、一連のものをマッピングするバイナリシャドー（４６５）の例証図であり得る。加えて、シャドーマップセレクタ１９４は、フラグメントがレンダリング及び表示される中心窩領域からの距離に基づく、適切な解像度を有する一連のシャドーマップ４６５から、シャドーマップを選び得る。距離が増加し及び中心窩領域からさらに離れるように進むにつれて、より低解像度のシャドーマップを選ぶ。
【００８７】
フラグメントシェーダ４３０の出力は、処理されたフラグメント（例えば、シャドーイングを含むテクスチャ情報及びシェーディング情報）を含み、グラフィックスパイプライン４００Ａの次のステージに送達される。
【００８８】
出力統合コンポーネント４４０は、対応する画素のそれぞれに寄与する及び／またはそれに影響を及ぼすフラグメントに応じて、各画素の特質を計算する。すなわち、３Ｄゲーム世界内の全てのプリミティブのフラグメントは、ディスプレイの２Ｄ色画素に組み合わせられる。例えば、対応する画素に関するテクスチャ情報及びシェーディング情報に寄与するフラグメントは、グラフィックスパイプライン４００Ａの次のステージに送達される画素に関する最終明度を出力するために組み合わせられる。出力統合コンポーネント４４０は、フラグメント間の値及び／またはフラグメントシェーダ４３０から判定された画素の選定的混合を行い得る。
【００８９】
ディスプレイ内の画素毎の明度は、フレームバッファ４５５内に記憶される。これらの値は、シーンの対応する画像を表示するとき、対応する画素に対して走査される。具体的には、ディスプレイは、画素毎に、列毎に、左から右に、もしくは右から左に、上から下に、もしくは下から上に、または任意の他のパターンで、明度をフレームバッファから読み取り、画像を表示するとき、その画素値を使用して、画素を明るくする。
【００９０】
ネットワークを通して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明から、本開示の一実施形態に従って、図５のフロー図５００は、中心窩レンダリングを行うように構成されるグラフィックスパイプラインを実施するための方法を開示し、中心窩領域の内側に表示されるシャドーはより高解像度のシャドーマップを使用してレンダリングされ、非中心窩領域内に表示されるシャドーは低解像度のシャドーマップを使用してレンダリングされる。前述に説明したように、フロー図５００は、画像をレンダリングするとき、クライアントデバイスまたはクラウドベースゲームシステムの内部で実施される。一実施態様では、クライアントデバイスはゲーム機（また、ゲームコンソールと称される）である。
【００９１】
５１０において、本方法は、高解像度の第１のシャドーマップを作ること及び／または生成することを含む。これは、より低解像度のシャドーマップを生成する（例えば、ミップマッピングする）ために使用される最高解像度のシャドーマップであり得る。すなわち、５２０において、本方法は、第１のシャドーマップに基づいて、第２のシャドーマップを作る及び／または生成することを含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。これは、シャドーマップのバイナリシステムの例証であり得る。さらに、一連のシャドーマップは第１のシャドーマップに基づいて生成され得、一連のものは徐々に低解像度になるシャドーマップを含む。
【００９２】
５３０において、本方法は、仮想シーンに影響を及ぼす光源を判定することを含む。光源は複数の光源のうちの１つであり得、複数の光源のそれぞれは仮想シーンに影響を及ぼす。光源からの照明は、視点から視認されるシーン内の対応するオブジェクトを表示するとき、対応する画素の最終色を判定する。シャドーイングを判定するとき、光源のそれぞれは、画像内に含有されるシャドーイングを完全にレンダリングするために考慮される必要がある。例証のために、単一の光源は、本発明の実施形態を開示するために使用される。一実施形態では、シャドーイングを判定するために使用される同じプロセスは複数の光源毎に行われ、ディスプレイ内の画素の最終色を形成するために組み合わせられる及び／または統合される。
【００９３】
５４０において、本方法は、シーンの画像のオブジェクトのジオメトリを、第１の視点（例えば、視点）からディスプレイの複数の画素上に投影することを含む。前述に紹介したように、ラスタライザ及び／または頂点シェーダは、プリミティブ及び／またはプリミティブのフラグメントを対応する画素に関連付けるように構成される。具体的には、頂点シェーダはプリミティブを対応する画素に関連付けるように構成され得、ラスタ化前に、プリミティブによるシーンはタイルに分割される。加えて、ラスタライザはプリミティブのフラグメントを対応する画素に関連付けるように構成され得、フラグメントによるシーンはタイルに分割され得る。
【００９４】
５５０において、本方法は、ジオメトリの第１のセットが第１の画素に描かれたことを判定することを含む。ジオメトリのセットは、１つ以上のオブジェクトの１つ以上のフラグメントを含み得る。例えば、前述に説明したように、頂点シェーダは、どの画素がセット内のフラグメントによって影響を受ける、またはそのフラグメントによって描かれるかを判定するように構成され得る。
【００９５】
５６０において、本方法は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定することを含む。前述に説明したように、深度テストは、光源からどのフラグメントがシャドー内にあるかを判定するために、フラグメントシェーダによって行われる。深度テストは、画素に関連付けられるジオメトリのセットのそれぞれに適用される。例えば、シャドー内にあるとき、セット内のジオメトリは、ｚバッファ内に記憶される深度（画素に寄与するフラグメントに関する光源に最も近いオブジェクトの深度）よりも大きい深度を有する。したがって、ジオメトリのセットのそれぞれはシャドー内にある。
【００９６】
５７０において、本方法は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。中心窩領域は、最高解像度で表面をレンダリングすることに関連付けられ得る。中心窩領域は、想定（例えば、概して、ディスプレイの静的エリアを覆うディスプレイの中心における想定）によって、または眼の追跡（例えば、視線の方向を判定するための追跡）によってのいずれかで、ユーザの注目が集まる場所であり得る。静的中心窩領域に関して、中心窩領域はディスプレイの中心にセンタリングする。眼の追跡を行うとき、仮想シーンを視認するユーザの視線を追跡し、視線はユーザの注目が向いている仮想シーンへの方向を示す。この場合、視線の方向に基づいて、中心窩領域を画像内でセンタリングし得る。加えて、中心窩領域内の画像の一部（例えば、プリミティブ及び／またはフラグメント）は、高解像度におけるグラフィックスプロセッサによってレンダリングされる。例えば、中心窩領域内のシャドーイングは、より高解像度及び／または最高解像度のシャドーマップを使用してレンダリングされる。他方では、周辺領域がユーザに注目されず、中心窩領域内の画像の一部（例えば、プリミティブ及び／またはフラグメント）は、より低解像度におけるグラフィックスプロセッサによってレンダリングされる。例えば、周辺領域内のシャドーイングは、より低解像度のシャドーマップを使用してレンダリングされる。より具体的には、画素の第１のサブセットは中心窩領域に割り当てられ、第１のサブセットに関連付けられるプリミティブ及び／またはフラグメントは高解像度で処理される。画素の第２のサブセットは中心窩領域の外側にある周辺領域に割り当てられ、第２のサブセットに関連付けられるプリミティブ及び／またはフラグメントはより低解像度（例えば、中心窩領域に関連付けられる解像度よりも低いもの）で処理される。
【００９７】
加えて、５８０において、本方法は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定することを含む。すなわち、ジオメトリの第１のセットは、周辺領域内にあるディスプレイの画素に影響を及ぼす。この場合、高効率のレンダリングのために、５９０において、本方法は、より低解像度の第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングすることを含む。当該方式では、より少数の算出は、ジオメトリの第１のセットによって投影されるシャドーイングをレンダリングするために要求される。
【００９８】
さらに、中心窩領域の内側にあるジオメトリに関して、シャドーイングはより高解像度のシャドーマップを使用してレンダリングされる。例えば、ジオメトリの第２のセットが第２の画素に描かれたことを判定され得る。さらに、ジオメトリの第２のセットが、ユーザの注目が向いている中心窩領域の内側にあることを判定される。したがって、第２の画素に関するジオメトリの第２のセットは、より高解像度の第１のシャドーマップを使用して、第２の画素に対してレンダリングされ得る。
【００９９】
加えて、第１の画素に関するジオメトリの第１のセットをレンダリングするとき、別のシャドー効果を無効にし得る。すなわち、計算コストを減らすために、周辺領域内のシャドーイングは、より低解像度の第２のシャドーマップを使用してレンダリングすることに制限がある。第２のシャドーマップの使用の範囲を超えて、グラフィックスパイプラインの内部で、さらなるシャドー効果を算出しない、または最小のシャドー効果を算出する。
【０１００】
さらに別の実施形態では、一連のシャドーマップが生成され、シャドーマップは最高解像度のシャドーマップに基づくものであり、一連のシャドーマップの解像度は徐々に減少する。フラグメントをレンダリングするとき、表示される対応するフラグメントと中心窩領域との間の距離に基づいて、一連のシャドーマップを適用する。例えば、ジオメトリの第３のセットは、第３の画素に描かれたことを判定され得る。第３の画素は中心窩領域の外側にあると判定される。加えて、前述に説明したように、ジオメトリの第３のセットは、ｚバッファテストに基づいて、光源からシャドー内にあると判定され得る。第３の画素内に描かれたジオメトリの第３のセットと、中心窩領域との間の距離を判定する。判定された距離に基づいて、第３のシャドーマップを一連のシャドーマップから選択する。基本的に、中心窩領域からジオメトリの第３のセットをレンダリングするとき、画素が大きくなるにつれて、選択されるシャドーマップの解像度は低くなる。選択後、ジオメトリの第３のセットは、最高解像度の第１のシャドーマップよりも低解像度を有する第３のシャドーマップを使用して、第３の画素に対してレンダリングされ、第２のシャドーマップよりも低い低解像度を有し得る。
【０１０１】
図６Ａは、本開示の一実施形態による、画像が中心窩領域内に表示されるシャドーのレンダリングを示す、ゲーム世界の仮想シーンの画像６００Ａの例証図である。画像６００Ａは、壁６０１、６０２、及び床６０３を有する部屋を示す。２つのオブジェクトは、床６０３の上に存在するオブジェクト（テーブル）６７０と、壁６０２に掛けられたクロック６１０とを含む部屋内に示される。
【０１０２】
簡潔及び明確にする目的のために、光源６４０は仮想シーンに影響を及ぼす画像６００Ａ内に示される。示されるように、光源６４０は、ゲーム世界（例えば、部屋）における場所を有する。場所は、座標系（図示されない）によって定義され得る。光源６４０は、方向性があり得、または全方向性があり得、いずれの場合、シャドー６７５をキャストする。示されるように、光源６４０は、少なくとも１つの方向６４５に沿ってテーブル６７０のシャドー６７５をキャストする（方向６４５が画像６００Ａ上で重ね合わさる）。
【０１０３】
画像６００Ａは、ゲーム世界の特定の視点内からレンダリングされ、表示され得る。例えば、画像は、ゲーム世界の視点に関連付けられる仮想画像平面からレンダリングされ得る。例えば、眼６３０は、方向６３５に沿って、ユーザの視線を示す画像６００Ａ上で重ね合わさる。画像６００Ａは、方向６３５にセンタリングする画像平面６５０の内部に投影され得る。図６Ａに示されるように、ユーザの視線は、画像６００Ａ内で、方向６３５に沿ってテーブル６７０に向いている。
【０１０４】
加えて、ユーザの注目は方向６３５に沿って集まる。したがって、表示される画像の中心窩領域６２０は、（例えば、想定及び／または追跡される）ユーザの視線の方向に基づいて定義される。前述に説明したように、中心窩領域６２０内のオブジェクトは、高解像度でレンダリングされる。加えて、本発明の実施形態では、中心窩領域６２０の内側でのシャドーイングは、より高解像度のシャドーマップ（例えば、ミップマップ等を使用して他のシャドーマップが生成される最高解像度の第１のシャドーマップ）を使用してレンダリングされる。例えば、テーブル６７０上で光っている光源６４０によって生じるシャドー６７５は、高解像度シャドーマップを使用してレンダリングされる。
【０１０５】
示されるように、中心窩領域の外側のオブジェクトは、前述に説明したように、より低解像度でレンダリングされる。例えば、クロック６１０は中心窩領域６２０の外側に表示され、より低解像度でレンダリングされる。例証のために、クロック６１０は、より低解像度でレンダリングすることを表すようにかすかに示される。すなわち、クロック６１０が周辺領域内にあるため、画像６００Ａ内でクロック６１０をレンダリングするために必要になる詳細度が少なくなる。
【０１０６】
図６Ｂは、本開示の一実施形態による、画像６００Ｂ内でレンダリングされる、周辺領域内に表示されるシャドーのレンダリングを示す、図６Ａに導入される仮想シーンの例証図である。
【０１０７】
画像６００Ｂは、ユーザの注目が異なるオブジェクトに向くことを除いて、画像６００Ａと同様である。前述に紹介したように、画像６００Ｂは、壁６０１、６０２、及び床６０３を有する部屋を示す。２つのオブジェクトは、床６０３の上に存在するオブジェクト（テーブル）６７０と、壁６０２に掛けられたクロック６１０とを含む部屋内に示される。示されるように、光源６４０は、画像６００Ａ内で示され、少なくとも１つの方向６４５に沿ってテーブル６７０のシャドー６７５’をキャストする（方向６４５が画像６００Ｂ上で重ね合わさる）。
【０１０８】
加えて、ここで、ユーザの注目は方向６３５’に沿って集まる。したがって、表示される画像６００Ｂの中心窩領域６２０’は、（例えば、想定及び／または追跡される）ユーザの視線の方向に基づいて定義される。前述に説明したように、中心窩領域６２０’内のオブジェクトは、高解像度でレンダリングされる。したがって、図６Ｂでは、ここで、クロック６１０は高解像度でレンダリングされ、図６Ｂで明確に及びはっきりと示される。
【０１０９】
示されるように、中心窩領域６２０’の外側のオブジェクトは、前述に説明したように、より低解像度でレンダリングされる。図６Ｂでは、テーブル６７０は、ここで、より低解像度でレンダリングすることを表すようにかすかに示される。テーブル６７０が周辺領域内にあるため、画像６００Ｂ内でテーブル６７０をレンダリングするために必要になる詳細度が少なくなる。
【０１１０】
加えて、本発明の実施形態では、中心窩領域６２０’の外側でのシャドーイングは、より低解像度のシャドーマップ（例えば、低解像度の第２のシャドーマップまたは後続のシャドーマップ）を使用してレンダリングされる。例えば、テーブル６７０上で光っている光源６４０によって生じるシャドー６７５’は、より低解像度のシャドーマップを使用してレンダリングされる。シャドー６７５’は図６Ａのシャドー６７５よりも詳細ではないように示され、周辺領域内に位置するので、シャドー６７５’は十分に詳細であることを必要としない。
【０１１１】
図６Ｃは、本開示の一実施形態による、図６Ａに導入される仮想シーンに適用される徐々に低解像度になる一連のシャドーマップの例証図である。前述に説明したように、一連のシャドーマップは、最高解像度のシャドーマップに基づいて生成され、一連のシャドーマップの解像度は徐々に減少する。一実施形態では、フラグメントをレンダリングするとき、表示される対応するフラグメントと中心窩領域との間の距離に基づいて、一連のシャドーマップを適用する。図６Ｃに示されるように、中心窩領域６２０は、高解像度でレンダリングされるオブジェクトを含む。また、中心窩領域６２０は、図６Ｃでゾーン１と称される。テーブル６７０がゾーン１（中心窩領域）内に位置するため、テーブル６７０は、高解像度でより詳細にレンダリングされる。加えて、シャドー６７５がゾーン１内に位置するため、シャドー６７５は、一連のシャドーマップにおける最高解像度のシャドーマップ１を使用してレンダリングされる。中心窩領域６２０内に示されるオブジェクトは、中心窩領域６２０から最小距離またはゼロの距離を有し、したがって、最高解像度のシャドーマップは、シャドーをレンダリングするために選択される。
【０１１２】
加えて、点境界線６２１及び中心窩領域６２０の外側境界線は、中心窩領域６２０の外側の最も近いゾーンであるゾーン２を画定する。ゾーン２内のシャドーは、シャドーマップ１のものよりも低解像度であるシャドーマップ２を使用してレンダリングされる。さらに、点境界線６２１及び点境界線６２２は、また中心窩領域６２０の外側にあるゾーン３を画定する。ゾーン３は、ゾーン２よりも、中心窩領域６２０からさらに遠い。したがって、ゾーン３内のシャドーは、シャドーマップ２のものよりも低解像度であるシャドーマップ３を使用してレンダリングされる。一連のシャドーマップ３では、最低解像度を有し、中心窩領域から最も遠いゾーン３に関連付けられる。
【０１１３】
一実施形態では、コンピュータシステムはプロセッサ及びメモリを含み、メモリは、プロセッサに結合され、コンピュータシステムによって実行される場合、コンピュータシステムに、グラフィックスパイプラインを実施するための方法を実行させる命令をメモリ内に記憶する。本方法は、高解像度の第１のシャドーマップを作ることを含む。本方法は、第１のシャドーマップに基づいて、第２のシャドーマップを作ることを含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。本方法は、仮想シーンに影響を及ぼす光源を判定することを含む。本方法は、仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影することを含む。本方法は、ジオメトリの第１のセットが第１の画素に描かれたことを判定することを含む。本方法は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定することを含む。本方法は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定することを含む。本方法は、第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングすることを含む。
【０１１４】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、ジオメトリの第２のセットが第２の画素に描かれたことを判定することを含む。本方法は、さらに、ジオメトリの第２のセットが中心窩領域の内側にあることを判定することを含む。本方法は、さらに、第１のシャドーマップを使用して、第２の画素に関するジオメトリの第２のセットをレンダリングすることを含む。
【０１１５】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、中心窩領域からの距離に基づいて、一連のシャドーマップを作ることを含み、中心窩領域からの距離が増加するにつれて、一連のシャドーマップの解像度は減少する。本方法は、さらに、ジオメトリの第３のセットが中心窩領域の外側にある第３の画素に描かれたことを判定することを含む。本方法は、さらに、光源に基づいて、第３のセットがシャドー内にあることを判定することを含む。本方法は、さらに、中心窩領域からの第３の画素内に描かれたジオメトリの第３のセットの距離を判定することを含む。本方法は、さらに、ジオメトリの第３のセットの距離に基づいて、第３のシャドーマップを一連のシャドーマップから選択することを含む。本方法は、さらに、第３のシャドーマップを使用して、第３の画素に関するジオメトリの第３のセットをレンダリングすることを含む。
【０１１６】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、中心窩領域をディスプレイの中心にセンタリングすることを含み、中心窩領域は静止している。
【０１１７】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、仮想シーンを視認するユーザの視線を追跡することを含み、視線はユーザの注目が向いている仮想シーンへの方向を示す。本方法は、さらに、ユーザが仮想シーンの画像を視認する第１の方向を判定することを含む。本方法は、さらに、第１の方向に基づいて、中心窩領域を画像内でセンタリングすることを含む。
【０１１８】
別の実施形態では、コンピュータシステムによって実行される方法では、ディスプレイはヘッドマウントディスプレイを含む。
【０１１９】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、第１の画素に関するジオメトリの第１のセットをレンダリングするとき、別のシャドー効果を無効にすることを含む。
【０１２０】
一実施形態では、非一時的なコンピュータ可読媒体は、グラフィックスパイプラインを実施するためのコンピュータプログラムを記憶する。コンピュータ可読媒体は、高解像度の第１のシャドーマップを作るためのプログラム命令を含む。コンピュータ可読媒体は、第１のシャドーマップに基づいて、第２のシャドーマップを作るためのプログラム命令を含み、第２のシャドーマップは第１のシャドーマップよりも低解像度を有する。コンピュータ可読媒体は、仮想シーンに影響を及ぼす光源を判定するためのプログラム命令を含む。コンピュータ可読媒体は、仮想シーンの画像のオブジェクトのジオメトリを、第１の視点からディスプレイの複数の画素上に投影するためのプログラム命令を含む。コンピュータ可読媒体は、ジオメトリの第１のセットが第１の画素に描かれたことを判定するためのプログラム命令を含む。コンピュータ可読媒体は、光源に基づいて、ジオメトリの第１のセットがシャドー内にあることを判定するためのプログラム命令を含む。コンピュータ可読媒体は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定するためのプログラム命令を含み、中心窩領域はユーザの注目が向く場所に対応する。コンピュータ可読媒体は、ジオメトリの第１のセットが中心窩領域の外側にあることを判定するためのプログラム命令を含む。コンピュータ可読媒体は、第２のシャドーマップを使用して、第１の画素に関するジオメトリの第１のセットをレンダリングするためのプログラム命令を含む。
【０１２１】
別の実施形態では、コンピュータ可読媒体は、さらに、ジオメトリの第２のセットが第２の画素に描かれたことを判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、ジオメトリの第２のセットが中心窩領域の内側にあることを判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、第１のシャドーマップを使用して、第２の画素に関するジオメトリの第２のセットをレンダリングするためのプログラム命令を含む。
【０１２２】
別の実施形態では、コンピュータ可読媒体は、さらに、中心窩領域からの距離に基づいて、一連のシャドーマップを作るためのプログラム命令を含み、中心窩領域からの距離が増加するにつれて、一連のシャドーマップの解像度は減少する。コンピュータ可読媒体は、さらに、ジオメトリの第３のセットが中心窩領域の外側にある第３の画素に描かれたことを判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、光源に基づいて、第３のセットがシャドー内にあることを判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、中心窩領域からの第３の画素内に描かれたジオメトリの第３のセットの距離を判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、ジオメトリの第３のセットの距離に基づいて、第３のシャドーマップを一連のシャドーマップから選択するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、第３のシャドーマップを使用して、第３の画素に関するジオメトリの第３のセットをレンダリングするためのプログラム命令を含む。
【０１２３】
別の実施形態では、コンピュータ可読媒体は、さらに、中心窩領域をディスプレイの中心にセンタリングするためのプログラム命令を含み、中心窩領域は静止している。
【０１２４】
別の実施形態では、コンピュータ可読媒体は、さらに、仮想シーンを視認するユーザの視線を追跡するためのプログラム命令を含み、視線はユーザの注目が向いている仮想シーンへの方向を示す。コンピュータ可読媒体は、さらに、ユーザが仮想シーンの画像を視認する第１の方向を判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、第１の方向に基づいて、中心窩領域を画像内でセンタリングするためのプログラム命令を含む。
【０１２５】
別の実施形態では、コンピュータ可読媒体は、さらに、画像のオブジェクトのジオメトリを、ヘッドマウントディスプレイの画素上に投影するためのプログラム命令を含む。
【０１２６】
中心窩レンダリングシステムにおけるメッシュスキンの適応
本開示の様々な実施形態は、中心窩レンダリングを行うように構成されるビデオレンダリングシステムのグラフィックスプロセッサを説明し、中心窩領域内の画像の部分は高解像度でレンダリングされ得、中心窩領域の外側の部分はより低解像度でレンダリングされ得る。具体的には、下記により十分に説明されるように、オブジェクトが周辺領域内にあるとき、低解像度のボーン階層を使用してオブジェクトのアニメーションを行い、それにより、また、低解像度のボーン階層に関連付けられるより低解像度のプリミティブを使用して、オブジェクトをレンダリングする。また、オブジェクトが中心窩領域内にあるとき、高解像度のボーン階層を使用してオブジェクトのアニメーションを行い、それにより、高解像度のボーン階層に関連付けられるより高解像度のプリミティブを使用して、オブジェクトをレンダリングする。いくつかの実施形態では、メッシュスキンの適応は、図１〜図６で上記に説明された状況の範囲内で実施され得る。
【０１２７】
図７は、本開示の実施形態による、オブジェクトが中心窩領域内にあるときに高解像度のボーン階層（ボーンシステム）と、オブジェクトが周辺領域内にあるときに低解像度のボーン階層（ボーンサブシステム）とを使用して、オブジェクトアニメーション及びオブジェクトのレンダリングを含む中心窩領域レンダリングを行うように構成されるグラフィックスパイプラインを実施するシステムを示す。グラフィックスパイプライン９４００は、３Ｄ（３次元）多角形レンダリングプロセスを使用して画像をレンダリングするための全体的プロセスを示しているが、中心窩レンダリングを行うパイプライン内部の追加プログラマブル素子を機能させるように修正され、対応する画像の中心窩領域に対するオブジェクトの場所に応じて、ボーン階層のボーンのフルコンポーネントまたはボーンのサブシステムを使用して、パーティクルシステムをアニメ化及び／またはレンダリングする等の中心窩レンダリングを行う。レンダリング画像のためのグラフィックスパイプライン９４００は、ディスプレイ内の画素毎の対応する色情報を出力し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドーイング等）を表し得る。グラフィックスパイプライン９４００は、図１Ａのゲームコンソール１０６、図１Ｂ及び図１ＣのＶＲコンテンツエンジン１２０、図２Ａ及び図２Ｂのクライアントデバイス１０６、及び／または図２Ｂのゲームタイトル処理エンジン２１１の内部で実施可能である。
【０１２８】
アニメーションはＣＰＵまたはＧＰＵ上で行われ得る。システム９４００は、オブジェクトアニメーションを行うように構成され、頂点データを処理することを含む中心窩レンダリングを行い、頂点をプリミティブ（例えば、多角形）に集め、ラスタ化を行い、ディスプレイに対してプリミティブからフラグメントを生成させ、次に、フラグメント毎に色及び深度値を算出し、同様に、表示するために、フレームバッファに記憶するための画素毎に基づいてフラグメントを混ぜるように構成される、算出シェーダ９４０１及びプログラムプロセッサ９４０２を含む。（例えば、アニメーションのために）算出シェーダ９４０１によって行われる動作は、ＣＰＵまたはＧＰＵのいずれかで行われ得る。プログラムシェーダ９４０２によって行われる動作は、概して、良好な性能及び効率になるように、ＧＰＵ内での実行により適している。
【０１２９】
示されるように、グラフィックスパイプラインは、入力ジオメトリ９４０５を受信する。例えば、入力ジオメトリ９４０５は、３Ｄゲーム世界内の頂点と、頂点のそれぞれに対応する情報とを含み得る。頂点によって定義される多角形（例えば、三角形）を使用してゲーム世界内の所与のオブジェクトを表すことができ、次に、対応する多角形の表面は、グラフィックスパイプライン９４００によって処理され、最終効果（例えば、色、テクスチャ等）を達成する。頂点属性は、法線（例えば、その方向は頂点に対して直角である）、色（例えば、ＲＧＢ―赤、緑、及び青の３色の組等）、及びテクスチャ座標／マッピング情報を含み得る。説明しやすくするために、３Ｄゲーム世界に関する入力ジオメトリは算出シェーダ９４０１に入力されるように示されるが、また、ジオメトリは、パーティクルシステムに関するジオメトリが算出シェーダ９４０１に入力されるように、及び残りのジオメトリがプログラマブルシェーダ９４０２の頂点シェーダ９４１０に入力されるように分割され得る。例えば、入力ジオメトリは、シェーダ９４０１とシェーダ９４０２との間で共有されることができる頂点バッファに入力され得る。
【０１３０】
具体的には、算出シェーダ９４０１は、オブジェクトによって付与及び／または印加される力（例えば、重力等の外力、移動を含むオブジェクトの内力）に応じてフレーム間で、オブジェクトアニメーションを行う（例えば、パーティクル運動を計算する等）。概して、第１のフレームから後続のフレームまで、算出シェーダ９４０１は、オブジェクトをアニメ化する動作を行う、またはオブジェクトに運動を提供する。具体的には、レンダリングされたフレーム毎に、オブジェクトのアニメーションは、別々の時間ステップで（例えば、フレーム毎に）更新される（例えば、位置、配向、速さ等が更新される）。図７に示されるように、算出シェーダ９４０１は、ＧＰＵ構成内部で実装され、オブジェクトアニメーションを行うようにプログラムされ得る。例えば、頂点シェーダ９４０６は、オブジェクトの頂点及び／またはプリミティブを生成する、または、それらにアクセスするように構成されるボーンシステム生成部９１９５を含み得る。加えて、ボーンシステム生成部９１９５は、ボーン階層のボーンの数を減らすように構成されるボーンシステムレデューサ９１９６を含み、それにより、ボーンのサブシステムがボーン階層から生成され及び取られる。サブシステムは、減少した数のボーンを有し得、ボーン間の減少した数のジョイントまたは接続部を有し得、ジョイントは、２つの相互接続されたボーン間の移動の点を定義する。頂点シェーダ９４０６は、また、アニメーションまたは移動、より具体的には、別々の時間ステップにおける（例えば、フレーム間の）移動を（例えば、ボーン位置またはボーンの頂点を更新することによって）オブジェクトに提供するように構成されるアニメーションモジュール９１９９を含み得る。中心窩ボーンシステム判定部９１９２は、画像の中心窩領域に関連しない、オブジェクトが位置する場所を計算するように構成され、より低解像度のボーン階層を使用して周辺領域内に位置するオブジェクトをレンダリングし、より高解像度のボーン階層を使用して中心窩領域内に位置するオブジェクトをレンダリングする。頂点シェーダ９４０６の出力は、中心窩領域に対するオブジェクトの場所に応じて、高解像度または低解像度のボーン階層のプリミティブを含む、オブジェクトのプリミティブ（例えば、頂点、多角形等）を含み得る。ＧＰＵ構成の内部で実施されるものとして、残りのコンポーネント（例えば、出力統合及びフレームバッファを含む、ラスタライザ、フラグメントシェーダ、及びレンダリング）は使用されていなく、それにより、次に、頂点シェーダ９４０６からの出力は、送達され及び／またはプログラマブルシェーダ９４０２と共有され、レンダリングを含むより従来的なＧＰＵ動作を行う。当然ながら、ＣＰＵ実施態様では、算出シェーダ９４０１は、シェーダ９４０６及びパーティクルシミュレーションモジュール９４０７だけを含むように、簡略化され得る。
【０１３１】
アニメ化されたオブジェクトが、プログラマブルシェーダ９４０２を使用してフレーム間で描かれる。具体的には、アニメーション結果が頂点バッファに記憶され、次に、シミュレーション結果がプログラマブルシェーダ９４０２（例えば、頂点シェーダ）に入力される。頂点バッファの値は、図７に示されるシステム９４００のグラフィックスパイプラインのステージ間で共有されることができる。より具体的には、前述に説明したように、頂点シェーダ９４１０は、入力ジオメトリ９４０５を直接且つ算出シェーダ９４０１から受信し、３Ｄシーン内でオブジェクトを構成する多角形またはプリミティブを作る。頂点シェーダ９４１０は、さらに、算出シェーダ９４０１によって完了されない場合、アニメ化されたオブジェクトに関するプリミティブを作り得る。すなわち、頂点シェーダ９４１０は、オブジェクトがゲーム世界内にセットされるとき、プリミティブを使用してオブジェクトを作り上げる。例えば、頂点シェーダ９４１０は、シーンのライティングに応じて、多角形に関するライティング計算及びシャドーイング計算を行うように構成され得る。プリミティブは、頂点シェーダ９４１０によって出力され、グラフィックスパイプライン９４００の次のステージに送達される。また、クリッピング（例えば、ゲーム世界内の視点によって定義されるようなビューフラスタムの外側にあるプリミティブを識別及び無視する）等の追加動作は、頂点シェーダ９４１０によって行われ得る。
【０１３２】
複数の実施形態では、プログラマブルシェーダ９４０２（例えば、頂点シェーダ９４１０等）による実行前に、オブジェクトプリミティブが既に算出シェーダ９４０１によって減っているために、さらなる判定はオブジェクトが中心窩領域内部または周辺領域内にあるかを判定する必要はない。他の実施形態では、必要に応じて、より低解像度またはより高解像度のボーン階層を使用するかの判定は頂点シェーダ９４１０によって行われ得る。その場合、また、頂点シェーダ９４１０は、さらなる処理のために、より低解像度のボーン階層のプリミティブを選択するように構成され得る。例えば、頂点シェーダ９４１０は、頂点が中心窩領域内部にあるかどうかに応じて、頂点を破棄または維持するかどうかを判定するように構成され得る。
【０１３３】
頂点プロセッサ９４１０によって出力されるプリミティブはラスタライザ９４２０にフィードされ、ラスタライザ９４２０は、シーン内のオブジェクトを、３Ｄゲーム世界内の視点（例えば、カメラ場所、ユーザの眼の位置等）によって定義される２次元（２Ｄ）の画像平面に投影するように構成される。これらのプリミティブは、アニメ化されたオブジェクトが周辺領域内にあるとき、（例えば、ボーン階層のボーンのフルコンポーネントの代わりに）ボーンのサブシステムを含む。一実施形態では、オブジェクトの少なくとも一部が周辺領域内にあるとき、ボーンのサブシステムをレンダリングする。別の実施形態では、オブジェクトをより低解像度（例えば、詳細ではない動き）でレンダリングするために、オブジェクト全体が周辺領域内にあるとき、ボーンのサブシステムをレンダリングする。また、プリミティブは、オブジェクトをより詳細な動きでレンダリングするために、オブジェクトが中心窩領域内にあるとき、ボーンのフルシステムを含み得る。
【０１３４】
単純化レベルにおいて、ラスタライザ９４２０は各プリミティブを確認して、対応するプリミティブによってどの画素が影響を受けるかを判定する。具体的には、ラスタライザ９４２０はプリミティブを画素サイズフラグメントに分割し、各フラグメントは、ディスプレイの内部、及び／またはレンダリング視点（例えば、カメラビュー）に関連付けられる基準面の内部の画素に対応する。１つ以上のフラグメントが、画像を表示するとき、対応する画素の色に寄与し得ることに留意することが重要である。また、視点に対する、クリッピング（ビューフラスタムの外側にあるフラグメントを識別及び無視する）と、カリング（より近いオブジェクトによって塞がれたフラグメントを無視する）等の追加動作は、ラスタライザ９４２０によって行われ得る。
【０１３５】
中心窩フラグメントプロセッサ９４３０は、そのコアにおいて、フラグメント上でシェーディング動作を行い、プリミティブの色及び明るさが利用可能なライティングによりどのように変わるかを判定する。例えば、フラグメントプロセッサ９４３０は、フラグメント毎に、深度、色、法線、及びテクスチャ座標（例えば、テクスチャ細部）を判定し得、さらに、フラグメントに関する光、暗さ、及び色の適切なレベルを判定し得る。具体的には、フラグメントプロセッサ９４３０は、色及び他の属性（例えば、視点からの距離に関するｚ深度、及び透明度に関するアルファ値）を含む、各フラグメントの特質を計算する。加えて、フラグメントシェーダ９４３０は、対応するフラグメントに影響を及ぼす利用可能なライティングに基づいて、ライティング効果をフラグメントに適用する。さらに、フラグメントプロセッサ９４３０は、フラグメント毎に、シャドーイング効果を適用し得る。
【０１３６】
より具体的には、中心窩フラグメントシェーダ９４３０は、フラグメントが中心窩領域または周辺領域の内部にあるかどうかに基づいて、上記に説明したようなシェーディング動作を行う。表示される画像の中心窩領域内部に位置するフラグメントは、中心窩領域内部のフラグメントに関する詳細なテクスチャ及び明度を達成するために処理効率を考慮せず、高解像度におけるシェーディング動作を使用して処理される。他方では、中心窩フラグメントプロセッサ９４３０は、移動及び十分なコントラスト等を提供する最小の動作で十分に詳細にフラグメントを処理するために処理効率に着目し、周辺領域内部に位置するフラグメント上でシェーディング動作を行う。
【０１３７】
例えば、本発明の実施形態では、パーティクルシステムのフラグメントは、フラグメントが中心窩領域の内側または外側にある（例えば、中心窩領域の内側または外側の画素に寄与する）かどうかに応じて、異なるようにレンダリングされる。算出シェーダ９４０１が、事前に、パーティクル及び／またはそのコンポーネントジオメトリが、中心窩領域の内側または外側に位置するかどうかを判定し、適宜、（例えば、オブジェクトが周辺領域内にあるとき、ボーンのサブシステムを使用して）そのコンポーネントジオメトリをフィルタリングしたため、頂点シェーダ９４１０の出力は、適切なプリミティブをグラフィックスパイプラインの残りのコンポーネント（例えば、ラスタライザ９４２０及び中心窩フラグメントシェーダ９４３０等を含む）に提供するために既に位置付けられている。したがって、プログラマブルシェーダ９４０２のグラフィックスパイプラインの残りのコンポーネントは、オブジェクトが中心窩領域内にあるとき、ボーン階層におけるボーンのフルコンポーネントをレンダリングするように構成される。また、プログラマブルシェーダ９４０２のグラフィックスパイプラインの残りのコンポーネントは、オブジェクトが周辺領域内にあるとき、ボーン階層におけるボーンのサブシステムをレンダリングするように構成される。
【０１３８】
フラグメントシェーダ９４３０の出力は、処理されたフラグメント（例えば、シャドーイングを含むテクスチャ情報及びシェーディング情報）を含み、グラフィックスパイプライン９４００の次のステージに送達される。
【０１３９】
出力統合コンポーネント９４４０は、対応する画素のそれぞれに寄与する及び／またはそれに影響を及ぼすフラグメントに応じて、各画素の特質を計算する。すなわち、３Ｄゲーム世界内の全てのプリミティブのフラグメントは、ディスプレイの２Ｄ色画素に組み合わせられる。例えば、対応する画素に関するテクスチャ情報及びシェーディング情報に寄与するフラグメントは、グラフィックスパイプライン９４００の次のステージに送達される画素に関する最終明度を出力するために組み合わせられる。出力統合コンポーネント９４４０は、フラグメント間の値及び／またはフラグメントシェーダ９４３０から判定された画素の選定的混合を行い得る。
【０１４０】
ディスプレイ内の画素毎の明度は、フレームバッファ９４５０内に記憶される。これらの値は、シーンの対応する画像を表示するとき、対応する画素に対して走査される。具体的には、ディスプレイは、画素毎に、列毎に、左から右に、もしくは右から左に、上から下に、もしくは下から上に、または任意の他のパターンで、明度をフレームバッファから読み取り、画像を表示するとき、その画素値を使用して、画素を明るくする。
【０１４１】
ネットワークを通して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明から、本開示の一実施形態に従って、図８のフロー図９５００は、中心窩レンダリングを行うように構成されるグラフィックスパイプラインを実施するための方法を開示し、中心窩領域の内側に表示されるオブジェクトはより高解像度のボーン階層（ボーンのシステム）を使用してアニメ化及びレンダリングされ、非中心窩領域内に表示されるオブジェクトは低解像度のボーン階層（例えば、ボーンのシステム）を使用してレンダリングされる。前述に説明したように、フロー図９５００は、画像をレンダリングするとき、クライアントデバイスまたはクラウドベースゲームシステムの内部で実施される。一実施態様では、クライアントデバイスはゲーム機（また、ゲームコンソールと称される）である。
【０１４２】
９５１０において、本方法は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成することを含む。オブジェクトをアニメ化するとき、ボーンの階層セットはオブジェクトに移動を提供するために使用され、次に、多角形メッシュは、ボーンに適用される（例えば、多角形を１つ以上のボーンの頂点に関連付ける）。各ボーンは、３Ｄゲーム世界内で、位置、スケール、及び配向等を含む３Ｄ変換をもたらす。したがって、ボーンがフレーム毎に再配置され及びメッシュが適用されるとき、オブジェクトの移動が影響を受ける。すなわち、ボーン階層をアニメ化するとき、ボーンは、３Ｄゲーム世界内にその位置付けを変化させることを含む、変換を変化させる。各ボーンは、１つ以上の頂点に関連付けられる。次に、メッシュの多角形は、１つ以上のボーンに関連付けられる。すなわち、メッシュ内の多角形の各頂点は、１つ以上のボーンに関連付けられる、または１つ以上のボーンに結び付けられる。ボーンが移動するとき、メッシュの多角形（例えば、スキニング）はボーンとともに移動し、それにより、メッシュは、フレーム間で変化し得る。すなわち、多角形メッシュは、ボーン変換に応答して変形する。多角形に適用される倍率は混合重量を提供し、それにより、２つ以上のボーンに関連付けられる多角形は、どのボーンが多角形の移動により大きい影響をもたらすかを指定する重量が与えられる。すなわち、多角形の各頂点は、関連ボーン毎に、混合重量を有し得る。
【０１４３】
ボーン階層はボーン間に相互接続を定義し、ジョイントは２つ以上のボーン間の相互接続を定義し得る。しかしながら、ボーン階層は、ボーン間の位置関係を大まかに定義し得る。すなわち、ボーンは相互接続される（例えば、ジョイントに触れる）必要がないが、ボーン間の相対位置決めを定義するいくつかの他の関係を有し得る。
【０１４４】
オブジェクトが周辺領域内に位置するとき、アニメーション及びレンダリング前に、ボーンのシステムは減る。具体的には、９５２０において、本方法は、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定することを含む。具体的には、ボーンのサブシステムは、ボーン階層のボーンのフルコンポーネントよりも少ないボーンを含み得る。オブジェクトを画定するより少ないボーンを使用することによって、オブジェクトをアニメ化するときに行われる算出の必要がより少なくなる。例えば、歩行している人間をオブジェクトとして見なす場合、ボーンのサブシステムは、人間が膝のいずれかの関節運動がなく脚が直立して歩行するようにアニメ化され得る。人間が周辺領域内に位置するとき、ボーンのサブシステムは、アニメーション及びレンダリングを行うために使用され得る。
【０１４５】
ボーンのサブシステムを判定し得る。具体的には、頂点のシステムは、ボーンのシステムのために生成される。頂点のシステムから頂点のサブシステムを取り、頂点のサブシステムはボーンのサブシステムに割り当てられる。サブシステムは、２つのボーンの頂点を１つのボーンに組み合わせる等、頂点のシステムから取られ得る。加えて、いくつかの頂点は、組み合わせにおいて、削除され得る。他の実施態様では、新しい頂点はボーンのサブシステムを定義するために生成される。多角形メッシュを取り付けるとき、ボーンに関する複数の混合重量は、ボーンのサブシステムによって使用される混合重量のサブセットに減り得る。例えば、減少した頂点のセットは第１のボーン及び第２のボーンから形成され得る。減少した頂点のセットは第１のボーンの頂点の第１のセット及び第２のボーンの頂点の第２のセットから取られる。より具体的には、減少したセットは、頂点の第１及び第２のセットの組み合わせで見られるものよりも少ないジョイントを定義する。
【０１４６】
９５３０において、本方法は、仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。中心窩領域は、最高解像度で表面をレンダリングすることに関連付けられ得る。中心窩領域は、想定（例えば、概して、ディスプレイの静的エリアを覆うディスプレイの中心における想定）によって、または眼の追跡（例えば、視線の方向を判定するための追跡）によってのいずれかで、ユーザの注目が集まる場所であり得る。静的中心窩領域に関して、中心窩領域はディスプレイの中心にセンタリングする。眼の追跡を行うとき、仮想シーンを視認するユーザの視線を追跡し、視線はユーザの注目が向いている仮想シーンへの方向を示す。この場合、視線の方向に基づいて、中心窩領域を画像内でセンタリングし得る。加えて、中心窩領域内の画像の一部（例えば、プリミティブ及び／またはフラグメント）は、高解像度におけるグラフィックスプロセッサによってレンダリングされる。例えば、中心窩領域内に位置するオブジェクトのアニメーション及びレンダリングが最高解像度のボーン階層を使用して（例えば、ボーンのフルコンポーネントを使用して）行われ得る。
【０１４７】
他方では、周辺領域がユーザに注目されず、中心窩領域内の画像の一部（例えば、プリミティブ及び／またはフラグメント）は、より低解像度におけるグラフィックスプロセッサによってレンダリングされる。例えば、周辺領域内に位置するオブジェクトのアニメーション及びレンダリングがより低解像度のボーン階層を使用して（例えば、ボーンのサブシステムを使用して）行われ得る。より具体的には、画素の第１のサブセットは中心窩領域に割り当てられ、第１のサブセットに関連付けられるプリミティブ及び／またはフラグメントは高解像度で処理される。画素の第２のサブセットは中心窩領域の外側にある周辺領域に割り当てられ、第２のサブセットに関連付けられるプリミティブ及び／またはフラグメントはより低解像度（例えば、中心窩領域に関連付けられる解像度よりも低いもの）で処理される。
【０１４８】
９５４０において、本方法は、オブジェクトの少なくとも一部が、画像の周辺領域内に位置していることを判定することを含む。オブジェクトの少なくとも一部が周辺領域内にあることが判定されたとき、９５５０において、本方法は、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化することと、次に、グラフィックスパイプラインの残りのステージによって結果をレンダリングすることとを含む。その後、アニメーション及びプログラマブルシェーダ４０２に入力されるために使用されるボーンのフルコンポーネントまたはボーンのサブシステムであろうとなかろうと、頂点シェーダ４１０による出力は、既に、中心窩レンダリングまたは非中心窩レンダリングの原因となり、したがって、残りの動作は一般的な様式で動作する。すなわち、オブジェクトが中心窩領域内にあるとき、頂点シェーダ４１０はボーンのシステム上で動作する、また、オブジェクトが周辺領域内にあるとき、頂点シェーダ４１０はボーンのサブシステム上で動作する。
【０１４９】
さらに別の実施形態では、オブジェクトが周辺領域内にあるときに、ボーンの数を減らすことに加えて、アニメーション及びレンダリングを行うとき、フレームカウントは、さらに減り得る。すなわち、ボーン位置付けに対する目立たない更新は減り得、それにより、より少ない数のフレームは周辺領域内でオブジェクトの運動を生じさせるために使用され得、標準的な数のフレームは中心窩領域内でオブジェクトの運動を生じさせるために使用され得る。
【０１５０】
図９は、本開示の一実施形態による、オブジェクトが中心窩領域内に表示されるときに高解像度のボーン階層を使用するオブジェクトのアニメーション及びレンダリングと、オブジェクトが周辺領域内に表示されるときに低解像度のボーン階層を使用するオブジェクトのアニメーション及びレンダリングとの例証図である。具体的には、９６１０は、高解像度でアニメ化及びレンダリングされるオブジェクト９６５０のフレーム毎の移動を示す。例えば、オブジェクト９６５０は、中心窩領域内に位置し得る。示されるように、オブジェクト９６５０はボーンのフルコンポーネントを有し、それにより、ジョイント（例えば、腕及び脚）の移動は、オブジェクトがフレーム間において３Ｄ空間内で移動するとき、両脚及び両腕の曲がりを示す。他方では、９６２０は、低解像度でアニメ化及びレンダリングされるオブジェクト９６５０’のフレーム毎の移動を示す。例えば、オブジェクト９６５０’は、周辺領域内に位置し得る。示されるように、オブジェクト９６５０’は減少した数のボーン（ボーンのサブシステム）を有し、それにより、ジョイントの移動は、オブジェクト９６５０’がフレーム間において３Ｄ空間内で移動するとき、両脚及び両腕のいずれかの曲がりを示していない。具体的には、減少したボーンのセットは、膝及び足首についての移動を示す複数のジョイントを有する２つまたは３つのボーンの代わりに、脚全体に関する１つのボーンを含み得る。
【０１５１】
一実施形態では、コンピュータシステムはプロセッサ及びメモリを含み、メモリは、プロセッサに結合され、コンピュータシステムによって実行される場合、コンピュータシステムに、グラフィックスパイプラインを実施するための方法を実行させる命令をメモリ内に記憶する。本方法は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成することを含む。本方法は、さらに、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定することを含む。本方法は、さらに、オブジェクトを含む仮想シーンの画像をレンダリングするとき、中心窩領域を判定することを含み、中心窩領域はユーザの注目が向く場所に対応する。本方法は、さらに、オブジェクトの少なくとも一部が画像に関する周辺領域内に位置していることを判定することを含む。本方法は、さらに、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化することを含む。
【０１５２】
別の実施形態では、コンピュータシステムによって実行される方法では、本方法でボーンにサブシステムを判定することは、さらに、ボーンのシステムに関連付けられる頂点のシステムを生成することを含む。本方法は、さらに、頂点のシステムから取られた頂点のサブシステムを生成することを含む。本方法は、さらに、頂点のサブシステムをボーンのサブシステムに割り当てることを含む。
【０１５３】
別の実施形態では、コンピュータシステムによって実行される方法では、本方法で頂点のサブシステムを割り当てることは、さらに、第１のボーン及び第２のボーンの減少した頂点のセットを形成することを含み、減少した頂点のセットは第１のボーンの頂点の第１のセット及び第２のボーンの頂点の第２のセットから取られ、減少したセットは、頂点の第１及び第２のセットの組み合わせよりも少ないジョイントを定義する。
【０１５４】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、頂点のサブシステムをレンダリングすることを含む。
【０１５５】
別の実施形態では、コンピュータシステムによって実行される方法では、複数のボーンは相互接続されたボーンの階層セットを定義する。
【０１５６】
別の実施形態では、コンピュータシステムによって実行される方法は、さらに、オブジェクトをアニメ化するとき、キーフレームの数を減らすことを含む。
【０１５７】
別の実施形態では、非一時的なコンピュータ可読媒体は、グラフィックスパイプラインを実施するためのコンピュータプログラムを記憶する。コンピュータ可読媒体は、ボーン間の位置付け関係を定義するオブジェクトに関する複数のボーンを生成するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、ボーンのサブシステムを、オブジェクトに関する複数のボーンから判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、オブジェクトを含む仮想シーンの画像をレンダリングするとき、中心窩領域を判定するためのプログラム命令を含み、中心窩領域はユーザの注目が向く場所に対応する。コンピュータ可読媒体は、さらに、オブジェクトの少なくとも一部が画像に関する周辺領域内に位置していることを判定するためのプログラム命令を含む。コンピュータ可読媒体は、さらに、変換をボーンのサブシステムに適用することによって、オブジェクトをアニメ化するためのプログラム命令を含む。
【０１５８】
別の実施形態では、ボーンのサブシステムを判定するためのプログラム命令は、さらに、ボーンのシステムに関連付けられる頂点のシステムを生成するためのプログラム命令を含む。ボーンのサブシステムを判定するためのプログラム命令は、さらに、頂点のサブシステムを頂点のシステムから生成するためのプログラム命令を含む。ボーンのサブシステムを判定するためのプログラム命令は、さらに、頂点のサブシステムをボーンのサブシステムに割り当てるためのプログラム命令を含む。
【０１５９】
別の実施形態では、頂点のサブシステムを割り当てるためのプログラム命令は、第１のボーン及び第２のボーンの減少した頂点のセットを形成するためのプログラム命令を含み、減少した頂点のセットは第１のボーンの頂点の第１のセット及び第２のボーンの頂点の第２のセットから取られ、減少したセットは、頂点の第１及び第２のセットの組み合わせよりも少ないジョイントを定義する。
【０１６０】
別の実施形態では、コンピュータ可読媒体は、さらに、多角形メッシュとボーンのサブシステムとの間の関連性を定義するために使用するように、複数の混合重量を混合重量のサブセットに減らすことをさらに含む。
【０１６１】
別の実施形態では、コンピュータ可読媒体は、さらに、頂点のサブシステムをレンダリングすることを含む。
【０１６２】
別の実施形態では、プログラム命令では、複数のボーンは相互接続されたボーンの階層セットを定義する。
【０１６３】
別の実施形態では、コンピュータ可読媒体は、さらに、オブジェクトをアニメ化するとき、キーフレームの数を減らすことを含む。
【０１６４】
特定の実施形態が中心窩レンダリングを行うように構成されるビデオレンダリングシステムのグラフィックスプロセッサの実施を説明するように提供されているが、中心窩領域内の画像の部分は高解像度でレンダリングされ（例えば、より高解像度のシャドーマップを使用してシャドーをレンダリングする）、周辺領域内の部分はより低解像度でレンダリングされ（例えば、より低解像度のシャドーマップを使用してシャドーをレンダリングする）、これらは、例として説明され、限定的なものとして説明されない。本開示を読んでいる当業者は、本開示の主旨及び範囲の中に収まる追加実施形態を理解する。
【０１６５】
広範な地理的エリアにわたって送達される本実施形態のゲームへのアクセス等を提供するアクセスサービスが、多くの場合、クラウドコンピューティングを使用することを留意されたい。クラウドコンピューティングは、動的に拡張可能であり、多くの場合、仮想化されたリソースがインターネットを通したサービスとして提供される、コンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」の技術インフラストラクチャに関する専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ（「ＩａａＳ」）、サービスとしてのプラットフォーム（「ＰａａＳ」）、及びサービスとしてのソフトウェア（「ＳａａＳ」）等の異なるサービスに分けられることができる。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされるオンラインのビデオゲーム等の一般的アプリケーションを提供する一方で、ソフトウェア及びデータはクラウド内のサーバ上に記憶される。用語「クラウド」は、どのようにインターネットがコンピュータネットワーク図に示されるかに基づいてインターネットに関する例えとして使用され、それを隠す複雑なインフラストラクチャに関する抽象的概念である。
【０１６６】
ゲーム処理サーバ（ＧＰＳ）（または、単に「ゲームサーバ」）は、シングルプレイヤー及びマルチプレイヤーのビデオゲームをプレイするために、ゲームクライアントによって使用される。インターネットを通してプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。一般的に、ゲームは、データをプレイヤーから集める専用サーバアプリケーションを使用し、そのデータを他のプレイヤーに分配する。これは、ピアツーピア配列よりも効率的及び効果的であるが、別個のサーバにサーバアプリケーションをホストすることを要求する。別の実施形態では、ＧＰＳは、プレイヤーとそれらの各々のゲームプレイ用デバイスとの間に通信を確立し、集中型ＧＰＳに依存することなく情報を交換する。
【０１６７】
専用ＧＰＳは、クライアントから独立して起動するサーバである。係るサーバは、通常、データセンター内に位置する専用ハードウェア上で起動し、より広い帯域幅及びより多くの専用処理電力を提供する。専用サーバが、ほとんどのＰＣベースのマルチプレイヤーゲームのためのゲームサーバをホストする好ましい方法である。大規模マルチプレイヤーオンラインゲームは、通常、ゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で起動し、そのゲームが、コンテンツを制御及び更新することを可能にする。
【０１６８】
ユーザは、少なくともＣＰＵ、ディスプレイ、及びＩ／Ｏ（入出力）を含むクライアントデバイスを用いて、リモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、ＰＤＡ等であり得る。一実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、使用される通信方法を調節する。他の場合、クライアントデバイスは、ｈｔｍｌ等の標準的通信方法を使用して、インターネットを通してゲームサーバ上でアプリケーションにアクセスする。
【０１６９】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース電子機器またはプログラム可能家庭用電子機器、ミニコンピュータ、メーンフレームコンピュータ等を含む様々なコンピュータシステム構成で実践され得る。本開示は、また、タスクが有線ベースネットワークまたは無線ネットワークを経由してリンクされるリモート処理デバイスによって行われる分散コンピューティング環境で実践されることができる。
【０１７０】
所与のビデオゲームが特定のプラットフォーム及び特定の関連コントローラデバイス用に開発され得ることを認識されたい。しかしながら、係るゲームが本明細書に提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスし得る。例えば、ゲームは、ゲームコンソール及びその関連のコントローラ用に開発されている場合がある一方で、ユーザは、キーボード及びマウスを利用するパーソナルコンピュータからゲームのクラウドベースバージョンにアクセスする場合がある。係るシナリオでは、入力パラメータ構成は、ユーザの利用可能であるコントローラデバイス（この場合、キーボード及びマウス）によって生成されることができる入力から、ビデオゲームを実行するために容認可能である入力までのマッピングを定義することができる。
【０１７１】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介して、クラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイスになるように一緒に一体化され、入力が検出済タッチスクリーンの入力／ジェスチャを用いて提供される。係るデバイスに関して、入力パラメータ構成は、ビデオゲームに関するゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、指向性パッド、または他の種類の入力要素は、ユーザがゲーム入力を生成されるために触れることができるタッチスクリーン上の場所を示すビデオゲームの起動中、表示される、または重なる場合がある。特定の方向または特有のタッチ動作のスワイプ等のジェスチャは、また、ゲーム入力として検出され得る。一実施形態では、指導書は、ユーザに、タッチスクリーン上での制御の動作に慣れさせるように、（例えば、ビデオゲームのゲームプレイが始まる前に）ゲームプレイ用のタッチスクリーンを介して入力を提供する方法を示すように、ユーザに提供されることができる。
【０１７２】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスに関する接続点の役割を果たす。すなわち、コントローラデバイスは、クライアントデバイスと無線接続または有線接続を介して通信し、入力をコントローラデバイスからクライアントデバイスに伝送する。クライアントデバイスは、順に、これらの入力を処理し、次に、ネットワーク（例えば、ルータ等のローカルネットワークデバイスを介してアクセスされる）を介して、入力データをクラウドゲームサーバに伝送し得る。しかしながら、他の実施形態では、コントローラ自体は、最初にクライアントデバイスを経由して係る入力を通信させることを要求されることなく、クラウドゲームサーバに対するネットワークを介して直接入力を通信させる能力があるネットワークデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス（前述のルータ等）に接続し、データをクラウドゲームサーバに送信し、及びクラウドゲームサーバから受信する場合がある。したがって、クライアントデバイスが依然としてクラウドベースビデオゲームから出力されるビデオを受信し、それをローカルディスプレイ上にレンダリングすることが要求され得るが、クライアントデバイスをバイパスするように、クラウドゲームサーバに対するネットワークを通して直接コントローラが入力を送信することを可能にすることによって、入力レイテンシを短縮することができる。
【０１７３】
一実施形態では、ネットワークコントローラ及びクライアントデバイスは、ある種類の入力をコントローラから直接クラウドゲームサーバに送信し、クライアントデバイスを介して他の種類の入力を送信するように構成されることができる。例えば、入力（その入力の検出がコントローラ自体とは別の任意の追加ハードウェアまたは処理に依存しない）は、クライアントデバイスをバイパスするように、ネットワークを介して、コントローラから直接クラウドゲームサーバに送信されることができる。係る入力は、ボタン入力、ジョイスティック入力、内蔵式動き検出入力部（例えば、加速度計、磁気計、ジャイロスコープ）等を含み得る。しかしながら、追加ハードウェアを利用する、またはクライアントデバイスによる処理を要求する入力は、クライアントデバイスによって、クラウドゲームサーバに送信されることができる。これらは、クラウドゲームサーバに送信する前に、クライアントデバイスによって処理され得るゲーム環境からキャプチャされたビデオまたは音声を含む場合がある。加えて、コントローラの動き検出ハードウェアからの入力は、コントローラの位置及び動きを検出するように、キャプチャされたビデオと併せてクライアントデバイスによって処理される場合があり、コントローラは、その後、クライアントデバイスによって、クラウドゲームサーバに通信する。様々な実施形態に従ってコントローラデバイスがまた、データ（例えば、フィードバックデータ）をクライアントデバイスから、またはクラウドゲームサーバから直接受信し得ることを認識されたい。
【０１７４】
本明細書に説明される実施形態が任意の種類のクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ（ＨＭＤ）である。
【０１７５】
図１０は、本開示の実施形態による、示されるヘッドマウントディスプレイ１０２のコンポーネントを示す図である。ヘッドマウントディスプレイ１０２は、プログラム命令を実行するためのプロセッサ１０００を含む。メモリ１００２は、記憶する目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含み得る。ユーザが視認し得る視覚インターフェースを提供するディスプレイ１００４が含まれる。バッテリ１００６は、ヘッドマウントディスプレイ１０２用の電源として提供される。動き検出モジュール１００８は、磁気計１０１０Ａ、加速度計１０１２、及びジャイロスコープ１０１２等の任意の様々な種類の動き感知ハードウェアを含み得る。
【０１７６】
加速度計は、加速度及び重力誘導反動力を測定するためのデバイスである。単一及び複数の軸モデルは、異なる方向で、加速度の大きさ及び方向を検出することに利用可能である。加速度計は、傾斜、振動、及び衝撃を感知するために使用される。一実施形態では、３つの加速度計１０１２は、重力の方向を提供するために使用され、その重力は、２つの角度に関する絶対参照（世界空間ピッチ及び世界空間ロール）を与える。
【０１７７】
磁気計は、ヘッドマウントディスプレイの付近における磁場の強度及び方向を測定する。一実施形態では、３つの磁気計１０１０Ａは、ヘッドマウントディスプレイの内部で使用され、世界空間のヨー角に関する絶対参照を確実にする。一実施形態では、磁気計は、地磁場が±８０マイクロテスラの範囲にわたるように設計されている。磁気計は、金属による影響を受け、実際のヨーで単調であるヨー測定を提供する。磁場は、ヨー測定において歪みを生じる環境の金属に起因して歪み得る。必要に応じて、この歪みは、ジャイロスコープまたはカメラ等の他のセンサからの情報を使用して較正されることができる。一実施形態では、加速度計１０１２は、磁気計１０１０Ａと一緒に使用され、ヘッドマウントディスプレイ１０２の傾角及び方位角を取得する。
【０１７８】
ジャイロスコープは、角度のモーメントの原理に基づいて、配向を測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ１０１４は、慣性感知に基づいて、各々の軸（ｘ、ｙ、及びｚ）にわたる運動に関する情報を提供する。ジャイロスコープは高速回転を検出する際に役立つ。しかしながら、ジャイロスコープは、絶対参照の存在なしで、時間超過してドリフトする可能性がある。これは、定期的にジャイロスコープをリセットすることを要求し、オブジェクト、加速度計、磁気計等の視覚的追跡に基づいて位置／配向の判定等の他の利用可能である情報を使用して行うことができる。
【０１７９】
カメラ１０１６は、実環境の画像及び画像ストリームをキャプチャするために提供される。２つ以上のカメラは、ヘッドマウントディスプレイ１０２内に含まれ得、ヘッドマウントディスプレイ１０２は、後ろ向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを視認するとき、ユーザから離れるように向いている）と、前向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを視認するとき、ユーザに向かう向きになる）とを含む。加えて、深度カメラ１０１８は、実環境におけるオブジェクトの深度情報を感知するためのヘッドマウントディスプレイ１０２内に含まれ得る。
【０１８０】
一実施形態では、ＨＭＤの前面に一体化されるカメラは、安全に関する警報を提供するために使用され得る。例えば、ユーザが壁またはオブジェクトに近づいている場合、ユーザは警告され得る。一実施形態では、物理的オブジェクトの存在をユーザに警告するために、部屋内の物理的オブジェクトの外観図を用いて使用を提供し得る。例えば、外観図は、仮想環境におけるオーバーレイであり得る。いくつかの実施形態では、ＨＭＤユーザは、例えば、フロア内で重なる参照マーカを視野に入れて提供され得る。例えば、マーカは、ユーザがゲームをプレイしている部屋の中心の場所の参照をユーザに提供し得る。例えば、これは、部屋内の壁または他のオブジェクトに衝突することを回避するために、ユーザが移動するべき場所にいるユーザに視覚情報を提供し得る。また、ユーザがＨＭＤを装着する、ＨＭＤでゲームをプレイする、またはコンテンツをナビゲートするときに、さらなる安全性を提供するために、ユーザに触知性警報及び／または音声警報を提供することができる。
【０１８１】
ヘッドマウントディスプレイ１０２は、音声出力を提供するためのスピーカ１０２０を含む。また、マイクロホン１０２２は、周囲環境からの音、ユーザによって行われるスピーチ等を含む実環境からの音声をキャプチャするために含まれ得る。ヘッドマウントディスプレイ１０２は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール１０２４を含む。一実施形態では、触覚フィードバックモジュール１０２４は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ１０２の移動及び／または振動を生じさせることが可能である。
【０１８２】
ＬＥＤ１０２６は、ヘッドマウントディスプレイ１０２の状態の可視的インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、電源オン等を示し得る。カードリーダ１０２８は、ヘッドマウントディスプレイ１０２が、情報をメモリカードから読み取り、及び情報をメモリカードに書き込むことを可能にするように提供される。ＵＳＢインターフェース１０３０は、周辺デバイスの接続、または他のポータブルデバイス、コンピュータ等の他のデバイスへの接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ１０２の様々の実施形態では、任意の様々な種類のインターフェースは、ヘッドマウントディスプレイ１０２の良好な接続性を可能にするように含まれ得る。
【０１８３】
Ｗｉ‐Ｆｉモジュール１０３２は、無線ネットワーク技術を介して、インターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ１０２は、他のデバイスへの無線接続を可能にするためのＢｌｕｅｔｏｏｔｈ（登録商標）モジュール１０３４を含む。通信リンク１０３６は、また、他のデバイスに接続するために含まれ得る。一実施形態では、通信リンク１０３６は、無線通信に関する赤外線伝送を利用する。他の実施形態では、通信リンク１０３６は、他のデバイスで通信するために、様々な無線または有線伝送プロトコルのいずれかを利用し得る。
【０１８４】
入力ボタン／センサ１０３８は、ユーザに関する入力インターフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボール等の様々な種類の入力インターフェースのいずれかが含まれ得る。超音波通信モジュール１０４０は、超音波技術を用いて他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ１０２内に含まれ得る。
【０１８５】
生物学的センサ１０４２は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、生物学的センサ１０４２は、ユーザの皮膚を通るユーザの生体電気信号を検出するための１つ以上のドライ電極を含む。
【０１８６】
光検出器１０４４は、３次元物理的環境にセットされるエミッタ（例えば、赤外線ベースステーション）からの信号に反応するために含まれる。ゲーム機は、情報を光センサ１０４４及びエミッタから分析し、ヘッドマウントディスプレイ１０２に関連する位置情報及び配向情報を判定する。
【０１８７】
前述のヘッドマウントディスプレイ１０２のコンポーネントは、ヘッドマウントディスプレイ１０２内に含まれ得る単なる例示的コンポーネントとして説明されている。本開示の様々の実施形態では、ヘッドマウントディスプレイ１０２は、様々な前述のコンポーネントの一部を含む場合がある、または含まない場合がある。ヘッドマウントディスプレイ１０２の実施形態は、加えて、本明細書に説明されるような本開示の態様を容易にする目的のために、ここでは説明されていないが当技術分野で既知である他のコンポーネントを含み得る。
【０１８８】
本開示の様々な実施形態では、前述のハンドヘルドデバイスは、様々な対話機能を提供するためにディスプレイ上に表示される対話型アプリケーションと併せて利用され得ることが当業者によって認識される。本明細書に説明される例示的実施形態は、単なる例として提供され、限定的なものとして提供されない。
【０１８９】
図１１は、本開示の様々な実施形態による、ゲームシステム１１００のブロック図である。ゲームシステム１１００は、ネットワーク１１１５を介して、ビデオストリームを１つ以上のクライアント１１１０に提供するように構成される。ゲームシステム１１００は、一般的に、ビデオサーバシステム１１２０と、選択式ゲームサーバ１１２５とを含む。ビデオサーバシステム１１２０は、最低限の品質のサービスで、ビデオストリームを１つ以上のクライアント１１１０に提供するように構成される。例えば、ビデオサーバシステム１１２０は、ビデオゲーム内の視界の状態または視点を変更するゲームコマンドを受信し、クライアント１１１０に、最小の遅延時間の状態でこの変化を反映しているビデオストリームの更新を提供し得る。ビデオサーバシステム１１２０は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットのビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートにおいて、ユーザに提示されるように構成されるビデオフレームを含み得る。一般的なフレームレートは、３０フレーム／秒、８０フレーム／秒、及び８２０フレーム／秒である。しかし、より高い、またはより低いフレームレートが、本開示の代替実施形態に含まれる。
【０１９０】
クライアント１１１０（本明細書に個別に１１１０Ａ、１１１０Ｂ等として言及される）は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話器、セットトップボックス、公衆電話ボックス、無線デバイス、デジタルパッド、独立型デバイス、ハンドヘルドゲームプレイ用デバイス、及び／または同等物を含み得る。一般的に、クライアント１１１０は、エンコードされたビデオストリーム（すなわち、圧縮されている）を受信し、ビデオストリームをデコードし、結果として生じるビデオをユーザ（例えば、ゲームのプレイヤー）に提示するように構成される。エンコードされたビデオストリームを受信する及び／またはビデオストリームをデコードするプロセスは、一般的に、クライアントの受信バッファ内に個別のビデオフレームを記憶することを含む。ビデオストリームは、クライアント１１１０に不可欠なディスプレイ上で、またはモニタもしくはテレビ等の別個のデバイス上で、ユーザに提示され得る。クライアント１１１０は、随意に、２人以上のゲームプレイヤーをサポートするように構成される。例えば、ゲームコンソールは、２人、３人、４人以上の同時参加プレイヤーをサポートするように構成され得る。これらのプレイヤーのそれぞれは、別個のビデオストリームを受信し得る、または単一のビデオストリームは、特にプレイヤー毎に生成される（例えば、各プレイヤーの視点に基づいて生成される）フレームの領域を含み得る。クライアント１１１０は、随意に、地理的に分散される。ゲームシステム１１００内に含まれるクライアント数は、１人または２人から、数千人、数万人、それ以上の人数まで、広範囲に変わり得る。本明細書に使用されるような用語「ゲームプレイヤー」は、ゲームをプレイする人を指すように使用され、用語「ゲームプレイ用デバイス」は、ゲームをプレイするために使用されるデバイスを指すように使用される。いくつかの実施形態では、ゲームプレイ用デバイスは、ゲーム経験をユーザに送達するように連係する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム１１２０と連係し、ＨＭＤによって視認されるゲームを送達し得る。一実施形態では、ゲームコンソールは、ビデオストリームをビデオサーバシステム１１２０から受信し、ゲームコンソールは、レンダリングするためにＨＭＤに、ビデオストリームを転送する、またはビデオストリームを更新する。
【０１９１】
クライアント１１１０は、ネットワーク１１１５を介して、ビデオストリームを受信するように構成される。ネットワーク１１１５は、電話回線、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び／または同等物を含む、任意の種類の通信ネットワークであり得る。一般的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰ等の標準プロトコルを用いて通信する。代替として、ビデオストリームは、プロプリエタリ標準を用いて通信する。
【０１９２】
クライアント１１１０の一般的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、デコードロジック、ネットワーク通信能力、及び入力デバイスを備える、パーソナルコンピュータである。デコードロジックは、コンピュータ可読媒体上に記憶されるハードウェア、ファームウェア、及び／またはソフトウェアを含み得る。ビデオストリームをデコード（及びエンコード）するためのシステムは、当技術分野で周知であり、使用される特定のエンコードスキームに応じて変わり得る。
【０１９３】
クライアント１１１０は、必須ではないが、さらに、受信されたビデオを修正するように構成されるシステムを含み得る。例えば、クライアントは、さらに、レンダリングを行い、１つのビデオ画像を別のビデオ画像上に重ね、ビデオ画像を切り取り、及び／または同様のことを行うように構成され得る。例えば、クライアント１１１０は、Ｉフレーム、Ｐフレーム、及びＢフレーム等の様々な種類のビデオフレームを受信し、ユーザに表示するために、これらのフレームを画像内で処理するように構成され得る。いくつかの実施形態では、クライアント１１１０のメンバーは、さらに、レンダリング、シェーディング、３Ｄへの変換、またはビデオストリーム上の同様の動作を行うように構成される。クライアント１１１０のメンバーは、随意に、２つ以上の音声またはビデオストリームを受信するように構成される。クライアント１１１０の入力デバイスは、例えば、片手式ゲームコントローラ、両手式ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動き及び／または場所感知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、まだ開発中の入力デバイス、及び／または同等物を含み得る。
【０１９４】
クライアント１１１０によって受信されるビデオストリーム（及び選択式オーディオストリーム）は、ビデオサーバシステム１１２０によって生成及び提供される。さらに本明細書の他の箇所で説明されるように、このビデオストリームは、ビデオフレームを含む（オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される（例えば、それらは、適切なデータ構造の画素情報を含む）。本明細書に使用されるような用語「ビデオフレーム」は、ユーザに示される画像に寄与する（例えば、画像を生じさせる）ように構成される情報を主に含むフレームを指すように使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、また、「オーディオフレーム」に適用されることができる。
【０１９５】
クライアント１１１０は、一般的に、入力をユーザから受信するように構成される。これらの入力は、ビデオゲームの状態を変化させる、またはそうでなければゲームプレイに影響を及ぼすように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができる、及び／または、クライアント１１１０上で実行するコンピューティング命令によって、自動的に生成され得る。受信ゲームコマンドは、ビデオサーバシステム１１２０及び／またはゲームサーバ１１２５に対するネットワーク１１１５を介して、クライアント１１１０から通信する。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム１１２０を介して、ゲームサーバ１１２５に対して通信する。いくつかの実施形態では、ゲームコマンドの別個のコピーは、クライアント１１１０から、ゲームサーバ１１２５及びビデオサーバシステム１１２０に通信する。ゲームコマンドの通信は、随意に、コマンドの識別情報に依存している。ゲームコマンドは、随意に、オーディオストリームまたはビデオストリームをクライアント１１１０Ａに提供するために使用される異なるルートまたは通信チャネルを経由して、クライアント１１１０Ａから通信する。
【０１９６】
ゲームサーバ１１２５は、随意に、ビデオサーバシステム１１２０と異なるエンティティによって動作する。例えば、ゲームサーバ１１２５は、マルチプレイヤーゲームの発行者によって動作し得る。この例では、ビデオサーバシステム１１２０は、随意に、ゲームサーバ１１２５によって、クライアントとして見なされ、随意に、先行技術のゲームエンジンを実行する先行技術のクライアントであるゲームサーバ１１２５の視点から現れるように構成される。ビデオサーバシステム１１２０とゲームサーバ１１２５との間の通信は、随意に、ネットワーク１１１５を介して発生する。したがって、ゲームサーバ１１２５は、ゲーム状態情報を複数のクライアント（それらの１つがゲームサーバシステム１１２０である）に送信する先行技術のマルチプレイヤーゲームサーバであり得る。ビデオサーバシステム１１２０は、同時に、ゲームサーバ１１２５の複数のインスタンスと通信するように構成され得る。例えば、ビデオサーバシステム１１２０は、複数の異なるビデオゲームを異なるユーザに提供するように構成されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１１２５によってサポートされ得る、及び／または異なるエンティティによって発行され得る。いくつかの実施形態では、ビデオサーバシステム１１２０のいくつかの地理的に分散されたインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム１１２０のこれらのインスタンスのそれぞれは、ゲームサーバ１１２５の同じインスタンスと通信し得る。ビデオサーバシステム１１２０と１つ以上のゲームサーバ１１２５との間の通信は、随意に、専用通信チャネルを介して発生する。例えば、ビデオサーバシステム１１２０は、これらの２つのシステム間の通信に専用である高帯域チャネルを介して、ゲームサーバ１１２５に接続され得る。
【０１９７】
ビデオサーバシステム１１２０は、少なくとも、ビデオソース１１３０、入出力デバイス１１４５、プロセッサ１１５０、及び非一過性ストレージ１１５５を備える。ビデオサーバシステム１１２０は、１つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイス間で分散され得る。これらのコンピューティングデバイスは、随意に、ローカルエリアネットワーク等の通信システムを介して接続される。
【０１９８】
ビデオソース１１３０は、ビデオストリーム（例えば、動画を形成するストリーミングビデオまたは一連のビデオフレーム）を提供するように構成される。いくつかの実施形態では、ビデオソース１１３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、ゲームコマンドをプレイヤーから受信するように、受信コマンドに基づいて、ビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境のオブジェクトの位置と、一般的に視点とを含む。ゲーム状態は、また、オブジェクトの特性、画像、色、及び／またはテクスチャを含み得る。
【０１９９】
ゲーム状態は、一般的に、ゲームルール、ならびに移動、回転、攻撃、焦点の設定、相互作用、使用、及び／または同様なこと等のゲームコマンドに基づいて維持される。ゲームエンジンの一部は、随意に、ゲームサーバ１１２５内に配置される。ゲームサーバ１１２５は、地理的に分散したクライアントを使用して、マルチプレイヤーから受信されたゲームコマンドに基づいてゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態は、ゲームサーバ１１２５によって、ビデオソース１１３０に提供され、ゲーム状態のコピーは記憶され、レンダリングが行われる。ゲームサーバ１１２５は、ネットワーク１１１５を介して、クライアント１１１０から直接ゲームコマンドを受信し得る、及び／またはビデオサーバシステム１１２０を介してゲームコマンドを受信し得る。
【０２００】
ビデオソース１１３０は、一般的に、レンダリングロジック（例えば、ストレージ１１５５等のコンピュータ可読媒体上に記憶されるハードウェア、ファームウェア、及び／またはソフトウェア）を含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全てまたは一部は、随意に、グラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、一般的に、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間関係を判定するように、及び／または適切なテクスチャを適用するよう等に構成される処理段階を含む。レンダリングロジックは、未加工のビデオを作り出し、次に、未加工のビデオは、通常、クライアント１１１０に通信する前にエンコードされる。例えば、未加工のビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．、Ｘｖｉｄ．、ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３等に従ってエンコードされ得る。エンコードプロセスは、リモートデバイス上のデコーダに送達するために随意にパッケージ化されたビデオストリームを作り出す。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。一般的なフレームサイズは、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８を含むが、任意の他のフレームサイズを使用し得る。フレームレートは、１秒当たりのビデオフレーム数である。ビデオストリームは、異なる種類のビデオフレームを含み得る。例えば、Ｈ．２６４規格は「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは表示デバイス上で全てのマクロブロック／画素をリフレッシュする情報を含む一方で、Ｐフレームはそれらのサブセットをリフレッシュする情報を含む。Ｐフレームは、一般的に、Ｉフレームよりも小さいデータサイズである。本明細書に使用されるような用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するために必要なバイト数を指すように使用される。
【０２０１】
代替実施形態では、ビデオソース１１３０は、カメラ等のビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含まれる可能性がある遅延ビデオまたはライブビデオを生成するために使用され得る。結果として生じるビデオストリームは、随意に、レンダリング画像、及び静止画またはビデオカメラを使用して記録された画像の両方を含む。ビデオソース１１３０は、また、ビデオストリームに含まれる事前に記録されたビデオを記憶するように構成されるストレージデバイスを含み得る。ビデオソース１１３０は、また、オブジェクト（例えば、人）の動きまたは位置を検出するように構成される動きまたは位置感知デバイスと、ゲーム状態を判定するように、または検出された動き及び／または位置に基づくビデオを作り出すように構成されるロジックとを含み得る。
【０２０２】
ビデオソース１１３０は、随意に、他のビデオ上でセットされるように構成されるオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、命令のログ、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーのビデオフィード（例えば、ウェブ画像ビデオ）を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１１１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び／または同等物を含み得る。オーバーレイの一例では、プレイヤーの声は、オーディオストリームにオーバーレイされる。ビデオソース１１３０は、随意に、１つ以上の音源をさらに含む。
【０２０３】
ビデオサーバシステム１１２０が２人以上のプレイヤーからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各プレイヤーは、視野の位置及び方向を含む異なる視点を有し得る。ビデオソース１１３０は、随意に、プレイヤーの視点に基づいて、プレイヤー毎に別個のビデオストリームを提供するように構成される。さらに、ビデオソース１１３０は、クライアント１１１０のそれぞれと異なるフレームサイズ、フレームデータサイズ、及び／またはエンコードを提供するように構成され得る。ビデオソース１１３０は、随意に、３次元ビデオを提供するように構成される。
【０２０４】
入出力デバイス１１４５は、ビデオサーバシステム１１２０が、ビデオ、コマンド、情報に関する要求、ゲーム状態、視線情報、デバイスの動き、デバイスの場所、ユーザ運動、クライアント識別情報、プレイヤー識別情報、ゲームコマンド、セキュリティ情報、音声、及び／または同等物等の情報を送信及び／または受信するように構成される。入出力デバイス１１４５は、一般的に、ネットワークカードまたはモデム等の通信ハードウェアを含む。入出力デバイス１１４５は、ゲームサーバ１１２５、ネットワーク１１１５、及び／またはクライアント１１１０と通信するように構成される。
【０２０５】
プロセッサ１１５０は、ロジック（例えば、本明細書に説明されるビデオサーバシステム１１２０の様々なコンポーネント内に含まれるソフトウェア）を実行するように構成される。例えば、プロセッサ１１５０は、ビデオソース１１３０、ゲームサーバ１１２５、及び／またはクライアント修飾子１１６０の機能を行うために、ソフトウェア命令でプログラムされ得る。ビデオサーバシステム１１２０は、随意に、プロセッサ１１５０の２つ以上のインスタンスを含む。プロセッサ１１５０は、また、ビデオサーバシステム１１２０によって受信されたコマンドを実行するために、または、本明細書に説明されるゲームシステム１１００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされ得る。プロセッサ１１５０は１つ以上のハードウェアデバイスを含み得る。プロセッサ１１５０は電子プロセッサである。
【０２０６】
ストレージ１１５５は、非一過性アナログストレージデバイス及び／または非一過性デジタルストレージデバイスを含む。例えば、ストレージ１１５５は、ビデオフレームを記憶するように構成されるアナログストレージデバイスを含み得る。ストレージ１１５５は、コンピュータ可読デジタルストレージ（例えば、ハードドライブ、光学式ドライブ、またはソリッドステートストレージ）を含み得る。ストレージ１１５５は、（例えば、適切なデータ構造またはファイルシステムを用いて）ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームと両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同等物を記憶するように構成される。ストレージ１１５５は、随意に、複数のデバイス間で分散される。いくつかの実施形態では、ストレージ１１５５は、本明細書の他の箇所で説明されるビデオソース１１３０のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要なときに、セットアップする準備ができているフォーマットで記憶され得る。
【０２０７】
ビデオサーバシステム１１２０は、随意に、クライアント修飾子１１６０をさらに備える。クライアント修飾子１１６０は、クライアント１１１０Ａまたは１１１０Ｂ等のクライアントの能力をリモートで判定するように構成される。これらの能力は、クライアント１１１０Ａ自体の能力、及びクライアント１１１０Ａとビデオサーバシステム１１２０との間の１つ以上の通信チャネルの能力の両方を含み得る。例えば、クライアント修飾子１１６０は、ネットワーク１１１５を経由して、通信チャネルをテストするように構成され得る。
【０２０８】
クライアント修飾子１１６０は、手動で、または自動的に、クライアント１１１０Ａの能力を判定（例えば、発見）することができる。手動判定は、能力を提供するために、クライアント１１１０Ａのユーザと通信することと、ユーザに質問することとを含む。例えば、いくつかの実施形態では、クライアント修飾子１１６０は、クライアント１１１０Ａのブラウザ内で、画像、テキスト、及び／または同等物を表示するように構成される。一実施形態では、クライアント１１１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント１１１０Ａは、ＨＭＤ上に表示され得るブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザに、クライアント１１１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダ種類、ネットワーク接続の種類、ディスプレイ解像度等の情報を入力することを要求する。ユーザによって入力された情報は、クライアント修飾子１１６０に戻るように通信する。
【０２０９】
自動判定は、例えば、クライアント１１１０Ａ上のエージェントの実行によって、及び／またはテストビデオをクライアント１１１０Ａに送信することによって、発生し得る。エージェントは、ウェブページに組み込まれる、またはアドオンとしてインストールされるｊａｖａ（登録商標）スクリプト等のコンピューティング命令を含み得る。エージェントは、随意に、クライアント修飾子１１６０によって提供される。様々の実施形態では、エージェントは、クライアント１１１０Ａの処理電力、クライアント１１１０Ａのデコード能力及び表示能力、遅延時間の信頼性、ならびにクライアント１１１０Ａとビデオサーバシステム１１２０との間の通信チャネルの帯域幅、クライアント１１１０Ａのディスプレイ種類、クライアント１１１０Ａ上に存在するファイアウォール、クライアント１１１０Ａのハードウェア、クライアント１１１０Ａ上で実行するソフトウェア、クライアント１１１０Ａ内のレジストリ項目、及び／または同等物を見つけることができる。
【０２１０】
クライアント修飾子１１６０は、コンピュータ可読媒体上に記憶されるハードウェア、ファームウェア、及び／またはソフトウェアを含む。クライアント修飾子１１６０は、随意に、ビデオサーバシステム１１２０の１つ以上の他の要素から分離しているコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアント修飾子１１６０は、クライアント１１１０と、ビデオサーバシステム１１２０の２つ以上のインスタンスとの間の通信チャネルの特徴を判定するように構成される。これらの実施形態では、クライアント修飾子によって発見された情報は、ビデオサーバシステム１１２０のどのインスタンスがストリーミングビデオをクライアント１１１０の１つに送達することに最良に適しているかを判定するために使用されることができる。
【０２１１】
本明細書に定義される様々な実施形態は、本明細書に開示される様々な特徴を使用して、特定の実施態様に組み合わされ得る、または組み立てられ得ることを理解されたい。したがって、提供される例は、単なるいくつかの可能である例であり、より多くの実施態様を定義する様々な要素を組み合わせることによって可能である様々な実施態様に限定されない。いくつかの例では、いくつかの実施態様は、開示されるまたは同等の実施態様の主旨から逸脱することなく、より少ない要素を含み得る。
【０２１２】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース電子機器またはプログラム可能家庭用電子機器、ミニコンピュータ、メーンフレームコンピュータ等を含む様々なコンピュータシステム構成で実践され得る。本開示の実施形態は、また、タスクが有線ベースネットワークまたは無線ネットワークを経由してリンクされるリモート処理デバイスによって行われる分散コンピューティング環境で実践されることができる。
【０２１３】
上記の実施形態を留意して、本開示の実施形態が、コンピュータシステム内に記憶されるデータを含有する様々なコンピュータ実施動作を使用することができることを理解されたい。これらの動作は、物理量の物理的処置を要求するものである。本開示の実施形態の一部を形成する本明細書に説明される動作のいずれかは、有用な機械動作である。本発明の実施形態は、また、これらの動作を行うためのデバイスまたは装置に関する。本装置は、要求された目的のために特別に構成されることができる、または、本装置は、コンピュータ内に記憶されるコンピュータプログラムによって選択的にアクティブになる、または構成される汎用コンピュータであり得る。具体的には、様々な汎用マシンは、本明細書の教示に従って書き込まれたコンピュータプログラムで使用されることができる、または、様々な汎用マシンは、より特殊な装置を構成し、要求動作を行うのにより便利であり得る。
【０２１４】
本開示は、また、コンピュータ可読媒体上のコンピュータ可読コードとして、具体化されることができる。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、当該データは、その後、コンピュータシステムによって読み取られることができる。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読取専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学データストレージデバイス及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、ネットワーク連結コンピュータシステムを通して分散されるコンピュータ可読有形媒体を含み得、これにより、コンピュータ可読コードは、分散様式で記憶及び実行される。
【０２１５】
本方法の動作が特定の順序で説明されたが、オーバーレイ動作の処理が所望の方法で行われる限り、他のハウスキーピング動作は動作間に行われ得る、または動作は、わずかに異なる時間で発生するように調節され得る、もしくは、処理に関連付けられる様々な間隔における処理動作の発生を可能にするシステム内で分散され得ることを理解されたい。
【０２１６】
理解の明確性の目的のために、前述の開示がいくつか詳細に説明されているが、ある変更及び修正が添付の「特許請求の範囲」の範囲内で実践できることが明白である。したがって、本実施形態は、例証であり制限するものではないとして考慮され、本開示の実施形態は、本明細書に与えられた詳細に限定されないが、添付の「特許請求の範囲」の範囲内及びその均等物の範囲内で修正され得る。
【図１Ａ】
0006959365.tif 000002
【図１Ｂ】
0006959365.tif 000003
【図１Ｃ】
0006959365.tif 000004
【図２Ａ】
0006959365.tif 000005
【図２Ｂ】
0006959365.tif 000006
【図３Ａ】
0006959365.tif 000007
【図３Ｂ】
0006959365.tif 000008
【図４】
0006959365.tif 000009
【図５】
0006959365.tif 000010
【図６Ａ】
0006959365.tif 000011
【図６Ｂ】
0006959365.tif 000012
【図６Ｃ】
0006959365.tif 000013
【図７】
0006959365.tif 000014
【図８】
0006959365.tif 000015
【図９】
0006959365.tif 000016
【図１０】
0006959365.tif 000017
【図１１】
0006959365.tif 000018