Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >UE5 地形系统初探

UE5 地形系统初探

作者头像
Kindem
发布于 2022-08-12 06:17:40
发布于 2022-08-12 06:17:40
3.3K0
举报
文章被收录于专栏:Kindem的博客Kindem的博客

使用的版本:UE5 Early Access

地形系统介绍

UE 可以直接在编辑器中创建并编辑地形,编辑地形的模式有两种:Sculpt 和 Paint。

  • Sculpt 的作用是对地形进行造型和雕刻,Sculpt 对地形产生的修改最终会体现在 Heightmap 即高度图中,UE 会在运行时对这张图进行采样,从而产生地形 Mesh,很经典的做法。
  • Paint 则可以让开发者对地表进行绘制,开发者可以创建多个 Landscape Layer,每一个 Layer 可以使用不同的纹理,比如雪地、草地、土壤等,在 Paint 模式下,用户可以选择不同的 Layer 对地形进行绘制,绘制完成后,会根据 Layer 的数量生成对应的 Weightmap 即权重图,其中保存了每一个 Layer 的权重,由于 Weightmap 有 RGBA 四个通道,一张 Weightmap 至多能保存四个 Layer,每四个 Layer 会额外生成一张 Weightmap,Layer 数量越多,显存消耗越大。在运行时,UE 会对当前地块的 Weightmap 和 Layer 纹理进行采样,并进行混合,最终形成地表。

在创建地形的时候,有 Section 的概念,Section 可以认为是一块地形,每一个地形 Component 可以选择保存 1x1 或者 2x2 块 Section,创建地形的时候,需要输入 Section 的大小和 Component 的数量,来决定最终地形的大小。

要在 UE 中创建地形,需要先切换到 Landscape Editing Mode:

Landscape Editing Mode

在 Manage 面板,我们可以输入参数创建新的地形:

Landscape Manage

完成创建后,会生成一个 Landscape 的 Actor:

Landscape

之后切换到 Sculpt 模式即可进行雕刻,有很多工具可供选择,我这里随便整了个地形:

Sculpt

下一步就是刷地表,在刷地表之前,我们先要为每一层 Layer 创建一个 MaterialFunction,每个 MaterialFunction 使用 Landscape TexCoord 采样自己需要的纹理,然后输出一个 MaterialAttribute,我这里为了简单起见,直接用 LandscapeCoords 采 BaseColor 然后返回,Normal 给 (0, 0, 1),实际上做的时候材质是会很复杂的(要注意不光 BaseColor 会做混合,而是所有的 MaterialAttribute 都会做混合):

Layer Grass

做完了草,再做几层其他的,也是类似的:

Layers

接下来我们需要创建地形的材质,并在其中使用 LandscapeLayerBlend 节点对多层地表进行混合:

LandscapeLayerBlend

注意材质选项中勾选 Use Material Attributes 来直接输出 Material Attributes,然后 MF_ 开头的三个就是我们之前创建的三个 Layer,在 Landscape Layer Blend 节点中填写 LayerName 并把对应的 Layer 连上来即可。

接下来选中 Landscape Actor,将其材质设置成我们刚刚创建的这个材质:

Landscape Material

这时候你可以注意到,左边的 Paint 面板已经自动识别到了我们刚刚创建的几个 Layer:

Paint Layers

我们需要为每一层 Layer 创建一个 LayerInfo Object,后面 UE 将使用这个信息来创建 Weightmap,点击右边的 + 号,然后选择 Weight-Blended Layer 即可:

Layer Infos

这时候你会发现地形从黑色变成了第一层 Layer,这是因为当识别到有 LayerInfo Object 时,如果各层权重之和不为 1,UE 会默认使用第一层 Layer 来填满剩余的权重。

最后选中不同的 Layer 即可直接在地形上绘制地表,我这随便画了点:

Painting

地形的基本功能就是这样了,原谅我的美术水平实在太糟糕 …..

RenderDoc 分析

先抓一帧:

Landscape DrawCalls

可以看见最终是一个 Component 一个 DrawCall,一次只画一块,接下来可以看看 Heightmap 和 Weightmap:

Heightmap & Weightmap

Landscape 的 DrawCall 中可以清楚地看见 Heightmap 和 Weightmap,上面那张就是 Heightmap,整个地形一张,而下面的 Weightmap 则是按 Component 来的,每个 Component 一张。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GDC 笔记 - 'Ghost Recon Wildlands': Terrain Tools and Technology
基于 World Machine 开发了一套程序化生成的管线,用于自动生成高度图,作为后续地形编辑的 Input。
Kindem
2022/08/12
6100
GDC 笔记 - 'Ghost Recon Wildlands': Terrain Tools and Technology
地形渲染之爬过的坑
目前我们采用TiledMap的菱形模式来编辑地形,然后再导入到Unity, 将TiledMap的每一个菱形以Unity中的Quad为单位来拼出来。
重归混沌
2020/12/29
9540
《失落的村庄》制作教程
大家好,我是你们的老朋友UE班的小学生。本次带来我的新作品《Lost Village》的制作过程。希望本次的教程可以让大家创造出更多具有感染力的作品。
腾讯ISUX
2023/07/25
3920
《失落的村庄》制作教程
UE5--物体卡片与材质入门
在开始制作之前,我可以想象得到,厨房里面的食材和工具,应该会有很多,比如苹果、青瓜、香蕉、盘子、刀等等。因此我需要创建不少卡片去制作它们。因此我需要将这些卡片统一放起来,免得在世界大纲中到处都是卡片,找都找不到。
二肥是只大懒蓝猫
2023/10/23
4140
UE5--物体卡片与材质入门
unity3d地形系统总结
本文不是讲地形编辑器的使用,而是主要讲解(1)地形相关知识(2)使用代码创建地形(3)使用AnimationCurve创建曲面地形(4)使用photoshop绘制地形表面,即SplatAlphaMap(5)使用代码为地形添加树
py3study
2020/01/08
2.5K0
地形分析的主要内容(流浪地球的特效水平)
场景的一些基本信息,包括Light,SkyDome,环境光,雾以及场景中静态模型StaticEntity等。摘录部分文件如下:
全栈程序员站长
2022/07/30
3230
地形分析的主要内容(流浪地球的特效水平)
UE(1):材质系统
在写这篇文章时,我在公众号下搜关键字“材质”,总计95篇原创中有33篇提到了材质,可见,材质是一个怎么说都说不完的内容,神奇的脑回路让我忍不住想听一下这首我们的歌,于是乎,宝贵的三十分钟成为了过去式。
Peter Lu
2022/12/22
2.9K0
UE(1):材质系统
个人塔防游戏Demo开发思路(UE4)
游戏为本人毕业设计,功能实现较为简陋,这里只是简要描述下开发思路,不包含深入的Gameplay框架分析,项目可无缝升级至UE4.26,素材全部来源于虚幻商城与互联网。完整项目下载,提取码:demo 游戏主体逻辑采用蓝图系统实现,支持多平台运行,包含存档功能,进入游戏后玩家可以在预先设置好的摆放位置购买和升级防御塔。游戏共有5波敌人,包括最终的BOSS关卡。在击败BOSS通关后即可进入无尽模式,此时游戏难度会不断提高,直到游戏结束。
LonelyEnderman
2023/08/09
1.1K0
个人塔防游戏Demo开发思路(UE4)
Unity通用渲染管线(URP)系列(二)——Draw Calls(Shaders and Batches)
要绘制物体,CPU需要告诉GPU应该绘制什么和如何绘制。通常我们用Mesh来决定绘制什么。而如何绘制是由着色器控制的,着色器实际上就是一组GPU的指令。除了Mesh之外,着色器还需要很多其他的信息来协同完成它的工作,比如对象的transform矩阵和材质属性等。
放牛的星星
2020/12/11
6.4K0
Unity通用渲染管线(URP)系列(二)——Draw Calls(Shaders and Batches)
Unity5 植被系统分析
一、 功能分析 1. SpeedTree for Unity5 费用: 19美金/每月 功能: 易用且表现自然的内嵌植被枝干及树叶编辑功能 自动生成随机变形模型 不同植被模型LOD切换(远处生成公告板
李海辰
2017/09/13
2.4K0
Unity5 植被系统分析
什么是draw call_unity drawcall优化
draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多) 一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束。 每帧都会重复以上的步骤。这就是一次draw call
全栈程序员站长
2022/10/02
1.4K0
Unity 5.6 光照烘焙系统介绍
一、 基本概念 1. 直接光照、间接光照 直接光照:光源直接照射到物体上,并反射到眼中的光照。 间接光照:光源先照射到其它物体上,并经过一次或多次弹射,最终抵达到观察物体,反射到眼中的光照。 2.
李海辰
2017/09/15
8.2K0
Unity 5.6 光照烘焙系统介绍
《黑暗之潮》中次时代技术的应用经验及技术
《黑暗之潮》是一款顶视角的次世代手游,虽然锁了视角,但实际对画质和战斗细节的要求很高。游戏采用了PBR的渲染,场景当中有不少的动态光影效果,场景的细节也相当丰富。
放牛的星星
2021/03/10
2.1K0
《黑暗之潮》中次时代技术的应用经验及技术
UE4自定义shader实现高斯模糊效果
这是网上教程的链接:https://www.raywenderlich.com/57-unreal-engine-4-custom-shaders-tutorial
meteoric
2021/08/05
2.8K0
UE5的StructUtils
StructUtils是UE5新增的一个针对结构体存储和反射的辅助插件。之前在说UE5的ECS框架Mass时有粗略提到这个插件里的相关内容,比如Mass在实现ECS的Component就是使用了FInstancedStruct来保存元信息。有了FInstancedStruct,Component不必在C++预先定义好,可以直接在蓝图进行定义或组合,甚至让ECS支持lua或其他脚本都很容易,相比于其他C++常见的ECS框架,这也是UE5的ECS很有优势的一个点。
quabqi
2023/03/07
2.2K0
UE5的StructUtils
连“捉阔”是什么都不知道就不要混了!如何优化看这里!
在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现。
张晓衡
2020/07/09
2.2K0
连“捉阔”是什么都不知道就不要混了!如何优化看这里!
UE4/UE5 动画的原理和性能优化
动画在UE4/UE5项目中,往往不仅是GPU和渲染线程开销大户,也是游戏线程的开销大户。按照我的经验,大型游戏项目(尤其是手游)做到中后期,整个项目优化工作做的差不多的时候,你应该也会发现动画的开销会占到整个GameThread的二分之一到三分之二。动画到底是做了什么呢会产生这么多的开销?项目里关于动画的优化也是最容易扯皮的一件事,开发给美术说要砍资源,减少骨骼数,要减少蒙皮面数,否则游戏跑不动,而美术说骨骼数不够根本做不出好的效果,不能优化。但是为什么骨骼数,蒙皮面数会影响到动画的性能呢?难道除了砍资源之外,就没有别的优化手段了吗?为了回答这些问题,我觉得很有必要说一说动画在虚幻引擎内部的执行流程,最后也会说下我在虚幻引擎动画这块推荐的优化手段。
quabqi
2022/09/19
5.6K1
UE4/UE5 动画的原理和性能优化
WebGL进阶——走进图形噪声
导语:大自然蕴含着各式各样的纹理,小到细胞菌落分布,大到宇宙星球表面。运用图形噪声,我们可以在3d场景中模拟它们,本文就带大家一起走进万能的图形噪声。
Y.one
2020/03/18
2.7K3
WebGL进阶——走进图形噪声
进阶渲染系列(七)——三向贴图(任意表面纹理化)【进阶篇完结】
执行纹理映射的通常方法是使用网格中每个顶点存储的UV坐标。但这不是唯一的方法。有时,没有可用的UV坐标。例如,当使用任意形状的过程几何时。在运行时创建地形或洞穴系统时,通常无法为适当的纹理展开生成UV坐标。在这些情况下,我们必须使用另一种方式将纹理映射到我们的表面上。其中一种方法是三向贴图。
放牛的星星
2020/07/13
2.5K0
【Unity面试篇】Unity 面试题总结甄选 |Unity渲染&Shader相关 | ❤️持续更新❤️
LightMap:就是指在三维软件⾥实现打好光,然后渲染把场景各表⾯的光照输出到贴图上,最后⼜通过引擎贴到场景上,这样就使物体有了光照的感觉。
呆呆敲代码的小Y
2023/07/24
8210
【Unity面试篇】Unity 面试题总结甄选 |Unity渲染&Shader相关 | ❤️持续更新❤️
相关推荐
GDC 笔记 - 'Ghost Recon Wildlands': Terrain Tools and Technology
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文