(57)【要約】  フォービエイテッドレンダリングを実行するためのシステムおよび方法を提供する。例示的なシステムおよび方法は、注視点に基づいて３Ｄシーンをゆがませてもよい。また、システムおよび方法は、ゆがめられた３Ｄシーンを描画し第１画像を生成してもよい。また、システムおよび方法は、第１画像のゆがみを解消して第２画像を生成してもよい。たとえば、第１画像の画素数は、第２画像よりも少なくてもよい。
2020522815.tif 000002
【特許請求の範囲】
【請求項１】
注視点に基づいて３Ｄシーンをゆがませるステップと、
前記ゆがめられた３Ｄシーンを描画して第１画像を生成するステップと、
前記第１画像のゆがみを解消して第２画像を生成するステップとを含む、方法。
【請求項２】
前記第１画像の画素の数は、前記第２画像よりも少ない、請求項１に記載の方法。
【請求項３】
前記第１画像の画素の数は、前記第２画像の４分の１以下である、請求項２に記載の方法。
【請求項４】
前記３Ｄシーンをゆがませるステップは、前記注視点からの距離の非線形関数を用いて前記３Ｄシーンをゆがませるステップを含む、先行する請求項に記載の方法。
【請求項５】
前記第２画像は、映像のフレームである、先行する請求項に記載の方法。
【請求項６】
前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンを不均一に変更するステップを含む、先行する請求項に記載の方法。
【請求項７】
前記３Ｄシーンを前記不均一に変更するステップは、前記３Ｄシーンの異なる部分を異なる量だけ変更するステップを含む、請求項６に記載の方法。
【請求項８】
前記３Ｄシーンを前記不均一に変更するステップは、前記３Ｄシーンの異なる部分を異なる方向に変更するステップを含む、請求項６に記載の方法。
【請求項９】
前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの頂点を中間の圧縮された空間に変換するステップを含む、先行する請求項に記載の方法。
【請求項１０】
前記頂点を中間の圧縮された空間に変換するステップは、前記頂点の位置に非線形関数を適用するステップを含む、請求項９に記載の方法。
【請求項１１】
前記頂点の前記位置に非線形関数を適用するステップは、前記頂点の各頂点の位置を、各頂点から注視点までの距離の平方根に基づいて修正するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記頂点の前記位置に非線形関数を適用するステップは、前記頂点に対数変換または対数極座標変換を適用するステップを含む、請求項１０に記載の方法。
【請求項１３】
前記頂点を変換するステップは、
前記頂点の各々をビューポートに投影するステップと、
前記注視点を前記ビューポートに投影するステップと、
前記投影された頂点と前記投影された注視点との距離に基づいて、前記投影された頂点の座標を変換するステップと、
前記変換された頂点を前記３Ｄシーンに再投影するステップとを含む、請求項１０に記載の方法。
【請求項１４】
前記注視点に基づいて前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの横の次元が縦の次元とは異なる程度ゆがめられるよう、前記注視点からの垂直距離および前記注視点からの水平距離に基づいてワープ関数を使用するステップを含む、先行する請求項に記載の方法。
【請求項１５】
前記注視点に基づいて前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの前記注視点の一方側を他方側とは異なる量だけゆがませる非対称ワープ関数を使用するステップを含む、先行する請求項に記載の方法。
【請求項１６】
前記ゆがめられた３Ｄシーンを描画するステップは、ゆがませる時の三角形のエッジの歪みを推定することに基づいて前記第１画像の画素の誤り訂正値を算出するステップを含む、先行する請求項に記載の方法。
【請求項１７】
前記第１画像のゆがみを解消するステップは、前記第２画像の画素を生成しながら前記誤り訂正値を適用するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記第１画像のゆがみを解消して第２画像を生成するステップは、前記第２画像のフォービアル（ｆｏｖｅａｌ）領域においてバイリニアフィルタリングを使用するステップを含む、先行する請求項に記載の方法。
【請求項１９】
前記注視点を特定するステップをさらに含む、先行する請求項に記載の方法。
【請求項２０】
前記注視点を特定するステップは、ユーザの目の位置を追跡することに基づいて前記注視点を特定するステップを含む、請求項１９に記載の方法。
【請求項２１】
前記注視点を特定するステップは、ＨＭＤのレンズのプロパティに基づいて前記注視点を特定するステップを含む、請求項１９または２０に記載の方法。
【請求項２２】
システムであって、
少なくとも１つのプロセッサと、
命令を格納したメモリとを備え、前記命令は、前記少なくとも１つのプロセッサによって実行されると、前記システムに、
注視点に基づいて３Ｄシーンをゆがませ、
前記ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、
前記第１画像のゆがみを解消させて第２画像を生成させる、システム。
【請求項２３】
ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をさらに備え、前記システムに前記注視点に基づいて前記３Ｄシーンをゆがませる前記命令は、前記システムに前記ＧＰＵを用いて前記３Ｄシーンを中間の圧縮された空間に変換させる命令を含む、請求項２２に記載のシステム。
【請求項２４】
前記システムに前記注視点に基づいて前記３Ｄシーンをゆがませる前記命令は、前記ＧＰＵに前記３Ｄシーンの少なくとも一部をテッセレートさせる命令を含む、請求項２３に記載のシステム。
【請求項２５】
前記システムに前記ゆがめられた３Ｄシーンを描画させて第１画像を生成させる前記命令は、前記ＧＰＵにマルチサンプリングアンチエイリアシングを適用させる命令を含む、請求項２３に記載のシステム。
【請求項２６】
少なくとも１つのレンズを含むヘッドマウントディスプレイ装置をさらに備え、前記注視点は、前記レンズの他の部分よりも視力が高い部分に対応する、請求項２２〜２５のいずれか１項に記載のシステム。
【請求項２７】
ヘッドマウントディスプレイ装置とカメラとをさらに備え、
前記メモリは、前記少なくとも１つのプロセッサによって実行されると、前記システムに、
前記カメラによって撮影された画像に基づいて前記ヘッドマウントディスプレイ装置の装着者の瞳孔の位置を特定させ、
前記瞳孔の位置に基づいて前記注視点を特定させる命令をさらに含む、請求項２２〜２６のいずれか１項に記載のシステム。
【請求項２８】
命令を格納した非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、少なくとも、
ヘッドマウントディスプレイ装置の装着者の瞳孔位置を特定させ、
前記瞳孔位置に基づいて注視点を特定させ、
前記注視点に基づいて３Ｄシーンをゆがませ、
前記ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、
前記第１画像のゆがみを解消させて第２画像を生成させ、
前記ヘッドマウントディスプレイ装置に前記第２画像を表示させる、非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項２９】
前記コンピューティングシステムに前記注視点に基づいて前記３Ｄシーンをゆがませるように構成された前記命令は、前記コンピューティングシステムに、
前記３Ｄシーンの頂点を画面座標に投影させ、
前記注視点を画面座標に投影させ、
前記投影された頂点と前記投影された注視点との距離に基づいて、前記投影された頂点の座標を変換させ、
前記変換された頂点を前記３Ｄシーンに再投影させる命令を含む、請求項２８に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項３０】
前記命令は、前記コンピューティングシステムに対数変換または対数極座標変換を前記投影された頂点に適用させるように構成される、請求項２９に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項３１】
前記３Ｄシーンは、３Ｄシーンからなるシーケンスからのものであり、前記命令は、さらに、前記コンピューティングシステムに、
前記注視点からの距離に基づいて前記第２画像の一部に一時的にエイリアスを生じさせる、請求項２８〜３０のいずれか１項に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１７年６月５日に出願された米国出願第６２／５１５，１２４号に基づく優先権を主張し、そのすべての開示内容を、引用により本明細書に援用する。
【背景技術】
【０００２】
背景
仮想現実（ＶＲ）システムは、ユーザ用の没入型仮想環境を生成する。たとえば、没入型環境は、３次元（３Ｄ）であり得、ユーザがやり取りする複数の仮想オブジェクトを含み得る。拡張現実（ＡＲ）システムは、ユーザ用の拡張環境を生成する。たとえば、コンピュータによって生成された画像を実世界のユーザの視野に重畳することによって、拡張環境を生成できる。
【０００３】
ユーザは、たとえば、ディスプレイ、眼鏡、またはゴーグルを備えるヘルメットまたはその他のヘッドマウント装置など、様々なディスプレイ装置を介して没入型仮想環境または拡張環境を体験することができ、当該ディスプレイ、眼鏡、またはゴーグルを通してディスプレイ装置を見る。
【発明の概要】
【０００４】
概要
本明細書は、全体的に、フォービエイテッドレンダリングに関する。いくつかの実装形態では、フォービエイテッドレンダリングは、滑らかに変化する。
【０００５】
一態様は、注視点に基づいて３Ｄシーンをゆがませるステップを含む方法である。また、この方法は、ゆがめられた３Ｄシーンを描画して第１画像を生成するステップと、第１画像のゆがみを解消（アンワープ）して第２画像を生成するステップとを含む。
【０００６】
別の態様は、少なくとも１つのプロセッサと、命令を格納したメモリとを備えるシステムである。少なくとも１つのプロセッサによって命令が実行されると、当該命令は、システムに、注視点に基づいて３Ｄシーンをゆがませ、ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、第１画像のゆがみを解消させて第２画像を生成させる。
【０００７】
別の態様は、命令を格納した非一時的なコンピュータ読み取り可能な記憶媒体である。少なくとも１つのプロセッサによって命令が実行されると、当該命令は、コンピューティングシステムに、少なくとも、ヘッドマウントディスプレイ装置の装着者の瞳孔位置を特定させ、瞳孔位置に基づいて注視点を特定させる。また、命令は、コンピューティングシステムに、注視点に基づいて３Ｄシーンをゆがませ、ゆがめられた３Ｄシーンを描画させて第１画像を生成させる。また、命令は、コンピューティングシステムに、第１画像のゆがみを解消させて第２画像を生成させ、ヘッドマウントディスプレイ装置に、第２画像を表示させる。
【０００８】
１つ以上の実装形態の詳細を、添付の図面および以下の説明において記載する。その他の特徴は、本明細書および図面から、ならびに請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【０００９】
【図１】例示的な実装形態に係る、システムを示すブロック図である。
【図２】本明細書に記載の実装形態に係る、滑らかに変化するフォービエイテッドレンダリングを有するヘッドマウントディスプレイを備えた拡張現実および／または仮想現実システムの例示的な実装形態である。
【図３Ａ】本明細書に記載の実装形態に係る、例示的なヘッドマウントディスプレイ装置およびコントローラを示す図である。
【図３Ｂ】本明細書に記載の実装形態に係る、例示的なヘッドマウントディスプレイ装置およびコントローラを示す図である。
【図３Ｃ】本明細書に記載の実装形態に係る、例示的なヘッドマウントディスプレイ装置およびコントローラを示す図である。
【図４】本明細書に記載の実装形態に係る、滑らかに変化するフォービエイテッド画像を描画する例示的な方法４００のフローチャートである。
【図５Ａ】本明細書に記載の実装形態に係る、例示的なワープ関数が画像をサンプリングする様子を示した概略図である。
【図５Ｂ】本明細書に記載の実装形態に係る、例示的なワープ関数が画像をサンプリングする様子を示した概略図である。
【図６】本明細書に記載の実装形態に係る、いくつかの例示的なワープ関数のプロットを有するグラフである。
【図７Ａ】本明細書に記載の実装形態に係る、ゆがめられたシーンの例示的な中間画像である。
【図７Ｂ】図７Ａの画像に対応する、ゆがみが解消されたシーンの画像である。
【図８】いくつかの実装形態に係る、フォービエイテッドレンダリング処理の概略図である。
【図９】いくつかの実装形態に係る、フォービエイテッドレンダリング処理の概略図である。
【図１０】本明細書に記載の技術を実装するために用いることができるコンピュータデバイスおよびモバイルコンピュータデバイスの例である。
【図１１Ａ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１１Ｂ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１１Ｃ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１２Ａ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１２Ｂ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１２Ｃ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【図１２Ｄ】いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像である。
【発明を実施するための形態】
【００１０】
詳細な説明
ここで、本開示の非限定例を詳細に説明し、その例を添付の図面に示す。これらの例を、添付の図面を参照することによって以下に説明する。添付の図面では、同一の構成要素に同じ参照番号を使用する。同じ参照番号が示された場合、対応する説明（複数可）は繰り返されず、関心のある読者は、当該同じ参照番号（複数可）を説明するために前に説明された図面（複数可）を参照されたい。
【００１１】
ＶＲシステムおよびＡＲシステムの少なくともいくつかの実装形態は、ユーザが装着できるヘッドマウントディスプレイ装置（ＨＭＤ）を備える。少なくともいくつかの実装形態では、ＨＭＤは、ユーザの目の各々にそれぞれ異なる画像および／または映像が表示されて奥行きが伝えられる立体視ディスプレイを備える。ＨＭＤは、ユーザの視野の一部（たとえば、ＡＲ）またはすべて（たとえば、ＶＲ）を覆う画像を表示してもよい。また、ＨＭＤは、ユーザの頭部および／または瞳孔位置の動きを追跡してもよい。ユーザの頭部が移動すると、ＨＭＤは、ＡＲまたはＶＲ環境内のユーザの変化する向きおよび／または位置に対応する更新画像を表示してもよい。
【００１２】
ＨＭＤは、レンダリングエンジンによって生成された画像および／または映像を表示してもよい。レンダリングエンジンは、ＨＭＤのコンポーネントであってもよく、描画された画像をＨＭＤに送信する別のコンピューティングデバイスのコンポーネントであってもよい。ＶＲまたはＡＲシステムにおいて表示するための画像を描画することは、非常に多くのリソースを必要とし得る。
【００１３】
ＶＲシステムおよびＡＲシステム上の視覚体験を改善するためには、解像度がより高く、視力がより高く、動きから表示までの遅延時間（ｍｏｔｉｏｎ−ｔｏ−ｐｈｏｔｏｎ  ｌａｔｅｎｃｙ）がより少ないディスプレイが必要である。動きから表示までの遅延時間とは、動作の検出と没入型仮想環境または拡張現実環境の更新との間の時間遅延を指す。すべてのこれらの要素は、より多くの数の画素をより少ない遅延時間で描画するために、より高い処理能力を有するシステムを必要とする。これに加えて、モバイルＶＲシステムおよびＡＲシステムは、エネルギー利用を最小限に抑えつつ、これらの要件に合う必要がある。
【００１４】
満足なＶＲまたはＡＲ体験を生じさせるために、レンダリングエンジンは、ユーザの動きに一致するようにＶＲまたはＡＲ環境が更新されるよう、動きから表示までの遅延時間を最小限に抑える必要があるだろう。実際、動きから表示までの遅延時間が多すぎる場合、ＶＲシステムは、ユーザに動揺病を引き起こしてしまう可能性がある。
【００１５】
いくつかの実装形態は、フォービエイテッドレンダリングエンジンを含む。当該フォービエイテッドレンダリングエンジンは、ユーザがどこを見ているかおよび／またはＨＭＤのレンズの性能に基づいて大まかにユーザの視力に対応するよう、精度を変えて画像を描画する。たとえば、画像は、注視点ではより高精度で描画され、注視点からの距離が大きくなるにつれて精度レベルを次第に下げて描画されてもよい。いくつかの実装形態では、ＨＭＤは、ユーザがどこを見ているかに基づいて注視点を識別する瞳孔トラッカーを備える。この識別された注視点を用いてユーザの視野の中央部分を識別できる。この中央部分では、ユーザの視野のその他の部分（たとえば、ユーザの周辺視野内）よりもユーザの視力が高い。
【００１６】
フォービエイテッドレンダリングエンジンは、ユーザの視野の中央部分内に表示しようとする部分はより高精度であり、ユーザの視野の周辺部分内に表示しようとする部分はより低精度の画像を生成してもよい。例として、より低精度の描画は、より高精度の描画よりも低解像度で行われてもよい。フォービエイテッドレンダリングエンジンの実装形態は、人間の視覚系の視力が、視線の中心から外れると劇的に落ちることを利用したものである。画像の一部を低精度で描画することによって、フォービエイテッドレンダリングエンジンは、より少ないプロセッササイクルとエネルギーとを利用して、画像をより素早く描画できるようになる。これらの低精度部分は注視点から離れた位置にあるので、注視点からの距離が大きくなるにつれてユーザの視力が下がるため、当該低精度は、ユーザに気づかれ難い。
【００１７】
いくつかの実装形態では、画像の精度は、識別された注視点におけるより高精度から、画像の周辺領域におけるより低精度に滑らかに変化する。フォービエイテッドレンダリングエンジンによって生成された画像の精度が滑らかに変化するため、画像は、トンネルビジョン効果またはそれぞれ異なる精度レベルの領域間の知覚可能な境界もしくは遷移など、視覚的アーティファクトがない。
【００１８】
いくつかの実装形態では、フォービエイテッドレンダリングエンジンは、注視点からの距離の非線形関数を用いて３次元（３Ｄ）シーンをゆがませることによってゆがめられたシーンを生成することにより、シーンからフォービエイテッド画像および／またはフォービエイテッド映像を生成する。いくつかの実装形態では、シーンをゆがませることは、シーンを不均一に（すなわち、シーンの部分のすべてが同じように変更されないよう）変更することを含む。いくつかの実装形態では、シーンをゆがませることは、３Ｄシーンに含まれる頂点と注視点との間の距離を変更することを含む。いくつかの実装形態では、シーンをゆがませることは、３Ｄシーンを圧縮された中間空間にマッピングすることを含む。圧縮された中間空間は、注視点に近いシーンの部分には、より大きい画面領域を割り当て、注視点から離れたシーンの部分には、より小さい画面領域を割り当ててもよい。
【００１９】
非線形関数は、対数関数、近似的対数関数などであってもよい。３Ｄシーンは、頂点と面とによって規定されるポリゴンメッシュとして表される１つ以上のオブジェクトを含んでもよい。たとえば、レンダリングエンジンは、３Ｄシーンの各頂点から、投影面に対して垂直であり注視点を通過する線までの距離を算出してもよい。
【００２０】
本明細書の例は、距離の関数を用いてゆがみ処理を実行するが、その他の実装形態は、その他の種類の関数を使用する。たとえば、いくつかの実装形態は、注視点からの垂直距離および／または水平距離のワープ関数を利用する。このように、ワープ関数は、シーンの横の次元と縦の次元とをそれぞれ異なる程度ゆがませることができる。これに加えて、いくつかの実装形態は、注視点の一方側を他方側とは異なる量だけゆがませる非対称ワープ関数を含む。たとえば、注視点の左側のシーンの部分のほとんどがユーザの鼻によって遮られるよう、右目の注視点の左側にあるシーンの部分を注視点の右側の部分よりも大幅にゆがめてもよく、注視点の右側のシーンの部分のほとんどがユーザの鼻によって遮られるよう、左目の注視点の右側にあるシーンの部分を注視点の左側の部分よりも大幅にゆがめてもよい。
【００２１】
３Ｄシーンがゆがめられた後、レンダリングエンジンは、ゆがめられたシーンを様々なレンダリング技術を用いて描画して離散化し、ゆがめられた画像を生成できる。たとえば、標準ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）動作を用いて、ゆがめられたシーンから画像を描画できる。ゆがめられた画像は、所望の最終画像よりも少ない解像度で描画できる（たとえば、少ない画素を有する）。画素の各々を描画することは、ＧＰＵシェーダを用いたライティング値およびテクスチャ値の算出などの計算コストが高い様々な動作をＧＰＵが実行することを伴ってもよい。画像を描画するのにかかる時間は描画される画素の数に応じて変化するので、ゆがめられた画像は、所望の最終画像を描画するよりも時間がかからない。たとえば、ゆがめられた画像の画素の数は、縦方向および横方向に、所望の最終画像の約半分であってもよく、所望の最終画像の４分の１の画素を有するゆがめられた画像がもたらされる。画素数を４分の１に減らすことによって、ゆがめられた画像のための描画時間を４分の１に減らすことにつながり得る。視野が余分に幅広い画像においてさらなる改善も可能である。
【００２２】
いくつかの実装形態では、次に、ゆがめられた画像のゆがみを解消して、所望の最終画像を生成する。たとえば、画像のゆがみの解消は、前に実行された歪み処理の効果を打ち消してもよい。いくつかの実装形態では、画像のゆがみを解消することは、３Ｄシーンをゆがませるために用いられた関数の逆関数を画像の画素に適用することを含む。たとえば、当該関数の逆関数によって、３Ｄシーンの一部を表す画素が、当該部分がゆがめられる前の場所に戻されてもよい。
【００２３】
ゆがみの解消は、ゆがめられた画像においてアンワープ関数によって特定された位置の画素の値に基づいて最終画像に含まれる画素の値を特定するためのＧＰＵ動作を用いて計算コストが低い方法で実現される。ゆがめられた画像のゆがみを解消するために必要な算出は、この技術を用いて回避される画素レンダリング計算よりも計算コストが低い（たとえば、所望の最終画像を生成するための画像のゆがみの解消には、所望の最終画像の画素の各々を描画するよりも少ないプロセッササイクルが使用される）。注視点により近い３Ｄシーンからの頂点に、注視点からより離れた頂点よりも画像空間の多くをワープ関数が割り当てるため、ゆがめられた画像に含まれる画素のより多くが、注視点近くの３Ｄシーンの一部を表すことになる。つまり、ゆがめられた画像は、注視点の周囲の領域を、注視点からさらに離れた位置にある領域よりも高い率でサンプリングする。この可変サンプリングによって、注視点の周辺の解像度をより高くし、それ以外の場所の解像度をより低くするよう、所望の最終画像を再構成できる。
【００２４】
上述したように画像のゆがみを解消することに加えて、その他の非線形演算を画像に適用することも可能である。たとえば、非線形レンズ歪み補正を適用して最終画像を生成できる。いくつかの実装形態では、画素当たりの計算を追加することなく複数の演算を適用できるよう、ゆがみ解消処理と少なくとも１つのその他の非線形演算とを組み合わせて１つの演算にする。つまり、複数の非線形演算を１つの演算に組み合わせることによって、最終画像の各画素に適用される演算の数が減り、画像を描画する時間および／または画像を描画するために使用されるプロセッササイクル数が減る。
【００２５】
特記されていない限り、本明細書に記載の技術を適用してフォービエイテッド画像および／またはフォービエイテッド映像を生成できる。生成された画像および／または映像は、コンピュータによって生成されたコンテンツ、現実シーンの標準的な写真および映像、ならびにそれらの組合せを含み得る。さらには、本明細書に記載の技術を適用して、ＡＲまたはＶＲ環境において使用するための一連の画像（または、映像）を生成できる。
【００２６】
図１は、例示的な実装形態に係る、システム１００を示すブロック図である。システム１００は、システム１００のユーザ用の拡張現実（ＡＲ）環境または仮想現実（ＶＲ）環境を生成する。いくつかの実装形態では、システム１００は、コンピューティングデバイス１０２と、ヘッドマウントディスプレイ装置（ＨＭＤ）１０４と、ＡＲ／ＶＲコンテンツソース１０６とを備える。ネットワーク１０８も図示されており、これを介してコンピューティングデバイス１０２はＡＲ／ＶＲコンテンツソース１０６と通信を行ってもよい。
【００２７】
いくつかの実装形態では、コンピューティングデバイス１０２は、ＶＲコンテンツをユーザに提供または出力するように構成され得るモバイル機器（たとえば、スマートフォン）である。コンピューティングデバイス１０２は、メモリ１１０と、プロセッサアセンブリ１１２と、ディスプレイ装置１１４と、通信モジュール１１６と、センサシステム１１８とを備えてもよい。メモリ１１０は、ＡＲ／ＶＲアプリケーション１２０と、フォービエイテッドレンダリングエンジン１２２と、アイトラッカー１２４と、ＡＲ／ＶＲコンテンツ１２６とを含んでもよい。また、コンピューティングデバイス１０２は、ワイヤレス通信プロトコルを用いてコンピューティングデバイス１０２と通信を行うコントローラなど、様々なユーザ入力コンポーネント（図示せず）を含んでもよい。
【００２８】
メモリ１１０は、１つ以上の非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。メモリ１１０は、ユーザ用のＡＲ／ＶＲ環境を生成するために使用できる命令とデータとを格納してもよい。
【００２９】
プロセッサアセンブリ１１２は、画像および映像の描画などの様々なタスクを実行するための、メモリ１１０に格納された命令など、命令を実行可能な１つ以上のデバイスを含む。たとえば、プロセッサアセンブリ１１２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）を含んでもよい。たとえば、ＧＰＵが存在する場合、いくつかの映像レンダリングタスクをＣＰＵから当該ＧＰＵに肩代わりさせて負担を低減してもよい。
【００３０】
ディスプレイ装置１１４は、たとえば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）画面、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）画面、タッチ画面、またはユーザに画像または情報を見せるためのその他の画面またはディスプレイを含んでもよい。いくつかの実装形態では、ディスプレイ装置１１４は、ユーザの目の一部に光を投影するように構成された光プロジェクタを含む。
【００３１】
通信モジュール１１６は、ＡＲ／ＶＲコンテンツソース１０６など、その他のコンピューティングデバイスと通信を行うための１つ以上のデバイスを含む。通信モジュール１１６は、無線または有線ネットワークを介して通信を行ってもよい。
【００３２】
センサシステム１１８は、慣性計測装置（ＩＭＵ：Ｉｎｅｒｔｉａｌ  Ｍｏｔｉｏｎ  Ｕｎｉｔ）１２８を含む様々なセンサを含んでもよい。また、センサシステム１１８の実装形態は、たとえば、光センサ、音声センサ、イメージセンサ、距離センサおよび／もしくは近接センサ、静電容量型センサなどの接触センサ、タイマ、ならびに／またはその他のセンサおよび／またはセンサの異なる組合せ（複数可）を含む、それぞれ異なる種類のセンサを含んでもよい。
【００３３】
ＩＭＵ１２８は、コンピューティングデバイス１０２および／またはＨＭＤ１０４の動作、動き、および／または加速度を検出する。ＩＭＵ１２８は、たとえば、加速度計、ジャイロスコープ、磁力計、およびその他のこのようなセンサなど、様々な異なる種類のセンサを含んでもよい。ＩＭＵ１２８に含まれるセンサが提供するデータに基づいて、ＨＭＤ１０４の位置と向きとを検出および追跡してもよい。ＨＭＤ１０４の検出された位置および向きによって、システムは、ユーザの視線方向と頭部の動きとを検出および追跡できる。
【００３４】
ＡＲ／ＶＲアプリケーション１２０は、ディスプレイ装置１１４、スピーカ（複数可）（図示せず）、および／またはその他の出力装置など、コンピューティングデバイス１０２の１つ以上の出力装置を介してＡＲ／ＶＲコンテンツをユーザに提示または提供してもよい。いくつかの実装形態では、ＡＲ／ＶＲアプリケーション１２０は、メモリ１１０に格納された命令を含み、当該命令は、プロセッサアセンブリ１１２によって実行されると、プロセッサアセンブリ１１２に、本明細書に記載の動作を実行させる。たとえば、ＡＲ／ＶＲアプリケーション１２０は、たとえば、ＡＲ／ＶＲコンテンツ１２６および／またはＡＲ／ＶＲコンテンツソース１０６から受信したＡＲ／ＶＲコンテンツなど、ＡＲ／ＶＲコンテンツに基づいて、ＡＲ／ＶＲ環境を生成してユーザに提示してもよい。ＡＲ／ＶＲコンテンツ１２６は、ディスプレイ装置１１４上に表示するための画像または映像として描画され得る３Ｄシーンを含んでもよい。たとえば、３Ｄシーンは、ポリゴンメッシュとして表される１つ以上のオブジェクトを含み得る。ポリゴンメッシュは、色および画像など、様々な表面テクスチャと対応付けられてもよい。また、３Ｄシーンは、たとえば、３Ｄシーンを描画する際に使用される光源など、その他の情報を含んでもよい。
【００３５】
ＡＲ／ＶＲアプリケーション１２０は、フォービエイテッドレンダリングエンジン１２２を用いて、ＡＲ／ＶＲコンテンツ１２６に基づいて、ディスプレイ装置１１４上に表示するための画像を生成してもよい。いくつかの実装形態では、フォービエイテッドレンダリングエンジン１２２は、メモリ１１０に格納された命令を含み、当該命令は、プロセッサアセンブリ１１２によって実行されると、プロセッサアセンブリ１１２に、本明細書に記載の動作を実行させる。たとえば、フォービエイテッドレンダリングエンジン１２２は、ＡＲ／ＶＲコンテンツ１２６の３Ｄシーンに基づいて、フォービエイテッド画像を生成してもよい。フォービエイテッド画像は、視覚系の変化する視力（すなわち、ユーザの目の中心窩によって知覚されると予想される画像の一部の精度レベルは、ユーザの目のその他の領域によって知覚されると予想される画像の部分よりも高い）に近似するよう、精度レベルが変化する。少なくともいくつかの実装形態では、フォービエイテッドレンダリングエンジン１２２は、注視点からの距離が大きくなるにつれて精度が滑らかに低下する画像を生成する。
【００３６】
たとえば、フォービエイテッド画像は、精度レベルを変えて３Ｄシーンを描画することによって生成された画像であってもよい。この画像は、２次元（２Ｄ）（たとえば、２Ｄアレイの画素）であってもよい。いくつかの実装形態では、この画像は、ＨＭＤの装着者が３Ｄ環境を知覚するよう奥行きを伝えるためにＨＭＤ１０４によって表示され得る立体視画像である。たとえば、立体視画像は、目ごとに画像の別々の部分を含んでもよい。これらの部分は、わずかに異なる物の見え方からの（たとえば、左目および右目の物の見え方からの）同じシーンを表してもよい。
【００３７】
画像を描画することは、カメラ位置とビューポート（または、像面）とを特定することを含んでもよい。ビューポートを通して、３Ｄシーンの２Ｄ画像が描画されることになる。ビューポートとは、３Ｄシーンが見えるウィンドウのようなものである。ビューポートの寸法は、所望の２Ｄ画像の寸法に対応し、２Ｄ画像の各画素をビューポート上の位置にマッピングできる。次に、ビューポートの対応する位置において何がカメラで見えるかに基づいて、各画素の色値を特定してもよい。
【００３８】
カメラの位置およびビューポートに基づいて、３Ｄシーンが画面領域座標に投影され得る（たとえば、画像内の縦の位置および横の位置に対応する２Ｄ座標）。たとえば、３Ｄシーンに含まれる各エンティティ（または、頂点などのエンティティの一部）は、エンティティからカメラまで延在する線分とビューポートとの交差に基づいて、ビューポート上の特定の位置にマッピングされてもよい。一部の３Ｄシーンでは、シーンのいくつかの部分がビューポートに交差しない場合がある。これらの部分は、描画された２Ｄ画像の一部とはならない。立体視画像では、ビューポートおよびカメラ位置は、左目用画像部分と右目用画像部分とでわずかに異なってもよい。
【００３９】
フォービエイテッド画像は、少なくとも１つの注視点を含んでもよい。この注視点は、画像において、画像のその他の部分よりも精度レベルが高い点であってもよい。たとえば、より高精度レベルの部分は、より低精度レベルの部分の解像度よりも高い解像度で描画されてもよい。いくつかの実装形態では、注視点は、画像内の画面領域座標である。いくつかの実装形態では、注視点は、ユーザが見ている方向に基づいて特定される画像内の画面領域座標である。いくつかの実装形態では、注視点は、ユーザが通して見るレンズのプロパティに基づいて特定される画像内の画面領域座標である。いくつかの実装形態では、注視点は、３Ｄシーン内の３Ｄ座標である。これらの実装形態では、注視点は、画面領域座標に投影されてもよい。
【００４０】
少なくともいくつかの実装形態では、フォービエイテッドレンダリングエンジン１２２は、アイトラッカー１２４に少なくとも一部基づいて、ユーザが見ている注視点を特定してもよい。いくつかの実装形態では、アイトラッカー１２４は、メモリ１１０に格納された命令を含み、当該命令は、プロセッサアセンブリ１１２によって実行されると、プロセッサアセンブリ１１２に、本明細書に記載の動作を実行させる。たとえば、アイトラッカー１２４は、ユーザの視線が向けられているディスプレイ装置１１４上の場所を特定してもよい。アイトラッカー１２４は、センサシステム１１８の撮像装置によって撮影された画像におけるユーザの瞳孔の位置を識別および追跡することに基づいてこの特定を行ってもよい。
【００４１】
ＡＲ／ＶＲアプリケーション１２０は、センサシステム１１８のＩＭＵ１２８および／またはその他のコンポーネントから受信した入力に基づいて、ＡＲ／ＶＲ環境を更新してもよい。たとえば、ＩＭＵ１２８は、コンピューティングデバイス１０２および／またはディスプレイ装置１１４の動作、動き、および／または加速度を検出してもよい。ＩＭＵ１２８は、たとえば、加速度計、ジャイロスコープ、磁力計、およびその他のこのようなセンサなど、様々な異なる種類のセンサを含んでもよい。ＨＭＤ１０４の位置と向きとは、ＩＭＵ１２８に含まれるセンサが提供するデータに基づいて検出および追跡されてもよい。ＨＭＤ１０４の検出された位置および向きによって、ユーザの視線方向と頭部の動きとをシステムが検出および追跡できてもよい。検出された視線方向および頭部の動きに基づいて、ＡＲ／ＶＲアプリケーション１２０は、ＡＲ／ＶＲ環境を更新して、変更されたユーザの向きおよび／または位置を環境内で反映してもよい。
【００４２】
図１では、コンピューティングデバイス１０２とＨＭＤ１０４とは別個のデバイスと示されているが、いくつかの実装形態では、コンピューティングデバイス１０２は、ＨＭＤ１０４を備えてもよい。図１に示すように、いくつかの実装形態では、コンピューティングデバイス１０２は、ケーブルを介してＨＭＤ１０４と通信を行う。たとえば、コンピューティングデバイス１０２は、音声信号および映像信号を、ユーザに表示するためにＨＭＤ１０４に送信してもよく、ＨＭＤ１０４は、動作、位置、および／または向き情報をコンピューティングデバイス１０２に送信してもよい。いくつかの実装形態では、ＨＭＤ１０４は、コンピューティングデバイス１０２が載置され得るチャンバを含む。いくつかの実装形態では、ユーザは、ＨＭＤ１０４を装着したまま（たとえば、ＨＭＤ１０４内のレンズまたは絞りを通して）コンピューティングデバイス１０２のディスプレイ装置１１４を見ることができる。たとえば、ディスプレイ装置１１４の画面を、ＨＭＤを通して見たときにユーザの左目でのみ見ることができる第１画像と、ＨＭＤを通して見たときにユーザの右目でのみ見ることができる第２画像とに分割することによって、コンピューティングデバイス１０２とＨＭＤ１０４とは、一体となって立体視ビューアとして機能できる。
【００４３】
ＡＲ／ＶＲコンテンツソース１０６は、ＡＲ／ＶＲコンテンツを生成して出力してもよい。ＡＲ／ＶＲコンテンツは、コンピューティングデバイス１０２など、１つ以上のコンピューティングデバイスにネットワーク１０８を介して配布または送られてもよい。例示的な実装形態では、ＡＲ／ＶＲコンテンツは、３次元シーンおよび／または画像を含む。これに加えて、ＡＲ／ＶＲコンテンツは、１つ以上のコンピューティングデバイスにストリーム配信または配布される音声信号／映像信号を含んでもよい。また、ＡＲ／ＶＲコンテンツは、コンピューティングデバイス１０２上で動作して３Ｄシーン、音声信号、および／または映像信号を生成するＡＲ／ＶＲアプリケーションを含んでもよい。例示的な実装形態例によると、没入型マルチメディアまたはコンピュータによってシミュレーションされた生活とも称される仮想現実（ＶＲ）は、少なくともいくつかの場合、実世界または想像した世界もしくは環境における場所にある環境もしくは物理的存在を、程度を変えて再現または模擬してもよい。少なくともいくつかの場合、拡張現実（ＡＲ）は、コンピュータによって生成された画像を実世界のユーザの視野上に重ね合わせてもよい。
【００４４】
ネットワーク１０８は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）、および／またはその他のネットワークであってもよい。コンピューティングデバイス１０２は、たとえば、音声信号／映像信号を受信してもよい。音声信号／映像信号は、例示的な実装形態例におけるＶＲコンテンツの一部として提供されてもよい。
【００４５】
図２は、人ＰがＨＭＤ１０４を通してＶＲ環境２０２を体験している物理空間２００の三人称視点である。この例では、ユーザがＨＭＤ１０４を装着しながらディスプレイ装置１１４を見ることができるよう、コンピューティングデバイス１０２は、ＨＭＤ１０４内に配置されている。ＶＲ環境２０２は、コンピューティングデバイス１０２によって生成されて、コンピューティングデバイス１０２のディスプレイ装置１１４上に表示される。
【００４６】
ＶＲ環境は、フレーム２０４など、フォービエイテッドレンダリングエンジン１２２によって生成されるフォービエイテッドフレームを含む。フォービエイテッドフレームの精度レベルは、注視点２０６からの距離が大きくなるについて次第に下がっていく。フレーム２０４から分かるように、注視点２０６の近くの画質は、注視点から離れた（たとえば、フレーム２０４のエッジの近くの）画質よりも高い。フォービエイテッドフレームの一部はより低精度レベルで描画されるので、フォービエイテッドフレームの描画には、より高精度レベルでフレームをすべて描画するのに必要なプロセッササイクルよりも少ないプロセッササイクルを必要とする。これに加えて、より低精度レベルで描画されるフォービエイテッドフレームの領域は、人の周辺視野に表示されることになるので、人は、精度の低下に気づき難い。さらには、精度が滑らかに低下するため、フォービエイテッドフレーム２０４などのフォービエイテッドフレームは、境界アーティファクトまたは精度レベルが変化すると生じるその他のアーティファクトがない。
【００４７】
図３Ａおよび図３Ｂは、たとえば、図２においてユーザが装着しているＨＭＤ１０４など、例示的なＨＭＤ３００の斜視図であり、図３Ｃは、ＨＭＤ３００とともに使用できる例示的な携帯電子機器３０２を示す図である。
【００４８】
携帯電子機器３０２は、携帯電子機器３０２の内蔵コンポーネントが収容される筐体３０３と、筐体３０３の外面にある、ユーザが利用可能なユーザインタフェース３０４とを備えてもよい。ユーザインタフェース３０４は、ユーザのタッチ入力を受け付けるように構成されたタッチ面３０６を備えてもよい。また、ユーザインタフェース３０４は、たとえば、実行ボタン、つまみ、ジョイスティックなど、ユーザによる操作のためのその他のコンポーネントを含んでもよい。いくつかの実装形態では、ユーザインタフェース３０４の少なくとも一部がタッチスクリーンとして構成されてもよく、ユーザインタフェース３０４の当該一部は、ユーザインタフェースの項目をユーザに表示するように、また、タッチ面３０６上のユーザからのタッチ入力を受け付けるように構成される。また、携帯電子機器３０２は、たとえば、ユーザインタフェース３０４において受け付けたユーザ入力に応答して、たとえば、ビームまたは光線などの光を筐体３０３のポートを通して選択的に発するように構成された光源３０８を備えてもよい。
【００４９】
ＨＭＤ３００は、フレーム３２０に連結された筐体３１０を備えてもよく、筐体３１０は、こちらもフレーム３２０に連結された、たとえばヘッドフォンに搭載されたスピーカを含む、音声出力装置３３０を有する。図３Ｂでは、筐体３１０の前方部分３１０ａが、筐体３１０に収容された構成要素のうちのいくつかが見えるよう、筐体３１０のベース部３１０ｂから離れるように回転する。ディスプレイ３４０は、筐体３１０の前方部分３１０ａの内部に面した側に搭載されてもよい。いくつかの実装形態では、ディスプレイ３４０は、図１のコンピューティングデバイス１０２など、前部３１０ａとベース部３１０ｂとの間に挿入されて固定されるコンピューティングデバイスからのディスプレイ装置である。
【００５０】
レンズ３５０は、筐体３１０内の、前方部分３１０ａが筐体３１０のベース部３１０ｂに対して閉位置のときのディスプレイ３４０とユーザの目との間に搭載されてもよい。いくつかの実装形態では、ＨＭＤ３００は、様々なセンサを含む検知システム３６０、および、プロセッサ３９０とＨＭＤ３００の操作を容易にするための様々な制御システム装置とを備える制御システム３７０を備えてもよい。
【００５１】
いくつかの実装形態では、ＨＭＤ３００は、静止画および動画を撮影するためのカメラ３８０を備えてもよい。カメラ３８０が撮影した画像は、没入型環境に相対的な実世界もしくは物理環境におけるユーザおよび／もしくは携帯電子機器３０２の物理的な位置を追跡するのに役立てるために利用されてもよく、ならびに／または透過（ｐａｓｓ  ｔｈｒｏｕｇｈ）モードでディスプレイ３４０上でユーザに表示されてもよく、実世界とコンピュータによって生成されたイメージからの画像の組合せを含む拡張現実環境を生成できるようになる。いくつかの実装形態では、透過モードを用いて、ＨＭＤ３００を外さないで、または、ＨＭＤ３００の設定を変更して筐体３１０をユーザの視線から外さないで、ユーザを一時的に没入型環境を離れてさせて実環境に戻すことができる。
【００５２】
いくつかの実装形態では、検知システム３６０は、たとえば、加速度計、ジャイロスコープ、磁力計、およびその他のこのようなセンサなど、様々な異なる種類のセンサを含むＩＭＵ（Ｉｎｅｒｔｉａｌ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｕｎｉｔ）３６２を含んでもよい。ＨＭＤ３００の位置および向きは、ＩＭＵ３６２に含まれるセンサが提供するデータに基づいて検出および追跡されてもよい。ＨＭＤ３００の検出された位置および向きによって、システムは、ユーザの頭部の視線方向と動きとを検出および追跡でき得る。
【００５３】
いくつかの実装形態では、ＨＭＤ３００は、ユーザの目線を検出および追跡するための視線トラッキングデバイス３６５を備えてもよい。視線トラッキングデバイス３６５は、たとえば、ユーザの目、または、瞳孔など、ユーザの目の特定部分の画像を撮影するための１つまたは複数のイメージセンサ３６５Ａを備えて、ユーザの視線の方向および動きを検出および追跡してもよい。いくつかの実装形態では、ＨＭＤ３００は、検出された視線が、ＡＲ体験または没入型ＶＲ体験における対応するやり取りに変換されるユーザ入力として処理されるよう、構成されてもよい。いくつかの実装形態では、ＨＭＤ３００は、ＡＲまたはＶＲ環境のフォービエイテッドレンダリングにおいて使用するための注視点を、ユーザの検出された視線を用いて特定するように構成される。
【００５４】
本明細書において説明したシステムおよび技術のさまざまな実装形態は、デジタル電子回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合せで実現できる。これらのさまざまな実装形態は、データおよび命令を送受信するために連結された特定用途プロセッサまたは汎用プロセッサであり得る少なくとも１つのプログラム可能なプロセッサと、ストレージシステムと、少なくとも１つの入力装置と、少なくとも１つの出力装置とを備えるプログラム可能なシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムでの実装を含み得る。
【００５５】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および／もしくはオブジェクト指向プログラミング言語で、ならびに／またはアセンブリ言語／機械言語で実現できる。本明細書において使用するとき、用語「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、機械命令および／またはデータを、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含むプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置、および／またはデバイス（たとえば、磁気ディスク、光学ディスク、メモリ、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ））を指す。用語「機械読み取り可能な信号」は、機械命令および／またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
【００５６】
ユーザとのやり取りを可能にするために、本明細書に記載のシステムおよび技術は、ユーザに情報を表示するための表示装置（たとえば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）ディスプレイ、または別の種類のディスプレイ）と、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス（たとえば、マウスまたはトラックボール）とを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとのやり取りを可能にすることもでき、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、任意の形式で受け付けられ得る。
【００５７】
本明細書に記載のシステムおよび技術は、バックエンドコンポーネント（たとえば、データサーバ）を備えるコンピュータシステム、ミドルウェアコンポーネント（たとえば、アプリケーションサーバ）を備えるコンピュータシステム、フロントエンドコンポーネント（たとえば、本明細書に記載のシステムおよび技術の実装形態とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータ）を備えるコンピュータシステム、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、フロントエンドコンポーネントの任意の組み合わせで実現されてもよい。当該システムのコンポーネントは、デジタルデータ通信（たとえば、通信ネットワーク）の任意の形式または媒体によって相互接続されてもよい。通信ネットワークとして、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、およびインターネットなどが挙げられる。
【００５８】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントとサーバとは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、クライアントとサーバとの関係を互いに有するコンピュータプログラムによって成り立つ。
【００５９】
本明細書に記載の実装形態に係る、滑らかに変化するフォービエイテッド画像を描画する方法４００を、図４に示す。方法４００は、フォービエイテッドレンダリングエンジン１２２の実装形態によって実行されてもよい。
【００６０】
動作４０２において、３Ｄシーンを取り出す。上述したように、３Ｄシーンは、メッシュおよび光源を含む複数のオブジェクト含んでもよい。メッシュは、三角形など、頂点によって規定される多角形の面から形成されてもよい。頂点の各々は、たとえば、３次元空間にＸ座標、Ｙ座標、およびＺ座標を有してもよい。面は、３つ、または、いくつかの実装形態では、３つ以上の同一面上の頂点によって規定され得る。メッシュは、複数の面によって規定され得、当該複数の面のうちのいくつかは、頂点を共有してもよい。
【００６１】
３Ｄシーンは、ローカルメモリから取り出されてもよく、または、ＡＲ／ＶＲコンテンツソース１０６など、別のコンピューティングデバイスから取り出されてもよい。３Ｄシーンを取り出すと、メッシュの面の少なくとも一部の面がテッセレートされてもよい。たとえば、より大きなメッシュ面（たとえば、予め定められた閾値よりも大きな表面積を有するメッシュにおける面）がテッセレートされて当該面を複数のさらに小さい面に分割されてもよい。このテッセレーションによって、さらなる頂点とより短いエッジが面上に生じることになる。ワープ動作によって、直線を曲線に曲げられる可能性があるので、エッジが長すぎる場合、視覚的アーティファクトが生じる可能性がある。より大きな表面をテッセレートすることによって、エッジを曲げることが問題にならなくなる。これに加えて、いくつかの実装形態では、テッセレーションは、テッセレーションシェーダまたはジオメトリシェーダを用いてＧＰＵによって行われる。
【００６２】
いくつかの実装形態では、画素当たりの誤り訂正を適用して、三角形のエッジがゆがめられることによって生じた歪みに対処できる。たとえば、フォービエイテッドレンダリング時にエラー値を計算して、出力画素値のアルファチャンネルに格納できる。エラー値は、ベクトルの補間された位置を画素当たりの計算によって生成された値と比較することよって算出できる。次に、最終画像の生成時、誤り訂正を適用できる。
【００６３】
動作４０４において、注視点を特定する。いくつかの実装形態では、注視点は、アイトラッカー１２４など、視線トラッキング技術を利用して特定される。ユーザの目が視野の周辺を移動すると、それに応じて注視点が移動する。いくつかの実装形態では、注視点は、ＨＭＤ１０４のレンズに基づいて特定される。たとえば、注視点は、レンズが最も高い視力を提供する点であってもよい。いくつかの実装形態では、注視点は、レンズの他の部分よりも視力が高い部分に対応する。たとえば、注視点は、レンズの９０％、レンズの９５％、またはレンズの９９％よりも視力が高いレンズの部分の中点として選択されてもよい。いくつかの実装形態では、ユーザの目の各々について別個の注視点が識別される。
【００６４】
動作４０６において、画面領域から中間の圧縮された空間まで３Ｄシーンの頂点をゆがめる。いくつかの実装形態では、頂点をゆがませることは、非線形関数を用いて頂点の座標を画面領域から圧縮された空間に変換することを含む。いくつかの実装形態では、このゆがませることは、魚眼レンズを適用することに似た効果がある。少なくともいくつかの実装形態では、ワープ関数は、ＧＰＵ頂点シェーダによって適用される。
【００６５】
少なくともいくつかの実装形態では、ゆがませることは、各頂点を画面座標に投影することによって行われる。画面座標は、−１と１との間のＸ画面座標値およびＹ画面座標値によって規定されてもよい。次に、注視点を原点とする画面座標系を基準として、投影された座標を再算出する。投影された座標は、−１と１との間の座標値を引き続き有するよう、スケール変更される。次に、非線形ワープ（変換）関数に従って、投影された座標を変換する。次に、（すなわち、注視点とは反対の）画面の中心に換算して、変換された座標値を再算出し、−１と１との間の値を有するように再びスケール変更される。次に、頂点を３Ｄシーンに再投影する。
【００６６】
非限定例として、同次座標の頂点（０，０．６，１，２）、（−０．６，０，１，２）、（０．６，０，１，２）によって記述された三角形を（ポストビューイング変換）考える。２Ｄ画面の座標は、（０，０．３）、（−０．３，０）、（０．３，０）である。注視点を（０．１，０）とする。（この例では、わかりやすくするために、注視点は、Ｘ軸上に置かれており、ｙ座標の再変換は必要ない。）ｘ間隔［−１，０．１］は、［−１，０］に再変換され、［０．１，１］は、［０，１］に再変換される。よって、再変換された頂点は、（（０−０．１）／１．１，（−０．３−０．０）／１），（（−０．３−０．１）／０．９，（０−０）／１），（（０．３−０．１）／０．９，（０−０）／１）となる。これらを簡素化したものが、（−０．０９，０．３）、（−０．３６，０）、（０．２２，０）である。たとえば、ｔ（ｄ）に対して√ｄ（変換関数）を用いると、これらは、（−０．３，０．５５）、（−０．６，０）、（０．４７，０）となる。ここでも、これらの頂点は、次のように、画像の中心を原点とする座標系に再変換される：（（−０．３０＋０．１）×１．１，（０．５５＋０）×１），（（−０．６＋０．１）×１．１，（０＋０）×１），（（０．４７＋０．１）×０．９，（０＋０）×１）または（−０．２２，０．５５）、（−０．５５，０）、（０．５１，０）。最後に、次に、これらの頂点を、（−０．４４，１．１，１，２）、（−１．１１，０，１，２）、（１．０３，０，１，２）のように３Ｄ同次座標に再投影する。
【００６７】
図５Ａおよび図５Ｂは、例示的なワープ関数が画像をサンプリングする様子を示す概略図である。図５Ａでは、オーバーレイ５００は、複数の円を含む。円の各々は、ゆがめられた画像を生成するためにサンプリングされる基礎となる画像空間（図示せず）の領域を表す。オーバーレイ５００は、シーンの注視点を中心に位置決めされる。図５Ａから分かるように、オーバーレイ５００の中心に近いほど円が小さくなり、画素を生成するために使用される基礎となる画像空間の領域も同様に小さくなる。オーバーレイ５００における円は、中心（注視点）から離れるにつれて大きくなり、ゆがめられた画像に含まれる１つの画素を生成するために基礎となる画像からサンプリングされる画素の数も同様に増える。図５Ｂのオーバーレイ５０２は、オーバーレイ５００が円ではなく四角形状の領域を含むことを除いて、オーバーレイ５００と同様である。ここでも、注視点から離れた領域ほど大きいため、これらの離れた領域に含まれる１つの画素を生成するためには、より多くの画素がサンプリングされる。
【００６８】
いくつかの実装形態では、画面領域に頂点を投影して、投影された頂点のＸ座標およびＹ座標と注視点のＸ座標およびＹ座標との差分を特定する。本明細書における例では、投影された頂点のＸ座標と注視点のＸ座標との差を、Ｘ’と称する。同様に、投影された頂点のＹ座標と注視点のＹ座標との差を、Ｙ’と称する。いくつかの実装形態において用いられる非線形ワープ関数の一例は、対数極座標変換である。Ｘデルタ、Ｙデルタである場合、その座標のゆがめられた座標を表すと、（ρ，θ）となる。
【００６９】
【数１】
2020522815.tif 000003
【００７０】
この例では、対数極座標変換は、連続的であり、データ整理を含まない。データ整理は、中間の（ゆがめられた）座標を表すものを有限にサンプリングした結果である。その他のワープ関数を用いてもよい。いくつかの実装形態では、ワープ関数は、投影された頂点と注視点との間のラジアル距離に応じて変化する非線形変換である。図６は、いくつかの例示的なワープ関数のプロットを示すグラフ６００を示す。プロットは、例示的なワープ関数の各々によって実行されるマッピングを示す。グラフ６００のＸ軸は、圧縮されていない空間における注視点からの距離であり、グラフ６００のＹ軸は、圧縮された（ゆがめられた）空間における注視点からの距離である。グラフ６００は、プロット６０２ａと、プロット６０４ａと、プロット６０６ａと、プロット６０８ａと、プロット６１０ａとを含む。プロット６０２ａは、関数６０２ｂを表す。プロット６０４ａは、関数６０４ｂを表す。プロット６０６ａは、関数６０６ｂを表す。プロット６０８ａは、関数６０８ｂを表す。プロット６１０ａは、関数６１０ｂを表す。
【００７１】
プロットの各々は、注視点からの距離に対する関数を表し、当該距離は、ｒとして表される。特定の頂点について、ｒは、下記の式を用いて算出され得る。
【００７２】
【数２】
2020522815.tif 000004
【００７３】
いくつかの実装形態では、距離ｒは、画面領域への投影後の頂点の位置と（画面領域での）注視点との間の投影距離である。
【００７４】
プロットの傾斜が４５度よりも大きい場合、圧縮されていない画面領域は、圧縮された空間では膨張する。これらの領域は、最終画像において、より高解像度で描画されることになる。プロットの傾斜が４５度よりも小さい場合、圧縮されていない画面領域は、圧縮された空間では縮小する。これらの領域は、最終画像において、より低解像度で描画されることになる。図６に示すプロットおよびワープ関数は、例である。いくつかの実装形態においてその他のワープ関数を用いてもよい。たとえば、いくつかの実装形態は、注視点（ｒ）からの距離の様々な二次多項式または三次多項式をワープ関数として用いてもよい。これに加えて、いくつかの実装形態は、ｌｏｇ（ｒ＋１）などの対数ワープ関数、または√ｒなどの根ワープ関数を用いる。
【００７５】
これに加えて、いくつかの実装形態は、距離（ｒ）ではなく、Ｘ（Ｘ’）における注視点からの距離およびＹ（Ｙ’）における注視点からの距離のワープ関数を含む。これらの例では、縦の次元でワープは、横の次元とは異なるように実行され得る。これに加えて、いくつかの実装形態は、非対称ワープ関数を含む。たとえば、非対称ワープ関数を用いて、注視点よりも上にある頂点を注視点よりも下にある頂点とは異なるようにゆがませることができる。これに加えて、非対称ワープ関数を用いて、（たとえば、ユーザの鼻によって遮られる可能性のある領域をより大きくゆがませて、視野のその他の領域により多くの解像度を残しておくために）注視点の左側の頂点を、注視点の右側の頂点とは異なるようにゆがませることができる。
【００７６】
ここで図４に戻ると、動作４０８において、ゆがめられた頂点に基づいて中間画像を描画する。いくつかの実装形態では、この中間画像は、所望の最終画像の解像度よりも低い解像度で描画される。いくつかの実装形態では、ＧＰＵの画素シェーダが、圧縮された（ゆがめられた）空間にメッシュの表面（たとえば、三角形）を描画する。３Ｄシーンによっては、画像を描画することは、表面の少なくとも一部にテクスチャマップとして画像を適用することを含んでもよい。この画像は、マルチサンプリングアンチエイリアシング（ＭＳＡＡ：Ｍｕｌｔｉ−Ｓａｍｐｌｅ  Ａｎｔｉ−Ａｌｉａｓｉｎｇ）を用いて描画されてもよい。たとえば、いくつかの実装形態は、４ｘＭＳＡＡまたは８ｘＭＳＡＡを用いて画像を描画する。圧縮された（ゆがめられた）画像に対してＭＳＡＡが実行されるので、ＭＳＡＡを実行するために必要なプロセッササイクルは、最終画像の画素の各々に対してＭＳＡＡを実行するために必要なプロセッササイクルよりも少ない。いくつかの実装形態では、ＭＳＡＡは、ＧＰＵによって実行される。
【００７７】
いくつかの実装形態では、中間の（ゆがめられた）画像の画素数は、所望の最終画像の約４分の１である。たとえば、中間画像は、縦の次元の所望の最終画像の画素数の半分の画素と、横の次元の所望の最終画像の画素数の半分の画素とを有してもよく、所望の最終画像の画素数の４分の１の画素数になる。描画される画素の数が減るので、中間画像を描画するのに必要な時間および／またはプロセッササイクルが減ることになる。この例では、フルサイズの最終画像を描画するのに必要な時間および／またはプロセッササイクルの約の４分の１の時間および／またはプロセッササイクルが中間画像を描画するのに必要になる。
【００７８】
いくつかの実装形態では、中間画像に含まれる画素の数のフルサイズの最終画像に含まれる画素の数に対するその他の割合を用いる。たとえば、フルサイズの最終画像のアスペクト比のほうが幅広いとき、フルサイズの最終画像のより広い部分がユーザの周辺視野に含まれ、より低精度レベルで描画できるため、画素数をさらに低減することが可能である。いくつかの実装形態では、中間画像用の解像度を選択するために、最終画像の所望の解像度、最終画像のアスペクト比、注視点を特定するためにアイトラッカーを使用可能かどうか、ＨＭＤに含まれるレンズの視力プロファイル、および動作４０６において用いられるワープ関数を含む、様々な要因が用いられる。
【００７９】
図７Ａは、中間（ゆがめられた）画像７００の例を示す図である。図７Ｂは、画像７０２においてゆがめられていない対応するシーンを示す図である。また、図７Ｂは、中間画像７００をゆがませるための注視点７０４を含む。図７Ａから分かるように、注視点（たとえば、ライオンの頭部）の近くのシーンの部分は、中間画像７００の大部分を占めるようにゆがめられて（すなわち、より多くの画素／より高解像度で描画されて）おり、注視点よりも離れたシーンの部分（たとえば、カーテン）は、画像をあまり占めないようにゆがめられている（すなわち、より少ない画素／より低解像度で描画されている）。
【００８０】
ここで図４に戻ると、動作４１０において、中間画像のゆがみを解消して最終フォービエイテッド画像を生成する。いくつかの実装形態では、最終フォービエイテッド画像に含まれる画素ごとの画素値は、中間画像における対応する位置において識別され得る。たとえば、動作４０６で用いられたワープ関数と同じワープ関数を最終フォービエイテッド画像に含まれる画素位置に適用して中間画像における画素値の対応する位置を識別できる。いくつかの実装形態では、最終フォービエイテッド画像が描画されると、ＧＰＵの画素シェーダがこのワープ関数を実行して中間画像から画素値を取り出す。いくつかの実装形態では、ゆがみ解消時、フォービアル（ｆｏｖｅａｌ）領域内でバイリニアフィルタリングが用いられる。
【００８１】
方法４００の実装方法は、ラップトップコンピュータ上で標準ＧＰＵを用いてリアルタイムでフォービエイテッド映像レンダリングを実行するために使用できる。このリアルタイム実行によって、応答性に優れたＡＲ環境および／またはＶＲ環境の生成が可能になる。
【００８２】
いくつかの実装形態では、映像を描画するとき、最終画像の少なくとも周辺領域（たとえば、注視点からより遠い領域）においてテンポラルアンチエイリアシングが使用される。たとえば、テンポラルアンチエイリアシングの方法とは、前フレームとのアルファブレンディングを利用することである。いくつかの実装形態では、移動がないときはアンチエイリアシングがより滑らかになり、カメラが移動しているときは一時的なフェージングがより短くなるよう、現在のフレームと前フレームとの間の透明度は、カメラの移動量に従って変化する。
【００８３】
図８は、いくつかの実装形態に係る、例示的なフォービエイテッドレンダリング処理８００の概略図である。処理８００は、たとえば、フォービエイテッドレンダリングエンジン１２２によって実行され、ＡＲまたはＶＲ環境用の画像または映像を生成してもよい。この処理への入力の１つは、入力３Ｄシーン８０２である。いくつかの実装形態では、頂点シェーダ、ジオメトリシェーダ、またはフラグメントシェーダなど、ＧＰＵのシェーダによって非線形ワープ関数が入力３Ｄシーン８０２の頂点に適用されて、（この例の画像の中心に示される）注視点を中心にゆがめられた３Ｄシーン８０４が生成される。いくつかの実装形態では、画素シェーダは、ゆがめられた３Ｄシーン８０４を低解像度で描画して中間（ゆがめられた）画像８０６を生成する。いくつかの実装形態では、アンフォービエイティング（ｕｎ−ｆｏｖｅａｔｉｎｇ）シェーダ（たとえば、本明細書に記載のマッピングを行うように構成されたＧＰＵの画素シェーダ）は、中間画像８０６を読み出してゆがみを解消し、フル解像度で最終画像８０８を生成する。いくつかの実装形態では、映像を生成するとき、テンポラルブレンディングを用いて、注視点からより遠い領域に前フレームを混ぜ合わせる。これに加えて、いくつかの実装形態では、バイリニアフィルタリングを用いて、最終画像８０８の注視点により近い部分を生成する。
【００８４】
図９は、いくつかの実装形態に係る、例示的なフォービエイテッドレンダリング処理９００の概略図である。処理９００は、たとえば、フォービエイテッドレンダリングエンジン１２２によって実行され、ＡＲまたはＶＲ環境用の画像または映像を生成してもよい。この処理に対する入力のうちの１つは、出力３Ｄメッシュ９０２である。メッシュ９０２は、ＡＲ／ＶＲアプリケーション１２０などのアプリケーションによって生成される３Ｄシーンのコンポーネントであってもよい。メッシュ９０２の頂点を変換してメッシュをゆがませて、ゆがめられたメッシュ９０４を生成する。たとえば、ユーザの視線に基づいて特定された注視点からの頂点の距離に基づく非線形ワープ関数を適用することによって、メッシュ９０２の頂点がゆがめられてもよい。次に、ゆがめられたメッシュ９０４を描画してより低解像度の中間画像９０６を生成する。次に、中間画像を逆にゆがめて（ゆがみを解消して）、描画されたメッシュの最終画像９０８を生成する。
【００８５】
上記例の多くは、コンピュータによって生成された、３次元シーンからの画像／映像を描画することに関するが、いくつかの実装形態では、本明細書に記載の技術およびシステムは、現実シーンのフォービエイテッドバージョンの標準的な写真および映像を描画するために使用される。画像／映像が画面全体を覆うことになる場合、フォービエイテッド画像の画素ごとにソース画像における元の位置を計算する画素シェーダを用いて画像を描画できる。画像／映像が３Ｄシーンに統合されることになる場合、メッシュのテクスチャとして利用して画像／映像とともにメッシュワープ処理を用いることができる。動的画像または映像を描画するために、いくつかの実装形態は、バッファを用いて（たとえば、リモートソースまたはハードドライブからの）画像／映像データをキャッシュする。ハードドライブへのアクセスまたはリモートソースからのデータ受信に伴う遅延なく、バッファから画像／映像データを素早く取り出すことができるため、バッファによって、滑らかに描画できるようになる。
【００８６】
図１０は、本明細書に記載の技術とともに用いられ得るコンピュータデバイス１０００およびモバイルコンピュータデバイス１０５０の例を示す図である。コンピューティングデバイス１０００は、プロセッサ１００２と、メモリ１００４と、記憶装置１００６と、メモリ１００４および高速拡張ポート１０１０に接続された高速インタフェース１００８と、低速バス１０１４および記憶装置１００６に接続された低速インタフェース１０１２とを備える。構成要素１００２、１００４、１００６、１００８、１０１０、および１０１２の各々は、様々なバスを用いて互いに接続されており、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。プロセッサ１００２は、コンピューティングデバイス１０００内で実行するための命令を処理することができ、命令は、高速インタフェース１００８に連結されたディスプレイ１０１６など、外付けの入出力装置上のＧＵＩのためのグラフィック情報を表示するためのメモリ１００４に格納された命令または記憶装置１００６上に格納された命令を含む。その他の実装形態では、複数のプロセッサおよび／または複数のバスが複数のメモリおよび複数種類のメモリとともに適宜利用されてもよい。また、（たとえば、サーババンク、ブレードサーバ群、または多重プロセッサシステムなどとしての）必要な動作の一部を各々が提供する複数のコンピューティングデバイス１０００が接続されてもよい。
【００８７】
メモリ１００４は、コンピューティングデバイス１０００内の情報を格納する。一実装形態では、メモリ１００４は、１つまたは複数の揮発性記憶装置である。別の実装形態では、メモリ１００４は、１つまたは複数の不揮発性記憶装置である。また、メモリ１００４は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ読み取り可能な媒体であってもよい。
【００８８】
記憶装置１００６は、コンピューティングデバイス１０００用の大容量ストレージを提供できる。一実装形態では、記憶装置１００６は、フロッピー（登録商標）ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、または、ストレージエリアネットワークもしくはその他の構成に含まれる装置を含む装置のアレイなど、コンピュータ読み取り可能な媒体であってもよく、または、当該コンピュータ読み取り可能な媒体を含んでもよい。情報担体にコンピュータプログラムプロダクトが有形に含まれ得る。また、このコンピュータプログラムプロダクトは、命令を含んでもよく、当該命令は、実行されると、上述した方法など、１つ以上の方法を実行する。情報担体は、メモリ１００４、記憶装置１００６、または、プロセッサ１００２上のメモリなど、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
【００８９】
高速コントローラ１００８は、コンピューティングデバイス１０００のための多くの帯域幅を必要とする動作を管理し、低速コントローラ１０１２は、より低帯域幅の多くを必要とする動作を管理する。このような機能の割振りは、例示に過ぎない。一実装形態では、高速コントローラ１００８は、（たとえば、グラフィックスプロセッサまたはアクセラレータを通じて）メモリ１００４、ディスプレイ１０１６に連結され、様々な拡張カード（図示せず）を受け付け得る高速拡張ポート１０１０に連結される。この実装形態では、低速コントローラ１０１２は、記憶装置１００６および低速拡張ポート１０１４に連結される。様々な通信ポート（たとえば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、無線Ｅｔｈｅｒｎｅｔ）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの１つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
【００９０】
コンピューティングデバイス１０００は、図示したような複数の異なる形態で実現されてもよい。たとえば、標準的なサーバ１０２０として、または多くの場合、このようなサーバの群で実現されてもよい。または、ラックサーバシステム１０２４の一部として実現されてもよい。これに加えて、ラップトップコンピュータ１０２２など、パーソナルコンピュータで実現されてもよい。これに代えて、コンピューティングデバイス１０００の構成要素は、デバイス１０５０など、モバイル機器（図示せず）に含まれるその他の構成要素と組み合わされてもよい。このようなデバイスの各々は、コンピューティングデバイス１０００、１０５０のうちの１つ以上を含んでよく、互いに通信を行う複数のコンピューティングデバイス１０００、１０５０によってシステム全体が構成されてもよい。
【００９１】
コンピューティングデバイス１０５０は、特に、プロセッサ１０５２と、メモリ１０６４と、ディスプレイ１０５４などの入出力装置と、通信インタフェース１０６６と、送受信装置１０６８とを備える。デバイス１０５０には、追加ストレージを提供するためのマイクロドライブまたはその他の装置など、記憶装置が提供されてもよい。構成要素１０５０、１０５２、１０６４、１０５４、１０６６、および１０６８の各々は、様々なバスを用いて互いに接続されており、当該構成要素のうちのいくつかは、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。
【００９２】
プロセッサ１０５２は、メモリ１０６４に格納された命令を含む命令をコンピューティングデバイス１０５０内で実行できる。プロセッサは、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサによって、たとえば、ユーザインタフェース、デバイス１０５０によって実行されるアプリケーション、およびデバイス１０５０による無線通信の制御など、デバイス１０５０のその他の構成要素間の協調が可能になってもよい。
【００９３】
プロセッサ１０５２は、ディスプレイ１０５４に連結された制御インタフェース１０５８および表示インタフェース１０５６を通じてユーザと通信してもよい。ディスプレイ１０５４は、たとえば、ＴＦＴ  ＬＣＤ（Ｔｈｉｎ−Ｆｉｌｍ−Ｔｒａｎｓｉｓｔｏｒ  Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）もしくはＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。表示インタフェース１０５６は、グラフィック情報およびその他の情報をユーザに提示するためのディスプレイ１０５４を駆動するための適切な回路を備えてもよい。制御インタフェース１０５８は、ユーザからコマンドを受信し、プロセッサ１０５２に実行を依頼するために当該コマンドを変換してもよい。これに加えて、デバイス１０５０のその他のデバイスとの近距離通信が可能になるよう、プロセッサ１０５２と通信する外部インタフェース１０６２が提供されてもよい。外部インタフェース１０６２によって、たとえば、いくつかの実装形態では有線通信、その他の実装形態では無線通信が可能になってもよく、また、複数のインタフェースが利用されてもよい。
【００９４】
メモリ１０６４は、コンピューティングデバイス１０５０内の情報を格納する。メモリ１０６４は、１つまたは複数のコンピュータ読み取り可能な媒体、１つまたは複数の揮発性記憶装置、または、１つまたは複数の不揮発性記憶装置、のうちの１つ以上として実現され得る。また、拡張メモリ１０７４は、拡張インタフェース１０７２を通してデバイス１０５０に提供および接続されてもよい。拡張インタフェース１０７２は、たとえば、ＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ  Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）カードインタフェースを含んでもよい。このような拡張メモリ１０７４は、デバイス１０５０のための追加の記憶空間を提供してもよく、または、デバイス１０５０のためのアプリケーションまたはその他の情報も格納してもよい。具体的には、拡張メモリ１０７４は、上述した工程を実行または補助するための命令を含んでもよく、セキュアな情報も含んでもよい。よって、たとえば、拡張メモリ１０７４は、デバイス１０５０のためのセキュリティモジュールとして提供されてもよく、デバイス１０５０のセキュアな使用を可能にする命令がプログラムされていてもよい。これに加えて、ハッキングできない方法でＳＩＭＭカード上にＩＤ情報を置くなど、ＳＩＭＭカードを介してセキュアなアプリケーションが追加情報とともに提供されてもよい。
【００９５】
メモリは、たとえば、後述するフラッシュメモリおよび／またはＮＶＲＡＭメモリを含んでもよい。一実装形態では、情報担体にコンピュータプログラムプロダクトが有形に含まれる。このコンピュータプログラムプロダクトは、命令を含み、当該命令は、実行されると、上述した方法など、１つ以上の方法を実行する。情報担体は、メモリ１０６４、拡張メモリ１０７４、またはプロセッサ１０５２上のメモリなど、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体であり、たとえば、送受信装置１０６８または外部インタフェース１０６２を介して受信されてもよい。
【００９６】
デバイス１０５０は、通信インタフェース１０６６を通して無線通信を行ってもよい。通信インタフェース１０６６は、必要であれば、デジタル信号処理回路を備えてもよい。通信インタフェース１０６６によって、とくに、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳ、もしくはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳなど、様々なモードまたはプロトコル下の通信が可能になってもよい。このような通信は、たとえば、無線周波数送受信装置１０６８を通して生じてもよい。これに加えて、Ｂｌｕｅｔｏｏｔｈ、ＷｉーＦｉ、またはその他のこのような送受信装置（図示せず）を用いるなどして、近距離通信が生じてもよい。これに加えて、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信モジュール１０７０は、追加のナビゲーション関係または位置関係の無線データをデバイス１０５０に提供してもよい。追加のナビゲーション関係または位置関係の無線データは、デバイス１０５０上で実行するアプリケーションによって適宜利用され得てもよい。
【００９７】
また、デバイス１０５０は、オーディオコーデック１０６０を用いて、音声による通信を行ってもよい。オーディオコーデック１０６０は、ユーザから音声情報を受け付け、使用可能なデジタル情報に変換してもよい。同様に、オーディオコーデック１０６０は、たとえば、デバイス１０５０のハンドセットにおいて、スピーカを通してなど、ユーザ用の音を生成してもよい。このような音は、音声電話通話からの音声を含んでもよく、録音音声（たとえば、音声メッセージ、音楽ファイルなど）を含んでもよく、デバイス１０５０上で動作するアプリケーションによって生成された音を含んでもよい。
【００９８】
コンピューティングデバイス１０５０は、図示したような複数の異なる形態で実現されてもよい。たとえば、携帯電話１０８０として実現されてもよい。また、スマートフォン１０８２、携帯情報端末、または他の同様のモバイル機器の一部として実現されてもよい。
【００９９】
本明細書において説明したシステムおよび技術のさまざまな実装形態は、デジタル電子回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合せで実現できる。これらのさまざまな実装形態は、ストレージシステム、少なくとも１つの入力装置、および少なくとも１つの出力装置とデータおよび命令を送受信するために連結された特定用途プロセッサまたは汎用プロセッサであり得る少なくとも１つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムでの実現を含み得る。
【０１００】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および／もしくはオブジェクト指向プログラミング言語で、ならびに／またはアセンブリ言語／機械言語で実現できる。本明細書において使用するとき、用語「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含むプログラム可能なプロセッサに機械命令および／またはデータを提供するために使用される任意のコンピュータプログラムプロダクト、装置、および／またはデバイス（たとえば、磁気ディスク、光学ディスク、メモリ、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ））を指す。用語「機械読み取り可能な信号」は、プログラム可能なプロセッサに機械命令および／またはデータを提供するために使用される任意の信号を指す。
【０１０１】
ユーザとのやり取りを可能にするために、本明細書に記載のシステムおよび技術は、ユーザに情報を表示するための表示装置（たとえば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）画面、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ））と、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス（たとえば、マウスまたはトラックボール）とを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとのやり取りを可能にすることもでき、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、任意の形式で受け付けられ得る。
【０１０２】
本明細書に記載のシステムおよび技術は、（たとえば、データサーバとしての）バックエンドコンポーネントを備えるコンピュータシステム、ミドルウェアコンポーネント（たとえば、アプリケーションサーバ）を備えるコンピュータシステム、フロントエンドコンポーネント（たとえば、本明細書に記載のシステムおよび技術の実装形態とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータ）を備えるコンピュータシステム、または、このようなバックエンドコンポーネント、ミドルウェアコンポーネント、フロントエンドコンポーネントの任意の組み合わせを備えるコンピュータシステムで実現され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信（たとえば、通信ネットワーク）によって互いに接続され得る。通信ネットワークとして、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、インターネットなどが挙げられる。
【０１０３】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、クライアントとサーバとの関係を互いに有するコンピュータプログラムによって成り立つ。
【０１０４】
いくつかの実装形態では、図１に示すコンピューティングデバイスは、フレームレートを上げるおよび／または描画に必要なプロセッササイクルを減らすためにフォービエイテッドフレームを用いてＡＲまたはＶＲ環境を生成するための、仮想現実とインタフェース接続するセンサ（ＶＲヘッドセット／ＨＭＤ装置１０９０）を備え得る。たとえば、コンピューティングデバイス１０２０または図１に示すその他のコンピューティングデバイス上に含まれる１つ以上のセンサは、ＶＲヘッドセット１０９０に入力を行うことができ、または、一般に、ＶＲ空間に入力を行うことができる。センサは、タッチ画面、加速度計、ジャイロスコープ、圧力センサ、生体センサ、温度センサ、温度センサ、および周辺光センサを含み得るが、これらに限定されない。コンピューティングデバイス１０２０は、これらのセンサを用いて、後にＶＲ空間への入力として用いられ得る、ＶＲ空間におけるコンピューティングデバイスの絶対位置および／または検出された回転を特定することができる。たとえば、コンピューティングデバイス１０２０は、コントローラ、レーザーポインター、キーボード、武器など、仮想オブジェクトとしてＶＲ空間に組み込まれてもよい。ＶＲ空間に組み込むときにコンピューティングデバイス／仮想オブジェクトをユーザが位置付けることによって、ユーザは、ＶＲ空間で仮想オブジェクトを特定の方法で見ことができるよう、コンピューティングデバイスを位置付けることができる。たとえば、仮想オブジェクトがレーザーポインターを表す場合、ユーザは、コンピューティングデバイスを実際のレーザーポインターであるかのように操作できる。ユーザは、コンピューティングデバイスを左右、上下、円を描いて動かすことなどができ、レーザーポインターを使用する場合と同様の方法で当該デバイスを使用できる。
【０１０５】
いくつかの実装形態では、コンピューティングデバイス１０２０上に備えられたまたは接続された１つ以上の入力装置をＶＲ空間への入力装置として利用できる。入力装置は、タッチ画面、キーボード、１つ以上のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロフォン、イヤホンもしくは入力機能付きのワイヤレスイヤホン、ゲームコントローラ、またはその他の接続可能な入力装置を含み得るが、これらに限定されない。コンピューティングデバイスがＶＲ空間に組み込まれるときにコンピューティングデバイス１０２０上に備えられた入力装置とやり取りを行っているユーザは、ＶＲ空間で特定のアクションを起こさせることができる。
【０１０６】
いくつかの実装形態では、コンピューティングデバイス１０２０のタッチ画面をＶＲ空間のタッチパッドとして描画できる。ユーザは、当該コンピューティングデバイス１０２０のタッチ画面とやり取りができる。このやり取りは、たとえば、ＶＲ空間で描画されたタッチパッド上の動きとして、ＶＲヘッドセット１０９０において描画される。描画された動きは、ＶＲ空間の仮想オブジェクトを制御できる。
【０１０７】
いくつかの実装形態では、コンピューティングデバイス１０２０上に含まれた１つ以上の出力装置は、ＶＲ空間においてＶＲヘッドセット１０９０のユーザに出力および／またはフィードバックを提供できる。出力およびフィードバックは、視覚的、触覚的、または音声であり得る。出力および／またはフィードバックは、バイブレーション、点滅をオンオフさせること、および／または１つ以上のライトまたはストロボを点滅させること、アラームを鳴らすこと、チャイムを再生すること、曲を再生すること、および音声ファイルを再生することなどを含み得るが、これらに限定されない。出力装置は、バイブレーションモータ、振動コイル、圧電素子、静電デバイス、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）、ストロボ、およびスピーカを含み得るが、これらに限定されない。
【０１０８】
いくつかの実装形態では、コンピューティングデバイス１０２０は、コンピュータによって生成された３Ｄ環境において、別のオブジェクトとして見えてもよい。ユーザによるコンピューティングデバイス１０２０とのやり取り（たとえば、タッチ画面を回転させる、振る、タッチする、タッチ画面の端から端まで指をスワイプすること）は、ＶＲ空間のオブジェクトとのやり取りとして解釈され得る。ＶＲ空間でのレーザーポインターの例では、コンピューティングデバイス１０２０は、コンピュータによって生成された３Ｄ環境において、仮想レーザーポインターとして見える。ユーザがコンピューティングデバイス１０２０を操作すると、ＶＲ空間のユーザは、レーザーポインターの動きが見える。ユーザは、コンピューティングデバイス１０２０上またはＶＲヘッドセット１０９０上のＶＲ環境でのコンピューティングデバイス１０２０とのやり取りからフィードバックを受ける。
【０１０９】
いくつかの実装形態では、コンピューティングデバイス１０２０は、タッチ画面を備えてもよい。たとえば、ユーザは、タッチ画面上で起こる事を、ＶＲ空間内で起こる事と連動するよう真似できる特定のやり方でタッチ画面とやり取りできる。たとえば、ユーザは、ピンチするタイプの動作を使ってタッチ画面上に表示されたコンテンツをズームしてもよい。タッチ画面上のこのピンチするタイプの動作によって、ＶＲ空間で提供されている情報がズームされる。別の例では、コンピューティングデバイスは、コンピュータによって生成された３Ｄ環境において仮想ブックとして描画されてもよい。ＶＲ空間では、本のページをＶＲ空間に表示することができ、ユーザの指をタッチ画面の端から端までスワイプさせることは、仮想ブックのページをめくる／フリップすることであると解釈され得る。各ページがめくられる／フリップされると、ページコンテンツの変化を見ることに加えて、本のページをめくる音など、音声フィードバックがユーザに提供されてもよい。
【０１１０】
いくつかの実装形態では、コンピューティングデバイスに加えて、１つ以上の入力装置（たとえば、マウス、キーボード）をコンピュータによって生成された３Ｄ環境に描画できる。描画された入力装置（たとえば、描画されたマウス、描画されたキーボード）は、ＶＲ空間に描画されると、ＶＲ空間のオブジェクトを制御するために利用され得る。
【０１１１】
コンピューティングデバイス１０００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他適切なコンピュータなど、様々な形態のデジタルコンピュータおよびデバイスを表すよう意図されるが、これらに限定されない。コンピューティングデバイス１０５０は、携帯情報端末、携帯電話、スマートフォン、およびその他同様のコンピューティングデバイスなど、様々な形態のモバイル機器を表すよう意図される。本明細書に示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示に過ぎず、本明細書に記載および／またはクレームされた発明の実装形態を限定するものではない。
【０１１２】
図１１Ａ〜図１１Ｃは、いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像を含む。たとえば、この画像は、フォービエイテッドレンダリングエンジン１２２の実施によって描画されてもよい。図１１Ａは、画像の中心近くに注視点１１０２を有するフォービエイテッド画像１１００を含む。図１１Ｂは、画像の左側近くに注視点１１０６を有するフォービエイテッド画像１１０４を含む。図１１Ｃは、画像の右側近くに注視点１１１０を有するフォービエイテッド画像１１０８を含む。
【０１１３】
図１２Ａ〜図１２Ｄは、いくつかの実装形態に係る、シーンに含まれる例示的なフォービエイテッド画像を含む。たとえば、画像は、フォービエイテッドレンダリングエンジン１２２の実施によって描画されてもよい。図１２Ａは、画像の中心近くに注視点１２０２を有するフォービエイテッド画像１２００を含む。図１２Ｂは、画像の左側近くに注視点１２０６を有するフォービエイテッド画像１２０４を含む。図１２Ｃは、画像の左下近くに注視点１２１０を有するフォービエイテッド画像１２０８を含む。図１２Ｄは、画像の左下近くに注視点１２１４を有するフォービエイテッド画像１２１２を含む。
【０１１４】
図１１Ａ〜図１１Ｃおよび図１２Ａ〜図１２Ｄに示す画像は、静止画像、動的に生成された画像、映像のフレームから生成することができ、または、ＶＲ環境内で生成された画像のシーケンスの一部として生成できる。
【０１１５】
いくつかの実施形態を説明したが、本明細書の趣旨および範囲から逸脱することなく、様々な変更がなされてもよいことが理解されるだろう。
【０１１６】
これに加えて、図示した論理フローは、所望の結果を実現するために、図示した特定の順序またはシーケンス順である必要はない。これに加えて、記載のフローにその他のステップが提供されてもよく、ステップが排除されてもよく、記載のシステムにその他の構成要素が追加または削除されてもよい。したがって、その他の実施形態が、添付の特許請求の範囲に含まれる。
【０１１７】
本明細書に記載したように、上述の実装形態の特定の特徴を例示したが、当業者であれば、多くの変形例、代替例、変更例、および均等物を思いつくであろう。そのため、当然ながら、特許請求の範囲は、実装形態の範囲に含まれるこのような変形例および変更例のすべてを包含するものとする。これらは、ほんの一例として提示されたものであり、限定ではなく、形式および詳細についてさまざまな変更がなされ得ることを理解されたい。本明細書に記載の装置および／または方法のいずれの部分も、相互に排他的な組み合わせを除く、あらゆる組合せに組み合わされ得る。本明細書に記載の実装形態は、記載されたそれぞれ異なる実装形態の機能、構成要素、および／または特徴のさまざまな組合せおよび／または部分的な組合せを含み得る。
【０１１８】
以下に、いくつかの例を記載する。
（例１）注視点に基づいて３Ｄシーンをゆがませるステップと、ゆがめられた３Ｄシーンを描画して第１画像を生成するステップと、第１画像のゆがみを解消して第２画像を生成するステップとを含む、方法。
【０１１９】
（例２）第１画像の画素の数は、第２画像よりも少ない、例１の方法。
（例３）第１画像の画素の数は、第２画像の４分の１以下である、例２の方法。
【０１２０】
（例４）３Ｄシーンをゆがませるステップは、注視点からの距離の非線形関数を用いて３Ｄシーンをゆがませるステップを含む、先行する例に記載の方法。
【０１２１】
（例５）第２画像は、映像のフレームである、先行する例に記載の方法。
（例６）３Ｄシーンをゆがませるステップは、３Ｄシーンを不均一に変更するステップを含む、先行する例に記載の方法。
【０１２２】
（例７）３Ｄシーンを不均一に変更するステップは、３Ｄシーンの異なる部分を異なる量だけ変更するステップを含む、例６の方法。
【０１２３】
（例８）３Ｄシーンを不均一に変更するステップは、３Ｄシーンの異なる部分を異なる方向に変更するステップを含む、例６の方法。
【０１２４】
（例９）３Ｄシーンをゆがませるステップは、３Ｄシーンの頂点を中間の圧縮された空間に変換するステップを含む、先行する例に記載の方法。
【０１２５】
（例１０）頂点を中間の圧縮された空間に変換するステップは、頂点の位置に非線形関数を適用するステップを含む、例９の方法。
【０１２６】
（例１１）頂点の位置に非線形関数を適用するステップは、頂点の各頂点の位置を、各頂点から注視点までの距離の平方根に基づいて修正するステップを含む、例１０の方法。
【０１２７】
（例１２）頂点の位置に非線形関数を適用するステップは、頂点に対数変換または対数極座標変換を適用するステップを含む、例１０の方法。
【０１２８】
（例１３）頂点を変換するステップは、頂点の各々をビューポートに投影するステップと、注視点をビューポートに投影するステップと、投影された頂点と投影された注視点との距離に基づいて、投影された頂点の座標を変換するステップと、変換された頂点を３Ｄシーンに再投影するステップとを含む、例１０の方法。
【０１２９】
（例１４）注視点に基づいて３Ｄシーンをゆがませるステップは、３Ｄシーンの横の次元が縦の次元とは異なる程度ゆがめられるよう、注視点からの垂直距離および注視点からの水平距離に基づいてワープ関数を使用するステップを含む、先行する例に記載の方法。
【０１３０】
（例１５）注視点に基づいて３Ｄシーンをゆがませるステップは、３Ｄシーンの注視点の一方側を他方側とは異なる量だけゆがませる非対称ワープ関数を使用するステップを含む、先行する例に記載の方法。
【０１３１】
（例１６）ゆがめられた３Ｄシーンを描画するステップは、ゆがませる時の三角形のエッジの歪みを推定することに基づいて第１画像の画素の誤り訂正値を算出するステップを含む、先行する例に記載の方法。
【０１３２】
（例１７）第１画像のゆがみを解消するステップは、第２画像の画素を生成しながら誤り訂正値を適用するステップを含む、例１６の方法。
【０１３３】
（例１８）第１画像のゆがみを解消して第２画像を生成するステップは、第２画像のフォービアル（ｆｏｖｅａｌ）領域においてバイリニアフィルタリングを使用するステップを含む、先行する例に記載の方法。
【０１３４】
（例１９）注視点を特定するステップをさらに含む、先行する例に記載の方法。
（例２０）注視点を特定するステップは、ユーザの目の位置を追跡することに基づいて注視点を特定するステップを含む、例１９の方法。
【０１３５】
（例２１）注視点を特定するステップは、ＨＭＤのレンズのプロパティに基づいて注視点を特定するステップを含む、例１９または２０の方法。
【０１３６】
（例２２）システムであって、少なくとも１つのプロセッサと、命令を格納したメモリとを備え、命令は、少なくとも１つのプロセッサによって実行されると、システムに、注視点に基づいて３Ｄシーンをゆがませ、ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、第１画像のゆがみを解消させて第２画像を生成させる、システム。
【０１３７】
（例２３）ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をさらに備え、システムに注視点に基づいて３Ｄシーンをゆがませる命令は、システムにＧＰＵを用いて３Ｄシーンを中間の圧縮された空間に変換させる命令を含む、例２２のシステム。
【０１３８】
（例２４）システムに注視点に基づいて３Ｄシーンをゆがませる命令は、ＧＰＵに３Ｄシーンの少なくとも一部をテッセレートさせる命令を含む、例２３のシステム。
【０１３９】
（例２５）システムにゆがめられた３Ｄシーンを描画させて第１画像を生成させる命令は、ＧＰＵにマルチサンプリングアンチエイリアシングを適用させる命令を含む、例２３のシステム。
【０１４０】
（例２６）少なくとも１つのレンズを含むヘッドマウントディスプレイ装置をさらに備え、注視点は、レンズの他の部分よりも視力が高い部分に対応する、例２２〜２５のいずれか１つに記載のシステム。
【０１４１】
（例２７）ヘッドマウントディスプレイ装置とカメラとをさらに備え、メモリは、少なくとも１つのプロセッサによって実行されると、システムに、カメラによって撮影された画像に基づいてヘッドマウントディスプレイ装置の装着者の瞳孔の位置を特定させ、瞳孔の位置に基づいて注視点を特定させる命令をさらに含む、例２２〜２６のいずれか１つに記載のシステム。
【０１４２】
（例２８）命令を格納した非一時的なコンピュータ読み取り可能な記憶媒体であって、命令は、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、少なくとも、ヘッドマウントディスプレイ装置の装着者の瞳孔位置を特定させ、瞳孔位置に基づいて注視点を特定させ、注視点に基づいて３Ｄシーンをゆがませ、ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、第１画像のゆがみを解消させて第２画像を生成させ、ヘッドマウントディスプレイ装置に第２画像を表示させる、非一時的なコンピュータ読み取り可能な記憶媒体。
【０１４３】
（例２９）コンピューティングシステムに注視点に基づいて３Ｄシーンをゆがませるように構成された命令は、コンピューティングシステムに、３Ｄシーンの頂点を画面座標に投影させ、注視点を画面座標に投影させ、投影された頂点と投影された注視点との距離に基づいて、投影された頂点の座標を変換させ、変換された頂点を３Ｄシーンに再投影させる命令を含む、例２８の非一時的なコンピュータ読み取り可能な記憶媒体。
【０１４４】
（例３０）命令は、コンピューティングシステムに対数変換または対数極座標変換を投影された頂点に適用させるように構成される、例２９の非一時的なコンピュータ読み取り可能な記憶媒体。
【０１４５】
（例３１）３Ｄシーンは、３Ｄシーンからなるシーケンスからのものであり、命令は、さらに、コンピューティングシステムに、注視点からの距離に基づいて第２画像の一部に一時的にエイリアスを生じさせる、例２８〜３０のいずれか１つに記載のシステム。
【図１】
2020522815.tif 000005
【図２】
2020522815.tif 000006
【図３Ａ】
2020522815.tif 000007
【図３Ｂ】
2020522815.tif 000008
【図３Ｃ】
2020522815.tif 000009
【図４】
2020522815.tif 000010
【図５Ａ】
2020522815.tif 000011
【図５Ｂ】
2020522815.tif 000012
【図６】
2020522815.tif 000013
【図７Ａ】
2020522815.tif 000014
【図７Ｂ】
2020522815.tif 000015
【図８】
2020522815.tif 000016
【図９】
2020522815.tif 000017
【図１０】
2020522815.tif 000018
【図１１Ａ】
2020522815.tif 000019
【図１１Ｂ】
2020522815.tif 000020
【図１１Ｃ】
2020522815.tif 000021
【図１２Ａ】
2020522815.tif 000022
【図１２Ｂ】
2020522815.tif 000023
【図１２Ｃ】
2020522815.tif 000024
【図１２Ｄ】
2020522815.tif 000025
【手続補正書】
【提出日】令和2年4月2日(2020.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
注視点に基づいて３Ｄシーンをゆがませるステップと、
前記ゆがめられた３Ｄシーンを描画して第１画像を生成するステップと、
前記第１画像のゆがみを解消して第２画像を生成するステップとを含む、方法。
【請求項２】
前記第１画像の画素の数は、前記第２画像よりも少ない、請求項１に記載の方法。
【請求項３】
前記第１画像の画素の数は、前記第２画像の４分の１以下である、請求項２に記載の方法。
【請求項４】
前記３Ｄシーンをゆがませるステップは、前記注視点からの距離の非線形関数を用いて前記３Ｄシーンをゆがませるステップを含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記第２画像は、映像のフレームである、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンを不均一に変更するステップを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記３Ｄシーンを前記不均一に変更するステップは、前記３Ｄシーンの異なる部分を異なる量だけ変更するステップを含む、請求項６に記載の方法。
【請求項８】
前記３Ｄシーンを前記不均一に変更するステップは、前記３Ｄシーンの異なる部分を異なる方向に変更するステップを含む、請求項６に記載の方法。
【請求項９】
前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの頂点を中間の圧縮された空間に変換するステップを含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記頂点を中間の圧縮された空間に変換するステップは、前記頂点の位置に非線形関数を適用するステップを含む、請求項９に記載の方法。
【請求項１１】
前記頂点の前記位置に非線形関数を適用するステップは、前記頂点の各頂点の位置を、各頂点から注視点までの距離の平方根に基づいて修正するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記頂点の前記位置に非線形関数を適用するステップは、前記頂点に対数変換または対数極座標変換を適用するステップを含む、請求項１０に記載の方法。
【請求項１３】
前記頂点を変換するステップは、
前記頂点の各々をビューポートに投影するステップと、
前記注視点を前記ビューポートに投影するステップと、
前記投影された頂点と前記投影された注視点との距離に基づいて、前記投影された頂点の座標を変換するステップと、
前記変換された頂点を前記３Ｄシーンに再投影するステップとを含む、請求項１０に記載の方法。
【請求項１４】
前記注視点に基づいて前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの横の次元が縦の次元とは異なる程度ゆがめられるよう、前記注視点からの垂直距離および前記注視点からの水平距離に基づいてワープ関数を使用するステップを含む、請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
前記注視点に基づいて前記３Ｄシーンをゆがませるステップは、前記３Ｄシーンの前記注視点の一方側を他方側とは異なる量だけゆがませる非対称ワープ関数を使用するステップを含む、請求項１〜１４のいずれか１項に記載の方法。
【請求項１６】
前記ゆがめられた３Ｄシーンを描画するステップは、ゆがませる時の三角形のエッジの歪みを推定することに基づいて前記第１画像の画素の誤り訂正値を算出するステップを含む、請求項１〜１５のいずれか１項に記載の方法。
【請求項１７】
前記第１画像のゆがみを解消するステップは、前記第２画像の画素を生成しながら前記誤り訂正値を適用するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記第１画像のゆがみを解消して第２画像を生成するステップは、前記第２画像のフォービアル（ｆｏｖｅａｌ）領域においてバイリニアフィルタリングを使用するステップを含む、請求項１〜１７のいずれか１項に記載の方法。
【請求項１９】
前記注視点を特定するステップをさらに含む、請求項１〜１８のいずれか１項に記載の方法。
【請求項２０】
前記注視点を特定するステップは、ユーザの目の位置を追跡することに基づいて前記注視点を特定するステップを含む、請求項１９に記載の方法。
【請求項２１】
前記注視点を特定するステップは、ＨＭＤのレンズのプロパティに基づいて前記注視点を特定するステップを含む、請求項１９または２０に記載の方法。
【請求項２２】
システムであって、
少なくとも１つのプロセッサと、
命令を格納したメモリとを備え、前記命令は、前記少なくとも１つのプロセッサによって実行されると、前記システムに、
注視点に基づいて３Ｄシーンをゆがませ、
前記ゆがめられた３Ｄシーンを描画させて第１画像を生成させ、
前記第１画像のゆがみを解消させて第２画像を生成させる、システム。
【請求項２３】
ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をさらに備え、前記システムに前記注視点に基づいて前記３Ｄシーンをゆがませる前記命令は、前記システムに前記ＧＰＵを用いて前記３Ｄシーンを中間の圧縮された空間に変換させる命令を含む、請求項２２に記載のシステム。
【請求項２４】
前記システムに前記注視点に基づいて前記３Ｄシーンをゆがませる前記命令は、前記ＧＰＵに前記３Ｄシーンの少なくとも一部をテッセレートさせる命令を含む、請求項２３に記載のシステム。
【請求項２５】
前記システムに前記ゆがめられた３Ｄシーンを描画させて第１画像を生成させる前記命令は、前記ＧＰＵにマルチサンプリングアンチエイリアシングを適用させる命令を含む、請求項２３に記載のシステム。
【請求項２６】
少なくとも１つのレンズを含むヘッドマウントディスプレイ装置をさらに備え、前記注視点は、前記レンズの他の部分よりも視力が高い部分に対応する、請求項２２〜２５のいずれか１項に記載のシステム。
【請求項２７】
ヘッドマウントディスプレイ装置とカメラとをさらに備え、
前記メモリは、前記少なくとも１つのプロセッサによって実行されると、前記システムに、
前記カメラによって撮影された画像に基づいて前記ヘッドマウントディスプレイ装置の装着者の瞳孔の位置を特定させ、
前記瞳孔の位置に基づいて前記注視点を特定させる命令をさらに含む、請求項２２〜２６のいずれか１項に記載のシステム。
【請求項２８】
請求項１〜２１のいずれか１項に記載の方法をコンピュータに実行させるプログラム。
【国際調査報告】
2020522815.tif 000026
2020522815.tif 000027
2020522815.tif 000028