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

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

▶ バイバース リミテッドの特許一覧

特開2025-100793Dモデル処理システム及び方法、及び記憶回路
<>
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図1
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図2
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図3A
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図3B
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図3C
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図3D
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図4
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図5
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図6
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図7
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図8
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図9
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図10
  • 特開-3Dモデル処理システム及び方法、及び記憶回路 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025010079
(43)【公開日】2025-01-20
(54)【発明の名称】3Dモデル処理システム及び方法、及び記憶回路
(51)【国際特許分類】
   G06T 9/00 20060101AFI20250109BHJP
【FI】
G06T9/00 100
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024106544
(22)【出願日】2024-07-02
(31)【優先権主張番号】63/524,704
(32)【優先日】2023-07-03
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】524250477
【氏名又は名称】バイバース リミテッド
【氏名又は名称原語表記】Viverse Limited
(74)【代理人】
【識別番号】100204490
【弁理士】
【氏名又は名称】三上 葉子
(72)【発明者】
【氏名】オディング, アールト ビクター
(72)【発明者】
【氏名】ティッピー, ティームー ペターリー
(72)【発明者】
【氏名】パービライネン, タオーモー マーシズ
(57)【要約】      (修正有)
【課題】3Dモデルを効率的且つ低遅延でユーザに提供する3Dモデル処理システム、3Dモデル処理方法及び記憶回路を提供する。
【解決手段】3Dモデル処理システムは、記憶回路とプロセッサとを含む。記憶回路は、プログラムコードを格納し、プロセッサと結合する。プログラムコードは、プロセッサに、3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値とを取得することと、第1のオリジナル空間値と第2のオリジナル空間値との間の差分値を取得することと、差分値に基づいて第2のオリジナル空間値に対応する圧縮空間値を生成することと、を実行させる。
【選択図】図9
【特許請求の範囲】
【請求項1】
プログラムコードを格納する記憶回路と、
前記記憶回路に結合されて、
3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値とを取得し、
前記第1のオリジナル空間値と前記第2のオリジナル空間値との間の差分値を取得し、
前記差分値に基づいて前記第2のオリジナル空間値に対応する圧縮空間値を生成する
ために前記プログラムコードにアクセスするプロセッサと
を含む、
3Dモデル処理システム。
【請求項2】
前記第1のオリジナル空間値は前記3Dモデルの第1の座標であり、前記第2のオリジナル空間値は前記3Dモデルの第2の座標である、
請求項1に記載の3Dモデル処理システム。
【請求項3】
前記第1のオリジナル空間値は前記3Dモデルの三角形の第1の頂点インデックスであり、前記第2のオリジナル空間値は前記3Dモデルの前記三角形の第2の頂点インデックスである、
請求項1に記載の3Dモデル処理システム。
【請求項4】
前記プロセッサは更に、
前記第2のオリジナル空間値を前記差分値に置き換えることによって前記圧縮空間値を生成する、
請求項2に記載の3Dモデル処理システム。
【請求項5】
前記プロセッサは更に、
前記第2の頂点インデックスが前記第1の頂点インデックスと連続していることに応じて、前記第2のオリジナル空間値を特定の値に置き換えることによって前記圧縮空間値を生成する、
請求項3に記載の3Dモデル処理システム。
【請求項6】
前記プロセッサは更に、
前記第2の頂点インデックスが前記第1の頂点インデックスと連続しておらず且つ以前に用いられた3つのインデックスのうちの1つであることに応じて、前記第2のオリジナル空間値を特定の値に置き換えることによって前記圧縮空間値を生成する、
請求項3に記載の3Dモデル処理システム。
【請求項7】
前記プロセッサは更に、
前記第2の頂点インデックスが前記第1の頂点インデックスと連続しておらず且つ以前に用いられた3つのインデックスのうちの1つでないことに応じて、前記第2のオリジナル空間値の実際のインデックスを格納することによって前記圧縮空間値を生成する、
請求項3に記載の3Dモデル処理システム。
【請求項8】
前記プロセッサは更に、
前記差分値が負であることに応じて、前記差分値が正であることを確実にするために補償値を加算する、
請求項1に記載の3Dモデル処理システム。
【請求項9】
前記プロセッサは更に、
近くにある前記3Dモデルのメッシュを複数の三角形のグループにグループ化する、
請求項1に記載の3Dモデル処理システム。
【請求項10】
3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値とを取得することと、
前記第1のオリジナル空間値と前記第2のオリジナル空間値との間の差分値を取得することと、
前記差分値に基づいて前記第2のオリジナル空間値に対応する圧縮空間値を生成することと
を含む、
3Dモデル処理方法。
【請求項11】
前記第1のオリジナル空間値は前記3Dモデルの第1の座標であり、前記第2のオリジナル空間値は前記3Dモデルの第2の座標である、
請求項10に記載の3Dモデル処理方法。
【請求項12】
前記第1のオリジナル空間値は前記3Dモデルの三角形の第1の頂点インデックスであり、前記第2のオリジナル空間値は前記3Dモデルの前記三角形の第2の頂点インデックスである、
請求項10に記載の3Dモデル処理方法。
【請求項13】
前記第2のオリジナル空間値を前記差分値に置き換えることによって前記圧縮空間値を生成すること
を更に含む、
請求項11に記載の3Dモデル処理方法。
【請求項14】
前記第2の頂点インデックスが前記第1の頂点インデックスと連続していることに応じて、前記第2のオリジナル空間値を特定の値に置き換えることによって前記圧縮空間値を生成すること
を更に含む、
請求項12に記載の3Dモデル処理方法。
【請求項15】
前記第2の頂点インデックスが前記第1の頂点インデックスと連続しておらず且つ以前に用いられた3つのインデックスのうちの1つであることに応じて、前記第2のオリジナル空間値を特定の値に置き換えることによって前記圧縮空間値を生成すること
を更に含む、
請求項12に記載の3Dモデル処理方法。
【請求項16】
前記第2の頂点インデックスが前記第1の頂点インデックスと連続しておらず且つ以前に用いられた3つのインデックスのうちの1つでないことに応じて、前記第2のオリジナル空間値の実際のインデックスを格納することによって前記圧縮空間値を生成する、
を更に含む、
請求項12に記載の3Dモデル処理方法。
【請求項17】
前記差分値が負であることに応じて、前記差分値が正であることを確実にするために補償値を加算すること
を更に含む、
請求項10に記載の3Dモデル処理方法。
【請求項18】
近くにある前記3Dモデルのメッシュを複数の三角形のグループにグループ化する、
を更に含む、
請求項10に記載の3Dモデル処理方法。
【請求項19】
前記第1のオリジナル空間値は数値のシーケンスの最小値であり、前記第2のオリジナル空間値は前記数値のシーケンスの最大値であり、
前記差分値に基づいて精度のビットの数を決定すること
を更に含む、
請求項10に記載の3Dモデル処理方法。
【請求項20】
プロセッサに、
3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値とを取得させ、
前記第1のオリジナル空間値と前記第2のオリジナル空間値との間の差分値を取得させ、
前記差分値に基づいて前記第2のオリジナル空間値に対応する圧縮空間値を生成させる
よう構成されたプログラムコードを格納する、
非一時的な記憶回路。
【発明の詳細な説明】
【背景技術】
【0001】
本発明は3D(3-dimensional)モデル処理システムに関するものであり、特に、本発明は3Dモデル処理システム、3Dモデル処理方法、及び記憶回路に関するものである。
【0002】
ユーザに没入型体験をもたらすため、拡張現実(Augmented Reality、AR)、仮想現実(Virtual Reality、VR)、複合現実(Mixed Reality、MR)といったクロスリアリティ(XR)に関連する技術が絶えず開発されている。AR技術は、ユーザに仮想要素を現実世界に持ち込むことを可能とする。VR技術は、ユーザに異なる生活を体験させるために全く新しい仮想世界に進入することを可能とする。MR技術は、現実世界と仮想世界とを融合させる。更に、完全な没入型体験をユーザにもたらすため、視覚コンテンツ、音声コンテンツ、又は他の感覚のコンテンツをウェブ経由でユーザに提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、XRのコンテンツをユーザに提供する効率的且つ低遅延な方法を提供する、3Dモデル処理システム、3Dモデル処理方法、及び記憶回路に関するものである。
【課題を解決するための手段】
【0004】
本発明において、3Dモデル処理システムを提供する。3Dモデル処理システムは、記憶回路とプロセッサとを含む。記憶回路は、プログラムコードを格納するよう構成される。プロセッサは、記憶回路に結合され、3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値を取得し、第1のオリジナル空間値と第2のオリジナル空間値との間の差分値を取得し、該差分値に基づいて第2のオリジナル空間値に対応する圧縮空間値を生成するためプログラムコードにアクセスするよう構成される。
【0005】
本発明において、3Dモデル処理方法を提供する。3Dモデル処理方法は、第1のオリジナル空間値と第2のオリジナル空間値とを取得することと、第1のオリジナル空間値と第2のオリジナル空間値との間の差分値を取得することと、該差分値に基づいて第2のオリジナル空間値に対応する圧縮空間値を生成することとを含む。
【0006】
本発明において、記憶回路を提供する。記憶回路はプログラムコードを格納するよう構成され、プログラムコードはプロセッサに、3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値を取得させ、第1のオリジナル空間値と第2のオリジナル空間値との間の差分値を取得させ、該差分値に基づいて第2のオリジナル空間値に対応する圧縮空間値を生成させるよう構成される。
【発明の効果】
【0007】
上記に基づき、3Dモデル処理システム、3Dモデル処理方法、及び記憶回路によると、3Dモデルを効率的且つ低遅延でユーザに提供することができる。
【0008】
上述した内容をより理解しやすくするため、図面を参照していくつかの実施形態を以下に詳細に説明する。
【図面の簡単な説明】
【0009】
本発明の更なる理解を提供するために添付図面が含まれ、本明細書に組み込まれてその一部を構成する。図面は、本発明の例示的な実施形態を表し、明細書と共に本発明の原理を説明する役割を果たす。
【0010】
図1】本発明の1つの実施形態による3Dモデル処理システムの概略図である。
図2】本発明の1つの実施形態による3Dモデル処理方法のフロー図である。
図3A】本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。
図3B】本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。
図3C】本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。
図3D】本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。
図4】本発明の1つの実施形態による3Dモデルのベイクシナリオの概略図である。
図5】本発明の1つの実施形態による3Dモデルの平坦化シナリオの概略図である。
図6】本発明の1つの実施形態による3Dモデル処理システムのファイル形式の概略図である。
図7】本発明の1つの実施形態による3Dモデル処理方法のフロー図である。
図8】本発明の1つの実施形態による3Dモデルのビューシナリオの概略図である。
図9】本発明の1つの実施形態による3Dモデル処理方法のフロー図である。
図10】本発明の1つの実施形態による3Dモデルの圧縮シナリオの概略図である。
図11】本発明の1つの実施形態による3Dモデルの圧縮シナリオの概略図である。
【発明を実施するための形態】
【0011】
本発明の例示的な実施形態を詳細に参照し、その例を添付図面に示す。可能な限り、図面及び明細書では同一又は同様の構成要素を指すために同一の参照符号を用いる。
【0012】
明細書及び添付の特許請求の範囲全体にわたり、特定の構成要素を指すために特定の用語を用いる。当業者は、電子機器製造業者が同じ構成要素を異なる名称で呼ぶ場合があることを理解するはずである。ここでは、同一の機能で名称が異なる構成要素を区別することを意図していない。以下の説明及び特許請求の範囲において、「から成る」や「を含む」といった用語は開放式用語であり、「…を含むが、…に限定されない」と説明されるべきである。
【0013】
本願の明細書全体(添付の特許請求の範囲を含む)を通じて使用される用語「結合(又は接続)」は、任意の直接的又は間接的な接続手段を指し得る。例えば、第1のデバイスが第2のデバイスに結合(又は接続)されると説明している場合、第1のデバイスが第2のデバイスに直接接続される、又は、第1のデバイスが他のデバイスを介して間接的に接続される、又は、特定の接続手段が第2のデバイスに接続されると解釈されるべきである。本願の明細書全体(添付の特許請求の範囲を含む)を通じて言及される用語「第1」、「第2」、及び類似の用語は、単に個別の要素を指定するため、又は、異なる実施形態又は範囲を区別するために用いられる。このため、該用語は要素の量の上限又は下限を限定するものと見なされるべきではなく、また、要素の配置順序を限定するために用いられるべきではない。加えて、可能な限り、図面及び実施形態において同一の参照符号を用いる要素/構成要素/工程は、同一又は類似の部分を表す。異なる実施形態において同一の参照符号を用いるか同一の用語を用いて、要素/構成要素/工程の関連する説明を相互に参照することができる。
【0014】
以下の実施形態において、本発明の精神から逸脱することなく、いくつかの異なる実施形態の技術的特徴を置き換え、組み換え、及び混合させて他の実施形態を完成させることができることに留意されたい。各実施形態の特徴は、本発明の精神に反したり互いに矛盾しない限り、任意に組み合わせて用いることができる。
【0015】
ユーザに没入型体験をもたらすため、拡張現実(AR)、仮想現実(VR)、複合現実(MR)といったクロスリアリティ(XR)に関連する技術が絶えず開発されている。AR技術は、ユーザに仮想要素を現実世界に持ち込むことを可能とする。VR技術は、ユーザに異なる生活を体験させるために全く新しい仮想世界に進入することを可能とする。MR技術は、現実世界と仮想世界とを融合させる。更に、完全な没入型体験をユーザにもたらすため、視覚コンテンツ、音声コンテンツ、又は他の感覚のコンテンツをウェブ経由でユーザに提供することができる。
【0016】
XRのコンテンツ(例えば、3Dジオメトリデータ)がインターネット上でユーザにストリーミングされるとき、仮想現実において配置される前にユーザが長時間待つ必要がないことが重要である。このため、XRのコンテンツを作成する段階において、XRのコンテンツのサイズと構成が重要である。
【0017】
更に、XRのコンテンツ(例えば、3Dジオメトリデータ)をウェブ上で送信するとき、データ伝送をより速くするためXRのコンテンツの、三角形のセットから成るメッシュは可能な限り少ないバイトで格納されることが重要である。同時に、システムがデータをフェッチするとき、データの復号はユーザに対して目立った遅延を生じさせないのに十分なパフォーマンスでなければらなない。
【0018】
更に、ユーザがユーザデバイス(例えば、コンピュータ、スマートフォンなど)によってXRのコンテンツを見ている間に、ユーザデバイスによってネットワーク上で仮想世界をロードする従来の方法は、スタートアップ時に全てのデータをロードする(ローディング時間が長い)、又は、ユーザのユーザ代表オブジェクト(例えば、アバター)がその(情景において現れる及び消えるオブジェクト)近くに行ったときのデータにおいてロードされることが多い。このため、ローディングの待機時間又はローディングの遅延のため、ユーザ体験が中断される可能性がある。上記を鑑み、当業者はXRのコンテンツをユーザに提供するための効率的且つ低遅延な方法を提供することを追求している。
【0019】
3DモデルといったXRのコンテンツを効率的且つ低遅延な方法でユーザに提供するため、第1に、3Dモデルが如何にして準備され、作成され、分割(partition)されるか、第2に、3Dモデルが如何にして圧縮されるか、第3に、3Dモデルが如何にしてユーザ端(例えば、ユーザのユーザデバイス)からロードされるか、という3Dモデルに関する3つの様態をいくつかの実施形態と共に以下に説明する。これら3つの様態は、XRのコンテンツをユーザに提供するため、個別に又は共に用いられてよく、本発明はこれを限定しない。
【0020】
図1は、本発明の1つの実施形態による3Dモデル処理システムの概略図である。図1を参照し、3Dモデル処理システム100を図示している。異なる実施形態において、3Dモデル処理システム100は様々なスマートデバイス及び/又はコンピュータデバイスとして実施されてよいが、これに限定されない。
【0021】
図1において、3Dモデル処理システム100は、(非一時的な)記憶回路102とプロセッサ104とを含む。記憶回路102は、例えば、任意のタイプの固定又は取外し可能なランダムアクセスメモリ(RAM)、読み出し専用メモリ(read-only memory、ROM)、フラッシュメモリ、ハードディスク、他の類似のデバイス、又はこれらのデバイスの組合せであり、複数のプログラムコード又はモジュールを記録するために用いられてよい。
【0022】
プロセッサ104は記憶回路102に結合され、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタルシグナルプロセッサ、複数のマイクロプロセッサ、デジタルシグナルプロセッサと組み合わされた1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、他のタイプの集積回路、ステートマシン、Advanced RISC Machine(ARM)に基づくプロセッサなどであってよい。
【0023】
本発明の1つの実施形態において、プロセッサ104は、本発明が提案する3Dモデル処理を実装するため記憶回路102に記録されたモジュール及びプログラムコードにアクセスしてよく、その詳細を以下に説明する。
【0024】
図2は、本発明の1つの実施形態による3Dモデル処理方法のフロー図である。図1図2を参照し、本実施形態の3Dモデル処理方法200は図1における3Dモデル処理システム100により実行されてよく、図2の各ステップの詳細を図1に示した構成要素と共に以下に説明する。
【0025】
先ず、ステップS210にて、3Dモデルの複数のノードが取得されてよい。1つの実施形態において、ノードは3Dモデルの基本構成要素である。即ち、複数のノードはジオメトリ(例えば、三角形)を形成することができ、複数のジオメトリは3Dモデルを形成することができる。次に、ステップS220にて、3Dモデルは、位置又はマテリアルに基づいて第1のオリジナルパーティションと第2のオリジナルパーティションとに分けられてよい。更に、第1のオリジナルパーティションは第1のノードグループを含んでよく、第2のオリジナルパーティションは第2のノードグループを含んでよい。即ち、3Dモデルは複数の位置と複数のマテリアルとを含んでよく、3Dモデルの各領域の位置又はマテリアルに基づき、3Dモデルは複数のブロック(例えば、第1のオリジナルパーティション、第2のオリジナルパーティションなど)に区分されてよい。その後、ステップS230にて、複数のノードは第1のオリジナルパーティションと第2のオリジナルパーティションとに基づいて第1のノードグループと第2のノードグループとに区分されてよい。言及すべき点として、ステップS220とステップS230は同時に実行されてよく、ステップS220は3Dモデルのピースの形状を定義してよく、ステップS230はどのノードが3Dモデルのピースに属するかを定義してよい。ただし、本発明はこれに限定されない。更に、ステップS240にて、第1のノードグループに基づき、第1のオリジナルパーティションのための異なる詳細レベルの複数の第1の段階パーティション(graded partition)が生成されてよい。更に、ステップS250にて、第2のノードグループに基づき、第2のオリジナルパーティションのための異なる詳細レベルの複数の第2段階パーティションが生成されてよい。
【0026】
なお、説明の便宜上、3Dモデルが第1のオリジナルパーティションと第2のオリジナルパーティションとを含むと説明しているが、3Dモデルは複数のオリジナルパーティションを含んでよい。更に、複数の段階パーティションは複数のオリジナルパーティションに対応する。ただし、本発明はこれに限定されない。
【0027】
上記に基づき、3Dモデルをマテリアル又は位置に基づいて分割することにより、3Dモデルの各パーティションのサイズを減少させることができる。このため、ユーザ端のユーザデバイスからの要求に基づき、オリジナルモデル全体を一度にロードするのではなく、オリジナルモデルの一部のみを要求に応じてロードすることができ、これにより待機時間を減らしてユーザ体験を向上させる。
【0028】
加えて、3Dモデル処理システム100及び3Dモデル処理方法200の実施の詳細は、十分な教示、示唆、及び実施形態を得るために下記の図3A図6の説明を参照してよい。いくつかの実施形態において、3Dモデル処理システム100の機能及び3Dモデル処理方法200はプロセッサ104によって実行されてよいが、本発明はこれに限定されない。
【0029】
図3Aは、本発明の1つの実施形態による3Dモデルの分割シナリオ(partitioning scenario)の概略図である。図3Bは、本発明の1つの実施形態による3Dモデルの分割シナリオのもう1つの概略図である。図3A図3Bを参照し、分割シナリオ300Aはオリジナルモデル310と複数のオリジナルパーティション320とを含み、分割シナリオ300Bはオリジナルモデル310と複数のオリジナルパーティション330とを含む。
【0030】
3Dモデルの準備段階において、3Dモデルを如何にしてピースに切り分けるかは、インターネット上での3Dモデルのストリーミングの効率のみならず、ユーザ端での3Dモデルのローディングの速度にも影響する。即ち、3Dモデルのローディング及びレンダリングの速度及びパフォーマンスを向上させるため、3Dモデルを如何にしてピースに切り分けるかが重要である。1つの実施形態において、3Dモデルのより小さなピースはパーティションと呼ばれてよい。
【0031】
図3Aを参照し、1つの実施形態において、3Dモデルは、3Dモデルの各ピース又は各領域のマテリアル又は位置に基づき、より小さなピース(即ちパーティション)に区分されてよい。例えば、ロボットのオリジナルモデル310は、異なるパーツ、例えば、頭、体、腕、車輪などを含んでよい。これらパーツは、金属、プラスチック、ゴムなどといった異なるマテリアルから成るよう設計されてよい。ロボットのオリジナルモデル310は異なるマテリアルに分類されてよく、図3Aに示すように、マテリアル(例えば、各ピースのマテリアルインデックス)に基づいてピースに区分されてよい。1つの実施形態において、各ピースのマテリアルインデックスは設計要件に応じて予め定義されてよい。例えば、マテリアルインデックスが1であるマテリアルのピースは金属であってよい。全てのピースのマテリアルインデックスは、3Dモデルに対応するUVマップに関連付いてよい。ただし、本発明はこれに限定されない。即ち、同一のマテリアルのパーティションは共にグループ化されてよい。換言すれば、第1のオリジナルパーティションは第1のマテリアルに属してよく、第2のオリジナルパーティションは第2のマテリアルに属してよい。各ピースのマテリアルに基づいてオリジナルモデル310をピースに分ける処理のモードは「マテリアルモード」と呼ばれてよく、これら区分されたピースは複数のオリジナルパーティション320と呼ばれてよい。
【0032】
図3Bを参照し、1つの実施形態において、3Dモデルは、3Dモデルの各ピースの位置に基づいて、より小さなピースに区分されてよい。例えば、ロボットのオリジナルモデル310は、上部分、下部分、左部分、右部分、前部分、後部分などを含んでよい。ロボットのオリジナルモデル310は異なる位置又は空間における象限に分割されてよく、図3Bに示すように、位置に基づいてピースに区分されてよい。即ち、互いに近いパーティションが共にグループ化されてよい。換言すれば、第1のオリジナルパーティションは第1の位置に属してよく、第2のオリジナルパーティションは第2の位置に属してよい。オリジナルモデル310を位置に基づいてピースに分ける処理のモードは「空間モード」と呼ばれてよく、これら区分されたピースは複数のオリジナルパーティション330と呼ばれてよい。
【0033】
図3Cは、本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。図3Cを参照し、分割シナリオ300Cは分割シナリオ301Cと分割シナリオ302Cとを含む。分割シナリオ301Cはマテリアルモードで分割されたオリジナルモデル310を図示し、分割シナリオ302Cは空間モードで分割されたオリジナルモデル310を図示している。
【0034】
1つの実施形態において、オリジナルモデル310は、複数のオリジナルパーティション320を作成するマテリアルモード、又は、複数のオリジナルパーティション330を作成する空間モードのいずれかを用いてピースに分けられてよいが、本発明はこれに限定されない。即ち、分割のモードは先に決定されてよい。次いで、分割のモードに基づき、オリジナルモデル310が複数のパーティションに分けられてよい。1つの実施形態において、バウンディングボックスがオリジナルモデル310のパーティションを表してよいが、これに限定されない。例えば、図3Cに示すように、分割シナリオ301Cと分割シナリオ302Cのそれぞれは複数のバウンディングボックスを含んでよく、複数のバウンディングボックスはそれぞれ複数のオリジナルパーティション320又は複数のオリジナルパーティション330を表してよい。
【0035】
なお、より大きなパーティションがより小さなパーティションに分けられてよい。即ち、オリジナルモデル310はより小さなパーティションに分けられてよく、オリジナルモデル310のパーツは互いに独立して視覚品質において変化してよい。分ける処理は再帰アルゴリズムで成されてよい。即ち、分ける処理は特定条件が満たされるまで繰り返し実行されてよい。このため、オリジナルモデル310は独立した三角形として格納されてよく、オリジナルモデル310全体を一度にメモリに有することを必要とせずにオリジナルモデル310を三角形毎に解析することが可能である。1つの実施形態において、三角形は、独立した三角形の集合のファイルであってよいスープファイルと呼ばれてよい、又はこのスープファイルとして格納されてよい。
【0036】
例えば、分割のモードが決定されて分割が実行された後、各パーティションのバウンディングボックスが複数のパーツに分けられてよく、次いで新たなバウンディングボックスに包含される三角形の新たなスープファイルが作成されてよい。この分ける処理は再帰的に実行されてよい。例えば、分ける処理の第1の反復で、複数のオリジナルパーティション320又は複数のオリジナルパーティション330の全ての三角形が2つ以上のグループ(チルドレンとしても知られる)に分けられてよい。次いで、各グループの2つ以上のチルドレンを作成するため、これらグループに分ける処理が再び実行されてよい。この分ける処理は、例えば全てのチルドレンのそれぞれが三角形閾値を下回るといった特定条件が満たされるまで繰り返されてよい。三角形閾値は設計要件に応じて調整されてよい。1つの実施形態において、三角形閾値はユーザデバイスの演算能力の最大値又は接続速度に基づいて決定されてよい。即ち、分ける処理の最後の反復の後、三角形の各グループ中の三角形の数は三角形閾値未満である。分ける処理の後、共に作成されたパーティションはオリジナルモデル310のツリー又は階層(hierarchy)を形成してよい。即ち、3Dモデルを一度にロードするのではなく、3Dモデルはパーティション毎にロードされてよい。このようにして、マテリアル又は位置に基づいて3Dモデルを分割することにより、3Dモデルの各パーティションのサイズを減少させることができる。このため、ユーザデバイスからの要求に基づき、オリジナルモデル310全体を一度にロードするのではなく、オリジナルモデル310の一部のみが必要に応じてロードされることができ、これにより待機時間を減らしてユーザ体験を向上させる。
【0037】
図3Dは、本発明の1つの実施形態による3Dモデルの分割シナリオの概略図である。図3Dを参照し、分割シナリオ300Dは段階パーティション340を含む。
【0038】
1つの実施形態において、オリジナルモデル310の分割の後、オリジナルモデル310は、例えばオリジナルパーティション320又はオリジナルパーティション330といったピースに分けられてよい。即ち、オリジナルモデル310がユーザデバイスによってロードされる間に、オリジナルモデル310はパーティション毎にロードされ、各パーティションのサイズはユーザ端のコンピュータの能力に基づいて決定されてよい。ただし、特定の状況において、3Dモデルをパーティション毎にロードするのではなく、3Dモデルを一度に全てロードする必要がある。即ち、オリジナルモデル310の三角形の総数は、ユーザデバイスが全ての三角形を一度に処理するために三角形閾値よりも小さい必要がある。例えば、三角形閾値はユーザデバイスの演算能力の最大値に基づいて決定されてよい。1つの実施形態において、三角形の総数が三角形閾値未満となるまで三角形を除去するために、デシメーション(decimation)アルゴリズム(設計要件に応じて既存の技術から選択される)が用いられてよい。
【0039】
同時に、ユーザが3Dモデル全体ではなく3Dモデルのうちの一部分を見ているとき、3Dモデルのうちの該部分はユーザに最適な視覚体験を提供すべきである。即ち、ユーザがオリジナルモデル310全体ではなくオリジナルモデル310のうちの一部分(例えば、パーティション)を見ているとき、該部分の三角形の数も三角形閾値に符合すべきである。換言すれば、最適な視覚体験を提供するために該部分の三角形の数を増加させるよう、重要特徴(例えば、視覚的に顕著な特徴)を含むいくつかの三角形が該部分に戻されてよい。
【0040】
一方、ユーザが3Dモデルの該部分のうちの一部分を見ているとき、該部分のうちの該一部分もユーザに最適な視覚体験を提供すべきである。即ち、ユーザがオリジナルモデル310のうちの該部分のうちの一部分(例えば、パーティションの一部分)を見ているとき、該一部分の三角形の数も三角形閾値に符合すべきである。同様に、最適な視覚体験を提供するために該一部分の三角形の数を増加させるよう、重要特徴を含むいくつかの三角形が該一部分に戻されてよい。1つの実施形態において、パーティション又はパーティションの一部分は、マテリアルモード又は空間モードにおけるオリジナルモデル310の分割処理によって定義されてよい。ただし、本発明はこれに限定されない。
【0041】
まとめると、オリジナルモデル310は複数のパーティション(例えば、オリジナルパーティション320又はオリジナルパーティション330)を含んでよく、最適な視覚体験を提供するため、各パーティションは異なる表示状況のための異なる三角形の量を含むよう処理されてよい。即ち、各パーティションは個別に表示されるために複数の段階パーティションを生成するよう処理されてよい。各段階パーティションは分割の一つのレベルに属してよい。即ち、オリジナルモデル310の各パーティションは段階パーティションの分割の異なるレベルに属してよい。
【0042】
1つの実施形態において、各パーティションは、レベル0、レベル1、レベル2といった、3レベルの分割を含んでよい。分割のレベルは、3Dモデル又は3Dモデルのパーティションがいくつのパーツ又はグループに区分されるかを定義してよく、分割のレベルが高いほどより多くのグループを表す。即ち、分割のレベルが高いほど、より多くの三角形のグループがオリジナルモデル310のパーティションに含まれる。例えば、図3Dに示すように、レベル0分割で、オリジナルモデル310のパーティション(例えば、サルの頭)の三角形又はオリジナルモデル310の三角形は同一グループに属する。より具体的には、三角形の1つのグループは50,000個の三角形を含み、レベル0分割のパーティション又はオリジナルモデル310の三角形の総数は50,000であってよい。更に、レベル1分割で、パーティションの三角形又はオリジナルモデル310の三角形は、個別に表示されるよう2つのグループに属してよい。より具体的には、三角形の各グループは50,000個の三角形を含んでよく、レベル1分割のパーティションの三角形又はオリジナルモデル310の三角形の総数は100,000である。更に、レベル2分割で、パーティションの三角形又はオリジナルモデル310の三角形は、個別に表示されるよう4つのグループに属してよい。より具体的には、三角形の各グループは50,000個の三角形を含んでよく、レベル2分割のパーティションの三角形又はオリジナルモデル310の三角形の総数は200,000であってよい。ただし、本発明はこれに限定されない。
【0043】
ここで図3Dを再び参照し、1つの実施形態において、分割の各レベルについて、異なる詳細レベル(level of detail、LoD)が作成されてよい。即ち、各オリジナルパーティション320又は各オリジナルパーティション330は異なるLoDを含んでよい。この目的は、各段階パーティションの三角形が異なる三角形閾値よりも小さいことを確実にするためである。例えば、ユーザ端の異なる種類のユーザデバイスにおいて、各ユーザデバイスの演算能力は異なる可能性がある。このため、異なるユーザデバイスには異なる三角形閾値が適用される。各段階パーティションのための異なる詳細レベルを生成するために三角形の数を特定の限度を下回るまで三角形を除去するため、デシメーションアルゴリズム(設計要件に応じて既存の技術から選択される)が用いられてよい。この限度はユーザデバイスの演算能力に基づいて決定されてよい。1つの実施形態において、分割の各レベルは、LoD0、LoD1、LoD2といった3つの詳細レベル(LoD)を含んでよい。即ち、段階パーティションは、詳細レベル0のパーティションと、詳細レベル1のパーティションと、詳細レベル2のパーティションとを少なくとも含んでよい。LoDは、三角形の各グループがいくつの三角形を含むべきかを定義し、より低いLoDはより多くの三角形を表す。即ち、詳細レベルが低いほど、より多くの三角形が三角形の各グループに含まれてよい。換言すれば、詳細レベルが高いほど圧縮率も高い。
【0044】
例えば、LoD0での三角形個数限度は50,000であってよい。即ち、1つの三角形のグループは50,000個の三角形を含んでよい。LoD1での三角形個数限度は12,500であってよい。即ち、1つの三角形のグループは12,500個の三角形を含んでよい。LoD2での三角形個数限度は4,000であってよい。即ち、1つの三角形のグループは4,000個の三角形を含んでよい。三角形個数限度は、設計要件に応じて、又は、ユーザデバイスの演算能力に基づいて決定されてよい。ただし、本発明はこれに限定されない。言及すべき点として、分割の各レベルのグループ(即ちパーティション)は、オリジナルモデル310又はオリジナルモデル310のパーティションを共に形成してよい。即ち、レベル0分割のオリジナルモデル310又はオリジナルモデル310のパーティションはLoD0において50,000個の三角形を含んでよく、レベル1分割のオリジナルモデル310又はオリジナルモデル310のパーティションはLoD0において100,000個の三角形を含んでよく、レベル2分割のオリジナルモデル310又はオリジナルモデル310のパーティションはLoD0において200,000個の三角形を含んでよい。
【0045】
なお、異なる詳細レベルの1つの目的は、モデルを見ている間に選択肢をユーザに提供することであり、いくつかの重要でないディテールを完全に提供せずとも理想的な視覚結果がユーザに提供される。即ち、オリジナルモデル310の各パーティションは、必要なときに、より高い又はより低い品質でレンダリングされてよい。例えば、オリジナルモデル310の視聴者に近い部分のみがより高いディテールでレンダリングされてよく、オリジナルモデル310の視聴者から遠い他の部分はより低いディテールでレンダリングされてよい。各パーティションのこれら異なる詳細レベルは、3Dモデルの全てのディテールを一度に全てレンダリングする必要がないため、オリジナルモデル310がユーザに理想的な視覚結果を提供できる傍ら、レンダリングのパフォーマンスを向上させる助けとなる。このようにして、3Dモデル処理システム100又は3Dモデル処理方法200は、3Dモデルのローディング及びレンダリングの速度及びパフォーマンスを向上するための強力な方法を提供することができる。
【0046】
図4は、本発明の1つの実施形態による3Dモデルのベイクシナリオの概略図である。図4を参照し、ベイクシナリオ400は、テクスチャがベイク処理を利用して如何にして3Dモデルのメッシュ(例えば、三角形)に適用されるかを図示している。
【0047】
1つの実施形態において、3Dモデルのパーティションが大きなテクスチャを含む場合、メッシュ(例えば、三角形)がいくつかの詳細レベルを含むのみならず、テクスチャのために複数の詳細レベルが生成されてよい。例えば、パーティションが2048×2048ピクセルのテクスチャを有する場合、該パーティションはより多くのピース、例えば4つのピースに区分されてよい。即ち、それぞれ1024×1024ピクセルを有する4つのパーティションが作成されてよい。このようにして、パーティションのテクスチャ全体を一度にロードするのではなく、テクスチャの一部のみが要求に応じてユーザデバイスからロードされてよく、これにより待機時間を減らしてユーザ体験を向上させる。
【0048】
1つの実施形態において、ベイク処理は高解像度3Dモデルから低解像度3Dモデルへと詳細情報を転換する処理である。これは典型的に、パフォーマンスを向上させるかファイルサイズを減少させることによって成される。ベイク処理は、照明、影、及び表面不完全性といった高解像度モデルのディテールを捉えたテクスチャマップを作成することを含む。次いで、これらテクスチャマップが低解像度モデルに適用され、全てのポリゴンをレンダリングする演算コストなしに高解像度モデルの外観を与える。
【0049】
言及すべき点として、3Dモデルのためのテクスチャマップのテクスチャ座標がテクスチャ画像において過度に多くの空間を占める場合、テクスチャ座標は再計算されてよく、テクスチャは図4に示すように再度ベイクされてよい。例えば、オリジナルモデル410のテクスチャが取得されて、UV座標系における複数のテクスチャマップ420として格納されてよい。例えば、図4に示すように、オリジナルモデル410は4つのテクスチャマップ420に対応する。テクスチャマップ420は、複数の圧縮テクスチャマップ422を生成するために圧縮されてよい。例えば、図4に示すように、4つのテクスチャマップ420は4つの圧縮テクスチャマップ422を形成するためにオリジナルサイズの4分の1に圧縮されてよい。次に、複数のベイク処理済みテクスチャマップ424を生成するため、ベイク処理が各圧縮テクスチャマップに実行されてよい。その後、ベイク処理済みパーティション430を形成するため、複数のベイク処理済みテクスチャマップ424のそれぞれがオリジナルモデル410の対応するメッシュに適用されてよい。即ち、3Dモデルは2D面(例えば、テクスチャマップ420)に展開されてよい。更に、3Dモデルのテクスチャの高解像度モデルを低解像度モデルに転換することにより、ベイク処理済みテクスチャが作成(ベイク)されてよい。換言すれば、ベイク処理済みテクスチャはテクスチャの高解像度モデルの重要特徴(例えば、視覚的に顕著な特徴)を含んでよい。更に、ベイク処理済みテクスチャが3Dモデルのメッシュに適用されてよい。このようにして、ベイク処理はオリジナルモデル410を格納及びレンダリングするのにより効率化することができる。
【0050】
1つの実施形態において、テクスチャをベイクすることによってメッシュをより効率的に格納できる場合、テクスチャ座標を再計算してテクスチャを再度ベイクするためにベイク処理が実行されてよい。テクスチャ座標が過度に多くの空間を占める場合、テクスチャ座標の総面積がテクスチャの総面積で除算されてよい。除算の結果が特定の閾値よりも低い場合、テクスチャ座標は再計算されてよく、テクスチャは再度ベイクされてよい。閾値はユーザによって設定された値であってよい。閾値が低いほど、テクスチャ座標が再計算される可能性が高い。
【0051】
図5は、本発明の1つの実施形態による3Dモデルの平坦化シナリオの概略図である。図5を参照し、平坦化シナリオ500は、非平坦化モデル階層510と平坦化モデル階層520とを含んでよい。
【0052】
1つの実施形態において、3Dモデルは、階層と呼ばれる多くの異なるパーツから成ってよい。これら階層は入れ子にされてよく、1つのパーツが他のパーツを含んでよい。なお、3Dモデルが平坦化されるとき、全ての階層が除去され、3Dモデルは、単一の、三角形の平坦アレイに変換される。例えば、平坦化処理を実行することにより、非平坦化モデル階層510は3Dモデルの構造中の全ての階層を除去して三角形の平坦アレイのみが残ることを確実にすることによって、平坦化モデル階層520とされてよい。これは3Dモデルの見た目を変化させないが、処理しやすくする。即ち、非平坦化モデル階層510に対応する非平坦化モデルと平坦化モデル階層520に対応する平坦化モデルとの間に視覚的変化はない。三角形の平坦アレイを格納するこれらファイルは、独立した三角形の集合のファイルであるスープファイルと呼ばれる、又は、スープファイルとして格納されてよい。
【0053】
1つの実施形態において、平坦アレイ中の各三角形は、三角形を成す頂点の位置、三角形のテクスチャ座標、及び三角形のマテリアルインデックスという3つの情報を格納してよい。テクスチャ座標は、3Dモデルのレンダラに、三角形をレンダリングするために用いるべきテクスチャ画像が何処に見つかるかを述べてよい。マテリアルインデックスは、レンダラに三角形をレンダリングするためにどのマテリアルを用いるかを述べてよい。言及すべき点として、3Dモデルのための全てのデータを三角形の平坦アレイに格納することは、特に大きな3Dモデルに対して処理しやすくことができる。これは、レンダラが階層をトラバースすることを要さずに必要とするデータに迅速にアクセスすることができるためである。このようにして、コンピュータ上の利用可能なメモリ量よりも大きい3Dモデルを処理することが可能となる。
【0054】
図6は、本発明の1つの実施形態による3Dモデル処理システムのファイル形式の概略図である。図6を参照し、ファイル形式600は3Dモデルの例示的な内容を図示しているが、本発明はこれに限定されない。
【0055】
1つの実施形態において、全ての詳細レベルのためのメッシュ及びテクスチャの全てが生成されたとき、メッシュ及びテクスチャは図6に示すようなファイル形式に格納されてよい。ファイル形式600は、Extended Reality Geometry(XRG)形式又はExtended Reality Geometry Compressed(XRGC)ファイル形式であってよい。XRGファイル又はXRGCファイルは、JPG(Joint Photographic Experts Group)及びPNG(Portable Network Graphics)といった一般的なファイルと共に他のファイルを格納するために用いられるデータコンテナであってよい。ただし、本発明はこれに限定されない。
【0056】
1つの実施形態において、ファイル形式600は、ヘッダファイル、JavaScript Object Notation(JSON)ファイル、3Dモデルのメッシュ(例えば、三角形)、3Dモデルのテクスチャなどを含んでよい。ヘッダファイルは、コンテナファイル内のファイルの一般情報を保持するよう構成されてよい。例えば、ヘッダファイルは、いくつかの一般情報と、JSONファイルが何処に位置しているかを記述してよい。更に、JSONファイルは、3Dモデルの完全なレイアウト及び階層といったいくつかの一般情報を記述するよう、及びJSONファイルが何処に位置しているかを記述するよう、構成されてよい。このJSONファイルは、モデル記述を読んで、必要とするジオメトリのための最適化されたクエリを実行するためクライアントアプリケーションによって使用されてよい。クエリは、3D空間(例えば、XRの仮想世界)におけるユーザのユーザ代表オブジェクトの位置と、ユーザ代表オブジェクトと3Dモデルとの間の距離といった、異なる要素に基づいて最適化されてよい。言及すべき点として、ユーザ代表オブジェクトは、例えば、ユーザのアバター、ユーザを表す仮想オブジェクト、ユーザが装着したヘッドマウントディスプレイ(HMD)デバイスを表す仮想オブジェクト、又は他の類似のオブジェクトであってよい。ただし、本発明はこれに限定されない。このようにして、ファイル形式600に基づき、3Dモデルのデータを効率的な方法で格納又は圧縮することができ、これは、XRアプリケーションにとって重要な、3Dモデルのデータをリアルタイムで必要に応じてストリーミングすることを可能とし、これによりユーザ体験を向上させる。
【0057】
図7は、本発明の1つの実施形態による3Dモデル処理方法のフロー図である。図1及び図7を参照し、本実施形態の3Dモデル処理方法700は図1における3Dモデル処理システム100によって実行されてよく、図7の各ステップの詳細を図1に示した構成要素と共に以下に説明する。
【0058】
先ず、ステップS710にて、ユーザデバイスからの3Dモデルを見る要求を判定してよい。例えば、ユーザは、ユーザのユーザ代表オブジェクトが仮想世界の3Dオブジェクトから一定距離に位置している間に、仮想世界において3Dモデルを表示させることを望む。更に、3Dモデルは2つの部分に区分されてよく、第1の部分はユーザ代表オブジェクトに近く、第2の部分はアバターから相当に遠い。更に、第1の部分は第1のオリジナルパーティションに属してよく、第2の部分は第2のオリジナルパーティションに属してよい。また、図3Dに示すように、異なるLoDの複数の第1の段階パーティションが第1のオリジナルパーティションのために生成されてよく、異なるLoDの複数の第2の段階パーティションが第2のオリジナルパーティションのために生成されてよい。次に、ステップS720にて、複数の第1の段階パーティションのための第1の詳細レベルがユーザのユーザデバイスの状態に基づいて決定されてよい。例えば、第1の部分は(第2の部分と比較して)ユーザ代表オブジェクトに近いことから、第1のLoDはユーザデバイスにより多くのディテールを提供するためLoD0と決定されてよい。その後、ステップS730にて、複数の第2の段階パーティションのための第2の詳細レベルがユーザデバイスの状態に基づいて決定されてよい。例えば、第2の部分は(第1の部分と比較して)ユーザ代表オブジェクトから遠いことから、第2のLoDはユーザデバイスにより少ないディテールを提供するためLoD2と決定されてよい。更に、ステップS740にて、複数の第1の段階パーティションのうちの1つが第1の詳細レベルに基づいてユーザデバイスに提供されてよい。例えば、ユーザデバイスのコンピュータの能力が高いとき、複数の第1の段階パーティションのレベル2分割の段階パーティションがユーザデバイスに提供されてよい。一方、コンピュータの能力が低いとき、複数の第1の段階パーティションのレベル0分割の段階パーティションがユーザデバイスに提供されてよい。また、ステップS750にて、複数の第2の段階パーティションのうちの1つが第2の詳細レベルに基づいて提供されてよい。例えば、ユーザデバイスのコンピュータの能力が高いとき、複数の第2の段階パーティションのレベル2分割の段階パーティションがユーザデバイスに提供されてよい。一方、コンピュータの能力が低いとき、複数の第2の段階パーティションのレベル0分割の段階パーティションがユーザデバイスに提供されてよい。ただし、本発明はこれに限定されない。
【0059】
上記に基づき、ユーザデバイスの状態に基づき、適切な詳細レベルが決定され、3Dモデルの対応するコンテンツをユーザデバイスに低遅延で提供することができる。
【0060】
加えて、3Dモデル処理システム100及び3Dモデル処理方法700の実施の詳細については、十分な教示、示唆、及び実施形態を取得するため、以下の図8の説明を参照することができる。いくつかの実施形態において、3Dモデル処理システム100及び3Dモデル処理方法700の機能はプロセッサ104によって実行されてよいが、本発明はこれに限定されない。
【0061】
図8は、本発明の1つの実施形態による3Dモデルのビューシナリオの概略図である。図8を参照し、ビューシナリオ800は、ユーザデバイスの状態に応じて3Dモデルが如何にしてロードされるかを図示している。
【0062】
1つの実施形態において、モデルを作成する段階の間に、3Dモデルはパーティションに区分され、パーティションは異なる詳細レベルで格納されてよい。その後、ユーザが3Dモデルを見ている間に、3Dモデルは、ユーザ代表オブジェクトと3Dモデルとの間の距離、ユーザの視界(eyesight)、ユーザの視線、ユーザデバイスの(インターネット)接続速度、ユーザデバイスの演算能力などといった、ユーザデバイスの状態に基づいてレンダリングされてよい。例えば、3Dモデルのユーザ代表オブジェクトに近い部分はより高いディテールでレンダリングされ、ユーザ代表オブジェクトから遠い部分はより低いディテールでレンダリングされる。各パーティションのこれら異なる詳細レベルは、3Dモデルの全ての詳細を一度にレンダリングする必要がないため、3Dモデルがまだユーザに理想的な視覚結果を提供しつつ、レンダリングのパフォーマンスを向上させることを助ける。即ち、現実世界でユーザがどう感じるかに類似し、ユーザに近いものはより明確であり、ユーザに近くないものはよりぼやける。このため、3Dモデルの更なる部分をレンダリングするための演算能力を節約することができ、これにより3Dモデルをレンダリングするパフォーマンスが向上する。
【0063】
まとめると、クライアント側論理アルゴリズムは仮想世界におけるユーザ代表オブジェクトの位置に基づいて考慮されてよい。より具体的には、クライアント側論理アルゴリズムは、最良の視覚結果を提供するためにどの詳細レベルのどのパーティションをユーザデバイスに提供するかを決定するよう構成されてよい。クライアント側論理アルゴリズムは、ユーザ代表オブジェクトが仮想世界を歩き回るにつれ、そしてそれに従ってユーザのビュー(即ち、視界又は視線)が変化するにつれ、リアルタイムで継続して更新されてよい。更に、ユーザの視界は、仮想世界におけるカメラ又はビューアの視野(field of view、FOV)として表されてよい。更に、いくつかの実施形態において、FOV中又はFOVに近い3Dモデルの一部は3Dモデルの可視パーティションとして定義されてよく、3Dモデルの他の部分は3Dモデルの不可視パーティションとして定義されてよい。3Dモデルのあるパーティションが可視パーティションとなったときのみ、3Dモデルの該パーティションはユーザデバイスに提供されてよい。ただし、本発明はこれに限定されない。
【0064】
具体的には、ユーザデバイスが3Dモデルを示し(即ち、見せ)始めたいとき、ユーザデバイスは先ず3Dモデルに関するメタデータをダウンロードしてよい。このメタデータは、仮想世界のレイアウトと3Dモデルの階層とを含んでよい。次いで、3Dモデルの構造が、ノードのツリーとしてメモリに複製されてよい。ツリー中の各ノードは1つ以上の詳細レベルを含んでよい。ノードのツリー及びユーザデバイスの状態に基づき、クライアント側論理アルゴリズムが可視にすべき最適なノードのツリーを見つけるために用いられる。アルゴリズムは、最良の視覚結果を提供するためにどのノードを可視にすべきかを決定するため、ユーザ代表オブジェクトの位置とビューを考慮してよい。
【0065】
なお、以前の方法においても複数の詳細レベルでの3Dモデルが存在し得る。しかし、異なる詳細レベルを表現するたびに3Dモデル全体からメッシュが常にロードされるが、表現のために用いられる三角形はより少ない。本実施形態において、3Dモデルは階層に分けられ、階層中の要素は互いに独立して詳細レベル間で切り替えられてよい。即ち、異なる詳細レベルを表現するたびに、3Dモデル全体ではなく、3Dモデル全体のうちの一部からメッシュがロードされてよい。例えば、図2の3Dモデル処理方法200において説明したように、3Dモデルは第1のオリジナルパーティションと第2のオリジナルパーティションとを含んでよく、第1のオリジナルパーティションと第2のオリジナルパーティションとに基づいて複数の第1の段階パーティションと複数の第2の段階パーティションが生成されてよい。更に、図7の3Dモデル処理方法700において説明したように、第1の段階パーティションの詳細レベルと複数の第2の段階パーティションの詳細レベルを決定するためにユーザデバイスの状態が用いられてよい。即ち、3Dモデル全体を一度にロードするのではなく、3Dモデルの一部のみをユーザデバイスによってロードすることができ、これにより待機時間を減らしてユーザ体験を向上させる。
【0066】
加えて、3Dモデルを表示するためにノードの最適なツリーを見つけるアルゴリズムによって用いられることできる複数の方策が存在する。1つの方策は、ユーザ代表オブジェクトからパーティションまでの距離の閾値に基づいて、各パーティションの詳細レベルを判定すること、又は、ノードを可視化することである。もう1つの方策は、ノードを可視化させるための最低の詳細レベルのルートノードから開始し、ノードのツリーを徐々に向上させることである。
【0067】
1つの実施形態において、距離方策の閾値は、ユーザデバイスのビューにおけるパーティションのサイズを算出し、ユーザデバイスに最も高いディテールでパーティションを提供することを試みてよい。パーティションのサイズが特定の閾値よりも大きい場合、3Dモデル処理システム100はパーティションのサイズを小さくするため詳細レベルを単純化してよい。パーティションのサイズが特定の閾値よりも小さい場合、システムはパーティションのサイズを大きくするため詳細レベルを精緻化してよい。即ち、3Dモデル処理システム100は、ユーザデバイスの演算能力が十分である限り、可能な限り詳細な(大きな)3Dモデルを提供するよう試みてよい。また、ユーザデバイスのビューは、ユーザ代表オブジェクトと3Dモデルとの間の距離、又は、ユーザが3Dモデルを見る角度を含んでよいが、本発明はこれに限定されない。図8に示すように、パーティションがユーザ代表オブジェクトに近い場合、3Dモデル処理システム100はパーティションをより高いディテールでレンダリングしてよく(例えば、図3DのLoD0)、ユーザ代表オブジェクトから遠いパーティションはより低いディテールでレンダリングされてよい(例えば、図3DのLoD2)。換言すれば、3Dモデル処理システム700において、ユーザ代表オブジェクトと3Dモデルとの間の距離が近くなるのに応じて、3Dモデルの更なるディテールを提供するため第1の詳細レベル又は第2の詳細レベルがアップグレードされてよい(例えば、図3DのLoD2からLoD0)。一方、ユーザ代表オブジェクトと3Dモデルとの間の距離が遠くなるのに応じて、3Dモデルのより低いディテールを提供するため第1の詳細レベル又は第2の詳細レベルはダウングレードされてよい(例えば、図3DのLoD0からLoD2)。
【0068】
1つの実施形態において、ルートノード方策は、ユーザデバイスに視覚結果を提供するための最低の詳細レベル(例えば、図3DのLoD2)から開始してよい。なお、3Dモデルのパーティションがルートノードに近いほど、パーティションの3Dモデルのための視覚的判別性(例えば、重要特徴)が高くなる。次いで、システムはそれらのチルドレンのためのノードを置き換え、ノードの詳細レベルを徐々に高めることによってツリーを徐々に向上させる。この方策は、システムに1つの時点でロードされる三角形の量の制限を遵守させることを可能とする。即ち、3Dモデル処理システム700と比較し、ユーザデバイスの状態に基づいてユーザデバイスに提供するパーティションの詳細レベルを決定する代わりに、ユーザデバイスに提供するパーティションの詳細レベルは最低の詳細レベルから開始されてよい。換言すれば、ユーザデバイスからの3Dモデルを見る要求が判定されたことに応じて、最低の詳細レベル(例えば、図3DのLoD2)が第1の段階パーティションの第1の詳細レベル及び/又は第2の段階パーティションの第2の詳細レベルとして決定されてよい。次に、第1の段階パーティションの最低の詳細レベル及び/又は第2の段階パーティションの最低の詳細レベルが、第1の詳細レベル及び/又は第2の詳細レベルに基づいてユーザデバイスに提供されてよい。
【0069】
1つの実施形態において、ユーザデバイスの接続速度又はユーザデバイスの演算能力が、ユーザデバイスに提供するパーティションの詳細レベルを決定するために用いられてよい。即ち、ユーザデバイスの接続速度が速度閾値よりも高い、又は、ユーザデバイスの演算能力が演算閾値よりも高いことに応じて、第1の詳細レベル又は第2の詳細レベルは3Dモデルの更なる詳細にアップグレードされてよい。逆に、ユーザデバイスの接続速度が速度閾値よりも低い、又は、ユーザデバイスの演算能力が演算閾値よりも低いことに応じて、第1の詳細レベル又は第2の詳細レベルは3Dモデルのより低い詳細にダウングレードされてよい。
【0070】
上記に基づき、これらの方策のうちの少なくとも1つが、3Dモデルの詳細レベルをいつ精緻化又は単純化するか決定するために用いられてよい。なお、使用するのに最良の方策は特定の応用又は設計要件に依存し、本発明はこれに限定されない。このため、これら方策の少なくとも1つを利用することにより、ユーザデバイスに低遅延でより好ましい視覚結果を提供するため、3Dモデルを表示する段階でビューワロジック(例えば、ユーザの距離、視界、又は視線)が考慮されてよい。
【0071】
図9は、本発明の1つの実施形態による3Dモデル処理方法のフロー図である。図1図9を参照し、本実施形態の3Dモデル処理方法900は図1における3Dモデル処理システム100によって実行されてよく、図9における各ステップの詳細を図1に示した構成要素と共に以下に説明する。
【0072】
先ず、ステップS910にて、3Dモデルの第1のオリジナル空間値と第2のオリジナル空間値を取得する。次に、ステップS920にて、第1のオリジナル空間値と第2のオリジナル空間値との差分値を取得する。その後、ステップS930にて、差分値に基づく第2のオリジナル空間値に対応する圧縮空間値を生成する。
【0073】
上記に基づき、3Dモデルのデータを効率的な方法で圧縮することができ、XRアプリケーションにとって重要である、3Dモデルのデータをリアルタイムでストリーミングすることを可能とし、これによりユーザ体験を向上させる。
【0074】
加えて、3Dモデル処理システム100及び3Dモデル処理方法900の実施の詳細は、十分な教示、示唆、及び実施形態を得るため、下記の図10図11の説明を参照してよい。いくつかの実施形態において、3Dモデル処理システム100及び3Dモデル処理方法900の機能はプロセッサ104によって実行されてよいが、本発明はこれに限定されない。
【0075】
図10は、本発明の1つの実施形態による3Dモデルの圧縮シナリオの概略図である。図10を参照し、圧縮シナリオ1000は圧縮アルゴリズム1010を含む。
【0076】
いくつかの実施形態において、3Dモデルのパーティションが生成された後、各パーティションはデータのサイズを減少させるために圧縮されてよく、これにより伝送及びローディングの速度を増加させる。圧縮は高速に解凍(decompress)できるよう特別に設計され、システムは必要な3Dモデルのパーティションを迅速にロードすることができる。例えば、XRGC形式は、3Dモデルをストリーミングするために設計された圧縮データ形式であり、復号化速度とファイルサイズとの間の良好なバランスを生むことが可能である。3Dモデルを可能な限り迅速にレンダリングするため、XRGCデータを迅速に復号することは重要である。これは、ゲームや仮想現実といったリアルタイムアプリケーションにとって特に重要である。
【0077】
図10を参照し、圧縮アルゴリズム1010はデータのサイズを減少させるよう適合されてよい。即ち、オリジナルデータに圧縮アルゴリズム1010を実行することにより、圧縮データを生成し、圧縮データのサイズをオリジナルデータよりも小さくすることができる。圧縮アルゴリズムは、例えば、三角形をスマートにグループ化すること、テクスチャをベイクすること、階層を平坦化すること、位置データ(例えば、座標)を圧縮すること、三角形データ(例えば、頂点インデックス)を圧縮すること、ベクターを圧縮することなどを含んでよい。
【0078】
1つの実施形態において、3Dモデルは、座標、頂点インデックスなどといった複数の空間値を含んでよい。言及すべき点として、空間値はメッシュの座標といった点であるが、複数の座標(例えば、データ点)を個別に格納する代わりに、連続する座標間の差を格納してよい。
例えば、2、5、4、6、8のシーケンスは2、3、-1、2、2のシーケンスに変換することによって格納されてよい。即ち、各座標間の相対値(即ち、差分/距離)が各座標の絶対値の代わりに格納されてよい。この方策を用いることにより、圧縮比を大きく向上させることができる。更に、該方策は3Dモデル処理方法900に適用することができ、第1のオリジナル空間値は3Dモデルの第1の座標であってよく、第2のオリジナル空間値は3Dモデルの第2の座標であってよい。第1の座標と第2の座標は同一のメッシュに属してよいが、本発明はこれに限定されない。即ち、第2のオリジナル空間値のための圧縮された空間値は、第2のオリジナル空間値を第1のオリジナル空間値と第2のオリジナル空間値との間の差分に置き換えることによって生成されてよい。
【0079】
もう1つの実施形態において、空間値が三角形の頂点インデックスであるとき、複数の頂点インデックスを個別に格納するのではなく、複数の頂点インデックスが連続したシーケンスに属しているときには値を格納する必要はないか特定の値(例えば、0)を格納してよい。一方、次の頂点インデックスが現在の頂点インデックスと連続していないときにのみ、次の頂点インデックスを格納する必要がある。例えば、頂点インデックスV1、V2、V3、V4、V6のシーケンスは0,0,0,0,V6というシーケンスに変換されて格納されてよい。この方策を用いることにより、圧縮比を大きく向上させることができる。更に、該方策は3Dモデル処理方法900に適用することができ、第1のオリジナル空間値は3Dモデルの三角形の第1の頂点インデックスであってよく、第2のオリジナル空間値は3Dモデルの三角形の第2の頂点インデックスであってよい。即ち、第2の頂点インデックスが第1の頂点インデックスと連続していることに応じて、第2のオリジナル空間値のための圧縮された空間値が第2のオリジナル空間値を特定の値(例えば、0)に置き換えることによって生成されることができる。
【0080】
上記に基づき、空間値がメッシュの座標であるか三角形の頂点インデックスであるかに関わらず、空間値を圧縮してファイルサイズを減少させることができる。ただし、圧縮アルゴリズム1010はこれら方策を含むのみならず、以下に説明する他の方策も含んでよい。
【0081】
1つの実施形態において、位置データ(例えば、座標)は通常、デカルト座標として格納されることができる。例えば、各点X、Y、Zのための3つの値のリストが格納されてよい。該データは、[{x,y,z},{x,y,z},{x,y,z}]といった配列に配置される。1つの実施形態において、各チャネル(例えば、X、Y、又はZ)は個別に処理されてよい。換言すれば、各チャネルのための分離されたリストが存在する。ただし、その結果得られる圧縮ストリームはやはり互いにインターリーブされている可能性がある。
【0082】
1つの実施形態において、位置データはテクスチャ座標の頂点インデックスを含んでよい。頂点位置は3Dモデル中の頂点の座標である。テクスチャ座標は各頂点にマッピングされるテクスチャ画素の座標である。なお、三角形インデックスは別に格納されてよく、三角形インデックスは各三角形を識別するための識別番号である。位置データの圧縮には、(1)数値をNビット精度の整数として保存することと、(2)整数のシーケンスを圧縮することという、2つのステップが存在する。
【0083】
数値をNビット精度の整数として保存するため、1つの実施形態において、最小値MINと最大値MAXを有する数値のシーケンスを想定する。MINとMAXとの間の数値の値の範囲は2個の点に区分されてよく、Nは使用される精度のビット数を示す整数である。シーケンス中の各数値について、数値は最も近い離散点のインデックスとして格納されてよい。例えば、Nが11であるとき、数値のシーケンスの最小値(MIN)と最大値(MAX)との間の値の範囲は2048点に区分されてよい。即ち、下記表に示すように、MINは0として格納され、MAXは2047として格納されてよい。ただし、本発明はこれに限定されない。
【0084】
【表1】
【0085】
なお、この方法で数値を格納すると、ある程度の精度が失われる可能性がある。例えば、オリジナル数値の範囲が0~8000である場合、8001個の数値を含む範囲は2048の離散点(数値)のみによって表されることができる。このため、シーケンス中の数値が4001である場合、実際には1023番目の離散点に近くとも1024番目の離散点のインデックスとして格納される可能性がある。失われる精度の量はNの値に依存する。Nの値が高いほど、精度はより維持される。ただし、Nの値が高いほど、データを格納するためにより多くの空間を要する。このため、品質要件によってNの値を選択することが重要である。品質要件が高い場合、より高いNの値を使用してよい。逆に、品質要件がそれほど高くない場合、空間を節約するためにより低いNの値を使用してよい。
【0086】
整数のシーケンスを圧縮するため、(1)完全な精度で解凍した数値を格納することと、(2)次の数値までのオフセット(差分値)を算出することと、(3)オフセットの範囲を確認することという、3つのステップが存在してよい。例えば、数値のシーケンスが2,5,4,6,8である場合、これら数値はメモリに直接格納されてよい。更に、各数値間のオフセットを算出することにより、数値のシーケンスは2,3,-1,2,2というシーケンスに変換されてよい。シーケンスにまだ次の数値が存在する場合、ステップ(2)が再び実行されてよい。更に、オフセット又は全てのオフセットが算出された後、該オフセットの値/範囲は、オフセットが所定範囲内にあるか否か確認されてよい。例えば、オフセットが-127~127内である場合、127をオフセットに加算して結果を符号なしバイト(即ち、符号ビットを除去)として格納してよい。目的は、負の符号を除去することにある。即ち、3Dモデル処理方法900において、第1の空間値と第2の空間値との間の差分値が負であることに応じて、第1の空間値と第2の空間値との間の差分値が正であることを確実にするために補償値が加算されてよい。このため、数値のシーケンスは符号なしバイトで表されることができ、これによりデータをソートするとき1ビット(即ち、符号を表す)減少させることができる。逆に、オフセットが所定範囲(即ち、-127~127)の外である場合、該数値が完全な精度で次に格納されることを示すため、255のバイナリ値が格納されてよい。ただし、本発明はこれに限定されない。
【0087】
なお、位置データの方策は、ジオメトリデータは非常にローカライズされて格納されることが多いという事実を利用している。頂点位置は通常、それらが隣接する頂点に近く、ほとんどの場合、オフセットを格納する必要があるのみである。データがMINからMAXへと常に跳ね上がる場合、圧縮は未圧縮の数値を格納するよりも劣る。しかし、ほとんどの場合、圧縮率は良好であることが予期され、これにより3Dモデルのファイルのサイズを減少させる。
【0088】
1つの実施形態において、3Dモデルの三角形の頂点インデックスは順に格納されることが多い。例えば、第1の三角形は頂点インデックスV1、V2、V3を有し、第2の三角形は頂点インデックスV4、V5、V6を有する等であるとする。これを活用するため、システムは、次の頂点のインデックスもやはり次に連続するインデックスであることを示すために単一ビットのみを格納してよい。具体的には、下記表2に示すように、頂点V1、V2、V3を有する三角形T1が格納されている場合、現在の頂点のインデックスがV3であり(即ち、直近で格納された頂点)、次の三角形T2の次の頂点のインデックスがV4であるとする。次の頂点(即ち、V4)のインデックスの単一ビットは、次のインデックスが連続する次のインデックス(即ち、3の直後の4)であることを示すため0として格納されてよい。このため、次の頂点のデータ全体を格納するのではなく、次の頂点の次のインデックスを格納するのに単一ビットを要するのみであるため、空間を節約することができる。
【0089】
【表2】
【0090】
一方、次の頂点のインデックスが次に連続するインデックスではないが以前に用いられた3つのインデックスのうちの1つである場合、システムは次の頂点のインデックスの第1ビットとして1を格納してよい。該頂点の次のインデックスの次の2つのビットは、以前に用いられた3つのインデックスを格納するために用いられてよい。即ち、頂点のインデックスを表すために単一ビットではなく3ビットが用いられてよい。例えば、頂点の現在のインデックスがV4であり、頂点の次のインデックスがV1(即ち、以前に用いられたインデックスの最初の1つ)である場合、次の頂点のインデックスは100として格納されてよい。同様に、頂点の次のインデックスがV2(即ち、以前に用いられたインデックスのうちの第2のもの)である場合、次の頂点のインデックスは101又は110として格納されてよい。ただし、本発明はこれに限定されない。加えて、次の頂点のインデックスが以前に用いられた3つのインデックスのうちの1つではない場合、次の頂点のインデックスは111として格納されて且つ実際のインデックスが次の頂点のインデックスの後続のビットとして格納されてよい。例えば、三角形T2の第3の頂点は111及びV6として格納されてよい。
【0091】
このため、次のインデックスが次に連続するインデックスである場合を示すために単一ビットが格納されるのみであるため、三角形データを効率的に格納することができる。更に、次のインデックスが次に連続するインデックスではないが以前に用いられた3つのインデックスのうちの1つであるとき、3ビットが格納されるのみである。このようにして、次のインデックスが比較的少量の空間に格納されることができ、これにより3Dモデルのローディング時間を減少させる。
【0092】
1つの実施形態において、位置データ及び三角形データのほか、法線が各頂点位置でのメッシュの角度と曲率を説明するベクトルであり得る。圧縮率を向上させるため、類似のアルゴリズムを利用して法線を符号化又は圧縮してよく、その詳細は詳細はここでは繰り返し説明しない。
【0093】
上記に基づき、圧縮アルゴリズム1010は3Dモデル中の異なるコンポーネントのための異なる方策を含んでよい。このため、3Dモデルのオリジナルデータに圧縮アルゴリズム1010を実行することにより、3Dモデルの圧縮データを生成することができ、圧縮データのサイズをオリジナルデータよりも小さくすることができ、これにより3Dモデルのローディング時間を減少させる。
【0094】
図11は、本発明の1つの実施形態による3Dモデルの圧縮シナリオの概略図である。図11を参照し、圧縮シナリオ1100は、3Dモデルのサイズを減少させるために3Dモデルの三角形を如何にしてグループ化することができるかを図示している。
【0095】
1つの実施形態において、メッシュデータの予測可能性を向上させる(即ち、圧縮率の増加させる)ため、3Dモデルのメッシュは三角形のグループに細分化されてよい。即ち、3Dモデル処理方法900において、ステップS910の前に、近くの3Dモデルのメッシュは複数の三角形のグループにグループ化されてよい。なお、グループを構成するとき、三角形は、互いに近く、可能な限り多くの頂点と辺を共有することに基づいて選択されてよい。例えば、図11に示すように、データの量を減少させるため、近くの三角形(例えば、辺を共有する三角形又は隣接する三角形)が共にグループ化される。これは、各グループのデータはメッシュ全体のデータよりも類似するため、圧縮率を向上させる助けとなる。
【0096】
更に、三角形のグループが形成されると、各三角形のグループのデータを個別に更に圧縮するため、圧縮アルゴリズム1010が3Dモデルに適用されてよい。例えば、3Dモデルのファイルのサイズを減少させるため、位置データ、三角形インデックス、三角形の頂点インデックス、又は法線が圧縮されてよく、これにより3Dモデルのローディング時間を減少させてリアルタイムにおける3Dモデルのストリーミングを達成する。
【0097】
まとめると、3Dモデル処理システム100、3Dモデル処理方法200、3Dモデル処理方法700、及び3Dモデル処理方法900によると、ユーザ端からのローディング時間を考慮しつつ3Dモデルが形成、圧縮、又はロードされることから、3Dモデルをリアルタイムでユーザデバイスにストリーミングすることができ、これによりユーザ体験を向上させる。
【0098】
当業者にとって、本発明の範囲又は精神から逸脱することなく、開示された実施形態に対して様々な改変及び変形を行うことができることは明らかであろう。上記を考慮し、本発明は、特許請求の範囲及びその均等物の範囲内にある限り、改変及び変形を包含することを意図している。
【産業上の利用可能性】
【0099】
本発明の3Dモデル処理システム、3Dモデル処理方法、及び記憶回路は、3Dモデルレンダリングにおいて高速且つ低遅延を要する応用に用いることができる。
【符号の説明】
【0100】
100:3Dモデル処理システム
102:記憶回路
104:プロセッサ
200、700、900:3Dモデル処理方法
S210、S220、S230、S240、S250、S260、S710、S720、S730、S740、S750、S910、S920、S930:ステップ
300A、300B、300C、300D、301C、302C:分割シナリオ
310、410:オリジナルモデル
320、330:オリジナルパーティション
340:段階パーティション
400:ベイクシナリオ
420:テクスチャマップ
422:圧縮マップ
424:ベイク処理済みテクスチャマップ
430:ベイク処理済みパーティション
500:平坦化シナリオ
510:非平坦化モデル階層
520:平坦化モデル階層
600:ファイル形式
800:ビューシナリオ
1000、1100:圧縮シナリオ
1010:圧縮アルゴリズム
図1
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7
図8
図9
図10
図11
【外国語明細書】