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

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

▶ イラシオ、インコーポレイテッドの特許一覧

特表2024-533460データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法
<>
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図1
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図2
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図3
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図4
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図5
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図6
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図7
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図8
  • 特表-データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】データ点及びメッシュのハイブリッドレンダリングに基づく効率的な点群可視化のためのシステム及び方法
(51)【国際特許分類】
   G06T 15/00 20110101AFI20240905BHJP
   G06T 15/50 20110101ALI20240905BHJP
   G06T 17/20 20060101ALI20240905BHJP
【FI】
G06T15/00 501
G06T15/50
G06T17/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515891
(86)(22)【出願日】2022-09-07
(85)【翻訳文提出日】2024-05-10
(86)【国際出願番号】 US2022076043
(87)【国際公開番号】W WO2023039422
(87)【国際公開日】2023-03-16
(31)【優先権主張番号】17/473,621
(32)【優先日】2021-09-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523436023
【氏名又は名称】イラシオ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ボガッツ、ジョセフ
(72)【発明者】
【氏名】モナハン、ロバート
(57)【要約】
ハイブリッドデータ点及び構成体可視化によって点群をレンダリングするためのシステム及び方法が開示される。システムは、3次元(「3D」)環境の点群を受信し、指定されたレンダリング位置に対する各データ点の位置に基づき、点群データ点の第1のセットとデータ点の第2のセットを区別する。システムは、データ点の第1のセットの各々の値から第1の可視化を生成し、データ点の第2のセットに置き換わる構成体のセットの値から第2の可視化を生成する。各構成体は、ポリゴン形状、及び、データ点の第2のセットのうちの2つ又はそれより多くの値から定義された値の特異なセットを有する。システムは、第1の可視化を第2の可視化と組み合わせることにより、レンダリング位置からの3D環境の最終レンダリングを提示する。
【特許請求の範囲】
【請求項1】
3次元(「3D」)空間内に不均一に分布して3D環境を表す複数のデータ点を有する点群を受信する段階、前記複数のデータ点のうちの各データ点は、(i)前記3D空間内の前記データ点の特定の位置及び(ii)その特定の位置で検出される前記3D環境の表面、特徴、又はオブジェクトの特質を定義する記述的特性、を定義する複数の値を含む;
前記3D環境をレンダリングするためのレンダリング位置を判定する段階;
前記レンダリング位置に対する各データ点の前記特定の位置に基づき、前記複数のデータ点の第1のセットと前記複数のデータ点の第2のセットを区別する段階;
データ点の前記第1のセットの各個々のデータ点の前記複数の値から第1の可視化を生成する段階;
構成体のセットの値から第2の可視化を生成する段階、ここで構成体の前記セットの各構成体は、データ点の前記第2のセットからの2つ又はそれより多くの異なるデータ点の前記複数の値から定義された値の特異なセットを有するポリゴン形状を含む;及び
前記第1の可視化を前記第2の可視化と組み合わせることにより、前記レンダリング位置からの前記3D環境を提示する段階
を備える方法。
【請求項2】
データ点の前記第2のセットからの2つ又はそれより多くのデータ点の特定のサブセットがまたがる領域を包含するように、構成体の前記セットの特定の構成体の前記ポリゴン形状を定義する段階;及び
データ点の前記特定のサブセットからの各データ点の前記複数の値からの前記特定の構成体についての値の前記特異なセットを導出する段階
を更に備える、請求項1に記載の方法。
【請求項3】
構成体の前記セット内の構成体の数は、データ点の前記第2のセット内のデータ点の数よりも少ない、請求項1に記載の方法。
【請求項4】
データ点の前記第1のセットとデータ点の前記第2のセットを区別する段階は:
データ点の前記第1のセットからの各データ点の前記複数の値が、前記レンダリング位置に関連付けられた基準を満たしていると判定する段階;及び
データ点の前記第2のセットからの各データ点の前記複数の値が前記基準を満たしていないと判定する段階
を有する、請求項1に記載の方法。
【請求項5】
データ点の前記第1のセットとデータ点の前記第2のセットを区別する段階は:
データ点の前記第1のセットを、前記レンダリング位置から可視であるデータ点として識別する段階;及び
データ点の前記第2のセットを、前記レンダリング位置から非可視であるデータ点として識別する段階
を有する、請求項1に記載の方法。
【請求項6】
前記レンダリング位置に設置されたカメラの視野を判定する段階を備え;
ここでデータ点の前記第1のセットとデータ点の前記第2のセットを区別する段階は:
前記視野内にあり、且つ1つ又は複数のデータ点によって前記レンダリング位置から完全に遮蔽されていない位置を有するデータ点の前記第1のセットを識別する段階;及び
前記視野の外側にある、又は、1つ又は複数のデータ点によって前記レンダリング位置から完全に遮蔽されている位置を有するデータ点の前記第2のセットを識別する段階
を更に有する、請求項1に記載の方法。
【請求項7】
データ点の前記第1のセットとデータ点の前記第2のセットを区別する段階は:
データ点の前記第1のセットが、前記レンダリング位置からの指定された距離を下回っていると判定する段階;及び
データ点の前記第2のセットが、前記レンダリング位置からの前記指定された距離を上回っていると判定する段階
を有する、請求項1に記載の方法。
【請求項8】
前記第1の可視化を生成する段階は、前記第1の可視化に対して異なるグラフィック要素又は特徴を与えるデータ点の前記第1のセットの各データ点の前記複数の値を用いてデータ点の前記第1のセットの各データ点をレンダリングする段階を有し;
前記第2の可視化を生成する段階は、前記特定の構成体によって置き換えられたデータ点の前記第2のセットの前記2つ又はそれより多くのデータ点によって提供される2つ又はそれより多くのグラフィック要素の代わりに、前記第2の可視化に対して単一のグラフィック要素又は特徴を与える各特定の構成体の値の前記特異なセットを用いて構成体の前記セットの各特定の構成体をレンダリングする段階を有する、
請求項1に記載の方法。
【請求項9】
データ点の前記第2のセットの第1のサブセット内の各データ点の前記特定の位置が、データ点の前記第1のサブセット内の少なくとも1つの他のデータ点からの指定された距離以下であり、データ点の前記第1のサブセット内の各データ点の前記記述的特性は、第1の共通性を有する、データ点の前記第1のサブセットを検出する段階;
データ点の第2のサブセット内の各データ点の前記特定の位置がデータ点の前記第2のサブセット内の少なくとも1つの他のデータ点からの指定された距離以下であり、データ点の前記第2のサブセット内の各データ点の前記記述的特性は、データ点の前記第1のサブセットについて検出された前記第1の共通性とは異なる第2の共通性を有する、データ点の前記第2のセットの前記第2のサブセットを検出する段階;及び
構成体の前記セットの第1の構成体を、データ点の前記第1のサブセットの代用として定義し、構成体の前記セットの第2の構成体を、データ点の前記第2のサブセットの代用として定義する段階
を更に備える、請求項1に記載の方法。
【請求項10】
前記第1の可視化が生成されるデータ点の前記第1のセットの反射特性に基づき、及び、前記第2の可視化が生成される構成体の前記セットの反射特性に基づき、前記レンダリング位置からの前記3D環境の照明を調節する段階
を更に備える、請求項1に記載の方法。
【請求項11】
前記第1の可視化における3D空間の領域が2つ又はそれより多くのデータ点の前記複数の値から生成されており、前記第2の可視化における3D空間の同様のサイズの領域が単一の構成体の値の前記特異なセットから生成されている結果として、前記第1の可視化は前記第2の可視化に比べてより詳細且つ正確である、請求項1に記載の方法。
【請求項12】
3次元(「3D」)空間内に不均一に分布して3D環境を表す複数のデータ点を有する点群を受信する、前記複数のデータ点のうちの各データ点は、(i)前記3D空間内の前記データ点の特定の位置及び(ii)その特定の位置で検出される前記3D環境の表面、特徴、又はオブジェクトの特質を定義する記述的特性、を定義する複数の値を含む;
前記3D環境をレンダリングするためのレンダリング位置を判定する;
前記レンダリング位置に対する各データ点の前記特定の位置に基づき、前記複数のデータ点の第1のセットと前記複数のデータ点の第2のセットを区別する;
データ点の前記第1のセットの各個々のデータ点の前記複数の値から第1の可視化を生成する;
構成体のセットの値から第2の可視化を生成する、ここで構成体の前記セットの各構成体は、データ点の前記第2のセットからの2つ又はそれより多くの異なるデータ点の前記複数の値から定義された値の特異なセットを有するポリゴン形状を含む;及び
前記第1の可視化を前記第2の可視化と組み合わせることにより、前記レンダリング位置からの前記3D環境を提示する
ように構成された1つ又は複数のプロセッサ
を備えるシステム。
【請求項13】
前記1つ又は複数のプロセッサは:
データ点の前記第2のセットからの2つ又はそれより多くのデータ点の特定のサブセットがまたがる領域を包含するように、構成体の前記セットの特定の構成体の前記ポリゴン形状を定義する;及び
データ点の前記特定のサブセットからの各データ点の前記複数の値からの前記特定の構成体についての値の前記特異なセットを導出する
ように更に構成されている、請求項12に記載のシステム。
【請求項14】
データ点の前記第1のセットとデータ点の前記第2のセットを区別することは:
データ点の前記第1のセットからの各データ点の前記複数の値が、前記レンダリング位置に関連付けられた基準を満たしていると判定すること;及び
データ点の前記第2のセットからの各データ点の前記複数の値が前記基準を満たしていないと判定すること
を有する、請求項12に記載のシステム。
【請求項15】
データ点の前記第1のセットとデータ点の前記第2のセットを区別することは:
データ点の前記第1のセットを、前記レンダリング位置から可視であるデータ点として識別すること;及び
データ点の前記第2のセットを、前記レンダリング位置から非可視であるデータ点として識別すること
を有する、請求項12に記載のシステム。
【請求項16】
前記1つ又は複数のプロセッサは:
前記レンダリング位置に設置されたカメラの視野を判定するように更に構成されており;
ここでデータ点の前記第1のセットとデータ点の前記第2のセットを区別することは:
前記視野内にあり、且つ1つ又は複数のデータ点によって前記レンダリング位置から完全に遮蔽されていない位置を有するデータ点の前記第1のセットを識別すること;及び
前記視野の外側にある、又は、1つ又は複数のデータ点によって前記レンダリング位置から完全に遮蔽されている位置を有するデータ点の前記第2のセットを識別すること
を有する、請求項12に記載のシステム。
【請求項17】
データ点の前記第1のセットとデータ点の前記第2のセットを区別することは:
データ点の前記第1のセットが、前記レンダリング位置からの指定された距離以下であると判定すること;及び
データ点の前記第2のセットが、前記レンダリング位置からの前記指定された距離を上回っていると判定すること
を有する、請求項12に記載のシステム。
【請求項18】
前記1つ又は複数のプロセッサは:
データ点の前記第2のセットの第1のサブセット内の各データ点の前記特定の位置が、データ点の前記第1のサブセット内の少なくとも1つの他のデータ点からの指定された距離以下であり、データ点の前記第1のサブセット内の各データ点の前記記述的特性は、第1の共通性を有する、データ点の前記第1のサブセットを検出する;
データ点の第2のサブセット内の各データ点の前記特定の位置がデータ点の前記第2のサブセット内の少なくとも1つの他のデータ点からの指定された距離以下であり、データ点の前記第2のサブセット内の各データ点の前記記述的特性は、データ点の前記第1のサブセットについて検出された前記第1の共通性とは異なる第2の共通性を有する、データ点の前記第2のセットの前記第2のサブセットを検出する;及び
構成体の前記セットの第1の構成体を、データ点の前記第1のサブセットの代用として定義し、構成体の前記セットの第2の構成体を、データ点の前記第2のサブセットの代用として定義する
ように更に構成されている、請求項12に記載のシステム。
【請求項19】
前記1つ又は複数のプロセッサは:
前記第1の可視化が生成されるデータ点の前記第1のセットの反射特性に基づき、及び、前記第2の可視化が生成される構成体の前記セットの反射特性に基づき、前記レンダリング位置からの前記3D環境の照明を調節する
ように更に構成されている、請求項12に記載のシステム。
【請求項20】
プロセッサに、
3次元(「3D」)空間内に不均一に分布して3D環境を表す複数のデータ点を有する点群を受信する手順であって、前記複数のデータ点のうちの各データ点は、(i)前記3D空間内の前記データ点の特定の位置及び(ii)その特定の位置で検出される前記3D環境の表面、特徴、又はオブジェクトの特質を定義する記述的特性、を定義する複数の値を含む、手順;
前記3D環境をレンダリングするためのレンダリング位置を判定する手順;
前記レンダリング位置に対する各データ点の前記特定の位置に基づき、前記複数のデータ点の第1のセットと前記複数のデータ点の第2のセットを区別する手順;
データ点の前記第1のセットの各個々のデータ点の前記複数の値から第1の可視化を生成する手順;
構成体のセットの値から第2の可視化を生成する手順であって、ここで構成体の前記セットの各構成体は、データ点の前記第2のセットからの2つ又はそれより多くの異なるデータ点の前記複数の値から定義された値の特異なセットを有するポリゴン形状を含む、手順;及び
前記第1の可視化を前記第2の可視化と組み合わせることにより、前記レンダリング位置からの前記3D環境を提示する手順
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
点群は、数百万又は数十億のデータ点を有し得、各データ点は3次元(three-dimensional:「3D」)オブジェクト又は環境の対応する点のポジショニング及び他の特性をキャプチャしている。点群データ点のレンダリングにより、ポリゴン、ボクセル及び/又はメッシュを用いる同一の3Dオブジェクト又は環境のレンダリングに比べて、より詳細度が高い及び/又はより正確な可視化が作成され得る。例えば、各ポリゴン、ボクセル及び/又はメッシュが、3Dオブジェクト又は環境の領域内の詳細度、着色及び/又は他の視覚特性を近似し得るのに対し、点群は、複数のデータ点を使用して、同一領域内の特定の点における詳細度、着色、及び/又は他の視覚特性をよりきめ細かく正確に定義し得る。
【0002】
しかしながら、数百万又は数十億のデータ点をレンダリングすること、又は、そのような大規模な点群データセットから作成された可視化を編集することで、ポリゴン、ボクセル及び/又はメッシュを用いて詳細度がより低く且つ解像度がより低い可視化を作成する場合に比べて、レンダリングシステム又はデバイスに著しくより大きなリソースオーバーヘッド及び計算量が課され得る。
【0003】
幾つかの場合において、レンダリングシステム又はデバイスは、大規模な点群を処理する、レンダリングする、又はこれと効率的に相互作用するための十分なリソースを有しない可能性がある。
【図面の簡単な説明】
【0004】
図1】本明細書で提示される幾つかの実施形態による、点群のハイブリッドレンダリングについての例を示す。
【0005】
図2】本明細書で提示される幾つかの実施形態による、点群の可視領域内にあるデータ点と可視領域の外側にあるデータ点を区別し、非可視データ点をメッシュで代用する例を示す。
【0006】
図3】本明細書で提示される幾つかの実施形態による、データ点の異なるサブセットの非位置値における共通性に基づきメッシュを定義する例を示す。
【0007】
図4】本明細書で提示される幾つかの実施形態による、より詳細度が高く及びより正確なデータ点を用いてレンダリングされる3D環境の可視領域に影響を与える、3D環境の非可視領域内のレンダリングされたメッシュの例を示す。
【0008】
図5】本明細書で提示される幾つかの実施形態による、可視表面についての点群データ点、及び非可視表面についてのデータ点の代わりにメッシュを用いて点群のハイブリッドレンダリングを実行するためのプロセスを提示する。
【0009】
図6】本明細書で提示される幾つかの実施形態による、ハイブリッドレンダリングシステムについての例示的なアーキテクチャを示す。
【0010】
図7】本明細書で提示される幾つかの実施形態による、変化するレンダリング位置に応答した点群の部分的ハイブリッドレンダリングのためのプロセスを提示する。
【0011】
図8】本明細書で提示される幾つかの実施形態による、逆ハイブリッドレンダリング技法についてのプロセスを提示する。
【0012】
図9】本明細書で説明される1つ又は複数の実施形態による、1つ又は複数のデバイスの例示的なコンポーネントを示す。
【発明を実施するための形態】
【0013】
以下の詳細な説明は、添付図面を参照する。複数の異なる図面における複数の同一の参照番号は、複数の同一又は同様の構成要素を識別し得る。
【0014】
ハイブリッドデータ点及びメッシュ可視化を用いることにより、詳細度又は正確度を損なうことなく点群を効率的にレンダリングするためのシステム及び方法が提供される。点群可視化を作成するときに点群データ点によってもたらされる詳細度又は正確度を維持するために、本明細書で開示されるハイブリッドレンダリングは、レンダリング視野内に位置付けられ、且つ、1つ又は複数の他のデータ点の可視化によって完全に遮蔽されていない点群データ点の第1のセットから個々のデータ点をレンダリングすることを含み得る。点群可視化を作成するときのリソースオーバーヘッド及び計算量を削減しつつ効率を高めるために、ハイブリッドレンダリングは、レンダリング視野の外側にある、及び/又はデータ点の第1のセットの可視化によって完全に遮蔽されている点群データ点の第2のセットについて、メッシュ、ボクセル、及び/又はポリゴンなどの2つ又はそれより多くのデータ点を包含する構成体(construct)を定義及びレンダリングすることを更に含み得る。
【0015】
メッシュ、ボクセル、ポリゴン、及び/又は他の構成体を用いた非可視領域のレンダリングは、点群の全てのデータ点をレンダリングする場合に比べてより効率的に、点群によって表される3次元(「3D」)オブジェクト又は環境の完全な可視化を作成するために、及び、ユーザの相互作用によって非可視領域が視野内に移行した場合に空白又は空の空間ではなく可視化を提示するために、実行され得る。更に、メッシュ、ボクセル、及び/又はポリゴンを用いた非可視領域のレンダリングは、視野内にあるレンダリングされたデータ点の第1のセットの正確度を更に高めるために実行され得る。具体的には、データ点の第2のセットの代わりにメッシュ、ボクセル、又はポリゴンを用いてレンダリングされる非可視領域は、データ点の第1のセットを用いてレンダリングされる可視領域上に、反射、着色、照明、及び/又は他の視覚効果を与え(contribute)得る。従って、非可視領域におけるメッシュレンダリング表面(例えば、メッシュ、ボクセル、及び/又はポリゴンからレンダリングされる表面又は特徴)は、可視領域におけるデータ点でレンダリングされた表面の最終レンダリングに影響を与え得る反射、着色、照明、及び/又は他の効果を正確に計算するために使用され得る。
【0016】
幾つかの実施形態において、ハイブリッドレンダリングは、レンダリング位置、又は点群データ点がレンダリングされることになる仮想カメラの位置に対する点群データ点のポジショニングを検査すること、点群の可視の第1の領域内のデータ点の第1のセットの詳細且つ正確な第1のレンダリングを実行すること、及び点群の非可視の第2の領域内のデータ点の第2のセットについての詳細度が低く高速な第2のレンダリングを実行すること、を含み得る。第1のレンダリングを実行することは、データ点の第1のセット内の対応するデータ点のポジショニング、着色、及び/又は他の特性に基づき、可視化における異なる点をレンダリングすることを含み得る。第2のレンダリングを実行することは、データ点の第2のセットの異なるサブセットを表すためのメッシュ、ボクセル、及び/又はポリゴンを定義すること、及び、メッシュ、ボクセル、及び/又はポリゴンについて定義されたポジショニング、着色、及び/又は他の特性を用い、データ点の第2のセットの各個々のデータ点についてのポジショニング、着色、及び/又は他の特性に基づき同一の非可視の第2の領域をレンダリングする場合に比べてより低い正確度及び詳細度を有する点群の非可視の第2の領域をレンダリングすること、を含み得る。
【0017】
点群は、3Dオブジェクト又は環境のピクセル化された又はボクセル化された画像又は表現とは異なる。点群は、3Dオブジェクト又は環境の異なる点の位置情報及び非位置情報に対応し、それらをキャプチャする幾つかのデータ点(例えば、数千、数百万、数十億等)を含み得る。
【0018】
点群及び点群の個々のデータ点は、3D又は深度感知カメラ、光検出及び測距(Light Detection and Ranging:「LiDAR」)センサ、磁気共鳴撮像(Magnetic Resonance Imaging:「MRI」)デバイス、陽電子放出断層撮影(Positron Emission Tomography:「PET」)スキャンデバイス、コンピュータ断層撮影(Computerized Tomography:「CT」)スキャンデバイス、飛行時間型(time-of-flight)デバイス、及び/又は3Dオブジェクト、体積測定(volumetric)オブジェクト、又は3D環境用の他の撮像機器によって生成され得る。点群は、2つ又はそれより多くのデバイスの出力から生成され得る。例えば、第1の撮像デバイス(例えば、LiDARセンサ)は、3D空間内の各データ点についての位置を判定し得、第2の撮像デバイス(例えば、高解像度カメラ)は、各データ点についての視覚特性又は他の非位置情報を測定又はキャプチャし得る。
【0019】
点群データ点は、2次元(「2D」)画像のピクセルとは異なり得、これは、点群の一定の領域が、3Dオブジェクト、体積測定オブジェクト、又は3D環境を撮像するときにそれらの領域で検出される情報の変化する量に基づき、データ点を有しない、より低い密度のデータ点を有する、及び/又はより高い密度のデータ点を有する場合があるためである。例えば、点群撮像デバイスは、同一のオブジェクトが点群撮像デバイスからより遠くに離れて配置された場合に比べてより多くのデータ点(例えば、より高い解像度)を用いて点群撮像デバイスのより近くにあるオブジェクトをキャプチャし得、これは、デバイスからのより多くの放出ビーム(例えば、光、レーザ等)が、より遠くにあるオブジェクトよりもより近くにあるオブジェクトに接触し、各ビームからの測定値が点群の異なるデータ点をもたらすためである。対照的に、2D画像のピクセルは、2D画像の解像度によって定義された均一の密度及び固定の配列を有する。更に、点群データ点が3D空間において不均一な配置又はポジショニングを有し得るのに対し、2D画像は定義された解像度(例えば、640x480、800x600等)の各ピクセルについてのピクセルデータを有する。
【0020】
各点群データ点は、位置及び非位置データ値を含み得る。位置データ値は、3D空間内の座標を含み得る。例えば、各点群データ点は、3Dオブジェクト又は環境の各撮像された点、特徴、表面、又は要素についてのx座標、y座標及びz座標値を含み得る。非位置データ点値は、データ点の記述的特性についての値を含み得る。データ点の記述的特質は、そのデータ点によってキャプチャされる又は表される3Dオブジェクト又は環境からの点、要素、特徴、又は表面の1つ又は複数の特質を定義し得る。より具体的には、記述的特性は、表された点、要素、特徴又は表面の視覚特性を含み得る。視覚特性は、検出された色に対応し得る。色は、赤、緑、青(red、green、blue:「RGB」)及び/又は他の色値を用いて表され得る。幾つかの実施形態において、記述的特性は、撮像された点、要素、特徴又は表面の色度及び/又は輝度を含み得る。幾つかの他の実施形態において、記述的特性は、3D環境をキャプチャするために使用される撮像デバイスの特質を含み得る。例えば、記述的特性は、3D環境の特定の点を検出及び/又は撮像する際に使用された磁場の強度を定量化するためのテスラ強度値を含み得る。幾つかの実施形態において、記述的特性は、撮像デバイス又は撮像されているオブジェクトのエネルギー、可聴音又は音声、及び/又は他の特性を含み得る。幾つかの実施形態において、記述的特性は、撮像された点、要素、特徴又は表面の材料特質を含み得る。材料特質は、オブジェクトが撮像された点、要素、特徴又は表面と接触するときにもたらされる物理を計算するために使用され得る。材料特質は、撮像された点、要素、特徴又は表面の磁性、強度、軟度又は硬度、粘度、粘着性、及び/又は重量を指定し得る。従って、非位置データ値は、撮像されたオブジェクト部分の(例えば、色調、彩度、明るさ、反射性等)、又は、3D空間内の対応するデータ点におけるオブジェクト部分をキャプチャするために使用される撮像デバイスの任意の特質又は記述的特性を含み得る。
【0021】
各特定のデータ点についての位置及び非位置データ値はアレイに格納され得、識別子、又はデータ値のうちの1つ又は複数を用いて、その特定のデータ点に関連付けられ得る。例えば、特定のデータ点は、そのx座標、y座標及びz座標値、及び、赤、緑、青、色度、輝度、テスラ、及び/又は他の値などの非位置値を用いて識別され得、その結果、特定のデータ点は、x座標、y座標及びz座標値のルックアップを介しアクセスされ得る。
【0022】
図1は、本明細書で提示される幾つかの実施形態による、点群のハイブリッドレンダリングについての例を示す。図1は、点群101のハイブリッドレンダリングに基づき、点群101によって表される3D環境の完全な3D可視化を生成するためのハイブリッドレンダリングシステム100を含み得る。
【0023】
ハイブリッドレンダリングシステム100は、点群101をレンダリングするための命令を(102で)受信し得る。命令は、アプリケーション呼び出し、システム呼び出し、アプリケーションプログラミングインタフェース(Application Programming Interface:「API」)呼び出し、及び/又は他の入力として発行され得る。命令は、点群101をレンダリングする位置、及び/又は可視化のための他の特質(例えば、焦点深度、視野のサイズ等)を指定し得る。
【0024】
ハイブリッドレンダリングシステム100は、(104で)点群101を取り出し得る。点群101は、1つ又は複数のファイル、データ構造、及び/又は他のデータセットに格納され得、(104で)ネットワークを介してローカルストレージ又は他の場所から取り出され得る。
【0025】
ハイブリッドレンダリングシステム100は、点群101の可視領域内にある(例えば、レンダリング視野内にあり、且つ、1つ又は複数の他のデータ点によってレンダリング位置又はカメラから完全に遮蔽されていない)データ点の第1のセット103と、点群101の非可視領域内にある(例えば、レンダリング視野の外側にある、又は、1つ又は複数の他のデータ点によってレンダリング位置又はカメラから完全に遮蔽されている)データ点の第2のセット105を区別するために、(106で)データ点の位置値を検査し得る。
【0026】
ハイブリッドレンダリングシステム100は、可視データ点として分類されたデータ点の第1のセット103からの各個々のデータ点を(108で)レンダリングし得る。(108で)個々のデータ点をレンダリングすることは、個々のデータ点の位置値に従って定義された3D空間内の位置を有する点を生成すること、及び、当該個々のデータ点の非位置値に基づき、その点についての着色、輝度及び/又は色度、材料特質、及び/又は他の特性などの視覚特性を定義すること、を含み得る。従って、ハイブリッドレンダリングシステム100は、データ点の第1のセット103の各データ点について、それらのデータ点の各々の位置値及び非位置値に基づき、第1の可視化107を評価し、作成する。
【0027】
ハイブリッドレンダリングシステム100は、データ点の第2のセット105のうちの2つ又はそれより多くの異なるサブセットを表すための、異なるメッシュ、ボクセル、ポリゴン、及び/又は別の形態又は構成体を(110で)定義することにより、及び、データ点の第2のセット105の代わりにメッシュ、ボクセル、ポリゴン、及び/又は他の形態又は構成体を(112で)レンダリングして第2の可視化109を生成することにより、点群101の非可視領域についての第2の可視化109を効率的に作成し得る。メッシュ、ポリゴン、ボクセル及び構成体は、データ点の第2のセット105に比べてより低い詳細度、色正確度、及び/又は他の記述的特性の正確度を有するにもかかわらず、データ点の第2のセット105によってキャプチャされた全体的形状及び視覚特性を維持し得る。具体的には、各構成体は、データ点の第2のセット105のうちの2つ又はそれより多くによってカバーされる領域又は体積を包含し得、2つ又はそれより多くのデータ点の各々に関連付けられた非位置値の別個のセットを表すための値の単一のセットを含み得る。その結果、メッシュ、ボクセル、ポリゴン又は構成体を(112で)レンダリングすることは、データ点の第2のセット105の各データ点をレンダリングすることに比べてより短い時間を要し、且つ、より少ないメモリ、プロセッサ及び/又は他の計算リソースを消費する。第2の可視化109は、第1の可視化107に比べてより低い細部詳細度及びより低い色正確度を有し得、カメラの視野から隠れている3Dオブジェクト又は環境の一部を構成し得る。それにもかかわらず、レンダリングされたメッシュ、ボクセル又はポリゴンは、反射を投影する、影を投影する、又は反射性、着色、照明、及び/又はカメラの視野内に収まる他の点又は表面の反射性、照明、着色、及び/又は他の特質に影響を与え得る他の特質を有する隠れた表面を再現し得る。
【0028】
ハイブリッドレンダリングシステム100は、第1の可視化107を第2の可視化109と組み合わせることにより、及び/又は、データ点の第2のセット105の代わりにレンダリングされたメッシュ、ボクセル、又はポリゴンの対応する特質及び/又は特性と相互作用する、レンダリングされたデータ点の第1のセット103の反射特質、着色、鏡面ハイライト、及び/又は他の特性に基づき照明を施す、又は他の視覚効果を追加することにより、(114で)点群101の最終レンダリング又は完全な可視化を生成し得る。最終レンダリングは、点群101によってキャプチャされた3Dオブジェクト又は環境を正確に再現し、これは、個々のデータ点(例えば、データ点の第1のセット103)によってもたらされる高い詳細度及び色正確度を伴って可視表面がレンダリングされるのに対し、隠れた又は非可視表面は、メッシュ、ボクセル又はポリゴンによってもたらされるより低い詳細度及びより低い色正確度を伴ってレンダリングされるためである。
【0029】
図2は、本明細書で提示される幾つかの実施形態による、点群の可視領域内にあるデータ点と可視領域の外側にあるデータ点を区別し、非可視データ点をメッシュで代用する例を示す。簡潔にするため、図2は3次元ではなく2次元で示されている。図2に関して説明される技法及び/又は動作は、3次元にわたり適用される。
【0030】
図2において示されている通り、カメラ201は点群によって表される3D空間内の位置及び配向を伴って定義されている。ハイブリッドレンダリングシステム100は、カメラ201の位置及び配向に基づき、(202で)視野を計算し得る。
【0031】
ハイブリッドレンダリングシステム100はまた、(204で)点群203を受信し得る。点群203のデータ点は、3D空間にわたり分散され得る。3D空間内の各データ点の位置は、そのデータ点の位置値によって定義される。
【0032】
ハイブリッドレンダリングシステム100は、視野内に位置付けられており、且つ、データ点の第1のセット205及びカメラ201の間にある1つ又は複数の他のデータ点によりカメラ201から完全に遮られていないことによって可視であるデータ点の第1のセット205を(206で)判定するために、カメラ201の視野に対するデータ点の位置値を分析し得る。ハイブリッドレンダリングシステム100は、カメラ201の視野の外側にある、又は、データ点の第1のセット205の1つ又は複数のデータ点によってカメラ201の視野から全体的に遮られている、のいずれかである残りのデータ点を含むように(208で)データ点の第2のセット207を選択し得る。データ点の第1のセット205は、図2において、黒の中心を有する塗り潰されたデータ点として示されており、データ点の第2のセット207は、図2において、白の中心を有する空白のデータ点として示されている。
【0033】
ハイブリッドレンダリングシステム100は、データ点の第1のセット205によって表される各点における位置詳細、高解像度、色正確度、及び/又は他の特性情報を保持するために、視野の可視領域内のデータ点の第1のセット205からの各データ点を直接レンダリングし得る。データ点の第2のセット207によって表される非可視領域をレンダリングするためのリソース及び時間を削減するために、ハイブリッドレンダリングシステム100は、データ点の第2のセット207に置き換わるメッシュ209-1、209-2、及び209-3(以下、「複数のメッシュ209」と総称されることがあり、且つ、「メッシュ209」と個々に称されることがある)を(210で)生成し得、データ点の第2のセット207の各データ点の代わりに複数のメッシュ209をレンダリングし得る。図2において複数のメッシュ209が使用されているが、ハイブリッドレンダリングシステム100は、複数のメッシュ209のうちの1つ又は複数を、データ点の第2のセット207の2つ又はそれより多くのデータ点によってカバーされる3D空間の領域を表すボクセル、ポリゴン、及び/又は他の形態で代用し得る。
【0034】
ハイブリッドレンダリングシステム100は、データ点の第2のセット207の各データ点によって表される詳細及び/又は特性情報の損失を最小限に抑える様式で、(210で)複数のメッシュ209を生成し得る。幾つかの実施形態において、複数のメッシュ209を生成することは、互いからの指定された距離を超えない隣接するデータ点を識別することを含み得る。例えば、2つのデータ点の間の位置値が互いからの閾値距離よりも大きい場合、それら2つのデータ点は単一のメッシュ内で組み合わされることはない。ハイブリッドレンダリングシステム100がデータ点の第2のセット207内のデータ点の隣接する群を識別すると、ハイブリッドレンダリングシステム100は共通性について非位置値を検査し得る。ハイブリッドレンダリングシステム100は、検出された共通性に従って各メッシュ209の形状を定義し得、そのメッシュ209の一部として含まれるデータ点のサブセットの非位置値に基づき、そのメッシュ209の非位置値を定義し得る。
【0035】
幾つかの実施形態において、ハイブリッドレンダリングシステム100は、可視又は非可視表面以外の要因又は基準に基づき、点群のデータ点を区別し得る。例えば、ハイブリッドレンダリングシステム100は、前景データ点と背景データ点を区別し得、ここで前景データ点は、レンダリング位置からの特定の距離(例えば、z深度)未満のデータ点を含み得、背景データ点は、レンダリング位置からの特定の距離を上回るデータ点を含み得る。ハイブリッドレンダリングシステム100は、より低い詳細度及び/又は色正確度を伴ってより効率的に背景をレンダリングするために前景データ点を直接レンダリングし得、且つ、背景データ点をメッシュ又はポリゴンに置き換え得る。
【0036】
図3は、本明細書で提示される幾つかの実施形態による、データ点の異なるサブセットの非位置値における共通性に基づきメッシュを定義する例を示す。図3は、隣接する非可視データ点及びそれらの色値(例えば、赤、緑、及び青の色についてのそれぞれの値)のセットを示す。
【0037】
ハイブリッドレンダリングシステム100は、データ点のセット全体を1つのメッシュを用いて表し得、当該データ点のセット全体についての平均的な赤、緑、及び青の色値に基づき、その1つのメッシュについての色値を定義し得る。色値における大きな偏差に起因して、単一のメッシュは非常に乏しい色正確度を有し、従ってデータ点のセットの好適な代用ではない。
【0038】
従って、ハイブリッドレンダリングシステム100は、共通性についてデータ点のセット全体の色値を検査し得る。2つ又はそれより多くの隣接するデータ点が互いの閾値範囲内にある色値を有する場合、又は、色値が一定の値又は割合未満だけ逸脱(deviate)している場合、共通性が検出される。ハイブリッドレンダリングシステム100は、5つのデータ点の上位群が赤色の共通性を有し、且つ、3つのデータ点の下位群が青色の共通性を有すると判定し得る。ハイブリッドレンダリングシステム100は、従って、各群について検出された共通性に基づき、上位群を表すための第1のメッシュ301及びデータ点の下位群を表すための第2のメッシュ303を生成し得る。
【0039】
ハイブリッドレンダリングシステム100は、四辺を有するポリゴンが第1のメッシュ301によって置き換えられている5つのデータ点の群によって形成される形状を最も正確に保持する形状であるため、第1のメッシュ301を四辺を有するポリゴンと定義し得る。ハイブリッドレンダリングシステム100は、次に、5つのデータ点の群の対応する非位置値に基づき、第1のメッシュ301についての非位置値の単一のセットを定義し得る。幾つかの実施形態において、ハイブリッドレンダリングシステム100は、表された5つのデータ点の平均又は中央色値に従って、第1のメッシュ301の色値を定義し得る。幾つかの他の実施形態において、ハイブリッドレンダリングシステム100は、表された5つのデータ点の色値の別の式、計算、又は評価を用いて、第1のメッシュ301の色値を導出し得る。第1のメッシュ301は、従って、5つのデータ点の上位群によって形成された形状を保持し、データ点のセット全体についての単一のメッシュに比べて、少なくとも赤色をより正確に保持する。
【0040】
ハイブリッドレンダリングシステム100は、三角形が第2のメッシュ303によって置き換えられている3つのデータ点の群によって形成される形状を最も正確に保持する形状であるため、第2のメッシュ303を三角形と定義し得る。ハイブリッドレンダリングシステム100は、次に、3つのデータ点の青色値の正確度、又は3つのデータ点の青色値における共通性を保持するために、第2のメッシュ303についての非位置値の単一のセットを定義し得る。
【0041】
いずれの場合においても、ハイブリッドレンダリングシステム100は、そのメッシュ、ボクセル、又はポリゴンによって置き換えられているデータ点のサブセットの形状を最も良く保持するメッシュ、ボクセル、又はポリゴンを生成し、そのメッシュ、ボクセル、又はポリゴンによって置き換えられているデータ点のサブセットの着色及び/又は他の記述的特性を表すための、非位置値の最大数にわたって最も多くの共通性を有するデータ点のサブセットを選択することになる。このようにして、単一のメッシュ、ボクセル、又はポリゴンは複数のデータ点を表す、及び/又はこれに置き換わることができ、それらのデータ点の非位置値に厳密に一致し得る。単一のメッシュ、ボクセル、又はポリゴンをレンダリングすることは、その単一のメッシュ、ボクセル、又はポリゴンによって置き換えられるデータ点の各々をレンダリングすることに比べて、より少ないリソース(例えば、メモリ)を必要とし、且つ、より短い時間において実行され得る。
【0042】
上記の通り、レンダリングされたメッシュによって創出された表面、特徴、又は要素は、生成された可視化の視野内に現れない。しかしながら、これらの非可視表面、特徴、又は要素は、それにもかかわらず、データ点の可視のセットのレンダリングから生成された可視表面、特徴、又は要素に対して、反射、照明、鏡面ハイライト、及び/又は他の視覚効果を与え得る。従って、ハイブリッドレンダリングシステム100は、反射、照明、鏡面ハイライト、及び/又は他の視覚効果が失われないように、且つ、著しくより小さいメッシュ、ボクセル、又はポリゴンのセットの代わりにより大きな点群データ点のセットをレンダリングすることからこれらの効果を創出するのに余分なリソースが費やされないように、隠れた、遮られた、又は非可視の表面、特徴、又は要素についてのメッシュレンダリングを実行する。
【0043】
図4は、本明細書で提示される幾つかの実施形態による、より詳細度が高く及びより正確なデータ点を用いてレンダリングされる3D環境の可視領域に影響を与える、3D環境の非可視領域内のレンダリングされたメッシュの例を示す。図4において示されている通り、レイトレーシング(ray-tracing)又は他の照明技法を使用して、3D環境を正確に照明することができる。照明技法は、光源から生じた光のビームを、当該ビームがカメラに到達するまで、光の経路内にある反射表面で跳ね返らせることを伴い得る。
【0044】
図4は、剣の非可視裏面についての1つ又は複数のメッシュに最初に接触する第1のビーム401を示す。1つ又は複数のメッシュは、当該1つ又は複数のメッシュによって置き換えられた2つ又はそれより多くのデータ点の同等の特性から定義された、反射、着色、及び/又は他の特性を有し得る。照明技法は、1つ又は複数のメッシュの反射、着色、及び/又は他の特性に従って第1のビーム401の特質を修正し得、当該1つ又は複数のメッシュの形状、形態、及び/又はポジショニングに基づき、第1のビーム401を方向転換させ得る。第1のビーム401は、点群のデータ点を用いてレンダリングされる剣の正面側に接触するまで、他の反射表面で跳ね返り続け得る。第1のビーム401は、レンダリングされた剣の正面側上に鏡面ハイライト、光彩、又は他の照明効果403を追加し得る、又はそうでなければ、1つ又は複数のメッシュの反射、着色、及び/又は他の特性によって修正された第1のビーム401の特質に基づき、剣の正面側の照明、着色、又は他の可視化を変更し得る。
【0045】
図4において更に示されている通り、非可視又は隠れた表面についての1つ又は複数のメッシュは、影405及び/又は反射407を正確に投影するためにも使用され得る。例えば、影405は、1つ又は複数の光ビーム409が、オブジェクトの非可視裏面についての1つ又は複数のメッシュから、無光沢又は非反射表面上に反射した結果として生成され得る。同様に、反射407は、1つ又は複数の光ビーム411が、オブジェクトの非可視裏面についての1つ又は複数のメッシュから、鏡又は他の反射性の可視表面上に反射した結果として生成され得る。影405及び反射407の各々が、レンダリングされたメッシュの位置値及び非位置値に基づき生成されるのに対し、前景及びカメラの視野における可視化は、前景にあり、視野内にあり、且つ1つ又は複数の他のデータ点によってカメラから完全に遮られていない各個々のデータ点の位置値及び非位置値に基づき生成される。
【0046】
ハイブリッドレンダリングシステム100が、リソースを維持する及び/又はレンダリング時間を短縮するために非可視表面をレンダリングすることを完全に無視及び回避する場合、影又は反射の投影は生じない。その結果としてもたらされるレンダリングは、完全に不正確且つ非現実的なものとなる。
【0047】
ハイブリッドレンダリングシステム100が点群内のそれらの表面について定義された個々のデータ点を用いて非可視表面をレンダリングしようとした場合、データ点を用いた非可視表面の最初のレンダリングを理由に、及び加えて、レンダリングからもたらされる、及び、それに続いて影及び/又は反射を生成する際に含まれる追加された詳細及び/又はデータを理由に、リソース及び計算オーバーヘッドが著しく増加することになる。この追加的な詳細度及び情報は、影又は反射を生成するためには不必要であり、従って、結果的にリソース及びレンダリング時間の浪費となる。メッシュ、ボクセル、又はポリゴンは、より低い詳細度を伴って、より短い時間において、且つ、影又は反射についての十分な詳細度及び正確度を伴って、非可視表面をレンダリングする。従って、ハイブリッドレンダリングは、点群の焦点又は可視領域で、詳細度及び/又は正確度(例えば、色再現)を妥協することなく、点群のレンダリング及び/又は可視化を最適化する。
【0048】
図5は、本明細書で提示される幾つかの実施形態による、可視表面についての点群データ点、及び非可視表面についてのデータ点の代わりにメッシュを用いて点群のハイブリッドレンダリングを実行するためのプロセス500を提示する。プロセス500は、ハイブリッドレンダリングシステム100によって実装され得る。ハイブリッドレンダリングシステム100は、点群を処理する、操作する、レンダリングする、可視化する、これと相互作用する、及び/又はそうでなければこれにアクセスするための1つ又は複数のデバイスを含み得る。
【0049】
プロセス500は、(502で)点群を取得することを含み得る。ハイブリッドレンダリングシステム100は、(502で)ローカルストレージから点群を取得し得る、又は、データネットワークを介して点群を取り出し得る。点群は、ファイル又は他のデータ構造に格納され得る。
【0050】
プロセス500は、(504で)点群の3D可視化を生成するための命令を受信することを含み得る。3D可視化を生成することは、データ点の位置値及び記述的特性に従い、点群データ点によって表される要素、特徴、表面、及び/又はオブジェクトをレンダリングすることを含み得る。命令は、3D可視化を生成するためのレンダリング位置を指定し得る。レンダリング位置は、可視化を生成するための視野、位置、配向、及び/又は他の表示特質を指定し得る。
【0051】
プロセス500は、(506で)レンダリング位置に対する点群データ点の位置値を評価すること、及び、(508で)レンダリング位置に対する各データ点の評価及び/又は特定の位置に基づき点群データ点の第1のセットと点群データ点の第2のセットを区別すること、を含み得る。幾つかの実施形態において、レンダリング位置は、追加的な区別基準を定義するために使用され得る。例えば、ハイブリッドレンダリングシステム100は、レンダリング位置に設置されたカメラの視野を判定し得、且つ、(508で)データ点の第1のセット及びデータ点の第2のセットを区別するための区別基準の一部として視野を使用し得る。
【0052】
幾つかの実施形態において、(506での)評価及び(508での)区別は、レンダリング位置の視野内にあり、且つ、1つ又は複数の他のデータ点によってレンダリング位置、視野、又は可視化から完全に遮蔽されていない点群の可視データ点としてデータ点の第1のセットを選択することと、及び、レンダリング位置の視野の外側にある、又は、レンダリング位置、視野、又は可視化から完全に遮られている点群の非可視データ点としてデータ点の第2のセットを選択すること、を含み得る。例えば、ハイブリッドレンダリングシステム100は、そのデータ点が可視化視野内に位置付けられているか、及び/又はそのデータ点が1つ又は複数の他のデータ点によってレンダリング位置から完全に遮蔽されているかを判定するために、レンダリング位置に対する各データ点の(x、y、z)座標を検査し得る。幾つかのそのような実施形態において、(506で)位置値を評価することは、レンダリング位置に対して定義された異なる平面にデータ点をソートすること、及び、特定の平面内のデータ点が、当該レンダリング位置により近接している1つ又は複数の平面内の1つ又は複数のデータ点によって遮蔽されているかを判定すること、を含み得、ここで当該判定は、(x、y、z)座標のうちの2つを共通で有する、又は、当該レンダリング位置の角度又は配向に一致する特定のオフセットを用いて定義された(x、y、z)座標のうちの2つを有するデータ点に基づき得る。加えて、ハイブリッドレンダリングシステム100は、特定の平面にソートされたデータ点のうちの1つ又は複数が、レンダリング位置について定義された視野内にあるか、又はその外側にあるかを判定し得る。
【0053】
プロセス500は、(510で)第1の可視化を生成するために、データ点の第1のセット内の各データ点の位置値及び非位置値に従い、データ点の第1のセットをレンダリングすることを含み得る。(510で)データ点の第1のセットをレンダリングすることは、データ点の第1のセットの各特定のデータ点を選択すること、及び、当該特定のデータ点(例えば、x、y、及びz座標値)の位置値によって定義され、且つ、当該特定のデータ点の非位置値によって定義された視覚又は記述的特性(例えば、照明、着色、色度等)を有する位置で、3D空間におけるグラフィック点を生成すること、を含み得る。従って、データ点の第1のセットの各レンダリングされたデータ点の位置値及び非位置値は、第1の可視化に対して異なるグラフィック要素又は特徴を与え得る。(510で)データ点の第1のセットをレンダリングすることは、データ点の第1のセットの各データ点が可視表面に詳細(例えば、別の要素又は特徴)を追加し、当該追加された詳細についての着色、色度、輝度、及び/又は他の記述的特性を与えることにより、点群の可視表面を徐々に作成することを含み得る。単一のメッシュ、ボクセル、又はポリゴンによってカバーされる空間の同一領域について定義されたより多くのデータ点が存在し、それらの追加的なデータ点は可視化された表面についてのより高い表面詳細度、より高い解像度、及び/又は可視化された表面にわたり適用されるためのより多くの記述的情報を提供するため、(510で)データ点の第1のセットをレンダリングすることは、メッシュ、ボクセル、又はポリゴンを用いて同一の可視表面をレンダリングすることに比べて、より高い詳細度(例えば、より高解像度)、より高い記述的正確度(例えば、色正確度、照明正確度等)を有する第1の可視化を作成し得る。
【0054】
プロセス500は、データ点の第2のセットの位置値及び/又は非位置値における検出された共通性に基づき、(512で)当該データ点の第2のセットを、メッシュ、ボクセル、又はポリゴンの異なるグループに区分することを含み得る。(512において)区分することは、点群の別個の隠れた表面について、データ点の第2のセットの異なるサブセットを識別することを含み得る。
【0055】
ハイブリッドレンダリングシステム100は、データ点の各サブセットの1つ又は複数のデータ値における共通性に基づき、データ点の異なるサブセットを識別し得る。ハイブリッドレンダリングシステム100は、2つの隣接するデータ点の1つ又は複数の位置値及び/又は非位置値が指定された量又は割合を超えて変化しない場合に共通性を検出し得る。例えば、特定のメッシュグループについて区分されたデータ点のサブセットは、互いからの一定領域又は最大距離内にあり、且つ、同様の色データ値(例えば、互いの閾値範囲内にある色値)を有するデータ点の第2のセットのうちの2つ又はそれより多くを含み得る。隣接するデータ点(例えば、位置共通性を有するデータ点)が記述的共通性を有しない場合、ハイブリッドレンダリングシステム100は、互いに接続され得る、又は隣にあり得るが、点群の異なる表面、要素、特徴、又はオブジェクトを表す2つの別個の非可視表面を検出し得る。例えば、自動車の非可視面を表すデータ点の第2のセットは、タイヤに対応するより暗いか又は黒の色値を有するデータ点の第1のサブセット、及び、タイヤ周辺の自動車の車体パネルに対応するより明るい色値を有するデータ点の第2のサブセットを有し得る。この例において、ハイブリッドレンダリングシステム100は、データ点の第1のサブセットを第1のメッシュグループに区分し得、データ点の第2のサブセットを第2のメッシュグループに区分し得る。
【0056】
プロセス500は、(514で)メッシュグループに区分された2つ又はそれより多くのデータ点の各々についての位置値及び非位置値を表すための、値の特異なセットを有する単一のメッシュ、ボクセル又はポリゴンを定義することを含み得る。(514で)メッシュ、ボクセル、又はポリゴンを定義することは、特定のメッシュグループ内のデータ点のサブセットがまたがる領域を包含する単一の形状又は形態を判定することを含み得る。幾つかの実施形態において、ハイブリッドレンダリングシステム100は、データ点のサブセットによって間隔を設けられた領域をカバーするために、変化するサイズの三角形、長方形、及び/又は他のポリゴン形状を使用し得る。幾つかの実施形態において、メッシュ、ボクセル、又はポリゴンについての位置値は、メッシュの各コーナー、エッジ、又は境界におけるデータ点の位置値に基づき得、ここで、メッシュ、ボクセル、又はポリゴンがまたがる領域内部のデータ点についての位置値は、破棄される、又はメッシュ定義に含まれない場合がある。幾つかの他の実施形態において、メッシュ、ボクセル、又はポリゴンは、定義されたメッシュ、ボクセル、又はポリゴンの位置値が、当該メッシュ、ボクセル、又はポリゴンの中心位置を含み得るように、固定のサイズ又は形状であり得る。そのメッシュ、ボクセル、又はポリゴンがまたがるエッジ又は領域は、そのメッシュ、ボクセル、又はポリゴンについて選択された中心位置及び固定のサイズ又は形状から判定され得る。(514で)メッシュ、ボクセル、又はポリゴンを定義することは、そのメッシュ、ボクセル、又はポリゴンによって表されるデータ点のサブセットの非位置データ値に基づき、定義されたメッシュ、ボクセル、又はポリゴンについての非位置データ値を判定することを更に含み得る。幾つかの実施形態において、メッシュ、ボクセル、又はポリゴンについての非位置データ値は、データ点のサブセットの非位置データ値の平均、中央値、及び/又はサンプリングに基づき定義され得る。幾つかの他の実施形態において、メッシュ、ボクセル、又はポリゴンについての非位置データ値は、データ点のサブセットの非位置データ値から計算又は導出され得る。例えば、ハイブリッドレンダリングシステム100は、メッシュ、ボクセル、又はポリゴンの中心における1つ又は複数のデータ点のRGB色値から、又は、当該メッシュ、ボクセル、又はポリゴンのエッジ、コーナー、又は境界における1つ又は複数のデータ点のRGB色値から、単一のメッシュ、ボクセル、又はポリゴンについてのRGB色値を計算し得る。
【0057】
プロセス500は、レンダリング位置から非可視である点群の表面についての第2の可視化を生成するために、データ点の第2のセットの代わりに各グループについて定義された各メッシュ、ボクセル、又はポリゴンを(516で)レンダリングすることを含み得る。(516で)メッシュ、ボクセル、又はポリゴンをレンダリングすることは、そのメッシュ、ボクセル、又はポリゴンによって表される2つ又はそれより多くのデータ点のサブセットをレンダリングすることに比べてより少ないメモリを消費し得、且つより短い時間で完了し得、これは、メッシュ、ボクセル、又はポリゴンが、2つ又はそれより多くのデータ点のサブセットによってカバーされる領域が可視化され得る値の単一のセットを有する単一の構成体であるのに対し、2つ又はそれより多くのデータ点のサブセットをレンダリングすることは、同一領域を可視化するために、各々がその独自の値のセットを有する複数のデータ点をレンダリングすることを含むためである。メッシュ、ボクセル、又はポリゴンをレンダリングすることは、2つ又はそれより多くのデータ点のサブセットをレンダリングすることに比べてより少ない色正確度をもたらし、これは、メッシュ、ボクセル、又はポリゴンをレンダリングする場合は領域についての可視化を生成するために色値の単一のセットが使用されるのに対し、2つ又はそれより多くのデータ点のサブセットをレンダリングする場合は同一領域についての可視化を生成するために各データ点についての色値の複数のセットが使用されるためである。同様に、レンダリングされた領域の詳細度はより低く、これは、その領域についての可視化を生成するためにメッシュ、ボクセル、又はポリゴンの特異な構成体が使用されるのに対し、2つ又はそれより多くのデータ点のサブセットは、その同一領域についての可視化を生成するためのより多くのデータ点を提供するためである。具体的には、2つ又はそれより多くのデータ点は、3D空間の領域における異なる深度、表面テクスチャ、位置オフセット等を定義し得、これは、空間のその同一領域を定義するために単一のポリゴン構成体を用いる場合には不可能であり得る。メッシュ、ボクセル、又はポリゴンは、隠れた表面、又は、最初はレンダリング位置の視野内にない表面を表すため、メッシュ、ボクセル、又はポリゴンをレンダリングすることからもたらされるより低い正確度及び詳細度は、データ点の第1のセットをレンダリングした結果として提示される可視表面の正確度又は詳細度を低下させない。
【0058】
プロセス500は、点群についての完全な可視化を生成するために、データ点の第1のセットをレンダリングすることから作成される第1の可視化を、データ点の第2のセットの代わりにメッシュ、ボクセル、又はポリゴンをレンダリングすることから作成される第2の可視化と(518で)組み合わせることを含み得る。可視化を組み合わせることは、点群によって表される3D空間の同一領域又は体積についてレンダリングされた2つの3D画像(例えば、第1の可視化及び第2の可視化)から合成3D画像を生成することを含み得る。
【0059】
プロセス500は、データ点の第1のセット及びメッシュ、ボクセル、又はポリゴンをレンダリングすることからもたらされる完全な可視化を(520で)調節することを含み得る。(520で)完全な可視化を調節することは、完全な可視化を強化するために追加される1つ又は複数の光源、照明技法、又は特殊効果に基づく照明、反射、影、鏡面ハイライト、及び/又は他の視覚特性を追加又は訂正することを含み得る。例えば、組み合わされた第1及び第2の可視化からの様々な可視及び非可視表面で跳ね返る照明の効果を正確にキャプチャすることにより可視化を強化するために、レイトレーシング又は他の照明技法が使用され得る。
【0060】
プロセス500は、(522で)レンダリング位置からの調節された完全な可視化を提示することを含み得る。具体的には、ハイブリッドレンダリングシステム100は、レンダリング位置から点群によって表される3D環境の3D可視化をスクリーン又はディスプレイ上に出力し得る。
【0061】
調節された完全な可視化は、単なる3D画像を上回るものを提供する。幾つかの実施形態において、調節された完全な可視化は、現実世界の物理及び/又は調節された完全な可視化において提示される異なる要素、特徴、オブジェクト、及び/又は表面間の正確な相互作用を実装するために必要な情報を含む。例えば、非可視データ点の異なるサブセットに置き換わるメッシュ、ボクセル、又はポリゴンは、置き換えられた非可視データ点のサブセットから導出される材料特質を引き継ぎ得る、又は有し得る。材料特質は、或る表面又はオブジェクトが別の表面又はオブジェクトと有し得る物理又は相互作用に影響を与える非位置値を含み得る。例えば、材料特質は、磁気特質、硬度又は軟度、重量、強度等に対応し得る。ハイブリッドレンダリングは、従って、データ点の一部が最終レンダリングにおいてメッシュ、ボクセル、又はポリゴンに置き換えられた場合でも、データ点の材料特質を保持する。
【0062】
材料特質は、3D環境内を移動し、別のレンダリングされたオブジェクト又は表面と接触するレンダリングされたオブジェクト又は表面間の相互作用に影響を与え得る。例えば、データ点の第1のセットは、3D環境内のボールについての可視化を生成し得、データ点の第2のセットは、現在のレンダリング位置からは非可視である3D環境内の障壁又は壁についての可視化を生成し得る。ボールが障壁又は壁に接触した場合、ハイブリッドレンダリングシステム100は、データ点の第1のセットのサブセットの硬度値、及び、データ点の第2のセットのサブセットによって接触されたメッシュ、ボクセル、又はポリゴンのサブセットについての硬度値を考慮し得、データ点のサブセット及びメッシュ、ボクセル、又はポリゴンのサブセットからの硬度値に基づき、ボールが障壁又は壁に接触することに関連付けられた物理を計算し得る。物理を計算することは、データ点の第1のセットによって表されるボールが、データ点の第2のセットに置き換わったメッシュ、ボクセル又はポリゴンによって表される隠れた障壁又は壁で跳ね返る力、距離、及び/又は角度を計算することを含み得る。
【0063】
幾つかの実施形態において、プロセス500は、点群データ点の(506での)異なる評価及び(508での)区別を実行するように修正され得る。例えば、ハイブリッドレンダリングシステム100は、レンダリング位置からの指定された距離又は深度未満であるデータ点の第1のセットと、レンダリング位置からの指定された距離又は深度を上回るデータ点の第2のセットを(508で)区別するために、(506で)点群データ点の位置値を評価し得る。このようにして、プロセス500は、最も可能な詳細度及び正確度を伴って前景が可視化されるよう、(510で)点群の前景におけるデータ点の第1のセットについての個々のデータ点をレンダリングするように、及び、前景における場合に比べて詳細度及び正確度があまり重要ではない又は顕著でない場合に、調節された完全な可視化の背景がより短い時間でより少ないリソースを用いてレンダリングされるよう、(516で)背景データ点の第2のセットの代わりにメッシュ、ボクセル、又はポリゴンをレンダリングするように修正され得る。
【0064】
幾つかの実施形態において、プロセス500は、ユーザが、点群データ点の追加的な詳細度及び正確度を伴ってレンダリングされることになる領域、又は、代替的に、2つ又はそれより多くのデータ点をそれぞれ置き換え、且つ、構成体によって置き換えられているデータ点の非位置値(例えば、色、色度、輝度、強度、密度、重量、厚さ等)を表す値の特異なセットを提供する構成体(例えば、メッシュ、ボクセル、又はポリゴン)のより少ない詳細度及び正確度を伴ってレンダリングされることになる領域を、選択又は定義するように修正され得る。例えば、ユーザは、投げ縄ツールを使用して、領域又は体積を描き得る、又は、より高い精細度又は解像度のレンダリングが所望される座標のセットを定義し得る。ハイブリッドレンダリングシステム100は、点群を検索して、指定された領域、体積、又は座標のセット内に収まるデータ点の第1のセットを識別し得、データ点の第1のセットを直接レンダリングし得、且つ、指定された領域、体積、又は座標のセットの外側にある他のデータ点の形態及び記述的特性に近似するメッシュ、ボクセル、又はポリゴンのセットを用いて点群の残りをレンダリングし得る。
【0065】
図6は、本明細書で提示される幾つかの実施形態による、ハイブリッドレンダリングシステム100についての例示的なアーキテクチャを示す。図6に示されている通り、ハイブリッドレンダリングシステム100は、コントローラ601、データ点レンダリングエンジン603、メッシュレンダリングエンジン605、照明及び効果エンジン607、及び/又は出力インタフェース609を含み得る。ハイブリッドレンダリングシステム100のこれら及び他のコンポーネントは、1つ又は複数のデバイス、マシン、又はハードウェアリソースのセット上で実装され得る。
【0066】
コントローラ601は、異なる点群を開く、アクセスする、読み取る、評価する、修正する、及び/又は区分するためのロジックを含み得る。例えば、コントローラ601は、点群データ点(例えば、可視表面についてのデータ点の第1のセット及び非可視表面についてのデータ点の第2のセット)の区別を実行し得、且つ、区別されたデータ点のセットの代わりにレンダリングされることになるメッシュ、ボクセル、又はポリゴンを定義し得る。コントローラ601は、データ点の第1のセットをデータ点レンダリングエンジン603に提供し得、データ点の第2のセットについて定義されたメッシュ、ポリゴン、又はボクセルをメッシュレンダリングエンジン605に提供し得る。
【0067】
データ点レンダリングエンジン603は、コントローラ601によって区別されたデータ点の第1のセットを受信し、直接レンダリングし得る。データ点レンダリングエンジン603は、各受信されたデータ点の位置値及び非位置値から直接、可視化を生成し得る。
【0068】
メッシュレンダリングエンジン605は、コントローラ601によって区別されたデータ点の第2のセットの代わりに、メッシュ、ボクセル、又はポリゴンを受信及びレンダリングし得る。特に、メッシュレンダリングエンジン605は、メッシュ、ボクセル、又はポリゴンによって置き換えられるより大きなデータ点の第2のセットではなく、受信されたメッシュ、ボクセル、又はポリゴンのより小さなセットの形状及び値から可視化を生成し得る。従って、データ点レンダリングエンジン603及びメッシュレンダリングエンジン605は、異なるデータ(例えば、メッシュ、ボクセル、又はポリゴンに対する点群データ点)を受信し、これに対して動作し得る。
【0069】
データ点レンダリングエンジン603をメッシュレンダリングエンジン605から切り離すことの利点は、データ点の第1のセットのレンダリング、及び、データ点の第2のセットを表すメッシュ、ボクセル、又はポリゴンのレンダリングが並行して実行され得ることである。例えば、第1のグラフィックス処理ユニット(Graphics Processing Unit:「GPU」)は、データ点レンダリングエンジン603に割り当てられ得、且つデータ点の第1のセットをレンダリングするために使用され得、一方、メッシュレンダリングエンジン605に割り当てられた第2のGPUは、データ点の第2のセットを表すメッシュ、ボクセル又はポリゴンをレンダリングするために同時に使用され得る。このようにして、ハイブリッドレンダリングシステム100は、並行した様式でハイブリッドレンダリングを実行し、それにより、点群可視化を作成するための時間を短縮し得る。具体的には、データ点の第1のセットのレンダリングからもたらされる第1の可視化は、メッシュ、ボクセル、又はポリゴンのレンダリングからもたらされる第2の可視化と並行して生成され得る。
【0070】
データ点レンダリングエンジン603及びメッシュレンダリングエンジン605からもたらされるレンダリングは、照明及び効果エンジン607への入力として提供され得る。照明及び効果エンジン607は、別個のレンダリングを組み合わせて点群についての単一の可視化を作成し得、当該単一の可視化に照明及び/又は他の視覚効果を適用することにより可視化を調節し得る。
【0071】
幾つかの実施形態において、ハイブリッドレンダリングは、ビデオゲーム、アーキテクチャ設計用途、製造設計用途、計画立案、科学分析用途、及び/又はユーザが3D環境のレンダリングされた可視化を編集する、操作する、移動させる、及び/又はこれと相互作用し得る他の用途のために使用され得る。例えば、現在のレンダリング位置からズームインすること又はレンダリング位置を変更することは、ハイブリッドレンダリングシステム100に、新たなレンダリング位置について修正された可視化を提供するように点群を新たにレンダリングさせ得る、又はハイブリッドレンダリングを更新させ得る。
【0072】
幾つかの実施形態において、ハイブリッドレンダリングシステム100は、レンダリング位置の変更の結果としての3D環境の可視化の変更に関連付けられたリソース及び/又は処理オーバーヘッドを削減し得る。幾つかのそのような実施形態において、ハイブリッドレンダリングシステム100は、以前にレンダリングされなかった領域(例えば、最後の視野の外側)だけをレンダリングすることにより、又は、メッシュを用いてレンダリングされ、新たなレンダリング位置の結果として可視になった、前景に移動した、又はそうでなければ直接点レンダリングについての区別基準を満たす領域を更新することにより、以前にレンダリングされた結果を再使用し得る。具体的には、点群データ点のデータ値から直接レンダリングされた領域(例えば、データ点の第1のセット)は、最大レベルの詳細度及び特性正確度を既に有する。これらの領域において、ハイブリッドレンダリングシステム100は、レンダリングされたデータ点のデータ値を再評価することなく、表示位置における変更に従って、これらの領域の縮尺、配向、及び/又はサイズを調節し得る。より詳細且つ正確でないメッシュ、ボクセル、又はポリゴンを用いてレンダリングされており、且つ、より詳細且つ正確であるデータ点レンダリングについての区別基準を現在満たしている他の領域について、ハイブリッドレンダリングシステム100は、メッシュ、ボクセル、又はポリゴンからもたらされたより詳細度の低いレンダリングの縮尺、配向、及び/又はサイズを最初に調節して、ユーザに何らかの可視化が提示されることを確実にし得る。レンダリング位置が移動し続ける(例えば、カメラが3D環境を通じてパンする)場合、ハイブリッドレンダリングシステム100は、変化するレンダリング位置によりモーションブラーが創出されるため、メッシュ、ボクセル又はポリゴンからもたらされるより詳細度の低いレンダリングを表示し続け、より詳細度の低いレンダリングで十分にし得る。しかしながら、レンダリング位置が固定位置に移動してそこで停止した場合、ハイブリッドレンダリングシステム100は、メッシュ、ボクセル、又はポリゴンによって表される各データ点を個々にレンダリングすることにより、レンダリングされたメッシュからもたらされる可視化を置き換え得る。
【0073】
図7は、本明細書で提示される幾つかの実施形態による、変化するレンダリング位置に応答した点群の部分的ハイブリッドレンダリングのためのプロセス700を提示する。プロセス700は、ハイブリッドレンダリングシステム100によって、又は、様々な方法で点群のレンダリングされた可視化と相互作用する能力をユーザに与える3D撮像及び/又は編集アプリケーションの一部として、実装され得る。
【0074】
プロセス700は、(702で)最初のレンダリング位置からの点群の可視化を提示することを含み得る。最初のレンダリング位置の可視化は、プロセス500に従って、及び/又は、ユーザデバイスが点群を開く、又はこれにアクセスすることに応答して生成され得る。
【0075】
プロセス700は、(704で)最初のレンダリング位置における変更を検出することを含み得る。例えば、ハイブリッドレンダリングシステム100は、レンダリング位置を定義する仮想カメラの位置を変更する入力をユーザデバイスから受信し得る、又は、ズームイン、回転、移動、及び/又はそうでなければ最初のレンダリング位置から遷移する入力を受信し得る。
【0076】
プロセス700は、更新されたレンダリング位置からの3D環境を提示するために、(706で)最初のレンダリング位置からの可視化の位置、縮尺、配向、サイズ、及び/又は照明を調節することを含み得る。ハイブリッドレンダリングシステム100は、点群データ点、又は、メッシュ、ボクセル、又はポリゴンのいずれも新たにレンダリングすることなく調節を実行し得、且つ、更新されたレンダリング位置からの可視化を提供するために既にレンダリングされたものを修正し得る点に留意することが重要である。換言すれば、最初のレンダリング位置からの可視化を生成することは、点群のデータ点の第1のセット及びその点群の全ての他のデータ点の代わりにメッシュ、ボクセル又はポリゴンをレンダリングすることを伴うため、最初のレンダリング位置からの可視化には、全ての可視及び非可視表面についての情報が含まれる。
【0077】
プロセス700は、最初のレンダリング位置に対する変更が或る時間量の後に停止したかどうかを(708で)判定することを含み得る。例えば、更新されたレンダリング位置が1秒間にわたり変化しなかった場合、ハイブリッドレンダリングシステム100は、最初のレンダリング位置に対する変更が停止したと(708で)判定し得る。更新されたレンダリング位置がその最後の1秒で変化した場合、ハイブリッドレンダリングシステム100は、レンダリング位置が未だに修正されていると(708で)判定し得る。
【0078】
レンダリング位置が未だに変更されていると(708の「いいえ」で)判定することに応答して、プロセス700は、最新のレンダリング位置からの3D環境を提示するために、最初のレンダリング位置からの可視化の位置、縮尺、配向、サイズ、及び/又は照明を(706で)絶えず調節することを含み得る。例えば、ハイブリッドレンダリングシステム100は、ユーザがレンダリング位置を変更することに応答して、毎秒、1秒当たり30回、又は何らかの他の頻度で可視化を更新し得る。変化するレンダリング位置は、以前に視野の外側にあった、又は以前に他の表面によって遮蔽されており、従ってメッシュ、ボクセル又はポリゴンを用いてレンダリングされた3D環境の領域を提示し得る。レンダリング位置は絶えず変化しており、レンダリングされたメッシュ、ボクセル又はポリゴンから作成されたより低品質の画像は短い継続時間(例えば、1秒又はそれ未満)において提示されるため気付かれない可能性があり、且つ、人間の目は、より正確度及び詳細度が高い点群データ点を用いてレンダリングされた領域と、より正確度及び詳細度が低いメッシュ、ボクセル、又はポリゴンを用いてレンダリングされた領域内で提示された詳細のレベルを区別することができないため、ハイブリッドレンダリングシステム100は、レンダリングされたメッシュ、ボクセル、又はポリゴンから作成された可視化を調節及び提示し続ける場合がある。換言すれば、3D環境の可視化が絶えず変化している場合、以前にレンダリングされたメッシュ、ボクセル又はポリゴンは、点群の3D環境を十分な詳細度を伴って提示する。
【0079】
レンダリング位置が指定された時間周期にわたり変化しておらず、新たなレンダリング位置に落ち着いたと(708の「はい」で)判定することに応答して、プロセス700は、最初のレンダリング位置でメッシュレンダリングについての区別基準を満たした、且つ、更新されたレンダリング位置におけるデータ点レンダリングについての区別基準を満たす1つ又は複数のメッシュ、ボクセル、又はポリゴンを用いて以前にレンダリングされた1つ又は複数の領域を(710で)識別することを含み得る。例えば、ハイブリッドレンダリングシステム100は、任意の可視領域のデータ点レンダリングを指定する区別基準を用いて、新たなレンダリング位置で可視になった1つ又は複数の以前の非可視領域を(710で)識別し得る。
【0080】
プロセス700は、1つ又は複数の識別された領域内の位置値を有するデータ点のサブセットを(712で)取得すること、及び、(714で)データ点のサブセットを個々にレンダリングして、先のメッシュでレンダリングされた可視化(例えば、メッシュ、ボクセル又はポリゴンをレンダリングすることから創出された可視化)に比べてより詳細且つ正確な1つ又は複数の識別された領域について更新された可視化を生成し、先のメッシュベースの可視化を(714で)個々にレンダリングされたデータ点のサブセットから生成された、より詳細且つ正確な更新された可視化に(716で)置き換えることを含み得る。特に、ハイブリッドレンダリングシステム100は、データ点のサブセットの各データ点の位置値でグラフィック点を創出することにより、及び、データ点のサブセットの各データ点の非位置値に従ってグラフィック点の視覚特性及び/又は材料特質を定義することにより、識別された領域についてのメッシュでレンダリングされた可視化に置き換わる可視化を生成し得る。従って、プロセス700は、メッシュで生成された可視化を使用して、カメラの視野内に移動した以前の非可視領域の最初の提示を提供し、且つ、カメラが停止して以前の非可視領域がカメラの視野内に留まると、メッシュで生成された可視化をデータ点で生成された可視化に置き換えることにより、それらの領域の正確度及び詳細度を向上させる。
【0081】
幾つかの実施形態において、プロセス700は、レンダリング位置が変化する速度、ビデオエンコードされた点群のフレームが変化する速度、又は、レンダリング位置又は新たなフレームと共に変化する情報量を考慮して修正され得る。例えば、ハイブリッドレンダリングシステム100は、毎秒100万データ点をレンダリングするために十分なプロセッサ、メモリ、及び/又は他のリソースを有し得る。レンダリング位置における変更が毎秒発生し、新たなレンダリング位置について変更されるデータ点の数が100万データ点よりも大きい場合、ハイブリッドレンダリングシステム100は、100万データ点の形態及び記述的特性に近似するメッシュ、ボクセル、又はポリゴンを用いて新たなレンダリング位置をレンダリングし得、且つ、新たなレンダリング位置が1秒間を超えて変化しないままである場合、又はハイブリッドレンダリングシステム100が個々のデータ点をレンダリングするために1秒以内の間隔でメッシュ、ボクセル又はポリゴンをレンダリングした後に追加の時間を有する場合、データ点を個々にレンダリングすることによってレンダリングの品質を高めることができる。代替的に、レンダリング位置における変更が毎秒発生し、新たなレンダリング位置について変更されるデータ点の数が100万データ点未満である場合、ハイブリッドレンダリングシステム100は、新たなレンダリング位置で各個々のデータ点をレンダリングし得る。同様に、ビデオエンコードされた点群の各次のフレームが1秒間隔でレンダリングされ、且つ、次のフレームが100万を超えるデータ点を有する場合、ハイブリッドレンダリングシステム100は、個々のデータ点の代わりにメッシュ、ボクセル又はポリゴンを用いて次のフレームをレンダリングし得る。ハイブリッドレンダリングシステム100が、次のフレームについてのメッシュをレンダリングした後及び次のフレームをレンダリングする時間になる前に追加のレンダリング周期を有する場合、ハイブリッドレンダリングシステム100は、別のフレームをレンダリングする時間になるまでの間、可視化を強化するためにデータ点のサンプリングをレンダリングし得る。次のフレームが100万未満のデータ点を有する場合、ハイブリッドレンダリングシステム100は、その次のフレームについての各個々のデータ点をレンダリングし得る。
【0082】
幾つかの実施形態において、ハイブリッドレンダリングシステム100は、点群を効率的且つ正確にレンダリングするために、逆ハイブリッドレンダリング技法を実装し得る。逆ハイブリッドレンダリング技法は、メッシュ、ボクセル、及び/又はポリゴンを用いて点群の全体をレンダリングして最初の提示を速やかに生成し、次に、可視視野内に位置付けられたデータ点をレンダリングすることにより、可視視野における詳細度を高めることを伴い得る。カメラ位置が変化するため、逆ハイブリッドレンダリング技法は、代替されたカメラ視野内に収まるデータ点のレンダリングによって新たなカメラ位置における詳細度を高める前に、メッシュ、ボクセル、及び/又はポリゴンから生成された可視化を最初に提示し得る。
【0083】
図8は、本明細書で提示される幾つかの実施形態による、逆ハイブリッドレンダリング技法についてのプロセス800を提示する。プロセス800は、ハイブリッドレンダリングシステム100によって実装され得る。
【0084】
プロセス800は、(802で)複数のデータ点を有する点群を受信することを含み得る。プロセス800は、(804で)複数のデータ点の異なるサブセットを表すためのメッシュ、ボクセル、及び/又はポリゴンのセットを定義することを含み得る。各メッシュ、ボクセル又はポリゴンは、データ点のうちの2つ又はそれより多くによってカバーされる点群の3D空間内の領域又は体積にまたがる形状を有し得、且つ、2つ又はそれより多くのデータ点の位置データ値及び/又は非位置データ値を表す値の単一のセットを含み得る。従って、メッシュ、ボクセル、及び/又はポリゴンのセットは、複数のデータ点に比べてより少ないデータを有する点群の全体を表し得る。
【0085】
プロセス800は、(806で)複数のデータ点の代わりにメッシュ、ボクセル又はポリゴンのセットをレンダリングすることを含み得る。換言すれば、点群の全ての表面、特徴、又はオブジェクトは、メッシュ、ボクセル、又はポリゴンを用いて最初にレンダリングされ得る。(806における)レンダリングは、データ点の各々をレンダリングすることに比べてより高速且つより少ないリソースを用いて創出される可視化を生成するが、データ点の各々をレンダリングする場合に比べてそれはより少ない正確度又は詳細度を有する。
【0086】
プロセス800は、(808で)可視化が提示される最初の視野についての位置座標を検出することを含み得る。換言すれば、(806における)レンダリングは、点群全体についての可視化を創出し得るが、提示される視野は、可視化の一部に限定され得る。
【0087】
プロセス800は、(810で)最初の視野についての位置座標内の位置値を有する複数のデータ点の第1のセットを判定することを含み得る。プロセス800は、(806で)最初の視野内のメッシュ、ボクセル、及び/又はポリゴンのレンダリングから創出された可視化を補足する、又は置き換えるために、(812で)データ点の第1のセットからの各データ点をレンダリングすることにより、提示された可視化を強化することを含み得る。このようにして、ハイブリッドレンダリングシステム100は、個々のデータ点からの詳細度及び/又は正確度が徐々に提示に追加される一方で、可視視野についての最初のより低解像度の提示を提供し得る。
【0088】
プロセス800は、(814で)最初の視野における変更を検出することを含み得る。例えば、ハイブリッドレンダリングシステム100は、提示される視野を定義する仮想カメラの位置を変更する入力をユーザデバイスから受信し得る、又は、ズームイン、回転、移動、及び/又はそうでなければ最初の視野から遷移する入力を受信し得る。
【0089】
プロセス800は、更新された視野内のメッシュ、ボクセル又はポリゴンのレンダリングされたセットから(816で)新たな可視化を生成することを含み得る。プロセス800は、視野に対する変更が或る時間量の後に停止したかどうかを(818で)判定することを含み得る。
【0090】
視野が未だに変更されていると(818の「いいえ」で)判定することに応答して、プロセス800は、更新された視野内のメッシュ、ボクセル又はポリゴンのレンダリングされたセットからの新たな可視化を(816で)絶えず生成することを含み得る。指定された時間周期(例えば、50ミリ秒)にわたり視野が変化しておらず、新たな視野に落ち着いたと(818の「はい」で)判定することに応答して、プロセス800は、(820で)新たな視野についての位置座標を検出すること、(822で)新たな視野についての位置座標内の位置値を有する複数のデータ点の第2のセットを判定すること、及び、新たな視野内に位置付けられていたメッシュ、ボクセル、及び/又はポリゴンのレンダリングから創出された新たな可視化を補足する、又は置き換えるために、(824で)データ点の第2のセットからの各データ点をレンダリングすることにより、新たな視野についての強化された可視化を生成することを含み得る。
【0091】
幾つかの実施形態において、プロセス800は、直接レンダリングされ、且つ、より低品質のメッシュ、ボクセル、及び/又はポリゴンを用いて創出された可視化の一部を強化するために使用されることになるデータ点のセットをユーザが指定又は選択するように修正され得る。例えば、ハイブリッドレンダリングシステム100は、点群データ点のうちの2つ又はそれより多くのポジショニング及び記述的特性にそれぞれ近似する構成体を用いて点群の全体をレンダリングし得る。ハイブリッドレンダリングシステム100は、点群データ点の追加的な詳細度を伴ってレンダリングするために、特定の領域又は体積を識別するユーザ入力を受信し得る。ハイブリッドレンダリングシステム100は、特定の領域又は体積内の位置値又は座標を有するデータ点のセットを選択し得、且つ、構成体でレンダリングされた当該特定の領域又は体積についての可視化を、当該特定の領域又は体積内にあると判定された各個々のデータ点をレンダリングすることから創出されるより詳細度の高い可視化に置き換えることによって、特定の領域又は体積の可視化を強化し得る。
【0092】
図9は、デバイス900の例示的なコンポーネントの図である。デバイス900は、上記で説明されたデバイス又はシステム(例えば、ハイブリッドレンダリングシステム100、ハイブリッドレンダリングシステム100の様々なコンポーネント等)のうちの1つ又は複数を実装するために使用され得る。デバイス900は、バス910、プロセッサ920、メモリ930、入力コンポーネント940、出力コンポーネント950、及び通信インタフェース960を含み得る。別の実装において、デバイス900は、追加的な、より少ない、異なる、又は、異なるように配列されたコンポーネントを含み得る。
【0093】
バス910は、デバイス900のコンポーネント間で、通信を許可する1つ又は複数の通信経路を含み得る。プロセッサ920は、命令を解釈して実行し得るプロセッサ、マイクロプロセッサ、又は、処理ロジックを含み得る。メモリ930は、プロセッサ920による実行のための情報及び命令を格納し得る任意のタイプの動的ストレージデバイス、及び/又は、プロセッサ920による使用のための情報を格納し得る任意のタイプの不揮発性ストレージデバイスを含み得る。
【0094】
入力コンポーネント940は、キーボード、キーパッド、ボタン、スイッチ等のような、オペレータがデバイス900に情報を入力することを許可する機構を含み得る。出力コンポーネント950は、ディスプレイ、スピーカ、1つ又は複数のLED等のような、オペレータに情報を出力する機構を含み得る。
【0095】
通信インタフェース960は、デバイス900が複数の他のデバイス及び/又はシステムと通信することを可能にする任意の送受信機のような機構を含み得る。例えば、通信インタフェース960は、イーサネット(登録商標)インタフェース、光インタフェース、又は同軸インタフェース等を含み得る。通信インタフェース960は、赤外線(IR)受信機又はBluetooth(登録商標)無線等のようなワイヤレス通信デバイスを含み得る。ワイヤレス通信デバイスは、遠隔制御、ワイヤレスキーボード、移動電話等のような外部デバイスに結合され得る。幾つかの実施形態において、デバイス900は、1つよりも多くの通信インタフェース960を含み得る。例えば、デバイス900は、光インタフェース及びイーサネット(登録商標)インタフェースを含み得る。
【0096】
デバイス900は、上記で説明された1つ又は複数のプロセスに関する一定の動作を実行し得る。デバイス900は、プロセッサ920がメモリ930などのコンピュータ可読媒体において格納されるソフトウェア命令を実行することに応答して、これらの動作を実行し得る。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリデバイスは、単一の物理メモリデバイス内の空間を含み得、又は、複数の物理メモリデバイスにわたって広がり得る。ソフトウェア命令は、別のコンピュータ可読媒体から、又は別のデバイスから、メモリ930に読み込まれ得る。メモリ930に格納されるソフトウェア命令は、本明細書で説明されたプロセスをプロセッサ920に実行させ得る。代替的に、ハードワイヤード回路は、本明細書で説明されたプロセスを実装すべく、ソフトウェア命令の代わりに、又は複数のソフトウェア命令と組み合わせて使用され得る。従って、本明細書で説明される実装は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【0097】
実装の上述の説明は、例示及び説明を提供するが、網羅的であること、又は、可能な実装を、開示される厳密な形態に限定することを意図するものではない。修正及び変形が、上記の開示に鑑みて可能である、又は、実装の実践から取得され得る。
【0098】
実施形態を実装するために使用される実際のソフトウェアコード又は専用の制御ハードウェアは、実施形態を限定するものではない。従って、実施形態の動作及び挙動は、特定のソフトウェアコードを参照することなく説明されており、ソフトウェア及び制御ハードウェアは、本明細書の説明に基づいて設計され得ることが理解される。
【0099】
例えば、上記の図のうちの幾つかに関して一連のメッセージ、ブロック、及び/又は、信号が説明されているが、メッセージ、ブロック、及び/又は信号の順序は、他の実装において修正され得る。更に、非依存的なブロック及び/又は信号が並行して実行され得る。加えて、特定の作用を実行する特定のデバイスの文脈において図が説明されているが、実際には、1つ又は複数の他のデバイスが、上記で言及されたデバイスの代わりに、又は、それに加えて、これらの作用の一部又は全部を実行し得る。
【0100】
特徴の特定の組み合わせが特許請求の範囲において列挙され、及び/又は、本明細書において開示されるが、これらの組み合わせは、可能な実装についての本開示を限定することを意図するものではない。実際、これらの特徴の多くが、特許請求の範囲において具体的に列挙されていない、及び/又は本明細書において具体的に開示されていない方法で組み合わされ得る。以下に列挙される各従属請求項は、1つの他の請求項のみに直接従属し得るが、可能な実装についての本開示は、請求項のセットにおけるあらゆる他の請求項との組み合わせにおける各従属請求項を含む。
【0101】
更に、一定の接続又はデバイスが示されているが、実際には、追加的な、又はより少ない、又は、異なる接続又はデバイスが使用され得る。更に、様々なデバイス及びネットワークが別々に示されているが、実際には、複数のデバイスの機能性は、単一のデバイスによって実行され得る、又は、1つのデバイスの機能性は、複数のデバイスによって実行され得る。更に、幾つかのデバイスが、ネットワークと通信するように示されているが、幾つかのそのようなデバイスは、全体として又は部分的に、ネットワークの一部として組み込まれ得る。
【0102】
前述の実施形態が、個人によって提供される個人情報を収集、格納、又は採用する限りにおいて、そのような情報は、個人情報の保護に関する全ての適用法に従い使用されるものと理解されるべきである。加えて、そのような情報の収集、格納及び使用は、情報の状況及びタイプに対して適切であり得るように、例えば、周知の「オプトイン」又は「オプトアウト」プロセスを通じて、そのような活動に対する個人の同意を条件とし得る。個人情報の格納及び使用は、例えば、とりわけセンシティブな情報についての様々な暗号化及び匿名化技法を通じた、情報のタイプを反映する適切にセキュアな様式であり得る。
【0103】
本明細書で説明される幾つかの実装は、閾値と併せて説明され得る。本明細書において使用される場合、「よりも大きい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために「よりも大きい又はそれに等しい」という用語(又は同様の用語)と互換的に使用され得る。同様に、「~よりも小さい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために本明細書において使用される場合、「より小さい又はそれに等しい」という用語(又は同様の用語)と互換的に使用され得る。閾値を「超える」(又は同様の用語)は、本明細書において使用される場合、閾値が使用される文脈に応じて、「閾値よりも大きい」、「閾値よりも大きい又はそれに等しい)」、「閾値未満である」、「閾値未満である、又はそれに等しい」、又は、他の同様の用語と互換的に使用され得る。
【0104】
本願で使用される要素、作用、又は命令は、明示的にそのように説明されていない限り、重大又は不可欠と解釈されるべきではない。本明細書において使用される場合、「及び」という用語の使用の事例は、必ずしも、「及び/又は」という語句がその事例において意図されるという解釈を除外しない。同様に、「又は」という用語の使用の事例は、本明細書において使用される場合、必ずしも、「及び/又は」という語句がその事例において意図されるという解釈を除外しない。また、冠詞「a」は、本明細書において使用される場合、1つ又は複数の項目を含むことが意図され、「1つ又は複数」という語句と互換的に使用され得る。1つの項目だけが意図される場合、「1」、「単一」、「だけ」という用語又は同様の文言が使用される。更に、「に基づく」という語句は、別段の明示的な記載がない限り、「少なくとも部分的に基づき」を意味することが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】