水粒子による水面サンプルプログラム3D版

正式公開版 Ver 1.0(2002/2/21公開)



水表面を粒子モデルで計算し、三次元格子から等値面でポリゴン表示するサンプルプログラムです

水粒子サンプル3D版 ver1.0をダウンロードする(Windows+OpenGL、LZH圧縮、128KB)

利用法ですが、マウス左ボタンで入れ物を動かし、カーソルキーで回転、ROLL UP/DOWNで拡大縮小です。


作者のたわごと

2/21日 Ver1.0 公開

HPの方を変更するのはすんごい久しぶりですが、また環境が変わって心持ち外に情報を出しやすくなったので久しぶりに趣味プロ公開です。

前から作ろうと思ってたんですが、前に作った水粒子のサンプルの3D版です。

表示はOpenGLでそれほどポリゴン使ってないので多くのマシンで動作すると思いますが、やっていることがことなのでCPUだけは食います。クロック500Mhz以上推奨でしょう。水面ですと2次元メッシュを使うことが多いので、このような3D格子を用いた水面は珍しいんではないかと思います。

やっていることは次の通りです

1.水粒子サンプルと同じアルゴリズムで各粒子の位置を決定する

2.3次元格子の各頂点に各粒子からの距離に応じて値をセットする(今回は反比例関数)

3.3次元格子の各エッジにおいて、ある閾値を跨いでいる位置を線形補完でサーチ

4.各格子毎において、周辺エッジに閾値となる点が存在していれば
  その間を結んで平面を算出(1格子に3〜6角形ポリゴン一つか表示なしとなります)

5.法線を計算してポリゴン表示


ボリュームレンダのようなもんですが、等値面を使うことでポリゴン表示がかなり少なくてすんでいます。結局、やっていることはリアルタイムメタボールです。技術的にはそれほど目新しいものではないでしょう。3次元格子を扱うのでどうしても重く、ゲームなんかには向かないデモ専用かと。

プログラムがすげー汚いんでソースまだですが、機会があれば公開します。


ソフトウェアトップページに戻る