(57)【要約】第１のフレーム期間においてＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む、グラフィックパイプラインの情報を更新する方法。視線追跡情報は、ユーザの眼について第２のフレーム期間において受信される。第２のフレーム期間において、少なくとも視線追跡情報に基づいて、ＨＭＤディスプレイの着地点がＣＰＵで予測される。ＧＰＵがアクセス可能なバッファに対する予測された着地点の最新の更新が、第２のフレーム期間において実行される。プリミティブに基づいてかつ予測された着地点に基づいて、第２のフレーム期間においてＧＰＵでシェーダ動作が実行されて画素データを生成し、画素データはフレームバッファに格納される。画素データは、第３のフレーム期間においてフレームバッファからＨＭＤへスキャンアウトされる。【選択図】図１１Ｂ
2021524061.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置（ＣＰＵ）及びグラフィック処理ユニット（ＧＰＵ）を含むグラフィックパイプラインの情報の更新方法であって、
前記グラフィックパイプラインの第１のフレーム期間において、前記ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成し、
第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報を前記ＣＰＵで受信し、
少なくとも前記視線追跡情報に基づいて、前記サッカードにおける前記眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、前記第２のフレーム期間において前記ＣＰＵで予測し、
前記ＧＰＵがアクセス可能なバッファに前記予測された着地点を転送することによって、前記ＣＰＵによる最新の更新動作を前記第２のフレーム期間において実行し、
前記第２のフレーム期間で、前記第１のビデオフレームにおける前記シーンの前記プリミティブに基づいてかつ前記予測された着地点に基づいて、前記ＧＰＵによる１つまたは複数のシェーダ動作の実行を行って前記ＨＭＤの画素の画素データの生成を行い、前記画素データはフレームバッファに格納されるものであり、
第３のフレーム期間において、前記画素データを前記フレームバッファから前記ＨＭＤにスキャンアウトする、方法。
【請求項２】
フレーム期間は、対応するビデオフレームを前記ディスプレイにスキャンアウトする前に、前記ＣＰＵ及び前記ＧＰＵによって連続フレーム期間で順次動作を実行するように構成されている前記グラフィックパイプラインの動作の周波数に対応する、請求項１に記載の方法。
【請求項３】
前記第２のフレーム期間での前記ＧＰＵでの１つまたは複数のシェーダ動作の実行では、さらに、
前記ＨＭＤ上の前記着地点を中心とする中心窩領域を有する前記第１のビデオフレームを表示するためにレンダリングし、ユーザの眼は前記着地点に向けられると予測されるものである、請求項１に記載の方法。
【請求項４】
さらに、前記サッカード中に、少なくとも１つのビデオフレームであって前記第１のビデオフレームの前にレンダリングされるもののレンダリングを終了する、請求項３に記載の方法。
【請求項５】
さらに、前記サッカード中に、少なくとも１つのビデオフレームであって前記第１のビデオフレームの前にレンダリングされるものを低解像度でレンダリングする、請求項３に記載の方法。
【請求項６】
前記着地点の予測では、
複数のサンプル点で、前記ＨＭＤに配置されている視線追跡システムを使用して前記ユーザの前記眼球運動を追跡し、
前記追跡に基づいて前記運動の速度を判定し、
前記速度が閾値速度に達したとき、前記ユーザの前記眼がサッカードにあると判定し、
前記サッカードにおける前記眼の方向に対応する、前記ＨＭＤの前記ディスプレイ上の前記着地点を予測する、請求項１に記載の方法。
【請求項７】
前記着地点の予測では、
サンプル点のセットに対する前記眼球運動を追跡するとき眼の向きのデータを収集し、前記眼の向きのデータは、前記ＨＭＤに関する眼の方向を含み、前記セットのうちの少なくとも１つのサンプル点は前記サッカード中に発生するものであり、
前記サンプル点のセットに対する前記眼の向きのデータを、被験者の複数のサッカードの眼の向きのデータに関してトレーニングされたリカレントニューラルネットワークに、入力として提供し、
前記リカレントニューラルネットワークにおいて、前記サンプル点のセットに対する前記眼の向きのデータから構築された眼の速度グラフの一部を、被験者の前記複数のサッカードから構築された眼の速度グラフと比較し、
前記リカレントニューラルネットワークにおいて前記着地点を判定する、請求項６に記載の方法。
【請求項８】
前記着地点が、前記サッカードの終わりに発生し、前記眼の凝視方向に対応する、請求項１に記載の方法。
【請求項９】
前記着地点が、前記サッカードの中間点で発生し、前記眼の中間方向に対応する、請求項１に記載の方法。
【請求項１０】
コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合され、前記コンピュータシステムによって実行された場合、前記コンピュータシステムに、中央処理装置（ＣＰＵ）及びグラフィック処理ユニット（ＧＰＵ）を含むグラフィックパイプラインの情報を更新する方法を実行させる命令が格納されたメモリであって、前記方法では、
第１のフレーム期間において前記ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成し、
第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報を前記ＣＰＵで受信し、
少なくとも前記視線追跡情報に基づいて、前記サッカードにおける前記眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、前記第２フレーム期間において前記ＣＰＵで予測し、
前記予測された着地点を、前記ＧＰＵがアクセス可能なバッファに転送することによって、前記ＣＰＵによる最新の更新動作を前記第２のフレーム期間において実行し、
前記第２のフレーム期間において、前記第１のビデオフレームにおける前記シーンの前記プリミティブに基づいてかつ前記予測された着地点に基づいて、前記ＧＰＵによる１つまたは複数のシェーダ動作の実行を行って前記ＨＭＤの画素の画素データの生成を行い、前記画素データはフレームバッファに格納されるものであり、
第３のフレーム期間において、前記画素データを前記フレームバッファから前記ＨＭＤにスキャンアウトする、コンピュータシステム。
【請求項１１】
前記方法では、フレーム期間は、対応するビデオフレームを前記ディスプレイにスキャンアウトする前に、前記ＣＰＵ及び前記ＧＰＵによって連続フレーム期間で順次動作を実行するように構成されている前記グラフィックパイプラインの動作の周波数に対応する、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記方法での、前記第２のフレーム期間における前記ＧＰＵによる１つまたは複数のシェーダ動作の実行では、さらに、
前記ＨＭＤ上の前記着地点を中心とする中心窩領域を有する前記第１のビデオフレームを表示するためにレンダリングし、ユーザの眼は前記着地点に向けられると予測されるものである、請求項１０に記載のコンピュータシステム。
【請求項１３】
前記方法では、さらに、
前記サッカード中に、少なくとも１つのビデオフレームであって前記第１のビデオフレームの前にレンダリングされるもののレンダリングを終了する、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記方法では、さらに、
前記サッカード中に、少なくとも１つのビデオフレームであって前記第１のビデオフレームの前にレンダリングされるものを低解像度でレンダリングする、請求項１２に記載のコンピュータシステム。
【請求項１５】
前記方法では、前記着地点の予測で、
複数のサンプル点で、前記ＨＭＤに配置されている視線追跡システムを使用して前記ユーザの前記眼球運動を追跡し、
前記追跡に基づいて前記運動の速度を判定し、
前記速度が閾値速度に達したとき、前記ユーザの前記眼がサッカードにあると判定し、
前記サッカードにおける前記眼の方向に対応する、前記ＨＭＤの前記ディスプレイ上の着地点を予測する、請求項１０に記載のコンピュータシステム。
【請求項１６】
前記方法では、前記着地点の予測で、
サンプル点のセットに対する前記眼球運動を追跡するとき眼の向きのデータを収集し、前記眼の向きのデータは、前記ＨＭＤに関する眼の方向を含み、前記セットのうちの少なくとも１つのサンプル点は前記サッカード中に発生するものであり、
前記サンプル点のセットに対する前記眼の向きのデータを、被験者の複数のサッカードの眼の向きのデータに関してトレーニングされたリカレントニューラルネットワークに、入力として提供し、
前記リカレントニューラルネットワークにおいて、前記サンプル点のセットに対する前記眼の向きのデータから構築された眼の速度グラフの一部を、被験者の前記複数のサッカードから構築された眼の速度グラフと比較し、
前記リカレントニューラルネットワークにおいて、前記着地点を判定する、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記方法において、前記着地点が、前記サッカードの終わりに発生し、前記眼の凝視方向に対応する、請求項１０に記載のコンピュータシステム。
【請求項１８】
前記方法において、前記着地点が、前記サッカードの中間点で発生し、前記眼の中間方向に対応する、請求項１０に記載のコンピュータシステム。
【請求項１９】
予測のためのコンピュータプログラムを格納する非一時的なコンピュータ可読媒体であって、
第１のフレーム期間において前記ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成するためのプログラム命令を有し、
第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報を前記ＣＰＵで受信するためのプログラム命令を有し、
少なくとも前記視線追跡情報に基づいて、前記サッカードにおける前記眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、前記第２のフレーム期間において前記ＣＰＵで予測するためのプログラム命令を有し、
前記予測された着地点を、前記ＧＰＵがアクセス可能なバッファに転送することによって、前記ＣＰＵによる最新の更新動作を第２のフレーム期間において実行するためのプログラム命令を有し、
前記第２のフレーム期間において、前記第１のビデオフレームにおける前記シーンの前記プリミティブに基づいてかつ前記予測された着地点に基づいて、前記ＧＰＵによる１つまたは複数のシェーダ動作の実行を行って前記ＨＭＤの画素の画素データの生成を行う前記プログラム命令を有し、前記画素データはフレームバッファに格納されるものであり、
第３のフレーム期間において、前記画素データを前記フレームバッファから前記ＨＭＤにスキャンアウトするためのプログラム命令を有する、コンピュータ可読媒体。
【請求項２０】
フレーム期間は、対応するビデオフレームを前記ディスプレイにスキャンアウトする前に、前記ＣＰＵ及び前記ＧＰＵによって連続フレーム期間で順次動作を実行するように構成されているグラフィックパイプラインの動作の周波数に対応する、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記第２のフレーム期間における前記ＧＰＵによる１つまたは複数のシェーダ動作の実行を行う前記プログラム命令が、
前記ＨＭＤ上の前記着地点を中心とする中心窩領域を有する前記第１のビデオフレームを表示するためにレンダリングするためのプログラム命令を有し、ユーザの目は前記着地点に向けられると予測されるものである、請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記第１のビデオフレームの前にレンダリングされる、前記サッカード中の少なくとも１つのビデオフレームのレンダリングを終了するためのプログラム命令をさらに備える、請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記第１のビデオフレームの前にレンダリングされる、前記サッカード中の少なくとも１つのビデオフレームを低解像度でレンダリングするためのプログラム命令をさらに備える、請求項２１に記載のコンピュータ可読媒体。
【請求項２４】
前記着地点を予測するための前記プログラム命令が、
複数のサンプル点で、前記ＨＭＤに配置されている視線追跡システムを使用して前記ユーザの前記眼球運動を追跡するためのプログラム命令と、
前記追跡に基づいて前記運動の速度を判定するためのプログラム命令と、
前記速度が閾値速度に達したとき、前記ユーザの前記眼がサッカードにあると判定するためのプログラム命令と、
前記サッカードにおける前記眼の方向に対応する、前記ＨＭＤの前記ディスプレイ上の前記着地点を予測するためのプログラム命令と、を備える、請求項１９に記載のコンピュータ可読媒体。
【請求項２５】
前記着地点を予測するための前記プログラム命令が、
サンプル点のセットに対する前記眼球運動を追跡するとき眼の向きのデータを収集するためのプログラム命令を有し、前記眼の向きのデータは、前記ＨＭＤに関する眼の方向を含み、前記セットのうちの少なくとも１つのサンプル点は前記サッカード中に発生するものであり、
前記サンプル点のセットに対する前記眼の向きのデータを、被験者の複数のサッカードの眼の向きのデータに関してトレーニングされたリカレントニューラルネットワークに、入力として提供するためのプログラム命令を有し、
前記リカレントニューラルネットワークにおいて、前記サンプル点のセットに対する前記眼の向きのデータから構築された眼の速度グラフの一部を、被験者の前記複数のサッカードから構築された眼の速度グラフと比較するためのプログラム命令を有し、
前記リカレントニューラルネットワークにおいて前記着地点を判定するためのプログラム命令を有する、請求項２４に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ生成画像に関し、より詳細には、コンピュータ生成グラフィックスのリアルタイムレンダリングに関する。
【背景技術】
【０００２】
レンダリングパイプラインにおける仮想現実（ＶＲ）シーンのコンピュータレンダリングは、中央処理装置（ＣＰＵ）及びグラフィック処理ユニット（ＧＰＵ）のリソースを必要とする。ＶＲシーンは、広い表示範囲でレンダリングされ得るが、その表示範囲のより小さい部分のみが表示される。さらに、ＶＲシーンは従来のシーンよりも複雑であり得、また、映像酔いを回避するために画像処理に一層高いフレームレートを必要とすることもあり、その全てが高い消費電力率をもたらす。
【０００３】
電力を節約するために、ディスプレイの一部を他の部分よりも高い解像度で提示し得る。例えば、ユーザが凝視し得る画面の一部は、周辺領域といったユーザが凝視していない他の部分よりも高い解像度で提示され得る。ディスプレイの周辺部分をより低い解像度でレンダリングすることにより、処理リソースが節約でき、ユーザは周辺に焦点を合わせていないので、そうした低解像度でもユーザの視聴体験が低下することはない。しかしながら、ＶＲシーンを見ているユーザの眼球運動は、レンダリングパイプラインを通してフレームが更新されるよりも速い場合がある。このように、眼がコンピュータレンダリングパイプラインよりも速いことにより、ユーザが以前は周辺にあった可能性のあるシーンの一部に移動すると、更新が眼球運動に追いつくまで、その部分は低解像度で提示され得る。これにより、ユーザに対してぼやけた画像がもたらされる。
【０００４】
本開示の実施形態はこのような背景の下になされたものである。
【発明の概要】
【０００５】
本開示の実施形態は、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイを見ているユーザに関連するサッカード（saccade:跳躍性眼球運動）の着地点を予測すること、ならびに予測された着地点の最新の更新を即時使用のためにＧＰＵがアクセス可能なバッファに対して行うことによって、中央処理装置（ＣＰＵ）及びグラフィック処理ユニット（ＧＰＵ）を含むレンダリングパイプラインの情報を更新することに関する。本開示のいくつかの発明実施形態が、以下に説明される。
【０００６】
一実施形態において、ＨＭＤにおける眼球運動を予測する方法を開示する。方法は、複数のサンプル点で、ＨＭＤに配置されている視線追跡（あるいは視線トラッキング）システムを用いて、ユーザの眼球運動を追跡することを含む。方法は、眼球運動に基づいて運動の速度を判定することを含む。方法は、速度が閾値速度に達したとき、ユーザの眼がサッカードにあると判定することを含む。方法は、サッカードにおける眼の方向に対応する、ＨＭＤのディスプレイ上の着地点を予測することを含む。
【０００７】
一実施形態では、ＣＰＵ及びＧＰＵを含むレンダリングパイプラインの情報を更新する方法が開示される。第１のフレーム期間においてＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む方法。フレーム期間は、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ及びＧＰＵによって連続フレーム期間で順次動作を実行するように構成されているレンダリングパイプラインの動作の周波数に対応する。第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報をＣＰＵで受信することを含む方法。少なくとも視線追跡情報に基づいて、サッカードにおける眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、第２のフレーム期間においてＣＰＵで予測することを含む方法。予測された着地点をＧＰＵがアクセス可能なバッファに転送することにより、ＣＰＵによる最新の更新動作を第２のフレーム期間において実行することを含む方法。第２のフレーム期間において、第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ予測された着地点に基づいて、ＧＰＵで１つまたは複数のシェーダ動作を実行して、ＨＭＤの画素の画素データを生成することであって、画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される、該生成することを含む方法。第３のフレーム期間において、画素データをフレームバッファからＨＭＤにスキャンアウトすることを含む方法。
【０００８】
別の実施形態において、ＣＰＵ及びＧＰＵを含むレンダリングパイプラインの情報を更新するためのコンピュータプログラムを格納する非一時的なコンピュータ可読媒体を開示する。コンピュータ可読媒体は、第１のフレーム期間において、ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成するためのプログラム命令を含む。フレーム期間は、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ及びＧＰＵによって連続フレーム期間で順次動作を実行するように構成されているレンダリングパイプラインの動作の周波数に対応する。コンピュータ可読媒体は、第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報をＣＰＵで受信するためのプログラム命令を含む。コンピュータ可読媒体は、少なくとも視線追跡情報に基づいて、サッカードにおける眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、第２のフレーム期間においてＣＰＵで予測するためのプログラム命令を含む。コンピュータ可読媒体は、予測された着地点をＧＰＵがアクセス可能なバッファに転送することによって、ＣＰＵによる最新の更新動作を第２のフレーム期間において実行するためのプログラム命令を含む。コンピュータ可読媒体は、第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ予測された着地点に基づいて、ＧＰＵで１つまたは複数のシェーダ動作を第２のフレーム期間において実行して、ＨＭＤの画素の画素データを生成するためのプログラム命令であって、画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される、該プログラム命令を含む。コンピュータ可読媒体は、第３のフレーム期間において、画素データをフレームバッファからＨＭＤにスキャンアウトするためのプログラム命令を含む。
【０００９】
さらに別の実施形態において、プロセッサ及び、プロセッサに結合されているメモリを有するコンピュータシステムが開示され、メモリは命令を格納しており、当命令は、コンピュータシステムにより実行されると、ＣＰＵ及びＧＰＵを含むレンダリングパイプラインの情報を更新する方法をコンピュータシステムに実行させるコンピュータシステムが開示される。第１のフレーム期間においてＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む方法。フレーム期間は、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ及びＧＰＵによって連続フレーム期間で順次動作を実行するように構成されているレンダリングパイプラインの動作の周波数に対応する。第２のフレーム期間において、サッカードを経験しているユーザの眼の視線追跡情報をＣＰＵで受信することを含む方法。少なくとも視線追跡情報に基づいて、サッカードにおける眼の視線方向に対応する、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイ上の着地点を、第２のフレーム期間においてＣＰＵで予測することを含む方法。予測された着地点をＧＰＵがアクセス可能なバッファに転送することによって、ＣＰＵによる最新の更新動作を第２のフレーム期間において実行することを含む方法。第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ予測された着地点に基づいて、ＧＰＵで１つまたは複数のシェーダ動作を第２のフレーム期間において実行して、ＨＭＤの画素の画素データを生成することを含む方法であって、画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される、該生成することを含む方法。第３のフレーム期間において、画素データをフレームバッファからＨＭＤにスキャンアウトすることを含む方法。
【００１０】
本開示の他の態様は、本開示の原理の例として示される添付図面と併せて、下記の発明を実施するための形態から明らかになるであろう。
【００１１】
本開示は、添付図面と併せて、以下の説明を参照することにより、最も良く理解され得る。
【図面の簡単な説明】
【００１２】
【図１Ａ】本開示の一実施形態による、ＶＲコンテンツとのインタラクティブな体験を提供するように、かつ、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するように構成されているシステムの図であり、いくつかの入力制御がハンドヘルドコントローラを介して提供でき、いくつかの入力制御はカメラを介して実装されるような身体部分の追跡を通じて管理され得る。
【図１Ｂ】本開示の一実施形態による、ＶＲコンテンツとのインタラクティブな体験を提供するように、かつ、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するように構成されているシステムの図であり、編集のためのいくつかの入力制御がハンドヘルドコントローラを介して提供でき、いくつかの入力制御はカメラを介して実装されるような身体部分の追跡を通じて管理され得るものであり、カメラはまた、データをＨＭＤに送信するＲＦエミッタのビーム追跡の目的で、ＨＭＤの動きも追跡する。
【図１Ｃ】本開示の一実施形態による、ＶＲコンテンツとインタラクティブな体験を提供するように、かつ、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するように構成されているシステムの図であり、編集のためのいくつかの入力制御がハンドヘルドコントローラを介して提供でき、いくつかの入力制御は部分的に磁気源を介して実装されるような身体部分の磁気追跡を通じて管理され得る。
【図２】開示の実施形態による、実行中のビデオゲームと連動する、３Ｄデジタルコンテンツの編集のための３Ｄ編集空間を提供するための、ＨＭＤの機能の概略図である。
【図３Ａ】一実施形態による、視線追跡センサを含むＨＭＤの内部を示す、顔がディスプレイハウジングと接触するように設計されている内表面を見ている、一例のディスプレイハウジングの図である。
【図３Ｂ】一実施形態による、視線追跡センサを含むＨＭＤの内部を示す、顔がディスプレイハウジングと接触するように設計されている内表面を見ている、一例のディスプレイハウジングの図である。
【図３Ｃ】一実施形態による、視線追跡センサを含むＨＭＤの内部を示す、顔がディスプレイハウジングと接触するように設計されている内表面を見ている、一例のディスプレイハウジングの図である。
【図４Ａ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するように構成されている予測エンジンの図である。
【図４Ｂ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するのに使用されるリカレントニューラルネットワークの図である。
【図４Ｃ】本開示の一実施形態による、ＨＭＤでＶＲシーンを見ている１人以上のユーザに対するサッカード運動のモデルを構築するのに使用される例示的なニューラルネットワークの図である。
【図５Ａ】本開示の一実施形態による、眼球運動の完了後に画像がユーザに対してぼやけることにつながる、眼球運動に比べてのフレーム更新の遅れがどのようなものかを示すサッカード予測なしのレンダリングパイプラインの図である。
【図５Ｂ】本開示の一実施形態による、レンダリングパイプラインにおいて高解像度の中心窩領域の更新を進めることによって、眼球運動の完了後に画像がユーザに対して焦点を合わせることにつながる、ＨＭＤのディスプレイを見ているユーザの眼球運動のサッカード予測ありで構成されているレンダリングパイプラインの結果として得られる効果を示す図である。
【図６Ａ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザのサッカードの眼の変位及び速度の図である。
【図６Ｂ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザのサッカードの速度グラフにおける様々なサンプル点での眼の向きのデータのサンプリングの図である。
【図６Ｃ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するのに使用される１つまたは複数のサンプル点のセットに対する眼の向きのデータの収集の図である。
【図６Ｄ】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するのに使用されるサンプル点のセットに対する眼の向きのデータを一覧表示している表を示す。
【図６Ｅ】本開示の一実施形態による、ユーザの眼（複数可）の速度を判定するのに使用される視線方向ベクトルの図である。
【図７】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測する方法のステップを示すとともに、サッカード中に収集されたサンプル点のセットからの眼の向きのデータを用いて、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点の複数の予測の収束を含む流れ図。
【図８】本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測すること、及び対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするのに即時使用するために、着地点を、コンピュータシステムのＧＰＵがアクセス可能なバッファへ最新の更新として提供することを含む、中心窩レンダリングを行うように構成されているレンダリングパイプラインを実装するコンピュータシステムの図である。
【図９Ａ】本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプラインの図であり、レンダリングパイプラインは、視線追跡情報の最新の更新を実装していない。
【図９Ｂ】本開示の一実施形態による、ＨＭＤのディスプレイ上の着地点を予測することによってレンダリングパイプラインの情報を更新する方法のステップを示す流れ図であり、着地点は、サッカード中またはその終わりのディスプレイを見ているユーザの眼の向きに対応するものであり、予測された着地点は、対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするためにＧＰＵによって用いられる。
【図９Ｃ】本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプラインの図であり、サッカード中またはその終わりのＨＭＤを見ているユーザの眼の向きに対応する、ＨＭＤ上の着地点が予測され、予測された着地点は、対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするためにＧＰＵによって用いられる。
【図１０Ａ】本開示の一実施形態による、視線追跡情報の最新の更新を、即時使用のためにＧＰＵがアクセス可能なバッファに対して実行することによって、レンダリングパイプラインの情報を更新する方法のステップを示す流れ図である。
【図１０Ｂ】本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプラインの図であり、レンダリングパイプラインは、視線追跡情報の最新の更新を実装している。
【図１１Ａ】本開示の一実施形態による、ＨＭＤのディスプレイ上の予測された着地点の最新の更新を、即時使用のためにＧＰＵがアクセス可能なバッファに対して実行することによって、レンダリングパイプラインの情報を更新する方法のステップを示す流れ図であり、着地点は、サッカード中またはその終わりのディスプレイを見ているユーザの眼の向きに対応する。
【図１１Ｂ】本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプラインの図であり、レンダリングパイプラインは、ＨＭＤのディスプレイ上の予測された着地点の最新の更新を、即時使用のためにＧＰＵがアクセス可能なバッファに対して実装しており、着地点は、サッカード中またはその終わりのディスプレイを見ているユーザの眼の向きに対応する。
【図１２】本開示の様々な実施形態の態様を実行するのに使用することができる例示的なデバイスの構成要素の図である。
【図１３】開示の実施形態による、ヘッドマウントディスプレイの構成要素を示す図である。
【図１４】開示の様々な実施形態による、ゲームシステムのブロック図である。
【発明を実施するための形態】
【００１３】
以下の発明を実施するための形態は、例示目的で多くの具体的な詳細を含むが、当業者であれば、以下の詳細に対する多数の変形及び変更が本開示の範囲内にあることを理解するであろう。したがって、後述の本開示の態様は、この説明に続く特許請求の範囲の普遍性を失うことなく、かつ特許請求の範囲に制限を課すことなく記載される。
【００１４】
概して、本開示の様々な実施形態は、ＨＭＤのディスプレイを見ているユーザに関連して定義されたサッカード中かつ／またはその終わりのユーザの眼の視線方向に関連付けられた、ディスプレイ上の着地点を予測するためのシステム及び方法を説明する。具体的には、ユーザの視線がある凝視点から別の凝視点に通常の方法で移動するとき、ユーザの眼球運動を定義するサッカードの測定部分の速度グラフを使用して、サッカード全体の特性を予測することができる。このように、１つまたは複数の眼の方向を速度分析に基づいて予測することができ、眼の方向は、ディスプレイ上の１つまたは複数の着地点に対応する。ディスプレイの標的着地点が分かると、ＨＭＤに表示するためにレンダリングされるフレームは、標的着地点を考慮して更新され得る。例えば、眼球運動が標的着地点での中心窩領域の表示と一致するように、標的着地点でのまたはその周囲の領域に対応する、ディスプレイの中心窩領域が更新され得る。中心窩領域（例えば、眼が焦点を合わせ、向けられる場所）は高解像度でレンダリングされ、中心窩ではない領域（例えば、周辺）はより低い解像度でレンダリングされ得る。
【００１５】
様々な実施形態の上記概要的な理解とともに、以下、実施形態の例示的な詳細を様々な図面を参照して説明する。
【００１６】
本明細書全体を通して、「ゲーミングアプリケーション」とは、入力コマンドの実行を通して指示される任意のタイプのインタラクティブアプリケーションを表すことを意味する。単なる例示目的で、インタラクティブアプリケーションには、ゲーム、ワード処理、ビデオ処理、ビデオゲーム処理などのためのアプリケーションが含まれる。さらに、ビデオゲームとゲーミングアプリケーションという用語は、置換え可能である。
【００１７】
本明細書全体を通して、ユーザのサッカードへの言及がなされる。一般に、サッカードは、ディスプレイ上のある凝視点から別の凝視点に移動するときになされるユーザの眼（複数可）の急速かつ同時の運動を指す。眼（複数可）のサッカード運動は、一般に、特定の方向になされ、必ずしも回転的に行われるとは限らない。サッカード運動は、毎秒９００度を超えるピーク角速度に達することもあり、２０から２００ミリ秒（ｍｓ）の範囲で持続し得る。サッカード中の眼（複数可）の角変位（度）は、上向きに約９０度までの範囲であり得るが、２０から５０度を超える変位は、頭の動きを伴い得る。
【００１８】
サッカードにおけるユーザの眼（複数可）の着地点の予測
図１Ａは、開示の実施形態による、ゲーミングアプリケーションのインタラクティブなゲームプレイのためのシステムを示す。ユーザ１００は、ＨＭＤ１０２を着用して示され、ＨＭＤ１０２は、眼鏡、ゴーグル、またはヘルメットと同じ様に着用され、インタラクティブゲーミングアプリケーションからのビデオゲームまたはインタラクティブアプリケーションからの他のコンテンツをユーザ１００に表示するように構成されている。ＨＭＤ１０２は、ユーザの眼にごく接近して表示機構を提供することにより、非常に没入感のある体験をユーザに提供する。このように、ＨＭＤ１０２は、ユーザの視野の大部分または全体でさえも占める表示領域をユーザの眼のそれぞれに提供することができる。
【００１９】
図１Ａのシステムは、ユーザの眼（複数可）の運動が、更新された標的着地点におけるディスプレイ上の中心窩領域の提示と一致するように、ＨＭＤ１０２のディスプレイ上の標的着地点を更新するように構成されている。特に、着地点のサッカード予測は、ＨＭＤ１０２、コンピュータ１０６、及びクラウドゲーミングサーバ１１４のうちの１つまたは複数で、単独でまたは組み合わせて実行され得る。予測は、被験者に対して測定されたサッカード（例えば、眼の向きのデータまたはパラメータの収集）に基づいてサッカードのトレーニングモデルを介して生成することによって、及び、ユーザの現在のサッカードの眼の向きのデータを、サッカードのトレーニングされたモデルと比較して、サッカード中かつ／またはその終わりのユーザの視線方向に関連付けられた、ディスプレイ上の着地点を予測することの一方または両方を実行するように構成されている深層学習エンジン１９０を含むサッカード予測エンジン３００によって行われる。
【００２０】
一実施形態では、ＨＭＤ１０２は、コンピュータまたはゲーム機１０６に接続され得る。コンピュータ１０６への接続は、有線または無線であり得る。一部の実装例では、ＨＭＤ１０２はまた、ＨＭＤ１０２及びコンピュータ１０６の両方が接続されているネットワーク１１２を介してなど代替の機構またはチャネルを介してコンピュータと通信し得る。コンピュータ１０６は、以下に限定するものではないが、ゲーム機、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、携帯電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイスなどを含む、当技術分野で知られている汎用または特殊目的の任意のコンピュータであり得る。一実施形態では、コンピュータ１０６は、ゲーミングアプリケーションを実行し、ＨＭＤ１０２によるレンダリングのためにゲーミングアプリケーションからビデオ及びオーディオを出力するように構成され得る。コンピュータ１０６は、ゲーミングアプリケーションを実行することに限定されず、ＨＭＤ１０２によるレンダリングのためにＶＲコンテンツ１９１を出力するインタラクティブアプリケーションを実行するようにも構成され得る。一実施形態では、コンピュータ１０６は、ディスプレイを見ているユーザに関連して定義されるサッカード中かつ／またはその終わりのユーザの眼の視線方向に関連付けられた、ＨＭＤのディスプレイ上の着地点を予測するように構成されている。他の実施形態では、着地点の予測は、ＨＭＤ１０２、コンピュータ１０６、及びクラウドゲーミングサーバ１１４のうちの１つまたは複数によって、単独でまたは組み合わせて実行され得る。
【００２１】
ユーザ１００は、コントローラ１０４を操作して、ゲーミングアプリケーションへの入力を提供し得る。コンピュータ１０６への接続は、有線または無線であり得る。さらに、カメラ１０８は、ユーザ１００が置かれているインタラクティブな環境の１つまたは複数の画像をキャプチャするように構成され得る。これらのキャプチャされた画像を分析して、ユーザ１００、ユーザの一部（例えば、入力コマンドのための手のジェスチャを追跡する）、ＨＭＤ１０２、及びコントローラ１０４の位置及び動きを判定することができる。一実施形態では、コントローラ１０４は、その位置及び向きを判定するために追跡することができる光または他のマーカ要素を含む。さらに、ＨＭＤ１０２は、ＨＭＤ１０２の位置及び向きを判定するために追跡することができる１つまたは複数の光を含み得る。カメラ１０８によって部分的に実装されるような追跡機能は、コントローラ１０４及び／またはユーザ１００の身体部分（例えば、手）の動きを通して生成された入力コマンドを提供する。カメラ１０８は、インタラクティブな環境から音を取り込むための１つまたは複数のマイクロフォンを含み得る。マイクロフォンアレイによって取り込まれた音は、音源の位置を特定するために処理され得る。特定された位置からの音は、この特定された位置からではない他の音を排除するために、選択的に利用または処理することができる。さらに、カメラ１０８は、複数の画像キャプチャデバイス（例えば、立体視可能な一対のカメラ）、ＩＲカメラ、深度カメラ、及びそれらの組み合わせを含むように定義することができる。
【００２２】
別の実施形態では、コンピュータ１０６は、ネットワークを介してクラウドゲーミングプロバイダ１１２と通信するシンクライアントとして機能する。クラウドゲーミングプロバイダ１１２は、ユーザ１０２がプレイしているゲーミングアプリケーションを保持かつ実行する。コンピュータ１０６は、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８からの入力を、クラウドゲーミングプロバイダに送信し、クラウドゲーミングプロバイダは、この入力を処理して、実行中のゲーミングアプリケーションのゲーム状態に影響を与える。実行中のゲーミングアプリケーションからの、ビデオデータ、オーディオデータ、及び触覚フィードバックデータなどの出力は、コンピュータ１０６に送信される。コンピュータ１０６は、データをさらに処理した後に送信する場合もあれば、データを関連デバイスに直接送信する場合もある。例えば、ビデオストリーム及びオーディオストリームはＨＭＤ１０２に提供される一方、触覚フィードバックデータは振動フィードバックコマンドを生成するのに用いられ、それはコントローラ１０４に提供される。
【００２３】
一実施形態では、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８は、それら自体が、クラウドゲーミングプロバイダ１１２と通信するためにネットワーク１１０に接続しているネットワーク化されたデバイスであってもよい。例えば、コンピュータ１０６は、通常はビデオゲーム処理を実行するのではなくネットワークトラフィックの通過を促進するルータなどのローカルネットワークデバイスであってもよい。ＨＭＤ１０２、コントローラ１０４、及びカメラ（すなわち画像キャプチャデバイス）１０８によるネットワークへの接続は、有線または無線であり得る。
【００２４】
さらに別の実施形態では、コンピュータ１０６は、ゲーミングアプリケーションの一部を実行可能であり、ゲーミングアプリケーションの残りの部分は、クラウドゲーミングプロバイダ１１２上で実行され得る。他の実施形態では、ゲーミングアプリケーションの一部はＨＭＤ１０２上でも実行され得る。例えば、コンピュータ１０６からゲーミングアプリケーションをダウンロードする要求は、クラウドゲーミングプロバイダ１１２によって提供され得る。要求の提供中、クラウドゲーミングプロバイダ１１２は、ゲーミングアプリケーションの一部を実行し、ＨＭＤ１０２上でレンダリングするためにゲームコンテンツをコンピュータ１０６に提供し得る。コンピュータ１０６は、ネットワーク１１０を介してクラウドゲーミングプロバイダ１１２と通信し得る。ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８から受信した入力はクラウドゲーミングプロバイダ１１２に送信され、その一方で、ゲーミングアプリケーションはコンピュータ１０６にダウンロードされている。クラウドゲーミングプロバイダ１１２は、入力を処理して、実行中のゲーミングアプリケーションのゲーム状態に影響を与える。実行中のゲーミングアプリケーションからのビデオデータ、オーディオデータ、及び触覚フィードバックデータなどの出力は、それぞれのデバイスへの以降の送信のためにコンピュータ１０６に送信される。
【００２５】
ゲーミングアプリケーションがコンピュータ１０６に完全にダウンロードされると、コンピュータ１０６は、ゲーミングアプリケーションを実行し、クラウドゲーミングプロバイダ１１２上で中断されたところからゲーミングアプリケーションのゲームプレイを再開し得る。ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８からの入力は、コンピュータ１０６によって処理され、ゲーミングアプリケーションのゲーム状態は、ＨＭＤ１０２、コントローラ１０４、及びカメラ１０８から受信した入力に応答して調整される。そのような実施形態では、コンピュータ１０６でのゲーミングアプリケーションのゲーム状態は、クラウドゲーミングプロバイダ１１２でのゲーム状態と同期される。同期は、コンピュータ１０６及びクラウドゲーミングプロバイダ１１２の両方でゲーミングアプリケーションの状態を最新に保つために周期的に行われ得る。コンピュータ１０６は、出力データを、関連するデバイスに直接送信し得る。例えば、ビデオストリーム及びオーディオストリームはＨＭＤ１０２に提供されるのに対して、触覚フィードバックデータは振動フィードバックコマンドを生成するのに用いられ、それはコントローラ１０４に提供される。
【００２６】
図１Ｂは、本開示の一実施形態による、ＶＲコンテンツとのインタラクティブな体験を提供するように、かつ、３Ｄデジタルコンテンツを編集するための３Ｄ編集空間を提供するように構成されているシステムを示す。さらに、システム（例えば、ＨＭＤ１０２、コンピュータ１０６、及び／またはクラウド１１４）は、ユーザの眼（複数可）の運動が、更新された標的着地点のディスプレイ上の中心窩領域（高解像度の領域）の提示と一致するように、ＨＭＤ１０２のディスプレイ上の標的着地点を更新するように構成されている。図１Ｂは、図１Ａに記載されたシステムに類似するが、例えば、ＲＦ信号を介してＨＭＤ１０２へデータ配信を行うように構成されている送信機／受信機（トランシーバ）１１０が追加されている。トランシーバ１１０は、ゲーミングアプリケーションからのビデオ及びオーディオをＨＭＤ１０２にそこでレンダリングを行うために（有線接続または無線接続によって）送信するように構成されている。さらに、トランシーバ１１０は、編集の目的で、３Ｄ編集空間内で３Ｄデジタルコンテンツの画像、ビデオ、及びオーディオを送信するように構成されている。この実装例では、本開示の一実施形態にしたがって、カメラ１０８は、トランシーバ１１０がそのＲＦ電力の大部分（ＲＦ放射パターンを介して供給される）をＨＭＤ１０２に（例えば、データ配信の目的で）ビームステアリングし得るよう、ＨＭＤ１０２の動きを追跡するように構成され得る。
【００２７】
図１Ｃは、本開示の一実施形態による、ＶＲコンテンツとのインタラクティブな体験を提供するように構成されているシステムを示す。さらに、システム（例えば、ＨＭＤ１０２、コンピュータ１０６、及び／またはクラウド１１４）は、ユーザの眼（複数可）の運動が、更新された標的着地点のディスプレイ上の中心窩領域（高解像度の領域）の提示と一致するように、ＨＭＤ１０２のディスプレイ上の標的着地点を更新するように構成されている。図１Ｃは、図１Ａに記載されたシステムと類似するが、ＨＭＤ１０２、コントローラ１０４（例えば、インターフェースコントローラとして構成されている）、または磁気センサ（例えば、手袋、指などといった身体部分に配置されるストリップ）を用いて構成される任意の物体の磁気追跡を可能にするために磁場を放出するように構成されている磁気源１１６が追加されている。例えば、磁気センサは、誘導要素であり得る。特に、磁気センサは、磁気源１１６によって放出される磁場（例えば、強度、向き）を検出するように構成することができる。磁気センサから集められた情報は、３Ｄ編集空間内で実行されるような入力コマンドを提供するために、ＨＭＤ１０２、コントローラ１０４、及び他のインターフェースオブジェクトなどの位置及び／または向きを判定かつ追跡するのに使用することができる。実施形態では、磁気追跡は、カメラ１０８ならびに／またはＨＭＤ１０２、コントローラ１０４及び／または他のインターフェースオブジェクト内の慣性センサを介して実行される追跡と組み合わされる。
【００２８】
一部の実装例では、インターフェースオブジェクト（例えばコントローラ１０４）は、ＨＭＤ１０２に対して追跡される。例えば、ＨＭＤ１０２は、インターフェースオブジェクトを含む画像をキャプチャした外向きカメラを含み得る。他の実施形態では、ＨＭＤ１０２は、インターフェースオブジェクトなどの外部オブジェクトを追跡するために使用されるＩＲエミッタを含み得る。キャプチャされた画像を分析して、ＨＭＤ１０２に対するインターフェースオブジェクトの位置／向きを判定でき、ＨＭＤ１０２の既知の位置／向きを用いて、ローカル環境におけるインターフェースオブジェクトの位置／向き及び／または動きを判定することができるようにする。
【００２９】
ユーザ１００がＨＭＤ１０２に表示されるゲーミングアプリケーションのまたは３Ｄ編集空間の仮想現実シーンとインターフェースする方法は様々なものであり得、インターフェースオブジェクト（例えば、コントローラ１０４）に加えて他のインターフェースデバイスを用いることができる。例えば、様々な種類の片手用コントローラ、ならびに両手用コントローラ１０４を使用することができる。一部の実装例では、コントローラに含まれる光を追跡することによって、またはコントローラ１０４に関連する形状、センサ、及び慣性データを追跡することによって、コントローラ１０４自体を追跡することができる。これらの様々なタイプのコントローラ１０４、またはもっと単純に、行われて１つまたは複数のカメラでキャプチャされる手のジェスチャ、及び磁気センサを使用して、ＨＭＤ１０２上に提示された仮想現実ゲーミング環境とインターフェースすること、制御すること、操作すること、インタラクトすること、及び参加することが可能である。
【００３０】
図２は、開示の実施形態による、ＶＲコンテンツ２９１の生成（例えば、アプリケーション及び／またはビデオゲームの実行など）に関連するＨＭＤ１０２の機能を概念的に示しており、ユーザの眼（複数可）の運動が、更新された標的着地点でのディスプレイ上の中心窩領域（例えば、高解像度領域）の提示と一致するように、ＨＭＤ１０２のディスプレイ上の標的着地点を更新することを含む。着地点のサッカード予測は、ＨＭＤ１０２、コンピュータ１０６、及びクラウドゲーミングサーバ１１４のうちの１つまたは複数によって、単独でまたは組み合わせて実行され得る。実施形態では、ＶＲコンテンツエンジン２２０は、ＨＭＤ１０２上で実行されている。他の実施形態では、ＶＲコンテンツエンジン２２０は、ＨＭＤ１０２に通信可能に結合されている、かつ／またはＨＭＤ１０２と組み合わせてコンピュータ１０６（図示せず）上で実行されている。コンピュータは、ＨＭＤに対してローカルであってもよく（例えば、ローカルエリアネットワークの一部）、または、遠隔に位置し（例えば、広域ネットワーク、クラウドネットワークの一部など）、ネットワークを介してアクセスされてもよい。ＨＭＤ１０２とコンピュータ１０６間の通信は、有線または無線接続プロトコルに従い得る。例では、アプリケーションを実行しているＶＲコンテンツエンジン２２０は、ゲーミングアプリケーションを実行しているビデオゲームエンジンであり得、ゲーミングアプリケーションのゲーム状態を更新する入力を受信するように構成されている。図２の以下の説明は、簡潔さ及び明快さの目的で、ゲーミングアプリケーションを実行しているＶＲコンテンツエンジン２２０の文脈内で説明され、ＶＲコンテンツ２９１を生成可能な任意のアプリケーションの実行を表すことを意図している。ゲーミングアプリケーションのゲーム状態は、オブジェクトの存在及び位置、仮想環境の状況、イベントのトリガ、ユーザプロファイル、表示視点などといった現在のゲームプレイの様々な態様を規定するビデオゲームの様々なパラメータの値によって少なくとも部分的に定義することができる。
【００３１】
図示された実施形態では、ＶＲコンテンツエンジン２２０は、例として、コントローラ入力２６１、オーディオ入力２６２、及びモーション入力２６３を受信する。コントローラ入力２６１は、ハンドヘルドゲーミングコントローラ１０４（例えば、Ｓｏｎｙ  ＤＵＡＬＳＨＯＣＫ（登録商標）４  無線コントローラ、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｍｏｖｅモーションコントローラ）、またはウェアラブルグローブインターフェースコントローラなどといったウェアラブルコントローラのような、ＨＭＤ１０２とは別個のゲーミングコントローラの操作から定義され得る。例として、コントローラ入力２６１は、方向入力、ボタン押下、トリガ起動、動き、ジェスチャ、またはゲーミングコントローラの操作から処理される他の種類の入力を含み得る。オーディオ入力２６２は、ＨＭＤ１０２のマイクロフォン２５１から、または画像キャプチャ装置２０８に含まれるマイクロフォンもしくはローカルシステム環境内の他の箇所から処理することができる。モーション入力２６３は、ＨＭＤ１０２に含まれるモーションセンサ２５９から、またはＨＭＤ１０２の画像をキャプチャする画像キャプチャデバイス１０８から処理することができる。例えば、ゲーミングアプリケーションを実行する場合、ＶＲコンテンツエンジン２２０は、ゲームエンジンとして動作するコンテンツエンジン２２０の構成にしたがって処理される入力を受信して、ビデオゲームのゲーム状態を更新する。エンジン２２０は、ゲーム状態データを、ユーザに提示されることになるコンテンツを定義するためにゲーム状態データを処理する様々なレンダリングモジュールに出力する。
【００３２】
図示の実施形態では、ビデオレンダリングモジュール２８３は、ＨＭＤ１０２で提示するためにビデオストリームをレンダリングするように定義される。
【００３３】
ＨＭＤ１０２の光学系２７０のレンズは、ＶＲコンテンツ２９１を表示するために構成されている。ＨＭＤ１０２がユーザによって装着されたとき光学系２７０のレンズが表示画面１３０４とユーザの眼２６０の間に在るように、表示画面１３０４は、光学系２７０のレンズ背部に配置される。そのようにして、ビデオストリームは、表示画面／プロジェクタ機構１３０４により提示され、ユーザの眼２６０によって光学系２７０を通して見られ得る。ＨＭＤユーザは、例えば、３Ｄ編集空間で３Ｄデジタルコンテンツを編集する目的で、ＨＭＤを装着することにより、インタラクティブなＶＲコンテンツ２９１（例えば、ＶＲビデオソース、ビデオゲームコンテンツなど）とインタラクトすることを選択し得る。ビデオゲームからのインタラクティブな仮想現実（ＶＲ）シーンは、ＨＭＤの表示画面１３０４上にレンダリングされ得る。そのようにして、ゲーム開発中に、ＨＭＤ１０２により、ユーザは、インタラクティブなＶＲシーンを編集かつ確認することが可能となる。また、ゲームプレイ（編集の確認を含む）中、ＨＭＤによって、ユーザは、ユーザの眼にごく近接してＨＭＤの表示機構をプロビジョニングすることによりゲームプレイに完全に没入することが可能となる。コンテンツをレンダリングするためにＨＭＤの表示画面に画定される表示領域は、ユーザの視野の大部分または全体でさえ占有し得る。通常、それぞれの眼は、１つまたは複数の表示画面を表示している光学系２７０の関連するレンズによってサポートされる。
【００３４】
オーディオレンダリングモジュール２８２は、ユーザによって聴取されるオーディオストリームをレンダリングするように構成されている。一実施形態では、オーディオストリームは、ＨＭＤ１０２に関連付けられたスピーカ１５２を通して出力される。スピーカ１５２は、オープンエアスピーカ、ヘッドフォン、またはオーディオを提示することが可能である任意の他の種類のスピーカの形態を取り得ることを理解すべきである。
【００３５】
一実施形態では、ユーザの視線の追跡を可能にするために、視線追跡センサ２６５がＨＭＤ１０２に含まれる。１つの視線追跡センサ２６５のみが含まれているが、図３Ａ〜３Ｃに関して説明するように、ユーザの視線を追跡するために２つ以上の視線追跡センサを用い得ることに留意すべきである。例えば、一部の実施形態では、片方の眼だけが追跡されるが（例えば、１つのセンサを使用して）、他の実施形態では、２つの眼が複数のセンサで追跡される。視線追跡センサ２６５は、カメラ、光学センサ、赤外線センサ、ＥＭＧ（筋電図）センサ、光学反射器センサ、距離センサ、及びオプティカルフローセンサ、ドップラーセンサ、マイクロフォンなどの１つまたは複数であり得る。一般に、センサ２６５は、眼球運動方向の変化、加速度、及び速度などの急速な眼球運動を検出するように構成され得る。例えば、視線追跡カメラは、ユーザの眼の画像をキャプチャし、それらを分析してユーザの視線方向を判定する。一実施形態では、ユーザの視線方向に関する情報を利用して、ビデオレンダリングに影響を与えることができる。例えば、ユーザの眼が特定の方向を見ていると判定された場合、その方向に対するビデオレンダリングを優先または強調することができる。本開示の実施形態では、視線方向及び／または他の眼の向きのデータは、ディスプレイを見ているユーザに関連して定義されたサッカード中かつ／またはその終わりのユーザの眼（複数可）の対応する視線方向に関連付けられている、ＨＭＤのディスプレイ上の着地点を予測するのに使用され得る。サッカード予測は、図４Ａ〜４Ｃに関してさらに説明されるサッカード予測エンジン４００によって実行され得る。サッカード予測エンジン４００はまた、反復的かつ計算集約的な操作を実行するように構成されている深層学習エンジン１９０と連動して動作し得る。具体的には、深層学習エンジン１９０は、ユーザの眼（複数可）の運動が、更新された標的着地点におけるディスプレイ上の中心窩領域（高解像度領域）と一致するように、ＨＭＤ１０２のディスプレイ上の標的着地点を更新するのに使用されるサッカードモデリング及びサッカード予測の機能を含み、実行し得る。ユーザの視線方向は、ヘッドマウントディスプレイに対して、ユーザが置かれている実環境に対して、かつ／またはヘッドマウントディスプレイ上でレンダリングされている仮想環境に対して定義することができることを理解すべきである。視線方向はＨＭＤの画面に対して定義され得るので、視線方向は、画面上の位置に変換され得る。その位置は、フレームに対して高解像度でレンダリングされた中心窩領域の中心であり得る。
【００３６】
大まかに言えば、単独で考える場合、視線追跡センサ２６５によってキャプチャされた画像の分析により、ＨＭＤ１０２に対するユーザの視線方向が提供される。しかしながら、ＨＭＤ１０２の追跡された位置及び向きと組み合わせて考える場合、ＨＭＤ１０２の位置及び向きはユーザの頭の位置及び向きと同義であるので、ユーザの実世界の視線方向も判定され得る。すなわち、ユーザの実世界の視線方向は、ユーザの眼の位置的な運動を追跡することとＨＭＤ１０２の位置及び向きを追跡することから判定することができる。仮想環境の表示をＨＭＤ１０２上でレンダリングするとき、ユーザの実世界の視線方向を適用して、仮想環境におけるユーザの仮想世界の視線方向を判定することができる。
【００３７】
さらに、触覚フィードバックモジュール２８１は、ＨＭＤ１０２、またはＨＭＤユーザによって操作されるコントローラ１０４などの別デバイスのいずれかに含まれる触覚フィードバックハードウェアに信号を供給するように構成されている。触覚フィードバックは、振動フィードバック、温度フィードバック、圧力フィードバックなどといった様々な種類の触感の形態を取り得る。
【００３８】
図３Ａ〜３Ｃは、一実施形態による、視線追跡センサを含むＨＭＤの内部を示す、顔がディスプレイハウジングと接触するように設計されている内表面を見ている、一例のディスプレイハウジングの図を示す。
【００３９】
特に、図３Ａは、顔がディスプレイハウジング１０２ａと接触するように設計されている内表面を見ている、例示的なディスプレイハウジング１０２ａの図を示す。示されるように、インターフェース面１０２ｅは、着用されるとディスプレイハウジング１０２ａがユーザの眼及び眼を囲む顔の特徴を実質的に覆うように、ディスプレイハウジング１０２ａを囲んでいる。これにより、ユーザが光学系１０２ｂを通して見ている領域への光が低減し、したがって、ＨＭＤ１０２によって提供される仮想現実シーンのより現実的な表示が提供される。ディスプレイハウジング１０２ａがユーザの頭に配置されると、ユーザの鼻は、鼻挿入領域１０２ｄ内にスライドするか、またはその中に嵌まり得る。鼻挿入領域１０２ｄは、ディスプレイハウジング１０２ａの下部の、光学系１０２ｂの間の領域である。
【００４０】
フラップ１０２ｃは、ユーザの鼻が少なくとも部分的に鼻挿入領域１０２ｄに配置されたときに動くまたは屈曲するように設計されている。示されるように、近接センサ２０６は、ディスプレイハウジング１０２ａ内に統合され、鼻挿入領域１０２ｄの領域に向けられ、ユーザの鼻が少なくとも部分的に鼻挿入領域１０２ｄ内に配置されたときに情報をキャプチャするようにする。フラップ１０２ｃは、ユーザの鼻に隣接して嵌まるように設計されており、フラップは、ディスプレイハウジング１０２ａがユーザの顔に配置されたときに、光が光学系１０２ｂ及びユーザの眼に向かって漏れないようにすることを助ける。
【００４１】
また図３Ａに示されるように、近接センサ３０２は、ディスプレイハウジング１０２ａの内表面に統合され、光学系１０２ｂ間に配置されている。したがって、近接センサ３０２の位置は、ユーザの額から離間することになり、インターフェース表面１０２ｅに、より近接し得る。しかしながら、ＨＭＤ１０２におけるユーザの顔の存在は、近接センサ３０２によって感知することができる。さらに、近接センサ３０２はまた、ＨＭＤ１０２が装着されたときのユーザの顔の距離、テクスチャ、画像、及び／または一般的な特性に関する情報も感知することができる。上述のように、近接センサ３０２は、ディスプレイハウジング１０２ａ内で、同じ場所または異なる場所で統合され得る複数のセンサによって定義され得る。
【００４２】
ディスプレイハウジング１０２ａの光学系１０２ｂ間の位置で統合され得る視線検出センサ２６５も示されている。視線検出センサ２６５は、光学系１０２ｂを通して見ているときのユーザの眼球運動を監視するように構成されている。視線検出センサは、ユーザがＶＲ空間において見ている位置を特定するのに使用することができる。さらなる実施形態では、視線検出センサ２６５を使用してユーザの眼を監視する場合、この情報をユーザのアバターの顔に用いて、アバターの顔が、ユーザの眼球運動と同じ様に動く眼を有するようにすることができる。視線検出センサ２６５はまた、ユーザが映像酔いを体験している可能性があるときを監視するためにも使用することができる。
【００４３】
視線検出センサ２６５は、眼の向きに関する１つまたは複数のパラメータをキャプチャするように構成されている。視線検出センサ２６５からの情報を使用して、眼の瞳孔の向きに基づいて、ユーザの眼（複数可）の視線方向（例えば、角度θ）を判定し得る。瞳孔は、光が網膜に入り、網膜に当たることを可能にする眼の中心の開口部である。視線検出センサ２６５は、眼（複数可）を照らすために使用される非可視光（例えば、赤外光）の１つまたは複数の波長のエネルギーを放出する１つまたは複数の光源（図示せず）と連動して機能し得る。例えば、光源は、光エネルギーを眼（複数可）に向ける発光ダイオード（ＬＥＤ）であり得る。視線検出センサ２６５は、瞳孔、角膜、及び／または眼の虹彩からの反射を捕捉するために使用され得る。反射はその後分析されて（例えば、ＨＭＤ１０２のプロセッサ、コンピュータ１０６などによって）、視線方向及び／または瞳孔の向きを判定し、それは、眼（複数可）の視線方向へと翻訳可能である。視線方向（例えば、角度θ）は、ＨＭＤ１０２、及び／または実世界空間に関して参照され得る。視線の向き及び／または方向を判定するために、明瞳孔追跡、暗瞳孔追跡などといった様々な既知の技術が実装され得る。ユーザの瞳孔（複数可）及び／または眼（複数可）の方向及び／または向きを判定するのに用いられる眼の向きのデータをキャプチャするように構成されている、図４Ａに示す１つまたは複数の光源（複数可）４０１及び１つまたは複数の視線検出センサ（複数可）２６５を含む視線追跡システム８２０が示される。
【００４４】
さらに、視線方向に基づいて追加情報が判定され得る。例えば、眼（複数可）の速度及び加速度などの眼球運動データが判定され得る。眼（複数可）の追跡された運動は、ユーザのサッカードを判定するために使用され得る。センサからの情報はまた、ユーザの頭を追跡するのにも使用され得る。例えば、情報は、頭の位置、動き、向き、向きの変化に反応し得る。この情報は、実世界環境内の視線方向を判定するために使用され得る。
【００４５】
図３Ｂから３Ｃもまた、視線方向センサ２６５の様々な配置位置を示す、ＨＭＤ１０２の異なる斜視図を示す。例えば、図３Ｂは、眼の視線を捕捉するために、光学系１０２ｂの外側部分に配置された視線検出センサ２６５ａ及び２６５ｂの例である。図３Ｃは、眼の視線を捕捉するために、光学系１０２ｂの間に配置された視線検出センサ２６５ｘ及び２６５ｙを含む。視線検出センサの位置は、ディスプレイハウジング１０２ａ内で異なるものであり得、一般に、ユーザの眼に向けられた表示を提供するように配置される。これらの例示は、視線検出センサがＨＭＤ１０２内の様々な位置に柔軟に配置できることを示すために提供されている。
【００４６】
図４Ａは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するように構成されている予測エンジン４００を示す。予測エンジン４００は、前述のように、ＨＭＤ１０２、コンピュータ１０６、及びクラウドゲーミングサーバ１１４のうちの１つまたは複数に配置され得る。
【００４７】
図示されるように、視線追跡システム１２２０は、ユーザの瞳孔（複数可）及び／または眼（複数可）の視線の方向及び／または向きを判定するように構成されている。視線方向は、ＨＭＤ１０２のディスプレイといったディスプレイに関してのものであり得る。前述のように、視線追跡システム１２２０は、１つまたは複数の光源（複数可）４０１及び１つまたは複数の視線検出センサ（複数可）２６５を含む。特に、視線追跡システム１２２０からの情報は、１つまたは複数のサンプル点において収集される。例えば、情報は、サッカード中に眼を１回以上サンプリングするのに十分な期間で、周期的に収集され得る。例えば、情報は、特定の瞬間における眼（複数可）の視線方向を含み得る。１つまたは複数のサンプル点における情報は、現在のサンプル点における情報を含めて、後でアクセスするためにストレージ１２０６に保持される。
【００４８】
さらに、現在のサンプル点における情報は、入力として予測エンジン４００に送られる。より具体的には、一実施形態において、Δθ速度生成器４１０は、現在のサンプル点４０２からの情報及び前のサンプル点４０３からの情報（ストレージ１２０６から送られるか、または生成器４１０によってアクセス可能なバッファ４０５に保持されている）を分析して、眼球運動の速度を判定する。このようにして、速度生成器４１０は、現在のサンプル点４０２からの情報及び前のサンプル点４０３からの情報に基づいて、特定のサンプル点における眼球運動の速度を判定するように構成されている。例えば、情報は特定の時間における視線方向であり得る。別の実施形態では、後方差分の代わりに、速度の中心差分推定が実行される。そのように、検出を遅延させ、前の位置及び次の位置を使用して、速度のより滑らかな推定値を取得することが可能である。これは、サッカード検出を実行する際の誤判定を低減するのに役立ち得る。
【００４９】
速度情報（例えば、ｄθ／ｄｔ）が、サッカード識別子４２０に入力として提供される。ユーザの眼球運動がサッカード内にあるときを判定するために、速度生成器４１０によって様々な技術が用いられ得る。一実施形態では、眼及び／または眼の眼球運動は、速度が閾値に達するかつ／または超えるとき、サッカード内にある。閾値は、眼がサッカードに達していることを必ずしも示すとは限らないノイズの多い情報は避けるように選択される。例えば、閾値は、オブジェクトを追跡するときなど、眼が滑らかな追跡を実行しているときに通常見られる速度を上回るものである。純粋に例示のために、サッカード検出は、１０ｍｓ内に実行され得る。
【００５０】
前に説明したように、サッカードは、ディスプレイ上のある凝視点から別の凝視点に移動するときになされるユーザの眼（複数可）の急速なかつ同時の運動を定義する。サッカード運動は、毎秒９００度を超えるピーク角速度に達することも可能で、２０から２００ミリ秒（ｍｓ）の範囲で持続する。１２０ヘルツ（Ｈｚ）のフレームレートでは、サッカードは、２から２５フレームの範囲で持続し得る。例えば、ＨＭＤは、９０または１２０Ｈｚのレートでリフレッシュして、ユーザの不快感（例えば、映像酔いによる）を最小限に抑える。
【００５１】
眼及び／または眼球運動がサッカードにあると判定されると、予測エンジン４００は、ユーザの視線方向が指しているディスプレイ上の着地点を判定するように構成されている。すなわち、サッカード中の特定の点（例えば、中間点、終わりなど）において、着地点は、図４Ｂに示されるように、予測エンジン４００によって、より具体的には深層学習エンジン１９０によって判定することができる。特に、サンプルセットコレクタ４３０は、現在のサンプル点４０２からの情報を含むように、サンプル点のセットからの情報を収集する。サンプル点のセットから判定された速度情報がさらに判定でき、全速度グラフの少なくとも一部が、ユーザが体験するサッカードに対して生成され得るようにする。速度グラフの一部を含む情報は、着地点を判定するために、深層学習エンジン１９０に入力として提供される。
【００５２】
例えば、図４Ｂは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測するために使用される深層学習エンジン１９０としてのリカレントニューラルネットワークを示す。リカレントニューラルネットワークは、長短期記憶（ＬＳＴＭ）モジュール４４０及び全結合された多層ネットワーク４５０（例えば、多層パーセプトロン）を含む。特に、深層学習エンジン１９０は、入力情報４５１（例えば、速度グラフの一部など）を、深層学習エンジン１９０によって生成されかつ／または知られるサッカードのモデルと比較するように構成されている。例えば、分析されているサッカードの一部は、被験者の複数のサッカードから構築された速度グラフと比較される。他の実施形態では、ニューラルネットワークへの入力は、各サンプル点での速度といった速度に加えて、各サンプル点での視線方向、及び各サンプル点での時間の情報を含み得る。そのようにして、ユーザの眼の方向に対応する、ディスプレイ上の着地点は、深層学習エンジン１９０によって構築されかつ／または知られるサッカードモデルに基づいて、サッカード中の任意の点について判定され得る。示されるように、深層学習エンジン１９０の出力４５２は、判定された着地点を指しているユーザの視線方向を示すベクトル（ＸＦ−ｎ）、及び任意選択的に、ユーザの眼が着地点に向けられるときを予測する時間（ｔｎ）パラメータを含む。時間（ｔｎ）パラメータは、サッカードの開始、サッカードが判定される点、サンプル点のサンプルセット４５１における最新のサンプル点などといった１つまたは複数の点を参照し得る。
【００５３】
図４Ｃは、本開示の一実施形態による、被験者の測定されたサッカードに基づいてサッカードモデル及び／またはそれらサッカードモデルにおける速度グラフを構築するために、かつ、例えばＨＭＤのディスプレイ上で着地点の予測を実行するために使用される例示的なニューラルネットワークを示す。着地点は、ディスプレイ（例えば、ＨＭＤの）を見ているユーザに関連して定義されるサッカード中かつ／またはその終わりのユーザの任意の眼の視線方向に関連付けられる。具体的には、サッカード予測エンジン４００の深層学習または機械学習エンジン１９０は、ユーザの眼の向きのデータに関する情報（例えば、視線方向、時間、サッカードの速度グラフの一部など）を入力として受信するように構成されている。深層学習エンジン１９０は、深層学習アルゴリズム、強化学習、または他の人工知能ベースのアルゴリズムを含む人工知能を利用して、前述のように、サッカードモデル、例えばそれらのサッカードモデルに対する速度グラフを構築して、現在ユーザが体験しているサッカードを認識し、サッカード中の任意のポイントで視線方向が指している場所を予測する。
【００５４】
すなわち、学習及び／またはモデリング段階中に、深層学習エンジン１９０は、入力データ（例えば、被験者のサッカードの測定値）を用いて、ユーザの眼（複数可）が指している、ディスプレイの着地点を予測するのに使用することができるサッカードモデル（それらのサッカードモデルに対する速度グラフを含む）を作成する。例えば、入力データは、被験者のサッカードの複数の測定値を含み得、測定値は、深層学習エンジン１９０に供給されると、１つまたは複数のサッカードモデルを作成するように構成されており、サッカードモデルごとに、サッカード認識アルゴリズムを用いて、現在のサッカードがそのサッカードモデルといつ一致するかを識別することができる。
【００５５】
特に、ニューラルネットワーク１９０は、対応するユーザの応答、行動、態度、所望、及び／またはニーズを判定するためにデータセットを分析する自動分析ツールの例を表す。異なるタイプのニューラルネットワーク１９０が可能である。例では、ニューラルネットワーク１９０は、深層学習をサポートする。したがって、ディープニューラルネットワーク、深層畳み込みニューラルネットワーク、及び／または教師ありもしくは教師なしのトレーニングを使用したリカレントニューラルネットワークを実装することができる。別の例では、ニューラルネットワーク１９０は、強化学習をサポートする深層学習ネットワークを含む。例えば、ニューラルネットワーク１９０は、強化学習アルゴリズムをサポートするマルコフ決定プロセス（ＭＤＰ）としてセットアップされる。
【００５６】
一般に、ニューラルネットワーク１９０は、人工ニューラルネットワークなどの相互接続されたノードのネットワークを表す。各ノードは、データからある情報を学習する。相互接続を介して、ノード間で知識を交換することができる。ニューラルネットワーク１９０への入力により、ノードのセットがアクティブ化される。次に、このノードのセットは、他のノードをアクティブ化し、それにより入力に関する知識が伝播される。このアクティブ化プロセスは、出力が提供されるまで、他のノードにわたって繰り返される。
【００５７】
図示されるように、ニューラルネットワーク１９０は、ノードの階層を含む。最下位階層に、入力層１９１が存在する。入力層１９１は、入力ノードのセットを含む。例えば、これらの入力ノードのそれぞれは、対応するサッカード中にある被験ユーザ／被験者の監視（例えば眼の向きのデータ）中に、アクチュエータを介して能動的に収集された、またはセンサにより受動的に収集されたローカルデータ１１５にマッピングされる。
【００５８】
最上位階層には、出力層１９３が存在する。出力層１９３は、出力ノードのセットを含む。出力ノードは、現在体験されているサッカードの情報に関する決定（例えば予測）を表す。前述のように、出力ノードは、ユーザが体験したサッカードを、以前にモデル化されたサッカードと一致させ、さらに、サッカード中かつ／またはその終わりにユーザの視線方向が指している、ディスプレイ（例えばＨＭＤの）の予測された着地点を識別し得る。
【００５９】
これらの結果は、適切なサッカードモデル及び所与の入力セットに対するサッカード中かつ／またはその終わりのユーザの視線方向に対応するディスプレイの予測された着地点を反復的に判定するように、深層学習エンジン１９０によって用いられるパラメータを改良かつ／または修正するために、前のインタラクション及び被験者の監視から得られた所定かつ真の結果と比較することができる。すなわち、ニューラルネットワーク１９０におけるノードは、パラメータを改良するときにそうした決定をなすために用いることができるサッカードモデルのパラメータを学習する。
【００６０】
特に、隠れ層１９２が、入力層１９１と出力層１９３の間に存在する。隠れ層１９２は、「Ｎ」個の隠れ層を含み、「Ｎ」は、１以上の整数である。次に、隠れ層のそれぞれはまた、隠れノードのセットも含む。入力ノードは、隠れノードと相互接続されている。同様に、隠れノードは、出力ノードと相互接続されているため、入力ノードは、出力ノードと直接相互接続されていない。複数の隠れ層が存在する場合、入力ノードは、最下位の隠れ層の隠れノードと相互接続される。次に、これらの隠れノードは、次の隠れ層の隠れノードと相互接続され、以下同様に続く。次の最上位の隠れ層の隠れノードは、出力ノードと相互接続される。相互接続は、２つのノードを接続する。相互接続は、学習することができる数値の重みを有し、ニューラルネットワーク１９０を入力に適応させて、学習可能にする。
【００６１】
一般に、隠れ層１９２により、入力ノードに関する知識が、出力ノードに対応する全てのタスク間で共有されることが可能となる。そのようにするため、一実装例では、隠れ層１９２を介して入力ノードに変換ｆが適用される。例では、変換ｆは、非線形である。例えば線形整流器関数ｆ（ｘ）＝ｍａｘ（０，ｘ）を含む、様々な非線形変換ｆが利用可能である。
【００６２】
ニューラルネットワーク１９０はまた、最適解を見つけるためにコスト関数ｃを使用する。コスト関数は、所与の入力ｘに関してｆ（ｘ）と定義されたニューラルネットワーク１９０によって出力される予測と、グラウンドトゥルースまたはターゲット値ｙ（例えば見込まれる結果）との偏差を測定する。最適解は、最適解のコストよりコストの低い解がない状況を表す。コスト関数の例として、グラウンドトゥルースラベルが利用可能なデータの場合、予測とグラウンドトゥルースとの平均二乗誤差が挙げられる。学習プロセス中に、ニューラルネットワーク１９０は、誤差逆伝播アルゴリズムを使用して、様々な最適化方法を採用し、コスト関数を最小化するモデルパラメータ（例えば隠れ層１９２内のノード間の相互接続の重み）を学習し得る。このような最適化方法の一例として、確率的勾配降下法が挙げられる。
【００６３】
例では、ニューラルネットワーク１９０におけるトレーニングデータセットは、同じデータドメインに由来し得る。例えば、ニューラルネットワーク１９０は、所与の入力または入力データのセットに基づく被験者の類似するサッカードのパターン及び／または特性を学習するようにトレーニングされる。例えば、データドメインは、眼の向きのデータを含む。別の例では、トレーニングデータセットは、ベースライン以外の入力データを含むように、異なるデータドメインに由来する。このようにして、ニューラルネットワーク１９０は、眼の向きのデータを使用してサッカードを認識可能で、または、眼の向きのデータに基づいて所与のサッカードにおけるサッカードモデルを生成するように構成され得る。
【００６４】
図５Ａは、本開示の一実施形態による、眼球運動の完了後に画像がユーザに対してぼやけることにつながる、眼球運動に比べてのフレーム更新の遅れがどのようなものかを示すサッカード予測なしのレンダリングパイプライン５０１を示す。レンダリングパイプライン５０１は、前述のように、ＨＭＤ１０２、コンピュータ１０６、及びクラウドゲーミングサーバ１１４内に、単独でまたは組み合わせて実装され得る。
【００６５】
着地点予測が有効になっていないレンダリングパイプライン５０１が図５Ａに示されているが、本開示の実施形態において、レンダリングパイプライン５０１は、図５Ｂに示すように、サッカード及び眼球運動を識別するために、かつ、サッカード中かつ／またはその終わりにユーザの眼（複数可）２６０の視線方向が指しているディスプレイ（例えばＨＭＤ１０２の）上の着地点を予測する（例えばＯＮにされる）ために、視線追跡情報を分析するように最適化され得ることが理解される。すなわち、図５Ｂにおいて、レンダリングパイプライン５０１は、図５Ｂに関して以下でさらに説明するように、着地点の予測に基づいて中心窩レンダリングを実行するように構成され得る。
【００６６】
特に、レンダリングパイプラインは、中央処理装置（ＣＰＵ）１２０２、グラフィック処理ユニット（ＧＰＵ）１２１６、及び両方にアクセス可能なメモリ（例えば、頂点バッファ、インデックスバッファ、深度またはＺバッファ、ディスプレイに送られるレンダリングフレームを格納するためのフレームバッファなど）を含む。レンダリングパイプライン（またはグラフィックパイプライン）は、３Ｄ（３次元）ポリゴンレンダリングプロセスを使用するときなどの、画像をレンダリングするための一般的なプロセスを示す。例えば、レンダリング画像用のレンダリングパイプライン５０１は、ディスプレイにおける画素のそれぞれの対応する色情報を出力し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。
【００６７】
ＣＰＵ１２０２は、一般に、オブジェクトアニメーションを実行するように構成され得る。ＣＰＵ１２０２は、３Ｄ仮想環境内のオブジェクトに対応する入力ジオメトリを受信する。入力ジオメトリは、３Ｄ仮想環境内の頂点、及び各頂点に対応する情報として表され得る。例えば、３Ｄ仮想環境内のオブジェクトは、頂点によって定義されるポリゴン（例えば、三角形）として表すことができ、対応するポリゴンの表面は、次に、レンダリングパイプライン５０１を介して処理されて、最終効果（例えば、色、テクスチャ、等）を達成する。ＣＰＵ１２０２の動作はよく知られており、本明細書では大まかに説明する。一般に、ＣＰＵ１２０２は、１つまたは複数のシェーダ（例えば、計算、頂点など）を実装して、オブジェクトに加えられるかつ／またはオブジェクトによって加えられる力（例えば、重力などの外力、及び動きを誘発するオブジェクトの内力）に応じて、フレームからフレームへオブジェクトアニメーションを実行する。例えば、ＣＰＵ１２０２は、３Ｄ仮想環境において、オブジェクトの物理シミュレーション及び／または他の機能を実行する。次に、ＣＰＵ１２０２は、ＧＰＵ１２１６によって実行されるポリゴン頂点に対する描画コマンドを発行する。
【００６８】
特に、ＣＰＵ１２０２によって生成されたアニメーション結果は、頂点バッファに格納でき、それは次に、ＧＰＵ１２１６によってアクセスされる。ＧＰＵ１２１６は、ポリゴン頂点のディスプレイ（例えば、ＨＭＤの）への投影及び、ポリゴン頂点をレンダリングする目的で、投影されたポリゴンのテッセレーションを実行するように構成されている。すなわち、ＧＰＵ１２１６は、３Ｄ仮想環境内でオブジェクトを構成するポリゴン及び／またはプリミティブをさらに構築するように構成でき、これには、ポリゴンに対するライティング、シャドウィング、及びシェーディング計算の実行が含まれ、それはシーンに対するライティングに依存する。ビュー錐台の外側のプリミティブを識別して無視するクリッピング、及びシーンにおけるオブジェクトをディスプレイ上に投影するためのラスタ化（例えば、オブジェクトを、ユーザの視点に関連付けられた画像平面に投影する）などの追加の操作が実行され得る。単純なレベルでは、ラスタ化には、各プリミティブを調べ、そのプリミティブの影響を受ける画素を判定することが含まれる。プリミティブの断片化を使用して、プリミティブを画素サイズのフラグメントに分割可能で、各フラグメントは、ディスプレイ内の画素及び／またはレンダリングの視点に関連付けられた参照面に対応する。１つまたは複数のプリミティブの１つまたは複数のフラグメントは、ディスプレイ上にフレームをレンダリングするときの画素の色に寄与し得る。例えば、所与の画素について、３Ｄ仮想環境内のすべてのプリミティブの所与の画素フラグメントが、表示のための画素に結合される。すなわち、対応する画素に対する全体的なテクスチャ及びシェーディング情報が結合されて、画素の最終的なカラー値が出力される。これらのカラー値は、フレームバッファに格納でき、フレームごとにシーンの対応する画像を表示するときに対応する画素にスキャンされる。
【００６９】
レンダリングパイプライン５０１は、視線方向及び／または向きの情報をＣＰＵ１２０２に提供するように構成されている視線追跡システム１２２０を含み得る。この視線方向情報は、中心窩レンダリングを実行する目的で使用でき、中心窩領域は、高解像度でレンダリングされ、ユーザが注視している方向に対応する。図５Ａは、中心窩レンダリングに関するがサッカード予測なしで（すなわち、サッカード予測がオフになっている）構成されているレンダリングパイプライン５０１を示す。すなわち、着地点の予測は実行されず、その結果、ＨＭＤに表示されるフレームは、ユーザの眼球運動と一致しない中心窩領域を有する。なぜなら、特に眼が動いているときは、計算された各中心窩領域は表示の際古いからである。さらに、図５Ａは、シーケンス内のフレーム（例えば、Ｆ１からＦ８）がレンダリングパイプライン５０１からスキャンアウトされる時間を示すタイムライン５２０を示す。フレームＦ１〜Ｆ８のシーケンスも、ディスプレイを見ているユーザのサッカードの一部である。
【００７０】
図５Ａに示すように、レンダリングパイプラインは、視線追跡システム１２２０、ＣＰＵ１２０２、ＧＰＵ１２１６、及びレンダリングフレームをディスプレイ１２１０にスキャンアウトするためのラスタエンジンによって順番に実行される動作を含むとして示されている。例示のために、レンダリングパイプラインシーケンス５９１〜５９５が示される。スペースの制約のため、フレームＦ３からＦ−２２に対するシーケンスといった他のパイプラインシーケンスは示されない。図５Ａに示す例では、レンダリングパイプライン５０１の構成要素のそれぞれは、同じ周波数で動作する。例えば、視線追跡システム１２２０は、１２０Ｈｚで視線方向及び／または向きの情報を出力していてもよく、これは、ＣＰＵ１２０２及びＧＰＵ１２１６のレンダリングパイプラインが使用するのと同じ周波数であり得る。このように、ユーザの眼（複数可）の視線方向２６０は、レンダリングパイプラインでスキャンアウトされるフレームごとに更新され得る。他の実施形態では、視線追跡システム１２２０は同じ周波数で動作しておらず、したがって、視線方向情報は、スキャンアウトされているレンダリングフレームと一致しない場合がある。その場合には、視線追跡システム１２２０の周波数がＣＰＵ１２０２及びＧＰＵ１２１６によって使用される周波数よりも低速の場合、視線方向情報は追加の遅延を加え得る。
【００７１】
視線追跡情報は、高解像度でレンダリングされる中心窩領域を判定するために用いられ得る。中心窩領域の外側の領域は、低解像度で表示される。しかしながら、図５Ａに示されるように、サッカード予測がない場合、視線追跡情報を用いてスキャンアウトするフレームを判定するときまでに、少なくとも２フレーム期間、そして最大３フレーム期間が、視線追跡情報を用いる対応するフレームが表示されるまでに経過している。例えば、レンダリングパイプラインシーケンス５９１において、視線追跡情報は、時間ｔ−２０（サッカードの中間点）における第１のフレーム期間で判定され、ＣＰＵ１２０２に送られる。時間ｔ−２１における第２のフレーム期間で、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送る。時間ｔ−２３における第３のフレーム期間で、ＧＰＵは、プリミティブアセンブリを実行して、レンダリングフレーム（Ｆ２３）を生成する。さらに、ＧＰＵは、少なくとも２フレーム期間前に判定された、時間ｔ−２０における第１のフレーム期間に送られた視線方向に対応する中心窩領域をレンダリングし得る。中心窩領域を含むフレームＦ２３は、時間ｔ−２３における第４のフレーム期間でスキャンアウトされる。注目すべきは、レンダリングパイプラインシーケンス５９１おいて、時間ｔ−２０で判定された視線追跡情報は、少なくともｔ−２１及びｔ−２２におけるフレーム期間（２フレーム期間）、場合によっては第３のフレーム期間の一部分、古くなっていることである。同様に、パイプラインシーケンス５９２は、時間ｔ−２４でフレームＦ２４をスキャンアウトするが、中心窩領域は、遡って時間ｔ−２１における第１のフレーム期間で定義されたものである。また、パイプラインシーケンス５９３は、時間ｔ−２５でフレームＦ２５をスキャンアウトするが、中心窩領域は、遡って時間ｔ−２２における第１のフレーム期間で定義されたものである。さらに、パイプラインシーケンス５９４は、時間ｔ−２６でフレームＦ２６をスキャンアウトするが、中心窩領域は、遡って時間ｔ−２３における第１のフレーム期間で定義されたものである。また、パイプラインシーケンス５９５は、時間ｔ−２７でフレームＦ２７をスキャンアウトするが、中心窩領域は、遡って時間ｔ−２４における第１のフレーム期間で定義されたものである。
【００７２】
眼２６０は、各レンダリングパイプラインに対して検出されている点（例えば、時間）（例えば、レンダリングパイプラインシーケンス５９１または５９２または５９３の開始時など）を過ぎても動き続けるので、スキャンされるときの対応するレンダリングパイプラインシーケンス（例えば、シーケンス５９５）のフレーム（例えばフレームＦ２７）における中心窩領域は、少なくとも２から３フレーム期間古い場合がある。例えば、スキャンアウト時のレンダリングフレームＦ２７は、ユーザの視線方向と一致しない中心窩領域を有する。特に、ディスプレイ１２１０は、時間ｔ−２７におけるフレームＦ２７を示すように示され、サッカード経路５１０（フレームＦ０とＦ２７の間）が、ディスプレイ１２１０に重ね合わされ、凝視点Ａ（例えば、方向５０６及びベクトルＸＦ−０）を示し、これはサッカードの始まりに対応する。例示のために、フレームＦ１は、時間ｔ−０でサッカード経路５１０の始まりでスキャンアウトされており、中心窩領域は、凝視点Ａを中心とする。サッカード経路５１０は、サッカードの終わりに対応する凝視点Ｂ、またはサッカードの少なくとも第２の点を含む。例示のために、フレームＦ２７は、時間ｔ−２７においてサッカード経路５１０の終わりにスキャンアウトされる。
【００７３】
やはり、レンダリングパイプライン５０１によって実行されるサッカード経路の予測がないので、視線追跡システム１２２０によって提供される視線方向情報は、少なくとも２または３フレーム期間古くなる。このように、フレームＦ２７は時間ｔ−２７でレンダリングパイプラインシーケンス５９５に対してスキャンアウトされているとき、眼２６０は凝視点Ｂ（眼の方向５０７及びベクトルＸＦ−２７で）を凝視するが、レンダリングパイプラインシーケンス５９５は、時刻ｔ−２４で提供された視線方向情報を使用し、それは古いものである。すなわち、時間ｔ−２４で判定された視線方向情報が、レンダリングパイプラインシーケンス５９５を伝播して、時間ｔ−２７でスキャンアウトされる。特に、時間ｔ−２４における視線追跡システム１２２０は、ディスプレイ１２１０上の点５９１を指す視線方向を記録している。このように、時間ｔ−２４において、フレームＦ２４がスキャンアウトされているとき、ユーザの眼２６０は、ディスプレイの点５９１に向けられている。レンダリングされているときのフレームＦ２４の中心窩領域がディスプレイ１２１０上に正しく配置されているかどうかは、サッカード中、眼２６０によって受けられた画像は完全に処理されず視聴者においてぼやけて見え得るので、重要ではない場合がある。しかしながら、フレームＦ２７が時間ｔ−２７でディスプレイ１２１０上にスキャンアウトされるとき、レンダリングされた中心窩領域５４９が時間ｔ−２４における点５９１の周囲にあると計算されていても、ユーザの眼は凝視点Ｂ（点線領域５９２によって示されるように）を向いている。このように、前述のように、時間ｔ−２７において眼２６０を領域５９２に向けかつ焦点を合わせいるユーザにとって、領域５９２は周辺にあると計算され、より低い解像度でレンダリングされ得るが、古い中心窩領域５４９（眼が向けられていない）は高解像度でレンダリングされるため、フレームＦ２７はぼやけて見える。
【００７４】
図５Ｂは、本開示の一実施形態による、レンダリングパイプラインにおける高解像度の中心窩領域の更新を進めることによって、眼球運動の完了後、画像がユーザに対して焦点を合わせるように、ＨＭＤのディスプレイを見ているユーザの眼球運動のサッカード予測ありで構成されているレンダリングパイプラインの結果的な効果を示す。例えば、図５Ａに示されているレンダリングパイプライン５０１において、ここで、サッカード予測、より具体的には着地点予測を有効にする。すなわち、レンダリングパイプライン５０１は、ここで、サッカード及び眼球運動を識別するため視線追跡情報を分析するように、かつ、サッカード中かつ／またはその終わりにユーザの眼（複数可）２６０の視線方向が指している、ディスプレイ（例えばＨＭＤ１０２の）上の着地点を予測する（例えばＯＮにする）ように最適化される。このように、図５Ｂにおいて、レンダリングパイプライン５０１は、ここで、着地点の予測に基づいて中心窩レンダリングが行われるように構成されている。例示のみを目的として、図５Ｂは、一実施形態におけるサッカード５１０の終わりの着地点の予測を示すが、他の実施形態では、サッカード中の着地点の予測が可能である（例えば、現在のサンプル点を過ぎて３から５フレーム期間、着地点を予測する）。
【００７５】
特に、ディスプレイ１２１０は、時間ｔ−２７でフレームＦ２７を提示するように示される。サッカード経路５１０は、ディスプレイ１２１０に重ね合わされ、サッカードの始まりに対応する凝視点Ａ（例えば、方向５０６及びベクトルＸＦ−０）を示す。例示のために、フレームＦ１は、時間ｔ−０でサッケード経路５１０の始まりでスキャンアウトされており、中心窩領域は、凝視点Ａを中心とする。サッカード経路５１０は、サッカードの終わりに対応する凝視点Ｂ、またはサッカードの少なくとも第２の点を含む。例示のために、フレームＦ２７は、時間ｔ−２７においてサッカード経路５１０の終わりにスキャンアウトされる。
【００７６】
各フレームがスキャンアウトされると、サッカード予測がレンダリングパイプライン５０１内で実行される。一実施形態では、サッカード予測及び／または着地点予測は、ＣＰＵ１２０２、ＧＰＵ１２１６、または両方の組み合わせ内で実行することができる。別の実施形態では、サッカード予測は遠隔で実行され、レンダリングパイプライン５０１へ入力として送られる。予測が実行されると、ＧＰＵ１２１６は、フレームを、着地点予測に基づく中心窩領域とともにレンダリングすることができる。特に、ＧＰＵ１２１６は、中心窩レンダリングを修正することができ、その結果、図５Ａで前述したような古い視線方向情報に依存する代わりに、予測された着地点を用いて中心窩領域の位置を判定する。
【００７７】
特に、凝視点Ｂに対する予測された着地点が、ディスプレイ１２１０に重ね合わされる。これらの着地点は、前のレンダリングパイプラインシーケンスで判定されたものである。特に、フレームＦ８以降のフレームがスキャンアウトされる時間までに、サッカードにおける予測された着地点は、例えば凝視点Ｂに収束している。図示されるように、サッカード検出後のある点で（例えば、時間ｔ−５におけるフレームＦ５のスキャンアウト中）、予測が実行される。例えば、予測は、フレームＦ５及び後続のフレームのレンダリングから開始して実行され得る。サッカード５１０は、図５Ａで以前に紹介しており、開始点として凝視点Ａ、及び凝視点Ｂ（例えば、終点、またはサッカード内の事前定義された点−未来の３から５フレーム期間など−として）を含む。
【００７８】
フレームＦ５がスキャンアウトされるとき、予測された着地点（例えば、ベクトルＸＦ−５を中心とする）が、凝視点Ｂから離れている、予測中心窩領域５４１として示される。次のレンダリングパイプラインシーケンスでは、フレームＦ６がスキャンアウトされるとき、予測された着地点（例えば、ベクトルＸＦ−６を中心とする）が予測中心窩領域５４２として示され、これは、凝視点Ｂに近いが、まだ離れている。予測は収束するため、次のレンダリングパイプラインシーケンスでは、フレームＦ７がスキャンアウトされるとき、予測された着地点（ベクトルＸＦ−７を中心とする）が、凝視点Ｂに非常に近い、予測中心窩領域５４３として示される。フレームＦ８がスキャンされるとき、次のレンダリングパイプラインシーケンスに収束が現れ得、予測された着地点（例えば、ベクトルＸＦ−８を中心とする）は、凝視点Ｂを中心とする予測中心窩領域５９２（太字）として示される。任意の後続のレンダリングパイプラインシーケンスに対して、中心窩領域５９２は、サッカード５１０のフレームＦ９からＦ２７をレンダリング及びスキャンアウトするときなど、レンダリングに使用され、凝視点Ｂを中心とする。そのようにして、フレームＦ２７がレンダリングされると、凝視点Ｂに対する着地点予測により、中心窩領域５９２は、サッカードの終わりにおいてなどで、ユーザの眼（複数可）２６０の運動と一致する。また、着地点の予測は、フレームＦ８のレンダリング及びスキャンアウトとともに収束するので、フレームＦ９からＦ２７は全て、ユーザの眼（複数可）の運動に備えて、既に中心窩領域５９２を有し得る。このように、予測なしで中心窩領域５４９をレンダリングする代わりに（図５Ａに記載されるように）、標的着地点（例えば、未来の定義されたフレーム期間数、サッカードの終わりなど）は、予測中心窩領域５９２を用いて更新され、眼がその予測された着地点に到達したときに、フレームが、その予測された着地点を中心とする中心窩領域とともにレンダリングされるようにする。
【００７９】
図６Ａは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザのサッカードの眼の変位及び速度を示すグラフ６００Ａを示す。グラフ６００Ａは、サッカード中の眼球運動の角速度（ｄθ／ｄｔ）を示す垂直軸６１０Ａを含む。さらに、グラフ６００Ａは、角変位（θ）を示す別の垂直軸６１０Ｂを含む。グラフ６００Ａは、時間を示す横軸６１５を含み、時間ｔ−０とおおよそｔ−２７及び／またはｔ−２８の間のサッカードにおける時系列を含む。
【００８０】
純粋に例示のために、グラフ６００Ａは、線６３０でサッカードの角変位を示す。以前に紹介したように、サッカードは、ディスプレイ上のある凝視点から別の凝視点に移動するときになされたユーザの眼（複数可）の急速なかつ同時の運動を定義する。示されるように、眼の変位線６３０によって示されるような角運動は、特定の方向（例えば、左から右へ）にある。すなわち、サッカード中、眼の視線方向は、グラフ６００Ａの例では、０度から３０度の間で移動する。
【００８１】
それに対応して、純粋に例示のために、グラフ６００Ａは、線６２０でサッカード中の眼の速度を示す。異なるサッカードの速度グラフは、一般に、線６２０に示されているのと同じ形状に従う。例えば、サッカードの開始時、サッカードの速度は線形進行に従う（例えば、時間ｔ−０とｔ−８の間）。線形進行後、速度は時間ｔ−８とｔ−１７の間などでプラトーになり得る。線６２０の速度グラフは、プラトー後、サッカードの終了まで、例えば、時間ｔ−１７とｔ−２７の間などで、速度の急激な低下を示す。
【００８２】
本開示の実施形態は、現在のサッカードの速度グラフの一部（例えば、線６２０の線形部分）を、モデル化されたサッカード（例えば、深層学習エンジン１９０をトレーニングすると構築される）に一致させる。現在のサッカードの着地点は、サッカード中の任意の点におけるモデル化されたサッカードの着地点に近似可能で、現在のサッカードにおいて予測することができる。
【００８３】
図６Ｂは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザのサッカードの速度グラフ６００Ｂにおける様々なサンプル点での眼の向き／追跡データのサンプリングを示す。グラフ６００Ｂは、図６Ａのグラフ６００Ａに従い、サッカード中の眼球運動の角速度（ｄθ／ｄｔ）を示す垂直軸６１０Ａ、及び水平軸６１５を含むが、線６２０でサッカードの速度のみを示すように切り離されている。
【００８４】
特に、サッカード中の様々なサンプル点で、視線追跡システム１２２０から眼の向き／追跡データが収集される。例示のみを目的として、サンプル点は少なくとも時間ｔ−０、ｔ−１、ｔ−２…ｔ−２７…ｔ−ｎに生じ得る。例えば、線６２０上のサンプル点Ｓ１は、時間ｔ−１における視線追跡データ（例えば、視線方向、速度など）に関連し、サンプル点Ｓ２は、時間ｔ−２における視線追跡データに関連し、サンプル点Ｓ３は、時間ｔ−４における眼の向き／追跡データに関連し、サンプル点Ｓ５は、時間ｔ−５における視線追跡データに関連し、サンプル点Ｓ６は、時間ｔ−６における視線追跡データに関連し、サンプル点Ｓ７は、時間ｔ−７における視線追跡データに関連し、サンプル点Ｓ８は、時間ｔ−８における視線追跡データに関連するなど。例として、各サンプル点で収集されたデータは、前述のように、視線方向、時間、及び他の情報を含み得る。データに基づいて、ユーザの眼（複数可）に対する速度情報が判定され得る。一部の実施形態では、速度データは、視線追跡システム１２２０から直接収集され得る。
【００８５】
このように、速度線６２０によって示されるサッカード中、少なくともサンプル点Ｓ１からおおよそＳ２７までに対して視線追跡データが収集かつ／または判定される。サンプル点Ｓ１からＳ８は、グラフ６００Ｂで強調されて、図５Ｂで先に示したようにサッカードに対する着地点の予測の収束を示し（例えばサッカード５１０の終わり）、それは、サンプル点Ｓ８に対応するおおよそ時間ｔ−８での収束を示す。
【００８６】
図６Ｃは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザの眼（複数可）２６０に関連するサッカードの着地点を予測するために使用される１つまたは複数のサンプル点のセットに対する眼の向き／追跡データの収集を示す。図６Ｃは、ユーザの眼（複数可）のサッカードの着地点を予測するための、図６Ｂのグラフ６００Ｂで紹介したサンプル点での情報の使用を示す。
【００８７】
示されるように、眼の向き／追跡データは、複数のサンプル点６５０（例えば時間ｔ−１からｔ−２７のそれぞれにおけるＳ１からＳ２７）において眼２６０上で視線追跡システム１２２０によって収集される。純粋に例示のみを目的として、サッカードは、凝視点Ａと凝視点Ｂの間を０から３０度の間で移動するように示される。
【００８８】
特に、速度データは、サンプル点６５０のそれぞれに対する眼の向き／追跡データから収集かつ／または判定される。サンプル点を強調する丸６４０が拡大して示され、少なくともサンプル点Ｓ１からＳ８を含む。例えば、速度データＶ１は、サンプル点Ｓ１と関連し、速度データＶ２は、サンプル点Ｓ２と関連し、速度データＶ３は、サンプル点Ｓ３と関連し、速度データＶ４は、サンプル点Ｓ４と関連し、速度データＶ５は、サンプル点Ｓ５と関連し、速度データＶ６は、サンプル点Ｓ６と関連し、速度データＶ７は、サンプル点Ｓ７と関連し、少なくとも速度データＶ８は、サンプル点Ｓ８と関連する。追加データが残りのサンプル点に対して収集かつ／または判定されるが、丸６４０には示されていない。
【００８９】
予測の目的で、ユーザの眼（複数可）がサッカードにあると識別されると、サンプル点のセットからの情報が収集される。例示の目的のために、サッカード識別は、サンプル点Ｓ５と関連する時間ｔ−５で発生することもあり、それはまた未来のフレームＦ８のレンダリングの開始と一致する。一実施形態では、サッカード識別は、眼（複数可）の速度が閾値速度に達するかつ／またはそれを超えると確認される。
【００９０】
サッカード識別後、事前定義された着地点の予測が実行される。具体的には、サンプル点のセットからの情報が識別される。少なくとも、情報には、測定されるかつ／または計算される角速度が含まれる。セットには、現在のサンプル点を含む、事前定義された数のサンプル点が含まれ得る。例えば、セットには、１から１０のサンプル点が含まれ得る。一実施形態では、セットには、エラーを低減するために３から５のサンプル点が含まれ得る。
【００９１】
例示の目的で、セットには、図６Ｃに記載されているように、現在のサンプル点を含む４つのサンプル点が含まれ得る。サンプル点のセットから情報を収集するスライディングウィンドウが示される。例えば、現在のサンプル点Ｓ５に対応するフレーム期間または時間において、ウィンドウ（ｗ１）は、サンプル点Ｓ２からＳ５を含み、これらのサンプル点からのそれぞれの情報（例えば速度）を用いて着地点を予測する。次の現在のサンプル点Ｓ６に対応する次のフレーム期間または時間において、ウィンドウ（ｗ２）は、サンプル点Ｓ３からＳ６を含み、それぞれの情報を用いて更新着地点を予測する。また、次の現在のサンプル点Ｓ７に対応する次のフレーム期間または時間において、ウィンドウ（ｗ３）は、サンプル点Ｓ４からＳ７を含み、それぞれの情報を用いて更新着地点を予測する。収束は、次の現在のサンプル点Ｓ８に対応する次のフレーム期間または時間に発生可能で、ウィンドウ（ｗ４）はサンプル点Ｓ５からＳ８を含む。
【００９２】
収束は、図５Ｂに関連して以前に説明している。収束の確認は、ウィンドウｗ５...ｗ２７に対してなど着地点の後続の予測をもって発生し得る。一実施形態では、収束が確認されると、予測は停止され得る。
【００９３】
図６Ｄは、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点（例えば、サッカードの終わり）を予測するために使用されるサンプル点のセットに対する眼の向きのデータを一覧表示している表６００Ｄを示す。図６Ｄは、凝視点Ｂにおける予測された着地点の予測及び収束を示す図５Ｂと連携している。
【００９４】
具体的には、列６６１はウィンドウ指定を示し（例えばｗ１からｗ５）、列６６２はサンプル点のセットを示し、列６６３はサッカードの終わりと一致する予測された着地点を示し、ここで角変位は、凝視点Ａにおけるサッカードの開始を基準としており、列６６４は、予測サッカード終了時間（例えば、フレームまたはフレーム期間単位で）を示し、ここで予測終了時間は、凝視点Ａにおけるサッカードの開始時間を基準としている。
【００９５】
例えば、ウィンドウｗ１は、サンプル点Ｓ２からＳ５を含むサンプル点のセットからの情報（例えば、速度）を使用して着地点（サッカードの終了）を予測する。予測された着地点に対するユーザの眼（複数可）の予測視線方向は、４２度の角度を持つベクトルＸＦ−５である。予測された着地点は、図５Ｂの凝視領域５４１を中心として示される。さらに、サッカードの予測終了時間または持続時間は、フレーム及び／またはフレーム期間Ｆ３８に関連するおおよそ時間ｔ−３８であると予測される。
【００９６】
また、ウィンドウｗ２は、サンプル点Ｓ３からＳ６を含むサンプル点のセットからの情報（例えば速度）を使用して更新着地点（サッカードの終わり）を予測する。予測された着地点に対するユーザの眼（複数可）の予測視線方向は、１８度の角度を持つベクトルＸＦ−６である。予測された着地点は、図５Ｂの凝視領域５４２を中心として示される。さらに、サッカードの予測終了時間または持続時間は、フレーム及び／またはフレーム期間Ｆ２０に関連するおおよそ時間ｔ−２０であると予測される。
【００９７】
ウィンドウｗ３は、サンプル点Ｓ４からＳ７を含むサンプル点のセットからの情報（例えば、速度）を使用して更新着地点（サッカードの終わり）を予測する。予測された着地点に対するユーザの眼（複数可）の予測視線方向は、２８度の角度を持つベクトルＸＦ−７であり、これは、３０度の角度における凝視点Ｂに近接する。予測された着地点は、図５Ｂの凝視領域５４３を中心として示され、これは、凝視点Ｂに近接する。さらに、サッカードの予測終了時間または持続時間は、フレーム及び／またはフレーム期間Ｆ２５に関連するおおよそ時間ｔ−２５であると予測される。
【００９８】
ウィンドウｗ４及びｗ５は、予測された着地点（例えばサッカードの終わり）の収束を示す。すなわち、これらのウィンドウに関連付けられた予測は、３０度（例えば、凝視点Ａから）の着地点を示す。例えば、ウィンドウ（ｗ４）は、サンプル点Ｓ５からＳ８を用いて着地点を予測する。ユーザの眼（複数可）の予測視線方向及び予測された着地点は、３０度の角度を持つベクトルＸＦ−８であり、これは凝視点Ｂに対する角度でもある。サッカードの予測終了時間または持続時間は、フレーム及び／またはフレーム期間Ｆ２７に関連するおおよそ時間ｔ−２７であると予測される。また、ウィンドウ（ｗ５）は、サンプル点Ｓ６からＳ９を用いて、凝視点Ｂにおける３０度と同一の着地点を予測する。サッカードの予測終了時間または持続時間は、フレーム及び／またはフレーム期間Ｆ２７に関連する時間ｔ−２７であり同一である。このように、収束は、ウィンドウ（ｗ４）で発生し、収束の確認は、ウィンドウ（ｗ５）で発生する。後続の予測では、収束した着地点が示されるであろう。
【００９９】
ゲーム機、ＨＭＤ、及びクラウドゲーミングサーバの様々なモジュールの詳細な説明とともに、本開示の一実施形態による、着地点がサッカード中の任意の点またはサッカードの終わりで生じ得る、サッカードを経験しているユーザの眼（複数可）の視線方向に関連付けられた、ディスプレイ（例えばＨＭＤの）上の着地点を予測する方法が、ここで、図７の流れ図７００に関連して説明される。前述のように、流れ図７００は、ＨＭＤ、ゲーム機、及びクラウドゲーミングサーバの１つまたは複数で着地点を予測するために含まれる動作のプロセス及びデータフローを示す。特に、流れ図３００の方法は、少なくとも部分的に図１Ａ〜１Ｃ、２及び４Ａ〜４Ｃのサッカード予測エンジン４００によって実行され得る。
【０１００】
７１０で、方法は、複数のサンプル点で、ＨＭＤに配置されている視線追跡システムを用いて、ユーザの少なくとも片方の眼球の運動を追跡することを含む。例えば、少なくとも視線方向を含むように、眼の向き／追跡データが収集され得る。例えば、本開示の一実施形態にしたがって、視線方向は、様々な時間ｔ０からｔ５において図６Ｅに示され得る。図６Ｅでは、時間ｔ０において、視線方向は、ベクトルＸｔ０によって定義され、時間ｔ１において、視線方向は、ベクトルＸｔ１によって定義され、時間ｔ２において、視線方向は、ベクトルＸｔ２によって定義され、時間ｔ３において、視線方向は、ベクトルＸｔ３によって定義され、時間ｔ４において、視線方向は、ベクトルＸｔ４によって定義され、時間ｔ５において、視線方向は、ベクトルＸｔ５によって定義される。
【０１０１】
７２０で、方法は、追跡に基づいて運動の速度を判定することを含む。図６Ｅに示すような視線方向ベクトルは、ユーザの眼（複数可）の速度を判定するのに使用され得る。すなわち、眼（複数可）の速度は、２つのサンプル点からの第１の眼または視線方向及び第２の眼または視線方向に基づいて判定され得る。特に、２つのサンプル点の間の視線方向、２つの視線方向の間の角度、及び２つのサンプルの点の間の時間を用いて、２つのサンプル点の間の速度を判定し得る。例えば、２つのサンプル点の間の角度（θ）は、次の式で定義される三角関数を含む多数の手法のうちの１つを使用して判定され得る。例示として、角度（θ）は、一実施形態において、以下の式（１）を使用して、時間ｔｎ及び時間ｔｎ−１で取られた２つのサンプル点の間で判定される。図６Ｅを参照すると、角度θ２は、ベクトルＸｔ１及びＸｔ２から判定でき、角度θ３は、ベクトルＸｔ２及びＸｔ３から判定でき、θ４は、ベクトルＸｔ３及びＸｔ４から判定でき、角度θ５は、ベクトルＸｔ４及びＸｔ５から判定され得る。
【数１】
2021524061.tif 000003
【０１０２】
式１は、時間ｔｎ及び時間ｔｎ−１で取られた２つのサンプル点の視線方向の間の角度を与える。２つのサンプル点の間で発生する速度を計算するには、以下の式（２）に示すように、角度を２つのサンプル点の間の持続時間であるΔｔで除算する。
速度（1秒あたりの度）=θ/（ｔｎ−ｔｎ−１）          （2）
【０１０３】
このように、速度（ｖ２）は、ベクトルＸｔ１及びＸｔ２を用いて、時間ｔ１及びｔ２で取られたサンプル点の間で判定することができ、速度（ｖ３）は、ベクトルＸｔ２及びＸｔ３を用いて、時間ｔ２及びｔ３で取られたサンプル点の間で判定することができ、速度（ｖ４）は、ベクトルＸｔ３及びＸｔ４を用いて、時間ｔ３及びｔ４で取られたサンプル点の間で判定することができ、速度（ｖ５）は、ベクトルＸｔ４及びＸｔ５を用いて、時間ｔ４及びｔ５で取られたサンプル点の間で判定することができる。
【０１０４】
７３０で、方法は、一実施形態において、速度が閾値速度に達したとき、ユーザの眼がサッカードにあると判定することを含む。他の実施形態では、ユーザの眼（複数可）がサッカードにあると判定するのに他の方法を使用することができる。前に説明したように、閾値速度は、眼（複数可）が別のタイプの運動（例えば、円滑追跡）を体験している可能性があるときまたはデータにノイズが多いとき、サッカードを識別しないように事前定義されている。
【０１０５】
７４０で、方法は、サッカードにおける眼の方向に対応する、ＨＭＤのディスプレイ上の着地点を予測することを含む。一実施形態では、方向は、眼の視線方向に対応する。視線方向はＨＭＤの画面に対して定義され得るので、視線方向は、画面上の位置に変換され得る。位置とは、着地点である。着地点は、フレームに対して高解像度でレンダリングされる中心窩領域の中心として使用され得る。一実施形態では、着地点は、サッカード中の任意の点で発生することもあり、眼の中間方向に対応するサッカードの中間点を含む。例えば、一実施形態では、着地点は、現在のフレーム期間を過ぎて事前定義されたフレーム期間の数だけ発生し得る。別の実施形態では、着地点は、サッカードの終わりに発生することもあり、眼の凝視方向に対応する。
【０１０６】
着地点の予測は、サンプル点のセットに対する眼球運動を追跡するときの眼の向き／追跡データを収集することを含み得る。すなわち、サンプル点のセットからの情報を用いて、着地点を予測する。眼の向き／追跡データは、ＨＭＤに関する少なくとも眼及び／または視線の方向を含み、セットのうちの少なくとも１つのサンプル点は、サッカード中に発生する。速度情報は、前に説明したように、眼の向き／追跡データから判定でき、速度データも、着地点を予測するために使用され得る。さらに、サンプル点のセットに対する眼の向き／追跡データは、リカレントニューラルネットワーク（例えば深層学習エンジン）に入力として提供される。ニューラルネットワークは、例えば、被験者の複数のサッカードの以前に測定された眼の向きのデータに関してトレーニングされる。一実施形態では、リカレントニューラルネットワークは、長短期記憶ニューラルネットワーク、及び全結合された多層パーセプトロンネットワークを含む。リカレントニューラルネットワークは、サンプル点のセットに対する眼の向きのデータから構築された眼の速度グラフの一部を、被験者の複数のサッカードから構築された眼の速度グラフと比較するように構成され得る。ユーザのサッカードの眼の速度グラフの一部との一致は、リカレントニューラルネットワークにおけるトレーニングされたサッカードを用いてなされ得る。一致がなされると、ユーザのサッカードの１つまたは複数の予測された着地点は、トレーニングされたサッカードの１つまたは複数の着地点に近似し得る。このようにして、サッカードの着地点（例えば、サッカードの終わり、またはサッカード中の中間点）は、リカレントニューラルネットワークを使用して、サンプル点のセットからの情報を用いて予測され得る。
【０１０７】
さらに、着地点の予測は、異なるサンプル点のセットのデータを用いる後続の予測をもって更新され得る。例えば、第１の現在のサンプル点に関連して、第１の着地点が７４１で予測される。第１の着地点の予測は、第１のサンプル点及び少なくとも１つの前のサンプル点を含む第１のサンプル点のセットの眼の向きのデータに基づく。眼の向きのデータには、ＨＭＤに関する眼及び／または視線方向が含まれる。７４２で、サッカードにおける第１のサンプル点に続く第２の現在のサンプル点に関連して、更新された予測が行われる。着地点の更新は、第２のサンプル点及び少なくとも１つの前のサンプル点（例えば、第１のサンプル点）を含む第２のサンプル点のセットの眼の向きのデータに基づいて、第２の着地点を予測することを含む。
【０１０８】
決定ステップ７４３で、方法は、予測された着地点の収束があるかどうかを判定する。例えば、２つの予測された着地点が閾値測定値内にある（例えば、２つの予測された着地点の間のディスプレイ上のデルタ距離）とき、収束は発生し得る。一実施形態では、２つの予測された着地点が同一であるとき収束は発生する。
【０１０９】
収束がない場合、方法は７４４に進み、別の予測が行われる。具体的には、前のサンプル点に続く次のサンプル点において、次の着地点が、次のサンプル点及び少なくとも１つの前のサンプル点からの眼の向き／追跡データに基づいて予測される。方法は、決定ステップ７４３に戻って、収束があるかどうかを判定する。
【０１１０】
一方、収束がある場合、方法は７４５に進み、最後の予測された着地点が、サッカード予測の着地点として選択される。すなわち、収束により、最後に計算された着地点が予測された着地点として使用される。
【０１１１】
一実施形態では、中心窩レンダリングが、予測された着地点に基づいて行われ得る。例えば、第１のビデオフレームが、表示するためにレンダリングでき、第１のビデオフレームは、ディスプレイ上の予測された着地点を中心とする中心窩領域を含む。中心窩領域は、高解像度でレンダリングされ得る。さらに、ディスプレイの中心窩ではない領域は、ディスプレイの残りの部分を含み、より低い解像度でレンダリングされる。さらに、中心窩領域を有する第１のビデオフレームは、ＨＭＤのディスプレイ上に提示され、眼は、第１のビデオフレームを表示するとき、着地点（すなわち、中心窩領域に対応する）に向けられると予測される。
【０１１２】
別の実施形態では、ＨＭＤ上に表示するためにフレームをレンダリングするときの電力消費を削減するために、追加の手段を取り得る。特に、サッカード中、眼球運動が速すぎる場合があるので、ユーザは、レンダリングされ表示される中間フレーム見ることができない場合がある。このように、中間ビデオフレームのうちの少なくとも１つのレンダリングは、レンダリングに使用されるコンピューティングリソースを節約するために、終了され得る。すなわち、方法は、第１のビデオフレームの前にレンダリングされる、サッカード中の少なくとも１つのビデオフレームのレンダリングを終了することを含む。
【０１１３】
さらに別の実施形態では、ＨＭＤ上に表示するためにフレームをレンダリングするときの電力消費を削減するために別の手段をとり得る。特に、ユーザは、サッカード中レンダリングされ表示される中間フレームを見ることができない場合があるので、ビデオフレーム全体は、より低い解像度でまたは低解像度でレンダリングされ得る。すなわち、そのフレームに対して中心窩領域はレンダリングされない。言い換えれば、方法は、第１のビデオフレームの前にレンダリングされる、サッカード中の少なくとも１つのビデオフレームを低解像度でレンダリングすることを含む。
【０１１４】
ＧＰＵがアクセス可能なバッファに対する予測された着地点の最新の更新
図８は、本開示の一実施形態による、ＨＭＤのディスプレイを見ているユーザに関連するサッカードの着地点を予測すること、及び対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするのに即時使用するために、着地点を、コンピュータシステムのＧＰＵがアクセス可能なバッファへ最新の更新として提供することを含む、中心窩レンダリングを行うように構成されているレンダリングパイプライン８００を実装するコンピュータシステムを示す。
【０１１５】
レンダリングパイプライン８００は、３Ｄ（３次元）ポリゴンレンダリングプロセスを用いて画像をレンダリングするための一般的なプロセスを例示するが、着地点の予測及び、対応するビデオフレームの中心窩領域を即時レンダリングするための着地点の最新の更新といった、中心窩レンダリングを実行するためパイプライン内で追加のプログラム可能な要素を実行するように修正されている。レンダリングパイプライン８００は、レンダリング画像のディスプレイにおける画素のそれぞれの対応する色情報を出力し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。レンダリングパイプライン８００は、少なくとも、図１Ａ〜図１Ｃのコンピュータシステム１０６、図２及び図１３のシステム１２００、ＨＭＤ１０２、ならびに図１４のクライアントデバイス１４１０内で実装可能である。
【０１１６】
レンダリングパイプライン８００は、アプリケーションを実行するように構成されたＣＰＵ１２０２、及び中心窩レンダリングのための１つまたは複数のプログラム可能なシェーダ動作を実行するように構成されたＧＰＵを含む。中心窩レンダリングは、頂点データの処理、頂点をプリミティブ（例えば、ポリゴン）にアセンブルする、ラスタライズを実行してディスプレイに対するプリミティブからフラグメントを作成し、各フラグメントの色と深度の値を計算し、画素ごとにフラグメントをブレンドして、表示用のフレームバッファに格納することを含む。
【０１１７】
示されるように、アプリケーションは、３Ｄ仮想環境内の頂点などのジオメトリプリミティブ８０５、及び各頂点に対応する情報を生成するように構成されている。例えば、ＣＰＵ１２０２上で実行されるアプリケーションは、３Ｄ仮想環境のシーンに変更を加え、その変更は、物理的特性、アニメーション、モーフィング、加速技術などのアプリケーションを表す。シーンの変更（例えば、オブジェクトの動き）は、オブジェクトにもたらされたかつ／または加えられた力（例えば、重力などの外力、及び動きを誘発する内力）に応じて、フレーム間で計算される。シーン内のオブジェクトは、ジオメトリプリミティブによって定義されたポリゴン（三角形など）を使用して表すことができる。次に、対応するポリゴンの表面は、レンダリングパイプライン８００のＧＰＵ１２１６を介して処理されて、最終的な効果（例えば、色、テクスチャなど）を達成する。頂点属性には、法線（例えば、頂点に対してどの方向が光であるか）、色（例えば、ＲＧＢ−赤、緑、青のトリプルなど）、及びテクスチャ座標／マッピング情報が含まれ得る。頂点は、システムメモリ８２０に格納され、次に、ＧＰＵのメモリ８４０によってアクセスされるかつ／またはそこに転送される。
【０１１８】
さらに、ＣＰＵ１２０２は、サッカード予測を実行するように構成されている。特に、ＣＰＵ１２０２は、ディスプレイを見ているユーザに関連するサッカードのディスプレイ（例えば、ＨＭＤ）上の着地点を予測するように構成されている予測エンジン４００を含む。すなわち、予測エンジン４００は、サッカード中の任意の点における眼（複数可）の予測方向に対応する、ディスプレイ上の着地点を予測するために、識別されたサッカード中のユーザの眼（複数可）の動きを予測する。眼の予測方向に対応する予測時間も生成される。前述のように、視線追跡システム１２２０は、予測段階中に使用するために、眼の向きの情報を予測エンジン４００に提供する。例えば、視線追跡システム１２２０は、別々の時間の点におけるユーザの瞳孔（複数可）及び／または眼（複数可）の視線の方向及び／または向きを判定するように構成されている。視線方向は、ディスプレイに関してのものであり得る。特に、視線追跡システム１２２０からの情報は、１つまたは複数のサンプル点８０１において収集され、予測エンジン４００に提供される。
【０１１９】
ＣＰＵ１２０２は、図９〜図１１に関連して以下で説明するように、視線追跡情報及び／またはサッカード中の眼球運動の着地点予測の最新の更新を実行するように構成されている最新の更新モジュール８３０を含む。例えば、予測された着地点及び／または他の視線追跡情報８０２は、即時処理するためにＧＰＵがアクセス可能であるバッファ（例えば、ＧＰＵメモリ８４０）へ最新の更新として提供され得る。そのようにして、予測情報及び／または視線追跡情報８０２は、表示するためにビデオフレームをレンダリングするときにＧＰＵによって処理するために次のフレーム期間を待つのではなく、同じフレーム期間内でまたはほぼ即座に使用され得る。
【０１２０】
ＧＰＵ１２１６は、３Ｄ仮想環境の画像及び／またはビデオフレームをレンダリングするための、出力マージャ及びフレームバッファを含むラスタライザ、フラグメントシェーダ、及びレンダラなどの１つまたは複数のシェーダ動作を含むが、すべてが図８に示されていない場合がある。
【０１２１】
特に、頂点シェーダ８５０は、３Ｄシーン内のオブジェクトを構成するプリミティブをさらに構築し得る。例えば、頂点シェーダ４１０は、シーンのライティングに依存する、ポリゴンのライティング及びシャドウィング計算を実行するように構成され得る。クリッピング（例えば、ゲーム世界の視聴場所によって定義されるビュー錐台の外側にあるプリミティブを識別して無視する）などの追加の動作も頂点プロセッサ４１０によって実行され得る。
【０１２２】
頂点プロセッサ４１０によって出力されたプリミティブは、３Ｄ仮想環境内の視点に応じて、シーンのオブジェクトをディスプレイに投影するように構成されているラスタライザ（図示せず）に供給される。単純なレベルでは、ラスタライザは、各プリミティブを調べ、どの画素が対応するプリミティブの影響を受けるかを判定する。特に、ラスタライザは、プリミティブを画素サイズのフラグメントに分割し、各フラグメントは、ディスプレイ内の画素及び／またはレンダリングの視点（例えばカメラの視野）に関連付けられた参照面に対応する。
【０１２３】
ラスタライザからの出力は、中心窩フラグメントプロセッサ４３０へ入力として提供され、中心窩フラグメントプロセッサ４３０は、そのコアにおいて、フラグメントに対してシェーディング動作を実行して、プリミティブの色及び明るさが利用可能なライティングによってどのように変化するかを判定する。例えば、フラグメントプロセッサ４３０は、各フラグメントの表示位置からの距離のＺ深度、色、透明度のアルファ値、法線及びテクスチャ座標（例えば、テクスチャ詳細）を判定可能であり、フラグメントの利用可能なライティング、暗さ、及び色に基づいて適切な光レベルをさらに判定し得る。さらに、フラグメントプロセッサ４３０は、各フラグメントにシャドウィング効果を適用し得る。
【０１２４】
本発明の実施形態では、パーティクルシステムのフラグメントは、フラグメントが中心窩領域の内側にあるか外側にあるか（例えば、中心窩領域の内側の画素に寄与するか外側の画素に寄与するか）に応じて異なってレンダリングされる。一実施形態では、中心窩フラグメントシェーダ８６０は、どの画素が高解像度の中心窩領域に位置するかを判定するように構成されている。例えば、最新の更新動作でＧＰＵメモリ８４０に提供される予測された着地点及び／または視線追跡情報は、中心窩フラグメントシェーダ８６０によって使用されて、中心窩領域の画素、及びそれに応じてそれらの画素に対応するフラグメントを判定し得る。このように、中心窩フラグメントシェーダ４３０は、フラグメントが中心窩領域内にあるか周辺領域内にあるかに基づいて、上記のようにシェーディング動作を実行する。表示画像の中心窩領域内に位置するフラグメントは、中心窩領域内のフラグメントの詳細なテクスチャ及び色の値を実現するために、処理効率に関係なく、高解像度でシェーディング動作を用いて処理される。他方、中心窩フラグメントプロセッサ４３０は、十分なコントラストを提供するなど、最小限の動作で十分な詳細をもってフラグメントを処理するために、処理効率に関心を持って、周辺領域内に位置するフラグメントに対してシェーディング動作を実行する。フラグメントプロセッサ４３０の出力は、処理されたフラグメント（例えば、シャドウィングを含むテクスチャ及びシェーディング情報）を含み、レンダリングパイプライン８００の次のステージに送られる。
【０１２５】
出力マージコンポーネント８７０は、対応する各画素に寄与するかつ／または影響を与えるフラグメントに応じて、各画素の特性を計算する。すなわち、３Ｄゲーム世界の全てのプリミティブのフラグメントが、ディスプレイ用の２Ｄカラー画素へと結合される。例えば、対応する画素のテクスチャ及びシェーディング情報に寄与するフラグメントは結合されて、レンダリングパイプライン８００の次のステージに送られる画素の最終的な色値を出力する。出力マージコンポーネント８７０は、中心窩フラグメントシェーダ８６０から判定されたフラグメント及び／または画素間の値の任意選択的なブレンディングを実行し得る。表示位置に対するクリッピング（ビュー錐台の外側にあるフラグメントを識別して無視する）及びカリング（より近いオブジェクトによって遮られたフラグメントを無視する）などの追加の動作も、出力マージコンポーネント８７０によって実行され得る。
【０１２６】
ディスプレイ１２１０における各画素の画素データ（例えば、色値）は、フレームバッファ８８０に格納される。これらの値は、シーンの対応する画像を表示するときに、対応する画素にスキャンされる。特に、ディスプレイは、画素ごと、行ごと、左から右にあるいは右から左に、上から下にあるいは下から上に、または任意の他のパターンで、フレームバッファから色値を読み取り、画像を表示するときにそれらの画素値を使用して画素を照らす。
【０１２７】
図９Ａは、本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプライン９００Ａを示し、レンダリングパイプラインは、視線追跡情報の最新の更新を実装しておらず、サッカード予測を提供していない。図９Ａは、図５Ａのレンダリングパイプライン５０１に類似し、いずれも、本開示の一実施形態による、サッカード中かつサッカードの完了後に表示画像がユーザに対してぼやけることにつながる、眼球運動に比べてフレーム更新の遅れがどのようなものかを示す。
【０１２８】
特に、レンダリングパイプライン９００Ａは、画像をレンダリングするための一般的なプロセス（例えば、３Ｄポリゴンレンダリングプロセス）を例示し、現在の視線追跡情報に基づいて中心窩レンダリングを実行するように構成されている。レンダリングパイプライン９００Ａは、ＣＰＵ１２０２及びＧＰＵ１２１６を含み、両方にアクセス可能であり得るメモリ（例えば、頂点、インデックス、深度、及びフレームバッファ）を備える。レンダリングパイプライン９００Ａは、ディスプレイ（例えばＨＭＤ）における画素のそれぞれの対応する画素データ（例えば色情報）を出力することを含む、レンダリングパイプライン８００と類似する機能を実行し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。
【０１２９】
レンダリングパイプラインは特定の周波数で動作し、周波数に対応する各サイクルはフレーム期間として定義され得る。例えば、動作周波数が１２０Ｈｚの場合、フレーム期間は８．３ｍｓである。このように、レンダリングパイプラインにおいて、パイプラインシーケンスには、ビデオフレームがフレームバッファからディスプレイにスキャンアウトされる前に、ＣＰＵ及びＧＰＵによって連続フレーム期間に実行される順次動作が含まれる。図９Ａは、２つのパイプラインシーケンス９０１及び９０２を示す。例示のために、２つのパイプラインシーケンスのみが示される。
【０１３０】
レンダリングパイプラインは、視線追跡システム１２２０などから視線追跡情報を受信する。示されるように、視線追跡システム１２２０は、各レンダリングシーケンス９０１及び９０２のフレーム期間の開始時にＣＰＵに提示される。一実施形態では、視線追跡システム１２２０は、レンダリングパイプライン９００Ａによって使用される周波数と同じ周波数で動作する。このように、ユーザの眼（複数可）の視線方向は、フレーム期間ごとに更新され得る。他の実施形態では、視線追跡システム１２２０は、レンダリングパイプライン９００Ａによって使用される周波数とは異なる周波数を用いて動作する。
【０１３１】
視線追跡情報は、高解像度でレンダリングされる中心窩領域を判定するために用いられ得る。例えば、パイプラインシーケンス９０１において、視線追跡情報は、フレーム期間１においてＣＰＵ１２０２に提示される。視線追跡情報は、ディスプレイに関する眼の視線方向に対応するベクトルＸ１を含み得る。視線追跡情報は、前のフレーム期間に収集されたものであり得る。また、フレーム期間１において、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。このように、第２のフレーム期間において、ＧＰＵ１２１６は、一般に、前述のように、プリミティブアセンブリを実行してレンダリングフレームを生成する。さらに、ＧＰＵ１２１６は、視線追跡情報に基づいて中心窩レンダリングを提供可能である。すなわち、ＧＰＵは、フレーム期間１で送られた視線方向に対応する中心窩領域を有するビデオフレームをレンダリングし得る。非中心窩領域は低解像度でレンダリングされる。フレーム期間３において、ビデオフレーム（Ｆ３）は、ディスプレイにスキャンアウト９１０される。
【０１３２】
また、パイプラインシーケンス９０２において、視線追跡情報は、フレーム期間２においてＣＰＵ１２０２に提示される。視線追跡情報は、ディスプレイに関する眼の視線方向に対応するベクトルＸ２を含み得る。また、フレーム期間２において、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。このように、フレーム期間３において、ＧＰＵ１２１６は、一般に、前述のように、プリミティブアセンブリを実行してレンダリングフレームを生成する。さらに、ＧＰＵ１２１６は、視線追跡情報に基づいて中心窩レンダリングを提供可能である。すなわち、ＧＰＵは、フレーム期間２で送られた視線方向に対応する中心窩領域を有するビデオフレームをレンダリングし得る。非中心窩領域は低解像度でレンダリングされる。フレーム期間４において、ビデオフレーム（Ｆ４）は、ディスプレイにスキャンアウト９１０される。
【０１３３】
このように、図９Ａにおいて、サッカード予測なしかつ最新の更新なしで、対応するビデオフレームがスキャンアウトされるまでに、そのビデオフレームの中心窩領域をレンダリングするのに使用される視線追跡情報は、２〜４フレーム期間（または１６〜３２ｍｓ）古くなり得る。すなわち、眼球運動は、ビデオフレームをレンダリングする時間よりも速い場合があり、そのため、中心窩領域は、対応するビデオフレームが表示されるときの視線方向と一致しない。この問題は、動作周波数がさらに遅い場合に強調される。例えば、６０Ｈｚ（１６ｍｓのフレーム期間）で動作するレンダリングパイプラインは、２〜４フレーム期間古くなった視線追跡情報をやはり有するが、それらの期間の時間は２倍となり、中心窩領域が視線方向と一致するまで３２〜６４ｍｓの範囲となる。
【０１３４】
図９Ｂ〜図９Ｃは、本開示の実施形態において、サッカード中またはサッカードの終わりのディスプレイ（例えば、ＨＭＤ）を見ているユーザの眼の向きに対応する着地点の予測を示す。特に、図９Ｂは、本開示の一実施形態による、ＨＭＤのディスプレイ上の着地点を予測することによってレンダリングパイプラインの情報を更新する方法のステップを示す流れ図であり、着地点は、サッカード中またはその終わりのディスプレイを見ているユーザの眼の向きに対応するものであり、予測された着地点は、対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするためにＧＰＵによって用いられる。図９Ｃは、本開示の一実施形態による、アプリケーションの実行中にビデオフレームを生成するときに視線追跡情報を受信かつ使用するレンダリングパイプライン９００Ｃを示し、サッカード中またはその終わりのＨＭＤを見ているユーザの眼の予測視線方向及び／または向きに対応する、ＨＭＤ上の着地点が予測されるものであり、予測された着地点は、対応するビデオフレームにおいて着地点を中心とする高解像度の中心窩領域をレンダリングするためにＧＰＵによって用いられる。
【０１３５】
レンダリングパイプライン９００Ｃは、画像をレンダリングするための一般的なプロセスの例示であり、サッカード予測に基づいて中心窩レンダリングを実行するように構成されている。すなわち、レンダリングパイプライン９００Ｃは、最新の更新はせずにサッカード予測を提供する。レンダリングパイプライン９００Ｃは、ＣＰＵ１２０２及びＧＰＵ１２１６を含み、両方にアクセス可能であり得るメモリ（例えば、頂点、インデックス、深度、及びフレームバッファ）を備える。レンダリングパイプライン９００Ｃは、ディスプレイ（例えばＨＭＤ）における画素のそれぞれの対応する画素データ（例えば色情報）を出力することを含む、レンダリングパイプライン８００と類似する機能を実行し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。
【０１３６】
レンダリングパイプラインは、ゲーム追跡システム１２２０などから視線追跡情報を受信する。示されているように、視線追跡情報は、前述のように、各フレーム期間の開始時にＣＰＵに提示される。視線追跡情報は、サッカード中かつ／またはその終わりにユーザの眼（複数可）が向けられる、ディスプレイ（例えば、ＨＭＤ）上の着地点を予測するために使用される。着地点の予測は、少なくとも部分的に図７において以前記載された。
【０１３７】
９１５で、方法は、第１のフレーム期間（例えば、フレーム期間１）において、ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む。例えば、レンダリングパイプライン９００Ｃは、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。フレーム期間は、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ１２０２及びＧＰＵ１２１６によって連続フレーム期間で順次動作を実行するように構成されているレンダリングパイプラインの動作の周波数に対応する。一実施形態では、視線追跡システム１２２０の周波数は、レンダリングパイプライン９００Ｃの周波数と同じであるが、他の実施形態では、周波数は異なる。
【０１３８】
９２０で、方法は、サッカードを経験しているユーザの眼の視線追跡情報を第１のフレーム期間においてＣＰＵで受信することを含む。例えば、情報は、前のフレーム期間において視線追跡システム１２２０によって収集され得る。示されるように、視線追跡情報は、フレーム期間１の開始時にＣＰＵに提示され、ディスプレイに関する眼の視線方向に対応するベクトルＸ１を含み得る。
【０１３９】
９３０で、方法は、フレーム期間１においてＣＰＵで、視線追跡情報に基づいて、サッカードにおけるディスプレイを見ているユーザの眼（複数可）の方向（例えば、ベクトルＸＦ−１）に対応するディスプレイ（例えば、ＨＭＤ）上の着地点を予測することを含む。より正確にするために、図７において以前に説明したように、視線追跡情報の履歴を使用して、サッカード中またはその終わりのユーザの眼（複数可）の予測視線方向（例えば、ベクトルＸＦ−１）に対応するディスプレイ上の着地点を予測する。予測は、ユーザの視線が予測された着地点に向けられる予測時間を含み得る。
【０１４０】
９４０で、方法は、ユーザの眼（複数可）の予測視線方向（例えば、ベクトルＸＦ−１）に対応する予測された着地点を、ＧＰＵがアクセス可能なバッファに転送することを含む。このようにして、予測された着地点（ベクトルＸＦ−１に対応する）は、パイプラインシーケンス９１１で使用可能である。特に、方法は、９５０で、フレーム期間２において、第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ予測された着地点（ベクトルＸＦ−１に対応する）に基づいて、ＧＰＵ１２１６で１つまたは複数のシェーダ動作を実行してディスプレイの画素の画素データを生成することを含む。画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される。さらに、フレーム期間２において、ＧＰＵ１２１６は、サッカード中またはその終わりのユーザの眼（複数可）の予測視線方向（ベクトルＸＦ−１）に対応する予測された着地点に対応する中心窩領域を有する第１のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。
【０１４１】
９６０で、方法は、第３のフレーム期間において画素データをフレームバッファからディスプレイにスキャンアウトすることを含む。示されているように、ビデオフレーム（Ｆ３）はフレーム期間３においてスキャンアウトされる。
【０１４２】
同様に、パイプラインシーケンス９１２は、予測された着地点に基づいて中心窩レンダリングを行うように構成されている。示されるように、図９Ｃのフレーム期間２において、ＣＰＵ１２０２は、アプリケーションを実行して、第２のビデオフレームにおけるシーンのプリミティブを生成する。例えば、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。フレーム期間２に示されるように、レンダリングパイプライン９００Ｃは、視線追跡情報（ベクトルＸ２）を受信し、着地点が、少なくとも現在の視線追跡情報に基づいてサッカードにおけるディスプレイを見ているユーザの眼（複数可）の方向（例えば、ベクトルＸＦ−２）に対応するディスプレイ（例えば、ＨＭＤ）上で、ＣＰＵで予測される。すなわち、ベクトルＸＦ−２と予測された着地点の間にマッピングが存在する。より正確にするために、視線追跡情報の履歴（例えば、サッカード中に収集された）を用いて、サッカード中かつ／またはその終わりのユーザの眼（複数可）の予測視線方向に対応するディスプレイ上の着地点を予測する。フレーム期間２または３において、予測された着地点（ベクトルＸＦ−２に対応する）は、ＧＰＵがアクセス可能なバッファに転送される。このようにして、予測された着地点（ベクトルＸＦ−２に対応する）は、フレーム期間３においてパイプラインシーケンス９１２で使用可能である。特に、フレーム期間３において、ＧＰＵ１２１６は、サッカード中またはサッカードの終わりのディスプレイを見ているユーザの眼（複数可）の視線方向（例えば、ベクトルＸＦ−２）に対応する予測された着地点に対応する中心窩を有する第２のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。フレーム期間４において、第２のビデオフレーム（例えば、Ｆ４）の画素データがスキャンアウトされる。
【０１４３】
このように、図９Ｂ〜図９Ｃにおいて、サッカード予測を用いて、最新の更新なしで、正確な予測を生成するために複数のサイクルが必要な場合でも、対応するビデオフレームがスキャンアウトされるまでに、そのビデオフレームの中心窩領域をレンダリングするために使用される予測された着地点は、少なくとも眼の動きに追いつき得、場合によっては眼の動きよりも速いことがあり得る（例えば、中心窩領域が眼球運動が追いつくのを待っている）。すなわち、サッカード予測があると、ビデオフレームをレンダリングする時間が眼球運動よりも速いことがあり得、そのため、中心窩領域は、対応するビデオフレームが表示されるとき視線方向と一致可能であり、または、対応するビデオフレームの中心窩領域の準備が整い眼球運動が予測視線方向に到達するのを待つ（サッカード中かつ／またはサッカードの終わり）ように進んでいる場合がある。
【０１４４】
コンピュータシステム、ゲーム機、ＨＭＤ、及びクラウドゲームサーバの様々なモジュールの詳細な説明とともに、本開示の一実施形態による、視線追跡情報の最新の更新を、即時使用のためにＧＰＵがアクセス可能なバッファに対して実行することによって、ＣＰＵ及びＧＰＵを含むレンダリングパイプラインの情報を更新する方法をここで、図１０Ａの流れ図１０００Ａ及び図１０Ｂに例示されたレンダリングパイプライン１０００Ｂに関連して説明する。流れ図１０００Ａ及びレンダリングパイプライン１０００Ｂは、少なくとも図１Ａ〜図１Ｃのコンピュータシステム１０６、図２及び図１３のシステム１２００、ＨＭＤ１０２、ならびに図１４のクライアントデバイス１４１０によって実装され得る。
【０１４５】
レンダリングパイプライン１０００Ｂは、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ及びＧＰＵによって連続フレーム期間で順次動作を実行する。レンダリングパイプライン１０００Ｂは、画像をレンダリングするための一般的なプロセスを例示し、視線追跡情報の最新の更新に基づいて中心窩レンダリングを実行するように構成されている。すなわち、レンダリングパイプライン１０００Ｂは、視線追跡に最新の更新を与える。レンダリングパイプライン１０００Ｂは、ＣＰＵ１２０２及びＧＰＵ１２１６を含み、両方にアクセス可能であり得るメモリ（例えば、頂点、インデックス、深度、及びフレームバッファ）を備える。レンダリングパイプライン１０００Ｂは、ディスプレイ（例えばＨＭＤ）における画素のそれぞれの対応する画素データ（例えば色情報）を出力することを含むレンダリングパイプライン８００と類似する機能を実行し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。
【０１４６】
１０１０で、方法は、第１のフレーム期間において、ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む。第１のフレーム期間に示されるように、レンダリングパイプライン１０００Ｂ、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。フレーム期間は、前述のように、レンダリングパイプラインの動作の周波数に対応する。
【０１４７】
また、視線追跡情報は、前述のように、フレームごとにＣＰＵ１３０２に提供され得る。示されるように、視線追跡情報は、各フレーム期間の開始時にＣＰＵ１２０２に提示される。例えば、ベクトルＸ１を含む視線追跡情報はフレーム期間１で提供され、視線追跡情報ベクトルＸ２はフレーム期間２で提供され、視線追跡情報ベクトルＸ３はフレーム期間３で提供される、等々である。視線追跡情報は、例えば、ディスプレイ（例えば、ＨＭＤ）に関するユーザの眼（複数可）の視線方向に対応する。視線追跡情報は、ＣＰＵに送られる前に生じるフレーム期間で生成されていてもよい。さらに、視線追跡情報は、高解像度の中心窩領域を判定するために用いられる。一実施形態では、視線追跡情報を提供する視線追跡システム１２２０の周波数は、レンダリングパイプライン１０００Ｂの周波数と同じであるが、他の実施形態では、周波数は異なる。以下で説明するように、最新の更新がある場合、視線追跡情報は、即時使用のためにＧＰＵに提供され得る。
【０１４８】
１０２０で、方法は、第２のフレーム期間において、ＣＰＵで視線追跡情報を受信することを含む。図１０Ｂのフレーム期間２に示されるように、レンダリングパイプライン１０００Ｂは、視線追跡情報（ベクトルＸ２）を受信する。フレーム期間１で以前に提示された視線追跡情報（ベクトルＸ１）は、パイプラインシーケンス１００１の実行中にその情報が古くなっている場合があるため、最新の更新動作をせずに（例えば、図５Ａに示されるように）パイプラインシーケンス１００１で使用されないことに留意されたい。例示のために、視線追跡情報（ベクトルＸ１）は、示されていない前のパイプラインシーケンスで使用され得る、または、実装されずにハングされたままであり得る。
【０１４９】
他方、フレーム期間１で実行されるＣＰＵ動作を有するパイプラインシーケンス１００１は、レンダリングパイプライン１０００Ｂの最新の更新機能を利用して、最新の視線追跡情報を利用し得る。特に、１０３０において、方法は、フレーム期間２において、視線追跡情報を、ＧＰＵがアクセス可能なバッファに転送することによって、ＣＰＵによる最新の更新動作を実行することを含む。
【０１５０】
このように、１フレーム期間既に古くなっている、フレーム期間１で受信した視線追跡情報（ベクトルＸ１）を用いるのではなく、パイプラインシーケンス１００１は、フレーム期間２において、同フレーム期間２においてＣＰＵで受信したベクトルＸ２という最新の視線追跡情報を用いてＧＰＵ動作を実行可能である。特に、１０４０で、方法は、フレーム期間２において、第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ視線追跡情報（ベクトルＸ２）に基づいて、ＧＰＵで１つまたは複数のシェーダ動作を実行して、ディスプレイの画素の画素データを生成することを含む。画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される。特に、フレーム期間２において、ＧＰＵ１２１６は、ユーザの測定された最新の視線方向に対応する視線追跡情報（ベクトルＸ１）に対応する中心窩領域を有する第１のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。
【０１５１】
１０５０で、方法は、第３のフレーム期間において、画素データをフレームバッファからディスプレイにスキャンアウトすることを含む。示されているように、ビデオフレーム（Ｆ３）は、フレーム期間３でスキャンアウトされる。
【０１５２】
同様に、パイプラインシーケンス１００２は、視線追跡情報の最新の更新に基づいて中心窩レンダリングを行うように構成されている。示されるように、フレーム期間２において、ＣＰＵ１２０２は、アプリケーションを実行して、第２のビデオフレームにおけるシーンのプリミティブを生成する。例えば、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。図１０Ｂのフレーム期間３に示されるように、レンダリングパイプライン１０００Ｂは、視線追跡情報（ベクトルＸ３）を受信する。また、フレーム期間３において、視線追跡（ベクトルＸ３）情報を、ＧＰＵがアクセス可能なバッファに転送することによって、ＣＰＵにより最新の更新動作が実行される。フレーム期間３において、第２のビデオフレームにおけるシーンのプリミティブに基づいてかつ視線追跡情報（ベクトルＸ３）に基づいて、１つまたは複数のシェーダ動作がＧＰＵ１２１６で実行されて、ディスプレイの画素の画素データを生成する。画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される。特に、フレーム期間３において、ＧＰＵ１２１６は、ユーザの測定された最新の視線方向に対応する視線追跡情報（ベクトルＸ２）に対応する中心窩領域を有する第２のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。フレーム期間４において、第２のビデオフレーム（例えば、Ｆ４）の画素データがスキャンアウトされる。
【０１５３】
このように、図１０Ａ〜図１０Ｂにおいて、最新の更新を用いて、前のフレーム期間で受信した視線追跡情報に対応する中心窩領域を有する、対応するビデオフレームがスキャンアウトされる。すなわち、最新の更新があると、ビデオフレームをレンダリングする時間は、眼球運動とほぼ同じ速さである。そのようにして、中心窩領域が、サッカード中かつサッカードの終わりの視線方向と一致するのにかかる時間が短くなる。
【０１５４】
コンピュータシステム、ゲーム機、ＨＭＤ、及びクラウドゲームサーバの様々なモジュールの詳細な説明とともに、本開示の一実施形態による、サッカード中ディスプレイを見ているユーザの予測視線方向に関連付けられた、ディスプレイ（例えばＨＭＤ）上の着地点を予測することによって、ＣＰＵ及びＧＰＵを含むレンダリングパイプラインの情報を更新し、予測された着地点の最新の更新を、即時使用のためにＧＰＵがアクセス可能なバッファに対して実行する方法をここで、図１１Ａの流れ図１１００Ａ及び図１１Ｂに例示されたレンダリングパイプライン１１００Ｂに関連して説明する。流れ図１１００Ａ及びレンダリングパイプライン１１００Ｂは、少なくとも図１Ａ〜図１Ｃのコンピュータシステム１０６、図２及び１３のシステム１２００、ＨＭＤ１０２、ならびに図１４のクライアントデバイス１４１０によって実装され得る。
【０１５５】
レンダリングパイプライン１１００Ｂは、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ及びＧＰＵによって連続フレーム期間で順次操作を実行する。レンダリングパイプライン１１００Ｂは、画像をレンダリングするための一般的なプロセスを例示し、サッカード予測の最新の更新に基づいて中心窩レンダリングを実行するように構成されている。すなわち、レンダリングパイプライン１１００Ｂは、サッカード中またはサッカードの終わりのディスプレイ（例えば、ＨＭＤ）を見ているユーザの眼（複数可）の予測視線方向及び／または向きに対応する予測された着地点の最新の更新を視線追跡に提供する。予測は、ユーザの視線が予測された着地点に向けられる予測時間を含み得る。予測された着地点は、対応するビデオフレームにおける着地点を中心とする高解像度の中心窩領域をレンダリングするためにＧＰＵによって用いられる。レンダリングパイプライン１０００Ｂは、ＣＰＵ１２０２及びＧＰＵ１２１６を含み、両方にアクセス可能であり得るメモリ（例えば、頂点、インデックス、深度、及びフレームバッファ）を備える。レンダリングパイプライン１０００Ｂは、ディスプレイ（例えばＨＭＤ）における画素のそれぞれの対応する画素データ（例えば色情報）を出力することを含むレンダリングパイプライン８００と類似する機能を実行し、色情報は、テクスチャ及びシェーディング（例えば、色、シャドウィングなど）を表し得る。
【０１５６】
１１１０において、方法は、第１のフレーム期間（例えば、フレーム期間１）において、ＣＰＵでアプリケーションを実行して、第１のビデオフレームにおけるシーンのプリミティブを生成することを含む。フレーム期間１に示されるように、レンダリングパイプライン１０００Ｂ、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。フレーム期間は、対応するビデオフレームをディスプレイにスキャンアウトする前に、ＣＰＵ１２０２及びＧＰＵ１２１６によって連続フレーム期間で順次動作を実行するように構成されているレンダリングパイプラインの動作の周波数に対応する。一実施形態では、視線追跡情報を提供する視線追跡システム１２２０の周波数は、レンダリングパイプライン１１００Ｂの周波数と同じであるが、他の実施形態では、周波数は異なる。
【０１５７】
視線追跡情報は、第１のフレーム期間（例えば、フレーム期間１）においてＣＰＵで受信され得る。視線追跡情報は、前のフレーム期間において視線追跡システム１２２０によって生成されたものであり得る。示されるように、視線追跡情報は、フレーム期間１の開始時にＣＰＵに提示される。例えば、視線追跡情報は、ディスプレイに関する眼の視線方向に対応するベクトルＸ１を含み得る。さらに、フレーム期間１において、ＣＰＵは、少なくとも現在の視線追跡情報に基づいて、サッカードにおけるディスプレイを見ているユーザの眼（複数可）の方向（ベクトルＸＦ−１）に対応するディスプレイ（例えばＨＭＤ）上の着地点を予測する。最新の更新があるので、以下に説明するように、より最新の視線追跡情報が使用され得るため、予測された着地点（ベクトルＸＦ−１に対応する）はパイプライン１１０１で使用されない。
【０１５８】
１１２０において、方法は、サッカードを経験しているユーザの眼の視線追跡情報を第２のフレーム期間においてＣＰＵで受信することを含む。視線追跡情報は、前のフレーム期間において視線追跡システム１２２０によって生成されたものであり得る。示されるように、視線追跡情報は、フレーム期間２の開始時にＣＰＵに提示される。例えば、視線追跡情報は、ディスプレイに関する眼の視線方向に対応するベクトルＸ２を含み得る。
【０１５９】
１１３０で、方法は、フレーム期間２において、ＣＰＵで、少なくとも現在の視線追跡情報（Ｘ２）に基づいて、サッカードにおけるディスプレイを見ているユーザの眼（複数可）の方向（ベクトルＸＦ−２）に対応するディスプレイ（例えばＨＭＤ）上の着地点を予測することを含む。より正確にするために、少なくとも部分的に図７において以前に説明したように、視線追跡情報の履歴（例えばサッカード中に収集された）を用いて、サッカード中かつ／またはその終わりのユーザの眼（複数可）の予測視線方向に対応する、ディスプレイ上の着地点を予測する。予測された着地点は、サッカード中かつ／またはその終わりのユーザの眼（複数可）の予測視線方向（ベクトルＸＦ−２）に対応し得る。
【０１６０】
１１４０で、最新の更新動作がＣＰＵ１２０２によって実行されて、予測された着地点（ベクトルＸＦ−２に対応する）を、ＧＰＵがアクセス可能であるバッファに転送する。転送はフレーム期間２において達成され、ＧＰＵによる即時使用が可能となる。すなわち、転送は、ＧＰＵ１２１６がパイプライン１１０１のフレーム期間２でその動作を開始する前に起きる。このようにして、予測された着地点は、パイプラインシーケンス１１０１の開始時に収集された視線追跡情報（例えば、Ｘ１）ではなく、より最新の視線追跡情報（例えばパイプラインシーケンス１１０１の途中で収集されたＸ２）を用いて生成される。
【０１６１】
このように、予測された着地点（ベクトルＸＦ−２に対応する）は、パイプラインシーケンス１１０１において即時使用するのに利用可能である。特に、１１５０で、方法は、フレーム期間２において、第１のビデオフレームにおけるシーンのプリミティブに基づいてかつ予測された着地点（ベクトルＸＦ−２に対応する）に基づいて、ＧＰＵ１２１６で１つまたは複数のシェーダ動作を実行して、ディスプレイの画素の画素データを生成することを含む。画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される。特に、フレーム期間２において、ＧＰＵ１２１６は、サッカード中またはその終わりのユーザの眼（複数可）の予測視線方向（ベクトルＸＦ−２）に対応する予測された着地点に対応する中心窩領域を有する第１のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。
【０１６２】
１１６０で、方法は、第３のフレーム期間において、画素データをフレームバッファからディスプレイにスキャンアウトすることを含む。示されているように、ビデオフレーム（Ｆ３）はフレーム期間３においてスキャンアウトされる。
【０１６３】
同様に、パイプラインシーケンス１１０２は、予測された着地点の最新の更新に基づいて中心窩レンダリングを行うように構成されている。示されるように、図１１Ｂのフレーム期間２において、ＣＰＵ１２０２は、アプリケーションを実行して、第２のビデオフレームにおけるシーンのプリミティブを生成する。例えば、ＣＰＵ１２０２は、オブジェクトに対して物理シミュレーションを実行し、ポリゴンプリミティブを描画命令と共にＧＰＵ１２１６に送り得る。フレーム期間２に示されるように、レンダリングパイプライン１１００Ｂは、視線追跡情報（ベクトルＸ２）を受信する。
【０１６４】
フレーム期間３において、着地点が、ＣＰＵで、少なくとも現在の視線追跡情報に基づいて、サッカードにおけるディスプレイを見ているユーザの眼（複数可）の方向（例えばベクトルＸＦ−３）に対応するディスプレイ（例えばＨＭＤ）上で予測される。すなわち、ベクトルＸＦ−３と予測された着地点の間にマッピングが存在する。より正確にするために、視線追跡情報の履歴（例えば、サッカード中に収集された）を用いて、サッカード中かつ／またはその終わりのユーザの眼（複数可）の予測視線方向に対応する、ディスプレイ上の着地点を予測する。
【０１６５】
また、フレーム期間３において、ベクトルＸＦ−３に対応する予測された着地点を、ＧＰＵがアクセス可能であるバッファに転送することによって、ＣＰＵにより最新の更新動作が実行される。フレーム期間３において、第２のビデオフレームにおけるシーンのプリミティブに基づいてかつベクトルＸＦ−３に対応する予測された着地点に基づいて、１つまたは複数のシェーダ動作がＧＰＵ１２１６で実行されて、ディスプレイの画素の画素データを生成する。画素データは、少なくとも色及びテクスチャ情報を含み、画素データはフレームバッファに格納される。特に、フレーム期間３において、ＧＰＵ１２１６は、サッカード中またはその終わりのディスプレイを見ているユーザの眼（複数可）の視線方向（例えばベクトルＸＦ−３）に対応する予測された着地点に対応する中心窩領域を有する第２のビデオフレームをレンダリングし得る。中心窩領域は高解像度でレンダリングされ、非中心窩領域は低解像度でレンダリングされる。フレーム期間４において、第２のビデオフレーム（例えば、Ｆ４）の画素データがスキャンアウトされる。
【０１６６】
このように、図１１Ｂにおいて、サッカード予測（例えば、着地点）の最新の更新を用いて、着地点予測は、必ずしもパイプラインシーケンスの開始時ではなく、パイプラインシーケンス中に収集される最新の視線追跡情報を利用し得る。このように、対応するビデオフレームがスキャンアウトされるまでに、そのビデオフレームの中心窩領域をレンダリングするために使用される予測された着地点は、少なくとも眼の動きに追いつき得、大抵の場合、眼の動きよりも速くなる（例えば、表示された中心窩領域が、眼球運動が追いつくのを待っている）。すなわち、サッカード予測の最新の更新があると、ビデオフレームをレンダリングする時間が眼球運動よりも速いことがあり得、そのため、中心窩領域は、対応するビデオフレームが表示されるとき視線方向と一致可能であり、または、対応するビデオフレームの中心窩領域の準備が整い眼球運動が予測視線方向に到達するのを待つ（サッカード中かつ／またはサッカードの終わり）ように進んでいる場合がある。
【０１６７】
一実施形態では、ＨＭＤ上に表示するためにフレームをレンダリングするときの電力消費を削減するために、追加の手段を取り得る。特に、サッカード中、眼球運動が速すぎる場合があるので、ユーザは、レンダリングされ表示される中間フレームを見ることができない場合がある。このように、着地点（例えば、サッカード中またはサッカードの終わり）までの予測時間に基づいて、予測された着地点に対応するビデオフレームの表示前に生じる中間ビデオフレームのうちの少なくとも１つのレンダリングは、レンダリングに使用されるコンピューティングリソースを節約するために終了され得る。
【０１６８】
さらに別の実施形態では、ＨＭＤ上に表示するためにフレームをレンダリングするときの電力消費を削減するために別の手段をとり得る。特に、ユーザは、サッカード中レンダリングされ表示される中間フレームを見ることができない場合があるので、ビデオフレーム全体は、より低い解像度でまたは低解像度でレンダリングされ得る。すなわち、それら中間フレームに対して中心窩領域はレンダリングされない。言い換えれば、着地点（例えば、サッカード中またはサッカードの終わり）までの予測時間に基づいて、予測された着地点に対応するビデオフレームの表示前に生じる中間ビデオフレームのうちの少なくとも１つは、低解像度でレンダリングされる。
【０１６９】
図１２は、本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイス１２００の構成要素を示す。例えば、図１２は、一実施形態による、ユーザの眼（複数可）の運動が、更新された標的着地点におけるディスプレイ上の中心窩領域の提示と一致するように、ディスプレイ上の標的着地点を予測かつ最新の更新をするように構成されているデバイスを実装するのに適した例示的なハードウェアシステムを示す。着地点の予測が、ＨＭＤならびにより従来のディスプレイの文脈両方で実行され得るときの、例示的なデバイス１２００が一般に記載される。このブロック図は、開示の実施形態を実施するのに適した、パーソナルコンピュータ、ビデオゲーム機、パーソナルデジタルアシスタント、または他のデジタルデバイスを組み込むことができる、またはそれらであり得るデバイス１２００を示す。デバイス１２００は、ソフトウェアアプリケーション及び任意選択的にオペレーティングシステムを作動させる中央処理装置（ＣＰＵ）１２０２を含む。ＣＰＵ１２０２は、１つまたは複数の同種または異種の処理コアで構成され得る。例えば、ＣＰＵ１２０２は、１つまたは複数の処理コアを有する１つまたは複数の汎用マイクロプロセッサである。メディア及びインタラクティブエンターテインメントアプリケーション、または前述のようなディスプレイを見ているユーザに関連して定義されるサッカード中かつ／またはその終わりのユーザの眼（複数可）の視線方向に関連付けられたディスプレイ上の着地点の予測を提供するように構成されているアプリケーションなど、高並列かつ計算集中的なアプリケーションに特に適合したマイクロプロセッサアーキテクチャを有する１つ以上のＣＰＵを用いて、さらなる実施形態を実装することができる。
【０１７０】
メモリ１２０４は、ＣＰＵ１２０２が使用するアプリケーション及びデータを格納する。ストレージ１２０６は、アプリケーション及びデータ用の不揮発性ストレージ及び他のコンピュータ可読媒体を提供し、ストレージ１２０６には、固定ディスクドライブ、取り外し可能ディスクドライブ、フラッシュメモリデバイス、及びＣＤ‐ＲＯＭ、ＤＶＤ‐ＲＯＭ、Ｂｌｕ‐ｒａｙ（登録商標）、ＨＤ‐ＤＶＤ、または他の光学記憶デバイス、ならびに信号伝送及び記憶媒体が含まれ得る。ユーザ入力デバイス１２０８は、１人以上のユーザからのユーザ入力をデバイス１２００へ通信するものであり、その例には、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルレコーダ／カメラもしくはビデオレコーダ／カメラ、ジェスチャを認識する追跡デバイス、及び／またはマイクロフォンが挙げられ得る。ネットワークインターフェース１２１４は、デバイス１２００が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、かつ、ローカルエリアネットワーク、及びインターネットなどの広域ネットワークを介する有線または無線通信を含み得る。音声プロセッサ１２１２は、ＣＰＵ１２０２、メモリ１２０４、及び／またはストレージ１２０６により提供される命令及び／またはデータから、アナログまたはデジタルの音声出力を生成するように適合される。ＣＰＵ１２０２、メモリ１２０４、データストレージ１２０６、ユーザ入力デバイス１２０８、ネットワークインターフェース１２１０、及び音声プロセッサ１２１２を含むデバイス１２００の構成要素は、１つ以上のデータバス１２２２を介して接続されている。
【０１７１】
グラフィックサブシステム１２１４はさらに、データバス１２２２及びデバイス１２００の構成要素と接続されている。グラフィックサブシステム１２１４は、グラフィック処理ユニット（ＧＰＵ）１２１６と、グラフィックメモリ１２１８とを含む。グラフィックメモリ１２１８は、出力画像の各画素の画素データを格納するために使用される表示メモリ（例えばフレームバッファ）を含む。グラフィックメモリ１２１８は、ＧＰＵ１２１６と同じデバイスに統合されてもよく、ＧＰＵ１２１６と別個のデバイスとして接続されてもよく、かつ／またはメモリ１２０４内に実装されてもよい。画素データは、直接ＣＰＵ１２０２からグラフィックメモリ１２１８へ提供され得る。あるいは、ＣＰＵ１２０２は、所望の出力画像を定義するデータ及び／または命令をＧＰＵ１２１６に提供し、ＧＰＵ１２１６はそこから１つ以上の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び／または命令は、メモリ１２０４及び／またはグラフィックメモリ１２１８に格納され得る。実施形態において、ＧＰＵ１２１６は、シーンの形状、照明、シャドウィング、質感、動き、及び／またはカメラのパラメータを定義する命令及びデータから、出力画像の画素データを生成する３Ｄレンダリング機能を含む。ＧＰＵ１２１６はさらに、シェーダプログラムを実行することができる１つ以上のプログラム可能実行ユニットを含み得る。
【０１７２】
グラフィックサブシステム１２１４は、グラフィックメモリ１２１８から画像の画素データを定期的に出力して、ディスプレイデバイス１２１０に表示させる、または投影システム１２４０により投影させる。ディスプレイデバイス１２１０は、デバイス１２００からの信号に応じて視覚情報を表示することができる任意のデバイスであり得、これにはＣＲＴ、ＬＣＤ、プラズマ、及びＯＬＥＤディスプレイが含まれる。デバイス１２００は、ディスプレイデバイス１２１０に、例えばアナログ信号またはデジタル信号を提供することができる。
【０１７３】
さらに、デバイス１２００は、前述のような、視線追跡センサ２６５及び光源（例えば、不可視赤外光を放出する）を含む視線追跡システム１２２０を含む。
【０１７４】
本明細書で説明される実施形態は、任意のタイプのクライアントデバイス上で実行され得ることを理解すべきである。一部の実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ（ＨＭＤ）、または投影システムである。図１３では、開示の実施形態による、ヘッドマウントディスプレイ１０２の構成要素を例示する図が示される。ＨＭＤ１０２は、ディスプレイを見ているユーザに関連して定義されるサッカード中かつ／またはその終わりのユーザの眼（複数可）の視線方向に関連する、ＨＭＤのディスプレイ上の着地点を予測し、予測された着地点を、最新の更新動作においてＧＰＵに提供するように構成され得る。
【０１７５】
ヘッドマウントディスプレイ１０２は、プログラム命令を実行するためのプロセッサ１３００を含む。メモリ１３０２が、記憶の目的で備わっており、メモリ１３０２は、揮発性メモリ及び不揮発性メモリの両方を含んでもよい。ユーザが見ることができる視覚インターフェースを提供するディスプレイ１３０４が含まれる。ヘッドマウントディスプレイ１０２の電源としてバッテリ１３０６が備わっている。モーション検出モジュール１３０８は、磁気計１３１０Ａ、加速度計１３１２、及びジャイロスコープ１３１４などの様々な種類の、動きに敏感なハードウェアのいずれかを含み得る。
【０１７６】
加速度計は、加速度及び重力誘起反力を測定するデバイスである。様々な方向の加速の大きさ及び方向を検出するために、単軸モデル及び多軸モデルが利用可能である。加速度計は、傾き、振動、及び衝撃を感知するために使用される。一実施形態では、３つの加速度計１３１２が重力の方向を提供するために使用され、これは２つの角度（世界空間ピッチ及び世界空間ロール）の絶対基準を与える。
【０１７７】
磁力計は、ヘッドマウントディスプレイ付近の磁場の強度及び方向を測定する。一実施形態では、３つの磁気計１３１０Ａがヘッドマウントディスプレイ内で使用され、世界空間のヨー角の絶対基準を保証する。一実施形態では、磁力計は、±８０マイクロステラの地磁場範囲を有するように設計される。磁力計は金属の影響を受け、実際のヨーに対して単調なヨー測定を提供する。磁場は環境内の金属により歪むことがあり、これによりヨー測定に歪みが生じる。必要な場合、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を用いて、較正することができる。一実施形態では、ヘッドマウントディスプレイ１０２の傾斜角及び方位角を得るために、加速度計１３１２が磁気計１３１０Ａと共に使用される。
【０１７８】
ジャイロスコープは、角運動量の原理に基づいて、配向を測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ１３１４が、慣性感知に基づいて、それぞれの軸（ｘ、ｙ、及びｚ）にわたる動きについての情報を提供する。ジャイロスコープは、高速回転を検出するのに有用である。しかしながら、ジャイロスコープは、絶対基準が存在しないと、時間の経過と共にドリフトし得る。これには、定期的にジャイロスコープをリセットする必要があり、これは、オブジェクトの視覚追跡、加速度計、磁力計などに基づく位置／向きの判定など、他の入手可能な情報を使用して行うことができる。
【０１７９】
実環境の画像及び画像ストリームを取り込むために、カメラ１３１６が備わっている。後向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ているときに、ユーザから離れる方向に向けられる）及び前向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ているときに、ユーザに向けられる）を含む、複数のカメラをヘッドマウントディスプレイ１０２に含めることができる。さらに、実環境におけるオブジェクトの深度情報（depth information）を感知するために、深さカメラ１３１８がヘッドマウントディスプレイ１０２に含まれてもよい。
【０１８０】
一実施形態では、ＨＭＤの前面に統合されたカメラを使用して、安全に関する警告が提供され得る。例えば、ユーザが壁またはオブジェクトに接近している場合、ユーザに警告が与えられ得る。一実施形態では、室内の物理的オブジェクトの外観をユーザに提供して、ユーザにそれらの存在を警告し得る。外観は、例えば仮想環境において重ね合わせられ得る。一部の実施形態では、例えば床に重ね合わせられた参照マーカの表示が、ＨＭＤユーザに提供され得る。例えば、マーカは、ユーザに、ユーザがゲームをプレイしている部屋の中心の場所の参照を提供し得る。これは、例えば部屋の中の壁または他のオブジェクトに衝突しないようにユーザが移動すべき場所の視覚情報をユーザに提供し得る。ユーザがＨＭＤを装着してゲームをプレイする、またはＨＭＤでコンテンツを操作するとき、安全性を高めるために、触覚的警告及び／または音声警告もユーザに提供することができる。
【０１８１】
ヘッドマウントディスプレイ１０２は、音声出力を提供するスピーカ２５２を含む。また、周囲環境からの音、ユーザによる発言などを含む実環境からの音声を取り込むために、マイクロフォン２５１が含まれ得る。ヘッドマウントディスプレイ１０２は、ユーザに触覚フィードバックを提供する触覚フィードバックモジュール２８１を含む。一実施形態では、触覚フィードバックモジュール２８１は、触覚フィードバックをユーザに提供することができるように、ヘッドマウントディスプレイ１０２の動き及び／または振動を引き起こすことが可能である。
【０１８２】
ＬＥＤ１３２６は、ヘッドマウントディスプレイ１０２の状態の可視的インジケータとして提供される。例えば、ＬＥＤは、バッテリーレベル、電源オンなどを示し得る。ヘッドマウントディスプレイ１０２がメモリカードに情報を読み出し、書き込むことを可能にするカードリーダ１３２８が備わっている。周辺デバイスの接続、または他のポータブルデバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインターフェースの一例として、ＵＳＢインターフェース１３３０が含まれる。ヘッドマウントディスプレイ１０２の様々な実施形態では、ヘッドマウントディスプレイ１０２の接続性を高めることを可能にするために、様々な種類のインターフェースのいずれかが含まれ得る。
【０１８３】
無線ネットワーク技術を介してインターネットへの接続を可能にするために、Ｗｉ−Ｆｉモジュール１３３２が含まれる。また、ヘッドマウントディスプレイ１０２は、他のデバイスへの無線接続を可能にするためのブルートゥース（登録商標）モジュール１３３４を含む。他のデバイスへの接続のために、通信リンク１３３６がまた、含まれていてもよい。一実施形態では、通信リンク１３３６は、無線通信のために赤外線伝送を利用する。他の実施形態では、通信リンク１３３６は、他のデバイスとの通信のために、様々な無線または有線の伝送プロトコルのいずれかを利用することができる。
【０１８４】
ユーザに入力インターフェースを提供するために、入力ボタン／センサ１３３８が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々な種類の入力インターフェースのいずれかを含めてもよい。超音波技術を介して他のデバイスとの通信を促進するために、超音波通信モジュール１３４０がヘッドマウントディスプレイ１０２に含まれ得る。
【０１８５】
ユーザからの生理学的データの検出を可能にするために、バイオセンサ１３４２が含まれる。一実施形態では、バイオセンサ１３４２は、ユーザの皮膚を通してユーザの生体電気信号を検出するための１つ以上のドライ電極（dry electrode）を含む。
【０１８６】
３次元の物理的環境に配置されたエミッタ（例えば赤外線基地局）からの信号に応答するために、光センサ１３４４が含まれる。ゲーム機は、光センサ１３４４及びエミッタからの情報を分析して、ヘッドマウントディスプレイ１０２に関する位置及び向きの情報を判定する。
【０１８７】
さらに、視線追跡システム１３２０が含まれ、これは、ユーザの視線追跡を可能にするように構成されている。例えば、システム１３２０は、ユーザの眼の画像をキャプチャし、キャプチャされた画像はその後ユーザの視線方向を判定するために分析される視線追跡カメラ（例えばセンサ）を含み得る。一実施形態では、ユーザの視線方向に関する情報を利用して、ビデオレンダリングに影響を与えることができ、かつ／または、サッカード中またはサッカードの終わりのユーザの視線が向けられるディスプレイ上の着地点を予測することができる。また、中心窩レンダリングにより詳細、より高い解像度を提供すること、中心窩領域に表示されるパーティクルシステム効果のより高い解像度を提供すること、中心窩領域の外側に表示されるパーティクルシステム効果のより低い解像度を提供すること、またはユーザが見ている領域のより高速な更新を提供することなどにより、視線方向のビデオレンダリングを優先または強調することができる。
【０１８８】
ヘッドマウントディスプレイ１０２の前述の構成要素は、ヘッドマウントディスプレイ１０２に含まれ得る単なる例示的な構成要素として説明されている。開示の様々な実施形態では、ヘッドマウントディスプレイ１０２は、上記の様々な構成要素の一部を含んでもよいし、または含まなくてもよい。ヘッドマウントディスプレイ１０２の実施形態は、本明細書に記載されている本開示の態様を容易にするために、本明細書には記載されていないが、当技術分野で知られている、他の構成要素を追加的に含んでもよい。
【０１８９】
開示の様々な実施形態では、様々なインタラクティブ機能を提供するために、前述のヘッドマウントデバイスが、ディスプレイに表示されるインタラクティブアプリケーションと併せて利用され得ることが、当業者には理解されよう。本明細書で説明される例示的な実施形態は、限定としてではなく、単に例として提供される。
【０１９０】
現在の実施形態のゲームへのアクセス提供など、広範囲な地域にわたり送られるアクセスサービスは、多くの場合、クラウドコンピューティングを使用することに留意すべきである。クラウドコンピューティングは、動的に拡張縮小可能で多くの場合仮想化されたリソースがインターネットを介したサービスとして提供される、コンピューティング様式である。ユーザは、ユーザをサポートする「クラウド」の技術的インフラストラクチャのエキスパートである必要はない。クラウドコンピューティングは、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）、Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）、及びＳｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）などの異なるサービスに分類することができる。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされるオンラインで、ビデオゲームなどの共通のアプリケーションを提供し、ソフトウェア及びデータは、クラウド内のサーバに格納される。クラウドという用語は、コンピュータネットワーク図におけるインターネットの描かれ方に基づいたインターネットの隠喩として使われ、複雑なインフラストラクチャを隠し持つことの抽象的概念である。
【０１９１】
ゲーム処理サーバ（ＧＰＳ）（または単純に「ゲームサーバ」）は、ゲームクライアントにより、シングルプレーヤ及びマルチプレーヤのビデオゲームをプレイするのに使用される。インターネット上でプレイされる大抵のビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレーヤからのデータを収集し、それを他のプレーヤに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストする別個のサーバが必要となる。別の実施形態では、ＧＰＳは、プレーヤ及びそれぞれのゲームプレイデバイスの間の通信を確立して、集中型ＧＰＳに依存せずに情報を交換する。
【０１９２】
専用ＧＰＳは、クライアントとは無関係に稼働するサーバである。このようなサーバは、通常、データセンタに配置された専用ハードウェア上で稼働し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、大部分のＰＣベースのマルチプレーヤゲームのためのゲームサーバをホスティングするのに好ましい方法である。大規模なマルチプレーヤオンラインゲームは、ゲームタイトルを所有するソフトウェア会社が通常ホストする専用サーバ上で稼働し、専用サーバがコンテンツを制御かつ更新することを可能にする。
【０１９３】
ユーザは、少なくともＣＰＵ、ディスプレイ、及びＩ／Ｏを含むクライアントデバイスにより、リモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、ＰＤＡなどであり得る。一実施形態では、ゲームサーバ上で実行されるネットワークは、クライアントが使用するデバイスの種類を認識し、採用する通信方法を調整する。他の場合には、クライアントデバイスは、ＨＴＭＬなどの標準的な通信方法を使用して、インターネット経由でゲームサーバ上のアプリケーションにアクセスする。
【０１９４】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示はまた、有線ベースネットワークまたは無線ネットワークを介してリンクされたリモート処理デバイスによりタスクが行われる分散型コンピューティング環境においても、実施することができる。
【０１９５】
所与のビデオゲームまたはゲーミングアプリケーションは、特定のプラットフォーム及び特定の関連コントローラデバイス用に開発されてもよいことを、理解すべきである。しかしながら、このようなゲームが、本明細書において提示されるようなゲームクラウドシステムを介して利用可能となる場合、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスしている可能性がある。例えば、あるゲームは、ゲーム機及びその関連コントローラ用に開発された可能性があるが、ユーザは、キーボード及びマウスを利用してパーソナルコンピュータから、ゲームのクラウドベースバージョンにアクセスすることができる。このようなシナリオでは、入力パラメータ構成により、ユーザが利用可能なコントローラデバイス（この事例ではキーボード及びマウス）により生成され得る入力からビデオゲームの実行で受入れ可能な入力へのマッピングが定義され得る。
【０１９６】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介して、クラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に一体に統合され、入力は、検出されたタッチスクリーン入力／ジェスチャにより提供される。このようなデバイスでは、入力パラメータ構成により、ビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力が定義され得る。例えば、ユーザがタッチしてゲーム入力を生成することができる、タッチスクリーン上の位置を示すために、ビデオゲームの実行中に、ボタン、方向パッド、または他の種類の入力要素が、表示または重ね合わされ得る。特定の向きにおけるスワイプなどのジェスチャ、または特定のタッチモーションもゲーム入力として検出されることができる。一実施形態において、例えば、ビデオゲームのゲームプレイを開始する前に、タッチスクリーン上での制御の操作へユーザを慣れさせるために、ゲームプレイ用のタッチスクリーンを介して入力を提供する方法を示すチュートリアルをユーザに提供することができる。
【０１９７】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスの接続ポイントとして機能する。すなわち、コントローラデバイスは、無線接続または有線接続を介してクライアントデバイスと通信して、コントローラデバイスからクライアントデバイスへ入力を送信する。クライアントデバイスは、これらの入力を順番に処理し、その後ネットワーク（例えば、ルータなどのローカルネットワークデバイスを介してアクセスされる）を介してクラウドゲームサーバへ入力データを送信し得る。しかしながら、他の実施形態では、コントローラ自体が、このような入力をまずクライアントデバイスを通して通信する必要なく、ネットワークを介して入力を直接クラウドゲームサーバに通信する能力を有するネットワークデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス（前述のルータなど）に接続し、クラウドゲームサーバへデータを送信し、このクラウドゲームサーバからデータを受信することができる。このように、クライアントデバイスは依然として、クラウドベースのビデオゲームからのビデオ出力を受信して、それをローカルディスプレイにレンダリングする必要はあり得るが、コントローラがクライアントデバイスを迂回して、ネットワークを介してクラウドゲームサーバに入力を直接送信することを可能にすることによって、入力待ち時間を低減することができる。
【０１９８】
一実施形態では、ネットワーク化されたコントローラ及びクライアントデバイスは、特定の種類の入力を直接コントローラからクラウドゲームサーバへ、かつ他の種類の入力を、クライアントデバイスを介して送信するように構成することができる。例えば、検出がコントローラ自体とは別の任意の追加のハードウェアまたは処理に依存しない入力は、クライアントデバイスをバイパスして、コントローラからクラウドゲームサーバへネットワークを介して直接送信することができる。このような入力には、ボタン入力、ジョイスティック入力、埋込型動作検出入力（例えば加速度計、磁力計、ジャイロスコープ）などが含まれ得る。しかしながら、追加のハードウェアを利用する、またはクライアントデバイスによる処理を要する入力は、クライアントデバイスによりクラウドゲームサーバへ送信され得る。これらには、クラウドゲームサーバへ送信する前にクライアントデバイスにより処理され得る、ゲーム環境から取り込まれたビデオまたはオーディオが含まれ得る。加えて、コントローラの動き検出ハードウェアからの入力は、取り込まれたビデオと併せてクライアントデバイスにより処理され、コントローラの位置及び動きを検出することができ、その後、クライアントデバイスによりクラウドゲームサーバへ通信される。様々な実施形態によるコントローラデバイスも、クライアントデバイスから、または直接クラウドゲームサーバから、データ（例えばフィードバックデータ）を受信し得ることを理解すべきである。
【０１９９】
特に、図１４は、開示の様々な実施形態による、ゲームシステム１４００のブロック図である。ゲームシステム１４００は、ネットワーク１４１５を介して１つ以上のクライアント１４１０に対し、シングルプレーヤモードまたはマルチプレーヤモードなどで、ビデオストリームを提供するように構成されている。ゲームシステム１４００は、通常は、ビデオサーバシステム１４２０とオプションのゲームサーバ１４２５とを含む。ビデオサーバシステム１４２０は、ビデオストリームを最小限のサービス品質で１つまたは複数のクライアント１４１０に提供するように構成される。例えば、ビデオサーバシステム１４２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変更を反映する更新されたビデオストリームを最小の遅延時間でクライアント１４１０に提供することができる。ビデオサーバシステム１４２０は、まだ定義されていないフォーマットを含む多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示されるように構成されたビデオフレームを含み得る。通常のフレームレートは、毎秒３０フレーム、毎秒８０フレーム、及び毎秒８２０フレームである。しかしながら、開示の代替的実施形態には、より高いまたはより低いフレームレートが含まれる。
【０２００】
本明細書で個々に１４１０Ａ、１４１０Ｂなどと呼ばれるクライアント１４１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線装置、デジタルパッド、スタンドアロン装置、ハンドヘルドゲームプレイ装置及び／または同種のものを含むことができる。通常、クライアント１４１０は、符号化された（すなわち圧縮された）ビデオストリームを受信し、ビデオストリームを復号化し、得られたビデオをユーザ、例えばゲームのプレーヤに提示するように構成されている。符号化されたビデオストリームを受信しかつ／またはビデオストリームを復号化するプロセスは通常、クライアントの受信バッファに個々のビデオフレームを格納することを含む。ビデオストリームは、クライアント１４１０に一体化したディスプレイ上で、またはモニタもしくはテレビなどの別個の装置上でユーザに提示され得る。クライアント１４１０は、２人以上のゲームプレーヤをサポートするように任意選択で設定される。例えば、ゲームコンソールは、２人、３人、４人、またはそれ以上の同時プレーヤをサポートするように構成されてもよい。これらのプレーヤの各々は、別々のビデオストリームを受信することができ、あるいは単一のビデオストリームが、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント１４１０は、任意選択で地理的に分散している。ゲームシステム１４００に含まれるクライアントの数は、１または２から数千、数万、またはそれ以上まで幅広く変わり得る。本明細書で使用するとき、「ゲームプレーヤ」という用語は、ゲームをプレイする者を指すのに使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを指すのに使用される。いくつかの実施形態では、ゲームプレイデバイスは、ゲーム体験をユーザに提供するために協働する複数のコンピューティングデバイスを指すことがある。例えば、ゲームコンソール及びＨＭＤは、ＨＭＤを介して見たゲームを配信するために、ビデオサーバシステム１４２０と協働してもよい。一実施形態では、ゲームコンソールはビデオサーバシステム１４２０からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにビデオストリームをＨＭＤに転送するか、またはビデオストリームを更新して、レンダリングのためにＨＭＤに転送する。
【０２０１】
クライアント１４１０は、ネットワーク１４１５を介してビデオストリームを受信するように構成されている。ネットワーク１４１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、プライベートネットワーク、及び／または同種のものを含む任意の種類の通信ネットワークであり得る。代表的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、プロプライエタリな規格を介して通信される。
【０２０２】
クライアント１４１０の代表的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信機能、及び入力デバイスを含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号化（及び符号化）するためのシステムは当技術分野において周知であり、使用される特定の符号化方式に応じて変わる。
【０２０３】
クライアント１４１０は、受信したビデオを修正するように構成されたシステムを更に含むことができるが、必ずしもそうである必要はない。例えば、クライアントは、更なるレンダリングを実行して、１つのビデオ画像を別のビデオ画像上にオーバーレイするように、ビデオ画像をクロッピングするように、及び／または同様のことを行うように、構成され得る。例えば、クライアント１４１０は、Ｉフレーム、Ｐフレーム、及びＢフレームなどの各種のビデオフレームを受信して、これらのフレームがユーザに表示するための画像に処理されるように構成され得る。いくつかの実施形態では、クライアント１４１０のメンバは、ビデオストリームに対して更なるレンダリング、シェーディング、３Ｄへの変換、または同様の動作を実行するように構成される。クライアント１４１０のメンバは、任意選択で、複数のオーディオストリームまたはビデオストリームを受信するように構成される。クライアント１４１０の入力デバイスは、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバック装置、モーション検知装置及び／または位置感知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、未開発の入力デバイス、及び／または同種のものを含み得る。
【０２０４】
クライアント１４１０によって受信されるビデオストリーム（及び任意選択でオーディオストリーム）は、ビデオサーバシステム１４２０によって生成されて提供される。本明細書の他の箇所で更に説明するように、このビデオストリームはビデオフレームを含む（オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成されている（例えば、ビデオフレームは、適切なデータ構造の画素情報を含む）。本明細書で使用される用語「ビデオフレーム」は、ユーザに示される画像に寄与する、例えば作用するように構成された情報を主に含むフレームを指すのに使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」に適用することもできる。
【０２０５】
クライアント１４１０は通常、ユーザから入力を受け取るように構成されている。これらの入力は、ビデオゲームの状態を変化させるまたは他の方法でゲームプレイに影響を与えるように構成されているゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができ、及び／またはクライアント１４１０上で実行される命令をコンピュータで処理することによって自動的に生成することができる。受信したゲームコマンドは、クライアント１４１０からネットワーク１４１５を介して、ビデオサーバシステム１４２０及び／またはゲームサーバ１４２５に伝達される。例えば、いくつかの実施形態では、ゲームコマンドはビデオサーバシステム１４２０を介してゲームサーバ１４２５に伝達される。いくつかの実施形態では、ゲームコマンドの別個のコピーがクライアント１４１０からゲームサーバ１４２５及びビデオサーバシステム１４２０に伝達される。ゲームコマンドの通信は、任意選択でコマンドの識別情報に依存する。ゲームコマンドは、オーディオストリームまたはビデオストリームをクライアント１４１０Ａに提供するために使用した異なる経路または通信チャネルを通じて、クライアント１４１０Ａから任意選択で通信される。
【０２０６】
ゲームサーバ１４２５は、ビデオサーバシステム１４２０とは異なるエンティティによって任意選択で操作される。例えば、ゲームサーバ１４２５は、マルチプレーヤゲームのパブリッシャによって運営され得る。この例では、ビデオサーバシステム１４２０は、任意選択でゲームサーバ１４２５によってクライアントとして捉えられ、任意選択でゲームサーバ１４２５の視点から見れば、先行技術のゲームエンジンを実行する先行技術のクライアントであるように構成される。ビデオサーバシステム１４２０とゲームサーバ１４２５との間の通信は、任意選択でネットワーク１４１５を介して行われる。したがって、ゲームサーバ１４２５は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレーヤゲームサーバであり得、そのうちの１つがゲームサーバシステム１４２０である。ビデオサーバシステム１４２０は、同時にゲームサーバ１４２５の複数のインスタンスと通信するように構成されてもよい。例えば、ビデオサーバシステム１４２０は、複数の異なるビデオゲームを別々のユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１４２５によってサポートされてもよく、及び／または異なるエンティティによって発行されてもよい。いくつかの実施形態では、ビデオサーバシステム１４２０のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム１４２０のこれらのインスタンスのそれぞれは、ゲームサーバ１４２５の同じインスタンスと通信することができる。ビデオサーバシステム１４２０と１つまたは複数のゲームサーバ１４２５との間の通信は、専用の通信チャネルを介して任意選択で行われる。例えば、ビデオサーバシステム１４２０は、これら２つのシステム間の通信専用の高帯域幅チャネルを介して、ゲームサーバ１４２５に接続されてもよい。
【０２０７】
ビデオサーバシステム１４２０は、少なくともビデオソース１４３０、入出力デバイス１４４５、プロセッサ１４５０、及び非一時的記憶装置１４５５を含む。ビデオサーバシステム１４２０は、１つのコンピューティングデバイスを含むか、または複数のコンピューティングデバイスの間に分散され得る。これらのコンピューティングデバイスは、ローカルエリアネットワークなどの通信システムを介して、任意選択で接続される。
【０２０８】
ビデオソース１４３０は、ビデオストリーム、例えばストリーミングビデオまたは動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施態様では、ビデオソース１４３０はビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境内のオブジェクトの位置と、典型的には視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色及び／またはテクスチャを含み得る。
【０２０９】
ゲーム状態は、通常、ゲームルール、及び移動、ターン、攻撃、フォーカス設定、インタラクト、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、任意選択でゲームサーバ１４２５内に配置される。ゲームサーバ１４２５は、地理的に分散したクライアントを使用して、複数のプレーヤから受信したゲームコマンドに基づき、ゲームの状態のコピーを維持することができる。これらの場合、ゲーム状態は、ゲームサーバ１４２５によってビデオソース１４３０に提供され、そこでゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ１４２５は、ネットワーク１４１５を介してクライアント１４１０から直接ゲームコマンドを受信してもよく、及び／またはビデオサーバシステム１４２０を経由してゲームコマンドを受信してもよい。
【０２１０】
ビデオソース１４３０は、通常、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び／または記憶装置１４５５などのコンピュータ可読媒体に格納されたソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全てまたは一部は、任意選択的に、グラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、通常、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間的関係を判定するため、及び／または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは未処理のビデオを生成し、次いでこのビデオは、クライアント１４１０への通信に先立ち、通常、符号化される。例えば、未処理ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格.ｗａｖ、Ｈ.２６４、Ｈ.２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧーｘ、Ｘｖｉｄ、ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６―８、ｒｅａｌｖｉｄｅｏ、ｍｐ３、または同種のものに従って符号化されてもよい。符号化プロセスは、リモートデバイス上のデコーダに配信するために任意選択的にパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。任意の他のフレームサイズを使用し得るが、典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８がある。フレームレートは、１秒あたりのビデオフレームの数である。ビデオストリームは、様々な種類のビデオフレームを含み得る。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上の全てのマクロブロック／画素を更新する情報を含み、一方、Ｐフレームは、そのサブセットを更新する情報を含む。Pフレームは、典型的には、Iフレームよりもデータサイズが小さい。本明細書で使用する「フレームサイズ」という用語は、フレーム内の画素数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するのに必要なバイト数を指すのに使用される。
【０２１１】
他の実施態様では、ビデオソース１４３０は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するのに使用することができる。結果として生じるビデオストリームは、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方を任意選択で含む。ビデオソース１４３０はまた、ビデオストリームに含まれる以前に記録されたビデオを記憶するように構成された記憶デバイスを含んでもよい。ビデオソース１４３０はまた、例えば人などのオブジェクトのモーションまたは位置を検出するように構成されたモーション感知デバイスまたは位置感知デバイスと、検出されたモーション及び／または位置に基づいてゲーム状態を判定し、またはビデオを生成するように構成されるロジックとを含み得る。
【０２１２】
ビデオソース１４３０は、他のビデオ上に配置されるように構成されたオーバーレイを提供するように任意選択で構成される。例えば、このようなオーバーレイには、コマンドインターフェース、ログイン命令、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオフィード（例えば、ウェブカメラビデオ）が含まれ得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１４１０Ａの実施形態では、オーバーレイはバーチャルキーボード、ジョイスティック、タッチパッド、及び／または同種のものを含み得る。オーバーレイの一例では、プレーヤの声がオーディオストリームにオーバーレイされる。ビデオソース１４３０は、任意選択で、１つまたは複数のオーディオソースを更に含む。
【０２１３】
ビデオサーバシステム１４２０が２人以上のプレーヤからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレーヤは表示の位置及び方向を含む異なる視点を有することができる。ビデオソース１４３０は、プレーヤらの視点に基づいて各プレーヤに別々のビデオストリームを提供するように任意選択で設定される。更に、ビデオソース１４３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１４１０のそれぞれに提供するように設定してもよい。ビデオソース１４３０は、任意選択で、３Ｄビデオを供給するように設定される。
【０２１４】
入出力デバイス１４４５は、ビデオサーバシステム１４２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイスモーション（動作）、デバイス位置、ユーザモーション、クライアント識別情報、プレーヤ識別情報、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同種のものなどの情報を送信し、及び／または受信するように構成されている。通常、入出力デバイス１４４５は、ネットワークカードまたはモデムなどの通信ハードウェアを含む。入出力デバイス１４４５は、ゲームサーバ１４２５、ネットワーク１４１５、及び／またはクライアント１４１０と通信するように構成される。
【０２１５】
プロセッサ１４５０は、本明細書で論じられるビデオサーバシステム１４２０の様々な構成要素内に含まれるロジック、例えばソフトウェアを実行するように構成される。例えば、ビデオソース１４３０、ゲームサーバ１４２５、及び／またはクライアントクオリファイア１４６０の機能を実行するために、プロセッサ１４５０は、ソフトウェア命令でプログラムされてもよい。ビデオサーバシステム１４２０は、任意選択でプロセッサ１４５０の複数のインスタンスを含む。プロセッサ１４５０はまた、ビデオサーバシステム１４２０によって受信されたコマンドを実行するために、または本明細書で論じられるゲームシステム１４００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされてもよい。プロセッサ１４５０は、１つまたは複数のハードウェアデバイスを含むことができる。プロセッサ１４５０は電子的なプロセッサである。
【０２１６】
ストレージ１４５５は、非一時的なアナログ及び／またはデジタルの記憶デバイスを含む。例えば、ストレージ１４５５は、ビデオフレームを記憶するように構成されたアナログ記憶デバイスを含み得る。ストレージ１４５５は、例えば、ハードドライブ、オプティカルドライブ、またはソリッドステートストレージといったコンピュータ可読デジタルストレージを含み得る。ストレージ１４５５は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを格納するように（例えば、適切なデータ構造またはファイルシステムによって）構成される。ストレージ１４５５は、任意選択で、複数のデバイスの間に分散される。いくつかの実施形態では、記憶装置１４５５は、本明細書の他の箇所で説明されているビデオソース１４３０のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要に応じてプロビジョニングできるように準備された形式で格納することができる。
【０２１７】
ビデオサーバシステム１４２０は、任意選択で、クライアントクオリファイア１４６０を更に含む。クライアントクオリファイア１４６０は、クライアント１４１０Ａまたは１４１０Ｂなどのクライアントの能力をリモートで判定するように構成される。これらの能力には、クライアント１４１０Ａ自体の能力と、クライアント１４１０Ａとビデオサーバシステム１４２０との間の１つまたは複数の通信チャネルの能力との両方を含めることができる。例えば、クライアントクオリファイア１４６０は、ネットワーク１４１５を介して通信チャネルをテストするように構成されてもよい。
【０２１８】
クライアントクオリファイア１４６０は、クライアント１４１０Ａの能力を手動または自動で判定する（例えば、発見する）ことができる。手動判定には、クライアント１４１０Ａのユーザと通信すること、及びユーザに能力を提供するように求めることが含まれる。例えば、いくつかの実施形態では、クライアントクオリファイア１４６０は、クライアント１４１０Ａのブラウザ内に画像、テキスト、及び／または同様のものを表示する構成となっている。一実施形態では、クライアント１４１０Ａはブラウザを含むＨＭＤである。別の実施形態では、クライアント１４１０Ａは、ブラウザを有するゲームコンソールであり、ブラウザはＨＭＤに表示させてもよい。表示されたオブジェクトは、ユーザがクライアント１４１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、表示解像度などの情報を入力することを要求する。ユーザによって入力された情報は、クライアントクオリファイア１４６０に返信される。
【０２１９】
自動判定は、例えば、クライアント１４１０Ａ上でエージェントを実行することによって、及び／またはテストビデオをクライアント１４１０Ａに送信することによって、行うことができる。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるジャバスクリプトなどのコンピューティング命令を含むことができる。エージェントは、クライアントクオリファイア１４６０によって任意選択で提供される。様々な実施形態において、エージェントは、クライアント１４１０Ａの処理能力、クライアント１４１０Ａのデコード能力及び表示能力、クライアント１４１０Ａとビデオサーバシステム１４２０との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント１４１０Ａのディスプレイタイプ、クライアント１４１０Ａ上に存在するファイアウォール、クライアント１４１０Ａのハードウェア、クライアント１４１０Ａで実行されているソフトウェア、クライアント１４１０Ａ内のレジストリエントリ、及び／または同様のものを見出すことができる。
【０２２０】
クライアントクオリファイア１４６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクオリファイア１４６０は、ビデオサーバシステム１４２０の１つまたは複数の他の要素とは別のコンピューティングデバイス上に任意選択で配置される。例えば、いくつかの実施形態では、クライアントクオリファイア１４６０は、クライアント１４１０とビデオサーバシステム１４２０の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、クライアントクオリファイアによって見出された情報を使用して、ビデオサーバシステム１４２０のどのインスタンスが、クライアント１４１０のうちの１つへのストリーミングビデオの配信に最も適しているかを判定することができる。
【０２２１】
特定の実施形態は、ディスプレイ上の標的着地点を予測かつ最新の更新をすることにより、ユーザの眼（複数可）の運動が、更新された標的着地点におけるディスプレイ上の中心窩領域の提示と一致することを明示するために提供されているが、これらは、限定ではなく例として説明されている。本開示を読んだ当業者は、本開示の趣旨及び範囲に含まれる追加の実施形態を実現するであろう。
【０２２２】
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を使用する特定の実装例に組み合わされ得る、または組み立てられ得ることを、理解すべきである。したがって、提供される例は、様々な要素を組み合わせて、さらに多くの実装例を定義することにより可能である様々な実装例に限定されず、いくつかの可能な例であるに過ぎない。いくつかの例では、いくつかの実装例は、開示されたまたは同等の実装例の趣旨から逸脱することなく、より少ない要素を含んでいてもよい。
【０２２３】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示の実施形態はまた、有線ベースまたは無線のネットワークを介してリンクされるリモート処理デバイスによりタスクが行われる分散型コンピューティング環境においても、実施することができる。
【０２２４】
前述の実施形態を念頭に置いて、本開示の実施形態は、コンピュータシステムに格納されたデータを伴う様々なコンピュータ実装動作を用い得ることを、理解すべきである。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有用な機械動作である。開示の実施形態はまた、これら動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築され得る、または装置は、コンピュータに格納されたコンピュータプログラムにより選択的に有効化または構成される汎用コンピュータであり得る。具体的には、様々な汎用機械を、本明細書の教示にしたがって書かれたコンピュータプログラムと共に使用することができる、または、必要な動作を実行するためにさらに特化した装置を構築するほうがより便利であり得る。
【０２２５】
開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶デバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイス（記憶デバイス）が含まれる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納かつ実行されるように、ネットワーク接続されたコンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれ得る。
【０２２６】
以上のように方法及び動作を特定の順序で説明したが、オーバーレイ動作の処理が所望の方法で実行される限り、動作間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解すべきである。
【０２２７】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の特許請求の範囲内及び均等物内で変更されてもよい。
【図１Ａ】
2021524061.tif 000004
【図１Ｂ】
2021524061.tif 000005
【図１Ｃ】
2021524061.tif 000006
【図２】
2021524061.tif 000007
【図３Ａ】
2021524061.tif 000008
【図３Ｂ】
2021524061.tif 000009
【図３Ｃ】
2021524061.tif 000010
【図４Ａ】
2021524061.tif 000011
【図４Ｂ】
2021524061.tif 000012
【図４Ｃ】
2021524061.tif 000013
【図５Ａ】
2021524061.tif 000014
【図５Ｂ】
2021524061.tif 000015
【図６Ａ】
2021524061.tif 000016
【図６Ｂ】
2021524061.tif 000017
【図６Ｃ】
2021524061.tif 000018
【図６Ｄ】
2021524061.tif 000019
【図６Ｅ】
2021524061.tif 000020
【図７】
2021524061.tif 000021
【図８】
2021524061.tif 000022
【図９Ａ】
2021524061.tif 000023
【図９Ｂ】
2021524061.tif 000024
【図９Ｃ】
2021524061.tif 000025
【図１０Ａ】
2021524061.tif 000026
【図１０Ｂ】
2021524061.tif 000027
【図１１Ａ】
2021524061.tif 000028
【図１１Ｂ】
2021524061.tif 000029
【図１２】
2021524061.tif 000030
【図１３】
2021524061.tif 000031
【図１４】
2021524061.tif 000032
【国際調査報告】
2021524061.tif 000033
2021524061.tif 000034