IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジック リープ, インコーポレイテッドの特許一覧

特開2023-88956仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム
<>
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図1
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図2
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図3A
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図3B
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図4
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図5
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図6
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図7
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図8
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図9
  • 特開-仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023088956
(43)【公開日】2023-06-27
(54)【発明の名称】仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20230620BHJP
   G06F 3/04815 20220101ALI20230620BHJP
   H04N 13/279 20180101ALI20230620BHJP
   H04N 13/194 20180101ALI20230620BHJP
   H04N 13/344 20180101ALI20230620BHJP
   H04N 7/14 20060101ALI20230620BHJP
   H04N 21/431 20110101ALI20230620BHJP
   H04N 21/44 20110101ALI20230620BHJP
   G09G 5/00 20060101ALI20230620BHJP
   H04N 13/366 20180101ALI20230620BHJP
   H04N 13/383 20180101ALI20230620BHJP
   G09G 5/36 20060101ALI20230620BHJP
【FI】
G06T19/00 600
G06F3/04815
H04N13/279
H04N13/194
H04N13/344
H04N7/14 170
H04N21/431
H04N21/44
G09G5/00 510H
G09G5/00 530T
G09G5/00 550C
G09G5/00 550X
H04N13/366
H04N13/383
G09G5/36 500
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023041816
(22)【出願日】2023-03-16
(62)【分割の表示】P 2022185538の分割
【原出願日】2018-12-19
(31)【優先権主張番号】62/610,112
(32)【優先日】2017-12-22
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/715,199
(32)【優先日】2018-08-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】プラヴィーン バブ ジェイ ディー
(72)【発明者】
【氏名】ショーン クリストファー ライリー
(57)【要約】
【課題】仮想、拡張、または複合現実環境内で3Dビデオを生成および表示するための方法およびシステムの提供。
【解決手段】VRおよび/またはARシステム内で3Dビデオを表示するためのアプローチが、開示される。3Dビデオは、ディスプレイ画面から逃散する3D動画オブジェクトを含み得る。3Dビデオは、VRおよび/またはAR環境内のオブジェクトと相互作用し得る。3Dビデオは、3Dビデオのある部分においてユーザによって選出される決定に対応するユーザ入力に基づいて、異なる筋書き、および可能性として、異なる結末が、3Dビデオに関して結果として生じ得るように、ユーザと相互作用し得る。3Dビデオは、最終3Dレンダリング世界のポータル内で表示される3Dアイコンであり得る。
【選択図】なし
【特許請求の範囲】
【請求項1】
仮想および/または拡張現実環境内で双方向3Dビデオを表示するためのコンピュータ実装方法であって、前記方法は、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別することと、
ユーザによって選出される決定に対応する入力として、前記ユーザから1つ以上の相互作用を受信することと、
少なくとも前記ユーザによって選出される前記決定に基づいて、前記3Dビデオをレンダリングすることと
を含む、方法。
【請求項2】
前記3Dビデオは、立体3Dビデオである、請求項1に記載の方法。
【請求項3】
前記3Dビデオは、制御データを備えるビデオファイルフォーマットを有し、前記制御データは、少なくとも部分的に前記ユーザによって選出される前記決定に基づいて、前記3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する、請求項1に記載の方法。
【請求項4】
前記ユーザから受信される前記1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項5】
前記ユーザから受信される前記1つ以上の相互作用からの相互作用は、前記3Dビデオを前記3Dビデオの異なる部分にジャンプさせる、請求項1に記載の方法。
【請求項6】
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールと
を備え、
前記モジュールは、メモリ内に記憶され、前記モジュールは、実行されると、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するプロセスと、
ユーザによって選出される決定に対応する入力として、前記ユーザから1つ以上の相互作用を受信するプロセスと、
少なくとも前記ユーザによって選出される前記決定に基づいて、前記3Dビデオをレンダリングするプロセスと
を実施する、仮想および/または拡張現実ディスプレイシステム。
【請求項7】
前記3Dビデオは、立体3Dビデオである、請求項6に記載の仮想および/または拡張現実ディスプレイシステム。
【請求項8】
前記3Dビデオは、制御データを備えるビデオファイルフォーマットを有し、前記制御データは、少なくとも部分的に前記ユーザによって選出される前記決定に基づいて、前記3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する、請求項6に記載の仮想および/または拡張現実ディスプレイシステム。
【請求項9】
前記ユーザから受信される前記1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを備える、請求項6に記載の仮想および/または拡張現実ディスプレイシステム。
【請求項10】
前記ユーザから受信される前記1つ以上の相互作用からの相互作用は、前記3Dビデオを前記3Dビデオの異なる部分にジャンプさせる、請求項6に記載の仮想および/または拡張現実ディスプレイシステム。
【請求項11】
複合現実ビデオプレーヤを実装するコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
前記プログラムコード命令を保持するためのメモリと
を備え、
前記プログラムコード命令は、
ビデオのビデオファイルを受信することであって、前記ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備えるデータ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと
を備える、ことと、
前記制御データおよびタイムラインコントローラから制御ストリームを動的に生成することと、
前記ビデオのある時点でユーザに表示される質問に回答するユーザ相互作用を要求することと、
前記ユーザ相互作用を介して前記質問への回答を受信することと、
タイムラインコントローラに前記回答を通知することと、
前記回答に対応する前記ビデオの適切な部分にスキップすることと、
前記適切な部分から前記ビデオを表示することと
を実施するためのプログラムコードを備える、コンピュータシステム。
【請求項12】
前記プログラムコード命令は、仮想および/または拡張現実デバイスを介して、前記ビデオを表示することをさらに実施するためのプログラムコードを備える、請求項11に記載のコンピュータシステム。
【請求項13】
前記データ記憶は、前記ビデオファイルが受信されるときに、メモリの中に完全にロードされる、請求項11に記載のコンピュータシステム。
【請求項14】
前記制御ストリームは、前記制御ストリームが生成されるときに、メモリの中に完全にロードされる、請求項11に記載のコンピュータシステム。
【請求項15】
前記ビデオは、立体3Dビデオである、請求項11に記載のコンピュータシステム。
【請求項16】
前記制御ストリームは、少なくとも部分的に前記データ記憶からのデータに基づいて、前記ビデオの前記時点において質問を前記ユーザに表示するときを制御する、請求項11に記載のコンピュータシステム。
【請求項17】
前記ユーザ相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを備える、請求項11に記載のコンピュータシステム。
【請求項18】
前記タイムラインコントローラは、前記ビデオストリームの位置を制御する、請求項11に記載のコンピュータシステム。
【請求項19】
前記プログラムコード命令は、少なくとも部分的に受信される前記回答に基づいて、実行時双方向性データを伴って前記ビデオの状態を記憶することをさらに実施するためのプログラムコードを備える、請求項11に記載のコンピュータシステム。
【請求項20】
前記ユーザに表示される前記質問は、前記ビデオの筋書きが終了し得る方法を変更する質問に対応する、請求項11に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、1人以上のユーザのための双方向仮想、拡張、または複合現実環境を促進するように構成される、システムおよび方法に関する。
【背景技術】
【0002】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実」(VR)、「拡張現実」(AR)、または「複合現実」(MR)体験のためのシステムの開発を促進しており、デジタル的に再現された画像またはその一部が、現実であるように見える、またはそのように知覚され得る様式でユーザに提示される。VRシナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う一方で、AR/MRシナリオは、典型的には、デジタルまたは仮想画像(例えば、仮想コンテンツ)が実際の世界の一部であるように見え得るように、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。複合現実は、複合現実シナリオが実際の世界およびデジタル世界の混合を有するため、拡張現実シナリオに類似し得る。ARは、以降では、ARおよびMRの両方を指し得る。
【0003】
VR/AR環境では、表示される必要がある、あらゆる種類の仮想コンテンツが存在する。3Dビデオ等の仮想コンテンツが、VR/AR環境内で表示される必要があり得る。VR/AR環境では、ユーザは、VR/AR環境を自由に動き回り、表示されている3Dビデオを視認することが可能であり得る。3Dビデオをディスプレイ画面にレンダリングする現在の技法は、VR/AR環境内で表示されるときに、現実的に見えない場合がある。特に、これらの3Dビデオが、ユーザと相互作用可能であり得るときである。
【0004】
したがって、VR/AR環境内でより現実的な様式で3Dビデオを生成および表示するためのアプローチの必要性がある。
【発明の概要】
【課題を解決するための手段】
【0005】
いくつかの実施形態によると、一実施形態は、仮想および/または拡張現実環境内でディスプレイ画面の表面を越えて延在する3Dビデオを表示するための方法であって、3Dビデオを識別するステップを含む、方法を対象とする。加えて、3Dビデオに対応する1つ以上の3Dモデルを生成するステップと、3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするステップとを含む。
【0006】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオであり、1つ以上の3Dモデルは、アニメーションを伴って生成される。本方法はさらに、少なくとも部分的に3Dビデオのディスプレイ画面の外側に1つ以上の3Dモデルのアニメーションを表示するステップを含んでもよく、1つ以上の3Dモデルのアニメーションは、3Dビデオの平面から出て、ユーザの3D環境の中に入るように見える。1つ以上の3Dモデルのアニメーションは、3Dビデオの非平面から出て、ユーザの3D環境の中に入るように見え得る。本方法は、その上さらに、1つ以上の3Dモデルを1つ以上のビデオペイン上にレンダリングするステップと、1つ以上の視認配向のために同時に1つ以上のビデオペインを表示するステップとを含んでもよい。
【0007】
1つ以上の実施形態では、立体3Dビデオは、1つ以上の3Dモデルを伴って表示され、深度情報は、仮想および/または拡張現実デバイスのユーザから3Dビデオまでの距離
を備え、個別の1つ以上の3Dモデルは、仮想および/または拡張現実環境内に表示される。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有してもよく、制御データは、3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするようにビデオプレーヤに命令する。1つ以上の3Dモデルのレンダリングは、少なくとも部分的にボクセルベースのビデオストリームに基づく。
【0008】
いくつかの実施形態は、ディスプレイ画面の表面を越えて延在する3Dビデオを表示するためのディスプレイシステムを対象とし、本システムは、拡張現実頭部搭載型ディスプレイシステムと、データを処理するための1つ以上のモジュールとを含み、1つ以上のモジュールは、1つ以上のメモリ内に記憶され、1つ以上のモジュールは、3Dビデオを識別するステップを実施するように構成されてもよい。1つ以上のモジュールはまた、3Dビデオに対応する1つ以上の3Dモデルを生成するステップを実施するように構成されてもよい。1つ以上のモジュールはまた、3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするステップを実施するように構成されてもよい。
【0009】
ディスプレイシステムの1つ以上の実施形態では、3Dビデオは、立体3Dビデオであり、1つ以上の3Dモデルは、アニメーションを伴って生成される。本方法はさらに、少なくとも部分的に3Dビデオのディスプレイ画面の外側に1つ以上の3Dモデルのアニメーションを表示するステップを含んでもよく、1つ以上の3Dモデルのアニメーションは、3Dビデオの平面から出て、ユーザの3D環境の中に入るように見える。1つ以上の3Dモデルのアニメーションは、3Dビデオの非平面から出て、ユーザの3D環境の中に入るように見え得る。本方法は、その上さらに、1つ以上の3Dモデルを1つ以上のビデオペイン上にレンダリングするステップと、1つ以上の視認配向のために同時に1つ以上のビデオペインを表示するステップとを含んでもよい。
【0010】
いくつかの実施形態は、1つ以上のアニメーションストリームと、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含み得る、ビデオファイルフォーマットを対象とする。
【0011】
一実施形態は、3Dレンダリング世界内のポータルであって、3Dレンダリング世界の平面内の開口部である、ポータルを識別するステップを含む、方法を対象とする。加えて、第1の2D立体画像および第2の2D立体画像が、3Dレンダリング世界のポータルの中にレンダリングされてもよい。
【0012】
1つ以上の実施形態では、レンダリングされた3Dレンダリング世界は、拡張現実デバイスを通してユーザにレンダリングされてもよい。第1の2D立体画像は、右眼用であり、第2の2D立体画像は、左眼用である。一実施形態では、第1の2D立体画像および第2の2D立体画像は、従来的な3Dビデオ(例えば、3D映画)から供給される。異なる実施形態では、第1の2D立体画像および第2の2D立体画像は、3Dレンダリング世界の異なる部分内に位置する2つの仮想レンダリングカメラから供給される。
【0013】
1つ以上の実施形態では、第1の2D立体画像および第2の2D立体画像は、実世界コンテンツを捕捉する2つのカメラから供給される。異なる実施形態では、第1の2D立体画像および第2の2D立体画像は、異なる3Dレンダリング世界から供給される。いくつかの実施形態では、ポータルは、ポータルアイコンとして、または仮想テレビ画面として表示されることができる。
【0014】
別の実施形態は、仮想および/または拡張現実環境内で3Dビデオを表示するためのコンピュータ実装方法であって、3Dビデオを識別するステップを含む、方法を対象とする
。本方法はまた、仮想および/または拡張現実環境の一部内で3Dビデオを表示するための体積空間を識別するステップも含む。そして、3Dメディアプレーヤによって、体積空間内で3Dビデオをレンダリングする。
【0015】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオである。体積空間は、3Dオブジェクトのポータルビューであり、3Dオブジェクトは、平面視認ディスプレイを有する、仮想テレビである。3Dビデオは、仮想テレビの平面視認ディスプレイ内でレンダリングされる。3Dビデオからの第1の深度情報が、仮想および/または拡張環境体積空間の一部の第1の場所から、3Dビデオを視認するユーザの第2の場所までの第2の深度情報に追加される。
【0016】
別の実施形態は、仮想および/または拡張現実環境内の体積空間の一部内で表示するようにレンダリングされ得る、3Dビデオを対象とする。3Dビデオは、画面から逃散する3Dオブジェクトを含んでもよい。3Dビデオは、仮想および/または拡張現実環境と相互作用してもよい。3Dビデオは、筋書きに影響を及ぼし得るユーザ入力に基づいて、異なる筋書きの結末が、3Dビデオに関して結果として生じ得るように、ユーザと相互作用し得る。
【0017】
別の実施形態は、3D環境内に2つの第1段階カメラを設置するステップを含む、方法を対象とする。加えて、本方法は、2つの第1段階カメラから1つ以上の対の2D画像を捕捉するステップを含んでもよい。さらに、本方法は、1つ以上の対の2D画像を、最終段階場面(時として、代替として最終3Dレンダリング世界と呼ばれる)内の場所の中に設置するステップを含んでもよい。そして、本方法は、2つの最終段階カメラから最終段階場面をレンダリングするステップを含んでもよい。
【0018】
1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して最終段階場面を表示するステップを含んでもよい。表示場所は、ポータルであってもよい。2つの第1段階カメラのうちの第1のカメラは、左眼の視点から2D画像を捕捉し、2つの第1段階カメラのうちの第2のカメラは、右眼の視点から2D画像を捕捉する。1つ以上の他の対の2つの2D画像が、ユーザの両眼に対応する、2つの最終段階カメラから捕捉されてもよい。
【0019】
1つ以上の実施形態では、2つの第1段階カメラは、最終段階の2つのレンダリングカメラと異なる3D環境の場所にある。2つの第1段階カメラは、仮想カメラであってもよく、3D環境は、3D仮想世界であってもよい。3D環境は、実際の世界のデジタル表現であってもよい。
【0020】
別の実施形態は、第1のソースからの第1の3Dコンテンツを第2のソースからの第2の3Dコンテンツの中に設置するステップを含む、方法を対象とする。1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して、第2の3Dコンテンツを表示するステップを含んでもよい。第1の3Dコンテンツは、第2の3Dコンテンツ内のポータルの中に設置されてもよい。第1のソースの第1のカメラは、左眼の視点から2D画像を捕捉し、第1のソースの第2のカメラは、右眼の視点から2D画像を捕捉する。
【0021】
1つ以上の実施形態では、別の一対の2つの2D画像が、第2のソースからの2つの他のカメラから捕捉され、一対の2つの2D画像は、第2のソースからの場面を視認するユーザの両眼に対応する。第1のソースからの2つのカメラは、第2のソースからの2つの他のカメラと異なる3D環境の場所にある。第1の3Dコンテンツは、2つの仮想カメラから捕捉されてもよく、第1のソースは、3D仮想世界であってもよい。いくつかの実施
形態では、第1のソースは、実際の世界であってもよい。
【0022】
別の実施形態は、立体画像の第2のセットの内側に立体画像の第1のセットを設置するステップを含む、方法を対象とする。1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して立体画像の第2のセットを表示するステップを含んでもよい。立体画像の第1のセットは、立体画像の第2のセット内のポータルの中に設置される。立体画像の第1のセットは、左眼の視点から2D画像を捕捉し得る第1のカメラ、および右眼の視点から2D画像を捕捉し得る第2のカメラによって、捕捉される。
【0023】
1つ以上の実施形態では、立体画像の第2のセットは、2つの他のカメラによって捕捉され、2つの他のカメラは、立体画像の第2のセットを捕捉し、2つの他のカメラは、ポータル内で立体画像の第1のセットを示す場面を視認するユーザの両眼に対応し得る。立体画像の第1のセットは、立体画像の第2のセットを捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉されてもよい。立体画像の第1のセットは、3D仮想世界で2つの仮想カメラから捕捉されてもよい。立体画像の第1のセットは、実際の世界で2つのカメラから捕捉されてもよい。
【0024】
いくつかの実施形態は、2つの入力画像を識別するステップを含む、方法を対象とし、1つの入力画像は、左眼の視点に対応し得、第2の入力画像は、右眼の視点に対応し得る。加えて、本方法はまた、2つの入力画像を最終3Dレンダリング世界内の規定場所の中に設置するステップを含んでもよい。1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して、最終3Dレンダリング世界を表示するステップを含んでもよい。規定場所は、最終3Dレンダリング世界内のポータルであってもよい。2つの入力画像は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉されてもよい。
【0025】
1つ以上の実施形態では、最終3Dレンダリング世界は、2つの他のカメラによって捕捉されてもよく、2つの他のカメラは、最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で2つの入力画像を示す場面を視認するユーザの両眼に対応する。2つの入力画像は、最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉されてもよい。2つの入力画像は、3D仮想世界で2つの仮想カメラから捕捉されてもよい。2つの入力画像は、実際の世界で2つのカメラから捕捉されてもよい。
【0026】
いくつかの実施形態は、3Dデータ入力を識別するステップを含む、方法を対象とする。さらに、本方法はまた、3Dデータ入力を仮想最終3Dレンダリング世界内の場所の中に設置するステップを含んでもよい。1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して、仮想最終3Dレンダリング世界を表示するステップを含んでもよい。場所は、仮想最終3Dレンダリング世界内のポータルであってもよい。3Dデータ入力は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉し得る第2のカメラによって、捕捉されてもよい。
【0027】
1つ以上の実施形態では、仮想最終3Dレンダリング世界は、2つの他のカメラによって捕捉されてもよく、2つの他のカメラは、仮想最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で3Dデータ入力を示す場面を視認するユーザの両眼に対応する。3Dデータ入力は、仮想最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉されてもよい。3Dデータ入力は、3D仮想世界で2つの仮想カメラから捕捉されてもよい。3Dデータ入力は、実際の世界で2つのカメラから捕捉されてもよい。
【0028】
いくつかの実施形態は、ビデオファイルフォーマットを対象とし、ビデオファイルフォーマットは、1つ以上のアニメーションストリームと、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含んでもよい。1つ以上の実施形態では、データ記憶は、1つ以上の制御データと、1つ以上の3Dモデルと、1つ以上のテクスチャと、1つ以上の材料とを含んでもよい。制御データは、ビデオファイルフォーマットを読み取るアプリケーションが最初にアクセスされるときに、メモリの中に完全にロードされてもよい。制御ストリームは、制御データがメモリの中に完全にロードされるときに、データ記憶からの1つ以上の制御データからメモリの中に事前ロードされてもよい。制御ストリームは、ビデオストリームまたはオーディオストリームよりも先のタイムラインに対応する時間が見えるように構成されてもよい。
【0029】
1つ以上の実施形態では、制御ストリームは、コマンドおよび/または単純な論理ゲートを備え、ビデオのタイムライン内の適切な時間に再生するためのモデルおよびアニメーションの組み合わせを決定してもよい。ビデオのタイムライン内の適切な時間は、ビデオストリームおよびオーディオストリームの対応する時間と対応する。制御ストリームは、キーフレームを備える。アニメーションストリーム、ビデオストリーム、およびオーディオストリームは、1つのキーフレームの先および後が見えるように構成されてもよい。1つ以上のアニメーションストリームは、1つ以上の3Dモデルに関連付けられるアニメーション命令に対応し得る。1つ以上のアニメーションストリームのうちの各アニメーションストリームは、データ記憶の3Dモデル、テクスチャ、または材料のうちの少なくとも1つに対応し得る。
【0030】
いくつかの実施形態は、ビデオのビデオファイルを受信するステップを含む、方法を対象とし、ビデオファイルは、1つ以上のアニメーションストリームと、制御データを備える、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含んでもよい。本方法はまた、制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップを含んでもよい。加えて、本方法はまた、データ記憶から受信される3Dオブジェクトのモデルをロードするステップを含んでもよい。本方法はまた、3Dオブジェクトを1つ以上のアニメーションストリームのうちのアニメーションストリームに添付するステップを含んでもよい。
【0031】
1つ以上の実施形態では、1つ以上のアニメーションストリームは、データ記憶内に記憶された個別の3Dモデルに対応する。1つ以上のアニメーションストリームは、ビデオに対する3Dオブジェクトの移動、配向、および/または位置を制御してもよい。3Dオブジェクトのモデルは、少なくとも部分的に、ビデオストリームの時間の先を見越して、3Dオブジェクトが表示される必要があるときを予想する、制御ストリームに基づいて、ロードされてもよい。
【0032】
1つ以上の実施形態では、本方法はまた、少なくとも、モデルのサイズ、ネットワーク帯域幅、またはユーザの仮想および/または拡張現実システムの処理能力のうちの1つに基づいて、モデルをロードするためのリード時間を決定するステップを含んでもよい。加えて、本方法はまた、仮想および/または拡張現実デバイスを介して、ビデオを表示するステップを含んでもよい。データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされてもよい。制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされてもよい。ビデオは、立体3Dビデオであってもよい。
【0033】
いくつかの実施形態は、プログラムコード命令のセットを実行するためのコンピュータプロセッサと、プログラムコード命令を保持するためのメモリとを含む、複合現実ビデオプレーヤを実装するコンピュータシステムを対象とし、プログラムコード命令は、ビデオのビデオファイルを受信するステップを実施するためのプログラムコードを含んでもよく
、ビデオファイルは、1つ以上のアニメーションストリームと、制御データを備える、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含んでもよい。プログラムコード命令はまた、制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップを実施するためのプログラムコードを含んでもよい。プログラムコード命令はさらに、データ記憶から受信される3Dオブジェクトのモデルをロードするステップを実施するためのプログラムコードを含んでもよい。プログラムコード命令はまた、3Dオブジェクトを1つ以上のアニメーションストリームのうちのアニメーションストリームに添付するステップを実施するためのプログラムコードを含んでもよい。
【0034】
別の実施形態は、ビデオのビデオファイルを受信するステップを含む、方法を対象とし、ビデオファイルは、1つ以上のアニメーションストリームと、制御データを備える、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含んでもよい。本方法はまた、制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップを含んでもよい。加えて、本方法はまた、ビデオのある時点でユーザに表示される質問に回答する、ユーザ相互作用を要求するステップを含んでもよい。さらに、本方法はまた、ユーザ相互作用を介して質問への回答を受信するステップを含んでもよい。本方法はまた、タイムラインコントローラに回答を通知するステップを含んでもよい。その上さらに、本方法はまた、回答に対応するビデオの適切な部分にスキップするステップを含んでもよい。本方法はまた、適切な部分からビデオを表示するステップを含んでもよい。
【0035】
1つ以上の実施形態では、本方法はまた、仮想および/または拡張現実デバイスを介して、ビデオを表示するステップを含んでもよい。データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされてもよい。制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされてもよい。ビデオは、立体3Dビデオであってもよい。制御ストリームは、少なくとも部分的にデータ記憶からのデータに基づいて、ビデオの具体的時点において質問をユーザに表示するときを制御してもよい。
【0036】
1つ以上の実施形態では、ユーザ相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む。タイムラインコントローラは、ビデオストリームの位置を制御する。本方法はまた、少なくとも部分的に受信される回答に基づいて、実行時双方向性データを伴ってビデオの状態を記憶するステップを含んでもよい。ユーザに表示される質問は、ビデオの筋書きが終了し得る方法を変更する質問に対応する。
【0037】
いくつかの実施形態は、プログラムコード命令のセットを実行するためのコンピュータプロセッサと、プログラムコード命令を保持するためのメモリとを含む、複合現実ビデオプレーヤを実装するコンピュータシステムを対象とし、プログラムコード命令は、ビデオのビデオファイルを受信するステップを実施するためのプログラムコードを含み、ビデオファイルは、1つ以上のアニメーションストリームと、制御データを備える、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含む。プログラムコード命令はまた、制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップ、ビデオのある時点でユーザに表示される質問に回答する、ユーザ相互作用を要求するステップ、ユーザ相互作用を介して質問への回答を受信するステップと、タイムラインコントローラに回答を通知するステップ、回答に対応するビデオの適切な部分にスキップするステップ、および適切な部分からビデオを表示するステップを実施するためのプログラムコードを含んでもよい。
【0038】
1つ以上の実施形態では、プログラムコード命令はまた、仮想および/または拡張現実
デバイスを介して、ビデオを表示するステップを実施するためのプログラムコードを含んでもよい。データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされてもよい。制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされてもよい。ビデオは、立体3Dビデオであってもよい。制御ストリームは、少なくとも部分的にデータ記憶からのデータに基づいて、ビデオの具体的時点において質問をユーザに表示するときを制御してもよい。
【0039】
1つ以上の実施形態では、ユーザ相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む。タイムラインコントローラは、ビデオストリームの位置を制御する。本方法はまた、少なくとも部分的に受信される回答に基づいて、実行時双方向性データを伴ってビデオの状態を記憶するステップを含んでもよい。ユーザに表示される質問は、ビデオの筋書きが終了し得る方法を変更する質問に対応する。
【0040】
別の実施形態は、仮想および/または拡張現実環境内で環境意識3Dビデオを表示するための方法であって、3Dビデオを識別するステップを含む、方法を対象とする。本方法はまた、1つ以上のセンサから、ユーザ環境の環境情報を受信するステップであって、環境情報は、環境内のオブジェクトを識別する、ステップも含む。本方法はさらに、環境から識別される1つ以上のオブジェクト上に3Dビデオの一部をレンダリングするステップを含んでもよい。
【0041】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオである。環境は、ユーザの物理的環境であってもよい。1つ以上のセンサは、物理的環境の場面情報を捕捉するための1つ以上のカメラを備える。本方法はさらに、1つ以上のセンサから捕捉される場面情報を解釈するステップと、環境から1つ以上の要素を検出および登録することによって、環境の1つ以上の要素をマッピングするステップとを含む。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、環境から識別される1つ以上のオブジェクト上に3Dビデオの一部を表示するようにビデオプレーヤに命令する。
【0042】
いくつかの実施形態は、仮想および/または拡張現実環境を捕捉するためのカメラと、データを処理するためのモジュールとを含む、仮想および/または拡張現実ディスプレイシステムを対象とし、モジュールは、メモリ内に記憶され、モジュールは、実行されると、3Dビデオを識別するプロセスと、1つ以上のセンサから、ユーザ環境の環境情報を受信するプロセスであって、環境情報は、環境内のオブジェクトを識別する、プロセスと、環境から識別される1つ以上のオブジェクト上に3Dビデオの一部をレンダリングするプロセスとを実施する。
【0043】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオである。環境は、ユーザの物理的環境であってもよい。1つ以上のセンサは、物理的環境の場面情報を捕捉するための1つ以上のカメラを備える。本方法はさらに、1つ以上のセンサから捕捉される場面情報を解釈するステップと、環境から1つ以上の要素を検出および登録することによって、環境の1つ以上の要素をマッピングするステップとを含む。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、環境から識別される1つ以上のオブジェクト上に3Dビデオの一部を表示するようにビデオプレーヤに命令する。
【0044】
いくつかの実施形態は、仮想および/または拡張現実環境内で双方向3Dビデオを表示するための方法を対象とし、本方法は、決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するステップを含む。さらに、本方法は、ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信するステップを含む。本方法はまた、少なくともユーザによって選出される決定
に基づいて、3Dビデオをレンダリングするステップを含んでもよい。
【0045】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオである。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有してもよく、制御データは、少なくとも部分的にユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する。ユーザから受信される1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む。ユーザから受信される1つ以上の相互作用からの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせる。
【0046】
いくつかの実施形態は、仮想および/または拡張現実環境を捕捉するためのカメラと、データを処理するためのモジュールとを含む、仮想および/または拡張現実ディスプレイシステムを対象とし、モジュールは、メモリ内に記憶され、モジュールは、実行されると、決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するプロセスと、ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信するプロセスと、少なくともユーザによって選出される決定に基づいて、3Dビデオをレンダリングするプロセスとを実施する。
【0047】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオである。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有してもよく、制御データは、少なくとも部分的にユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する。ユーザから受信される1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む。ユーザから受信される1つ以上の相互作用からの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせる。
【0048】
いくつかの実施形態は、3Dオブジェクトを表示するための方法を対象とし、本方法は、データベース内に3Dオブジェクトを表すグラフィカルデータを記憶するステップを含んでもよい。本方法はさらに、2D不透明ペインの背後に位置する3Dオブジェクトを視認するための視認開口を備える、2D不透明ペインを表示するステップと、第1の視点から視認開口を通して視認可能な3Dオブジェクトの第1の部分をレンダリングするステップと、第2の視認視点から視認開口を通して視認可能な3Dオブジェクトを表示する要求を受信するステップと、第2の視点から視認開口を通して視認可能な3Dオブジェクトの第2の部分をレンダリングするステップと、第2の視点から3Dオブジェクトの第2の部分を表示するステップとを含んでもよい。
【0049】
1つ以上の実施形態では、3Dオブジェクトを表すグラフィカルデータは、3Dオブジェクト全体の完全な表現である。3Dオブジェクトの第1の部分のレンダリングは、少なくとも部分的に、第1の視点からの3Dオブジェクトの視野に対する視野角に基づいてもよい。3Dオブジェクトの第2の部分のレンダリングは、少なくとも部分的に、第2の視点からの3Dオブジェクトの視野に対する視野角に基づいてもよい。不透明ペインはさらに、2D不透明ペインの背後に位置する複数の3Dオブジェクトを視認するための複数の視認開口を備えてもよい。
【0050】
1つ以上の実施形態では、複数の3Dオブジェクトのうちの各3Dオブジェクトは、個別の視認開口の背後に位置する。3Dオブジェクトは、3Dアイコンであってもよい。視認開口を備える2D不透明ペインは、複数の3Dアイコンを表示するためのアイコングリッドであってもよい。3Dオブジェクトは、ユーザが3Dオブジェクトを凝視するにつれて、視認開口を通して移動してもよい。3Dオブジェクトは、ユーザが3Dオブジェクトに合焦していないときに、2D画像として表示されてもよい。
【0051】
本開示の付加的および他の目的、特徴、および利点が、発明を実施するための形態、図面、および請求項に説明される。
本願明細書は、例えば、以下の項目も提供する。
(項目1)
ディスプレイ画面の表面を越えて延在する3Dビデオを表示する方法であって、前記方法は、
3Dビデオを識別することと、
前記3Dビデオに対応する1つ以上の3Dモデルを生成することと、
前記3Dビデオのレンダリングとともに、適切なトリガ時間に前記1つ以上の3Dモデルをレンダリングすることと
を含む、方法。
(項目2)
前記3Dビデオは、立体3Dビデオである、項目1に記載の方法。
(項目3)
前記1つ以上の3Dモデルは、アニメーションを伴って生成される、項目2に記載の方法。
(項目4)
前記3Dビデオのディスプレイ画面の外側に前記1つ以上の3Dモデルのアニメーションを表示することをさらに含む、項目3に記載の方法。
(項目5)
前記1つ以上の3Dモデルのアニメーションは、前記3Dビデオの平面から出て、ユーザの3D環境の中に入るように見える、項目4に記載の方法。
(項目6)
前記1つ以上の3Dモデルのアニメーションは、前記3Dビデオの非平面から出て、ユーザの3D環境の中に入るように見える、項目4に記載の方法。
(項目7)
前記1つ以上の3Dモデルを1つ以上のビデオペイン上にレンダリングすることと、
1つ以上の視認配向のために同時に前記1つ以上のビデオペインを表示することと
をさらに含む、項目1に記載の方法。
(項目8)
前記立体3Dビデオは、前記1つ以上の3Dモデルを伴って表示される、項目2に記載の方法。
(項目9)
深度情報が、前記3Dビデオおよび前記1つ以上の3Dモデルのレンダリングの考慮に入れられ、前記深度情報は、仮想および/または拡張現実デバイスのユーザから前記3Dビデオまでの距離を備え、個別の1つ以上の3Dモデルは、仮想および/または拡張現実環境内に表示される、項目1に記載の方法。
(項目10)
前記3Dビデオは、制御データを備え、前記制御データは、前記3Dビデオのレンダリングとともに、前記適切なトリガ時間に前記1つ以上の3Dモデルをレンダリングするようにビデオプレーヤに命令する、項目1に記載の方法。
(項目11)
前記1つ以上の3Dモデルのレンダリングは、少なくとも部分的にボクセルベースのビデオストリームに基づく、項目1に記載の方法。
(項目12)
項目1-11に記載の方法のうちのいずれかを実装するための手段を備えるディスプレイ画面の表面を越えて延在する3Dビデオを表示するためのディスプレイシステム。
(項目13)
ビデオファイルフォーマットであって、
1つ以上のアニメーションストリームと、
データ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと
を備える、ビデオファイルフォーマット。
(項目14)
方法であって、
ビデオのビデオファイルを受信することであって、前記ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備えるデータ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと
を備える、ことと、
前記制御データおよびタイムラインコントローラから制御ストリームを動的に生成することと、
前記データ記憶から受信される3Dオブジェクトのモデルをロードすることと、
前記3Dオブジェクトを前記1つ以上のアニメーションストリームのうちのアニメーションストリームに添付することと
を含む、方法。
(項目15)
複合現実ビデオプレーヤを実装するコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
前記プログラムコード命令を保持するためのメモリであって、前記プログラムコード命令は、
ビデオのビデオファイルを受信することであって、前記ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備えるデータ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと
を備える、ことと、
前記制御データおよびタイムラインコントローラから制御ストリームを動的に生成することと、
前記データ記憶から受信される3Dオブジェクトのモデルをロードすることと、
前記3Dオブジェクトを前記1つ以上のアニメーションストリームのうちのアニメーションストリームに添付することと
を実施するためのプログラムコードを備える、メモリと
を備える、コンピュータシステム。
(項目16)
方法であって、
ビデオのビデオファイルを受信することであって、前記ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備えるデータ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと
を備える、ことと、
前記制御データおよびタイムラインコントローラから制御ストリームを動的に生成することと、
前記ビデオのある時点で前記ユーザに表示される質問に回答するユーザ相互作用を要求することと、
前記ユーザ相互作用を介して前記質問への回答を受信することと、
タイムラインコントローラに前記回答を通知することと、
前記回答に対応する前記ビデオの適切な部分にスキップすることと、
前記適切な部分から前記ビデオを表示することと
を含む、方法。
(項目17)
複合現実ビデオプレーヤを実装するコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
前記プログラムコード命令を保持するためのメモリであって、前記プログラムコード命令は、
ビデオのビデオファイルを受信することであって、前記ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備えるデータ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと、
を備える、ことと、
前記制御データおよびタイムラインコントローラから制御ストリームを動的に生成することと、
前記ビデオのある時点で前記ユーザに表示される質問に回答するユーザ相互作用を要求することと、
前記ユーザ相互作用を介して前記質問への回答を受信することと、
タイムラインコントローラに前記回答を通知することと、
前記回答に対応する前記ビデオの適切な部分にスキップすることと、
前記適切な部分から前記ビデオを表示することと
を実施するためのプログラムコードを備える、メモリと
を備える、コンピュータシステム。
(項目18)
仮想および/または拡張現実環境内で環境意識3Dビデオを表示する方法であって、前記方法は、
3Dビデオを識別することと、
1つ以上のセンサから、ユーザ環境の環境情報を受信することであって、前記環境情報は、前記環境内のオブジェクトを識別する、ことと、
前記環境から識別される1つ以上のオブジェクト上に前記3Dビデオの一部をレンダリングすることと
を含む、方法。
(項目19)
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、前記モジュールは、メモリ内に記憶され、前記モジュールは、実行されると、
3Dビデオを識別するプロセスと、
1つ以上のセンサから、ユーザ環境の環境情報を受信するプロセスであって、前記環境情報は、前記環境内のオブジェクトを識別する、プロセスと、
前記環境から識別される1つ以上のオブジェクト上に前記3Dビデオの一部をレンダリングするプロセスと
を実施する、モジュールと
を備える、仮想および/または拡張現実ディスプレイシステム。
(項目20)
仮想および/または拡張現実環境内で双方向3Dビデオを表示する方法であって、前記方法は、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別することと、
前記ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信することと、
少なくとも前記ユーザによって選出される前記決定に基づいて、前記3Dビデオをレンダリングすることと
を含む、方法。
(項目21)
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、前記モジュールは、メモリ内に記憶され、前記モジュールは、実行されると、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するプロセスと、
前記ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信するプロセスと、
少なくとも前記ユーザによって選出される前記決定に基づいて、前記3Dビデオをレンダリングするプロセスと
を実施する、モジュールと
を備える、仮想および/または拡張現実ディスプレイシステム。
【図面の簡単な説明】
【0052】
図面は、類似要素が共通の参照番号によって参照される、本開示の好ましい実施形態の設計および有用性を図示する。本開示の前述および他の利点および目的が取得される方法をより深く理解するために、上記に手短に説明される本開示のより具体的な説明が、付随する図面に図示される、その具体的実施形態を参照することによって与えられるであろう。これらの図面が、本開示の典型的実施形態のみを描写し、したがって、その範囲の限定と見なされるものではないことを理解して、本開示は、付随する図面の使用を通して、付加的特殊性および詳細を伴って説明かつ解説されるであろう。
【0053】
図面は、同様の参照番号を使用し、同様の要素を識別する。「120a」等の参照番号の後の文字は、テキストが、その特定の参照番号を有する要素を具体的に参照することを示す。「120」等の後に続く文字がないテキスト内の参照番号は、その参照番号を持つ図面内の要素のうちのいずれかまたは全てを指す(例えば、テキスト内の「120」は、図面内の参照番号「120a」および/または「120b」を指す)。
【0054】
図1図1は、いくつかの実施形態による、AR環境内で3Dビデオを表示するための例示的ユーザ物理的環境および拡張現実システムを示す。
【0055】
図2図2は、いくつかの実施形態による、拡張現実システム内で3Dビデオを表示するためのアプローチのためのフローチャートを示す。
【0056】
図3A図3A-3Bは、いくつかの実施形態による、画面から逃散する3D画像および/または3Dアニメーションの実施例を示す。
図3B図3A-3Bは、いくつかの実施形態による、画面から逃散する3D画像および/または3Dアニメーションの実施例を示す。
【0057】
図4図4は、いくつかの実施形態による、仮想および/または拡張現実環境内でディスプレイ画面の表面を越えて延在する3Dビデオを表示するためのアプローチのためのフローチャートを示す。
【0058】
図5図5は、いくつかの実施形態による、仮想および/または拡張現実環境内で環境意識3Dビデオを表示するためのアプローチのためのフローチャートを示す。
【0059】
図6図6は、いくつかの実施形態による、仮想および/または拡張現実環境内で双方向3Dビデオを表示するためのフローチャートを示す。
【0060】
図7図7は、いくつかの実施形態による、3Dビデオを表示するためのビデオフォーマットを示す。
【0061】
図8図8は、いくつかの実施形態による、ビデオプレーヤのコンポーネント図を示す。
【0062】
図9図9は、いくつかの実施形態による、ビデオフォーマットを処理するビデオプレーヤのフローを示す。
【0063】
図10図10は、本開示の実施形態のうちの1つ以上のものを実装するために好適な例証的コンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0064】
本開示は、VR、MR、および/またはARシステム内で3Dビデオを生成および表示することを対象とする。3Dビデオは、画面から逃散するように見える3Dオブジェクトを含んでもよい。3Dビデオは、仮想現実(VR)、複合現実(MR)、拡張現実(AR)、および/または実環境内のオブジェクトと相互作用してもよい。3Dビデオは、3Dビデオのある部分においてユーザによって選出される決定に対応するユーザ入力に基づいて、異なる筋書き、および可能性として、異なる結末が、3Dビデオに関して結果として生じ得るように、ユーザと相互作用し得る。3Dビデオは、最終3Dレンダリング世界のポータル内で表示される3Dアイコンであってもよい。
【0065】
本開示は、それを用いて本開示のいくつかの実施形態が実践され得る、例証的拡張現実(AR)システムの説明を提供し、その後に、例証的ARシステム内で3Dビデオを生成および表示するためのプロセスおよび機構の1つ以上の実施形態が続く。
(例証的拡張現実システムおよび環境)
【0066】
続く説明は、それを用いて本開示が実践され得る、例証的ARシステムに関する。しかしながら、本開示はまた、AR、MR、および仮想現実(VR)システムの他のタイプにおける用途にも適しており、したがって、本開示は、本明細書に開示される例証的システムにのみ限定されるものではないことを理解されたい。
【0067】
図1を参照すると、本開示に従って構築される、ARシステム100の一実施形態が、説明される。ARシステム100は、エンドユーザ50(以降、「ユーザ50」と称される)の視野内に3Dビデオを提供し得る、AR投影サブシステム110と併せて動作されてもよい。本アプローチは、それを通して、ユーザの物理的環境/景観105等の周囲環境が見られ、仮想コンテンツ(例えば、3Dビデオ、仮想オブジェクト等)の画像を用いて拡張され得る、少なくとも部分的に透明の表面を含み得る、1つ以上のアイピースを採用する。
【0068】
ARシステム100は、ユーザ50によって装着される、フレーム構造102と、ディスプレイシステム104がユーザ50の眼の正面に位置付けられるように、フレーム構造102によって担持される、ディスプレイシステム104とを含む。
【0069】
ディスプレイシステム104は、ユーザ50の眼に、2次元および3次元コンテンツの両方とともに、物理的現実への拡張として快適に知覚され得る、光ベースの放射パターンを提示するように構成される。ディスプレイシステム104は、実際および仮想のコンテンツを混ぜる単一コヒーレント場面の知覚を提供する高周波数で、フレームのシーケンスを提示する。この目的を達成するために、ディスプレイシステム104は、投影サブシス
テム110と、例えば、その上に、またはそれを通して投影サブシステム110が画像を投影する、部分的に透明な表面であり得る、眼鏡の中のアイピースとを含む。アイピースは、ユーザ50の眼と周囲環境との間のユーザ50の視野内に位置付けられる。いくつかの実施形態では、アイピースは、ディスプレイシステム104を装着している間に、ユーザ50にユーザの実際の世界/周囲環境の少なくとも一部が見え得るように、完全に透明な表面、部分的に透明な表面、または半透明表面であってもよい。
【0070】
いくつかの実施形態では、投影サブシステム110は、走査ベースの投影デバイスの形態をとってもよく、アイピースは、その中に投影サブシステム110から光が、投入され、例えば、無限遠(例えば、腕の長さ)より近い単一光学視認距離における画像、複数の光学視認距離または焦点面における画像、および/または複数の視認距離または焦点面にスタックされた画像層を生産し、立体3Dオブジェクトを表す、導波管ベースのディスプレイの形態をとってもよい。ライトフィールド内の層は、ヒト視覚系に連続的に見えるために十分にともに近接してスタックされ得る(例えば、1つの層は、隣接する層の乱信号円錐域内にある)。ライトフィールド内の層は、離散視認距離において深度平面を作成するように、所定の深度間隔でスタックされ、一度に1つ、または組み合わせて利用されてもよい。加えて、または代替として、写真要素は、2つ以上の層を横断して混成され、それらの層がより疎らにスタックされる場合(例えば、1つの層が、隣接する層の乱信号円錐域外にある)でも、ライトフィールド内の層間の遷移の知覚される連続性を増加させ得る。ディスプレイシステム104は、単眼または双眼であってもよい。走査アセンブリは、1つ以上の光線を生成する(例えば、定義されたパターンにおいて複数の色で発光する)、1つ以上の光源を含む。光源は、多種多様な形態のいずれか、例えば、それぞれ、ピクセル情報またはデータの個別のフレームに規定される定義されたピクセルパターンに従って、赤色、緑色、および青色のコヒーレントなコリメートされた光を生成するように動作可能である、RGB源のセット(例えば、赤色、緑色、および青色光を出力することが可能なレーザダイオード)をとってもよい。レーザ光は、高色飽和を提供し、高度にエネルギー効率的である。いくつかの実施形態では、発光ダイオード(LED)が、使用されてもよく、光は、コリメートされなくてもよい。光学結合サブシステムは、例えば、1つ以上の反射性表面、回折格子、ミラー、ダイクロイックミラー、またはプリズム等の光学導波管入力装置を含み、光をアイピースの端部または縁または側面の中に光学的に結合する。光学結合サブシステムはさらに、光ファイバからの光をコリメートする、コリメーション要素を含んでもよい。
【0071】
随意に、光学結合サブシステムは、コリメーション要素からの光を光学導波管入力装置の中心内の集光点に向かって収束させ、それによって、光学導波管入力装置のサイズが最小限にされることを可能にするために構成される、光学変調装置を含む。したがって、ディスプレイシステム104は、1つ以上の仮想オブジェクトの歪曲されていない画像をユーザに提示する、ピクセル情報の一連の合成画像フレームを生成する。ディスプレイサブシステムを説明するさらなる詳細は、「Display System and Method」と題された米国非仮特許出願第14/212,961号、および「Planar
Waveguide Apparatus With Diffraction Element(s) and Subsystem Employing Same」と題された米国特許第9,671,566号(参照することによって本明細書に明示的に組み込まれる)の中で提供される。
【0072】
いくつかの実施形態では、投影サブシステム110は、シリコン上液晶(LCoSまたはLCOS)の形態をとってもよい。LCOSは、シリコンバックプレーンの上に液晶層を使用する、小型化反射アクティブマトリクス液晶ディスプレイまたは「マイクロディスプレイ」であってもよい。LCOSはまた、空間光変調器とも称され得る。LCOSは、波長選択的切替、構造化照明、ニアアイディスプレイ、および/または光学パルス成形に
使用されてもよい。LCOSに関するさらなる情報は、「Augmented and virtual reality eyewear, systems, and methods for delivering polarized light and
determining glucose levels」と題された、米国特許出願第15/807,486号(参照することによって本明細書に以前に組み込まれた)に開示される。
【0073】
ARシステム100はさらに、ユーザ50の頭部の位置および移動および/またはユーザ50の眼位置および眼球間距離を検出するためにフレーム構造102に搭載される、1つ以上のセンサを含む。そのようなセンサは、画像捕捉デバイス、マイクロホン、慣性測定ユニット(IMU)、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープを含んでもよい。例えば、一実施形態では、ARシステム100は、1つ以上の慣性変換器を含み、ユーザ50の移動頭部を示す慣性測定値を捕捉する、頭部装着型変換器サブシステムを含む。そのようなデバイスは、ユーザ50の頭部移動についての情報を感知、測定、または収集するために使用されてもよい。例えば、これらのデバイスは、ユーザ50の頭部の測定移動、速度、加速、および/または位置を検出するために使用されてもよい。いったんユーザの頭部の場所および/または位置が把握されると、複合現実エンジン166は、ユーザとユーザの環境内の実際および/または仮想オブジェクトとの間の距離を決定することが可能であり得る。距離は、種々の異なる方法を使用して決定されてもよい。いくつかの実施形態では、1つ以上の深度センサ、または他の環境感知センサ(例えば、外向きのカメラ)が、いくつかの実施形態では、世界メッシュと呼ばれ得る、実際の世界のデジタルレプリカを作成するために使用されてもよい。多種多様なデータが、世界メッシュと関連付けられ、したがって、事実上、パス可能世界と呼ばれ得る、環境意識システムを作成してもよい。例えば、世界メッシュと関連付けられるデータは、オブジェクトまたは表面の名称またはタイプ(例えば、水平面、テーブル、椅子、テレビ画面等)であってもよい。ユーザの位置は、パス可能世界と比較され、したがって、実際のオブジェクトと仮想オブジェクトとの間の距離が計算されることを可能にし得る。いくつかの実施形態では、パス可能世界は、3Dレンダリング世界の全てまたは一部に対応し得る。実世界環境の3Dメッシュ(例えば、世界メッシュ)を作成するための方法およびシステムを説明する、さらなる詳細は、「Methods and Systems for Detecting and Combining Structural Features in 3D Reconstruction」と題された、米国非仮特許出願第15/274,823号(その全体として参照することによって本明細書に明示的に組み込まれる)の中で提供される。いくつかの実施形態では、ユーザは、単純に、ユーザの環境を含む実際の世界または実際の世界の少なくともサブセットのデジタルモデルを必要とする。実際の世界のデジタルモデルは、深度センサ、パス可能世界システム(例えば、上記で説明されるような)、および/または保存されたマップを使用して、作成されてもよい。
【0074】
ARシステム100はさらに、ユーザ配向検出モジュールを含んでもよい。ユーザ配向検出モジュールは、ユーザ50の頭部の瞬間位置を検出し、センサから受信された位置データに基づいて、ユーザ50の頭部の位置を予測してもよい。ユーザ配向検出モジュールまた、センサから受信された追跡データに基づいて、ユーザ50の眼、特に、ユーザ50が合焦する方向および/または距離を追跡する。
【0075】
ARシステム100はまた、複合現実メディアプレーヤ164も含む。
複合現実メディアプレーヤ164は、3Dビデオデータベース160から複合現実ビデオフォーマット162を有するデータを選択し、読み出してもよい。複合現実メディアプレーヤ164は、複合現実ビデオフォーマット162を解釈し、解釈を複合現実エンジン166に提供し、ユーザ50に表示されるように、少なくとも部分的にユーザの頭部姿勢に
基づいてビデオの最終組成を提供してもよい。複合現実エンジン166は、ユーザの頭部姿勢に基づいて、場面の最終組成に使用され得るビデオおよびモデルをレンダリングしてもよい。複合現実ビデオフォーマット162および複合現実メディアプレーヤ164のより詳細な開示が、下記に議論されるであろう。
【0076】
ARシステム100はさらに、多種多様な形態のいずれかをとり得る、制御サブシステムを含む。制御サブシステムは、いくつかのコントローラ、例えば、1つ以上のマイクロコントローラ、マイクロプロセッサまたは中央処理ユニット(CPU)、デジタル信号プロセッサ、グラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)等の他の集積回路コントローラ、プログラマブルゲートアレイ(PGA)、例えば、フィールドPGA(FPGA)、および/またはプログラマブル論理コントローラ(PLU)を含む。制御サブシステムは、デジタル信号プロセッサ(DSP)と、中央処理ユニット(CPU)と、グラフィック処理ユニット(GPU)152と、1つ以上のフレームバッファ154とを含んでもよい。CPUは、システムの全体的動作を制御する一方、GPU152は、フレームをレンダリングし(すなわち、3次元場面を2次元画像に変換し)、これらのフレームをフレームバッファ154内に記憶する。図示されないが、1つ以上の付加的集積回路は、フレームバッファ154の中へのフレームの読込および/またはそこからのフレームの読出と、ディスプレイシステム104の走査デバイスの動作とを制御してもよい。フレームバッファ154の中への読込および/またはそこからの読出は、動的アドレス指定を採用してもよく、例えば、フレームは、オーバーレンダリングされる。ARシステム100はさらに、読取専用メモリ(ROM)およびランダムアクセスメモリ(RAM)を含む。ARシステム100はさらに、3Dデータベース160を含み、そこから、GPU152は、フレームをレンダリングするための1つ以上の場面の画像データおよび3D場面内に含有される仮想音源と関連付けられた合成音データにアクセスすることができる。
【0077】
ARシステム100の種々の処理コンポーネントは、分散型サブシステム内に物理的に含有されてもよい。例えば、ARシステム100は、有線導線または無線コネクティビティ等によってディスプレイシステム104の一部に動作可能に結合される、ローカル処理およびデータモジュールを含んでもよい。ローカル処理およびデータモジュールは、フレーム構造102に固定して取り付けられる、ヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、ユーザ50の胴体に除去可能に取り付けられる、またはベルト結合式構成においてユーザ50の腰部に除去可能に取り付けられる等、種々の構成において搭載されてもよい。
【0078】
ARシステム100はさらに、有線導線または無線コネクティビティ等によってローカル処理およびデータモジュールに動作可能に結合される、遠隔処理モジュールおよび遠隔データリポジトリを含み、これは、これらの遠隔モジュールが、相互に動作可能に結合され、ローカル処理およびデータモジュールへのリソースとして利用可能であるようにするためのものである。ローカル処理およびデータモジュールは、電力効率的プロセッサまたはコントローラおよびフラッシュメモリ等のデジタルメモリを含んでもよく、両方とも、センサから捕捉された、および/または遠隔処理モジュールおよび/または遠隔データリポジトリを使用して入手および/または処理された(可能性として、そのような処理または読出後、ディスプレイシステム104への通過のために)データの処理、キャッシュ、および記憶を補助するために利用されてもよい。
【0079】
遠隔処理モジュールは、データおよび/または画像情報を分析および処理するように構成される、1つ以上の比較的に強力なプロセッサまたはコントローラを含んでもよい。遠隔データリポジトリは、比較的に大規模なデジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成
を通して利用可能であってもよい。
【0080】
一実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、任意の遠隔モジュールからの完全に自律的な使用を可能にする。上記に説明される種々のコンポーネント間の結合は、ワイヤまたは光通信を提供するための1つ以上の有線インターフェースまたはポート、または無線通信を提供するための無線周波数(RF)、マイクロ波、および赤外線(IR)等を介した1つ以上の無線インターフェースまたはポートを含んでもよい。いくつかの実装では、全ての通信は、有線であってもよい一方、他の実装では、全ての通信は、光ファイバを除き、無線であってもよい。
【0081】
例えば、ARシステム100のディスプレイシステム104を使用する、ユーザ50は、ユーザの物理的環境/景観105に向かって見ている場合がある。ユーザの物理的環境/景観105は、垂直壁125上に表示される仮想テレビ120を含んでもよい。垂直壁125は、ユーザ50が位置し得る部屋内の任意の垂直壁であってもよい。垂直壁はまた、建物の側面(内側または外側)上の壁、または任意の場所で見られる任意の自然な垂直壁であってもよい。いくつかの実施形態では、仮想テレビ120は、空白の垂直壁125に係留および/または固定されるか、またはユーザの物理的環境/景観内の垂直壁上に掛けられた写真フレーム(図示せず)にわたって表示されるかのいずれかであってもよい。仮想テレビ120は、垂直壁125上に係留または固定される、またはいくつかの実施形態では空間内に浮動している、ARシステム100によって生成される仮想オブジェクトであってもよい。仮想テレビ120は、そこからARシステム100が3Dビデオ115を上または中に表示し得る、仮想オブジェクトであってもよい。仮想テレビ120は、ユーザの物理的環境/景観105内のポータルであってもよい。ポータルは、下記に議論される。
【0082】
3Dビデオ115は、ディスプレイシステム104を使用するユーザ50に3D効果の現実的な視界を提供するように、3Dビデオとともにレンダリングおよび表示され得る、3Dアニメーションオブジェクトを含んでもよい。3Dアニメーションオブジェクトは、実際に仮想テレビ画面から溢れ出ている/出て行っているかのように見え得る。ユーザが側面像の視認視点まで移動する場合、ユーザには、実際に、3Dオブジェクトおよび/または3D動画オブジェクトが仮想テレビディスプレイ画面から出てユーザの物理的環境/景観105の中に入ることが見え得る。
【0083】
加えて、別の実施形態では、3Dビデオは、ARシステム100上に構成される環境感知センサに基づいて、ユーザの物理的環境/景観105を意識し得る。3Dビデオがユーザの物理的環境を意識し得るため、3Dビデオは、ユーザの物理的環境内の実際のオブジェクト上に3Dビデオの一部をレンダリングすることによって、その3Dビデオを提示しながら、その環境意識情報を利用してもよい。例えば、ARシステム100内のセンサは、ユーザの物理的環境/景観内に位置する2つの椅子135aおよび135bを検出してもよい。ニュース放送についての3Dビデオは、椅子135aおよび135bに座っているレポータ130をユーザの物理的環境/景観内に設置してもよく、レポータ130は、レポータ130がユーザの物理的環境内にいるかのようにニュースをレポートする。本開示の環境意識特徴のより詳細な議論は、下記である。
【0084】
別の実施形態では、3Dビデオは、VRおよび/またはARシステムのユーザと相互作用し得る。実施例として、3Dビデオのある部分または時点において、ユーザは、ビデオの筋書きに影響を及ぼし得る、行うべき決定を提供されてもよい。決定を選定するためのユーザの相互作用に基づいて、3Dビデオは、改変されてもよく、3Dビデオの異なる終了または結果が、到達されてもよい。双方向3Dビデオのより詳細な議論が、下記で見出
され得る。
(AR場面のポータル内で3Dビデオを表示する)
【0085】
ポータルは、オブジェクトまたは他の仮想コンテンツが、平面の内側で、背後で、正面で、および/またはその開口部においてレンダリングおよび/または表示され得る、2Dおよび/または3D体積空間の平面内の開口部および/または場所であってもよい。オブジェクトは、ディスプレイシステム104を使用するユーザ50によって、3D体積空間内の平面および/または場所の開口部を通して見られる、または視認されてもよい。平面は、ユーザが平面を通して視認することが可能ではあり得ないように、不透明であり得る。しかしながら、ユーザ50は、平面の開口部(例えば、ポータル)を介して、不透明平面を通して視認し得る。例えば、ユーザが直接正面像位置を有する第1の視点からオブジェクトを視認する場合、オブジェクトは、オブジェクトの周囲の境界を構成するポータルを伴うオブジェクトの平坦な2D正面像であるように見え得る。ポータルは、本第1の視点から、円、長方形、正方形、多角形等の任意の形状であるように見え得る。
【0086】
実施例を継続すると、ユーザが側面像位置を有する第2の視点からオブジェクトを視認する場合、オブジェクトが後部に向かって、または平面の背後に位置付けられる場合に、オブジェクトのより小さい部分が視認され得ることとは対照的に、オブジェクトが平面の正面に向かって位置付けられる場合に、オブジェクトのより大きい部分が視認され得るように、第2の視点の側面視野角に応じて、平面の前面に対してレンダリングおよび/または表示されているオブジェクトの位置に基づいて、オブジェクトの一部が、ユーザに可視であり得、オブジェクトの他の部分が、遮断される、または可視ではあり得ない。オブジェクトの一部は、オブジェクトが後部に向かって、または平面の背後に位置付けられる場合に、平面によって切り取られ得る。視認されるオブジェクトは、2D画像、2Dビデオ、3Dモデル(例えば、コンピュータ生成された3Dアイコン)、および/または3Dビデオであってもよい。いくつかの実施形態では、平面は、ユーザが平面の反対側に位置するいかなるものも見ることが可能ではあり得ないように、完全に不透明であり得る。他の実施形態では、平面は、ユーザが、ポータルを通して視認する際に、平面を通して明確な視界ではないが、平面を通していくつかのオブジェクトまたは画像を視認することが可能であり得るように、半透明であり得る。
【0087】
いくつかの実施形態では、ポータル効果が、ユーザに表示されるべき任意の他の3D仮想コンテンツと同様の様式で、3D仮想コンテンツを最終レンダリング世界の中に直接設置することによって作成されてもよい。例えば、3D仮想コンテンツは、座標系を、ユーザに表示されている最終レンダリング世界内の任意の他の3D仮想コンテンツと共有するであろう。座標系は、実世界座標系に対応し得るため、3D仮想コンテンツは、実際の世界に対して固定される。ポータル開口部効果を生成するために、閉塞マスク等のマスクが、使用されてもよい。いくつかの実施形態では、閉塞マスクは、実世界壁の仮想開口部に見えるように、実世界メッシュに対して設置されてもよい。本実施例では、ユーザが壁の周囲を歩く場合、ユーザは、ポータルを通して前もって視認された3D仮想コンテンツが、現在はユーザの接近環境内にあるように、ポータル空間に進入してもよい、または代替として、ユーザは、ポータル世界内に存在すると考えられることができる。いくつかの実施形態では、ポータルは、ユーザがある面積を越えて移動する場合、ポータルが「閉鎖し」(例えば、ポータルと関連付けられる3Dコンテンツが、最終レンダリング世界から除去される)、したがって、ユーザが実際にポータルに進入することまたはポータル3D仮想コンテンツと直接相互作用することを防止するように、対応する境界を有してもよい。
【0088】
図2は、拡張現実システム内で3Dビデオを表示するためのアプローチのためのフローチャートを示す。210では、3Dビデオが、ユーザの物理的環境/景観内で表示されるために識別されてもよい。3Dビデオは、立体3Dビデオであってもよい。
【0089】
220では、ユーザの物理的環境/景観内で3Dビデオを表示するための体積空間が、識別されてもよい。体積空間は、3Dオブジェクト(例えば、3Dビデオ)を表示するためのポータルであってもよい。ポータルは、平面視認ディスプレイ(例えば、仮想ディスプレイ画面)を有する仮想テレビであってもよい。
【0090】
230では、3Dビデオが、体積空間(例えば、仮想テレビ120)の中にレンダリングされてもよい。仮想テレビは、内側で3Dビデオがレンダリングされ、最終的に表示され得る、ポータルを有する平面を含んでもよい。例えば、仮想テレビは、ポータル(例えば、仮想テレビ画面)およびテレビフレーム自体を分離する境界を含んでもよい。いくつかの実施形態では、境界は、存在しなくてもよく、そのような実施形態では、仮想テレビの平面は、仮想テレビ全体であってもよい。3Dビデオは、3Dビデオが体積空間(例えば、仮想テレビ120)の固定境界内でのみレンダリングおよび/または表示され得るため、ユーザの物理的環境/景観の一部のみでレンダリングおよび表示されてもよい。
【0091】
3Dビデオは、立体画像を使用する、従来的に生成された3Dビデオであってもよい。立体は、わずかに異なる角度で撮影された同一のオブジェクトの2つの写真がともに視認され、深度および固体性の印象(例えば、3D効果)を生成する、プロセスである。ここで、実施例として、3Dビデオは、ユーザの物理的環境/景観内の仮想テレビ(例えば、ポータル)内のユーザにレンダリングおよび/または表示される。3Dビデオのレンダリングは、ユーザ50に表示される最終的なレンダリングされた3Dビデオが、ディスプレイシステム104を使用して3Dビデオを視認するときに、ユーザにとって遠近調節(accommodation)-輻輳・開散運動(vergence)の問題を軽減することに役立ち得る、深度情報を含み得るように、3Dビデオから取得される第1の深度情報と、仮想テレビ画面の場所からユーザの場所までの深度情報に対応する第2の深度情報とを含んでもよい。立体画像から深度情報を収集し、それを画面の深度バッファに追加することによって、収集される深度情報の品質は、少なくとも部分的に場面および実行時に深度を決定し得るアルゴリズムに基づいて、大いに向上されるであろう。
【0092】
いくつかの実施形態では、3Dオブジェクト(例えば、立体3Dオブジェクトまたは立体3Dビデオ)は、ポータルを通してレンダリングおよび/または表示されてもよい。従来的に、2D画像は、ポータルを介してレンダリングおよび表示される。しかしながら、拡張現実環境では、3Dオブジェクトおよび3Dビデオが、AR環境内のポータル(例えば、仮想テレビ)を通してレンダリングおよび表示されてもよい。
【0093】
一実施形態では、ポータルが、3Dレンダリング世界(または代替として、3Dレンダリング場面、レンダリング場面、または3D場面)内で識別されてもよい。3Dレンダリング世界は、2Dおよび3Dデジタルコンテンツが仮想コンテンツとしてレンダリングされ、ユーザに表示され得る、実際の世界(例えば、ユーザの物理的環境/景観105)のデジタル表現に対して設置される2Dおよび3Dデジタルコンテンツのデジタル表現であってもよい。仮想コンテンツがユーザおよび実際の世界に対して正しい視点からレンダリングされるために、2つ以上の仮想レンダリングカメラが、3Dレンダリング世界内に設置されてもよい。一方の仮想レンダリングカメラは、右眼用であり得、他方の仮想レンダリングカメラは、左眼用であり得る。ポータルが、ポータル視点からユーザに見えるであろうものを捕捉するために、付加的仮想レンダリングカメラが3Dレンダリング場面の異なる場所に設置されることを要求し得る、3Dレンダリング世界内に位置してもよい。ポータルは、ユーザが平面を通して、または平面の中を見ることを可能にする、平面内の一部であってもよい。ポータルは、仮想テレビ画面であってもよく、仮想テレビは、3Dレンダリング世界内で平面を提供してもよく、仮想テレビ画面は、仮想テレビの平面内の開口部であってもよい。
【0094】
加えて、第1の2D立体画像および第2の2D立体画像は、ディスプレイシステム104を使用するユーザが、第1の2D立体画像および第2の2D立体画像をともに3D画像または3Dモデルとして知覚し得るように、ポータルの中にレンダリングされてもよい。第1の2D立体画像は、右眼の視点を用いて捕捉される画像であってもよく、第2の2D立体画像は、左眼の視点を用いて捕捉される画像であってもよい。3D画像は、3Dビデオであってもよく、第1の2D立体画像は、右眼の視点から捕捉される第1の2D立体ビデオであってもよく、第2の2D立体画像は、左眼の視点から捕捉される第2の2D立体ビデオであってもよい。上記に議論されるように、3Dビデオは、立体画像を使用する、(例えば、実際の世界で実際の画面上で使用するための)従来的に生成された3Dビデオであってもよい。ここで、3Dビデオは、3Dレンダリング世界のポータル内でレンダリングおよび表示されてもよい。
【0095】
さらに、第1の2D立体画像および第2の2D立体画像は、3Dレンダリング世界の異なる場所内に位置する2つの異なる仮想カメラから供給されてもよい。いくつかの実施形態では、第1の2D立体画像および第2の2D立体画像は、実世界コンテンツを捕捉する2つの異なる実世界カメラから供給されてもよい。例えば、ユーザ50は、仮想テレビ画面上で、ユーザの物理的環境/景観105内のディスプレイシステム104を使用して、3Dビデオとしてレンダリングされ得る実世界画像を捕捉する2つのカメラ(例えば、ユーザの実際の家のセキュリティカメラ)からビデオデータを受信している、3Dビデオを鑑賞していてもよい。加えて、第1および第2の2D立体画像はまた、ポータルアイコン等の異なる3Dレンダリング世界から供給されてもよい。
【0096】
一実施形態では、アイコンが、ポータル内で表示されてもよい。アイコンは、コンピュータ生成される3Dオブジェクトであってもよい。アイコンは、いくつかの部分から成ってもよい。いくつかの実施形態では、ポータルアイコンは、ポータル内に含有される背景と、開口と、開口の中および外に移動することができる前景要素とを有してもよく、アイコンおよび開口からの前景要素の完全な除去までも含む。アイコンは、ユーザがアプリケーションランチャメニューから起動し得る、アプリケーションを表してもよい。アプリケーションランチャメニューは、それらの個別のポータル内でそれぞれ提示される、1つ以上の3Dアイコンを備えてもよい。これは、アプリケーションと関連付けられる3Dコンテンツが、アイコン内に容易に含有されるが、依然としてユーザによって視認されることを可能にしてもよい。ユーザがポータルの内側に位置するアイコンを見ているとき、アイコンは、アクティブ化し、アニメ化し始めてもよい。ユーザがアイコンを見ていないとき、アイコンは、ポータル内に表示される平坦な2D画像であるように見え得る。しかしながら、ユーザの視線がポータル内にアイドル状態で表示されるアイコン(例えば、平坦な2Dアイコン)上に合焦し始めると、アイコンは、ポータル内で(例えば、3Dアイコンに)変換し始めてもよい。(例えば、3D)アイコンは、ユーザに向かって移動さえし始め、ポータルから出て、ユーザがアイコンを3Dアイコンオブジェクトと見なし得るように、ポータルの外側に浮動するように見え得る。ユーザは、複数の角度から3Dアイコンを視認し得る。これは、アイコンに関する一般的な問題が、それらのサイズが比較的に小さく、典型的には、それらが表すアプリケーションを説明するための限定された空間を伴う2D画像であることであるため、有利であり得る。しかしながら、本問題は、3Dアイコンを表示することによって解決され得、3Dアイコンは、単純に、2Dアイコンと対比して3Dアイコンに対して利用可能な付加的表面積により、より大きい表面を有し得る。いくつかの実施形態では、3Dアイコンは、ユーザがアイコンを見て認識することが可能であり得るように、アイコンから起動され得る実際のアプリケーションのより小さいバージョンを表示してもよい。
【0097】
別の実施形態では、2つの第1段階カメラが、3D環境内に設置されてもよい。1つ以
上の対の2D画像が、2つの第1段階カメラから捕捉されてもよい。1つ以上の対の2D画像は、最終3Dレンダリング世界内の場所の中に設置されてもよい。最終3Dレンダリング世界は、仮想および/または拡張現実デバイス(例えば、ディスプレイシステム104)を使用してユーザに表示されるようにレンダリングされてもよく、ディスプレイシステム104は、世界場面の2D画像を捕捉する2つの仮想カメラを含んでもよく、2つのカメラのうちの各カメラは、ユーザの眼に対応する。換言すると、2つの第1段階カメラは、3D立体ビデオのためのコンテンツを提供する。3D立体ビデオは、最終3Dレンダリング場面内の場所の中に設置される。最終3Dレンダリング世界/場面は、ディスプレイシステム104を介してユーザに表示される最終3D立体ビデオが、最終3Dビデオ内のポータルにおいて最終3Dビデオ内に表示される少なくとも1つの他の3Dビデオを有する、最終3Dビデオであるように、一対の2つのカメラのうちの各カメラが、ディスプレイシステム104を使用するユーザの眼に対応するように、ディスプレイシステム104を使用するユーザの視点から、別個の一対の2つの仮想カメラから捕捉されてもよい。上記に議論されるように、深度情報は、ユーザの独自の視覚系(例えば、ユーザの眼)によって体験される輻輳・開散運動に適応するように、最終3Dビデオのレンダリング中に含まれてもよい。
【0098】
1つ以上の実施形態では、レンダリング場所は、仮想テレビ等のポータル、または3Dビデオを表示するためのユーザの環境の平面であってもよい。2つの第1段階カメラのうちの第1のカメラは、左眼の視点から1つ以上の2D画像を捕捉してもよく、2つの第1段階カメラのうちの第2のカメラは、右眼の視点から1つ以上の2D画像を捕捉してもよい。2つの第1段階カメラは、仮想カメラ(例えば、デジタル/仮想世界場面の画像を捕捉する)および/または実世界カメラ(例えば、実世界場面の画像を捕捉する)であってもよい。
【0099】
いくつかの実施形態では、2つの第2段階カメラは、2D画像を捕捉し、第2の3D立体ビデオを生成してもよい。第2の3D立体ビデオは、最終3Dレンダリング場面がユーザに表示されるときに、ユーザにユーザの仮想および/または拡張現実環境内の2つの3D立体ビデオが見え得、2つの3D立体ビデオがそれぞれ、2つの異なるポータルにおいて表示され得るように、レンダリングされるべき最終3Dレンダリング世界内の別の場所/ポータル内に設置されてもよい。3D立体ビデオソースを最終3Dレンダリング世界に提供する、複数の段階のカメラが存在し得、3D立体ビデオソースはそれぞれ、付加的段階に対応し得るが、ディスプレイシステム104を使用してユーザに表示されるようにレンダリングされる、1つだけの最終3Dレンダリング世界が存在し得る。段階の数は、最終3Dレンダリング世界内でレンダリングされるべき3Dビデオの入力ソースの数に対応し得、段階の数は、ユーザの3D環境内の複数の場所(例えば、ポータル)からユーザに表示される3Dビデオの数を決定してもよい。代替として、任意の数の入力が、入力の2つを上回るセットを用いて、2段階レンダリングのための最終3Dレンダリング世界に入力してもよい。いくつかの実施形態では、3Dビデオは、ネスト化されてもよいため、例えば、1つの3Dビデオは、次いで、ユーザに表示するための最終レンダリング場面内に含まれ得る、異なる3Dビデオの内側で再生する。
【0100】
1つ以上の実施形態では、1つ以上の段階のカメラ(最終段階カメラを含まない)から捕捉される2D画像は、仮想世界、実際の世界、または仮想世界および実際の世界の両方の組み合わせに由来し得る。1つ以上の段階のカメラの場所は、最終段階カメラの場所と異なり得る。
【0101】
別の実施形態では、第1のソースからの第1の3Dコンテンツが、第2のソースからの第2の3Dコンテンツの中に設置されてもよい。第1の3Dコンテンツは、3D立体ビデオであってもよく、3D立体ビデオは、第1の3D立体ビデオを含む第2の3Dビデオへ
の入力データソースであってもよい。第2の3Dコンテンツは、3D立体ビデオであってもよく、第2の3Dコンテンツをレンダリングおよび表示するためのビデオ入力のソースは、第1の3Dコンテンツを含んでもよい。
【0102】
別の実施形態では、立体画像の第1のセットが、立体画像の第1のセットを3Dビデオとして示す最終3Dビデオを提供するように、立体画像の第2のセットの内側に設置されてもよい。
【0103】
別の実施形態では、左眼に関して捕捉される画像および右眼に関して捕捉される画像に対応する、一対の入力画像が、識別される。一対の入力画像は、レンダリングされるべき場面内の規定場所の中にレンダリングされるように規定されてもよく、いったん場面がレンダリングされると、一対の入力画像は、場面内で3Dビデオとして表示されてもよい。
【0104】
別の実施形態では、3Dデータ入力は、3Dデータ入力が仮想および/または拡張現実最終3Dレンダリング世界内の場所の中に設置され得るように、識別されてもよい。最終3Dレンダリング世界は、仮想および/または拡張現実デバイスを使用するユーザによって視認されるような場面に対応し得る。
【0105】
代替実施形態では、ポータル様効果が、1つ以上のステンシルレンダリングステージの使用を通して、生成されてもよい。いくつかの実施形態では、眼毎に1つずつ、2つの入力ストリームを有する代わりに、および上記で説明されるような2つの第1段階カメラの代わりに、データ入力は、3Dグラフィックデータファイルであってもよい。データファイルは、単一のアプリケーションまたは単一のコンテンツと関連付けられる1つ以上のデータファイルを含有してもよく、ステンシルフラグ等の種々のフラグを含有してもよい。最終3Dレンダリング世界がレンダリングしているとき、最終3Dレンダリング世界内のポータルのためのコンテンツは、4段階でレンダリングしてもよく、すなわち、1)ステンシルを描く、2)ステンシルのためのスカイボックスを描く、3)ポータルコンテンツを描く、4)ステンシルを消去する。これら4つのステップは、最終3Dレンダリング世界内のポータル毎に繰り返してもよい。
(3Dビデオがそのディスプレイ表面を越えて延在する)
【0106】
図1を参照すると、ディスプレイシステム104を使用して3Dビデオ115を視認するユーザ50は、3Dビデオ115内のオブジェクト(例えば、ビデオ115で描写されるようなブロック)が、ユーザの物理的環境/景観105内のディスプレイ画面の表面から溢れ出る、またはそれを越えて延在するように見え得ることに気付き得る。例えば、従来的な3Dビデオは、3D効果の錯覚または出現を提供し得、ある場合には、3Dビデオ内からのオブジェクトが実際にユーザに向かって移動しており、実際に画面から外に出ていると信じるようにユーザに影響を及ぼす/錯覚させ得る。しかしながら、従来的な3Dビデオは、上記に議論されるように、立体プロセスを使用して3D効果を達成する。
【0107】
VR/AR環境の中に設置される従来的な3Dビデオは、1つの視点からのみ視認され得る。従来的な3Dビデオは、視認者がカメラの最初の位置から逸脱するとすぐに明白に平坦に見える。本問題に対する1つのソリューションは、メッシュ(例えば、3Dモデルおよび/または3Dアニメーション)、リグ制御(例えば、アニメーションストリーム)、およびその対応する制御データ(例えば、従来的な3Dビデオのビデオおよびオーディオと対応する、ビデオファイルフォーマット内のアニメーションストリームの部分を再生するとき)を含む、ビデオファイルフォーマットおよびプレーヤを含んでもよい。
【0108】
図3A-3Bは、いくつかの実施形態による、画面から逃散する3D画像および/または3Dアニメーションの実施例を示す。図3Aは、従来的な立体3Dビデオの意図された
3D効果305および実際の3D効果310を示す。ディスプレイ画面/平面320は、テレビ、コンピュータモニタ、劇場のディスプレイ画面、または3Dビデオを表示するための任意の平面または非平面、またはそれらの任意の組み合わせのうちの1つ以上のものであってもよい。例えば、非平面は、いくつかの実施形態では、視認者を少なくとも部分的に取り巻くように見え得る、曲面ディスプレイ画面であってもよい。3Dオブジェクト330は、意図された3D効果および実際の3D効果に基づいて示される。例えば、立体画像を採用する、現在の3D技術は、オブジェクト330aの意図された3D効果を生成することを所望し得る。しかしながら、旧来の立体3Dプロセスの限定を考慮すると、現在の旧来システムが生成する実際の3D効果は、3Dオブジェクト330bとして示される。オブジェクト330aの意図された効果は、ユーザが平面320の異なる視野角を有する第2の位置まで移動した場合、ユーザに、平面320の外側に表示され、位置するオブジェクト330aの完全(または関連性のある部分)3D表現が見え得るように、ユーザの環境の周囲でアニメ化/移動し得る、平面320の外側に表示される3D動画オブジェクトを示してもよい。
【0109】
図3Bは、ユーザが意図された3D効果を知覚し得る方法の実施例を示す。オブジェクト330aおよび330bは、図3Aで視認されるようなオブジェクトであり、オブジェクト330aは、平面320(例えば、テレビ画面ディスプレイ)から溢れ出た/外に出たように見え得る。オブジェクト340は、オブジェクト340が図3Aからの意図された3D効果305のうちの1つを達成するように、平面320から完全に脱離されたオブジェクトと見なされ得る。
【0110】
例えば、3Dビデオは、個人の周囲を泳ぐ複数の魚を有する、熱帯水域でスキューバダイビングをする個人の3Dビデオを含んでもよい。従来的な3Dビデオ視点から、ユーザは、3Dビデオを鑑賞し、少なくとも部分的に立体プロセスに基づいて、3D効果を感じ得る。しかしながら、本開示のいくつかの実施形態によると、3Dビデオのある部分において、魚のうちの1つの3Dモデルが、3Dビデオに対して表示するために生成されてもよい。3Dビデオ内のある適切なトリガ時間に、魚の3Dモデルは、3Dビデオの内側で泳いでいるように表示されてもよく、次いで、魚の3Dモデルは、ディスプレイ画面の表面から出始め、ユーザの物理的環境/景観の中に泳いでもよい。実施例として、魚の3Dアニメーションは、3Dビデオを表示している実際の仮想テレビの周囲を泳いでもよい。本実施例では、ユーザが、ディスプレイ画面の表面と平行な90度の角度等の異なる位置まで移動する場合、ユーザには、依然として、仮想テレビの周囲を泳ぐ3D動画の魚が見えるはずである。ユーザが、ユーザに仮想テレビのディスプレイ画面の外側を泳ぐ3D動画の魚およびディスプレイ画面の両方が見え得る、視野角に戻る場合、ユーザは、ディスプレイ画面の外側を移動する3Dモデルとともに再生する3Dビデオを視認し得る。いくつかの実施形態では、ユーザは、1つを上回るディスプレイから3Dビデオを視認し得る。例えば、魚は、ディスプレイ1から外に泳ぎ、ユーザの周囲を泳ぎ、ディスプレイ2の中に泳いでもよい。いくつかの実施形態では、ユーザは、ユーザを包囲する1つの大画面(例えば、ドーム形状、部分ドーム形状、リング形状等)を有してもよく、3Dコンテンツは、第1の場所において画面から出て、第2の場所において画面に再び入ってもよい。3Dコンテンツの退出または進入場所にかかわらず、ユーザは、(実際の3Dオブジェクトに類似する)現実的な様式で正しい視点から3Dオブジェクトを視認し得る。
【0111】
図1を参照すると、3Dビデオ115は、仮想テレビ120のディスプレイ画面から溢れ出ている/外に出ているように見える個人またはオブジェクトの3Dアニメーションを含んでもよい。仮想テレビ120および3Dビデオ115は、ユーザの物理的環境/景観105内で第2の角度から視認されたときに、仮想テレビのディスプレイ画面から溢れ出る/外に出るオブジェクト(例えば、モンスター)を示してもよい。
【0112】
図4は、いくつかの実施形態による、仮想および/または拡張現実環境内でディスプレイ画面の表面を越えて延在する3Dビデオを表示するためのアプローチのためのフローチャートを示す。410では、3Dビデオが、識別されてもよい。3Dビデオは、従来的な立体3Dビデオであってもよい。3Dビデオの旧来の実装は、本開示の実施形態を実装するために使用されるべき3Dビデオ入力データソースとして供給されるように、大量の3Dビデオコンテンツを提供してもよい。
【0113】
420では、3Dオブジェクトの3Dモデルが、3Dビデオに対応するように生成されてもよい。3Dオブジェクトは、固定場所からの3Dオブジェクトの移動または3D環境内の3Dオブジェクト全体の移動を含む、静止3Dオブジェクトまたは動画3Dオブジェクトであってもよい。3Dモデルは、3Dビデオ場面が、ある青色であり、3Dオブジェクトの3Dモデルが、同一または実質的に同様の青色である場合には、3Dモデルがユーザに可視ではあり得ないように、3Dビデオに対応し得る。したがって、3Dモデルは、ユーザが、3Dビデオとともに表示されるにつれて3Dモデルを検出するために、色、テクスチャ、コントラスト、または他の特性をわずかに調節されてもよい。3Dオブジェクトの3Dモデルは、生成され、データ記憶内に保存されてもよい。アニメーションデータが、3Dビデオに対する3Dモデルの移動、配向、および/または位置を制御および指向するように、3Dモデルと関連付けられてもよい。アニメーションデータは、メディアファイル内の従来的な3Dビデオストリームおよびオーディオストリームと別個かつ異なるストリームとして、ストリーミングされてもよい。アニメーションデータは、下記でより詳細に開示されるであろう。
【0114】
430では、3Dモデルは、3Dビデオのレンダリングとともに、適切なトリガ時間にレンダリングされてもよい。3Dアニメーションデータは、3Dビデオおよび3Dビデオのオーディオ部分とともに3Dアニメーションデータをレンダリングするエンジンによって、受信およびレンダリングされてもよい。3Dアニメーションおよび3Dビデオは、ユーザに単一の3Dビデオとして見えてもよく、3D動画オブジェクトは、3Dビデオの平面から出て、ユーザの3D環境から溢れ出る/その中に入るように見え得る。
【0115】
1つ以上の実施形態では、1つ以上の3Dモデルは、1つ以上のビデオペイン上にレンダリングされてもよく、1つ以上のビデオペインは、1つ以上の視認配向のために同時にレンダリングされてもよい。1つ以上の3Dモデルは、物理的に仮想テレビのディスプレイ画面から溢れ出る/外に出るように見え得る。いくつかの実施形態では、ビデオペインは、背景および/またはバックドロップとして機能し、ディスプレイシステム104を使用するユーザ50からの視野角に対応する3Dモデルを表示してもよい。
【0116】
深度情報が、概して、旧来のVRシステムと関連付けられ得る、遠近調節-輻輳・開散運動不一致の問題を解決するように、3Dビデオおよび1つ以上の3Dモデルのレンダリングの考慮に入れられてもよい。ディスプレイシステム104を使用するユーザおよび3Dモデルからの距離が、3Dビデオおよび3Dモデルの画像またはビデオがユーザに表示され得る方法の考慮に入れられてもよい。例えば、複数の深度情報が、ユーザに表示されている3Dビデオに関して決定されてもよい。第1の深度情報は、3Dビデオ内のオブジェクトまでの3Dビデオを捕捉するカメラの決定された距離等のオリジナル3Dビデオの深度情報を含んでもよい。第2の深度情報は、3Dビデオを鑑賞するユーザからユーザの3D環境内に設置される3Dビデオのポータル/場所までの距離を含んでもよい。第3の深度情報は、3Dモデル/3D動画オブジェクトから3Dビデオを視認するユーザまでの距離を含んでもよく、3D動画オブジェクトは、ビデオから溢れ出ている/外に出ている(例えば、ビデオディスプレイ画面の平面から出ている)。いくつかの実施形態では、3D動画オブジェクトは、ユーザに向かって移動していてもよく、それによって、ユーザと3D動画オブジェクトとの間の距離を減少させる。深度情報が、3Dビデオおよび3D動
画オブジェクトを含む、最終場面のユーザへの表示をもたらす、計算に含まれない場合、ユーザの脳は、ユーザの眼を配向し、殆どの3Dビデオシステムで一般的な遠近調節-輻輳・開散運動問題に対処する方法に関して、混乱し得る。いくつかの実施形態では、仮想および/または拡張現実デバイスのユーザから、仮想および/または拡張現実環境内で表示される3Dビデオおよび個別の1つ以上の3Dモデルまでの距離は、任意の好適な様式で計算されてもよい。1つを上回る3Dモデルが表示される、いくつかの実施形態では、距離計算で使用される3Dモデルの場所は、表示されている3Dモデルのうちのいずれかのユーザまでの最接近点であってもよい。いくつかの実施形態では、距離計算で使用される3Dモデルの場所は、ユーザに表示される3Dモデルの原点の平均であってもよい。
【0117】
1つ以上の実施形態では、3Dビデオは、制御データを含み得る、ビデオフォーマットを含んでもよい。制御データは、3Dモデルがユーザにディスプレイ画面から溢れ出ているように見えるように、ディスプレイ画面の外側に3Dモデルを表示するようにビデオプレーヤに命令してもよい。制御データは、3Dモデルおよび3Dビデオが単一の3Dビデオとして統合されるかのようにユーザに見えるように、3Dモデルおよび3Dビデオを調整および統合することに役立ち得る。
【0118】
いくつかの実施形態では、1つ以上の3Dモデルは、少なくとも部分的にボクセルベースのビデオストリームに基づいてレンダリングされてもよい。ボクセルは、3次元空間内の規則的グリッド上の値を表す。ビットマップ内のピクセルと同様に、ボクセル自体は、典型的には、それらの位置(それらの座標)をそれらの値とともに明示的にエンコードさせない。代わりに、レンダリングシステムは、他のボクセルに対するその位置(例えば、単一の体積画像を構成するデータ構造内のその位置)に基づいて、ボクセルの位置を推測する。ピクセルおよびボクセルと対照的に、点および多角形が、多くの場合、それらの頂点の座標によって明示的に表される。本差異の直接的結果は、多角形が、空虚または均一に充填された空間の多くを伴う単純な3D構造を効率的に表し得る一方、ボクセルは、不均一に充填されている規則的にサンプリングされた空間を表すことに優れていることである。ボクセルベースのビデオは、非常に高い帯域幅/性能を要求し得、これは、体積ビデオを実装するために、より高い生産計算費用、および可能性として、より大量のデータ記憶に変わり得る。
【0119】
別の実施形態では、1つ以上の3Dモデルおよび/または3Dビデオは、少なくとも部分的に体積ビデオに基づいてもよい。体積ビデオは、ホログラムのように、実際に3次元で存在する実際の人々の動画を特徴とし、人々が任意の瞬間に任意の角度から視認されることを可能にする、ビデオのフォーマットである。トリックは、本メディアが、高速フレームレートで俳優の3D画像を捕捉することが可能な根本的に異なるビデオ技術を要求することである。体積ビデオは、非常に高い帯域幅/性能を要求し得、これは、体積ビデオを実装するために、より大きい計算処理能力、および可能性として、より大量のデータを要求することによって、金銭的な視点ではなく、コンピュータ処理プロセス自体の視点から、より高い生産費用に変わり得る。
(環境意識ビデオ)
【0120】
従来的なビデオは、常に、鑑賞者の環境を意識することなく、そのコンテンツを提示してきた。没入型体験は、ビデオコンテンツがユーザの環境にカスタマイズされ得る場合、大いに向上されることができる。仮想および/または拡張現実システムでは、仮想および/または拡張現実システムデバイス(例えば、図1からのディスプレイシステム104)を使用するユーザは、ビデオのコンテンツを表示するときに、ビデオが付加的ユーザ環境情報を利用し得るように、付加的ユーザ環境情報をビデオに提供してもよい。
【0121】
例えば、オブジェクト認識装置(例えば、センサ)は、ユーザの物理的環境/景観の部
屋内のアイテム、例えば、椅子1、テーブル2等を認識およびカテゴリ化してもよい。頭部姿勢および視標追跡が、ユーザが見ている場所についてヒントを複合現実ビデオプレーヤに提供するために、使用されてもよい。付加的ユーザ環境情報を有することは、3Dビデオがその限定された2Dディスプレイ空間から抜け出すことを可能にし得る。
【0122】
図1を参照すると、ニュース放送についての3Dビデオは、椅子135aおよび135bに座っているレポータ130をユーザの物理的環境/景観(例えば、ユーザのリビングルーム、ダイニングルーム、自動車等)内に設置してもよい。従来的なビデオ画面内に3Dビデオを表示する代わりに、環境意識3Dビデオは、代わりに、ユーザの物理的環境内で検出され得るオブジェクト上に、またはそれに対して表示されるように、レポータ130をレンダリングしてもよい。オブジェクトは、ユーザの物理的環境内の物理的オブジェクトのレンダリングされたバージョンであってもよい。オブジェクトは、仮想世界内のオブジェクトのレンダリングされたバージョンであってもよい。オブジェクトは、従来的なビデオ画面の外側にオブジェクトを表示する目的のために、ユーザの物理的環境内に設置されるレンダリングされた仮想オブジェクトであってもよい。3Dビデオは、3D立体ビデオ、ボクセルベースのビデオ、および/または体積ビデオであってもよい。
【0123】
図5は、いくつかの実施形態による、仮想および/または拡張現実環境内で環境意識3Dビデオを表示するためのアプローチのためのフローチャートを示す。510では、3Dビデオが、識別されてもよい。3Dビデオは、従来的な立体3Dビデオ、ボクセルビデオ、または体積ビデオのうちの少なくとも1つであってもよい。
【0124】
520では、環境情報が、ユーザの環境内で検出/識別されるオブジェクトに関して受信されてもよい。ユーザの環境は、物理的および/または仮想環境であってもよい。ユーザの物理的環境は、VRおよび/またはARデバイス(例えば、ARシステム100)を介してユーザの視点から視認されるようなユーザの現在の物理的環境を含んでもよい。ユーザの仮想環境は、VRおよび/またはARディスプレイデバイス(例えば、ディスプレイシステム104)を介してユーザの視点から視認されるような、ユーザに表示される仮想コンテンツを備えてもよい。環境情報は、VRおよび/またはARシステム(例えば、カメラ)のセンサによって捕捉され、センサによって捕捉されるオブジェクトを識別するようにVRおよび/またはARシステムによって解釈される、オブジェクトに関する情報を含んでもよい。いくつかの実施形態では、環境情報は、パス可能世界から供給され、および/またはその中に記憶されてもよい。
【0125】
センサによって捕捉される環境情報(例えば、場面内のオブジェクトの情報)は、外部システム(例えば、クラウドシステム)内に記憶された、前もって識別されたオブジェクトにマッピングされてもよく、識別されたオブジェクト(例えば、点群)の詳細な情報が、オブジェクトをさらに定義するために利用可能であり得る。ユーザの環境(例えば、物理的環境および/または仮想環境)の要素が、より詳細な情報を環境情報に提供するように、前もって識別されたオブジェクトにマッピングされてもよい。
【0126】
530では、3Dビデオコンテンツの一部および/または全てが、ユーザの環境から識別されるオブジェクト上にレンダリングされてもよい。レンダリングされたビデオは、VRおよび/またはARディスプレイデバイス(例えば、ディスプレイシステム104)を使用するユーザに表示されてもよく、ユーザは、ユーザの環境内の第1の場所(例えば、ポータル場所)において3Dビデオの一部を視認し得、ユーザは、ユーザの環境内の第2の場所において3Dビデオの一部を視認し得る。例えば、従来的なビデオ内でニュースルームにおいて椅子に座っているレポータが、ユーザのリビングルーム内の椅子に座っているように表示されてもよく、レポータは、例えば、ユーザの物理的環境/景観内で夜のニュースをユーザに提供する。補完的情報が、関連付けられる2D仮想テレビ画面/ポータ
ル上に表示されてもよい。3Dビデオコンテンツは、制御データを備える、ビデオファイルフォーマットを含んでもよい。制御データは、ユーザの環境から識別されるオブジェクト上に3Dビデオの一部(例えば、レポータ)を表示するようにビデオプレーヤに命令してもよい。
(ユーザ双方向映画)
【0127】
従来的な映画(例えば、映画は、あるタイプのビデオである)に関する問題は、従来的な映画が、映画の監督/製作者によってすでに編集されていることである。映画のユーザまたは視聴者は、概して、表示されているもの、または映画内の登場人物が行い得る決定に対して、制御を有していない。これは、映画の筋書きが、映画の作者/監督/製作者によってすでに設定されているためである。しかしながら、VRおよび/またはAR環境では、ビデオは、双方向性であり得る。ユーザは、ビデオが、例えば、ディスプレイシステム104を介して、ユーザに表示されている間に、少なくとも部分的にVRおよび/またはARシステムを通して提供されるユーザ決定に基づいて、ビデオの筋書きおよび/または結果に影響を及ぼすことが可能であり得る。
【0128】
VRおよび/またはARシステムを通して提供されるユーザ決定は、例えば、ビデオの間に、ユーザがあるオプションを決定するであろう方法を尋ねる、VRおよび/またはARシステムによって提供される質問への回答をユーザが選定または提供する形態であってもよい。アクションは、俳優または女優によって行われるものであってもよい、または天気事象、自然災害、タイミング等の俳優の制御外であり得る。ユーザによって行われる決定に基づいて、ビデオの筋書きは、ビデオのさらなる事象が影響を受け得、種々の結末がビデオに関して到達され得るように、変化してもよい。
【0129】
図6は、いくつかの実施形態による、仮想および/または拡張現実環境内で双方向3Dビデオを表示するためのフローチャートを示す。610では、3Dビデオが、識別されてもよい。3Dビデオは、決定ノードによって周期的に割り込まれる非実行可能データのストリームであってもよい。典型的には、ビデオは、ビデオプレーヤによって再生され得る、実行可能ファイルとしてフォーマットされる。非実行可能データは、ビデオデータ、オーディオデータ、および/またはアニメーションデータを含んでもよい。非実行可能データは、例えば、個別の決定に対応する入力を提供するユーザからの相互作用によって、決定ノードにおいて行われる決定に基づいて、筋書きの種々のバージョンに対応し得る、決定ノードによって割り込まれてもよい。
【0130】
620では、ユーザからの相互作用が、ユーザによって選出される決定に対応する入力として、受信されてもよい。現在、DVDおよびBlu Rayビデオは、リモートコントローラを介した単純なナビゲーションシステムを有する。VRおよび/またはARシステムでは、リモートコントローラは、本挙動を拡張し、例えば、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、および/またはオブジェクト認識装置等の種々の他のユーザ入力ソースを組み込んでもよい。ユーザから受信される単純な相互作用(例えば、特定の決定ノードにおいて行われる決定)は、ビデオをビデオの異なる部分に「ジャンプ」させ得る。オプションおよび行われる決定は、ビデオの状態を維持するように、ビデオの持続時間中に記憶されてもよい。相互作用は、例えば、ユーザがオプションをクリックすること、手のジェスチャ、ユーザ入力デバイスからの選択と組み合わせた視線等によってトリガされてもよい。
【0131】
例えば、討論放送中に、ユーザが見ている発表者に応じて、その発表者の3Dアニメーションが、ビデオ内で、またはユーザの環境内の椅子の中で、再生されてもよい。別の実施例として、異なるビデオの結末が、視聴者(例えば、図1からのユーザ50)の承認および/または参加に基づいて到達されてもよい。さらに別の実施例として、軍の将校が、
水平テーブル上のユーザの正面に表示される地図を用いて戦争の戦略について議論していてもよい。ユーザは、将校が実装するべきである戦略に関して入力を提供することによって、戦争の戦略の議論に参加してもよい。実装するべき戦略の決定を提供することに応じて、ビデオは、その決定に基づいて、データの適切なストリームにジャンプ/ナビゲートし、ビデオを表示してもよい。
【0132】
630では、3Dビデオは、決定に基づいてレンダリングされ、ユーザに表示されるように、データの適切なストリーム(例えば、ビデオ、オーディオ、および/またはアニメーションストリーム)に対応するビデオの一部においてレンダリングされてもよい。
【0133】
1つ以上の実施形態では、3Dビデオは、立体3Dビデオであってもよい。3Dビデオは、制御データを備える、ビデオファイルフォーマットを有してもよい。制御データは、少なくともユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤを命令してもよい。3Dビデオの一部は、1つ以上のユーザによって選出される決定に基づいて、特定の筋書きと関連付けられてもよい。ユーザから受信される相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含んでもよい。ユーザから受信される相互作用のうちの1つからの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせてもよい。
(複合現実ビデオフォーマット)
【0134】
従来的なビデオフォーマットは、ストリーミング用である一般的な高レベルフォーマットを有する。いくつかのビデオフォーマットは、データの全フレームが前のフレームに関連せず、本質的に相互から独立している、独立フレームベースのフレームのみを含んでもよい。ビデオフォーマットの別の形態は、キーデルタフレームベースであってもよい。一般的なストリーミング圧縮技法は、全てのフレームから独立しているキーフレーム内で送信することを伴い、後続のデルタフレームのみが、別のキーフレームが遭遇されるまで、そのキーフレームとの差異を含む。理論上、全ての後続のデルタフレームを伴って、単一のキーフレームのみを有することが可能である。しかしながら、フレームを探し求める(例えば、早送りする/巻き戻す)ことが、最接近キーフレームから再構築することを要求するため、単一のキーフレームのみと、後続のデルタフレームのみとを有することとは対照的に、間にデルタフレームを伴って、ビデオの全体を通してある間隔でキーフレームを有することが有益であり得る。
【0135】
従来的なビデオは、チャプタの変わり目、複数の言語のためのクローズドキャプション、再生中の音質等のビデオの一般的制御とともに、ビデオおよびオーディオクリップを用いて事前レンダリングされる。本開示の実施形態は、事前レンダリングおよび実行時に生成された3Dフレームの両方を含んでもよく、事前レンダリングおよび実行時に生成された3Dフレームは、ビデオのいくつかの部分で再利用されてもよい。実行時に生成された3Dフレームは、ビデオフォーマット内にいくつかのアセットを組み込んでもよい。例えば、いくつかのアセットは、3Dモデル、メッシュ、アニメーション、テクスチャ、シェーダ、およびライトを含んでもよい。さらに、より精巧かつ複雑な制御機構が、ビデオの事前レンダリングされたフレームとの実行時に生成された3Dフレームの統合を制御してもよい。より有能かつ柔軟なフォーマットが、ストリーミングしやすくもあり得る、そのようなアセットをカプセル化するように、ここで開示されるであろう。
【0136】
図7は、いくつかの実施形態による、3Dビデオを表示するためのビデオフォーマットを示す。ビデオフォーマット700は、仮想および/または拡張/複合現実ビデオフォーマットであってもよい。ビデオフォーマット700は、データ記憶710と、データストリーム750とを含んでもよい。データ記憶710は、再生されているビデオのセクショ
ンに応じて、ロードまたはアンロードされ得る、データの集合であってもよい。ストリーミングデータと異なり、データ記憶710からのデータが、メモリの中にロードされてもよい。いくつかの実施形態では、例えば、全てのモデル718およびそれらの個別のテクスチャ724が、メモリの中にロードされ、ビデオのセクションがそれらを必要としなくなるまで、メモリ内に残留してもよい。いくつかの実施形態では、データ記憶710からの全てのデータが、メモリの中にロードされてもよい。ビデオの特定のセクションからのデータは、ビデオのいくつかのセクションで再利用されてもよい。データ記憶710は、ビデオについての情報712(例えば、メニュー)、字幕714、ロケール716、モデル718(例えば、3Dモデルのメッシュ)、材料720、テクスチャ724(例えば、材料によって使用される画像)、および制御データ726を含んでもよい。
【0137】
制御データ726は、制御ストリーム(下記に開示される)を介して、ビデオ/オーディオ/アニメーションストリームのフローおよびレンダリングを制御してもよい。制御データは、時間が訪れ、アニメーションストリームが3Dモデルを制御する必要があるときに、3Dモデルが使用できる状態であり得るように、データ集約的オブジェクト(例えば、3Dモデル)が前もって事前ロードされ得るように、ビデオの先を見越して、ビデオ/オーディオ/アニメーションストリームに関して予測される内容を決定してもよい。制御データは、ユーザの帯域幅およびユーザの処理能力を考慮し、例えば、3Dモデルがアニメーションストリームによって必要とされる前に、制御データが3Dモデルをロードするために必要とし得るリード時間の量を決定してもよい。従来的に、ビデオおよびオーディオストリームは、それらのデータが、単にビデオプレーヤによって連続的にストリーミングおよび再生されるため、あまり前方に目を向ける、または先を見越す必要がない。ここでは、ビデオ、オーディオ、およびアニメーションストリームは、それぞれ、次または前のキーフレームの範囲まで、前方または後方に目を向け得る。しかしながら、制御データは、制御データがビデオコンテンツのレンダリングおよび表示において次に起こるものを制御することに関与し得るため、さらにもっと先を見越す必要があり得る。いくつかの実施形態では、ビデオのための制御データのコンテンツ全体が、ビデオの開始に応じてロードされてもよい。
【0138】
制御データ726は、使用され得るモデル718、およびモデル718(例えば、3Dモデル)が移動し得るようにモデル718にリンクする/関連付けるアニメーションを決定してもよい。例えば、制御データ726は、データ記憶から、モデル718から魚の3Dモデルを選択し、アニメーションを魚に関連付け、魚の3Dモデルをディスプレイ画面から出て3D環境の中に泳がせ、事前レンダリングされた3Dビデオを表示しているディスプレイ画面の周囲で円形に泳がせ、3D環境内のディスプレイ画面上に表示される事前レンダリングされた3Dビデオ内で泳ぐ類似する魚を伴って組み込まれるように、ディスプレイ画面の中に戻るように泳がせてもよい。
【0139】
字幕714は、ビデオ内のオーディオストリームに対応する字幕であってもよい。字幕714は、いくつかの言語の字幕を含んでもよい。ロケール716は、インビデオオーディオのためのいくつかの言語の局地的バージョンであってもよい。ロケール716は、ビデオがいくつかの言語のために作成され得るように、ロケールタグを通して参照されてもよい。モデル718は、少なくとも部分的にディスプレイ画面の外側にレンダリングおよび表示され得る、ビデオ内のオブジェクトの3Dモデルであってもよい。3Dモデルは、3Dオブジェクトのメッシュであってもよい。3Dオブジェクトのメッシュは、3Dオブジェクトの3Dモデルを形成するように頂点のセットを接続する、線のネットワークとして表されてもよい。材料720は、3Dモデル/メッシュを網羅するために使用され得る、種々の材料であってもよい。テクスチャ724は、モデル718をレンダリングするために使用され得る、種々のテクスチャであってもよい。いくつかの実施形態では、データがレンダリング可能な3Dモデルを表す限り、付加的または異なる3Dモデルデータが、
含まれてもよい。
【0140】
複合現実ビデオフォーマットのデータストリーム750セクションは、ビデオ、オーディオ、およびアニメーションストリームのキーフレームおよびデルタフレームを含むデータのスライドウィンドウであってもよい。データストリーム750は、ビデオストリーム760と、オーディオストリーム770と、アニメーションストリーム780とを含んでもよい。ビデオストリーム760は、ビデオのビデオデータを含んでもよい。オーディオストリーム770は、ビデオストリーム760に対応するオーディオデータを含んでもよい。
【0141】
アニメーションストリーム780は、互換モデル718に適用され得る、モデルアニメーションを含んでもよい。アニメーションストリーム780は、3Dモデル/メッシュがビデオおよびオーディオストリームに対して移動および挙動する方法を制御してもよい。例えば、3Dモデル/メッシュは、魚の3Dモデルであってもよい。アニメーションストリームは、魚が移動する方法および魚がディスプレイ画面に対して表示される場所に関する命令を含んでもよい。例えば、ビデオの間のある時点で、アニメーションストリームは、ビデオ画面から出てユーザの環境の中に泳ぐものとして表示されるように、魚の3Dモデルに命令してもよい。魚は、ビデオ画面の周囲を泳いでもよく、魚は、ビデオ画面の中に戻るように泳いでもよく、その時間に、魚のためのアニメーションストリームが、終了してもよい。各3Dモデルは、その独自のアニメーションストリームを有してもよい。いくつかの3Dモデルは、1つを上回るアニメーションストリームに関連付けられ/リンクされてもよい。図7に描写される複数のアニメーションストリームは、本実施形態では、1つを上回るアニメーションストリームが存在し、したがって、1つ以上のモデルが、複数のアニメーションストリームに関連付けられ得ることを示す。他の実施形態では、単一のアニメーションストリームが、ビデオ内の1つ以上の3Dモデルの表示を管理するために使用されてもよい。
【0142】
制御ストリーム(図7に示されていない)は、データ記憶からロードし、ビデオのタイムライン内の適切な時間にモデルを関連付けられるアニメーションストリームにリンクするためのモデル/メッシュ/テクスチャ等を示すことに関与し得る。いくつかの実施形態では、制御ストリームは、ビデオプレーヤがビデオフォーマットからデータを読み取る/受信するときに、制御データおよびタイムラインコントローラモジュール(下記に議論される)から動的に生成されてもよい。制御ストリームは、キーフレームのみを含んでもよい。制御ストリームは、コマンド(制御コマンドと呼ばれ得る)および/または単純な論理ゲートを含み、ビデオのタイムライン内の適切な時間に再生するための1つ以上のモデルおよび/またはアニメーションの組み合わせを決定してもよい。
【0143】
いくつかの実施形態では、制御ストリームは、ビデオファイルからストリーミングされないが、データ記憶710内の制御データ726からメモリの中に事前ロードされる、データである。字幕と同様に、制御ストリームデータは、字幕および制御データファイルサイズの両方が、概して、あまり大きくなく、したがって、両方とも、使用されるメモリの量にあまり負担をかけずに、メモリの中にロードされ得るため、ファイルからストリーミングされる必要がない。メモリの中に制御ストリームを事前ロードすることは、データ記憶710から他のデータをロードするために要求されるバッファリングに対する有意な制御を提供する。例えば、メモリの中に事前ロードされている制御ストリームは、ビデオの先の時間(例えば、ビデオまたはオーディオストリームよりも先の時間)を見越して、表示されるべき今後のモデルおよびアニメーションを決定するように構成されてもよい。制御ストリームが、今後のモデルが(例えば、ユーザに現在表示されているビデオのための時間コントローラに従って、現在の時間に対して)必要とされることを決定する場合、適切なモデルおよびその関連付けられるアニメーション(該当する場合)は、モデルが制御
ストリームによって実行されるときに、3Dモデルが、ビデオ、ビデオのオーディオ、およびアニメーションストリームと同期して表示され得るように、バッファされたメモリの中に事前ロードされてもよい。いくつかの実施形態では、制御ストリームは、メモリの中に事前ロードされる代わりに、ストリーミングされる。
【0144】
いくつかの実施形態では、3Dモデルは、いずれのアニメーションも伴わずに表示されるのみであってもよい。制御ストリームは、少なくとも部分的にモデルのサイズ、ユーザのネットワーク帯域幅、およびユーザのVRおよび/またはARシステムの処理能力に基づいて、モデルおよびその関連付けられるアニメーション(該当する場合)を表示する時間が訪れるときに、モデルの準備ができていないこと、または時間内に表示されないことに起因して、ビデオ再生が遅延されないであろうように、モデルが前もってメモリの中にロードされる必要があり得る時間の程度を決定してもよい。いくつかの実施形態では、制御ストリームは、メモリの中にロードされるモデルが、ある時間にわたって必要とされ得ず、したがって、モデルが将来の時間に再び必要とされるまで、メモリからモデルをアンロードし得ることを決定してもよい。
【0145】
一実施形態では、ビデオフォーマットは、アニメーションストリームと、データ記憶と、ビデオストリームまたはオーディオストリームのうちの少なくとも1つとを含んでもよい。1つ以上のアニメーションストリームは、個別の互換モデルに適用されてもよい。いくつかの実施形態では、データ記憶は、再生されているビデオのセクションに応じて、ロードおよびアンロードされるデータの集合であってもよい。
【0146】
1つ以上の実施形態では、データ記憶は、ビデオファイルフォーマットを読み取るアプリケーションが最初にアクセスされるときに、メモリの中に完全にロードされてもよい。制御ストリームは、制御データがメモリの中に完全にロードされるときに、データ記憶710からの1つ以上の制御データ726からメモリの中に事前ロードされてもよい。制御ストリームは、ビデオファイル内の対応するビデオおよび/またはオーディオデータに先立って、制御データを読み取るように構成されてもよい。いくつかの実施形態では、制御ストリームは、ビデオおよび/またはオーディオストリームと非同期的にMRシステムの1つ以上のプロセッサによって読み取られるが、同期的に実行されてもよい。制御ストリームは、コマンド(例えば、制御コマンド)および/または単純な論理ゲートを備え、ビデオのタイムライン内の適切な時間に再生するためのモデルおよびアニメーションの組み合わせを決定してもよい。ビデオのタイムライン内の適切な時間は、ビデオストリームおよびオーディオストリームの対応する時間と対応する。
【0147】
1つ以上の実施形態では、制御ストリームは、キーフレームのみを備える。アニメーションストリーム、ビデオストリーム、およびオーディオストリームは、1つのキーフレームの先および後が見えるように構成されてもよい。1つ以上のアニメーションストリームは、1つ以上の3Dモデルと関連付けられるアニメーション命令に対応し得る。1つ以上のアニメーションストリームのうちの各アニメーションストリームは、データ記憶の3Dモデル、テクスチャ、または材料のうちの少なくとも1つに対応する。
【0148】
複合現実ビデオフォーマットの特徴の豊かさは、複合現実ビデオプレーヤによってサポートされる、いくつかの異なる制御コマンドによって処理されてもよい。いくつかの実施形態では、制御データは、ユーザがビデオ内およびビデオの外部でオブジェクトおよび機能を制御することを可能にするための制御コマンドのセットを含んでもよい。いくつかの実施形態では、制御コマンドは、拡張可能であり得る。いくつかの実施形態では、制御コマンドは、更新されてもよい。いくつかの実施形態では、制御コマンドは、動的であり得る。制御コマンドのタイプの実施例は、1)映画の速度を変更すること(これは、例えば、映画のある部分を早送りする、またはスキップすること、例えば、クレジットを通して
早送りし、クレジット後の場面に到達することのユーザ履歴に基づき得る)、2)ユーザプロンプトを提供すること、または映画の開始時に照明を自動的に薄暗くし、映画の終了時に最初の照明に戻ること、3)映画の開始時に自動的にピザレストランに電話をかけること、または4)ユーザの視線に応じて、異なるように映画を再生することであってもよい。いくつかの実施形態では、制御ストリームは、完全スクリプト言語であってもよい。いくつかの実施形態では、本開示の複合現実映画は、プログラミング言語を備える映画またはビデオである。いくつかの実施形態では、用語「制御データ」および「制御ストリーム」は、同義的に使用される。
(複合現実ビデオプレーヤ)
【0149】
ビデオプレーヤは、3Dビデオフォーマット(例えば、ビデオフォーマット700)を解釈してもよい。ビデオプレーヤは、仮想および/または拡張/複合現実ビデオプレーヤであってもよい。ビデオプレーヤは、ビデオフォーマット700のデータ記憶710内のアニメーションストリームおよびデータへのアクセスを有してもよいため、ビデオプレーヤは、ビデオフォーマットを読み取る、および/または実行してもよい。典型的ビデオプレーヤは、データを読み取り、ビデオデータおよび/またはストリームからオーディオデータおよび/またはストリームを分離し、データをデコードし、ビデオを表示してもよい。しかしながら、複合現実ビデオプレーヤは、メモリの中に3Dモデルをロードすること、アニメーションストリームを3Dモデルに添付すること、およびモデルおよび対応するアニメーションがもはや必要とされない、または閾値時間周期にわたって必要とされないときに、メモリからそれらを除去すること等のさらにいくつかのアクションを実施してもよい。さらに、付加的双方向制御は、ユーザがビデオを変更する、またはビデオの一部を環境と相互作用させる決定を行うことを可能にしてもよい。
【0150】
例えば、ビデオは、例えば、複合現実ビデオプレーヤによって提供される付加的双方向制御を使用して、世界内のあるオブジェクト上に表示されるように、ビデオコンテンツのある部分を設置すること(例えば、ユーザの環境内のユーザの物理的椅子の上にレポータ130を設置すること)によって、環境に適応してもよい。別の実施例として、ユーザは、ユーザに表示され得るビデオコンテンツ、および可能性として、ビデオが終了し得る方法を改変および調節し得る、ビデオ内のある点で行われる決定に関する入力を提供することが可能であり得る。
【0151】
ビデオ監督者は、典型的には、従来的なビデオを作成する。複合現実ビデオプレーヤを用いて、ユーザは、ビデオを作成してもよい。例えば、ビデオを再生するとき、ビデオは、ユーザが敵を攻撃することを所望するであろうかどうかをユーザに尋ねてもよい。ユーザが攻撃することを選定する場合、ユーザは、敗北し得、ビデオは、特定の結末に到達し得る。しかしながら、ユーザが攻撃しないことを選定する場合には、ビデオの別の部分が、再生されてもよく、ビデオの異なる結末が、到達され得る。
【0152】
図8は、いくつかの実施形態による、ビデオプレーヤのコンポーネント図を示す。ビデオプレーヤ805は、仮想および/または拡張/複合現実プレーヤであってもよい。ビデオプレーヤ805は、時間コントローラ810と、データストリームバッファおよびスプリッタ815と、データ記憶バッファおよびコントローラ820と、ビデオ/オーディオデコーダ825と、アニメーションデコーダ830と、制御ストリーム835と、場面設定モジュール840とを含んでもよい。
【0153】
時間コントローラ810は、ビデオ(例えば、映画)ストリームの位置を制御してもよい。通常のビデオでは、時間コントローラは、単にタイムラインに対してビデオスライダの位置をインクリメントしてもよい。コマンドエグゼキュータ850(下記に開示される)から受信されるコマンドに応じて、ビデオのタイムレイは、ビデオの種々のセクション
にジャンプしてもよい。
【0154】
データストリームバッファおよびスプリッタ815は、データ内にバッファし、着信ファイルデータストリーム750をビデオストリーム、オーディオストリーム、およびアニメーションストリーム等の個々のストリームに分割することに関与し得る。データ記憶バッファおよびコントローラ825は、データ記憶710からのデータ内にバッファし、前もってロードするデータを決定することに関与し得る。データストリームバッファおよびスプリッタ815と異なり、データ記憶バッファおよびコントローラ825は、制御ストリーム835および時間コントローラ810に基づいて、ストリーミングを開始するデータを確立する必要がある。
【0155】
着信データは、ビデオ/オーディオデコーダ825の中にストリーミングされてもよく、ビデオ/オーディオデコーダ825からの出力は、1つ以上のバッファフレームに書き込まれてもよい。オーディオは、エンジンのオーディオ取扱部分にルーティングされてもよい。アニメーションデコーダ830は、アニメーションストリームを、モデルに直接適用され得るフォーマットにデコードしてもよい。
【0156】
制御ストリーム835は、上記に開示されるように、図7からの制御データ726および時間コントローラ810から動的に生成されてもよい。制御ストリーム835は、現在のフレーム(例えば、MRシステムを介してユーザに表示されているフレーム)内で実行するコマンドを示してもよい。
【0157】
場面設定840は、付加的双方向制御をユーザに提供し、ビデオが環境と相互作用することを可能にする、および/またはユーザがビデオと相互作用することを可能にし得る、モジュールの集合であってもよい。場面設定840は、入力コントローラ845と、コマンドエグゼキュータ850と、実行時双方向性進捗/保存データ860と、環境意識測位システム865とを含んでもよい。
【0158】
入力コントローラ845は、ユーザアクション、例えば、ジェスチャ、コントローラ入力、ダイアログボックス、環境(世界オブジェクト認識装置、例えば、椅子)等から入力を配信することに関与し得る。
【0159】
実行時双方向性進捗/保存データ860は、ビデオの現在の性質/状態を記憶してもよい。ビデオゲームと同様に、実行時双方向性進捗/保存データ860は、ビデオゲームを通したユーザ進捗として、ビデオゲーム用の保存ファイルに書き込まれるであろう、データであってもよい。ここで、ユーザがビデオを通して進行するにつれて、実行時双方向性進捗/保存データ860は、ここまでレンダリングおよび表示されたビデオフローを記憶してもよい。特に、ユーザが、ビデオのフローをビデオファイルの特定のセクションに送信した決定を行った場合、実行時双方向性進捗/保存データ860は、ビデオ履歴を捕捉することによってユーザのためのビデオの状態を維持するために、特定の順序で表示される前のキーフレームを含んでもよい。
【0160】
環境意識測位システム865は、ユーザがビデオを鑑賞することに基づいて、ビデオ、モデル等を動的に位置付けることに関与し得る。例えば、ユーザの家庭設定に応じて、3Dモデルおよびビデオフレームは、好適に位置付けられてもよい。好適な位置は、種々の方法で決定されてもよい。いくつかの実施形態では、3Dモデルは、対応する設置データを有してもよい。本設置データは、オブジェクトのタイプ(例えば、椅子、床等)を規定し、上または近傍にオブジェクトを設置してもよい、またはコンテンツを表示するために必要とされる特性のセットを規定してもよい(例えば、椅子を規定する代わりに、床の1~3フィート上方の水平表面が、代わりに規定され得る)。環境意識測位システム865
は、3Dモデルを好適に位置付けるために、(例えば、パス可能世界にアクセスするように)複合現実エンジンと通信してもよい。
【0161】
制御ストリーム835からのコマンドが、コマンドエグゼキュータ850によって受信され、解釈されてもよく、適切な論理アクションが、実行されてもよい。これは、モデルおよびアニメーションストリームの初期統合が行われる場所であってもよい。論理アクションはまた、少なくとも部分的にユーザ入力から決定されてもよく、結果は、実行時双方向性データ860内に記憶されてもよい。ビデオプレーヤの能力を拡張し、充実させる、1つ以上のコマンドの実施例が、コマンドエグゼキュータ850に追加されてもよい。いくつかの実施例は、(1)画面上にモデルを提示し、アニメーションストリームに関連付けること、(2)ユーザの環境内の場所にモデルを再配置すること(椅子がない場合には、デフォルト場所が使用されてもよい)、および(3)ユーザが決定を選定するための相互作用ダイアログを提示することを含む。
【0162】
複合現実ビデオプレーヤ805の出力は、複合現実エンジン890に送信されてもよい。複合現実エンジン890は、ゲームエンジンに類似し得る。複合現実エンジン890は、ビデオおよびモデルをレンダリングすることが可能なエンジンであってもよく、ユーザの頭部姿勢に基づいて、場面の最終組成に使用されてもよい。他のVRおよび/またはAR技術および/または能力への相互作用およびアクセスは、本複合現実エンジン890を通してインターフェースをとられてもよい。
【0163】
図9は、いくつかの実施形態による、ビデオフォーマットを処理するビデオプレーヤのフローを示す。ビデオプレーヤ900は、仮想および/または拡張/複合現実ビデオプレーヤであってもよい。ビデオプレーヤ900のフローは、タイムラインに対して描写され、時間は、図9の上から開始し、図9の下まで進み、ビデオ終了970において終了して流れる。タイムラインコントローラ810は、図8からの時間コントローラ810であってもよい。タイムラインコントローラ810は、ユーザに表示されている現在のフレームを示し得る、ビデオストリームの位置を制御してもよい。ビデオプレーヤ900は、複合現実ビデオファイルフォーマットで複合現実ビデオファイルからデータを読み取る/受信してもよい。複合現実ビデオフォーマットのビデオ特徴は、立体3Dビデオであってもよい。複合現実ビデオファイルフォーマットは、アニメーションストリーム915と、制御データを備えるデータ記憶と、ビデオストリーム905と、オーディオストリーム910とを含んでもよい。アニメーションストリーム915、ビデオストリーム905、およびオーディオストリーム910は、それぞれ、図7からのアニメーションストリーム780、ビデオストリーム760、およびオーディオストリーム770に対応し得る。
【0164】
ビデオストリーム905は、ビデオのビデオデータの1つ以上のストリームを含んでもよい。オーディオストリーム910は、ビデオのオーディオデータの1つ以上のストリームを含んでもよい。1つ以上のオーディオストリームは、ユーザ選定オプションに応じて、ビデオが使用し得る種々の言語に対応し得る。1つ以上のビデオストリームは、例えば、捕捉される複数の視界に対応し得る。現在のビデオ圧縮アプローチでは、ビデオおよびオーディオデータは、ビデオおよびオーディオデータがビデオプレーヤにストリーミングされ得るように、データ集約的であり得る。上記に議論されるように、一般的なストリーミング圧縮技法は、全てのフレームから独立し得るキーフレーム925、および別のキーフレーム933が遭遇されるまでキーフレーム925との差異のみを搬送し得る、後続のデルタフレーム930内で送信することを伴う。
【0165】
上記に開示されるように、アニメーションストリーム915は、互換3Dモデルに適用され得る、モデルアニメーションを含んでもよい。アニメーションストリーム915は、3Dモデル/メッシュがビデオおよびオーディオストリーム(例えば、ビデオ)に対して
移動および挙動する方法(例えば、移動、配向、位置等)を制御してもよい。アニメーションデータは、1つ以上のアニメーションストリーム内でビデオプレーヤ900にストリーミングされてもよい。1つ以上のアニメーションストリームは、ビデオの間の特定の時間に表示され得る、1つ以上のモデル/メッシュ/テクスチャに対応し得、1つ以上のモデルは、3Dビデオのディスプレイ画面の外側に表示されてもよい。
【0166】
制御ストリーム920は、データ記憶から受信される制御データから動的に生成され、時間コントローラ810によって解釈されてもよい。上記に開示されるように、制御ストリームは、データ記憶945からロードし、ビデオストリーム905およびオーディオストリーム910からのフレームと対応するように、ビデオのタイムライン内の適切な時間に(例えば、940において)モデル/メッシュ/テクスチャを関連付けられるアニメーションストリームにリンクするためのモデル/メッシュ/テクスチャ等を示すことに関与し得る。制御ストリーム920は、キーフレーム(例えば、キーフレーム935aおよびキーフレーム935b)を含んでもよい。制御ストリーム920は、コマンドおよび単純な論理ゲートを含み、ビデオのタイムライン内の適切な時間に再生するためのモデルおよびアニメーションの組み合わせを決定してもよい。
【0167】
いくつかの実施形態では、制御ストリーム920は、ビデオファイルからストリーミングされないが、代わりにメモリの中に事前ロードされるデータである。制御ストリーム920がメモリの中に事前ロードされるため、ビデオプレーヤ900は、ビデオのタイムラインおよび/またはビデオストリームの時間の先を見越し、アニメーションの有無を問わず、データ記憶からの3Dモデルが、表示されている3Dモデルを予期してメモリの中に事前ロードされる必要があり得るときを決定してもよい。いくつかの実施形態では、モデルをロードするためのリード時間が、3Dモデルのデータのサイズ、ネットワーク帯域幅、および/またはユーザの仮想および/または拡張現実システム(例えば、ディスプレイシステム104)の処理能力に基づいて、決定されてもよい。いくつかの実施形態では、制御ストリームは、メモリの中に事前ロードされる代わりにストリーミングされる。いくつかの実施形態では、制御ストリームおよび制御データは、同義的に使用されてもよい。いくつかの実施形態では、これは、制御ストリームが実行されている制御データであるためであってもよい。いくつかの実施形態では、これは、それらが同一のものであるためであってもよい。いくつかの実施形態では、これは、制御データがストリーミングされているためであってもよい。
【0168】
いくつかの実施形態では、ビデオプレーヤ900は、ビデオストリーム、オーディオストリーム、アニメーションストリーム、および/または制御データを備える、ビデオファイルを受信してもよい。制御ストリームは、制御データおよびビデオプレーヤの時間コントローラから生成されてもよい。940では、3Dモデルが、少なくとも部分的に、3Dモデルがビデオ内で表示される必要があり得るときの制御ストリーム予測に基づいて、メモリ(図示せず)の中に事前ロードされてもよい。ビデオプレーヤは、3Dモデルをロードするためのリード時間を決定(例えば、計算)し、アニメーションの有無を問わず、3Dモデルがユーザに表示される準備ができていることを確実にしてもよい。アニメーションが3Dモデルとともに含まれる場合、制御ストリームは、ロードされた3Dモデルとアニメーションストリーム915からのアニメーションストリームとの間のリンクを関連付けることによって、3Dオブジェクトをアニメーションストリームに添付してもよい。ビデオは、VRおよび/またはARデバイス(例えば、ディスプレイシステム104)を使用して、ユーザに表示されてもよい。ユーザには、ビデオのある部分において、3Dオブジェクトが仮想テレビの前面から出て、ユーザの環境で動き回り、随意に、仮想テレビに再進入するように見え得るように、仮想テレビ上に表示される3Dビデオが見え得る。
【0169】
別の実施形態では、制御ストリーム920は、950において、例えば、夜明けに攻撃
するかどうかユーザに質問を表示するようにビデオプレーヤ900に命令してもよい。ユーザが、「はい」を選定し、夜明けに攻撃する場合、制御ストリームは、965において、「成功」をタイムラインにタグ付けし、ミッション「成功」タグをタイムラインコントローラ810に通信してもよい。代替として、ユーザが「いいえ」を選定し、夜明けに攻撃しない場合、制御ストリームは、960において、「失敗」をタイムラインにタグ付けし、ミッション「失敗」タグをタイムラインコントローラ810に通信してもよい。
【0170】
タイムラインコントローラ810は、ミッションのためのタイムラインタグを受信した後、成功したミッションに基づいて継続するビデオの一部または失敗したミッションに基づいて継続するビデオの一部まであるかどうかにかかわらず、タイムラインをビデオの適切な部分にスキップ/ジャンプさせ、ビデオを継続してもよい。ユーザから受信される相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャまたは入力、またはオブジェクト認識装置のうちの少なくとも1つを含んでもよい。955では、ビデオの状態が、ユーザによって提供される回答を捕捉するように、実行時双方向性データとともに記憶されてもよい。本実施形態は、ビデオファイル(例えば、複合現実ビデオフォーマットファイル)を受信するビデオプレーヤ900が、制御ストリーム920を使用してユーザ双方向3Dビデオを表示し、次に表示されるべきビデオの一部を指示するユーザ相互作用を捕捉し、したがって、ユーザが、ビデオの筋書きが終了し得る方法を指示および制御することを可能にし得る、方法を開示する。いくつかの実施形態では、実行時双方向性データ955は、少なくとも部分的に制御コマンドを解釈してもよい。例えば、955は、制御コマンドがユーザ選択肢を備えるときに、ユーザ選択を解釈してもよい。実行時双方向性データは、いくつかの実施形態では、ユーザ選択がビデオの状態に影響を及ぼし得る、コマンドエグゼキュータ850にパスされてもよい。いくつかの実施形態では、955は、ユーザ選択肢を備えない制御コマンドを解釈してもよい。例えば、制御コマンドは、ユーザの年齢(複合現実システム上のユーザのプロファイル内に記憶され得る)に基づいて、ビデオコンテンツを自動的に検閲するように機能してもよい。
【0171】
複合現実ビデオファイルフォーマットを作成および編集するための複合現実ビデオエディタ(図示せず)は、ビデオストリーム、オーディオストリーム、アニメーションストリーム、および複合現実ビデオフォーマットのデータ記憶を編集するためのツールを含んでもよい。ツールは、例えば、ユーザが、(1)データ記憶の中にモデルを作成またはインポートすること、(2)保存されたアニメーションストリームからアニメーションストリームを定義すること、および/またはモデルを制御するための新しいアニメーションストリームを作成すること、(3)アニメーションストリームを互換モデルに関連付けること、(4)例えば、構成されたユーザ帯域幅およびユーザのVRおよび/またはARシステムの処理能力に基づいて、モデルが事前ロードされ得るときを定義すること、(5)ユーザの環境内のオブジェクト上に表示され得るビデオおよびオーディオストリームの一部を定義すること、および/または(6)ビデオを視聴するユーザに質問が尋ねられる方法および/またはその内容、およびユーザからの各回答がビデオの一部にスキップし得る方法等を定義することを可能にしてもよい。
【0172】
複合現実ビデオファイルフォーマットは、少なくとも1つのアニメーションストリームと、付加的アセットを従来的なビデオファイルフォーマットの中に追加し、本開示の1つ以上の実施形態を実装するためのデータ記憶を備えてもよい。複合現実ビデオプレーヤが、複合現実ビデオファイルフォーマット内の複合現実ビデオを解釈および処理するために使用されてもよい。
【0173】
制御ストリームを解釈および実行するビデオプレーヤは、VRおよび/またはARシステムが新しい新規の方法で3Dビデオを表示することを可能にしてもよい。例えば、ディスプレイ画面の外に出ているかのように見えるように3Dオブジェクトを表示することは
、3Dモデルが表示される必要があるときの予測に基づいて、メモリの中に3Dモデルを事前ロードし、3Dモデルを、3Dモデルの移動を制御するためのアニメーションストリームに添付することによって、達成され得る。これは、3Dビデオと組み合わせて3Dモデルを表示し、3Dビデオ内の3Dオブジェクトが従来的な3Dビデオを表示する従来的なディスプレイ画面から実際に溢れ出る、または外に出るように見え得る、3Dビデオのより現実的な視界を提供するための仮想および/または拡張現実システムの能力を向上させ得る。いくつかの実施形態では、アニメーションストリーム915、制御データ、および制御ストリーム920の追加は、ビデオプレーヤ900によって解釈されると、VRおよび/またはARシステムが、コンピュータの処理能力を低減させ、ボクセルおよび/または体積ベースのビデオストリーム等の他の技法と比較して、3Dビデオを生成するために必要とされ得るメモリの量を低減させる効率的な様式で、ディスプレイ画面から実際に溢れ出る/または外に出得る、3Dオブジェクトを伴って3Dビデオを表示することを可能にする。
(付加的実施形態)
【0174】
本開示の付加的実施形態が、下記に説明される。これらの付加的実施形態は、上記に開示される実施形態からの要素を組み込み得る。
実施形態1.
実施形態であって、
最終3Dレンダリング世界内のポータルを識別するステップであって、ポータルは、最終3Dレンダリング世界の表面内の開口部である、ステップと、
最終3Dレンダリング世界のポータルの中に第1の2D立体画像および第2の2D立体画像をレンダリングするステップと、
を含む、実施形態。
実施形態2.
拡張現実デバイスを通して、レンダリングされた最終3Dレンダリング世界をユーザに表示するステップをさらに含む、実施形態1に記載の方法。
実施形態3.
第1の2D立体画像は、右眼用であり、第2の2D立体画像は、左眼用である、実施形態1に記載の方法。
実施形態4.
第1の2D立体画像および第2の2D立体画像は、従来的な3Dビデオから供給される、実施形態3に記載の方法。
実施形態5.
第1の2D立体画像および第2の2D立体画像は、3Dレンダリング世界の異なる部分内に位置する2つの仮想レンダリングカメラから供給される、実施形態3に記載の方法。実施形態6.
第1の2D立体画像および第2の2D立体画像は、実世界コンテンツを捕捉する2つのカメラから供給される、実施形態3に記載の方法。
実施形態7.
第1の2D立体画像および第2の2D立体画像は、異なる3Dレンダリング世界から供給される、実施形態3に記載の方法。
実施形態8.
異なる3Dレンダリング世界は、ポータルアイコンである、実施形態7に記載の方法。実施形態9.
ポータルは、仮想テレビ画面である、実施形態1に記載の方法。
実施形態10.
仮想および/または拡張現実ディスプレイシステムであって、
最終3Dレンダリング空間と、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、
最終3Dレンダリング世界内のポータルを識別するステップであって、ポータルは、最終3Dレンダリング世界の表面内の開口部である、ステップと、
最終3Dレンダリング世界のポータルの中に第1の2D立体画像および第2の2D立体画像をレンダリングするステップと、
を実施するように構成される、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態11.
レンダリングされた最終3Dレンダリング世界をユーザに表示するステップをさらに含む、実施形態10に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態12.
第1の2D立体画像は、右眼用であり、第2の2D立体画像は、左眼用である、実施形態10に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態13.
第1の2D立体画像および第2の2D立体画像は、従来的な3Dビデオから供給される、実施形態12に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態14.
第1の2D立体画像および第2の2D立体画像は、3Dレンダリング世界の異なる部分内に位置する2つの仮想レンダリングカメラから供給される、実施形態12に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態15.
第1の2D立体画像および第2の2D立体画像は、実世界コンテンツを捕捉する2つのカメラから供給される、実施形態12に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態16.
第1の2D立体画像および第2の2D立体画像は、第2の3Dレンダリング世界から供給される、実施形態12に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態17.
第2の3Dレンダリング世界は、ポータルアイコンである、実施形態16に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態18.
ポータルは、仮想テレビ画面である、実施形態10に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態19.
仮想および/または拡張現実環境内で3Dビデオを表示する方法であって、
3Dビデオを識別するステップと、
仮想および/または拡張現実環境の一部内で3Dビデオを表示するための体積空間を識別するステップと、
体積空間内で3Dビデオをレンダリングするステップと、
を含む、方法。
実施形態20.
3Dビデオは、立体3Dビデオである、実施形態19に記載の方法。
実施形態21.
体積空間は、3Dオブジェクトのポータルビューである、実施形態19に記載の方法。実施形態22.
3Dオブジェクトは、平面視認ディスプレイを有する、仮想テレビである、実施形態21に記載の方法。
実施形態23.
3Dビデオは、仮想テレビの平面視認ディスプレイ内でレンダリングされる、実施形態22に記載の方法。
実施形態24.
3Dビデオからの第1の深度情報は、仮想および/または拡張環境体積空間の一部の第1の場所から、3Dビデオを視認するユーザの第2の場所までの第2の深度情報に追加される、実施形態19に記載の方法。
実施形態25.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、
3Dビデオを識別し、
仮想および/または拡張現実環境の一部内で3Dビデオを表示するための体積空間を識別し、
体積空間内で3Dビデオをレンダリングする、
モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態26.
3Dビデオは、立体3Dビデオである、実施形態25に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態27.
体積空間は、3Dオブジェクトのポータルビューである、実施形態25に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態28.
3Dオブジェクトは、平面視認ディスプレイを有する、仮想テレビである、実施形態27に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態29.
3Dビデオは、仮想テレビの平面視認ディスプレイ内でレンダリングされる、実施形態28に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態30.
3Dビデオからの第1の深度情報は、仮想および/または拡張環境体積空間の一部の第1の場所から、3Dビデオを視認するユーザの第2の場所までの第2の深度情報に追加される、実施形態25に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態31.
ディスプレイ画面の表面を越えて延在する3Dビデオを表示する方法であって、
3Dビデオを識別するステップと、
3Dビデオに対応する1つ以上の3Dモデルを生成するステップと、
3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするステップと、
を含む、方法。
実施形態32.
3Dビデオは、立体3Dビデオである、実施形態31に記載の方法。
実施形態33.
1つ以上の3Dモデルは、アニメーションを伴って生成される、実施形態32に記載の方法。
実施形態34.
3Dビデオのディスプレイ画面外に1つ以上の3Dモデルのアニメーションを表示するステップをさらに含む、実施形態33に記載の方法。
実施形態35.
1つ以上の3Dモデルのアニメーションは、3Dビデオの平面から出て、ユーザの3D環境の中に入るように見える、実施形態34に記載の方法。
実施形態35a.
1つ以上の3Dモデルのアニメーションは、3Dビデオの非平面から出て、ユーザの3
D環境の中に入るように見える、実施形態34に記載の方法。
実施形態36.
1つ以上の3Dモデルを1つ以上のビデオペイン上にレンダリングするステップと、
1つ以上の視認配向のために同時に1つ以上のビデオペインを表示するステップと、
をさらに含む、実施形態31に記載の方法。
実施形態37.
立体3Dビデオは、1つ以上の3Dモデルを伴って表示される、実施形態32に記載の方法。
実施形態38.
深度情報が、3Dビデオおよび1つ以上の3Dモデルのレンダリングの考慮に入れられ、深度情報は、仮想および/または拡張現実デバイスのユーザから3Dビデオまでの距離を備え、個別の1つ以上の3Dモデルは、仮想および/または拡張現実環境内に表示される、実施形態31に記載の方法。
実施形態39.
3Dビデオは、制御データを備え、制御データは、3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするようにビデオプレーヤに命令する、実施形態31に記載の方法。
実施形態39a.
制御データは、3Dビデオ内および3Dビデオの外部のオブジェクトおよび機能を制御するための制御コマンドのセットを備える、実施形態39に記載の方法。
実施形態39b.
制御コマンド(例えば、制御コマンドのセット)は、拡張可能、更新可能、または動的のうちの少なくとも1つである、実施形態39aに記載の方法。
実施形態39c.
制御コマンドは、3Dビデオの速度を変更するステップ、3Dビデオの開始時にユーザ環境内の照明を薄暗くするためのユーザプロンプトを提供するステップ、3Dビデオの開始時にピザレストランに電話をかけるステップ、または少なくとも部分的にユーザの視線に基づいて、異なるように3Dビデオを再生するステップのうちの少なくとも1つを含む、実施形態39bに記載の方法。
実施形態39d.
3Dビデオは、3D映画であって、プログラミング言語を備える、3D映画である、実施形態31に記載の方法。
実施形態40.
1つ以上の3Dモデルのレンダリングは、少なくとも部分的にボクセルベースのビデオストリームに基づく、実施形態31に記載の方法。
実施形態41.
ディスプレイ画面の表面を越えて延在する3Dビデオを表示するためのディスプレイシステムであって、
拡張現実頭部搭載型ディスプレイシステムと、
3D最終レンダリング世界と、
2つ以上の仮想カメラと、
データを処理するための1つ以上のモジュールであって、1つ以上のモジュールは、1つ以上のメモリ内に記憶され、1つ以上のモジュールは、
3Dビデオを識別するステップと、
3Dビデオに対応する1つ以上の3Dモデルを生成するステップと、
3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするステップと、
を実施するように構成される、1つ以上のモジュールと、
を備える、システム。
実施形態42.
3Dビデオは、立体3Dビデオである、実施形態41に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態43.
1つ以上の3Dモデルは、アニメーションを伴って生成される、実施形態42に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態44.
モジュールはさらに、3Dビデオのディスプレイ画面外に1つ以上の3Dモデルのアニメーションを表示するステップを含む、実施形態43に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態45.
1つ以上の3Dモデルのアニメーションは、3Dビデオの平面から出て、ユーザの3D環境の中に入るように見える、実施形態44に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態45a.
1つ以上の3Dモデルのアニメーションは、3Dビデオの非平面から出て、ユーザの3D環境の中に入るように見える、実施形態44に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態46.
1つ以上のモジュールはさらに、
1つ以上の3Dモデルを1つ以上のビデオペイン上にレンダリングするステップと、
1つ以上の視認配向のために同時に1つ以上のビデオペインを表示するステップと、
を実施するように構成される、実施形態41に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態47.
立体3Dビデオは、1つ以上の3Dモデルを伴って表示される、実施形態42に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態48.
深度情報が、3Dビデオおよび1つ以上の3Dモデルのレンダリングの考慮に入れられ、深度情報は、仮想および/または拡張現実デバイスのユーザから3Dビデオまでの距離を備え、個別の1つ以上の3Dモデルは、仮想および/または拡張現実環境内に表示される、実施形態41に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態49.
3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、3Dビデオのレンダリングとともに、適切なトリガ時間に1つ以上の3Dモデルをレンダリングするようにビデオプレーヤに命令する、実施形態41に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態49a.
制御データは、3Dビデオ内および3Dビデオの外部のオブジェクトおよび機能を制御するための制御コマンドのセットを備える、実施形態49に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態49b.
制御コマンド(例えば、制御コマンドのセット)は、拡張可能、更新可能、または動的のうちの少なくとも1つである、実施形態49aに記載の仮想および/または拡張現実ディスプレイシステム。
実施形態49c.
制御コマンドは、3Dビデオの速度を変更するステップ、3Dビデオの開始時にユーザ環境内の照明を薄暗くするためのユーザプロンプトを提供するステップ、3Dビデオの開始時にピザレストランに電話をかけるステップ、または少なくとも部分的にユーザの視線に基づいて、異なるように3Dビデオを再生するステップのうちの少なくとも1つを含む、実施形態49bに記載の仮想および/または拡張現実ディスプレイシステム。
実施形態49d.
3Dビデオは、3D映画であって、プログラミング言語を備える、3D映画である、実施形態31に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態50.
1つ以上の3Dモデルのレンダリングは、少なくとも部分的にボクセルベースのビデオストリームに基づく、実施形態41に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態51.
方法であって、
3D環境内に2つの第1段階カメラを設置するステップと、
2つの第1段階カメラから1つ以上の対の2D画像を捕捉するステップと、
1つ以上の対の2D画像を、最終段階場面内の場所の中に設置するステップと、
2つの最終段階カメラから最終段階場面をレンダリングするステップと、
を含む、方法。
実施形態52.
仮想および/または拡張現実デバイスを介して最終段階場面を表示するステップをさらに含む、実施形態51に記載の方法。
実施形態53.
場所は、ポータルである、実施形態51に記載の方法。
実施形態54.
2つの第1段階カメラのうちの第1のカメラは、左眼の視点から2D画像を捕捉し、2つの第1段階カメラのうちの第2のカメラは、右眼の視点から2D画像を捕捉する、実施形態51に記載の方法。
実施形態55.
1つ以上の他の対の2つの2D画像は、ユーザの両眼に対応する、2つの最終段階カメラから捕捉される、実施形態51に記載の方法。
実施形態56.
2つの第1段階カメラは、最終段階の2つのレンダリングカメラと異なる3D環境の場所にある、実施形態55に記載の方法。
実施形態57.
2つの第1段階カメラは、仮想カメラであり、3D環境は、3D仮想世界である、実施形態51に記載の方法。
実施形態58.
3D環境は、実際の世界である、実施形態51に記載の方法。
実施形態59.
仮想および/または拡張現実ディスプレイシステムであって、
3D環境内に設置される、2つの第1段階カメラであって、1つ以上の対の2D画像を捕捉する、2つの第1段階カメラと、
2つの最終段階カメラであって、最終段階場面を捕捉する、2つの最終段階カメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、
1つ以上の対の2D画像を、最終段階場面内の場所の中に設置するステップと、
2つの最終段階カメラから捕捉される1つ以上の他の対の2D画像から、最終段階場面をレンダリングするステップと、
を実施するように構成される、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態60.
最終段階場面を表示するステップをさらに含む、実施形態59に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態61.
場所は、ポータルである、実施形態59に記載の仮想および/または拡張現実ディスプ
レイシステム。
実施形態62.
2つの第1段階カメラのうちの第1のカメラは、左眼の視点から2D画像を捕捉し、2つの第1段階カメラのうちの第2のカメラは、右眼の視点から2D画像を捕捉する、実施形態59に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態63.
1つ以上の他の対の2つの2D画像は、ユーザの両眼に対応する、2つの最終段階カメラから捕捉される、実施形態59に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態64.
2つの第1段階カメラは、最終段階の2つのレンダリングカメラと異なる3D環境の場所にある、実施形態63に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態65.
2つの第1段階カメラは、仮想カメラであり、3D環境は、3Dレンダリング世界である、実施形態59に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態66.
3D環境は、実際の世界である、実施形態59に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態67.
第1のソースからの第1の3Dコンテンツを第2のソースからの第2の3Dコンテンツの中に設置するステップを含む、方法。
実施形態68.
仮想および/または拡張現実デバイスを介して、第2の3Dコンテンツを表示するステップをさらに含む、実施形態67に記載の方法。
実施形態69.
第1の3Dコンテンツは、第2の3Dコンテンツ内のポータルの中に設置される、実施形態67に記載の方法。
実施形態70.
第1のソースの第1のカメラは、左眼の視点から2D画像を捕捉し、第1のソースの第2のカメラは、右眼の視点から2D画像を捕捉する、実施形態67に記載の方法。
実施形態71.
別の一対の2つの2D画像は、第2のソースからの2つの他のカメラから捕捉され、一対の2つの2D画像は、第2のソースからの場面を視認するユーザの両眼に対応する、実施形態67に記載の方法。
実施形態72.
第1のソースからの2つのカメラは、第2のソースからの2つの他のカメラと異なる3D環境の場所にある、実施形態67に記載の方法。
実施形態73.
第1の3Dコンテンツは、2つの仮想カメラから捕捉され、第1のソースは、3D仮想世界である、実施形態67に記載の方法。
実施形態74.
第1のソースは、実際の世界である、実施形態67に記載の方法。
実施形態75.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、第1のソースからの第1の3Dコンテンツを第2のソースからの第2の3Dコンテンツの中に設置するプロセスを実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態76.
モジュールは、実行されると、仮想および/または拡張現実デバイスを介して、第2の3Dコンテンツを表示するステップをさらに含む、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態77.
第1の3Dコンテンツは、第2の3Dコンテンツ内のポータルの中に設置される、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態78.
第1のソースの第1のカメラは、左眼の視点から2D画像を捕捉し、第1のソースの第2のカメラは、右眼の視点から2D画像を捕捉する、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態79.
別の一対の2つの2D画像は、第2のソースからの2つの他のカメラから捕捉され、一対の2つの2D画像は、第2のソースからの場面を視認するユーザの両眼に対応する、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態80.
第1のソースからの2つのカメラは、第2のソースからの2つの他のカメラと異なる3D環境の場所にある、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態81.
第1の3Dコンテンツは、2つの仮想カメラから捕捉され、第1のソースは、3D仮想世界である、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。実施形態82.
第1のソースは、実際の世界である、実施形態75に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態83.
立体画像の第2のセットの内側に立体画像の第1のセットを設置するステップを含む、方法。
実施形態84.
仮想および/または拡張現実デバイスを介して立体画像の第2のセットを表示するステップをさらに含む、実施形態83に記載の方法。
実施形態85.
立体画像の第1のセットは、立体画像の第2のセット内のポータルの中に設置される、実施形態83に記載の方法。
実施形態86.
立体画像の第1のセットは、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態83に記載の方法。
実施形態87.
立体画像の第2のセットは、2つの他のカメラによって捕捉され、2つの他のカメラは、立体画像の第2のセットを捕捉し、2つの他のカメラは、ポータル内で立体画像の第1のセットを示す場面を視認するユーザの両眼に対応する、実施形態83に記載の方法。
実施形態88.
立体画像の第1のセットは、立体画像の第2のセットを捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態87に記載の方法。
実施形態89.
立体画像の第1のセットは、3D仮想世界で2つの仮想カメラから捕捉される、実施形態83に記載の方法。
実施形態90.
立体画像の第1のセットは、実際の世界で2つのカメラから捕捉される、実施形態83に記載の方法。
実施形態91.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、立体画像の第2のセットの内側に立体画像の第1のセットを設置するプロセスを実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態92.
モジュールは、実行されると、仮想および/または拡張現実デバイスを介して立体画像の第2のセットを表示するステップをさらに含む、プロセスを実施する、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態93.
立体画像の第1のセットは、立体画像の第2のセット内のポータルの中に設置される、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態94.
立体画像の第1のセットは、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態95.
立体画像の第2のセットは、2つの他のカメラによって捕捉され、2つの他のカメラは、立体画像の第2のセットを捕捉し、2つの他のカメラは、ポータル内で立体画像の第1のセットを示す場面を視認するユーザの両眼に対応する、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態96.
立体画像の第1のセットは、立体画像の第2のセットを捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態95に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態97.
立体画像の第1のセットは、3D仮想世界で2つの仮想カメラから捕捉される、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態98.
立体画像の第1のセットは、実際の世界で2つのカメラから捕捉される、実施形態91に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態99.
方法であって、
2つの入力画像を識別するステップであって、1つの入力画像は、左眼の視点に対応し、第2の入力画像は、右眼の視点に対応する、ステップと、
2つの入力画像を最終3Dレンダリング世界内の規定場所の中に設置するステップと、を含む、方法。
実施形態100.
仮想および/または拡張現実デバイスを介して、最終3Dレンダリング世界を表示するステップをさらに含む、実施形態99に記載の方法。
実施形態101.
規定場所は、最終3Dレンダリング世界内のポータルである、実施形態99に記載の方法。
実施形態102.
2つの入力画像は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態99に記載の方法。
実施形態103.
最終3Dレンダリング世界は、2つの他のカメラによって捕捉され、2つの他のカメラは、最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で2つの入力画像を示す場面を視認するユーザの両眼に対応する、実施形態99に記載の方法。
実施形態104.
2つの入力画像は、最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態103に記載の方法。
実施形態105.
2つの入力画像は、3D仮想世界で2つの仮想カメラから捕捉される、実施形態99に記載の方法。
実施形態106.
2つの入力画像は、実際の世界で2つのカメラから捕捉される、実施形態99に記載の方法。
実施形態107.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、
2つの入力画像を識別するプロセスであって、1つの入力画像は、左眼の視点に対応し、第2の入力画像は、右目の視点に対応する、プロセスと、
2つの入力画像を最終3Dレンダリング世界内の規定場所の中に設置するプロセスと、
を実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態108.
モジュールは、実行されると、仮想および/または拡張現実デバイスを介して、最終3Dレンダリング世界を表示するステップをさらに含む、プロセスを実施する、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態109.
規定場所は、最終3Dレンダリング世界内のポータルである、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態110.
2つの入力画像は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態111.
最終3Dレンダリング世界は、2つの他のカメラによって捕捉され、2つの他のカメラは、最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で2つの入力画像を示す場面を視認するユーザの両眼に対応する、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態112.
2つの入力画像は、最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態111に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態113.
2つの入力画像は、3D仮想世界で2つの仮想カメラから捕捉される、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態114.
2つの入力画像は、実際の世界で2つのカメラから捕捉される、実施形態107に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態115.
方法であって、
3Dデータ入力を識別するステップと、
3Dデータ入力を仮想最終3Dレンダリング世界内の場所の中に設置するステップと、
を含む、方法。
実施形態116.
仮想および/または拡張現実デバイスを介して、仮想最終3Dレンダリング世界を表示するステップをさらに含む、実施形態115に記載の方法。
実施形態117.
場所は、仮想最終3Dレンダリング世界内のポータルである、実施形態115に記載の方法。
実施形態118.
3Dデータ入力は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態115に記載の方法。
実施形態119.
仮想最終3Dレンダリング世界は、2つの他のカメラによって捕捉され、2つの他のカメラは、仮想最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で3Dデータ入力を示す場面を視認するユーザの両眼に対応する、実施形態115に記載の方法。
実施形態120.
3Dデータ入力は、仮想最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態119に記載の方法。
実施形態121.
3Dデータ入力は、3D仮想世界で2つの仮想カメラから捕捉される、実施形態115に記載の方法。
実施形態122.
3Dデータ入力は、実際の世界で2つのカメラから捕捉される、実施形態115に記載の方法。
実施形態123.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、
3Dデータ入力を識別するプロセスと、
3Dデータ入力を仮想最終3Dレンダリング世界内の場所の中に設置するプロセスと、
を実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態124.
モジュールは、実行されると、仮想および/または拡張現実デバイスを介して、仮想最終3Dレンダリング世界を表示するステップをさらに含む、プロセスを実施する、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態125.
場所は、仮想最終3Dレンダリング世界内のポータルである、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態126.
3Dデータ入力は、左眼の視点から2D画像を捕捉する第1のカメラ、および右眼の視点から2D画像を捕捉する第2のカメラによって、捕捉される、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態127.
仮想最終3Dレンダリング世界は、2つの他のカメラによって捕捉され、2つの他のカメラは、仮想最終3Dレンダリング世界を捕捉し、2つの他のカメラは、ポータル内で3
Dデータ入力を示す場面を視認するユーザの両眼に対応する、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態128.
2つの入力画像は、最終3Dレンダリング世界を捕捉する2つの他のカメラと異なる場所から、2つのカメラから捕捉される、実施形態127に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態129.
3Dデータ入力は、3D仮想世界で2つの仮想カメラから捕捉される、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態130.
3Dデータ入力は、実際の世界で2つのカメラから捕捉される、実施形態123に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態131.
ビデオファイルフォーマットであって、
1つ以上のアニメーションストリームと、
データ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと、
を備える、ビデオファイルフォーマット。
実施形態132.
データ記憶は、
1つ以上の制御データと、
1つ以上の3Dモデルと、
を備える、実施形態131に記載のビデオファイルフォーマット。
実施形態132a.
データ記憶は、
1つ以上のテクスチャと、
1つ以上の材料と、
を備える、実施形態131に記載のビデオファイルフォーマット。
実施形態133.
制御データは、ビデオファイルフォーマットを読み取るアプリケーションが最初にアクセスされるときに、メモリの中に完全にロードされる、実施形態132に記載のビデオファイルフォーマット。
実施形態134.
制御ストリームは、制御データがメモリの中に完全にロードされるときに、データ記憶からの1つ以上の制御データからメモリの中に事前ロードされる、実施形態133に記載のビデオファイルフォーマット。
実施形態134a.
制御ストリームは、完全スクリプト言語である、実施形態134に記載のビデオファイルフォーマット。
実施形態135.
制御ストリームは、ビデオストリームまたはオーディオストリームよりも先のタイムラインに対応する時間が見えるように構成される、実施形態134に記載のビデオファイルフォーマット。
実施形態136.
制御ストリームは、コマンドおよび単純な論理ゲートを備え、ビデオのタイムライン内の適切な時間に再生するためのモデルおよびアニメーションの組み合わせを決定する、実施形態134に記載のビデオファイルフォーマット。
実施形態137.
ビデオのタイムライン内の適切な時間は、ビデオストリームおよびオーディオストリームの対応する時間と対応する、実施形態136に記載のビデオファイルフォーマット。
実施形態138.
制御ストリームは、キーフレームを備える、実施形態133に記載のビデオファイルフォーマット。
実施形態139.
アニメーションストリーム、ビデオストリーム、およびオーディオストリームは、1つのキーフレームの先および後が見えるように構成される、実施形態131に記載のビデオファイルフォーマット。
実施形態140.
1つ以上のアニメーションストリームは、1つ以上の3Dモデルに関連付けられるアニメーション命令に対応する、実施形態131に記載のビデオファイルフォーマット。
実施形態141.
1つ以上のアニメーションストリームのうちの各アニメーションストリームは、データ記憶の3Dモデル、テクスチャ、または材料のうちの少なくとも1つに対応する、実施形態131に記載のビデオファイルフォーマット。
実施形態142.
方法であって、
ビデオのビデオファイルを受信するステップであって、ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備える、データ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと、
を備える、ステップと、
制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップと、
データ記憶から受信される3Dオブジェクトのモデルをロードするステップと、
3Dオブジェクトを1つ以上のアニメーションストリームのうちのアニメーションストリームに添付するステップと、
を含む、方法。
実施形態143.
1つ以上のアニメーションストリームは、データ記憶内に記憶された個別の3Dモデルに対応する、実施形態142に記載の方法。
実施形態144.
1つ以上のアニメーションストリームは、ビデオに対する3Dオブジェクトの移動、配向、および位置を制御する、実施形態142に記載の方法。
実施形態145.
3Dオブジェクトのモデルは、少なくとも部分的に、ビデオストリームの時間の先を見越して、3Dオブジェクトが表示される必要があるときを予想する、制御ストリームに基づいて、ロードされる、実施形態142に記載の方法。
実施形態146.
少なくとも、モデルのサイズ、ネットワーク帯域幅、またはユーザの仮想および/または拡張現実システムの処理能力のうちの1つに基づいて、モデルをロードするためのリード時間を決定するステップをさらに含む、実施形態145に記載の方法。
実施形態147.
仮想および/または拡張現実デバイスを介して、ビデオを表示するステップをさらに含む、実施形態142に記載の方法。
実施形態148.
データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされる、実施形態142に記載の方法。
実施形態149.
制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされる、実施形態142に記載の方法。
実施形態150.
ビデオは、立体3Dビデオである、実施形態142に記載の方法。
実施形態151.
複合現実ビデオプレーヤを実装するコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
プログラムコード命令を保持するためのメモリであって、プログラムコード命令は、
ビデオのビデオファイルを受信するステップであって、ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備える、データ記憶と、
ビデオストリーム又はオーディオストリームのうちの少なくとも1つと、
を備える、ステップと、
制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップと、
データ記憶から受信される3Dオブジェクトのモデルをロードするステップと、
3Dオブジェクトを1つ以上のアニメーションストリームのうちのアニメーションストリームに添付するステップと、
を実施するためのプログラムコードを備える、
メモリと、
を備える、コンピュータシステム。
実施形態152.
1つ以上のアニメーションストリームは、データ記憶内に記憶された個別の3Dモデルに対応する、実施形態151に記載のコンピュータシステム。
実施形態153.
1つ以上のアニメーションストリームは、ビデオに対する3Dオブジェクトの移動、配向、および位置を制御する、実施形態151に記載のコンピュータシステム。
実施形態154.
3Dオブジェクトのモデルは、少なくとも部分的に、ビデオストリームの時間の先を見越して、3Dオブジェクトが表示される必要があるときを予想する、制御ストリームに基づいて、ロードされる、実施形態151に記載のコンピュータシステム。
実施形態155.
プログラムコード命令は、少なくとも、モデルのサイズ、ネットワーク帯域幅、またはユーザの仮想および/または拡張現実システムの処理能力のうちの1つに基づいて、モデルをロードするためのリード時間を決定するステップをさらに実施するためのプログラムコードを備える、実施形態154に記載のコンピュータシステム。
実施形態156.
プログラムコード命令は、仮想および/または拡張現実デバイスを介して、ビデオを表示するステップをさらに実施するためのプログラムコードを備える、実施形態151に記載のコンピュータシステム。
実施形態157.
データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされる、実施形態151に記載のコンピュータシステム。
実施形態158.
制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされる、実施形態151に記載のコンピュータシステム。
実施形態159.
ビデオは、立体3Dビデオである、実施形態151に記載のコンピュータシステム。
実施形態160.
方法であって、
ビデオのビデオファイルを受信するステップであって、ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備える、データ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと、
を備える、ステップと、
制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステップと、
ビデオのある時点でユーザに表示される質問に回答する、ユーザ相互作用を要求するステップと、
ユーザ相互作用を介して質問への回答を受信するステップと、
タイムラインコントローラに回答を通知するステップと、
回答に対応するビデオの適切な部分にスキップするステップと、
適切な部分からビデオを表示するステップと、
を含む、方法。
実施形態161.
仮想および/または拡張現実デバイスを介して、ビデオを表示するステップをさらに含む、実施形態160に記載の方法。
実施形態162.
データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされる、実施形態160に記載の方法。
実施形態163.
制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされる、実施形態160に記載の方法。
実施形態164.
ビデオは、立体3Dビデオである、実施形態160に記載の方法。
実施形態165.
制御ストリームは、少なくとも部分的にデータ記憶からのデータに基づいて、ビデオの具体的時点において質問をユーザに表示するときを制御する、実施形態160に記載の方法。
実施形態166.
ユーザ相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む、実施形態160に記載の方法。
実施形態167.
タイムラインコントローラは、ビデオストリームの位置を制御する、実施形態160に記載の方法。
実施形態168.
少なくとも部分的に受信される回答に基づいて、実行時双方向性データを伴ってビデオの状態を記憶するステップをさらに含む、実施形態160に記載の方法。
実施形態169.
ユーザに表示される質問は、ビデオの筋書きが終了し得る方法を変更する質問に対応する、実施形態160に記載の方法。
実施形態170.
複合現実ビデオプレーヤを実装するコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
プログラムコード命令を保持するためのメモリであって、プログラムコード命令は、
ビデオのビデオファイルを受信するステップであって、ビデオファイルは、
1つ以上のアニメーションストリームと、
制御データを備える、データ記憶と、
ビデオストリームまたはオーディオストリームのうちの少なくとも1つと、
を備える、ステップと、
制御データおよびタイムラインコントローラから制御ストリームを動的に生成するステ
ップと、
ビデオのある時点でユーザに表示される質問に回答する、ユーザ相互作用を要求するステップと、
ユーザ相互作用を介して質問への回答を受信するステップと、
タイムラインコントローラに回答を通知するステップと、
回答に対応するビデオの適切な部分にスキップするステップと、
適切な部分からビデオを表示するステップと、
を実施するためのプログラムコードを備える、メモリと、
を備える、コンピュータシステム。
実施形態171.
プログラムコード命令は、仮想および/または拡張現実デバイスを介して、ビデオを表示するステップをさらに実施するためのプログラムコードを備える、実施形態170に記載のコンピュータシステム。
実施形態172.
データ記憶は、ビデオファイルが受信されるときに、メモリの中に完全にロードされる、実施形態170に記載のコンピュータシステム。
実施形態173.
制御ストリームは、制御ストリームが生成されるときに、メモリの中に完全にロードされる、実施形態170に記載のコンピュータシステム。
実施形態174.
ビデオは、立体3Dビデオである、実施形態170に記載のコンピュータシステム。
実施形態175.
制御ストリームは、少なくとも部分的にデータ記憶からのデータに基づいて、ビデオの具体的時点において質問をユーザに表示するときを制御する、実施形態170に記載のコンピュータシステム。
実施形態176.
ユーザ相互作用は、頭部姿勢、視標追跡、視線、ユーザの手のジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む、実施形態170に記載のコンピュータシステム。
実施形態177.
タイムラインコントローラは、ビデオストリームの位置を制御する、実施形態170に記載のコンピュータシステム。
実施形態178.
プログラムコード命令は、少なくとも部分的に受信される回答に基づいて、実行時双方向性データを伴ってビデオの状態を記憶するステップをさらに実施するためのプログラムコードを備える、実施形態170に記載のコンピュータシステム。
実施形態179.
ユーザに表示される質問は、ビデオの筋書きが終了し得る方法を変更する質問に対応する、実施形態170に記載のコンピュータシステム。
実施形態180.
仮想および/または拡張現実環境内で環境意識3Dビデオを表示するコンピュータ実装方法であって、
3Dビデオを識別するステップと、
1つ以上のセンサから、ユーザ環境の環境情報を受信するステップであって、環境情報は、環境内のオブジェクトを識別する、ステップと、
環境から識別される1つ以上のオブジェクト上に3Dビデオの一部をレンダリングするステップと、
を含む、方法。
実施形態181.
3Dビデオは、立体3Dビデオである、実施形態180に記載の方法。
実施形態182.
環境は、ユーザの物理的環境である、実施形態180に記載の方法。
実施形態183.
1つ以上のセンサは、物理的環境の場面情報を捕捉するための1つ以上のカメラを備える、実施形態180に記載の方法。
実施形態184.
1つ以上のセンサから捕捉される場面情報を解釈するステップと、
環境から1つ以上の要素を検出および登録することによって、環境の1つ以上の要素をマッピングするステップと、
をさらに含む、実施形態180に記載の方法。
実施形態185.
3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、環境から識別される1つ以上のオブジェクト上に3Dビデオの一部を表示するようにビデオプレーヤに命令する、実施形態180に記載の方法。
実施形態185a.
制御データは、3Dビデオ内および3Dビデオの外部のオブジェクトおよび機能を制御するための制御コマンドのセットを備える、実施形態185に記載の方法。
実施形態185b.
制御コマンド(例えば、制御コマンドのセット)は、拡張可能、更新可能、または動的のうちの少なくとも1つである、実施形態185aに記載の方法。
実施形態185c.
制御コマンドは、3Dビデオの速度を変更するステップ、3Dビデオの開始時にユーザ環境内の照明を薄暗くするためのユーザプロンプトを提供するステップ、3Dビデオの開始時にピザレストランに電話をかけるステップ、または少なくとも部分的にユーザの視線に基づいて、異なるように3Dビデオを再生するステップのうちの少なくとも1つを含む、実施形態185bに記載の方法。
実施形態185d.
3Dビデオは、3D映画であって、プログラミング言語を備える、3D映画である、実施形態180に記載の方法。
実施形態186.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、
3Dビデオを識別するプロセスと、
1つ以上のセンサから、ユーザ環境の環境情報を受信するプロセスであって、環境情報は、環境内のオブジェクトを識別する、プロセスと、
環境から識別される1つ以上のオブジェクト上に3Dビデオの一部をレンダリングするプロセスと、
を実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態187.
3Dビデオは、立体3Dビデオである、実施形態186に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態188.
3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、少なくとも部分的にユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する、実施形態186に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態189.
ユーザから受信される1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む、実施形態186に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態190.
ユーザから受信される1つ以上の相互作用からの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせる、実施形態186に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態191.
仮想および/または拡張現実環境内で双方向3Dビデオを表示するコンピュータ実装方法であって、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するステップと、
ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信するステップと、
少なくともユーザによって選出される決定に基づいて、3Dビデオをレンダリングするステップと、
を含む、方法。
実施形態192.
3Dビデオは、立体3Dビデオである、実施形態191に記載の方法。
実施形態193.
3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、少なくとも部分的にユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する、実施形態191に記載の方法。
実施形態194.
ユーザから受信される1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む、実施形態191に記載の方法。
実施形態195.
ユーザから受信される1つ以上の相互作用からの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせる、実施形態191に記載の方法。
実施形態196.
仮想および/または拡張現実ディスプレイシステムであって、
仮想および/または拡張現実環境を捕捉するためのカメラと、
データを処理するためのモジュールであって、モジュールは、メモリ内に記憶され、モジュールは、実行されると、
決定ノードによって周期的に割り込まれる非実行可能データのストリームとして、3Dビデオを識別するプロセスと、
ユーザによって選出される決定に対応する入力として、ユーザから1つ以上の相互作用を受信するプロセスと、
少なくともユーザによって選出される決定に基づいて、3Dビデオをレンダリングするプロセスと、
を実施する、モジュールと、
を備える、仮想および/または拡張現実ディスプレイシステム。
実施形態197.
3Dビデオは、立体3Dビデオである、実施形態196に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態198.
3Dビデオは、制御データを備える、ビデオファイルフォーマットを有し、制御データは、少なくとも部分的にユーザによって選出される決定に基づいて、3Dビデオの一部をレンダリングするようにビデオプレーヤに命令する、実施形態196に記載の仮想および
/または拡張現実ディスプレイシステム。
実施形態199.
ユーザから受信される1つ以上の相互作用は、頭部姿勢、視標追跡、ジェスチャ、トーテムジェスチャ、またはオブジェクト認識装置のうちの少なくとも1つを含む、実施形態196に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態200.
ユーザから受信される1つ以上の相互作用からの相互作用は、3Dビデオを3Dビデオの異なる部分にジャンプさせる、実施形態196に記載の仮想および/または拡張現実ディスプレイシステム。
実施形態201.
3Dオブジェクトを表示するためのコンピュータ実装方法であって、
データベース内に3Dオブジェクトを表すグラフィカルデータを記憶するステップと、
2D不透明ペインの背後に位置する3Dオブジェクトを視認するための視認開口を備える、2D不透明ペインを表示するステップと、
第1の視点から視認開口を通して視認可能な3Dオブジェクトの第1の部分をレンダリングするステップと、
第2の視認視点から視認開口を通して視認可能な3Dオブジェクトを表示する要求を受信するステップと、
第2の視点から視認開口を通して視認可能な3Dオブジェクトの第2の部分をレンダリングするステップと、
第2の視点から3Dオブジェクトの第2の部分を表示するステップと、
を含む、方法。
実施形態202.
3Dオブジェクトを表すグラフィカルデータは、3Dオブジェクト全体の完全な表現である、実施形態201に記載の方法。
実施形態203.
3Dオブジェクトの第1の部分のレンダリングは、少なくとも部分的に、第1の視点からの3Dオブジェクトの視野に対する視野角に基づく、実施形態201に記載の方法。
実施形態204.
3Dオブジェクトの第2の部分のレンダリングは、少なくとも部分的に、第2の視点からの3Dオブジェクトの視野に対する視野角に基づく、実施形態201に記載の方法。
実施形態205.
不透明ペインはさらに、2D不透明ペインの背後に位置する複数の3Dオブジェクトを視認するための複数の視認開口を備える、実施形態201に記載の方法。
実施形態206.
複数の3Dオブジェクトのうちの各3Dオブジェクトは、個別の視認開口の背後に位置する、実施形態205に記載の方法。
実施形態207.
3Dオブジェクトは、3Dアイコンである、実施形態201に記載の方法。
実施形態208.
視認開口を備える2D不透明ペインは、複数の3Dアイコンを表示するためのアイコングリッドである、実施形態207に記載の方法。
実施形態209.
3Dオブジェクトは、ユーザが3Dオブジェクトを凝視するにつれて、視認開口を通して移動する、実施形態201に記載の方法。
実施形態210.
3Dオブジェクトは、ユーザが3Dオブジェクトに合焦していないときに、2D画像として表示される、実施形態201に記載の方法。
実施形態211.
3Dオブジェクトを表示するためのコンピュータシステムであって、
プログラムコード命令のセットを実行するためのコンピュータプロセッサと、
プログラムコード命令を保持するためのメモリであって、プログラムコード命令は、
データベース内に3Dオブジェクトを表すグラフィカルデータを記憶するステップと、
2D不透明ペインの背後に位置する3Dオブジェクトを視認するための視認開口を備える、2D不透明ペインを表示するステップと、
第1の視点から視認開口を通して視認可能な3Dオブジェクトの第1の部分をレンダリングするステップと、
第2の視認視点から視認開口を通して視認可能な3Dオブジェクトを表示する要求を受信するステップと、
第2の視点から視認開口を通して視認可能な3Dオブジェクトの第2の部分をレンダリングするステップと、
第2の視点から3Dオブジェクトの第2の部分を表示するステップと、
を実施するためのプログラムコードを備える、メモリと、
を備える、コンピュータシステム。
実施形態212.
3Dオブジェクトを表すグラフィカルデータは、3Dオブジェクト全体の完全な表現である、実施形態211に記載のコンピュータシステム。
実施形態213.
3Dオブジェクトの第1の部分のレンダリングは、少なくとも部分的に、第1の視点からの3Dオブジェクトの視野に対する視野角に基づく、実施形態211に記載のコンピュータシステム。
実施形態214.
3Dオブジェクトの第2の部分のレンダリングは、少なくとも部分的に、第2の視点からの3Dオブジェクトの視野に対する視野角に基づく、実施形態211に記載のコンピュータシステム。
実施形態215.
不透明ペインはさらに、2D不透明ペインの背後に位置する複数の3Dオブジェクトを視認するための複数の視認開口を備える、実施形態211に記載のコンピュータシステム。
実施形態216.
複数の3Dオブジェクトのうちの各3Dオブジェクトは、個別の視認開口の背後に位置する、実施形態215に記載のコンピュータシステム。
実施形態217.
3Dオブジェクトは、3Dアイコンである、実施形態211に記載のコンピュータシステム。
実施形態218.
視認開口を備える2D不透明ペインは、複数の3Dアイコンを表示するためのアイコングリッドである、実施形態217に記載のコンピュータシステム。
実施形態219.
3Dオブジェクトは、ユーザが3Dオブジェクトを凝視するにつれて、視認開口を通して移動する、実施形態211に記載のコンピュータシステム。
実施形態220.
3Dオブジェクトは、ユーザが3Dオブジェクトに合焦していないときに、2D画像として表示される、実施形態211に記載のコンピュータシステム。
実施形態221.
本明細書に開示される発明の概念のうちのいずれかによる、複合現実システム内で仮想コンテンツを生成および表示するためのシステム、方法、およびコンピュータプログラム製品。
(システムアーキテクチャ概要)
【0175】
図10は、本開示の実施形態のうちの1つ以上のものを実装するために好適な例証的コンピューティングシステム1400のブロック図である。コンピューティングシステム1400は、情報を通信するためのバス1406または他の通信機構を含み、これは、プロセッサ1407、メインメモリ1408(例えば、RAM)、静的記憶デバイス1409(例えば、ROM)、ディスクドライブ1410(例えば、磁気または光学)、通信インターフェース1414(例えば、モデムまたはEthernet(登録商標)カード)、ディスプレイ1411(例えば、CRTまたはLCD)、入力デバイス1412(例えば、キーボード)、およびカーソル制御等のサブシステムおよびデバイスを相互接続する。
【0176】
いくつかの実施形態によると、コンピューティングシステム1400は、プロセッサ1407が、メインメモリ1408内に含有される1つ以上の命令の1つ以上のシーケンスを実行することによって、具体的動作を実施する。そのような命令は、メインメモリ1408の中に、静的記憶デバイス1409またはディスクドライブ1410等の別のコンピュータ可読/使用可能媒体から読み込まれてもよい。代替実施形態では、有線回路が、本開示を実装するためのソフトウェア命令の代わりに、またはそれと組み合わせて、使用されてもよい。したがって、実施形態は、ハードウェア回路および/またはソフトウェアの任意の具体的組み合わせに限定されない。一実施形態では、用語「論理」は、本開示の全部または一部を実装するために使用される、ソフトウェアまたはハードウェアの任意の組み合わせを意味するものとする。
【0177】
用語「コンピュータ可読媒体」または「コンピュータ使用可能媒体」は、本明細書で使用されるように、実行のために、命令をプロセッサ1407に提供することに関わる、任意の媒体を指す。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む、多くの形態をとってもよい。不揮発性媒体は、例えば、ディスクドライブ1410等の光学または磁気ディスクを含む。揮発性媒体は、メインメモリ1408等の動的メモリを含む。
【0178】
一般的形態のコンピュータ可読媒体は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、RAM、PROM、EPROM、フラッシュ-EPROM、任意の他のメモリチップまたはカートリッジ、またはそこからコンピュータが読み取り得る任意の他の媒体を含む。
【0179】
一実施形態では、本開示を実践するための命令のシーケンスの実行は、単一コンピューティングシステム1400によって実施される。他の実施形態によると、通信リンク1415(例えば、LAN、PTSN、または無線ネットワーク)によって結合される、2つ以上のコンピューティングシステム1400が、相互に協調して、本開示を実践するために要求される命令のシーケンスを実施してもよい。
【0180】
コンピューティングシステム1400は、通信リンク1415を通して、通信インターフェース1414を介して、プログラム、例えば、アプリケーションコードを含む、メッセージ、データ、および命令を伝送および受信してもよい。受信されたプログラムコードは、受信されるにつれて、プロセッサ1407によって実行され、および/または後の実行のために、ディスクドライブ1410または他の不揮発性記憶装置内に記憶されてもよい。コンピューティングシステム1400は、データインターフェース1433を通して、外部記憶デバイス1431上のデータベース1432に通信してもよい。
【0181】
前述の明細書では、本開示が、その具体的実施形態を参照して説明された。しかしながら、種々の修正および変更が、本開示のより広義の精神および範囲から逸脱することなく
、本明細書に成され得ることが、明白となるであろう。例えば、上記に説明されるプロセスフローは、プロセスアクションの特定の順序を参照して説明される。しかしながら、説明されるプロセスアクションの多くの順序は、本開示の範囲または動作に影響を及ぼすことなく、変更され得る。本明細書および図面は、故に、限定的ではなく例証的意味と見なされるべきである。
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10