Real-time River Representation by Dynamic Control of Data on Waves
2008 Kosugi, Mukai, Kato 4 pp.

Real-time River Representation by Dynamic Control of Data on Waves

1. 水面波モデルの動的制御による河川のリアルタイム表現

2. Real-time River Representation by Dynamic Control of Data on Waves

正会員 向井信彦, 加藤康寛, 正会員 小杉 信
Nobuhiko Mukai, Yasuhiro Kato and Makoto Kosugi

Abstract We describe a method of using computer graphics to represent the flow of a river in real-time. As rivers are usually narrow and long, the water surface can be seen in detail only in the near view, but it cannot be seen as clearly from a distance. Therefore, the level of water wave model should be dynamically changed on the basis of the distance from the viewpoint. In the near view, the water wave and the reflection at the riverbank can be seen, but this is impossible from the far view. However, the changes in direction of the wave caused by wind can be seen even in the far view. We also propose a method of generating patterns of waves caused by wind. We applied our method to simulations of a landscape and clarified the behavior of a river in real-time.

キーワード: コンピュータグラフィックス, リアルタイム処理, LOD (Level Of Detail), 河川

2.1. 1. ま え が き

近年, コンピュータグラフィックス (CG) を用いて様々なものが可視化されるようになってきた。従来, 木や雲などの自然物は CG で表現するには適さないとされてきたが, 近年では自然物に関する研究もかなり進んでいる。自然物の中でも特に表現が難しいとされているものに水の表現がある。固体のように輪郭がはっきりした物質であるにも関わらず, 気体のように自由に形を変える点が CG での表現を困難にしている理由の一つでもある。水の表現にはかなりの計算量を必要とするため, 米国 Chesapeake 湾のシミュレーションに SGI 社の Power Challenge というスーパーコンピュータをアレイ状にして使用した報告例がある1)。日本においても海洋開発の事前検証として 3 次元 NS(Navier-Stokes) 方程式を用いた手法2) や, 3 次元多層モデルを用いた手法3) でシミュレーションを行っている。ただし, これらの手法は流体の挙動シミュレーションが目的であり, 可視化を目的としたものではない。

一方, CG を用いて流体を可視化する手法の研究も行われており, 水面のモデルを作りながら粒子により水飛沫を表現する手法4), 粒子の生成と水面形状を生成するレベルセット法をうまく組合せることにより, 水中を物

体が移動する状況を表現する手法5) などがある。しかしながら, これらはいずれも粒子法6)7) を用いて小容量の流体を可視化するもので, 川のように大規模な流体を可視化するものではない。

川のような大規模な流体を可視化するためには, 大量の粒子を扱う必要があり, 高速な処理が行えない。そこで, 粒子数を減らす代わりに粒子を包含する面を生成することと, GPU の高速処理能力を活かすことで川の表現を行っている研究8) もある。また, 視点からの距離に応じて対象領域のメッシュ精度を制御する LOD 手法を用いて高速化を図る研究9) もある。しかしながら, これらの研究でも, 風により変化する波や川岸での反射表現はできていない。そこで本稿では, 川幅に対して流れ方向に長いという川の特徴を考慮して, 視点からの距離に応じて対象領域を自動分割し, 従来の LOD 法とは異なる手法, つまり各領域における波の形状モデルを変更するという手法で, 川の流れをリアルタイムに表現する方法について述べる10)

2.2. 2. 河 川 の 分 類

河川は上流と下流に大別され, 上流の流れは滝の水飛沫や溪流における急な流れがあるため乱流とも呼ばれる。これに対して, 下流の表面はほぼ一様であり穏やかな流れをしていることから層流とも呼ばれる。上流では広範囲に渡って川の流れを観察することが少ない反面, 水飛沫等の複雑な流れが存在するため, 粒子法による表現が適している。一方, 下流における川の流れは一般に穏やかであるが, 穏やかな流れの中にも波による水面のゆら

2008 年 3 月, 映像情報メディア学会研究会にて発表

2008 年 7 月 15 日受付, 2008 年 9 月 19 日最終受付, 2008 年 10 月 1 日採録

武蔵工業大学 大学院 工学研究科

(〒 158-8557 世田谷区玉堤 1-28-1, TEL 03-3703-3111)

Graduate School of Engineering, Musashi Institute of Technology (1-28-1, Tamazutsumi, Setagaya, Tokyo 158-8557, Japan)

めきや川岸における波の反射,あるいは風による波の方向変化が観測される。また,川幅に対して流れ方向に長く,視点からの距離に応じて観察される波の質は異なる。そこで本研究では,下流における川の流れを対象とし,以下の項目を盛り込んで河川のリアルタイム表示を試みる。

  1. 1) 視点からの距離に応じて河川の自動領域分割
  2. 2) 水面波の物理モデル
  3. 3) 川岸における波の反射表現
  4. 4) 風による波の変化

2.3. 3. 河川の自動領域分割

視点からの距離に応じて河川を領域分割し,領域毎に川のモデルを切換える。木を例に取ると,視覚対象は視点からの距離に応じて次の3領域に分割できる11)

  1. 近距離景 樹木の葉や幹,あるいは枝が識別可能で,対象物を視野角1^\circで捉えられる距離。
  2. 中距離景 樹木の識別は可能だが,葉や幹などの識別は困難で,対象物を視野角0.05^\circで捉えられる距離。
  3. 遠距離景 樹木の識別も困難で,物体同士の遠近は物体の重なりで判断する距離。

上記領域区分は,識別対象物の絶対的な大きさに依存せずに距離景を定義する手法であるため,河川にも適用可能であると考える。河川の場合,識別対象物体は波であるから波長を基に距離景を定義する。図1で示すように,視点の位置をQ,視点Qの水面からの高さをh,視点Qからの鉛直線と水面との交点をO,視線と水面との交点をP,線分OPの長さをd,水面波の波長をLとすると,次式(1)が成立する。ここで,dが正であることを考慮すれば,視点直下の点Oからの距離dと視野角\thetaの関係は次式(2)で計算できる。式(2)において,\theta = 1.0^\circとすれば近距離景と中距離景との境界点までの距離が,また,\theta = 0.05^\circとすれば中距離景と遠距離景との境界点までの距離が求められる。

\begin{aligned}\tan \theta &= \tan(\beta - \alpha) = \frac{\tan \beta - \tan \alpha}{1 + \tan \beta \tan \alpha} \\ &= \frac{\frac{h}{d-L} - \frac{h}{d}}{1 + \frac{h}{d-L} \cdot \frac{h}{d}} = \frac{hL}{d(d-L) + h^2}\end{aligned}\quad (1)

Figure 1: A geometric diagram showing the relationship between the distance from the viewpoint (Q) to the water surface (O), the height of the viewpoint (h), the distance from O to the point of observation (P) (d), and the viewing angle (theta). The diagram also shows the wave length (L) and the angles alpha and beta.
Figure 1: A geometric diagram showing the relationship between the distance from the viewpoint (Q) to the water surface (O), the height of the viewpoint (h), the distance from O to the point of observation (P) (d), and the viewing angle (theta). The diagram also shows the wave length (L) and the angles alpha and beta.

図1 視点からの距離と視野角の関係
Relation between length from viewpoint and view angle.

d = \frac{L \tan \theta + \sqrt{L^2 \tan^2 \theta - 4 \tan \theta (h^2 \tan \theta - hL)}}{2 \tan \theta} \quad (2)

2.4. 4. 水面波の生成

2.4.1. 4.1 水面波の物理モデル

本稿では,下流における比較的穏やかな水面波を対象とするため,波は規則波と仮定し,微小振幅波の理論12)を適用する。つまり,水深に比べて波高が充分小さいとき,流速C,波長L,および周期Tの関係は次式(3)となり,式(3)を用いて流速Cを計算することができる。ただし,gは重力加速度である。

C = \frac{gT}{2\pi}, \quad L = \frac{gT^2}{2\pi}, \quad C = \frac{L}{T} \quad (3)

一般に規則的な水面波は余弦波として近似されることも多いが,波は重力や表面張力などの影響により,余弦波に比べると,山が急で谷がなだらかな特性を持つ。このため,図2に示すように余弦波よりもストークス波を用いた方が近似性能はよい12)。ストークス波は余弦波の合成として次式(4)で表現されるため,計算時間は多少かかるが本研究では,近距離景の水面波をストークス波で近似し,波の高さを計算する。

\begin{aligned}z &= A \cos\left\{\frac{2\pi}{L}(x - Ct)\right\} + \frac{\pi A^2}{L} \cos\left\{\frac{4\pi}{L}(x - Ct)\right\} \\ &\quad + \frac{3\pi^2 A^3}{2L^2} \cos\left\{\frac{6\pi}{L}(x - Ct)\right\} \\ A &= \frac{H}{2} \left(1 - \frac{3\pi^3 H^2}{8L^2}\right)\end{aligned}\quad (4)

ここで,xは水面波の進行方向における位置,tは時刻,zは川底からの水面波の高さ,Hは波高(波の振幅)であり,CLは上記のとおり,流速と波長である。

2.4.2. 4.2 川岸での反射表現

水面波は川岸で反射し,入力波と反射波が重なり合うため,複雑な波を生成する。川岸での反射は自由端反射であるから,図3に示すように,水面波と同位相で反対方向に進む仮想波を考え,水面波と仮想波を合成することにより,川岸での反射波を表現することができる。

Figure 2: A graph comparing a cosine wave (余弦波) and a Stokes wave (ストークス波). The Stokes wave is shown as a more complex, asymmetric wave compared to the simple cosine wave.
Figure 2: A graph comparing a cosine wave (余弦波) and a Stokes wave (ストークス波). The Stokes wave is shown as a more complex, asymmetric wave compared to the simple cosine wave.

図2 余弦波とストークス波の比較
Comparison between cosin wave and stokes wave.

Figure 3: Reflection at the riverbank. A diagram showing a riverbank (川岸) and the reflection of a water wave. The vertical axis is Z, and the horizontal axis is X. A solid line represents the water surface wave (水面波), a dashed line represents the reflected wave (仮想波), and a dotted line represents the synthesized wave (合成波(反射波)). Arrows indicate the direction of wave propagation (水面波の進行方向) and the riverbank (川岸).
Figure 3: Reflection at the riverbank. A diagram showing a riverbank (川岸) and the reflection of a water wave. The vertical axis is Z, and the horizontal axis is X. A solid line represents the water surface wave (水面波), a dashed line represents the reflected wave (仮想波), and a dotted line represents the synthesized wave (合成波(反射波)). Arrows indicate the direction of wave propagation (水面波の進行方向) and the riverbank (川岸).

図3 川岸での反射
Reflection at the riverbank.

Figure 4: Relation between water wave and wind direction. A diagram showing a coordinate system with X and Y axes. A point (x0, y0) is marked. A line m passes through the origin O. The angle between the X-axis and the line m is theta. The wind direction (風向き) is indicated by an arrow. The wave propagation direction (水面波の進行方向) is also indicated.
Figure 4: Relation between water wave and wind direction. A diagram showing a coordinate system with X and Y axes. A point (x0, y0) is marked. A line m passes through the origin O. The angle between the X-axis and the line m is theta. The wind direction (風向き) is indicated by an arrow. The wave propagation direction (水面波の進行方向) is also indicated.

図4 水面波と風向きの関係
Relation between water wave and wind direction.

2.4.3. 4.3 風による波の変化

水面波の進行方向は風により時々刻々と変化するため、厳密には風のモデルを検討して水面波に適用する必要がある。しかしながら、風の物理モデルは確立されていないため、本研究では風により生成される波としての風波を近似的に考える。風波もストークス波による近似が最適と思われるが、風の影響は遠距離でも観察されること、また本研究では、リアルタイム表現を目的としていることから、風波はストークス波ではなく、余弦波としてモデル化する。図4に示すように、x軸の正方向に水面波が進行し、x軸と\thetaの傾きを持つ方向から風が吹いていると仮定する。Hを波高、Lを波長、Cを流速、xを水面波の進行方向における位置、tを時刻とすると、水面波は次式(5)で近似的に表現できる。

z = \frac{H}{2} \cos\left\{\frac{2\pi}{L}(x - Ct)\right\} \quad (5)

図4において、風向きに直交し原点oを通過する直線mは次式(6)となるから、任意の点(x_0, y_0)の直線mからの距離eは次式(7)となる。したがって、直線mからの距離eを風波の位相と考え、風向きが水面波の進行方向と逆向きであることを考慮すれば、風波は次式(8)となる。

x \cos \theta + y \sin \theta = 0 \quad (6)

e = |x_0 \cos \theta + y_0 \sin \theta| \quad (7)

z(x, y, t) = \frac{H}{2} \cos\left\{\frac{2\pi}{L}(x - Ct + e)\right\} \\ = \frac{H}{2} \cos\left\{\frac{2\pi}{L}(x - Ct + |x \cos \theta + y \sin \theta|)\right\} \quad (8)

最後に、風向きは時々刻々と変化するため、変化前の風向きに対する位相eと変化後の風向きに対する位相e'を考へて、変化前後における風波の式を線形補間することにより、任意の時刻における風波を表現することができ

表1 分割された領域と適用モデルの関係
Relation between divided area and applied model.

領域近距離景中距離景遠距離景
水面波モデルストークス波余弦波余弦波
波の流速計算ありありなし
波の高さ計算ありなしなし
川岸の反射波ありなしなし
風の影響ありありあり

表2 シミュレーションで使した PC 性能
Performance of the PC used on the simulation.

CPUIntel Core2 Duo 2.13GHz
Memory2GB
Graphics CardNVIDIA GeForce 7300 LE
OSMicrosoft Windows XP Professional
LanguageMicrosoft Visual C++ 6.0
Graphics LibraryOpenGL 1.5

る。また、風力の大きさを波高Hに反映させることにより、波の振幅を変更することも可能である。なお、近距離景の場合、式(4)に対して上記位相eを考慮することで、風により変化する波の表現が可能となる。

2.5. 5. シミュレーション結果

上記手法を適用して、河川のリアルタイム表現を試みた。分割された各領域と適用したモデルの関係を表1に示す。近距離景は最も詳細なモデル、遠距離景は最も粗なモデル、中距離景は中間のモデルとなるが、流速の変化に基づく川の流れ変化は視認性が良いため、中距離景は遠距離景に流速計算を加えたモデルとする。ただし、風の影響は遠方でも視認できるため、全モデルに適用する。また、中および遠距離景では波の高さを計算せず、余弦波で描れる法線ベクトルを擬似的に与えるバンパマッピング法を用いる。風の影響も同様で、水面波の変化を法線ベクトルに反映する。さらに、可視化前の法線ベクトルに1/fノイズを加えて自然な流れを表現する。表2に本シミュレーションで使したPCの性能を示す。なお、本手法では波の波形計算後、風の影響やノイズの付加を考慮しており、高速化のためのテーブルが必要がある。また、CPUとGPUとの負荷分散を考慮して、波の形状計算までをCPU、レンダリング以降をGPUで行っている。

図5に本手法による川の表現結果を示す。近距離景は最も詳細なモデルであるため、波の変化が明確に表現されている。一方、中距離景では波の高さを求めているため、水面は平面となるが、流速計算はしているため、波の模様は表現できている。これに対して、遠距離景では単なるバンパマッピング法による表現であるため、波の視認性は悪い。しかしながら、視点からの距離に応じて自動分割された各領域にモデルを適用すると、全体としての川はほぼ違和感なく表現されている。図5による静止画だけでは判別困難であるが、風向の変化に対して全領域で自然な水面波の変化が観察できる。

最後に、本手法をCGで作成した景観に適用した例を

Figure 5: Area division and river presentation. (a) Far distance view, (b) Middle distance view, (c) Near distance view. (d) Overall view of the river with flow direction and wind direction indicated.
Figure 5: Area division and river presentation. (a) Far distance view, (b) Middle distance view, (c) Near distance view. (d) Overall view of the river with flow direction and wind direction indicated.

図5 領域分割と川の表現

Area division and river presentation.

Figure 6: River representation in landscape. A perspective view of a river flowing through a landscape with buildings and trees.
Figure 6: River representation in landscape. A perspective view of a river flowing through a landscape with buildings and trees.

図6 景観における川の表現

River representation in landscape.

図6に示す。近距離景では水面波の様子だけでなく、川岸での反射も表現できている。図6で使用したポリゴン数は、近距離景1,840、中距離景8,820、遠距離景9,340であり、川以外の表示物として92,000ポリゴンを使用している。表示時間を測定したところ、総合計112,000ポリゴンの表示物に対して、表示速度は37fpsであった。なお本結果では、遠距離ほどポリゴン数が多くなっている。これは、領域分割を行った結果、遠距離ほど川の領域が長くなったためである。しかしながら、視点からの距離に応じてメッシュの精度を制御するLOD手法9)の適用によりさらなる高速化は可能である。ただし、メッシュサイズを大きくし過ぎると、波の形状を再現できない可能性があり、LOD手法の適用には注意が必要である。また、ポリゴン数を変えて性能測定した結果、モデル切換えによる性能向上は1Kポリゴンの川で約8%、12Kポリゴンの川で約96%(ほぼ倍の性能)となった。

2.6. 6. む す び

本研究では、横幅が短く流れ方向に長いという川の特徴を活かして、視点からの距離に応じて視覚対象領域を自動で分割し、分割された各領域に対して水面波のモデルを切換えることにより、視点からの画質を保ちながら高速な可視化を試みた。シミュレーションの結果、近距離景はストークス波という詳細なモデルを用い、流速や

高さ計算と共に、川岸での反射も考慮しているため、かなり詳細な表現が可能となっている。これに対して、中距離景や遠距離景では徐々にモデルのレベルを下げることでより高速化を試みた。各領域を単独で観察すると画質の違いは認識できるものの、これらの領域を結合し、風の影響を全領域に及ぼすことで、領域の境界はほとんど認識できなくなった。なお本方式では、視点からの距離に応じて各領域の境界を自動的に決定しているため、視点の変化とともに、各領域のポリゴン数は動的に変化し、結果としてリアルタイム表現が可能となっている。今後、メッシュの精度を制御するLOD手法を用いたさらなる高速化と、水面への映り込みや水面に浮かぶ物体の屈折をリアルタイムに表現する手法の検討を行う予定である。

2.7. 〔文 献〕

  1. 1) G. H. Wheelless, C. M. Lascara, A. Valle-Levinson, D. P. Brutzman, W. Sherman, W. L. Hibbard, and B. E. Paul, "Virtual Chesapeake Bay: Interacting with a Coupled Physical/Biological Model", IEEE Computer Graphics and Applications, 16, 4, pp. 52-57 (1996)
  2. 2) 野澤和男, 豊岡大志, "大阪湾における超大型海洋構造物周りの海水流動シミュレーションと海水交換評価法", 関西造船協会論文集, 235, pp.183-190 (2001)
  3. 3) 野澤和男, 豊岡大志, 竹岡一樹, "閉鎖性内湾における海水流動シミュレーションの応用と考察", 関西造船協会論文集, 240, pp.189-195 (2003)
  4. 4) J. F. O'Brien, J. K. Hodgins, "Dynamic Simulation of Splashing Fluids", Computer Animation 95, pp. 198-205 (1995)
  5. 5) N. Foster and R. Fedkiw, "Practical Animation of Liquids", Proc. of SIGGRAPH 2001, pp.23-30 (2001)
  6. 6) 越塚誠一, "粒子法による流れの数値解析", ながれ 21, pp. 230-239 (2002)
  7. 7) S. Premoze, T. Tasdizen, J. Bigler, A. Lefohn and R. T. Whitaker, "Particle-Based Simulation of Fluids", Computer Graphics Forum, 22, 3, pp. 401-410 (2003)
  8. 8) P. Kipfer and R. Westermann, "Realistic and Interactive Simulation of Rivers", Graphics Interface 2006, pp.41-48 (2006)
  9. 9) D. Hinsinger, F. Neyret and M. P. Cani, "Interactive Animation of Ocean Waves", Proc. of the 2002 ACM SIGGRAPH/Eurographics symposium on Computer animation, pp.161-166 (2002)
  10. 10) 加藤康寛, 向井信彦, 小杉信, "河川の downstream における水面波のリアルタイム表現", 映像情報誌, 32, 18, pp.41-44 (2008)
  11. 11) 樋口忠彦, "景観の構造-ランドスケープとしての日本の空間", 技報堂 (1975)
  12. 12) 堀川清司, "海岸工学", 東京大学出版会 (1991)
Portrait of Masahito Maki (向井 信彦).
Portrait of Masahito Maki (向井 信彦).

向井 信彦 1985年、大阪大学大学院基礎工学研究科博士前期課程了。同年三菱電機(株)入社。1997年、 Cornell大学大学院コンピュータサイエンス学科修士課程了。2001年、大阪大学大学院基礎工学研究科博士後期課程了(工学博士)。2002年、武蔵工業大学工学部助教授。2007年、同大学知識工学部教授。CG、VR等の研究に従事。正会員。

Portrait of Masahito Maki (加藤 康寛).
Portrait of Masahito Maki (加藤 康寛).

加藤 康寛 2006年、武蔵工業大学工学部卒業。2008年、同大学大学院工学研究科博士前期課程了。同年、(株)プレミアムエージェンシー入社。コンピュータグラフィックスに関する開発立案に従事。

Portrait of Masahito Maki (小杉 信).
Portrait of Masahito Maki (小杉 信).

小杉 信 1970年、東京工業大学大学院修士課程了。同年日本電信電話公社(現NTT)入社。1980年、東京工業大学より博士号取得(工学博士)。同年西ドイツ郵電省研究所客員研究員。1994年、武蔵工業大学工学部教授。2007年、同大学知識工学部教授。画像処理、CG等の研究に従事。正会員。