Diamond-Square Algorithmとは
今回使うのはHunter Loftis氏によるリアルな地形生成アルゴリズム
http://www.playfuljs.com/realistic-terrain-in-130-lines/
130行で地形生成ができると少し前に話題になった。
アルゴリズム自体の解説は上記リンク参照
仕組み
今回のDiamond-Square Algorithmはx-yの平面上にアルゴリズムで生成したheightを使って1*1*heightの四角柱を並べる事で地形を生成する仕組みになっている。
なのでアルゴリズムで生成したあとは並べてライトを置けばそれっぽくなる
生成の手順
POVRAYの旧石器時代のような言語にアルゴリズムを書くのは現実的じゃないので、javascript部分をそのまま利用してそこからpovファイルを生成する。
生成にはMacのScriptEditorを利用する。
アルゴリズム→POVファイル文字列→書き出し→実行
までをjsで行うので、POVRAYをCLIから実行出来るようにしておく必要があった。
コード
githubに置いておきました。
https://github.com/noppefoxwolf/diamond-square-algorithm-to-povray
おまけ
オリジナルのように影やISOは実装していないので見栄えが悪い(ライト置いただけ)
ぶっちゃけUnityでやればいい