JP2009277216A - 仮想物体の変形シミュレーション方法 - Google Patents
仮想物体の変形シミュレーション方法 Download PDFInfo
- Publication number
- JP2009277216A JP2009277216A JP2009066028A JP2009066028A JP2009277216A JP 2009277216 A JP2009277216 A JP 2009277216A JP 2009066028 A JP2009066028 A JP 2009066028A JP 2009066028 A JP2009066028 A JP 2009066028A JP 2009277216 A JP2009277216 A JP 2009277216A
- Authority
- JP
- Japan
- Prior art keywords
- virtual object
- calculation
- matrix
- stage
- james
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 177
- 238000004364 calculation method Methods 0.000 claims abstract description 109
- 239000011159 matrix material Substances 0.000 claims abstract description 75
- 238000004088 simulation Methods 0.000 claims abstract description 31
- 238000007781 pre-processing Methods 0.000 claims description 75
- 230000010354 integration Effects 0.000 claims description 28
- 230000008030 elimination Effects 0.000 claims description 13
- 238000003379 elimination reaction Methods 0.000 claims description 13
- 230000015572 biosynthetic process Effects 0.000 abstract 1
- 238000006073 displacement reaction Methods 0.000 description 27
- 238000012937 correction Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】待ち時間のない境界要素法による変形シミュレーション方法を提供する。
【解決手段】作業者が描画した仮想物体を変形させる境界要素法による変形シミュレーション方法であって、作業者が仮想物体を描画する仮想物体描画段階と、仮想物体描画段階の間に、境界要素法の行列の組み立てを実行する行列組み立て段階と、仮想物体描画段階の終了後に仮想物体の初期境界条件を決定する初期境界条件決定段階と、作業者が仮想物体を変形させる操作を行なったときに仮想物体の境界条件を設定する境界条件設定段階と、行列組み立て段階で組み立てられた行列を境界条件設定段階で設定された境界条件に従って連立方程式としその解を得る連立方程式計算段階と、連立方程式計算段階で得られた解を反映して仮想物体が変形した状態を描画する仮想物体変形状態描画段階と、を備えることを特徴とする仮想物体の変形シミュレーション方法。
【選択図】 図3
【解決手段】作業者が描画した仮想物体を変形させる境界要素法による変形シミュレーション方法であって、作業者が仮想物体を描画する仮想物体描画段階と、仮想物体描画段階の間に、境界要素法の行列の組み立てを実行する行列組み立て段階と、仮想物体描画段階の終了後に仮想物体の初期境界条件を決定する初期境界条件決定段階と、作業者が仮想物体を変形させる操作を行なったときに仮想物体の境界条件を設定する境界条件設定段階と、行列組み立て段階で組み立てられた行列を境界条件設定段階で設定された境界条件に従って連立方程式としその解を得る連立方程式計算段階と、連立方程式計算段階で得られた解を反映して仮想物体が変形した状態を描画する仮想物体変形状態描画段階と、を備えることを特徴とする仮想物体の変形シミュレーション方法。
【選択図】 図3
Description
本発明は、コンピュータ上の仮想物体に対して、仮想物体の変形シミュレーションを行う際の仮想物体の構築時及び変形時のシミュレーション方法に関する。
コンピュータ上に再現された仮想物体を扱うための技術が多く提案されている。その中で、仮想物体を変形させるための技術を扱う分野がある。例えば、コンピュータ上に仮想球体を描画し、ユーザが仮想球体を突くなどの操作をした際に、仮想球体がゴムのような変形をする場合の変形挙動を与えるための計算処理方法やそのシステムなどがそれにあたる。これらの技術により、コンピュータグラフィックス(CG)のデザイナーが仮想物体の動作(変形した形状など)を予めデザイン・作成をしておかなくとも、自動的に変形した形状を生成することが可能となる。
このような変形を再現する方法として、物理シミュレーション法が用いられることが多い。物理シミュレーション法は具体的には、有限要素法や境界要素法、粒子法のような工学の分野で用いられる方法のことを指す。特許文献1では有限要素法による変位シミュレーション方法が提案されている。
D.L. James, D.K. Pai, "ARTDEFO:Accurate real time deformable objects," ACM SIGGRAPH99, pp.65-72, 1999.
変形の再現のための物理シミュレーション法の多くは、解を得るために長時間の計算処理が必要になる。そのため、インタラクティブな変形処理をさせるためには、計算の簡略化や前処理が行われる。本来の物理シミュレーションの場合は現実の現象を寸分違わず再現しようとするが、ゲームなどでのCGではそこまでの正確さは要求されないので計算誤差の発生と引き換えに計算処理を減らすことを、計算の簡略化と呼ぶ。また、前処理とは、変形の計算で必要な計算処理の一部を予め計算してメモリやハードディスクドライブ(HDD)に保存しておき、変形の計算の際にメモリやHDDから計算済みのデータを読み出して、計算コストを削減する方法のことである。
これら変形のための物理シミュレーションを、インタラクティブなアプリケーションで利用する場合の「計算の簡略化」と「前処理」の影響は以下のようになる。ここでインタラクティブなアプリケーションとは、ユーザがマウスなどの入力デバイスを用いて仮想物体を描き、描いた仮想物体をユーザがマウスなどの入力機器で操作することで変形操作する場合とする。図1はこの一例を模式的に示したもので、仮想物体を描画し(図1(a)〜(d))、描画終了後にその物体を押すことによって変形する様子(図1(e))を表している。
この場合、計算の簡略化はほとんど影響がないと考えられる(変形可能な条件に制限が発生するため、変形させる物体や変形させ方によっては影響がでることはある)。それに対して、前処理はインタラクティブ性を損なわせてしまう可能性がある。これは、CGの物理シミュレーションとして従来利用されてきた方法では、ユーザによる描画と変形操作の間に前処理のための計算時間が必要なためである。この前処理は操作を受け付けない待ち時間となり、ユーザは操作を停止しなければならない。インタラクティブなアプリケーションの場合では、たとえこの前処理の時間が30秒であったとしても、ユーザに対してストレスを与えてしまう。
本発明では、物理シミュレーション法として境界要素法を用いる。境界要素法とは、グリーンの定理を用いて、解くべき対象である偏微分方程式を、境界上の積分方程式の問題に置き換えて解く手法である。この時、解くべき問題の次元が一つ下がるため、その分だけ計算量が減り、誤差も減らせる。境界要素法も前処理が必要で、この場合の前処理は、境界要素法の「行列の組み立て」、及び、組み立てた行列を連立方程式にして解く「行列の解の計算」の2種類である。本発明では、これら2つの前処理において、待ち時間を発生させないことを課題とする。
以上の課題を解決するために、本発明の請求項1においては、作業者が描画した仮想物体を変形させる境界要素法による変形シミュレーション方法であって、
作業者が仮想物体を描画する仮想物体描画段階と、
前記仮想物体描画段階の間に、境界要素法の行列の組み立てを実行する行列組み立て段階と、
仮想物体描画段階の終了後に仮想物体の初期境界条件を決定する初期境界条件決定段階と、
作業者が仮想物体を変形させる操作を行なったときに仮想物体の境界条件を設定する境界条件設定段階と、
前記行列組み立て段階で組み立てられた行列を前記境界条件設定段階で設定された境界条件に従って連立方程式としその解を得る連立方程式計算段階と、
前記連立方程式計算段階で得られた解を反映して仮想物体が変形した状態を描画する仮想物体変形状態描画段階と、を備え、
前記連立方程式計算段階が、下記の[a]〜[c]のいずれか、または2つ以上の組み合わせによって行なわれることを特徴とする、仮想物体の変形シミュレーション方法、としたものである。
作業者が仮想物体を描画する仮想物体描画段階と、
前記仮想物体描画段階の間に、境界要素法の行列の組み立てを実行する行列組み立て段階と、
仮想物体描画段階の終了後に仮想物体の初期境界条件を決定する初期境界条件決定段階と、
作業者が仮想物体を変形させる操作を行なったときに仮想物体の境界条件を設定する境界条件設定段階と、
前記行列組み立て段階で組み立てられた行列を前記境界条件設定段階で設定された境界条件に従って連立方程式としその解を得る連立方程式計算段階と、
前記連立方程式計算段階で得られた解を反映して仮想物体が変形した状態を描画する仮想物体変形状態描画段階と、を備え、
前記連立方程式計算段階が、下記の[a]〜[c]のいずれか、または2つ以上の組み合わせによって行なわれることを特徴とする、仮想物体の変形シミュレーション方法、としたものである。
[a]前記連立方程式の解を得ながら、D.L. Jamesの手法の前処理計算を行なう。
[b]D.L. Jamesの手法の前処理計算が一部完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。
[c]D.L. Jamesの手法の前処理計算が全て完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。
[b]D.L. Jamesの手法の前処理計算が一部完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。
[c]D.L. Jamesの手法の前処理計算が全て完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。
また請求項2においては、請求項1記載の仮想物体の変形シミュレーション方法の、前記行列組み立て段階において、組み立てるべき行列の各要素を描画された仮想物体の積分領域ごとの計算結果に分けることにより、組み立てるべき行列を2つの行列に分けて保存しておき、仮想物体の描画が完了したら前記2つの行列の和を取ることにより、境界要素法の行列の組み立てが完成することを特徴とする仮想物体の変形シミュレーション方法としたものである。
また請求項3においては、請求項1または2記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L. Jamesの手法の前処理計算を実行する際、1回の連立方程式の計算に対して、D.L. Jamesの手法の前処理計算で求める行列のうちの任意の1列の値を求めることを特徴とする仮想物体の変形シミュレーション方法としたものである。
また請求項4においては、請求項3記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L. Jamesの手法の前処理計算のための連立方程式の計算と、境界要素法の解を得るための連立方程式の計算を実行する際にGaussの消去法を用いることで、共通する計算部分に関して、同時に処理することを特徴とする仮想物体の変形シミュレーション方法としたものである。
また請求項5においては、請求項1〜4のいずれかに記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L. Jamesの手法の前処理計算が必要な2つの行列に対して、一方の行列の前処理計算がi列(iは自然数)に対するものであれば、次にもう一方の行列のi列に対する前処理計算を行ない、2つの行列の同じ列の要素を連続して計算することを特徴とする仮想物体の変形シミュレーション方法としたものである。
以上の手段により本発明では、「行列の組み立て」及び「行列の解の計算」の前処理を、仮想物体の描画や変形操作といった他の操作と並行して実行することで待ち時間をなくす。ここで、ユーザが仮想物体を描画している状態を「描画プロセス」、ユーザが仮想物体を操作することで変形させている状態を「操作プロセス」と呼ぶことにする。「行列の組み立て」は、「描画プロセス」において実行され、「行列の解の計算」は、「操作プロセス」において実行される。
「描画プロセス」時の前処理に関しては、一般的には仮想物体を描画し終わった後に境界要素法の「行列を組み立て」を実行していたが、本発明では描画と並行して「行列の組み立て」を行ってしまうことで、描画後の待ち時間がないようにする。さらに、描画時に修正作業を行える機能を実装する。そのために行列を2つに分割し、積分領域ごとに行列の組み立てを行った結果の値を保存することで描画の修正作業を可能にする。
「操作プロセス」における前処理は、境界要素法の連立方程式の解法に何を利用するのかに大きく依存している。例えば、連立方程式の解法として一般的に知られているGaussの消去法やヤコビ法などでは前処理の必要がない。前処理を行う方法としては、D.L. Jamesの手法(非特許文献1参照)がある。D.L.Jamesの手法の特徴としては、連立方程式を解く計算コストは小さいが、前処理に膨大な計算コストが必要となる。前処理に必要な計算コストを除いた場合、連立方程式を解く計算コストはD.L.Jamesの手法の方が小さくなる。
本発明の課題は前処理の計算時間を無くす(作業者に計算時間を意識させない)ことであるため、前処理に多くの時間がかかるD.L. Jamesの手法をそのまま用いることはできない。しかし、前処理の必要のないGaussの消去法などは、D.L. Jamesの手法と比較して計算コストが大きい。そこで本発明は、始めに前処理の必要のない解法を用いて計算処理を行い、同時にD.L.Jamesの手法の前処理の一部を実行する。複数回に分けて前処理を実行することで、作業者に前処理のための待ち時間を意識させることなく前処理の計算ができ、D.L.Jamesの手法を使用可能にできる。また、連立方程式の解法にGaussの消去法を用いた場合、境界要素法の連立方程式の計算とD.L. Jamesの手法の前処理の計算の多くの部分を並行して実行できる。さらに、前処理がすべて終わっていなかったとしても、条件によってはD.L.Jamesの手法を利用できるため、さらなる計算の高速化が行える。
本発明は、境界要素法の実行に必要な前処理を、仮想物体の描画や変形操作と同時に計算することで、前処理による待ち時間なしに境界要素法の計算が行える。そのため利用ユーザは、仮想物体の描画から操作による仮想物体の変形までの一連の作業を停止することなく行える。
本発明に関わるシステムは、図2に示すようにCPU(中央演算処理装置)とメモリ、HDD(ハードディスクドライブ)からなるコンピュータ、ディスプレイなどの表示装置、マウスやキーボードなどの入力装置からなり、また、Webサービスで利用する場合には、コンピュータに通信機器を持たせ、ネットワーク経由でWebサーバに接続できるとする。
はじめに、本発明で利用する境界要素法の基本的な計算手順について述べる。本発明における境界要素法として、線形弾性物体に対する境界要素法を用いる。この場合の手順を図3に示す。
まず、はじめに仮想物体の形状を決定する(図3のステップS3−1)。境界要素法の実行で必要な仮想物体は、2次元の場合であれば、閉じた1本の曲線から構成され、かつ、曲線は交わらないものである。また3次元の場合も、閉じた1つの曲面から構成され、かつ、面が交差しないものとなる。図4は、2次元の場合の仮想物体の形状の例を示す。このような幾何学的な図形でなく、フリーハンドでの描画曲線から構成されるものであっても問題ない。そして、これらの曲線や曲面は、頂点と直線または面の集合から構成されているとする。図5は、2次元の円形状の仮想物体の一例であり、頂点と直線から構成されていることを示す。
次に、仮想物体の形状を元に境界要素法で使用する行列を組み立てる(図3のステップS3−2)。境界要素法の行列は以下の数式で表すことができる。
H,Gは、ともにn×nの行列である。ただし、nは頂点数×次元数(2次元の場合は2、3次元の場合は3)である。また、U,Tはn×1の行列である。ここで、行列の組み立てとは、H,Gの値を求めることを指す。H,Gの成分は、仮想物体の表面上を積分する(2次元の場合は線積分、3次元の場合は面積分となる)ことで求めることができる。具体的には、以下の式(境界積分方程式)を解くことになる。
ここで、2次元の場合は、
また、3次元の場合は、
である。ここでP,Qは仮想物体表面上の点、Cは境界の形状と性質に依存する値、ui,tiは点PまたはQにおけるi方向の変位及び力、νはPoisson比、μはせん断弾性係数、rはP,Q間の距離、nは法線である。(参考文献:結城良治, 木須博行, "境界要素法による弾性解析",培風館, 1987. また、一般的な境界要素法の書籍に書かれている)。
H,Gは、ともにn×nの行列である。ただし、nは頂点数×次元数(2次元の場合は2、3次元の場合は3)である。また、U,Tはn×1の行列である。ここで、行列の組み立てとは、H,Gの値を求めることを指す。H,Gの成分は、仮想物体の表面上を積分する(2次元の場合は線積分、3次元の場合は面積分となる)ことで求めることができる。具体的には、以下の式(境界積分方程式)を解くことになる。
ここで、2次元の場合は、
また、3次元の場合は、
である。ここでP,Qは仮想物体表面上の点、Cは境界の形状と性質に依存する値、ui,tiは点PまたはQにおけるi方向の変位及び力、νはPoisson比、μはせん断弾性係数、rはP,Q間の距離、nは法線である。(参考文献:結城良治, 木須博行, "境界要素法による弾性解析",培風館, 1987. また、一般的な境界要素法の書籍に書かれている)。
次に、境界条件を設定する(図3のステップS3−3)。境界条件は、変位と力の2種類がある。境界条件は、各頂点に対して変位または力のうちの一方を定数として設定し、もう一方を未知の値として設定する。そして、境界要素法を最後まで実行することによって未知の値が求まる。
境界条件の与え方の一例としては、仮想物体を地面に固定するとしたら、地面に接する頂点の変位と、ユーザが操作したい頂点の変位を定数とする。その他の頂点は、変位を未知の値にする。
例えば図6は、正方形状(点線)の仮想物体を地面に固定して、図の右上側の角にある頂点を、矩形物体を使って押した場合の境界条件の設定例を示している。下側(地面と接している)の頂点、および矩形物体によって押されている頂点の変位は定数とし、その他の頂点は変位を未知の値としている。これら境界条件の値は、数1のU,Tに格納され、Uは変位、Tは力の値が入る。
次に、数1から連立方程式を組み立てる(図3のステップS3−4)。連立方程式は、HU=GTに対して境界条件を与えることにより組み立てられる。境界条件の設定の際に、各頂点で変位と力のうち一方を定数、もう一方を未知の値としたため、n個の未知の値が存在する。HU=GTからn個の式を立てられる、n個の未知の値は連立方程式の解として求めることができる。未知の値を左辺に移行すれば、HU=GTは以下の連立方程式となる。
ここで、Aはn×nの行列、X,Zはn×1の行列であり、A,Zは定数のみの成分からなる行列、Xは未知の値のみの成分からなる行列である。そして、数5のAX=Zの連立方程式を解く事によって未知の変位や力の値が求まる(図3のステップS3−5)。以上が本発明で使用する境界要素法の概要になる。
ここで、Aはn×nの行列、X,Zはn×1の行列であり、A,Zは定数のみの成分からなる行列、Xは未知の値のみの成分からなる行列である。そして、数5のAX=Zの連立方程式を解く事によって未知の変位や力の値が求まる(図3のステップS3−5)。以上が本発明で使用する境界要素法の概要になる。
次に、本発明の詳細について説明する。本発明は図7に示したように描画プロセスと操作プロセスからなる。描画プロセスは、ユーザが仮想物体を描画する上で必要となる作業のためのプロセスである。
描画プロセスでは、ユーザがマウスなどの入力デバイスを用いて仮想物体の形状を作成し、それと並行して境界要素法の前処理となるHU=GTの行列の組み立ての計算を行う。また、初期の境界条件の決定(地面に接する頂点は変位を定数として与えておく等)までを行う。
操作プロセスは、ユーザの操作により仮想物体を操作・変形するプロセスである。ユーザの操作による境界条件の設定(ユーザが操作する頂点の変位を定数として与える等)を行う。そして、与えた境界条件に対して連立方程式(数5)を組み立て、解を得る。
連立方程式を解くための方法は、D.L. Jamesの手法を利用するのに必要な前処理が完了している場合にはD.L.Jamesの手法を用いる。ここで、前処理についての条件として、すべて完了しているか、一部の前処理結果のみでD.L. Jamesの手法が実行できる場合とする。また、D.L.Jamesの手法が利用できない場合には、連立方程式を解き、並行してD.L. Jamesの前処理の一部を計算する。
はじめに、描画プロセスの詳細について説明する。従来の方法では、仮想物体の形状を決定した後に数1のH,Gの行列を組み立てていたため、組み立ての前処理を実行するための待ち時間が必要であったが、本発明では仮想物体の描画と行列の組み立てを同時に行う。つまり、図8のように仮想物体を少し描画したら、更新された分だけ行列の組み立てを行うといった作業を繰り返す。このことで、行列の組み立てに必要な計算を分散することができ、前処理のための待ち時間をユーザに意識させないことが可能となる。
行列の組み立ての計算手順は、以下のようになる。行列の組み立てには、数2と数3または数2と数4を実行する必要がある。これらの式は、ある頂点に対して仮想物体の表面を積分する計算が行われることを意味する。例として、図9のような領域A〜Hの積分領域に分けられた仮想物体に対する積分を考えてみる。この場合、行列Hのi行目Hiは以下の式で表すことができる。
この式は行列Gに対しても同様に成り立つ。数6は、どの積分領域から計算を始めても計算結果は変わらないため、描画途中であっても行列の組み立てが可能なことがわかる。
この式は行列Gに対しても同様に成り立つ。数6は、どの積分領域から計算を始めても計算結果は変わらないため、描画途中であっても行列の組み立てが可能なことがわかる。
仮想物体の描画の過程の一例を、図10に示す。図10(a)のように頂点1、頂点2、領域Aが決定されている場合では、頂点1に対する領域Aの積分、頂点2に対する領域Aの積分の実行が可能である。さらに、図10(b)のように頂点3が追加された場合、頂点1〜3に対する領域A,Bの積分が実行可能である。ただし、頂点1〜2に対する領域Aの計算はすでに行われているので、頂点1〜2に対する領域B、頂点3に対する領域A,Bの積分のみ実行すればよい。図10(c)のように、さらに頂点4が追加された場合には、頂点1〜3に対する領域Cの積分及び頂点4に対する領域A〜Cの積分を実行していく。同様に頂点及び領域が追加されるたびに、追加された頂点や領域に対する積分のみを行っていけばよい。
このように描画により増えた領域や頂点に対してのみ積分処理を行うことができ、描画と行列の組み立てが並行して実行できる。
次に、図形の修正について述べる。描画中には仮想物体の形状の修正作業が発生すると考えられる。そのため、ユーザに対する利便性の向上から図形の修正機能を持たせる。従来法ならば、図形の描画後に行列H,Gの組み立てを行うため、修正を行っても問題はない。しかし、本発明は図形の描画と行列H,Gの組み立てを並行して実行しているため、図形の修正を行った際には計算途中の行列H,Gの値も修正しなければならない。
このとき重要なことは、数6の1つの成分の値は、2つの積分領域に依存していることである。図9を例にとって考えてみると、積分の実行のためには領域上の任意の点の座標が必要となるが、領域A上の任意の点の座標は頂点1と頂点2から求めており、また、領域B上の任意の点であれば、座標は頂点2と頂点3から求めている。そのため、1つの頂点が2つの積分領域に対して影響を及ぼすことになる。従って、図10(d)のように頂点5まで描画した後、修正のために頂点5を削除(同時に領域Dも削除される)したとしても、行列H,Gの領域Dに依存する値のみを削除することはできない。
修正作業を実現するための簡単な方法としては、計算途中の全ての値を保存しておくことが考えられる。つまり、先程の図10(d)で頂点5を削除した場合の例では、頂点1〜2まで描画した場合の結果、頂点1〜3まで描画した場合の結果、・・・、とすべての状態での行列の値を保存しておく。この方法ならば、頂点5を削除したとしても頂点4まで描画したデータを読み出すだけで行列の修正ができる。
しかし、この方法では、図10(d)のように頂点5まで描いたものの、頂点3を修正したいといった場合には対応できない。なぜなら頂点1,2,4,5と領域A,Dのみの積分結果のデータは存在しないためである。
そこで本発明では、H,Gを、それぞれ2つの行列に保存するようにする。例えば、数6では、1列目の値は頂点iに対する「領域H,Aの積分結果」となっているので、これを、頂点iに対する「領域Aの積分結果」と「領域Hの積分結果」の2つの値に分解し、それぞれ別に保存する。他の成分についても同様に2つに分けることができる。従って、2つの行列があれば保存できる。
また、逆に、
「領域H,Aの積分結果」の値=「領域Hの積分結果」の値+「領域Aの積分結果」の値
で計算できるため、2つの行列の和を求めるだけで、行列H,Gの値が求まる。2つの行列には領域ごとの積分の値が格納されているため、例えば先程の例で頂点5を削除する場合には領域Dに対応する値を、頂点3を削除する場合には領域B,Cに対応する値を削除するだけで良い。そして、仮想物体の描画の完了後には、最終処理として2つの行列の和を求めてH,Gの行列の組み立ては完成する。以上が描画プロセスである。
「領域H,Aの積分結果」の値=「領域Hの積分結果」の値+「領域Aの積分結果」の値
で計算できるため、2つの行列の和を求めるだけで、行列H,Gの値が求まる。2つの行列には領域ごとの積分の値が格納されているため、例えば先程の例で頂点5を削除する場合には領域Dに対応する値を、頂点3を削除する場合には領域B,Cに対応する値を削除するだけで良い。そして、仮想物体の描画の完了後には、最終処理として2つの行列の和を求めてH,Gの行列の組み立ては完成する。以上が描画プロセスである。
操作プロセスでは、組み立てたHU=GTの式(数1)を連立方程式の形(数5のAX=Z)にして解く。数1から数5への式変形は、与える境界条件に依存する。
連立方程式の計算は、次の3つの段階で構成される。第1段階では連立方程式を数値解析により解く。そして、同時にD.L. Jamesの手法の計算で必要な前処理の一部を実行する。この際、Gaussの消去法を用いれば効率的に計算できる。第2段階では、D.L.Jamesの手法を用いる。境界条件によっては前処理の計算がすべては完了していなくともD.L. Jamesの手法を利用できる。第3段階は、前処理がすべて完了している条件とし、D.L.Jamesの手法を利用する。前処理が完了したため、あらゆる境界条件に対してもD.L. Jamesの手法を用いることができる。第2段階から、再び第1段階に戻ることはあるが、第3段階の条件を満たしたら、以降はすべて第3段階で計算を行う。
D.L. Jamesの手法の概要を述べる。まず、図11のような状態を考える。図11は正方形型の仮想物体に対して適用する場合であり、黒塗りの丸は変位を定数として境界条件を与えた頂点、白抜きの丸は変位を未知の値として境界条件を与えた頂点を表す。図11(a)は、初期の境界条件を表す。次に図11(b)のように、ユーザが矩形物体を用いて仮想物体の右上側の角にある頂点を操作したとする。それに伴い、押されている仮想物体の右上の頂点の変位が定数となる。そして、連立方程式の解を得ることで変位未知の頂点の変位の値が求まり、仮想物体が変形した様子を示している。
図7の操作プロセスで示したとおり、まず初期境界条件を決定する。これは、ユーザによる変形操作が行われていない状態の境界条件を与えることが適している(原理上はどのような境界条件であってもかまわないが、ほとんどの場合でこの境界条件が最も計算量を小さくできる)。図11(a)では、仮想物体の下方の頂点の変位を定数とし、他の箇所では変位を未知の値としている。この境界条件を与えた場合の数5を以下の式とする。
次に、ユーザが操作を行った場合を考える。図11(b)のように、ユーザの操作によって、境界条件は下側及びユーザの操作点に対応する頂点では変位が定数、他の頂点では変位が未知の値という境界条件へと変化する。このときの数5を以下のように記述する。
数8の未知の値X1が求めるべき解である。この解を得るために、D.L. Jamesの手法では以下の2つの式を順に実行する。
次に、ユーザが操作を行った場合を考える。図11(b)のように、ユーザの操作によって、境界条件は下側及びユーザの操作点に対応する頂点では変位が定数、他の頂点では変位が未知の値という境界条件へと変化する。このときの数5を以下のように記述する。
数8の未知の値X1が求めるべき解である。この解を得るために、D.L. Jamesの手法では以下の2つの式を順に実行する。
ここで、δU,δTは変位及び力の初期境界条件からの変化量、δAは初期境界条件に対するAの変化量を示し、つまりδA=A1−A0である。I,Eは単位行列を表す。また、右上の添え字Tは転置行列、左下の添え字CはδAの成分の中ですべての値が0となる列を削除したサブ行列を表し、サブ行列の行数はnとなるが列数はnよりも小さな値をとる。
D.L. Jamesの手法は、数9〜数10を解くことである。このとき、前処理として計算する値は、数9の右辺第2項と第3項の「A0の逆行列の計算」及び「A0の逆行列とHまたはGとの積の計算」となる。つまり、数9の
の2つの値の計算結果を予め計算する。また数9の値だけでなく、数10のA0の逆行列とδACとの積の値も数11の計算結果から求めることができるため、数11の前処理により、数9及び数10は低い計算コストとなる。
の2つの値の計算結果を予め計算する。また数9の値だけでなく、数10のA0の逆行列とδACとの積の値も数11の計算結果から求めることができるため、数11の前処理により、数9及び数10は低い計算コストとなる。
連立方程式の計算の第1段階について述べる。この第1段階では、与えられた境界条件に対して数8の連立方程式を組み立て解く。また、同時にD.L. Jamesの手法における数11の前処理を実行する。ただし、数11は逆行列の計算を含んでおり、かつ、正方行列と正方行列の積も求めなければならないため、計算量はかなり大きい。そこで、数11を求めるための処理を行列の列の数であるn個に分割して求める。この場合の計算法は次のようにする。
まず、以下の式を考える。
ここで、Yは成分が未知の値からなるn×1の行列、Wは任意の定数からなるn×1の行列とし、その他の値は数7〜数11と同様とする。数12は、Wに値を与えれば連立方程式の形となりYの値が求まる。Yの値は、以下の式で書くことができる。
仮に、Wの成分のi行目の値が1で、それ以外の値が0であったとする。すると、
となる。数12の連立方程式を解くことでYの値が求まるので、右辺のi列の値が求まり、数11の前処理の一部を実行できたことになる。
ここで、Yは成分が未知の値からなるn×1の行列、Wは任意の定数からなるn×1の行列とし、その他の値は数7〜数11と同様とする。数12は、Wに値を与えれば連立方程式の形となりYの値が求まる。Yの値は、以下の式で書くことができる。
仮に、Wの成分のi行目の値が1で、それ以外の値が0であったとする。すると、
となる。数12の連立方程式を解くことでYの値が求まるので、右辺のi列の値が求まり、数11の前処理の一部を実行できたことになる。
また、連立方程式の解法にGaussの消去法を用いたとする。この場合、数12に対するGaussの消去法の計算と、数8に対するGaussの消去法の計算は、計算処理に共通部分が多い。このことを利用すれば計算を高速化できる。これは、A1,A0の値は、ユーザの与えた境界条件と初期境界条件との違いにしか依存しないため、ほとんどの列の値が同じになるためである。従って、共通部分は一方のみ演算すればよい。図12は、演算の例を示している。
図12にあるように一般的なGaussの消去法では、行列を操作することによって係数部分を単位行列にし、そのときの右辺の値が連立方程式の解となる。A1,A0には、例えば図12のように成分の値の共通部分が存在する。A1,A0に対してGaussの消去法を適用する場合、はじめに図に示すように共通の値のみに対して単位行列を作る操作を行う。共通部分に関しては同じ演算となるため、どちらか一方のみ計算すればよく、計算時間を短縮できる。共通部分以外に関しては、それぞれで異なった演算を行う。
以上の操作により、数8の解の計算とD.L. Jamesの手法の前処理の計算を同時に効率よく計算できる。Gに対しても同様に計算できる。ここで重要な点として、数11の2つの値は、片方の行列のi列を計算したら、次にもう片方の行列のi列の計算を行うといったように、交互に計算していく方が効率が良い。その理由は次の第2段階の説明で述べる。
操作プロセスの第2段階では、前処理がすべては終わっていなくともD.L. Jamesの手法が利用可能な条件が存在するため、その場合にD.L.Jamesの手法を利用する。数9、数10の2つの式を計算できる条件が、ここでいう利用可能な条件となる。この条件を明らかにするために図11を例にとり、はじめに数9について考えてみる。
数9右辺第1項は、初期の境界条件でZ0の値を0としておけば0となり、計算に影響しない。通常、Z0の値はこのように設定する。δUは、ユーザにより操作された頂点に対応する成分でのみ0以外の値を持つ。このとき、0以外の値を持つ成分がk行とl行であったとする(2つに限らず、複数の行が0以外の値を持つことはある)。すると、数9右辺第2項で必要な前処理は、δUの係数のうちのk列とl列の成分の値のみとなり、これらの値がわかっていれば計算できる。数9右辺第3項では、各頂点に働く力δTを0としておけば、数9右辺第3項は0となる。
次に、数10について考える。数10で前処理が必要な値は、以下の値である。
それぞれの値の意味は、数10と同様である。結局、数15は以下の式となる。
数16右辺第1項が前処理の必要な式である。右下の添え字Cはサブ行列を表しているが、今回の例ではk列とl列の値からなるn×2のサブ行列を指すことになる。この場合、以下の式が成り立つ。
なぜなら、はじめの境界要素法の説明(数1から数5への変形)で述べたように、A1はHまたはGの成分に負の符号をつけた値から構成される。従って、A1のk列とl列は境界条件として変位が定数となり、変位が定数の場合にはG列の成分から構成されるため、Gのk列とl列の負の値と等しくなる。
それぞれの値の意味は、数10と同様である。結局、数15は以下の式となる。
数16右辺第1項が前処理の必要な式である。右下の添え字Cはサブ行列を表しているが、今回の例ではk列とl列の値からなるn×2のサブ行列を指すことになる。この場合、以下の式が成り立つ。
なぜなら、はじめの境界要素法の説明(数1から数5への変形)で述べたように、A1はHまたはGの成分に負の符号をつけた値から構成される。従って、A1のk列とl列は境界条件として変位が定数となり、変位が定数の場合にはG列の成分から構成されるため、Gのk列とl列の負の値と等しくなる。
以上のように、一部の前処理のみであってもD.L. Jamesの手法が利用できる。また、例で述べてきたように、k列とl列に対して、数11の2つの値を両方計算しておかなければ実行できないため、1段階目の前処理の計算を行う場合には、2つの値を交互に計算しておく方が効率が良い。
操作プロセスの第3段階は、D.L. Jamesの手法のみを使って解を得る。第3段階に移行する条件は、数11の2つの値が求まり、前処理が終わっていることである。
以上が操作プロセスとなる。操作プロセスでは、前処理をせずにかつ最終的に高速な計算を実現するために、はじめは連立方程式を解くことで境界要素法の解を得ると同時にD.L. Jamesの手法のための前処理の計算が行われており、前処理を終えればD.L. Jamesの手法が実行できる。また、前処理の計算はGaussの消去法を用いれば、共通する計算部分を持たせ効率よく計算できる。さらに、境界条件によっては、D.L.Jamesの手法は前処理がすべては計算されていなくとも実行可能なことから、前処理がすべて終わらなくともD.L. Jamesの手法を実行できる機能を有している。
10・・・変形前の仮想物体
11・・・変形後の仮想物体
11・・・変形後の仮想物体
Claims (5)
- 作業者が描画した仮想物体を変形させる境界要素法による変形シミュレーション方法であって、
作業者が仮想物体を描画する仮想物体描画段階と、
前記仮想物体描画段階の間に、境界要素法の行列の組み立てを実行する行列組み立て段階と、
仮想物体描画段階の終了後に仮想物体の初期境界条件を決定する初期境界条件決定段階と、
作業者が仮想物体を変形させる操作を行なったときに仮想物体の境界条件を設定する境界条件設定段階と、
前記行列組み立て段階で組み立てられた行列を前記境界条件設定段階で設定された境界条件に従って連立方程式としその解を得る連立方程式計算段階と、
前記連立方程式計算段階で得られた解を反映して仮想物体が変形した状態を描画する仮想物体変形状態描画段階と、を備え、
前記連立方程式計算段階が、下記の[a]〜[c]のいずれか、または2つ以上の組み合わせによって行なわれることを特徴とする、仮想物体の変形シミュレーション方法。
[a]前記連立方程式の解を得ながら、D.L. Jamesの手法の前処理計算を行なう。
[b]D.L. Jamesの手法の前処理計算が一部完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。
[c]D.L. Jamesの手法の前処理計算が全て完了している場合は、D.L.Jamesの手法により前記連立方程式の解を得る。 - 請求項1記載の仮想物体の変形シミュレーション方法の、前記行列組み立て段階において、組み立てるべき行列の各要素を描画された仮想物体の積分領域ごとの計算結果に分けることにより、組み立てるべき行列を2つの行列に分けて保存しておき、仮想物体の描画が完了したら前記2つの行列の和を取ることにより、境界要素法の行列の組み立てが完成することを特徴とする仮想物体の変形シミュレーション方法。
- 請求項1または2記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L. Jamesの手法の前処理計算を実行する際、1回の連立方程式の計算に対して、D.L. Jamesの手法の前処理計算で求める行列のうちの任意の1列の値を求めることを特徴とする仮想物体の変形シミュレーション方法。
- 請求項3記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L.Jamesの手法の前処理計算のための連立方程式の計算と、境界要素法の解を得るための連立方程式の計算を実行する際にGaussの消去法を用いることで、共通する計算部分に関して、同時に処理することを特徴とする仮想物体の変形シミュレーション方法。
- 請求項1〜4のいずれかに記載の仮想物体の変形シミュレーション方法の、前記連立方程式計算段階において、D.L. Jamesの手法の前処理計算が必要な2つの行列に対して、一方の行列の前処理計算がi列(iは自然数)に対するものであれば、次にもう一方の行列のi列に対する前処理計算を行ない、2つの行列の同じ列の要素を連続して計算することを特徴とする仮想物体の変形シミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009066028A JP5391759B2 (ja) | 2008-04-18 | 2009-03-18 | 仮想物体の変形シミュレーション方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008108761 | 2008-04-18 | ||
JP2008108761 | 2008-04-18 | ||
JP2009066028A JP5391759B2 (ja) | 2008-04-18 | 2009-03-18 | 仮想物体の変形シミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009277216A true JP2009277216A (ja) | 2009-11-26 |
JP5391759B2 JP5391759B2 (ja) | 2014-01-15 |
Family
ID=41442546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009066028A Expired - Fee Related JP5391759B2 (ja) | 2008-04-18 | 2009-03-18 | 仮想物体の変形シミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5391759B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003236907A (ja) * | 2002-02-15 | 2003-08-26 | Nissan Motor Co Ltd | 型変形シミュレーション装置および型変形シミュレーション方法 |
-
2009
- 2009-03-18 JP JP2009066028A patent/JP5391759B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003236907A (ja) * | 2002-02-15 | 2003-08-26 | Nissan Motor Co Ltd | 型変形シミュレーション装置および型変形シミュレーション方法 |
Non-Patent Citations (3)
Title |
---|
CSNB199700125001; 鳥谷部 達: 工学における数値シュミレーション 初版, 19880130, pp.93-104, 丸善株式会社 * |
JPN6013046180; 渡辺 隆史: '2段階境界要素法を用いる三次元弾性物体の変形と移動の実時間アニメーション法' 電子情報通信学会論文誌D-II Vol.J88-D-II No.9, 20050901, pp.1876-1888 * |
JPN6013046182; 鳥谷部 達: 工学における数値シュミレーション 初版, 19880130, pp.93-104, 丸善株式会社 * |
Also Published As
Publication number | Publication date |
---|---|
JP5391759B2 (ja) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Choi et al. | Continuous collision detection for ellipsoids | |
US9881388B2 (en) | Compression and decompression of a 3D modeled object | |
EP2833326B1 (en) | Lossless compression of a 3D mesh including transforming of the mesh to a image | |
JP6787661B2 (ja) | 工作物の機械加工のシミュレート | |
US11144679B2 (en) | Engraving a 2D image on a subdivision surface | |
Bazilevs et al. | Isogeometric analysis using T-splines | |
CN109145352B (zh) | 用于学习取图像作为输入的函数的数据集 | |
US10796497B2 (en) | Distance field coupled fitted deformation lattices for shape modification | |
JPH0350679A (ja) | コンピュータモデルシステム | |
CN113724401B (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
KR20150073859A (ko) | Cad 기반 초기 표면 기하형상 정정 | |
Shen et al. | A line/trimmed NURBS surface intersection algorithm using matrix representations | |
US20210141869A1 (en) | Automated Analysis of Mechanical Designs | |
JP5391759B2 (ja) | 仮想物体の変形シミュレーション方法 | |
Aouada et al. | Deformation transfer of 3d human shapes and poses on manifolds | |
CN110633483A (zh) | 半导体设计过程中的仿真方法、存储介质和半导体设计*** | |
US9703903B2 (en) | Designing a folded sheet object | |
Lin et al. | Affine arithmetic-based B-Spline surface intersection with gpu acceleration | |
WO2001052193A9 (fr) | Affichage du deplacement par transfert de charge d'un objet | |
US9911229B2 (en) | Transmission and configuration of three dimensional digital content | |
CN112614046B (zh) | 一种二维平面上绘制三维模型的方法及装置 | |
US20230267696A1 (en) | Responsive Video Canvas Generation | |
JP2009265987A (ja) | 接触面圧および表面下応力の計算方法および計算装置 | |
JP2008262263A (ja) | 接触面圧および表面下応力の計算方法 | |
Arbour | 12 missing. specimens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120220 |
|
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: 20130917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130930 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |