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

转载于:https://www.cnblogs.com/zhanlang96/p/4709687.html

unity3d 随机生成地形之随机山脉相关推荐

  1. 风尚云网前端-js随机生成自定义位随机字符

     风尚云网前端-js随机生成自定义位随机字符 废话不多说: 上代码 // 随机生成随机数randomPassword(size) {var seed = new Array("A" ...

  2. 【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组

    目录 环境 拓展库安装 生成随机假数据 查询使用GIN索引 GIN索引使用条件 参考 环境 PostgreSQL DBeaver 拓展库安装 打开SQL编辑器: 输入命令运行即可: CREATE EX ...

  3. [游戏随机生成地形] Meteorite Algorithm

    懒得不想复习: 今天在尝试生成随机地形的时候, 想到了一个简单又比较实用的方法, 不知道是否有前辈已经用过, 我暂且将它命名 Meteorite Algorithm (陨石算法) 从名字就能猜出来, ...

  4. JS随机生成ID 以及随机生成坐标

    随着时间来生成不同ID // 随机生成 ID const idStr = Date.now().toString(36) this.itemObj.id = idStrconsole.log(this ...

  5. mysql 随机生成中文名,MySQL随机生成电话号码,邮箱和中文姓名sql

    原本系统中数据量有限,还有很多是英文的,老板演示的时候觉得不专业,需要随机生成一些内容,记录一下sql以便重复利用. 1. 随机座机号码 select concat(rpad(CEIL(RAND()* ...

  6. 随机验证码如何在html里设置颜色,js随机生成验证码以及随机颜色

    Javascript通过Math.random()随机生成验证码. 代码如下: 随机验证码 .p1{ width:100px; height:30px; border:1px solid black; ...

  7. python随机生成正态分布_随机生成正态分布数据

    http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...

  8. java随机生成数字(Java随机生成字母)

    java里怎么产生1-100的随机数 我来说说这个用法 Math.random()这方法会返回一个(0,1)的double值 double a=Math.random(); 那么就a<1 &am ...

  9. python——根据公司名称查找公司地址(批量)、随机生成姓名、随机生成手机号

    根据公司名称查找公司地址 随机生成姓名 随机生成手机号 各个功能都已经封装成了独立的方法,直接粘贴使用即可 import requests import re from urllib import p ...

最新文章

  1. stitching detail输出的dot图含义
  2. 机器人也是“艺术家”!上海世界移动大会聚焦5G时代
  3. 华为HCIE RS都考什么?(含选择及面试题)
  4. Linux shell 下的复制和粘贴(Copy Paste Operation on Linux shell)
  5. pytorch 实现MLP(多层感知机)
  6. Android上传文件至服务器
  7. 05-简单的输入输出
  8. lopatkin俄大神精简中文系统Windows 10 Enterprise 2016 LTSB 14393.479 x86-x64 ZH-CN PIP
  9. 理解int的存储方式以及二进制编辑器的使用
  10. 微信小程序视频+微信视频号视频下载教程
  11. 鸿蒙升级之前APP没有,升级鸿蒙2.0之后,没有原生的日历app了
  12. 用ultraiso安装linux系统教程,使用UltraISO刻录光盘教程
  13. ubuntu 910 下安装万能五笔
  14. 深度学习调优深度学习模型
  15. 安防监控直播中无插件web直播方案中实现快照抓取的功能
  16. Python---计算mAP
  17. 大牛关于学习C++的建议
  18. fiddler抓苹果手机上app包的方法,解决https连接只抓到Tunnel to的问题
  19. python三级_Python三级目录展示方法
  20. Lua脚本如何调用C/C++模块,Windows以及Linux版本演示

热门文章

  1. 获取系统特殊文件夹的路径
  2. 安装SQL2000 提示 以前的某个程序安装已在安装计算机上创建挂起的文件
  3. matlab-Grefenstette的编码与解码
  4. 第四章MPU6000传感器驱动解析
  5. gcc编译C++程序
  6. 使用多线程会加快文件读取速度吗?
  7. 机器学习 KD树生成(matlab实现)
  8. java类结构图_java 集合类结构图
  9. 服务器php 不能运行框架,经验总结 PHP框架常见错误
  10. 步步理解 JAVA 泛型编程 – 共三篇