平成 25 年度 卒業論文

VR 化学実験システムのための仮想液体モデルにおける視点位置を考慮した側面描画

指導教員
舟橋

名古屋工業大学大学
平成 22 年度入学

中井

工学部

情報工学科

22115103 番

恒汰

健司

准教授

i

目次

第 1 章 はじめに

1

第 2 章 粒子・体積に基づく仮想液体の表現

42.1

液体の状態とモデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.2

仮想容器のモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.1

仮想容器の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.2

液体の流出点，および液位 . . . . . . . . . . . . . . . . . . . . . . . .

6

容器と液体との相互作用モデル . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3.1

自由落下状態の液体と容器 . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3.2

容器内状態の液体と容器 . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3.3

液面の上昇 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.3.4

液体の流入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.3.5

容器からの液体の流出 . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3

2.4

色の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.1

液面のモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4.2

拡散方程式を用いた液面の色の拡散表現 . . . . . . . . . . . . . . . . 11

2.4.3

液体側面のモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.4

色の流入地点の検出，色の拡散 . . . . . . . . . . . . . . . . . . . . . 15

2.4.5

DCS バッファの分割，貼り付け . . . . . . . . . . . . . . . . . . . . . 16

第 3 章 視点位置を考慮した色の描画

18

3.1

容器側面について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2

液体側面の描画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1

視点位置の移動を考慮した DCS バッファ . . . . . . . . . . . . . . . . 20

ii

3.2.2
3.3

容器側面へのテクスチャマッピング . . . . . . . . . . . . . . . . . . . 21

視点位置を考慮した色の拡散の描画 . . . . . . . . . . . . . . . . . . . . . . . 23

3.3.1

視点位置による色の拡散速度

3.3.2

視点位置が上がる場合 . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3.3

視点位置が下がる場合 . . . . . . . . . . . . . . . . . . . . . . . . . . 27

第 4 章 実験とその結果. . . . . . . . . . . . . . . . . . . . . . 25

29

4.1

実験システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2

実験の様子

4.3

実験結果と評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

第 5 章 むすび

40

謝辞

42

参考文献

43

1

第 1 章 はじめに

近年，バーチャルリアリティ（ Virtual Reality:以下，VR ）に関する研究が数多くされており，我々の日常生活に大きく影響を与えている．ここで VR とは「みかけや形は原物そのものではないが，本質的あるいは効果としては現実であり原物であること」と定義されている [1]．すなわち VR 技術とは，生活環境において人工的に我々の視覚や聴覚といった五感に適切な情報を与える仮想的な物体や環境を形成することで，あたかもそれが現実であるかのように感じさせる技術である．VR 技術において，いかに原物に本質的あるいは効果的に近い情報を形成することは非常に重要なことである．
医学分野での訓練シミュレータは VR 技術の応用例の 1 つである．近年での訪問看護の需要の増加により，問診や触診によって患者の様態を分析するフィジカルアセスメントによる技術の需要が高まっている．このため，医療従事者に対するフィジカルアセスメントの学習支援が求められる．この需要に対し，触診学習において非同期型遠隔学習支援システムの研究がされている [2]．この研究では，指導者と学習者がリアルタイムにコミュニケーションが取れない状況でも，学習者が自分自身で考えて，指導者と自分の触診の動作の違いを理解できるようなシステムを提案している．これにより，学習できる環境が整えば，指導者や患者がいなくても，触診の訓練ができるようになった．医学分野の訓練シミュレータだけでな
く，他にも軍事分野における訓練や，火災体験ができるシミュレータなど様々なものがある．
何故これほど ，VR 技術を用いた研究が数多くされているかというと，実験や訓練などによるリスク回避や，資源やコストの節約，環境さえ整えば容易に実施可能であるなど ，非常に大きな利点があるためである．
これらの理由のために VR 技術を用いるための対話操作の研究もされており，特に剛体や弾性体といった物体の挙動の再現のための研究は非常に多い．他にも我々の生活の中で身近なものとして，液体があげられる．液体は流動的で，連続的に変化しやすい性質をもつため，その挙動を再現するのは剛体と比較して難しい．しかし，料理や化学実験などのシミュレー

第 1 章 はじめに

2

タを VR 技術を用いて実現するためには，液体を仮想的に扱う必要がある．
液体の対話操作の研究の一つとして，Smooothed Particle Hydrodynamics（以下 SPH 法）という手法がある．SPH 法では，液体を粒子の集合と考え、その粒子一つ一つに速度や密度などの物理量を与え，それら全ての粒子に物理法則を用いた計算をすることで，正確な対話操作を実現している．流体の表面に衝突する円板について，この SPH 法を用いてシミュ
レーションを行った研究があり，再現性の高い結果を得ることができている [3]．しかし，これらの研究では，正確な挙動が再現出きるが，そのための膨大な計算必要となり，性能の高い計算機が必要となる．
ところで，VR 技術の研究においては，主に以下の二つの点のど ちらかに重点をおく必要がある．一つ目は，どれだけ現実の挙動に近く厳密に再現できるかという点である．液体の対話操作に関しては，SPH 法がこれにあたり，水しぶきや対流などを厳密に再現することができる．しかし，これには膨大な計算必要となるため，処理速度の低下は避けられず，対話操作には向いていない．二つ目は，対話操作に重点をおき，操作者の操作に対してすぐに反応し ，挙動できるかという点である．こちらは，厳密な挙動を再現することはできないが，非常に高速な処理速度に重点をおいているため，操作者は臨場感のある操作ができる．
ところで，当研究室では，液体の対話操作に重点をおいた粒子・体積ベース仮想液体モデ
ルを提案している [4][5]．本モデルでは，液体を自由落下状態と容器内状態の二つに分け，前者の状態であれば粒子として，後者の状態であれば体積に基づいて表現している．この粒子の状態では，互いに干渉しないものと考えることによって，計算の高速化をしている．これ
ら二つの状態を組み合わせることによって，操作者は液体を容器に入れる，容器から液体をこぼす，容器から液体をすくうなどといった，我々が液体に対して行う基本的な動作を高い
臨場感で行うことができる．また，従来の研究により，液面に波の表現を取り入れることによって，より液体らしさを表現することが可能である [6]．
当研究室では，この仮想液体モデルを用いて，小学生程度の子供を対象とした VR 化学実
験システムの開発をしている．このシステムでは，理科の実験で行われる液体と液体の混合による色の変化を仮想的に行うことができる [7][8]．これにより，操作者は安全に，なおかつ資源を節約して実験を行うことが可能である．より現実の理科の実験の再現性を高めるた
めに，フラスコのような凹形状の容器での液体操作が可能とする研究が行われた [9]．また，
現在の教育現場にタブレット型 PC の導入が進んでいることに着目して，タブレット上での第 1 章 はじめに

3

VR 化学実験の実現をした [10]．
ところで，前述のシステムにおいて容器の側面の描画は，凸形状の柱体の容器にしか対応していない．また，視点位置は常に固定であることを前提にした側面の描画を行っている．
これは，液体内部そのものの色ではなく，テクスチャを用意し，それを容器の各面の横幅に合わせて縦に分割し，容器の面に貼り付けることによって簡易的に側面の描画を試みたためである．しかし，実際の理科の実験では，フラスコや試験管など 容器が柱体ではないものを扱うことが多い．また実験において，観測者は試験管を様々な角度から見る場合がある．そこで，本研究では視点位置を考慮した色の描画と，柱体以外の容器の側面の描画の実現を目
指す．本研究において提案する手法では，テクスチャを分割するのではなく，容器の各面の各頂点に適切なテクスチャ上の座標を与えることによって，各面に適切な部分のテクスチャの貼り付けを行う．次に，視点位置を考慮した描画について考える．透明な水の入った容器に別の色の液体を入れる様子を様々な視点から見たとき，視点の位置によって色の広がり方が違うように見える．本研究では，これを見かけ上の色の拡散速度が違うと考える．視点の位置が移動する度に，その視点位置に合ったテクスチャを用意することで簡易的に視点の移動に対応した側面の描画を行った．これにより，VR 化学実験システムをより高い臨場感での仮想液体の対話操作を可能にする．
以下，2 章では当研究室での従来研究である粒子・体積モデルの概略を説明する．そして3 章では本研究のモデルである視点位置を考慮した側面描画の実現方法について記す．4 章
では，実験及び結果，5 章は本研究のまとめを述べる．

4

第2章

粒子・体積に基づく仮想液体の表現

本章では，当研究室でこれまでに提案されている粒子・体積ベースの仮想液体モデルの概要を説明する（ 詳しくは文献 [4] を参照されたい）．
粒子・体積モデルでは，仮想液体を自由落下状態と容器内状態の 2 つの状態に分けて考える．自由落下状態では粒子として，容器内状態では体積に基づいて表現する．液体を全て粒子で表現するわけではないため，非常に速い処理速度での対話操作を可能としている．このモデルでは，操作者が液体を扱う上での基本的な操作が可能である．

2.1

液体の状態とモデル

粒子・体積ベースの仮想液体モデルでは，液体の状態を以下の 2 つに分けて考える．

(1) 自由落下状態 (水道の蛇口からこぼれ落ちる液体)(2) 容器内状態 (コップなどの容器内に溜まっている液体)(1) の状態では，粒子に基づく表現を行う．ここでは液体の厳密な挙動の再現ではなく，対話操作を第一の目的としているため，各粒子の大きさは考慮しないものとし，粒子同士の衝突などの干渉はおこらないものとする．各粒子の 3 次元仮想空間内での時刻 t における座標
を Pi (t)(i = 1, 2, …, N ; N : 粒子数) とし，重力，慣性に従って移動する．これより Pi (t) は式 (2.1) により決定される．

Pi (t) = 2Pi (t − ∆t) − Pi (t − 2∆t) + g∆t2

(2.1)

ここで，g は下向きの重力加速度ベクトルであり，∆t は描画更新間隔，すなわち描画更新
レート (f rames/sec.) の逆数である．空気抵抗などによる広がりを表現する場合は，式 (2.1)の右辺に微小乱数値 Ri (t) を加える．

(2) の状態では，容器内の対流などは考慮せずに静止しているものとして扱い，体積に基づき表現を行う．すなわち，ある時刻 t において液体が仮想空間内に定義された容器の中に

第2章

粒子・体積に基づく仮想液体の表現

5

存在する場合，その容器の中に V (t) の液体が存在していると表現する．このとき，上述した粒子としての液体の性質は考慮しない．2 つの状態間で状態の遷移は，換算比 N [粒子数/体積] によって換算を行う．例えば，容器を傾けることにより体積 V の液体を全て落下させた場合は，容器内の液体の体積は 0 となり，自由落下状態の液体の粒子数は N V だけ増加
する．

2.2

仮想容器のモデル

仮想空間内に定義すべき液体との相互作用を考慮する仮想容器についての説明をする．容器は操作者が移動できるものと，仮想空間内に固定されたものの 2 つがある．ここでは 2 つを同様に扱い，また容器は凸形状であるものとする．

2.2.1

仮想容器の表現

まず，図 2.1 に示すように，容器を内包する球を考える．この球の中心座標を C ，半径をr とする．容器の 3 次元空間における位置はベクトル C に基づいて表現する．
次に容器の回転について考える．図 2.2 に示すように C を原点とする容器座標系 (軸 xc , yc , zc )を設定する．容器の傾きは 軸 yc と球との交点 (図中 d1 ) の位置の変化 (極座標的な表現) により表現する．具体的には，xc を軸として点 d1 が点 d2 に移動するように容器を角度 φ だ
け回転し，さらに zc を軸として点 d2 が点 d3 に移動するように容器を角度 θ だけ回転する．
これにより，2 つのパラメータ θ ，φ で容器の傾きを表現することができる．2 つの値が 0 の時，容器は傾いていない状態である．また，容器の方向の変化として，yc を軸として角度 ψ
だけ回転行う．この回転による容器内に満たし得る液量の変化はない．これら C ，
θ，
φ，
ψ は，
それぞれの容器ごとに設定されており，移動する容器については時刻 t の関数として表す．

第2章

粒子・体積に基づく仮想液体の表現

6

図 2.1: 仮想容器と容器を内包する球
図 2.2: 仮想容器の傾きと向きの表現

2.2.2

液体の流出点，および液位

容器内に存在する液体の体積が容器内に入り得る液体の最大容積を超えた場合，液体は溢れ出る．そのときの仮想容器の各パラメータを図 2.3 に示す．この液体が溢れ出す容器の点
を流出点 F と定義する．厳密には，液体が溢れ出す箇所は線分で表される場合があるが，本モデルでは液体は一点の流出点から溢れ出すものとする．流出点 F を容器を内包する球の中心点 C を基準とする相対的なベクトル F として次式 (2.2) にて表す．

F = f (θ, φ, ψ)(2.2)

容器内で静止している液体の液面の高さを液位と呼ぶ．本モデルにおいて，容器内状態にある液体の液面を基準とし，この液面を基準液面と呼ぶ．液位および液面が容器の最上部に達したときの体積を最大容積 Vm とする．液位 H は，容器内の体積 V (V ≥ 0) であるとき，球の中心点 C から鉛直方向 H の位置に存在するものとし，次式 (2.3) にて表す．

H = h(θ, φ, V )(2.3)

液位 H の存在範囲は，容器を内包する球の半径が r であることにより −r < H < r であるが，容器の形状や傾きのよっては更に狭い範囲に存在する．また，式 (2.3) を体積 V について変型することにより，次式 (2.4) を得る．

V = v(θ, φ, H)

(2.4)

第2章

粒子・体積に基づく仮想液体の表現

7

式 (2.4) において，容器より下方の H を与えた場合は，V = 0 流出点 F よりも上方の H を与えた場合は，V = v(θ, φ, Fy ) = Vm (θ, φ) とする．このとき，Fy は F の鉛直方向の座標であるため，角度 ψ には依存しない．また，液位 H のときの液体の体積に，液面よりも下方に存在する容器の厚みを加えた体積を次式 (2.5) にて表す．容器の厚みを考慮しない場合は，

V = V + とする．
V + = v + (θ, φ, H)

図 2.3: 仮想容器のパラメータ

(2.5)

第2章

粒子・体積に基づく仮想液体の表現

2.3

容器と液体との相互作用モデル8

本節では，自由落下状態と容器内状態の 2 つの状態における液体と容器の液体との相互作用のモデルについて説明する．

2.3.1

自由落下状態の液体と容器

自由落下状態の液体が各容器の流出点を通過した場合，その液体を状態 (1) から状態 (2)に変える．すなわち，粒子としては消滅させ，換算比をもとに体積に変換させる必要がある．
ある容器の流出点を通過した粒子が n 個 (n ≥ 0) の場合，その容器内の時刻 t における液体の体積 V (t)(0) は，次式 (2.19) で表す．

V (t)(0) = V (t − ∆t) + n/N(2.6)

次節で述べる容器内状態の液体と容器との干渉がなければ，時刻 t における容器内の液体の体積を V (t)(1) = V (t) (0) とし，液位 H(t) を次式 (2.7) で決定する．

H(t) = h(θ, φ, V (t)(1) )

2.3.2

(2.7)

容器内状態の液体と容器操作者が自由に移動，回転が可能な容器を容器 1，固定されている容器を容器 2 とする．
各記号の添字 1，2 は各容器 1，2 に対応している．2 つの容器と液体との相互作用について述べる．時刻 t において，次式 (2.8) が成り立つ場合，容器 1 と容器 2 内の液体は互いに干渉しているものとする．
(0)

C1y − r1 < C2y + h2 (θ2 , φ2 , V2 )(2.8)

式 (2.8) において，Cjy は容器 j の位置の Cj の鉛直方向の座標である．このとき，容器 2 内の液体の液位が容器 1 によって上昇させられている体積を U21 ≥ 0 を次式 (2.9) にて表す．

U2 = Σj U2j

(2.9)

第2章

粒子・体積に基づく仮想液体の表現

9

容器と液体が干渉しており，かつ次式 (2.10) が成立するとき，容器 1 の流出点よりも下の部
分と容器 2 の液面が干渉している．
(0)

C2y + h2 (θ2 , φ2 , V2+
+ Vm1
) < C1y + F1y(2.10)式 (2.10) が成立しないときは，容器 1 に容器 2 の液体が流出する．

2.3.3

液面の上昇

容器と液面が干渉しているとき，容器 1 が容器 2 の液位を上昇させている．このとき，容器 2 の液位 H2 は式 (2.11) を満たすように設定している．
(0)

H2 = h2 (θ2 , φ2 , V2

(2.11)+ U21 )

U21 = V1 +(θ1 , φ1 , C2y + H2 − C1y )(1)

また，それぞれの容器内の液体の体積を Vj

(0)

= Vj

(2.12)とし ，容器 1 の液位を式 (2.7) で決定

する．

2.3.4

液体の流入

容器 1 に容器 2 の液体が流入する場合，さらに次式 (2.13) が成立するとき，液体の流れ込
みは容器 2 の液面が容器 1 の流出点に達した時点でとまる．
(0)

V2

(0)

+ U21 − v2 (θ2 , φ2 , C1y + F1y − C2y ) < Vm1 − V1

(2.13)

この場合，容器 2 の液位が容器 1 の流出点となるように次式 (2.14) により設定する．

H2 = (C1y + F1y ) − C2y(2.14)

これに合わせて各容器の体積を計算する．
(1)= v2 (θ2 , φ2 , H2 ) − U21

(1)

+ V2

V2

V1

(1)

(0)

= V1

(0)

+ V2

(2.15)(2.16)

第2章

粒子・体積に基づく仮想液体の表現

10

式 (2.13) が成立しないとき，容器 1 の流出点よりも上方に容器 2 の液面が存在することに(1)なる．このとき，容器 1 の液体の体積 V1

を最大液量 Vm1 に，液位 H1 を r1 とし，液面は考慮しないものとする．容器 2 の液体の体積と液位は式 (2.16) および次式 (2.17) にて表す．
(1)

H2 = h2 (θ2 , φ2 , V2

+ U21 )

(2.17)

以上のように設定しておくことで，時刻 t + ∆t において 2 つの容器間での液体の移動がなくなった場合，液体をすくい取る操作が可能となる．

2.3.5

容器からの液体の流出

容器同士の干渉や容器の傾きにより，時刻 t おいて次式 (2.18) をみたす場合は，液体が容器から流出する．

V (1) + U > Vm

(2.18)

容器内の体積で表現されている液体の一部を N (V (1) + U − Vm ) 個の粒子として流出させる．
このときにおける容器内の体積を次式 (2.19) で表す．

V (t) = Vm − U
式 (2.18) を満たさない場合は，液体粒子の流出はなく，V (t) = V (t)(1) とする．

(2.19)

第2章

粒子・体積に基づく仮想液体の表現

2.4

色の表現

11

本節では，液面と容器側面における色の混ざ りを表現するモデルについての説明を行う(詳しくは文献 [7][8] を参照されたい)．
このモデルでは，リアルタイムでの対話操作を可能にするために，2 次元拡散方程式を用いることによって色の変化を描画する．

2.4.1

液面のモデル

粒子・体積ベースの仮想液体の液面のモデルは，液面を格子状に分割し，その各格子点において波を表現する [6]．色の表現についても同様の格子状に分割された液面を想定し ，その各格子点に色の情報を持たせることにより．色の表現を行う．各格子点は，色の情報として色のベクトル値 C(RGBA 値)，色の伝搬を実現するための重みを表す変数 P(以下，重みP) の 2 つを持つ．例えば，ある格子点は重み P で色 C である，というように表現する．

図 2.4: 液面における色の拡散

2.4.2

拡散方程式を用いた液面の色の拡散表現

自然界において，静止状態の水の中にある液体が流入したとき，その液体は時間とともに水全体に広がり，やがて混ざりあい均一な状態になる．これは流入した液体内の微小粒子や溶媒内の微粒子が衝突を繰り返しながら，ランダムに熱運動し，溶媒中に広がっていくためである．このような現象を拡散現象と呼ばれる．それを数学的に記述した式が拡散方程式である．次式 (2.20) に 2 次元拡散方程式を示す．

第2章

粒子・体積に基づく仮想液体の表現∂Q(x, y, t)
=D
∂t

( 2
)
∂ Q(x, y, t) ∂ 2 Q(x, y, t)
+
∂x2
∂y 2

12

(2.20)

ある多量の粒子が時刻とともに拡散していく状態を考える．Q は時刻 t の x, y 平面上における濃度分布，D は粒子が拡散する速度を調整するための定数（以下，拡散定数と呼ぶ）である．この式を格子点間隔 d を用いて中央差分で近似することで次式 (2.21) を得る．

(Q[i][j](t + ∆t) − Q[i][j](t))/∆t= ((Q[i + 1][j](t) + Q[i − 1][j](t) + Q[i][j + 1](t) + Q[i][j − 1](t))D/d2 ) (2.21)
ここで，∆t について，

D∆t
= D0
d2

(2.22)とおき，簡略化を行い，式を整理することで次式 (2.23) を得る．

(Q[i][j](t + ∆t)= Q[i][j](t) + (Q[i + 1][j](t) + Q[i − 1][j](t) + Q[i][j + 1](t) + Q[i][j − 1](t) − 4Q[i][j](t))D0(2.23)
この D0 値を調節することで，Q の値が拡散する速度を調節することができる．この拡散方程式を用いて色の拡散方法を説明する．
まず，液面を格子状に分割し，この液面に対して上述の拡散方程式を差分方程式として解いたものを適用し ，重み P を拡散させる．この液面の色の拡散により，リアリティを持たせるために，液面から内部に向けて ∆h 程度の間隔で数枚の液面を想定し，それらの情報を液面に反映させる．なお，液体内部の描画は考慮しない．次式 (2.24) に重み P についての

3 次元拡散方程式を示す．
∂P (x, y, z, t)
=D
∂t

( 2
)
∂ P (x, y, z, t) ∂ 2 P (x, y, z, t) ∂ 2 P (x, y, z, t)
+
+
∂x2
∂y 2
∂z 2

(2.24)

第2章

粒子・体積に基づく仮想液体の表現

13

現段階では，液面の拡散計算は 3 枚を想定して行っている．以下に，式 (2.24) を中央差分により近似し簡略化した漸化式を示す．

(P [i][j][k](t + ∆t) − P [i][j][k](t))/D0= P [i + 1][j][k](t) + P [i − 1][j][k](t) + P [i][j + 1][k](t) + P [i][j − 1][k](t)+P [i][j][k + 1](t) + P [i][j][k − 1](t) − 6P [i][j][k](t)(2.25)

各格子点には，初期状態では色のベクトル値 C の初期値と，容器内に存在する体積としての液体を換算比 N [粒子数/体積] で粒子数に直したものを，容器内の格子点数で割った値を重み P の初期値として用いる．この手法を用いて，毎フレームごとの各格子点の重み P を拡散させることができる．この重み P を用いた次式 (2.26) によって，各格子点の時刻 t + ∆t
における色の値 C を決定する．

(C[i][j][k](t + ∆t) − C[i][j][k](t)) ∗ P [i][j][k](t + ∆t)/D0= C[i + 1][j][k](t)P [i + 1][j][k](t) + C[i − 1][j][k](t)P [i − 1][j][k](t)+C[i][j + 1][k](t)P [i][j + 1][k](t) + C[i][j − 1][k](t)P [i][j − 1][k](t)+C[i][j][k + 1](t)P [i][j][k + 1](t) + C[i][j][k − 1](t)P [i][j][k − 1](t)−6P [i][j][k](t)(2.26)

上述の式 (2.26) は，各格子点の色の時刻 t + ∆t における値は，式 (2.25) により求めた t + ∆tの重み P と時刻 t における近傍格子点の色 C および重み P の値によって決定されることを示している．

第2章

粒子・体積に基づく仮想液体の表現

14

図 2.5: 複数の液面の重ね合わせ

2.4.3

液体側面のモデル

ここで「側面」について再考察してみる．本小節における「側面」について定義する．仮想容器の形状は凸型で多面体だと限定して考え，容器を構成する全ての面を「容器側面」と定義し，容器側面に接している全ての面を「液体側面」と定義する．この液体側面は底面部分を含むものとする．なお，このモデルでは容器を真横から見た場合の色の拡散を計算し容器側面に投影する．そのため，例えば水平面に対して 45 °程度の角度から液体側面を見た場合，その色の拡散の描画は厳密には正しくない表現である．
液体側面のモデルも，液面と同様に一枚の格子状に分割された面ポリゴンを用意し ，その各格子点に色情報を持たせ拡散方程式によって色を拡散させる．この面ポリゴンは，容器中央に存在し，鉛直方向に常に平行な直行格子状平面である．この面ポリゴンを DCS (theDiﬀusion of Color in the Sides) バッファと定義し，この DCS バッファ内で色の拡散の計算を行う．そして，この DCS バッファを分割し，適切な位置に液体側面として貼り付けることにより液体側面の色の表現を行う．

DCS バッファの大きさは，2.2 節において仮想容器を内包する球の半径 r を用いて，πr ×πrの大きさを持つ正方形であると定義する．この大きさである理由は，視点位置から見える範囲の液体側面に覆えるほどの大きさは，πr × πr だけあれば十分であると考えられるためで
ある．

第2章

粒子・体積に基づく仮想液体の表現

15

図 2.6: 容器を内包する球と DCS バッファの大きさ

2.4.4

色の流入地点の検出，色の拡散

DCS バッファにおいて，各格子点に色情報を持たせ拡散方程式を用いて拡散させる．この手法は，2.3.2 節の液面の色の拡散表現と同様である．

DCS バッファの各格子点の座標値は，液体上面の格子点の座標値と関係を持ち，DCS バッ
ファの最上点が液位の高さ h となるようにする．そのため，液面より下に DCS バッファは
存在し ，バッファの最上点から常に色の拡散が行われる．また，DCS バッファの全ての格子点の z 座標値は容器を内包する球の中心座標とする．例えば，時刻 t において，液面に格子座標 Gsurf (x(t), h, z(t)) に外部から液体が流入したとする．この時，DCS バッファにおける色の流入地点の座標は Gbuf (x(t), h, Cz ) となる．ここでの Cz とは，容器を内包する球の中心の z 座標値である．図 2.7 にその概念図を示す．
この Gbuf (x(t), h, Cz ) に流入液体の色ベクトル値 C および色の重み P を持たせ，液面の色の拡散に伴って DCS バッファ内にも色を拡散させる．ここで，DCS バッファでは，色の拡散が常に最上点から行われるため，鉛直方向への拡散は行わない．以降の色の拡散における計算は，2.3.2 節と同様である．

第2章

粒子・体積に基づく仮想液体の表現

16

図 2.7: 色の流出点の検出

2.4.5

DCS バッファの分割，貼り付け

DCS バッファ適切に分割し，容器側面に貼り付け色の情報を反映する手法を説明する．図2.8 にその概念図を示す．3 次元仮想空間において，視点位置 E から容器を内包する球の中心点 C を見たときのベクトル s を考え，この s に直行する軸を決める．この軸を WS(theWidth of the Sides) 軸と定義する．ベクトル s が世界座標系における Z 軸に平行である時，
W S 軸は X 軸に平行となる．W S 軸の原点は視点位置から見える範囲の容器側面の面ポリゴンを構成する頂点座標のうち，最も左端にある点 (世界座標系において最も −X 方向にある点) に一致させ，世界座標系における +X 軸方向を正方向とし，この軸を用いて各側面ポ
リゴンの幅を求める．この時の各側面ポリゴンの幅は側面ポリゴンを構成する頂点の x 座標の差により求められる．
これにより求められた各側面ポリゴンの幅 Wi を用いて，DCS バッファの分割を行う．容器側面の視点位置から見える範囲の側面ポリゴンの枚数を m とする．また，DCS バッファの大きさは πr × πr である．このとき，i 番の側面ポリゴンに割り当てられる各 DCS バッ
ファの断片の長さ Lj は次式 2.27) で求められる．

Wi
Lj = ∑m

k=1 Wk× πr(2.27)

この手法を用いることにより各液体側面ポリゴンに対して十分な大きさのバッファ領域を割り当てることができ，過不足なく色の拡散表現を行うことができる．この分割された各バッ

第2章

粒子・体積に基づく仮想液体の表現

17

ファ断片を容器側面に張り付けることにより，液体側面の表示とそこでの色の表現を行う．
各バッファ断片を貼り付ける方法として，テクスチマッピング法を用いる．また，毎フレー
ムごとに各格子点の色の重み P を更新し，色のベクトル値 C を変化させることにより，液体側面の色の広がり表現を行う．

図 2.8: 側面のマッピング

18

第3章

視点位置を考慮した色の描画

前章で述べた粒子・体積ベースの仮想液体の色の表現により，液面と容器側面の色の拡散表現が可能となった．しかしこの手法では，容器は柱体形状のものに限定して側面の描画を行っており，また視点位置は常に容器に対して真横である場合の色の描画を行っている．これは，液体内部そのものの色ではなく，一つのテクスチャを用意し，それを容器の各面の幅に合わせて縦に分割し，容器側面に貼り付けてることによって簡易的に側面の描画を試みたためである．
そこで本研究では，柱体形状以外の容器の側面の描画と視点位置を考慮した色の拡散表現の実現を目指す．具体的には，容器の各面に適切な部分のテクスチャを投影することによって容器の側面の描画を行う．また，視点位置が移動する度にその視点に合ったテクスチャを用意することによって簡易的に視点の移動に対応した側面の描画を行う．

第3章

視点位置を考慮した色の描画

3.1

容器側面について

19

本節では，本研究においての容器の側面とはどの部分に当たるかの説明をする．従来研究の側面描画において，仮想容器は凸型の多面体と限定して考え，容器を構成する全ての面を「容器側面」とし，液面以外の容器側面に接している全ての液体部分を「液体側面」と定義していた (図 3.1)．この液体側面には容器の底面部分も含むものとしている．
本研究においても側面を同様に定義して考える．ただし，視点位置が容器のほぼ真下である場合に見える容器の下部の面は液体側面として含まないものとする．このような制限をした理由を説明する．提案する手法では，2.4.3 節以降で述べた手法と同様に，ある断面において色の拡散を計算し，これを側面にマッピングすることで描画する．このとき，断面の上辺から半円状に色の拡散を計算している．そのため視点位置を，容器下方を含まない側方に限定する．
液体側面は容器側面の形状に従うため，図 3.1(左) のような壷型の容器に液体を入れたとき，液体側面は図 3.1(右) のように容器側面と同様に壷型の形状となる．このとき，液体側面の各面は，必ずしも長方形になるとは限らない．容器の形状によっては四角形以外の形状をした面をもつ液体側面になる場合がある．従来の手法では，容器を柱体形状に限定した場合の側面の描画を行っており，他の凸形状容器に対応していなかった．そこで本研究では，
容器側面の各面が長方形以外の多角形でも側面の描画が可能になる手法を提案する．

図 3.1: 容器側面 (左) と液体側面 (右)第3章

視点位置を考慮した色の描画

3.2

液体側面の描画

3.2.1

視点位置の移動を考慮した DCS バッファ20

従来研究においての側面の描画では，はじめに容器中央に存在し，鉛直方向に常に平行な直行格子状平面について考えた (2.4.3 節参照)．この平面を DCS バッファと定義し，これを2.4.5 節で述べた手法で分割し，容器側面に貼り付けることで側面の描画を行った．
本研究においても同様の DCS バッファを用意する．ただし，従来の DCS バッファは視点
位置の移動については考慮していなかったため，常に XY 平面に平行な面であった．そこで，視点位置が移動したら，常に視点位置に対して垂直となるように DCS バッファを回転させる．
まず，世界座標系の XZ 平面において，容器を内包する球の中心 C から X 軸に平行なベクトルを ~
x，C から視点位置 E に向かうベクトルを ~e とし ，この 2 つのベクトルのなす角を α とする．この α を用いて，DCS バッファの各頂点を回転させる (図 3.2 参照)．世界座
標系の Y Z 平面においても，同様の回転を行う．
これにより，視点位置が移動しても液体が流入したとき，DCS バッファ上の適切な位置
から色を拡散させることができる．

図 3.2: XZ 平面における DCS バッファの回転第3章

視点位置を考慮した色の描画

3.2.2

容器側面へのテクスチャマッピング

21

前小節の DCS バッファから液体側面の各面に合う適切な部分の DCS バッファのみを投影することによって，液体側面の描画を行う．DCS バッファを容器側面に投影する方法として，テクスチャマッピングを用いる [11]．テクスチャマッピングでは，テクスチャ空間 (s, t)の座標とポリゴンの各頂点を対応付けることによって，ポリゴンにテクスチャを貼り付けている．そこで，テクスチャ空間の座標と容器側面の各面の頂点を対応付けることによって，必要な部分のみのテクスチャを容器側面の各面に投影することを考える．

DCS バッファとテクスチャ画像には図 3.3 のような関係をもつと考える．このとき，容器
側面 i における頂点 Vij に対応するテクスチャ座標 (Sij , Tij ) は次式 (3.1) より得ることがで
きる．


Vijx

 Sij = πr



(3.1)
Vijy
Tij = πr

求めたテクスチャ座標 (Sij , Tij ) と液体側面 i における頂点 Vij を対応付けることによって，液体側面の各面に適切な部分のみのテクスチャを投影することができる．図 3.4 にその概念図を示す．この手法では，液体側面の各面の各頂点とそれに対応したテクスチャ座標によって液体側面の描画を行うため，液体側面の各面がどのような多角形でも描画が可能となる．

第3章

視点位置を考慮した色の描画

図 3.3: DCS バッファとテクスチャの関係

図 3.4: 容器側面 i においての各頂点とテクスチャ座標の対応付け

22

第3章

視点位置を考慮した色の描画

3.3

視点位置を考慮した色の拡散の描画

23

実際に，透明な液体が入った容器に時刻 t において赤色の液体を入れる実験を行った．このときの色の変化の様子を図 4.9 においての視点位置 E0 ，E1 ，E2 で液体側面に注目する．
すると図 3.6 のように視点位置によって色の広がる速度が違うようにみえる．これは，色の拡散が 3 次元的に行われているためである．容器に対して視点位置が高くなると，視点位置方向にある程度色が広がらないと，容器側面に色が反映されない．これが視点位置が高くな
ると液体側面の色の拡散速度が遅くみえる理由である．
視点位置を考慮した色の拡散の様子を厳密に求めると，液体内部を考慮する必要があり，これには膨大な計算が必要となる．そこで，視点位置によって色の広がる速度が違うように見えることを「見かけ上の色の拡散速度が違う」とし，視点位置に合ったテクスチャを用意し，そのテクスチャを 3.2 節で述べた手法で液体側面に投影することで，側面の描画を行う．
本節では，どのように視点位置に合ったテクスチャを用意したかを述べる．

図 3.5: 容器と視点位置

第3章

視点位置を考慮した色の描画

図 3.6: 視点位置による容器側面の色の描画の違い

24

第3章

視点位置を考慮した色の描画

3.3.1

視点位置による色の拡散速度25

世界座標系の Y Z 平面において，容器を内包する球の中心 C から鉛直上向きのベクトル
を ~n，C から視点位置 E に向かうベクトルを ~e とし，この 2 つのベクトルのなす角を θ とする (図 3.7 参照)．この θ の値によって，2.4.2 節の式 (2.23) の D0 の値を調節し，拡散速度を変える．θ が小さくなればなるほど ，拡散速度を遅くし，大きくなればなるほど 拡散速度を速くする．これによって，視点位置による見かけ上の拡散速度の違いを表現する．

図 3.7: 視点位置 E においての角度 θ3.3.2

視点位置が上がる場合ある時刻 t − ∆t から t の間に，視点位置 E0 からそれよりも鉛直上方の視点位置 E1 に移動した場合の液体側面について考える．E1 は E0 よりも視点位置が高いため，見かけ上の拡散速度は E0 よりも遅い．そこで，時刻 t においての E1 のテクスチャとして時刻 t − ∆t のE0 のテクスチャとすることで，簡易的に見かけ上の色の拡散速度の違いを表現する．この概念図を図 3.8 で表す．
また，ある時刻 t − ∆t から t の間に，E0 から E1 よりも更に鉛直上方の E2 に移動した場
合の液体側面について考える．この場合，見かけ上の拡散速度はさらに遅くなるため，時刻t においての E2 のテクスチャとして時刻 t − 2∆t の E0 のテクスチャとすることで，液体側面に描画する (図 3.9 参照)．
このように，ある視点位置においての過去数フレーム間隔でテクスチャを保存し，視点が上がったらその上昇分を考慮し，保存したテクスチャを読み込むことで，視点位置が上がる

第3章

視点位置を考慮した色の描画

26

場合の液体側面の描画を行う．最も過去に保存されたテクスチャを読み込んだ場合は，視点位置が充分に上がりきったと考え，その読み込んだテクスチャからゆっくりと色の拡散の描画を行う．
図 3.8，図 3.9 において，赤色の枠は現在液体側面に描画されているテクスチャ，青色の枠は過去において描画されたテクスチャを表し，細線矢印はテクスチャの読み込みを表す．

図 3.8: 視点位置が E0 から E1 に移動した時のテクスチャテーブル

図 3.9: 視点位置が E0 から E2 に移動した時のテクスチャテーブル

第3章

視点位置を考慮した色の描画

3.3.3

視点位置が下がる場合

27

ある時刻 t − ∆t から t の間に，視点位置 E2 からそれよりも鉛直下方の視点位置 E1 に移動した場合の液体側面について考える．この場合は，E1 は E2 よりも視点位置が低いため，見かけ上の拡散速度は E2 よりも速い．そこで，視点が移り変わる時に，時刻 t − ∆t における視点位置 E2 のテクスチャから，数フレーム分の計算をすることで時刻 t + ∆t におけるテ
クスチャを求める．このテクスチャを時刻 t においての視点位置 E1 のテクスチャとして読み込む．この概念図を図 3.10 に示す．
また，ある時刻 t − ∆t から t の間に，E2 から E1 よりも更に鉛直下方の E0 に移動した場
合の液体側面について考える．この場合，見かけ上の拡散速度はさらに速くなるため，時刻t − ∆t においての E2 のテクスチャから，さらに数フレーム分の計算をし，時刻 t + 2∆t におけるテクスチャを求め，それを時刻 t においての視点位置 E0 のテクスチャとして読み込
む (図 3.11 参照)．
このように，ある視点位置の数フレーム先のテクスチャを視点位置が下がった際のテクスチャとして読み込むことで，視点位置が下がる場合の液体側面の描画を行う．
図 3.10，図 3.11 において，緑色の枠は液体側面として描画されていないが計算により求められたテクチャを表し，この計算を白い太線矢印で表す．赤色の枠，青色の枠，細線矢印
は前小節と同様である．

第3章

視点位置を考慮した色の描画

図 3.10: 視点位置が E2 から E1 に移動した時のテクスチャテーブル

図 3.11: 視点位置が E2 から E0 に移動した時のテクスチャテーブル

28

29

第4章

4.1

実験とその結果

実験システム3 章で提案したモデルに基づいた仮想液体の対話操作のための実験システムを• CPU: Dual-Core AMD Opteron(tm) Processor 1210 1.8GHz
上で C 言語により実装した．
本実験においては，仮想容器として操作者が自由に移動，回転操作が可能な移動容器と操作が不可能な固定容器の 2 種類を用いる．移動容器の位置と傾きは低周波の磁界を利用したモーションセンサまたはマウスによる入力する．本実験ではモーションセンサとして

POLHEMUS 社の 3SPACE ISOTRAK II を用いた．
仮想容器の形状として，図 4.1，図 4.2，図 4.3，図 4.4 の 4 つを用いた．画面右上には水源があり，そこから 1frame あたり 1cc 相当の液体を無限に流出させる．自由落下状態の液体の粒子数と容器内状態の液体体積の換算率 N は 10[粒子数/cc] とする．地面より下方に落ちた液体については全て消滅するものとする．

第4章

実験とその結果30

図 4.1: 柱体形状の容器 (大)図 4.2: 柱体形状の容器 (小)図 4.3: 壷型の容器

図 4.4: 円錐形状の容器

第4章

実験とその結果

4.2

実験の様子

31

実際に実験を行っている様子を図 4.5 に示す．モーションセンサを取り付けたコップ型のデバイスを手に持ち，それを動かすことで操作者は仮想容器を直感的に移動させることができる．
まず，柱体形状 (小) の移動容器を用いて，仮想液体の操作行う．移動容器内の液体がこぼれ，固定容器内に入り，固定容器の液面と液体側面の色が変化する様子を示す．図 4.6 のように，固定容器内に液体が流入すると同時に，その流入地点から液面は色の拡散が始まり，
液体側面はそれに合わせて徐々に色が広がっている．次に壷型形状の移動容器を用いた側面の描画の様子を図 4.7 に示す．液体側面の色の描画が行われていることが確認できる．円錐
形状の移動容器を用いた側面の描画の様子を図 4.8 に示す．この容器でも液体側面の色の描画が行われていることが確認できる．本モデルにおいて，柱体形状以外の任意の凸多面体容器でも液体側面の描画が可能なことが確認できた．次に，視点位置を移動させた場合の側面の描画についての実験を行った．
柱体形状 (大) を用いて，視点位置が上がる場合の側面の描画様子を図 4.9 に示す．視点位
置が徐々に上がるにつれて，色の拡散速度が遅くなっていることが確認できる．視点位置が下がる場合の側面の描画様子を図 4.10 に示す．視点位置が徐々に下がるにつれて，色の拡散速度が速くなっていることが確認できる．

第4章

実験とその結果

32

図 4.5: 実験の様子

第4章

実験とその結果

33

[1]

[2]

[3]

[4]

図 4.6: 柱体形状容器の色の描画

第4章

実験とその結果

34

[1]

[2]

[3]

[4]

図 4.7: 壷型容器の側面の描画

第4章

実験とその結果

35

[1]

[2]

[3]

[4]

図 4.8: 多角錐容器の側面の描画

第4章

実験とその結果

36

[1]

[2]

[3]
図 4.9: 視点位置が上がる場合の側面描画

第4章

実験とその結果

37

[1]

[2]

[3]
図 4.10: 視点位置が下がる場合の側面描画

第4章

実験とその結果

4.3

実験結果と評価38

本研究における側面描画の手法と従来の手法での処理速度を描画更新速度 (fps) より比較した．移動容器，固定容器はそれぞれ図 4.2，図 4.1 のものを使用し，マウス操作とモーショ
ンセンサを用いたコップ型のデバイスによる 2 種類の操作方法を用いて実験を行った．従来研究においての側面描画 (文献 [8]) を従来手法とし，本研究における視点位置を考慮した側
面描画を提案手法とし，それぞれ描画した場合の描画更新速度を計測し，比較を行った．その結果を表 4.1 に示す．一般的に操作者が対話操作をしているように実感するためには，約15fps 以上の描画処理速度が必要とされる．表 4.1 を見てみると，マウス操作において，従来手法より少し処理速度が落ちているものの，15fps を大きく上回った．モーションセンサ
を使用した操作においても，同様に 15fps を大きく上回っており，問題なく対話操作が可能であると言える．
また，9 名の被験者に協力してもらい，柱状以外の凸多面体容器 (図 4.3，図 4.4) を用いた側面の描画と，視点位置を考慮した側面の描画を 5 段階で評価してもらった．5 段階評価の目安は以下の通りとする．

1: 描画に大きな違和感を感じる
2: 描画に違和感を感じる
3: 描画に少し違和感を感じる
4: 描画にほとんど 違和感を感じなかった
5: 描画に全く違和感を感じなかった
評価の結果をそれぞれ図 4.11，図 4.12 に示す．
図 4.11 より，柱状以外の凸多面体容器の側面の描画において，8 名以上から 4 点以上の評価を得ることができた．これにより，本手法を用いることによる任意の凸多面体容器の側面の描画が有用であると言える．一方で「容器が小さい場合の色の描画が分かりにくい」という容器の大きさを考慮した色の広がりについての意見を頂いた．
図 4.11 より，視点位置を考慮した側面の描画においても，9 名から 4 点以上の評価を得る
ことができた．
「 視点が移動したときの色の広がりの違いがわかりやすかった」「， 色の広がり

第4章

実験とその結果

39に違和感を感じなかった」という積極的な意見を頂き，本手法を用いての視点位置を考慮した側面の描画が有用であると言える．また，「 そもそもどのように見えるのが正解か分からない」という意見を頂き，色の拡散を含む液体の挙動計算において，厳密さを追求するよりも，多くの人が感じている液体の特徴を重点的に再現することの重要性を再認識した．
表 4.1: 描画処理速度の比較
従来手法 提案手法
マウス使用
モーションセンサ使用

68 fps56 fps51 fps
48 fps

図 4.11: 柱状以外の凸多面体容器の側面描画の評価

図 4.12: 視点位置を考慮した側面描画の評価

40

第 5 章 むすび

当研究室で提案している VR 化学実験システムを基に，本研究では柱体以外の容器の側面の描画と視点位置を考慮した色の側面描画の実現を行った．厳密に視点位置を考慮して色の描画を行う場合は，液体内部を 3 次元的に考え，色の情報を求める必要があり，これには膨大な計算が必要となる．そこで，本研究では視点位置に合った一枚のテクスチャを用意し ，それを容器側面に貼り付けることによって高い処理速度を実現することができた．また，各容器側面に適切な部分のみのテクスチャを投影する側面描画手法を提案し，様々な凸形状容器の側面描画を可能にした．当研究室では，リアルタイムで計算可能な対話操作性をもつ仮想液体モデルを提案している．この従来のモデルを基に本提案手法を加えることで，VR 化
学実験システムに向けて対話操作性を維持しながら臨場感を向上させることができた．
今後の課題を以下に挙げる．

• 視点位置が容器のほぼ真下である場合に見える容器下部の描画
本手法では視点が容器下方を含まない容器側方に限定した描画を行っている．そのため，視点が容器下方でも容器下部の面に適切な色の描画を行えるようにする．

• 液体内部の沈殿の表現
側面描画においての流入した液体の色が側面下部に集まるような沈殿の実現．

• 液体の流れを考慮した色の表現
容器を移動させたり，スプーンのような剛体でかき混ぜることによる液体内部の流れを考慮した色の広がりの表現．

• 重さを持つ仮想物体との相互作用
仮想物体を容器に入れたときの浮いたり沈んだりするような表現および，仮想物体から色がにじみ出る様子の表現．

第5章

むすび

41

• 凹形状容器の側面描画
本提案手法と文献 [9] を組み合わせることにより，様々な容器においての側面描画を可
能にする．

42

謝辞

本研究を進めるにあたって，日頃から多大な御尽力を頂き，ご指導を賜りました名古屋工業大学，舟橋健司

准教授，山本大介

准教授，伊藤宏隆

助教，に心から感謝致します．

また，本研究に対して御討論頂きました本学 中村研究室の皆様ならびに中部大学 岩堀研究室の皆様に深く感謝致します．最後に，本研究に多大な御協力頂きました舟橋研究室諸氏に心から感謝致します．

43

参考文献

[1] 日本バーチャルリアリティ学会 http://www.vrsj.org/main.html[2] 渋沢良太，ヤェム・ヴィボル，葛岡英明，山下淳，鈴木直義，“視覚・触覚フィードバックを用いた触診型動作の学習支援手法”，日本バーチャルリアリティ学会論文誌，Vol.16，

No.4，pp.607-614，2011．
[3] 永弘進一郎，早川美穂，“SPH 法による円板と流体表面の衝突シミュレーション ”，電子情報通信学会，信学技報，TECHNICAL REPORT OF NLP2003-1(2003-5)．

[4] 舟橋健司，岩堀裕之，“仮想容器による仮想液体の対話操作モデルと一実現方法”，日本
バーチャルリアリティ学会論文誌，Vol.5，No.4，pp.1087-1094，2000．

[5] K. FUNAHASHI, Y. IWAHORI,“Representation of Swinging Liquid on Virtual Liquid
Manipulation”, Proc. ICAT2001, pp.179-184, 2001.
[6] T. Tanabashi, H. Itoh, K. Funahashi and Y. Iwahori，“Representation of Wave Surface
on Virtual Water Manipulation”, SCIS & ISIS 2008, pp.1460-1465, 2008.
[7] 蒲将寛，“粒子・体積モデルに基づく仮想液体操作システムにおける色の表現”，平成 20
年度名古屋工業大学卒業研究論文，2009.

[8] 菅瀬和弘，“VR 化学実験システムのための仮想液体モデルにおける側面描画”，平成 21
年度名古屋工業大学卒業研究論文，2010.

[9] 夏目祐樹, 伊藤宏隆, 舟橋健司，“粒子・体積ベース仮想液体操作モデルにおける凹形状容
器での液体操作の実現”，日本バーチャルリアリティ学会第 15 回大会講演論文集, 3C1-6(DVD-ROM)，2010．

44[10] 内山享佑，“VR 化学実験システムのためのタッチパネル 3D インターフェースの提案”，
平成 23 年度名古屋工業大学卒業研究論文，2012.

[11] 床井浩平，“GLUT による OpenGL 入門 2

テクスチャマッピング ”，工学社，2008.