UE4项目优化(帧数优化)相关知识_r.screenpercentage-程序员宅基地

技术标签: c++  UE4  ue4  unreal  

控制台命令

  • r.screenpercentage 0~100 0是百分之百 如果改了这个 游戏运行超级流畅说明瓶颈在GPU上
  • stat fps 显示帧率(Frame Per Second)(或者快捷键Crlt+Shift+H 显示帧率)
  • stat unit 把Frame拆分 其中最接近 Frame的就是瓶颈,Game为游戏逻辑方面的(CPU端)
  • stat rhi 查看draw call和三角面数量
  • stat game 查看每一帧有多少tick操作
  • stat memory 查看内存使用情况
  • r.maxfps 80 更改帧数限制
  • show static/skeleton mesh 显示隐藏静态/骨架网格体
  • show translucency 显隐半透明材质
  • stat sceneRendering (类似于rhi)场景渲染查看、检查CPU使用率 主要看 Draw calls
  • r.shadowquality 0~5 阴影质量 0是无
  • freezerendering 冻结渲染,即冻结此刻摄像机所在的位置 查看当前帧所渲染的内容。此刻绘制进程是停止状态,可以查看锥形剔除的效果
  • Stat initviews 提供有关遮挡的概览
    下方Counters里面 Processed primitives(进行中的图元)——目前渲染的图元数量
    Frustum culled primitives(椎体剔除的图元)——目前被椎体剔除的图元数量
    Statically occluded primitives(静态遮挡图元)——因遮挡而被剔除的图元数量

其他相关知识

  • Ctrl + Shift + ,GPU可视化工具
    此工具可以看到GPU在引擎各个工作上面的性能消耗
    如果是Postprocess消耗过高,可以删除一些光源,或者改用静态光源
  • Draw call降低方式
    draw call 引擎代码发送的用来绘制一组多边形的指令,CPU发出的
    影响因素:多边形数量、材质复杂性
    解决办法:减少对象数量、合并对象(多个对象组合成一个,只用一个draw call)、移除外部材质通道、减少动态投射的阴影数量
  • 性能消耗查看——视图模式
    • Light Complexity:看光照对GPU的消耗。用渐变的颜色显示场景,绿->红->白等颜色性能消耗递增,优化方法:减少光照重叠区域,静态模型用静态光。
    • Shader Complexity:看着色器使用数量,跟材质有关的,比如绘制透明材质消耗很大,如果透明材质互相重叠则性能影响更大时。优化方法:换材质
    • Quad Overdraw:模型面数可视化。优化方式:LOD、剔除距离体积
  • Jacketing功能
    通常导入的建筑或者工业模型会有一些用户永远看不到的面数又很大的部分,这时候需要用jacketing功能来剔除对象和不需要的多边形。注意这个操作是不可逆的,所以通常以防万一需要备份原来的模型。
    启用“Polygon Editing”插件,在视口中选择要修改的对象或者对象组,右击选择jacketing,弹出框内,Action level 选择level或者mesh
    level适合用于一个对象含有许多零件,而这些零件在外部任何角度都看不见,剔除构件。
    mesh从单个三角形的层面出发,剔除某个模型从外部任何角度都看不见的三角面,剔除三角面。
  • 实例化静态网格体 Instanced Static Meshes
    多个网格体只有一次Draw call

项目设置

  • Target Hardware
    设置目标硬件是Table/Mobile,选移动平台会禁用很多效果,提高性能,还可以设置项目注重画面质量还是运行速度。

  • General Setting -> Framerate(帧率)
    Fixed Frame Rate(使用固定帧率)
    Smooth Frame Rate(范围内平滑帧率)

  • Rendering -> Culling
    确保Occlusion Culling(遮蔽剔除)是开启的。(默认开启)

  • Rendering -> Reflections
    调整分辨率或者反射步骤来节省GPU绘制时间,数值2的次方

  • Rendering -> Default Settings
    这里的设置是”后期处理”的内容,是全局性的,会被后期处理体和摄像机Actor中的设置覆盖

  • Rendering -> Default Settings -> Ray Tracing
    实时光线追踪非常消耗性能,如果不需要实时光线追踪来实现真实反射效果、全局照明等效果 请禁用。此设置在VR和Mobile应用中无效。

LOD 细节等级设置

  • LOD:Level of Detail,LOD是同一3D模型的不同版本具有不同程度的细节,根据观看者离物体的距离决定的。里相机越远则选用面数越低的模型

  • 设置LOD:打开模型编辑器,左上角可以看到Triangles的数量,在LOD Picker下可以选择是自定义或者自动生成LOD“Custom”“Auto”.其中LOD Auto:下面有LOD Settings,可以在LOD Group里面选择削减方式,如SmallProp。

  • 批量设置LOD:内容浏览器中选中所有的模型,右键->Asset Actions-> Bulk Edit via Property Matrix
    通过属性矩阵进行批量编辑。这个窗口中可以同时更改多个对象的设置

  • 设置LOD后,在编辑视口->视图模式-> Level of Detail Coloration -> Mesh LOD Coloration 可以用颜色显示模型在什么时候显示什么等级的细节

使用Data Smith插件在导入前进行LOD优化

  • 首先用DataSmith从3D建模软件把模型导出成udatasmith格式文件
  • UE4中右键创建 DataPrep Asset,这里面可以在模型导入编辑器之前 对其进行预览和处理;打开后 Imputs+,选择udatasmith文件,然后点击左上角 import。
  • 在大型建筑群项目用这个方法会非常好,首先要设定“选择标准”,在Select By下找到Triangle Count即用三角面数作为选择条件,拖入右边窗口。选择高于500面,然后在Operations下拖出“set LOD Group”,点击Execute,会自动处理,处理完毕后 点击Commit提交

渲染方式

  • 正向渲染:每个draw call 渲染一个物体,把物体的顶点属性走一遍渲染管线,最后进行光照计算得到渲染结果。后续每次渲染新的物体都是在前一次渲染结果上进行叠加。VR AR等小项目多用这个,抗锯齿更好
  • 延迟渲染:第一个pass中,走一遍渲染管线,渲染场景的几何信息,把可视范围内的所有物体的顶点属性(位置、法线、uv等)分别渲染到一张纹理图上。在第二个pass再走一遍渲染管线,一起做光照计算,性能提升非常大,对于多光源场景有着不错的性能表现。UE4默认渲染模式,用于大型游戏 重影是缺点
    • 延迟渲染有个GBuffer缓冲区,存放每一帧光照计算要用到的信息
  • UE4以draw call 为单位进行渲染 主要FPS影响在于draw call数量, 如场景中对象全部是复制品,面数极高,但是帧数可能会高于面数低但全为不同对象的情况,因为批量相同的对象只占用1个draw call

距离剔除

  • 每个对象细节面板rendering>lod下面的最大绘制距离 可以控制远处对象不渲染(单个物体进行设置),但是如果用CullDistanceVolume 可以对盒子内所有的物体 同时设置渲染距离

椎体剔除

  • 这是图形学基本概念,只渲染视椎体内部的对象,只有一个像素看到那个对象也会将其整个渲染,以对象为单位

预计算可见性体积PreconputedVisibilityVolume

  • 要先添加一个与计算可见性体积盒子,盒子内的对象都会被预计算可见性的单元格填充,所有格子内的对象都会预先在CPU中预计算对于任何一个方向的可见性,即从一个方向看这个volume中的东西,能看见哪些格子,在渲染时就可以很快的剔除那些不可见的小格子。这些单元格要通过光照构建才能生成,之后必须在视口 显示>可视化>设置预计算可见性单元格勾选。
  • volume中的每个单元格都包含一个表格,记录了当前位置可以看见的对象,当摄像机进入任何一个单元格,都会访问表格,判断谁可见,谁不可见。

抖动过渡Dithered LOD Transition

  • UE4会自带某个临界距离,远则模型粗糙,近则模型细致,但是这个变化是特别突兀的。
    在母类材质中,搜索Dithered LOD Transition勾选,可以平滑过渡这一变

检查内存使用率

  • 影响内存的因素主要是场景中的纹理Texture
    window > statistics > 下拉选择Texture Stats,查看Fully Loaded Memory即加载全部纹理需要的内存容量,点击这个选项卡更改为从高到低排序,可以查看哪个纹理占用的内存最大。在内容浏览器中找到它,点开后更改最大纹理尺寸 Maximum Texture Size 为更小的尺寸(2的整数次方),再去查看就可以看到总的加载内存消耗变低了。
  • 控制台:Streaming PollSize +整数MB 选择用多少MB内存来流送纹理
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Motarookie/article/details/121636665

智能推荐

Sublime text 3搭建Python开发环境及常用插件安装_sublime python 环境搭建-程序员宅基地

文章浏览阅读4.9k次。Sublime text 3搭建Python开发环境及常用插件安装_sublime python 环境搭建

在CentOS 7上安装MySQL 8.0_centos7安装mysql8.0gpg密钥-程序员宅基地

文章浏览阅读643次。MySQL在首次安装后会执行一个安全脚本,用于设置root用户的密码以及其他安全选项。_centos7安装mysql8.0gpg密钥

echarts绘制圆角方形进度图_echarts symbolboundingdata-程序员宅基地

文章浏览阅读864次。这种场景下,可以使用两个系列,一个系列是完整的图形,当做『背景』来表达总数值,另一个系列是使用 `symbolClip` 进行剪裁过的图形,表达当前数值。_echarts symbolboundingdata

学python需要什么样的电脑,python需要什么样的电脑_python机器学习需要怎样配置的电脑-程序员宅基地

文章浏览阅读1k次,点赞18次,收藏16次。这篇文章主要介绍了学python对电脑配置要求高吗,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。_python机器学习需要怎样配置的电脑

最新OCR开源神器来了!-程序员宅基地

文章浏览阅读3.9k次。Datawhale开源开源方向:OCR开源项目01导读OCR方向的工程师,之前一定听说过PaddleOCR这个项目,其主要推荐的PP-OCR算法更是被国内外企业开发者广泛应用,短短半年..._github 2023年最新表格ocr

python 建筑建模_设计课开题 | Parameterized Complexities参数化建筑设计-程序员宅基地

文章浏览阅读317次。【竞赛+作品集,点燃你的设计理想】设计课开题啦!百川柯纳陆续推出以国际设计竞赛项目为参考的设计题目让大家参与,借此丰富履历,充实作品集。本期的设计题目为:Parameterized Complexities参数化建筑设计。喜欢参数化的小伙伴,你们兴奋吗?Parameterized Complexities 选题背景 近期不断有小伙伴在后台给我们留言,或者咨询百川柯纳顾问老师表达希望能够参加以“参数..._python 建筑平面图

随便推点

[ATF]-TEE/REE系统切换时ATF的寄存器的保存和恢复_atf-tee-程序员宅基地

文章浏览阅读1k次。ATF点滴1、设置运行时栈SP2、寄存器的保存和恢复的实现3、寄存器的保存和恢复的使用场景1、设置运行时栈SPbl31_entrypoint—>el3_entrypoint_common---->plat_set_my_stack—>platform_set_stack—>platform_get_stack动态找到该cpufunc platform_set_stackmov x9, x30 // lrbl platform_get_stackmov sp, x0r_atf-tee

PPT模板下载-程序员宅基地

文章浏览阅读134次。300多个各种类型的PPT模板下载,为您提供各种类型PPT模板、PPT图片、PPT素材、海报模板、新媒体配图等内容下载。

基于JAVA的智能小区物业管理系统【数据库设计、源码、开题报告】_智能化哪些系统需要数据库-程序员宅基地

文章浏览阅读546次。主要功能有:保安保洁管理、报修管理、房产信息管理、公告管理、管理员信息管理、业主信息管理、登录管理。_智能化哪些系统需要数据库

年度书单盘点 | 实用到爆炸,这份高性价比套系书单,越读越上头!-程序员宅基地

文章浏览阅读69次。本期年度书单,带大家盘点一下本年度图灵最受欢迎的套装图书,以前买套装书是为了凑单,如今套装书买回去不仅有一次性就能读完的酣畅感还极具收藏价值。一本好书往往要经过时间的验证,而阅读又是一种隐私,每个人的喜好大有不同,但能够集齐每个人的喜爱,这往往就是经典的诞生。今天这份书单里,有自成体系的套系书,还有一些因读者需求而产生的组成套系书。但不管哪种形式,它们都解决了读者在学习某些方面遇到的问题,也给大家...

thch30 steps/make_mfcc.sh详解-程序员宅基地

文章浏览阅读809次。这个脚本的输入参数有三个:1.data/mfcc/train 2.exp/make_mfcc/train 3.mfcc/train1.data/mfcc/train中有数据预处理后的一些文件:phone.txt spk2utt text utt2spk wav.scp word.txt2.exp/make_mfcc/train中应该是要保存程序运行的日志文件的3.mfcc/train中是提取出的特征文件1是输入目录,2,3是输出目录#!/bin/bash# Copyright 2012-2_thch30

smartclient listgrid style (加竖线、横线、背景色)_listgrid添加样式-程序员宅基地

文章浏览阅读2.5k次。如图所示:在jsp中引入: Style.css 代码:.myOtherGridCell { font-family:Verdana,Bitstream Vera Sans,sans-serif; font-size:11px; color:black; border-bottom:1px solid #a0a0a0;border-right:1px solid_listgrid添加样式