JP2022511273A - 拡張現実または仮想現実のシーンにおけるオブジェクトの表現の生成および修正 - Google Patents

拡張現実または仮想現実のシーンにおけるオブジェクトの表現の生成および修正 Download PDF

Info

Publication number
JP2022511273A
JP2022511273A JP2021510189A JP2021510189A JP2022511273A JP 2022511273 A JP2022511273 A JP 2022511273A JP 2021510189 A JP2021510189 A JP 2021510189A JP 2021510189 A JP2021510189 A JP 2021510189A JP 2022511273 A JP2022511273 A JP 2022511273A
Authority
JP
Japan
Prior art keywords
viewpoint
rendered
frame
rendered frame
scene
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021510189A
Other languages
English (en)
Inventor
ラリー セイラー,
アレキサンダー ナンカービス,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Facebook Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of JP2022511273A publication Critical patent/JP2022511273A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

Figure 2022511273000001
一実施形態では、サブフレームを生成するための方法は、ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームにアクセスすることを含み得る。レンダリングされたフレームは、仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成され得る。コンピューティングシステムは、レンダリングされたフレームに基づいて複数のサーフェスを生成し得る。各サーフェスは、3D空間内に配置され得、視覚情報を含む。システムは、3D空間におけるユーザの第2の視点を決定し、第2の視点から複数のサーフェスの可視性を決定し得る。システムは次に、視覚情報および複数のサーフェスの決定された可視性に基づいて、第2の視点から仮想シーンを描写するサブフレームをレンダリングし得る。
【選択図】図2

Description

[1] 本開示は概して、拡張現実、仮想現実、複合現実、またはハイブリッド現実環境に関する。
[2] 人工現実は、ユーザに提示される前に何らかの方式で調整された現実の一形態であり、例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはこれらの何らかの組み合わせおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、または捕捉されたコンテンツ(例えば、現実世界の写真)と組み合わされて生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、音声、触覚フィードバック、またはこれらの何らかの組み合わせを含んでよく、これらのうちのいずれも、単一のチャネルまたは複数のチャネル(視聴者に3次元効果をもたらすステレオビデオなど)において提示され得る。人工現実は、例えば、人工現実のコンテンツを作成するために使用される、および/または人工現実において使用される(例えば、アクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはこれらの何らかの組み合わせに関連付けられることもある。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロン型HMD、モバイルデバイス、またはコンピューティングシステム、あるいは、1人または複数の視聴者に人工現実コンテンツを提供することが可能な他の任意のハードウェアプラットフォームを含む、様々なプラットフォームに実装され得る。
[3] 人工現実(例えば、AR、VR、MR)技術は、その登場以来、AR/VR/MRシーンのユーザの視界(perspective)における急な変化に応答してAR/VR/MRオブジェクトをレンダリングする際の待ち時間の問題に悩まされてきた。没入型環境を作り出すためには、ユーザは、シーンを見る際に頭部を動かせることが必要で、環境は、ユーザに提示されるビューを調整することで即座に応答することが必要になることがある。頭部が動くたびに、シーンでのユーザの視界はわずかに変化し得る。このような頭部の動きは小さいが、突発的で予測が(不可能ではないとしても)困難なことがある。解決しなければならない問題は、頭部の動きが急に発生し、頭部の動きに伴って発生する視界の変化を考慮するためにシーンのビューが迅速に修正される必要があることである。これが十分に迅速に行われない場合には、結果として生じる待ち時間によって、ユーザは、仮想現実酔いまたは不快感、あるいは少なくとも、体験の没入型特性に対する混乱をもたらし得る感覚的不調和(sensory dissonance)を感じる可能性がある。視界におけるこれらの変化に対処するためにビュー全体を再レンダリングすることは、リソース集約的であり、比較的低いフレームレート(例えば、60Hz、すなわち1/60秒毎に1回)でのみ可能になり得る。その結果、十分に速い(例えば、200Hz、1/200秒毎に1回の)ペースでの視界の変化を考慮し、ユーザが待ち時間を認知することを防止し、それによって感覚的不調和を回避または十分に低減するため、シーン全体の再レンダリングによってシーンを修正することは実現可能ではないかもしれない。
[4] 1つの解決策は、シーン内のオブジェクトを表す「サーフェス」を生成し、それを用いて作業することに関係し、サーフェスは、視界の変化の結果として、移動/平行移動、傾斜、拡大縮小、変形、またはその他の方式で1つのユニットとして外観が共に変化することが予想される複数のオブジェクトに対応する。ビュー全体を再レンダリングする代わりに、コンピューティングシステムは、変化した視界からこれらのサーフェスを単純に再サンプリングし、変化した視界から対応するオブジェクトがどのように見えるかを近似することができる。この方法は、基本的に効率のよい便法であり、必要とされる処理を大幅に低減し得るため、ビューは迅速に更新され、待ち時間は十分に短縮されることが保証される。サーフェスの再サンプリングは、ビュー全体の再レンダリングとは異なり、HMDのコンピューティングシステム(例えば、別個のラップトップまたはウェアラブルデバイス)の比較的限られた処理能力で、割り当てられた時間内で(例えば、1/200秒で)ビューを修正するために使用できるほど十分に効率的であり得る。この修正に関わる時間的スケールは非常に小さく、HMDから物理的に分離されたより強力なシステムに修正を実行させることは実現不可能になり得る。なぜなら、HMDは、HMDの現在の位置および向きに関する情報を送信し、別個のシステムが新しいビューをレンダリングするのを待ち、次いで別個のシステムから新しいビューを受信しなければならないためである。サーフェスを単純に再サンプリングすることにより、修正はHMD上で完全に実行可能となり、処理を高速化する。本開示は、特定の時間間隔(1/60秒、1/200秒)および対応する特定のフレームレート(60Hz、200Hz)を使用するが、これらの時間間隔およびフレームレートは、単に本発明を例示するための実施例として使用され、本開示は、任意の他の適切な時間間隔およびフレームレートを企図する。
[5] 特定の実施形態では、グラフィックアプリケーション(例えば、ゲーム、マップ、コンテンツ提供アプリ等)は、シーングラフを構築し、シーングラフは、GPU上にレンダリングするプリミティブを生成するために、所与のビュー位置および時点と共に使用される。シーングラフは、シーン内のオブジェクト間の論理的および/または空間的関係を定義することができる。特定の実施形態では、ディスプレイエンジンはまた、フルアプリケーションシーングラフの単純化された形式であるシーングラフを生成し、記憶することができる。単純化されたシーングラフは、サーフェス間の論理的および/または空間的関係(例えば、アプリケーションによってレンダリングされたメインフレームに基づいて生成された対応するテクスチャを有する、3D空間で定義された四辺形または輪郭などの、ディスプレイエンジンによってレンダリングされたプリミティブ)を指定するために使用され得る。シーングラフを記憶することにより、ディスプレイエンジンは、シーンを複数のディスプレイフレームにレンダリングし、現在の視点(例えば、頭の位置)、現在のオブジェクト位置(例えば、これらは互いに対して移動している可能性がある)、およびディスプレイフレームごとに変化する他の要因についてシーングラフ内の各要素を調整することが可能になる。加えて、シーングラフに基づいて、ディスプレイエンジンは、ディスプレイサブシステムによって導入された幾何学的歪みおよび色歪みを調整し、次いで、オブジェクトを共に合成してフレームを生成することもできる。シーングラフを記憶することにより、ディスプレイエンジンは、実際にはかなり低いレートでGPUを動作させながら、所望の高いフレームレートでフルレンダリングを行った結果を近似することができる。
[6] 本発明の実施形態は、人工現実システムを含んでよく、あるいは、人工現実システムと関連して実装されてもよい。特定の実施形態では、シーンのレンダリング、ならびに、そのサーフェスの生成および修正に関わる処理タスクは、1つまたは複数のコンピューティングシステム間で分割されてもよい。一例として、限定されるものではないが、シーンのビューは、最初に、第1のコンピューティングシステム(例えば、ラップトップ、携帯電話、デスクトップ、ウェアラブルデバイス)によってレンダリングされてもよい。レンダリングされた結果は、ビュー用の1つまたは複数のサーフェスを生成するために使用され得る。色および透明度情報に加えて、サーフェスはシーン内のそれらの位置に関する情報を含み得る。これらのサーフェスは、第2のコンピューティングシステム(例えば、ヘッドマウントディスプレイ(HMD)上のオンボードコンピューティングシステム)に渡されてもよい。HMDは、ビュー内のサーフェスに対応するオブジェクトを、サーフェスに関連付けられた情報に基づいて、およびHMDを装着しているユーザの現在の視界に基づいて(例えば、HMDの位置および向きによって決定されるように)レンダリングすることができる。視界における任意の変化(例えば、100分の1秒のオーダーで生じるユーザのわずかな頭部運動)は、HMD上のセンサによって追跡され、調整された視点(viewpoint)からのビューにおけるサーフェスを再サンプリングすることによって、HMDによって構成され得る。視点の調整によって、サーフェスは、再サンプリングされる際に、平行移動/移動、傾斜、拡大縮小、変形すること、もしくは外観が変更されることがある。シーンは、ゼロから(例えば、ポリゴンから)再レンダリングされるのではなく、サーフェスの調整のみによるものであるため、シーンは、比較的迅速に(例えば、200Hzで)修正することができる。特定の実施形態では、第1のコンピューティングシステムは、第2のコンピューティングシステムに比べて比較的強力である。これは、ユーザの快適性に対して、重量、サイズ、および/または発熱が過大にならないように、第2のコンピューティングシステム(例えば、HMD)が、限られたシステムリソースを有するためである。
[7] 上述の課題は、以下の請求項の少なくとも1つによる本発明によって解決される。
[8] 本発明のいくつかの実装によれば、1つまたは複数のコンピューティングシステムによって、ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成される、前記レンダリングされたフレームにアクセスすることと、前記レンダリングされたフレームに基づく複数のサーフェスであって、前記サーフェスの各々が3D空間内に配置され、視覚情報を含む、複数のサーフェスを生成することと、前記3D空間内のユーザの第2の視点を決定することと、前記第2の視点から前記複数のサーフェスの可視性を決定することと、前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングすることと、を含む方法が提供される。
[9] 本発明の1つの可能な実装によれば、前記複数のサーフェスの各々の前記視覚情報はテクスチャであり、前記複数のサーフェスの前記決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む。
[10] 本発明の1つの可能な実装によれば、前記オブジェクトの前記3Dモデルは、ポリゴンを含み、前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される。
[11] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームは、前記オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に生成される。
[12] 本発明の1つの可能な実装によれば、前記複数のフレームは、第1のフレームレートで生成され、前記複数のサブフレームは、前記第1のフレームレートよりも高い第2のフレームレートで生成される。
[13] 本発明の1つの可能な実装によれば、前記複数のサーフェスの前記可視性は、レイキャスティングを使用して決定される。
[14] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームは、レイトレーシングを使用して生成される。
[15] 本発明の1つの可能な実装によれば、前記第1の視点と前記第2の視点とが異なる時点に決定される。
[16] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームは、前記オブジェクトの前記3Dモデルと、前記仮想シーン内の第2のオブジェクトの第2の3Dモデルとに基づいて生成され、前記複数のサーフェスのうちの少なくとも1つは、前記オブジェクトと前記第2のオブジェクトとの両方を示す視覚情報を含む。
[17] 本発明の1つの可能な実装によれば、前記複数のサーフェスの各々は平坦である。
[18] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームと前記サブフレームとは異なる。
[19] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームおよび前記レンダリングされたサブフレームは、異なるコンピューティングシステムによってレンダリングされる。
[20] 本発明のいくつかの実装によれば、実行されたときに、ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成される、前記レンダリングされたフレームにアクセスし、前記レンダリングされたフレームに基づく複数のサーフェスであって、前記サーフェスの各々は、3D空間内に配置され、視覚情報を含む、複数のサーフェスを生成し、前記3D空間内のユーザの第2の視点を決定し、前記第2の視点から前記複数のサーフェスの可視性を決定し、前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて、前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングする、ように動作可能なソフトウェアを具現化する、1つまたは複数のコンピュータ可読非一時記憶媒体が提供される。
[21] 本発明の1つの可能な実装によれば、前記複数のサーフェスの各々の前記視覚情報はテクスチャであり、前記複数のサーフェスの前記決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む。
[22] 本発明の1つの可能な実装によれば、前記オブジェクトの前記3Dモデルは、ポリゴンを含み、前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される。
[23] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームは、オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に生成される。
[24] 本発明のいくつかの実装によれば、1つまたは複数のプロセッサと、前記プロセッサのうちの1つまたは複数に連結され、前記プロセッサのうちの1つまたは複数によって実行されるときに動作可能な命令を備える1つまたは複数のコンピュータ可読非一時記憶媒体と、を備えるシステムであって、前記命令によって、ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成された、レンダリングされたフレームにアクセスし、前記レンダリングされたフレームに基づく複数のサーフェスであって、前記サーフェスの各々が3D空間内に配置され、視覚情報を含む、複数のサーフェスを生成し、前記3D空間内の前記ユーザの第2の視点を決定し、前記第2の視点から前記複数のサーフェスの可視性を決定し、前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングする、システムが提供される。
[25] 本発明の1つの可能な実装によれば、前記複数のサーフェスの各々の前記視覚情報はテクスチャであり、前記複数のサーフェスの決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む。
[26] 本発明の1つの可能な実装によれば、前記オブジェクトの前記3Dモデルは、ポリゴンを含み、前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される。
[27] 本発明の1つの可能な実装によれば、前記レンダリングされたフレームは、前記オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に生成される。
[28] 本明細書に開示された実施形態は、単なる実施例であり、本開示の範囲は、それらに限定されない。特定の実施形態は、本明細書に開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべて、いくつかを含んでよく、あるいは全く含まなくてもよい。本発明による実施形態は、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とした添付の特許請求の範囲内に具体的に開示され、1つの請求項カテゴリ内で記載される任意の特徴、例えば、方法は、別の請求項カテゴリ、例えば、システムにおいても同様に特許請求され得る。添付の特許請求の範囲における従属関係または前に戻る参照は、形式上の理由でのみ選択されている。しかしながら、任意の先行する請求項へ戻る意図的な参照(特に多項従属)から生じるいかなる発明の主題も特許請求することが可能であり、これにより、請求項とその特徴との任意の組み合わせが開示され、添付の特許請求の範囲において選択された従属関係にかかわらず特許請求することが可能である。特許請求することが可能な発明の主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求項における特徴の任意の他の組み合わせも含み、特許請求項において言及される各特徴は、特許請求項における任意の他の特徴または他の特徴の組み合わせと組み合わせることが可能である。さらに、本明細書に記載もしくは図示される任意の実施形態および特徴は、別個の請求項で、および/または、本明細書に記載もしくは図示される任意の実施形態または特徴との任意の組み合わせにおいて、または、添付の特許請求項の任意の特徴との任意の組み合わせにおいて特許請求することが可能である。
サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 サーフェスによって表され得るオブジェクトを含むシーンの例を示す。 シーンのビュー内に表示される予定のオブジェクトの視覚情報および位置情報を決定するための第1の「レイキャスティング」処理を示す。 オブジェクトの2D表現をサーフェスに変換する概念を示す。 対応するサーフェスに関連付けられた情報に基づいてシーンの視点から表示するためにオブジェクトをレンダリングするための第2のレイキャスティング処理の例示的な概念化を示す。 交点に対応する視覚情報を識別する概念化を示す。 サーフェスに基づいてサブフレームを生成するための例示的な方法を示す。 サーフェスに基づいてサブフレームを生成するための例示的な方法を示す。 ディスプレイエンジンのための例示的な高レベルアーキテクチャを示す。 例示的なコンピュータシステムを示す。
[37] 人工現実(例えば、AR、VR、MR)技術は、その登場以来、AR/VR/MRシーンのユーザの視界(perspective)における急な変化に応答してAR/VR/MRオブジェクトをレンダリングする際の待ち時間の問題に悩まされてきた。没入型環境を作り出すためには、ユーザは、シーンを見る際に頭部を動かせることが必要で、環境は、ユーザに提示されるビューを調整することで即座に応答することが必要になることがある。頭部が動くたびに、シーンでのユーザの視界はわずかに変化し得る。このような頭部の動きは小さいが、突発的で予測が(不可能ではないとしても)困難なことがある。解決しなければならない問題は、頭部の動きが急に発生し、頭部の動きに伴って発生する視界の変化を考慮するためにシーンのビューが迅速に修正される必要があることである。これが十分に迅速に行われない場合には、結果として生じる待ち時間によって、ユーザは、仮想現実酔いまたは不快感、あるいは少なくとも、体験の没入型特性に対する混乱をもたらし得る感覚的不調和(sensory dissonance)を感じる可能性がある。視界におけるこれらの変化に対処するためにビュー全体を再レンダリングすることは、リソース集約的であり、比較的低いフレームレート(例えば、60Hz、すなわち1/60秒毎に1回)でのみ可能になり得る。その結果、十分に速い(例えば、200Hz、1/200秒毎に1回の)ペースでの視界の変化を考慮し、ユーザが待ち時間を認知することを防止し、それによって感覚的不調和を回避または十分に低減するため、シーン全体の再レンダリングによってシーンを修正することは実現可能ではないかもしれない。1つの解決策は、シーン内のオブジェクトの特定のビューを表す「サーフェス」を生成し、それを用いて作業することを含み、サーフェスは、視界の変化の結果として、移動/平行移動、傾斜、拡大縮小、変形、またはその他の方式で1つのユニットとして外観が共に変化することが予想される複数のオブジェクトに対応する。ビュー全体を再レンダリングする代わりに、コンピューティングシステムは、変化した視界からこれらのサーフェスを単純に再サンプリングし、変化した視界から対応するオブジェクトがどのように見えるかを近似することができる。この方法は、基本的に効率のよい便法であり、必要とされる処理を大幅に低減し得るため、ビューは迅速に更新され、待ち時間は十分に短縮されることが保証される。サーフェスの再サンプリングは、ビュー全体の再レンダリングとは異なり、HMDのコンピューティングシステムの比較的限られた処理能力で、割り当てられた時間内(例えば、1/200秒)にビューを修正するために使用できるほど十分に効率的であり得る。この修正に関わる時間的スケールは非常に小さく、HMDから物理的に分離されたより強力なシステムに修正を実行させることは実現不可能になり得る。なぜなら、HMDは、HMDの現在の位置および向きに関する情報を送信し、別個のシステムが新しいビューをレンダリングするのを待ち、次いで別個のシステムから新しいビューを受信しなければならないためである。サーフェスを単純に再サンプリングすることにより、修正はHMD上で完全に実行可能となり、処理を高速化する。
[38] 本発明の実施形態は、人工現実システムを含んでよく、あるいは、人工現実システムと関連して実装されてもよい。特定の実施の形態では、シーンのレンダリング、ならびに、そのサーフェスの生成および修正に関与する処理タスクは、2つ以上のコンピューティングシステム間で分割されてもよい。一例として、限定されるものではないが、シーンのビューは、最初に、第1のコンピューティングシステム(例えば、ラップトップ、携帯電話、デスクトップ、ウェアラブルデバイス)によってレンダリングされてもよい。レンダリングされた結果は、ビューのための1つまたは複数のサーフェスを生成するために使用され得る。色および透明度情報に加えて、サーフェスはシーン内のそれらの位置に関する情報を含み得る。これらのサーフェスは、第2のコンピューティングシステム(例えば、ヘッドマウントディスプレイ(HMD)上のオンボードコンピューティングシステム)に渡されてもよい。HMDは、ビュー内のサーフェスを、サーフェスに関連付けられた情報に基づいて、およびHMDを装着しているユーザの現在の視界に基づいて(例えば、HMDの位置および向きによって決定されるように)ワーピングすることができる。視界における任意の変化(例えば、100分の1秒のオーダーで生じるユーザのわずかな頭部運動)は、HMD上のセンサによって追跡され、調整された視点(viewpoint)からのビューにおけるサーフェスを再サンプリングすることによって、HMDによって構成され得る。視点の調整によって、サーフェスは、再サンプリングされる際に、平行移動/移動、傾斜、拡大縮小、変形すること、もしくは外観が変更されることがあり得る。シーンは、ゼロから(例えば、ポリゴンから)再レンダリングされるのではなく、サーフェスの調整のみによるものであるため、シーンは、比較的迅速に(例えば、200Hzで)修正することができる。特定の実施形態では、第1のコンピューティングシステムは、第2のコンピューティングシステムに比べて比較的強力である。これは、第2のコンピューティングシステム(例えば、HMD)が、感知し得るほど増大することがない限られたシステムリソースを有し、ユーザの快適性に対して、重量、サイズ、および/または発熱が過大になることがないためである。
[39] 特定の実施形態では、コンピューティングシステムは、ユーザに表示するためにシーンの初期ビューをレンダリングしてもよい。一例として、限定されるものではないが、この初期ビューは、ARオブジェクトの組を含むARシーンのビュー(または、本明細書の他の箇所で説明されるように、VRオブジェクトを有するVRシーン)であってもよい。特定の実施形態では、ディスプレイはHMD上にあってもよい。HMDは、限られたシステムリソースと限られた電源を有し得るが、これらの制限は感知し得るほど低減されなくてもよく、ユーザの快適性に対して過度の重量、サイズ、および/または発熱をもたらすことはない。その結果、HMDが、ビューのレンダリングに関与するすべての処理タスクを一方的に処理することは実現可能ではない場合がある。特定の実施形態では、初期ビューをレンダリングするために、比較的強力なコンピューティングシステム(例えば、ラップトップ、携帯電話、デスクトップ、ウェアラブルデバイス)が使用され得る。特定の実施形態では、このコンピューティングシステムは、HMD上のコンピューティングシステムと通信を行うデバイスであってよいが、もしくはHMDから物理的に分離されていてもよい。一例として、限定されるものではないが、コンピューティングシステムは、HMDに有線接続されるか、またはHMDと無線で通信するラップトップデバイスであってもよい。別の例として、限定されるものではないが、コンピューティングシステムは、ウェアラブルデバイス(例えば、手首に固定されたデバイス)、ハンドヘルドデバイス(例えば、電話)、またはHMDに配線されるか又はHMDと無線で通信する他の何らかの適切なデバイス(例えば、ラップトップ、タブレット、デスクトップ)であってもよい。コンピューティングシステムは、この初期シーンを表示のためにHMDに送ることができる。本開示は、HMD上でユーザにシーンを表示することに焦点を当てているが、任意の他の適切なデバイス上でユーザにシーンを表示することも企図される。
[40] ビューのレンダリングは、オブジェクトの各ポリゴンに対して多数の「可視性テスト」を実行することを伴うリソース集約型のタスクである。シーンのビューをレンダリングする従来のモデルでは、シーン内の各オブジェクトが数百/数千のポリゴンで表現される場合がある。ビューをレンダリングするコンピューティングシステムは、各可視ポリゴンに関連する視覚情報(例えば、色および透明度情報)を決定するために、各ピクセルからの各ポリゴンに対する可視性テストを実行する必要がある。可視性テストは、特定の視点からシーンの各ピクセルを経由して1つまたは複数の仮想光線を投射し、光線がオブジェクトのポリゴンと交差するかどうかを判定することとして概念化することができる。交差がある場合、ピクセルは、光線が交差するポリゴンに関連する視覚情報に基づいて、シェーディング(例えば、色、透明度)を表示するようにされてもよい。これは、「レイキャスティング」または「レイトレーシング」と称される処理で、各ピクセルについて繰り返されるもので、最終的にはスクリーン上のビュー全体のレンダリングをもたらし得る。この種のレンダリングには時間がかかる。一例として、限定されるものではないが、たとえラップトップ/デスクトップであっても、フレームは60Hzでこのようにレンダリングされるだけであり、(例えば、頭部の急速な動きによって)1/60秒以内に生じる視界の変化はレンダリングによって捕捉されず、表示されないことを意味する。
[41] この問題に対処するために、特定の実施形態では、コンピューティングシステムは、以下でさらに説明するように、シーンのための1つまたは複数の「サーフェス」を生成して、レンダリングビューを迅速に効率的に処理することができる。各サーフェスは、(例えば、ユーザの頭部上のHMDが異なる位置および/または向きに移動することに起因する)シーンのユーザの視界の変化の結果として、移動/平行移動、傾斜、拡大縮小、変形、またはその他の方式で1つのユニットとして外観が共に変化することが予想される、シーン内の1つまたは複数のオブジェクトの表現であってもよい。一例として、限定されるものではないが、人物のアバターおよびアバターが着用する帽子は、人物および帽子が移動/平行移動、傾斜、拡大縮小、変形、またはその他の方式で1つのユニットとして外観が共に変化し得ると判断される場合には、1つのサーフェスに対応してもよい。特定の実施形態では、サーフェスは、シーンのユーザの視界が変化するときに、単一のユニットとしての外観の移動/平行移動、傾斜、拡大縮小、変形、もしくは外観の変化が予想される点(例えば、オブジェクトを構成する点)の組に対応する。特定の実施形態では、サーフェスは、シーン内の1つまたは複数のオブジェクトを定義する視覚情報(例えば、色、透明度)を含む仮想概念である矩形の「テクスチャ」である。サーフェスはまた、シーン内のその位置を指定するための変換行列を含み得る。サーフェスのテクスチャデータは、本明細書では「テクセル」と称される1つまたは複数のサブパーツから構成され得る。これらのテクセルは、一緒になってサーフェスを構成するテクセル配列を生成するブロック(例えば、矩形ブロック)であってもよい。一例として、限定されるものではないが、これらはサーフェスを構成する連続ブロックであってもよい。例示を目的として、サーフェスのテクセルは、画像のピクセルに類似するものとして概念化され得る。サーフェスは、任意の適切なデバイスによって生成され得る。一例として、限定されるものではないが、初期シーンを生成したウェアラブルデバイスまたはハンドヘルドデバイスのCPUまたはGPUも、シーンのための1つまたは複数のサーフェスを生成し得る。別の例として、限定されるものではないが、HMDのオンボードコンピューティングシステムは、別個のコンピューティングシステムから(例えば、ウェアラブルデバイス、ハンドヘルドデバイス、またはラップトップデバイスのCPUまたはGPUから)初期シーンを受信した後に、1つまたは複数のサーフェスを生成し得る。特定の実施形態では、効率的な目的のためにビュー(例えば、16個のサーフェス)に対して生成される所定の最大数のサーフェスがあってもよい。
[42] 図1A~図1Iは、サーフェスによって表され得るオブジェクトを含むシーンの例を示す。特定の実施形態において、3つのタイプのサーフェス、すなわち、画像サーフェス、ラベルサーフェス、およびマスクサーフェスが存在し得る。画像サーフェスは、例えば、ビデオフレーム、静止画像、またはGPUによってレンダリングされるシーンのような、シェーディングされた画像をレンダリングするために使用されてもよい。一例として、限定されるものではないが、図1Aを参照すると、静止画像110(例えば、それを見ているユーザに基づいて変化する仮想のカスタマイズされた掲示板)は、画像サーフェスによって表されてもよい。別の例として、限定されるものではないが、図1Bを参照すると、動的ビデオ120(例えば、物理的オブジェクトに「取り付けられ」、適切にワーピングされたARテレビ)の各フレームは、画像サーフェスによって表されてもよい。別の例として、限定されるものではないが、図1Cを参照すると、アバター130などのいくつかのアバター(例えば、シーンに配置された写実的なアバター)は、画像サーフェスによって表されてもよい。別の例として、限定されるものではないが、図1Dを参照すると、コラボレーションを容易にするために複数の視聴者に同時に示される動的オブジェクト140(例えば、建物の動的3Dモデル)は、画像サーフェスによって表されてもよい。特定の実施形態では、画像サーフェスは、そのテクセルの1つまたは複数に対するRGB(赤-緑-青)成分を記憶し得る。特定の実施形態では、画像サーフェスは、そのテクセルの1つまたは複数に対するRGBA(赤-緑-青-アルファ)成分を記憶する。アルファ成分は、テクセルにふさわしい透明度のレベルを指定する値になり得る。一例として、限定されるものではないが、アルファ値0は、テクセルが完全に透明であることを示し、アルファ値1は、テクセルが不透明であることを示し、中間のアルファ値は、中間の透明度レベルを示す(正確な透明度レベルは、値によって決定される)。画像サーフェスは、任意の適切な画像フォーマットをサポートし得る。一例として、限定されるものではないが、画像サーフェスは、4ビットから10ビットのRGB成分サイズを有する16ビットおよび32ビットのピクセルフォーマットの両方をサポートし得る。特定の実施形態では、各画像フォーマットは、(例えば、透明領域を可能にするために)アルファ値を記憶するための少なくとも1ビットを有してもよい。
[43] 特定の実施形態では、ラベルサーフェスは符号付きの距離および色インデックスを記憶し、例えば、テキスト、グリフ(glyphs)およびアイコンなどのソリッドカラー領域を含むオブジェクトをレンダリングするために使用される。一例として、限定されるものではないが、図1Eを参照すると、ARブック150は、1つまたは複数のラベルサーフェスによって表され得るテキストを含み得る。特定の実施形態では、サーフェスは、シーン内のオブジェクト(例えば、静止オブジェクトまたは移動オブジェクト)に固定されてもよく、空間内に固定されてもよく、あるいはユーザの頭部に対して固定されてもよい(例えば、シーン内の特定のオブジェクトに固定されず、ユーザの頭部と共に移動するように)。図1Eに示す例では、テキストラベルサーフェスは、ARブック150または他の任意の適切なオブジェクトに対して固定され得る。別の例として、限定されるものではないが、図1Fを参照すると、テキストとマルチカラーの組み合わせで要素を示す周期律表が、1つまたは複数のラベルサーフェスによって表されてもよい。この例では、周期律表は、ユーザの頭部に対して表示されてもよい(例えば、周期律表がシーン内の任意の特定のオブジェクトに固定されず、むしろユーザの頭部と共に移動するように)。別の例として、限定されるものではないが、図1Gを参照すると、ナビゲーション目的のための異なるバス経路に関連する異なる色のラインおよび関連するテキストが、1つまたは複数のラベルサーフェスによって表されてもよく、これは、空間内で、またはオブジェクトに関して固定されてもよい。別の例として、限定されるものではないが、図1Hを参照すると、バスに関する拡張情報(例えば、乗車率、到着時刻、次のバス停に関する情報)を含むテキストは、オブジェクト(例えば、図1Hのバス)に関して固定され得る1つまたは複数のラベルサーフェスによって表されてもよい。ラベルサーフェスは、任意の適切なフォーマットになり得る。一例として、限定されるものではないが、ラベルサーフェスは、例えば、6ビットの距離フィールド値および2ビットインデックスを含むテクセル当たり8ビットを記憶する。別の例として、限定されるものではないが、デュアルラベルサーフェスは、2つの符号付き距離関数の指定を可能にするため、ラベルテクセル当たり16ビット(例えば、第1の6ビット距離フィールドおよび第1の2ビットインデックス、ならびに第2の6ビット距離フィールドおよび第2の2ビットインデックス)を記憶することができる。特定の実施形態では、これらの例におけるインデックスは、補間された距離の上位ビットに応じて、使用するRGBAカラーを検索するために使用される。
[44] 特定の実施形態では、マスクサーフェスは、その背後にあるサーフェスを遮蔽するために使用されるアルファ値(例えば、1の値)を記憶する。一例として、限定されるものではないが、図1Iを参照すると、マスクサーフェスは、ユーザの(現実世界の)手170がARオブジェクト160の前を通過するときに、ARオブジェクト160を表すサーフェスの一部を遮蔽することができる。
[45] 図2は、シーンのビュー内に表示されるオブジェクトの視覚情報および位置情報を決定するための第1の「レイキャスティング」処理を示す。この例ではレイキャスティングが使用されているが、レイトレーシングなどの他のレンダリング技法を使用することもできる。特定の実施形態では、第1のコンピューティングシステム(例えば、ラップトップ、携帯電話、デスクトップ、ウェアラブルデバイス)は、シーンのビューをレンダリングするために、この第1のレイキャスティング処理を実行してもよい。シーンの「ビュー」は、例えば、HMDの現在の位置および向きに基づいて決定され得る、シーンのユーザの視界を指してもよい。オブジェクトがビュー内にどのように表示されるかを理解するには、視点(例えば、HMD上のシーンを見ているユーザの視点を表すことができる「仮想カメラ」)からスクリーン上のピクセル(例えば、単眼用のHMD上のディスプレイに対応する)に発散される多数の仮想光線を想像することが有用である。一例として、限定されるものではないが、図2を参照すると、仮想光線230は、視点220から発散され、スクリーン210のピクセル215と交差する(例えば、HMDの2つのアイピースのうちの1つの表示に対応する)。別の例として、限定されるものではないが、仮想光線260はピクセル270と交差する。仮想光線は、本明細書で「レイキャスティング処理」と称されるものを使用して、スクリーンのピクセルのすべて(または少なくとも一部)に対して繰り返し投射され、各ピクセルが表示すべきもの(例えば、ピクセルの色および透明度)を決定することができる。特定の実施形態では、図2に示すこの第1のレイキャスティング処理は、最終的にユーザにビューを表示するHMDとは別個のコンピューティングシステム(例えば、ウェアラブルデバイス、ハンドヘルドデバイス、ラップトップ)によって実行されてもよい。コンピューティングシステムは、レイキャスティング処理を実行し、仮想光線の各々が(例えば、ポリゴンから構成される3Dモデルによって定義される)オブジェクトと交差するかどうかを判定し、(交差する場合に)仮想光線がオブジェクト上のどこと交差するかをさらに決定することができる。一例として、限定されるものではないが、仮想光線230は、交点255でオブジェクト250(例えば、AR時計)と交差する。この例では、コンピューティングシステムは、光線230もピクセル215でスクリーン210と交差するので、ピクセル215が交点255に関連付けられていると判定することができる。別の例として、限定されるものではないが、仮想光線260(歪み/収差を考慮するための進路補正に従う)は、オブジェクト250と交差しないこともある。この例では、コンピューティングシステムは、ピクセル215をオブジェクト250に関連付けるべきではないと判定することができる。このレイキャスティング処理の使用は、所与のビュー内で見ることができるオブジェクト(またはその一部)を決定するために使用され得るので、本明細書では「可視性テスト」と称されることがある。レイキャスティング処理は、最終的に、スクリーンのピクセルを、シーンのビューに対して見ることができる任意のオブジェクト上の交点に関連付けるために使用され得る。
[46] 図3は、オブジェクト(例えば、オブジェクト250)の2D表現をサーフェスに変換する概念を示す。特定の実施形態では、第1のレイキャスティング処理は、シーンのビュー内に表示されるべきオブジェクトの2D表現を生成するために使用され得る。ビューは、例えば、ユーザの頭部に取り付けられたHMDの現在の位置および向きに基づいて決定されてもよい。オブジェクトの2D表現は、ビュー内に現れるべきオブジェクトを表すことができ、したがって、ビューからのオブジェクトのユーザの視界を考慮することができる。一例として、限定されるものではないが、図2および図3を参照すると、2D表現310は、オブジェクト250の左に立っているユーザの視界からのオブジェクト250のビューを反映することができる(例えば、視点220をオブジェクト250の左にする)。この例では、この視界からオブジェクト250がどのように見えるかを決定するために、視点220から第1のレイキャスティング処理を実行することができる。この第1のレイキャスティング処理の結果は、レイキャスティング処理からの仮想光線が第1のレイキャスティング処理でオブジェクト250とどのように交差するかの結果として、(例えば、2D表現310に示されるように)歪んだ画像を生成することがあり、視点220からオブジェクト250がどのように見えるかを反映する。特定の実施形態では、本明細書の他の箇所で説明されるように、コンピューティングシステム(例えば、HMDとは別個のコンピューティングシステム、HMDのオンボードコンピューティングシステム、または他の任意の適切なコンピューティングシステム)は、2D表現をサーフェスに変換する。一例として、限定されるものではないが、図3を参照すると、2D表現310は、視覚情報(RGBA)(例えば、テクスチャとして)およびシーンの3D空間内のサーフェスの位置(例えば、視聴者のビュー座標で指定される)を記述する位置情報を符号化する画像サーフェスになり得るサーフェス320に変換されてもよい。
[47] 図4は、シーンの視点からの表示のためにサーフェスをポストワーピングまたは再サンプリングするための第2のレイキャスティング処理の例示的な概念化を示す。特定の実施形態では、HMDのオンボードコンピューティングシステム(または他の何らかの適切な第2のコンピューティングシステム)は、サーフェスに関連する情報に基づいて、サーフェスがどのように表示されるべきかを決定する。特定の実施形態では、1つまたは複数のサーフェスは、シーンに関連する3D空間内の特定の位置にそれらを配置する位置情報を含む。一例として、限定されるものではないが、図4を参照すると、サーフェス450は、関連する位置情報に基づいて、図示された位置に配置されてもよい。この例では、サーフェスは、視聴者に対して様々な深さを有する3D時計を描くように見えることがあるが(例えば、9時の領域は、3時の領域よりも視聴者から離れて見えることがある)、サーフェスは、特定の実施形態では、視聴者に面している平坦なサーフェスであることがある(例えば、少なくとも最初に視点が変化する前に、その法線ベクトルは視聴者の方向を指している)。オブジェクトの任意の視覚的表現は、サーフェスのテクスチャデータの一部として記憶されてもよい。
[48] 特定の実施形態では、サーフェスの各テクセルは、それがどこに配置されるべきかを特定する関連の位置情報を有する。特定の実施形態では、第1のレイキャスティング処理と同様に、第2のレイキャスティング処理が、ビューをレンダリングするためにHMDのコンピューティングシステムによって実行されてもよい。この第2のレイキャスティング処理は、どのサーフェスがビュー内で見えるか、およびサーフェスがビュー内のどこに位置するかを決定するために、可視性テストを実行するために使用されてもよい。一例として、限定されるものではないが、図4を参照すると、仮想光線430は、視点420から発散され、スクリーン410のピクセル415(例えば、HMDの2つのアイピースのうちの1つのディスプレイ)と交差する。別の例として、限定されるものではないが、仮想光線460はピクセル470と交差し得る。特定の実施形態では、HMDのコンピューティングシステムは、HMDの光学構造(例えば、HMDのレンズ)によって導入される歪みおよび/または他の収差(例えば、色収差)を考慮することができる。歪み/収差は、数学的に補正することができる。この補正は、図4に示されるように、仮想光線(例えば、仮想光線430、仮想光線460)が、歪み/収差を説明するために数学的に進路補正する歪みメッシュ440を、仮想光線が通って進むプロセスとして概念的に表されてもよい。サーフェス450の位置情報に基づいて、コンピューティングシステムは、仮想光線の各々がサーフェス450(または任意の他のサーフェス)と交差するかどうかを判定することができ、(交差する場合には)仮想光線がサーフェス450上のどこで交差するかを決定することができる。一例として、限定されるものではないが、(歪み/収差を説明するための進路補正に続いて)仮想光線430は、交点455でサーフェス450と交差することがある。別の例として、限定されるものではないが、仮想光線460(歪み/収差を説明するための進路補正に続いて)は、サーフェス450または他のサーフェスと交差しないことがある。
[49] 例示のために、図2~図5に示された時計の例を使用して、例示的な使用事例をここで説明する。図2の第1のレイキャスティング/トレーシング処理は、特定の時刻(例えば、12時42分22秒)で第1の視点のための時計の画像をレンダリングしてもよい。これは、フレームがラップトップ、またはHMDとは別個の身体上のウェアラブルデバイスなど、別の適切な第1のコンピューティングシステムによって生成される時刻であってもよい。その時刻から、ラップトップによって次のフレームが生成されるまで(説明のため、1秒あたり1フレームで生成されてもよい)、ユーザの視点は2番目の視点に変わる可能性がある。変化を考慮するため、シーンの調整が必要になることがある。しかしながら、第1のボディシステムは、十分に迅速に(例えば、1/200秒で)別のシーンをレンダリングできない場合がある。したがって、シーン全体をゼロからレンダリングするのではなく、(例えば、HMDの慣性測定ユニットに基づいて決定され得るような)HMDの最新の位置および向きによって決定されるような最新の視点情報に基づいて、ならびに、任意選択で(例えば、視線追跡によって決定され得る)ユーザの注視に基づいて、HMDには、ラップトップによって生成された(依然として12時42分22秒を示す)時計画像に対応するサーフェス(例えば、図3のサーフェス320)をワーピングするタスクが課されてもよい。これは、図4~図5に示されるレイキャスティングおよびサンプリング処理によって示される。HMDは、次のフレームがラップトップによって生成されるまで(例えば、1フレーム/秒でレンダリングされている場合、12時42分23秒の時刻を示す時計を用いて)、このようにしていくつかのサブフレームを生成し得る。
[50] 特定の実施形態では、第1および/または第2のレイキャスティング処理は、(例えば、眼の相対位置に基づいて)視点の僅かな変化を考慮するために、ユーザの各眼に対して別々に実行される。一例として、限定されるものではないが、第1および第2のレイキャスティング処理は、左眼に関連するスクリーンおよび右眼に関連するスクリーンに対して実行されてもよい。これらの処理は互いに独立して実行され、相互に同期していない場合もある。
[51] 図5は、交点に対応する視覚情報を識別する概念化を示す。特定の実施形態では、HMDのコンピューティングシステムは、サーフェスに関連する視覚情報に基づいて、オブジェクト(例えば、時計)を描写するワーピングされたサーフェスをスクリーン(例えば、片眼用のスクリーン)上に表示し得る。特定の実施形態では、HMDのコンピューティングシステムは、対応するテクセルアレイ上の交点の位置を決定することにより、交点に関連する視覚情報(例えば、RGBA情報)を決定し得る。一例として、限定されるものではないが、図5を参照すると、サーフェス510(例えば、図4のサーフェス450であってもよい)は、サーフェス510のテクセル情報(例えば、RGBA情報)を含むテクセルアレイ520に対応してもよい。この例では、テクセルアレイは、サーフェス510の3D位置情報のいずれもなく、完全に2D空間内にあってもよく、これは、ピクセルに関連する仮想光線の交点の視覚情報を決定するのに必要な数学的処理を大幅に単純化できるという点で特に有益であり得る。その結果、決定に関わる計算タスクは、必要となるリソースを減らし、より迅速かつ効率的に行われ得る。一例として、限定されるものではないが、サーフェス510が配置される3Dビュー空間における3次元(x,y,z)座標によって表される交点515は、テクセルアレイ520における2次元(u,v)座標に変換されてもよい。この例では、サーフェス510内の交点515は、テクセルアレイ520内のピクセルサンプリング点529に対応すると判定することができる。コンピューティングシステム(例えば、HMDのオンボードコンピューティングシステム)は、対応するテクセルアレイに関連する情報に基づいて、交点の視覚情報を決定することができる。一例として、限定されるものではないが、交点515のRGBA情報は、テクセルアレイ520の対応するサンプリング点529に関連するRGBA情報に基づいて決定され得る。
[52] 特定の実施形態では、サーフェスは、各テクセル内の離散的な数の点(例えば、テクセル525の単一のテクセル中心527)の情報のみを有してもよい。そのような場合、HMDのコンピューティングシステムは、特定のサンプリング点に関連する視覚情報(例えば、RGBA情報)を決定するために、1つまたは複数の補間(例えば、バイリニア補間またはトリリニア補間)または任意の他の適切な計算を実行してもよい。一例として、限定されるものではないが、コンピューティングシステムは、テクセル中心527および他の隣接するテクセル中心(例えば、サンプリング点529を取り囲む他の3つのテクセル中心)に関連するRGBA情報を用いてサンプリング点529のバイリニア補間を実行し、サンプリング点529のRGBA情報を決定し得る。HMDは、対応するピクセル内に、決定されたRGBA情報に一致し得る色および透明度レベルを表示することができる。一例として、限定されるものではないが、図4および図5を参照すると、サンプリング点529は、ピクセル415に対応してもよく、その場合、サンプリング点529について決定されたRGBA情報は、ピクセル415内に表示されるべき色および透明度レベルを決定するために使用されてもよい。限定されるものではないが、この例に基づくと、光線は、スクリーン410のすべてのピクセルについて投射され、光線がサーフェスと交差する任意の他の点(例えば、サーフェス450と交差する交点480、異なるサーフェスと関連付けられ得る仮想光線460の交点)についての視覚情報を表示することができる。
[53] 特定の実施形態では、HMDのコンピューティングシステムは、HMDの位置および向きを連続的または半連続的に追跡して(例えば、HMD上またはHMDを追跡するリモートデバイス上の慣性センサ、光学センサ、深さセンサおよび/または他のセンサを使用して)、所与の時刻にHMDを装着したユーザの視界を決定する。特定の実施形態では、コンピューティングシステムは、(例えば、ユーザの注視に依存し得るHMDのレンズから生じる歪みを調整するために)ユーザの眼の位置を連続的または半連続的に追跡してもよい。残念ながら、グラフィックスのレンダリングは、計算コストが高く、時間がかかるため、新しいフレームを瞬時に生成することはできない。視界の変化を反映するようにディスプレイを更新する際に相当な待ち時間がある場合には、ユーザは待ち時間を認知し、感覚的不調和を感じることがある。本明細書の他の箇所でさらに説明されるように、この感覚的不調和は、仮想現実酔いなどのユーザにとって不快な影響の一因となるか、もしくはユーザ体験を中断させることがある。この不調和を防止するためには、ユーザに表示されるものは、視界の中できわめて迅速な変更を考慮する必要があろう。一例として、限定されるものではないが、シーンのビューは、1/200秒毎に修正される必要がある(例えば、これを超える待ち時間は、許容できない長さとしてユーザに認知され得るからである)。多くの場合、コンピューティングシステムがこのような迅速なペースで、(例えば、ポリゴンから)ビュー全体を再レンダリングして、視界の変化を考慮することは、実用的でないか、または実行不可能なことがある。したがって、ビューに対する変更を迅速に近似する独創的な便法が要求されよう。
[54] 特定の実施例では、ビューに対する変化を近似するための便法の1つは、(ビュー全体を再レンダリングするのではなく)ビュー内のサーフェスを「再サンプリング」することを含み得る。特定の実施形態では、再サンプリングは、調整された視界からサーフェスがどのように見えるかを近似するために、さらなるレイキャスティング処理の実行を含み得る。ビュー内の限られた数のサーフェス(例えば、16個のサーフェス)の単純な再サンプリングに的を絞ることによって、ビューを迅速かつ十分に修正して、ユーザによる待ち時間の認知を防止または低減することができる。一例として、限定されるものではないが、さらなる第2のレイキャスティング処理は、(例えば、HMDの位置又は向きの変化により)起こり得る視界の変化を考慮するために、1/200秒毎に実行されてもよい。特定の実施形態では、HMDのオンボードコンピューティングシステムは、図4に関して上述したようなレイキャスティング処理を実行することにより、1つまたは複数のサーフェスを再サンプリングしてもよいが、今度は、視点420は、ユーザの最新の視界を反映するように調整される(例えば、異なる位置および/または向きに移動される)。先行するレイキャスティング処理以降、視界が変化した場合には、それに応じて、仮想光線はサーフェスの異なる点と交差することがある。一例として、限定されるものではないが、図4を参照すると、視点420が(わずかな頭部の動きの結果として)わずかに右にシフトした場合には、光線430の交点455は、それに対応して左にシフトし得る。このように再サンプリングに基づいてビューを修正することは、ビューが視界の変化によってどのように変更されるべきかの近似に過ぎず、この近似は、視界の比較的小さな変化に対してのみ機能し得る。しかし、目的はユーザのラップトップや携帯電話によって完全にレンダリングされたフレームが生成される間(例えば、1/100秒のオーダー)の比較的短い時間で起こる変化を考慮することであるため、これで十分であろう。本質的に、これは、(例えば、ウェアラブルデバイスなどのより強力なコンピューティングシステムによって)ビューの再レンダリングが可能になるまでの一時的な修正であってもよい。一例として、限定されるものではないが、HMDから分離され得る強力なコンピューティングシステム(例えば、ユーザのベルト又はウエストラインに固定されたウェアラブルデバイス)は、1/60秒毎にビューをゼロから再レンダリングすることができ、これらの再レンダリングされたビューを、レンダリングされるに連れてHMDデバイスに送ることができる。この例では、HMDデバイスは、1/60秒毎に再レンダリングされたビューを受信する間に、ユーザの視界内での急速な変化を考慮するために、それ自体で(例えば、1/200秒毎に)サーフェスを修正することができる。
[55] 特定の実施形態において、照明条件の変化は、修正の効率および速度を高めるために、再サンプリング処理では無視されてもよい。照明の変化は、再サンプリング処理によって考慮される短い時間間隔、非常にごくわずかであるため、無視されても支障はないであろう。これは、既に実世界の照明が存在し、照明が、企図されている視界内の比較的小さな変化(例えば、100分の1秒程度の短期間に発生する変化)よりも大きく変化しないであろうARの状況において、特に当てはまるであろう。
[56] 本開示は、AR環境におけるARオブジェクトに焦点を当てているが、VR環境におけるVRオブジェクトのレンダリングも考慮している。一例として、限定されるものではないが、VRの場合、第1のコンピューティングシステム(例えば、ウェアラブルデバイス、ハンドヘルドデバイス、ラップトップ)は、ユーザに表示するためにVR初期シーン全体をレンダリングすることができる。サーフェスは、シーン内のVRオブジェクトのために第1のコンピューティングシステムによって生成されてもよい。初期シーンおよびサーフェスは、VR HMDに送信されてもよく、VR HMDは、(例えば、本明細書の他の箇所でさらに説明されるように、HMDの位置および向きに基づいて)検出された視界内の変化に応答してサーフェスを修正することができる別個のコンピューティングシステムを含んでもよい。代替的な実施形態では、VR HMDは、初期シーンを単純に受信することができ、それ自体で、次に修正するシーンのためのサーフェスを生成することができる。
[57] 図6Aは、サーフェスに基づいてフレームを生成するための例示的な方法600を示す。この方法は、ステップ610で開始され、ビューの第1の視界が第1の時刻にレンダリングされる。ステップ620では、ビュー内の1つまたは複数のオブジェクトについてサーフェスが生成される。ステップ630では、第2の視界からのサーフェスの可視性を決定するため、第2の時刻に可視性テストが実行される。ステップ640では、可視性テストに基づいてディスプレイ用フレームが生成される。特定の実施形態は、必要に応じて、図6の方法の1つまたは複数のステップを繰り返してもよい。本開示は、図6の方法の特定のステップを特定の順序で発生するものとして説明し、例示するが、本開示は、任意の適切な順序で発生する図6の方法の任意の適切なステップを企図する。さらに、本開示は、図6の方法の特定のステップを含む、サーフェスに基づいてフレームを生成するための例示的な方法を説明し、例示するが、本開示は、適切な場合、図6の方法のステップのすべて、いくつかを含む、あるいは全く含まない、任意の適切なステップを含む、サーフェスに基づいてフレームを生成するための任意の適切な方法を企図する。さらに、本開示は、図6の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し、例示するが、本開示は、図6の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組み合わせを企図する。
[58] 図6Bは、サーフェスに基づいてサブフレームを生成するための例示的な方法650を示す。この方法は、ステップ660で開始され、1つまたは複数のコンピューティングシステムは、ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームにアクセスすることができる。レンダリグされたフレームは、仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成され得る。ステップ670では、1つまたは複数のコンピューティングシステムは、レンダリングされたフレームに基づいて1つまたは複数のサーフェスを生成することができる。各サーフェスは、3D空間内に配置することができ、視覚情報を含む。ステップ680では、1つまたは複数のコンピューティングシステムは、3D空間内のユーザの第2の現在の視点を決定することができる。ステップ685では、1つまたは複数のコンピューティングシステムは、第2の視点から1つまたは複数のサーフェスの可視性を決定することができる。ステップ690では、1つまたは複数のコンピューティングシステムは、視覚情報および1つまたは複数のサーフェスの決定された可視性に基づいて、第2の視点から仮想シーンを描写するサブフレームをレンダリングすることができる。ステップ690によって示されるように、1つまたは複数のサーフェスに基づくサブフレーム生成プロセスは、新しいフレームが利用可能になるまで(ステップ660に戻る矢印によって表される)繰り返すことができる(ステップ680に戻る矢印によって表される)。
[59] 図7は、ディスプレイエンジン700のシステム図を示す。ディスプレイエンジン700は、4つのタイプのトップレベルブロックを備えることができる。図7に示すように、これらのブロックは、制御ブロック710、変換ブロック720aおよび720b、ピクセルブロック730aおよび730b、ならびにディスプレイブロック740aおよび740bを含んでもよい。ディスプレイエンジン700の構成要素のうちの1つまたは複数は、1つまたは複数の高速バス、共有メモリ、または任意の他の適切な方法を介して通信するように構成され得る。図7に示されるように、ディスプレイエンジン700の制御ブロック710は、変換ブロック720aおよび720b、ならびにピクセルブロック730aおよび730bと通信するように構成され得る。ディスプレイブロック740aおよび740bは、制御ブロック710と通信するように構成され得る。本明細書でさらに詳細に説明するように、この通信は、データならびに制御信号、割り込み、および他の命令を含み得る。
[60] 特定の実施形態では、制御ブロック710は、一次レンダリング構成要素から入力データストリーム760を受信し、ディスプレイエンジン700におけるパイプラインを初期化して、表示のためのレンダリングを終了する。特定の実施形態では、入力データストリーム760は、一次レンダリング構成要素からのデータおよび制御パケットを含む。データおよび制御パケットは、テクスチャデータおよび位置データならびに追加のレンダリング命令を含む1つまたは複数のサーフェスなどの情報を含むことができる。制御ブロック710は、必要に応じて、ディスプレイエンジン700の1つまたは複数の他のブロックにデータを配信することができる。制御ブロック710は、表示されるべき1つまたは複数のフレームのためのパイプライン処理を開始することができる。特定の実施形態では、HMDは、複数のディスプレイエンジン700を有し、各々は、それ自身の制御ブロック710を有し得る。
[61] 特定の実施形態では、変換ブロック720aおよび720bは、人工現実シーンに表示されるサーフェスの初期可視性情報を決定し得る。一般に、変換ブロック(例えば、変換ブロック720aおよび720b)は、スクリーン上のピクセル位置から光線を投射し、フィルタコマンド(例えば、バイリニアまたは他のタイプの補間技術に基づくフィルタリング)を生成して、ピクセルブロック730aおよび730bに送信することができる。変換ブロック720aおよび720bは、(例えば、慣性測定ユニット、アイトラッカー、および/または、自己位置推定と環境地図作成の同時実行(SLAM)などの任意の適切な追跡/位置決めアルゴリズムを使用して決定される)ユーザの現在の視点から、サーフェスが位置決めされ、それぞれのピクセルブロック(730aおよび730b)に送る結果を生成し得る人工シーンへの、レイキャスティングを行ってもよい。
[62] 一般的に、特定の実施形態によれば、変換ブロック720aおよび720bは各々、4ステージパイプラインを備えることができる。変換ブロックのステージは、以下のように進行し得る。レイキャスタは、タイルと称される1つまたは複数の位置合わせされたピクセルのアレイ(例えば、各タイルは、16×16の位置合わせされたピクセルを含み得る)に対応する光線束を発することができる。光線束は、人工現実シーンに入る前に、1つまたは複数の歪みメッシュに従ってワーピングされてもよい。歪みメッシュは、少なくとも、HMDのディスプレイ750aおよび750bから生じる幾何学的歪み効果を補正するように構成することができる。変換ブロック720aおよび720bは、各タイルの境界ボックスを各サーフェスの境界ボックスと比較することによって、各光線束がシーン内のサーフェスと交差するかどうかを判定することができる。光線束がオブジェクトと交差しない場合、それは廃棄されてもよい。タイル-サーフェスの交点が検出され、対応するタイル-サーフェスペア725aおよび725bがピクセルブロック730aおよび730bに渡される。
[63] 一般的に、特定の実施形態によれば、ピクセルブロック730aおよび730bは、タイル-サーフェスペア725aおよび725bからカラー値を決定し、ピクセルカラー値を生成する。各ピクセルのカラー値は、制御ブロック710によって受信され記憶されたサーフェスのテクスチャデータから(例えば、入力データストリーム760の一部として)サンプリングされる。ピクセルブロック730aおよび730bは、変換ブロック720aおよび720bからタイル-サーフェスペア725aおよび725bをそれぞれ受け取り、バイリニアフィルタリングを予定する。各タイル-サーフェスペア725aおよび725bについて、ピクセルブロック730aおよび730bは、投影されたタイルがサーフェスと交差する場所に対応するカラー値を使用して、タイル内のピクセルについてのカラー情報をサンプリングしてもよい。特定の実施形態では、ピクセルブロック730aおよび730bは、各ピクセルに対して赤、緑および青の色成分を別々に処理する。次いで、ピクセルブロック730aおよび730bは、ピクセルカラー値735aおよび735bをそれぞれ出力して、ブロック740aおよび740bを表示することができる。
[64] 一般的に、ディスプレイブロック740aおよび740bは、ピクセルブロック730aおよび730bからピクセルカラー値735aおよび735bを受け取り、ディスプレイのスキャンライン出力により適するようにデータのフォーマットを変換し、ピクセルカラー値735aおよび735bに1つまたは複数の輝度補正を適用し、ディスプレイ750aおよび750bに出力するためにピクセルカラー値735aおよび735bを準備することができる。ディスプレイブロック740aおよび740bは、ピクセルブロック730aおよび730bによって生成されたタイル順のピクセルカラー値735aおよび735bを、ディスプレイ750aおよび750bによって必要とされ得るスキャンライン順または行順のデータに変換し得る。輝度補正は、必要な任意の輝度補正、ガンママッピング、およびディザリングを含んでもよい。ディスプレイブロック740aおよび740bは、補正されたピクセルカラー値などのピクセル出力745aおよび745bを、直接ディスプレイ750aおよび750bに提供してもよく、あるいは、ピクセル出力745aおよび745bを、さまざまな形式でディスプレイエンジン700の外部のブロックに提供してもよい。例えば、HMDは、バックエンドカラー処理をさらにカスタマイズするため、ディスプレイへのより広いインターフェースをサポートするため、あるいはディスプレイの速度または忠実度を最適化するために、追加のハードウェアまたはソフトウェアを備えることができる。
[65] 図8は、例示的なコンピュータシステム800を示す。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書に記載または図示された1つまたは複数の方法のうちの1つ以上のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書に記載または図示された機能を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム800上で動作するソフトウェアは、本明細書に記載または図示された1つまたは複数の方法のうちの1つ以上のステップを実行し、あるいは本明細書に記載または図示された機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム800の1つまたは複数の部分を含む。ここで、コンピュータシステムへの言及は、必要に応じて、コンピューティングデバイスを包むことがあり、その逆もあり得る。さらに、コンピュータシステムへの言及は、必要に応じて、1つまたは複数のコンピュータシステムを包み得る。
[66] 本開示は、任意の適切な数のコンピュータシステム800を企図する。本開示は、任意の適切な物理的形態をとるコンピュータシステム800を企図する。一例とし、限定されるものではないが、コンピュータシステム800は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯型情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、またはこれらの2つ以上の組み合わせであってもよい。必要に応じて、コンピュータシステム800は、1つまたは複数のコンピュータシステム800を含むことができ、単独または分散型で、複数の位置にまたがり、複数のマシンにまたがり、複数のデータセンタにまたがり、あるいは、1つまたは複数のネットワーク内に1つまたは複数のクラウド構成要素を含み得るクラウド内に存在することができる。必要に応じて、1つまたは複数のコンピュータシステム800は、実質的に空間的または時間的な制限なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行することができる。一例とし、限定されるものではないが、1つまたは複数のコンピュータシステム800は、リアルタイムまたはバッチモードで、本明細書に記載または図示された1つまたは複数の方法のうちの1つ以上のステップを実行することができる。1つまたは複数のコンピュータシステム800は、必要に応じて、本明細書で説明または図示される1つまたは複数の方法のうちの1つ以上のステップを、異なる時刻に、または異なる位置で実行することができる。
[67] 特定の実施形態では、コンピュータシステム800は、プロセッサ802、メモリ804、記憶装置806、入出力(I/O)インターフェース808、通信インターフェース810、およびバス812を含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、例示するが、本開示は、任意の適切な構成において任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを企図する。
[68] 特定の実施形態では、プロセッサ802は、コンピュータプログラムを構成するような命令を実行するためのハードウェアを含む。一例として、限定されるものではないが、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、または記憶装置806から命令を検索(またはフェッチ)し、それらをデコードして実行し、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ804、または記憶装置806に書き込むことができる。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ802を企図する。一例として、限定されるものではないが、プロセッサ802は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含み得る。命令キャッシュ内の命令は、メモリ804または記憶装置806内の命令のコピーであってよく、命令キャッシュは、プロセッサ802によるそれらの命令の検索を高速化し得る。データキャッシュ内のデータは、プロセッサ802で実行される命令のためのメモリ804または記憶装置806内のデータのコピー、プロセッサ802で実行される後続の命令によるアクセス、またはメモリ804または記憶装置806への書き込みのためにプロセッサ802で実行される前の命令の結果、または他の適切なデータであってもよい。データキャッシュは、プロセッサ802による読み出しまたは書き込み動作を高速化し得る。TLBは、プロセッサ802に対する仮想アドレス変換を高速化し得る。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含んでもよい。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ802を企図する。必要に応じて、プロセッサ802は、1つまたは複数の算術論理演算ユニット(ALU)を含むことができ、マルチコアプロセッサであってよく、あるいは、1つまたは複数のプロセッサ802を含み得る。本開示は、特定のプロセッサを説明し、例示するが、本開示は、任意の適切なプロセッサを企図する。
[69] 特定の実施形態では、メモリ804は、プロセッサ802が実行する命令、またはプロセッサ802が動作するためのデータを記憶するためのメインメモリを含む。一例として、限定されるものではないが、コンピュータシステム800は、記憶装置806または別のソース(例えば、別のコンピュータシステム800など)からメモリ804に命令をロードしてもよい。次に、プロセッサ802は、メモリ804から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ802は、内部レジスタまたは内部キャッシュから命令を検索し、それらをデコードすることができる。命令の実行中または実行後に、プロセッサ802は、1つまたは複数の結果(中間結果または最終結果であってもよい)を内部レジスタまたは内部キャッシュに書き込んでもよい。次に、プロセッサ802は、これらの結果のうちの1つまたは複数をメモリ804に書き込むことができる。特定の実施形態では、プロセッサ802は、(記憶装置806などとは対照的に)1つまたは複数の内部レジスタまたは内部キャッシュまたはメモリ804内の命令のみを実行し、(記憶装置806などとは対照的に)1つまたは複数の内部レジスタまたは内部キャッシュまたはメモリ804内のデータに対してのみ動作する。1つまたは複数のメモリバス(各々がアドレスバスおよびデータバスを含み得る)は、プロセッサ802をメモリ804に連結することができる。バス812は、以下で説明するように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)は、プロセッサ802とメモリ804との間に常駐し、プロセッサ802によって要求されるメモリ804へのアクセスを容易にする。特定の実施形態では、メモリ804は、ランダムアクセスメモリ(RAM)を含む。このRAMは、必要に応じて、揮発性メモリであってもよい。必要に応じて、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、必要に応じて、このRAMはシングルポートRAMまたはマルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ804は、必要に応じて、1つまたは複数のメモリ804を含み得る。本開示は、特定のメモリを説明し、例示するが、本開示は、任意の適切なメモリを企図する。
[70] 特定の実施形態では、記憶装置806は、データまたは命令のための大容量記憶装置を含む。一例として、限定されるものではないが、記憶装置806は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらの2つ以上の組み合わせを含み得る。記憶装置806は、必要に応じて、リムーバブルまたは非リムーバブル(または固定)媒体を含むことができる。記憶装置806は、必要に応じて、コンピュータシステム800の内部にあっても外部にあってもよい。特定の実施形態では、記憶装置806は、不揮発性のソリッドステートメモリである。特定の実施形態では、記憶装置806は、読み出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的可変ROM(EAROM)、またはフラッシュメモリ、あるいはこれらの2つ以上の組み合わせであってもよい。本開示は、任意の適切な物理的形態をとる大容量記憶装置806を企図する。記憶装置806は、適宜、プロセッサ802と記憶装置806との間の通信を容易にする1つまたは複数の記憶制御ユニットを含むことができる。必要に応じて、記憶装置806は、1つまたは複数の記憶装置806を含むことができる。本開示は、特定の記憶装置を説明し、例示するが、本開示は、任意の適切な記憶装置を企図する。
[71] 特定の実施形態では、I/Oインターフェース808は、コンピュータシステム800と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム800は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数が、人とコンピュータシステム800との間の通信を可能にし得る。一例として、限定されるものではないが、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはこれらの2つ以上の組み合わせを含む。I/Oデバイスは、1つまたは複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスおよびそれらのための任意の適切なI/Oインターフェース808を企図する。必要に応じて、I/Oインターフェース808は、プロセッサ802がこれらのI/Oデバイスの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース808は、必要に応じて、1つまたは複数のI/Oインターフェース808を含み得る。本開示は、特定のI/Oインターフェースを説明し、例示するが、本開示は、任意の適切なI/Oインターフェースを企図する。
[72] 特定の実施形態では、通信インターフェース810は、コンピュータシステム800と1つまたは複数の他のコンピュータシステム800、あるいは、1つまたは複数のネットワークとの間の通信(例えば、パケットベースの通信)のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。一例として、限定されるものではないが、通信インターフェース810は、イーサネットまたは他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいは、WI-FIネットワークのような無線ネットワークと通信するための無線NIC(WNIC)または無線アダプタを含んでもよい。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース810を企図する。一例として、限定されるものではないが、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、またはインターネットの1つまたは複数の部分、あるいはこれらの2つ以上の組み合わせと通信することができる。これらのネットワークの1つまたは複数の部分は、有線または無線であってもよい。一例として、コンピュータシステム800は、無線PAN(WPAN)(例えば、BLUETOOTH WPAN)、WI-FIネットワーク、WI-MAXネットワーク、携帯電話ネットワーク(例えば、GSM(Global System for Mobile Communications)ネットワークなど)、または他の適切な無線ネットワーク、あるいはこれらの2つ以上の組み合わせと通信することができる。コンピュータシステム800は、必要に応じて、これらのネットワークのいずれかのための任意の適切な通信インターフェース810を含み得る。通信インターフェース810は、必要に応じて、1つまたは複数の通信インターフェース810を含み得る。本開示は、特定の通信インターフェースを説明し、例示するが、本開示は、任意の適切な通信インターフェースを企図する。
[73] 特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに連結するハードウェア、ソフトウェア、またはその両方を含む。一例として、限定されるものではないが、バス812は、高速グラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジアタッチメント(SATA)バス、VESA(ビデオエレクトロニクススタンダードアソシエーション)ローカルバス(VLB)、または他の適切なバス、あるいは、これらの2つ以上の組み合わせを含み得るバス812は、必要に応じて、1つまたは複数のバス812を含み得る。本開示は、特定のバスを説明し、例示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
[74] 本明細書では、1つまたは複数のコンピュータ可読非一時記憶媒体は、1つまたは複数の半導体ベースまたは他の集積回路(IC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、SECURE DIGITALカードまたはドライブ、任意の他の適切なコンピュータ可読非一時記憶媒体、あるいは、必要に応じてこれらの2つ以上の任意の適切な組合せを含むことができる。コンピュータ可読非一時記憶媒体は、必要に応じて、揮発性、不揮発性、または揮発性と不揮発性の組合せとすることができる。
[75] 本明細書では、「または」は、特に明示的に示されていない限り、または文脈によって特に示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、特に明示的に示されていない限り、または文脈によって特に示されていない限り、「A、B、または両方」を意味する。さらに、「および」には、特に明示的に示されていない限り、または文脈によって特に示されていない限り、連携と個別の両方の意味がある。したがって、本明細書では、「AおよびB」は、特に明示的に示されていない限り、または文脈によって特に示されていない限り、「AおよびBが、連携してまたは個別に」を意味する。
[76] 本開示の範囲は、当業者であれば理解するであろう、本明細書に記載または図示された例示的な実施形態に対するすべての変更、置換、変形、変更、および修正を包含する。本開示の範囲は、本明細書に記載または図示された例示的な実施形態に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして本明細書でそれぞれの実施形態を記載および例示するが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書に記載または例示される構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは順列を含み得る。さらに、添付の特許請求の範囲において、特定の機能を実行するように適合され、配置され、可能にされ、構成され、有効にされ、動作可能にされ、あるいは稼働される装置またはシステム、もしくは装置またはシステムの構成要素に関する言及は、当該の装置、システム、または構成要素が適合され、配置され、可能にされ、構成され、有効にされ、動作可能にされ、あるいは稼働される限り、その特定の機能が起動され、オンにされ、またはロック解除されるかどうかにかかわらず、当該の装置、システム、構成要素を包含する。加えて、本開示は、特定の利点を提供するものとして特定の実施形態を記載または例示するが、特定の実施形態は、これらの利点のいずれも提供しないか、いくつか、またはすべてを提供し得る。

Claims (15)

  1. 1つまたは複数のコンピューティングシステムによって、
    ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成された、レンダリングされたフレームにアクセスすることと、
    前記レンダリングされたフレームに基づいて複数のサーフェスを生成することであって、前記サーフェスの各々が3D空間内に配置され、視覚情報を含む、複数のサーフェスを生成することと、
    前記3D空間内の前記ユーザの第2の視点を決定することと、
    前記第2の視点からの前記複数のサーフェスの可視性を決定することと、
    前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて、前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングすることと、
    を含む方法。
  2. 前記複数のサーフェスの各々の前記視覚情報はテクスチャであり、
    前記複数のサーフェスの前記決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、
    前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む、請求項1に記載の方法。
  3. 前記オブジェクトの前記3Dモデルはポリゴンを含み、
    前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される、請求項1に記載の方法。
  4. 前記レンダリングされたフレームは、前記オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、
    前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、
    前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に、第1のフレームレートで生成され、
    前記複数のサブフレームは、前記第1のフレームレートよりも高い第2のフレームレートで生成される、請求項1に記載の方法。
  5. 前記複数のサーフェスの前記可視性は、レイキャスティングを使用して決定され、
    前記レンダリングされたフレームは、レイトレーシングを使用して生成される、請求項1に記載の方法。
  6. 前記レンダリングされたフレームは、前記オブジェクトの前記3Dモデルと、前記仮想シーン内の第2のオブジェクトの第2の3Dモデルとに基づいて生成され、
    前記複数のサーフェスのうちの少なくとも1つは、前記オブジェクトと前記第2のオブジェクトとの両方を描写する視覚情報を含む、請求項1に記載の方法。
  7. 前記レンダリングされたフレームと前記サブフレームとが異なり、
    前記第1の視点と前記第2の視点とが異なる時点に決定される、請求項1に記載の方法。
  8. 実行されると、
    ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成されるレンダリングされたフレームにアクセスし、
    前記レンダリングされたフレームに基づく複数のサーフェスであって、前記サーフェスの各々は、3D空間内に配置され、視覚情報を含む複数のサーフェスを生成し、
    前記3D空間内の前記ユーザの第2の視点を決定し、
    前記第2の視点から前記複数のサーフェスの可視性を決定し、
    前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて、前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングする、
    ように動作可能なソフトウェアを具現化する、1つまたは複数のコンピュータ可読非一時記憶媒体。
  9. 前記複数のサーフェスの各々の前記視覚情報はテクスチャであり、
    前記複数のサーフェスの前記決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、
    前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む、請求項8に記載の媒体。
  10. 前記オブジェクトの前記3Dモデルはポリゴンを含み、
    前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される、請求項8に記載の媒体。
  11. 前記レンダリングされたフレームは、前記オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、
    前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、
    前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に生成される、請求項8に記載の媒体。
  12. 1つまたは複数のプロセッサと、
    前記プロセッサのうちの1つまたは複数に連結され、前記プロセッサのうちの1つまたは複数によって実行されるときに動作可能な命令を備える1つまたは複数のコンピュータ可読非一時記憶媒体と、
    を備えるシステムであって、
    前記命令によって、
    ユーザの第1の視点から仮想シーンを描写するレンダリングされたフレームであって、前記仮想シーン内のオブジェクトの少なくとも1つの3Dモデルに基づいて生成された、レンダリングされたフレームにアクセスし、
    前記レンダリングされたフレームに基づく複数のサーフェスであって、前記サーフェスの各々が3D空間内に配置され、視覚情報を含む、複数のサーフェスを生成し、
    前記3D空間内の前記ユーザの第2の視点を決定し、
    前記第2の視点から前記複数のサーフェスの可視性を決定し、
    前記視覚情報および前記複数のサーフェスの決定された可視性に基づいて前記第2の視点から前記仮想シーンを描写するサブフレームをレンダリングする、システム。
  13. 前記複数のサーフェスの各々の前記視覚情報は、テクスチャであり、
    前記複数のサーフェスの決定された可視性は、前記第2の視点から見える前記複数のサーフェス上の点を識別し、
    前記サブフレームの前記レンダリングは、前記複数のサーフェス上の前記点に従って前記複数のサーフェスの各々の前記テクスチャをサンプリングすることを含む、請求項12に記載のシステム。
  14. 前記オブジェクトの前記3Dモデルは、ポリゴンを含み、
    前記レンダリングされたフレームは、前記ポリゴンの1つまたは複数と前記第1の視点から投射された光線との間の計算された交点に基づいて生成される、請求項12に記載のシステム。
  15. 前記レンダリングされたフレームは、前記オブジェクトの少なくとも前記3Dモデルに基づいて生成された複数のフレームのうちの1つであり、
    前記レンダリングされたサブフレームは、前記複数のサーフェスに基づいて生成された複数のサブフレームのうちの1つであり、
    前記複数のサブフレームは、前記レンダリングされたフレームの後であって、前記複数のフレームのうちの後続のフレームの前に生成される、請求項12に記載のシステム。
JP2021510189A 2018-10-30 2019-10-28 拡張現実または仮想現実のシーンにおけるオブジェクトの表現の生成および修正 Pending JP2022511273A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862753035P 2018-10-30 2018-10-30
US62/753,035 2018-10-30
US16/586,590 2019-09-27
US16/586,590 US11170577B2 (en) 2018-10-30 2019-09-27 Generating and modifying representations of objects in an augmented-reality or virtual-reality scene
PCT/US2019/058267 WO2020092195A1 (en) 2018-10-30 2019-10-28 Generating and modifying representations of objects in an augmented-reality or virtual-reality scene

Publications (1)

Publication Number Publication Date
JP2022511273A true JP2022511273A (ja) 2022-01-31

Family

ID=70327383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021510189A Pending JP2022511273A (ja) 2018-10-30 2019-10-28 拡張現実または仮想現実のシーンにおけるオブジェクトの表現の生成および修正

Country Status (7)

Country Link
US (1) US11170577B2 (ja)
EP (1) EP3874468A1 (ja)
JP (1) JP2022511273A (ja)
KR (1) KR20210082242A (ja)
CN (1) CN112912823A (ja)
TW (1) TW202019167A (ja)
WO (1) WO2020092195A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024147391A1 (ko) * 2023-01-06 2024-07-11 엘지전자 주식회사 확장현실 디바이스 및 그 제어 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049315B2 (en) * 2019-07-31 2021-06-29 Verizon Patent And Licensing Inc. Methods and devices for bifurcating graphics rendering between a media player device and a multi-access edge compute server
US11468627B1 (en) * 2019-11-08 2022-10-11 Apple Inc. View dependent content updated rates
GB2590422B (en) * 2019-12-17 2024-03-06 Sony Interactive Entertainment Inc Content generation system and method
US11335077B1 (en) * 2021-03-19 2022-05-17 Facebook Technologies, Llc. Generating and modifying representations of dynamic objects in an artificial reality environment
US11379950B1 (en) 2021-05-07 2022-07-05 Lemon Inc. System and method for projecting content in an environment
TWI778756B (zh) * 2021-08-20 2022-09-21 財團法人資訊工業策進會 三維邊界框重建方法、三維邊界框重建系統及非暫態電腦可讀取媒體
US11961184B2 (en) * 2021-09-17 2024-04-16 Samsung Electronics Co., Ltd. System and method for scene reconstruction with plane and surface reconstruction
WO2023063937A1 (en) * 2021-10-13 2023-04-20 Innopeak Technology, Inc. Methods and systems for detecting planar regions using predicted depth
US11816231B2 (en) 2021-11-22 2023-11-14 Bank Of America Corporation Using machine-learning models to determine graduated levels of access to secured data for remote devices
US11935203B2 (en) 2022-06-30 2024-03-19 Snap Inc. Rotational navigation system in augmented reality environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213407A (ja) * 2006-02-10 2007-08-23 Gifu Univ 仮想現実画像表示装置
US20170148206A1 (en) * 2015-11-20 2017-05-25 Google Inc. Electronic display stabilization using pixel velocities

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8570320B2 (en) * 2011-01-31 2013-10-29 Microsoft Corporation Using a three-dimensional environment model in gameplay
US9424685B2 (en) * 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10089790B2 (en) * 2015-06-30 2018-10-02 Ariadne's Thread (Usa), Inc. Predictive virtual reality display system with post rendering correction
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US9832451B2 (en) * 2015-11-17 2017-11-28 Survios, Inc. Methods for reduced-bandwidth wireless 3D video transmission
US11010956B2 (en) * 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US10274737B2 (en) * 2016-02-29 2019-04-30 Microsoft Technology Licensing, Llc Selecting portions of vehicle-captured video to use for display
US10129523B2 (en) * 2016-06-22 2018-11-13 Microsoft Technology Licensing, Llc Depth-aware reprojection
US10379611B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US11127110B2 (en) * 2017-03-01 2021-09-21 Arm Limited Data processing systems
US10713752B2 (en) * 2017-06-09 2020-07-14 Sony Interactive Entertainment Inc. Temporal supersampling for foveated rendering systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213407A (ja) * 2006-02-10 2007-08-23 Gifu Univ 仮想現実画像表示装置
US20170148206A1 (en) * 2015-11-20 2017-05-25 Google Inc. Electronic display stabilization using pixel velocities

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024147391A1 (ko) * 2023-01-06 2024-07-11 엘지전자 주식회사 확장현실 디바이스 및 그 제어 방법

Also Published As

Publication number Publication date
US11170577B2 (en) 2021-11-09
KR20210082242A (ko) 2021-07-02
US20200134923A1 (en) 2020-04-30
TW202019167A (zh) 2020-05-16
CN112912823A (zh) 2021-06-04
EP3874468A1 (en) 2021-09-08
WO2020092195A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US11170577B2 (en) Generating and modifying representations of objects in an augmented-reality or virtual-reality scene
US11719933B2 (en) Hand-locked rendering of virtual objects in artificial reality
CN106856009B (zh) 视网膜凹式渲染
US11176901B1 (en) Pan-warping and modifying sub-frames with an up-sampled frame rate
US11954805B2 (en) Occlusion of virtual objects in augmented reality by physical objects
US11100899B2 (en) Systems and methods for foveated rendering
KR20210087052A (ko) 사후-렌더링 프로세스를 위한 디스플레이 엔진
JP2022519431A (ja) マルチプロジェクタ表示アーキテクチャ
US11734858B2 (en) Joint pixel and texture data compression
JP2022504892A (ja) 並行テクスチャサンプリング
US20210090322A1 (en) Generating and Modifying Representations of Objects in an Augmented-Reality or Virtual-Reality Scene
CN115661408A (zh) 在人工现实环境中生成和修改手的表示
US11557049B1 (en) Interpolation optimizations for a display engine for post-rendering processing
US11647193B2 (en) Adaptive range packing compression
JP2024502273A (ja) 時間的中心窩レンダリング
US11011123B1 (en) Pan-warping and modifying sub-frames with an up-sampled frame rate

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240305