渲染管线(URP)中优化项目的几种方法

URP入门篇

本篇将介绍通用渲染管线(URP) 中几种优化画面效果的方法

(一)Managing Lighting

渲染管线(URP) 在构建时就将优化的实时光照考虑到了,在URP Forward Renderer中,每个对象最多可以有8个实时光源。台式机每个摄像机最多可以有256个实时光源,移动端每个相机最多可以有32个实时光源。通用渲染管线还允许在管线资源中配置每个对象的光照设置以进一步控制光照,但其实改善场景性能的最好的一个方法,就是在需要时尽可能地烘培场景,实时光照可能开销巨大,而烘培光照 则可能是提升性能的好方法,尤其是当场景中的灯光要一直移动时

烘培(Backing)

烘培过程实际上就是将场景中的光照数据进行预渲染而生成纹理,这些纹理之后会重新投影到场景中的几何图形上。
使用烘培光照的优点
1.通过将光照数据预渲染为烘培纹理。可以节省宝贵的渲染时间。因为光照纹理可批处理为单一的绘制调用,并且不需要连续计算。当场景使用多个光源时,这尤其有用
2.它可以渲染场景中的反射或"间接"光照,并改善场景的视觉质量,这称为“全局光照”,它是模拟光线在环境中的反射,并且反射光线照亮附近其他对象的过程。

在这里插入图片描述
确保场景中的几何图形被标记为 “静态(Static)”,这将使其包含在光照贴图计算中,并增加全局光照(Global Illumination, GI)系统的反射光。
为缩短烘培时间,可设置Mesh Renderer中Lightmapping参数,为较远或较小的物体降低设置,
在这里插入图片描述
打开Lighting设置进行烘培,还可以使用Draw Mode 下拉菜单 可视化
在这里插入图片描述

(二)Light Probe

光照探针在烘培过程中采样场景中的光照数据,并允许反射光信息传递给可能移动或更改的动态对象,如角色或车辆。这有助于它们融入烘培的光照环境中,并更自然

光照探针(Light Probe Group)

将探针放到场景中并选择编辑光照探针(Edit Light Probe)选项,通常在光线变化的地方都应放置探针,将它们放置在靠近阴影的区域或光照颜色变化更为频繁的区域,然后,再次烘培光照
在这里插入图片描述

反射探针(Reflection Probe)

反射探针是一种将环境的一部分投射到附近的几何体上的方法,来在我们的场景中创建更逼真的反射效果。默认情况下,Unity将用天空盒作为对象上的反射纹理,但是反射探针可以使反射更接近其周围环境

在场景中右键Light进行创建调整位置大小并设置探针的分辨率,更高分辨意味着更高质量的反射,离摄像机较远物体应设置较低分辨率,节省内存开销
在这里插入图片描述
烘培时需注意勾选反射
请添加图片描述

(三)Camera Settings

URP具有优化摄像机的功能,可通过禁用摄像机上不需要的渲染器过程来实现,如果项目需要同时服务于高端和低端设备,将非常有用。通过禁用后处理、阴影渲染或深度纹理等功能。可以清除低质量设置上所有可能的高开销行为并提高性能。
优化摄像机的另一种好方法是使用遮挡剔除(Occlusion Culling),
在Static 勾选选择剔除类型
请添加图片描述
在这里插入图片描述

(四)Pipeline Settings

Unity通用渲染管线(URP)支持部署内容到多个目标上平台和设备。因此 URP资源包含多个可以控制的设置来改善游戏的性能
在这里插入图片描述
尽可能降低阴影分辨率和距离以及禁用项目中没有的任何功能,如深度纹理(Depth Texture)或不透明纹理(Opaque Texture)
在这里插入图片描述
同样开启SRP Batcher,将会启用通用渲染管线中新的批处理方法。SRP Batcher将使用兼容的着色器自动批量处理网格。因此,如果场景中有很多动态对象,这可能是一种提升性能好方法。SRP Batcher是为改进通用渲染管线(URP)中的批处理设计的
在这里插入图片描述

(五)Frame Debugger

用于了解场景渲染过程中发生了什么,可以选中URP中的Debug Level,注意调整它可能会降低性能,所以建议在没有进行性能分析的时候将它禁用。帧调试器在前面几节有具体描述其使用这里不再赘述。

(六)Profiler

性能分析器是确定项目完成一个帧周期需要多长时间的一种好方法,它汇总了渲染、内存和脚本等信息。

以上这些只是优化场景以及提高性能和保真度的几种方法。

猜你喜欢

转载自blog.csdn.net/weixin_42050609/article/details/125068713