水体的网格系统及表面渲染

介绍表面网格体和材质如何被用来渲染水面。

水系统由两个关键元素构成:可编辑的水面水面材质
这两个元素确定了项目中的水如何表现,以及与所接触对象互动。
这可以是非常简单,比如水材质如何将光反射和折射到与水面接触的对象上。
对于Gameplay,这可以是角色在水中移动时如何让水面产生波浪,或者对象在水面上漂浮时的浮力有多大。

水面网格体

水系统有自己的基于样条线的网格体系统,可定义世界内应该包含水的区域。它使用 水网格体Actor(Water Mesh Actor),设置应用于关卡中放入的所有 水体Actor(Water Body Actors)(江河、湖泊和海洋)的属性。水网格体主要定义了所渲染水面的质量和细节。

你必须将水网格体Actor放入场景中,以生成关卡中"水体(Water Body)"类型的表面。水网格体Actor本身并不会渲染表面。水体将使用样条线来定义关卡中表示江湖、湖泊和海洋的区域。这些样条线定义了水网格体Actor在何处绘制并渲染水网格体图块。这样做更高效,因为它仅渲染当前摄像机视图中可见的表面网格体。


水网格体Actor位于场景中时,将水体拖放到场景中可添加或移除表示水面的图块。由于所有水体使用相同的网格体来渲染水面,因此它们会无缝地混合在一起(见下)。这还意味着,你可以在不同类型的水面之间进行过渡,如从奔流的江河汇入平静的湖泊或汹涌的海洋。

  • Body Lake

  • Body River

  • CMD 调试指令
    使用控制台命令 r.Water.WaterMesh.ShowWireframe 1 启用水网格体线框视图,以查看不同水体之间的这些过渡如何相互作用,从而创建无缝的表面。

水网格体Actor

水网格体Actor(Water Mesh Actor) 可控制表面网格体的质量,该网格体构成放入关卡中的各个水体的图块。各个水体还对关卡中的大小设置了自己的硬性限制。它还提供了特定于海洋水体的额外选项。

在使用高度曲面细分的表面和大的范围时,这些设置可显著影响性能。

水网格体细节级别缩放和曲面细分

细节级别(LOD)或水网格体图块的处理方式是,每帧遍历一个四叉树,生成屏幕上可见图块的最优集合。接着,这些图块会针对每个细节级别尽可能折叠,在最重要的地方(即最接近当前摄像机视图的地方)应用更大或更小的密度。

每个细节级别由摄像机视图周围基于距离的同心圆构成,细节级别越低离摄像机越远,并且包含的顶点数是上一级别的一半。

若使用传统细节级别的几何结构(例如静态网格体),几何结构会基于屏幕大小在不同级别之间快速过渡,这可能导致网格体在不同级别之间切换时显示比较明显的过渡。由于水系统使用网格体图块来表示表面,随着细节级别的过渡,这些级别会彼此变入和变出,这样四个四叉树会在切换到更低的细节级别时变为单个四叉树,或在切换到更高的细节级别时变为16个四叉树(参阅下面的示例)。


水网格体Actor提供了功能按钮来显式定义网格体图块的细节级别和曲面细分量。其中每个属性都彼此独立地起作用,但应同时配置,以在水面的性能和质量之间实现良好的平衡。

每个同心细节级别的大小半径由 LODScale 属性控制。它设置与摄像机的距离,图块应从此距离开始变为更低的细节级别。

曲面细分因子(Tessellation Factor) 通过增加图块包含的顶点数,设置了对于放入关卡中的所有水体,你想要网格体图块拥有的质量程度。较高程度的曲面细分对湖泊和海洋水体最为有益,尤其是有波峰很大、波谷很低的波浪时。

设置这些属性时,请务必平衡以下各项内容:

  • 高质量特写镜头,使玩家可看到更精细的细节
  • 拉远距离后质量变低,但这对于玩家来说并不重要
  • 曲面细分质量的性能成本

请记住,你的水材质也可能具备水系统不需要通过曲面细分处理的精细细节。

通过以下方法启用水图块的可视化:

  • 在关卡视口中使用 笔刷线框(Brush Wireframe) 视图模式。如果你在场景中没有大量几何结构,或者只有可见的水网格体,这种方法非常适合。
  • 使用控制台命令将水网格体渲染为线框:
    • r.Water.WaterMesh.ShowWireframe 1 会将所有水网格体显示为线框。
    • r.Water.WaterMesh.ShowWireframeAtBaseHeight 1 会将所有水网格体显示在其平底高度位置。

水网格体图块大小、范围和远距离

水网格体Actor提供了选项,用于定义构成关卡的水网格体的各个图块的大小,定义每个有多少图块,并且该Actor还处理海洋中水天相接处的长距离情况。

图块大小(Tile Size) 属性设置了构成水网格体的各个图块的大小。这些是按默认世界单位测量的。提高/降低"图块大小(Tile Size)"会缩放构成关卡中的水网格体的所有图块。


图块范围(Extent in Tiles) 属性设置了构成水网格体的各个图块的数量。范围是针对XY轴从水网格体中心到边缘进行测量的。


远距离(Far Distance) 用于填充"图块范围(Extent in Tiles)"属性所用最远端图块与地平线之间的空间。这会添加一个低顶点水网格体,它会造成海洋水体图块无限延伸的错觉。

【UE5 水体系统】相关推荐

  1. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4地面站立动作状态机详解

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式.教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>.教程中使用的 ...

  2. [玩转UE4/UE5动画系统>Control Rig篇] 之 Control Rig + Fullbody IK版的足部IK实现(附项目代码)

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式.教程内容将同步免费发布于开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>.教程中使用的资 ...

  3. [玩转UE4/UE5动画系统>Control Rig篇] 之 使用Control Rig实现目标偏移(Aim Offset)(附项目代码)

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式.教程内容将同步免费发布于开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>.教程中使用的资 ...

  4. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4 主状态机详解

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式.教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>.教程中使用的 ...

  5. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 Foot IK系统(ALS V4实现方案详解)

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式. 教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>. 教程中使 ...

  6. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 布娃娃系统(ALS V4实现方案详解)

    本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式. 教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>. 教程中使 ...

  7. UE5 纹理系统讲解及常见问题设置及解决方案

    2D纹理 UE 默认是 BC1 BC3 法线用的是BC5 HDRI 非压缩 也就是不压缩 灰阶图和置换用的是同一个压缩方式但是选区的通道不同,灰阶用的R通道,置换用的是A通道 **注意:**人眼对绿色 ...

  8. UE4 插件Water系统

    一.Water插件介绍 UE4的水体系统,能够让我们用样条线定义海洋,湖泊,江河以及岛屿等.让我们可以调节和显现河流各段的深度,宽度和流流速,以及海洋与湖泊上波浪的波长,振幅,方向和坡度.内置的流体模 ...

  9. 虚幻四如何实现第一人称_虚幻周报20200930 | 双节快乐么么哒!

    官方知乎号:虚幻引擎 搜集日期:20200921-20200927 整理编辑: 大钊,小辉辉 声明:文档搜集来自网上,难免遗漏,请联系我们投稿和添加关注.该文档版权归整理编辑者共同所有,单项内容版权归 ...

最新文章

  1. TTIC Postdoc Position
  2. 脑机接口成唯一沟通方式,渐冻症晚期父亲终向4岁儿子表达爱意
  3. AngularJS 指令中的require
  4. SQL Server 事务日志
  5. Oracle用户创建及设置
  6. Oracle收购Sun
  7. 优达学城深度学习之三(上)——卷积神经网络
  8. 比特币支付接口php,比特币支付php类
  9. 《FLUENT 14流场分析自学手册》——1.4 流体运动及换热的多维方程组
  10. 修改Solaris系统时间
  11. 网络登录计算机密码怎么设置,电脑怎么设置无线网密码?
  12. Canon打印机重复打印某一页的一半的故障
  13. oracle中查看锁表,ORACLE中查看当前系统中锁表情况
  14. 2022智博会| 麒麟信安携操作系统亮相华为展台
  15. 中国最卷的公务员考试,挤满清北毕业生
  16. 8.5 专业的“对口” ——《逆袭大学》连载
  17. 1008day1作业:字符串(方法、格式化、strip左右字符)、列表(方法、max、min、去重、统计个数、两列表比较取出大值zip合成新列表)、斐波那契、水仙花数、冒泡排序列表、计算器、九九乘法
  18. 2013年9月计算机一级考试题,2013年9月计算机一级考试MsOffice备考题及答案2
  19. ENVI将高程数据拼接并转换为.dem或.dat_bil格式——以GDEM数据为例
  20. 深圳Java培训学习:Java8.0新特性之Lambda表达式--【千锋】

热门文章

  1. zdog.js实现DNA螺旋动画js特效
  2. 文档服务器sos,Cliosoft SOS 使用手册
  3. 静电场点电荷matlab,基于MATLAB的点电荷的静电场模拟
  4. 2011RTIC论坛回顾
  5. rrpp协议如何修改_【网安学术】基于NQA策略的RRPP优化机制
  6. 多米诺红光管激光机,为覆膜纸盒、药盒提供完美不起泡的标识打码解决方
  7. 【Java】Java获取昨天日期的正确姿势
  8. 陕西省ti杯竞赛题目_2017年全国大学生电子设计竞赛和陕西省(TI杯)校际联赛暨西安电子科技大学校内选拔赛...
  9. 太难了!谷歌无人车老大承认遥遥无期,全自动驾驶寒冬将至?
  10. 计算机教师继续教育心得,教师继续教育学习心得体会范文(精选8篇)