Unreal Engine 虚幻引擎,性能分析,优化(二)

news2025/7/28 2:02:31

一、CPU 性能分析

如渲染线程中出现 CPU 受限,原因可能是绘制调用过多。这是一个常见问题,美术师通常会将绘制调用进行组合,从而减少消耗(如:将多个墙壁组合为一个网格体)。实际消耗存在于多个区域中:

  • 渲染线程需要处理每个物体(剔除、材质设置、灯光设置、碰撞、更新消耗等)。 材质越复杂,设置消耗越高。

  • 渲染线程需要准备 GPU 指令,以便为每个绘制调用(常量缓冲、纹理、实例属性、着色器)设置状态,并执行实际的 API 调用。 基础通道绘制调用的消耗通常比仅限深度的绘制调用更高。

  • DirectX 将验证部分数据并将信息传递到显卡驱动。

  • 驱动(如 NVIDIA、AMD、Intel...)将进一步验证并为硬件创建指令缓冲区。该部分有时会在另一线程中分离。

使用 stats 命令显示由 3D 网格体引起的绘制调用时将显示 Mesh Draw Calls - 美术师可通过以下方法减少此项的数量:

  • 减少物体数量(静态/动态网格体、网格体粒子)

  • 缩短可视距离(如:场景捕捉 Actor 或每个物体上的距离)

  • 调整画面(将画面拉得更远、使移动物体不在同一个画面中)

  • 不使用 SceneCaptureActor(须重新渲染场景、调低帧率、或只在需要时进行更新)

  • 不使用分屏(分屏比单屏的 CPU 受限更大,需对可延展性设置进行自定义或将内容设为更加主动)

  • 减少每次绘制调用的元素(将接受更复杂像素着色器的材质进行组合或单纯地减少材质数量,将纹理组合为少数几块较大的纹理 - 只在减少材质数量时才使用元素较少的 LOD 模型)

  • 禁用网格体上自定义深度或阴影投射的功能

  • 将光源设为不投射阴影,或拥有更紧凑的边界体(视锥、衰减半径)

在一些情况下,硬件实例化不失为一个选择(相同的 3D 模型、相同的着色器、较少的参数变化、需硬件支持)。硬件实例化可极大降低每次绘制调用的驱动过载,但会使灵活性受限。我们将其用于网格体粒子和实例化植物。

Console命令行: stat SceneRendering

高端 PC 上的实验说明每帧可拥有数千次绘制调用(DirectX11、OpenGL)。更新的 API(AMD Mantle、DirectX12)将尝试解决驱动过载,并可执行更大次数的绘制调用。 在移动设备上,绘制调用次数为数百次(OpenGL ES2、OpenGL ES3),但即使如此仍能极大地降低驱动过载(Apple Metal)。

如在Game Thr游戏线程中 CPU 受限,需要找到引起此问题的游戏代码(如蓝图、光线投射、物理、AI、内存分配)。

Console命令行: stat Game

二、GPU性能分析

实时GPU分析器

实时GPU分析器将为主要渲染类别提供实时的逐帧统计数据。要使用实时GPU分析器,请按 反引号(Backtick) 键打开控制台,然后输入 统计数据GPU(stat GPU) ,并按 Enter 。你还可以通过 视口选项(Viewport Options) 下拉菜单中的 统计数据(Stat) 子菜单,启动实时GPU分析器。

 Console命令行: stat GPU

与现有统计数据一样,你可以使用控制台命令 stat startfile 和 stat stopfile 将统计数据记录到 ue4stats 文件中,然后通过在Session Frontend(虚幻前端工具)中打开文件来查看统计数据。

怎么查看.ue4stats文件

Window——>DeveloperTools——>Session Frontend

Session Frontend——>Load,打开.ue4stats文件

三、Memory内存使用

使用命令 stat memory 了解为游戏分配的内存使用,更具体地说,是了解预计算可视性。

点击查看大图。

统计信息 预计算可视性内存(Precomputed Visibility Memory) 显示当前用于预计算可视性的实际运行时内存使用。

原文链接:https://docs.unrealengine.com/4.27/zh-CN/TestingAndOptimization/PerformanceAndProfiling/CPU/

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

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

相关文章

Ubuntu 22.04.2 发布,可升级至 Linux Kernel 5.19

Ubuntu 22.04 LTS (Jammy Jellyfish) Ubuntu 22.04.2 发布,可升级至 Linux Kernel 5.19 请访问原文链接:Ubuntu 22.04 LTS (Jammy Jellyfish),查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 发行说…

file_get_contents 打开本地文件报错: failed to open stream: No such file or directory

php 使用file_get_contents时报错 failed to open stream: No such file or directory (打开流失败,没有这样的文件或目录) 1. 首先确保文件路径没问题 最好是直接复制一下文件的路径 2. windows电脑可以右键该文件 → 属性→安全 →对象名称 选中后复制一下 3. 然后…

【数据存储】浮点型在内存中的存储

目录 一、存储现象 二、IEEE标准规范 1.存储 2.读取 三、举例验证 1.存储 2.读取 浮点型存储的标准是IEEE(电气电子工程师学会)754制定的。 一、存储现象 浮点数由于其有小数点的特殊性,有很多浮点数是不能精确存储的,如&#…

【unittest学习】unittest框架主要功能

1.认识unittest在 Python 中有诸多单元测试框架,如 doctest、unittest、pytest、nose 等,Python 2.1 及其以后的版本已经将 unittest 作为一个标准模块放入 Python 开发包中。2.认识单元测试不用单元测试框架能写单元测试吗?答案是肯定的。单…

UNIAPP实战项目笔记58 注册成功信息存储到数据库

UNIAPP实战项目笔记58 注册成功信息存储到数据库 注册时候验证手机验证码 验证码通过后讲用户信息存入数据库 实际案例图片 后端接口文件 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js); var user require(…

爱奇艺“资产重定价”:首次全年运营盈利是拐点,底层逻辑大改善

长视频行业历时一年有余的降本增效、去肥增瘦,迎来首个全周期圆满收官的玩家。 北京时间2月22日美股盘前,爱奇艺发布2022年Q4及全年财报,Q4 Non-GAAP净利润明显超越预期,且首次实现全年运营盈利。受业绩提振,爱奇艺盘…

SpringSecurity源码分析(二) SpringBoot集成SpringSecurity即Spring安全框架的执行过程

在上一篇文章中我们描述了SpringSecurity的执行过程。我们我们了解到了以下内容 在SpringSecurity框架中有三个非常核心的类和接口,分别是 1.SecurityFilterChain接口 2.FilterChainProxy类 3.DelegatingFilterProxy类 springboot项目中,客户端向Tomcat …

day51【代码随想录】动态规划之回文子串、最长回文子序列

文章目录前言一、回文子串(力扣647)二、最长回文子序列(力扣516)前言 1、回文子串 2、最长回文子序列 一、回文子串(力扣647) 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目…

从网易到支付宝,3年外包生涯做完,我这人生算是彻底废了......

我为什么一直做外包呢,原因是薪资和技术方面。 在华三做了一年外包,薪资5k,功能测试,接触Linux和网络,但是说实在的技术很难沉淀,就像雾里看花一样,过年之后,想走的人都走了&#x…

Word处理控件Aspose.Words功能演示:使用 C# VB.NET 将 DOCX 转换为 DOC 或将 DOC 转换为 DOCX

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

深度学习编译器CINN(1):框架概览和编译安装

目录 框架概览 编译安装 参考 框架概览 CINN是一种在不改变模型代码的条件下加速飞桨模型运行速度的深度学习编译器。CINN致力于创造训推一体自动调优、分布式编译加速等特色功能,对深度学习模型提供全自动、极致的性能优化,并在科研界和工业界建立影…

【布隆过滤器(Bloom Filter)基本概念与原理、Bloom Filter优点与缺点、以及应用场景】

布隆过滤器(Bloom Filter)基本概念与原理、Bloom Filter优点与缺点、以及应用场景 Bloom Filter 基本概念 布隆过滤器是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在…

DualCor: Event Causality Extraction with Event Argument Correlations论文解读

Event Causality Extraction with Event Argument Correlations(带有事件论元相关性的事件因果关系抽取) 论文:2301.11621.pdf (arxiv.org) 代码:cuishiyao96/ECE: Dataset and code for COLING2022 paper Event Causality Extraction with Event Argum…

【vue 10 第一个vue-cli程序】

1.什么是vue-cli vue-cli官方提供的一个脚手架,用于快速生成一个vue的项目模版; 预先定义好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速…

FC总线知识点小结

FC总线 (一)特点: FC具备通道和网络双重优势,具备高带宽、高可靠性、高稳定性,抵抗电磁干扰等优点,能够提供非常稳定可靠的光纤连接,容易构建大型的数据传输和通信网络,目前支持1x…

2022阿里,字节跳动,JAVA岗(一线企业校招、社招)面试题合集

前言 以下面试题全属于一线大厂社招以及校招的面试真题,各位在做这些题目对照自己的时候请平凡心对待,不要信心受挫。其实 做为致力于一线企业校招或者社招的你来说,能把每个知识模块的一小部分问题去深入学习和总结,已经很棒了&…

SpringBoot整合阿里云OSS文件上传、下载、查看、删除

SpringBoot整合阿里云OSS文件上传、下载、查看、删除1、开发准备1.1 前置知识1.2 环境参数1.3 你能学到什么2. 使用阿里云OSS2.1 创建Bucket2.2 管理文件2.3 阿里云OSS文档3. 项目初始化3.1 创建SpringBoot项目3.2 Maven依赖3.3 安装lombok插件4. 后端服务编写4.1 阿里云OSS配置…

Ask林曦|来回答,30个你关心的日常问题(三)

在林曦老师的线上书法直播课上,上课前后的聊天时间里,时常有同学向林曦老师提问,这些问题涵盖了日常生活的诸多方面,从身体的保养,到快乐的法门,皆是大家感兴趣的,也都共同关切的。      暄…

Spring Cloud @RefreshScope 原理分析:扫描 Bean 定义

背景 最近读了一下 spring cloud 的 RefreshScope 生效的源码,总结一下该注解的 refresh 类型的类实例化的过程。 关键技术点: 扫描过程中对 RefreshScope 注解做了特殊处理,会额外注册两个BeanDefinition。GenericScope 实现了 BeanDefin…

医疗影像工具LEADTOOLS 入门教程: 从 PDF 中提取附件 - 控制台 C#

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#…