(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-23
(54)【発明の名称】3D横断面の可視化および評価
(51)【国際特許分類】
G06T 19/00 20110101AFI20230315BHJP
G06T 15/06 20110101ALI20230315BHJP
【FI】
G06T19/00 A
G06T15/06
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022546104
(86)(22)【出願日】2021-01-29
(85)【翻訳文提出日】2022-09-27
(86)【国際出願番号】 US2021015833
(87)【国際公開番号】W WO2021155238
(87)【国際公開日】2021-08-05
(32)【優先日】2020-01-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522301094
【氏名又は名称】バーテックス ソフトウェア,インコーポレイテッド
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】マッカーティー,マイケル
(72)【発明者】
【氏名】ビビンズ,ジェリック
(72)【発明者】
【氏名】プリンセン,アレクサンダー
(72)【発明者】
【氏名】シュルツ,ダニエル
(72)【発明者】
【氏名】マレー、ダニエル
【テーマコード(参考)】
5B050
5B080
【Fターム(参考)】
5B050BA09
5B050BA13
5B050EA07
5B050EA09
5B050FA02
5B050FA05
5B050FA17
5B080AA19
5B080GA06
(57)【要約】
3Dモデルの横断面を生成するための方法、システム、およびコンピュータ可読媒体が開示される。方法例は、3Dモデルと交差する横断面を決定すること、複数の光線の各々に、各光線が横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行すること、横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある1つ以上の光線を決定すること、および決定された光線に対応する画素を強調表示することを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
3Dモデルの横断面を生成する方法であって、
前記3Dモデルと交差する横断面を決定することと、
複数の光線の各々に、各光線が前記横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行することと、
前記横断面とのそれらそれぞれの交点において前記3Dモデルの閾値距離内にある1つ以上の光線を決定することと、
前記決定された光線に対応する画素を強調表示することと
を含む、方法。
【請求項2】
前記横断面は前記3Dモデルの前面および背面を画定し、レイトレーシングを実行することは、
前記複数の光線の各々と前記3Dモデルとの間の第1の交差を前記投影面の観点から決定することと、
前記複数の光線の各々と前記3Dモデルとの間の前記第1の交差が前記横断面において、または前記背面上のいずれかで生じるように、前記複数の光線の各々を切断することと
を更に含む、請求項1に記載の方法。
【請求項3】
前記複数の光線の各々に対して、前記複数の光線の各々の前記3Dモデルとの前記交差に基づいて、対応する画素色を決定することと、
前記対応する画素色に基づいて画素をレンダリングすることと、
前記決定された光線に対応する画素を同じ色で強調表示することと
を更に含む、請求項2に記載の方法。
【請求項4】
各光線に対して、前記閾値距離は、前記横断面内で、前記光線と前記横断面との交点から延出する2次元における距離を含む、請求項1に記載の方法。
【請求項5】
各光線に対して、前記閾値距離は視距離に基づき、前記視距離は、前記光線に対応する前記投影面の前記画素と前記光線の前記横断面との交差の間の距離を含む、請求項4に記載の方法。
【請求項6】
前記閾値距離および前記視距離は直接的関係を有し、そのため前記閾値距離は、前記視距離が増大するにつれて増大する、請求項5に記載の方法。
【請求項7】
前記3Dモデルの幾何学的表面を選択することを更に含み、前記幾何学的表面を選択することは、
前記投影面の画素を選択することと、
前記投影面の前記選択された画素に対応する最も近い強調表示された画素を決定することと、
前記最も近い強調表示された画素に対応する前記3Dモデルの前記幾何学的表面を選択することと
を含む、請求項1に記載の方法。
【請求項8】
前記3Dモデルの第1の幾何学的表面と第2の幾何学的表面との間の距離を判断することを更に含み、前記距離を判断することは、
前記投影面の第1の画素を選択することと、
前記投影面の前記第1の選択された画素に対応する第1の最も近い強調表示された画素を決定することと、
前記第1の最も近い強調表示された画素に対応する前記3Dモデルの前記第1の幾何学的表面を選択することと、
前記投影面の第2の画素を選択することと、
前記投影面の前記第2の選択された画素に対応する第2の最も近い強調表示された画素を決定することと、
前記第2の最も近い強調表示された画素に対応する前記3Dモデルの前記第2の幾何学的表面を選択することと、
前記選択された第1の幾何学的表面と前記選択された第2の幾何学的表面との間の前記距離を測定することと
を含む、請求項7に記載の方法。
【請求項9】
前記3Dモデルを複数の構成部分に分割することと、
前記構成部分の2つ以上に対して、個別に、
前記3Dモデルの前記構成部分と交差する前記横断面を決定すること、
複数の光線の各々に、各光線が前記横断面と交差するように、前記投影面の前記対応する画素を通過させることによってレイトレーシングを実行すること、
前記横断面とのそれらそれぞれの交点において前記3Dモデルの前記構成部分の前記閾値距離内にある1つ以上の光線を決定すること、および
前記決定された光線に対応する画素を同じ色で強調表示することと、
前記2つ以上の構成部分の各々からの前記強調表示された画素を単一の画像に結合することと
を更に含む、請求項1に記載の方法。
【請求項10】
その上に格納された命令を有する、持続性コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、3Dモデルの横断面を生成するための動作のセットを実行させ、前記動作のセットは、
前記3Dモデルと交差する横断面を決定することと、
複数の光線の各々に、各光線が前記横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行することと、
前記横断面とのそれらそれぞれの交点において前記3Dモデルの閾値距離内にある1つ以上の光線を決定することと、
前記決定された光線に対応する画素を強調表示することと
を含む、持続性コンピュータ可読媒体。
【請求項11】
前記横断面は前記3Dモデルの前面および背面を画定し、レイトレーシングを実行することは、
前記複数の光線の各々と前記3Dモデルとの間の第1の交差を前記投影面の観点から決定することと、
前記複数の光線の各々と前記3Dモデルとの間の前記第1の交差が前記横断面において、または前記背面上のいずれかで生じるように、前記複数の光線の各々を切断することと
を更に含む、請求項10に記載の持続性コンピュータ可読媒体。
【請求項12】
動作の前記セットは、
前記複数の光線の各々に対して、前記複数の光線の各々の前記3Dモデルとの前記交差に基づいて、対応する画素色を決定することと、
前記対応する画素色に基づいて画素をレンダリングすることと、
前記決定された光線に対応する画素を同じ色で強調表示することと
を更に含む、請求項11に記載の持続性コンピュータ可読媒体。
【請求項13】
各光線に対して、前記閾値距離は、前記横断面内で、前記光線と前記横断面との交点から延出する2次元における距離を含む、請求項10に記載の持続性コンピュータ可読媒体。
【請求項14】
各光線に対して、前記閾値距離は視距離に基づき、前記視距離は、前記光線に対応する前記投影面の前記画素と前記光線の前記横断面との交差の間の距離を含む、請求項13に記載の持続性コンピュータ可読媒体。
【請求項15】
前記閾値距離および前記視距離は直接的関係を有し、そのため前記閾値距離は、前記視距離が増大するにつれて増大する、請求項14に記載の持続性コンピュータ可読媒体。
【請求項16】
動作の前記セットは、
前記3Dモデルの幾何学的表面を選択することを更に含み、前記幾何学的表面を選択することは、
前記投影面の画素を選択することと、
前記投影面の前記選択された画素に対応する最も近い強調表示された画素を決定することと、
前記最も近い強調表示された画素に対応する前記3Dモデルの前記幾何学的表面を選択することと
を含む、請求項10に記載の持続性コンピュータ可読媒体。
【請求項17】
動作の前記セットは、
前記3Dモデルの第1の幾何学的表面と第2の幾何学的表面との間の距離を判断することを更に含み、前記距離を判断することは、
前記投影面の第1の画素を選択することと、
前記投影面の前記第1の選択された画素に対応する第1の最も近い強調表示された画素を決定することと、
前記第1の最も近い強調表示された画素に対応する前記3Dモデルの前記第1の幾何学的表面を選択することと、
前記投影面の第2の画素を選択することと、
前記投影面の前記第2の選択された画素に対応する第2の最も近い強調表示された画素を決定することと、
前記第2の最も近い強調表示された画素に対応する前記3Dモデルの前記第2の幾何学的表面を選択することと、
前記選択された第1の幾何学的表面と前記選択された第2の幾何学的表面との間の前記距離を測定することと
を含む、請求項16に記載の持続性コンピュータ可読媒体。
【請求項18】
動作の前記セットは、
前記3Dモデルを複数の構成部分に分割することと、
前記構成部分の2つ以上に対して2つ以上のプロセッサを使用して、個別に、
前記3Dモデルの前記構成部分と交差する前記横断面を決定すること、
前記複数の光線の各々に、各光線が前記横断面と交差するように、前記投影面の前記対応する画素を通過させることによってレイトレーシングを実行すること、
前記横断面とのそれらそれぞれの交点において前記3Dモデルの前記構成部分の前記閾値距離内にある1つ以上の光線を決定すること、および
前記決定された光線に対応する画素を同じ色で強調表示することと、
前記2つ以上の構成部分の各々からの前記強調表示された画素を単一の画像に結合することと
を更に含む、請求項10に記載の持続性コンピュータ可読媒体。
【請求項19】
3Dモデルの横断面を生成するためのシステムであって、前記システムは、前記3Dモデルに対応するデータを格納するように構成されたメモリと、
プロセッサであって、
前記3Dモデルと交差する横断面を決定することと、
複数の光線の各々に、各光線が前記横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行することと、
前記横断面とのそれらそれぞれの交点において前記3Dモデルの閾値距離内にある1つ以上の光線を決定することと、
前記決定された光線に対応する画素を強調表示することと
を行うように構成された、プロセッサと
を備える、システム。
【請求項20】
各光線に対して、(1)前記閾値距離は、前記横断面内で、前記光線と前記横断面との交点から延出する2次元における距離を含み、(2)前記閾値距離は視距離に基づき、前記視距離は、前記光線に対応する前記投影面の前記画素と前記光線の前記横断面との交差の間の距離を含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
これは、「VISUALIZING AND EVALUATING 3D CROSS-SECTIONS」というタイトルで、2020年1月29日に出願された米国特許出願第62/967,490号に対する優先権を主張するPCT出願であり、参照により全体として本明細書に組み込まれる。
【0002】
本開示は一般に、3次元(3D)モデリングに関し、より詳細には、3D多角形モデルの3D横断面との交差を可視化および評価するための方法およびシステムに関する。
【背景技術】
【0003】
3D幾何モデルは多くの場合、製造用に(例えば、建築、建設、不動産、ゲーム、ヘルスケア、科学技術向けビジュアライゼーション、映画などにおいて)製品を設計するために使用される。設計プロセス中、3Dモデルに対する反復的変更が、エンジニア、技術者、職人たち、製造業者、その他色々によって使用できる最終設計を開発するために良く行われる。設計プロセス中、3Dモデルの設計者が3Dモデルをリアルタイムで操作して、3Dモデルの様々な表面間の測定を行い、別の方法で3Dモデルと関わり合うことができることは有益であり得る。具体的な事例では、3Dモデルの設計者が3Dモデルの横断面を取得して、横断面上にあるモデルの表面と接触できることは有益であり得る。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書で開示される例は、3D多角形モデルの3D横断面との交差の可視化および評価を可能にし得る。具体的には、3Dモデルの横断面の生成方法が開示される。横断面の生成方法は、3Dモデルと交差する横断面を決定することを含む。本方法は、複数の光線の各々に、各光線が横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行することも含む。本方法は、横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある1つ以上の光線を決定することを更に含む。そして本方法は、決定された光線に対応する画素を平面の閾値距離に沿って閾値距離内で同じ色で強調表示することを更に含む。
【0005】
別の例では、持続性コンピュータ可読媒体は、プロセッサによって実行される場合に、3Dモデルの横断面を生成するための動作のセットを実行させる、その上に格納された命令を有する。動作のセットは、3Dモデルと交差する横断面を決定すること、複数の光線の各々に、各光線が横断面と交差するように投影面の対応する画素を通過させることによってレイトレーシングを実行すること、横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある1つ以上の光線を決定すること、および決定された光線に対応する画素を同じ色で強調表示することを含む。
【0006】
第3の例では、3Dモデルの横断面を生成するためのシステムが開示される。本システムは、3Dモデルに対応するデータを格納するように構成されたメモリ、およびプロセッサを含む。プロセッサは、3Dモデルと交差する横断面を決定し、複数の光線の各々に、各光線が横断面と交差するように投影面の対応する画素を通過させることによってレイトレーシングを実行し、横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある1つ以上の光線を決定して、決定された光線に対応する画素を同じ色で強調表示するように構成される。
【図面の簡単な説明】
【0007】
【
図1】本開示の実施形態に従った3Dモデルの横断面例の斜視図を示す。
【
図3】
図1の3Dモデルと横断面との間の交差を含むステンシルの前面図を示す。
【
図4】本開示の例に従ったコンピューティング装置例を示す。
【
図5】本開示の実施形態に従い、1つ以上のプロセッサによって実行され得る機械可読命令を表す流れ図である。
【発明を実施するための形態】
【0008】
図は原寸に比例していない。可能な限り、同じ参照番号が、同じか、または同様の部分を参照するために図面および付随して記述された説明を通して使用される。
【0009】
前述のとおり、3Dモデルの設計者、または他の利害関係者が3Dモデルを操作して関わり合うのを可能にすることは有益であり得る。具体的には、3Dモデルの横断面を見て、内部構成要素およびそれらの互いとの相互作用を明らかにすることは有益であり得る。3Dモデルの横断面を提供することは、設計者が、表面を選択して、1つ以上の選択された表面または点の間の距離を測定し、様々な構成要素間の間隔、その他いろいろを確実にすることにより、3Dモデルと関わり合い、分析し、評価するのを可能にできる。
【0010】
一般に、3Dモデルという用語は本明細書で使用されるように、物体の表面の3次元における数学的表現を指し得る。3Dモデルは単一の構成要素を含み得るか、または複数の構成要素を含み得る。いくつかの例では、複数の構成要素は相互に関して、回転、スライド、屈曲、その他いろいろ等によって、動くように構成され得る。各構成要素は、特定の幾何形状を含み得、相互に連結された1つ以上の表面から作られ得る。表面の各々は数学的に画定され得、そのため表面は2次元においてのみ存在し得る(例えば、それは3次元において無限に薄い可能性がある)。
【0011】
いくつかの実施形態では、3Dモデルは、レイトレーシングを使用して画面上にレンダリングされ得る。レイトレーシングは、本明細書で使用されるように、光路(すなわち、光線)を投影面内の画素として追跡することによって画像を生成するためのレンダリング技法として理解され得る。各光線は、投影面の対応する画素の観点からキャストされる。光線の3Dモデルまたは背景のいずれかとの第1の交差に基づき、対応する画素が、特定の色、陰影等を使用して表示される。例えば、第1の光線が第1の画素からキャストされて、3Dモデルの第1の構成要素と交差する場合、第1の画素は赤く着色され得る。第2の光線が第2の画素からキャストされて、3Dモデルの第2の構成要素と交差する場合、第2の画素は青く着色され得る。全ての光線がキャストされる場合、それらは、第1の構成要素が赤く着色されて、第2の構成要素が青く着色される画像となり得る。
【0012】
ここで
図1~
図3を参照すると、3Dモデル100の横断面が取得される実施形態例が示されている。横断面の選択、レイトレーシング、および横断面の表示などの、ここで説明される機能は、とりわけ、メモリおよびプロセッサを含む、システムによって実行され得る。本システムは、
図4に関して説明されるコンピューティング装置などの、1つ以上のコンピューティング装置を含み得る。いくつかの例では、本システムは、複数のコンピューティング装置(例えば、分散システム)を含み得、3Dモデルは構成部分またはシャード(shard)に分けられて、相互に独立して分析および処理される。これは以下で更に詳細に説明される。
【0013】
いくつかの例では、プロセッサは、(1)3Dモデルと交差する横断面を決定すること、(2)複数の光線の各々に、各光線が横断面と交差するように投影面の対応する画素を通過させることによってレイトレーシングを実行すること、(3)横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある1つ以上の光線を決定すること、(4)決定された光線に対応する画素を同じ色で強調表示すること、を行うように構成される。
【0014】
前述した第1の特徴に関して、
図1~
図3に示される実施形態は、プロセッサは、3Dモデル100と交差する横断面200を決定するように構成され得ることを示す。
【0015】
いくつかの例では、横断面200は、ユーザーにより、システムのユーザーインタフェースを用いて選択され得る。横断面200は、既定で、3Dモデル100の中点に位置付けられ得る。いくつかの例では、横断面200は、3Dモデル100の選択された構成要素、表面、または他の部分に基づいて設定されるか、位置付けられ得る。例えば、ユーザーは標的表面を選択し得、横断面200は、その標的表面の中点、標的表面の端部、または別の方法で標的表面に基づく位置に位置付けられ得る。いくつかの例では、横断面200の位置は、特定のX、Y、Z、座標または距離の入力を介してなど、ユーザーによって入力され得る。いくつかの例では、本システムは、ユーザーが3D空間内の横断面200の位置を、スライダ、矢印キー、マウス、タッチ、または他のユーザー入力を用いて変更するのを可能にし得る。
【0016】
追加として、横断面200は、3Dモデル100に関して様々な向きに配向できる。例えば、配向は、既定で、投影面300に平行として設定され得、そのためそれはユーザーの視界と垂直である。いくつかの例では、横断面200の配向は、スライダ、矢印キー、マウス、タッチ、または他のユーザー入力を用いた入力によって等、ユーザーにより変更または調整され得る。いくつかの例では、横断面の配向は、3Dモデル100の選択された構成要素、表面、または他の特徴に基づいて設定できる。例えば、配向は特定の選択された表面に「スナップ留め(snap)」することができ、そのため横断面200は選択された表面と平行に、または接するように配向される。
【0017】
いくつかの例では、本システムは、システムが様々なモード間で切り替えるのを可能にするために、ユーザーが選択するために選択可能な選択肢をもつメニューを含み得る。例えば、既定モード、構成要素選択モード、面選択モード、距離選択モード、手動入力モード、その他いろいろがあり得る。
【0018】
いくつかの例では、横断面200は、3Dモデル100の前面202aおよび背面202bを画定する。前面202aは、投影面100により近い3Dモデルの側である。背面202bは、投影面100とは反対側の3Dモデルの側である。術語「前面」および「背面」は本明細書では例としてのみ使用されることが理解されるべきである。前面および背面は、前面が、投影面300の反対側である横断面200の側上にあるように、反転され得る。これは、具体的には、ユーザーが3Dモデルの後ろを見るのを可能にするために、投影面が3Dモデル100の周りを回転される場合に生じ得る。いくつかの事例では、投影面300を3Dモデル100の周りを回転させることは、モデルの前面202aおよび背面202bを同じままにし得、それによりユーザーは3Dモデル100の背面202bを依然として見ることが可能である。代替として、いくつかの例では、投影面300を3Dモデル100の周りを回転させることは、モデルの前面202aおよび背面202bを反転させ得、そのため投影面300がモデルの背面202b上に位置するとき、モデルの前面202aだけが見える(すなわち、
図1の反対側)。
【0019】
いくつかの例では、横断面200は数学的に画定され、そのためそれは無限に薄い。代替として、横断面200は、横断面200に対して厚さを作り出すために、それからの閾値距離の使用によって画定できる。更に、以下でさらに詳細に説明されるように、光線が横断面200において3Dモデルと交差する各画素に関して、閾値が決定されて、その画素に対して横断面200に対する特定の閾値距離または厚さを作り出すために適用され、そのため、横断面200は各画素に対して3Dモデル交差において異なる有効厚さを有することができる。
【0020】
プロセッサは、複数の光線の各々に、各光線が横断面200と交差するように投影面300の対応する画素を通過させることによってレイトレーシングを実行するようにも構成され得る。レイトレーシングを実行するために、各光線(例えば、光線310a、310b、310c、および310d)は、投影面300の対応する画素(例えば、画素320a、320b、320c、および320d)からキャストされる。
図1は、投影面300は64画素だけを含むと示されているが、もっと多いか、またはもっと少ない画素が使用され得ることが理解されよう。
【0021】
いくつかの例では、レイトレーシングを実行することは、複数の光線を、各々、3D空間内の一直線上の、対応する画素の位置から、キャストすることを含む。各光線は最終的に、何か(すなわち、3Dモデル100または背景のいずれか)と接触および/または交差する。投影面300の各対応する画素は次いで、光線が交差する3Dモデルまたは背景の部分に基づいて着色される。光線が3Dモデルと横断面200で、またはその近辺内で交差する場合、着色は交点で適用されて、3Dモデルの横断面の強化された可視化を可能にする。
【0022】
本開示では、1つ以上の光線(例えば、光線310a、310b、および310c)は、各光線が3Dモデル100の前面202a(横断面200のユーザー選択または既定の位置に光線が到達する前の空間)上の何かと接触または交差しないように、切断(truncate)される。これは、投影面300の結果として生じる画像が、前面202a上に位置する3Dモデル100の構成要素および表面を迂回して、3Dモデル100の構成要素および表面を背面202b上に表示するのを可能にし、それにより3Dモデルの横断面(すなわち、横断面200のユーザー選択または既定の位置における、およびそれを越えた/その後ろの3Dモデル100の部分)の表示を可能にする。
【0023】
いくつかの例では、レイトレーシングプロセス中、各光線は、3Dモデル100または背景とのその第1の交差まで進み続け、第1の交差は、3Dモデル100の横断面200内、または背面202b上のいずれかである。光線に対応する画素の色はその光線の交点に基づいて決定される。
【0024】
例えば、
図1に示されるように、第1の光線310aは画素320aからキャストされて、横断面200と第1の交点220aで交差する。光線310aは、交点220aで3Dモデル100と交差せず、そのため光線はその軌道に沿って進み続ける。光線310aは、背景と交差し、従って画素320aは白く着色される。
【0025】
第2の光線310bは画素320bからキャストされて、横断面200と第2の交点220bで交差する。第2の交点220bにおいて、光線310bは3Dモデル100と交差するか、または3Dモデルの閾値距離内である(閾値距離は以下で更に詳細に説明される)。この場合、画素320bは、3Dモデル100と横断面200内で交差する(または3Dモデル100の閾値距離内である)光線310bに対応するので、対応する第2の画素320bは青く着色される。
【0026】
第3の光線310cは画素320cからキャストされて、横断面200と第3の交点220cで交差する。第3の交点220cにおいて、第3の光線310cは3Dモデル100と交差せず、3Dモデル100の閾値距離内でもない。第3の光線310cはその軌道に沿って進み続けて、最終的に3Dモデル100と点120cで交差する。点120cは、横断面200からオフセットされた、3Dモデル100の内側表面に対応する。そのため、第3の画素320cは、点120cにおいて第3の光線310cと交差する3Dモデルの表面に基づき、グレーに着色される。
【0027】
第4の光線310dは画素320dからキャストされて、横断面200と第4の交点220dで交差する。第4の交点220dにおいて、第4の光線310dは3Dモデル100と交差しない。しかし、第4の光線310dは、3Dモデル100の閾値距離内である。画素320dは、横断面200内で、3Dモデル100の閾値距離内である光線310dに対応するので、第4の画素320dは青く着色される。
【0028】
前述のとおり、投影面300内の画素の各々に対する画素色は、その画素に対応する複数の光線の各々に対して、複数の光線の各々の3Dモデルまたは背景との交差に基づき、交差が横断面内で生じているか否に応じて、決定される。
【0029】
本システムのプロセッサはその結果、投影面300の画素をユーザーが見るための画像としてレンダリングするように構成される。
【0030】
前述のとおり、特に第4の光線310dに関して、プロセッサは、それらそれぞれの横断面200との交点において3Dモデル100の閾値距離内にある1つ以上の光線を決定するように構成され得る。3Dモデル100およびその幾何形状は1つ以上の数式によって画定されるので、3Dモデルの1つ以上の表面は無限に薄い可能性がある。所与の表面が横断面200に関して配向される角度に応じて、所与の光線は全く交差しない可能性がある。これは、画素の解像度、および/または光線の間隔(すなわち、光線の解像度)が3Dモデル100の無限の解像度よりも小さいためである。
【0031】
例えば、3Dモデルの表面が横断面200に垂直で、それでも横断面200と交差している(すなわち、表面が見る人に対して真横向きに現れる)場合、所与の光線は無限に薄い表面と交差することなく横断面200を通って延出し得、3Dモデル100の更に遠く(または深く)でのみ3Dモデルの表面と接触する。画素が3Dモデル100への更に遠いか、または深い交差に基づいて着色される場合、それは、3Dモデル100はその画素で横断面と交差しないという誤った印象を与え得る。
【0032】
これを吸収するために、プロセッサは、各光線と横断面200との間の交点からの閾値距離を決定するように構成され得、そのため3Dモデル100の任意の部分が閾値距離内に位置する場合、その光線と関連付けられた画素は、それがその交点において3Dモデルと交差するかのように着色できる。
【0033】
いくつかの例では、閾値距離は、横断面200内で、光線と横断面200との間の交点から2次元に延在する。
【0034】
代替として、いくつかの例では、閾値距離は、光線と垂直に、光線と横断面200との間の交点から2次元に延在する。光線が横断面と垂直になるようにキャストされる場合(例えば、投影面300と横断面200が平行な中心画素)、この閾値距離は前述した閾値距離と同じであり得る。しかし、光線が横断面と傾斜して交差するようにキャストされる場合(例えば、投影面300と横断面200が平行な投影面300の周辺上の画素、または投影面300と横断面200が平行でない投影面300の任意の画素)、閾値距離は横断面200に関して傾斜して延在し得る。
【0035】
代替として、いくつかの例では、閾値距離は、光線と横断面200との間の交点から3次元に延在できる。
【0036】
いくつかの例では、閾値距離は視距離に基づき得、視距離は、光線に対応する投影面の画素と光線の横断面との交差の間の距離を含む。閾値距離および視距離は直接的関係を有し得、そのため閾値距離は、視距離が増大するにつれて増大する。そのため、例えば、横断面200が投影面300と平行である場合(例えば、
図2に示されるビュー)、投影面の端部上の画素に対応する光線は、中央の画素に対応する光線よりも大きい閾値距離を有し得る。追加として、横断面200が投影面300に関して傾斜して配向される(すなわち、それらは平行でない)場合、投影面300の近くで横断面200と交差する光線は、投影面300から遠く離れて横断面200と交差する光線よりも小さい対応する閾値距離を有し得る。
【0037】
いくつかの例では、閾値距離は1画素幅、半画素幅、または何らかの他の値であり得る。いくつかの例では、第1の画素(および光線)に対応する第1の閾値距離が設定され得、他の画素(および光線)に対応する他の閾値距離が、第1の画素および光線の交点に関するそれらの位置に基づき適切にスケーリングされ得る。他の例では、閾値距離の最小/最大範囲は、投影面の距離およびモデルのカメラアイに対する最も遠い範囲に基づき事前に計算できる。任意の所与の光線と平面の交差に関して、局所的閾値が、カメラアイからの交点の距離を使用して、閾値範囲の線形補間によって計算される。このプロセスは、結果として生じる強調表示が、交点のアイとの距離に関係なく、一貫した画像画素幅を有することを確実にする。
【0038】
いくつかの例では、閾値距離は1つ以上の他の要因に依存し得る。例えば、本システムは分散アーキテクチャを含み得、そのため3Dモデルは、各々が複数の三角形から成る、複数のシャードに分割される。この分散特質は、以下で更に詳細に説明される。しかし、分散特質の結果は、特定の光線に対する閾値距離(すなわち、近接計算)は同じ三角形内、および同じシャード内で、距離に基づき優先または最適化できることである。
【0039】
所与の光線が3Dモデル100と横断面200において交差しない(かつ同様にこの点において3Dモデルの閾値距離内ではない)場合、光線が3Dモデル100(または背景)と接触するまで光線は3Dモデル100の背面202b上を延出し続ける。
【0040】
いくつかの例では、閾値距離はユーザー構成可能である。
【0041】
いくつかの例では、プロセッサは、横断面200において3Dモデル100と交差する(または光線と横断面200の交点において閾値距離内である)光線に対応する画素を強調表示するようにも構成される。横断面200において3Dモデル100と交差する光線に対応する全ての画素は同じ色で着色されるか、または同じ色で強調表示され得、色はモデルの色とは異なる。これらの画素はステンシル150と呼ばれ得る。ステンシル150は
図3に例示されており、横断面200との交点において、3Dモデルと交差するか、または3Dモデルの閾値距離内にある光線に対応する画素だけを透す。
【0042】
いくつかの例では、プロセッサは、レイトレーシング、レンダリング、ステンシル、および本明細書で説明される他の特徴に基づく様々な機能を可能にし得る。
【0043】
例えば、プロセッサは、3Dモデル100の幾何学的表面、特に横断面200上に存在する幾何学的表面の部分の画素の完璧な選択を、例えば、ポインタの位置(例えば、マウスアイコン、タッチポイントなど)をステンシル150と比較することによって、可能にし得る。これは、前述したレイトレーシング動作と同様の方法で達成され得、光線はポインタの位置からキャストされて、プロセッサは、横断面200との交点において光線の閾値距離内に3Dモデルのいずれかの表面があるかどうかを判断する。この場合、閾値距離は、レイトレーシング動作に関して前述された閾値距離と同じか、または異なり得る。ユーザーが所望の表面を選択するのを容易にするために、表面の選択プロセス中に、閾値距離を増大させることは有益であり得る。
【0044】
いくつかの例では、幾何学的表面を選択することは、(1)投影面の画素を選択すること、(2)投影面の選択された画素に対応する最も近い強調表示された画素を決定すること、および(3)最も近い強調表示された画素に対応する3Dモデルの幾何学的表面を選択することを含む。
【0045】
プロセッサは、3Dモデル100の2つの幾何学的表面間の距離を判断するようにも構成され得る。これを達成するために、2つの表面が、前述したような方法で、選択され得る。3Dモデルの第1の選択された幾何学的表面と第2の選択された幾何学的表面との間の距離を判断することはその結果、(1)投影面の第1の画素を選択すること、(2)投影面の第1の選択された画素に対応する第1の最も近い強調表示された画素を決定すること、(3)第1の最も近い強調表示された画素に対応する3Dモデルの第1の幾何学的表面を選択すること、(4)投影面の第2の画素を選択すること、(5)投影面の第2の選択された画素に対応する第2の最も近い強調表示された画素を決定すること、(6)第2の最も近い強調表示された画素に対応する3Dモデルの第2の幾何学的表面を選択すること、および(7)選択された第1の幾何学的表面と選択された第2の幾何学的表面との間の距離を測定すること、を含む。
【0046】
様々な他の機能は、3Dモデル100に加えて、ステンシル150とやり取りして分析することによっても可能である。
【0047】
前述のとおり、本開示のシステムは、分散システム内の複数のコンピューティング装置を使用して動作するように構成され得る。例えば、本システムは、3Dモデルを複数の構成部分(例えば、シャード)に分割し得る。次いで、構成部分の各々に対して個別に、本システムは、(1)3Dモデルの構成部分と交差する横断面を決定して、(2)複数の光線の各々に、各光線が横断面と交差するように投影面の対応する画素を通過させることによってレイトレーシングを実行し、(3)横断面とのそれらそれぞれの交点において3Dモデルの構成部分の閾値距離内にある1つ以上の光線を決定して、(4)決定された光線に対応する画素を同じ色で強調表示し得る。本システムは次いで、(5)2つ以上の構成部分の各々からの強調表示された画素を単一の画像に組み合わせ得、その画像はその後、ユーザーに表示できる。
【0048】
動作の分散特質に関する更なる詳細は、米国特許出願第16/257,393号で見ることができ、それは参照により全体として組み込まれる。
【0049】
図4は、本開示の実施形態に従ったコンピューティング装置例400の簡略化ブロック図を示す。コンピューティング装置400は、本開示(および添付の図面)で説明されるものなどの、様々な機能または動作を実行するように構成され得る。コンピューティング装置400は、例えば、プロセッサ410、メモリ420、ユーザーインタフェース430、および通信インタフェース440を含む、様々な構成要素を含み得、全ては、システムバス、ネットワーク、または他の接続機構450によって通信可能に結合される。本明細書で開示される例は、物理的に相互に近接して配置されることもあれば、配置されないこともある構成要素を有するコンピューティング装置および/またはシステムを指し得ることが理解されるべきである。ある実施形態は、クラウドベースシステムまたは装置の形をとり得、用語「コンピューティング装置」は、本明細書で説明される機能の1つ以上を実行するように構成された、分散システムおよび装置(クラウドに基づくものなど)、ならびにソフトウェア、ファームウェア、および他の構成要素を含むことが理解されるべきである。
【0050】
プロセッサ410は汎用プロセッサ(例えば、マイクロプロセッサ)および/または専用プロセッサ(例えば、デジタル信号プロセッサ(DSP))を含み得る。プロセッサ410は、任意の特注または市販のプロセッサであり得る。プロセッサ410は、一致して動作する複数のパラレルプロセッサまたは分散プロセッサも表し得る。
【0051】
メモリ420は、磁気、光学、またはフラッシュストレージなどの、1つ以上の揮発性(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのRAM))および不揮発性(例えば、ROM、ハードドライブ、フラッシュドライブ、CDROMなど)の、取外し可能、および/または固定型記憶構成要素を含み得、全体または一部において、プロセッサ410と統合され得る。これらおよび他の構成要素は、ネットワーク上またはクラウド構成内のどこかに配置された装置上に存在し得る。更に、メモリ420は、その上に格納されたプログラム命令(例えば、コンパイル済みもしくは非コンパイルプログラム論理および/または機械コード)を有する、持続性コンピュータ可読記憶媒体の形をとり得、プログラム命令は、プロセッサ410によって実行される場合、装置400に、本開示で説明されるものなどの、1つ以上の機能または動作を実行させる。かかるプログラム命令は、例えば、ユーザーインタフェース430および/または通信インタフェース440から受信したある入力に応答して実行できる個々のソフトウェアアプリケーションを定義するか、またはその部分であり得る。メモリ420は、本開示を通して説明されるタイプなどの、他のタイプの情報またはデータも格納し得る。
【0052】
ユーザーインタフェース430は、該当する場合、装置のユーザーとのやり取りを容易にし得る。そのため、ユーザーインタフェース430は、キーボード、キーパッド、マウス、タッチセンサー式パネル、マイクロホン、およびカメラなどの入力構成要素、ならびに(例えば、タッチセンサー式パネルと結合され得る)ディスプレイ画面、音声スピーカー、および触覚フィードバックシステムなどの出力構成要素を含み得る。ユーザーインタフェース430は、短距離送受信機(RFID、ブルートゥースなど)、電話インタフェース、移動体通信ポート、ルーター、または他のタイプのネットワーク通信装置などの、入力または出力と通信する装置も含み得る。ユーザーインタフェース430は、コンピューティング装置400の内部であり得るか、または外部であって、無線で、または、ユニバーサルシリアルバスポートを通してなど、接続ケーブルを用いて接続され得る。
【0053】
通信インタフェース440は、装置400が、1つ以上のプロトコルに従って1つ以上の装置(またはシステム)と通信するのを可能にするように構成され得る。一例では、通信インタフェース440は、イーサネットインタフェースまたは高精細シリアルデジタルインタフェース(HD-SDI)などの、有線インタフェースであり得る。別の例として、通信インタフェース440は、移動体通信またはWi-Fiインタフェースなどの、無線インタフェースであり得る。いくつかの例では、ネットワーク上の複数のコンピューティング装置400および/または他の装置もしくはシステムの各々は、相互に通信するためにインターネットプロトコル群(TCP/IP)を使用するように構成され得る。しかし、IEEE 802.11 Wi-Fi、アドレス解決プロトコルARP、スパニングツリープロトコルSTP、または光ファイバー分散データインタフェースFDDIなどの、様々なネットワークプロトコルも採用され得ることが理解される。いくつかの実施形態は、インターネットへのブロードバンドまたは無線接続(DSL、ケーブル、無線、T-1、T-3、OC3または衛星など)を有するコンピューティング装置400を含み得るが、本発明の原理は標準的なモデムを通したダイアルアップ接続または他の接続手段でも実行可能であることも理解されるであろう。無線イーサネット、衛星、赤外線、無線周波数、ブルートゥース、近距離無線通信、および移動体通信ネットワークなどの、無線ネットワーク接続も企図される。
【0054】
本文書の文脈では、「コンピュータ可読媒体」は、本明細書で説明されるシステムおよび方法によって、またはそれと接続して使用するためのデータオブジェクトを格納、伝達、伝搬、または輸送できる任意の手段であり得る。コンピュータ可読媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、機器、装置、伝搬媒体、または類似の機能を備えた任意の他の装置であり得る。コンピュータ可読媒体のより具体的な例(包括的でないリスト)は次を含む:1本以上のワイヤーを有する電気的接続(電子的)、ランダムアクセスメモリ(RAM)(電子的)、読取り専用メモリ(ROM)(電子的)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバー(電子的)、および可搬式読み取り専用コンパクトディスク(CDROM)(電子的)。プログラムは、例えば、紙もしくは他の媒体の光学スキャンによって、電子的に捕捉され、次いでコンパイル、解釈またはそうでなければ、必要に応じて適切な方法で処理されて、コンピュータメモリ内に格納できるので、コンピュータ可読媒体はプログラムがその上に印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。システム、装置、および方法は、コンピュータなどの、命令実行システムもしくは装置によって、またはそれと接続して使用するための任意のタイプのコンピュータ可読媒体で具現化できる。
【0055】
図5は、本開示の実施形態に従った、3Dモデルの横断面を生成するための方法例500を示す。方法500は、
図1~
図3に関して説明されたシステムなどの、1つ以上のコンピューティング装置またはシステムによって実行され得る。
図5の流れ図は、メモリ(コンピューティング装置400のメモリ420など)内に格納されて、プロセッサ(コンピューティング装置400のプロセッサ410など)によって実行される場合に、1つ以上のシステムまたは装置に、本明細書で説明される機能1つ以上の機能を実行させ得る、1つ以上のプログラムを含み得る、機械可読命令を表す。プログラム例は
図5に示される流れ図を参照して説明されるが、本明細書で説明される機能を実行するための多くの他の方法が代替として使用され得る。例えば、ブロックの実行順は、再配列されるか、または連続して、もしくは相互に並行して実行され得、ブロックは、方法500を実行するために変更、除去、および/または結合され得る。更に、方法500は
図1~
図4の構成要素に関連して開示されるので、これらの構成要素の一部の機能は以下で詳細には説明されない。
【0056】
図5は、ブロック502から始まる。ブロック504で、方法500は3Dモデルと交差する横断面を決定することを含む。これは、
図1~
図3に関連して前述したものなどの、様々な方法のいずれかで行うことができる。
【0057】
ブロック506で、方法500は、複数の光線の各々に、各光線が横断面と交差するように、投影面の対応する画素を通過させることによってレイトレーシングを実行することを含む。
【0058】
ブロック508で、方法500は、横断面とのそれらそれぞれの交点において3Dモデルの閾値距離内にある複数の光線の1つ以上を決定することを含む。
【0059】
ブロック510で、方法500は、決定された光線に対応する画素を同じ色で強調表示することを含む。これは、横断面との交点において、3Dモデルと交差するか、またはモデルの閾値距離内にある光線に対応する画素だけを含む、ステンシルが作成されるのを可能にする。
【0060】
ブロック512で、方法500は、強調表示された画素をレンダリングすることを含む。これは、横断面と交差する3Dモデルの構成要素のステンシルを表示させる。方法500は次いで、ブロック514で終了する。
【0061】
1つ以上の特定の実施形態が本発明(複数可)に関連して例示されて説明されているが、本発明(複数可)は任意の単一の実施形態に制限されるべきではなく、むしろ、添付のクレームの列挙に従った幅と範囲で解釈されるべきであることが理解される。
【国際調査報告】