【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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

万物简单AIoT物联网平台快速开始

学物联网,来万物简单IoT物联网!! 万物简单AIoT物联网提供一站式的AI物联网的学习平台,以及物联网SaaS私有化部署的解决方案。从终端硬件系统、云平台到APP前端的物联网能力,助力企业和开发者的设备具备1分钟快速上云的…

Matplotlib找不到Times New Roman的解决方案

问题背景 在使用seaborn或者matplotlib进行论文画图的时候,一般都会用Times New Roman这个字体,但是在Linux系统里,经常会遇到以下的问题: findfont: Font family [Times New Roman] not found. Falling back to DejaVu Sans. 也就是说找不…

实战14 权限处理

目录 1、权限处理后端接口 1.1 SpringSecurityConfig 1.2 在控制器中加入权限控制 2、前端页面按钮权限判断 2.1 保存权限字段 2.2 编写按钮权限判断 2.3 引入按钮权限判断脚本 2.4 按钮权限判断脚本使用 3、token过期处理 3.1 编写Store代码 3.2 编写刷新token新代码…

算法设计与分析实验报告-贪心算法

校课程的简单实验报告。 算法设计与分析实验报告-递归与分治策略 算法设计与分析实验报告-动态规划算法 算法设计与分析实验报告-贪心算法 dijkstra迪杰斯特拉算法(邻接表法) 算法设计与分析实验报告-回溯法 算法设计与分析实验报告-分支限界法 …

基于Java车间工时管理系统(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

web等保评测需要实机查看的操作系统、服务器、数据库和应用部分

“等保测评”全称是信息安全等级保护测评。是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。 本文陆续将遇到的…

Python教程(18)——python文件操作详解

Python文件操作 Python文件操作基础操作使用with语句管理文件处理文件操作的异常处理文件路径 文本格式和二进制格式文本格式 (Text Mode)二进制格式 (Binary Mode)例子说明 文件操作的相关函数 所谓的文件操作是指对计算机中的文件进行读取、写入、修改和删除等操作。简单来说…

安装DataEase(Linux线上安装)修改端口

问题一:端口更改 警告本解决方法仅仅应急,如果找到了更好的方法请通知我,感谢你的理解!!! 为了让mysql与dataease的端口不发生冲突,将 MySQL 外部运行端口参数 ${DE_MYSQL_PORT} 改为新端口&am…

一篇文章掌握 NestJS 所有的生命周期以及生命周期的执行时机

前言 NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架,它使用 TypeScript 作为开发语言,也支持原生的 JavaScript。在 NestJS 中,生命周期事件是一个重要的概念。在我们构建和管理应用程序时,有时需要在特定…

JUC常用并发工具类

JUC常用并发工具类 1、什么是JUC? JUC 就是 java.util.concurrent 包,这个包俗称 JUC,里面都是解决并发问题的一些东西,该包的位置位于 java 下 面的 rt.jar 包下面。 2、4大常用并发工具类 2.1 CountDownLatch CountDownLatch&#x…

[Angular] 笔记 17:提交表单 - ngSubmit

Submitting Forms (ngSubmit) 表单的一般完整写法: 如果表单验证失败,必须 disable 提交按钮,阻止用户提交不合法的数据。 提交表单后,与表单对应的 json 数据 post 到后端: {"id":1,"name":…

Windows上安装NodeJs

Windows上安装NodeJs 一、操作环境 操作系统: Windows 10 专业版 SDK:NodeJs v16.19.1(安装鸿蒙IDE自动安装的NodeJs) 二、安装过程 2.1下载Node.js安装包 官网下载地址: 下载历史版本安装也可 2.2 双击下载好的安装文件 2.3 打开下载…

从SLSA看软件供应链面临哪些威胁及对应解决方案

引言:软件制品供应链等级SLSA(Supply-chain Levels for Software Artifacts)是由由谷歌发起,基于行业共识建立的一个逐步完善供应链安全的规范。本文基于Google SLSA框架来看软件供应链安全面临的安全风险。 1. 简介 2023 年 4 月…

Educational cf 160的B题

Problem - B - Codeforces 找到最小操作次数,使得子串对应位与原来字符串对应位不相同。 交换是没有代价的,但是删除有代价。 首先复制两个一模一样的串,我们把下面作为固定串,然后对串中0和1的个数进行计数,由于我…

CEC2017(Python):五种算法(SSA、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介 1、麻雀搜索算法SSA 2、红狐优化算法RFO 3、鱼鹰优化算法OOA 4、粒子群优化算法PSO 5、灰狼优化算法GWO 二、CEC2017简介 参考文献: [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem defin…

(001)Unit 编译 UTF8JSON

文章目录 编译 Dll编译报错附录 编译 Dll 新建工程: 注意 UnityEngineDll 的选择!2022 版本的太高了!!! 下载包,导入unity : 3. 将 unf8json 的源码拷贝到新建的工程。 4. 编译发布版本: 编译…

做抖店的话营业执照要办什么类型?法人必须是本人信息?问题解答

我是王路飞。 想在抖音开店的新手,好像对抖音个人店有一种迷之追求。 先劝告你们一句,贪小便宜容易吃大亏。 抖音个人店并不适合新手开通,它重在“试运营”这三个字,新手不仅无法正常把店铺做起来,而且后续还要把对…

MPLS动态协议LDP配置示例

一、预习: MPLS是一种根据报文中携带的标签来转发数据的技术,两台LSR必须在它们之间转的数据 的标签使用上“达成共识”。LSR之间可以运行LDP来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。 LSR:Label Switch…

在Java中输入连续三个数字并进行升序排序

思想 使用for循环对数组中的元素进行排序:需要创建数组,然后使用for循环进行比较,再者对排序后的元素进行输出。 代码 import java.io.*; import java.util.*; public class Sequence {public static void main(String[] args) throws IO…

javascript之location常用属性和方法

文章目录 前言为什么使用location的属性和方法呢?属性展示hrefhosthostnameportprotocolpathname 方法展示replace(url)assign(url)reload()toString() 总结属性总结:方法总结: 前言 本章学习的是location常用属性和方法 为什么使用location的…