float2 ivec = floor(vec);
float2 fvec = frac(vec);
float a = dot(Random(ivec + float2(0.0, 0.0)) * 2.0 - 1.0, fvec - float2(0, 0)); float b = dot(Random(ivec + float2(1.0, 0.0)) * 2.0 - 1.0, fvec - float2(1, 0)); float c = dot(Random(ivec + float2(0.0, 1.0)) * 2.0 - 1.0, fvec - float2(0, 1)); float d = dot(Random(ivec + float2(1.0, 1.0)) * 2.0 - 1.0, fvec - float2(1, 1)); fvec = smoothstep(0.0, 1.0, fvec); return lerp(lerp(a, b, fvec.x), lerp(c, d, fvec.x), fvec.y);
昔拾ってきたパーリンノイズ作成の処理です(Randomは 0 ~ 0.99までの2次元ベクトル(少数)を返す)
このまま rgb にreturnしてあげた座標を入れてあげると
パーリンノイズが生成されるのですが、*2.0 - 1.0の処理がどうしてもわかりません。
この処理自体は0 ~ 1までの値を -1 ~ 1までにclampしてあげる感じだと思うのですが、
それをするメリットがわかりません
どういった意味があるのでしょうか?
わかる方いらっしゃりましたら是非教えていただきたいです。
) ← * 2.0 - 1.0あり
← * 2.0 - 1.0なし
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/02 11:40
2020/11/03 03:03
2020/11/03 07:16