【Unity地形】使用地形工具创建场景环境-Terrain

 

如上图Unity的地形工具可以让我们实现创建复杂、丰富的3D室外环境。

我们创建地形很简单,在层级面板中右键-3Dobject-Terrain 就可以创建一个默认的地形模型!这个模型是Unity内置的。

接下来的地形编辑功能全部集中在这个地形的组件上

主要功能如下:

1.地形拼接扩展工具

可以让用户在黄色线里面点击即可扩增地形

2.地形绘制

2.1 造型的绘制Raise or Lower Terrain

这里面功能稍微多一点,首先是地形造型的绘制Raise or Lower Terrain,这个模式下,我们可以用笔刷绘制一些起伏不平的山丘。

下面选择一个造型的笔刷,笔刷可以自己在PS中制作,白色代表高强度,黑色代表没有绘制强度。

选择笔刷-调整强度-大小,就可以在地形模型上任意绘制了!按住Shift可以压低凸起的地形!

2.2 Paint Holes挖洞笔刷

在切换为这个选项以后,用户可以用笔刷在地形模型上刷洞,同样,在笔刷状态,按住shift键盘,可以补洞。

2.3 地形贴图绘制Paint Texture

这个就像画画一样,可以分层往地形上涂贴图。而且这个贴图还支持法线贴图!这也像给光秃秃的地面涂上美丽的衣服!

首先我们需要添加贴图,这个题图完全是从百度或者其他网站下载的普通图片。我们准备了三张,分别是土壤贴图、草地贴图、道路贴图!拖到Assets仓库中!

然后在地形组件绘制贴图选项中-右下角点击-编辑层-创建一个层-指定贴图。这样就把笔刷将来要绘制的内容准备好了!我们就可以用笔刷进行绘制地形的纹理效果。

添加地面纹理贴图 

这一步只是实现了外观漫反射贴图,这个贴图如果太密集的话,我们就需要修改贴图的重复尺寸!

下图就是贴图铺的太密集,我们展开贴图修改!

点击贴图属性,找到Tiling Setting,把贴图大小从1改到20左右,视觉效果就好很多了。

接下来,为了增加凹凸感我们添加一张法线贴图!法线贴图的生成是用PS!

原图放在PS中-滤镜-3D-法线贴图。把做好的法线贴图放到Unity仓库中!贴到贴图属性Normal Map位置上去!

法线贴图可以在视觉上增加模型的凹凸感!

贴图准备好了就可以绘制了!我们可以轮换贴图进行绘制、调节笔刷大小和强度来构建一些更加柔和自然、多样的地面效果!

 

 3.绘制草地细节

选择地形-选择对应组件-第四个按钮-Paint Details

这个工具和前面一样,也是两个模块组成(贴图模块+笔刷模块)

这个工具允许我们把一张透明png的贴图,像种草一样铺满整个地面。

我们首先找一张PNG草、花的贴图

放入Unity,无需单独制定图片类型,就使用默认贴图类型即可!精灵模式也可以!最好压缩为512以下!

 然后在地形组件Paint Details工具下,添加贴图

添加刚才的花朵贴图

下面这个面板的属性决定了未来种植在地形上的草贴图,外观尺寸的随机范围。如果想让草高一点就把最大宽度和高度调高!

这个范围跨度越大,刷出来的草高低参差不齐,随机性、多样性就好! 

里面的颜色,如果都设置为白色就是保持贴图原有颜色,其他颜色都将会叠加到贴图上!

调整笔刷的大小和强度! 

下面这个两个属性决定了,每笔绘制出的贴图密度。数值越大,绘制的越密集。

效果:

4.绘制树 

我们也可以像绘制草一样,在地形上面绘制很多树木,当然可以调节树木的随机高低

4.1先准备树的模型

对Unity支持最好的植物模型当然是SpreedTree软件制作的植物,其他软件做的树面数都太高,而且不够灵活设置LOD!大家私下研究SpreedTree。也可以从商店下载免费的SpreedTree植物模型!

我这使用了一个商店免费的SpreedTree植物模型

导入Unity

4.2 设置笔刷内容

点击EditTrees

把下载好的树,后缀是spreedTree的树模型放入AddTree 里面,绘制的树内容设置完毕!

然后调节笔刷大小和密度就可以绘制了!注意根据需要设置随机大小!

5.创建风系统

层级面板右键-创建Wind Zone。这个只要创建在场景中,场景中的所有地形上面的物体就会受风的影响。

游戏运行的时候,可以看到书和花草都会受影响,相关风力的大小可以在Wind Zone组件中修改!

 

当然地形也可以设置自己受风力影响的程度,请看下面第6部分! 

6.设置地形

请自行查看官方文档。Unity - Manual: Terrain settings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS中如何根据身份证号生成出生日期并排序

1. wps中如何根据身份证号导出出生日期并排序 1.1 wps中建一张表 1.2 使用转日期格式导出出生日期 DATE(VALUE(MID(C2,7,4)),VALUE(MID(C2,11,2)),VALUE(MID(C2,13,2)))MID(C2, 7, 4):这部分从单元格 C2 中提取文本字符串,从第7个字符开始提取长度为4的…

[python]python使用M-LSD直线检测算法onnx部署模型实时检测

介绍 github地址:https://github.com/navervision/mlsd LSD (M-LSD)一种用于资源受限环境的实时轻量线段检测器。它利用了极其高效的 LSD 架构和新颖的训练方案,包括 SoL 增强和几何学习方案。模型可以在GPU、CPU甚至移动设备上实时运行。算法已开源&a…

【elk-day01】es和kibana搭建及验证---Mac-Docker

Mac系统使用Docker下载搭建和验证eskibana Docker下载安装es安装es验证kibana安装kibana验证 Docker下载安装 Docker Desktop官网安装下载地址 说明一下为什么要安装desktop版本的docker,因为docker作为工具使用,我们需要的是开箱即用,没有必…

windows搭建MySQL 8.25主从配置

1.本次搭建的版本 mysql-8.0.25-win-x64 2.在解压完成后的文件内并没有对应的my.ini的配置文件这个my.ini是需要的主配置文件需要自行创建。 注:安装路径及数据存放路径需根据实际安装情况进行修改(其它配置信息可结合实际情况进行修改) 3.在…

vue+element实现动态表格:根据后台返回的属性名和字段动态生成可变表格

现有一个胡萝卜厂生产不同品种的胡萝卜,为了便于客户了解产品,现需在官网展示胡萝卜信息。现有的萝卜信息:编号(id)、名称(name)、保质期(age)、特点(remark&…

深度学习:计算机技术的革命性突破

深度学习:计算机技术的革命性突破 随着科技的飞速发展,深度学习已经成为计算机技术领域的一股强大力量。它改变了我们与机器的交互方式,为人工智能领域带来了革命性的突破。本篇博客将深入探讨深度学习的原理、应用和发展趋势。 一、深度学…

【python】爬取斗鱼直播照片保存到本地目录【附源码+文末免费送书】

一、导入必要的模块: 这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应,以及os模块处理文件和目录操作。 如果出现模块报错 进入控制台输入&#xff…

【基础篇】五、类的双亲委派机制

文章目录 1、双亲委派机制2、Java代码中去主动加载一个类3、“父”加载器4、Q & A5、打破双亲委派机制 1、双亲委派机制 JVM中有多个类加载器,某个类A,到底该由谁去加载 ⇒ 双亲委派机制 该机制的作用: 保证类加载的安全性:避…

Grafana 配置告警

配置告警 配置告警 1. Grafana 配置文件配置 #################################### SMTP / Emailing ########################## [smtp] enabled true host smtp.qq.com:587 user 9**qq.com # If the password contains # or ; you have to wrap it with triple quotes…

智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白鲸算法4.实验参数设定5.算法结果6.参考文献7.MA…

vue3+elementPlus+cascader动态加载封装自定义组件+v-model指令实现父子通信

文章目录 select普通操作 (1)cascader操作(2) select普通操作 (1) 搜索条件需求:接口入参需要houseId,但是要先选择完楼栋,再选择单元,最后选择房屋 如图&a…

【C#】.net core 6.0 依赖注入生命周期

给自己一个目标,然后坚持一段时间,总会有收获和感悟! 对于.net core而言,依赖注入生命周期有三种瞬态(Transient)、作用域(Scoped)和单例(Singleton)&#xf…

数据结构-如何实现一个队列?逐步解析与代码示例(超详细)

文章目录 前言1.队列的基本概念2.链表与数组实现队列的区别2.1数据存储结构2.2性能2.3内存使用 3.为什么选择链表实现队列?4.结构定义函数声明 5.核心操作5.1初始化 (QInit)5.2销毁 (QDestroy)5.3入队 (QPush)5.4出队 (QPop) 6.队列的查询操作6.1队首元素 (QueueFro…

如何将语音版大模型AI接入自己的项目里(语音ChatGPT)

如何将语音版大模型AI接入自己的项目里语音ChatGPT 一、语音版大模型AI二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例5、智能生成API代码 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、语音版大模型AI 基于阿里通义千问、百…

分享5款实用的小工具,提升你的工作效率

​ 工作中,简单而实用的小工具能够为我们带来事半功倍的效果。这五款工具可能是你工作效率提升的关键。 1.云存储——Dropbox ​ Dropbox是一款流行的云存储服务,可以让你在不同的设备上同步和访问你的文件。你可以将你的文件上传到Dropbox的服务器上&…

绝缘电阻测试仪的测量范围有多少?它的测量方法是什么?

绝缘电阻测试仪广泛应用于设备检测和故障排除。它广泛应用于电力检测行业。甚至可以说,电力设备离不开绝缘电阻测试仪设备。对于许多经验丰富的电力测试工人来说,绝缘电阻测试仪的常规测量范围和方法应该非常清楚。在本文中,我们将向一些新的…

学之思开源考试系统是一款 java + vue 的前后端分离的考试系统

学生系统功能 模块介绍登录用户名、密码注册年级、用户名、密码任务中心管理员发布的年级任务,每个学生只能做一次考试题干支持文本、图片、数学公式、表格等,学生答题支持:文本固定试卷可重复练习、自行批改的试卷时段试卷在时间限制内&…

关于chatglm3 function calling的理解

ChatGLM3-6B开源了工具调用,好奇他是怎么实现的,所以写了这个文章记录。 一、测试官方的示例 官方给的示例很简单,只不过给的两个函数 track 和 text-to-speech 没有具体的实现,模型的输出也只是给出了需要调用的函数名和参数。剩…

【C语言】指针详解(四)

目录 1.assert断言 2.指针的使用和传址调用 2.1strlen的模拟使用 2.2传值调用和传址调用 1.assert断言 assert.h头文件定义了宏 assert(),用于在运行时确保程序符合指定条件,如果不符合,就报错终止运行。这个宏常常被称为“断言”。 例如…

多模态——CLIP:Contrastive Language-Image Pre-training解读

前言 随着人工智能技术的不断进步,多模态成为备受瞩目的研究方向。多模态技术旨在融合不同类型的数据和信息,以实现更准确、高效的人工智能应用。有学者认为它代表了所有模型发展的最终趋势。这类模型旨在接受多种不同的输入方式,例如图像、…