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

这篇具有很好参考价值的文章主要介绍了Unreal Engine 虚幻引擎,性能分析,优化(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、CPU 性能分析

二、GPU性能分析

三、Memory内存使用


一、CPU 性能分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Console命令行: Stat SceneRendering

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

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

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

Console命令行: Stat Game

二、GPU性能分析

实时GPU分析器

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

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

 Console命令行: Stat GPU

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

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

怎么查看.ue4stats文件

Window——>DeveloperTools——>Session Frontend

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

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

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

三、Memory内存使用

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

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

点击查看大图。

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

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

四、Engine 显示一般渲染状态 

显示一般渲染状态,例如帧时间,以及正在渲染的三角形数量的计数器。 

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

 Console命令行: Stat Engine

五、UnitGraph 

显示带有实时线图绘图的“statunit”数据。用于在其他情况下运行流畅的游戏中检测故障。

要查看包含stat单元数据的图表,使用 stat Raw 查看未过滤数据。

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

 Console命令行: Stat UnitGraph

原文链接:https://docs.unrealengine.com/4.27/zh-CN/TestingAndOptimization/PerformanceAndProfiling/CPU/文章来源地址https://www.toymoban.com/news/detail-447731.html

到了这里,关于Unreal Engine 虚幻引擎,性能分析,优化(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unreal Engine游戏引擎的优势

    在现在这个繁荣的游戏开发行业中,选择合适的游戏引擎是非常重要的。其中,Unreal Engine作为一款功能强大的游戏引擎,在业界广受赞誉。那Unreal Engine游戏引擎究竟有哪些优势,带大家简单的了解一下。 图形渲染技术 Unreal Engine确实提供了先进的图形渲染技术,包括实时光

    2024年02月03日
    浏览(29)
  • [ARM 汇编]高级部分—性能优化与调试—3.4.1 性能分析与优化策略

    性能优化是嵌入式系统开发中的一个重要环节,尤其是在资源受限的环境下。性能优化的目标是提高代码执行速度、降低功耗和减少内存占用。在本章节中,我们将讨论性能分析与优化策略,并通过实例来学习如何应用这些策略。 性能分析方法 要优化程序性能,首先需要分

    2024年02月10日
    浏览(40)
  • MySQL 优化—— SQL 性能分析

    MySQL 客户端连接成功后,通过 show [session | global] status 命令可以提供服务其状态信息。通过下面指令,可以查看当前数据库 CRUD 的访问频次: SHOW GLOBAL STATUS LIKE \\\'Com_______\\\'; 七个下划线代表这个七个占位。 查询数据库中整体的 CURD 频次,一般针对 select 比较多的数据库。 慢查询

    2024年02月13日
    浏览(41)
  • 性能优化之影响分析

    性能非常重要,而具体反映到我们的业务场景中,可能会有如下影响: 不利于用户留存 站点页面的展现速度非常影响用户体验,很多用户会因等待的不耐而放弃站点。 研究表明,47 % 的消费者希望页面能够在 2s 内打开。 移动端的页面应该在 3 秒钟内完成加载,若超过这个时

    2024年02月06日
    浏览(30)
  • Unity性能优化分析篇

    性能优化是游戏项目开发中一个重要环节。游戏帧率过低,手机发烫, 包体太大,低端机上跑不起来等, 这些都需要来做优化,不管过去,现在,未来,性能优化都是永恒的话题。 而性能优化首先要掌握的是性能分析,通过分析才能发现问题所在。性能分析对于游戏开发是必

    2024年02月03日
    浏览(38)
  • 后端接口性能优化分析

    👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家 📕系列专栏:Spring源码、JUC源码 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 🍂博主正在努力完成2023计划中:源码溯源,一探究竟 📝联系方式:nhs19990716,加我进群

    2024年02月05日
    浏览(34)
  • 【万字解析】Webpack 优化构建性能(分析->优化)

    全局安装 webpack-bundle-analyzer 插件 运行 webpack-bundle-analyzer 开始打包,需要获取所有的依赖模块 搜索所有的依赖项,这需要占用一定的时间,即搜索时间,那么就确定了: 需要优化的第一个时间就是 搜索时间 。 解析所有的依赖模块(解析成浏览器可运行的代码) Webpack 根据

    2024年01月21日
    浏览(30)
  • [MySQL] SQL优化之性能分析

    🌈键盘敲烂,年薪30万🌈 目录 一、索引优化 1、索引是什么: 2、索引的数据结构: 3、索引种类: 4、sql分析(回表查询) 二、定位慢查询语句 1、慢查询日志 2、profile详情 3、explain执行计划(重点) 4、查看执行频次   1、索引是什么: 通过一些约束,快速查询到相应字段

    2024年02月05日
    浏览(30)
  • Unity性能优化与分析--GPU

    每一帧,Unity 都需要确定必须渲染哪些对象,然后创建绘制调用。绘制调用是调用图形 API 来绘制对象(如三角形),而批处理是要一起执行的一组绘制调用。 随着项目变得更加复杂,您需要用管线来优化 GPU 的工作负载。 通用渲染管线 (URP) 目前使用单通道前向渲染器将高质

    2024年03月15日
    浏览(35)
  • 【干货】开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析

    随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。 目录 / 基础查询场景下 / / 连接查询场景 / / 聚合查询场景 /

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包