利用Fractal Noise生成地形,再加上山體shader,外加雪shader
Noise生成結果
noise 生成主要參考這篇文章,就不再贅述
Value3D:

Perlin2D:

Fractal Noise:

地形生成結果
生成地形網格方法主要參考這篇文章,就不再贅述
noise 頻率:22,分辨率:256
Value3D:

Perlin2D:

Fractal Noise:

noise 有很多用處,比如地形,水體,流體,特殊物體的紋理,或使貼圖不重復等等
山體shader
Shader方面分為兩層,上層為岩石,下層為植物,(可根據貼圖變化)
使用了四種貼圖,上層兩種,下層兩種,噪聲貼圖來調整兩種比例,以免一種過為單調,人工跡象明顯
代碼主要是利用lerp
注意:生成地形時,noise的uv比例要調整好(山體密度與細節)
雪部分主要根據下雪方向與法線方向判斷,兩者做點積,
再把下雪部分賦以特定雪紋理,就ok了
if (dot(N, _SnowDir) > _SnowInten) {
c = _SnowColor;
N = normalize(i.normal) + normalize(UnpackNormal(tex2D(_SnowNormalTex, i.uv_SnowNormalTex)));
}

結果
加上霧效與AA,bloom




全部代碼已共享至github
---------------by wolf96
