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
转载于:https://www.cnblogs.com/zhanlang96/p/4709687.html
unity3d 随机生成地形之随机山脉相关推荐
- 风尚云网前端-js随机生成自定义位随机字符
风尚云网前端-js随机生成自定义位随机字符 废话不多说: 上代码 // 随机生成随机数randomPassword(size) {var seed = new Array("A" ...
- 【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组
目录 环境 拓展库安装 生成随机假数据 查询使用GIN索引 GIN索引使用条件 参考 环境 PostgreSQL DBeaver 拓展库安装 打开SQL编辑器: 输入命令运行即可: CREATE EX ...
- [游戏随机生成地形] Meteorite Algorithm
懒得不想复习: 今天在尝试生成随机地形的时候, 想到了一个简单又比较实用的方法, 不知道是否有前辈已经用过, 我暂且将它命名 Meteorite Algorithm (陨石算法) 从名字就能猜出来, ...
- JS随机生成ID 以及随机生成坐标
随着时间来生成不同ID // 随机生成 ID const idStr = Date.now().toString(36) this.itemObj.id = idStrconsole.log(this ...
- mysql 随机生成中文名,MySQL随机生成电话号码,邮箱和中文姓名sql
原本系统中数据量有限,还有很多是英文的,老板演示的时候觉得不专业,需要随机生成一些内容,记录一下sql以便重复利用. 1. 随机座机号码 select concat(rpad(CEIL(RAND()* ...
- 随机验证码如何在html里设置颜色,js随机生成验证码以及随机颜色
Javascript通过Math.random()随机生成验证码. 代码如下: 随机验证码 .p1{ width:100px; height:30px; border:1px solid black; ...
- python随机生成正态分布_随机生成正态分布数据
http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...
- java随机生成数字(Java随机生成字母)
java里怎么产生1-100的随机数 我来说说这个用法 Math.random()这方法会返回一个(0,1)的double值 double a=Math.random(); 那么就a<1 &am ...
- python——根据公司名称查找公司地址(批量)、随机生成姓名、随机生成手机号
根据公司名称查找公司地址 随机生成姓名 随机生成手机号 各个功能都已经封装成了独立的方法,直接粘贴使用即可 import requests import re from urllib import p ...
最新文章
- stitching detail输出的dot图含义
- 机器人也是“艺术家”!上海世界移动大会聚焦5G时代
- 华为HCIE RS都考什么?(含选择及面试题)
- Linux shell 下的复制和粘贴(Copy Paste Operation on Linux shell)
- pytorch 实现MLP(多层感知机)
- Android上传文件至服务器
- 05-简单的输入输出
- lopatkin俄大神精简中文系统Windows 10 Enterprise 2016 LTSB 14393.479 x86-x64 ZH-CN PIP
- 理解int的存储方式以及二进制编辑器的使用
- 微信小程序视频+微信视频号视频下载教程
- 鸿蒙升级之前APP没有,升级鸿蒙2.0之后,没有原生的日历app了
- 用ultraiso安装linux系统教程,使用UltraISO刻录光盘教程
- ubuntu 910 下安装万能五笔
- 深度学习调优深度学习模型
- 安防监控直播中无插件web直播方案中实现快照抓取的功能
- Python---计算mAP
- 大牛关于学习C++的建议
- fiddler抓苹果手机上app包的方法,解决https连接只抓到Tunnel to的问题
- python三级_Python三级目录展示方法
- Lua脚本如何调用C/C++模块,Windows以及Linux版本演示