見出し画像

立体地形に球体をバラ撒いたときの様子:国東半島の両子山

はじめに

 初級者が、3DCGプログラミングに挑戦する記事の第三回です。前回は、タイル地図のライブラリの紹介でした。今回は、数値解析に関連するライブラリの紹介です。

開発環境
 開発言語はC言語、グラフィックスライブラリはOpenGLです。

作成したもの
 前回のライブラリにより地図の立体的なモデルを利用できるようになりました。
 そこで、この立体的な地形を活かして数値解析を行うことにしました。
 そのためのライブラリとして、数値解析を行うためのライブラリと、その結果を可視化するためのライブラリとを作成しました。

数値解析

 数値解析の方法には、格子法粒子法とがあります。格子法はメッシュを切るのが面倒くさそうなので、粒子法にしました。

フォークト模型
 当初は、富士山を「ぷるんぷるん」させるつもりでした。しかし、弾性体の解析には多くの粒子が必要になるので、デバッグには向いていません。
 そこで、数が少なくても計算が成立つ離散粒子を対象にしました。
 解析模型は、フォークト模型にモールクーロンスライダーを入れたものです。これに基づく式を蛙跳び法で解いています。また、各係数はを模した挙動になるように調整しました。

可視化

 粒子は、ビルボードに描いた仮想の半球に陰影を付けることで、球体に見せかけています。

 球が他の球に乗り上げたり、渋滞するところを頑張ったのですが、全然分かりませんね…

まとめ

 今回は、数値解析と可視化のライブラリについてに簡単に紹介をしました。

数値解析
 
本来ならば、安息角や計算精度など色々と書くべきことはあるのですが、簡潔に説明するには能力が足りませんでした。細かい点についてはこれから記事にしたいと思います。

可視化
 今回は、解析対象が離散要素だったので、球体で表示しました。しかし、岩を模しているので、表面をfbmで粗すなどの処理を入れると、それっぽくなったかもしれません(法線の計算が難しそうですが)。

実アクセス数
 ところで、前々回から記事にYouTubeの動画リンクを貼付しています。これまでのところ、自身で再生した数を除いても、再生数はちゃんと1ありました!観てくれている人がいると言うのはありがたいですね!

今後の予定

 銀行残高が5桁になったので家賃の支払いがいよいよ危ういです。早々にアルバイトを探さなければなりません。なので、現実逃避のために、記事の投稿頻度が上がるかもしれません。
  次回は、動画の冒頭に入れるロゴの記事を予定しています。

おまけ

 アナグリフと3DSとゴーグルの向けの3D動画です。注意点や詳しい再生方法は前々回の記事に記載しています。

地理院タイルを加工して作成

古往今来得ざれば即ち書き得れば即ち飽くは筆の常也。と云うわけで御座います、この浅ましき乞食めに何卒皆々様のご慈悲をお願い致します。