プログラミングのお作法については至らない点もあるかと思いますが、よろしくお願い致します。
今記事の目的:ノイズで自然な凹凸を作る
Attribute Wrangleを使って、②でやったような「ランダムな高さ」ではなく、自然な地形のようなうねりを作ってみようと思います。
基本セットアップ
- Geometryノードを作成
- Gridノードを作成(Size 2×2 Rows/Columns : 30~40程度)
- attribute Wrangleを接続
ノイズ関数を使って高さを変化させる

vector pos = @P * 0.5;
float n = noise(pos);
@P.y = n * 0.5;
@Cd = set(n,n,n);
ノイズスケールを変えてみる
・上記コードの@P * 0.5の部分を変えてみて変化を見てみようと思います。

vector pos = @P * 0.3;
float n = noise(pos);
@P.y = n * 0.5;
@Cd = set(n,n,n);

vector pos = @P * 1.0;
float n = noise(pos);
@P.y = n * 0.5;
@Cd = set(n,n,n);

vector pos = @P * 2.0;
float n = noise(pos);
@P.y = n * 0.5;
@Cd = set(n,n,n);
・値が0.3のとき、広いうねりのような形状になりました。
・値が1.0のとき、うねりの具合が細かくなりました。
・値が2.0のとき、さらにうねりが細かくなりました。
さらにSin関数と掛け合わせてみる

vector pos = @P * 3.0;
float n = noise(pos) + sin(@P.x * 1.5)*0.2;
@P.y = n * 0.5;
@Cd = set(n,0.5 + n * 0.5,n);
・波+ノイズのような地形ができました。
次回について
ここまで読んでいただきありがとうございます。次回はカラーを使ったマスク処理について記載する予定です。


