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

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

Info

Publication number
JPH10334278A
JPH10334278A JP13735997A JP13735997A JPH10334278A JP H10334278 A JPH10334278 A JP H10334278A JP 13735997 A JP13735997 A JP 13735997A JP 13735997 A JP13735997 A JP 13735997A JP H10334278 A JPH10334278 A JP H10334278A
Authority
JP
Japan
Prior art keywords
particles
particle
virtual
information
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.)
Granted
Application number
JP13735997A
Other languages
English (en)
Other versions
JP3904671B2 (ja
Inventor
Takeshi Koshiba
健史 小柴
Masahiro Matsuoka
雅裕 松岡
Kuniharu Takayama
訓治 高山
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

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)

Abstract

(57)【要約】 【課題】 仮想空間において、簡単な操作で、効率よく
物体の形状のシミュレーションを行うことが課題であ
る。 【解決手段】 コンピュータ上の仮想空間11には、小
さな仮想粒子の集合であるバーチャクレイ15が生成さ
れ、その表面に張られた皮膜により物体の形状を表す。
ユーザが、制御情報入力装置13から変形指示を入力す
ると、粒子間の相互作用により各粒子が移動し、バーチ
ャクレイ15が変形する。その形状変化の様子は感覚情
報出力装置12によりユーザに提示される。感覚情報出
力装置12は、物体の触覚や反力も出力することがで
き、ユーザは、粘土をこねるような感覚で物体を変形さ
せることができる。

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に対応する。
【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 o
nlymemory)、RAM(random access memory)等が用
いられる。
【0030】入力装置23は、図2の制御情報入力装置
13やキーボードなどに相当し、ユーザからの操作指示
の入力に用いられる。出力装置24は、図2の感覚情報
出力装置12やプリンタなどに相当し、仮想世界の模型
などの情報の出力に用いられる。
【0031】外部記憶装置25は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等であり、プログラムやデータを保存
することができる。また、作成された模型のデータを保
存するデータベースとしても使用することができる。
【0032】媒体駆動装置26は、可搬記録媒体29を
駆動し、その記憶内容にアクセスする。可搬記録媒体2
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体を使用することができる。この可搬記録
媒体29には、データのほかに、バーチャクレイシステ
ムの処理を行うプログラムが格納される。
【0033】ネットワーク接続装置27は、LAN(lo
cal area network)などの任意の通信ネットワークに接
続され、通信に伴うデータ変換などを行う。情報処理装
置は、ネットワーク接続装置27を介して、ネットワー
クから必要な情報を受け取ることができる。
【0034】次に、バーチャクレイを実現する上で関連
する技術を列挙する。 (1)3Dのパッチで物体の表面を形成し、制御点をイ
ンタラクティブに制御する。このアルゴリズムによる設
計方法は、次の2つの文献に記載されている。H. J. La
mousin and W. N. Waggenspack, Jr.,“NURBS-Based Fr
ee-Form Deformations, ”IEEE Computer Graphics and
Applications, 11, pp.59-65,(1994).H. Qin and D. T
erzopoulos,“D-NURBS: A Phisics-Based Framework fo
r Geometric Design ”IEEE Transactions on Visualiz
ation and Computer Graphics,Vol. 2, No. 1, pp.85-9
6,(1996). (2)体積という量を定義したソリッドモデルを想定
し、変形時において体積を保存するという制約の下で、
その形状を制御する。この技術については、次の文献に
記載されている。A. Rappoport, A. Sheffer and M. Be
rcovier,“Volume-Preserving Free-FormSolids, ”IEE
E Transactions on Visualization and Computer Graph
ics, Vol.2, No. 1, pp.19-27,(1996). (3)高分子の構造を表示する際に、結合構造だけでは
なく、分子の表面を計算して、その空間に占める形状を
表現する。この技術については、次の文献に記載されて
いる。A. Varshneym, F. P. Brooks, Jr. and W. V. Wr
ight, “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 Environment
s, ”IEEE Computer Graphics and Applications, 9, p
p.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から半径r C の大きさで球状に
広がっている。各粒子は他の粒子の核32に侵入できな
い性質を持つ。これに対して、他の層は、相互作用場
(Interaction field )と呼ばれ、弾性や粘性といった
他の粒子との間の相互作用を規定する。これらの層のう
ち最も外側のものは、中心Xから半径rI の大きさで球
状に広がり、粒子の大きさを決定している。
【0041】このような近傍構造31においては、より
内側の層の性質がより外側の層の性質に優先される。し
たがって、弾性などの相互作用が定義された層であって
も、他の粒子の核32には侵入することができない。
【0042】近傍31に割り付けられる擬似物理法則
は、粒子−粒子相互作用、粒子−外因子相互作用とし
て、相互作用の相手に応じて決められる。粒子−粒子相
互作用は、粒子間の位置関係(距離)を媒介パラメータ
として定義され、単に、引力、斥力、侵入禁止といった
単純な性質にとどまらず、他の様々な性質を規定する。
これにより、多様な材質のバーチャクレイが構成され
る。
【0043】例えば、引力層と斥力層を交互に持つよう
な粒子を用いて、奇妙な手ごたえを持つ素材を表現する
ことができる。また、特定の粒子とのみ引き合う/斥け
合う性質を用いることで、フラクタル結晶構造のような
状態を創り出すことができる。また、それに色付けする
ことで、陶器の釉薬のような面白い視覚的効果が得られ
る。
【0044】これらの相互作用による効果は、実際にシ
ミュレーションにより確かめることができ、各ユーザ
は、思い思いに近傍構造31を設計して、その情報をラ
イブラリとして保存しておくことができる。ライブラリ
の情報は、必要に応じて呼び出されて、再利用される。
【0045】次に、図5から図9までを参照しながら、
仮想粒子間の相互作用の例を説明する。図5は、粒子の
移動操作による隣接粒子への影響の伝播を示している。
図5において、粒子Pの位置をX=(x1 ,x2
3 )とし、粒子Pに対する移動操作はベクトルΔX=
(Δx1 ,Δx2 ,Δx3 )で表現されるものとする。
この位置変更操作による粒子Pの移動後の位置X′は、
X′=X+ΔXにより計算される。粒子Pが移動するこ
とにより、粒子Pに接触していた粒子Qは次のように移
動する。
【0046】まず、粒子Qの位置をY=(y1 ,y2
3 )とする。XとYを結ぶ直線XYに対してベクトル
ΔXを垂直に射影して得られるベクトルを、ベクトルΔ
Y=Proj(ΔX,XY)とする。このベクトルΔY
が、粒子Qの移動操作のベクトルとなる。したがって、
粒子Pの移動に伴う粒子Qの移動後の位置は、Y′=Y
+ΔY=Y+Proj(ΔX,XY)となる。粒子Rに
ついても同様の計算が行われる。
【0047】図6は、移動操作に対する粒子の弾性(pl
asticity/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 efficie
ncy )をcT として、粒子Qの移動ベクトルを、ベクト
ルΔY=cT Proj(ΔX,XY)とする。したがっ
て、粒子Pの移動に伴う粒子Qの移動後の位置は、Y′
=Y+ΔY=Y+cTProj(Δ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 Surface
s ”に記述されているが、そのアルゴリズムについては
後述することにする。
【0066】仮想粒子の集合が複雑な形状を有する場
合、粒子の複雑な空間配置から最外殻を一度で計算する
必要はなく、複雑なバーチャクレイの形状は、逐次的に
生成されていく。局所的な変形で形状が変わることを考
えれば、そのような変形が加えられる度にローカルに最
外殻を更新することで、計算は簡単になる。
【0067】また、仮想粒子の集合の変形作用に対する
反作用の計算も定義することができる。反作用の模倣に
利用可能な量としては、粒子の平均移動ベクトル、粒子
の仮想的な重さ(質量)、作用点となる最外殻の粒子の
移動ベクトル、反作用の計算における近傍の相互作用の
パラメータなどがある。
【0068】反作用の模倣に必要な計算方法としては、
例えば、基本操作に対する反作用をテーブル化してメモ
リに格納しておき、該当する操作が行われたときにそれ
を参照する方法がある。この場合、音を出す、色を変化
させる、手応え(反力)を出力するなどの反作用があら
かじめ設定される。
【0069】また、粒子の平均移動ベクトル、仮想仕事
量、仮想質量などから反作用を計算することもでき、近
傍系の弾性や粘性による損失移動ベクトルから反作用を
計算することもできる。
【0070】次に、図13から図21までを参照しなが
ら、本実施形態のバーチャクレイシステムの構成をより
詳細に説明する。図13は、バーチャクレイシステムの
ブロック図である。図13のシステムは、図3に示した
ような情報処理装置を用いて実現され、入力装置23と
して、2D/3Dポインティングデバイス(PD)4
1、データグローブ(DG)42、および力入力装置
(FI)43を備え、出力装置24として、2D/3D
ディスプレイ(DS)44、バイブレータ(VB)4
5、および力出力装置(FO)46を備える。
【0071】また、メモリ22上にはソフトウェアによ
り、2D/3Dポインティングデバイスのモデル(P
D′)51、データグローブのモデル(DG′)52、
力入力装置のモデル(FI′)53、オペレーションパ
ネルのモデル(OP′)54、ジェスチャシステムのモ
デル(GS′)55、バーチャクレイのモデル(V
C′)56、2D/3Dディスプレイのモデル(D
S′)57、バイブレータのモデル(VB′)58、お
よび力出力装置のモデル(FO′)59が生成される。
【0072】PD′51は、PD41から入力された情
報をOP′54、DS′57、およびVC′56に伝
え、DG′52は、DG42から入力された情報をO
P′54、GS′55、DS′57、およびVC′56
に伝え、FI′53は、FI43から入力された情報を
DS′57およびVC′56に伝える。また、OP′5
4は、PD′51、DG′52、およびGS′55から
受け取った情報をDS′57およびVC′56に伝え、
GS′55は、DG′52から受け取った情報をOP′
54およびDS′57に伝える。
【0073】VC′56は、粒子モデルを含み、操作
(オペレーション)、ツール、粒子のパラメータなどの
定義を、データや手続きとして持っている。オペレーシ
ョンとしては、粒子生成(create)、粒子消去(discar
d )、変形(deformation )、固定(fix )、固定解除
(unfix )、グループ化(group )、グループ解除(un
group )、並進(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、およびF
O′59に伝える。
【0078】また、DS′57は、PD′51、DG′
52、FI′53、OP′54、GS′55、およびV
C′56から受け取った情報に基づき、DS44に画像
を表示させ、VB′58は、VC′56から受け取った
情報に基づき、VB45を振動させ、FO′59は、V
C′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次元空間の座標であり、 pi (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 )と変位操作の作用点の位置x
pd(tS-1 )の情報を入力する場合を考える。PD41
が2Dのマウスなどの場合、z軸方向の変位はクリック
回数またはクリック間隔などにより指定される。
【0081】各操作時刻tS におけるベクトルΔx
pd(tS )が入力されると、PD′51は、次式によ
り、それらをモデルの世界の変位ベクトルΔx′pd(t
S )に変換する。 Δ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 , pi (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 )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。
【0084】DS′57は、Surface(P
(tS ))の情報に基づき、そのグラフィックデータを
生成し、DS44の画面に表示する。図15では、時刻
S-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 )を次のよう
に計算する。 Vk (tS )=Vk (Σi |pi (tS )−x′dg,k(tS )|), (6) ∀i,|pi (tS )−x′dg,k(tS )|<rI , pi (tS )∈P(tS ) ここで、|pi (tS )−x′dg,k(tS )|は、pi
(tS )とx′dg,k(tS )の距離を表し、Σi は、す
べての粒子に関する総和を表す。したがって、Vk (t
S )は、各粒子とVB45の仮想的な位置との間の距離
の総和をパラメータとする関数として定義され、その関
数形は実験により決められる。また、x′dg,k(tS
がいずれかの粒子の相互作用場内に入っているようなV
B45のみについて、Vk (tS )が計算され、その他
のVB45についてはVk (tS)は0に設定される。
【0086】こうして計算された振動データV
k (tS )は、各VB45に出力されて、それを振動さ
せる。このようなVB′58によれば、仮想世界におい
て、変形操作に伴って移動した粒子に触れたVB45の
みが振動し、バーチャクレイに接触したときの感覚を表
現することができる。
【0087】次に、図17は、FI43とFO46を兼
ねる力入出力装置の例を示している。FO′59は、V
C′56から粒子集合P(tS )の情報を受け取り、F
I′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)を次
のように計算する。 Fk (tS )=Fk (Σi |pi (tS )−x′f,k (tS )|), (7) ∀i,|pi (tS )−x′f,k (tS )|<rI , pi (tS )∈P(tS ) ここで、Fk (tS )は、各粒子とジンバル48の仮想
的な位置との間の距離の総和をパラメータとする関数と
して定義され、その関数形は実験により決められる。ま
た、x′f,k (tS )がいずれかの粒子の相互作用場内
に入っているようなジンバル48のみについて、F
k (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 , pi (tS-1 )∈P(tS-1 ) ここでは、x′dg(tS )が相互作用場内に入っている
ような粒子のみが、移動ベクトルΔpi (tS )に従っ
て移動し、その他の粒子の位置は変化しない。ベクトル
Δpi (tS )は、x′dg,k(tS )とx′dg,k(t
S-1 )の差分として与えられる。
【0091】次に、VC′56は、決められた変形アル
ゴリズムに従って、最初に移動した粒子の移動ベクトル
Δpi (tS )の影響を、粒子集合P(tS-1 )全体に
反映させ、操作後の粒子集合P(tS )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。
【0092】DS′57は、Surface(P
(tS ))とx′dg,k(tS )の情報に基づき、バーチ
ャクレイと手のグラフィックデータを生成し、DS44
の画面に表示する。図18では、時刻tS-1 における粒
子集合P(tS-1 )と手の形状が示されているが、時刻
S における粒子集合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 (t
S-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 )|<
I , pi (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 )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。D
S′57は、Surface(P(tS ))の情報に基
づき、バーチャクレイのグラフィックデータを生成し、
DS44の画面に表示する。
【0096】次に、図20は、DS44の画面に表示さ
れたオペレーションパネルを示している。OP′54に
は、VC′56が持っているオペレーション、ツール、
粒子のパラメータに対応する手続きがあらかじめ定義さ
れており、それらがメニュー項目として、DS44の画
面に表示される。
【0097】図20の画面には、オペレーションとし
て、CREATE、DISCARD、BIGGER、S
MALLER、GROUP、UNGROUP、TRAN
SLATE、ROTATEなどの項目が表示され、ツー
ルとして、MARKERとFINISHERの項目が表
示され、パラメータとして、AFFECT、UNAFF
ECT、ELASTICITY、およびVISCOSI
TYの項目が表示されている。これらの項目のいずれか
を指定することで、対応する動作が行われる。
【0098】CREATEは、DISCARD、BIG
GER、SMALLER、GROUP、UNGROU
P、TRANSLATE、ROTATEは、それぞれ、
粒子生成、粒子消去、拡大、縮小、グループ化、グルー
プ解除、並進、回転、変形のオペレーションを表す。こ
のうち、TRANSLATEとROTATEについて
は、それぞれ、並進の向きと回転軸の向きも明示され
る。
【0099】また、AFFECTは、粒子の相互作用場
の半径rI とその性質の設定に用いられ、UNAFFE
CTは、粒子の核の半径rC とその性質の設定に用いら
れる。ELASTICITYとVISCOSITYは、
それぞれ、弾性係数と粘性係数の設定に用いられ、
“+”は性質を強める指示を表し、“−”は性質を弱め
る指示を表す。
【0100】ユーザがPD41またはDG42を用いて
項目を指定すると、OP′54は、PD′51からx′
pd(tS-1 )を受け取り、DG′52からx′dg,k(t
S-1)を受け取る。そして、x′pd(tS-1 )または
x′dg,k(tS-1 )が、画面上のいずれかの項目に対応
する領域内にあるかどうかを判定し、その位置がいずれ
かの項目に対応していれば、該当項目の処理を行う。こ
のとき、必要に応じて、VC′56に処理を依頼する。
【0101】例えば、GROUPが指定されると、O
P′54は、指定された粒子集合P(tS-1 )、Q(t
S-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が指定されると、O
P′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) pi (tS )=pi (tS-1 )+xC ここで、Translateは、各粒子の位置座標pi
(tS-1 )にベクトルx C を加算する演算子である。
【0104】また、ROTATEが指定されると、O
P′54は、指定された回転ベクトルφC による回転オ
ペレーションの実行を、VC′56に依頼する。これを
受けて、VC′56は、次のような演算を行う。 Rotate({...,pi (tS-1 ),...},φC ) ={...,pi (tS ),...} (13) pi (tS )=R(φC )pi (tS-1 ) ここで、Rotateは、各粒子の位置座標pi (t
S-1 )に、回転ベクトルφ C により記述される回転行列
R(φC )を乗算する演算子である。
【0105】また、BIGGERまたはSMALLER
が指定されると、OP′54は、指定された定ベクトル
cによるスケール変更オペレーションの実行を、VC′
56に依頼する。これを受けて、VC′56は、次のよ
うな演算を行う。 Scale({...,pi (tS-1 ),...},c) ={...,pi (tS ),...} (14) pi (tS )=diag(c)pi (tS-1 ) ここで、Scaleは、各粒子の位置座標p
i (tS-1 )に、ベクトルcの各成分を対角要素とする
対角行列diag(c)を乗算する演算子である。
【0106】次に、図21は、オペレーションをパネル
なしで指定するためのジェスチャシステムを示してい
る。この機能を利用する場合、ユーザはDG42を装着
した手で、決められたジェスチャを行う。このとき、G
S′55は、DG′52から各センサの位置の履歴情報
{...,x′dg,k(tS-2 ),x′
dg,k(tS-1 ),...}を受け取り、その情報が特定
のジェスチャパターンと類似しているかどうかを判定す
る。
【0107】ジェスチャパターンは、一定時間内におけ
る各センサの位置の変化を表す情報であり、並進ジェス
チャパターン、回転ジェスチャパターン、拡大/縮小ジ
ェスチャパターンなど、図20に示した各メニュー項目
に対応するパターンが用意される。GS′55は、これ
らのジェスチャパターンをあらかじめデータとして保持
しており、ジェスチャパターンと入力された履歴情報の
類似度を計算して、それらを比較する。
【0108】類似度が一定値以上であれば、そのジェス
チャパターンに対応する項目が指定されたものとみな
し、その項目の処理をOP′54に依頼する。また、そ
のジェスチャの表示をDS′57に依頼する。これを受
けて、DS′57は、対応するジェスチャの画像をDS
44の画面に表示する。
【0109】このように、本実施形態のバーチャクレイ
システムによれば、2Dのポインティングデバイスおよ
びディスプレイの操作性によって制限を受けている3D
CADや3Dグラフィクスなどの作業方法を、より直
観的なものに進化させることができる。現在、入力装置
として、データグローブ、3Dマウス、力入力装置など
が普及しつつあり、出力装置として、ヘッドマウントデ
ィスプレイが一般化されつつあるので、バーチャクレイ
システムにおいて、これらを利用することは容易であ
る。
【0110】また、粘土のような操作感を実現し、様々
な形を直観的に生成する機能を、従来の3D CADや
3Dグラフィクスのプラグインツールとして提供するこ
ともできる。その結果、実世界の3D物体のデザイン
や、あるいは仮想世界における建造物や造形品の設計製
作にあたり、時間効率を高めることができる。
【0111】次に、図22から図78までを参照しなが
ら、バーチャクレイシステムにおける各処理と、それに
伴うバーチャクレイの変化について、さらに詳細に説明
する。以下では、システムのソフトウェアを、オブジェ
クト指向プログラミングにより構築するものとし、図1
3のPD′51、DG′52、FI′53、OP′5
4、GS′55、VC′56、DS′57、VB′5
8、およびFO′59のそれぞれに対応するオブジェク
トを生成する。
【0112】図22は、このようなバーチャクレイシス
テムにおける一般的な処理のフローチャートである。シ
ステムは、起動されると、まず、メモリ22上において
上述の各オブジェクトを起動し、それらをメッセージ待
ちの状態にする(ステップS1)。そして、オブジェク
トがメッセージを受信したかどうかを判定する(ステッ
プS2)。
【0113】オブジェクトがメッセージを受信した場合
は、そのメッセージに関する処理を行い(ステップS
3)、オブジェクトの内部状態を更新して(ステップS
4)、システム終了の指示が入力されたかどうかを判定
する(ステップ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、F
I43、DS44、VB45、およびFO46は、以下
のようにして動作する。
【0117】図24は、PD41の動作フローチャート
である。PD41は、ユーザに操作されることで動作を
開始し(ステップS31)、操作量を信号に変換する
(ステップS32)。そして、その信号をPD′51に
出力して(ステップS33)、次の操作待ちの状態にな
る(ステップS34)。
【0118】図25は、DG42の動作フローチャート
である。DG42は、ユーザの手に装着されて操作され
ることで動作を開始し(ステップS41)、各センサの
位置の変化を信号に変換する(ステップS42)。そし
て、その信号をDG′52に出力して(ステップS4
3)、次の操作待ちの状態になる(ステップS44)。
【0119】図26は、FI43の動作フローチャート
である。FI43は、ユーザの指先に装着されて操作さ
れることで動作を開始し(ステップS51)、指先の位
置の変化を信号に変換する(ステップS52)。そし
て、その信号をFI′53に出力して(ステップS5
3)、次の操作待ちの状態になる(ステップS54)。
【0120】図27は、PD′51の動作フローチャー
トである。PD′51は、PD41からの信号を受け取
って動作を開始し(ステップS61)、信号の値からP
D′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)、信号の値からD
G′52のセンサの位置の変移量を確定する(ステップ
S72)。DG′52の位置と変移量は、例えば、図1
8の位置情報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)、信号の値からF
I′53の位置と入力された力を確定する(ステップS
82)。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からV
C′56に対する操作をメッセージとしてVC′56に
出力し(ステップS93)、オペレーションパネルから
のイベント待ちの状態になる(ステップS94)。
【0127】図31は、VC′56の動作フローチャー
トである。VC′56は、PD′51、DG′52、F
I′53、またはOP′54からのメッセージを受け取
って動作を開始し(ステップS101)、バーチャクレ
イに対する変形操作の作用点および移動量を確定する
(ステップS102)。次に、変形操作を起動し(ステ
ップS103)、作用点が相互作用場内に存在する粒子
の移動処理を行い(ステップS104)、反作用を確定
する(ステップS105)。
【0128】次に、各粒子の位置を更新し(ステップS
106)、最外殻粒子を更新する(ステップS10
7)。そして、バーチャクレイの表面情報(パッチ情
報)を更新し(ステップS108)、その表面情報をD
S′57に対するメッセージとして出力する(ステップ
S109)。また、反作用をVB′58またはFO′5
9に対するメッセージとして出力し(ステップS11
0)、次のメッセージ待ちの状態となる(ステップS1
11)。
【0129】図32および図33は、図31のステップ
S102、S103、S104、S105、およびS1
06における処理のフローチャートである。処理が開始
されると、VC′56は、まず、バーチャクレイの粒子
集合の中で、PD′51、DG′52、FI′53、ま
たはOP′54により直接操作される粒子の部分集合P
(0) を特定し、P(0) に含まれる各粒子の位置をpi
(0) とする(図32、ステップS121)。例えば、図
34に示すような粒子集合において、移動作用61が入
力された場合、粒子62が直接操作される粒子となる。
【0130】次に、制御変数kを1とおき(ステップS
122)、集合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)。 p″i =I(p′i ;p′1 ,...,p′i-1 , p′i+1 ,...,p′n(k-1)) (16) ここで、(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) を次式により計算する(ステップS12
5)。 vi (k-1) =p″i −pi (k-1) (17) そして、集合P(k-1) の各粒子に接触している他の粒子
と、集合P(k-1) の各粒子がベクトルvi (k-1) により
移動することで新たに接触する他の粒子とから成る集合
(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)。 Δpj (k) =Σi F(vi (k-1) ,φj (k) ,φi (k-1) ) ≒Σi αjiPROJji(vi (k-1) ), (18) 0<αji<1 Δbj (k-1) =Σi B(vi (k-1) ,φj (k) ,φi (k-1) ) ≒Σi βjiPROJji(vi (k-1) ), (19) −1<<βji<0 ここで、PROJji(vi (k-1) )は、pi (k-1) とp
j (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) の各粒子からの反作用Δ
j (k-1) を、pi (k -1) とpj (k) を結ぶ直線上に射
影することで求められる。
【0136】次に、集合P(k-1) 内の各粒子の暫定的な
位置p′′′i における相互作用場間の相互作用と、上
述の調整規則を用いて調整を行い、調整後の位置
p′′′′ i を決定する(ステップS129)。 p′′′′i =I(p′′′i ;p′′′1 ,...,p′′′i-1 , p′′′i+1 ,...,p′′′n(k-1)) (21) そして、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に示すよう
に、粒子集合全体を取り囲むシンプレックス(単体)7
1を計算する(ステップS141)。そして、各粒子の
近傍を基本にして、2つの粒子間に相互作用がある場合
に、互いの影響が等しくなるような平面を計算する(ス
テップS142)。
【0139】次に、決定された平面を境界として、各粒
子を囲む半空間を計算する(ステップS143)。図4
0の粒子集合においては、粒子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)、作用
点における反作用ベクトルを確定する(ステップS15
2)。
【0144】次に、反作用ベクトルを力情報に変換する
(ステップS153)。この力情報は、例えば、図17
の力データFk に対応する。そして、力情報をFO46
に対するメッセージとして出力し(ステップS15
4)、VC′56からのメッセージ待ちの状態になる
(ステップS155)。
【0145】図44は、VB′58の動作フローチャー
トである。VB′58は、VC′56からのメッセージ
を受け取って動作を開始し(ステップS161)、作用
点における反作用ベクトルを振動情報に変換する(ステ
ップS162)。この振動情報は、例えば、図16の振
動データVk に対応する。そして、振動情報をVB45
に対するメッセージとして出力し(ステップS16
3)、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以外にも、P
D′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を計算する(ステップS2
12)。
【0152】次に、図50に示すように、移動ベクトル
vの向きを反転した反転ベクトル−vを計算し(ステッ
プS213)、反転ベクトル−vと移動作用の作用点の
情報を、反作用メッセージとしてVB′58またはF
O′59に配送する(ステップS214)。このメッセ
ージを受け取ったVB′58またはFO′59は、その
情報をもとにVB45またはFO46を駆動し(ステッ
プS215)、処理を終了する。
【0153】図51から図55までは、上述のような処
理に基づくバーチャクレイの変形操作を示している。図
51は、DS44に表示されたバーチャクレイの外形を
示しており、ユーザは、PD41、DG42、またはF
I43を操作することで、このバーチャクレイを変形す
ることができる。
【0154】バーチャクレイは、PD41、DG42、
およびFI43からの作用を直接受けるだけでなく、D
S44に表示されたオペレーションパネル上の操作に基
づく作用も受ける。これらの入力デバイスからは、変形
操作の作用点と移動量の情報が入力される。
【0155】ユーザによるPD41、DG42、FI4
3の操作は、それぞれ、図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の処理に従って、入
力デバイスの操作により発生するイベントを確定し、V
C′56に対するメッセージ(変形操作の文脈では、変
形メッセージ)を生成して送信する。
【0158】図52は、図51のバーチャクレイを構成
する粒子を示している。このバーチャクレイは、変形前
の表面情報および変形作用による移動の前の仮想粒子の
情報を持つ。以下、変形操作を図31のフローチャート
に従って説明する。
【0159】変形操作の第1段階として、VC′56
は、各オブジェクトPD′51、DG′52、FI′5
3、OP′54からのメッセージを受け取り(ステップ
S101)、メッセージの内容を処理して、移動操作の
作用点と移動量を確定し(ステップS102)、変形操
作を起動して、変形作用ベクトル81を生成する(ステ
ップS103)。
【0160】次に、VC′56は、第2段階として、図
53に示すような粒子の移動処理を行い(ステップS1
04)、反作用を確定し(ステップS105)、各粒子
の位置を更新する(ステップS106)。図53には、
移動前の粒子の位置、移動後の粒子の位置、および反作
用ベクトル82が示されている。
【0161】次に、VC′56は、第3段階として、図
54に示すように、最外殻粒子を更新し(ステップS1
07)、バーチャクレイの表面情報を更新する(ステッ
プS108)。この段階で、VC′56は、表面情報を
メッセージとしてDS′57へ送信し(ステップS10
9)、反作用をメッセージとしてVB′58またはF
O′59へ送信する(ステップS110)。
【0162】VC′56から反作用のメッセージを受け
取ったFO′59、VB′58は、それぞれ、図43、
44の処理に従ってメッセージを処理し、FO46、V
B45に対して動作メッセージを送信する。また、V
C′56から表面情報のメッセージを受け取ったDS′
57は、図45の処理に従って、バーチャクレイの表面
のレンダリングを行い、画像信号を生成し、それをメッ
セージとしてDS44に送信する。
【0163】各出力デバイスFO46、VB45、DS
44は、それぞれ、対応する制御オブジェクトFO′5
9、VB′58、DS′57からメッセージを受け取
る。FO46は、図46動作に従って、力情報をユーザ
に提示し、VB45は、図47の動作に従って、振動情
報をユーザに提示し、DS44は、図48の動作に従っ
て、バーチャクレイの画像を表示する。こうして、DS
44の画面には、図55に示すような変形後のバーチャ
クレイの表面が表示される。
【0164】バーチャクレイの皮膜は、必ずしも、図5
5に示されるような滑らかな曲面に限られず、移動後の
粒子の位置に基づく任意の形状をとることができる。例
えば、図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に示すよ
うに、直接「くっつける」操作の対象となる粒子層P 0
を決定し、その層の各粒子に移動ベクトル101、10
2を割り当てる。そして、移動の単位となる他の粒子層
1 を決定する。
【0172】次に、VC′56は、図71に示すよう
に、層P0 の粒子を移動ベクトル101、102により
暫定的に移動させ、図72に示すように、粒子同士の重
なりがなくなるように位置を補正する。
【0173】次に、図73に示すように、次の層P1
移動ベクトル103、104、105、106を決定す
る。これらのベクトルの向きは、前の層のベクトル10
1、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、G
S′55、VC′56、DS′57、VB′58、およ
びFO′59を、オブジェクト指向プログラミングによ
り実現するものとしたが、これに限らず、任意のプログ
ラミング方法を用いることができる。また、入出力装置
は、図13のPD41、DG42、FI43、DS4
4、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、10
3、104、105、106、111 移動ベクトル 71 シンプレックス 72 凸包 81 変形作用ベクトル 82 反作用ベクトル 96、97 皮膜

Claims (17)

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

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6967650B1 (en) 1999-07-21 2005-11-22 Namco Ltd. Image generating system and program
KR100603019B1 (ko) * 2004-07-01 2006-07-24 한국과학기술연구원 햅틱 인터페이스를 이용한 도자기 디자인 시스템
US7119817B1 (en) 1999-07-21 2006-10-10 Namco Bandai Games Inc. Image generating system and program
JP2009134681A (ja) * 2007-11-07 2009-06-18 Canon Inc 画像処理装置、画像処理方法
JP2009271746A (ja) * 2008-05-08 2009-11-19 Sony Corp 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム
JP2011238068A (ja) * 2010-05-11 2011-11-24 Nippon Hoso Kyokai <Nhk> 仮想力覚提示装置及び仮想力覚提示プログラム
US8698804B2 (en) 2007-11-07 2014-04-15 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
JP6140871B1 (ja) * 2016-08-09 2017-05-31 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
US9983409B2 (en) 2012-09-27 2018-05-29 Kyocera Corporation Stereoscopic display device and control method
JP2019046404A (ja) * 2017-09-07 2019-03-22 富士ゼロックス株式会社 造形制御装置、造形制御プログラム
US10255658B2 (en) 2016-08-09 2019-04-09 Colopl, Inc. Information processing method and program for executing the information processing method on computer

Families Citing this family (54)

* 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
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
US7889209B2 (en) 2003-12-10 2011-02-15 Sensable Technologies, Inc. Apparatus and methods for wrapping texture onto the surface of a virtual object
US7626589B2 (en) * 2003-12-10 2009-12-01 Sensable Technologies, Inc. Haptic graphical user interface for adjusting mapped texture
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
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
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
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
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
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
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
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
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
WO2010096193A2 (en) 2009-02-18 2010-08-26 Exbiblio B.V. Identifying a document by performing spectral analysis on the contents of the document
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
WO2010105244A2 (en) * 2009-03-12 2010-09-16 Exbiblio B.V. 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
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
USD835142S1 (en) * 2016-06-07 2018-12-04 Beijing Kingsoft Internet Security Software Co., Ltd. Mobile communication terminal with animated graphical user interface
USD819658S1 (en) * 2017-01-03 2018-06-05 Faraday & Future Inc. Vehicle display screen or portion thereof with animated graphical user interface

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

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7119817B1 (en) 1999-07-21 2006-10-10 Namco Bandai Games Inc. Image generating system and program
US6967650B1 (en) 1999-07-21 2005-11-22 Namco Ltd. Image generating system and program
KR100603019B1 (ko) * 2004-07-01 2006-07-24 한국과학기술연구원 햅틱 인터페이스를 이용한 도자기 디자인 시스템
US8698804B2 (en) 2007-11-07 2014-04-15 Canon Kabushiki Kaisha Image processing apparatus and image processing method
JP2009134681A (ja) * 2007-11-07 2009-06-18 Canon Inc 画像処理装置、画像処理方法
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
JP2009271746A (ja) * 2008-05-08 2009-11-19 Sony Corp 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム
US8648797B2 (en) 2008-05-08 2014-02-11 Sony Corporation Information input/output device, information input/output method and computer program
JP4645678B2 (ja) * 2008-05-08 2011-03-09 ソニー株式会社 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム
JP2011238068A (ja) * 2010-05-11 2011-11-24 Nippon Hoso Kyokai <Nhk> 仮想力覚提示装置及び仮想力覚提示プログラム
US9983409B2 (en) 2012-09-27 2018-05-29 Kyocera Corporation Stereoscopic display device and control method
US10101585B2 (en) 2012-09-27 2018-10-16 Kyocera Corporation Stereoscopic display device and control method
JP6140871B1 (ja) * 2016-08-09 2017-05-31 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018025955A (ja) * 2016-08-09 2018-02-15 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
US10255658B2 (en) 2016-08-09 2019-04-09 Colopl, Inc. Information processing method and program for executing the information processing method on computer
US10664950B2 (en) 2016-08-09 2020-05-26 Colopl, Inc. Information processing method and system for executing the information processing method
US10719911B2 (en) 2016-08-09 2020-07-21 Colopl, Inc. Information processing method and system for executing the information processing method
JP2019046404A (ja) * 2017-09-07 2019-03-22 富士ゼロックス株式会社 造形制御装置、造形制御プログラム

Also Published As

Publication number Publication date
US6040840A (en) 2000-03-21
JP3904671B2 (ja) 2007-04-11

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
US6191796B1 (en) Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment
US6310619B1 (en) Virtual reality, tissue-specific body model having user-variable tissue-specific attributes and a system and method for implementing the same
Zheng et al. Desktop virtual reality interface for computer aided conceptual design using geometric techniques
US6629065B1 (en) Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6529210B1 (en) Indirect object manipulation in a simulation
US5712964A (en) Computer graphics data display device and method based on a high-speed generation of a changed image
US7536655B2 (en) Three-dimensional-model processing apparatus, three-dimensional-model processing method, and computer program
Henriksen et al. Virtual trackballs revisited
Lamberti et al. Virtual character animation based on affordable motion capture and reconfigurable tangible interfaces
Gao et al. A 6-DOF haptic interface and its applications in CAD
CN111665933A (zh) 虚拟或者增强现实中的对象操作方法及装置
US20150169156A1 (en) Method and Mechanism for Human Computer Interaction
Davison et al. LifeBrush: Painting, simulating, and visualizing dense biomolecular environments
Trika et al. Virtual reality interfaces for feature-based computer-aided design systems
Wong et al. Virtual 3d sculpting
JP3722994B2 (ja) 物体の接触感シミュレーション装置
Sidney et al. Mapping virtual object manipulation to sound variation
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.
Moo-Young et al. Virtual materiality: Realistic clay sculpting in vr
Knopf et al. Deformable mesh for virtual shape sculpting
Sener et al. Towards' virtual clay'modelling-challenges and recommendations: a brief summary of the literature

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