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

news2024/11/24 14:08:41

目录

  • 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.coloradmin.cn/o/1034659.html

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

相关文章

KT142C语音芯片flash型用户如何更新固件的说明_V2

目录 一、简介 2.1 让芯片进入PC模式 2.2 双击提供的exe程序即可 一、简介 正常的情况下,用户肯定是不需要更新固件的,因为芯片出厂默认就烧录了对应的程序固件,但是有客户可能需要小修小改,或者订制一下某些功能&#xff0c…

寻找环形链表的入环点

之前我们在判断一个链表是否为环, 是运用快慢指针的方法,且只能是慢指针走一步,快指针两步; 那么如何求带环链表的入环点的 思路一:数学方法(找出带环链表各个特点量的关系) 代码:…

Linux设备驱动之Camera驱动

Linux设备驱动之Camera驱动 Camera,相机,平常手机使用较多,但是手机的相机怎么进行拍照的,硬件和软件,都是如何配合拍摄到图像的,下面大家一起来了解一下。 基础知识 在介绍具体Camera框架前&#xff0c…

图像复原与重建,解决噪声的几种空间域复原方法(数字图像处理概念 P4)

文章目录 图像复原模型噪声模型只存在噪声的空间域复原 图像复原模型 噪声模型 只存在噪声的空间域复原

字节一面:你能手撕节流防抖吗?

前言 最近博主在字节面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,节流防抖是前端性能优化一个很重要的手段,所以作为一个前端工程师必须要深入掌握这个知识点,博主在这给大家细细道来。 🚀 作者简介&…

01 TextRNN FastText TextCNN-04-训练要点,实验过程

TextRNN & FastText & TextCNN-03-模型总览,后 训练要点 RNN训练 得出来的y(m)(预测标签)是每一个分类的概率,比如是一个五分类,化成5个格子,每一个格子是概率&#xff0c…

java生成PDF的Util

java使用itext生成pdf-CSDN博客 接上文 支持表格绘制表格 支持表格中的文本 字体加粗、字体上色、单元格背景上色, 支持拼接文本 支持单行文本 多种背景颜色、字体上色 支持自定义水印 废话不说先上效果图 工具类代码 package com.zxw.文件.PDF.util;import …

建立一张表: 表里面有多个字段,每一个字段对应一种数据类

首先mysql -uroot -p 进入MySQL 选择一个数据库并使用 在该数据库内创建表格 create table homework_tb( id int(11) comment 编号, company_name char(6) comment 公司名称, introduce varchar(100) comment 介绍, content1 tinytext comment 内容1, co…

ad18学习笔记十一:显示和隐藏网络、铺铜

如何显示和隐藏网络? Altium Designer--如何快速查看PCB网络布线_ad原理图查看某一网络的走线_辉_0527的博客-CSDN博客 AD19(Altium Designer)如何显示和隐藏网络 如何显示和隐藏铺铜? Altium Designer 20在PCB中显示或隐藏每层铺铜-百度经验 AD打开与…

React【Context_作用、函数组件订阅Context、Fragments 、错误边界_概念 、错误边界_应用、Refs DOM】(四)

目录 Context_作用 函数组件订阅Context Fragments 错误边界_概念 错误边界_应用 Refs & DOM Context_作用 React组件中数据是通过 props 属性自上而下(由父及子)进行传递的,但是有的时候中间的一些组件可能并不需要props的值。 //A…

深度学习自学笔记一:神经网络和深度学习

神经网络是一种模拟人脑神经元之间相互连接的计算模型,它由多个节点(或称为神经元)组成,并通过调整节点之间的连接权重来学习和处理数据。深度学习则是指利用深层次的神经网络进行学习和建模的机器学习方法。 假设有一个数据集&a…

电阻的读数

常见电阻的阻值一般有色环电阻和贴片电阻 ,下面介绍两种电阻的阻值读法。 1、色标法: 技巧:四环电阻的的精度一般为银色和金色,如果一眼能可看到这两种颜色可以判断为第4环的精度读数 可见棕色为第1环,黑色第2环&…

Three.js后期处理简明教程

后期处理(Post Processing)通常是指对 2D 图像应用某种效果或滤镜。 在 THREE.js 中我们有一个包含一堆网格物体的场景。 我们将该场景渲染为 2D 图像。 通常,该图像会直接渲染到画布中并显示在浏览器中,但我们可以将其渲染到渲染…

AI写文章软件-怎么选择不同的AI写文章软件

在如今信息爆炸的时代,无论是学生、职场人士,还是创作者和企业家,写文章都是一项常见而又重要的任务。然而,随着科技的不断进步,AI写文章的软件也逐渐走进了人们的视野。 147GPT批量文章生成工具​www.147seo.com/post…

Java 基于微信小程序的学生选课系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章: 简介第二章 技术栈第三章: 功能分析第四章 系统设计第五章 系统功…

Intel酷睿和AMD锐龙

Intel酷睿系列,主要分i3、i5、i7、i9 如:Intel 酷睿i5 10210U i5:品牌修饰符。 10:代次指示符。 210:sku编号。 常见后缀: G1-G7:集显等级。 U:低功耗。 H:标压版…

通俗易懂了解大语言模型LLM发展历程

1.大语言模型研究路程 NLP的发展阶段大致可以分为以下几个阶段: 词向量词嵌入embedding句向量和全文向量理解上下文超大模型与模型统一 1.1词向量 将自然语言的词使用向量表示,一般构造词语字典,然后使用one-hot表示。   例如2个单词&…

GeekRUN-7芯片跑分表

前两个字母是芯片简写,如麒麟,是QL,骁龙是XL,天玑是TJ,第一串数字是最高值,第二串是最低值,省电模式差不多这个水平。QL9K是麒麟9000,QL9S

aix360-gec

目录 分组条件期望(GroupedCE)解释程序创建虚拟环境导包加载数据集训练模型计算独立条件期望ICEplot_ice_explanation 计算分组条件期望 (GCE)plot_gce_explanation 记录一下学习过程,官方的代码在https://github.com/Trusted-AI/AIX360/tree…

High-Resolution Side Channels for Untrusted Operating Systems【ATC‘17】

目录 摘要引言贡献• 一个不受信任的操作系统的两个新的高分辨率侧通道来攻击受保护的应用程序;• 对 libjpeg 的显着改进攻击和针对 VC3 的新攻击;• 侧通道攻击对不受信任的操作系统的重要性增加。 系统模型背景Intel SGX页面错误通道时间限制空间限制…