第七章 3D地形搭建(下)

news2024/11/23 12:07:28

上一章节我们介绍了地形编辑,接下来介绍Paint Trees(绘制树木)。

由于树木属于3D模型,初学者不可能通过3ds max或者maya软件进行制作,因此我们还是建议大家从官方资源商店上面去下载免费的。这里我们依然使用上个章节中的官方标准资源包。

我们可以在“Standard Assets\Environment\SpeedTree”看到有三个树模型文件,我们就使用他们了。接下来我们点击“Paint Trees”选项面板

然后点击“Edit Trees... -> Add Tree”按钮,添加树木模型

点击右上角的圆形小按钮“Tree prefab”会弹出一个资源选择框

我们选择其中一个树木模型即可,例如“Broadleaves_Mobile”。

然后点击右下角的“Add

接下来,就可以使用笔刷工具,将这个树木模型“绘制”到地形平面上啦。

具体的操作就是按下鼠标,然后再地形平面上拖动,就能绘制很多树木在平面上。

显然这些树木之间距离太小了,而且无法控制树木的数量,如何调整呢?

上面截图中Settings中有很多的参数,我们简单介绍一下。

Brush Size:笔刷大小,控制可添加树的区域的大小。

Tree Density:控制 Brush Size 定义的区域中绘制的树平均数量。

Tree Height:使用滑动条来控制树的最小高度和最大高度。将滑动条向左拖动绘制矮树,向右拖动绘制高树。如果取消选中 Random,可以将所有新树的确切高度比例指定为 0.01 2 的范围内。

Lock Width to Height:默认情况下,树宽度与其高度锁定,因此始终会均匀缩放树。然而,可以禁用 Lock Width to Height 选项,然后单独指定宽度。

Tree Width:如果树宽度未与其高度锁定,则可以使用滑动条来控制树的最小宽度和最大宽度。将滑动条向左拖动绘制细树,向右拖动绘制粗树。如果取消选中 Random,可以将所有新树的确切宽度比例指定为 0.01 2 的范围内。

Random Tree Rotation:如果为树配置 LOD 组,请使用 Random Tree Rotation 设置来帮助创建随机自然的森林效果,而不是人工种植的完全相同的树。如果要以相同的固定旋转来放置树,请取消选中此选项。

Color Variation:应用于树的随机着色量。仅在着色器读取 TreeInstanceColor 属性时有效。例如,用 Tree Editor 创建的所有树的着色器将读取 TreeInstanceColor 属性。

Tree Contribute Global Illumination:启用此复选框可向 Unity 指示树影响全局光照计算。

上面的参数基本上都可以理解,我们之前想要让树木绘制“稀疏”一些,我们可以将Brush Size150)调大一些,Tree Density10)调小一些。

然后去场景中再绘制试一试。

效果已经出来啦。我们继续添加树木吧。

接下来,我们继续介绍“Paint Details”绘制一些花草到地形上面。

我们点击“Edit Details... -> Add Grass Texture”添加花草纹理贴图,请注意,这里是纹理图片,并不是模型文件(网格)哦。

点击上面的“Detail Texture”右上角的小圆按钮,弹出资源选择弹框

找到我们的花草纹理贴图文件,选择其中一个即可,例如“GrassFrond01AlbedoAlpha”。

在这个页面中,我们可以对选中的贴图做一些参数设置。

Min WidthMax WidthMin Height Max Height 值可指定生成的草丛的大小上限和下限。为了创建逼真的外观,草是以随机“噪点”图案生成的,有裸露斑块散布在草地上。

Noise Spread 值控制着裸露与草丛斑块的近似大小,值越高表示给定区域内的变化越大。

Unity 使用柏林噪声 (Perlin noise) 算法生成噪点;Noise Spread 是指在地形上的 xy 位置与噪点图像之间应用的缩放。通常认为,交替的草地斑块处于中心位置比处于边缘位置更“健康”,而 Healthy Color Dry Color 中设置的颜色表示草丛的健康状态。

最后,当启用 Billboard 选项时,草的图像将旋转,因此它们将始终面向摄像机。当您希望显示密集的草地时,此选项很有用,因为草丛是二维的,不能从侧面看到。然而,对于稀疏的草,草丛个体的旋转对于观察者来说可能会变得很明显,产生奇怪的效果。

最后,我们点击“Add”添加我们选择的花草纹理贴图。

接下来,我们就可以使用笔刷绘制啦。

我们可以修改下面的“Target Strength”来修改花草的绘制密度。

除了添加一些花草纹理贴图之外,还可以添加岩石之类的地表物。我们需要回到“Paint Details”选项面板。然后我们点击“Edit Details... -> Add Detail Mesh”添加网格,请注意,这里是模型文件(网格),并不是纹理贴图哦,跟之前的花草是不一样的。由于官方资源包中并没有“石头”模型,因此我们就不演示了。大家可以去资源商店下载一些试试。需要注意的是,当我们选择“石头”模型的时候,有一些参数需要设置。如下所示:

在这个页面中,我们可以对选中的石头模型做一些参数设置。
Unity 在 Min Width 和 Max Width 值以及 Min Height 和 Max Height 值之间对其随机缩放。Unity 对 x 轴和 z 轴使用宽度缩放,而对 y 轴使用高度缩放。
Healthy Color 和 Dry Color 值的作用与它们对草的作用相同。
可将 Render Mode 设置为 Vertex Lit 或 Grass。
在 Vertex Lit 模式中,Unity 将细节对象渲染为场景中的实体顶点光照游戏对象。
在 Grass 模式中,Unity 以类似草的方式使用光照渲染场景中细节对象的实例。
备注:这里设置了Healthy Color 和 Dry Color 值为白色;Render Mode设置为Vertex Lit。

接下来我们来创建“水”,在Unity官方标准资源包中就有,如下所示

预制件对水使用椭圆形网格。如果需要使用其他不同的网格,请在水游戏对象的网格过滤器 (Mesh Filter)中进行更改,当然我们就不进行修改了。添加水的方法非常简单,只需要将我们的水预制件拖拽到地形平面某一个低洼的地区即可。

大家就能看到波光粼粼的水效果了。最后运行一下,看看真实的效果吧。

关于场景的搭建,我们就暂时介绍到这里。

在后期的课程中,我们会慢慢添加角色,并在控制角色在上面的场景中进行移动。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

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

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

相关文章

骨传导耳机效果怎么样,骨传导耳机的具体好处有哪些

随着人们生活水平的提高,科技的发展,耳机已经成为了人们必不可少的工具,其中骨传导耳机成为了许多人的新宠。骨传导耳机与传统耳机相比,不入耳、不伤耳、无需塞入耳朵、能够在户外运动时享受音乐,使用场景非常丰富。接…

找网站绝对路径

目录 Linux系统 目标出网。且命令有回显 目标出网,命令无回显 目标不出网,命令无回显 Windows系统 目标出网,命令有回显 目标出网,命令无回显 目标不出网,命令无回显 Linux系统 目标出网。且命令有回显 find …

【MATLAB图像处理实用案例详解(12)】——利用BP神经网络实现图像压缩

目录 一、图像压缩二、BP神经网络实现图像压缩原理三、算法步骤3.1 图像块划分3.2 归一化3.3 建立BP神经网络3.4 保存结果 四、效果演示 一、图像压缩 常见的文件压缩软件如WinZip、WinRAR等采用的是无损压缩,能够完全恢复原文件内容。多媒体信息具有信息量大、冗余…

java基础项目:图书管理系统(详解)

java基础学习后适合写的测试语法和代码熟练度的小项目(学校学java,总得练一练的) 文章目录 架构 / 流程架构流程具体内容 代码实现booksBook(图书类)BookList(图书列表类) userUser(…

U盘数据恢复怎么做?分享4个恢复方法!

案例:u盘数据恢复 【我之前丢失的u盘前两天突然找到了,但是我将它插入电脑后很多数据都读不出来了,遇到u盘无法读取的情况怎么办呀?怎么才能恢复u盘数据呢?】 u盘是一种便携式存储设备,广泛用于数据传输和…

使用Inno Setup将QT开发的软件制作成安装包(仅Windwos平台)

使用Inno Setup将QT开发的软件制作成安装包(仅Windwos平台) 前言 在使用QT完成软件开发后要把软件给别人使用,我之前是打包发布后直接弄成压缩包发给别人,但是接收的人就要通过解压软件解压才能使用软件,如果没有解压…

WizardKM:Empowering Large Language Models to Follow Complex Instructions

WizardKM:Empowering Large Language Models to Follow Complex Instructions Introduction参考 Introduction 作者表明当前nlp社区的指令数据比较单一,大部分都是总结、翻译的任务,但是在真实场景中,人们有各式各样的需求,这限制…

MyBats

一、MyBatis简介 1. MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBatis一词来…

【Python | 基础语法篇】02、标识符、运算符、字符串扩展及数据输入

目录 一、标识符 1.1 什么是标识符 1.2 标识符命名规则 1.2.1 标识符命名规则 - 内容限定 1.2.2 标识符命名规则 - 大小写敏感 1.2.3 标识符命名规则 - 不可使用关键字 1.3 案例演示 1.4 变量命名规范 1.4.1 变量命名规范 - 见名知意 ​1.4.2 变量命名规范 - 下划线…

Spring aop如何寻找advisor

1.bean的生命周期第一步回去解析所有的advisor 2.第四个是我们之前开启的注解EnableAspectJAutoProxy 3.org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#postProcessBeforeInstantiation 4.org.springframework.aop.framework.autoproxy.AbstractAutoP…

ChatGPT的提示的一些高级知识

作为一个大型语言模型(LLM)接口,ChatGPT有令人印象深刻的潜力,但是真正能否用好取决与我们的提示(Prompt ),一个好的提示可以让ChatGPT晋升到一个更好的层次。 在这篇文章中,我们将介绍关于提示的一些高级…

可视化 | Flask+Pyecharts可视化模板二

文章目录 🏳️‍🌈 1. 系统说明界面🏳️‍🌈 2. 柱状图示例界面🏳️‍🌈 3. 散点图示例界面🏳️‍🌈 4. 折线图示例界面🏳️‍🌈 5. 饼图示例界面&#x1f3f…

单链表——你需要掌握的那些内容

如有错误,感谢不吝赐教、交流 文章目录 前言本文涉及题目:设计链表有无头结点的区别头指针无头结点有头结点为什么需要头结点呢?注意: 单链表,本文使用Java实现定义链表节点定义一个链表类并初始化get(int index)addA…

HAproxy与web集群

文章目录 一、HAproxy1.HAProxy是什么2.HAProxy的核心能力和关键特性3.LVS、Nginx、HAproxy的区别: 二、实验步骤1.Haproxy搭建 Web 群集 总结 一、HAproxy 1.HAProxy是什么 HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。…

儿童生长发育迟缓的鉴别和干预

(英国)国家临床医学研究所(NICE)2017年发布关于婴儿/儿童生长发育迟缓的鉴别、评估和监测的指南,该指南确定了生长发育的界值,指出了诱因及危险因素,并提出了干预的方案。 ▼Part1:…

“无人值守”时代已来,千巡翼X4给出怎样的答案?

随着技术和产品的逐渐成熟,无人机在各行业的应用越来越普遍,但如何进一步解放人力,提高运营效率,还有很大的探索空间。针对作业频率高、重复性高、周期性强、作业环境艰险危险等痛点,用户迫切需要更高效、更智能的全自…

LeetCode876. 链表的中间结点

876. 链表的中间结点 描述示例解题思路以及代码解法1解法2 描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 示例1 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释…

希尔排序的实现

希尔排序是插入排序的一种升级,其基本思想是: 先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每 一组内的记录进行排序。然后,取,重复上述分组和排序的工 作…

可执行Jar项目

一个复杂Jar的运行,要解决classpath问题,否则运行时会有ClassNotFoundException抛出。而用java,需要手动维护一个classpath文件,或者将所有的库位置放到命令行参数里。有没有更好的办法? Jar库目录方式 核心配置在于两…

算法训练Day40:343. 整数拆分 96.不同的二叉搜索树

文章目录 整数拆分题解(动态规划)贪心 不同的二叉搜索树题解 整数拆分 CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsMedium (62.22%)11660--0 Tags 数学 | 动态规划 Companies 给定一个正整数 n ,将其拆分为…