パーリンノイズ
https://gyazo.com/70b9a6e61e1ac1e2c0467f16257615e6
完全なランダムではなく、入力値に応じてなだらかに変化する。
作り方とか概念的な所
Unityのスクリプトでの実装
code:cs
// 地形生成に使う時
// 2Dなら地面の有無、3DならZ座標の高さ。など
Mathf.PerlinNoise(x, y); // 値域は0〜1
// 時間変化に使う時
float frequency = Time.time * frequencyRate; // frequencyRateで振幅の速さ
Mathf.PerlinNoise(frequency, _seed.x); // _seedは固定値
概念と合わせれば3D化もいけそう
上のシェーダを書くと見通しが悪すぎるので、別ファイルに分ける事も出来る
その他シェーダで色々なノイズ
Unityシェーダのリファレンスいろいろ
上の一覧に無い関数(Math系のsinとか)はHLSLのリファレンスから索引を引けば良いみたい
Minimum shader modelと書いてある欄が、実行環境のバージョンを指定するようで、Unityの場合デフォルトは2.5だそう Gc/HLSLの外側に関する事
資料集
パーリンノイズを使った作例
[パーリンノイズを使ってアニメーションにランダムなゆらぎを与える【Unity】 - (:3kanのメモ帳 1次元のパーリンノイズ 解説
生成したノイズを色々いじくって観察したもの
参考資料
値域は多分 -1 ~ 1