(57)【要約】【課題】中心窩シミュレーションのためのシステムおよび方法を提供する。【解決手段】システムが、ヘッドマウントディスプレイ（HMD）、プロセッサ、およびメモリを含む。HMDは、ユーザの視線ベクトルおよびユーザの位置を示すセンサデータを生成するように構成される。プロセッサは、HMDと通信するように構成される。メモリは、プロセッサに結合され、命令を記憶しており、命令は、プロセッサによって実行されるとき、プロセッサに、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得させる。命令はまた、プロセッサに、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定させる。命令はさらに、プロセッサに、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算させ、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節させる。【選択図】図８
2020030805.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの視線ベクトル（172）および前記ユーザの位置（174）を示すセンサデータ（162）を生成するように構成されたヘッドマウントディスプレイ（HMD）（114）と、
前記HMDと通信するように構成されたプロセッサ（122）と、
前記プロセッサに結合されたメモリ（124）であって、前記メモリは命令を記憶し、前記命令は、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ユーザの前記視線ベクトルおよび前記ユーザの前記位置を示すデータを取得させ、
仮想現実シミュレータ（126）の仮想構成要素（132）の構成要素ベクトル（176）を、前記ユーザの前記位置および前記仮想構成要素の位置に基づいて決定させ、
前記視線ベクトルおよび前記構成要素ベクトルに基づいて位置合せ値（178）を計算させ、
前記位置合せ値に基づいて前記仮想構成要素のシミュレーション設定値（134、136、138）を調節させる、メモリ（124）と、
を備えるシステム（102）。
【請求項２】
前記命令はさらに、前記プロセッサに、
前記仮想構成要素が立体面平面（284）を有するかどうかを決定させ、
前記仮想構成要素が前記立体面平面を有するという決定に応答して、前記視線ベクトルおよび前記立体面平面のコーナー（742〜748）に基づいて、前記仮想構成要素の前記立体面平面の可視領域（284）を計算させ、
前記立体面平面の前記可視領域および前記位置合せ値に基づいて調整値（182）を計算させ、前記仮想構成要素の前記シミュレーション設定値は、前記調整値に基づいて調節される、
請求項1に記載のシステム。
【請求項３】
前記仮想構成要素の前記立体面平面の前記可視領域を計算することは、
前記立体面平面の前記コーナーの各コーナーについて、第1の直交視線ベクトル（712）、第2の直交視線ベクトル（714）、および前記立体面平面の前記コーナーに基づいて、対応するコーナー（752〜758）を前記ユーザに関連付けられた視線平面（722）に投影することと、
前記視線平面の前記コーナーに基づいて、前記仮想構成要素の前記立体面平面の前記可視領域を計算することと
を含む、請求項2に記載のシステム。
【請求項４】
前記調整値を計算することは、前記位置合せ値と前記可視領域との積に定数または関数を適用してシミュレーションレベル値を生成することを含み、前記仮想構成要素の前記シミュレーション設定値は、前記シミュレーションレベル値に基づいて調節され、オプションとして、前記命令はさらに、前記プロセッサに、プロセス間通信を使用して前記調整値に基づいてクリティカルセクション相互排除値（292）を前記仮想構成要素に割り当てさせる、請求項2に記載のシステム。
【請求項５】
前記位置合せ値は元の位置合せ値（178）であり、前記命令はさらに、前記プロセッサに、前記元の位置合せ値をスケーリングしてスケーリングされた位置合せ値（278）を生成させ、前記調整値は、前記スケーリングされた位置合せ値に基づいて計算される、請求項2または4に記載のシステム。
【請求項６】
前記HMDに結合された第1の入力／出力（I／O）インターフェイス（130）と、
前記プロセッサに結合された第2の（I／O）インターフェイス（130A）であって、前記センサデータを前記HMDから受信するように構成され、または前記ユーザの前記視線ベクトルおよび前記位置を示す前記データを前記HMDから受信するように構成された第2の（I／O）インターフェイス（130A）と、
をさらに備える、請求項1に記載のシステム。
【請求項７】
プロセッサ（122）と、
前記プロセッサに結合されたメモリ（124）であって、前記メモリは命令を記憶し、前記命令は、前記プロセッサによって実行されるとき、前記プロセッサに、
ユーザの視線ベクトル（172）および前記ユーザの位置（174）を示すデータを取得させ、
仮想現実シミュレータ（126）の仮想構成要素（132）の構成要素ベクトル（176）を、前記ユーザの前記位置および前記仮想構成要素の位置に基づいて決定させ、
前記視線ベクトルおよび前記構成要素ベクトルに基づいて位置合せ値（178）を計算させ、
前記位置合せ値に基づいて前記仮想構成要素のシミュレーション設定値（134、136、138）を調節させる、メモリ（124）と、
を備える装置（112）。
【請求項８】
前記命令はさらに、前記プロセッサに、前記位置合せ値に非線形的なスケーリングを適用して非線形的にスケーリングされた位置合せ値（278）を生成させ、前記仮想構成要素の前記シミュレーション設定値は、前記非線形的にスケーリングされた位置合せ値に基づいて調節される、請求項7に記載の装置。
【請求項９】
前記命令はさらに、前記プロセッサに、
前記視線ベクトルに基づいて前記仮想現実シミュレータの第1の仮想領域（412）を規定させ、
前記視線ベクトルに基づいて前記仮想現実シミュレータの第2の仮想領域（414）を規定させ、前記第1の仮想領域は円であり、前記第2の仮想領域は楕円であり、前記第2の仮想領域は前記第1の仮想領域よりも大きく、
前記命令はさらに、前記プロセッサに、前記第2の仮想領域内に位置する第1の仮想構成要素（132、312〜332）に第1のシミュレーション設定値（134、136、138）を適用させ、前記第1の仮想領域および前記第2の仮想領域の外側に位置する第2の仮想構成要素（132、312〜332）に第2のシミュレーション設定値（134、136、138）を適用させる、請求項7または8に記載の装置。
【請求項１０】
前記仮想構成要素は、前記仮想現実シミュレータの仮想ディスプレイ（316〜238）であり、前記仮想ディスプレイのシミュレーションを調節することは、前記仮想ディスプレイの解像度を低減すること、前記仮想ディスプレイのリフレッシュレートを低減すること、前記仮想ディスプレイに関連付けられたレンダリングフレームレートを低減すること、またはそれらの組合せを含む、請求項7または8に記載の装置。
【請求項１１】
前記仮想現実シミュレータはフライトシミュレータであり、前記仮想構成要素はインセプタであり、前記インセプタのシミュレーションを調節することは、前記インセプタに関連付けられた処理頻度を低減することを含む、請求項7または8に記載の装置。
【請求項１２】
前記仮想構成要素は制御ローディングシステムであり、前記制御ローディングシステムのシミュレーションを調節することは、前記制御ローディングシステムのシミュレーションレベルを低減することを含む、請求項7または8に記載の装置。
【請求項１３】
命令を含むコンピュータ読み取り可能な記憶装置であって、前記命令は、実行されるとき、プロセッサに、
ユーザの視線ベクトルおよび前記ユーザの位置を示すデータを取得すること（802）と、
仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、前記ユーザの前記位置および前記仮想構成要素の位置に基づいて決定すること（804）と、
前記視線ベクトルおよび前記構成要素ベクトルに基づいて位置合せ値を計算すること（806）と、
前記位置合せ値に基づいて前記仮想構成要素のシミュレーション設定値を調節すること（808）と、
を含む動作を行わせる、コンピュータ読み取り可能な記憶装置。
【請求項１４】
前記動作はさらに、
前記プロセッサの使用可能リソースを決定することと、
前記プロセッサの前記使用可能リソースがシミュレーション閾値（138）よりも大きいかどうかを決定することと、
前記プロセッサの前記使用可能リソースが前記シミュレーション閾値よりも大きいという決定に基づいて、前記仮想構成要素の前記シミュレーション設定値をベース値に調節することと、
を含む、請求項13に記載のコンピュータ読み取り可能な記憶装置。
【請求項１５】
前記視線ベクトルおよび前記構成要素ベクトルは単位ベクトルであり、前記位置合せ値を計算することは、前記視線ベクトルと前記構成要素ベクトルとの内積に基づく、請求項13または14に記載のコンピュータ読み取り可能な記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、仮想現実アプリケーションおよび拡張現実アプリケーションの中心窩シミュレーション（foveated simulation）に関する。
【背景技術】
【０００２】
中心窩レンダリングは、ユーザが見ている箇所などの固定点に基づいて画像の詳細を変更するための技術である。中心窩レンダリングは、表示画像に含まれる詳細の全体量を低減し、ユーザの視野の中心付近により高い詳細レベルを集中させるために、コンピュータによって使用することができる。しかし、中心窩レンダリングを用いる場合でも、現在の技術は、複雑な仮想現実アプリケーションまたは拡張現実アプリケーションを高い忠実度で実行することができない。
【発明の概要】
【課題を解決するための手段】
【０００３】
特定の実装において、システムが、ヘッドマウントディスプレイ（head mounted display;HMD）、プロセッサ、およびメモリを含む。HMDは、ユーザの視線ベクトルおよびユーザの位置を示すセンサデータを生成するように構成される。プロセッサは、HMDと通信するように構成される。メモリは、プロセッサに結合され、命令を記憶しており、命令は、プロセッサによって実行されるとき、プロセッサに、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得させる。命令はまた、プロセッサに、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定させる。命令はさらに、プロセッサに、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値（alignment value）を計算させ、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節させる。
【０００４】
別の特定の実装において、装置がプロセッサおよびメモリを含む。メモリは、プロセッサに結合され、命令を記憶しており、命令は、プロセッサによって実行されるとき、プロセッサに、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得させる。命令はまた、プロセッサに、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定させる。命令はさらに、プロセッサに、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算させ、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節させる。
【０００５】
また別の特定の実装において、コンピュータ読み取り可能な記憶装置が命令を含み、命令は、実行されるとき、プロセッサに、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得することを含む動作を行わせる。命令はまた、プロセッサに、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定することを含む動作を行わせる。命令はまた、プロセッサに、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算し、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節することを含む動作を行わせる。
【０００６】
中心窩シミュレーションの使用により、システムは、より少ない処理およびシステムリソースを消費し、視線固定の領域において同様のレベルの視覚的品質およびシミュレーション忠実度をもたらす。追加リソースは、ビジュアルフレームレートを増大させ、動揺病を低減させ、および／または視覚的品質を向上させ、それによって、VRへのユーザの没入感を向上させるために使用することができる。中心窩シミュレーションは、同じ演算ハードウェアを用いる非中心窩シミュレーションと比べて比較的高いビジュアル忠実度でのシミュレーションを可能にする。
【図面の簡単な説明】
【０００７】
【図１】中心窩シミュレーションのためのシステムの例を示すブロック図である。
【図２】図1のシステムによって行われる中心窩シミュレーションの方法の例のフローチャートである。
【図３】図1のVRアプリケーションの仮想環境の例を示す略図である。
【図４】図3の仮想環境の別の例を示す略図である。
【図５】図3の仮想環境の別の例を示す略図である。
【図６】図3の仮想環境の別の例を示す略図である。
【図７】図1のVRアプリケーションの仮想環境の平面の例を示す略図である。
【図８】中心窩シミュレーションの方法の例のフローチャートである。
【図９】本開示による中心窩シミュレーションをサポートするように構成されたコンピューティング環境の特定の例のブロック図である。
【発明を実施するための形態】
【０００８】
開示される実施形態は、中心窩シミュレーションのためのシステムおよび方法を提供する。中心窩シミュレーションは、仮想現実アプリケーションおよび拡張現実アプリケーションによって使用することができる。中心窩シミュレーションは、ユーザの視線固定点の外側にある、仮想現実アプリケーションおよび拡張現実アプリケーションの仮想構成要素の演算リソースを低減する。ユーザの視線固定点は、ヘッドマウントディスプレイ内に位置する視線トラッキングシステムによって決定されてもよい。
【０００９】
仮想現実アプリケーションおよび拡張現実アプリケーションのための高忠実度シミュレーションは、シミュレーションとビジュアルシーン（例えば、仮想環境または拡張環境）のレンダリングとの間の演算負荷の分担を必要とする。シミュレーションとレンダリングとの両方について視線固定点の外側の演算負荷を低減することにより、著しい演算性能の増大を達成することができる。追加演算リソースは、ビジュアルフレームレートの増大、動揺病の低減、および／または視覚的品質の向上のために使用し、仮想または拡張現実アプリケーションにおけるユーザの没入感を増大させることができる。
【００１０】
図1は、中心窩シミュレーションのためのシステム102の例のブロック図100を示す。システム102は、コンピュータ112およびヘッドマウントディスプレイ（HMD）114を含む。コンピュータ112は、プロセッサ122およびプロセッサ122に結合されたメモリ124を含む。メモリ124は、命令を記憶しており、命令は、プロセッサ122によって実行されるとき、VRアプリケーション126を使用した中心窩シミュレーションを可能にするための様々な動作をプロセッサ122に行わせる。プロセッサ122は、（視線ベクトル172によって示される）ユーザが見ている箇所に基づいて中心窩シミュレーションを行う。いくつかの実装において、プロセッサ122は、本明細書にさらに説明されるように、プロセッサ122、コンピュータ112、または両方のリソースに基づいて選択的な中心窩シミュレーションを行う。
【００１１】
仮想現実（Virtual Reality;VR）アプリケーション126は、娯楽、ゲーム、または訓練目的で仮想環境（例えば、図3〜図7の仮想環境302）および仮想環境のシミュレーションを提供するように構成される。図1の例示的なシステム102に示されるように、VRアプリケーション126はフライトシミュレータアプリケーションである。VRアプリケーション126は、航空電子工学および制御システムなど、航空機フライトデッキの実際の構成要素に対応する仮想構成要素132を含む。各仮想構成要素132は、航空機の実際のハードウェアおよび／またはソフトウェア構成要素のシミュレーションモデルまたはエミュレーションモデルであり、実際のハードウェアおよび／またはソフトウェア構成要素の動作をシミュレートまたはエミュレートするように構成される。例えば、VRアプリケーション126の仮想構成要素132が、現実的な仮想環境をもたらすために、航空機のハードウェア構成要素によって行われる動作をシミュレート（例えば、近似）またはエミュレート（例えば、複製）することができる。以下で使用される場合、「シミュレートする」および「シミュレーション」という用語は、シミュレーション（すなわち、少なくとも近似による模倣）とエミュレーション（すなわち、複製による模倣）との両方を包含する。例示すると、「エミュレートする」とは、特定の入力を前提として同じ出力を生成するために、エミュレートされるシステムの内部処理を複製することを意味する。「シミュレートする」とは、システムに対する特定の入力を前提として同じ出力を生成することを意味する。しかし、シミュレーションにおいて、内部処理は、複製される必要はない（すなわち、内部処理は、複製されることも、改変されることもできる）。
【００１２】
VRアプリケーション126はさらに、シミュレーションプログラミング134、シミュレーション設定値136、およびシミュレーション閾値138を含む。プロセッサ122は、本明細書にさらに説明されるように、シミュレーションプログラミング134、シミュレーション設定値136、およびシミュレーション閾値138に基づいて、（実際の構成要素をシミュレートするための）仮想構成要素132を生成する。各仮想構成要素132は、関連または対応するシミュレーションプログラミング134、シミュレーション設定値136、およびシミュレーション閾値138を有してもよい。シミュレーションプログラミング134、シミュレーション設定値136、またはシミュレーション閾値138のうちの1つ以上を調節することで、VRアプリケーション126のシミュレーション忠実度が調節される。例えば、特定のシミュレーションプログラミング134の精度を低減する、特定のシミュレーション設定値136を低減する、および／または特定のシミュレーション閾値138を低減することで、VRアプリケーション126の特定の仮想構成要素132による実際の構成要素のシミュレーション忠実度が低減する。VRアプリケーション126のシミュレーション忠実度を低減することにより、VRアプリケーション126は、プロセッサ122の処理リソース（例えば、中央演算処理装置（central processing unit;CPU）のリソース）およびコンピュータ112の演算リソース（例えば、ランダムアクセスメモリ（random access memory;RAM）、グラフィック処理装置（graphics processing unit;GPU）のリソースなど）をより少なく消費する。
【００１３】
コンピュータ112はさらに、ネットワークインターフェイス128およびI／Oインターフェイス130を含む。ネットワークインターフェイス128は、プロセッサ122に結合され、1つ以上のネットワーク装置、HMD114、またはそれらの組合せと通信するように構成される。ネットワークインターフェイス128は、有線インターフェイス、無線インターフェイス、またはそれらの組合せを含んでもよく、またはそれに対応してもよい。I／Oインターフェイス130は、プロセッサ122に結合され、HMD114または1つ以上の入力装置116などの他の装置に対して信号および／またはデータを送受信するように構成される。いくつかの実装において、I／Oインターフェイス130は、ユニバーサルシリアルバス（Universal Serial Bus;USB）3．0インターフェイス、ディスプレイポートインターフェイス、高解像度マルチメディアインターフェイス（High-Definition Multimedia Interface;HDMI（登録商標））インターフェイス、またはそれらの組合せを含む。
【００１４】
HMD114は、ディスプレイ142、1つ以上のセンサ144、およびI／Oインターフェイス130Aを含む。いくつかの実装において、HMD114はさらに、プロセッサ122およびメモリ124と同様の、プロセッサおよびメモリを含む。他の実装において、コンピュータ112はHMD114に内蔵され、システム102は別個のコンピュータ112を含まない。加えて、HMD114は、1つ以上のネットワーク装置、コンピュータ112、またはそれらの組合せと通信するように構成された、ネットワークインターフェイス128Aなどのネットワークインターフェイスを含んでもよい。
【００１５】
ディスプレイ142は、映像を表示または出力するように構成される。例えば、ディスプレイ142は、コンピュータ112によって生成されたグラフィックユーザインターフェイス（graphical user interface;GUI）192を表示するように構成される。GUI192は、VRアプリケーション126の仮想環境を描写するシーンまたはフレームを含み、またはそれらに対応する。
【００１６】
1つ以上のセンサ144は、ユーザ（例えば、仮想環境内のユーザのアバター）の視線ベクトル172および仮想環境内のユーザの位置174を示すセンサデータ162を生成するように構成される。視線ベクトル172は、仮想環境内のユーザの視野角に対応する。視線ベクトル172は、（例えば、ヘッドトラッカによって決定されるときの）頭の向き、または（例えば、アイトラッカによって決定されるときの）目の向きに対応してもよい。いくつかの実装において、視線ベクトル172は単位ベクトルである。1つ以上のセンサ144は、1つ以上のジャイロスコープ152、加速度計154、アイトラッカ、赤外線センサ／エミッタ、電気光学センサ／エミッタ、慣性センサ、またはそれらの組合せを含む。アイトラッカは、カメラ、または網膜の中心窩などのユーザの網膜を追跡するように構成された別の装置を含む。
【００１７】
I／Oインターフェイス130Aは、コンピュータ112または1つ以上の入力装置116などの他の装置に対して信号および／またはデータを送受信するように構成される。例えば、I／Oインターフェイス130Aは、センサデータ162をコンピュータ112に送信する、および／または視線ベクトル172および位置174、すなわち、視線ベクトル172および位置174を示すデータをコンピュータ112に送信する。HMD114のI／Oインターフェイス130Aが視線ベクトル172および位置174を示すデータをコンピュータ112に送信する実装において、HMD114は、プロセッサ122と同様のプロセッサを含み、HMD114のプロセッサは、センサデータ162を処理して視線ベクトル172および位置174を示すデータを生成する。代わりに、ネットワークインターフェイス128Aは、センサデータ162をコンピュータ112に送信する、および／または視線ベクトル172および位置174、すなわち、視線ベクトル172および位置174を示すデータをコンピュータ112に送信するように構成される。
【００１８】
1つ以上の入力装置116は、ユーザ入力に基づいて信号および／またはデータを生成し、信号および／またはデータをコンピュータ112、HMD114、または両方に送信するように構成される。いくつかの実装において、1つ以上の入力装置116は、キーボードおよびマウスを含み、またはそれらに対応する。他の実装において、1つ以上の入力装置116は、ゲームパッドまたはジョイスティックなどのコントローラーを含み、またはそれに対応する。説明のための非限定的な例として、VRアプリケーション126がフライトシミュレータアプリケーションであるとき、1つ以上の入力装置116は、航空機の1つ以上の計器制御パネル、航空機のインセプタ、制御ヨーク、1つ以上のラダーペダル、コレクティブ、サイクリック、またはそれらの組合せを含み、またはそれに対応する。1つ以上の入力装置116は、有線インターフェイスまたは無線インターフェイスを介して、コンピュータ112、HMD114、または両方に結合されてもよい。
【００１９】
図1では、VRアプリケーション126が説明されるが、他の実装において、システム102は拡張現実（Augmented Reality;AR）アプリケーションを含む。例えば、システム102（例えば、そのHMD114）は携帯型でもよく、航空機の実際のフライトデッキの内部で動作し、拡張環境を生成するために物理環境に仮想オブジェクトを重畳してもよい。別の例として、システム102は、航空機の複製フライトデッキ内で動作することができ、仮想オブジェクトを複製フライトデッキに重畳することができる。
【００２０】
いくつかの実装において、プロセッサ122は、プロセッサ122のリソースおよび／またはコンピュータ112のリソースに基づいて、選択的な中心窩シミュレーションを利用する。例えば、リソースは、使用リソースまたは使用可能リソースでもよい。例示すると、プロセッサ122は、プロセッサ122の使用可能リソースが、選択的な中心窩閾値よりも大きいかどうかを決定する。プロセッサ122の使用可能リソースが選択的な中心窩閾値よりも大きいという決定に応答して、プロセッサ122は、仮想構成要素132のシミュレーション設定値136をベース値（例えば、100パーセントまたは高忠実度のシミュレーションを表すデフォルト値）に調節する。プロセッサ122の使用可能リソースが選択的な中心窩閾値以下であるという決定に応答して、プロセッサ122は、図2を参照して説明される1つ以上の動作を行うなど、中心窩シミュレーションを行う。
【００２１】
加えてまたは代わりに、プロセッサ122は、ユーザ入力に基づいて選択的な中心窩シミュレーションを利用する。例えば、中心窩シミュレーションをオンまたはオフするために、コンピュータ112のユーザがVRアプリケーション126の中心窩シミュレーション設定値を設定することができる。
【００２２】
いくつかの実装において、図1のシステム102は、処理リソースおよびシステムリソースをさらに低減し、複雑なVRアプリケーション126の高忠実度シミュレーションを可能にするために、中心窩レンダリングを行うことができる。図2を参照して図1のシステム102の動作が説明される。
【００２３】
図2は、図1のシステム102によって行われる中心窩シミュレーションの例のフローチャート200である。フローチャート200によって表される方法は、コンピュータ112、HMD114、またはそれらの組合せによって行われてもよい。
【００２４】
202にて、システム102は、ユーザの視線ベクトル172およびユーザの位置174を示すデータを取得する。例えば、プロセッサ122は、I／Oインターフェイス130を介してHMD114からセンサデータ162を受信する。別の例として、プロセッサ122は、ネットワークインターフェイス128を介してHMD114からセンサデータ162を受信する。プロセッサ122は、受信したセンサデータ162に基づいてユーザの視線ベクトル172およびユーザの位置174を生成（例えば、計算）する。代わりに、プロセッサ122は、I／Oインターフェイス130またはネットワークインターフェイス128を介して、ユーザの視線ベクトル172およびユーザの位置174を示すデータを受信する。例示すると、HMD114は、センサデータ162に基づいてユーザの視線ベクトル172および位置174を生成し、プロセッサ122は、ユーザの視線ベクトル172およびユーザの位置174、すなわち、ユーザの視線ベクトル172およびユーザの位置174を示すデータを受信する。
【００２５】
204にて、システム102は、ユーザの位置174および仮想構成要素132の位置に基づいて、VRアプリケーション126の仮想構成要素132（例えば、シミュレートされるハードウェア構成要素）の構成要素ベクトル176を決定する。例えば、プロセッサ122は、ユーザの位置174および特定の仮想構成要素132の中心点（例えば、図7の中心点762）に基づいて、特定の仮想構成要素132の構成要素ベクトル176を決定する。
【００２６】
206にて、システム102は、視線ベクトル172および構成要素ベクトル176に基づいて位置合せ値178を計算する。例えば、プロセッサ122は、視線ベクトル172と特定の仮想構成要素132の構成要素ベクトル176との内積に基づいて、特定の仮想構成要素132の位置合せ値178を計算する。例示すると、プロセッサ122は、視線ベクトル172および構成要素ベクトル176を単位ベクトルに変換（例えば、正規化）し、視線ベクトル172の単位ベクトル（すなわち、単位ベクトル表記の視線ベクトル172）と、特定の仮想構成要素132の構成要素ベクトル176の単位ベクトル（すなわち、単位ベクトル表記の構成要素ベクトル176）との内積に基づいて、特定の仮想構成要素132の位置合せ値178を計算する。代わりに、視線ベクトル172および構成要素ベクトル176の1つ以上が、単位ベクトルとして従前に決定または生成されており、プロセッサ122は、視線ベクトル172および／または構成要素ベクトル176の内積に基づいて位置合せ値178を計算する。
【００２７】
208にて、システム102は、位置合せ値178をスケーリングしてスケーリングされた位置合せ値278を生成する。例えば、プロセッサ122は、元の位置合せ値（例えば、位置合せ値178）をスケーリングしてスケーリングされた位置合せ値278を生成する。位置合せ値178は、スケーリングされた位置合せ値278を生成するために線形的または非線形的にスケーリングされることができる。位置合せ値178のスケーリングにより、システム102は、ユーザの視線の中心からより離れた構成要素に比例してシミュレーションを調節（例えば、低減）することが可能となり、領域またはセクションに基づいて調節するよりも精細な制御（例えば、低減）がもたらされ得る。特定の例において、位置合せ値178のスケーリングに使用されるスケーリング係数またはスケーリングされた位置合せ値278の計算に使用される方法が、ユーザの視界の限度または境界に基づく。例示すると、スケーリング係数は、ユーザの視界の中心の外側にあるオブジェクトについてユーザの視覚的明瞭性の低減に基づいて、位置合せ値178をスケーリングするために決定することができる。
【００２８】
説明のための非限定的な例として、線形的なスケーリングを適用するとき、位置合せ値178は、0〜1の範囲内（0、1を含む）の値にスケーリングされてもよい。視線ベクトル172および構成要素ベクトル176が単位ベクトルであるとき、位置合せ値178は、−1〜1の範囲（−1、1を含む）を有してもよい。この例において、スケーリングされた位置合せ値278（例えば、線形的にスケーリングされた位置合せ値）は、例えば、位置合せ値178に1を加えて得られた結果を2で割って、計算することができる。
【００２９】
説明のための非限定的な別の例として、非線形的なスケーリングを適用するとき、位置合せ値178は、0〜1の範囲内（0、1を含む）の値にスケーリングされることができる。視線ベクトル172および構成要素ベクトル176が単位ベクトルであるとき、位置合せ値178は、−1〜1の範囲（−1、1を含む）を有することができる。位置合せ値178は、上述されたように、中間値に線形的にスケーリングされてもよく、中間値は、スケーリングされた位置合せ値278（例えば、非線形的にスケーリングされた位置合せ値）を生成するために、対数方程式（例えば、10、2、e、1／10、または1／2などを底とする対数）または指数方程式によって、非線形的にスケーリングされることができる。そのような非線形的なスケーリングの適用は、ユーザがユーザの視線の中心の外側にあるオブジェクト（例えば、オブジェクトの詳細および輝度）を知覚する具合に見合うまたはそれと近似するために、スケーリングと、得られたスケーリングされた位置合せ値278とを良好に関係づける。
【００３０】
210にて、システム102は、仮想構成要素132が立体面平面282を有するかどうかを決定する。例えば、プロセッサ122は、特定の仮想構成要素132が立体面平面282を有するかまたはそれに関連付けられるかどうかを決定する。特定の仮想構成要素132が立体面平面282と関連付けられる場合、立体面平面282を識別するかまたはそのレンダリングを可能にするデータが、メモリ124またはVRアプリケーション126に記憶される。加えてまたは代わりに、プロセッサ122は、特定の仮想構成要素132の境界に基づいて立体面平面282を生成（例えば、計算）することができる。例えば、プロセッサ122は、仮想環境内の特定の仮想構成要素132の表面のコーナーの座標に基づいて立体面平面282を生成する。
【００３１】
212にて、システム102は、仮想構成要素132が立体面平面282を有するという決定に応答して、視線ベクトルおよび立体面平面282のコーナーに基づいて仮想構成要素132の立体面平面282の可視領域284を決定する。例えば、プロセッサ122は、図7を参照してさらに説明されるように、立体面平面282をユーザの視線平面に投影することに基づいて、特定の仮想構成要素132の立体面平面282の（ユーザ／視線ベクトルに対する）可視領域284を計算する。
【００３２】
214にて、システム102は、立体面平面282の可視領域284および位置合せ値178に基づいて調整値（throttle value）182を計算する。例えば、プロセッサ122は、スケーリングされた位置合せ値278（または位置合せ値178）と可視領域284との積に基づいて調整値182を計算する。特定の実装において、プロセッサ122はさらに、スケーリングされた位置合せ値278と可視領域284との積に定数または関数を適用することにより、調整値182を計算する。定数または関数を調整値182に適用することで、シミュレーションレベル値を生成することができる。仮想構成要素132のシミュレーション設定値136（すなわち、シミュレーション忠実度）は、シミュレーションレベル値に基づいて調節される。
【００３３】
いくつかの実装において、システム102は、調整値182に基づいてシミュレーション値を特定の仮想構成要素132に割り当てる（例えば、シミュレーションプログラミング134、シミュレーション設定値136、またはシミュレーション閾値138の値を調節または設定する）ために、プロセス間通信（Inter Process Communication;IPC）法を使用する。シミュレーション値を特定の仮想構成要素132に割り当てることで、特定の仮想構成要素132の忠実度が調節される。これにより、VRアプリケーション126の忠実度は調節され、コンピュータ112の処理および演算リソースなど、システム102によって使用される処理および演算リソースの量が調節される。
【００３４】
図2に示されるように、システム102は、216にて、調整値182に基づいてクリティカルセクション相互排除（critical section mutual exclusion）（ミューテック）値292を仮想構成要素132に割り当てる。例えば、プロセッサ122は、クリティカルセクションミューテック値292を調整値182の値に設定し、クリティカルセクションミューテック値292に基づいて特定の仮想構成要素132のシミュレーションプログラミング134、シミュレーション設定値136、またはシミュレーション閾値138のうちの1つ以上を調節する。シミュレーション値を割り当てるために、（1）メッセージキューを使用して、中心窩シミュレーション処理からシミュレーションプログラミング134にメッセージを送信する（例えば、送る）こと、または（2）ネットワークソケットインターフェイスを使用して、TCPメッセージをシミュレーションプログラミング134に送信することなど、他のIPC法を使用することができる。
【００３５】
代わりに、仮想構成要素132が立体面平面282を有していないという決定に応答して、システム102は、ステップ216に進み、IPC法を使用して、スケーリングされた位置合せ値278（または位置合せ値178）を仮想構成要素132に割り当てる。例えば、プロセッサ122は、クリティカルセクションミューテック値292をスケーリングされた位置合せ値278の値に設定し、クリティカルセクションミューテック値292に基づいて、特定の仮想構成要素132のシミュレーションプログラミング134、シミュレーション設定値136、またはシミュレーション閾値138のうちの1つ以上を調節する。
【００３６】
仮想構成要素132が仮想ディスプレイであるか、それを含むとき、仮想ディスプレイのシミュレーションの調節は、仮想ディスプレイの解像度の低減、仮想環境に対する仮想ディスプレイのリフレッシュレートの低減、仮想ディスプレイに関連付けられたレンダリングフレームレート（例えば、毎秒当りフレーム（frame per second;FPS））の低減、またはそれらの組合せを含む。
【００３７】
制御ローディングシステムが、フライトシミュレータまたは訓練装置の現実的なフライト制御力をユーザ（例えば、パイロット）に提供するように構成される。制御ローディングシステムは、VRアプリケーション126（例えば、フライトシミュレータ）およびユーザから入力を受け、VRアプリケーション126（例えば、フライトシミュレータ）およびユーザに出力を提供する。入力は、力の印加および航空機状態を含み、出力は、フライト制御位置および力を含む。
【００３８】
仮想構成要素132が制御ローディングシステムであるとき、制御ローディングシステムのシミュレーションの調節は、プログラミングショートカットの使用（例えば、ステップまたはルーチンのスキップ）または近似の使用（例えば、処理リソースまたはコンピュータリソースを低減するための代替コードの使用）によるなど、制御ローディングシステムのシミュレーションレベルの低減を含む。仮想構成要素132がインセプタ（例えば、航空機を方向付け操縦するための制御入力装置）であるとき、インセプタのシミュレーションの調節は、インセプタに関連付けられた処理頻度（例えば、更新頻度）の低減を含む。例えば、インセプタの位置を決定するインセプタのセンサが、より高いまたは低い頻度で更新される。
【００３９】
VRアプリケーション126の各仮想構成要素132またはVRアプリケーション126の選択された仮想構成要素132について、（破線ボックス222内に示されるような）ステップ204〜216を繰り返すことができる。例えば、プロセッサ122は、図3〜図4を参照してさらに説明されるように、中心窩シミュレーションのために1つ以上の特定の構成要素タイプを選択してもよい。
【００４０】
図3〜図6は、VRアプリケーション126の仮想環境302のビジュアルレンダリングの特定の例を示す略図である。ビジュアルレンダリングは、HMD114のディスプレイ142またはコンピュータ112に結合された別のディスプレイ装置に出力されてもよい。
【００４１】
図3は、図1のVRアプリケーション126の仮想環境302の例を示す略図300である。図3において、仮想環境302は、仮想構成要素312〜332などの複数の仮想構成要素132を含む。仮想構成要素132は、電子機器フライト計測装置システム（Electronics Flight Instrumentation System;EFIS）制御パネル312、モード制御パネル314、EFIS一次機能ディスプレイ（Primary Function Display;PFD）316、EFISナビゲーションディスプレイ318、スタンバイフライトディスプレイ（Standby Flight Display;ISFD）320、無線磁方位指示器（Radio Magnetic Indicator;RMI）322、エンジン多機能ディスプレイ（Multi Function Display;MFD）324、多機能制御ディスプレイユニット（Multi Function Control Display Unit;MCDU）326、第1の計器群328、第2の計器群330、および第3の計器群332を含む。図3に示されるように、仮想環境302は、特定の仮想構成要素132の複数のインスタンスを有してもよい。例えば、仮想環境302は、第1の（例えば、左）EFIS制御パネル312Aおよび第2の（例えば、右）EFIS制御パネル312B、第1の（例えば、左）EFIS PFD316Aおよび第2の（例えば、右）EFIS PFD316B、第1の（例えば、左）EFISナビゲーションディスプレイ318Aおよび第2の（例えば、右）EFISナビゲーションディスプレイ318B、ならびに第1の（例えば、左）MCDU326Aおよび第2の（例えば、右）MCDU326Bを含む。
【００４２】
仮想構成要素312、314、328、330および332は、仮想制御パネル、スイッチ、インセプタなどの制御子に対応する。仮想構成要素316〜326は、ディスプレイ、すなわち仮想ディスプレイに対応する。
【００４３】
いくつかの実装において、図1のシステム102は、仮想構成要素のタイプに基づいて中心窩シミュレーションを行う。例えば、プロセッサ122は最初に、使用可能リソースが第1の閾値（例えば、最大閾値）未満であるときに、仮想ディスプレイについて中心窩シミュレーションを行い、使用可能リソースが第2の閾値（例えば、中間閾値）未満であるときに、仮想ディスプレイおよび仮想制御について中心窩シミュレーションを行い、使用可能リソースが第3の閾値（例えば、最小閾値）未満であるときに、仮想ディスプレイ、仮想制御子、および高明瞭（high acuity）構成要素および／またはクリティカル構成要素について中心窩シミュレーションを行う。高明瞭構成要素が、鮮明光または閃光を伴う構成要素を含み、クリティカル構成要素が、時間依存性構成要素（警報、警告、通知、相互接続構成要素など）を含む。
【００４４】
いくつかの実装において、プロセッサ122は、図4〜図6を参照してさらに説明されるように、VRアプリケーション126の仮想環境302の領域または範囲について中心窩シミュレーションを行う。
【００４５】
図4は、図3の仮想環境302の別の例を示す略図400である。図4は、仮想環境302の中心部分など、仮想環境302の第1の部分を見ているときのユーザの視界を描写する。例えば、図4に示される例の視線ベクトル172が、ユーザがエンジンMFD324と一致する方向を見ていることを示す。いくつかの実装において、図1のシステム102は、仮想環境302を範囲に区分する、および／または視線ベクトル172に基づいて第1の領域412および第2の領域414などの1つ以上の領域を生成する。図4に示されるように、第1の領域412は円であり、第2の領域414は楕円である。
【００４６】
システム102は、範囲および／または領域に基づいて中心窩シミュレーションを行うことができる。例えば、システム102は、異なる領域の構成要素について異なるレベルのシミュレーションを設定することができる。例示すると、システム102は、第1の領域412内の仮想構成要素132を第1のシミュレーションレベルに設定し、第2の領域414内（かつ第1の領域412の外側）の仮想構成要素132を第2のシミュレーションレベルに設定し、第2の領域414の外側の仮想構成要素を第3のシミュレーションレベルに設定する。
【００４７】
非限定的な例として、図4において、エンジンMFD324は、100パーセント（例えば、ベース値）のシミュレーション設定値136を有し、第1のEFISナビゲーションディスプレイ318Aおよび第2のEFISナビゲーションディスプレイ318Bは、80パーセントのシミュレーション設定値136を有し、第1のEFIS PFD316Aおよび第2のEFIS PFD316Bは、20パーセントのシミュレーション設定値136を有する。図4の例において、第1のMCDU326Aおよび第2のMCDU326Bについて、それぞれの一部分が第2の領域414内にあるので、第4のシミュレーションレベル（例えば、60パーセントのシミュレーション設定値136）を使用することができる。例示すると、仮想構成要素132の位置合せ値178（またはスケーリングされた位置合せ値278もしくは調整値182）は、特定のシミュレーション設定値136に対応する値の範囲内である。例えば、第1のEFISナビゲーションディスプレイ318Aおよび第2のEFISナビゲーションディスプレイ318Bは、第1のシミュレーション閾値138未満かつ第2のシミュレーション閾値138超の位置合せ値178を有し、第1のEFIS PFD316Aおよび第2のEFIS PFD316Bは、第2のシミュレーション閾値138未満かつ第3のシミュレーション閾値138超の位置合せ値178を有する。
【００４８】
加えて、仮想環境302の特定の仮想構成要素132が、シミュレーション閾値138または構成要素のタイプに基づくシミュレーション設定値136を有してもよい。例えば、モード制御パネル314は、第2の領域414の外側にあるが、モード制御パネル314に関連付けられた設定値であるために第2のレベル（例えば、80パーセントのシミュレーション設定値136）に設定されることができる。例示すると、モード制御パネル314は、特定のシミュレーションレベルまたはシミュレーション値（例えば、第2のレベルすなわち80パーセント）に対応するシミュレーション閾値138を有する。ISFD320およびRMI322のシミュレーション設定値136が図4に示されていないが、ISFD320およびRMI322が完全に第2の領域414内にあり、部分的にのみ第1の領域412内にあるために80パーセントのシミュレーション設定値136を有する。
【００４９】
図5は、図3の仮想環境302の別の例を示す略図500である。図5は、仮想環境302の左中央部分など、仮想環境302の第2の部分を見ているときのユーザの視界を描写する。システム102は、更新されたユーザ視線位置に基づいて仮想構成要素132のシミュレーション設定値136を調節（例えば、低減または増加）する。
【００５０】
図5の非限定的な例において、第1のEFISナビゲーションディスプレイ318Aは、ユーザの視界の中心範囲（例えば、第1の領域412）内にあるので、100パーセント（例えば、ベース値）のシミュレーション設定値136を有する。この例において、第1のEFIS PFD316AおよびエンジンMFD324は、ユーザの視界の中心範囲付近（例えば、第2の領域414）内にあり、位置合せ値178（またはスケーリングされた位置合せ値278）が他の仮想構成要素132よりも大きいので、80パーセントのシミュレーション設定値136を有する。いくつかの実装において、第1のMCDU326Aはまた、そのレンダリングされた領域の凡そ半分がユーザの視界の中心範囲付近内にあるので、80パーセントのシミュレーション設定値を有する。第2のEFISナビゲーションディスプレイ318Bおよび第2のMCDU326Bは、中心範囲付近の一部分に部分的に重畳しており、位置合せ値178（またはスケーリングされた位置合せ値278）が第1のEFIS PFD316AおよびエンジンMFD324よりも小さいので、60パーセントのシミュレーション設定値136を有する。第2のEFIS PFD316Bは、中心範囲付近に重畳しておらず、中心範囲から最も離れているので、40パーセントのシミュレーション設定値136を有する。したがって、図5の例において、エンジンMFD324のシミュレーション設定値136は、（図4に対して）低減し、第1のEFISナビゲーションディスプレイ318Aのシミュレーション設定値136は、ユーザの視界の変化に基づいて（図4に対して）増大する。
【００５１】
図6は、図3の仮想環境302の別の例を示す略図600である。図6は、仮想環境302の右上部分など、仮想環境302の第3の部分を見ているときのユーザの視界を描写する。システム102は、更新されたユーザ視線位置に基づいて仮想構成要素132のシミュレーション設定値136を調節（例えば、低減または増加）する。
【００５２】
図6の非限定的な例において、モード制御パネル314は、ユーザの視界の中心範囲（例えば、第1の領域412）内にあるので、100パーセント（例えば、ベース値）のシミュレーション設定値136を有する。この例において、第2のEFISナビゲーションディスプレイ318BおよびエンジンMFD324は、ユーザの視界の中心範囲の付近（例えば、真下）にあり、位置合せ値178（またはスケーリングされた位置合せ値278）が第1のEFIS PFD316A、第2のEFIS PFD316B、第1のEFISナビゲーションディスプレイ318A、第1のMCDU326A、および第2のMCDU326Bよりも大きいので、60パーセントのシミュレーション設定値136を有する。第2のEFIS PFD316Bおよび第1のEFISナビゲーションディスプレイ318Aは、中心範囲の末端付近（例えば、真下）にあり、位置合せ値178（またはスケーリングされた位置合せ値278）が第2のEFISナビゲーションディスプレイ318BおよびエンジンMFD324よりも小さいので、40パーセントのシミュレーション設定値136を有する。第1のEFIS PFD316A、第1のMCDU326A、および第2のMCDU326Bは、中心範囲付近に重畳しておらず（例えば、部分的に内部に含まれておらず）、中心範囲から最も離れているので、20パーセントのシミュレーション設定値136を有する。したがって、第1のEFIS PFD316A、第1のMCDU326A、および第2のMCDU326Bは、最小位置合せ値178（またはスケーリングされた位置合せ値278）を有する。シミュレーション設定値136を調節するために調整値182が使用されるとき、より小さな位置合せ値178（またはスケーリングされた位置合せ値278）は、より小さな調整値182を生成する。
【００５３】
図6に示される実装において、制御子（例えば、第1のEFIS制御パネル312Aおよび第2のEFIS制御パネル312B）に対応する仮想構成要素132は調節されない。他の実装において、制御子（例えば、第1のEFIS制御パネル312Aおよび第2のEFIS制御パネル312B）に対応する仮想構成要素132は調節される。例えば、制御子に対応する仮想構成要素132は、100、80、60などの表示シミュレーションレベルとは対照的に、100パーセント、50パーセント、25パーセントなどの制御シミュレーションレベルに基づいて調節される。代わりに、制御子に対応する仮想構成要素132は、ディスプレイに対応する仮想構成要素132のための表示シミュレーションレベルに基づいて調節されることができる。例示すると、第1のEFIS制御パネル312Aは、中心範囲付近に重畳しておらず（例えば、部分的に内部に含まれておらず）、中心範囲から最も離れているので、20パーセントのシミュレーション設定値136を有し、第2のEFIS制御パネル312Bは、ユーザの視界の中心範囲付近内にあるので、80パーセントのシミュレーション設定値136を有する。
【００５４】
したがって、図4〜図6の例において、仮想構成要素132のシミュレーション設定値136は、ユーザの視界の変化に基づいて調節される。したがって、システム102は、ユーザが仮想環境302の視界の異なる部分を見るときに、仮想構成要素132のシミュレーション設定値136を増減させることができる。
【００５５】
図7は、図1のVRアプリケーション126の仮想環境302の平面の例を示す略図700である。図7において、仮想環境302は、視線ベクトル172と、視線ベクトル172に直交する2つのベクトル、すなわち直交視線ベクトル712、714とを描写する。図7に示されるように、直交視線ベクトル712、714は、第1の直交視線ベクトル712（例えば、視線ベクトル上）および第2の直交視線ベクトル714（例えば、視線ベクトル右）を含む。直交視線ベクトル712、714は、視線平面722を規定し、視線ベクトル172は、視線平面722に垂直なベクトルである視線平面722の垂直ベクトルである。
【００５６】
図7に示されるように、立体面平面282を視線平面722に投影することにより、特定の仮想構成要素132の立体面平面282の可視領域284を計算することができる。可視領域284は、ユーザによって視認可能であるような立体面平面282の領域に対応する。立体面平面282を投影するために、立体面平面282の複数のコーナー742〜748が視線平面722に投影される。例えば、コーナー742、744、746および748のそれぞれは、対応するコーナー752、754、756および758を生成するために、直交視線ベクトル712、714に基づいて視線平面722に投影される。例示すると、プロセッサ122は、第2の直交視線ベクトル714（例えば、視線ベクトル右）と第1のコーナー742（すなわち、仮想環境の原点からコーナーへのベクトル）との内積に基づいて、視線平面722上の第1の対応するコーナー752の第1の座標（例えば、x軸座標）を計算し、第1の直交視線ベクトル712（例えば、視線ベクトル上）と第1のコーナー742との内積に基づいて、視線平面722上の第1の対応するコーナー752の第2の座標（例えば、y軸座標）を計算する。コーナー754、756および758のうちの1つ以上について、同様の処理を使用することができる。可視領域284の領域は、コーナー752、754、756および758に基づいて計算することができる。
【００５７】
他の実装において、可視領域284を計算するために、立体面平面282の全てのコーナーよりも少ないコーナーが視線平面722に投影される。例えば、正方形の立体面平面282を投影するとき、3つのコーナーを視線平面722に投影することができ、投影された3つのコーナーから第4のコーナーを決定することができる。
【００５８】
図7はさらに、立体面平面282の中心点762を示す。構成要素ベクトル176を決定するために、ユーザの位置174および中心点762を使用することができる。いくつかの実装において、プロセッサ122は、仮想構成要素132のコーナー742〜748に基づいて中心点762を決定する。
【００５９】
図8は、中心窩シミュレーションの方法800の特定の例を示す。方法800は、コンピュータ112、HMD114、またはそれらの組合せなど、図1のシステム102によって行われてもよい。方法800は、802にて、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得することを含む。例えば、データは、図1のセンサデータ162、視線ベクトル172、または位置174を含んでもよく、またはそれに対応してもよい。例示すると、プロセッサ122は、図1を参照して説明されたように、ユーザの視線ベクトル172および位置174を取得する。
【００６０】
いくつかの実装において、取得すること802は、センサデータを受信し、視線ベクトルおよび位置を示すデータを生成すること812を含む。例示すると、プロセッサ122は、I／Oインターフェイス130またはネットワークインターフェイス128を介してHMD114からセンサデータ162を受信し、プロセッサ122は、センサデータ162に基づいて視線ベクトル172および位置174を生成する。
【００６１】
他の実装において、取得すること802は、視線ベクトルおよび位置を示すデータを受信すること814を含む。例えば、HMD114は、視線ベクトル172および位置174を決定するためにセンサデータ162を処理し、プロセッサ122は、視線ベクトル172および位置174を示すデータをHMD114から受信する。
【００６２】
方法800はまた、804にて、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定することを含む。例えば、構成要素ベクトルは、図1の構成要素ベクトル176を含んでもよく、またはそれに対応してもよい。例示すると、プロセッサ122は、ユーザの位置174および仮想構成要素132の立体面平面282の中心点762に基づいて、仮想構成要素132の構成要素ベクトル176を決定する。いくつかの実装において、構成要素ベクトル176は、単位ベクトルとして決定されたり、単位ベクトルに変換または正規化されたりする。特定の実装において、プロセッサ122は、仮想構成要素132の複数のコーナー742〜748に基づいて中心点762を計算する。
【００６３】
方法800は、806にて、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算することを含む。例えば、位置合せ値は、図1の位置合せ値178または図2のスケーリングされた位置合せ値278を含んでもよく、またはそれに対応してもよい。例示すると、プロセッサ122は、視線ベクトル172と構成要素ベクトル176との内積など、視線ベクトル172および構成要素ベクトル176に基づいて、位置合せ値178を計算する。いくつかの実装において、プロセッサ122は、図2を参照して説明されたように、位置合せ値178をスケーリングしてスケーリングされた位置合せ値278を生成する。
【００６４】
方法800はさらに、808にて、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節することを含む。例えば、シミュレーション設定値は、図1のシミュレーション設定値136を含んでもよく、またはそれに対応してもよい。例示すると、プロセッサ122は、位置合せ値178またはそれ自体が位置合せ値178に基づいて生成されたスケーリングされた位置合せ値278に基づいて、仮想構成要素132のシミュレーション設定値136を調節する。いくつかの実装において、プロセッサ122は、位置合せ値178またはスケーリングされた位置合せ値278の値に基づいて、仮想構成要素132のシミュレーション設定値136を調節する。他の実装において、プロセッサ122は、位置合せ値178またはスケーリングされた位置合せ値278および仮想構成要素132の可視領域284に基づいて、調整値182を計算する。そのような実装において、プロセッサ122は、図2を参照して説明されたように、調整値182に基づいて仮想構成要素132のシミュレーション設定値136を調節する。
【００６５】
仮想構成要素132のシミュレーション設定値136を調節するために調整値182の値を使用することは、位置合せ値178またはスケーリングされた位置合せ値278の値を使用するのに比べて、仮想構成要素132の可視領域284を説明する。したがって、ユーザにとってより大きく見える仮想構成要素132は、同様の位置合せ値178またはスケーリングされた位置合せ値278のより小さな仮想構成要素132と比べて、シミュレーション中の低減がより少ない。しかし、仮想構成要素132のシミュレーション設定値136を調節するために調整値182の値を使用することは、位置合せ値178またはスケーリングされた位置合せ値278の値を使用するのに比べて、より多くのシステムリソースを利用する。
【００６６】
いくつかの実装において、方法800は、視線ベクトルに基づいて仮想現実シミュレータの第1の仮想領域を規定し、視線ベクトルに基づいて仮想現実シミュレータの第2の仮想領域を規定することを含む。特定の実装において、第1の仮想領域は円であり、第2の仮想領域は楕円であり、第2の仮想領域は、図4〜図6を参照して説明されたように、第1の仮想領域よりも大きい。仮想領域のそのような配置は、ユーザの視界が詳細を知覚する具合をより精密に反映する。そのような実装において、方法800はさらに、図4〜図6を参照して説明されたように、第1の仮想領域内に位置する第1の仮想構成要素に第1のシミュレーション設定値を適用し、第1の仮想領域の外側に位置するとともに第2の仮想領域内に位置する第2の仮想構成要素に第2のシミュレーション設定値を適用し、第1の仮想領域および第2の仮想領域の外側に位置する第3の仮想構成要素に第3のシミュレーション設定値を適用することを含む。仮想構成要素は、第1の仮想構成要素、第2の仮想構成要素、第3の仮想構成要素の一部、または第1、第2および第3の仮想構成要素とは別個とすることができる。
【００６７】
いくつかの実装において、方法800は、プロセッサ、コンピュータ、または両方の使用可能リソースを決定することを含む。方法800はまた、プロセッサ、コンピュータ、または両方の使用可能リソースがシミュレーション閾値よりも大きいかどうかを決定することを含む。方法800はさらに、プロセッサ、コンピュータ、または両方の使用可能リソースがシミュレーション閾値よりも大きいという決定に基づいて、仮想構成要素のシミュレーション設定値をベース値に対し調節することを含む。代わりに、方法800は、プロセッサ、コンピュータ、または両方の使用可能リソースがシミュレーション閾値以下であるという決定に基づいて、仮想構成要素のシミュレーション設定値を調整値に基づいて調節することを含む。いくつかの実装において、方法800はさらに、図1、図2のフローチャート200、またはそれらの組合せを参照して説明された1つ以上の動作を含む。
【００６８】
図8の方法800は、特定用途向け集積回路（application-specific integrated circuit;ASIC）、中央演算処理装置（central processing unit;CPU）、コントローラー、別のハードウェア装置、ファームウェア装置、フィールドプログラマブルゲートアレイ（field-programmable gate array;FPGA）装置などの処理ユニット、またはそれらの任意の組合せによって開始または制御されてもよい。例として、図8の方法800は、制御システムに含まれた1つ以上のプロセッサなどの1つ以上のプロセッサによって開始または制御することができる。いくつかの実装において、図8の方法800の一部分が、図2のフローチャート200の1つ以上の動作と組み合わされてもよい。加えて、図8を参照して説明された1つ以上の動作が、オプションであってもよい、および／または図示または説明のものとは異なる順序で行われてもよい。図8を参照して説明された2つ以上の動作が、少なくとも部分的に同時に行われてもよい。
【００６９】
図9は、本開示によるコンピュータ実施方法およびコンピュータ実行可能プログラム命令（またはコード）の実施形態をサポートするように構成された汎用コンピューティング装置910を含むコンピューティング環境900のブロック図の例示である。例えば、コンピューティング装置910またはその部分は、システム102の機能、または、コンピュータ112もしくはHMD114などシステム102の一部分の機能を行うために命令を実行してもよい。システム102（またはコンピュータ112もしくはHMD114などシステム102の一部分）を制御するための命令は、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得する動作を行うための命令を含んでもよい。システム102（またはシステム102の一部分）を制御するための命令はまた、仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定する動作を行うための命令を含んでもよい。システム102（またはシステム102の一部分）を制御するための命令は、視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算する動作を行うための命令を含んでもよい。システム102（またはシステム102の一部分）を制御するための命令はさらに、位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節する動作を行うための命令を含んでもよい。コンピューティング装置910またはその部分はさらに、図2のフローチャート200、図8の方法800、またはそれらの組合せなど、本明細書に説明されるフローチャートおよび／または方法のいずれかに従って動作を行うための命令を実行してもよい。
【００７０】
コンピューティング装置910はプロセッサ920を含む。プロセッサ920は、システムメモリ930、1つ以上の記憶装置940、1つ以上の入力／出力インターフェイス950、1つ以上の通信インターフェイス960、またはそれらの組合せと通信する。特定の実施形態において、プロセッサ920は、コンピュータ112のプロセッサ122またはHMD114のプロセッサを含み、またはそれに対応する。システムメモリ930は、揮発性メモリ装置（例えば、ランダムアクセスメモリ（random access memory;RAM）装置）、不揮発性メモリ装置（例えば、リードオンリーメモリ（read-only memory;ROM）装置、プログラマブルリードオンリーメモリ、およびフラッシュメモリ）、または両方を含む。システムメモリ930は、コンピューティング装置910を起動するための基本入力／出力システムと、コンピューティング装置910がユーザ、他のプログラム、および他の装置とインタラクトすることを可能にするための完全なオペレーティングシステムとを含んでもよいオペレーティングシステム932を含む。システムメモリ930は、プロセッサ920によって実行可能な1つ以上のアプリケーション934を含む。例えば、1つ以上のアプリケーション934は、中心窩シミュレーションを行うようにシステム102を制御するためにプロセッサ920によって実行可能な命令を含む。例示すると、1つ以上のアプリケーション934はVRアプリケーション126を含む。
【００７１】
プロセッサ920はまた、図1のメモリ124などの1つ以上の記憶装置940と通信する。例えば、1つ以上の記憶装置940は、磁気ディスク、光ディスク、またはフラッシュメモリ装置などの不揮発性記憶装置を含むことができる。記憶装置940は、リムーバブルと非リムーバブルとの両方のメモリ装置を含むことができる。記憶装置940は、オペレーティングシステム、オペレーティングシステムの画像、アプリケーション、および位置合せ値178などのプログラムデータ936を記憶するように構成されることができる。記憶装置940はまた、シミュレーションプログラミング134、シミュレーション設定値136、および／またはシミュレーション閾値138を記憶することができる。特定の実施形態において、システムメモリ930、記憶装置940、または両方は、有形のコンピュータ読み取り可能な媒体を含む。
【００７２】
プロセッサ920は、コンピューティング装置910が1つ以上の入力／出力装置970（図1の入力装置116またはディスプレイ142など）と通信してユーザインタラクションを促進することを可能にする1つ以上の入力／出力インターフェイス950と通信する。入力／出力インターフェイス950は、シリアルインターフェイス（例えば、ユニバーサルシリアルバス（universal serial bus;USB）インターフェイスまたは電気電子技術協会（Institute of Electrical and Electronics Engineers;IEEE）1394インターフェイス）、パラレルインターフェイス、ディスプレイアダプタ、オーディオアダプタ、および他のインターフェイスを含むことができる。入力／出力装置970は、キーボード、ポインティングデバイス、ディスプレイ、スピーカ、マイク、タッチスクリーン、および他の装置を含むことができる。プロセッサ920は、入力／出力インターフェイス950を介して受信されたユーザ入力に基づいて、インタラクションイベントを検出する。加えて、プロセッサ920は、入力／出力インターフェイス950を介してディスプレイ装置（例えば、ディスプレイ142）に表示を送信する。
【００７３】
プロセッサ920は、1つ以上の通信インターフェイス960を介してHMD114、1つ以上の装置980、またはそれらの組合せと通信することができる。1つ以上の通信インターフェイス960は、有線イーサネット（登録商標）インターフェイス、IEEE802無線インターフェイス、他の無線通信インターフェイス、または他のネットワークインターフェイスを含んでもよい。1つ以上の装置980は、ホストコンピュータ、サーバ、ワークステーション、および他のコンピューティング装置を含むことができる。
【００７４】
本明細書に説明される例の例示は、様々な実装の構造の全般的な理解をもたらすことを意図している。例示は、本明細書に説明される構造または方法を利用する装置およびシステムの要素および形態、形状の全てを完全に説明する役割を果たすことを意図していない。本開示を検討すれば、多くの他の実装が当業者にとって明らかとなり得る。他の実装が、本開示の範囲から逸脱せずに構造的および論理的な置換および変更が行われ得るように本開示から利用または導出され得る。例えば、方法動作が図に示されるのとは異なる順序で行われてもよく、または1つ以上の方法動作が省略されてもよい。したがって、本開示および図は、制限ではなく例示とみなされるべきである。
【００７５】
その上、具体的な例が本明細書に例示および説明されてきたが、同じまたは同様の結果を達成するために考案されたその後のいかなる配置も、図示の具体的な実装に取って代わり得ることを理解されたい。本開示は、様々な実装のその後の改造または変形のいずれかおよび全てを包含することを意図している。本説明を検討すれば、上記の実装の組合せ、および本明細書に具体的に説明されていない他の実装が当業者にとって明らかとなるであろう。
【００７６】
さらに、本開示は、以下の条項による実施形態を含む。
【００７７】
条項1．ユーザの視線ベクトル（172）およびユーザの位置（174）を示すセンサデータ（162）を生成するヘッドマウントディスプレイ（HMD）（114）と、
HMDと通信するプロセッサ（122）と、
プロセッサに結合されたメモリ（124）であって、前記メモリは命令を含み、命令は、プロセッサによって実行されるとき、プロセッサに、
ユーザの視線ベクトルおよびユーザの位置を示すデータを取得させ、
仮想現実シミュレータ（126）の仮想構成要素（132）の構成要素ベクトル（176）を、ユーザの位置および仮想構成要素の位置に基づいて決定させ、
視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値（178）を計算させ、
位置合せ値に基づいて仮想構成要素のシミュレーション設定値（134、136、138）を調節させる、メモリ（124）と、
を備えるシステム（102）。
【００７８】
条項2．HMDは、センサデータに基づいてユーザの視線ベクトルおよび位置を示すデータを生成するように構成され、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得することは、視線ベクトルおよび位置を示すデータをHMDから受信することを含む、条項1のシステム。
【００７９】
条項3．命令はさらに、プロセッサに、センサデータをHMDから受信させ、ユーザの視線ベクトルおよびユーザの位置を示すデータを取得することは、センサデータに基づいてユーザの視線ベクトルおよび位置を決定し、ユーザの視線ベクトルおよびユーザの位置を示すデータを生成することを含む、条項1または2のシステム。
【００８０】
条項4．命令はさらに、プロセッサに、
仮想構成要素が立体面平面（284）を有するかどうかを決定させ、
仮想構成要素が立体面平面を有するという決定に応答して、視線ベクトルおよび立体面平面のコーナー（742〜748）に基づいて、仮想構成要素の立体面平面の可視領域（284）を計算させ、
立体面平面の可視領域および位置合せ値に基づいて調整値（182）を計算させ、仮想構成要素のシミュレーション設定値は、調整値に基づいて調節される、
条項1から3のいずれかのシステム。
【００８１】
条項5．仮想構成要素の立体面平面の可視領域を計算することは、
立体面平面のコーナーの各コーナーについて、第1の直交視線ベクトル（712）、第2の直交視線ベクトル（714）、および立体面平面のコーナーに基づいて、対応するコーナー（752〜758）をユーザに関連付けられた視線平面（722）に投影することと、
視線平面のコーナーに基づいて、仮想構成要素の立体面平面の可視領域を計算することと、
を含む、条項1から4のいずれかのシステム。
【００８２】
条項6．調整値を計算することは、位置合せ値と可視領域との積に定数または関数を適用してシミュレーションレベル値を生成することを含み、仮想構成要素のシミュレーション設定値は、シミュレーションレベル値に基づいて調節される、条項1から5のいずれかのシステム。
【００８３】
条項7．命令はさらに、プロセッサに、プロセス間通信を使用して調整値に基づいてクリティカルセクション相互排除値（292）を仮想構成要素に割り当てさせる、条項1から6のいずれかのシステム。
【００８４】
条項8．位置合せ値は元の位置合せ値（178）であり、命令はさらに、プロセッサに、元の位置合せ値をスケーリングしてスケーリングされた位置合せ値（278）を生成させ、調整値は、スケーリングされた位置合せ値に基づいて計算される、条項1から7のいずれかのシステム。
【００８５】
条項9．HMDに結合された第1の入力／出力（I／O）インターフェイス（130）と、
プロセッサに結合された第2の（I／O）インターフェイス（130A）であって、センサデータをHMDから受信する、またはユーザの視線ベクトルおよび位置を示すデータをHMDから受信する第2の（I／O）インターフェイス（130A）と
をさらに備える、条項1から8のいずれかのシステム。
【００８６】
条項10．プロセッサに結合された1つ以上の入力装置（116）であって、1つ以上のインセプタ、制御ヨーク、ラダーペダル、1つ以上の計器パネル、コレクティブ、サイクリック、またはそれらの組合せを含む1つ以上の入力装置（116）をさらに備える、条項1から9のいずれかのシステム。
【００８７】
条項11．プロセッサ（122）と、
プロセッサに結合されたメモリ（124）であって、メモリは命令を含み、命令は、プロセッサによって実行されるとき、プロセッサに、
ユーザの視線ベクトル（172）およびユーザの位置（174）を示すデータを取得させ、
仮想現実シミュレータ（126）の仮想構成要素（132）の構成要素ベクトル（176）を、ユーザの位置および仮想構成要素の位置に基づいて決定させ、
視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値（178）を計算させ、
位置合せ値に基づいて仮想構成要素のシミュレーション設定値（134、136、138）を調節させる、
メモリ（124）と
を備える装置（112）。
【００８８】
条項12．命令はさらに、プロセッサに、第2の位置合せ値（178）に基づいて、仮想現実シミュレータの第2の仮想構成要素（132）のシミュレーション設定値（136）を調節させる、条項11の装置。
【００８９】
条項13．命令はさらに、プロセッサに、位置合せ値に非線形的なスケーリングを適用して非線形的にスケーリングされた位置合せ値（278）を生成させ、仮想構成要素のシミュレーション設定値は、非線形的にスケーリングされた位置合せ値に基づいて調節される、条項11または12の装置。
【００９０】
条項14．命令はさらに、プロセッサに、
視線ベクトルに基づいて仮想現実シミュレータの第1の仮想領域（412）を規定させ、
視線ベクトルに基づいて仮想現実シミュレータの第2の仮想領域（414）を規定させ、第1の仮想領域は円であり、第2の仮想領域は楕円であり、第2の仮想領域は第1の仮想領域よりも大きく、
第2の仮想領域内に位置する第1の仮想構成要素（132、312〜332）に第1のシミュレーション設定値（134、136、138）を適用させ、第1の仮想領域および第2の仮想領域の外側に位置する第2の仮想構成要素（132、312〜332）に第2のシミュレーション設定値（134、136、138）を適用させる、
条項11から13のいずれかの装置。
【００９１】
条項15．仮想構成要素は、仮想現実シミュレータの仮想ディスプレイ（316〜238）であり、仮想ディスプレイのシミュレーションを調節することは、仮想ディスプレイの解像度を低減すること、仮想ディスプレイのリフレッシュレートを低減すること、仮想ディスプレイに関連付けられたレンダリングフレームレートを低減すること、またはそれらの組合せを含む、条項11から14のいずれかの装置。
【００９２】
条項16．仮想現実シミュレータはフライトシミュレータであり、仮想構成要素はインセプタであり、インセプタのシミュレーションを調節することは、インセプタに関連付けられた処理頻度を低減することを含む、条項11から15のいずれかの装置。
【００９３】
条項17．仮想構成要素は制御ローディングシステムであり、制御ローディングシステムのシミュレーションを調節することは、制御ローディングシステムのシミュレーションレベルを低減することを含む、条項11から16のいずれかの装置。
【００９４】
条項18．命令を含むコンピュータ読み取り可能な記憶装置であって、命令は、実行されるとき、プロセッサに、
ユーザの視線ベクトルおよびユーザの位置を示すデータを取得すること（802）と、
仮想現実シミュレータの仮想構成要素の構成要素ベクトルを、ユーザの位置および仮想構成要素の位置に基づいて決定すること（804）と、
視線ベクトルおよび構成要素ベクトルに基づいて位置合せ値を計算すること（806）と、
位置合せ値に基づいて仮想構成要素のシミュレーション設定値を調節すること（808）と、
を含む動作を行わせる、コンピュータ読み取り可能な記憶装置。
【００９５】
条項19．動作はさらに、
プロセッサの使用可能リソースを決定することと、
プロセッサの使用可能リソースがシミュレーション閾値（138）よりも大きいかどうかを決定することと、
プロセッサの使用可能リソースがシミュレーション閾値よりも大きいという決定に基づいて、仮想構成要素のシミュレーション設定値をベース値に調節することと、
を含む、条項18のコンピュータ読み取り可能な記憶装置。
【００９６】
条項20．視線ベクトルおよび構成要素ベクトルは単位ベクトルであり、位置合せ値を計算することは、視線ベクトルと構成要素ベクトルとの内積に基づく、条項18または19のコンピュータ読み取り可能な記憶装置。
【００９７】
本開示の概要は、請求項の範囲および意味を解釈または限定するために使用されないとの理解のもとで提出される。加えて、前述の詳細な説明において、本開示を円滑にする目的で、様々な形態、形状が一緒に纏められたり、単一の実装において説明されたりすることがある。上述の例は、本開示を示すが、限定するものではない。また、本開示の原理に従って多数の変更または変形が可能であることを理解されたい。以下の請求項が反映するように、請求される主題は、開示される例のいずれかの形態、形状の全てよりも少ないものを対象とすることがある。したがって、本開示の範囲は、以下の請求項およびそれらの均等物によって規定される。
【符号の説明】
【００９８】
100  ブロック図
102  システム
112  コンピュータ
114  ヘッドマウントディスプレイ（HMD）
116  入力装置
122  プロセッサ
124  メモリ
126  VRアプリケーション
128  ネットワークインターフェイス
128A  ネットワークインターフェイス
130  I／Oインターフェイス
130A  I／Oインターフェイス
132  仮想構成要素
134  シミュレーションプログラミング
136  シミュレーション設定値
138  シミュレーション閾値
142  ディスプレイ
144  センサ
152  ジャイロスコープ
154  加速度計
162  センサデータ
172  視線ベクトル
174  ユーザ位置
176  構成要素ベクトル
178  最小位置合せ値
182  調整値
192  グラフィックユーザインターフェイス（GUI）
200  フローチャート
222  破線ボックス
278  スケーリングされた位置合せ値
282  立体面平面
284  可視領域
292  クリティカルセクションミューテック値
300  略図
302  仮想環境
312  仮想構成要素、電子機器フライト計測装置システム（EFIS）制御パネル
312A  第1の電子機器フライト計測装置システム（EFIS）制御パネル
312B  第2の電子機器フライト計測装置システム（EFIS）制御パネル
314  仮想構成要素、モード制御パネル
316  仮想構成要素、EFIS一次機能ディスプレイ（PFD）
316A  第1のEFIS一次機能ディスプレイ（PFD）
316B  第2のEFIS一次機能ディスプレイ（PFD）
318  EFISナビゲーションディスプレイ
318A  第1のEFISナビゲーションディスプレイ
318B  第2のEFISナビゲーションディスプレイ
320  スタンバイフライトディスプレイ（ISFD）
322  無線磁方位指示器（RMI）
324  エンジン多機能ディスプレイ（MFD）
326  多機能制御ディスプレイユニット（MCDU）
326A  第1の多機能制御ディスプレイユニット（MCDU）
326B  第2の多機能制御ディスプレイユニット（MCDU）
328  仮想構成要素、第1の計器群
330  仮想構成要素、第2の計器群
332  仮想構成要素、第3の計器群
400  略図
412  第1の領域
414  第2の領域
500  略図
600  略図
700  略図
712  第1の直交視線ベクトル
714  第2の直交視線ベクトル
722  視線平面
742  コーナー
744  コーナー
746  コーナー
748  コーナー
752  コーナー
754  コーナー
756  コーナー
758  コーナー
762  中心点
800  方法
900  コンピューティング環境
910  汎用コンピューティング装置
920  プロセッサ
930  システムメモリ
932  オペレーティングシステム
934  アプリケーション
936  プログラムデータ
940  記憶装置
950  入力／出力インターフェイス
960  通信インターフェイス
970  入力／出力装置
980  装置
【図１】
2020030805.tif 000003
【図２】
2020030805.tif 000004
【図３】
2020030805.tif 000005
【図４】
2020030805.tif 000006
【図５】
2020030805.tif 000007
【図６】
2020030805.tif 000008
【図７】
2020030805.tif 000009
【図８】
2020030805.tif 000010
【図９】
2020030805.tif 000011
【外国語明細書】
2020030805000001.pdf