欢迎光临散文网 会员登陆 & 注册

[UnrealCircle北京]仙剑7的性能优化经验与教训 | 万新琪

2023-08-22 10:56 作者:坚强阿莎  | 我要投稿

仙剑7性能优化经验和教训笔记

1.阴影

用比正常低一个级别的LOD来优化阴影和光追。

可以关闭投影贡献少的材质部分的投影以及一些动态阴影,用CastShadow弥补。

看不到方向光的时候可以关闭方向光。

注意点:关闭动态阴影可能会丢失距离场效果,所以最好是使用固定光的场景。


2.半透明

看不见的半透明物体依旧会参与渲染造成性能浪费,可以通过DistanceCull、流关卡、程序逻辑优化。

压缩粒子顶点减少OverDraw。


3.内存

将粗糙度、金属、AO等贴图放一张贴图的RGB通道中,能够减少纹理采样次数、包体和内存。

将贴图尺寸减小。

合并相同物体成Instance能够减少显存压力,但instance过多会造成巨大的CPU开销,需要将其拆分到子关卡中。

4.管理不用区域不同的渲染参数

用蓝图脚本来管理CvaR,而不是写入ini文件中。根据UI中的画质选项设置自动切换渲染参数。

每个区域的地图都要有自己的参数配置,可以用触发盒切换。


5.光追

尽量消除BVH重叠。

尽量提高BoundingBox的填充率。

BLAS:针对BVH的加速结构,用于储存场景中每个物体的BVH,可以实现更高效的光效物体相交测试。

世界中空白空间过多时考虑拆分BLAS。

AABB(世界空间轴对齐边界框)重叠较多考虑合并BLAS。

松散几何体的Actor考虑从光追中剔除。

合并的Actors会使用一个非常大的BoundingBox,很容易扼杀性能。

SupportRayTracing标志可以非常方便的组织光追场景。

限制几何体更新距离:r.RayTracing.DynamicGeometryLastRenderUpdateDistance。

仙剑7的物体加入光追与否表格

大量水面场景处理思路:

1.复杂模型移除光追

2.水面反射附近减少BVH复杂度过高的模型

3.性能达到目标后再添加

4.Instances Foliage的WPO物体应该和Evaluate WPO的静态网格物体在光追中区别对待:在一定范围内才做光追计算。

光追材质尽可能简单。



[UnrealCircle北京]仙剑7的性能优化经验与教训 | 万新琪的评论 (共 条)

分享到微博请遵守国家法律