NURBS
8. 面積を変化させずに形状変化させる方法
8.2 方法
①.泡の原型を作成する
CGで泡を表現する時にPolygonで表現しやすいように、2次元のプロトタイプでは下記 のような頂点と辺だけの簡単な形で泡を表現した。
図8-3 泡の原型
②.泡の形を変える
頂点の中から1点を選び、移動させる。これは泡が 外力の影響を受けたことを表わしているため、外力 の大きさや向きによって頂点の位置を決定する。
図8-4
左図のように頂点が反対側にはみ出てしまい、辺と 辺が交わってしまうような頂点の移動の仕方には 対応できていない。
図8-5
●で表示する。
頂点の配置により泡の形 状が決定される。頂点の 位置情報はプログラム内 で管理する。
シミュレーション中に頂点 の個数は変わらない。
頂点
で表わし、頂点と 頂点の間を結ぶことで泡 の形状を分かりやすくす る。
また、泡の原型を作成し たときの各辺の長さを保 持し、あまり長くならない ようにする。(理由につい ては ④を参照)
辺
③.面積を調整する
図8-6
面積を一定に保つ ことが条件なので、②において増減のあった面積分を調整して、元 と同じ面積になるようにする。このとき、パスカルの原理より
密閉された液体・気体の一部に圧力を加えると
そのまま同じ強さで全体に伝わる
なので、各頂点に対して移動距離が均等になるように新しい頂点の位置を決定する。
④.辺の長さを調整する
左図のグリッドの1辺を 1 とすると
①の辺の長さ = 5 + 2 2
②の辺の長さ = 8
③の辺の長さ = 10
となり、同じ面積でも辺の長さはかなり違う。
図8-7
このことから、形状変化が大きくなりすぎないように、辺の伸縮率を設定して変形の度合 いに制限をかける。また、ここで伸縮率を調整すれば表面張力を表現することができる と考えられる。
図8-8
辺の調整前 辺の調整後
② に お い て 頂 点 を 移 動 し た た め に 減った面積
減った面積分を 調 整 し 、 元 の 面 積 と 同 じ に な る ようにする
①
③
②
8.3 まとめ
プロトタイプの結果より、下記のような問題点及び改良すべき点があることがわかった。
・基準点が移動する方向を変えると処理結果の形状が異なってしまう。
・複数の力により影響を受けた場合、同時に複数の力に対するシミュレーションを行うこと ができないため、シミュレーションを行う順番によっては結果が異なってしまう。
・辺の長さを調整するために点を動かしているが、現時点では長さだけの調整で力のか かる方向までは考えていないため、方向についての処理も加える必要があると思われ る
また、プロトタイプということで今回は 2 次元におけるプログラムしか作成しなかったが、3 次 元で作成する場合には下記のような問題点があることも分かっている。
・2 次元のプロトタイプを縦に数枚並べて 3 次元と考えてしまうと、2 次元で見ている平面に 垂直な力が掛かった場合、対応できない。
今回のプロトタイプにおいて面積を変えずに形状変化させるという目標は達成したが、これを 利用して泡を表現できるという段階にまでは達することが出来なかった。しかし、これを 3 次 元で作成できる方法を確立することができれば、体積を保ったまま変形させることができ、粘 土のようなものも表現できるようになる。