本章では、本研究で提案した弾性体モデルに沿って実装したプログラムを使用 し、その有用性を検証する。本研究で試作したプログラムは、グラフィクスAPIの
OpenGL[22]をベースとした3次元グラフィックスツールキットである「FK Kernel
Tool Kit System」[23][24]を用いて実装した。
4.1 実行結果
本提案モデルの実行結果を以下に示す。
実装した位相変化が可能な弾性体モデルのプログラムでは、位相変化が起こる 条件として、外力が加わった頂点に対して接続関係にある稜線が、変形前の状態 の長さから3倍の長さになったときに位相変化が起こるものとした。
4.1.1 提案モデルによる弾性体挙動
本提案モデルを用いた弾性体挙動表現の結果を示す。
29
図4.1: ブロックモデルでの弾性体挙動表現
図4.1はシェイプマッチング法による弾性体の挙動を示したものである。加わっ た外力に応じて変形し、外力がなくなれば元の状態に戻る様子が確認できた。
図4.2: スフィアモデルでの弾性体挙動表現
図4.3: キャラクターモデルでの弾性体挙動表現
31
図4.4: スタンフォード・バニーモデルでの弾性体挙動表現
図4.2、図4.3、図4.4は、それぞれスフィアモデルとキャラクターモデルおよび、
スタンフォード・バニーモデルでの弾性体挙動を示した図である。いずれも図4.1 と同様に弾性変形の様子が確認できた。
4.1.2 提案モデルによる位相変化
本手法の提案モデルによる位相変化は、形状が同位相のものならどのような形状 にでも適用できる。以下に複数のモデルにおいての動作検証を行った様子を示す。
図4.5: ブロックモデルでの位相変化
図4.5はブロックモデルでの位相変化を行った画像である。図4.5(a)は位相変化 前の形状、図4.5(b)は位相変化が起こる途中の形状、図4.5(c)は位相変化後の形 状である。
図4.6: スフィアモデルでの位相変化
図4.6はスフィアモデルでの位相変化を行った画像である。図4.6(a)は位相変化 前の形状、図4.5(b)は位相変化が起こる途中の形状、図4.6(c)は位相変化後の形 状である。
33
図4.7: キャラクターモデルでの位相変化
図4.7はキャラクターモデルでの位相変化を行った画像である。図4.7(a)は位相 変化前の形状、図4.5(b)は位相変化が起こる途中の形状、図4.7(c)は位相変化後 の形状である。
図4.8: スタンフォード・バニーモデルでの位相変化
図4.7はスタンフォード・バニーモデルでの位相変化を行った画像である。図 4.8(a)は位相変化前の形状、図4.8(b)は位相変化が起こる途中の形状、図4.8(c)は 位相変化後の形状である。
図4.5、図4.6、図4.7、図4.8において、それぞれ形状のことなるモデルでも、
弾性変形過程で位相変化を伴う様子が確認できた。
4.2 実行速度検証
本手法で提案した弾性体モデルを実装したプログラムの処理速度を検証した。
処理速度の測定に用いたPCの構成はCPU :Core2Duo E8400、ビデオカード:
GeForce9600 GT、RAM:3GBである。提案モデルでは、処理速度はモデルの形
状を構成する頂点数に依存するため、頂点数のことなるブロックモデルを複数用 意し、クラスタ分割を行わない場合と、50回のクラスタ分割を行った場合での処 理速度の検証を行った。処理速度の単位はFPS(Frame Per Second)であり、1秒 間に可能なタイムステップの回数を表す。表4.1にその結果を示す。
表4.1: 提案モデル 処理速度の測定 頂点数 クラスタ分割無し クラスタ分割数50
602 140 FPS 92 FPS
1352 65 FPS 42 FPS
2402 40 FPS 23 FPS
3752 20 FPS 12 FPS
表4.1より、頂点数が2倍になるクラスタ分割無しとクラスタ分割数50ともに 処理速度が半減することがわかった。しかしながら、位相変化が起こる瞬間の形 状の再構成には、ほとんど速度の低下は見られないため、処理速度はほぼ頂点数 に依存していると言える。従って、本提案モデルではリアルタイム性を実現でき、
リアルタイムでの実用性を有すると考える。
4.3 現状の問題点
現状の問題点として、第1に外力が加わった頂点に接続する全ての稜線が位相 変化が起こる条件を満たしたときのみ、位相変化を伴う変形を行っているため、亀 裂を伴うようなクラック表現ができないという問題が挙げられる。この問題は、亀 裂が起こる箇所に対して、位相要素を上手く構築するアルゴリズムを考案するこ とで対処可能であると考える。
35
第2に頂点数に応じて処理速度が低下してしまうという問題がある。これはシェ イプマッチング法による処理が、ボトルネックになっている部分が大きい。この 問題は、シェイプマッチング法による処理をGPUにより並列計算することで、高 速な処理速度の実現が可能であると考える。