UE 虚幻引擎 利用LOD,Nanite技术优化场景性能

目录

  • 0 引言
  • 1 LOD
    • 1.1 LOD定义
    • 1.2 UE5中的LOD技术
    • 1.3 HLOD(Hierarchical Level of Detail)
  • 2 Nanite
    • 2.1 UE5的Nanite技术
    • 2.2 Nanite介绍
      • 2.2.1 Nanite的优势
      • 2.2.2 Nanite网格体与传统静态网格体的不同
      • 2.2.3 Nanite支持的类型
      • 2.2.4 在地形中使用Nanite

0 引言

随着游戏场景中的模型数量越来越多,模型精度越来越高(三角面数越来越多),会发现场景的运行速度逐渐减慢。这时就需要进行场景的优化操作。

1 LOD

1.1 LOD定义

以下内容摘自维基百科:

在这里插入图片描述

1.2 UE5中的LOD技术

在UE4中,显示在场景中的物体可以分为两大类别:骨骼网格体和静态网格体。

  • 骨骼网格体组件:它内部包含一具骨架(用于连接骨骼);骨架负责移动骨骼网格体的各个顶点,以便匹配当前播放的动画。因此,骨骼网格体组件适用于表现人物、生物、复杂机械或任何具备复杂运动的对象。
  • 静态网格体组件:它是由多个静态多边形构成的几何体,是虚幻引擎的基本场景构建单位。除了用于构建场景,静态网格体组件还能用于创建运动对象(如门或电梯)、刚体物理对象、植物和地形装饰物、程序化创建的建筑、游戏目标和许多其它的视觉元素。

骨骼网格体和静态网格体都可以设置LOD层级

  1. 设置骨骼网格体LOD
    打开UE5人物的骨骼网格体界面,在【资产详情】中可以看到【LOD选择器】面板,我们可以选择4级LOD模型,也可以把自定义勾选,然后自己设置模型有几级LOD。

在这里插入图片描述在这里插入图片描述

  1. 设置静态网格体LOD
    静态网格体LOD设置与骨骼网格体类似,是在【细节】-【LOD选取器】中进行设置。在【细节】【LOD设置】的LOD数量属性中可以设置模型有几级LOD。

在这里插入图片描述

1.3 HLOD(Hierarchical Level of Detail)

虚幻引擎中的一个复杂关卡可以包含上百个细节丰富的静态网格体资产。对于这种程度的细节,一次加载方圆数公里的关卡会非常缓慢。

当模型处于远距离时,分层细节级别(HLOD)系统可以将多个静态网格体Actor合并成单个代理网格体和材质。这能减少场景中需要渲染的Actor数量,从而减少每帧的绘制调用数量,并提高性能。这在处理大型开放世界时特别有用。

构建HLOD网格体的具体步骤看:UE官方文档。

2 Nanite

2.1 UE5的Nanite技术

UE5 采用了两大核心技术,其中之一就是“Nanite”,这是一个允许将高细节摄影源材料导入游戏的先进技术,Nanite 的出现让 Epic 能够利用其收购最大的摄影测量库 Quixel。

UE5的目标是让开发者轻松的建立有细节的游戏世界而无须花费更多时间在开发精细的资产上。Nanite 可以导入任何三维计算机绘图软件做出的 3D模型和3D场景,像是Zbrush、Blender,从而让开发者使用高面数的模型与高清晰度的贴图,并且无须担心存储器的限制

2.2 Nanite介绍

Nanite是虚幻引擎5的虚拟化几何体系统,它采用全新的内部网格体格式和渲染技术来渲染像素级别的细节以及海量对象。它可以智能地仅处理你能够感受到的细节。另外,Nanite采用高度压缩的数据格式,并且支持具有自动细节级别的细粒度流送。

2.2.1 Nanite的优势

  • 几何体形状的复杂度提高了数个数量级,三角形和对象的实时渲染数量达到了前所未有的高度
  • 帧预算不再会因为多边形数量、绘制调用和内存使用情况而受限
  • 现在可以直接导入电影级品质的美术资源,例如ZBrush雕刻模型和摄影测量扫描数据
  • 通过高模实现细节,而非将细节烘培到法线贴图纹理
  • 自动处理细节级别(LOD),不再需要手动设置单个网格体的LOD
  • 品质损失极少或没有损失,特别是在LOD发生过渡时

2.2.2 Nanite网格体与传统静态网格体的不同

Nanite网格体是一种启用了Nanite的特殊静态网格体。Nanite网格体本质上仍是三角形网格体,但对其数据进行了大量细节和压缩处理。此外,Nanite使用了一种全新系统,能以极高效的方式来渲染这种数据格式。

要让静态网格体利用Nanite,只需一个标记来启用它即可。编辑Nanite网格体的内容和传统网格体没太大不同,区别就在于相比使用传统方法渲染的几何体,Nanite能够渲染的三角形和实例要多出数个数量级。将摄像机移到足够近的位置后,Nanite就会绘制出导入的原始源三角形。

Nanite网格体支持多重UV和顶点颜色。材质可以被指定给网格体的不同分段,并且这些材质可以使用不同的着色模型和动态效果(在着色器中完成)。材质指定可以动态切换,就像其他静态网格体一样。Nanite也无需任何烘焙材质的过程。

虚拟纹理并不要求与Nanite一起使用,但非常推荐这么做。虚拟纹理是正交虚幻引擎功能,它与纹理数据的关系类似于Nanite与网格体数据的关系。

2.2.3 Nanite支持的类型

Nanite目前仅限于刚性网格体。在常见项目场景中,90%以上的几何体都是刚性网格体。Nanite支持刚性网格体的动态平移、旋转和非均匀缩放,但不支持一般的网格体变形,无论是动态还是静态的变形。

Nanite支持混合模式(Blend Mode)是 不透明(Opaque) 类型的材质。其他材质类型则不被允许,或者对Nanite网格体没有影响。

2.2.4 在地形中使用Nanite

你可以在地形上使用Nanite以提高Nanite渲染的性能,尤其是在虚拟阴影贴图方面。使用非Nanite地形时的编辑器内性能不代表在Nanite网格体完全重新编译之前你的项目中启用了Nanite的地形的运行时性能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

递归,搜索与回溯

1.汉诺塔问题 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动…

VOP —— Noise

目录 Turbulent Noise —— 计算1D/3D类型的Noise Anti-Aliased Flow Noise —— 生成抗锯齿噪波 Anti-Aliased Noise —— 生成抗锯齿噪波 Curl Noise —— 创建divergence-free 3D噪波 Curl Noise 2D —— 创建divergence-free 2D噪波 Flow Noise —— 生成1D/3D Perli…

人力资源HR 怎么选择在线人才测评工具

测评已经是普及度很好了,不仅仅是大企业,中小企业也都在启用人才测评,也有叫素质测评等等,内容多样化。但是根本形式是一样的,那就是在线测评,目的也是一样的,就是为了招来最适合的职员。 而市…

以太坊智能合约的历史里程碑: 从DAO到数据隐私的技术演进

文章目录 系列文章目录前言一、时间线 项目介绍总结 前言 在短短的几年内,以太坊不仅成为了去中心化应用和智能合约的主导平台,而且也见证了区块链技术和应用的多次重大革命。本文详细回顾了自2016年至今,以太坊生态所经历的几个关键时刻与技…

阿里云产品试用系列-容器镜像服务 ACR

阿里云容器镜像服务(简称 ACR)是面向容器镜像、Helm Chart 等符合 OCI 标准的云原生制品安全托管及高效分发平台。 ACR 支持全球同步加速、大规模/大镜像分发加速、多代码源构建加速等全链路提效,与容器服务 ACK 无缝集成,帮助企业…

Windows 基于Visual Studio 开发Qt 6 注意事项

前提条件: 1、Visual Studio 2022 社区版(免费版) 2、Qt-6.5.1版本 Qt Vistual Studio Tools下载 先打开Visual Studio 2022 社区版 : 点击扩展-》管理拓展按钮后,在搜索框中输入Qt,点击这里第一个扩展安装。 Qt Visual Stud…

iterator和generator

iterator和generator iterator es6: let/const ...展开 迭代器 是一种机制,比如在控制台输出Iterator是没有这个类的,为不同的数据结构提供迭代循环的机制。 迭代器对象:具备next方法,next能够对你指定的数据进行迭代循环&#x…

gogs git 服务器极速搭建

背景 小型团队合作中,需要代码托管在内网,gitlab 等搭建比较复杂,经过一番搜寻发现gogs满足需求 基本用户管理后台管理面板,能在web端查看管理安装配置极简 安装配置 gogs是支持多个平台,这里我们选择ubuntu 1.下载git…

2023-9-23 合并果子

题目链接&#xff1a;合并果子 #include <iostream> #include <algorithm> #include <queue>using namespace std;int main() {int n;cin >> n;priority_queue<int, vector<int>, greater<int>> heap;for(int i 0; i < n; i){in…

Tomcat部署、优化、以及操作练习

一.Tomcat的基本介绍 1.1.Tomcat是什么&#xff1f; Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP程序的首选。一般来说&#xff0c;T…

BUUCTF:[MRCTF2020]套娃

查看源码发现 PHP非法参数名传参问题&#xff0c;详细请参考我的这篇文章&#xff1a;谈一谈PHP中关于非法参数名传参问题 正则这里绕过使用%0a换行符绕过&#xff0c;payload: /?b.u.p.t23333%0a 得到下一步信息&#xff1a;secrettw.php 注释中的是JsFuck&#xff0c;用这…

【李沐深度学习笔记】数据操作实现

课程地址 数据操作实现p2 数据操作 首先导入PyTorch包&#xff08;import torch)&#xff0c;虽然叫PyTorch&#xff0c;但实际上要导入torch。 import torch张量 张量表示的是一个数值组成的数组&#xff0c;这个数组可以有很多个维度。 # 生成0-11的顺序序列构成的一维…

一篇文章让你学会什么是哈希

一篇文章让你学会什么是哈希 哈希概念哈希冲突哈希函数1. 直接定址法2. 除留余数法3. 平方取中法4. 折叠法5. 随机数法6. 数学分析法 哈希冲突解决1. 闭散列1.1 线性探测1.2 二次探测 2. 开散列 开散列和闭散列对比 哈希概念 哈希在C中有广泛的应用&#xff0c;它是一种用于快…

【算法与数据结构】JavaScript实现十大排序算法(二)

文章目录 关于排序算法快速排序堆排序计数排序桶排序基数排序 关于排序算法 稳定排序&#xff1a; 在排序过程中具有相同键值的元素&#xff0c;在排序之后仍然保持相对的原始顺序。意思就是说&#xff0c;现在有两个元素a和b&#xff0c;a排在b的前面&#xff0c;且ab&#xf…

外包干了2个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

竞赛选题 基于深度学习的行人重识别(person reid)

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的行人重识别 该项目较为新颖&#xff0c;适合…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(四)

开始吧&#xff0c;做时间的主人&#xff01; 把时间分给睡眠&#xff0c;分给书籍&#xff0c;分给运动&#xff0c; 分给花鸟树木和山川湖海&#xff0c; 分给你对这个世界的热爱&#xff0c; 而不是将自己浪费在无聊的人和事上。 思维导图 函数 为什么需要函数 <!DO…

C++之类和函数权限访问总结(二百二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

黑马JVM总结(十七)

&#xff08;1&#xff09;G1_简介 下面介绍一种Grabage one的垃圾回收器&#xff0c;在jdk9的时候称为默认的回收器&#xff0c;废除了之前的CMS垃圾回收器&#xff0c;它的内部也是并发的垃圾回收器 我们可以想到堆内存过大&#xff0c;肯定会导致回收速度变慢&#xff0c;因…

时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测

时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测 目录 时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测&#…