JP3904671B2 - 仮想粘土システムおよびそのシミュレーション方法 - Google Patents

仮想粘土システムおよびそのシミュレーション方法 Download PDF

Info

Publication number
JP3904671B2
JP3904671B2 JP13735997A JP13735997A JP3904671B2 JP 3904671 B2 JP3904671 B2 JP 3904671B2 JP 13735997 A JP13735997 A JP 13735997A JP 13735997 A JP13735997 A JP 13735997A JP 3904671 B2 JP3904671 B2 JP 3904671B2
Authority
JP
Japan
Prior art keywords
particles
interaction
particle
virtual
shape
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.)
Expired - Fee Related
Application number
JP13735997A
Other languages
English (en)
Other versions
JPH10334278A (ja
Inventor
健史 小柴
雅裕 松岡
訓治 高山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13735997A priority Critical patent/JP3904671B2/ja
Priority to US09/031,916 priority patent/US6040840A/en
Publication of JPH10334278A publication Critical patent/JPH10334278A/ja
Application granted granted Critical
Publication of JP3904671B2 publication Critical patent/JP3904671B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータにより実現される仮想空間(サイバースペース)において、粘土のモデルを用いて物体の形状変化のシミュレーションを行うシステムとその方法に関する。
【0002】
【従来の技術とその問題点】
製品をデザインする過程において、製品イメージを明確にするために、デザイナーは、しばしば、その模型を形成することがある。デザイナーは、製品の縮小模型から実物大模型まで、様々な大きさ/形状の模型を試行錯誤しながら形成し、最終的な製品のデザインを決定する。
【0003】
デザインは、製品に商品としての価値を与える重要な要素であるため、最適なデザインを決定するために、多数の模型が形成される。しかし、模型形成は実際の素材(粘土・木材・紙など)を利用して行われるため、素材の加工に少なからぬ労力を要する。したがって、模型形成には、膨大なコスト(労力・時間)を要するという問題がある。
【0004】
この模型形成の工程において、デザインの質を落とさずに労力・時間を軽減することができれば、製品コストの低下に繋がる。また、一方では、デザインに必要な他の工程にかける割り当て時間を、充分に取ることができるようになると見込まれる。
【0005】
現実世界の素材を用いたデザインのみならず、コンピュータを用いて生成される仮想世界(バーチャルリアリティ)における仮想的な建造物や造形品の設計製作においても、同様なことがいえる。
【0006】
また、近年では、3次元(3D)CAD(computer-aided design )や3Dグラフィクスなどにおいて、3Dの造形ソフトウェアも利用されている。しかし、この造形ソフトウェアは、2次元(2D)のドロー系のソフトウェアを継承しているために、物体の形状の作成時に2Dのポインティングデバイスによる強い制約を受けることがある。
【0007】
また、3D物体の断面を利用した設計、並進複写や回転複写などを利用した3D物体の再現、曲面の一部を表すパッチを制御することによる3D物体の表面形成・曲面の操作などを行うこともある。
【0008】
したがって、従来の造形ソフトウェアでは、複雑で非効率的な操作がユーザに要求され、一通りの操作手順を覚えるまでは、物体の形状を作成することは困難である。このように、3Dの造形ソフトウェアによれば、素材を加工する手間を省くことができるが、操作のための特殊技能の習得が必要であり、誰でも簡単に利用できるわけではないという問題がある。
【0009】
本発明の課題は、コンピュータにより実現される仮想空間において、簡単な操作で、効率よく物体の形状のシミュレーションを行うことのできるシステムとその方法を提供することである。
【0010】
【課題を解決するための手段】
図1は、本発明の仮想粘土システムの原理図である。図1の仮想粘土システムは、コンピュータを用いて実現され、入力手段1、変形手段2、記憶手段3、形状生成手段4、および出力手段5を備える。
【0011】
記憶手段3は、仮想粒子の集合を表す粒子集合データと、その粒子の集合内の各粒子の位置を表す位置データとを記憶し、形状生成手段4は、上記粒子の集合の形状を表す形状データを生成する。また、入力手段1は、上記粒子の集合に対するユーザからの指示情報を入力し、変形手段2は、その指示情報に従って、上記集合内の少なくとも一部の粒子の位置を変更することで、上記形状を動的に変化させる。そして、出力手段5は、上記形状データに基づく形状情報を出力する。
【0012】
仮想粒子の集合は、各粒子の位置を変更することで、その形状を自由に変化させることができ、仮想空間における粘土のような素材の性質をシミュレートする。記憶手段3には、粒子の集合に含まれる粒子の数や各粒子の識別子などを含む粒子集合データと、仮想空間における各粒子の位置を表す位置データが記憶されており、形状生成手段4は、各粒子の位置データをもとにして、集合全体が表す仮想的な物体の形状データを生成する。
【0013】
入力手段1は、例えば、粒子の集合を変形させる指示情報を入力し、変形手段2は、それに従って、位置を変更すべき粒子とその移動量を計算する。これにより、集合内の粒子の一部または全部の位置データが変更され、形状生成手段4は、更新された位置データをもとにして、さらに形状データを生成する。そして、出力手段5は、生成された形状データに基づき、物体の形状情報を画像などの形で出力する。
【0014】
このような仮想粘土システムによれば、連続的に指示情報が入力されたとき、各制御時刻における形状データが計算され、対応する形状情報が出力される。したがって、ユーザは、指示情報を入力しながら、仮想的な物体の形状の変化をリアルタイムで認識することができる。
【0015】
また、物体の表面の情報だけでなく、その内部の構造を粒子の集合として表すことで、表面の変形操作を、各粒子の移動によりシミュレートすることができる。これにより、内部構造を持つ粘土をこねるような感覚で、直観的に変形操作を行うことが可能となり、指示情報の入力方法も簡単化される。また、出力手段5として、表示装置以外の出力装置を用いることで、仮想的な物体の触覚情報や物体上で発生した力の情報をユーザに伝達することもできる。
【0016】
例えば、図1の入力手段1は、後述する図3の入力装置23に対応し、変形手段2と形状生成手段4はCPU(中央処理装置)21とメモリ22に対応し、記憶手段3はメモリ22に対応し、出力手段5は出力装置24に対応する。
本発明の別の仮想粘土システムは、コンピュータを用いて実現され、入力手段1、変形手段2、記憶手段3、形状生成手段4、出力手段5、および相互作用計算手段を備える。記憶手段3は、仮想粒子の集合を表す粒子集合データと、その集合内の各粒子の位置を表す位置データと、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データとを記憶する。形状生成手段4は、上記粒子の集合の形状を表す形状データを生成する。入力手段1は、上記粒子の集合に対するユーザからの指示情報を入力する。相互作用計算手段は、その指示情報に従って、2つの粒子の相互作用場が交叉する場合にそれらの粒子の相互作用場の間における粒子間相互作用を計算する。変形手段2は、粒子間相互作用の計算結果に従って、上記集合内の少なくとも一部の粒子の位置を変更することで、形状を動的に変化させる。出力手段5は、上記形状データに基づく形状情報を出力する。
【0017】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
従来の模型形成では実際の素材を利用しているが、模型形成をコンピュータ上でシミュレートすれば、素材のコストや素材加工に要する時間を削減することができる。また、従来の造形ソフトウェアにおける操作とは別に、より現実世界に近いような操作性を実現できれば、一層、模型生成時間を短縮できる。このために必要な技術としては、次のようなものが挙げられる。
(1)コンピュータ上の仮想世界において、素材の物理的・物質的性質をシミュレートできること
(2)コンピュータ上の仮想世界において、現実世界の操作性をシミュレートできること
また、コンピュータ上で実現することの利点は、現実世界では実現不可能な操作を実現できる可能性があることである。
【0018】
本発明においては、変形が容易で一定の形状を保持できる素材の代表として粘土を選び、コンピュータ上の素材として仮想的な粘土(以下、仮想粘土またはバーチャクレイ(Virtuaclay)と呼ぶ)を想定する。そして、コンピュータ上で、仮想的な物理法則の下に、仮想粘土の形状の変化をシミュレートする。図2は、このようなシミュレーションを行う仮想粘土システム(バーチャクレイシステム)を示している。
【0019】
図2において、コンピュータ上の仮想空間11に存在するバーチャクレイ15は多数の粒子から成っており、バーチャクレイ15のモデルとその内部状態がデータとして保持されている。ユーザは、制御情報入力装置13から仮想空間11に制御情報を入力し、感覚情報出力装置12から感覚情報を受け取る。また、出力装置14は、必要に応じて、バーチャクレイモデルのデータやその他のオブジェクトのデータを出力する。
【0020】
オブジェクトとは、オブジェクト指向プログラミングにおける情報の単位であり、データとそれに適用される手続きであるメソッドとの組みを有する。オブジェクトに定義されたメソッドを実行することで、様々な情報処理が実現される。バーチャクレイシステムにおけるオブジェクトの詳細については、後述することにする。
【0021】
制御情報入力装置13は、バーチャクレイ15を仮想的に加工するための指示を入力する装置であり、例えば、2D/3Dポインティングデバイス、インスツルメントグローブ、力入力装置が用いられる。また、感覚情報出力装置12は、加工されたバーチャクレイ15の形状等を出力する装置であり、例えば、2D/3D表示装置、触覚出力装置、力出力装置が用いられる。
【0022】
2Dポインティングデバイスは、例えばマウスであり、3Dポインティングデバイスは、例えば、3Dの移動と回転を含む操作性を持つポインティングデバイスである。また、インスツルメントグローブは、仮想世界での様々な手の動きを可能にする3D位置センサー付きのグローブで、データグローブとも呼ばれる。各センサーは、指の位置と動きを正確に検出し、仮想世界での物体の移動や変形に反映させる。
【0023】
また、力入力装置は、例えば、指サック状のジンバル(gimbal)の中に指先を入れて力を入力する装置で、指先の位置を入力する3D位置センサーとしても機能する。このような力入力装置は、力出力装置の機能を兼ねることもでき、素材からの反力をリアルタイムで指先にフィードバックする。これにより、ユーザは、仮想空間の物体の堅さや表面の摩擦等を感じることができる。
【0024】
表示装置としては、通常のデスクトップ型のディスプレイ装置以外に、例えば、仮想世界を知覚(人工感覚)するためのヘッドマウントディスプレイが用いられる。また、触覚出力装置としては、例えば、インスツルメントグローブに装着されたバイブレータが用いられる。このような入出力装置を利用することで、仮想世界の素材加工操作と現実世界のそれとの差異が低減される。
【0025】
バーチャクレイの物理的・物質的な性質をシミュレートするには様々な手法が考えられる。ここでは、必ずしも力学系を正確にシミュレートする必要はなく、リアルタイムなインタラクションが要求される点を考慮して、模型の自然な作成環境をシミュレートすればよい。この環境を支配する規則を近似物理法則または擬似物理法則と呼ぶことにし、それをコンピュータ上の近似計算で実現する。
【0026】
粘土に対する変形操作としては、ちぎる、こねる、つける、引き延ばす、つまむ、合わせる、混ぜるなどが考えられるが、これらの操作機能を擬似物理法則の下で実現する。より具体的には、制御情報入力装置13から指示される操作機能を、仮想空間11における簡単な力学的基本要素の組合せで実現する。そして、これらの操作に伴う触覚または力覚の情報を、感覚情報出力装置12を介して出力する。
【0027】
このようなコンピュータ上のバーチャクレイシステムによれば、模型の複製、拡大・縮小、移動、さらには模型表面の平滑化、修正、変更、部品化、再利用などの操作を簡易に行うことができる。特に、拡大・縮小などは、現実の模型では不可能な操作であるが、小さなバーチャクレイで概形を作っておいてからそれを大きくして細部を加工する場合などに便利である。
【0028】
本実施形態のバーチャクレイシステムは、例えば、図3に示すようなコンピュータ(情報処理装置)により実現される。図3の情報処理装置は、CPU(中央処理装置)21、メモリ22、入力装置23、出力装置24、外部記憶装置25、媒体駆動装置26、ネットワーク接続装置27を備え、それらの各装置はバス28により互いに結合されている。
【0029】
CPU21は、メモリ22に格納されたプログラムを実行して、バーチャクレイシステムの処理を実現する。メモリ22としては、例えばROM(read only memory)、RAM(random access memory)等が用いられる。
【0030】
入力装置23は、図2の制御情報入力装置13やキーボードなどに相当し、ユーザからの操作指示の入力に用いられる。出力装置24は、図2の感覚情報出力装置12やプリンタなどに相当し、仮想世界の模型などの情報の出力に用いられる。
【0031】
外部記憶装置25は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク(magneto-optical disk)装置等であり、プログラムやデータを保存することができる。また、作成された模型のデータを保存するデータベースとしても使用することができる。
【0032】
媒体駆動装置26は、可搬記録媒体29を駆動し、その記憶内容にアクセスする。可搬記録媒体29としては、メモリカード、フロッピーディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この可搬記録媒体29には、データのほかに、バーチャクレイシステムの処理を行うプログラムが格納される。
【0033】
ネットワーク接続装置27は、LAN(local area network)などの任意の通信ネットワークに接続され、通信に伴うデータ変換などを行う。情報処理装置は、ネットワーク接続装置27を介して、ネットワークから必要な情報を受け取ることができる。
【0034】
次に、バーチャクレイを実現する上で関連する技術を列挙する。
(1)3Dのパッチで物体の表面を形成し、制御点をインタラクティブに制御する。このアルゴリズムによる設計方法は、次の2つの文献に記載されている。
H. J. Lamousin and W. N. Waggenspack, Jr.,“NURBS-Based Free-Form Deformations, ”IEEE Computer Graphics and Applications, 11, pp.59-65,(1994).H. Qin and D. Terzopoulos,“D-NURBS: A Phisics-Based Framework for Geometric Design ”IEEE Transactions on Visualization and Computer Graphics, Vol. 2, No. 1, pp.85-96,(1996).
(2)体積という量を定義したソリッドモデルを想定し、変形時において体積を保存するという制約の下で、その形状を制御する。この技術については、次の文献に記載されている。
A. Rappoport, A. Sheffer and M. Bercovier,“Volume-Preserving Free-Form Solids, ”IEEE Transactions on Visualization and Computer Graphics, Vol. 2, No. 1, pp.19-27,(1996).
(3)高分子の構造を表示する際に、結合構造だけではなく、分子の表面を計算して、その空間に占める形状を表現する。この技術については、次の文献に記載されている。
A. Varshneym, F. P. Brooks, Jr. and W. V. Wright, “Computing Smooth Molecular Surfaces,”IEEE Computer Graphics and Applications, 9, pp.19-25,(1994).
(4)人の指などで可塑性のある物体を変形させる際の作用・反作用をシミュレートする。物体の弾性を指先の触覚に対して表現し、かつ、指先からの力を検出して、シミュレーション用のデータに変換するデバイスを通じて、変形の相互作用を実現する。この技術については、次の文献に記載されている。
K. Hirota and M. Hirose,“Providing Force Feedback in Virtual Environments, ”IEEE Computer Graphics and Applications, 9, pp.22-39,(1995).
(5)オブジェクト間のメッセージパッシングにより、多体問題の並列計算を行う。この技術については、次の文献に記載されている。
八杉昌宏&米澤明憲,“N体問題の並列オブジェクト指向アルゴリズム,”日本ソフトウェア科学会第8回大会論文集,pp.405-408,(1992).
(6)仮想空間における物体と物理法則を定義し、指と物体および物体相互の干渉計算を行う体系的なソフトウェアを構築する。この技術については、次の文献に記載されている。
広田光一&木島竜吾,“バーチャルリアリティ・ソフトウェア,”共立出版,仮想現実学への序曲,bit8月号別冊,pp.132-142,(1994).
この文献には、変形面とスイッチを用いた特殊なインタフェースを持つ電子粘土システムが紹介されているが、これは単に物体の表面の形状変化をシミュレートするシステムであり、内部に多数の粒子を持つ本発明のバーチャクレイとは本質的に異なる。
【0035】
ここで、列挙した技術は、バーチャクレイシステム実現のための必須技術というわけではなく、現状においてこれらの技術を組み合わせることにより、バーチャクレイシステムが技術的に実施可能であることを示しているに過ぎない。
【0036】
次に、本実施形態のバーチャクレイの技術が実装されるモデルについて説明する。このバーチャクレイのモデルと上述した関連技術を統合して、バーチャクレイシステムが実現される。
【0037】
バーチャクレイは、小さな球体や立方体などの任意の形状の仮想粒子の集合として定義され、それがバーチャクレイの概形を形成する。各粒子は、符号や番号などの識別情報により区別し、粒子の集合の表面に皮膜を形成して、物体の形状を表すことにする。形状の変化は、各粒子の位置を変えることで制御される。
【0038】
また、各粒子は機能的な近傍を備えており、粒子と粒子、粒子の近傍と近傍、粒子と外因作用(ユーザの指の動きなど)の間において、相互作用(インタラクション)が定義される。この相互作用としては、実際の物理法則による物理シミュレーションを用いてもよく、処理の高速化のために適当な擬似物理法則を利用してもよい。
【0039】
図4は、バーチャクレイを構成する球形の仮想粒子の構造を示している。図4の粒子は、空間の位置情報として、ユークリッド座標系における中心位置の座標X=(x1 ,x2 ,x3 )を有する。そして、その位置を中心に、複数の層から成る近傍構造31を持っている。
【0040】
例えば、最も内側の層32は、核(Core)と呼ばれ、粒子の中心Xから半径rC の大きさで球状に広がっている。各粒子は他の粒子の核32に侵入できない性質を持つ。これに対して、他の層は、相互作用場(Interaction field )と呼ばれ、弾性や粘性といった他の粒子との間の相互作用を規定する。これらの層のうち最も外側のものは、中心Xから半径rI の大きさで球状に広がり、粒子の大きさを決定している。
【0041】
このような近傍構造31においては、より内側の層の性質がより外側の層の性質に優先される。したがって、弾性などの相互作用が定義された層であっても、他の粒子の核32には侵入することができない。
【0042】
近傍31に割り付けられる擬似物理法則は、粒子−粒子相互作用、粒子−外因子相互作用として、相互作用の相手に応じて決められる。粒子−粒子相互作用は、粒子間の位置関係(距離)を媒介パラメータとして定義され、単に、引力、斥力、侵入禁止といった単純な性質にとどまらず、他の様々な性質を規定する。これにより、多様な材質のバーチャクレイが構成される。
【0043】
例えば、引力層と斥力層を交互に持つような粒子を用いて、奇妙な手ごたえを持つ素材を表現することができる。また、特定の粒子とのみ引き合う/斥け合う性質を用いることで、フラクタル結晶構造のような状態を創り出すことができる。また、それに色付けすることで、陶器の釉薬のような面白い視覚的効果が得られる。
【0044】
これらの相互作用による効果は、実際にシミュレーションにより確かめることができ、各ユーザは、思い思いに近傍構造31を設計して、その情報をライブラリとして保存しておくことができる。ライブラリの情報は、必要に応じて呼び出されて、再利用される。
【0045】
次に、図5から図9までを参照しながら、仮想粒子間の相互作用の例を説明する。
図5は、粒子の移動操作による隣接粒子への影響の伝播を示している。図5において、粒子Pの位置をX=(x1 ,x2 ,x3 )とし、粒子Pに対する移動操作はベクトルΔX=(Δx1 ,Δx2 ,Δx3 )で表現されるものとする。この位置変更操作による粒子Pの移動後の位置X′は、X′=X+ΔXにより計算される。粒子Pが移動することにより、粒子Pに接触していた粒子Qは次のように移動する。
【0046】
まず、粒子Qの位置をY=(y1 ,y2 ,y3 )とする。XとYを結ぶ直線XYに対してベクトルΔXを垂直に射影して得られるベクトルを、ベクトルΔY=Proj(ΔX,XY)とする。このベクトルΔYが、粒子Qの移動操作のベクトルとなる。したがって、粒子Pの移動に伴う粒子Qの移動後の位置は、Y′=Y+ΔY=Y+Proj(ΔX,XY)となる。粒子Rについても同様の計算が行われる。
【0047】
図6は、移動操作に対する粒子の弾性(plasticity/elasticity )を模した近傍の効果を示している。粒子間の弾性を模倣する規則は、上述の相互作用場の性質で実現される。今、2つの粒子PとQの相互作用場が交叉していないとする。2つの粒子の相互作用場は、互いの相互作用場の侵入を許すが、より内部の核の侵入は許さない。移動操作により侵入される粒子をP、侵入する粒子をQとし、次のような規則を割り付ける。
【0048】
2つの粒子の中心X、Yを結ぶ直線をPQとし、粒子Qの場が粒子Pの場にQ→P方向にrだけ侵入した場合、適当な係数をcP (0<cP <1)として、粒子PをQ→P方向にcP rだけ移動させる。また、粒子Qは、適当な係数をcQ (0<cQ <1)として、P→Q方向にcQ rだけ押し戻され、そのQ→P方向の移動量はr−cQ rとなる。その結果、粒子Pの中心XはX′の位置に移動し、粒子Qの中心YはY′の位置に移動する。典型的には、このような規則により粒子間の弾性が模倣される。
【0049】
また、図7は、移動操作に対する粒子の粘性(viscosity )を模した近傍の効果を示している。粒子間の粘性を模倣する規則も、相互作用場の性質で実現される。今、2つの粒子PとQの相互作用場が交叉しているとする。粒子PがQ→P方向にrだけ移動すると、適当な係数をdQ (0<dQ <1)として、粒子QはQ→P方向にdQ rだけ移動する。その結果、粒子Pの中心XはX′の位置に移動し、粒子Qの中心YはY′の位置に移動する。このような規則により粒子間の粘性が模倣される。
【0050】
図5に示したような移動操作とは逆に、接触している粒子を分離させるような操作も可能である。この場合も、上述の移動による変形と同様な計算を行うが、移動ベクトルの方向は逆になる。図5のような移動操作を粒子の押し込みと呼ぶならば、この移動操作は粒子の引き剥がしと呼ぶことができる。
【0051】
図8は、粒子の引き剥がしによる隣接粒子への影響の伝播を示している。図8において、粒子Pの位置をXとし、粒子Pに対する移動操作はベクトルΔXで表現されるものとする。このとき、粒子Pの移動後の位置X′は、X′=X+ΔXにより与えられる。粒子Pが移動することにより、粒子Pに接触していた粒子Qは次のように移動する。
【0052】
粒子Qの位置をYとし、XとYを結ぶ直線XYに対してベクトルΔXを垂直に射影して得られるベクトルをProj(ΔX,XY)とする。このとき、引き剥がしによる移動量の伝達率(transmission efficiency )をcT として、粒子Qの移動ベクトルを、ベクトルΔY=cT Proj(ΔX,XY)とする。したがって、粒子Pの移動に伴う粒子Qの移動後の位置は、Y′=Y+ΔY=Y+cT Proj(ΔX,XY)となる。粒子Rについても同様の計算が行われる。
【0053】
移動量の伝達率cT は、図9に示すように、最初に移動する粒子から遠く離れるに従って急激に小さくなるように設定される。したがって、一定距離より遠く離れた粒子は、引き剥がしの影響を受けることはない。このような伝達率は、粘性を模倣した規則により実現することができる。このような引き剥がしの規則を用いて、いくつかの粒子を元の集合から分離する操作と、それによるバーチャクレイの変形を実現できる。
【0054】
バーチャクレイを構成する仮想粒子の集合に対する操作としては、次のようなものが挙げられる。まず、表面の皮膜が連続したままの変形操作には、皮膜に穴を空けないような操作と、皮膜に穴を空けるような操作とがある。
【0055】
皮膜に穴を空けない操作としては、例えば、任意の粒子の移動による変形、いくつかの粒子を固定したまま他の粒子を移動させるような変形が含まれ、後者の場合は、粒子集合内に、変形操作の影響を受けない部分集合を設定できる。また、粒子集合内の部分集合単位の移動による変形も考えられる。皮膜に穴を空ける操作の場合は、うがたれる穴を中心として、局所的に粒子集合の最外殻の位置が再計算される。
【0056】
また、形状を変化させないアフィン変換による変形操作も、皮膜が連続したままの変形操作の1つである。この操作には、粒子集合の並進操作、回転操作、拡大/縮小操作などが含まれる。アフィン変換操作は、例えば、画面表示された操作パネル上での指示に対して割り当てられたり、データグローブを装着した手によるジェスチャに対して割り当てられたりする。
【0057】
また、通常の操作の範囲で、変形を指示する入力に閾値を設定しておき、入力がしきい値より小さければアフィン変換を行うようにすることもできる。さらに、上述の部分集合単位で、アフィン変換による変形を行ってもよい。
【0058】
次に、コネルという操作は、粒子の空間配置を均一にする操作で、粒子の数をを増減したり、粒子の近傍構造を変えたり、粒子の識別符号を置換したりする操作を含む。例えば、色の異なる2種類の粒子を含むバーチャクレイをコネルことにより、色の分布を均一にすることができる。
【0059】
また、仮想的な道具を使用して、粒子集合を加工することも可能である。例えば、仮想的なマーカは、粒子集合の領域や境界を指定するために用いられ、仮想的な馬楝(ばれん)は、表面形状の変更/整形のために用いられ、力学的ファンは、風圧により表面形状を変化させるために用いられる。このような表面仕上げのために用いられる道具は、フィニッシャ(finisher)と呼ばれ、具体的には、粒子の位置データをフィルタリングすることで、それらをなめらかに配置する処理を行う。
【0060】
さらに、各粒子に適用される擬似物理法則のパラメータ値を変更することで、バーチャクレイの特性を変更する操作を行うこともできる。例えば、温度の変化により粒子間の結合の強さを表すパラメータを変化させて、凝固、融解、気化などの現象をシミュレートすることができる。この場合、バーチャクレイを加熱する仮想的な道具として、ドライヤーを定義しておいてもよい。
【0061】
また、粒子集合の接合操作と分割操作は、次のようにして行われる。2つの粒子集合を接合した場合、各集合に属する粒子は、図10に示すように、同一の皮膜に覆われる場合と、図11に示すように、異なる皮膜に覆われる場合とがある。
【0062】
図10の接合操作では、粒子集合L、Rを結合させると、これらに属する粒子は互いに混ざり合うのに対して、図11の接合操作では、粒子集合L、Rは接触しているだけで、それらの粒子は混ざり合っていない。どちらの場合も、結合後の粒子は、次の変形操作を受ける際の基本単位として扱われる。
【0063】
これに対して、粒子集合を分割する場合は、図12に示すように、元の集合が2つ以上の部分集合に分けられ、部分集合同士が接触しないように、それぞれ、異なる皮膜で覆われる。この操作においては、まず、元の集合の最外殻の粒子において分離する位置を指定し、適当な規則を決めて分離境界を設定する。そして、境界上の粒子を部分集合に振り分け、それぞれの新しい最外殻粒子を決める。
【0064】
このように様々な操作を仮想粒子集合に対して行うことで、バーチャクレイの外見が変化する。このバーチャクレイの外見を決めるのが皮膜であり、皮膜生成は、粒子集合に対する作用の一つとして定義される。皮膜の形状は、粒子集合の最外殻を成す粒子の位置により決められるが、その表面を表現するパッチとしては任意のものを採用することができる。また、粒子集合内の各粒子は、最外殻に位置するか否かを示す識別情報を持っている。
【0065】
最外殻粒子の計算および皮膜表面のパッチの計算には、例えば、線形計画法を利用することができる。線形計画問題の代表的な解法として知られているシンプレックス法は、解を表す空間の許容領域の境界上に位置する頂点をたどって、最適解に到達する方法である。シンプレックス法に基づく最外殻粒子の計算方法の詳細は、上述の“Computing Smooth Molecular Surfaces ”に記述されているが、そのアルゴリズムについては後述することにする。
【0066】
仮想粒子の集合が複雑な形状を有する場合、粒子の複雑な空間配置から最外殻を一度で計算する必要はなく、複雑なバーチャクレイの形状は、逐次的に生成されていく。局所的な変形で形状が変わることを考えれば、そのような変形が加えられる度にローカルに最外殻を更新することで、計算は簡単になる。
【0067】
また、仮想粒子の集合の変形作用に対する反作用の計算も定義することができる。反作用の模倣に利用可能な量としては、粒子の平均移動ベクトル、粒子の仮想的な重さ(質量)、作用点となる最外殻の粒子の移動ベクトル、反作用の計算における近傍の相互作用のパラメータなどがある。
【0068】
反作用の模倣に必要な計算方法としては、例えば、基本操作に対する反作用をテーブル化してメモリに格納しておき、該当する操作が行われたときにそれを参照する方法がある。この場合、音を出す、色を変化させる、手応え(反力)を出力するなどの反作用があらかじめ設定される。
【0069】
また、粒子の平均移動ベクトル、仮想仕事量、仮想質量などから反作用を計算することもでき、近傍系の弾性や粘性による損失移動ベクトルから反作用を計算することもできる。
【0070】
次に、図13から図21までを参照しながら、本実施形態のバーチャクレイシステムの構成をより詳細に説明する。
図13は、バーチャクレイシステムのブロック図である。図13のシステムは、図3に示したような情報処理装置を用いて実現され、入力装置23として、2D/3Dポインティングデバイス(PD)41、データグローブ(DG)42、および力入力装置(FI)43を備え、出力装置24として、2D/3Dディスプレイ(DS)44、バイブレータ(VB)45、および力出力装置(FO)46を備える。
【0071】
また、メモリ22上にはソフトウェアにより、2D/3Dポインティングデバイスのモデル(PD′)51、データグローブのモデル(DG′)52、力入力装置のモデル(FI′)53、オペレーションパネルのモデル(OP′)54、ジェスチャシステムのモデル(GS′)55、バーチャクレイのモデル(VC′)56、2D/3Dディスプレイのモデル(DS′)57、バイブレータのモデル(VB′)58、および力出力装置のモデル(FO′)59が生成される。
【0072】
PD′51は、PD41から入力された情報をOP′54、DS′57、およびVC′56に伝え、DG′52は、DG42から入力された情報をOP′54、GS′55、DS′57、およびVC′56に伝え、FI′53は、FI43から入力された情報をDS′57およびVC′56に伝える。また、OP′54は、PD′51、DG′52、およびGS′55から受け取った情報をDS′57およびVC′56に伝え、GS′55は、DG′52から受け取った情報をOP′54およびDS′57に伝える。
【0073】
VC′56は、粒子モデルを含み、操作(オペレーション)、ツール、粒子のパラメータなどの定義を、データや手続きとして持っている。オペレーションとしては、粒子生成(create)、粒子消去(discard )、変形(deformation )、固定(fix )、固定解除(unfix )、グループ化(group )、グループ解除(ungroup )、並進(translate )、回転(rotate)、スケール変更(scale )、皮膜生成(surface generation)などの手続きが定義される。
【0074】
粒子生成とは、新たな粒子を生成する操作を表し、粒子消去とは、既存の粒子を消去する操作を表す。また、変形とは、粒子集合を変形する操作を表し、通常、各粒子の移動を伴う。また、固定とは、移動しない粒子の指定操作を表し、固定解除とは、その指定を解除する操作を表す。
【0075】
また、グループ化とは、2つ以上の粒子集合を1つの集合に統合する操作を表し、グループ解除とは、1つの粒子集合を2つ以上の集合に分割する操作を表す。また、並進、回転、およびスケール変更は、粒子集合のアフィン変換操作を表し、皮膜生成とは、粒子集合の表面に皮膜を生成する操作を表す。
【0076】
また、ツールとしては、グループ化およびグループ解除の際に粒子集合の境界を指定するマーカや、外形を整えるフィニッシャなどの手続きが定義され、粒子のパラメータとしては、核の半径rC 、相互作用場の半径rI 、弾性係数、粘性係数などが定義される。
【0077】
VC′56は、PD′51、DG′52、FI′53、およびOP′54から受け取った情報に基づいて、対応する手続きを実行し、その結果得られた情報をOP′54、DS′57、VB′58、およびFO′59に伝える。
【0078】
また、DS′57は、PD′51、DG′52、FI′53、OP′54、GS′55、およびVC′56から受け取った情報に基づき、DS44に画像を表示させ、VB′58は、VC′56から受け取った情報に基づき、VB45を振動させ、FO′59は、VC′56から受け取った情報に基づき、FO46から力を出力させる。
【0079】
VC′56において、例えば、図14に示すようなバーチャクレイモデルの粒子集合P(tS )は、次のように記述される。
P(tS )={...,pi (tS ),pi+1 (tS ),...} (1)
ここで、pi (tS )は、サンプリング時刻tS におけるi番目の粒子(i=1,2,3,...)の中心位置を表す3次元空間の座標であり、
i (tS )=[xi (tS ),yi (tS ),zi (tS )]T (2)
と書ける。通常、粒子の位置が変化するのは、なんらかの操作が行われたときであるので、tS としては、操作入力があったときの時刻が採用されることになる。また、P(tS )の外形を表す皮膜は、Surface(P(tS ))と記述される。
【0080】
別の粒子集合Q(tS )についても同様に、
Q(tS )={...,qi (tS ),qi+1 (tS ),...} (3)
と記述され、その皮膜はSurface(Q(tS ))と記述される。以下では、特に断らない限り、位置座標やベクトルは3次元の量を表すものとする。
図15は、PD41の例とDS44の画面の例を示している。例えば、ユーザが2Dまたは3DのPD41を操作して、変位ベクトルΔxpd(tS )と変位操作の作用点の位置xpd(tS-1 )の情報を入力する場合を考える。PD41が2Dのマウスなどの場合、z軸方向の変位はクリック回数またはクリック間隔などにより指定される。
【0081】
各操作時刻tS におけるベクトルΔxpd(tS )が入力されると、PD′51は、次式により、それらをモデルの世界の変位ベクトルΔx′pd(tS )に変換する。
Δx′pd(tS )=Gain(Δx′pd(tS ))+Offset (4)
ここで、Gainは適当な関数であり、Offsetは定数である。Gainの関数形は、実験により決められる。xpd(tS-1 )もまた、(4)式と同様にして、仮想世界の座標x′pd(tS-1 )に変換される。
【0082】
次に、VC′56は、Δx′pd(tS )とx′pd(tS-1 )に基づき変形オペレーションを実行して、粒子集合P(tS )を変形する。このとき、PD′51の入力手続きとして、次のような計算が行われる。
Δpi (tS )=Δx′pd(tS ), (5)
∀i,|x′pd(tS-1 )−pi (tS-1 )|<rI
i (tS-1 )∈P(tS-1
ここで、Δpi (tS )は、各粒子の移動ベクトルを表し、pi (tS-1 )は、変位前の時刻tS-1 における粒子集合P(tS-1 )の各粒子の位置を表す。したがって、x′pd(tS-1 )が相互作用場内に入っているような粒子のみが、ベクトルΔx′pd(tS )の作用を受けて移動し、その他の粒子の位置は変化しない。
【0083】
次に、VC′56は、決められた変形アルゴリズムに従って、最初に移動した粒子の移動ベクトルΔpi (tS )の影響を、粒子集合P(tS-1 )全体に反映させ、操作後の粒子集合P(tS )を生成する。そして、皮膜生成オペレーションを実行して、Surface(P(tS ))を生成し、その情報を出力する。
【0084】
DS′57は、Surface(P(tS ))の情報に基づき、そのグラフィックデータを生成し、DS44の画面に表示する。図15では、時刻tS-1 における粒子集合P(tS-1 )の形状が示されているが、粒子集合P(tS )の形状も同様にして表示される。
【0085】
次に、図16は、DG42上に装着されたVB45の例を示している。VB′58は、VC′56から粒子集合P(tS )の情報を受け取り、DG′52からモデルの世界におけるk番目のVB45の位置の座標情報x′dg,k(tS )を受け取る。ここで、k=1,2,3,4,5,6,7,8,9,10であり、k=1,2,3,4,5は左手の各指に装着されたVB45に対応し、k=6,7,8,9,10は右手の各指に装着されたVB45に対応する。そして、それらの情報に基づき、振動データを表す関数Vk (tS )を次のように計算する。
k (tS )=Vk (Σi |pi (tS )−x′dg,k(tS )|), (6)
∀i,|pi (tS )−x′dg,k(tS )|<rI
i (tS )∈P(tS
ここで、|pi (tS )−x′dg,k(tS )|は、pi (tS )とx′dg,k(tS )の距離を表し、Σi は、すべての粒子に関する総和を表す。したがって、Vk (tS )は、各粒子とVB45の仮想的な位置との間の距離の総和をパラメータとする関数として定義され、その関数形は実験により決められる。また、x′dg,k(tS )がいずれかの粒子の相互作用場内に入っているようなVB45のみについて、Vk (tS )が計算され、その他のVB45についてはVk (tS )は0に設定される。
【0086】
こうして計算された振動データVk (tS )は、各VB45に出力されて、それを振動させる。このようなVB′58によれば、仮想世界において、変形操作に伴って移動した粒子に触れたVB45のみが振動し、バーチャクレイに接触したときの感覚を表現することができる。
【0087】
次に、図17は、FI43とFO46を兼ねる力入出力装置の例を示している。FO′59は、VC′56から粒子集合P(tS )の情報を受け取り、FI′53からモデルの世界におけるk番目の座標情報x′f,k (tS )を受け取る。x′f,k (tS )は、力入出力装置47のジンバル48の位置を表し、k=1,2,3,4,5は左手の各指先に対応し、k=6,7,8,9,10は右手の各指に対応する。そして、それらの情報に基づき、力データを表す関数Fk (tS )を次のように計算する。
k (tS )=Fk (Σi |pi (tS )−x′f,k (tS )|), (7)
∀i,|pi (tS )−x′f,k (tS )|<rI
i (tS )∈P(tS
ここで、Fk (tS )は、各粒子とジンバル48の仮想的な位置との間の距離の総和をパラメータとする関数として定義され、その関数形は実験により決められる。また、x′f,k (tS )がいずれかの粒子の相互作用場内に入っているようなジンバル48のみについて、Fk (tS )が計算され、その他のジンバル48についてはFk (tS )は0に設定される。
【0088】
こうして計算された力データFk (tS )は、ジンバル48に出力されて、指先に力を与える。このようなFO′59によれば、仮想世界において、変形操作に伴って移動した粒子に触れた指先のみに反力が返され、バーチャクレイからの力の感覚を表現することができる。
【0089】
次に、図18は、DG42の例を示している。DG42上には、多数の位置センサが組込まれており、k番目のセンサの位置座標は、xdg,k(tS )と記述される。この場合、kの値の上限はセンサの個数に対応して決められる。DG′52は、DG42から各操作時刻におけるxdg,k(tS )の情報を受け取ると、(4)式と同様にして、それらをモデルの世界の座標情報x′dg,k(tS )に変換し、VC′56とDS′57に渡す。
【0090】
次に、VC′56は、x′dg,k(tS-1 )、x′dg,k(tS )に基づき変形オペレーションを実行して、粒子集合P(tS )を変形する。このとき、DG′52の入力手続きとして、次のような計算が行われる。
Δpi (tS )=x′dg,k(tS )−x′dg,k(tS-1 ), (8)
∀i,|x′dg(tS )−pi (tS-1 )|<rI
i (tS-1 )∈P(tS-1
ここでは、x′dg(tS )が相互作用場内に入っているような粒子のみが、移動ベクトルΔpi (tS )に従って移動し、その他の粒子の位置は変化しない。ベクトルΔpi (tS )は、x′dg,k(tS )とx′dg,k(tS-1 )の差分として与えられる。
【0091】
次に、VC′56は、決められた変形アルゴリズムに従って、最初に移動した粒子の移動ベクトルΔpi (tS )の影響を、粒子集合P(tS-1 )全体に反映させ、操作後の粒子集合P(tS )を生成する。そして、皮膜生成オペレーションを実行して、Surface(P(tS ))を生成し、その情報を出力する。
【0092】
DS′57は、Surface(P(tS ))とx′dg,k(tS )の情報に基づき、バーチャクレイと手のグラフィックデータを生成し、DS44の画面に表示する。図18では、時刻tS-1 における粒子集合P(tS-1 )と手の形状が示されているが、時刻tS における粒子集合P(tS )と手の形状も同様にして表示される。
【0093】
次に、図19は、力入出力装置47から力を入力する例を示している。FI′53は、力入出力装置47からk番目の座標情報xf,k (tS-1 )と、入力された力ベクトルfin,k(tS-1 )を受け取る。xf,k (tS )は、図17と同様に、力入出力装置47のジンバル48の位置を表し、fin,k(tS-1 )は、その位置において入力された力を表す。FI′53は、(4)式と同様にして、それらをモデルの世界の量x′f,k (tS-1 )、f′in,k(tS-1 )に変換し、VC′56に渡す。
【0094】
次に、VC′56は、x′f,k (tS-1 )、f′in,k(tS-1 )に基づき変形オペレーションを実行して、粒子集合P(tS )を変形する。このとき、FI′53の入力手続きとして、次のような計算が行われる。
Δpi (tS )=Displacement(f′in,k(tS-1 )),(9)
∀i,|x′f,k (tS-1 )−pi (tS-1 )|<rI
i (tS-1 )∈P(tS-1
ここでは、x′f,k (tS-1 )が相互作用場内に入っているような粒子のみが、移動ベクトルΔpi (tS )に従って移動し、その他の粒子の位置は変化しない。ベクトルΔpi (tS )は、f′in,k(tS-1 )をパラメータとする関数Displacementにより計算される。Displacementの関数形は、実験により決められる。
【0095】
次に、VC′56は、決められた変形アルゴリズムに従って、最初に移動した粒子の移動ベクトルΔpi (tS )の影響を、粒子集合P(tS-1 )全体に反映させ、操作後の粒子集合P(tS )を生成する。そして、皮膜生成オペレーションを実行して、Surface(P(tS ))を生成し、その情報を出力する。DS′57は、Surface(P(tS ))の情報に基づき、バーチャクレイのグラフィックデータを生成し、DS44の画面に表示する。
【0096】
次に、図20は、DS44の画面に表示されたオペレーションパネルを示している。OP′54には、VC′56が持っているオペレーション、ツール、粒子のパラメータに対応する手続きがあらかじめ定義されており、それらがメニュー項目として、DS44の画面に表示される。
【0097】
図20の画面には、オペレーションとして、CREATE、DISCARD、BIGGER、SMALLER、GROUP、UNGROUP、TRANSLATE、ROTATEなどの項目が表示され、ツールとして、MARKERとFINISHERの項目が表示され、パラメータとして、AFFECT、UNAFFECT、ELASTICITY、およびVISCOSITYの項目が表示されている。これらの項目のいずれかを指定することで、対応する動作が行われる。
【0098】
CREATEは、DISCARD、BIGGER、SMALLER、GROUP、UNGROUP、TRANSLATE、ROTATEは、それぞれ、粒子生成、粒子消去、拡大、縮小、グループ化、グループ解除、並進、回転、変形のオペレーションを表す。このうち、TRANSLATEとROTATEについては、それぞれ、並進の向きと回転軸の向きも明示される。
【0099】
また、AFFECTは、粒子の相互作用場の半径rI とその性質の設定に用いられ、UNAFFECTは、粒子の核の半径rC とその性質の設定に用いられる。ELASTICITYとVISCOSITYは、それぞれ、弾性係数と粘性係数の設定に用いられ、“+”は性質を強める指示を表し、“−”は性質を弱める指示を表す。
【0100】
ユーザがPD41またはDG42を用いて項目を指定すると、OP′54は、PD′51からx′pd(tS-1 )を受け取り、DG′52からx′dg,k(tS-1 )を受け取る。そして、x′pd(tS-1 )またはx′dg,k(tS-1 )が、画面上のいずれかの項目に対応する領域内にあるかどうかを判定し、その位置がいずれかの項目に対応していれば、該当項目の処理を行う。このとき、必要に応じて、VC′56に処理を依頼する。
【0101】
例えば、GROUPが指定されると、OP′54は、指定された粒子集合P(tS-1 )、Q(tS-1 )の情報をVC′56から受け取り、次のような演算を行う。
Group(P(tS-1 ),Q(tS-1 ))
={P(tS ),Q(tS )}, (10)
P(tS )=P(tS-1 ),Q(tS )=Q(tS-1
ここで、Groupは、与えられた粒子集合をグループ化する演算子であり、グループ{P(tS ),Q(tS )}の情報は、VC′56に出力される。これ以後、粒子集合P(tS )とQ(tS )は1つの操作対象とみなされる。
【0102】
また、UNGROUPが指定されると、OP′54は、指定されたグループ{P(tS-1 ),Q(tS-1 )}の情報をVC′56から受け取り、次のような演算を行う。
UnGroup({P(tS-1 ),Q(tS-1 )})
=P(tS ),Q(tS ), (11)
P(tS )=P(tS-1 ),Q(tS )=Q(tS-1
ここで、UnGroupは、与えられたグループを解除する演算子であり、グループを解除された粒子集合P(tS ),Q(tS )の情報は、VC′56に出力される。これ以後、粒子集合P(tS )とQ(tS )は別々の操作対象とみなされる。
【0103】
また、TRANSLATEが指定されると、OP′54は、指定された並進ベクトルxC による並進オペレーションの実行を、VC′56に依頼する。これを受けて、VC′56は、次のような演算を行う。
Translate({...,pi (tS-1 ),...},xC
={...,pi (tS ),...} (12)
i (tS )=pi (tS-1 )+xC
ここで、Translateは、各粒子の位置座標pi (tS-1 )にベクトルxC を加算する演算子である。
【0104】
また、ROTATEが指定されると、OP′54は、指定された回転ベクトルφC による回転オペレーションの実行を、VC′56に依頼する。これを受けて、VC′56は、次のような演算を行う。
Rotate({...,pi (tS-1 ),...},φC
={...,pi (tS ),...} (13)
i (tS )=R(φC )pi (tS-1
ここで、Rotateは、各粒子の位置座標pi (tS-1 )に、回転ベクトルφC により記述される回転行列R(φC )を乗算する演算子である。
【0105】
また、BIGGERまたはSMALLERが指定されると、OP′54は、指定された定ベクトルcによるスケール変更オペレーションの実行を、VC′56に依頼する。これを受けて、VC′56は、次のような演算を行う。
Scale({...,pi (tS-1 ),...},c)
={...,pi (tS ),...} (14)
i (tS )=diag(c)pi (tS-1
ここで、Scaleは、各粒子の位置座標pi (tS-1 )に、ベクトルcの各成分を対角要素とする対角行列diag(c)を乗算する演算子である。
【0106】
次に、図21は、オペレーションをパネルなしで指定するためのジェスチャシステムを示している。この機能を利用する場合、ユーザはDG42を装着した手で、決められたジェスチャを行う。このとき、GS′55は、DG′52から各センサの位置の履歴情報{...,x′dg,k(tS-2 ),x′dg,k(tS-1 ),...}を受け取り、その情報が特定のジェスチャパターンと類似しているかどうかを判定する。
【0107】
ジェスチャパターンは、一定時間内における各センサの位置の変化を表す情報であり、並進ジェスチャパターン、回転ジェスチャパターン、拡大/縮小ジェスチャパターンなど、図20に示した各メニュー項目に対応するパターンが用意される。GS′55は、これらのジェスチャパターンをあらかじめデータとして保持しており、ジェスチャパターンと入力された履歴情報の類似度を計算して、それらを比較する。
【0108】
類似度が一定値以上であれば、そのジェスチャパターンに対応する項目が指定されたものとみなし、その項目の処理をOP′54に依頼する。また、そのジェスチャの表示をDS′57に依頼する。これを受けて、DS′57は、対応するジェスチャの画像をDS44の画面に表示する。
【0109】
このように、本実施形態のバーチャクレイシステムによれば、2Dのポインティングデバイスおよびディスプレイの操作性によって制限を受けている3D CADや3Dグラフィクスなどの作業方法を、より直観的なものに進化させることができる。現在、入力装置として、データグローブ、3Dマウス、力入力装置などが普及しつつあり、出力装置として、ヘッドマウントディスプレイが一般化されつつあるので、バーチャクレイシステムにおいて、これらを利用することは容易である。
【0110】
また、粘土のような操作感を実現し、様々な形を直観的に生成する機能を、従来の3D CADや3Dグラフィクスのプラグインツールとして提供することもできる。その結果、実世界の3D物体のデザインや、あるいは仮想世界における建造物や造形品の設計製作にあたり、時間効率を高めることができる。
【0111】
次に、図22から図78までを参照しながら、バーチャクレイシステムにおける各処理と、それに伴うバーチャクレイの変化について、さらに詳細に説明する。以下では、システムのソフトウェアを、オブジェクト指向プログラミングにより構築するものとし、図13のPD′51、DG′52、FI′53、OP′54、GS′55、VC′56、DS′57、VB′58、およびFO′59のそれぞれに対応するオブジェクトを生成する。
【0112】
図22は、このようなバーチャクレイシステムにおける一般的な処理のフローチャートである。システムは、起動されると、まず、メモリ22上において上述の各オブジェクトを起動し、それらをメッセージ待ちの状態にする(ステップS1)。そして、オブジェクトがメッセージを受信したかどうかを判定する(ステップS2)。
【0113】
オブジェクトがメッセージを受信した場合は、そのメッセージに関する処理を行い(ステップS3)、オブジェクトの内部状態を更新して(ステップS4)、システム終了の指示が入力されたかどうかを判定する(ステップS5)。その指示がなければ、それが入力されるまでステップS2以降の処理を行う。また、ステップS2において、どのオブジェクトもメッセージを受信していない場合は、ステップS5の処理を行う。
【0114】
図23は、オブジェクト間におけるメッセージの送受信処理のフローチャートである。送信側のオブジェクトは、メソッド実行を依頼するメッセージを配送した後(ステップS11)、待機状態となる(ステップS12)。
【0115】
また、受信側のオブジェクトは、メッセージを受信すると(ステップS21)、指定されたメソッドを実行し(ステップS22)、その結果に基づいてデータなどの内部状態を更新する(ステップS23)。そして、必要な情報を、送信側のオブジェクトに返送したり、新たなメッセージを他のオブジェクトに配送したりして(ステップS24)、待機状態となる。
【0116】
送信側オブジェクトと受信側オブジェクトの組合わせを、[送信側オブジェクト>>受信側オブジェクト]のように表すと、バーチャクレイシステムにおける主な組合わせは次のようになる。
[PD′>>VC′],[PD′>>OP′],[PD′>>DS′],
[DG′>>VC′],[DG′>>OP′],[DG′>>GS′],
[DG′>>DS′],
[FI′>>VC′],[FI′>>DS′],
[OP′>>VC′],[OP′>>DS′],
[GS′>>OP′],[GS′>>DS′],
[VC′>>DS′],[VC′>>VB′],[VC′>>FO′]
もちろん、必要に応じて、上記組合わせ以外のオブジェクト間でメッセージを配送することも可能である。これらのオブジェクトと、図13のPD41、DG42、FI43、DS44、VB45、およびFO46は、以下のようにして動作する。
【0117】
図24は、PD41の動作フローチャートである。PD41は、ユーザに操作されることで動作を開始し(ステップS31)、操作量を信号に変換する(ステップS32)。そして、その信号をPD′51に出力して(ステップS33)、次の操作待ちの状態になる(ステップS34)。
【0118】
図25は、DG42の動作フローチャートである。DG42は、ユーザの手に装着されて操作されることで動作を開始し(ステップS41)、各センサの位置の変化を信号に変換する(ステップS42)。そして、その信号をDG′52に出力して(ステップS43)、次の操作待ちの状態になる(ステップS44)。
【0119】
図26は、FI43の動作フローチャートである。FI43は、ユーザの指先に装着されて操作されることで動作を開始し(ステップS51)、指先の位置の変化を信号に変換する(ステップS52)。そして、その信号をFI′53に出力して(ステップS53)、次の操作待ちの状態になる(ステップS54)。
【0120】
図27は、PD′51の動作フローチャートである。PD′51は、PD41からの信号を受け取って動作を開始し(ステップS61)、信号の値からPD′51の位置(ポイント)の変移量を確定する(ステップS62)。PD′51の位置と変移量は、例えば、図15の位置情報x′pdと変位ベクトルΔx′pdに対応する。
【0121】
次に、PD′51の位置情報を更新し(ステップS63)、メッセージの宛先を確定する(ステップS64)。宛先がVC′56の場合は、位置情報と変移量をVC′56に対するメッセージとして出力し(ステップS65)、PD41からの信号待ちの状態になる(ステップS66)。また、宛先がOP′54の場合は、位置情報と変移量をOP′54に対するメッセージとして出力し(ステップS67)、信号待ちの状態になる(ステップS66)。
【0122】
図28は、DG′52の動作フローチャートである。DG′52は、DG42からの信号を受け取って動作を開始し(ステップS71)、信号の値からDG′52のセンサの位置の変移量を確定する(ステップS72)。DG′52の位置と変移量は、例えば、図18の位置情報x′dg,kと、連続する2つの時刻間のx′dg,kの差に対応する。
【0123】
次に、DG′52の位置情報を更新し(ステップS73)、メッセージの宛先を確定する(ステップS74)。宛先がVC′56の場合は、位置情報と変移量をVC′56に対するメッセージとして出力し(ステップS75)、DG42からの信号待ちの状態になる(ステップS76)。また、宛先がOP′54の場合は、位置情報と変移量をOP′54に対するメッセージとして出力し(ステップS77)、信号待ちの状態になる(ステップS76)。
【0124】
図29は、FI′53の動作フローチャートである。FI′53は、FI43からの信号を受け取って動作を開始し(ステップS81)、信号の値からFI′53の位置と入力された力を確定する(ステップS82)。FI′53の位置と力は、例えば、図19の位置情報x′f,k と力ベクトルf′in,kに対応する。
【0125】
次に、FI′53の位置情報を更新し(ステップS83)、メッセージの宛先を確定する(ステップS84)。宛先がVC′56の場合は、位置情報と力情報をVC′56に対するメッセージとして出力し(ステップS85)、FI43からの信号待ちの状態になる(ステップS86)。また、宛先がOP′54の場合は、位置情報と力情報をOP′54に対するメッセージとして出力し(ステップS87)、信号待ちの状態になる(ステップS86)。
【0126】
図30は、OP′54の動作フローチャートである。OP′54は、DS44の画面に表示されたオペレーションパネル(OP)から入力されるイベントを受け付け(ステップS91)、それに基づき操作を確定する(ステップS92)。そして、OP′54からVC′56に対する操作をメッセージとしてVC′56に出力し(ステップS93)、オペレーションパネルからのイベント待ちの状態になる(ステップS94)。
【0127】
図31は、VC′56の動作フローチャートである。VC′56は、PD′51、DG′52、FI′53、またはOP′54からのメッセージを受け取って動作を開始し(ステップS101)、バーチャクレイに対する変形操作の作用点および移動量を確定する(ステップS102)。次に、変形操作を起動し(ステップS103)、作用点が相互作用場内に存在する粒子の移動処理を行い(ステップS104)、反作用を確定する(ステップS105)。
【0128】
次に、各粒子の位置を更新し(ステップS106)、最外殻粒子を更新する(ステップS107)。そして、バーチャクレイの表面情報(パッチ情報)を更新し(ステップS108)、その表面情報をDS′57に対するメッセージとして出力する(ステップS109)。また、反作用をVB′58またはFO′59に対するメッセージとして出力し(ステップS110)、次のメッセージ待ちの状態となる(ステップS111)。
【0129】
図32および図33は、図31のステップS102、S103、S104、S105、およびS106における処理のフローチャートである。処理が開始されると、VC′56は、まず、バーチャクレイの粒子集合の中で、PD′51、DG′52、FI′53、またはOP′54により直接操作される粒子の部分集合P(0) を特定し、P(0) に含まれる各粒子の位置をpi (0) とする(図32、ステップS121)。例えば、図34に示すような粒子集合において、移動作用61が入力された場合、粒子62が直接操作される粒子となる。
【0130】
次に、制御変数kを1とおき(ステップS122)、集合P(k-1) 内の各粒子に対する移動作用{Δpi (k-1) }から、各粒子の暫定的な位置p′i を次式により計算する(ステップS123)。
p′i =pi (k-1) +Δpi (k-1) (15)
次に、集合P(k-1) 内の各粒子の暫定的な位置p′i における相互作用場間の相互作用と位置の調整規則を用いて調整を行い、調整後の位置p″i を決定する(ステップS124)。
Figure 0003904671
ここで、(16)式の右辺は位置p′i を調整する演算を表し、n(k−1)は集合P(k-1) 内の粒子の個数を表す。調整規則としては、例えば、相互作用場間で交差が生じないという条件が用いられる。暫定的な移動の結果、2つ以上の粒子の相互作用場が交差している場合は、いずれか1つの粒子にその場所を占有させ、他の粒子の位置を変更する。
【0131】
例えば、交差している粒子の識別番号を比較して、その番号がより小さいもの(順位がより高いもの)にその場所を占有させることにする。図34の場合は、集合P(0) に含まれる粒子の数は1個だけなので、調整の必要はなく、p″i =p′i となる。
【0132】
次に、集合P(k-1) の各粒子の移動ベクトルvi (k-1) を次式により計算する(ステップS125)。
i (k-1) =p″i −pi (k-1) (17)
そして、集合P(k-1) の各粒子に接触している他の粒子と、集合P(k-1) の各粒子がベクトルvi (k-1) により移動することで新たに接触する他の粒子とから成る集合P(k) を特定する(ステップS126)。図34の場合、粒子62が移動することで、図35に示されるようにして、その影響が段階的に他の粒子に伝播する。
【0133】
図35において、細線の円は移動前の粒子の位置を表し、太線の円は移動後の粒子の位置を表す。ここで、粒子62が属する集合P(0) を粒子層L1とすると、粒子62に接触している2個の粒子が、集合P(1) に対応する粒子層L2に含まれることになる。以下同様に、粒子層Lk(k=1,2,3,4,5)の粒子は集合P(k-1) に含まれる。
【0134】
次に、集合P(k) の各粒子の相互作用場φj (k) と、それに接触する集合P(k-1) の粒子の相互作用場φi (k-1) および移動ベクトルvi (k-1) とから、集合P(k) の各粒子に対する移動作用Δpj (k) と、その粒子からの反作用Δbj (k-1) を、次式により計算する(図33、ステップS127)。
Figure 0003904671
ここで、PROJji(vi (k-1) )は、pi (k-1) とpj (k) を結ぶ直線上にベクトルvi (k-1) を射影する関数であり、αjiとβjiは、相互作用場φj (k) 、φi (k-1) により決められる係数である。ただし、βjiの絶対値は1より十分に小さいものとする。
【0135】
次に、集合P(k) の各粒子から集合P(k-1) の各粒子への反作用{Δb′i (k-1) }を求めて、次式により位置p″i の変動を計算する。
p′′′i =p″i +Δb′i (k-1) (20)
Δb′i (k-1) は、集合P(k) の各粒子からの反作用Δbj (k-1) を、pi (k-1) とpj (k) を結ぶ直線上に射影することで求められる。
【0136】
次に、集合P(k-1) 内の各粒子の暫定的な位置p′′′i における相互作用場間の相互作用と、上述の調整規則を用いて調整を行い、調整後の位置p′′′′i を決定する(ステップS129)。
Figure 0003904671
そして、p′′′′i を最終的な位置pi (k-1) として確定する(ステップS130)。次に、すべての粒子の位置が確定したかどうかを調べ(ステップS131)、位置が確定していない粒子があれば、k=k+1とおいて(ステップS132)、ステップS123以降の処理を繰り返す。そして、すべての粒子の位置が確定すると、それらの情報により粒子位置を更新し、この処理を終了する。
【0137】
例えば、暫定的な移動により、図36に示すように、粒子層L4の2つの粒子63、64が交差したとする。このとき、VC′56は交差を解消するために、図37に示すように、これらの粒子63、64の識別子k、mを比較して、粒子63の位置を変更することに決定する。
【0138】
粒子63の位置の変更方法は色々考えられるが、ここでは、周辺の粒子65、66、64、67から遠ざかる向きのベクトルをそれぞれ求め、それらの合成ベクトル68により、変更位置を決定する。こうして、図38に示すように、各粒子の位置が確定される。
図39は、図31のステップS107における最外殻粒子の更新処理のフローチャートである。ここでは、シンプレックス法を用いて、最外殻粒子を決定する。処理が開始されると、VC′56は、まず、図40に示すように、粒子集合全体を取り囲むシンプレックス(単体)71を計算する(ステップS141)。そして、各粒子の近傍を基本にして、2つの粒子間に相互作用がある場合に、互いの影響が等しくなるような平面を計算する(ステップS142)。
【0139】
次に、決定された平面を境界として、各粒子を囲む半空間を計算する(ステップS143)。図40の粒子集合においては、粒子aを囲む半空間は、粒子aと粒子bの境界a&bと、粒子aと粒子cの境界a&cと、粒子aと粒子dの境界a&dの3つの平面により区切られる。
【0140】
次に、各粒子を囲む凸包を決定する(ステップS144)。凸包とは、空間内の点の任意の部分集合を含む最小の凸集合であり、凸集合とは、空間内の点の部分集合であって、その任意の2点を結ぶ線分もまたその部分集合に含まれるという性質を持つ。したがって、粒子を囲む凸包とは、言い換えれば、粒子の近傍を含む最小の凸集合のことである。
【0141】
図41において、粒子aを囲む凸包72は、平面a&b、a&c、a&d、およびシンプレックス71の表面により決定される。同様にして、他の粒子を囲む凸包も、図42に示すように決定される。
【0142】
次に、各粒子が最外殻粒子かどうかを判定する(ステップS145)。ここでは、粒子集合を取り囲むシンプレックスが、ある粒子の凸包の一部であれば、その粒子を最外殻粒子とする。そして、最外殻粒子の集合を、図31のステップS108の処理に出力して(ステップS146)、処理を終了する。図42の場合は、シンプレックス71を含む凸包の中の粒子a、b、e、f、cが、最外殻粒子となる。
【0143】
図43は、FO′59の動作フローチャートである。FO′59は、VC′56からのメッセージを受け取って動作を開始し(ステップS151)、作用点における反作用ベクトルを確定する(ステップS152)。
【0144】
次に、反作用ベクトルを力情報に変換する(ステップS153)。この力情報は、例えば、図17の力データFk に対応する。そして、力情報をFO46に対するメッセージとして出力し(ステップS154)、VC′56からのメッセージ待ちの状態になる(ステップS155)。
【0145】
図44は、VB′58の動作フローチャートである。VB′58は、VC′56からのメッセージを受け取って動作を開始し(ステップS161)、作用点における反作用ベクトルを振動情報に変換する(ステップS162)。この振動情報は、例えば、図16の振動データVk に対応する。そして、振動情報をVB45に対するメッセージとして出力し(ステップS163)、VC′56からのメッセージ待ちの状態になる(ステップS164)。
【0146】
図45は、DS′57の動作フローチャートである。DS′57は、VC′56からのメッセージを受け取って動作を開始し(ステップS171)、バーチャクレイの表面情報を確定し(ステップS172)、表面のレンダリング(rendering )を行って、バーチャクレイの画像データを生成する(ステップS173)。この表面情報は、例えば、図15のSurfaceに対応する。そして、画像データをDS44に対するメッセージ(画像信号)として出力し(ステップS174)、VC′56からのメッセージ待ちの状態になる(ステップS175)。
【0147】
DS′57は、VC′56以外にも、PD′51、DG′52、FI′53、OP′54、およびGS′55からメッセージを受け取り、それに対応する画像データを生成して、DS44に出力する。
【0148】
図46は、FO46の動作フローチャートである。FO46は、FO′59からのメッセージを受け取って動作を開始し(ステップS181)、力情報を確定する(ステップS182)。そして、力情報を提示し(ステップS183)、FO′59からのメッセージ待ちの状態になる(ステップS184)。
【0149】
図47は、VB45の動作フローチャートである。VB45は、VB′58からのメッセージを受け取って動作を開始し(ステップS191)、振動情報を確定する(ステップS192)。そして、振動情報を提示し(ステップS193)、VB′58からのメッセージ待ちの状態になる(ステップS194)。
【0150】
図48は、DS44の動作フローチャートである。DS44は、DS′57からのメッセージを受け取って動作を開始し(ステップS201)、画像信号を確定する(ステップS202)。そして、画像を表示し(ステップS203)、DS′57からのメッセージ待ちの状態になる(ステップS204)。
【0151】
図49は、バーチャクレイシステムによるシンプルな反作用の出力処理の例を示すフローチャートである。PD′51またはDG′52からのメッセージにより、移動作用がVC′56の粒子に働くと(ステップS211)、VC′56は、その移動作用と近傍の相互作用から、移動ベクトルvを計算する(ステップS212)。
【0152】
次に、図50に示すように、移動ベクトルvの向きを反転した反転ベクトル−vを計算し(ステップS213)、反転ベクトル−vと移動作用の作用点の情報を、反作用メッセージとしてVB′58またはFO′59に配送する(ステップS214)。このメッセージを受け取ったVB′58またはFO′59は、その情報をもとにVB45またはFO46を駆動し(ステップS215)、処理を終了する。
【0153】
図51から図55までは、上述のような処理に基づくバーチャクレイの変形操作を示している。図51は、DS44に表示されたバーチャクレイの外形を示しており、ユーザは、PD41、DG42、またはFI43を操作することで、このバーチャクレイを変形することができる。
【0154】
バーチャクレイは、PD41、DG42、およびFI43からの作用を直接受けるだけでなく、DS44に表示されたオペレーションパネル上の操作に基づく作用も受ける。これらの入力デバイスからは、変形操作の作用点と移動量の情報が入力される。
【0155】
ユーザによるPD41、DG42、FI43の操作は、それぞれ、図24、25、26の動作に従って信号に変換され、それらのデバイスの制御オブジェクトPD′51、DG′52、FI′53に送信される。
【0156】
各オブジェクトPD′51、DG′52、FI′53は、それぞれ、図27、28、29の処理に従って、入力デバイスからの信号をVC′56への操作メッセージに変換する。これらのオブジェクトは、入力デバイスの状態を判定したり、操作条件を判定したりすることで、変形操作のメッセージを生成し、VC′56に送信する。また、必要に応じて、OP′54への操作メッセージも送信される。
【0157】
OP′54は、図30の処理に従って、入力デバイスの操作により発生するイベントを確定し、VC′56に対するメッセージ(変形操作の文脈では、変形メッセージ)を生成して送信する。
【0158】
図52は、図51のバーチャクレイを構成する粒子を示している。このバーチャクレイは、変形前の表面情報および変形作用による移動の前の仮想粒子の情報を持つ。以下、変形操作を図31のフローチャートに従って説明する。
【0159】
変形操作の第1段階として、VC′56は、各オブジェクトPD′51、DG′52、FI′53、OP′54からのメッセージを受け取り(ステップS101)、メッセージの内容を処理して、移動操作の作用点と移動量を確定し(ステップS102)、変形操作を起動して、変形作用ベクトル81を生成する(ステップS103)。
【0160】
次に、VC′56は、第2段階として、図53に示すような粒子の移動処理を行い(ステップS104)、反作用を確定し(ステップS105)、各粒子の位置を更新する(ステップS106)。図53には、移動前の粒子の位置、移動後の粒子の位置、および反作用ベクトル82が示されている。
【0161】
次に、VC′56は、第3段階として、図54に示すように、最外殻粒子を更新し(ステップS107)、バーチャクレイの表面情報を更新する(ステップS108)。この段階で、VC′56は、表面情報をメッセージとしてDS′57へ送信し(ステップS109)、反作用をメッセージとしてVB′58またはFO′59へ送信する(ステップS110)。
【0162】
VC′56から反作用のメッセージを受け取ったFO′59、VB′58は、それぞれ、図43、44の処理に従ってメッセージを処理し、FO46、VB45に対して動作メッセージを送信する。また、VC′56から表面情報のメッセージを受け取ったDS′57は、図45の処理に従って、バーチャクレイの表面のレンダリングを行い、画像信号を生成し、それをメッセージとしてDS44に送信する。
【0163】
各出力デバイスFO46、VB45、DS44は、それぞれ、対応する制御オブジェクトFO′59、VB′58、DS′57からメッセージを受け取る。FO46は、図46動作に従って、力情報をユーザに提示し、VB45は、図47の動作に従って、振動情報をユーザに提示し、DS44は、図48の動作に従って、バーチャクレイの画像を表示する。こうして、DS44の画面には、図55に示すような変形後のバーチャクレイの表面が表示される。
【0164】
バーチャクレイの皮膜は、必ずしも、図55に示されるような滑らかな曲面に限られず、移動後の粒子の位置に基づく任意の形状をとることができる。例えば、図56に示されるように、最外殻粒子の表面に沿った曲面でもよく、図57に示されるように、最外殻粒子の中心を頂点とする多面体でもよい。
【0165】
次に、図58から図68までは、図12に示したように、バーチャクレイを仮想的にちぎる場合の変形操作の例を示している。時刻ts-1 において、バーチャクレイの各粒子が図58に示すように配置されているとすると、VC′56は、まず、図59に示すように、直接「ちぎる」操作の対象となる粒子層P0 を決定し、その層の各粒子に同じ移動ベクトル91を割り当てる。そして、移動の単位となる粒子層P1 、P2 、P3 を決定する。ここでは、層P0 から最も離れた層P3 の粒子92の位置は固定しておく。
【0166】
次に、VC′56は、図60に示すように、層P0 の粒子を移動ベクトル91により暫定的に移動させる。ここでは、すべての粒子が平行に移動し、位置を補正する必要がないので、暫定的な移動先がそのまま次の位置として確定する。次に、図61に示すように、次の層P1 の移動ベクトル93、94を決定する。これらのベクトルの向きは、前の層のベクトル91に依存して決まる。
【0167】
VC′56は、このようにして、順次、各層で移動ベクトルを計算し、暫定的な粒子の位置をすべて決定する。粒子同士が重なる場合は位置を補正するが、この例では補正は起こらない。その結果、各粒子の位置は、図62のようになる。
【0168】
次に、VC′56は、図63に示すように、層P3 の粒子92が固定されていることによる反作用を合成し、関連する粒子を移動させる。この反作用は、粒子間の粘性などの相互作用により決定される。そして、各粒子の位置の調整を行い、最外殻粒子を決定して、皮膜を計算する。その結果、時刻ts におけるバーチャクレイの形状は、図64のようになる。
【0169】
時刻ts において、さらに「ちぎる」操作が続けられている場合は、VC′56は、図65に示すように、移動ベクトル95を計算し、図66に示すように、粒子層を計算して、暫定的な移動を行う。そして、反作用を計算し、図67に示すように、時刻ts+1 における各粒子の位置を決定する。
【0170】
そして、VC′56は、最外殻粒子を決定し、皮膜を計算する。このとき、一定距離以上離れた粒子は、互いに異なる粒子集合として扱い、それぞれ、異なる皮膜で覆うことにする。その結果、時刻ts+1 におけるバーチャクレイの形状は、図68に示すように、2つの皮膜96、97で表現される。こうして、図58のバーチャクレイが2つに分割される。
【0171】
また、図69から図75までは、図10に示したように、バーチャクレイを仮想的にくっつける場合の変形操作の例を示している。時刻ts-1 において、バーチャクレイの各粒子が図69に示すように配置されているとすると、VC′56は、まず、図70に示すように、直接「くっつける」操作の対象となる粒子層P0 を決定し、その層の各粒子に移動ベクトル101、102を割り当てる。そして、移動の単位となる他の粒子層P1 を決定する。
【0172】
次に、VC′56は、図71に示すように、層P0 の粒子を移動ベクトル101、102により暫定的に移動させ、図72に示すように、粒子同士の重なりがなくなるように位置を補正する。
【0173】
次に、図73に示すように、次の層P1 の移動ベクトル103、104、105、106を決定する。これらのベクトルの向きは、前の層のベクトル101、102に依存して決まる。そして、図74に示すように、移動ベクトル103、104、105、106により、層P1 の粒子を暫定的に移動させる。ここでは、粒子同士が重ならないので、補正は行われない。
【0174】
次に、VC′56は、最外殻粒子を決定して、皮膜を計算する。その結果、時刻ts におけるバーチャクレイの形状は、図75のようになり、図69の2つのバーチャクレイが接合される。
【0175】
また、図76から図78までは、バーチャクレイを平行移動させる場合の操作の例を示している。時刻ts-1 において、バーチャクレイの各粒子が図76に示すように配置されているとすると、VC′56は、まず、図77に示すように、すべての粒子に同じ移動ベクトル111を割り当てる。
【0176】
次に、VC′56は、各粒子を移動ベクトル111により暫定的に移動させる。平行移動の場合は、位置の補正などは必要ないので、暫定的な移動先がそのまま次の位置として確定する。そして、最外殻粒子を決定して、皮膜を計算する。その結果、時刻ts におけるバーチャクレイは、図78のようになる。
【0177】
以上説明した実施形態において、図13のPD′51、DG′52、FI′53、OP′54、GS′55、VC′56、DS′57、VB′58、およびFO′59を、オブジェクト指向プログラミングにより実現するものとしたが、これに限らず、任意のプログラミング方法を用いることができる。また、入出力装置は、図13のPD41、DG42、FI43、DS44、VB45、およびFO46に限られることはなく、キーボードやプリンタなど、他の任意の装置を用いることができる。
【0178】
さらに、ユーザ端末と通信ネットワークにより結合されたホストコンピュータ上にバーチャクレイシステムを構築し、ユーザ端末からのアクセスにより、それを起動することもできる。この場合、必要な入出力装置はユーザ端末に備えられ、ネットワークを介して、入出力情報がやり取りされる。
【0179】
【発明の効果】
本発明によれば、ディスプレイに表示された物体の形状を簡単な操作で変更することができ、形状のシミュレーションが効率よく行われる。また、物体を構成する粒子に対して様々な性質を定義することができ、多様なシミュレーションが可能になる。
【図面の簡単な説明】
【図1】本発明における仮想粘土システムの原理図である。
【図2】バーチャクレイシステムを示す図である。
【図3】情報処理装置の構成図である。
【図4】仮想粒子の構造を示す図である。
【図5】仮想粒子の移動を示す図である。
【図6】移動操作に対する弾性を示す図である。
【図7】移動操作に対する粘性を示す図である。
【図8】粒子の引き剥がしによる移動を示す図である。
【図9】移動量の伝達率を示す図である。
【図10】第1の接合操作を示す図である。
【図11】第2の接合操作を示す図である。
【図12】分割操作を示す図である。
【図13】バーチャクレイシステムのブロック図である。
【図14】バーチャクレイモデルを示す図である。
【図15】ポインティングデバイスとディスプレイを示す図である。
【図16】バイブレータを示す図である。
【図17】力入出力装置による出力を示す図である。
【図18】データグローブを示す図である。
【図19】力入出力装置による入力を示す図である。
【図20】オペレーションパネルを示す図である。
【図21】ジェスチャシステムを示す図である。
【図22】バーチャクレイシステムの処理のフローチャートである。
【図23】メッセージ送受信処理のフローチャートである。
【図24】ポインティングデバイスの動作フローチャートである。
【図25】データグローブの動作フローチャートである。
【図26】力入力装置の動作フローチャートである。
【図27】オブジェクトPD′の動作フローチャートである。
【図28】オブジェクトDG′の動作フローチャートである。
【図29】オブジェクトFI′の動作フローチャートである。
【図30】オブジェクトOP′の動作フローチャートである。
【図31】オブジェクトVC′の動作フローチャートである。
【図32】移動処理のフローチャート(その1)である。
【図33】移動処理のフローチャート(その2)である。
【図34】粒子への移動作用を示す図である。
【図35】他の粒子への移動の伝播を示す図である。
【図36】相互作用場の交差を示す図である。
【図37】粒子層内での交差の解消を示す図である。
【図38】確定された位置を示す図である。
【図39】最外殻粒子の更新処理のフローチャートである。
【図40】粒子間の境界を示す図である。
【図41】半空間と凸包を示す図である。
【図42】凸包と最外殻粒子を示す図である。
【図43】オブジェクトFO′の動作フローチャートである。
【図44】オブジェクトVB′の動作フローチャートである。
【図45】オブジェクトDS′の動作フローチャートである。
【図46】力出力装置の動作フローチャートである。
【図47】バイブレータの動作フローチャートである。
【図48】ディスプレイの動作フローチャートである。
【図49】反作用の出力処理のフローチャートである。
【図50】反作用を示す図である。
【図51】変形前のバーチャクレイを示す図である。
【図52】バーチャクレイの粒子を示す図である。
【図53】粒子の移動を示す図である。
【図54】最外殻粒子を示す図である。
【図55】変形後のバーチャクレイを示す図である。
【図56】粒子の表面に沿った皮膜を示す図である。
【図57】多面体の皮膜を示す図である。
【図58】「ちぎる」の第1段階を示す図である。
【図59】「ちぎる」の第2段階を示す図である。
【図60】「ちぎる」の第3段階を示す図である。
【図61】「ちぎる」の第4段階を示す図である。
【図62】「ちぎる」の第5段階を示す図である。
【図63】「ちぎる」の第6段階を示す図である。
【図64】「ちぎる」の第7段階を示す図である。
【図65】「ちぎる」の第8段階を示す図である。
【図66】「ちぎる」の第9段階を示す図である。
【図67】「ちぎる」の第10段階を示す図である。
【図68】「ちぎる」の第11段階を示す図である。
【図69】「くっつける」の第1段階を示す図である。
【図70】「くっつける」の第2段階を示す図である。
【図71】「くっつける」の第3段階を示す図である。
【図72】「くっつける」の第4段階を示す図である。
【図73】「くっつける」の第5段階を示す図である。
【図74】「くっつける」の第6段階を示す図である。
【図75】「くっつける」の第7段階を示す図である。
【図76】平行移動の第1段階を示す図である。
【図77】平行移動の第2段階を示す図である。
【図78】平行移動の第3段階を示す図である。
【符号の説明】
1 入力手段
2 変形手段
3 記憶手段
4 形状生成手段
5 出力手段
11 仮想空間
12 感覚情報出力装置
13 制御情報入力装置
14 データ出力装置
15 バーチャクレイ
21 CPU
22 メモリ
23 入力装置
24 出力装置
25 外部記憶装置
26 媒体駆動装置
27 ネットワーク接続装置
28 バス
29 可搬記録媒体
31 近傍
32 核
41 ポインティングデバイス
42 データグローブ
43 力入力装置
44 ディスプレイ
45 バイブレータ
46 力出力装置
47 力入出力装置
51 ポインティングデバイスのモデル
52 データグローブのモデル
53 力入力装置のモデル
54 オペレーションパネルのモデル
55 ジェスチャシステムのモデル
56 バーチャクレイのモデル
57 ディスプレイのモデル
58 バイブレータのモデル
59 力出力装置のモデル
61 移動作用ベクトル
62、63、64、65、66、67、92 仮想粒子
68、91、93、94、95、101、102、103、104、105、106、111 移動ベクトル
71 シンプレックス
72 凸包
81 変形作用ベクトル
82 反作用ベクトル
96、97 皮膜

Claims (17)

  1. 仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データと、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データとを記憶する記憶手段と、
    前記粒子の集合の形状を表す形状データを生成する形状生成手段と、
    前記粒子の集合に対するユーザからの指示情報を入力する入力手段と、
    前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算する相互作用計算手段と、
    前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記形状を動的に変化させる変形手段と、
    前記形状データに基づく形状情報を出力する出力手段とを備えることを特徴とする、
    コンピュータを用いた仮想粘土システム。
  2. 前記相互作用計算手段は、1つの粒子の相互作用場と前記指示情報に基づく外因作用との間における外因相互作用をさらに計算することを特徴とする請求項1記載の仮想粘土システム。
  3. 前記記憶手段は、前記粒子の相互作用場として、球体および立方体のうちいずれか一方の空間を表すデータを記憶することを特徴とする請求項1または2記載の仮想粘土システム。
  4. 前記相互作用計算手段は、仮想的な物理法則に基づく近似計算を用いて前記粒子間相互作用および外因相互作用を計算することを特徴とする請求項2記載の仮想粘土システム。
  5. 前記相互作用計算手段は、前記粒子の仮想的な弾性および粘性のうち少なくとも一方に基づいて前記粒子間相互作用を計算し、前記外因作用に対する仮想的な反作用に基づいて前記外因相互作用を計算することを特徴とする請求項4記載の仮想粘土システム。
  6. 前記形状生成手段は、前記粒子の集合の表面を表す膜データを含む前記形状データを生成することを特徴とする請求項1乃至5のいずれかに記載の仮想粘土システム。
  7. 前記入力手段は、前記指示情報として、前記粒子の生成、前記粒子の消去、前記粒子の集合の変形、前記粒子の位置の固定、固定解除、前記粒子のグループ化、グループ解除、前記粒子の集合の並進、前記粒子の集合の回転、前記粒子の集合のスケール変更、および前記粒子の集合の表面の整形のうち、少なくとも1つ以上の操作の指示を入力することを特徴とする請求項1乃至6のいずれかに記載の仮想粘土システム。
  8. 前記出力手段は、前記形状情報を視覚的に表示する2次元表示手段および3次元表示手段のうちのいずれかを含むことを特徴とする請求項1乃至7のいずれかに記載の仮想粘土システム。
  9. 前記粒子の集合が表す仮想的な物体の触覚情報を出力する触覚出力手段をさらに備えることを特徴とする請求項1乃至8のいずれかに記載の仮想粘土システム。
  10. 前記粒子の集合が表す仮想的な物体上で発生した力の情報を伝達する力出力手段をさらに備えることを特徴とする請求項1乃至9のいずれかに記載の仮想粘土システム。
  11. 前記入力手段は、2次元ポインティング手段、3次元ポインティング手段、前記ユーザの手の位置を検出する位置検出手段、力入力手段、画面上に表示されたオペレーションパネル手段、および前記ユーザのジェスチャを検出するジェスチャ検出手段のうちのいずれかであることを特徴とする請求項1乃至10のいずれかに記載の仮想粘土システム。
  12. 前記位置検出手段およびジェスチャ検出手段は、複数の位置センサ手段を含むグローブ型デバイスであることを特徴とする請求項11記載の仮想粘土システム。
  13. 仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データと、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データとを記憶する記憶手段と、
    前記粒子の集合の形状を表す形状データを生成する形状生成手段と、
    前記粒子の集合に対するユーザからの指示情報を入力する入力手段と、
    前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算する相互作用計算手段と、
    前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記形状を動的に変化させる変形手段と、
    前記粒子の集合が表す仮想的な物体の触覚情報および該物体上で発生した力の情報のうち、少なくとも一方の情報を出力する出力手段とを備えることを特徴とする、
    コンピュータを用いた仮想粘土システム。
  14. 記憶手段に記憶された仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データとを用いて、該粒子の集合の形状を表す形状データを生成する機能と、
    前記粒子の集合に対するユーザからの指示情報を入力する機能と、
    前記記憶手段に記憶された、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データを用いて、前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算する機能と、
    前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記粒子の集合の形状を動的に変化させる機能と、
    前記形状データに基づく形状情報を出力する機能と
    をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  15. 記憶手段に記憶された仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データとを用いて、該粒子の集合の形状を表す形状データを生成する機能と、
    前記粒子の集合に対するユーザからの指示情報を入力する機能と、
    前記記憶手段に記憶された、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データを用いて、前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算する機能と、
    前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記粒子の集合の形状を動的に変化させる機能と、
    前記粒子の集合が表す仮想的な物体の触覚情報および該物体上で発生した力の情報のうち、少なくとも一方の情報を出力する機能と
    をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  16. 形状生成手段が、記憶手段に記憶された仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データとを用いて、該粒子の集合の形状を表す形状データを生成し、
    入力手段が、前記粒子の集合に対するユーザからの指示情報を入力し、
    相互作用計算手段が、前記記憶手段に記憶された、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データを用いて、前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算し、
    変形手段が、前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記粒子の集合の形状を動的に変化させ、
    出力手段が、前記形状データに基づく形状情報を出力することを特徴とする、
    コンピュータを用いたシミュレーション方法。
  17. 形状生成手段が、記憶手段に記憶された仮想粒子の集合を表す粒子集合データと、該集合内の各粒子の位置を表す位置データとを用いて、該粒子の集合の形状を表す形状データを生成し、
    入力手段が、前記粒子の集合に対するユーザからの指示情報を入力し、
    相互作用計算手段が、前記記憶手段に記憶された、他の粒子が侵入できる領域である相互作用場を内部に含む各粒子の構造データを用いて、前記指示情報に従って、2つの粒子の相互作用場が交叉する場合に該2つの粒子の相互作用場の間における粒子間相互作用を計算し、
    変形手段が、前記粒子間相互作用の計算結果に従って、前記集合内の少なくとも一部の粒子の位置を変更することで、前記粒子の集合の形状を動的に変化させ、
    出力手段が、前記粒子の集合が表す仮想的な物体の触覚情報および該物体上で発生した力の情報のうち、少なくとも一方の情報を出力することを特徴とする、
    コンピュータを用いたシミュレーション方法。
JP13735997A 1997-05-28 1997-05-28 仮想粘土システムおよびそのシミュレーション方法 Expired - Fee Related JP3904671B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP13735997A JP3904671B2 (ja) 1997-05-28 1997-05-28 仮想粘土システムおよびそのシミュレーション方法
US09/031,916 US6040840A (en) 1997-05-28 1998-02-27 Virtual clay system and its method of simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13735997A JP3904671B2 (ja) 1997-05-28 1997-05-28 仮想粘土システムおよびそのシミュレーション方法

Publications (2)

Publication Number Publication Date
JPH10334278A JPH10334278A (ja) 1998-12-18
JP3904671B2 true JP3904671B2 (ja) 2007-04-11

Family

ID=15196826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13735997A Expired - Fee Related JP3904671B2 (ja) 1997-05-28 1997-05-28 仮想粘土システムおよびそのシミュレーション方法

Country Status (2)

Country Link
US (1) US6040840A (ja)
JP (1) JP3904671B2 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7225404B1 (en) * 1996-04-04 2007-05-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
US6552722B1 (en) * 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US6421048B1 (en) * 1998-07-17 2002-07-16 Sensable Technologies, Inc. Systems and methods for interacting with virtual objects in a haptic virtual reality environment
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
JP4144773B2 (ja) 1999-07-21 2008-09-03 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
JP4394202B2 (ja) 1999-07-21 2010-01-06 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
US6483499B1 (en) * 2000-04-21 2002-11-19 Hong Kong Productivity Council 3D sculpturing input device
IL136373A0 (en) * 2000-05-25 2001-06-14 Itpen Ltd Partnership Israel Representation of three-dimensional bodies on computer screens and games involving such representations
JP2002200343A (ja) * 2000-10-30 2002-07-16 Sony Computer Entertainment Inc 記録媒体、プログラム、方法、プログラム実行システムおよびプログラム実行装置
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
US6958752B2 (en) 2001-01-08 2005-10-25 Sensable Technologies, Inc. Systems and methods for three-dimensional modeling
US6930364B2 (en) * 2001-09-13 2005-08-16 Silicon Light Machines Corporation Microelectronic mechanical system and methods
JP3621081B2 (ja) * 2001-10-02 2005-02-16 株式会社ソニー・コンピュータエンタテインメント 画像処理システム、画像処理方法、コンピュータプログラム、記録媒体、半導体デバイス
US7382378B2 (en) 2003-10-30 2008-06-03 Sensable Technologies, Inc. Apparatus and methods for stenciling an image
US7626589B2 (en) * 2003-12-10 2009-12-01 Sensable Technologies, Inc. Haptic graphical user interface for adjusting mapped texture
US7889209B2 (en) * 2003-12-10 2011-02-15 Sensable Technologies, Inc. Apparatus and methods for wrapping texture onto the surface of a virtual object
US20050219249A1 (en) * 2003-12-31 2005-10-06 Feng Xie Integrating particle rendering and three-dimensional geometry rendering
US7149596B2 (en) * 2004-01-13 2006-12-12 Sensable Technologies, Inc. Apparatus and methods for modifying a model of an object to enforce compliance with a manufacturing constraint
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
KR100603019B1 (ko) * 2004-07-01 2006-07-24 한국과학기술연구원 햅틱 인터페이스를 이용한 도자기 디자인 시스템
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US20060119578A1 (en) * 2004-11-11 2006-06-08 Thenkurussi Kesavadas System for interfacing between an operator and a virtual object for computer aided design applications
US7769573B2 (en) * 2006-05-26 2010-08-03 Zymeworks Inc. System and method for modeling interactions
US7643199B2 (en) * 2007-06-19 2010-01-05 Qualcomm Mems Technologies, Inc. High aperture-ratio top-reflective AM-iMod displays
US8065127B2 (en) * 2007-09-24 2011-11-22 Siemens Corporation Particle system architecture in a multi-body physics simulation
JP4999711B2 (ja) * 2007-11-07 2012-08-15 キヤノン株式会社 画像処理装置、画像処理方法
EP2058764B1 (en) 2007-11-07 2017-09-06 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US9082213B2 (en) 2007-11-07 2015-07-14 Canon Kabushiki Kaisha Image processing apparatus for combining real object and virtual object and processing method therefor
JP4645678B2 (ja) * 2008-05-08 2011-03-09 ソニー株式会社 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム
DE202010018601U1 (de) 2009-02-18 2018-04-30 Google LLC (n.d.Ges.d. Staates Delaware) Automatisches Erfassen von Informationen, wie etwa Erfassen von Informationen unter Verwendung einer dokumentenerkennenden Vorrichtung
DE202010018551U1 (de) * 2009-03-12 2017-08-24 Google, Inc. Automatische Bereitstellung von Inhalten, die mit erfassten Informationen, wie etwa in Echtzeit erfassten Informationen, verknüpft sind
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US8473862B1 (en) 2009-05-21 2013-06-25 Perceptive Pixel Inc. Organizational tools on a multi-touch display device
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
JP5364035B2 (ja) * 2010-05-11 2013-12-11 日本放送協会 仮想力覚提示装置及び仮想力覚提示プログラム
US20130031142A1 (en) * 2011-07-29 2013-01-31 Starcounter Ab Systems And Methods For Database Usage Visualization
US20140290531A1 (en) * 2011-08-16 2014-10-02 The University Of Chicago Methods of Designing Aggregates Optimized for Specified Properties
US9802364B2 (en) 2011-10-18 2017-10-31 3D Systems, Inc. Systems and methods for construction of an instruction set for three-dimensional printing of a user-customizableimage of a three-dimensional structure
US8760751B2 (en) 2012-01-26 2014-06-24 Qualcomm Mems Technologies, Inc. Analog IMOD having a color notch filter
US8803861B2 (en) 2012-02-23 2014-08-12 Qualcomm Mems Technologies, Inc. Electromechanical systems device
JP2014071499A (ja) 2012-09-27 2014-04-21 Kyocera Corp 表示装置および制御方法
USD835142S1 (en) * 2016-06-07 2018-12-04 Beijing Kingsoft Internet Security Software Co., Ltd. Mobile communication terminal with animated graphical user interface
JP6140871B1 (ja) * 2016-08-09 2017-05-31 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
US10255658B2 (en) 2016-08-09 2019-04-09 Colopl, Inc. Information processing method and program for executing the information processing method on computer
USD819658S1 (en) * 2017-01-03 2018-06-05 Faraday & Future Inc. Vehicle display screen or portion thereof with animated graphical user interface
JP6930310B2 (ja) * 2017-09-07 2021-09-01 富士フイルムビジネスイノベーション株式会社 造形制御装置、造形制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4841292A (en) * 1986-08-11 1989-06-20 Allied-Signal Inc. Third dimension pop up generation from a two-dimensional transformed image display
JPH05314091A (ja) * 1992-05-01 1993-11-26 Toyota Central Res & Dev Lab Inc 流動基質中の粒子の運動解析方法
WO1993023835A1 (en) * 1992-05-08 1993-11-25 Apple Computer, Inc. Textured sphere and spherical environment map rendering using texture map double indirection

Also Published As

Publication number Publication date
US6040840A (en) 2000-03-21
JPH10334278A (ja) 1998-12-18

Similar Documents

Publication Publication Date Title
JP3904671B2 (ja) 仮想粘土システムおよびそのシミュレーション方法
US5973678A (en) Method and system for manipulating a three-dimensional object utilizing a force feedback interface
Gao et al. Haptic B-spline surface sculpting with a shaped tool of implicit surface
Gregory et al. intouch: Interactive multiresolution modeling and 3d painting with a haptic interface
US6792398B1 (en) Systems and methods for creating virtual objects in a sketch mode in a haptic virtual reality environment
Zheng et al. Desktop virtual reality interface for computer aided conceptual design using geometric techniques
US6191796B1 (en) Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment
US6529210B1 (en) Indirect object manipulation in a simulation
Massie A tangible goal for 3D modeling
US20030097195A1 (en) Method for computing disassembly sequences from geometric models
Gao et al. A 6-DOF haptic interface and its applications in CAD
CN111665933A (zh) 虚拟或者增强现实中的对象操作方法及装置
Kameyama Virtual clay modeling system
Davison et al. LifeBrush: Painting, simulating, and visualizing dense biomolecular environments
Wong et al. Virtual 3d sculpting
JP3722994B2 (ja) 物体の接触感シミュレーション装置
Nishino et al. A virtual environment for modeling 3D objects through spatial interaction
Chang et al. Fabricating Behavior Sensor Computing Approach for Coexisting Design Environment.
Schkolne et al. Surface drawing.
Moo-Young et al. Virtual materiality: Realistic clay sculpting in vr
Bordegoni et al. Create free-form digital shapes with hands
Sener et al. Towards' virtual clay'modelling-challenges and recommendations: a brief summary of the literature
Han et al. A framework for virtual hand haptic interaction
Ehmann et al. A touch‐enabled system for multi‐resolution modeling and 3D painting
Gandotra et al. TOOLS AND TECHNIQUES FOR CONCEPTUAL DESIGN IN VIRTUAL REALITY ENVIRONMENT.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070110

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140119

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees