实时渲染优化手册-拾艺肆

实时渲染优化手册

本页面的内容

本文提供了关于怎样辨识并优化联通设备性能的手册和最佳实践,同时介绍了怎样在这些情况下获得最逼真的实时渲染功能。

在本文中,你将了解:

了解你的性能预算

开发项目时,应用程序的目标设备只有有限的可用资源,包括拿来保存和处理对象的显存资源。在建立你的项目时,你必须决定将这种资源用于什么地方。所以,你应当自行了解设备在速率、线程、CPU和GPU带宽方面的能力,以及设备的显存、图形显存和可用c盘空间su材质怎么调整大小,这种都是很重要的审视诱因。

据悉,你还应当针对目标设备,对你的项目进行基准测试(),借此了解其运行方法,以及那里可能碰到性能困局。你可以在设备上运行要求严苛的应用程序或技术演示,对设备进行基准测试,之后观察性能统计数据。以这些方法定期对项目进行基准测试非常重要。

用于显示性能统计信息的控制台命令

你可以在运行项目时,使用一系列控制台命令来查看性能统计数据。在启动项目后,或在项目打包成开发者版本后,你可以在控制台窗口中输入控制台命令。

实时渲染优化手册插图-拾艺肆

联通端应用中的控制台界面。

控制台和四指点击命令仅在开发版本中提供。发行或测试版不可用。

你可以在控制台北输入命令便于在界面显示调试信息。以下表格包括提供性能信息的命令列表:

命令

说明

StatGPU

显示GPU用于不同进程的时间(以微秒为单位)。

StatUnit

显示CPU用于不同进程的时间(以微秒为单位)。还显示游戏线程、渲染线程和GPU时间。

Stat

显示一张图表,图中呈现一段时间内CPU和GPU借助率。这有助于辨识峰值。

Stat

显示不同纹理池使用的显存量。

对于你可以用于剖析应用程序设备性能的更多控制台命令,请参阅[Stat]()。

常见性能诱因

了解完怎么查看性能数据后,接出来你要了解一些最常见的性能影响诱因。一旦晓得什么方面会影响你的项目,你就可以使用虚幻引擎的确诊工具快速辨识问题。

高帧率法线贴图最佳实践

将高帧率顶点烘培到低六边形模型的法线贴图的过程可能比较复杂,但是许多诱因会使引擎内部的法线贴图纹理质量增加。用于烘培法线贴图的工具集有好多,而且我们推荐使用。中的使用过程大致如下:

在少将法线贴图烘培为带有4xAA的8kTIFF。

将TIFF导出到中,之后将其削减为1k纹理。

应用值为0.35px的高斯模糊。

将图象从16位转换为8位。

将图象导入到24位TGA。

将最终法线贴图导出虚幻。

为确保烘培过程中使用的表面法线与引擎中呈现的法线相同,你应从虚幻内部导入已优化法线。将烘培模型导出虚幻,选择创建自己的法线,之后从虚幻导入烘培模型,在中烘培。这是创建高质量法线贴图时的重要步骤,由于须要了解网格体的表面法线,便于应用高帧率模型的偏斜。

最后,有两个选项可以降低渲染静态网格物体时的伪像:

这两种设置可以在静态网格体编辑器的细节()面板的LOD分段中找到。

实时渲染优化手册插图1-拾艺肆

勾画调用

勾画调用是指查找资产,发生在每一帧。你的应用程序使用的勾画调用次数,取决于场景中奇特网格体的数目,以及每位网格体使用的奇特材质ID数目。当前,大量的勾画调用是造成图形性能增加的最大诱因,因而应尽可能减小。

比如su材质怎么调整大小,高度优化的车辆模型可能仅有五六个单独的网格体,但是其中每位组件可能仅具有一种材质。

优化场景中勾画调用的理想目标大致为TabS6上700次,高端硬件上多于500次。HMI项目倾向于使用十分奇特或复杂的材质,TabS6上的理想目标是100次,最好是多于50次。

你可以通过控制台命令StatRHI输出勾画调用次数。

请记住勾画调用次数将取决于你处于PIE模式还是在设备上。|

降低网格体数目

要降低勾画调用,最简单的方法是减小场景中奇特网格体的数目。方式有几种:使用引擎外置工具来合并网格体,以及使用可视化剔除工具。

可视性剔除

降低材质ID数目

要降低网格体中奇特材质的数目,则有多种选择。

最简单的方式是使用物质勾画器()等程序,将多种材质集成到同一纹理中。这样你就能否借助多种材质,并且都是极其简单的虚幻材质,之后将其用作具有简单纹理输入的材质实例的基础。此操作就能降低材质指令数,进一步提高性能。

实时渲染优化手册插图2-拾艺肆

第二种方式将描边用于更程序化的方案。材质可以表示表面的个别特点,比如颜色、粗糙度或金属质量。不用对网格体的不同部份使用单独的材质,你可以将描边用于网格体UV的单独部份,并对每位分段应用不同的设置。你可以使用黑白纹理创建基本描边,并且使用顶点颜色愈发高效。

实时渲染优化手册插图3-拾艺肆

实时渲染优化手册插图4-拾艺肆

在以下示例中,顶点颜色用于定义不同的材质类型,材质定义单独影响那些组成部份外型的参数。顶点颜色描边愈发高效,分离更清晰,由于它不依赖纹理码率。

实时渲染优化手册插图5-拾艺肆

使用顶点颜色来分辨不同材质类型的材质。

材质

材质复杂度会提高渲染画面的象素级开支。每位象素的材质指令越多,渲染估算最终值所需花的时间就越多。不透明材质的价钱最便宜,而且基于着色模型或基础着色器代码,情况可能迥然不同。

你可以在材质编辑器内的统计(Stats)窗口中找到有关材料指令数的读数。

实时渲染优化手册插图6-拾艺肆

正在显示指令数的统计数据窗口。

指令数也会依照材质中物理函数的数目而降低。节点越多,材质的渲染成本就越高。个别特定操作的成本也会较高。尽量限制在建立更复杂材质时的指令数。

半透明材质属于成本最高的材质类型。单独的半透明层的每象素成本较高,当多个半透明层堆叠和渲染时,成本要高得多。这称为过度勾画。

汽车的尾灯和大灯是透明度问题区域的典型示例。在好多情况下,我们使用手绘纹理贴图增加材质复杂性。虽然纹理平坦,也可以挺好地表明复杂的形状和深度。

实时渲染优化手册插图7-拾艺肆

优化纹理帧率

项目纹理有几种优化方式。你可以使用外置的虚拟纹理;它容许你几乎使用任意规格的纹理,并只勾画屏幕须要的纹理部份。或则,你也可以用传统的纹理勾画方式。

对于虚拟纹理以外的传统纹理方式来说,一般须要占用大量空间,包括显存和c盘空间。高帧率纹理尤其这么。似乎高帧率纹理可以提升保真度,但考虑到设备的屏幕帧率和纹理的视角,纹理大小带来的利润会降低。使用尽可能小的纹理获取所需的保真度至关重要。

要确定纹理需求,首先要确定摄像机位置和查看模型的视场(FOV)。这将有助于确定所有网格体和材质的界面空间。

确定摄像机位置后,你可以使用特殊的调试纹理来检测,便于确定用于各类材质的纹理帧率。调试用的纹理有助于确定不同组件须要的帧率,为每张应用不同颜色。这样你可以很轻松地辨识出材质正在使用的mip,以及应当使用哪种纹理帧率。

创建测试材质时,将调试纹理连到无光照材质的自发光通道,之后将该材质应用于你的网格体。从合适摄像机距离查看网格体时,颜色码将指示引擎用于渲染的mip级别。观察到的最高级别应当是法线和环境光遮蔽贴图的原生纹理大小。

实时渲染优化手册插图8-拾艺肆

添加了调试用材质的网格体示例。

打包规格和启动时间

在打包应用程序及其资产时,须要在c盘上的包大小与运行时启动性能之间权衡。

启用Zlib压缩时,应用程序的包会更小。但是,这须要更多的CPU时间加载应用程序,可能会减低启动速率。为优化启动时间,你可以禁用压缩。

实时渲染优化手册插图9-拾艺肆

你可以在"项目设置()">"打包()"中找到Zlib压缩设置。

推荐的流送设置

.ini中推荐了以下流送设置。这样在应用程序启动时为异步加载资产提供了更多时间,可以改善启动时间。

[/Script/Engine.StreamingSettings]
s.PriorityAsyncLoadingExtraTime=275.0
s.LevelStreamingActorsUpdateTimeLimit=250.0
s.PriorityLevelStreamingActorsUpdateExtraTime=250.0

推荐的打包设置

.ini中推荐了以下打包设置。这种设置降低了打包资产时使用的压缩量,由于启动时未压缩.pak文件的加载速率显著快于ZLib压缩文件。

[/Script/UnrealEd.ProjectPackagingSettings]
bCompressed=False
BuildConfiguration=PPBC_Development
bShareMaterialShaderCode=True
bSharedMaterialNativeLibraries=True
bSkipEditorContent=True

剖析c盘上的包大小

虚幻引擎有多种实用工具,可以提供资产数据占用空间的深度信息。

规格图

规格图可读取和对比编辑器中的相对资产显存消耗。必须启用插件能够使用。以后,右键点击内容浏览器()中的文件夹,从上下文菜单中选择规格图(SizeMap)即可访问。

实时渲染优化手册插图10-拾艺肆

规格图将显示带有图标的窗口,图标代表文件夹和文件占用的显存量。图标越大,文件消耗的空间越大。

实时渲染优化手册插图11-拾艺肆

有关使用规格图的更多信息,请参阅烘培和分块。

规格图可读取编辑器中使用的资产空间大小。打包项目后,显存消耗会有所不同。这是由于在烘培过程中会出现不同类型的压缩。通常来说,规格图代表资产可能占用的最大规格。

统计数据

统计数据工具提供关于关卡中资产使用的更多详尽信息。可以在窗口()下拉菜单中找到。

实时渲染优化手册插图12-拾艺肆

此统计数据窗口将细分关卡文件中的资产数目,可以显示所有关卡,也可以仅显示特定关卡。统计数据列举关于三角形数目、内存消耗和计数的信息。

实时渲染优化手册插图13-拾艺肆

正在显示视口数据的统计窗口。

此列表中显示的其他数据包括纹理使用和静态网格体光照信息。统计数据窗口的列表模式可以快速展示什么资产消耗的显存最多。烘培器统计数据也很有帮助,由于其中列举了最后一个打包过程烘培的所有资产。

显存报告

统计数据和规格图工具向你展示虚幻引擎中文件的数据占用空间,控制台命令-full可以用于安装在目标设备上启动的应用程序。这可以提供文件规格的详尽且确切的信息,由于它们存在于设备压缩设置中。

应用程序在开发配置中建立并加载到设备后,你可以打开控制台窗口并输入命令。此显存快照保存在设备的项目目录中。目录一般为/[]/[]/Saved///,但可能会有变化。

.文件是可以在大多数文本编辑器中读取的文本文件。文本开头包含一些关于已分配显存和池规格的信息,而文本的大部份内容显示已加载关卡、RHI统计数据、渲染目标、场景信息等记录。所有这种信息都很有价值,由于它们代表完成烘培和打包过程的实际数据。

假如你搜索列举所有纹理(all)这个句子,你将在应用程序中找到每种纹理的列表,以及关于纹理类型、分组、尺寸和显存空间的详尽信息。列表按显存大小排序,首先显示较大的纹理。这个方式可以快速简便地找出哪些纹理消耗显存最多。

剖析启动时间

影响启动时间的诱因包括以下内容:

有数种不同的工具可用于剖析应用程序的启动时间,但最推荐使用的是,由于它可以远程剖析目标设备的性能数据。有关此工具集的完整信息,请参阅分段。

请登录后发表评论

    请登录后查看回复内容

 

昼夜

客服

点击联系站长 点击联系站长

在线时间
12:00 - 22:00

关注微信公众号

关注微信公众号
交流QQ群

244075032

站长邮箱 apeng123@88.com