(初版:2020/06/12 改訂:2020/09/17)
Noiseアルゴリズムで2Dマップ形状を生成し、高さをつけるMagicaVoxel用のシェーダです。ver0.99.6.1で動作確認しました。
noisemap_perlin.txt ver1.0 noisemap_cellular.txt ver1.0 noisemap_hermite.txt ver1.0
上記のファイルを右クリックからダウンロードしてMagicaVoxelのインストールフォルダにあるshaderフォルダに入れてください。
引数 | 意味 |
---|---|
xscale | X方向のスケール |
yscale | Y方向のスケール |
seed | 乱数値 |
numcolors | ノイズの階調。(正確なものではなく目安と考えてください。) |
seamless | シームレスマップにする場合は1 |
fbm | フラクショナルブラウン運動する場合は1 |
hscale | Z方向のスケール |
thickness | 高さの色付け幅。(正確なものではなく目安と考えてください。) |
noisemap_perlinとnoisemap_cellularとnoisemap_hermiteは同じ文法です。
noisemap_perlinを初期値のまま実行して下さい。下のようなノイズマップを生成します。
xscaleとyscaleはXYの各方向のスケールを指定します。数値を大きくするとより複雑になります。それぞれ4で実行すると下のようになります。
高すぎた場合はhscale値を下げてください。0.5で実行したもの。
スケール値を指定する代わりにエディタ空間の高さを低くしても対応できます。空間の高さに合わせて拡大縮小されます。
seedは乱数値です。適当な値に変えると形状が変わります。
numcolorsはノイズの階調です。10で実行すると下のように高さが10段階になります。(この数字は正確なものではなく目安と考えてください。)
fbmを1にするとフラクショナルブラウン運動が適用されます。
thickness値は高さの色付け幅です。20で実行すると、Z方向に20ボクセルずつ色が付けられます。(この数字は正確なものではなく目安と考えてください。)
seamlessに1を指定すると継ぎ目のないマップになります。同じものを並べても継ぎ目が分りません。
SDFブラシを使うとリアルタイムで生成することができて便利です。
xscale=30 yscale=30 で実行すると草原のようになります。
板のようなものを作ってみます。 モデル空間の高さを1にして、xscale=20 yscale=1 numcolors=5 で実行。5色のグラデーションになります。
茶系の色を塗ってレンダリングします。これで完成です。
雲の部分にこのシェーダーを使っています。
煙の部分にこのシェーダーを使っています。
Copyright(C)2019-2020 yarunashi All Rights Reserved.