JP2021119452A - 3dモデリングにおける没入型ジェスチャを用いた頂点の選択 - Google Patents
3dモデリングにおける没入型ジェスチャを用いた頂点の選択 Download PDFInfo
- Publication number
- JP2021119452A JP2021119452A JP2020211251A JP2020211251A JP2021119452A JP 2021119452 A JP2021119452 A JP 2021119452A JP 2020211251 A JP2020211251 A JP 2020211251A JP 2020211251 A JP2020211251 A JP 2020211251A JP 2021119452 A JP2021119452 A JP 2021119452A
- Authority
- JP
- Japan
- Prior art keywords
- vertices
- user
- computer
- thumb
- hand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 102
- 210000003811 finger Anatomy 0.000 claims abstract description 101
- 210000003813 thumb Anatomy 0.000 claims abstract description 81
- 238000009877 rendering Methods 0.000 claims description 34
- 210000001015 abdomen Anatomy 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 23
- 210000003128 head Anatomy 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 4
- 230000036544 posture Effects 0.000 description 41
- 210000001503 joint Anatomy 0.000 description 16
- 230000003190 augmentative effect Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 10
- 210000000887 face Anatomy 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 210000000811 metacarpophalangeal joint Anatomy 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 210000000988 bone and bone Anatomy 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000004247 hand Anatomy 0.000 description 2
- 210000004932 little finger Anatomy 0.000 description 2
- 210000000236 metacarpal bone Anatomy 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 208000003464 asthenopia Diseases 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 210000005224 forefinger Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000001144 postural effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/18—Details relating to CAD techniques using virtual or augmented reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04802—3D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Geometry (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Architecture (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
【課題】CADシステムの3D没入環境において3Dオブジェクトの複数の頂点から頂点を選択するための、コンピュータによって実施される方法を提供する。【解決手段】3Dオブジェクトの各頂点は、3D没入環境において位置を有する。方法は、3D没入環境において3Dオブジェクトを表示することと、両指の腹は離隔している状態で人差し指の腹と親指の腹とを対向させることを含む手のジェスチャを検出することと、人差し指と親指とを接続する線分に平行な、3D没入環境において位置を有する線分を決定することと、決定した線分と最も近い位置を有する3Dオブジェクトの頂点を識別すること、とを含む。【選択図】図1
Description
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、3D没入環境において3Dオブジェクトの複数の頂点から頂点を選択する方法に関する。
オブジェクトの設計、エンジニアリングおよび製造のために、多くのシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer−Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer−Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関する。CAMは、コンピュータ支援製造(Computer−Aided Manufacturing)の略語であり、例えば、製造プロセスおよび動作を定義するためのソフトウェアソリューションに関する。このようなコンピュータ支援設計システムでは、グラフィカル・ユーザ・インターフェースは、技術の効率に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management:PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全体として、システムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
CADアプリケーションは、正確な3Dオブジェクトをインタラクティブに作成することを可能にする。3Dオブジェクトが対応する現実のオブジェクトを忠実に再現する場合、3Dオブジェクトは正確であると考えられる。1つの基準は、3Dオブジェクトのエンベロープと現実のオブジェクトのエンベロープとの差を最小化することである。したがって、CADアプリケーションで作成された3Dオブジェクトは、従来、3Dオブジェクトの粗い部分のための多くの小さな位相要素を含む。設計のために関心のある位相要素を選択するためのいくつかの手法が実施されている。従来、マウスベースの手法が使用される。
ここで、小さな位相要素は、小さな可視表面を有する要素として定義され得る。マウスベースの手法では、小さな位相要素は、小さなクリック可能な表面を有する要素として定義され得る。言い換えれば、マウスベースの手法における小さな位相要素は、ユーザがマウス位置を定義するために非常に正確である必要があるため、選択することが困難である。位相要素は、また、重なり合うことが多く、かつ/あるいは部分的に、あるいは完全に閉塞され得る。したがって、位相要素が小さくなくても、マウスベースの手法を用いたそれらのクリック可能な表面は小さく、またはゼロにさえなり得る。
3Dアプリケーションでは、よく知られている問題は、ユーザがどの要素を選択したいかに関する曖昧さである。CADアプリケーションでは、マウスベースの手法は、カーソルによって指し示される最小の要素を選択する傾向があるが、これは曖昧さを完全に解決するものではない。この曖昧さを低減するために、よく知られた解決策は、ユーザに、どのタイプの位相要素を選択したいかを指定させることである。この情報を使用して、要素は選択中にタイプによってフィルタリングされる。この解決策は時間が掛かり、例えば2Dパネルで利用可能な様々なフィルタを表示する必要がある。要素の選択中の別の問題は、1つの要素を選択するのに必要な必須クリック数を減らすことである。例えば、3Dオブジェクトにおける関心のある要素を選択するために、関心のあるゾーンを拡大することが必要となることが多い。3Dシーンの視点を変更することは、関心のある要素が閉塞されるときにも必要である。これらの2つのケースは、ユーザからのいくつかのアクションを必要とし、時間がかかる。
近年、3D設計アプリケーションにおいて、手による対話操作が重要性を増している。実際に、没入型技術における最近の進歩は、仮想現実(VR)、拡張現実(AR)および複合現実(MR)において、完全な手の追跡を広く利用可能にしている。仮想現実は、ソフトウェアを用いて作成され、ユーザが信念を保留して、それを現実環境として受け入れるような方法でユーザに提示される人工環境として定義され得る3D没入環境である。仮想現実(VR)では、ユーザの現実の知覚は、完全に仮想情報に基づく。拡張現実(AR)および複合現実(MR)は、3D没入環境が、実際に現実である環境と、現実環境に追加された仮想オブジェクトのいくつかの層によって構成されるという意味で、仮想現実(VR)とは異なる。拡張現実(AR)および複合現実(MR)では、ユーザは、現実の知覚を向上させる追加のコンピュータ生成情報を提供される。一方、仮想現実(VR)では、周囲環境は完全に仮想的である。拡張現実と複合現実の違いは、ユーザが拡張現実(AR)における仮想オブジェクトと直接対話することができないことである。複合現実では、追加のコンピュータ生成情報が一緒に「複合」されて、現実的な環境が生成される。ユーザは、この環境をナビゲートし、現実オブジェクトと仮想オブジェクトの両方と対話することができる。
例えば、拡張現実(AR)は、物理的テーブル上に仮想3Dボックスを表示する能力を有する。複合現実(MR)では、ユーザはボックスを持ち上げて開くことができる。
仮想現実、拡張現実および複合現実の定義において、現実オブジェクトは、環境世界に物理的に存在するオブジェクトである。
既存のCADアプリケーションのいずれも、没入環境において、手による自然な対話操作によって正確な3Dオブジェクトを作成させることができない。
これに関連して、CADシステムの3D没入環境において、3Dオブジェクトの頂点などの位相要素を手のジェスチャを使用することによって選択するために改善された方法が依然として必要とされている。
したがって、CADシステムの3D没入環境において、3Dオブジェクトの複数の頂点から頂点を選択する、コンピュータによって実施される方法が提供される。各頂点は、3D没入環境において位置を有する。本方法は、
前記3D没入環境において前記3Dオブジェクトを表示することと、
人差し指の腹と親指の腹とが対向し、両指の腹が離隔していることを含む手のジェスチャを検出することと、
前記3D没入環境において位置を有する、前記人差し指の腹と前記親指の腹とを接続する線分に平行な線分を決定することと、
前記決定された線分と最も近い位置を有する前記3Dオブジェクトの頂点を識別することとを含む。
前記3D没入環境において前記3Dオブジェクトを表示することと、
人差し指の腹と親指の腹とが対向し、両指の腹が離隔していることを含む手のジェスチャを検出することと、
前記3D没入環境において位置を有する、前記人差し指の腹と前記親指の腹とを接続する線分に平行な線分を決定することと、
前記決定された線分と最も近い位置を有する前記3Dオブジェクトの頂点を識別することとを含む。
本方法は、以下のうちの1つまたは複数を含むことができる。
前記識別することは、前記3Dオブジェクトの中心に平行な、前記決定された平行線分から光線を投射することを含む。
前記3Dオブジェクトの各頂点は、法線をさらに有し前記人差し指と前記親指の対向する腹は、法線を有する配向平面をさらに形成し、前記識別することは、
を満たす関数fを最小化することを有し
ここで、
Vertexは着目頂点であり、
かつ
かつ
であり、
||FH||は、前記頂点Vertexの位置と前記手の前記配向平面の位置Hとの、前記3D没入環境におけるユークリッド距離であり、
は、前記頂点Vertexの法線と前記配向平面の法線との前記3D没入環境における角度である。
を満たす関数fを最小化することを有し
ここで、
Vertexは着目頂点であり、
かつ
かつ
であり、
||FH||は、前記頂点Vertexの位置と前記手の前記配向平面の位置Hとの、前記3D没入環境におけるユークリッド距離であり、
は、前記頂点Vertexの法線と前記配向平面の法線との前記3D没入環境における角度である。
前記関数fの項||FH||は、||FH’||によって置き換えられ、H’は
によって計算され、
ここで、
H’は、仮想の手の配向平面の位置であり、
Eは、ユーザの視点の位置であり、
Hは、前記人差し指と前記親指の対向する腹で形成された前記配向平面の位置であり、
EHは、EからHへのベクトルであり、
Omaxは、Eから最も遠い前記3Dオブジェクトの頂点の位置であり、
Hmaxは、前記ユーザの身体の横断面におけるEから最も遠い前記ユーザの手の中心の位置であり、
であり、
||EOmax||は、EからOmaxへのベクトルのノルムであり、
||EHmax||は、EからHmaxへのベクトルのノルムである。
によって計算され、
ここで、
H’は、仮想の手の配向平面の位置であり、
Eは、ユーザの視点の位置であり、
Hは、前記人差し指と前記親指の対向する腹で形成された前記配向平面の位置であり、
EHは、EからHへのベクトルであり、
Omaxは、Eから最も遠い前記3Dオブジェクトの頂点の位置であり、
Hmaxは、前記ユーザの身体の横断面におけるEから最も遠い前記ユーザの手の中心の位置であり、
であり、
||EOmax||は、EからOmaxへのベクトルのノルムであり、
||EHmax||は、EからHmaxへのベクトルのノルムである。
前記関数fの項||FH||または||FH’||は、頂点の位置と、頭部または利き目の中心または両目の中間の点から3Dモデルの中心に投射される光線と前記3Dモデルとの少なくとも1つの交点との、前記3D没入環境におけるユークリッド距離をさらに含む。
前記識別することは、前記決定された線分と最も近い位置を有する前記3Dオブジェクトの頂点を決定することと、前記決定された頂点の1つまたは複数のn隣接頂点であって、前記決定された頂点と選択可能な頂点の部分集合を形成する1つまたは複数の隣接頂点を計算することと、前記選択可能な頂点の前記部分集合から、前記配向平面と最も近い向きを有する前記3Dオブジェクトの頂点を識別することと、を含む。
選択可能な頂点の部分集合の頂点の第1のレンダリングを修正すること。
前記識別された頂点の第2のレンダリングを修正すること。
前記3Dオブジェクトの頂点は、三角形の一部および/または四角形の一部および/または位相面の一部および/またはパラメトリック曲面(parametoric surface)の一部および/またはプロシージャル曲面(procedual suraface)の一部であってもよい。
前記手のジェスチャを検出することは、人差し指の腹と親指の腹とを対向させることを含み、人差し指と親指とは実質的に平行である。
前記手のジェスチャが、人差し指の腹と親指の腹との接触をさらに含むことを検出することによって、前記3Dオブジェクトの前記識別された頂点を選択すること。
前記手のジェスチャが、親指以外のすべての指の外転と、前記選択された頂点の選択解除とをさらに含むことを検出すること。
本方法を実施するための命令を含むコンピュータプログラムがさらに提供される。
ディスプレイと、メモリと通信可能に結合された処理回路とを備えるシステムがさらに提供され、前記メモリは前記コンピュータメモリを記憶している。
前記コンピュータプログラムが記録されたコンピュータ可読媒体がさらに提供される。
本発明の実施形態を、非限定的な例として、添付の図面を参照して説明する。
図1のフローチャートを参照すると、CADシステムの3D没入環境において3Dオブジェクトの複数の頂点から頂点を選択するための、コンピュータによって実施される方法が提案される。各頂点は、3D没入環境において位置を有する。本方法は、3D没入環境において3Dオブジェクトを表示することを含む。次に、手のジェスチャが検出される。手のジェスチャは、人差し指の腹と親指の腹とを対向させることを含み、両指の腹は離隔している。したがって、人差し指および親指は、いつでもつまめることができる位置にある。次に、本方法はまた、人差し指の腹と親指の腹とを接続する線分に平行な線分を決定することを含む。決定された平行線分は、3D没入環境において位置を有する。次に、本方法は、決定された線分と最も近い位置を有する3Dオブジェクトの頂点を識別することを含む。
これは、手による対話操作を使用して、CADシステムの3D没入環境において3Dオブジェクトの複数の頂点から頂点を選択するための改善された方法を構成する。特に、本方法は、ユーザがどの要素を選択したいかに関する曖昧さの問題を解決する。上述したように、CADアプリケーションでは、3Dオブジェクトは多くの小さな要素を含む。要素を選択することは、要素のサイズまたはユーザの視点からの要素の可視表面のサイズのために、マウスベースの手法では困難であり得る。実際に、サイズが小さい場合、マウスベースの手法では、ユーザは、マウスを非常に正確に動かす、かつ/あるいは拡大する、かつ/あるいは3Dシーンの視点を変更する必要がある。ここで提示される方法は、この欠点を解決する。実際に、本方法は、ユーザがどの要素を選択したいのかを決定するために、手のジェスチャの最中に、人差し指と親指の対向する腹から計算された頂点のそれぞれの位置、および線分の位置を使用している。ジェスチャは、長さがユーザに依存する線分を生成する。ユーザは、最も近い位置を有する頂点を選択するために、線分の長さを調整することができる。3Dオブジェクトの要素は区別されてもよく、したがって、本方法を用いてユーザによって選択されてもよい。さらに親指と人差し指の腹とを対向させることは、ユーザによって容易に実施され得る非常に単純かつ基本的なジェスチャである。
本方法は、コンピュータによって実施される。これは、本方法のステップ(または実質的にすべてのステップ)が、少なくとも1つのコンピュータ、または任意のシステムによって同様に実施されることを意味する。したがって、本方法のステップは、場合によっては完全に自動的に、または半自動的に、コンピュータによって実施される。一例において、本方法のうちの少なくともいくつかのトリガリングは、ユーザとコンピュータとの対話を通して実施され得る。必要とされるユーザとコンピュータとの対話のレベルは、予見される自動化のレベルに依存し、ユーザの希望を実現する必要性とバランスを取ることができる。一例において、このレベルは、ユーザ定義および/または事前定義され得る。
例えば、検出すること(S20)および決定すること(S30)は、ユーザの行動に部分的に依存する。検出すること(S20)は、人差し指の腹と親指の腹とを対向させる手のジェスチャを含むユーザの行動の結果として実施される。決定すること(S30)は、ユーザが選択したい要素を識別するために使用される位置で線分が作成されるユーザの手のジェスチャを含むユーザの行動の結果として実施される。
方法のコンピュータ実施の典型的な例は、この目的のために適合されたシステムを用いて本方法を実施することである。システムは、メモリに結合されたプロセッサおよびグラフィカルユーザインタフェース(GUI)を含むことができ、メモリは、本方法を実施するための命令を含むコンピュータプログラムを記録している。メモリはまた、データベースを記憶してもよい。メモリは、場合によってはいくつかの物理的に別個の部分(例えば、1つはプログラム用、場合によっては、1つはデータベース用)を備える、そのような記憶に適合された任意のハードウェアである。
図3はシステムの例を示し、当該システムはクライアントコンピュータシステム、例えばユーザのワークステーションである。
この例のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010と、同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータには、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられたグラフィック処理ユニット(GPU)1110がさらに設けられる。ビデオRAM1100は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラム命令およびデータを有形に具現化するのに適した大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスク1040を含む、すべての形態の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよく、またはそれに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイス、キーボードなどの触覚デバイス1090を含んでもよい。カーソル制御デバイスは、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置決めすることを可能にするためにクライアントコンピュータで使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムに制御信号を入力するための多数の信号発生装置を含む。典型的には、カーソル制御デバイスはマウスであってもよく、マウスのボタンは信号を生成するために使用される。代替的にまたは追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
コンピュータプログラムは、コンピュータによって実施可能な命令を含むことができ、命令は、上記のシステムに本方法を実施させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせで実施されてもよい。プログラムは、装置として、例えば、プログラマブルプロセッサによる実施のために機械可読記憶デバイスにおいて有形に具現化される製品として実装され得る。方法ステップは、入力データに対して動作し、出力を生成することによって本方法の機能を実施するための命令のプログラムを実施するプログラマブルプロセッサによって実施され得る。したがって、プロセッサは、プログラム可能であり、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合され得る。アプリケーションプログラムは、高水準手続型プログラミング言語またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリ言語または機械語で実施することができる。いずれの場合も、言語は、コンパイルされた言語または解釈された言語とすることができる。プログラムは、完全インストールプログラムまたは更新プログラムであってもよい。システム上でのプログラムの適用は、いずれの場合も、本方法を実施するための命令をもたらす。
本方法は、3Dオブジェクトを操作する。以下では、3Dオブジェクトへのいかなる言及も、デジタル的にモデル化された3Dオブジェクトを指し、物理的な3Dオブジェクトを指さない。デジタル的にモデル化された3Dオブジェクトは、例えば(機械的な)部品または部品のアセンブリ(または、等価的に部品のアセンブリであり、部品のアセンブリは本方法の観点から部品自体として見ることができ、または本方法はアセンブリの各部品に独立して適用することができる)、またはより一般的には任意の剛体アセンブリ(例えば可動機構)など、例えばCADソフトウェアソリューションまたはCADシステムを用いた仮想設計の完了後に現実世界で製造される製品の幾何学的形状を表すことができる。CADソフトウェアソリューションは、航空宇宙、建築、消費財、ハイテク装置、産業機器、輸送、海洋、および/または沖合のオイル/ガス生産または輸送を含む、様々な無制限の産業分野における設計を可能にする。したがって、本明細書の3Dモデル化オブジェクトは、地上車両(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む)の一部、航空機(例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機器、宇宙機器を含む)の一部、海軍車両(例えば、海軍機器、商船、沖合設備、ヨットおよび作業船、海洋設備を含む)の一部、一般機械部品(例えば、工業製造機械、大型移動機械または機器、設置機器、工業機器製品、加工金属製品、タイヤ製造製品を含む)、電気機械または電子部品(例えば、消費者電子機器、セキュリティおよび/または制御および/または計装用製品、コンピューティングおよび通信機器、半導体、医療機器および機器を含む)、消費財(例えば、家具、家庭および庭用製品、レジャー用品、ファッション製品、ハード商品小売業者の製品、ソフト商品小売業者の製品を含む)、包装(例えば、食品および飲料ならびにタバコ、美容およびパーソナルケア、家庭用製品包装を含む)などの任意の機械部品であり得る工業製品を表し得る。
3Dオブジェクトは、以下の3つのタイプの位相実体、すなわち、面、エッジ、および頂点の少なくとも一つから構成され得る。定義では、面とは表面の境界付けされた部分のことである。エッジとは曲線の境界付けされた部分のことである。頂点とは、3D空間内の点のことである。これらは、以下のように互いに関連している。曲線の境界付けされた部分は、曲線上にある2つの点(頂点)によって定義される。表面の境界付けされた部分は、その境界によって定義され、この境界は表面上にある一組のエッジである。面の境界のエッジは、頂点を共有することによって接続される。面は、エッジを共有することによって接続される。2つの面は、エッジを共有する場合、隣接する。同様に、2つのエッジは、頂点を共有する場合、隣接する。面のすべてのエッジは、同じ平面上にあってもなくてもよい。面の法線は、その面の2つのエッジのベクトルクロス積を取ることによって計算することができる。面のすべてのエッジが同じ平面上にあるわけではない場合、クロス積を計算するために選択されたエッジに応じて、様々な法線を計算することができることに留意されたい。頂点の法線は提供されるか、かつ/あるいは計算されることができる。面または頂点の法線は編集されてもよい。例えば、すべてのエッジが同一平面上にない面の場合、法線を編集することが多い。法線は、面の方向を与える。言い換えれば、法線は、面の表側および裏側を決定する。従来、3Dオブジェクトの場合、その頂点の法線は、3Dオブジェクトの外側に向けられる。頂点の法線は、それらが属する面の法線から差し引かれてもよい。頂点は、一般に、少なくとも3つの面に属し、すなわち、頂点は、それぞれの少なくとも3つの面の少なくとも3つのエッジと共有される。
以下では、すべての向き、方向および位置が3D没入環境の基準フレームにおいて計算されると仮定する。
3Dオブジェクトはまた、エッジまたは線、頂点を用いて、場合によっては面または表面を用いて定義されてもよい。線、エッジ、または表面は、様々な方法、例えば非一様有理Bスプライン(NURBS)で表すことができる。これらのエッジ、線、および/または表面は、3Dオブジェクトのジオメトリを生成することができる入力として使用することができ、3Dオブジェクトの表現を生成することができる。本明細書で説明する方法は、ユーザが選択したい可能性がある頂点を含むとき、非一様有理Bスプライン(NURBS)線、エッジ、および表面に基づいて3Dオブジェクト上で使用され得る。より一般的には、表面は、パラメトリック曲面および/またはプロシージャル曲面であってもよく、これらの曲面は頂点を含む。パラメトリック曲面は、2つのパラメータ
を有するパラメトリック方程式によって定義されるユークリッド空間
内の曲面である。プロシージャル曲面は、プロシージャとして定義される曲面である。細分割曲面は、プロシージャル曲面と考えることができる。細分割曲面は、より粗い区分的線形ポリゴンメッシュの仕様を介して滑らかな曲面を表す方法である。
を有するパラメトリック方程式によって定義されるユークリッド空間
内の曲面である。プロシージャル曲面は、プロシージャとして定義される曲面である。細分割曲面は、プロシージャル曲面と考えることができる。細分割曲面は、より粗い区分的線形ポリゴンメッシュの仕様を介して滑らかな曲面を表す方法である。
3Dオブジェクトは、モックアップのレーザスキャンから得られた点群から計算することができる。そのような点群は、典型的には、切り離された頂点から作られるが、デジタル化されたモックアップの形状を表す相互接続されたエッジを含むこともできる。
3Dオブジェクトは、ワイヤフレーム3Dオブジェクトであってもよい。ワイヤフレームは、点群から取得されてもよく、またはユーザによって設計されてもよい。
ここで図1を参照すると、本方法は、3D没入環境において少なくとも1つの3Dオブジェクトを表示する(S10)。3D没入環境に2つ以上の3Dオブジェクトが表示されている場合、関心のある3Dオブジェクトとして、識別される3Dオブジェクトが1つある。以下、関心のある3Dオブジェクトを3Dオブジェクトと呼ぶ。
上で定義したように、3D没入環境は、仮想現実、拡張現実、または複合現実において使用することができる。3D没入環境は、基準フレームを有する。したがって、この3D没入環境におけるすべてのオブジェクト、およびすべてのそれらの位相的要素は、この基準フレームに対して相対的に配置され得る。次いで、本方法は、3D没入環境のいずれかの3Dオブジェクトの頂点を選択するために、仮想現実、拡張現実、および複合現実において使用され得る。本方法はまた、少なくとも1つの3Dオブジェクトの位置特定を可能にする基準フレームを有する環境を含む任意の他の現実において使用され得る。
次に、手のジェスチャが検出される(S20)。手のジェスチャは、人差し指の腹と親指の腹とを対向させることを含む。指の各腹は、実質的に平坦な表面を有する。各腹は、互いに実質的に平行であるとき、互いに対向している。人差し指の腹と親指の腹は接触しておらず、両指の腹の間には空間がある。空間は、ユーザによって選択される。好ましくは、両指の腹の間の空間は、1センチメートルよりも大きい。言い換えれば、ジェスチャは、人差し指と親指とで、開いたひねりを形成するものとして見ることができる。
3D没入環境とのユーザの対話は、ユーザの身体の一部の位置および向きを追跡することによって、またはユーザの身体のいくつかの部分のそれぞれの位置および向きを追跡することによって、またはさらには、ユーザの身体全体の位置および向きを追跡することによって行うことができる。
一例において、ユーザの身体の一部は、ユーザの手である。
手の追跡は、直接的かつ自然な対話操作を提供し、没入体験を改善する。実際、ユーザは、特定の仮想現実、複合現実、または拡張現実ハンドコントローラを使用する必要がない。従来、3D没入環境において、3Dオブジェクトと対話するために、方法は、仮想3D線で3Dオブジェクトをポイントした後に、特定のコントローラのボタンをクリックすることを含む。
手の追跡は、手についての特定の姿勢またはジェスチャの検出を可能にする。例えば、特定の姿勢についての手の追跡は、ビデオレコーダまたは手袋を用いて行うことができ、特定のジェスチャについての手の追跡は、加速度計を用いて行うことができる。本方法は、ユーザの右手または左手を使用することができる。姿勢は、身体の一部を使用するポーズであり、ここでのジェスチャは、一部がその姿勢を修正することを可能にする動きとして定義され得る。言い換えれば、第2の姿勢は、第1の姿勢から開始されたジェスチャの結果として見られ得る。したがって、ジェスチャを検出することは、第2の姿勢を検出し、この第2の姿勢を第1の姿勢と比較することによって行われ得る。検出された第2の姿勢が第1の姿勢と同じである場合、ジェスチャは発生していない。検出された姿勢が第1の姿勢と異なる場合、ジェスチャは、第2の姿勢と第1の姿勢との差として定義され得る。より一般的には、ジェスチャは、ユーザの身体の一部、例えばユーザの手の位置、および/または向きの変化によってトリガされる姿勢の変化として定義され得る。例えば、本方法では、手のジェスチャを検出することは、デフォルト姿勢からの現在の姿勢の差を計算することからなることができる。本例では、デフォルト姿勢は第1の姿勢に対応し、現在の姿勢は第2の姿勢に対応する。差は、ユーザの手の位置および/または向きの変化によって推測され得る。特定の姿勢についての手の追跡が、高いフレームレート、例えば少なくとも10フレーム/秒で姿勢を撮像するデバイスを用いて実施され、したがって、第1の姿勢から中間の第2の姿勢を有する第1の姿勢への動きを含む動きを検出しないリスクが非常に低いことは注目に値する。デフォルト姿勢は、両指の腹が最小距離だけ離隔されている、人差し指と親指の対向する腹の検出を可能にする任意の姿勢であり得る。右手のデフォルト姿勢の一例を、図10に示す。このデフォルト姿勢は、右手を休ませるための一般的な姿勢の一例である。すなわち、デフォルト姿勢は、すべての筋肉が弛緩した右手のための姿勢の一例である。デフォルト姿勢は、本方法の任意のステップで使用される、特定の姿勢として検出されない任意の姿勢として定義することもできる。
ジェスチャの検出は、様々な方法で行うことができる。一例では、ジェスチャは、身体の様々な部分の相対的な位置および/または向きの数学的な比較によって検出することができ、形態学的変動を考慮にいれるために、ある程度の許容差がある。なお、システムがユーザの形態に合わせて調整するために、キャリブレーション段階が必要とされ得ることに留意されたい。別の例では、ジェスチャはまた、異なる可能なジェスチャを区別するためにニューラルネットワークをトレーニングすることによって、機械学習技術を使用して検出され得る。
一例において、手のジェスチャの運動学的パラメータは、例えば図10に示されるように、仮想骨格を通して提供されてもよい。仮想骨格は、1つまたは複数の関節、および1つまたは複数の骨を含む。この仮想骨格は、実際の骨格を複製する必要はない。言い換えれば、仮想骨格の関節および骨と、実際の骨格の関節および骨とが対応していない場合がある。例えば、手の仮想骨格は、手の実際の骨格よりも少ないか、または多い関節を有し得る。また、仮に仮想骨格の各関節が実際の骨格の関節に対応していたとしても、その位置や向きが異なる場合がある。仮想骨格の関節の直線速度、角速度、位置および向きを用いることで、実際の骨格のジェスチャや姿勢を検出することができる。簡単にするため、以降は、仮想骨格が手の実際の骨格を複製すると考える。
本発明の方法は、説明した様々な姿勢を検出するために使用される検出方法とは無関係であることを留意されたい。したがって、仮想的な骨格に基づいて、または仮想的な骨格に基づかずに、姿勢の変化(例えば、ユーザの身体の一部の位置および/または向きの変化)を検出することができる任意の技術が使用され得る。
手の実際の骨格の一例を図4に示す。手は、慣例的に、親指、人差し指、中指、薬指、および小指と呼ばれる5本の指を含む。親指は、中手指節関節10と指節間関節60とから構成される。人差し指は、中手指節関節20、近位指節間関節70および遠位指節間関節110から構成される。中指は、中手指節関節30、近位指節間関節80および遠位指節間関節120から構成される。薬指は、中手指節関節40、近位指節間関節90および遠位指節間関節130から構成される。小指は、中手指節関節50、近位指節間関節100および遠位指節間関節140から構成される。手の残りの部分は、3つの領域に分割することができる。第1の領域は手のひらであり、これは手の前部の中央領域である。第2の領域は手の甲であり、これは手の後部の手のひらに対応する領域である。第3の領域は、手のひらの近位部分に位置する手のかかとである。
人差し指の腹と親指の腹とを対向させるのは、人差し指と親指の間でオブジェクト(例えば、3Dモデルの頂点要素)を挟んでグリップする動作を準備するジェスチャである。図5の例に示すように、人差し指の腹300と親指の腹302とは対向しているが、接触していない。それらは、ユーザによって選択された距離だけ離隔される。この距離は、人差し指と親指の指先を結ぶ線分200で表される。さらに図5を参照すると、人差し指が屈曲を行う。例えば、屈曲は、近位指節間関節70によって行われてもよく、遠位指節間関節110は、屈曲していないか、またはほとんど屈曲していない。これにより、人差し指の末節骨および中節骨が実質的に一直線になり、したがってジェスチャの検出が容易になる。親指は、親指の末節骨および中節骨も実質的に一直線になるように、わずかに伸長していてもよい。したがって、図5に示されるように、人差し指および親指の末節骨および中節骨は、人差し指および親指の腹が対向するときに、実質的に平行である。したがって、人差し指および親指の腹も、実質的に平行である。
再び図1を参照すると、人差し指の腹と親指の腹とを対向させることを含むジェスチャの検出(S20)後、本方法は、人差し指の腹と親指の腹とを接続する線分に平行な線分を決定すること(S30)を含む。人差し指および親指の腹を接続する線分は、人差し指および親指の腹の中心を接続し得る。
一例において、指の腹を接続する線分に平行な線分の計算は、指先を結合する線分を決定することによって実施される。これは、人差し指および親指の腹の中心を接続する線分の検出と比較して、実施が容易である。両指の先端を接続する線分の計算は、ユーザの手の仮想骨格を使用して実施され得る。決定された平行線分は、3D空間において位置を有する。これは、線分上の各点が3D空間における位置、例えば線分の2つの端点を有することを意味する。したがって、これらの例では、S30は、人差し指の指先と親指の指先とを接続する線または線分を決定することと、次いで、この線または線分から、人差し指の腹と親指の腹とを接続する、または人差し指の腹の中心と親指の腹の中心とを接続する線分を計算することとを含む。
一例において、平行線分は、人差し指の腹と親指の腹とを接続する線分を含む。線分は、人差し指の線分の腹と、親指の腹の中心とを接続することができる。これらの例では、人差し指の腹(の中心)と親指の腹(の中心)とを結ぶ線分が直接決定される。したがって、これらの例では、S30は、人差し指の腹と親指の腹とを接続する線分を決定すること、または、人差し指の腹の中心と親指の腹の中心とを接続する線分を決定することを含む。
決定すること(S30)は、仮想骨格なしで行われてもよい。一例として、決定すること(S30)は、ビデオレコーダから決定する(S30)ように、トレーニングされたニューラルネットワークに基づき得る。
次いで、本方法は、決定された平行線分と最も近い位置を有する3Dオブジェクトの頂点を識別すること(S40)をさらに含む。最も近い位置は、3Dモデルの各頂点の位置を平行線分の位置と比較することによって決定される。したがって、3Dモデルの各頂点について、当該各頂点の位置と平行線分との距離が計算される。距離は、ユークリッド距離であってもよい。
一例において、最も近い位置を有する頂点を識別するために、平行線分上で点が選択される。これは、より少ない距離が計算されなければならないので、計算リソースの使用に関して最も近い位置の決定を改善する。
一例において、平行線分上の点は、平行線分の中間(すなわち、平行線分の中心)に位置する。この特定の位置は、ユーザが関心のある頂点を選択するために、手の位置および2本の指の腹の間の空間をより容易に適応させることができるので、ユーザのための人間工学および対話を改善する。2本の指の間のギャップは、視野として使用することができ、(ユーザの視点からの)視野内の頂点は選択可能である。
本開示の例では、識別すること(S40)は、3Dオブジェクトの各頂点を考慮することによって反復的に行われ得る。平行線分と最も近い位置を有する3Dオブジェクトの頂点を決定するときに、3Dオブジェクトの頂点の部分集合のみが使用されることを理解されたい。例えば、ユーザの手によって到達可能であり、ユーザに見える頂点のみが使用されてもよい。
一例において、識別することは、3Dオブジェクトの中心に平行な決定された平行線分から、光線を投射することによって実施され得る。ここで、「3Dオブジェクトの中心に平行な決定された平行線分から」という表現は、光線が3Dモデルに到達する前に平行線分を通過することを意味し、光線は、必ずしも平行線分から開始する必要はない。一例においては、光線は平行線分の中間を通過する。
一例においては、光線は、ユーザの頭部またはユーザの利き目の中心、またはユーザの目の中間の点から投射され得る。これは、ユーザが人差し指と親指との間で見る頂点と、本方法によって選択されることになる頂点との一致が改善されるので、ユーザの選択をより容易にする。
一例において、3Dオブジェクトの各頂点は法線を有し、人差し指および親指の対向する腹は、法線を有する配向平面を形成し得る。前述のように、3Dモデルの頂点に法線がない場合、頂点の法線を計算することができる。計算が実施される場合、計算は、本方法の任意のステップで、好ましくは識別すること(S40)の前に行われてもよい。人差し指および親指の対向する腹は、法線に対して配向される平面を形成してもよい。平面の決定は、ステップS20、S30、またはS40で実施されてもよい。配向平面は、人差し指の腹と親指の腹が対向するときの、人差し指と親指の位置に基づいて決定される。実際には、すでに説明したように、人差し指の腹と親指の腹が対向している場合、人差し指と親指の末節骨と中節骨は実質的に一直線上にあり、これら2つの直線を含む平面が形成され得る。さらに平面は、平行線分を含むことができる。したがって、人差し指と親指の末節骨と中節骨が対向するときに、平面が形成されると考えることができる。そのように形成された平面は配向されなければならず、平面の法線が追加される。平面の向きは任意であり、例えばユーザによって選択されてもよい。
ここで、図6について説明する。図6は、人差し指の腹と親指の腹とを対向させることによって形成される平面の一例を示す。人差し指の末節骨および中節骨は実質的に一直線上にあり、親指の末節骨および中節骨についても同様である。さらに、人差し指および親指の中節骨は実質的に平行であり、その結果、人差し指および親指の末節骨および中節骨は、平面202に対する支持体を形成する。平行線分200は、図6に示すように、平面202に属する。平面202は配向され、平面202の法線をユーザに示すためのグラフィカルキュー204が表示され得る。平面202は表示されてもされなくてもよく、好ましくは、ジェスチャを可能な限り自然に保つために表示されず、例えば、ユーザは表面の表現によって邪魔されず、目の疲れは、本方法の間は低減される。したがって、手は、人差し指の腹と親指の腹とが対向することによって形成される平面に関連付けられる。以降、これを手の配向平面と呼ぶ。
一例において、平面は3つの点によって形成される三角形から導出され得る。(i)人差し指および親指の先端または腹、または両指の腹の中心によって形成される2つの点、および(ii)人差し指の中手骨と親指の中手骨との関節によって形成される1つの点、またはこれらの骨によって規定される線の交差によって形成される1つの点、または手首によって形成される1つの点。これらの例では、平行線分は平面に属し得る。
3Dオブジェクトの各頂点がさらに法線を有し、人差し指および親指の対向する腹がさらに法線を有する配向平面を形成する例では、識別すること(S40)は、複数の頂点から、以下の式(1)で計算されるfで表される関数を最小化する頂点を識別することを含むことができる。
ここで、
Vertexは関心のある頂点であり、
かつ
かつ
であり、
||FH||は、3D没入環境における、頂点Vertexの位置と手の配向平面の位置Hとのユークリッド距離であり、
は、頂点Vertexの法線と手の配向平面の法線との3D没入環境における角度である。
ここで、
Vertexは関心のある頂点であり、
かつ
かつ
であり、
||FH||は、3D没入環境における、頂点Vertexの位置と手の配向平面の位置Hとのユークリッド距離であり、
は、頂点Vertexの法線と手の配向平面の法線との3D没入環境における角度である。
第1の重み付けされた項||FH||は、頂点Vertexの位置と、人差し指の腹と親指の腹が対向されたときに、人差し指と親指とで形成された配向平面の位置Hとの、3D没入環境におけるユークリッド距離である。配向平面の位置Hの位置は、平行線分の位置、例えば平行線分の中心であってもよい。
第2の重み付けされた項
は、頂点Vertexの法線ベクトルと、配向平面の法線ベクトルとの角度である。第2の重み付けされた項はまた、頂点Vertexの向きと、人差し指および親指の腹を対向させることによって形成される配向平面の向きとに基づき得る。
は、頂点Vertexの法線ベクトルと、配向平面の法線ベクトルとの角度である。第2の重み付けされた項はまた、頂点Vertexの向きと、人差し指および親指の腹を対向させることによって形成される配向平面の向きとに基づき得る。
各重みw1およびw2は、ゼロ以上であり得る。2つの重みの合計は、厳密にゼロより大きい。重みのうちの1つがゼロに等しい場合、それは、2つの項のうちの1つだけが関数において考慮されることを意味する。一例として、w1は0.1〜0.5に設定されてもよく、w2は0.5〜0.9に設定されてもよい。
重みw1およびw2は、事前に計算され得る。例えば、それらは、3Dオブジェクトの頂点の数およびサイズに基づいて、あらかじめ計算されてもよい。重みw1およびw2は、例えば、3Dオブジェクトを含む3D没入環境のロード時に、あらかじめ計算されてもよい。3Dオブジェクトが多くの頂点を有する場合、第2の項の重みは、第1の項の重みよりも大きくなり得る。重みはまた、使用されるデバイスに依存し得る。例えば、いくつかのデバイスは、手の位置に対して限られた精度を与えるが、向きに対してはより良好な精度を与えることができる。重みは、本方法の間に変化してもよい。例えば、重みは、ユーザの視野内に位置する3Dオブジェクトの表面のうちの3Dオブジェクトの頂点の数およびサイズに応じて変化し得る。視野は、所与の時間における視察可能な環境の範囲として定義され得る。したがって、視野が、本方法中に変化する可能性があるので、重みw1およびw2も変化する可能性がある。
一例では、識別すること(S40)は、3Dオブジェクトの各頂点を考慮することによって、反復的に行われ得る。別の例では、識別すること(S40)は、3Dオブジェクトの部分集合の各頂点を考慮することによって、反復的に行われ得る。各頂点について、関数fの結果が計算される。最小値を有する頂点は、関数fを最小化する3Dオブジェクトの頂点である。
一例において、関数fの項|FH|は、項||FH’||によって置き換えられ得る。H’は、式(2)を使用して計算される。
ここで、
H’は、仮想の手の中心の計算された位置であり、
Eは、ユーザの視点の位置であり、
Hは、ユーザの手の中心の位置であり、
EHは、EからHへのベクトルであり、
Omaxは、Eから最も遠い3Dオブジェクトの頂点の位置であり、
Hmaxは、ユーザの身体の横断面におけるEから最も遠いユーザの手の中心の位置であり、
であり、
||EOmax||は、EからOmaxへのベクトルのノルムであり、
||EHmax||は、EからHmaxへのベクトルのノルムである。
ここで、
H’は、仮想の手の中心の計算された位置であり、
Eは、ユーザの視点の位置であり、
Hは、ユーザの手の中心の位置であり、
EHは、EからHへのベクトルであり、
Omaxは、Eから最も遠い3Dオブジェクトの頂点の位置であり、
Hmaxは、ユーザの身体の横断面におけるEから最も遠いユーザの手の中心の位置であり、
であり、
||EOmax||は、EからOmaxへのベクトルのノルムであり、
||EHmax||は、EからHmaxへのベクトルのノルムである。
H’は、仮想の手の配向平面の計算された位置である。仮想の手の配向平面は、上述のように取得され得る。仮想の手は、仮想の手の仮想の人差し指および仮想の親指の対向する腹から得られる仮想の平面を含む。したがって、ユーザの仮想の手は、ユーザによって実施されたジェスチャを再現(または模倣)する。仮想の手は、3D没入環境において、ユーザの視点Eからユーザの手よりも少なくとも遠くに仮想的に位置する手として定義することができる。仮想の手を使用することは、項||FH’||がユーザの視点からの頂点の距離に関して常に適切であることを保証するために有用である。仮想の手は、ユーザの手よりも、ユーザの視点Eから近くなくてもよい。ユーザの視点Eは、例えば、ユーザの頭の中心、ユーザの利き目、またはユーザの両目の中間に位置してもよい。Omaxは、ユーザの視点Eから最も遠い3Dオブジェクトの頂点の位置である。一例として、ユーザの視点Eから最も遠い3Dオブジェクトの頂点として考慮される頂点は、本方法の開始時に、例えば、検出すること(S20)の開始時に決定されてもよい。一例として、ユーザの視点Eから最も遠い3Dオブジェクトの頂点として考慮される頂点も、本方法の全体にわたって更新され得る。考慮される頂点をユーザの視点Eから最も遠い3Dオブジェクトの頂点として更新することは、ユーザの視点Eおよび/または3Dオブジェクトが、本方法の間に移動する場合に、特に有用である。言い換えれば、一例として、Omaxは、検出すること(S20)の間に決定されてもよく、本方法の間に更新されてもよい。Hmaxは、ユーザの身体の横断面におけるユーザの視点Eから最も遠いユーザの手の配向平面の位置である。したがって、Hmaxは、ユーザ視点Eからの頂点の距離を考慮した方法を用いて頂点を選択可能か否かの指標となる。Hmaxは、例えば、ユーザの腕が、彼らの前で水平に伸ばされたときのユーザの手の配向平面の位置である。Hmaxは、例えばキャリブレーション段階中にあらかじめ計算されてもよい。Hmaxは、ユーザによって設定されてもよい。aは、||EOmax||/||EHmax||の因子として使用される。aは、例えば、本方法を使用する前にユーザによって設定される。a=1場合、これは、ユーザの視点Eから最も遠い3Dオブジェクトの頂点との距離が、ユーザの身体の横断面におけるユーザの視点Eから最も遠いユーザの手の配向平面の位置よりも大きいときに、仮想の手が3D没入空間においてユーザの手よりも遠くなることを意味する。aに1より大きい値を使用することにより、ユーザは、自分の腕を完全に伸ばす必要がなく、ユーザの視点Eから最も遠い3Dオブジェクトの頂点を選択することができる。一例として、aの値は、1.5から2の間に設定され得る。簡単にするため、以下では、a=1と考える。
仮想の手を使用することは、(より一般的には、3D環境における)3Dオブジェクトとのユーザの対話を改善する。図8および図9の例は、仮想の手の使用による人間工学の改善を示す。
図8の例では、仮想の手を使用することにより、ユーザは、自分の腕を完全に伸ばす必要なく、3Dオブジェクトの任意の頂点を選択することができる。腕を伸ばしたままにしておくことは、ユーザにとって疲れることもあり、したがって、仮想の手を使用することは、この問題を解決する。
図9の例では、仮想の手を使用することにより、ユーザは、ユーザの視点Eを動かすことなく、3Dオブジェクトの任意の頂点を選択することができる。実際に、一例として、最も遠い3Dオブジェクトの頂点とユーザの視点Eとの距離が、ユーザの身体の横断面におけるEから最も遠いユーザの手の中心の位置の間の距離よりも大きいとき、3Dオブジェクトのいくつかの頂点は、仮想の手を使用せずに選択可能でないことがある。この場合、仮想の手は、ユーザの手よりもユーザの視点Eから遠い位置にある。仮想の手を使用しない場合、項||FH||は、ユーザの視点Eから最も遠い3Dオブジェクトの頂点の選択にペナルティを課すことになる。したがって、本方法は、この項によってバイアスされる。仮想の手は、3D没入環境においてユーザの手の位置を仮想的に移動させることによってこの問題を解決し、仮想H’が常に少なくとも3Dオブジェクトの最も遠い頂点まであり、両方の位置がユーザの視点Eから考慮されることを確実にする。
一例では、仮想の手を使用することは、仮想の手から送信された光線投射と組み合わされ得る。この組み合わせは、例えば、ユーザの手がユーザの頭部に非常に近い場合に起動され得る。光線の方向は、3Dオブジェクトの中心に向かう仮想の手の配向平面に直交してもよい。仮想の手の配向平面は、人差し指および親指の仮想の対向する腹から得られ、光線は、好ましくは、ユーザの手のジェスチャを再現する仮想の手の人差し指および親指の先端を接続する線分から得られる仮想の平行線分から投射されてもよい。この組み合わせは、例えば、現実の障害物によって囲まれ得る3Dオブジェクトの任意の頂点を選択するために、複合現実または拡張現実において非常に有用であり得る。3Dオブジェクトの複数の頂点から頂点を選択するために光線の投射の方向を使用することは、ユーザの視点からオブジェクトの背後に位置する頂点を選択するために特に有用である。一例として、仮想の手の人差し指および親指の、仮想の対向する腹から得られる配向平面の方向が、識別すること(S40)の間に使用されてもよい。したがって、本方法は、手のひらを頭に向かって回転させることによって、ユーザの視点からオブジェクトの後ろに位置する頂点を選択することを可能にする。
一例において、(それぞれ、式(1)または式(2)で計算される)関数fの項||FH||または||FH’||は、頂点の位置と3Dモデルとユーザの視点Eから投射される光線との少なくとも1つの交点との3D没入環境におけるユークリッド距離をさらに含むことができる。光線は、例えば、頭部もしくは利き目の中心、または両目の中間の点から3Dモデルの中心に投射され得る。投射の方向は、例えば、ユーザの視線またはユーザの頭部の方向によって定義され得る。投射の方向は、例えば、ユーザの視点Eの位置から3Dモデルの中心の位置まで計算されてもよい。3Dモデルの中心は、例えば、3Dモデルの境界ボックスの中心として定義され得る。一例として、ユーザの視点Eの位置から3Dモデルの中心の位置まで、投射の方向が算出される。光線の投射は、ユーザの手のジェスチャを再現する仮想の手の(仮想の)人差し指および(仮想の)親指の先端を接続する線分から得られる仮想の平行線分を通過する。
頂点の位置と、ユーザの視点Eから投射される光線と3Dモデルとの少なくとも1つの交点との3D没入環境におけるユークリッド距離に基づく項を、項||FH||または||FH’||に追加することにより、本方法がユーザの視点Eの位置に敏感になることが可能になる。言い換えれば、これは、ユーザの視点Eと、3Dモデルと光線との少なくとも1つの交点との線に位置合わせされた頂点の選択を促進することを可能にする。これは、3Dモデルが視野の外側で部分的にレンダリングされる場合に、特に有用である。この場合、本方法は、視野外の頂点の選択にペナルティを課す。
ユーザの頭部の位置および/または向きを検索するために、姿勢の変化または動きを検出することができる任意の技術によって頭部の追跡を行うことができる。一例として、仮想現実、複合現実、または拡張現実において、そのような情報を提供するヘッドセットまたは眼鏡がある。ユーザの視線の方向および/または向きを検索するために、目の追跡技術が使用され得る。
一例において、図2の例を参照すると、識別すること(S40)は、決定された線分と最も近い位置を有する3Dオブジェクトの頂点を決定すること(S400)をさらに含むことができる。識別すること(S40)は、決定された頂点の1つまたは複数のn隣接頂点を計算すること(S410)をさらに含むことができ、当該1つまたは複数の隣接頂点および決定された頂点は、選択可能な頂点の部分集合230を形成する。決定された頂点のn隣接頂点は、決定された頂点のn−1隣接頂点とエッジを共有し、n−2隣接頂点とエッジを共有しない頂点である。したがって、決定された頂点の1隣接頂点は、決定された頂点とエッジを共有する頂点であり、決定された頂点の2隣接頂点は、決定された頂点の1隣接頂点とエッジを共有し、決定された頂点とエッジを共有しない頂点である。識別すること(S40)は、選択可能な頂点の部分集合から配向平面と最も近い向きを有する3Dオブジェクトの頂点を識別すること(S420)をさらに含む。nは、3Dオブジェクトの頂点のサイズに基づいて、あらかじめ決定され得る。nはまた、部分集合を形成する頂点のサイズ、または部分集合を形成する頂点のユーザの視点Eからの可視表面のサイズ、および/またはユーザの視点と決定された頂点との距離に基づいて更新され得る。nはまた、デバイス仕様に基づいて、またはユーザ選好に基づいて、あらかじめ決定され得る。
決定すること(S400およびS420)はまた、最も近い方向を有する3Dオブジェクトの頂点を決定することによって、または、式(1)もしくは式(2)の関数fを最小化する頂点を決定することによって実施され得る。決定すること(S400およびS420)とのすべての組み合わせが使用されてもよい。例えば、決定すること(S400)は、最も近い方向を有する3Dオブジェクトの頂点を決定することによって行われ得、決定すること(S420)は、関数fを最小化する頂点を決定することによって行われ得る。
別の例では、決定すること(S400)および決定すること(S420)は、関数fを最小化する頂点を決定することによって行われ得る。この場合、決定すること(S400)の最中、重みw1はw2より4倍大きくてもよく、決定すること(S420)の最中、重みw1はw2より4倍小さくてもよい。
一例において、本方法は、選択可能な頂点の部分集合の頂点の第1のレンダリングを修正することをさらに含むことができる。選択可能な頂点の部分集合は、ステップS410の間に計算される。上述したように、部分集合は、例えば、決定すること(S40)の間に、決定された頂点に基づいて計算される。部分集合のサイズは、計算すること(S410)で使用されるnの値に依存する。一例では、nの値は、ユーザの視点からの可視表面が、ユーザがそれを容易に識別するのに常に十分大きいことを保証するように計算され得る。部分集合のレンダリングを修正することは、どの頂点がステップS420の間に選択可能であると考えられるかをユーザが識別するのを助ける。したがって、ユーザは、関心のある頂点がこの部分集合の中にないことを容易に識別し、したがって、ステップS410の間に部分集合230を変更するためのユーザの手の位置および/または向きを修正することになる。
一例では、ユーザは、選択可能な頂点の部分集合を識別した後、選択可能な頂点の部分集合を変更するために手の位置を修正することができ、かつ/あるいは、選択可能な頂点の同じ部分集合の中で識別された頂点を変更するために、手の向きを修正することができる。
一例では、ユーザは、選択可能な頂点の部分集合を識別した後、選択可能な頂点の部分集合を変更するために手の位置を修正することができ、かつ/あるいは、選択可能な頂点の同じ部分集合の中で識別された頂点を変更するために、手の向きを修正することができる。
レンダリングの修正は、様々な方法で行うことができる。レンダリングの修正は、計算すること(S410)および/または識別すること(S420)の間に行われてもよい。一例として、レンダリングの修正は、選択可能な頂点を強調表示することによって実施され得る。別の例として、レンダリングの修正は、選択可能な頂点に特定のテクスチャを適用することによって実施され得る。レンダリングは、選択可能な頂点のエッジに対してのみ修正されてもよい。例えば、エッジは強調表示されてもよいし、太くされてもよい。別の例では、レンダリングの修正はまた、3Dオブジェクトからの選択可能な頂点の拡大および切断を含んでもよい。レンダリングの修正は、識別された頂点に関するグラフィカルユーザ情報の自動スナップなど、ユーザへの任意の別のフィードバックによって完了することができる。レンダリングの修正は、ユーザの表現を変更することによって、ユーザの手の上に現れてもよい。例えば、手の色を変えることができ、または線を指の上に重ねることができる。
一例において、本方法は、識別された頂点の第2のレンダリングを修正することをさらに含んでもよい。識別された頂点は、例えば、ステップS40の間に識別された頂点であってもよい。したがって、識別された頂点のレンダリングの修正が開始し、ユーザが関心のある頂点を選択するのを助ける。
識別された頂点は、例えば、ステップS420の間に識別された頂点であってもよい。識別された頂点は、例えば、ステップS400の間に決定された頂点であってもよい。これらの場合、例えば、第2および第3のレンダリングは、選択可能な頂点の部分集合の第1のレンダリングとは異なる。第2のレンダリングは、第3のレンダリングと異なってもよい。第1のレンダリングおよび/または第2のレンダリングおよび/または第3のレンダリングは、3D環境における3Dオブジェクトとのユーザ対話を改善する。実際、ユーザは、選択可能な頂点の部分集合を変更するために手の位置を変更する必要があるかどうかをステップS420の間に容易に把握することができ、かつ/あるいは、選択可能な頂点の同じ部分集合の中で、識別された頂点を変更するために手の向きを修正することができる。所望の頂点を選択するために必要とされるユーザ対話は、より少ない。
レンダリングの修正は、様々な方法で実施することができる。一例では、レンダリングは、選択可能な頂点を強調表示することによって実施され得る。別の例では、レンダリングは、選択可能な頂点に特定のテクスチャを適用することによって実施され得る。レンダリングは、選択可能な頂点のエッジに対してのみ修正されてもよく、例えば、エッジは強調表示されてもよく、または太くされてもよい。別の例では、レンダリングの修正はまた、3Dオブジェクトからの選択可能な頂点の拡大および切断を含んでもよい。レンダリングの修正は、識別された頂点に関するグラフィカルユーザ情報の自動スナップなど、ユーザへの任意の別のフィードバックによって完了することができる。レンダリングの修正はまた、ユーザの手の表現を変更することによって、ユーザの手の上に現れてもよく、例えば、手の色が変化してもよく、または線が指の上に重ねられてもよい。
連続的なユーザフィードバックを提供することと、過剰なポッピングを回避することとの間に良好なバランスが見出され得る。連続的なユーザフィードバックを提供することは、ユーザの入力に応答する方法を有するものとして定義され得る。言い換えれば、例えば、ユーザが入力を提供するとすぐに、本方法は、識別すること(S40)の結果および/または決定すること(S400)の結果および/または計算すること(S410)の結果および/または識別すること(S420)の結果を、目に見える遅延なしに更新すべきである。ユーザの入力に応答する方法を有することによって、本方法が、過剰なポッピングを提供するリスクがある。このポッピングという用語は、ユーザインタフェースが、様々な状態間で迅速かつ連続的に切り替わる傾向を定義する。本方法においては、それは、例えば、識別された頂点とみなされる2つ以上の頂点の間の迅速かつ俊敏な切替えであってもよい。
一例として、修正されたレンダリングを有する識別された頂点は、同じ次元のより良い候補が確実に識別されるまで保持され得る。言い換えれば、識別すること(S40)は、関数fを最小化することを含むことができ、現在の識別された頂点から別の頂点への切り替えは、別の頂点の関数fの値が現在の識別された頂点の関数fの値よりも小さくなってすぐには行われない。過剰なポッピングを回避するために、現在の識別された頂点の関数fの結果を別の頂点と比較するために、識別すること(S40)の間にペナルティ閾値またはペナルティ係数が使用され得る。言い換えれば、修正されたレンダリングを用いて識別された面は、同じ次元のより良い候補が、追加されたペナルティ閾値を用いて、かつ/あるいは、候補の関数fの結果にペナルティ係数を乗じて、関数fを最小化するまで保持され得る。代替的に、ユーザが特定の時間量にわたって動いていないことを検出した後にのみ、現在の識別された頂点から別の頂点に切り替えることによって、過剰なポッピングを回避でき得る。
連続的なユーザフィードバックは、例えば、3Dオブジェクトのレンダリングの修正によって、かつ/あるいは3Dオブジェクトの近くかつ/あるいはユーザの手の近くに仮想表現を追加することによって、かつ/あるいはデバイスからの触覚フィードバックによって行われ得る。
一例において、本方法における3Dオブジェクトの面は、三角形の一部および/または四角形の一部および/または位相面の一部および/またはパラメトリック曲面の一部および/またはプロシージャル曲面の一部であってもよい。位相面は、隣接する三角形のグループまたは隣接する四角形のグループであり、より大きな「論理的」連続面を形成する一方で、特に位相面が大きい場合、各プリミティブ間の多種多様な異なる向きを依然として潜在的に表示する。CADプログラムでは、位相面は、ほとんどの場合、位相エッジ、したがって位相エッジの頂点によって境界付けられる。隣接する三角形および/または隣接する四角形によって、グループの各三角形または四角形は、当該グループの三角形または四角形の1つの隣接する三角形または四角形であることが理解されるべきである。例えば、車を表すCADオブジェクトは、100未満の位相頂点にグループ化され得る数千の三角形から構成され得る。例えば、1つの位相頂点は、自動車の座席の上面を表すことができる。
一例において、本方法は、手のジェスチャが人差し指の腹と親指の腹との接触をさらに含むことを検出することによって、3Dオブジェクトの識別された頂点を選択することを含む。言い換えれば、3Dオブジェクトの識別された頂点は、手のジェスチャが人差し指の腹と親指の腹との接触をさらに含むとき、頂点の現在の選択に追加される。
一例において、本方法は、手のジェスチャが、人差し指の先端と親指の先端との接触をさらに含むことを検出することによって、3Dオブジェクトの識別された頂点を選択することをさらに含む。手のジェスチャが、人差し指および親指の先端の接触をさらに含むことを検出することによる選択の例が、図7に示される。言い換えれば、3Dオブジェクトの識別された頂点は、手のジェスチャが人差し指の先端と親指の先端との接触をさらに含むとき、頂点の現在の選択に追加される。
一例において、本方法は、手のジェスチャが、所定の値よりも小さい、例えば1センチメートル以下である、人差し指の腹と親指の腹との距離をさらに含むことを検出することによって、3Dオブジェクトの識別された頂点を選択することをさらに含む。
一例において、第1の頂点の選択後、ユーザはデフォルトのジェスチャに戻ることができ、かつ/あるいは、別の頂点(第2の頂点)を選択するためのジェスチャを再び実施することができる。第1の選択された頂点は、第1および第2の頂点がメモリに記憶されるようにメモリに保持され得る。ジェスチャを繰り返すことによって、ユーザは、3Dモデルのいくつかの頂点を選択することができる。
一例において、本方法は、手のジェスチャがすべての指の外転をさらに含むことを検出することと、選択された頂点を選択解除することとをさらに含むことができる。検出は、本方法の任意のステップの間に行うことができる。したがって、一例として、ユーザは、最後に選択された頂点を選択解除することができる。別の例として、ユーザは、頂点の現在の選択全体を選択解除することができる。
一例において、本方法は、手のジェスチャがすべての指の外転をさらに含むことを検出することと、選択された頂点を選択解除することとをさらに含むことができる。検出は、本方法の任意のステップの間に行うことができる。したがって、一例として、ユーザは、最後に選択された頂点を選択解除することができる。別の例として、ユーザは、頂点の現在の選択全体を選択解除することができる。
事前の選択中(すなわち、選択前)の頂点のレンダリングのサイズは、親指と人差し指との距離に反比例し得、ユーザのための人間工学を改善する。
ユーザは、いくつかの頂点をあらかじめ選択し(頂点の現在の選択)、すべてのあらかじめ選択された頂点の選択を実施することができる。
本明細書における「中心」という用語は、「実質的に中心」を意味するものとして解釈され得る。
Claims (15)
- CADシステムの3D没入環境における3Dオブジェクトの、それぞれが前記3D没入環境において位置を有する複数の頂点から、頂点を選択するためのコンピュータによって実施される方法であって、
前記3D没入環境において前記3Dオブジェクトを表示すること(S10)と、
人差し指の腹と親指の腹とを対向させることを含む手のジェスチャを検出すること(S20)であって、両指の腹が離隔されている、検出することと、
前記人差し指の腹と前記親指の腹とを接続する線分に平行な線分を決定すること(S30)であって、前記決定された線分は、前記3D没入環境において位置を有する、決定することと、
前記決定された線分と最も近い位置を有する前記3Dオブジェクトの頂点を識別すること(S40)と、を含む
ことを特徴とするコンピュータによって実施される方法。 - 前記識別することは、前記3Dオブジェクトの中心に平行な前記決定された平行線分から光線を投射することをさらに含む
ことを特徴とする請求項1に記載のコンピュータによって実施される方法。 - 前記関数fの項||FH||は、||FH’||によって置き換えられ、H’は
によって計算され、
ここで、
H’は、仮想の手の配向平面の位置であり、
Eは、ユーザの視点の位置であり、
Hは、指と親指の対向する腹で形成される前記配向平面の位置であり、
EHは、EからHへのベクトルであり、
Omaxは、Eから最も遠い前記3Dオブジェクトの頂点の位置であり、
Hmaxは、ユーザの身体の横断面におけるEから最も遠いユーザの手の中心の位置であり、
であり、
||EOmax||は、EからOmaxへのベクトルのノルムであり、
||EHmax||は、EからHmaxへのベクトルのノルムである
ことを特徴とする請求項3に記載のコンピュータによって実施される方法。 - 前記関数fの項||FH||または||FH’||は、頂点の位置と、頭部または利き目の中心または両目の中間の点から3Dモデルの中心に投射される光線と前記3Dモデルとの少なくとも1つの交点との、前記3D没入環境におけるユークリッド距離をさらに含む
ことを特徴とする請求項4に記載のコンピュータによって実施される方法。 - 前記識別することは、
前記決定された線分と最も近い位置を有する前記3Dオブジェクトの頂点を決定すること(S400)と、
前記決定された頂点の1つまたは複数のn隣接頂点であって、前記決定された頂点と選択可能な頂点の部分集合を形成する1つまたは複数の隣接頂点を計算すること(S410)と、
前記選択可能な頂点の部分集合から、前記配向平面と最も近い向きを有する前記3Dオブジェクトの頂点を識別すること(S420)と、を含む
ことを特徴とする請求項1から請求項5のいずれか1項に記載のコンピュータによって実施される方法。 - 選択可能な頂点の部分集合の頂点の第1のレンダリングを修正することをさらに含む
ことを特徴とする請求項6に記載のコンピュータによって実施される方法。 - 前記識別された頂点の第2のレンダリングを修正することをさらに含む
ことを特徴とする請求項1から請求項7のいずれか1項に記載のコンピュータによって実施される方法。 - 前記3Dオブジェクトの複数の頂点は、三角形の一部および/または四角形の一部および/または位相面の一部および/またはパラメトリック曲面の一部および/またはプロシージャル曲面の一部であってもよい
ことを特徴とする請求項1から請求項8のいずれか1項に記載のコンピュータによって実施される方法。 - 前記手のジェスチャを検出すること(S20)は、人差し指の腹と親指の腹とを対向させることを含み、人差し指と親指とは実質的に平行である
ことを特徴とする請求項1から請求項9のいずれか1項に記載のコンピュータによって実施される方法。 - 前記手のジェスチャが人差し指の腹と親指の腹との接触をさらに含むことを検出することによって、前記3Dオブジェクトの前記識別された頂点を選択することをさらに含む
ことを特徴とする請求項1から請求項10のいずれか1項に記載のコンピュータによって実施される方法。 - 前記手のジェスチャがすべての指の外転をさらに含むことを検出することと、
前記選択された頂点を選択解除することと、をさらに含む
ことを特徴とする請求項11に記載のコンピュータによって実施される方法。 - 請求項1から請求項12のいずれか一項に記載の方法をコンピュータが実施できるようにする命令を含むコンピュータプログラム。
- ディスプレイと、メモリと通信可能に結合された処理回路とを備えるシステムであって、前記メモリは、請求項13に記載のコンピュータプログラムを記憶していることを特徴とするシステム。
- 請求項13に記載のコンピュータプログラムを格納しているコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19306792.3A EP3846064A1 (en) | 2019-12-30 | 2019-12-30 | Selection of a vertex with an immersive gesture in 3d modeling |
EP19306792.3 | 2019-12-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021119452A true JP2021119452A (ja) | 2021-08-12 |
Family
ID=69185279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020211251A Pending JP2021119452A (ja) | 2019-12-30 | 2020-12-21 | 3dモデリングにおける没入型ジェスチャを用いた頂点の選択 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11543889B2 (ja) |
EP (1) | EP3846064A1 (ja) |
JP (1) | JP2021119452A (ja) |
CN (1) | CN113126748A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11481025B2 (en) * | 2018-11-21 | 2022-10-25 | Sony Group Corporation | Display control apparatus, display apparatus, and display control method |
CN112926423B (zh) * | 2021-02-07 | 2023-08-25 | 青岛小鸟看看科技有限公司 | 捏合手势检测识别方法、装置及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020056009A1 (en) * | 2000-08-22 | 2002-05-09 | Affif Filippo L. | Method for interacting with a device using an abstract space |
US9070402B2 (en) * | 2006-03-13 | 2015-06-30 | Autodesk, Inc. | 3D model presentation system with motion and transitions at each camera view point of interest (POI) with imageless jumps to each POI |
US10235827B2 (en) | 2007-11-09 | 2019-03-19 | Ball Gaming, Inc. | Interaction with 3D space in a gaming system |
FR2971066B1 (fr) * | 2011-01-31 | 2013-08-23 | Nanotec Solution | Interface homme-machine tridimensionnelle. |
US20150220149A1 (en) * | 2012-02-14 | 2015-08-06 | Google Inc. | Systems and methods for a virtual grasping user interface |
JP5925024B2 (ja) * | 2012-04-06 | 2016-05-25 | キヤノン株式会社 | 表示制御装置、表示制御方法、およびプログラム |
US10168873B1 (en) * | 2013-10-29 | 2019-01-01 | Leap Motion, Inc. | Virtual interactions for machine control |
JP6326847B2 (ja) * | 2014-02-14 | 2018-05-23 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
US10140776B2 (en) * | 2016-06-13 | 2018-11-27 | Microsoft Technology Licensing, Llc | Altering properties of rendered objects via control points |
WO2019092685A1 (en) | 2017-11-13 | 2019-05-16 | Arkio Ehf. | Virtual/augmented reality modeling application for architecture |
US11573641B2 (en) * | 2018-03-13 | 2023-02-07 | Magic Leap, Inc. | Gesture recognition system and method of using same |
-
2019
- 2019-12-30 EP EP19306792.3A patent/EP3846064A1/en active Pending
-
2020
- 2020-12-21 JP JP2020211251A patent/JP2021119452A/ja active Pending
- 2020-12-29 CN CN202011589398.9A patent/CN113126748A/zh active Pending
- 2020-12-29 US US17/136,885 patent/US11543889B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11543889B2 (en) | 2023-01-03 |
CN113126748A (zh) | 2021-07-16 |
EP3846064A1 (en) | 2021-07-07 |
US20210200323A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544797B (zh) | 用于生成在图形用户接口上显示的对象色彩的方法和装置 | |
EP3188033B1 (en) | Reconstructing a 3d modeled object | |
JP6787661B2 (ja) | 工作物の機械加工のシミュレート | |
CN108073682B (zh) | 基于参数视图函数查询数据库 | |
JP2021131848A (ja) | 3dモデリングにおける没入型ジェスチャを用いたエッジの選択 | |
JP6356378B2 (ja) | 幾何学的三次元モデルオブジェクトを設計する方法 | |
CN106652045B (zh) | 比较3d建模对象的方法、系统及介质 | |
CN105760570B (zh) | 选择对象集的视点 | |
US8823706B2 (en) | Method, program and product edition system for visualizing objects displayed on a computer screen | |
JP2021119452A (ja) | 3dモデリングにおける没入型ジェスチャを用いた頂点の選択 | |
CN111383327A (zh) | 使用弱类型定义进行建模 | |
US8358311B1 (en) | Interpolation between model poses using inverse kinematics | |
US9665955B1 (en) | Pose-space shape fitting | |
Schkolne et al. | Surface drawing. | |
CN112486319B (zh) | 基于触觉渲染设备的vr交互方法、装置、设备及介质 | |
JP2021131847A (ja) | 3dモデリングにおける没入型ジェスチャを用いた面の選択 | |
US11176759B2 (en) | Computer-implemented method of displaying a subset of a digitally modeled assembly of objects | |
US8704828B1 (en) | Inverse kinematic melting for posing models | |
US11941773B2 (en) | Method for designing a three-dimensional mesh in a 3D scene | |
CN111383342A (zh) | 使用弱类型定义进行灵活建模 | |
EP4202622A1 (en) | Setting typed parameter | |
JPH0887585A (ja) | 図形データの階層的近似化方法 | |
CN110033520A (zh) | 三维场景的可见性函数 | |
Matsumiya et al. | Immersive modeler for curved objects using implicit surfaces | |
Yu | Free form sketching system for product design using virtual reality technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231124 |