【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…

python虚拟环境及其在项目实践中的应用

文章目录 1.问题的提出1.什么是python虚拟环境2.如何创建2.1第1步-为共享同一虚拟环境的项目创建共同的父目录2.2第2步-在父目录下创建虚拟python环境2.3在父目录下创建各个项目文件夹 1.问题的提出 假设我正在开发若干python项目,这里假定项目名分别为Project1&am…

【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,到底该由谁去加载 ⇒ 双亲委派机制 该机制的作用: 保证类加载的安全性:避…

网页设计——中国梦

文章目录 前言一、需求分析二、技术1.CSS2.响应式布局3.实施过程三、演示四、如何运行五、源码总结前言 本项目是基于css、html的静态网页项目。使用的工具是vscode项目名称:中国梦运行:导入vscode直接运行包含内容:所有源码、ppt、计划书(文末附有链接)。一、需求分析 中…

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…

Unity编辑器紫色

紫色原因是因为编辑器内跑了其他平台的shader兼容性导致的,需要动态的去修改shader,主要用到Unity的api : Shader.Find(shaderName); 具体的工具代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine…

Jekins实现自动化部署

1. Jenkins 安装启动 war包安装 下载脚本 #!/bin/bash mkdir /opt/module/jenkins cd /opt/module/jenkins wget https://get.jenkins.io/war-stable/latest/jenkins.war # 版本2.277.4启动脚本 cd /opt/module/jenkins java -jar jenkins.war --httpPort9090 #访问地址&am…

Vue3中props的原理与使用

在Vue3中,props仍然是用来接收父组件传递给子组件的数据的。然而,在Vue3中,props的使用有一些变化。 定义props:在Vue3中,定义props需要使用defineProps函数,该函数接收一个对象作为参数,对象的…

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的服务器上&…