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   http://blog.csdn.net/wolf96

转载于:https://www.cnblogs.com/jzdwajue/p/7097454.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值