goo

MagicaVoxelのシェーダーという形を生成するプログラム


 いつも使っている3DCGのソフトMagicaVoxelですが、サイコロを積み木のように積み上げて立体物を作るというものです。基本チクチク手で積み上げていくのですが、滑らかな有機的な曲線などは手では限界があります。その場合、簡単なプログラム(shader:シェーダーと呼ぶ)を書いて、それをソフトの中で実行することで色んな数学的な曲線を持つ立体を作ることができるのです。

 今回作ってみたのが「山がいくつか連結した連峰のようなもの」。実際に使っている動画もTwitterの方に投稿したので、それを貼ってみます。

 書いてある通り、プログラムのベース部分は@mode_visという方が公開していたものを参考にさせていただきました。

 シェーダーはglslというプログラム言語で書きます。割と短いプログラムでできるので、思ったよりも難しくはありません。記述にミスがあってもいわゆる暴走するなんてことはほとんどなく最初から動かないだけで怖くない。今回は参考にさせていただいた元のプログラムの中の「球体を作れ」という部分を「正規分布曲線の山を作れ」という式に変えたのですが、ホントに割とすんなり成功した。

 そもそも(理想上の)山の形がどのような式で表されるのか?という疑問があったのですが、知っている中で山型の曲線といえば正規分布ぐらいしか思いつきません。
そこで一応AI(ChatGPT)に聴いてみると・・・

山の形状は
  • Bagnoldのプロフィール
  • ロジスティック関数
  • ガウス分布
などの形状でモデル化されることがあります。

ということです。3つ目の「ガウス分布」というのが正規分布のことなので「大丈夫だ!」と採用しました。

 今のところ、作った画像(一番上の画像)は色味を白っぽくして山水画の雰囲気にしています。
コメント ( 0 ) | Trackback ( 0 )
« 天空の城ラピ... 3DCG ヤツデっ... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。