(57)【要約】【課題】流体と剛体の連携シミュレーションを計算量を増大させることなく簡易に実現する【解決手段】ある時刻に流体から剛体に作用する力を考慮して、ある時刻から所定時間経過後の剛体の挙動をシミュレーションし、この所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定し、この剛体周囲における流体の速度を考慮して、所定時間経過後の流体の挙動をシミュレーションする。【選択図】　　図２
2004021883.tif 000002
【特許請求の範囲】
【請求項１】
相互作用する流体と剛体の挙動をシミュレーションするシミュレーション装置であって、
ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションする剛体シミュレーション手段と、
前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段と、
前記速度設定手段により設定された速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションする流体シミュレーション手段と、
を具備することを特徴とする流体と剛体の連携シミュレーション装置。
【請求項２】
前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換する変換手段と、
前記ＶＯＳ値を前記流体のシミュレーション格子にマッピングするマッピング手段と、
前記ＶＯＳ値がマッピングされたシミュレーション格子に基づいて前記剛体に作用する力を計算する流体外力計算手段と、
を具備することを特徴とする請求項１に記載の連携シミュレーション装置。
【請求項３】
前記マッピング手段は、前記所定時間経過後における剛体の位置及び姿勢に基づいて、前記ある時刻における前記シミュレーション格子上でのＶＯＳ値のマッピングを変更することを特徴とする請求項２に記載の連携シミュレーション装置。
【請求項４】
相互作用する流体と剛体の挙動をシミュレーションするシミュレーション装置であって、
前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換する変換手段と、
前記ＶＯＳ値を流体シミュレーション格子にマッピングするマッピング手段と、
時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算する外力計算手段と、
前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算する剛体シミュレーション手段と、
前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段と、
前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算する第１の流体シミュレーション手段と、
時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および前記速度設定手段により設定された同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算する第２の流体シミュレーション計算手段と、
を具備することを特徴とする流体と剛体の連携シミュレーション装置。
【請求項５】
相互作用する流体と剛体の挙動をシミュレーションするシミュレーション方法であって、
ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションするステップと、
前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定するステップと、
設定された前記剛体周囲における流体の速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションするステップと、
を具備することを特徴とする流体と剛体の連携シミュレーション方法。
【請求項６】
前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換するステップと、
前記ＶＯＳ値を前記流体のシミュレーション格子にマッピングするステップと、
前記ＶＯＳ値がマッピングされたシミュレーション格子に基づいて前記剛体に作用する力を計算するステップと、
を具備することを特徴とする請求項５に記載の連携シミュレーション方法。
【請求項７】
前記所定時間経過後における剛体の位置及び姿勢に基づいて、前記ある時刻における前記シミュレーション格子上でのＶＯＳ値のマッピングを変更するステップをさらに具備することを特徴とする請求項５に記載の連携シミュレーション方法。
【請求項８】
相互作用する流体と剛体の挙動をシミュレーションするシミュレーション方法であって、
前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換するステップと、
前記ＶＯＳ値を流体シミュレーション格子にマッピングするステップと、
時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算するステップと、
前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算するステップと、
前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定するステップと、
前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算するステップと、
時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算するステップと、
を具備することを特徴とする流体と剛体の連携シミュレーション方法。
【請求項９】
相互作用する流体と剛体の挙動をシミュレーションするプログラムであって、
コンピュータを、
ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションする剛体シミュレーション手段、
前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段、
前記速度設定手段により設定された速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションする流体シミュレーション手段、
として機能させるための流体と剛体の連携シミュレーションプログラム。
【請求項１０】
相互作用する流体と剛体の挙動をシミュレーションするプログラムであって、
コンピュータを、
前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換する変換手段、
前記ＶＯＳ値を流体シミュレーション格子にマッピングするマッピング手段、
時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算する外力計算手段、
前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算する剛体シミュレーション手段、
前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段、
前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算する第１の流体シミュレーション手段、
時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および前記速度設定手段により設定された同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算する第２の流体シミュレーション計算手段、
として機能させるための剛体と流体の連携シミュレーションプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は３次元コンピュータグラフィックス（ＣＧ）分野に好適であり、相互作用する流体と剛体の挙動をシミュレーションする流体と剛体の連携シミュレーション装置、方法、およびプログラムに関する。
【０００２】
【従来の技術】
とりわけエンジニアリングの分野において、流体と剛体との間に働く力の相互作用についてのシミュレーションは重要とされ、ＡＬＥ（Ａｒｂｉｔｒａｒｙ　Ｌａｇｒａｎｇｉａｎ　Ｅｕｌｅｒｉａｎ）法やスライディング・メッシュ（Ｓｌｉｄｉｎｇ　ｍｅｓｈ）法などが知られている。ＡＬＥ法は、主に振動する物体からの影響についての流体解析に用いられ、また、スライディング・メッシュ法は、主に回転する物体からの影響についての流体解析に用いられている。
【０００３】
これらシミュレーション計算法は、いずれも剛体形状に合わせてシミュレーション領域を非構造格子に分割して計算を行うものであり、エンジニアリング利用に耐える緻密なシミュレーションが行えるものの、計算負荷が高いことから、必ずしも計算機資源が豊富でない非エンジニアリング分野の利用には不向きである。
【０００４】
一方、ＣＧ分野においては、フォスター（Ｆｏｓｔｅｒ）とフェドキウ（Ｆｅｄｋｉｗ）らがレベルセット（Ｌｅｖｅｌ　Ｓｅｔ）法とパーティクル（粒子）法を組み合わせた流体シミュレーション手法を提案している。この手法は、移動する物体からの影響を流体に与える計算を行うものであり、流体が波立つようなシーンの作成が可能である。しかしながら、この手法は剛体と流体との相互作用に関する計算が一方的である。たとえば、剛体の動きによる影響を流体に与えることはできるが、その逆に、流体の動きからの影響を剛体に与えることができない。したがって、流体の挙動（例えば勢いのある水の流れ）に従い剛体が力を受けて回転する様子などといったシーンの作成が困難である。また、複雑に流体の動きが変化するような状況への適用も困難であり、現実感を伴うシーンを容易に作成できないという問題点がある。
【０００５】
【発明が解決しようとする課題】
したがって、本発明は、従来、エンジニアリング分野にて用いられている非構造格子による手法等に比して計算量が少なく汎用性があり、しかも、流体と剛体との力の相互作用を考慮した現実感のあるシーンの作成を可能にする流体と剛体のシミュレーション装置、方法、およびプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決し目的を達成するために本発明は次のように構成されている。
【０００７】
本発明は、相互作用する流体と剛体の挙動をシミュレーションするシミュレーション装置であって、ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションする剛体シミュレーション手段と、前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段と、前記速度設定手段により設定された速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションする流体シミュレーション手段と、を具備することを特徴とする流体と剛体の連携シミュレーション装置である。
【０００８】
また本発明は、相互作用する流体と剛体の挙動をシミュレーションするシミュレーション装置であって、前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換する変換手段と、前記ＶＯＳ値を流体シミュレーション格子にマッピングするマッピング手段と、時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算する外力計算手段と、前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算する剛体シミュレーション手段と、前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段と、前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算する第１の流体シミュレーション手段と、時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および前記速度設定手段により設定された同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算する第２の流体シミュレーション計算手段と、を具備することを特徴とする流体と剛体の連携シミュレーション装置である。
【０００９】
また本発明は、相互作用する流体と剛体の挙動をシミュレーションするシミュレーション方法であって、ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションするステップと、前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定するステップと、設定された前記剛体周囲における流体の速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションするステップと、を具備することを特徴とする流体と剛体の連携シミュレーション方法である。
【００１０】
また本発明は、相互作用する流体と剛体の挙動をシミュレーションするシミュレーション方法であって、前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換するステップと、前記ＶＯＳ値を流体シミュレーション格子にマッピングするステップと、時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算するステップと、前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算するステップと、前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定するステップと、前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算するステップと、時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算するステップと、を具備することを特徴とする流体と剛体の連携シミュレーション方法である。
【００１１】
また本発明は、相互作用する流体と剛体の挙動をシミュレーションするプログラムであって、コンピュータを、ある時刻に流体から剛体に作用する力を考慮して、前記ある時刻から所定時間経過後の剛体の挙動をシミュレーションする剛体シミュレーション手段、前記所定時間経過後における剛体の挙動に基づく速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段、前記速度設定手段により設定された速度を考慮して、前記所定時間経過後の流体の挙動をシミュレーションする流体シミュレーション手段、として機能させるための流体と剛体の連携シミュレーションプログラムである。
【００１２】
また本発明は、相互作用する流体と剛体の挙動をシミュレーションするプログラムであって、コンピュータを、前記剛体の形状データ値をＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値に変換する変換手段、前記ＶＯＳ値を流体シミュレーション格子にマッピングするマッピング手段、時刻ｔにおける流体の圧力から、同時刻ｔに剛体に作用する並進力及びトルクを計算する外力計算手段、前記並進力及びトルク、および同時刻ｔに剛体に作用する流体以外からの外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を計算する剛体シミュレーション手段、前記時刻ｔ＋Δｔにおける剛体の速度と同じ値を、剛体周囲における流体の速度として設定する速度設定手段、前記時刻ｔにおける流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および前記剛体周囲における流体の速度に基づいて、前記時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算する第１の流体シミュレーション手段、時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および前記速度設定手段により設定された同時刻ｔ＋Δｔにおける前記剛体周囲における流体の速度に基づいて、同時刻ｔ＋Δｔにおける流体の圧力を計算する第２の流体シミュレーション計算手段、として機能させるための剛体と流体の連携シミュレーションプログラムである。
【００１３】
【発明の実施の形態】
図１は本発明の一実施形態に係る画像処理システムの概略構成を示すブロック図である。本実施形態は、例えばパーソナルコンピュータ（ＰＣ）やエンジニアリング用ワークステーションなど、一般的なコンピュータを用いて実現することができる。その概略構成としては、例えば図１に示すように、演算装置１００、入力装置２００、表示装置３００、および記録装置４００を具備して成る。演算装置１００は、図示しないがＣＰＵ、メモリ、システムバス等の基本的なコンピュータ・ハードウェア構成を有する。本発明に係る流体と剛体の連携シミュレーションは、例えばコンピュータプログラムとして実施される。同プログラムは記録装置４００から読み出されてメモリにストアされ、ＣＰＵにより実行される。尚、本発明に係る流体と剛体の連携シミュレーションを、コンピュータプログラムではなくハードウェア回路そのものとして実施することもできる。
【００１４】
入力装置２００は、キーボードやポインティングデバイス等である。ユーザは入力装置２００を用いて、シミュレーションに必要な各種データを入力したり、シミュレーション処理の実行開始を命ずるコマンド等を演算装置１００に与えることができる。表示装置３００は、ＣＲＴや液晶等の表示装置であり、演算装置１００によるシミュレーションの結果として生成されたシーンの画像を表示する。このような画像はコンピュータグラフィックス（ＣＧ）と称される。記録装置４００は、ハードディスク装置や光磁気ディスク装置（ＭＯ）等からなり、流体と剛体の連携シミュレーションに係るプログラムの実行形式データ、同シミュレーションに用いられる初期データや形状データ、またはシミュレーション結果の画像データ等を記録する。本実施形態に係る画像処理システムに、さらにプリンタ等の周辺機器を接続してもよい。
【００１５】
図２は、本実施形態に係る流体と剛体の連携シミュレーション装置の概略構成を示すブロック図である。同図に示すように、初期データ入力部１、ＶＯＳ値データ変換部２、マッピング部３、流体速度−ＶＯＦ値計算部４、流体外力計算部５、剛体シミュレーション部６、流体−剛体境界速度設定部７、および流体圧力計算部８から構成されている。
【００１６】
初期データ入力部１は、流体と剛体の連携シミュレーションに必要な初期データを入力する部分である。初期データは、入力装置２００を通じてユーザから直接与えられたり、記録装置４００に記録されているデータファイル等から与えられる。シミュレーション対象に関する初期データの内訳としては、流体に関するデータと剛体に関するデータとに大別される。
【００１７】
流体に関するデータは、仮想的な３次元のシミュレーション空間を一様な微小領域に分割する格子（以下、「（流体の）シミュレーション格子」）において、流体の解析的特性を示すデータであり、流体の速度、圧力、ＶＯＦ（Ｖｏｌｕｍｅ　Ｏｆ　Ｆｌｕｉｄ）値、および剛体周囲における流体の速度（流体−剛体境界速度）等である。これらのうち、流体の速度、圧力、ＶＯＦ値について初期データが与えられる。
【００１８】
剛体に関するデータとしては、まずその形状データがある。ここでいう形状データとは、剛体の３次元的な形状を複数の多面体（ポリゴン）の組み合わせにより近似表現したものであって、ポリゴン頂点の座標データや、ベクトルデータ等を含む。形状データは公知の３次元モデリングツール等のソフトウェアにより作成することができる。
【００１９】
また、シミュレーション格子において、上述した流体のＶＯＦ値と同列に扱うことのできる、剛体についての解析的特性を示す値の一つとして、ＶＯＳ（Ｖｏｌｕｍｅ　Ｏｆ　Ｓｏｌｉｄ）値を用いる。このＶＯＳ値は、流体のシミュレーション格子と同じ大きさの格子を用いて剛体を近似した値に相当する。シミュレーション格子において、流体をＶＯＦ値により表現し、剛体についてはこれをＶＯＳ値により表現することによって、流体と剛体との相互作用を、両者間の整合性を損なうことなく適切に計算することができる。なお、剛体のシミュレーションについては、ＶＯＳ値よりも高精度なポリゴンデータを用いて衝突処理等をする。
【００２０】
また、剛体に関する他のデータとして、剛体の位置、姿勢（回転）、速度、角速度や、流体から剛体に作用する外力としての並進力およびトルク、ならびに流体からの外力以外の他の外力等がある。これら剛体に関するデータのうち、剛体の位置、姿勢、速度、および角速度について初期データが与えられる。
【００２１】
ＶＯＳ値データ変換部２は、初期データ入力部１に入力された剛体の形状データ（ポリゴンデータ）をＶＯＳ値に変換する。マッピング部３は、ＶＯＳ値データ変換部２により得られた剛体のＶＯＳ値を、その位置と姿勢を考慮して流体シミュレーション格子にマッピングする。
【００２２】
本実施形態は、相互作用する流体及び剛体のそれぞれの挙動を、時刻ｔから微小時間Δｔ経過後の状態を求める以下の計算を繰り返し行うことによりシミュレートする構成である。
【００２３】
まず流体速度−ＶＯＦ値計算部４は、時刻ｔにおける流体の速度、圧力、ＶＯＦ値、および剛体境界速度から、微小時間Δｔ後の時刻ｔ＋Δｔにおける流体の速度およびＶＯＦ値を計算する。
【００２４】
一方、時刻ｔにおける流体の圧力に基づいて、同時刻ｔに流体から剛体に作用する外力としての並進力およびトルクを流体外力計算部５が計算する。この計算された剛体の並進力およびトルクと、同時刻ｔに剛体に作用する流体以外の他の外力、ならびに同時刻ｔにおける剛体の位置、姿勢、速度、および角速度から、剛体シミュレーション部６は、微小時間Δｔ後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度を、他の剛体との衝突を考慮しながら計算する。
【００２５】
ここで上記マッピング部３は、剛体シミュレーション部６により計算された時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度に基づいて、流体シミュレーション格子上における剛体のＶＯＳ値をマッピングし直す（マッピングの更新）。そして流体−剛体境界速度設定部７は、ＶＯＳ値のマッピングが更新された流体シミュレーション格子上で同時刻ｔ＋Δｔにおける剛体の速度を参照すると共に、これと同じ値を時刻ｔ＋Δｔにおける流体の剛体境界速度に設定する。
【００２６】
流体圧力計算部８は、時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および剛体境界速度から、時刻ｔ＋Δｔにおける流体の圧力を計算する。
【００２７】
以下、本実施形態に係る流体と剛体の連携シミュレーションの詳細な処理手順を図３のフローチャートを参照しながら説明する。
【００２８】
初期条件として、流体の速度、圧力、ＶＯＦ値の初期データが初期データ入力部１に入力される（ステップＳ１）。また、剛体のポリゴンデータ（形状データ）ならびにその位置、姿勢、速度、および角速度の初期データについても初期データ入力部１に入力される（ステップＳ２，３）。
【００２９】
次に、ＶＯＳ値データ変換部２により、剛体のポリゴンデータがＶＯＳ値に変換される（ステップＳ４）。図４は、剛体の全部を含み、かつその周囲を取り囲むよう配置された局所的な格子を示す図である。この図４に示す格子（の一つ）は、上述したように流体のシミュレーション格子（の一つ）と同じ大きさを有する。ここで、本実施形態のＶＯＳ値データ変換部２は、各格子の空間上の位置に対応する剛体部分が同格子内に占める体積の割合をＶＯＳ値として計算する。この計算されたＶＯＳ値は、各格子の中心において値を持つ。ＶＯＳ値が存在しない格子（点）について、そのＶＯＳ値を、他の格子（点）のＶＯＳ値を用いる高次関数（例えば３次関数）による補間に基づいて計算してもよい。
【００３０】
ＶＯＳ値データ変換部２により求められたＶＯＳ値は、マッピング部３により流体のシミュレーション格子（配列）上にマッピングされる（ステップＳ５）。このとき、マッピング部３は、図５に示すようにその時点での剛体の位置および姿勢を考慮してマッピングを行う。尚、図５においてシミュレーション格子上に記されたハッチングは、ＶＯＳ値に対応している。
【００３１】
ここで、ステップＳ５でＶＯＳ値のマッピングを行った流体シミュレーション格子において、流体と剛体とが接する境界の流体速度が、剛体の速度および角速度の初期値に基づいて設定される。この流体の速度を、本明細書では「剛体境界速度」という。なお、時刻ｔが初期時刻とは異なる（ｔ≠０）場合は、後述のステップＳ１０において剛体境界速度は計算、設定される。
【００３２】
次に、時刻ｔ（初期時刻なら時刻ｔ＝０）における流体の速度、圧力、ＶＯＦ値、および剛体境界速度に基づき、同時刻ｔから微小時間Δｔ経過後の時刻ｔ＋Δｔにおける流体の速度、およびＶＯＦ値が流体速度−ＶＯＦ値計算部４により計算される（ステップＳ６）。ここで、流体速度−ＶＯＦ値計算部４は、例えば公知のＶＯＦ法（Ｖａｒｉａｂｌｅ−Ｄｅｎｓｉｔｙ　Ｍｏｄｅｌ）およびＣＩＰ法を利用して計算を行う。ＶＯＦ法の詳細については例えば文献１（Ｃ．Ｗ．Ｈｉｒｔ　ａｎｄ　Ｂ．Ｄ．Ｎｉｃｈｏｌｓ．　Ｖｏｌｕｍｅ　ｏｆ　Ｆｌｕｉｄ　（ＶＯＦ）　Ｍｅｔｈｏｄ　ｆｏｒ　ｔｈｅ　Ｄｙｎａｍｉｃｓ　ｏｆ　Ｆｒｅｅ　Ｂｏｕｎｄａｒｉｅｓ．　Ｊｏｕｒｎａｌ　ｏｆＣｏｍｐｕｔａｔｉｏｎａｌ　Ｐｈｙｓｉｃｓ，　３９．　ｐｐ．２０１−２２５，　（１９８１）．）に記載されている。また、ＣＩＰ法の詳細については例えば文献２（Ｔ．Ｙａｂｅ．　Ｕｎｉｆｉｅｄ　Ｓｏｌｖｅｒ　ＣＩＰ　ｆｏｒ　Ｓｏｌｉｄ，　Ｌｉｑｕｉｄ　ａｎｄ　Ｇａｓ．　Ｃｏｍｐｕｔａｔｉｏｎａｌ　Ｆｌｕｉｄ　Ｄｙｎａｍｉｃｓ　Ｒｅｖｉｅｗ　（１９９７）．）に記載されている。
【００３３】
次に、時刻ｔにおいて流体から剛体の全体に作用する圧力をＶＯＳ値をマッピングしたシミュレーション格子を参照して求める。この時刻ｔにおける圧力は、同時刻ｔにおける剛体の位置、姿勢と、先に述べた剛体境界速度とを考慮し、剛体と流体との境界部分における流体の圧力ベクトルの総和として計算される。この計算された圧力に基づいて、同時刻ｔに流体から剛体に作用する外力としての並進力およびトルクが流体外力計算部５により計算される（ステップＳ７）。図６は、剛体に作用する力の様子を示す図である。同図において、矢印ｎｐは流体からの圧力、矢印Ｆｃは並進力、矢印Ｔｃはトルクを示している。なお、同図には流体以外からの外力（例えば大気圧）についても示されている。
【００３４】
次に、時刻ｔにおける剛体の位置、姿勢、速度、角速度、並進力、トルク、および流体以外の外力に基づいて、同時刻ｔから微小時間経過後の時刻ｔ＋Δｔにおける剛体の位置、姿勢、速度、および角速度が剛体シミュレーション部６により計算される（ステップＳ８）。ここでの計算は剛体のみについてのシミュレーション計算であり、上述のようにＶＯＳ値ではなく高精度なポリゴンデータが用いられる。剛体シミュレーションの詳細については、例えば文献３（Ｄ．Ｂａｒａｆｆ　ａｎｄ　Ａ．Ｗｉｔｋｉｎ．　Ｐｈｙｓｉｃａｌｌｙ　ｂａｓｅｄ　ｍｏｄｅｌｉｎｇ：　ｐｒｉｎｃｉｐｌｅｓ　ａｎｄ　ｐｒａｃｔｉｃｅ．　ＳＩＧＧＲＡＰＨ　１９９７　Ｃｏｕｒｓｅ　Ｎｏｔｅ　（１９９７）．）に記載されている。
【００３５】
この剛体シミュレーション時には、時刻ｔから時刻ｔ＋Δｔまでの間に剛体同士の衝突が生じているか否かを判定する衝突判定処理を併用することが好ましい。剛体同士に衝突が生じると判定された場合は、これらが互いにめり込まないように反発力を計算して作用させる。なお、剛体同士の衝突判定には、再接近フィーチャーアルゴリズムを利用でき、この手法は、例えば文献４（Ｍ．Ｃ．Ｌｉｎ　ａｎｄ　Ｊ．Ｃａｎｎｙ．　Ａ　ｆａｓｔ　ａｌｇｏｒｉｔｈｍ　ｆｏｒ　ｉｎｃｒｅｍｅｎｔａｌ　ｄｉｓｔａｎｃｅ　ｃａｌｃｕｌａｔｉｏｎ．　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｃｏｎｆｅｒｅｎｃｅ　ｏｎ　Ｒｏｂｏｔｉｃｓ　ａｎｄ　Ａｕｔｏｍａｔｉｏｎ，　ｐｐ．１００８−１０１４，　（１９９１）．）に記載されている。また、剛体同士の反発力の計算には撃力ベースの手法を利用することができ、この手法は例えば文献５（Ｂ．　Ｍｉｒｔｉｃｈ．　Ｉｍｐｕｌｓｅ−ｂａｓｅ　Ｄｙｎａｍｉｃ　Ｓｉｍｕｌａｔｉｏｎ　ｏｆ　Ｒｉｇｉｄ　Ｂｏｄｙ　Ｓｙｓｔｅｍｓ，　Ｐｈ．Ｄ．　ｔｈｅｓｉｓ，　Ｕｎｉｖｅｒｓｉｔｙ　ｏｆ　Ｃａｌｉｆｏｒｎｉａ，　Ｂｅｒｋｅｌｅｙ，　（１９９６）．）に記載されている。
【００３６】
次に、ステップＳ８において計算された時刻ｔ＋Δｔにおける剛体の位置および姿勢に基づいて、マッピング部３は、剛体の形状を表すＶＯＳ値を、再度、流体シミュレーション格子配列にマッピングする（ステップＳ９）。つまり、微小時間経過後の剛体の状態を流体シミュレーション格子に反映させるのである。ここで、更新された流体シミュレーション格子のＶＯＳ値に基づき、流体−剛体境界速度設定部７は、流体と剛体とが接する境界における流体の速度（剛体境界速度）を設定する（ステップＳ１０）。すなわち、ＶＯＳ値のマッピングが更新された流体シミュレーション格子配列上での時刻ｔ＋Δｔにおける剛体の速度を参照すると共に、これと同じ値を時刻ｔ＋Δｔにおける流体の剛体境界速度に設定する。
【００３７】
そして、時刻ｔ＋Δｔにおける流体の速度、ＶＯＦ値、および剛体境界速度に基づき、流体圧力計算部８は、時刻ｔ＋Δｔにおける流体の圧力を上述のＶＯＦ法およびＣＩＰ法を利用して計算する（ステップＳ１１）。
【００３８】
以上の計算により微小時間経過後の時刻ｔ＋Δｔにおける流体、剛体の状態がそれぞれ得られることになる。このような計算を、時刻ｔを更新しつつ、その値が所望の時刻に到達するまで繰り返す。所定の時刻に到達したら、公知のレンダリング処理等を行って、最終的な表示画像を生成し、表示装置３００に出力する。これにより所望の時刻についてのシーンを得ることができる。なお、各時刻のシーンを動画フレームとし、これらを所定のフレームレートで表示すれば、ＣＧアニメーションを作成できる。表示装置３００における画像の表示例を図７（ａ）および（ｂ）に示す。
【００３９】
従来、度重なる試行錯誤を経てシーンを作成するＣＧ分野において、複雑な挙動をする流体中に剛体が存在するシーンを容易に作成するのは困難とされてきた。しかしながら、本発明によれば、かかる問題を解決できる。すなわち、まず流体の挙動については、剛体からの相互作用を、流体シミュレーション格子をベースに剛体の近似的な形状データの意味を持つＶＯＳ値を用いて計算するようにしているため、計算量が増大することがない。また、剛体シミュレーション結果により得られた剛体の速度値を、その周囲の流体の速度（剛体境界速度）に設定することは、厳密さの面において若干不利であるものの、計算量の削減に多いに寄与する。
【００４０】
一方、流体中での剛体の挙動については、剛体自体のシミュレーションをポリゴンデータを用いて行うこととしている。したがって、視覚的に自然で現実感のあるシーンの作成が可能になる。
【００４１】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【００４２】
【発明の効果】
以上説明したように、本発明によれば、計算量が少なく汎用性があり、しかも、流体と剛体との力の相互作用を考慮した現実感のあるシーンの作成を可能にする流体と剛体のシミュレーション装置、方法、およびプログラムを提供できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る画像処理システムの概略構成を示すブロック図
【図２】同実施形態に係る流体と剛体の連携シミュレーション装置の概略構成を示すブロック図
【図３】同実施形態に係る流体と剛体の連携シミュレーションの詳細な処理手順を示すフローチャート
【図４】剛体の周囲を取り囲む局所的なシミュレーション格子の一例を示す図
【図５】剛体の位置および姿勢を考慮した流体シミュレーション格子へのマッピングの様子を説明するための図
【図６】剛体に作用する力の様子を示す図
【図７】本発明の一実施形態に係る画像処理システムによる画像出力例を示す図
【符号の説明】
１…初期データ入力部
２…ＶＯＳ値データ変換部
３…マッピング部
４…流体速度−ＶＯＦ値計算部
５…流体外力計算部
６…剛体シミュレーション部
７…流体−剛体境界速度設定部
８…流体圧力計算部
１００…演算装置
２００…入力装置
３００…表示装置
４００…記録装置
【図１】
2004021883.tif 000003
【図２】
2004021883.tif 000004
【図３】
2004021883.tif 000005
【図４】
2004021883.tif 000006
【図５】
2004021883.tif 000007
【図６】
2004021883.tif 000008
【図７】
2004021883.tif 000009