(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022096623
(43)【公開日】2022-06-29
(54)【発明の名称】仮想3Dグリッドおよび手描きスケッチを使用することによって3Dオブジェクトを設計する方法
(51)【国際特許分類】
G06T 19/20 20110101AFI20220622BHJP
G06T 17/00 20060101ALI20220622BHJP
【FI】
G06T19/20
G06T17/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021200606
(22)【出願日】2021-12-10
(31)【優先権主張番号】20306591.7
(32)【優先日】2020-12-17
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
2.Linux
3.SOLARIS
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】フィヴォス ドガニス
(72)【発明者】
【氏名】セリン アルプ
【テーマコード(参考)】
5B050
5B080
【Fターム(参考)】
5B050BA09
5B050CA07
5B050EA12
5B050EA13
5B050EA28
5B080AA17
(57)【要約】
【課題】シーン内の3Dオブジェクトを設計する。
【解決手段】コンピュータにより実施される方法は、シーン内の立方体の3Dグリッドを設けるステップであって、立方体の3Dグリッドは、細分割曲面を制御し、細分割曲面は、3Dオブジェクトをモデリングする、ステップと、立方体のグリッドの少なくとも立方体の少なくとも1つの外面上の曲線のユーザストロークを受信するステップと、外面上で曲線と交差する立方体の第1のセット、外面に対して垂直に、立方体の第1のセットに隣接した立方体の第2のセット、ならびに立方体の第1のセットおよび立方体の第2のセットを含む交差した立方体と称される立方体の第3のセットを判定するステップと、交差した立方体ごとに、曲線に適合するよう交差した立方体の少なくとも1つの頂点を移動させ、それによって、細分割曲面を変形させることによって、交差した立方体を変形させるステップと、を含む。
【選択図】
図8
【特許請求の範囲】
【請求項1】
シーン内の3Dオブジェクトを設計するための、コンピュータにより実施される方法であって、
a)前記シーン内で立方体(CB)の3Dグリッドを設けるステップであって、前記立方体(CB)の3Dグリッドは、細分割曲面を制御し、前記細分割曲面は、前記3Dオブジェクトをモデリングする、ステップと、
b)前記立方体(CB)のグリッドの少なくとも立方体の少なくとも1つの外面上の曲線(CR)のユーザストロークを受信するステップと、
c)前記外面上で前記曲線(CR)と交差する立方体の第1のセット、前記外面に対して垂直に、前記立方体の第1のセットに隣接した立方体の第2のセット、ならびに前記立方体の第1のセットおよび前記立方体の第2のセットを含む交差した立方体と称される立方体の第3のセットを判定するステップと、
d)交差した立方体(IC)ごとに、前記曲線(CR)に適合するように、前記交差した立方体(IC)の少なくとも1つの頂点(VT)を移動させ、それによって、前記細分割曲面を変形させることによって、前記交差した立方体(IC)を変形させるステップと、
を備えた方法。
【請求項2】
ステップc)の後に実行されるステップc’)を更に備え、前記ステップc’)は、
-前記外面の平面内の前記交差した立方体(IC)の両側上の前記3Dグリッドの立方体の数を計算するステップと、
-前記シーンから、最小の立方体(LN)を有する立方体のセットを除去するステップと、
を含む、請求項1に記載の方法。
【請求項3】
ステップd)は、交差していない立方体(NIC)の頂点と共有されない頂点(VT)のみを移動させるように、前記交差した立方体(IC)の頂点(VT)をフィルタリングするステップを含む、請求項1または2に記載の方法。
【請求項4】
ステップd)は、前記立方体の第2のセット(AC)上の前記曲線(CR)を伝播し、前記伝播した曲線に適合するように、前記立方体の第2のセット(AC)の頂点(VT)を移動させるステップを含む、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記頂点(VT)は、前記曲線(CR)上で前記頂点(VT)の直角投影を適用することによって移動する、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
-各々の頂点(VT1、VT2)と前記曲線(CR)との間の最小距離を計算するステップと、
-前記曲線への前記最小距離が少なくとも2つの頂点(VT1、VT2)に対して等しい場合、前記細分割曲面の連続性を有するように、前記頂点(VT1、VT2)の1つの位置を補正するステップと、
請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
ステップa)は、ユーザ対話を検出するステップを含み、ユーザ対話を検出するステップは、前記3Dオブジェクト上でホバリングすると共に、ポインティング要素を保持することによって、前記立方体の第1のセットおよび/または前記立方体の第2のセットの立方体を連続して追加または除去することを含む、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記シーンは、没入環境に位置する、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記細分割曲面は、Catmull-Clarkスキームを使用することによって計算される、請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記立方体の3Dグリッドおよび前記細分割曲面は、重ね合わされ、前記3Dグリッドは、部分的に透明に表示される、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記シーン内でラインを描画することを含む、ユーザ入力を受信するステップを更に備え、前記3Dオブジェクトの設計は、前記ラインに対して前記細分割曲面の対称性を計算することによって完了する、請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
請求項1乃至11のいずれか一項に記載の方法をコンピュータシステムに実行させるコンピュータ実行可能命令を含むコンピュータプログラム。
【請求項13】
請求項1乃至11のいずれか一項に記載の方法をコンピュータシステムに実行させるコンピュータ実行可能命令を含む非一時的コンピュータ可読データ記憶媒体(M1、M2、M3、M4)。
【請求項14】
メモリ(M1、M2、M3、M4)に結合されたプロセッサ(P)を含むコンピュータシステムであって、前記メモリは、請求項1乃至11のいずれか一項に記載の方法をコンピュータシステムに実行させるコンピュータ実行可能命令を記憶している、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3Dコンテンツ生成の分野に関する。本発明は、仮想3Dグリッドおよび手描きスケッチを使用することによって3Dオブジェクトを設計する方法に関する。本発明は特に、没入環境(拡張現実または仮想現実)内の3Dオブジェクトの生成に、特に、拡張現実に対して良好に適合されるが、デスクトップ、ラップトップ、またはモバイルデバイスなどの標準的なデバイスを使用した3Dオブジェクトの生成にも適用されてもよい。
【背景技術】
【0002】
3Dコンテンツ生成の分野では、ビデオゲーム「Minecraft」の登場によって、コンピュータ支援設計のいずれの以前の知識をもなく、3Dオブジェクトを直感的に生成することが可能になった。このゲームでは、3Dオブジェクトは、体積要素(ボクセル)に基づいた、立方体(cube)のアセンブリから構成される。ユーザは、仮想世界に置かれ、立方体を追加することができ、テキスチャを立方体に追加することによって、自身の構造を生成することができる。
【0003】
カメラ(携帯電話、タブレット)を有するモバイルデバイスに対して適切な「Minecraft Earth」と称される変形例では、ユーザは、拡張現実内で、すなわち、現実をコンテキストとして使用して3Dオブジェクトを生成することができる。ユーザは、オブジェクトの向きを変え、それは、生成の工程を容易にする。
【0004】
しかしながら、それらのオブジェクトをレンダリングすることは、非常に小さい立方体を使用するときでさえ、非常に立方的(cubic)である。よって、それは、曲線形状を有するオブジェクトを生成するのに適切でない場合がある。実際に、日々の生活のオブジェクトのほとんどは、鮮明なエッジを有さず、むしろ、曲線状のエッジを有する。
【0005】
Dassault Systemesの「3DEXPERIENCE」プラットフォームにおいて稼働するアプリケーション「xShape」は、より多くの進化したユーザに対して意図している。非常に単純な形状、例えば、立方体から開始して、ユーザは、エッジ、表面、または頂点に位置する制御点に対してドラッグすることのように、直感的なツール使用して形状を制御する。
【0006】
エッジ、表面、または頂点を一つずつ操作することを回避するために、アプリケーションは、既存の体積を修正するために曲線を使用する、「Align Cage Points」と称される関心のある機能性を供給する。ユーザは、3Dオブジェクトの周りの曲線をスケッチし、3Dオブジェクトの形状が曲線に従って修正される。
【0007】
結果として生じる形状は、平坦かつ編集可能である。しかしながら、訓練された設計者のみが、そのような複雑なアプリケーションを使用することができる。加えて、ユーザ経験に従って、いくつかの段階が実装される必要があり、一連の段階は、経験のあるユーザに対してでさえ、いくつかの中断を有する。
【0008】
実際に、このパラダイムを使用して曲線を有する体積を修正することは、
-体積を生成すること、
-以下のことによって、曲線を生成すること、
平面を選択することと、
平面上で点を生成することと、
ユーザの意図に近い曲線を生成するよう、平面上の点を編集することと、
-曲線によって影響される体積の部分を選択すること、
を伴う。
【0009】
最終的に、体積は、曲線に従って変形するが、結果は、ユーザの当初の意図に近くならないことがあり、更なるトゥイーキング(tweaking)を必要とすることが多い。
【発明の概要】
【発明が解決しようとする課題】
【0010】
したがって、ほとんどのユーザに対して直感的であり、できるだけ高速に新たな形状を生成することを可能にする、曲線状のエッジを有する3Dオブジェクトを設計するための、コンピュータにより実施される方法を取得する必要性が存在する。
【課題を解決するための手段】
【0011】
本発明の目的は、シーン内の3Dオブジェクトを設計するための、コンピュータにより実施される方法であって、
a)シーン内で立方体の3Dグリッドを設けるステップであって、立方体の3Dグリッドは、細分割曲面(subdivision surface)を制御し、細分割曲面は、3Dオブジェクトをモデリングする、ステップと、
b)立方体のグリッドの少なくとも立方体の少なくとも1つの外面上の曲線のユーザストロークを受信するステップと、
c)外面上で曲線と交差する立方体の第1のセット、外面に対して垂直に、立方体の第1のセットに隣接した立方体の第2のセット、ならびに立方体の第1のセットおよび立方体の第2のセットを含む交差した立方体と称される立方体の第3のセットを判定するステップと、
d)交差した立方体ごとに、曲線に適合するように、交差した立方体の少なくとも1つの頂点を移動させ、それによって、細分割曲面を変形させることによって、交差した立方体を変形させるステップと、
を含む、コンピュータにより実施される方法である。
【0012】
有利なことに、方法は、ステップc)の後に実行される。ステップc’)を含み、ステップc’)は、
-外面の平面内の交差した立方体の両側上の3Dグリッドの立方体の数を計算するステップと、
-シーンから、最小の立方体を有する立方体のセットを除去するステップと、
を含む。
【0013】
有利なことに、ステップd)は、交差していない立方体の頂点と共有されない頂点のみを移動させるように、交差した立方体の頂点をフィルタリングするステップを含む。
【0014】
有利なことに、ステップd)は、立方体の第2のセット上の曲線を伝播(propagating)し、伝播した曲線に適合するように、立方体の第2のセットの頂点を移動させるステップを含む。
【0015】
有利なことに、頂点は、曲線上で頂点の直角投影を適用することによって移動する。
【0016】
有利なことに、方法は、
-各々の頂点と曲線との間の最小距離を計算するステップと、
-曲線への最小距離が少なくとも2つの頂点に対して等しい場合、細分割曲面の連続性を有するように、頂点の1つの位置を補正するステップと、
を含む。
【0017】
有利なことに、ステップa)は、ユーザ対話を検出するステップを含み、ユーザ対話を検出するステップは、3Dオブジェクト上でホバリング(hovering)すると共に、ポインティング要素(pointing element)を保持することによって、立方体の第1のセットおよび/または立方体の第2のセットの立方体を連続して追加または除去することを含む。
を含む。
【0018】
有利なことに、シーンは、没入環境に位置する。
【0019】
有利なことに、細分割曲面は、Catmull-Clarkスキームを使用することによって計算される。
【0020】
有利なことに、立方体の3Dグリッドおよび細分割曲面は、重ね合わされ、3Dグリッドは、部分的に透明に表示される。
【0021】
有利なことに、方法は、シーン内でラインを描画することを含む、ユーザ入力を受信するステップを含み、3Dオブジェクトの設計は、ラインに対して細分割曲面の対称性を計算することによって完了する。
【0022】
本発明はまた、コンピュータシステムに上述した方法を実行させるコンピュータ実行可能命令を含むコンピュータプログラム製品に関する。
【0023】
本発明はまた、コンピュータシステムに上述した方法を実行させるコンピュータ実行可能命令を含む非一時的コンピュータ可読データ記憶媒体に関する。
【0024】
本発明はまた、メモリに結合されたプロセッサを含むコンピュータシステムに関し、メモリは、コンピュータシステムに上述した方法を実行させるコンピュータ実行可能命令を記憶している。
【0025】
本発明の追加の特徴および利点が添付図面と併用して、後続の説明から明らかになる。
【図面の簡単な説明】
【0026】
【
図1】本発明に従った方法の異なるステップを示す。
【
図2】本発明に従った方法の異なるステップを示す。
【
図3】本発明に従った方法の異なるステップを示す。
【
図4】本発明に従った方法の異なるステップを示す。
【
図5】本発明に従った方法の異なるステップを示す。
【
図6】本発明に従った方法の異なるステップを示す。
【
図7】本発明に従った方法の異なるステップを示す。
【
図8】本発明に従った方法の異なるステップを示す。
【
図9】本発明に従った方法の異なるステップを示す。
【
図10】本発明に従った方法の異なるステップを示す。
【
図11】本発明に従った方法の異なるステップを示す。
【
図12】本発明に従った方法の異なるステップを示す。
【
図13】本発明に従った方法の異なるステップを示す。
【
図14】本発明に従った方法の異なるステップを示す。
【
図15】本発明に従った方法の異なるステップを示す。
【
図16】本発明に従った方法の異なるステップを示す。
【
図17】本発明に従った方法の異なるステップを示す。
【
図22】本発明に従った方法によるオブジェクトの設計を示す。
【
図23】本発明に従った方法によるオブジェクトの設計を示す。
【
図24】本発明に従った方法によるオブジェクトの設計を示す。
【
図25】本発明に従った方法によるオブジェクトの設計を示す。
【
図26】本発明に従った方法によるオブジェクトの設計を示す。
【
図27】本発明に従った方法によるオブジェクトの設計を示す。
【
図28】本発明に従った方法によるオブジェクトの設計を示す。
【
図29】本発明に従った方法によるオブジェクトの設計を示す。
【
図30】本発明に従った方法によるオブジェクトの設計を示す。
【
図31】本発明に従った方法によるオブジェクトの設計を示す。
【
図32】本発明に従った方法によるオブジェクトの設計を示す。
【
図33】本発明に従った方法によるオブジェクトの設計を示す。
【
図34】本発明に従った方法によるオブジェクトの設計を示す。
【
図35】本発明に従った方法によるオブジェクトの設計を示す。
【
図36】本発明に従った方法によるオブジェクトの設計を示す。
【
図37】本発明に従った方法によるオブジェクトの設計を示す。
【
図38】本発明に従った方法によるオブジェクトの設計を示す。
【
図39】本発明に従った方法によるオブジェクトの設計を示す。
【
図40】本発明に従った方法によるオブジェクトの設計を示す。
【
図41】本発明の異なる実施形態に従った方法を実行するために適切なそれぞれのコンピュータシステムのブロック図を示す。
【
図42】本発明の異なる実施形態に従った方法を実行するために適切なそれぞれのコンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【0027】
【0028】
本発明の方法の第1のステップa)では、
図1に表されるように、立方体CBの3Dグリッドがシーン内に設けられる。各々の立方体は、ボクセルに対応する。ユーザは、シーン内で立方体CBの全3Dグリッドを置く(lay)ことができ、シーン内でそれを固定する(anchor)ことができる。立方体CBの3Dグリッドの寸法と共に、各々の立方体のサイズは、ユーザによって初期に設定されてもよい。グリッドのデフォルトの寸法および各々の立方体のデフォルトの寸法も使用されてもよい。
【0029】
立方体CBの3Dグリッドは、3Dオブジェクトをモデリングする、細分割曲面を制御する。立方体CBの3Dグリッドは、細分割曲面の制御ケージ(control cage)である。
【0030】
ユーザは、立方体CBの3Dグリッドから開始して、単一の立方体または立方体のセットを追加または削除することができる。そのために、ユーザは、立方体CBの3Dグリッド上でホバリングすると共に、立方体を連続して追加または除去するポインティング要素を保持する。
【0031】
ポインティング要素が保持されるとき、ユーザは、カーソルによって交差した立方体のみを除去することができる(深度において1つの層にある(in one layer in depth))。ユーザはまた、カーソルが方向付けられた立方体の外面に対して垂直に位置合わせされた「列」(列は、一連の立方体である)によって立方体を除去することができる(深度においていくつかの層にある(in several layers in depth))。
【0032】
1つの層またはいくつかの層にある立方体を削除することは、アプリケーションのコンテキストメニューにおいてユーザによって定義されてもよい。
【0033】
代わりに、ユーザは、全グリッドから開始する代わりに、「エンプティグリッド(empty grid)」、すなわち、シーン内の3Dグリッドのフットプリントに対応する2Dアレイから開始することができる。2Dアレイの寸法と共に各々の正方形のサイズは、ユーザによって初期に設定されてもよい。デフォルトの寸法も使用されてもよい。次いで、ユーザは、立方体のグリッド上で連続してホバリングすると共に、ポインティング要素を保持することによって、立方体を追加する。
【0034】
別の代替例では、3Dグリッドは単に、3Dオブジェクトの粗い近似(coarse approximation)(視覚アルゴリズムまたは機械学習を使用することによって、3Dボクセルオブジェクトインポート、3Dシーン再構築などの前のステップにおいて取得された)を含む、部分的に完全(partially full)であってもよい。
【0035】
したがって、立方体のアセンブリを生成することは、全グリッドから開始し、またはエンプティグリッドから開始することであっても単純である。立方体は、最もポピュラーなプログラムなどにおいて連続して生成され、よって、非常にユーザフレンドリである。立方体は、グリッドの内部で位置合わせされ、単に、既存の立方体の近傍として追加されてもよく、または地面に表示されたグリッド上に直接追加されてもよい。これは、所望の形状の周りで完全な立方体を生成することを支援する。
【0036】
好ましい実施形態では、立方体CBの3Dグリッドおよび立方体CBの3Dグリッドによって制御される細分割曲面は、重ね合わされる。立方体CBの3Dグリッドは、ユーザが立方体CBの3Dグリッドおよび細分割曲面を容易に制御することができるように、部分的に透明に表示される。
【0037】
そのステップの後、3Dオブジェクトをモデリングする細分割曲面は、鮮明なエッジを有する、むしろ立方的である、粗い体積である。
【0038】
図1は、立方体CBの3Dグリッドまたはそれの部分要素を示す。
【0039】
方法の第2のステップb)では、ユーザは、立方体CBのグリッドの少なくとも立方体の少なくとも1つの外面上で曲線CRをスケッチする。方法の主要な考えは、細分割曲面についての制御ケージとして使用される、変形可能立方体(ボクセル)の形を変える(sculpt)ことである。
【0040】
立方体の3Dグリッドは、境界付ける体積(bounding volume)よりも多い。それは、ユーザが直接描画することができる描画支援(drawing support)である、スキャフォールド(scaffold)としての役割をも果たし、高速かつ正確な3Dストローク配置を可能にする。
【0041】
ユーザストロークは、真新しい(clean)3D曲線CRを生成するように、美化(beautified)および平坦にされてもよい。美化は、当業者によって知られた技術に従って曲線を補間することによって行われてもよい。
【0042】
細分割曲面は、曲線CRが描画されるごとに計算される。方法のステップc)では、外面上で曲線CRと交差した立方体の第1のセットが判定される。外面を判定するために、例えば、平面に法線のドット積を計算することによって、スクリーン平面に最も近いグリッドの異なる面の間でそれが判定されてもよい。
【0043】
外面に対して垂直に立方体の第1のセットに隣接した、すなわち、外面に対して垂直に立方体の第1のセットに連続して接続された立方体の第2のセットも判定される。外面の平面に対して、立方体の第1のセットが第1の層に従った曲線によって定義され、立方体の第2のセットがより深い層に従った曲線によって定義されると考えることができる。立方体の第2のセットは、深度方向において1つの層またはいくつかの層を含んでもよい。
【0044】
交差した立方体ICと称される立方体の第3のセットは、
図2に示されるように、立方体の第1のセットおよび立方体の第2のセットを含む。
【0045】
交差した立方体ICの各々の立方体は、シーン内でその座標を有し、よって、頂点の位置が容易に判定される。頂点の位置は、曲線CRに合致するよう変化し、それは、細分割曲面を変形させる(ステップd)。
【0046】
細分割曲面は、スタイラスまたは指が持ち上げられたときに描画されるとすぐに最後に生成された曲線に合致する。3Dオブジェクトを設計するこの方式は、クレイモデリングの状況に近い。理想的なアプローチは実際に、クレイモデリング(自動車産業において広く使用される)または木工細工技術からインスピレーションを受ける3Dオブジェクトの形を仮想的に変えることである。それらの技術は、3Dモデルの形を変えるために、自動車産業において広く使用される。
【0047】
移動することになる頂点VTの判定は、立方体CBの3Dグリッドに対する交差した立方体ICの位置によって決まる。
【0048】
曲線CRは、立方体CBの3Dグリッドの周囲に位置する立方体上で描画されてもよい。
図3に示されるように、交差した立方体ICが立方体CBの3Dグリッドの周囲に位置しないケースでは、立方体の数に関して最小数の立方体LNを有する立方体のセットは、3Dシーンから除去され、最大数の立方体HNを有する立方体のセットは、オブジェクトの設計のために維持される。分離は、近傍探索計算を使用することによって実装されてもよい。
【0049】
最小数の立方体LNを有する立方体のセットをシーンから除去することは、形を変える(sculpting)の印象をも与える。
図4は、最小部分を有さない立方体CBの3Dグリッドを示す。体積において「取り除く(chipping away」この自動方式は、いずれの中断なしに、形を変える工程をより高速にし、ユーザがモデルを徐々に精緻化することを促進することを意図している。代わりに、曲線CRが描画された後(例えば、メニュー、ジェスチャ、または部分「Undo」コマンドを使用して)、ユーザがどの部分を維持するかを選択させることが可能である。
【0050】
最小部分が除去されると、交差した立方体ICは、曲線CRに適合するように変形することができる。
図5は、交差した立方体ICの全ての頂点VTを示す。それら全てが移動する必要があることに留意されたい。したがって、ステップd)は、交差していない立方体NICの頂点と共有されない頂点VTのみを移動させるように、交差した立方体ICの頂点VTをフィルタリングするステップを含む。
図6および
図7に示されるように、交差していない立方体NICと共有される交差した立方体ICの頂点VTNは、グリッドに存在するはずであり、移動するよう頂点のリストから除去される必要がある。円によって表された頂点のみが移動する必要があり、横線によって表された頂点がなおも維持される必要がある。
【0051】
各々の交差した立方体ICの変形は、外面に属する頂点ごとに、スケッチされた曲線の最も近い対応する点を計算することによって行われる。
図8および
図9に示されるように、頂点VTは、曲線CR上で頂点VTの直角投影を適用することによって移動する。特に、スケッチされた曲線の最も近い対応する点が曲線CRの末端(extremities)の1つであるとき、頂点は、曲線CRの末端の1つに移動することができる。
【0052】
結果として生じる外面の移動した頂点が
図9および
図10に示される。
【0053】
次いで、
図11に示されるように、曲線は、立方体ACの第2のセット上で伝播する。伝播は、移動したばかりの立方体に直接隣接した隣接面上での曲線CRの複製を含む。立方体ACの第2のセットの頂点も、伝播した頂点に適合するように移動する。外面の頂点に対するのと同一の方式において変位が行われる。
【0054】
図12~
図16によって示されるように、列の全ての立方体が変形するまで、頂点が移動し、曲線が伝播する。用語「列」は、立方体の第1のセットの立方体の外面に対して垂直に位置合わせされた個々の立方体のセットを指す。
【0055】
細分割曲面が立方体の3Dグリッドによって制御されるので、細分割曲面の形状は、立方体を変形させることによって修正される。
【0056】
好ましい実施形態では、3Dオブジェクトをモデリングする細分割曲面は、Catmull-Clarkスキームを使用することによって計算される。Catmull-Clarkスキームは、立方体の3Dグリッドの変形から結果として生じる制御メッシュに対して適用される。全てのエッジが鮮明なエッジとして初期化されるが、移動した頂点が属するエッジは、平坦なエッジとして再定義される。Doo-Sabinスキームなどの他の近似スキームが使用されてもよい。
【0057】
細分割曲面は、真新しい結果として生じたトポロジを有し、ポリゴンを有さない、連続的かつ編集可能である。したがって、細分割曲面は、更なる編集のために、そのままで使用されてもよく、または他のCADツールにエクスポートされてもよい。
【0058】
立方体および変形した立方体は、それらの平行な面および角を有する、元々非常に構造化されたジオメトリを有し、よって、結果として生じる部分面は、容易に機械加工可能であり、すなわち、付加造法(additive manufacturing)または除去造法(subtractive manufacturing)のいずれかによってそれを生成することができる。
【0059】
モデリングされた3Dオブジェクトは、その鮮明なエッジおよび平坦なエッジが混合される程度まで多用途でもあり、それは、有機形状の生成のみでなく、産業設計者によって生成される面のような面の生成をも可能にする。
【0060】
図18~
図21は、一致する頂点を処理するステップを示す。実際に、いくつかの頂点(VT1、VT2)は、曲線の同一の点上に投影されてもよい。この状況は、例えば、
図18に示されるように、曲線CRの末端において生じることがある。
【0061】
図19および
図20の拡大ウインドウにおいて、同一の点に立方体の2つの頂点を移動させることは、細分割曲面を開くことが分かる。
【0062】
したがって、曲線CRへの最小距離が少なくとも2つの頂点(VT1、VT2)に対して等しい場合、以下のサブステップが実装される。
-各々の頂点(VT1、VT2)と曲線CRとの間の最小距離を計算するステップ、
-細分割曲面の連続性を有するように、先述の頂点(VT1、VT2)の1つの位置を補正するステップ。
【0063】
細分割曲面の連続性は、
図21に示されるように、例えば、垂直方向に沿って、一致する頂点(VT1、VT2)の1つの位置、すなわち、頂点の平面内の位置を補正することによって取得されてもよい。また、2つの頂点が相互に最小距離にあることを保証することができる。
【0064】
代わりに、一致する頂点を回避するために、頂点が特定の値よりも大きく移動しないこと、例えば、立方体のエッジの半分よりも大きく移動しないことを保証することができる。このソリューションは、頂点の大きな変位を回避することを理由により安定的であるが、必ずしも曲線に適合する形状を保存しない。
【0065】
別の実施形態では、ユーザは、新たな立方体を連続して追加することができ、それは、細分割曲面を変形させる。ユーザは、3Dオブジェクト上でホバリングすると共に、ポインティング要素を保持する。立方体が変形した立方体に追加されるとき、鮮明なエッジを有する新たな立方体が追加されると共に、その次の変形に適合する。これは、それをやり直し、所望の3D形状により近くにするために、彫刻家がそのようにするように、材料を追加することを可能にする。立方体を除去するためにもそれが行われてもよい。
【0066】
本発明の方法は、仮想現実環境(仮想現実VR)または拡張現実(拡張現実AR)のいずれかにおいて実装されてもよい。好ましい実施形態では、以下の理由により、VRの代わりにタブレットに基づくARソリューションが使用されてもよい、
-ARの隔離しない特徴(non-isolating nature)、
・ユーザはなお、環境と接触すると共に、オブジェクトを設計し、コンテキストおよびインスピレーションのために環境を使用することができ、
・他のユーザは、設計者のスクリーンを見ることによって、または自身のスクリーンにおいてさえ見ることによって、設計者と共に設計される3Dオブジェクトさえも見ることができる(アプリケーションが多ユーザAR経験を考慮して生成されていた場合、全ての参加者がそれら自身のシーンの拡張ビューを有する)。
-仮想現実と比較して悩みが減少し、
-ARアプリケーションが今では普及し、
-Appleの「ARKit」またはGoogleの「ARCore」などの最新世代のフレームワークは、扱いにくいVRハードウェアを使用する必要がある代わりに、ポケットに届く携帯電話またはタブレット上でのAR経験を容易にし、
-ペンおよびタブレットを使用することは、自然に感じ、ペンの移動をタブレットの平面に制約することによって、触覚フィードバックを通じた精度をもたらす。
【0067】
ARおよびVRの両方は、形を変えるモデルを様々な角度から考えさせ(walk around)、よって、3Dシーンナビゲーション対話から3Dモデリングを分離する。ユーザは、最良の角度を発見するよう仮想カメラの視点をどのように修正するかを扱う必要がある代わりに、3Dモデルを生成することに集中することができる。ほとんどの場合、その実規模においてモデルを表示することは、モデリング工程をより高速かつ容易にする。
【0068】
図22~
図40は、本発明に従った方法による、ARにおけるオブジェクト(アームチェア)の設計を示す。
【0069】
図22:立方体の3Dグリッドがシーン内で設けられる。立方体のグリッドおよび立方体の3Dグリッドによって制御される細分割曲面が重ね合わされる。
【0070】
図23および
図24:ユーザが「切り取り」コマンドを選択し、垂直方向に従って全ての隣接した立方体に対してストロークをスケッチし、それは、最小数の立方体を有する部分をシーンから除去する(立方体の列の除去)。
【0071】
図25および
図26:ユーザが、立方体の別のセットに対して「切り取り」コマンドを繰り返す。
【0072】
図27~
図30:ユーザが、「立方体を除去する」コマンドを選択し、立方体に対して曲線をスケッチし、それは、曲線によって交差した立方体のみを除去する。
【0073】
図31~
図34:ユーザが、アームチェアの脚部(鮮明なエッジ)を設計するように、立方体の他のセットに対して「切り取り」コマンドを選択する。
【0074】
図35:ユーザが、アームチェアの背もたれ(平坦なエッジ)を設計するように、「変形」コマンドを選択する。ユーザが、曲線と交差する立方体の第1のセットに対して曲線のストロークをスケッチし、それは、描画支援としての役割を果たす。
【0075】
図36:立方体の第1のセットと共に、外面に対して垂直に立方体の第1のセットに隣接した立方体の第2のセットが、曲線と適合するように変形する。したがって、細分割曲面が変形する。
【0076】
図37:アームレスト(鮮明なエッジ)を設計するように変形が繰り返される。
【0077】
図38および
図39:ユーザが「対称」コマンドを選択する。ユーザがシーン内でラインを描画し、次いで、ラインに対する細分割曲面の対称性を計算することによって3Dオブジェクトの設計が完了する。各々の立方体を定義したインデックスが既知であるので、その対称の立方体を発見することは単純である。各々の変形した立方体は、正確に変形したその対称性を有するはずである。これを行うために、
-対称の立方体の頂点の位置を修正し、
-平坦なエッジに含まれる頂点のリストを修正し、
-シーン内の既存の部分の数を計算する、必要がある。よって、細分割曲面の対称性の計算がシーンに第2の部分を追加する場合、誤りメッセージが送信される。
【0078】
【0079】
上記説明された実施例は、いずれの中断なしにユーザ経験が満たされることを確認する。また、何回もクリックすることを回避する。新たな形状を迅速に生成することができる。
【0080】
本発明の方法は、ハードディスク、ソリッドステートディスク、またはCD-ROMなどのコンピュータ可読媒体上の不揮発性形式に適切なプログラムを記憶し、そのマイクロプロセッサ(複数可)およびメモリを使用して先述のプログラムを実行する、コンピュータネットワークを場合によっては含む、適切にプログラムされた汎用コンピュータによって実行されてもよい。
【0081】
本発明の方法は、ハードディスク、ソリッドステートディスク、またはCD-ROMなどのコンピュータ可読媒体上の不揮発性形式に適切なプログラムを記憶し、そのマイクロプロセッサ(複数可)およびメモリを使用して先述のプログラムを実行する、コンピュータネットワークを場合によっては含む、適切にプログラムされた汎用コンピュータまたはコンピュータシステムによって実行されてもよい。
【0082】
本発明の例示的な実施形態に従った方法を実行するために適切なコンピュータが
図41を参照して説明される。
図24では、コンピュータは、上記説明された方法のステップを実行すると共に、実行可能プログラム、すなわち、RAM MEM1、ROM MEM2、もしくはハードディスクドライブ(HDD)MEM3、DVD/CDドライブMEM4などのメモリデバイスに記憶され、またはリモートに記憶されたコンピュータ可読命令のセットを稼働させる中央処理装置(CPU)Pを含む。その上、コンクリート補強バーを定義した1つまたは複数のコンピュータファイルも、メモリデバイスMEM1~MEM4のうちの1つもしくは複数に記憶されてもよく、またはリモートに記憶されてもよい。
【0083】
特許請求される発明は、本発明の処理のコンピュータ可読命令が記憶されたコンピュータ可読媒体の形式によっては限定されない。例えば、命令およびファイルは、CD、DVD、フラッシュメモリ、RAM、ROM、PROM、EPROM、EEPROM、ハードディスク、またはサーバもしくはコンピュータなどのコンピュータが通信するいずれかの他の情報処理デバイスに記憶されてもよい。プログラムは、同一のメモリデバイスまたは異なるメモリデバイスに記憶されてもよい。
【0084】
更に、CPU CP、ならびにMicrosoft VISTA、Microsoft Windows8、UNIX、Solaris、LINUX、Apple MAC-OS、および当業者にとって既知の他のシステムなどのオペレーティングシステムと共に実行する、ユーティリティアプリケーション、バックグラウンドデーモン、もしくはオペレーティングシステムのコンポーネント、またはそれらの組み合わせとして、本発明の方法を実行するために適切なコンピュータプログラム設けられてもよい。
【0085】
CPU Pは、Intel of AmericaからのXenonプロセッサもしくはAMD of AmericaからのOpteronプロセッサであってもよく、またはFreescale Corporation of AmericaからのFreescale ColdFire、IMX、もしくはARMプロセッサなどの他のプロセッサタイプであってもよい。代わりに、CPUは、当業者が認識するように、Intel Corporation of AmericaからのCore2 Duoなどのプロセッサであってもよく、またはFPGA、ASIC、PLD上で、もしくは離散論理回路を使用して実装されてもよい。更に、CPUは、上記説明された本発明の処理のコンピュータ可読命令を実行するよう協同的に作用する複数のプロセッサとして実装されてもよい。
【0086】
図41においてコンピュータCPTも、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットなどのネットワークと相互作用するための、Intel Corporation of AmericaからのIntel Ethernet PROネットワークインタフェースカードなどのネットワークインタフェースNIを含む。方法は、ウェブアプリケーションによってリモートに実装されてもよい。
【0087】
コンピュータは更に、Hewlett Packard HPL2445w LCDモニタなどのディスプレイDYとインタフェースするためのNVIDIA Corporation of AmericaからのNVIDIA GeForce GTX グラフィックアダプタなどディスプレイコントローラDCを含む。汎用I/OインタフェースIFは、キーボードKB、ならびにローラボール、マウス、およびタッチパッドなどとインタフェースする。ディスプレイ、キーボード、タッチモードのための高感度表面、およびポインティングデバイスは、ディスプレイコントローラおよびI/Oインタフェースと共に、例えば、ポインタを移動させる入力コマンドを提供するためにユーザによって使用され、三次元シーンおよびグラフィカルツールを表示するためにコンピュータによって使用されるグラフィカルユーザインタフェースを形成する。
【0088】
拡張現実では、本発明の方法は、コンピュータCPTとしてハンドヘルドデバイスを使用して実行されてもよい。ハンドヘルドデバイスは、カメラによって捕捉された現実シーン内の設計されたオブジェクトを重ね合わせるようにカメラを備える。
【0089】
代わりに、ARでは、Microsoft Hololensなどの混合現実ヘッドマウントスマートグラスSGのペアが使用されてもよい。3Dオブジェクトが表示されると共に、コマンドが手の検出によって、または少なくとも1つのリモート制御RCによって提供される。
【0090】
VRでは、Oculus Questなどの仮想現実ヘッドセットHSは、3Dオブジェクトおよび3Dシーンをユーザに表示するために使用されてもよい。3Dオブジェクトが表示されると共に、コマンドが手の検出によって、または少なくとも1つのリモート制御RCによって提供される。
【0091】
ディスクコントローラDKCは、HDD MEM3およびDVD/CD MEM4と通信バスCBSを接続し、通信バスCBSは、コンピュータのコンポーネントの全てを相互接続するための、ISA、EISA、VESA、PCI、または同様のものであってもよい。
【0092】
ディスプレイ、キーボード、ポインティングデバイスと共にディスプレイコントローラ、ディスクコントローラ、ネットワークインタフェース、およびI/Oインタフェース共に全体の特徴および機能性の説明が、それらの特徴が既知であるように、簡潔にするために本明細書で省略される。
【0093】
図42は、本発明の異なる例示的な実施形態に従った方法を実行するために適切なコンピュータシステムのブロック図である。
【0094】
図42では、設計された3Dオブジェクトを含む実行可能プログラムおよびコンピュータファイルは、サーバSCに接続されたメモリデバイスDBに記憶される。メモリデバイスおよびサーバの全体アーキテクチャは、ディスプレイコントローラ、高感度表面、ディスプレイ、キーボード、および/またはポインティングデバイスがサーバにおいて欠如することがあってもよいことを除き、
図41を参照して上記議論されたのと同一であってもよい。
【0095】
サーバSCは次いで、ネットワークNWを介してアドミニストレータシステムADSおよびエンドユーザコンピュータEUCに接続される。