unity3d 隨機生成地形之隨機山脈


利用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM