(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】異なる複数のヴァンテージ・ポイントから、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、バーチャル・シーンのフレームをレンダリングする方法及びシステム
(51)【国際特許分類】
G06T 19/00 20110101AFI20221214BHJP
H04N 21/431 20110101ALI20221214BHJP
H04N 21/2362 20110101ALI20221214BHJP
H04N 21/84 20110101ALI20221214BHJP
【FI】
G06T19/00 A
H04N21/431
H04N21/2362
H04N21/84
(21)【出願番号】P 2019566176
(86)(22)【出願日】2018-05-24
(86)【国際出願番号】 US2018034428
(87)【国際公開番号】W WO2018222497
(87)【国際公開日】2018-12-06
【審査請求日】2021-05-18
(32)【優先日】2017-05-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】311006227
【氏名又は名称】ベライゾン・パテント・アンド・ライセンシング・インコーポレイテッド
【氏名又は名称原語表記】VERIZON PATENT AND LICENSING INC.
(74)【代理人】
【識別番号】110000523
【氏名又は名称】アクシス国際弁理士法人
(72)【発明者】
【氏名】ウイリアム・パトリック・ゲルバシオ
(72)【発明者】
【氏名】オリバー・エス・カスタネダ
(72)【発明者】
【氏名】デニー・ブライテンフェルト
【審査官】村松 貴士
(56)【参考文献】
【文献】国際公開第2017/082076(WO,A1)
【文献】特開2005-038426(JP,A)
【文献】特開2009-116856(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 - 19/20
H04N 21/00 - 21/858
(57)【特許請求の範囲】
【請求項1】
以下を含む方法:
バーチャル・シーン・キャプチャ・システムがデータを管理する工程であって、前記データは、複数のバーチャル・エンティティを表し、前記バーチャル・エンティティは、バーチャル・シーンのバーチャル三次元(3D)空間内に含まれ、前記複数のバーチャル・エンティティは、バーチャル・オブジェクト及び前記バーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイントを含み、前記複数のバーチャル・ヴァンテージ・ポイントは、第1のバーチャル・ヴァンテージ・ポイント、及び当該第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイントを含む;
前記バーチャル・シーン・キャプチャ・システムが、前記複数のバーチャル・エンティティを表す前記管理されるデータに基づいて、バーチャル・エンティティ記述フレームを生成する工程であって、前記バーチャル・エンティティ記述フレームは、時系列で特定のポイントでの前記複数のバーチャル・エンティティ内の少なくとも1つのバーチャル・エンティティの状態を表す;並びに、
前記バーチャル・シーン・キャプチャ・システムが、前記バーチャル・エンティティ記述フレームを、複数のサーバ・サイド3Dレンダリング・エンジンに提供する工程であって、前記複数のサーバ・サイド3Dレンダリング・エンジンは、第1の3Dレンダリング・エンジン及び第2の3Dレンダリング・エンジンを含み、
前記第1の3Dレンダリング・エンジンは、前記第1のバーチャル・ヴァンテージ・ポイントに関連し、且つ、前記第1の3Dレンダリング・エンジンは、前記バーチャル・エンティティ記述フレームに基づいて、第1の表面データ・フレームをレンダリングするように構成され、ここで、前記第1の表面データ・フレームは、前記時系列で前記特定のポイントでの前記第1のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表し、及び
前記第2の3Dレンダリング・エンジンは、前記第2のバーチャル・ヴァンテージ・ポイントに関連し、且つ、前記第2の3Dレンダリング・エンジンは、前記バーチャル・エンティティ記述フレームに基づいて、第2の表面データ・フレームをレンダリングするように構成され、ここで、前記第2の表面データ・フレームは、前記時系列で前記特定のポイントでの前記第2のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表す。
【請求項2】
請求項1の方法であって、更に、以下を含む、方法:
前記バーチャル・シーン・キャプチャ・システムが、バーチャル・シーン制御システムから、前記複数のバーチャル・エンティティを表す前記管理されるデータを変更するコマンドを受信する工程;及び、
前記バーチャル・シーン・キャプチャ・システムが、前記コマンドの前記受信に応答して、前記複数のバーチャル・エンティティを表す前記管理されるデータを、前記コマンドに従って変更する工程。
【請求項3】
請求項2の方法であって、前記複数のバーチャル・エンティティを表す前記管理されるデータを、前記コマンドに従って変更することが、以下のうち少なくとも1つを含む、該方法:
追加のバーチャル・オブジェクトを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティに追加すること;
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記バーチャル・オブジェクトを、前記追加のバーチャル・オブジェクトに置換すること;
前記バーチャル・オブジェクトを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティから削除すること;及び、
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記バーチャル・オブジェクトの少なくとも1つのプロパティを変更すること。
【請求項4】
請求項2の方法であって、前記複数のバーチャル・エンティティを表す前記管理されるデータを、前記コマンドに従って変更することが、以下のうち少なくとも1つを含む、該方法:
追加のバーチャル・ヴァンテージ・ポイントを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティに追加すること;
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを変更すること;及び、
前記複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティから削除すること。
【請求項5】
請求項1の方法であって、前記複数のバーチャル・エンティティを表す前記データを管理することが以下を含む、方法:前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記バーチャル・オブジェクトに対して、物理ベースのオブジェクト行動及び人工知能ベース(AIベース)のオブジェクト行動のうち少なくとも1つを適用すること。
【請求項6】
請求項1の方法であって、以下の特徴を有する、方法:
前記時系列で前記特定のポイントでの前記複数のバーチャル・エンティティ内の前記少なくとも1つのバーチャル・エンティティの前記状態を表す前記バーチャル・エンティティ記述フレームは、キー記述フレームであり、当該キー記述フレームは、前記時系列で前記特定のポイントで、前記複数のバーチャル・エンティティにおける全てのバーチャル・エンティティの状態を表す;及び、
前記キー記述フレームは、前記時系列での他のキー記述フレームに対する前記時系列での前記キー記述フレームの位置を表すシーケンス番号に関連する。
【請求項7】
請求項1の方法であって、以下の特徴を有する、方法:
前記時系列で前記特定のポイントでの前記複数のバーチャル・エンティティ内の前記少なくとも1つのバーチャル・エンティティの前記状態を表す前記バーチャル・エンティティ記述フレームは、アップデート記述フレームであり、前記アップデート記述フレームは、以前のキー記述フレームが生成されて以来前記時系列で前記特定のポイントで変更された前記複数のバーチャル・エンティティ内のバーチャル・エンティティのみの状態を表し、ここで、前記以前のキー記述フレームは、前記時系列で以前のポイントでの前記複数のバーチャル・エンティティにおける全てのバーチャル・エンティティの状態を表す;及び、
前記アップデート記述フレームが、前記時系列で前記以前のキー記述フレームに対する、及び前記時系列で他のアップデート記述フレームに対する前記アップデート記述フレームの位置を表すシーケンス番号に関連する。
【請求項8】
請求項1の方法であって、以下の特徴を有する、方法:
前記複数のバーチャル・エンティティを表す前記管理されるデータが、前記バーチャル・シーン・キャプチャ・システムに関連する資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す色彩及び深度データへのリンクを含む;
生成され且つ前記複数のサーバ・サイド3Dレンダリング・エンジンに提供される前記バーチャル・エンティティ記述フレームが、前記資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す前記色彩及び深度データへの前記リンクを含む;並びに、
前記第1の及び第2の3Dレンダリング・エンジンが以下を含むオペレーションを実行することによって、前記第1の及び第2の表面データ・フレームをそれぞれレンダリングするように構成される:
前記バーチャル・エンティティ記述フレームを前記バーチャル・シーン・キャプチャ・システムから受信すること、及び
前記資産ストレージ・システムから、前記バーチャル・エンティティ記述フレーム内に含まれる前記リンクを使用して、前記資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す前記色彩及び深度データにアクセスすること。
【請求項9】
請求項1の方法であって、以下の特徴を有する、方法であって:
前記第1の表面データ・フレームが、前記時系列中、前記第1のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの前記表面の色彩及び深度データを表す表面データ・フレームの第1のシーケンス内に含まれる;
前記第2の表面データ・フレームが、前記時系列中、前記第2のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの前記表面の色彩及び深度データを表す表面データ・フレームの第2のシーケンス内に含まれる;
前記方法が以下の工程を更に含む、方法:
前記複数のサーバ・サイド3Dレンダリング・エンジンと通信可能に接続されるビデオ・データ・パッケージング・システムが、表面データ・フレームの前記第1の及び第2のシーケンスに基づいて、以下を生成する工程:前記複数のバーチャル・ヴァンテージ・ポイント中の前記バーチャル・ヴァンテージ・ポイント各々に関する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームを含むトランスポート・ストリーム;並びに、
前記ビデオ・データ・パッケージング・システムが、前記トランスポート・ストリームを、ストリーミングの目的で、ユーザに関連するクライアント・サイド・メディア・プレーヤ・デバイスに提供する工程、ここで、前記クライアント・サイド・メディア・プレーヤ・デバイスは、以下の動作を行うように構成される:前記トランスポート・ストリーム内に含まれる前記バーチャル・ヴァンテージ・ポイント各々に関する前記色彩ビデオ・データ・ストリーム及び前記深度ビデオ・データ・ストリームに基づいて、前記バーチャル・シーンの前記バーチャル3D空間の3D表現を生成すること、ここで、当該3D表現は、前記ユーザが選択する動的に選択可能なバーチャル・ヴァンテージ・ポイントから、前記ユーザによって体験されるものであり、且つ、前記バーチャル3D空間内の任意のバーチャル・ロケーションに対応するものである。
【請求項10】
請求項1の方法
を実行するためのコンピュータ実行可能インストラクションを含む非一時的コンピュータ可読媒
体。
【請求項11】
以下を含むバーチャル・シーン・キャプチャ・システム:
バーチャル・オブジェクトを表す色彩及び深度データを記憶する資産ストレージ・システム;
複数のサーバ・サイド三次元(3D)レンダリング・エンジンであって、前記エンジンは、各々前記資産ストレージ・システムと通信可能に接続される第1の3Dレンダリング・エンジン及び第2の3Dレンダリング・エンジンを含む、エンジン;並びに、
前記資産ストレージ・システム並びに前記第1の及び第2の3Dレンダリング・エンジンと通信可能に接続されるバーチャル・エンティティ・ステート・トラッキング・システム、ここで、前記バーチャル・エンティティ・ステート・トラッキング・システムは、以下の動作を行うように構成される:
バーチャル・シーンのバーチャル3D空間及び前記バーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイントのバーチャル3D空間内に含まれる前記バーチャル・オブジェクトを表すデータを管理すること、ここで、前記複数のバーチャル・ヴァンテージ・ポイントは、第1のバーチャル・ヴァンテージ・ポイント、及び当該第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイントを含み、及び、前記管理されるデータは、前記資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す前記色彩及び深度データへのリンクを含む前記バーチャル・オブジェクトを表す;
複数のバーチャル・エンティティを表す前記管理されるデータに基づいて、時系列で特定のポイントでの前記複数のバーチャル・エンティティ内の少なくとも1つのバーチャル・エンティティの状態を表すバーチャル・エンティティ記述フレームを生成すること;並びに、
前記バーチャル・エンティティ記述フレームを、前記第1の及び第2の3Dレンダリング・エンジンを含む前記複数のサーバ・サイド3Dレンダリング・エンジンに提供すること;
ここで、前記第1の3Dレンダリング・エンジンは、前記第1のバーチャル・ヴァンテージ・ポイントに関連し、且つ、以下の動作を行うように構成される:前記バーチャル・エンティティ記述フレーム、並びに、前記リンクの手段によって前記資産ストレージ・システムからアクセスされる前記バーチャル・オブジェクトを表す前記色彩及び深度データに基づいて、第1の表面データ・フレームをレンダリングすること、ここで、前記第1の表面データ・フレームは、前記時系列で前記特定のポイントで、前記第1のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表す;並びに、
ここで、前記第2の3Dレンダリング・エンジンは、前記第2のバーチャル・ヴァンテージ・ポイントに関連し、且つ、以下の動作を行うように構成される:前記バーチャル・エンティティ記述フレーム、並びに、前記リンクの手段によって前記資産ストレージ・システムからアクセスされる前記バーチャル・オブジェクトを表す前記色彩及び深度データに基づいて、第2の表面データ・フレームをレンダリングすること、ここで、前記第2の表面データ・フレームは、前記時系列で前記特定のポイントで、前記第2のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表す。
【請求項12】
以下を含むバーチャル・シーン・キャプチャ・システム:
以下の動作を行う少なくとも1つの物理的なコンピューティング・デバイス:
バーチャル・シーンのバーチャル三次元(3D)空間内に含まれる複数のバーチャル・エンティティを表すデータを管理すること、ここで、前記複数のバーチャル・エンティティは、バーチャル・オブジェクト及び前記バーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイントを含み、前記複数のバーチャル・ヴァンテージ・ポイントは、第1のバーチャル・ヴァンテージ・ポイント、及び当該第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイントを含む;
前記複数のバーチャル・エンティティを表す前記管理されるデータに基づいて、バーチャル・エンティティ記述フレームを生成し、前記バーチャル・エンティティ記述フレームは、時系列で特定のポイントでの前記複数のバーチャル・エンティティ内の少なくとも1つのバーチャル・エンティティの状態を表す;並びに、
前記バーチャル・エンティティ記述フレームを、第1の3Dレンダリング・エンジン及び第2の3Dレンダリング・エンジンを含む複数のサーバ・サイド3Dレンダリング・エンジンに提供すること:
ここで、前記第1の3Dレンダリング・エンジンは、前記第1のバーチャル・ヴァンテージ・ポイントに関連し、且つ、前記第1の3Dレンダリング・エンジンは、前記バーチャル・エンティティ記述フレームに基づいて、第1の表面データ・フレームをレンダリングするように構成され、ここで、前記第1の表面データ・フレームは、前記時系列で前記特定のポイントでの、前記第1のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表す、並びに、
ここで、前記第2の3Dレンダリング・エンジンは、前記第2のバーチャル・ヴァンテージ・ポイントに関連し、且つ、前記第2の3Dレンダリング・エンジンは、前記バーチャル・エンティティ記述フレームに基づいて、第2の表面データ・フレームをレンダリングするように構成され、ここで、前記第2の表面データ・フレームは、前記時系列で前記特定のポイントでの、前記第2のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの表面の色彩及び深度データを表す。
【請求項13】
請求項12のシステムであって、ここで、前記少なくとも1つの物理的なコンピューティング・デバイスが更に以下の動作を行う、システム:
バーチャル・シーン制御システムからコマンドを受信して、前記複数のバーチャル・エンティティを表す前記管理されるデータを変更すること;及び、
前記コマンドの受信に応答して、前記複数のバーチャル・エンティティを表す前記管理されるデータを、前記コマンドに従って変更すること。
【請求項14】
請求項13のシステムであって、前記複数のバーチャル・エンティティを表す前記管理されるデータを前記コマンドに従って変更することが、以下のうち少なくとも1つによって実行される、システム:
追加のバーチャル・オブジェクトを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティに追加すること;
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記バーチャル・オブジェクトを、前記追加のバーチャル・オブジェクトに置換すること;
前記バーチャル・オブジェクトを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティから削除すること;及び、
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記バーチャル・オブジェクトの少なくとも1つのプロパティを変更すること。
【請求項15】
請求項13のシステムであって、前記複数のバーチャル・エンティティを表す前記管理されるデータを前記コマンドに従って変更することが、以下のうち少なくとも1つによって実行される、システム:
追加のバーチャル・ヴァンテージ・ポイントを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティに追加すること;
前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティ内に含まれる前記複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを変更すること;及び、
前記複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記複数のバーチャル・エンティティから削除すること。
【請求項16】
請求項12のシステムであって、前記少なくとも1つの物理的なコンピューティング・デバイスが、前記複数のバーチャル・エンティティを表す前記データを、前記バーチャル・シーンの前記バーチャル3D空間内に含まれる前記バーチャル・オブジェクトに対して、物理ベースのオブジェクト行動及び人工知能ベース(AIベース)のオブジェクト行動のうち少なくとも1つを適用することによって管理する、システム。
【請求項17】
請求項12のシステムであって、以下の特徴を含む、システム:
前記時系列で前記特定のポイントでの前記複数のバーチャル・エンティティ内の前記少なくとも1つのバーチャル・エンティティの前記状態を表す前記バーチャル・エンティティ記述フレームは、キー記述フレームであり、当該キー記述フレームは、前記時系列で前記特定のポイントでの前記複数のバーチャル・エンティティにおける全てのバーチャル・エンティティの状態を表す;及び、
前記キー記述フレームは、前記時系列での他のキー記述フレームに対する、前記時系列での前記キー記述フレームの位置を表すシーケンス番号に関連する。
【請求項18】
請求項12のシステムであって、以下の特徴を含む、システム:
前記時系列で前記特定のポイントでの前記複数のバーチャル・エンティティ内の前記少なくとも1つのバーチャル・エンティティの前記状態を表す前記バーチャル・エンティティ記述フレームは、アップデート記述フレームであり、前記アップデート記述フレームは、以前のキー記述フレームが生成されて以来前記時系列で前記特定のポイントでの変更された複数のバーチャル・エンティティ内のバーチャル・エンティティのみの状態を表す、ここで、前記以前のキー記述フレームは、前記時系列で以前のポイントでの前記複数のバーチャル・エンティティにおける全てのバーチャル・エンティティの状態を表す;及び、
前記アップデート記述フレームが、前記時系列で前記以前のキー記述フレームに対する、及び前記時系列で他のアップデート記述フレームに対する前記アップデート記述フレームの位置を表すシーケンス番号に関連する。
【請求項19】
請求項12のシステムであって、以下の特徴を含む、システム:
前記複数のバーチャル・エンティティを表す前記管理されるデータが、前記バーチャル・シーン・キャプチャ・システムに関連する資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す色彩及び深度データへのリンクを含む;
生成され且つ前記複数のサーバ・サイド3Dレンダリング・エンジンに提供される前記バーチャル・エンティティ記述フレームが、前記資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す前記色彩及び深度データへの前記リンクを含む;並びに、
前記第1の及び第2の3Dレンダリング・エンジンが、以下を含むオペレーションを実行することによって、前記第1の及び第2の表面データ・フレームをそれぞれレンダリングするように構成される:
前記バーチャル・エンティティ記述フレームを前記バーチャル・シーン・キャプチャ・システムから受信すること;並びに、
前記資産ストレージ・システムから、前記バーチャル・エンティティ記述フレーム内に含まれる前記リンクを使用して、前記資産ストレージ・システムに記憶される前記バーチャル・オブジェクトを表す前記色彩及び深度データにアクセスすること。
【請求項20】
請求項12のシステムであって、以下の特徴を含む、システム:
前記第1の表面データ・フレームが、前記時系列中、前記第1のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの前記表面の色彩及び深度データを表す表面データ・フレームの第1のシーケンス内に含まれる;
前記第2の表面データ・フレームが、前記時系列中、前記第2のバーチャル・ヴァンテージ・ポイントから見える前記バーチャル・オブジェクトの前記表面の色彩及び深度データを表す表面データ・フレームの第2のシーケンス内に含まれる;並びに、
前記複数のサーバ・サイド3Dレンダリング・エンジンが、以下の動作を行うビデオ・データ・パッケージング・システムと通信可能に接続される:
表面データ・フレームの前記第1の及び第2のシーケンスに基づいて、トランスポート・ストリームを生成すること、ここで、前記トランスポート・ストリームは、前記複数のバーチャル・ヴァンテージ・ポイント中の前記バーチャル・ヴァンテージ・ポイント各々に関する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームを含む;並びに、
前記トランスポート・ストリームを、ストリーミングの目的で、ユーザに関連するクライアント・サイド・メディア・プレーヤ・デバイスに提供すること、ここで、前記クライアント・サイド・メディア・プレーヤ・デバイスは、以下の動作を行うように構成される:前記トランスポート・ストリーム内に含まれる前記バーチャル・ヴァンテージ・ポイント各々に関する前記色彩ビデオ・データ・ストリーム及び前記深度ビデオ・データ・ストリームに基づいて、前記バーチャル・シーンの前記バーチャル3D空間の3D表現を生成すること、ここで、当該3D表現は、前記ユーザが選択する動的に選択可能なバーチャル・ヴァンテージ・ポイントから、前記ユーザによって体験されるものであり、且つ、前記バーチャル3D空間内の任意のバーチャル・ロケーションに対応するものである。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2017年5月31日に出願され、「METHODS AND SYSTEMS FOR RENDERING FRAMES OF A VIRTUAL SCENE FROM DIFFERENT VANTAGE POINTS BASED ON A VIRTUAL ENTITY DESCRIPTION FRAME OF THE VIRTUAL SCENE」と題され、その全体が参照により本明細書に組み込まれている米国特許出願第15/610,572号に対する優先権を主張する。
【背景技術】
【0002】
ユーザは、バーチャル三次元(「3D」)空間(例えば、バーチャル、現実世界、又は、混合のリアリティ・シーンに基づいて)を体験することができ、様々な理由及び様々なタイプの応用に関連している。例えば、ユーザがバーチャル3D空間を体験する際に、その目的として、娯楽目的、教育目的、長距離通信目的、他人に置き換えたような体験/旅行目的が挙げられ、又は、他の様々な目的及び/若しくは応用に関連して体験することができる。
【0003】
バーチャル・リアリティは、ユーザがバーチャル3D空間を体験する応用の一例である。バーチャル・リアリティ・メディア・コンテンツは、ユーザ(即ち、バーチャル・リアリティ・メディア・コンテンツの閲覧者)を相互的なバーチャル・リアリティ世界に没入させるために使用することができ、ユーザーは、同時に、没入型バーチャル・リアリティ世界に提示される任意の様々な物に注意を向けることによって、当該世界を体験することができる。例えば、バーチャル・リアリティ・メディア・コンテンツを提示する最中の任意の時間において、バーチャル・リアリティ・メディア・コンテンツを体験するユーザは、任意の方向に没入型バーチャル・リアリティ世界を見渡すことができ、ユーザにある感覚をもたらし、それは、ユーザーが、没入型バーチャル・リアリティ世界内の特定の閲覧ポイント又はヴァンテージ・ポイントから没入型バーチャル・リアリティ世界に実在し体験しているという感覚をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【0004】
幾つかの例において、ユーザは、バーチャル3D空間内の任意のバーチャル・ヴァンテージ(Vantage)・ポイントから、バーチャル3D空間(例えば、没入型バーチャル・リアリティ世界)を体験することができるような融通性を望む可能性がある。換言すれば、ユーザは、以下の点を望む可能性がある:バーチャル3D空間内の異なるロケーションを意のままに動き回って、ユーザが動的に選択することができるバーチャル3D空間内の任意のバーチャル・ヴァンテージ・ポイントのどこからでもバーチャル3D空間を体験すること(例えば、バーチャル3D空間等内で提示されるオブジェクトを閲覧するために)。ユーザがこのように自由に異なるロケーションへ動けるようにするため、従来のメディア・プレーヤ・デバイスは、ユーザがバーチャル3D空間を体験する時よりも前に、典型的にはバーチャル3D空間(例えば、3D空間等内のオブジェクトの3Dモデル)を表すデータを受信する。例えば、従来のメディア・プレーヤ・デバイスは、バーチャル3D空間に関連するデータ(例えば、3Dモデル、テクスチャ等)を、ローカル・ストレージ設備(例えば、メディア・プレーヤ・デバイスのハード・ドライブ)上に、ダウンロード及び記憶することができる。又は、従来のメディア・プレーヤ・デバイスは、メディア・プレーヤ・デバイスにとってアクセス可能な物理的なローカル媒体(例えば、物理的なディスク)からのバーチャル3D空間に関連するデータにアクセスすることができる。しかし、残念ながら、こうしたバーチャル3D空間を体験する前に、更なるセットアップがユーザにとって必要となる可能性がある(例えば、バーチャル3D空間を表すデータ・コンテンツの、メモリへのダウンロード、インストール、ローディング等に関連するセットアップ)。そして、こうした例におけるバーチャル3D空間において、コンテンツをライブ形式又はリアルタイムでのアップデートを反映させることは困難となる可能性がある。この理由として、ユーザ・エクスペリエンスの前に、メディア・プレーヤ・デバイスが受信すべき多くのデータが必要となるからである。
【0005】
更には、仮に、バーチャル3D空間を表す全てのデータを、メディア・プレーヤ・デバイスにリアルタイムで送信したとしても、バーチャル3D空間内に含まれるオブジェクトの個々の3Dモデルを表すデータは、バーチャル3D空間内の任意のバーチャル・ヴァンテージ・ポイントからバーチャル3D空間をレンダリングすることを可能にするかもしれない。しかし、質を犠牲にすることなく、更に巨大なバーチャル3D空間又は更なるオブジェクトを含むバーチャル3D空間を提示できるようなスケーラビリティを有することはできない可能性がある。例えば、メディア・プレーヤ・デバイスに送信されるデータが、バーチャル3D空間内に含まれる各オブジェクトに関する個別にレンダリング可能な3Dモデルを表す場合、著しい量の追加データ(例えば、約2倍の量のデータ)を、バーチャル3D空間を表すのに必要となる可能性がある(例えば、10オブジェクト、例えば、5オブジェクトを有するバーチャル3D空間を表すのに必要な量と比べて)。従って、仮に、5オブジェクトのモデルを含むバーチャル3D空間を表すデータを、メディア・プレーヤ・デバイスにリアルタイムで送信できたとしても、こうしたタイプの送信は、バーチャル3D空間内に10オブジェクト以上、又は100オブジェクト以上を同じように表すようにスケール調整することはできない可能性がある。
【図面の簡単な説明】
【0006】
添付図面は様々な実施形態を示し、本明細書の一部である。示した実施形態は例示にすぎず、本開示の範囲を限定するものではない。図面を通して、同一又は類似の参照番号は、同一又は類似の要素を示す。
【0007】
【
図1】本明細書に記載の原理に従って、バーチャル・シーンのフレームを、異なるヴァンテージ・ポイントから、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいてレンダリングするための例示的なバーチャル・シーン・キャプチャ・システムを示す。
【0008】
【
図2】
図1のバーチャル・シーン・キャプチャ・システムが、本明細書に記載の原理に従って、バーチャル・シーンのフレームを、異なるヴァンテージ・ポイントから、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいてレンダリングすることを促進する例示的な構成を示す。
【0009】
【
図3】本明細書に記載の原理に従って、複数のバーチャル・エンティティを含む例示的なバーチャル・シーンを示す。
【0010】
【
図4】本明細書に記載の原理に従って、
図3のバーチャル・シーンに対して行うことができる例示的な変更を示す。
【0011】
【
図5】本明細書に記載の原理に従って、
図1のバーチャル・シーン・キャプチャ・システムが生成することができる例示的なバーチャル・エンティティ記述フレームを示す。
【0012】
【
図6】例示的な三次元(「3D」)レンダリング・エンジンを示し、当該エンジンは、本明細書に記載の原理に従って、例示的なバーチャル・エンティティ記述フレームに基づいて、表面データ・フレームをレンダリングし、当該表面データ・フレームは、異なるヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表す。
【0013】
【
図7】本明細書に記載の原理に従った、異なるヴァンテージ・ポイントから見える例示的なバーチャル・オブジェクトの表面の色彩及び深度データを表す表面データ・フレームの複数の例示的なフレーム・シーケンスを示す。
【0014】
【
図8】例示的な構成を示し、ここで、例示的なバーチャル・リアリティ・メディア・コンテンツ提供システムは、本明細書に記載の原理に従って、バーチャル・リアリティ・メディア・コンテンツを生成し、当該コンテンツは、ネットワークの手段により、例示的なクライアント・サイド・メディア・プレーヤ・デバイスに提供され、当該デバイスは、バーチャル・シーンを体験するユーザによって使用される。
【0015】
【
図9】本明細書に記載の原理に従った様々な例示的なタイプのメディア・プレーヤ・デバイスを示し、当該デバイスは、バーチャル・リアリティ・メディア・コンテンツを体験するユーザによって使用することができる。
【0016】
【
図10】本明細書に記載の原理に従った例示的なバーチャル・リアリティ体験を示し、ここで、ユーザには、例示的なバーチャル・リアリティ・メディア・コンテンツが提示され、当該コンテンツは、バーチャル・シーンを表し、当該シーンは、動的に選択可能なバーチャル・ヴァンテージ・ポイントから体験し、そして、当該ポイントは、バーチャル・シーンに関連する例示的な任意のバーチャル・ロケーションに対応する。
【0017】
【
図11】本明細書に記載の原理に従って、バーチャル・シーンのフレームを、異なるヴァンテージ・ポイントから、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいてレンダリングする例示的な方法を示す。
【0018】
【
図12】本明細書に記載の原理に従った例示的なコンピューティング・デバイスを示す。
【発明を実施するための形態】
【0019】
バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングするための方法及びシステムを、本明細書にて説明する。例えば、バーチャル・シーン・キャプチャ・システムは、バーチャル・シーンのバーチャル三次元(「3D」)空間内に含まれる複数のバーチャル・エンティティを表すデータを管理することができる。複数のバーチャル・エンティティは、以下を含むことができる:バーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイント(例えば、バーチャル・ロケーション、角度、ビューポイント等であって、バーチャル3D空間内に含まれる1以上のバーチャル・オブジェクトを閲覧する際のもの)とともに、1以上のバーチャル・オブジェクト。特に、複数のバーチャル・ヴァンテージ・ポイントは、以下を含むことができる:少なくとも、第1のバーチャル・ヴァンテージ・ポイント、及び第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイント。
【0020】
複数のバーチャル・エンティティを表す管理されるデータに基づいて、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを生成することができ、バーチャル・エンティティ記述フレームは、時系列で特定のポイントでの複数のバーチャル・エンティティ内の少なくとも1つのバーチャル・エンティティの状態を表す。例えば、バーチャル・エンティティ記述フレームは、キー記述フレームであってもよく、キー記述フレームは、複数のバーチャル・エンティティ内に含まれる全てのバーチャル・エンティティ(即ち、バーチャル・オブジェクト及びバーチャル・ヴァンテージ・ポイント)に関するそれぞれの状態情報を表したものであってもよい。又は、バーチャル・エンティティ記述フレームは、アップデート記述フレームであってもよく、アップデート記述フレームは、以前のキー記述フレームが生成されて以来変更された複数のバーチャル・エンティティ内のバーチャル・エンティティのみの状態情報を表したものであってもよい。
【0021】
バーチャル・エンティティ記述フレームが生成されると、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを、複数のサーバ・サイド3Dレンダリング・エンジンに提供してもよく、サーバ・サイド3Dレンダリング・エンジンは、コンテンツ・プロバイダ・システムに関連し、コンテンツ・プロバイダ・システムは、3Dレンダリング・エンジンに対して、バーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームのレンダリングを行うことを促進するためのものであってもよい。例えば、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを、第1の3Dレンダリング・エンジンに提供することができ、第1の3Dレンダリング・エンジンは、第1のバーチャル・ヴァンテージ・ポイントに関連することができ、バーチャル・エンティティ記述フレームに基づいて、第1の表面データ・フレームをレンダリングするように構成されてもよい。ここで、第1の表面データ・フレームは、時系列で特定のポイントでの、第1のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表すことができる。同様に、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを、第2の3Dレンダリング・エンジンに提供することができ、第2の3Dレンダリング・エンジンは、第2のバーチャル・ヴァンテージ・ポイントに関連することができ、バーチャル・エンティティ記述フレームにも基づいて、第2の表面データ・フレームをレンダリングするように構成されてもよい。ここで、第2の表面データ・フレームは、時系列で特定のポイントでの第2のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表すことができる。
【0022】
バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングするための本明細書に記載のシステム及び方法は、様々な長所及び利点を提供することができる。例えば、本明細書に記載のシステム及び方法は、ユーザに対して、バーチャル・シーンのバーチャル3D空間を体験することを促進することができる。本明細書で使用するが、バーチャル・シーンの「バーチャル3D空間」は、以下を指してもよい:ユーザが現実世界を体験するのと同様の方法でユーザが体験することができる環境又は世界(例えば、没入型バーチャル・リアリティ世界)のレンダリング(例えば、完全仮想化レンダリング(wholly virtualized rendering))。例えば、バーチャル・シーンを体験するユーザは、バーチャル3D空間内を動き回ることが可能となる可能性があり、並びに、バーチャル空間に含まれるオブジェクトを見る、及び/又は、これらと相互作用することができる可能性がある。幾つかの例において、バーチャル3D空間は、完全に視覚化されてもよく(例えば、コンピュータによって生成されてもよく)、及び、現実世界のシーンがレンダリングされているのと同様の方法で、レンダリングされてもよい。他の例において、バーチャル3D空間は、現実世界シーンからキャプチャされる1以上の現実世界オブジェクトに少なくとも部分的に基づいてもよい。
【0023】
いずれのケースにおいても、本明細書に記載のシステム及び方法は、ユーザに、バーチャル・シーンのバーチャル3D空間を体験することを促進することができ、当該バーチャル・シーンは、プロバイダ・システムから、全体にわたってストリーミングされてもよい。その結果、バーチャル3D空間を表すデータ、及び当該データ内に含まれるバーチャル・エンティティは、メディア・プレーヤ・デバイス上に、メディア・プレーヤ・デバイスのユーザによるバーチャル3D空間の体験の前に予めロードしたり、又は記憶したりする必要がない。例えば、メディア・プレーヤ・デバイスがバーチャル・シーンを提示するために必要な全てのデータは、メディア・プレーヤ・デバイスにストリーミングされてもよく(例えば、特定の実施においてリアルタイムで)、その結果、バーチャル・シーン・コンテンツを表すデータは、バーチャル・シーンをユーザに提示する前に、ダウンロードしたり、記憶したり、又はアクセスしたり(例えば、ローカルの物理的なディスクの手段によって)する必要がない。
【0024】
更には、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングするための本明細書に記載のシステム及び方法は、バーチャル・シーンを表すバーチャル・リアリティ・メディア・コンテンツをメディア・プレーヤ・デバイスに提供することを促進することができ、当該促進の方法として、バーチャル・リアリティ・メディア・コンテンツは、バーチャル3D空間内の任意のバーチャル・ロケーション及び動的に選択されるバーチャル・ヴァンテージ・ポイントからレンダリングされてもよい。具体的には、より詳細に後述するが、バーチャル・シーンのフレームを、異なるヴァンテージ・ポイント(例えば、バーチャル・ヴァンテージ・ポイント)からレンダリングすることによって、バーチャル・シーン・キャプチャ・システムは、データ・パイプライン内にフレームを含むことができ、当該フレームは、メディア・プレーヤ・デバイスに対して以下を可能にするように構成される:3次元において、任意の且つ動的に選択可能なバーチャル・ヴァンテージ・ポイントからのバーチャル3D空間を、複数の2次元(「2D」)ビデオ・ストリームに基づいて、レンダリングすること、ここで、2Dビデオ・ストリームは、データ・パイプラインに含まれ、例えば、相対的に固定されるヴァンテージ・ポイント(例えば、バーチャル・ヴァンテージ・ポイント)に関連してもよい。結果として、メディア・プレーヤ・デバイスは、バーチャル3D空間を表すデータを搭載する2Dビデオ・ストリームに基づいて(バーチャル3D空間に関連する可変で潜在的に無限の数の3Dモデルを表す3Dモデル・データに基づくのではない)、ユーザに対して、バーチャル3D空間内を自由に動き回るがごとく、バーチャル3D空間を体験することを可能にすることができる。例えば、バーチャル3D空間内に含まれる全てのバーチャル・オブジェクトの3Dモデルを表すデータを提供するのではなく、データ・パイプラインは、バーチャル・ヴァンテージ・ポイントからのバーチャル3D空間内の全てのバーチャル・オブジェクトを表す2Dビデオ・データ(例えば、色彩及び深度データ)を提供してもよい。かくして、無限の数のオブジェクトをバーチャル・シーンのレンダリングの際に提示することができ、この際に、メディア・プレーヤ・デバイスに対して、追加データを受信させたりすることがなく、又は、追加のレンダリング作業(例えば、わずか1つ又は2つのオブジェクトを伴うバーチャル・シーンをレンダリングするのに必要な作業)を実施させたりすることがない。
【0025】
更には、メディア・プレーヤ・デバイスに既に記憶され、プレロードされるコンテンツに依拠することなく、バーチャル・シーンを表す全てのデータを管理し、そして、メディア・プレーヤ・デバイスに提供することによって、本明細書に記載のシステム及び方法は、以下のことを可能にすることができる:メディア・プレーヤ・デバイスに記憶され、プレロードされるデータを変更する必要に迫られることなく、プロバイダが、バーチャル3D空間を生成又は変更すること(例えば、リアルタイムで)。結果として、バーチャル・シーンの生成を担当するコンテンツ・クリエータ又はバーチャル・シーンを体験する1以上のユーザは、コマンドを、バーチャル・シーン・キャプチャ・システムに提供し、バーチャル・シーンの態様を変更することができ(例えば、バーチャル・オブジェクトの変更、置換、又は削除等)、そして、こうした変更は、瞬時に、ユーザにストリーミングされているデータに反映することができる。その結果、バーチャル・シーンがリアルタイムで、又は、ほぼリアルタイムで変更される。
【0026】
同様に、コンピュータ的に高度な(例えば、特定のメディア・プレーヤ・デバイスに関して桁違いに高度な)様々なオペレーションは、バーチャル・シーン・キャプチャ・システムに関連する強力なコンピューティング・リソースによって実行することができる。コンピューティング・リソースは、バーチャル・リアリティ・メディア・プロバイダによって操作されてもよく、そして、例えば、ユーザに関連するメディア・プレーヤ・デバイスよりもさらに強力なコンピューティング・リソース(例えば、巨大サーバ等)に関連してもよい。例えば、バーチャル・シーン・キャプチャ・システムは、コンピュータ的に高度なバーチャル・シーン内のオブジェクトに関する物理的オペレーション、オブジェクトに関する人工知能オペレーション等を実行してもよい。こうしたオペレーションは、プロバイダレベルで実行されるため、ユーザが操作するメディア・プレーヤ・デバイスは、特に、強力なコンピューティング・リソースに関連する必要性が無くてもよく、このことは、ユーザ・デバイス・リソースを保護し、ユーザに利便性をもたらし(例えば、携行性、冷却等の観点から)、そして、様々なタイプのメディア・プレーヤ・デバイス(例えば、様々な形態要素、様々な価格ポイント等に関して)がユーザにバーチャル・シーンを体験させることを可能にする。
【0027】
本明細書に記載の特定の例は、適切な数の要素を取りうる複数形態の観点から、いくつかの具体的な要素について言及するものの、以下の点を理解されたい:当該いくつかの具体的な要素に従った同一の原理は、複数として1以上の他の要素にも適用できる(それぞれ複数の要素内の全ての要素にまで、及びこれを含む形で)。例えば、説明の便宜上及び明確性の観点から、いつかの要素は序数形容詞で指定してもよい(例えば、「第1」「第2」等)(例えば、第1の及び第2のバーチャル・ヴァンテージ・ポイント、第1の及び第2の3Dレンダリング・エンジン、第1の及び第2の表面データ・フレーム等)。しかし、図に概して示すが、本明細書に記載の原理は、複数の要素中に含まれる多くの要素又は全ての要素に当てはめることができる(例えば、単なる第1の及び第2の要素という記載とは対照的に)。従って、後述するが、特定の実施は、以下を含むことができる:多くの(即ち、3以上の)3Dレンダリング・エンジンであって、当該3Dレンダリング・エンジンは、多くのバーチャル・ヴァンテージ・ポイントのうち1つの観点に関連するそれぞれの多くの表面データ・フレームをレンダリングする等。
【0028】
様々な実施形態について、図面に言及しながら、以下、更に説明する。開示の方法及びシステムは、上述した1以上の利点を提供することができ、並びに/又は、様々な追加の及び/若しくは代替の利点を提供することができ、これらについては、本明細書で明らかになるであろう。
【0029】
図1は、例示的なバーチャル・シーン・キャプチャ・システム100(「システム100」)を示し、当該システムは、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングするためのシステムである。示しているが、システム100は、限定されるものではないが、以下を含むことができる:バーチャル・エンティティ・ステート・トラッキング設備102、バーチャル・エンティティ記述フレーム設備104、及びストレージ設備106(互いに選択可能に且つ通信可能に接続される)。以下の点を理解されたい:設備102~106は、
図1では別個の設備として示されているが、設備102~106は、より少ない数の設備(例えば、単一の設備に)に結合されてもよく、又は、特定の実施に寄与することができるより数多くの設備に分割されてもよい。幾つかの例において、設備102~106各々は、特定の実施に寄与することができるものとして、複数のデバイス間、及び/又は複数のロケーション間に分散してもよい。設備102~106各々については、以下詳細に説明する。
【0030】
バーチャル・エンティティ・ステート・トラッキング設備102は、以下を含むことができる:1以上の物理的なコンピューティング・デバイス(例えば、ハードウェア及び/又はソフトウェアコンポーネント(例えば、プロセッサ、メモリ、通信インターフェース、プロセッサによって実行するためにメモリに記憶されるインストラクション等))。これらは、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングすることに関連する様々なオペレーションを実行することができる。例えば、1以上の物理的なコンピューティング・デバイスを使用して、バーチャル・エンティティ・ステート・トラッキング設備102は、バーチャル・シーンのバーチャル3D空間内に含まれる複数のバーチャル・エンティティを表すデータを管理することができる。バーチャル・エンティティ・ステート・トラッキング設備102は、データを任意の適切な方法で管理することができる。例えば、バーチャル・エンティティ・ステート・トラッキング設備102は、バーチャル・シーンの複数のバーチャル・エンティティを表すデータを、受信し、トラッキングし、生成し、分析し、オーガナイズし、及び/又は処理することができる。後で更に詳述するが、バーチャル・エンティティ・ステート・トラッキング設備102も、コマンドを受信して、管理されるデータを変更することができる(例えば、1以上のバーチャル・エンティティを変更すること(例えば、バーチャル・エンティティを追加、削除、置換、移動、回転、拡大、又は変更することによって))。そして、バーチャル・エンティティ・ステート・トラッキング設備102は、管理されるデータを変更することによってコマンドを実行することができる。バーチャル・エンティティ・ステート・トラッキング設備102は、更に、ストレージ設備106と相互運用して、各バーチャル・エンティティを表すデータをストレージ設備106に記憶することによって、データを管理することができる。
【0031】
本明細書で使用するが、「バーチャル・エンティティ」は、バーチャル・シーン及び/又はバーチャル3D空間に関連することができる任意のバーチャル・アイテムを指してもよい。例えば、バーチャル・エンティティ・ステート・トラッキング設備102がデータを管理する対象となるバーチャル・エンティティの中で、バーチャル・シーンのバーチャル3D空間は、以下を含むことができる:バーチャル・エンティティ(例えば、1以上のバーチャル・オブジェクト、バーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイント)(例えば、様々な異なる視点からバーチャル3D空間をキャプチャするためにバーチャル3D空間に関して特定の方法で位置付け及び角度付けがなされるバーチャル・キャプチャ・デバイス)、及び/又は、特定の実施に寄与することができる任意の他のバーチャル・エンティティ。特に、後で説明及び図示するが、1つの例示的なバーチャル3D空間は、以下を含むことができる:第1のバーチャル・ヴァンテージ・ポイント、及び第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイントを含む複数のバーチャル・ヴァンテージ・ポイントに囲まれたバーチャル・オブジェクト。
【0032】
バーチャル・エンティティ記述フレーム設備104は、以下を含むことができる:1以上の物理的なコンピューティング・コンポーネント(例えば、ハードウェア及び/又はソフトウェアコンポーネントであって、バーチャル・エンティティ・ステート・トラッキング設備102の物とは別個の物、又は、バーチャル・エンティティ・ステート・トラッキング設備102の物と共有する物)、これらは、様々なオペレーションを実行することができ、当該オペレーションは、第1の及び第2のバーチャル・ヴァンテージ・ポイントを含む複数のヴァンテージ・ポイントから、バーチャル・シーンのフレームをレンダリングするために使用されるバーチャル・エンティティ記述フレームを生成及び/又は提供することに関連することができる。例えば、1以上の物理的なコンピューティング・デバイスを使用して、バーチャル・エンティティ記述フレーム設備104は、(例えば、バーチャル・エンティティ・ステート・トラッキング設備102が管理する複数のバーチャル・エンティティを表すデータに基づいて)バーチャル・エンティティ記述フレームを生成することができ、当該フレームは、複数のバーチャル・エンティティにおいて、時系列で特定のポイント(例えば、特定の瞬間リアルタイムで、リアルタイムに無関係なバーチャル・タイムライン上の瞬間を表す特定のポイント等)での少なくとも1つのバーチャル・エンティティ(例えば、そして、幾つかの例において、全てのバーチャル・エンティティ)の状態を表す。
【0033】
本明細書で使用するが、「バーチャル・エンティティ記述フレーム」は、バーチャル・シーンのバーチャル3D空間内に含まれる1以上のバーチャル・エンティティの状態を記述するデータセットを指してもよい(例えば、言語(例えば、Java Script Object Notation(「JSON」)等)で表現されるオブジェクト記述データを含む)。例えば、バーチャル・エンティティ記述フレームは、以下を含むことができる:時系列で特定のポイントでのバーチャル3D空間内に含まれる複数のバーチャル・エンティティ各々を記述するデータ。例えば、バーチャル・エンティティ記述フレームは、以下を表すデータを含むことができる:バーチャル3D空間に関連するグローバル座標系の観点からの各バーチャル・エンティティが位置するロケーション、各バーチャル・エンティティが位置する角度及び配向、各バーチャル・エンティティの相対的サイズ、各バーチャル・エンティティに関する1以上の移動ベクトル、各バーチャル・エンティティの様々な表面に関する色彩及び/若しくはテクスチャ、並びに/又は、特定の実施に寄与することができる時系列で特定のポイントでの特定のバーチャル・エンティティを記述するために使用することができる任意の他の状態データ。例示的なバーチャル・エンティティ記述フレームについては、後で更に詳細に説明する。
【0034】
いったん、バーチャル・エンティティ記述フレーム設備104がバーチャル・エンティティ記述フレームを生成すると、バーチャル・エンティティ記述フレーム設備104は、バーチャル・エンティティ記述フレームを、コンテンツ・プロバイダ・システムに関連する複数のサーバ・サイド3Dレンダリング・エンジンに提供することができる。本明細書で使用するが、「サーバ・サイド」は、サーバとクライアントとの間のトランザクション(例えば、コンテンツ・プロバイダ・システムがコンテンツ(例えば、バーチャル・リアリティ・メディア・コンテンツ)をエンド・ユーザが使用するクライアント・デバイスに提供するトランザクション)のサーバ・サイド(例えば、プロバイダ・サイド)を指してもよい。例えば、より詳細に後述するが、バーチャル・リアリティ・メディア・コンテンツ提供システムは、バーチャル・リアリティ・メディア・コンテンツを、ユーザに関連するメディア・プレーヤ・デバイスに提供することができる。かくして、サーバ・サイド・システム及びコンポーネントは、あるシステム及びコンポーネントを指すことができ、当該システム及びコンポーネントは、コンテンツ・プロバイダ・システムに関連することができ(例えば、内包される、実施される、相互運用される等)、当該コンテンツ・プロバイダ・システムは、データ(例えば、バーチャル・リアリティ・メディア・コンテンツ)を、メディア・プレーヤ・デバイスに提供することできる(例えば、ネットワークの手段により)。一方で、「クライアント・サイド」デバイスは、クライアント・デバイス(例えば、メディア・プレーヤ・デバイス)に関連することができ、クライアント・デバイスは、ネットワークの他方に位置するユーザによって使用することができ、「クライアント・サイド」デバイスは、以下を含むことができる:クライアント・デバイスがデータをコンテンツ・プロバイダ・システムから受信することを促進するデバイス(例えば、メディア・プレーヤ・デバイス、及び/又は、ネットワークのユーザ・サイド上でユーザが操作する他のコンピュータ・コンポーネント)。
【0035】
従って、3Dレンダリング・エンジンは、ネットワークのサーバ・サイド(即ち、システム100及び/又はコンテンツ・プロバイダ・システムの他の要素に関連する)上で実装されてもよく、当該実装は、システム100のハードウェア及び/又はソフトウェアのリソースと統合されてもよい、又はこれらとは別個で且つこれらと通信可能に接続されてもよいハードウェア及び/又はソフトウェアのリソースによって実装されてもよい。3Dレンダリング・エンジンは、バーチャル・エンティティ記述フレームに基づいて、特定のバーチャル・ヴァンテージ・ポイントに関連する各表面データ・フレームをレンダリングするように構成される。例えば、バーチャル・エンティティ記述フレーム設備104は、バーチャル・エンティティ記述フレームを、第1の3Dレンダリング・エンジンに提供することができる。ここで、第1の3Dレンダリング・エンジンは、第1のバーチャル・ヴァンテージ・ポイントに関連することができ、そして、第1の3Dレンダリング・エンジンは、(例えば、バーチャル・エンティティ記述フレームに基づいて)第1の表面データ・フレームをレンダリングするように構成され、ここで、第1の表面データ・フレームは、時系列で特定のポイントでの第1のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクト表面の色彩及び深度データを表す。更には、バーチャル・エンティティ記述フレーム設備104は、同一のバーチャル・エンティティ記述フレームを、第2の3Dレンダリング・エンジンに提供することができる。ここで、第2の3Dレンダリング・エンジンは、第2のバーチャル・ヴァンテージ・ポイントに関連することができ、そして、第2の3Dレンダリング・エンジンは、(例えば、こちらについてもバーチャル・エンティティ記述フレームに基づいて)第2の表面データ・フレームをレンダリングするように構成され、ここで、第2の表面データ・フレームは、時系列で特定のポイントでの第2のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表す。
【0036】
本明細書で使用するが、「表面データ・フレーム」は、データセットを指してもよく、当該データセットは、様々なタイプのデータを表してもよく、当該データは、オブジェクト(例えば、バーチャル・オブジェクト)の表面に関連してもよく、当該オブジェクトは、バーチャル・シーン内で、特定のヴァンテージ・ポイントから、且つ当該バーチャル・シーンに関連する時系列で特定のポイントで見ることができる。例えば、表面データ・フレームは、以下を含むことができる:色彩データ(即ち、イメージ・データ)並びに深度データであって、バーチャル・シーンに関する特定のヴァンテージ・ポイントから見えるオブジェクトを表すもの。かくして、複数の関連表面データ・フレームは、共にシーケンス化されて、バーチャル・シーンのビデオのような表現(色彩のみならず深度データも表す)を生成することができ、当該表現は、あたかも、バーチャル・シーンを、特定のヴァンテージ・ポイントから見たり、又は体験したりしているかのごときものであってもよい。特定の例において、表面データ・フレームは、更に以下に関連してもよい:他のタイプのデータ(例えば、オーディオ・データ、メタデータ(例えば、以下を含むメタデータ:表面データ・フレームに表現される特定のオブジェクトに関する情報及び/又はバーチャル・シーンに関連するヴァンテージ・ポイントに関する情報))、及び/又は特定の実施に寄与することができる他のタイプのデータ。異なるヴァンテージ・ポイントに関連する表面データ・フレーム並びに関連する表面データ・フレームのシーケンスの例については、後で説明及び図示する。
【0037】
本明細書で使用するが、「色彩データ」は、広義には任意のイメージ・データ、ビデオ・データ等を含むことができ、カラーでの表現又はグレースケール(即ち「白黒」)での表現に関わらず、これらのデータは、対象物(例えば、バーチャル・シーンのバーチャル3D空間内に含まれるバーチャル・オブジェクト)が、特定のヴァンテージ・ポイントの視点から、時系列で特定のポイントで、又は、特定の期間にわたって、どのように現れるかを表現してもよい。色彩データは、以下に限定されない:任意の特定の形式、ファイル・タイプ、フレーム・レート、解像度、品質レベル、又は、様々な定義、並びに/若しくは当分野でイメージ・データ及び/若しくはビデオ・データを定義する規格に関連する他の特性。同様に、本明細書で使用するが、「深度データ」は、空間内の対象物の位置を表す任意のデータを含むことができる。例えば、バーチャル・オブジェクトを表す深度データは、以下を含むことができる:バーチャル・オブジェクトの表面上の異なるポイントに関するグローバル座標系(例えば、バーチャル・シーンのバーチャル3D空間に関連するグローバル座標系)に関する座標。
【0038】
ストレージ設備106は、特定の実施において、設備102又は104によって、受信、生成、マネージング、トラッキング、管理、使用、及び/又は送信される任意の適切なデータを管理することができる。例えば、示すように、ストレージ設備106は、以下を含むことができる:バーチャル・オブジェクト・データ108(バーチャル・オブジェクト・データは、以下を含むことができる:バーチャル・シーンのバーチャル3D空間内に含まれる1以上のバーチャル・オブジェクトに関連するデータ(例えば、状態データ))、並びにバーチャル・ヴァンテージ・ポイント・データ110(バーチャル・ヴァンテージ・ポイント・データは、以下を含むことができる:バーチャル3D空間への1以上のバーチャル・ヴァンテージ・ポイントに関連するデータ(例えば、状態データ))。更には、ストレージ設備106は、以下を含むことができる:バーチャル・シーンのバーチャル3D空間内に含まれる他のタイプのバーチャル・エンティティに関連するデータ、本明細書に記載のオペレーションを実行するためのインストラクション(例えば、プログラミング・インストラクション)、及び/又は、設備102及び104に対して、本明細書に記載のオペレーションを実行することを促進することができる任意の他のデータ。例えば、ストレージ設備106は更に以下を含むことができる:表面データ・フレーム、バーチャル・エンティティ記述フレーム等に関連するデータ(例えば、オブジェクト記述データ、色彩データ、深度データ、オーディオ・データ、メタデータ等)。また、ストレージ設備106は、特定の実施に寄与することができる追加又は代替のデータを管理することができる。
【0039】
特定の例において、システム100は、様々な他のサーバ・サイド・システム(例えば、バーチャル・シーン制御システム、資産ストレージ・システム、ビデオ・データ・パッケージング・システム、3Dレンダリング・エンジン等)に関連してもよく、これらのシステムは、コンテンツ・プロバイダ・システム(例えば、バーチャル・リアリティ・メディア・コンテンツ提供システム)内の様々な構成内に共に含まれてもよく、その目的として、異なるヴァンテージ・ポイントからのバーチャル・シーンの表面データ・フレームをレンダリングすること、及び、表面データ・フレーム(例えば、バーチャル・リアリティ・メディア・コンテンツの一部として)を、ユーザに提示して、ユーザにバーチャル・シーンを体験させることであってもよい。
【0040】
幾つかの実施において、以下の点を理解されたい:1以上のこの他のサーバ・サイド・システムは、システム100に統合されてもよく(例えば、内包されてもよい)、又は、他のシステム100に密接に関連してもよい(例えば、システム100に通信可能に接続され、同一の又は関連するバーチャル・リアリティ・メディア・プロバイダ・エンティティによって操作される等)。例えば、特定の実施において、システム100は、以下を含むことができる:1以上のバーチャル・オブジェクトを表す色彩及び深度データを記憶する資産ストレージ・システム、資産ストレージ・システムと通信可能に接続される複数の3Dレンダリング・エンジン、並びに、資産ストレージ・システム及び/又は3Dレンダリング・エンジンと通信可能に接続されるバーチャル・エンティティ・ステート・トラッキング・システム。エンティティ・ステート・トラッキング・システムは、設備102~106に関連して上述した1以上のオペレーションを実行するように構成されてもよい。他の実施において、システム100は、これら他のサーバ・サイド・システムと統合されない別個の、スタンドアロンのシステムとして実装することができるが、しかし、むしろ、他のサーバ・サイド・システムと通信可能に接続されてもよく、及び/又は、特定の実施に寄与することができる他のサーバ・サイド・システムと相互運用するように構成されてもよい。
【0041】
図示的な意味合いで、
図2は、例示的な構成200を示しており、当該構成では、システム100が、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングすることを促進する。
図2に示すように、システム100の実装において、以下と通信可能に接続されてもよい:複数のバーチャル・シーン制御システム202(例えば、バーチャル・シーン制御システム202-1~202-M)、並びに、複数のサーバ・サイド3Dレンダリング・エンジン204(例えば、3Dレンダリング・エンジン204-1~204-N)。例えば、システム100は、バーチャル・シーン制御システム202及び/又は3Dレンダリング・エンジン204と通信可能に接続されてもよく、その手段として、1以上のネットワーク(例えば、本明細書に記載の任意のネットワーク又はネットワーク技術を含む)によってもよく、又は、特定の実施に寄与することができる他の通信モードによってもよい。構成200に示すように、設備102~106に関連して上述したオペレーションを実行するバーチャル・エンティティ・ステート・トラッキング・システムは、システム100によって実装されてもよい。上述したように、他の実施において、システム100は、これらのオペレーションを実行するように構成されるエンティティ・トラッキング・システムと、構成200に示す1以上の他のシステム及びデバイスとの両方を実現することができる。
【0042】
システム100は、3Dレンダリング・エンジン204との通信接続を介して、バーチャル・エンティティ記述フレーム206を含む1以上のバーチャル・エンティティ記述フレームを提供することができる。バーチャル・エンティティ記述フレーム206、並びに3Dレンダリング・エンジン204と通信可能に接続される資産ストレージ・システム208から要求され及び受信されるデータに基づいて、3Dレンダリング・エンジン204は、各々の表面データ・フレーム210(例えば、表面データ・フレーム210-1~210-N)をレンダリングすることができ、そして、表面データ・フレーム210をビデオ・データ・パッケージング・システム212に提供することができる。システム100について、
図1に関して詳細に上述してきた。構成200に示す他のシステム及びアイテム各々については、以下詳細に説明する。
【0043】
バーチャル・シーン制御システム202は、任意のコンピューティング・システムを表してもよく、以下の動作を行うように構成されてもよい:バーチャル・シーンのバーチャル3D空間内に含まれる1以上のバーチャル・エンティティ(例えば、システム100がデータを管理する対象であるバーチャル・エンティティ)に対する変更を要求及び/又は実施すること。例えば、1以上のバーチャル・シーン制御システム202(例えば、バーチャル・シーン制御システム202-1)は、バーチャル・シーンのバーチャル3D空間内に含まれるバーチャル・エンティティを表すデータを元々生成するのを担うコンテンツ・クリエータに関連してもよい(例えば、管理する、操作する等)。更には、特定の実施において、1以上の他のバーチャル・シーン制御システム202(例えば、バーチャル・シーン制御システム202-2)は、バーチャル・シーンのバーチャル3D空間を体験しているエンド・ユーザに関連してもよい。例えば、バーチャル・シーン制御システム202-2は、現在、バーチャル・エンティティをレンダリングしているメディア・プレーヤ・デバイスによって実装されてもよく、メディア・プレーヤ・デバイスのユーザに対して、バーチャル・シーンのバーチャル3D空間内のバーチャル・エンティティを体験及び相互作用することを可能にすることができる。
【0044】
システム100は、バーチャル3D空間内に含まれる全てのバーチャル・エンティティを表すデータの1つの非統一なセットを管理することができるため(例えば、各バーチャル・シーン制御システム202に関するバーチャル・エンティティを表すデータの別個のセットとは対照的に)、各バーチャル・シーン制御システム202がバーチャル・エンティティに対する変更を行うと、こうした変更が、上記データの非統一なセットに反映させることができる。従って、複数のユーザ(即ち、異なるバーチャル・シーン制御システム202に関連する異なるユーザ)は、同一のバーチャル・シーンの同一のバーチャル3D空間に対する変更を全て実効化できる。結果として、全てのバーチャル・シーン制御システム202によって行われる変更を、システム100(例えば、バーチャル・エンティティ記述フレーム206)によって、バーチャル・エンティティ記述フレーム・アウトプットに反映させることができ、そして、その後、3Dレンダリング・エンジン204によってレンダリングされる各表面データ・フレーム(例えば、表面データ・フレーム210)に反映させることができる。
【0045】
バーチャル・シーン制御システム202がバーチャル3D空間内のバーチャル・エンティティをどのように変更できるかについて示すために、
図3は、複数のバーチャル・エンティティを含む例示的なバーチャル・シーン300を示し、そして、
図4は、バーチャル・シーン300に対して行うことができる例示的な変更を示す。具体的には、最初に
図3を参照されたい。バーチャル・シーン300は、バーチャル3D空間302に関連し、当該バーチャル3D空間302は、バーチャル・オブジェクト304を含み、そして、複数のバーチャル・ヴァンテージ・ポイント306(例えば、バーチャル・ヴァンテージ・ポイント306-1~306-8)によって囲まれる。
【0046】
バーチャル・シーン300は、特定の実施に寄与することができる任意のタイプのシーン(例えば、現実世界シーン、コンピュータが生成するシーン、イベント等)を表すことができる。円で示しているが、バーチャル・シーン300に関連するバーチャル3D空間302は、具体的には、線引きされたエリアであってもよい(例えば、ステージ、アリーナ等)。逆に、他の例において、バーチャル3D空間302は、さほど、区画化又は線引きされなくてもよい。例えば、バーチャル3D空間302は、任意のインドア若しくはアウトドアのロケーション(例えば、現実世界に基づいて、又は仮想の世界若しくはコンピュータが生成した世界に基づいて)、イベント、風景、構造、又はその他を表現することができる。
【0047】
バーチャル・オブジェクト304は、生物又は非生物に関わらず、任意のバーチャル・オブジェクトを表現することができ、当該バーチャル・オブジェクトは、バーチャル3D空間302に関連してもよく(例えば、内部又は周辺部に存在)、そして、バーチャル・ヴァンテージ・ポイント306のうち少なくとも1つから検出可能(例えば、視認可能等)であってもよい。例えば、バーチャル・オブジェクト304は、現実世界オブジェクト(例えば、3Dモデルを生成する対象となるオブジェクト)に基づく仮想の又はコンピュータが生成したオブジェクト等であってもよい。バーチャル・オブジェクト304は、明確性の観点から比較的にシンプルな幾何学形として描写しているものの、以下の点を理解されたい:バーチャル・オブジェクト304は、様々なレベルの複雑さを有する様々なタイプのオブジェクトを表現することができる。例えば、幾何学形ではなく、バーチャル・オブジェクト304は以下を表現することができる:任意のアニメーション若しくは非アニメーション・オブジェクト若しくは表面(例えば、人物又は別の生き物)、非透明な固体、液体、若しくは気体、不連続性に欠けるオブジェクト(例えば、壁、天井、若しくは床)、又は、本明細書に記載の若しくは特定の実施に寄与することができる任意の他のタイプのオブジェクト。示しているが、バーチャル・オブジェクト304は、様々な表面を含むことができ、その結果、バーチャル・オブジェクト304は、各々異なるバーチャル・ヴァンテージ・ポイント306から閲覧したときに、異なって見えてもよい。これについては、後述する。
【0048】
バーチャル・オブジェクト304とともに、バーチャル・シーン300は、バーチャル3D空間302へのバーチャル・ヴァンテージ・ポイント306も含む。本明細書で使用するが、バーチャル3D空間「への」バーチャル・ヴァンテージ・ポイントは、任意の適切な方法で、バーチャル3D空間に関する、位置、角度、配向付け等が為されるバーチャル・ヴァンテージ・ポイントを指してもよい。例えば、バーチャル3D空間へのバーチャル・ヴァンテージ・ポイントは、以下の特徴のバーチャル・ヴァンテージ・ポイントであってもよい:バーチャル3D空間内に含まれる;バーチャル3D空間への眺望的な見かけを伴って、バーチャル3D空間の外部にある;他のバーチャル・ヴァンテージ・ポイントとともに、バーチャル3D空間を囲む;及び/又は、バーチャル3D空間の少なくとも幾つかの部分の閲覧に供するように任意の適切な方法でバーチャル3D空間に関連する。
【0049】
示しているが、各バーチャル・ヴァンテージ・ポイント306は、
図3にて表現することができ、ここで、ラベル付けされた円は、バーチャル3D空間302に関して特定のロケーションに配置され、そして、当該円からドット線がでており、バーチャル・ヴァンテージ・ポイント306に関連する視野を描写している。バーチャル・ヴァンテージ・ポイント306に関連する位置は、バーチャル3D空間302に関して固定されてもよいが、しかし、後述するが、バーチャル・シーン制御システム202の1つによって、固定された位置を変更することもできる。更には、幾つかの例において、以下の点を理解されたい:バーチャル3D空間302及びバーチャル・ヴァンテージ・ポイント306の両方は、共に、バーチャル・シーン300を通して動いてもよい(例えば、乗物バーチャル3D空間(宇宙船、ホット・エア・バルーン等のように))。示しているが、バーチャル・ヴァンテージ・ポイント306が配置される固定位置は、幾つかの例において、バーチャル3D空間302に関連する少なくとも2次元に沿って(例えば、平面に沿って(例えば、地面))、バーチャル3D空間302を囲ってもよい。他の例において、位置306は、更に、3次元に沿って、バーチャル3D空間302を囲ってもよい(例えば、上下方向306及び302の位置を含めることによっても)。バーチャル・ヴァンテージ・ポイント306がバーチャル3D空間302を2次元に沿って囲む例においてさえも、関連するがわずかに異なる視点からバーチャル・オブジェクト304を閲覧する目的で、
図3に示すバーチャル3D空間302を丸く囲む位置に対して異なる高さで、複数のバーチャル・ヴァンテージ・ポイント306を、「スタック」してもよい。
【0050】
図3に示す各バーチャル・ヴァンテージ・ポイント306が、バーチャル3D空間302の内側に向かって角度付けされ、様々な角度からバーチャル3D空間302をキャプチャして、バーチャル3D空間302を、後で任意のバーチャル・ヴァンテージ・ポイントからレンダリングできるようにすることができる。しかし、以下の点を理解されたい:特定の例において、1以上のバーチャル・ヴァンテージ・ポイント306は、外側に角度付けされてもよく(即ち、バーチャル3D空間302から離れるように)、バーチャル3D空間302等を囲むバーチャル・オブジェクトを閲覧してもよい。例えば、360度バーチャル・ヴァンテージ・ポイントは、バーチャル3D空間302の内部(明示しない)に位置してもよく、追加の観点からのバーチャル3D空間302内に含まれるバーチャル・オブジェクトを表すデータ、及び/又は、バーチャル3D空間302外部のバーチャル・オブジェクトを表すデータを提供することができる。
【0051】
上述したように、
図4は、バーチャル・シーン300に対して行うことができる例示的な変更を示す。具体的には、幾つかの例において、システム100は、コマンドを受信して、複数のエンティティを表す管理されるデータ(即ち、バーチャル・オブジェクト304、バーチャル・ヴァンテージ・ポイント306、及び/又はバーチャル3D空間302内に含まれる任意の他のバーチャル・エンティティを表すデータ)を変更することができ、そして、システム100は、コマンドの受信に応答して、複数のバーチャル・エンティティを表す管理されるデータを、コマンドに従って変更することができる。例えば、コマンドは、(例えば、ウェブ・ソケット又は別の適切なタイプの通信の手段により)、任意のバーチャル・シーン制御システム202によって送信されてもよく、その際に、JSONコード、又は、行われるべき変更を記載した別の適切なオブジェクト記述コードを使用してもよい。
【0052】
バーチャル・シーン300内に含まれるバーチャル・エンティティは、任意の適切な態様で変更することができ、変更されるバーチャル・エンティティのタイプに部分的に依存して決定されてもよい。例えば、変更されるバーチャル・エンティティがバーチャル・オブジェクトである場合、コマンドに従って、複数のバーチャル・エンティティを表す管理されるデータを変更することは、以下を含むことができる:追加のバーチャル・オブジェクトを複数のバーチャル・エンティティに追加すること。これに加えて、又はこれに代えて、変更は、以下を含むことができる:複数のバーチャル・エンティティ内に含まれるバーチャル・オブジェクトを追加のバーチャル・オブジェクトに置換すること、バーチャル・オブジェクトを複数のバーチャル・エンティティから削除すること、複数のバーチャル・エンティティ内に含まれるバーチャル・オブジェクトの少なくとも1つプロパティを変更すること、並びに/又は、他のバーチャル・エンティティに関する、及び/若しくは、バーチャル・シーンのバーチャル3D空間に関するバーチャル・オブジェクトを変更すること。
【0053】
図示する目的で、
図4は、バーチャル・オブジェクト304とともに、バーチャル3D空間302に追加される追加のバーチャル・オブジェクト402を示す。以下の点を理解されたい:他の例において、代わりに、バーチャル・オブジェクト402にバーチャル・オブジェクト304を置き換えてもよい(即ち、その結果、バーチャル・オブジェクト304がバーチャル3D空間302から削除され、一方で、バーチャル・オブジェクト402がバーチャル3D空間302に追加される)。
図4に更に示すが、バーチャル・オブジェクト304の特定のプロパティ(例えば、バーチャル・オブジェクト304の位置及び配向)を変更してもよい。他の例において、他のプロパティ(例えば、バーチャル・オブジェクト304のサイズ、色彩、テクスチャ、ポーズ、及び/又は任意の他のプロパティ)を、同様に変更してもよい。
【0054】
もしも、変更されるバーチャル・エンティティがバーチャル・ヴァンテージ・ポイント(例えば、バーチャル・ヴァンテージ・ポイント306の1つ)である場合、コマンドに従って、複数のバーチャル・エンティティを表す管理されるデータを変更することは、以下を含むことができる:追加のバーチャル・ヴァンテージ・ポイントを複数のバーチャル・エンティティに追加すること。これに加えて、又はこれに代えて、変更は、以下を含むことができる:複数のバーチャル・エンティティ内に含まれる複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを変更すること、複数のバーチャル・ヴァンテージ・ポイントのうち少なくとも1つを複数のバーチャル・エンティティから削除すること等。例えば、バーチャル・ヴァンテージ・ポイント306の1つ(例えば、バーチャル・ヴァンテージ・ポイント306-1)に関連する視野を変更又はターンさせて、バーチャル3D空間302の異なる角度上の視界を得てもよい。他の例において、バーチャル・ヴァンテージ・ポイント306は、内向き若しくは外向きに移動させてもよく(例えば、バーチャル3D空間302内の特定のバーチャル・オブジェクトに関して、ズームイン若しくはズームアウトの効果を生じさせるために)、複数のバーチャル・ヴァンテージ・ポイント306から削除されてもよく、又は、変更されてもよい。別の例として、追加のバーチャル・ヴァンテージ・ポイントを複数のバーチャル・ヴァンテージ・ポイント306に追加して、バーチャル・オブジェクト304及び402に対する別の視界(例えば、バーチャル・ヴァンテージ・ポイント306-1~306-8の1つによって良好にカバーできない視界)を得てもよい。
【0055】
上述したように、幾つかの例において、バーチャル・オブジェクト(例えば、バーチャル・オブジェクト304)は、変更してもよく(例えば、バーチャル3D空間302に対して移動してもよく、及び/又は回転してもよい)、当該変更は、バーチャル・シーン制御システム202の1つからの命令コマンドであって、バーチャル・オブジェクトを変更するための命令コマンドに基づいてもよい。しかし、他の例において、バーチャル・オブジェクトは、自動的に変更してもよく(即ち、同一の又は異なる方法で変更してもよいが、バーチャル・シーン制御システム202からの明示的なコマンドに基づかない)、バーチャル3D空間302内に含まれる他のバーチャル・エンティティとの相互作用に基づいてもよい。より具体的には、例えば、システム100によっての複数のバーチャル・エンティティを表すデータを管理することは、以下を含むことができる:(例えば、バーチャル・シーンのバーチャル3D空間内に含まれるバーチャル・オブジェクトに対して)物理ベースのオブジェクト行動及び人工知能ベース(AIベース)のオブジェクト行動のうち少なくとも1つを適用すること。
【0056】
例えば、物理ベースのオブジェクト行動404を
図4に示す。バーチャル・オブジェクト402をバーチャル3D空間302に追加する変更が行われた時(例えば、システム100によって)、システム100は以下を決定することができる:バーチャル・オブジェクト304及び402は、それぞれ固体のバーチャル・オブジェクトを表し、同一のバーチャル空間に存在できない。従って、物理ベースのオブジェクト行動404に示されるように、バーチャル・オブジェクト304のロケーション及び配向のプロパティを物理的なルールに従って変更することができ、その結果、バーチャル・オブジェクト402は、バーチャル・オブジェクト304を部分的に追いやる(即ち、バーチャル・オブジェクト304を「押し出す」)。他の物理ベースのオブジェクト行動は他の物理的なルール(例えば、バーチャル世界においてのみ適用される現実世界の物理、又は仮想上の物理)を模倣してもよく、当該ルールは、オブジェクトが互いにどのように相互作用し、そして、物理的な力及び原理(例えば、重力、運動量、摩擦、浮力、光反射等)とどのように相互作用するかを規定してもよい。また、こうした物理ベースのオブジェクト行動は、バーチャル3D空間302内に含まれるバーチャル・オブジェクトを表す管理されるデータに対して、システム100によって適用されてもよい。更には、また、AIベースのオブジェクト行動は、以下を定義することを補助してもよい:バーチャル・オブジェクトが互いにどのように相互作用するか、及び、バーチャル・オブジェクトが、当該バーチャル・オブジェクトが配置される環境とどのように相互作用するか。例えば、AIベースのオブジェクト行動は、特に、以下に適用されてもよい:生物を表現するバーチャル・オブジェクト(例えば、アバター(例えば、人々及び/又は動物であって、人工知能を使用して「選択」(例えば、バーチャル3D空間302内のどこを歩くか、誰と話すか、及び何を話すか、いつ危険から走るか等)を行うことができるもの)。
【0057】
図2に戻る。システム100は、バーチャル・エンティティ記述フレームを生成し、当該フレームは、以下を表す:時系列(例えば、リアルタイム・シーケンス、バーチャル世界の時間に関連するバーチャル・タイムライン等)で特定のポイントでの複数のバーチャル・エンティティ内のバーチャル・エンティティの状態。例えば、示すように、システム100は、特定のバーチャル・エンティティ記述フレーム(即ち、バーチャル・エンティティ記述フレーム206)を生成することができ、そして、バーチャル・エンティティ記述フレーム206を、各3Dレンダリング・エンジン204に提供することができる。3Dレンダリング・エンジン204は、サーバ・サイド3Dレンダリング・エンジンであってもよい(例えば、3Dレンダリング・エンジンであって、ネットワークをまたぐ、及び/又は、クライアント・サイド・デバイス(例えば、ユーザが使用するメディア・プレーヤ・デバイス)とは別個の物)。幾つかの例において、3Dレンダリング・エンジン204は、別個のデバイス(例えば、別個のサーバ、サーバ内の別個のプロセッサ等)、又は別個のソフトウェアのプロセス(例えば、別個のインストラクション・スレッド等)によって実装されてもよい。一方で、他の例において、3Dレンダリング・エンジン204は、特定の実施に寄与することができる通常のハードウェア及び/又はソフトウェアのデバイス又はプロセスに統合されてもよい。幾つかの実施において、3Dレンダリング・エンジンは、バーチャル・シーン・キャプチャ・システム(例えば、システム100)と共同で動作してもよく、又は完全に当該システムに統合されてもよい。一方、他の実施において、3Dレンダリング・エンジンは、別個に動作してもよい(例えば、クラウドベースの処理サーバを提供する異なるエンティティによって等)。
【0058】
3Dレンダリング・エンジン204に提供される特定のバーチャル・エンティティ記述フレームは、キー記述フレームであってもよく、当該フレームは、以下を含んでもよい:時系列で特定のポイントでのバーチャル・シーン(即ち、バーチャル・シーン300)に関連する全てのバーチャル・エンティティを表す状態データ。一方で、他のバーチャル・エンティティ記述フレームは、アップデート記述フレームであってもよく、当該フレームは、以下を表してもよい:時系列で以前のポイントでの全てのバーチャル・エンティティの状態を表す以前のキー記述フレームが生成されて以来変更されたバーチャル・シーンに関連するバーチャル・エンティティのみの変化の状態(例えば、時系列で特定のポイントでの)。例えば、
図4に示す変更を参照されたい。キー記述フレームは、以下を含むことができる:バーチャル・オブジェクト304及び402に関連する状態データ、並びにバーチャル・ヴァンテージ・ポイント306に関連する状態データ。一方で、アップデート記述フレームは、以下を含むことができる:バーチャル・オブジェクト304及び402に関連する状態データのみ、又は、バーチャル・オブジェクト304及び402に対する変更に関連する状態データのみ。この理由として、例えば、バーチャル・オブジェクト304及び402は、以前のキー記述フレームが生成されて以来、変更されているかもしれないからである。バーチャル・ヴァンテージ・ポイント306の状態を表すデータは、この例示的なアップデート記述フレームにおいては、表現されていなくてもよく、その理由として、バーチャル・ヴァンテージ・ポイント306は、以前のキー記述フレーム以来、静的に位置を維持しており、そして変更されていない可能性があるからである。
【0059】
図5は、複数の例示的なバーチャル・エンティティ記述フレーム500(例えば、バーチャル・エンティティ記述フレーム500-1~500-12)を示し、システム100によって生成されてもよい。1つのバーチャル・エンティティ記述フレーム500から別のフレームへの流れを指す矢印によって示されるが、バーチャル・エンティティ記述フレーム500は、時系列に並べることができ、バーチャル・エンティティ記述フレーム500-1から始まり、そして、バーチャル・エンティティ記述フレーム500-12へと進むことができる。その後、時系列シーケンスは、
図5に明示的に示していない追加のバーチャル・エンティティ記述フレーム500へと進んでもよい。各バーチャル・エンティティ記述フレーム500の底部に沿って行くと、バーチャル・エンティティ記述フレームのタイプ(例えば、キー記述フレーム又はアップデート記述フレーム)が示されている。具体的には、バーチャル・エンティティ記述フレーム500-1、500-5、及び、500-9は、キー記述フレームとして示されており、一方で、バーチャル・エンティティ記述フレーム500-2~500-4、500-6~500-8、及び500-10~500-12は、アップデート記述フレームとして示される。
【0060】
従って、こうした例において、各キー記述フレームは、時系列で複数(例えば、3つ)のアップデート記述フレームよりも先行し、当該アップデート記述フレームは、その代わり、時系列で別のキー記述フレームよりも先行する。しかし、以下の点を理解されたい:
図5に示すキー記述フレーム及びアップデート記述フレームは例示的なものにすぎず、キー記述フレーム及びアップデート記述フレームの配置については、特定の実施に寄与することができる任意の方法で実施できる。例えば、特段動的でないバーチャル・シーン(即ち、バーチャル・エンティティに対して膨大な数の変更がなされていない)については、相対的に少ないキー記述フレームが、比較的膨大な数のアップデート記述フレームに先行する形で表現されてもよい。逆に、より動的なバーチャル・シーンについては、より多くの割合のキー記述フレーム(最大で、キー記述フレームだけを含む)、及びより少ない割合のアップデート記述フレーム(最小で、アップデート記述フレームを含まない)によって、表現されてもよい。
【0061】
図5に更に示すが、各バーチャル・エンティティ記述フレーム500は、以下を含んでもよく、又は、以下によって実施されてもよい:バーチャル・エンティティ記述コード(例えば、JSONコード、XMLコード、又はシステム100が管理するバーチャル・エンティティに関連する状態データを記述するのに適切な別のタイプのコード)。そして、各バーチャル・エンティティ記述フレーム500は、シーケンス番号(例えば、ID番号又は「ID」)に関連してもよく、シーケンス番号は、以下を表してもよい:他のバーチャル・エンティティ記述フレーム500に対する時系列での各バーチャル・エンティティ記述フレーム500の位置。例えば、示すように、バーチャル・エンティティ記述フレーム500-1は、整数(即ち、「1.0」)であるシーケンス番号を有してもよく、当該番号が示すこととして、バーチャル・エンティティ記述フレーム500-1がキー記述フレームであることを示すことができ、そして、他のキー記述フレームに対するフレームの相対的な位置を示すことができる(例えば、「1.0」が「2.0」の前にくる)。バーチャル・エンティティ記述フレーム500-2~500-4は、その後、それぞれ、1から始まるシーケンス番号に関連してもよく(即ち、これらのフレームが、キー記述フレーム1.0に対するアップデートであることを示す)、そして、サブ識別子を含んでもよく(即ち、「.1」、「.2」、及び「.3」)、当該サブ識別子が、他のアップデート記述フレームに対する時系列でのアップデート記述フレームの相対的な位置を示してもよい(例えば、「1.1」が「1.2」の前にくる)。こうしたバーチャル・エンティティ記述フレーム付番スキームは、例示的なものにすぎず、特定の実施に寄与することができる任意の適切なフレーム付番スキームを採用することができる。
【0062】
図2に戻る。バーチャル・エンティティ記述フレーム206が、キー記述フレーム(例えば、バーチャル・エンティティ記述フレーム500-1、500-5、又は500-9等)であるが、又は、アップデート記述フレーム(例えば、
図5中の残りのバーチャル・エンティティ記述フレーム500等)であるかに関わらず、バーチャル・エンティティ記述フレーム206を含むバーチャル・エンティティ記述フレームのシーケンスは、全ての情報を提供してもよく、当該全ての情報とは、3Dレンダリング・エンジン204が、各3Dレンダリング・エンジン204が関連するそれぞれのヴァンテージ・ポイントからのバーチャル・シーン300のバーチャル3D空間302をレンダリングするのに必要な情報であってもよい。かくして、3Dレンダリング・エンジン204がバーチャル・エンティティ記述フレームを順番通りに受信又は処理することは必須ではない。むしろ、3Dレンダリング・エンジン204は、各表面データ・フレーム210(例えば、当該シーケンス中の単一のバーチャル・エンティティ記述フレームからそれぞれ生成されてよい)をレンダリングする際には、特定の3Dレンダリング・エンジン204にとって便利又は効率的となる可能性のある任意の順序でレンダリングしてもよく、そして、表面データ・フレーム210に対して、(例えば、ビデオ・データ・パッケージング・システム212によって)のちに並べ替え及び同期を行ってもよい。
【0063】
幾つかの例において、バーチャル・エンティティ記述フレーム206は、詳細情報(例えば、バーチャル・オブジェクトの幾何学、テクスチャを表すバイナリ・データ等)へのリンクを伴うバーチャル・エンティティを表す状態情報を含むことができ、当該情報は、資産ストレージ・システム208に記憶されてもよく、そして、バーチャル・エンティティ記述フレーム206のリンクに基づいて、資産ストレージ・システム208から、各3Dレンダリング・エンジン204によって、必要に応じてアクセスされてもよい。資産ストレージ・システム208は、システム100及び/又は3Dレンダリング・エンジン204とは別個のデバイス(例えば、別個のサーバ、別個のプロセッサ、サーバ内のストレージ設備等)によって実装されてもよく、若しくは、別個のソフトウェア・プロセス(例えば、別個のインストラクション・スレッド等)によって実装されてもよく、又は、資産ストレージ・システム208は、特定の実施に寄与することができるシステム100及び/若しくは3Dレンダリング・エンジン204とともに、通常のハードウェア及び/若しくはソフトウェア・デバイス若しくはプロセスに統合されてもよい。幾つかの実施において、資産ストレージ・システム208は、バーチャル・シーン・キャプチャ・システム(例えば、システム100)、及び/又は、3Dレンダリング・エンジン204も含むシステムと共同で動作してもよく、又は完全にこれらに統合されてもよく、一方で、他の実施において、資産ストレージ・システム208は、別個に動作してもよい(例えば、クラウドベースの処理サーバを提供する異なるエンティティによって等)。
【0064】
いずれのケースにおいても、バーチャル・エンティティ記述フレーム206内に含まれるデータと、バーチャル・エンティティ記述フレーム206内に提供されるリンクを使用して資産ストレージ・システム208からアクセスされるデータとの間において、3Dレンダリング・エンジン204は、全ての情報へのアクセスを受信することができ、当該全ての情報は、各バーチャル・ヴァンテージ・ポイントからのバーチャル3D空間302を表す表面データ・フレーム210をレンダリングするのに必要な情報であってもよく、3Dレンダリング・エンジン204によってローカル管理される情報に依存しなくてもよい。
【0065】
各3Dレンダリング・エンジン204は、システム100が管理する複数のバーチャル・エンティティ内で表現されるバーチャル・ヴァンテージ・ポイントの1つに関連してもよい。例えば、3Dレンダリング・エンジン204-1~204-8(このうち、3Dレンダリング・エンジン204-1及び204-2のみについては、
図2に明示的に示す)は、それぞれ、バーチャル・ヴァンテージ・ポイント306-1~306-8(
図3に示す)に関連してもよい。かくして、各3Dレンダリング・エンジン204は、特定の3Dレンダリング・エンジン204に関連するバーチャル・ヴァンテージ・ポイント306の視界(即ち、位置、角度、視野等)から見える各表面データ・フレーム210をレンダリングすることができる。更には、上述したように、各表面データ・フレーム210は、各バーチャル・ヴァンテージ・ポイントからのバーチャル・オブジェクトの外観を表す色彩データ(即ち、イメージ・データ)のみならず、深度データも含むことができる。
【0066】
図示する目的で、
図2は、イメージを示し、当該イメージは、表面データ・フレーム210-1を表し、当該フレームは、3Dレンダリング・エンジン204-1によってレンダリングされる表面データ・フレームであってもよく、3Dレンダリング・エンジンは、バーチャル・ヴァンテージ・ポイント306-1(
図3参照)に関連してもよい。示しているが、表面データ・フレーム210-1は、色彩データ214を含むことができ、当該データは、バーチャル・ヴァンテージ・ポイント306-1から見えるバーチャル3D空間302のビュー(バーチャル・オブジェクト304の表面からの色彩データを含む)を表現したものであってもよい。
図2では色彩データ214はイメージとして図示されているが、以下の点を理解されたい:色彩データ214は、任意の適切な形態で、キャプチャ、エンコード、フォーマット、送信、及び表現されてもよい。例えば、色彩データは、標準ビデオ・エンコーディング・プロトコル、標準イメージ・フォーマット等に従ってフォーマットされるデジタル・データであってもよい。色彩データ214は、バーチャル・ヴァンテージ・ポイント306-1から見た場合のバーチャル3D空間302内に含まれるバーチャル・オブジェクトの色彩イメージ(例えば、カラー写真に類するもの)を表現したものであってもよい。これに加えて、又はこれに代えて、色彩データ214は、バーチャル・オブジェクトを表すグレースケール・イメージ(例えば、白黒写真に類するもの)であってもよい。
【0067】
更には、表面データ・フレーム210-1は、深度データ216を含むことができ、当該データは、バーチャル3D空間302の別のビューを表現したものであってもよく、当該ビューは、バーチャル・ヴァンテージ・ポイント306-1に関連する空間中のあるポイントからのバーチャル・オブジェクト304の表面に関する深度データを含むことができる。色彩データ214と同様に、深度データ216は、以下を描写したものであってもよい:バーチャル・ヴァンテージ・ポイント306-1の視界からのバーチャル3D空間302内のバーチャル・オブジェクト304。しかし、バーチャル・オブジェクト304の見える概観を表現(即ち、光がバーチャル・オブジェクト304の表面とどのように相互作用するかについてカラー又はグレースケールで表現)するのではなく、深度データ216は以下を表現したものであってもよい:バーチャル・ヴァンテージ・ポイント306-1のバーチャル位置に対する、バーチャル・オブジェクト304(例えば、並びにバーチャル3D空間302内の他のオブジェクト)の表面の各ポイントの深度(即ち、距離又は位置)。色彩データ214と同様に、深度データ216は、任意の適切な形態で、キャプチャ、エンコード、フォーマット、送信、及び表現されてもよい。例えば、示すように、深度データ216は、グレースケール・イメージ・データ(例えば、深度データ216内で表現される各ピクセルに関して6ビット又は8ビット)で表現されたものであってもよい。しかし、バーチャル・オブジェクト304の表面からどのように光が反射するのかを表現(即ち、色彩データ214で表現)するのではなく、深度データ216のグレースケール・イメージは以下を表現したものであってもよい:イメージ中の各ピクセルに関して、当該ピクセルによって表されるポイントが、バーチャル・ヴァンテージ・ポイント306-1からどれだけ離れているか。例えば、バーチャル・ヴァンテージ・ポイント306-1に近いポイントは、より暗いグレーの影を表現する値で表されてもよい(例えば、6ビット実装のケースで0b111111がブラックを表現している場合において、0b111111に近いバイナリな値)。逆に、バーチャル・ヴァンテージ・ポイント306-1から遠く離れているポイントは、より明るいグレーの影を表現する値で表されてもよい(例えば、6ビット実装のケースで0b000000がホワイトを表現している場合において、0b000000に近いバイナリな値)。
【0068】
表面データ・フレーム210の各セットは、3Dレンダリング・エンジン204によって生成されてもよく、その結果、システム100が提供する各バーチャル・エンティティ記述フレーム(例えば、バーチャル・エンティティ記述フレーム206を含む)は、表面データ・フレームの各々のセット(例えば、表面データ・フレーム210-1~210-Nを含むセット)に関連してもよく、当該セットは、異なるバーチャル・ヴァンテージ・ポイントからバーチャル3D空間302へバーチャル・シーン300のバーチャル3D空間302をレンダリングしたもの表現したものであってもよい。
図2に示すように、表面データ・フレームの各セット中の各表面データ・フレーム210は、その後、ビデオ・データ・パッケージング・システム212に提供されてもよく、当該システムは、表面データ・フレームを、オーガナイズ、同期、エンコード、圧縮、結合、及び/又は処理することができ、各バーチャル・ヴァンテージ・ポイント306に関連する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームをそれぞれ生成することができる。
【0069】
図示する目的で、
図6は、構成200の特定のコンポーネントの更に詳細なビューを示す。具体的には、
図6は、8つの3Dレンダリング・エンジン204(即ち、3Dレンダリング・エンジン204-1~204-8)を示し、これらのエンジンは、表面データ・フレーム210の完全なセット(即ち、表面データ・フレーム210-1~210-8)をレンダリングする。表面データ・フレーム210-1~210-8は、バーチャル3D空間内に含まれるバーチャル・オブジェクト(例えば、バーチャル3D空間302内のバーチャル・オブジェクト304)の表面の色彩及び深度データを表したものであってもよく、そして、色彩及び深度データは、表面がバーチャル3D空間に関して異なるヴァンテージ・ポイント(例えば、それぞれ、バーチャル・ヴァンテージ・ポイント306-1~306-8)から見えるときのものであってもよい。以下の点を理解されたい:表面データ・フレームは、それぞれ、
図6にて、
図2に示す色彩データ・イメージ(即ち、色彩データ214を示すイメージ)と類似のイメージによって表現されているものの、各表面データ・フレーム210は、深度データを表すデータも含んでもよく、当該データは、
図2に示す深度データ・イメージ(即ち、深度データ216を示すイメージ)に類似のイメージで表現されてもよい。
【0070】
3Dレンダリング・エンジン204は、それぞれ、表面データ・フレーム210を、関連するバーチャル・ヴァンテージ・ポイント306から生成することができ、当該生成は、バーチャル・エンティティ記述フレーム206に基づいてもよく、並びに資産ストレージ・システム208からアクセスされるデータに基づいてもよい(上述したように)。例えば、バーチャル・シーン300に関連する複数のバーチャル・エンティティを表す管理されるデータは、以下を含むことができる:資産ストレージ・システム208に記憶されるバーチャル・オブジェクト304を表す色彩及び深度データへのリンク。かくして、バーチャル・エンティティ記述フレーム206(上述したように、システム100によって生成されてもよく、3Dレンダリング・エンジン204に提供されてもよい)を生成して、資産ストレージ・システム208に記憶されるバーチャル・オブジェクト304を表す色彩及び深度データへのリンクを含むようにしてもよい。各3Dレンダリング・エンジン204は、各バーチャル・ヴァンテージ・ポイント306からの各表面データ・フレーム210をレンダリングするように構成されてもよく、当該レンダリングは、以下を含むオペレーションを実行することによってもよい:バーチャル・エンティティ記述フレーム206をシステム100から受信すること、そして、資産ストレージ・システム208に記憶されるバーチャル・オブジェクト304を表す色彩及び深度データへ、資産ストレージ・システム208から、バーチャル・エンティティ記述フレーム206内に含まれるリンクを使用して、アクセスすること。バーチャル・エンティティ記述フレーム206内に含まれるデータと、資産ストレージ・システム208からアクセスされる色彩及び深度データとの両方を用いて、3Dレンダリング・エンジン204は、表面データ・フレーム210をレンダリングして、バーチャル3D空間302を囲むヴァンテージ・ポイントからの、バーチャル3D空間302のビュー(例えば、バーチャル・オブジェクト304を含む)を提供することができる(上述のように)。
【0071】
各表面データ・フレーム210は、表面データ・フレームの別個のシーケンス内に含まれてもよく、当該フレームは、以下を表すことができる:時系列中各バーチャル・ヴァンテージ・ポイント306から見えるバーチャル・オブジェクト304の表面の色彩及び深度データ。例えば、表面データ・フレーム210-1は、時系列中バーチャル・ヴァンテージ・ポイント306-1から見えるバーチャル・オブジェクト304の表面の色彩及び深度データを表す表面データ・フレームの第1のシーケンス内に含まれてもよく、表面データ・フレーム210-2は、時系列中バーチャル・ヴァンテージ・ポイント306-2から見えるバーチャル・オブジェクト304の表面の色彩及び深度データを表す表面データ・フレームの第2のシーケンス内に含まれてもよく、以下同様であってもい。換言すれば、いったん、表面データ・フレーム210がレンダリングされると、各3Dレンダリング・エンジン204は、続いて、表面データ・フレームの異なる各シーケンス内の他の表面データ・フレームをレンダリングしてもよい。例えば、3Dレンダリング・エンジン204は、追加のバーチャル・エンティティ記述フレームを、バーチャル・エンティティ記述フレーム206(例えば、
図5に示すバーチャル・エンティティ記述フレーム500のシーケンス等)の後に受信してもよく、そして、3Dレンダリング・エンジン204は、追加のバーチャル・エンティティ記述フレームに基づいて、更なる表面データ・フレームを生成してもよい。
【0072】
図示する目的で、
図7は、表面データ・フレームの複数の例示的なフレーム・シーケンス702(例えば、フレーム・シーケンス702-1~702-8)を示し、これらのシーケンスは、以下を表す:それぞれ、ヴァンテージ・ポイント306-1~306-8から見えるバーチャル・オブジェクト304の表面の色彩及び深度データ。例えば、各フレーム・シーケンス702中の最初の表面データ・フレーム(即ち、表面データ・フレームがカバーされておらず、結果として、オブジェクト304の異なるビューが
図7にて見えるようになっているもの)は、
図6に示す表面データ・フレーム210に対応してもよい。従って、フレーム・シーケンス702-1~702-8は、それぞれ、3Dレンダリング・エンジン204-1~204-8と関連してもよく、従って、バーチャル・ヴァンテージ・ポイント306-1~306-8と関連してもよい。例えば、フレーム・シーケンス702-1は、バーチャル3D空間302内に含まれるバーチャル・オブジェクトの色彩及び深度の両方を表現してもよく、当該表現は、特定の時系列704(例えば、没入型バーチャル・リアリティ世界に関連する特定のリアルタイムの期間、特定のバーチャル・タイムライン等)中バーチャル・ヴァンテージ・ポイント306-1から見たものであってもよい。同様に、フレーム・シーケンス702-2は、バーチャル3D空間302内に含まれるバーチャル・オブジェクトの色彩及び深度を表現してもよく、当該表現は、時系列704中バーチャル・ヴァンテージ・ポイント306-2から見たものであってもよい。そして、フレーム・シーケンス702-3~702-8に関しても以下同様であってもよい。
【0073】
上記で説明及び図示したが、3Dレンダリング・エンジン204によって生成され、及びフレーム・シーケンス702内に含まれる各表面データ・フレームは、ビデオ・データ・パッケージング・システム212に送信されてもよく、又は、渡されてもよく、当該システムは、3Dレンダリング・エンジン204と通信可能に接続されてもよい。表面データ・フレームの各異なるフレーム・シーケンス702に基づいて、ビデオ・データ・パッケージング・システム212は、1以上のトランスポート・ストリームを生成して、各バーチャル・ヴァンテージ・ポイント306に関する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームを送信してもよい。例えば、ビデオ・データ・パッケージング・システム212は、単一のトランスポート・ストリームを生成することができ、当該ストリームは、各フレーム・シーケンス702に関連する(即ち、各3Dレンダリング・エンジン204及びバーチャル・ヴァンテージ・ポイント306に関連する)個々の色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームを含むことができる。又は、ビデオ・データ・パッケージング・システム212は、各フレーム・シーケンス702に関連する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームのための異なるトランスポート・ストリームを生成することができる。
【0074】
いったん、トランスポート・ストリームが生成されると、ビデオ・データ・パッケージング・システム212は、トランスポート・ストリームを、ストリーミングの目的で、ユーザに関連するクライアント・サイド・メディア・プレーヤ・デバイスに提供することができる。例えば、ビデオ・データ・パッケージング・システム212は、トランスポート・ストリームを、メディア・プレーヤ・デバイス自体にストリーミングすることができる(例えば、送信ネットワークの手段により)。又は、ビデオ・データ・パッケージング・システム212は、データ・パイプライン中にトランスポート・ストリームを含むことができ、ここで、トランスポート・ストリームは、別のシステムによって、更に処理され、そして、メディア・プレーヤ・デバイスにストリーミングされるであろう(例えば、パイプラインに関連する他のデバイス、プロセス、及び/又はシステムによって処理され、及び/又は再パッケージされた後)。
【0075】
上述したように、幾つかの例において、システム100、並びに/又は、バーチャル・シーンのフレームを、異なるヴァンテージ・ポイントから、バーチャル・エンティティ記述フレームに基づいてレンダリングするための本明細書に記載の他のシステム(例えば、他のサーバ・サイド・システム)及びデバイスを使用して、ユーザの体験対象であるバーチャル・リアリティ・メディア・コンテンツを生成することができる。例えば、上述したオペレーションのほか、バーチャル・リアリティ・メディア・コンテンツ提供システム(例えば、システム100、ビデオ・データ・パッケージング・システム212、並びに/又は本明細書に記載の他のデバイス及びシステムが包含されてもよい物、又は、これらのシステムと関連してもよい物)は、更に、バーチャル・リアリティ・メディア・コンテンツを、トランスポート・ストリームに基づいて生成及び提供することができ、トランスポート・ストリームは、ビデオ・データ・パッケージング・システム212が生成及び提供することができる。バーチャル・リアリティ・メディア・コンテンツは、バーチャル・シーンを表すことができ、当該コンテンツは、ユーザに対して、バーチャル・シーンに関する任意のバーチャル・ロケーションに対応する動的に選択可能なバーチャル・ヴァンテージ・ポイントから体験できるように提示されてもよい。例えば、ユーザがメディア・プレーヤ・デバイスを利用してバーチャル・シーンを体験している間、動的に選択可能なバーチャル・ヴァンテージ・ポイントは、メディア・プレーヤ・デバイスのユーザによって選択されてもよい。更には、バーチャル・リアリティ・メディア・コンテンツは、(例えば、システム100を含む又は当該システムに関連するバーチャル・リアリティ・メディア・コンテンツ提供システムによって)メディア・プレーヤ・デバイスに提供されてもよく、そして、ユーザが、バーチャル・シーンを、バーチャル・シーン内の任意のバーチャル・ロケーションに対応する動的に選択可能なバーチャル・ヴァンテージ・ポイントから体験することを可能にすることができる。
【0076】
図示する目的で、
図8は、例示的な構成800を示し、ここで、例示的なバーチャル・リアリティ・メディア・コンテンツ提供システム802(「プロバイダ・システム802」)は、システム100及びビデオ・データ・パッケージング・システム212を含み、例示的なバーチャル・リアリティ・メディア・コンテンツ提供システム802は、バーチャル・リアリティ・メディア・コンテンツを生成し、当該コンテンツは、ネットワーク804の手段により、例示的なクライアント・サイド・メディア・プレーヤ・デバイス806(「メディア・プレーヤ・デバイス806」)に提供され、当該デバイスは、バーチャル・シーンを体験するユーザ808によって使用される。
【0077】
上述したように、1以上のトランスポート・ストリームを、フレーム・シーケンス702に基づいて生成した後、プロバイダ・システム802は、更に、1以上のトランスポート・ストリームを、エンコード、パッケージ、暗号化、又は処理することができ、バーチャル・リアリティ・メディア・コンテンツを形成することができ、当該コンテンツは、メディア・プレーヤ・デバイス806がレンダリングするように構成されてもよいコンテンツであってもよい。例えば、バーチャル・リアリティ・メディア・コンテンツは、複数の2Dビデオ・データ・ストリーム(例えば、各バーチャル・ヴァンテージ・ポイント306に関する色彩及び深度データに関連する2Dビデオ・データ・ストリーム)を含むことができ、又はこれらを表してもよく、当該ストリームは、メディア・プレーヤ・デバイス806によってレンダリングされてもよく、バーチャル・シーン300内の任意のバーチャル・ヴァンテージ・ポイント(例えば、ユーザ808にとって興味を抱く可能性があるバーチャル・ヴァンテージ・ポイント306以外のバーチャル・ヴァンテージ・ポイントを含む)からのバーチャル・シーン300のビューを提示してもよい(これについては後述する)。これに加えて、又はこれに代えて、バーチャル・リアリティ・メディア・コンテンツは、バーチャル・シーン300内に含まれるバーチャル・オブジェクトの1以上のボルメトリック(volumetric)・モデル(例えば、3D又は4Dモデル)を表すデータを含むことができ、バーチャル・シーン300は、任意のバーチャル・ヴァンテージ・ポイントから見えるようにレンダリングされてもよい。バーチャル・リアリティ・メディア・コンテンツは、その後、ネットワーク804の手段により、1以上のメディア・プレーヤ・デバイス(例えば、ユーザ808に関連するメディア・プレーヤ・デバイス806)に配信されもよい。例えば、プロバイダ・システム802は、バーチャル・リアリティ・メディア・コンテンツを、メディア・プレーヤ・デバイス806に提供することができ、その結果、ユーザは808は、メディア・プレーヤ・デバイス806を使用して、仮想的に、バーチャル・シーン300を体験することができる。
【0078】
幾つかの例において、以下の点はユーザ808にとって望ましくない可能性がある:バーチャル・リアリティ・メディア・コンテンツ(例えば、バーチャル・シーン300を表す)によって表現される没入型バーチャル・リアリティ世界内の1以上の不連続な位置に制限されること。かくして、プロバイダ・システム802は、バーチャル・シーン300を表すバーチャル・リアリティ・メディア・コンテンツ内に十分なデータを提供することができ、バーチャル・シーン300については、バーチャル・ヴァンテージ・ポイント306からレンダリングすることを可能にするだけでなく、バーチャル・シーン300内の任意のバーチャル・ロケーションに対応する任意の動的に選択可能なバーチャル・ヴァンテージ・ポイント(例えば、バーチャル3D空間302内又はその周辺)からレンダリングすることを可能にすることができる。例えば、ユーザ808がメディア・プレーヤ・デバイス806を使用してバーチャル・シーン300を体験している間、動的に選択可能なバーチャル・ヴァンテージ・ポイントをユーザ808が選択することができる。
【0079】
本明細書で使用するが、「任意のバーチャル・ロケーション」は、バーチャル・シーンに関連する空間における任意のバーチャル・ポイント(例えば、バーチャル・シーンのバーチャル3D空間内又はその周辺)を指してもよい。例えば、任意のバーチャル・ロケーションは、バーチャル・シーン周辺の固定位置(例えば、バーチャル・ヴァンテージ・ポイント306に関連する固定位置)に限定されず、以下も含む:バーチャル・ヴァンテージ・ポイント306に関連する位置とバーチャル3D空間302内部の位置との間の全ての位置。更には、任意のバーチャル・ロケーションは、任意のバーチャル・ヴァンテージ・ポイントに関連してもよく、任意のバーチャル・ヴァンテージ・ポイント306に整列されたものに限定されない。幾つかの例において、こうした任意のバーチャル・ロケーションは、バーチャル・シーン300内の最も望ましいバーチャル・ヴァンテージ・ポイントに対応したものであってもよい。例えば、バーチャル・シーン300がバスケットボールの試合を含む場合、ユーザ808は、バーチャル・ヴァンテージ・ポイントを動的に選択することができ、そこから、バスケットボールのコート上の任意のバーチャル・ロケーションで行われるゲームを体験することができる。例えば、ユーザは、動的に、ユーザーのバーチャル・ヴァンテージ・ポイントを選択することができ、バスケットボールのコートの上下を追従することができ、そして、ゲームの進行中のバスケットボールのコートに立っているかのごとく、バスケットボールのゲームを体験することができる。換言すれば、例えば、バーチャル・ヴァンテージ・ポイント306は、バスケットボールのコート周辺の固定位置に位置することができる間、ユーザ808は、任意のバーチャル・ヴァンテージ・ポイントを同的に選択することができ、そこから、バスケットボールのコート上の任意の位置に関連するゲームを体験することができる。
【0080】
ネットワーク804は、以下を含むことができる:プロバイダに特化した有線の又はワイヤレスなネットワーク(例えば、ケーブル、又は衛星キャリア・ネットワーク、又は、モバイル電話ネットワーク)、インターネット、ワイド・エリア・ネットワーク、コンテンツ・デリバリ・ネットワーク、又は任意の他の適切なネットワーク。データは、プロバイダ・システム802とメディア・プレーヤ・デバイス806(並びに、明示しない他のメディア・プレーヤ・デバイス)との間を流れることができ、その際に、特定の実施に寄与することができる任意の通信技術、デバイス、メディア、及びプロトコルを使用してもい。
【0081】
メディア・プレーヤ・デバイス806をユーザ808が使用して、プロバイダ・システム802から受信するバーチャル・リアリティ・メディア・コンテンツにアクセスし、体験することができる。例えば、メディア・プレーヤ・デバイス806は、以下を生成する動作を行うように構成されてもよい(例えば、トランスポート・ストリーム内に含まれるバーチャル・ヴァンテージ・ポイント各々に関する色彩ビデオ・データ・ストリーム及び深度ビデオ・データ・ストリームに基づいてもよく、ここで、トランスポート・ストリームは、2Dビデオ・データ・ストリームであってもよい):バーチャル・シーン300のバーチャル3D空間302の3D表現、ここで、当該3D表現は、ユーザ808によって、任意のバーチャル・ヴァンテージ・ポイント(例えば、ユーザによって選択され、且つバーチャル3D空間302内の任意のバーチャル・ロケーションに対応する動的に選択可能なバーチャル・ヴァンテージ・ポイント)から体験されてもよい。この目的のため、メディア・プレーヤ・デバイス806は、以下を行うことができる任意のデバイスを含んでもよく、又は、当該デバイスによって実施されてもよい:没入型バーチャル・リアリティ世界(例えば、バーチャル・シーン300を表す没入型バーチャル・リアリティ世界)の視野を提示すること、及び、ユーザ808が没入型バーチャル・リアリティ世界を体験する際に、ユーザ808からのユーザ入力を検出して、視野内に提示される没入型バーチャル・リアリティ世界を動的にアップデートすること。
【0082】
例えば、
図9は、様々な例示的なタイプのメディア・プレーヤ・デバイス806を示し、当該デバイスは、ユーザ808が使用して、バーチャル・リアリティ・メディア・コンテンツを体験することができる。具体的には、示すように、メディア・プレーヤ・デバイス806は、幾つかの異なる形態要素のうち1つをとることができる(例えば、ヘッドマウント・バーチャル・リアリティ・デバイス902(例えば、バーチャル・リアリティ・ゲーム・デバイス)(ヘッドマウント・ディスプレイ・スクリーンを含む)、個人用コンピュータ・デバイス904(例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ等)、モバイル・デバイス若しくはワイヤレス・デバイス906(例えば、スマートフォン、タブレット・デバイス等、これらは、ヘッドマウント装置の手段によりユーザ808の頭部に取り付けることが可能))、又は、特定の実施に寄与して、バーチャル・リアリティ・メディア・コンテンツの受信及び/又は提示を促進することができる任意の他のデバイス又はデバイスの構成。異なるタイプのメディア・プレーヤ・デバイス(例えば、ヘッドマウント・バーチャル・リアリティ・デバイス、個人用コンピュータ・デバイス、モバイル・デバイス等)は、異なるレベルの没入性を有する異なるタイプのバーチャル・リアリティ体験を、ユーザ808に提供することができる。
【0083】
図10は、例示的なバーチャル・リアリティ体験1000を示し、ここで、ユーザ808には、例示的なバーチャル・リアリティ・メディア・コンテンツが提示され、当該コンテンツは、バーチャル・シーンを表し、当該シーンは、動的に選択可能なバーチャル・ヴァンテージ・ポイントから体験し、そして、当該ポイントは、バーチャル・シーンに関連する例示的な任意のバーチャル・ロケーションに対応する。具体的には、バーチャル・リアリティ・メディア・コンテンツ1002は、視野1004内に提示され、当該コンテンツが示すのは、バーチャル・ヴァンテージ・ポイントからのバーチャル・シーンであり、当該バーチャル・ヴァンテージ・ポイントは、任意のバーチャル・ロケーションに対応し、当該任意のバーチャル・ロケーションは、シュートが行われているバーチャル・シーンのバーチャル3D空間内のバスケットボールのゴール真下である。バーチャル・シーンに基づく没入型バーチャル・リアリティ世界1006は、閲覧者にとって利用可能であってもよく、ユーザ入力(例えば、頭部の動き、キーボード・インプット等)(見回す、及び/又は、動き回る(即ち、体験する箇所からバーチャル・ヴァンテージ・ポイントを動的に選択する))を提供することで、没入型バーチャル・リアリティ世界1006を体験できる。
【0084】
例えば、視野1004は、ウィンドウを提供することができ、当該ウィンドウを通して、ユーザ808は、容易に且つ自然に、没入型バーチャル・リアリティ世界1006を見回すことができる。視野1004は、メディア・プレーヤ・デバイス806(例えば、メディア・プレーヤ・デバイス806のディスプレイ・スクリーン上に)によって提示されてもよく、そして、当該視野1004は、以下を含むことができる:没入型バーチャル・リアリティ世界1006内のユーザの周辺のオブジェクトを描写したビデオ。更には、視野1004を、ユーザ808が没入型バーチャル・リアリティ世界1006を体験する際に、ユーザ808が提供するユーザ入力に応答して、動的に変更することができる。例えば、メディア・プレーヤ・デバイス806は、ユーザ入力を検出することができる(例えば、視野1004が提示されるディスプレイ・スクリーンを移動又は回転する)。これに応じて、視野1004は、以下を提示することができる:異なるオブジェクト、及び/又は、以前のバーチャル・ヴァンテージ・ポイント若しくはバーチャル・ロケーションから見えるオブジェクトの場所において、異なるバーチャル・ヴァンテージ・ポイント若しくはバーチャル・ロケーションから見えるオブジェクト。
【0085】
図10において、没入型バーチャル・リアリティ世界1006は、半球として示されているが、このことは、以下を示す:ユーザ808は、没入型バーチャル・リアリティ世界1006内の任意の方向へ視線を向けることができ、当該方向として、実質的には、ユーザ808が現在選択したバスケットボールのゴール下の位置におけるバーチャル・ヴァンテージ・ポイントから見て、前方向、後方向、左方向、右方向、及び/又は上方向である。他の例において、没入型バーチャル・リアリティ世界1006は、さらに180°分の球体を追加した全体360°を含むことができ、その結果、ユーザ808は、下方向も見ることができる。更には、ユーザ808は、没入型バーチャル・リアリティ世界1006内の他のロケーションへ動き回ることができる(即ち、バーチャル3D空間内の異なる動的に選択可能なバーチャル・ヴァンテージ・ポイントを動的に選択することができる)。例えば、ユーザ808は以下を選択することができる:ハーフ・コートにおけるバーチャル・ヴァンテージ・ポイント、バスケットボールのゴールに向かいあうフリー・スロー・ラインからのバーチャル・ヴァンテージ・ポイント、バスケットボールのゴール上部で停止したバーチャル・ヴァンテージ・ポイント等。
【0086】
図11は、バーチャル・シーンのバーチャル・エンティティ記述フレームに基づいて、異なるヴァンテージ・ポイントからのバーチャル・シーンのフレームをレンダリングするための例示的な方法1100を示す。
図11は、1つの実施形態に従った例示的なオペレーションを示すが、他の実施形態では、
図11に示す任意のオペレーションに対して、省略、追加、並べ替え、及び/又は変更してもよい。
図11に示す1以上のオペレーションは、システム100によって実行されてもよく、及び/又は、当該システムの任意の実施によって実行されてもよい。
【0087】
オペレーション1102において、バーチャル・シーン・キャプチャ・システムは、バーチャル・シーンのバーチャル3D空間内に含まれる複数のバーチャル・エンティティを表すデータを管理することができる。複数のバーチャル・エンティティは、以下を含むことができる:バーチャル・オブジェクト及びバーチャル3D空間への複数のバーチャル・ヴァンテージ・ポイント。具体的には、例えば、複数のバーチャル・ヴァンテージ・ポイントは、以下を含むことができる:第1のバーチャル・ヴァンテージ・ポイント、及び第1のバーチャル・ヴァンテージ・ポイントとは異なる第2のバーチャル・ヴァンテージ・ポイント。オペレーション1102は、本明細書に記載の方法のいずれかで実行されてもよい。
【0088】
オペレーション1104において、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを生成することができ、バーチャル・エンティティ記述フレームは、時系列で特定のポイントでの複数のバーチャル・エンティティ内の少なくとも1つのバーチャル・エンティティの状態を表す。例えば、バーチャル・シーン・キャプチャ・システムは、複数のバーチャル・エンティティを表す管理されるデータに基づいて、バーチャル・エンティティ記述フレームを生成することができる。オペレーション1104は、本明細書に記載の方法のいずれかで実行されてもよい。
【0089】
オペレーション1106において、バーチャル・シーン・キャプチャ・システムは、オペレーション1104で生成されるバーチャル・エンティティ記述フレームを、コンテンツ・プロバイダ・システムに関連する複数のサーバ・サイド3Dレンダリング・エンジンに提供することができる。例えば、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを、第1の3Dレンダリング・エンジンに提供することができ、ここで、第1の3Dレンダリング・エンジンは、第1のバーチャル・ヴァンテージ・ポイントに関連し、且つ、第1の3Dレンダリング・エンジンは、バーチャル・エンティティ記述フレームに基づいて、第1の表面データ・フレームをレンダリングするように構成され、ここで、第1の表面データ・フレームは、時系列で特定のポイントでの第1のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表す。更には、バーチャル・シーン・キャプチャ・システムは、バーチャル・エンティティ記述フレームを、第2の3Dレンダリング・エンジンに提供することができ、第2の3Dレンダリング・エンジンは、第2のバーチャル・ヴァンテージ・ポイントに関連し、且つ、第2の3Dレンダリング・エンジンは、バーチャル・エンティティ記述フレームに基づいて、第2の表面データ・フレームをレンダリングするように構成され、ここで、第2の表面データ・フレームは、時系列で特定のポイントでの第2のバーチャル・ヴァンテージ・ポイントから見えるバーチャル・オブジェクトの表面の色彩及び深度データを表す。オペレーション1106は、本明細書に記載の方法のいずれかで実行されてもよい。
【0090】
特定の実施形態において、本明細書に記載の1以上のシステム、コンポーネント、及び/又はプロセスは、1以上の適切に構成されたコンピューティング・デバイスによって実施及び/又は実行されてもよい。この目的のため、上述した1以上のシステム及び/又はコンポーネントは、以下を含んでもよく、又は、以下によって実装されてもよい:任意のコンピュータ・ハードウェア、及び/又は本明細書に記載の1以上のプロセスを実行するように構成される少なくとも1つの非一時的コンピュータ可読媒体に記録される、コンピュータで実装されるインストラクション(例えば、ソフトウェア)。特に、システム・コンポーネントは、1つの物理的なコンピューティング・デバイスによって実装されてもよいし、又は、複数の物理的なコンピューティング・デバイスで実装されてもよい。従って、システム・コンポーネントは、任意の数のコンピューティング・デバイスを含むことができ、そして、任意の数のコンピュータオペレーティングシステムを採用することができる。
【0091】
特定の実施形態において、本明細書に記載の1以上のプロセスは、非一時的コンピュータ可読媒体に記録され、1以上のコンピューティング・デバイスによって実行可能なインストラクションとして、少なくとも部分的に実施されてもよい。一般的に、プロセッサ(例えば、マイクロプロセッサ)は、インストラクションを、非一時的コンピュータ可読媒体(例えば、メモリ等)から受け取り、そして、これらのインストラクションを実行し、これにより、本明細書に記載の1以上のプロセスを含む1以上のプロセスを実行する。こうしたインストラクションは、任意の様々な既知のコンピュータ可読媒体を使用して記憶することができ、及び/又は送ることができる。
【0092】
コンピュータ可読媒体(プロセッサ可読媒体とも言う)は、任意の非一時的媒体を含み、コンピュータによって(例えば、コンピュータのプロセッサによって)読み取ることができるデータ(例えば、インストラクション)を提供することに寄与する。こうした媒体は、多くの形態をとることができ、限定されるものではないが、以下を含む:不揮発性メディア及び/又は揮発性メディア。不揮発性メディアは、以下を含むことができる:例えば、光学ディスク又は磁気ディスク及び他の固定メモリ。揮発性メディアは、以下を含むことができる:例えば、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)であって、典型的にはメインメモリを構成する物。コンピュータ可読媒体の通常の形態として以下を含む:例えば、ディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、コンパクト・ディスク・リード・オンリ・メモリ(「CD-ROM」)、デジタル・ビデオ・ディスク(「DVD」)、任意の他の光学媒体、ランダム・アクセス・メモリ(「RAM」)、プログラマブル・リード・オンリ・メモリ(「PROM」)、電気的に消去可能なプログラマブル・リード・オンリ・メモリ(「EPROM」)、FLASH-EEPROM、任意の他のメモリチップ、若しくはカートリッジ、又はコンピュータが読み取り可能な任意の他の有形の媒体。
【0093】
図12は、例示的なコンピューティング・デバイス1200を示し、当該デバイスは、特に、本明細書に記載の1以上のプロセスを実行するように構成されてもよい。
図12に示すように、コンピューティング・デバイス1200は、以下を含むことができる:通信インターフェース1202、プロセッサ1204、ストレージ・デバイス1206、及び通信インフラ1210を介して通信可能に接続される入力/出力(「I/O」)モジュール1208。例示的なコンピューティング・デバイス1200を、
図12に示すものの、
図12に示すコンポーネントは、限定することを意図するものではない。追加又は代替のコンポーネントを、他の実施形態において使用してもよい。
図12に示すコンピューティング・デバイス1200のコンポーネントを、以下で、更に詳細に説明する。
【0094】
通信インターフェース1202は、1以上のコンピューティング・デバイスと通信するように構成されてもよい。通信インターフェース1202の例は、限定されるものではないが、以下を含む:有線ネットワーク・インターフェース(例えば、ネットワーク・インターフェース・カード)、ワイヤレス・ネットワーク・インターフェース(例えば、ワイヤレス・ネットワーク・インターフェース・カード)、モデム、オーディオ/ビデオ接続、及び任意の他の適切なインターフェース。
【0095】
プロセッサ1204は、概して、任意のタイプ又は形態の処理ユニット(例えば、中央演算装置及び/又はグラフィックス・プロセッシング・ユニット)を表し、データを処理することができ、又は、本明細書に記載の1以上のインストラクション、プロセス、及び/若しくはオペレーションの実行を解釈し、実行し、及び/若しくは指示することができる。プロセッサ1204は、1以上のアプリケーション1212又は他のコンピュータ可読インストラクション(例えば、ストレージ・デバイス1206又は別のコンピュータ可読媒体に記憶されてもよい)に従って、オペレーションの実行を指示することができる。
【0096】
ストレージ・デバイス1206は、1以上のデータ・ストレージ・メディア、デバイス、又は構成を含むことができ、そして、データ・ストレージ・メディア及び/又はデバイスを任意のタイプ、任意の形態、及び任意の組み合わせで採用することができる。例えば、ストレージ・デバイス1206は、以下を含むことができるが、これらに限定されない:ハード・ドライブ、ネットワーク・ドライブ、フラッシュ・ドライブ、磁気ディスク、光学ディスク、RAM、ダイナミックRAM、他の不揮発性及び/又は揮発性のデータ・ストレージ・ユニット、又はこれらのコンビネーション若しくはサブコンビネーション。電子データは、本明細書に記載のデータを含むが、一時的に及び/又は永続的に、ストレージ・デバイス1206に記憶されてもよい。例えば、1以上の実行可能なアプリケーション1212を表すデータであって、プロセッサ1204に指示して本明細書に記載の任意のオペレーションを実行するように構成されるデータは、ストレージ・デバイス1206内に記憶されてもよい。幾つかの例において、データは、ストレージ・デバイス1206内に存在する1以上のデータベースに配置することができる。
【0097】
I/Oモジュール1208は、1以上のI/Oモジュールを含むことができ、当該モジュールは、ユーザ入力を受け取り、そして、ユーザ出力を提供するように構成されてもよい。1以上のI/Oモジュールを用いて、単独のバーチャル・リアリティ・エクスペリエンスのためのインプットを受け取ってもよい。I/Oモジュール1208は、インプット及びアウトプット能力をサポートする任意のハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。例えば、I/Oモジュール1208は、ユーザ入力をキャプチャするハードウェア及び/又はソフトウェアを含むことができ、限定されるものではないが、以下を含むことができる:キーボード若しくはキーパッド、タッチスクリーン・コンポーネント(例えば、タッチスクリーン・ディスプレイ)、レシーバー(例えば、RF又は赤外線受信機)、モーション・センサ、及び/又は1以上のインプットボタン。
【0098】
I/Oモジュール1208は、アウトプットをユーザに提示するために1以上のデバイスを含むことができ、限定されるものではないが、以下を含むことができる:グラフィックス・エンジン、ディスプレイ(例えば、ディスプレイ・スクリーン)、1以上のアウトプット・ドライバ(例えば、ディスプレイ・ドライバ)、1以上のオーディオ・スピーカ、及び1以上のオーディオ・ドライバ。特定の実施形態において、I/Oモジュール1208は、ユーザに提示するためのディスプレイにグラフィカルなデータを提供するように構成される。このグラフィカルなデータは、特定の実施に寄与することができる1以上のグラフィカル・ユーザ・インターフェース、及び/又は任意の他のグラフィカルなコンテンツを表すものであってもよい。
【0099】
幾つかの例において、本明細書に記載の任意の設備は、コンピューティング・デバイス1200の1以上のコンポーネントによって実装されてもよく、又は当該コンポーネント内で実装されてもよい。例えば、ストレージ・デバイス1206内に存在する1以上のアプリケーション1212は、システム100(
図1参照)のバーチャル・エンティティ・ステート・トラッキング設備102又はバーチャル・エンティティ記述フレーム設備104に関連する1以上のオペレーション又は機能を実行するようにプロセッサ1204に命令するように構成されてもよい。同様に、システム100のストレージ設備106は、ストレージ・デバイス1206によって実装されてもよく、又は該デバイス内で実装されてもよい。
【0100】
上述の実施形態が、個人によって提供される個人情報を収集、記憶、及び/又は採用する限度において、以下のように理解されたい:こうした情報は、個人情報の保護に関する全ての適用可能な法律に従って、使用することができる。更には、こうした情報の収集、記憶、及び使用は、こうした活動に対する個人の同意を得てもよい(例えば、情報の状況及びタイプに適した良く知られた「オプトイン」又は「オプトアウト」プロセスを通して)。個人情報の記憶及び使用について、適切に安全な態様で、例えば、特にセンシティブな情報に対して様々な暗号化及び匿名化を通した情報のタイプを反映したものであってもよい。
【0101】
上記説明において、様々な例示的実施形態について、添付図面に言及しながら説明してきた。しかし、以下の点は明白であろう:これらに対して様々な改変及び変更を行うことができ、そして、更なる実施形態を実施することができ、こうした、改変及び変更、並びに実施は、下記の特許請求の範囲に記載された発明の範囲から逸脱することなく、可能である。例えば、本明細書に記載の1つの実施形態の特定の特徴は、本明細書に記載の別の実施形態の特徴と組み合わせることができ、又は置き換えることができる。従って、上記説明及び図面は、限定的な意味ではなく、例示的な意味で理解すべきものである。