BlueRoseNote/02-Note/DAWA/Old/武庚纪优化.md

5.9 KiB
Raw Permalink Blame History

优化记录

  1. 灯光优化    1. 主场景(城楼、栈桥与城门部分)       1. 主光源          1. 将DynamicShadowDistanceMoveableLight调整到合适范围近景细节阴影40000 => 400015000范围          2. 调整DistanceFieldShadowDistance远景的软阴影效果20000 => 400015000如果远景阴影效果有问题再调整DistanceFieldTraceDistance100000.0 => 100000.040000000.0          3. 调整Num Dynamic Shadow Cascades4=> 13保证阴影效果变化不大的情况下       2. 其他辅助光源          1. 保证灯光的半径与角度刚好覆盖想要影响的物体。          2. 补光灯可以尝试低亮度不投射阴影或者高亮度+贴花,尽可能避免高亮度加投射阴影。          3. 如果需要投射阴影请适当调整阴影分辨率1=> 0.05~0.8    2. 不太容易看的场景(坑底与中间浮岛下面部分)       1. 尽量保证只有灯光效果关闭阴影效果。如果需要阴影就使用SpotLight不投射阴影可以用点光源。       2. 尽可能减少灯光数量。即坑底部分的照明可以选择使用贴花Fake    3. 远景山脉阴影使用Fake贴花。避免使用方向光来投射阴影。    1. 如果需要阴影可以将Num Dynamic Shadow Cascades 4=>0并且调整调整DistanceFieldShadowDistance。直接使用距离场阴影。
  2. 场景优化    1. 粒子可以调节Cut Off的裁剪系数Spawn TimeSpawn Rate等等可以在保证效果的同时来降低粒子数量的参数    2. 模型    1. 制作LOD或者HLOD。 使用Nanite    2. 考虑使用HSIM或者 UE5出的Light Weight Instances https://www.youtube.com/watch?v=QGEV8YjBGHQ    1. 启用Light Weight Instances插件。    2. 创建一个蓝图类LightWeightInstanceStaticMeshManager类并且拖入场景中。    3. Manager设置RepresentedClass指定新建的Actor这里假定名字为AA里面只有StaticMeshComponent    4. 设置InstancedStaticMeshComponentStaticMesh与Materials。    5. 往场景里放入多个AA并且选中之后在菜单栏的Actor-Convert Actors to LightWeightinstances    3. 远景资产    1. 删除场景外的看不见的模型    2. 删除多余的地形
  3. Nanaite
    1. 尽可能得将模型转化成
    2. 使用Nanite Tools检查哪些模型的材质有问题并解决。

优化记录

方向光

2022.9.20

修改远景4个DirectionalLight 动态ShadowMap阴影可以为距离场阴影或者静态阴影。

  • DirectionalLight   - 级联4=》2   - DynamicShadowDistanceMoveableLight 40000=》5000   - DistanceFieldShadowDistance40000=》10000
  • DirectionalLight2   - 级联4=》2   - DynamicShadowDistanceMoveableLight 40000=》25000   - DistanceFieldShadowDistance10000=》1000000.0   - DistanceFieldTraceDistance  =>2500000.0
  • DirectionalLight4   - 级联5=》0   - DynamicShadowDistanceMoveableLight 40000000.0=》4000.   - DistanceFieldShadowDistance1000000.0 =》1000000.0   - DistanceFieldTraceDistance  100000.0=》40000000.0
2022.9.21
  • DirectionalLight2   - 删除
  • PointLight3
    • 亮度150=》50
    • 关闭CastShadow
  • SpotLight11
    • ShadowResolutionScale1=》0.1
    • 或者考虑降低角度,只对着城楼。
  • RectLight7
    • 建议调整范围 =》降低至能刚好包裹城门的区域。
    • 亮度 500=>100
    • 关闭阴影
    • 或者删了
  • SpotLight25
    • 降低半径2000 角度 60
    • 阴影分辨率1=>0.5
  • SpotLight26
    • 降低半径到2500角度降低到45亮度提高=》10000 Shadow分辨率 1=》0.5
  • SpotLight27
    • 降低半径到2300角度降低到45亮度提高=》12000Shadow分辨率 8=》0.5
  • PointLight56
    • 关闭CastShadow
    • 降低半径到1600
  • PointLight57
    • 关闭CastShadow 或者降低阴影分辨率 0.1=》0.01
    • 降低半径到700
  • PointLight74
    • 关闭CastShadow
    • 或者换成SpotLight
  • RectLight14
    • 降低半径到2860
    • 关闭CastShadow
    • 或者换成SpotLight

后处理

  • AmbientCubeMapIntensity 1=》0
  • Ambient OcclusionIntensity 0.7=>0

粒子优化

场景优化

  • 删除场景外看不到的模型
  • 删除多出的Landscape2
  • 给树木等物体制作Impostors

优先级顺序

  • Stat数据查看

    • 查看Stat Unit 数值确定是GPU还是CPU瓶颈
    • 查看Stat SceneRendering
    • ctrl+shift+ r.showmaterialdrawevents -1 r.rhicmdbypass 1 r.rhithread.enable 0
  • 动态灯光阴影尝试增加级联数与其他参数。使用低分辨率贴图来渲染阴影使用RenderDoc查看分辨率

  • 远景模型距离场检查。使用DFAO关闭SSAO

  • 尝试干掉点光源制作Fake灯光 贴花来代替各种灯光与阴影效果

  • 检查材质复杂度

    • 烘焙材质,将复杂材质烘焙结果到贴图
  • 检查模型面数以及LOD碰撞盒 改用Nanite来解决

  • 草地使用HISM或者UE5出的Light Weight Instances

  • 粒子优化工具:剪裁粒子面积。

    • Unreal4引擎对粒子系统半透明渲染的Overdraw做了优化。在ProjectSetting->Rendering > Optimization中有一个渲染Enable Particle Cutouts by Default选项
  • MergeActor工具合并DrawCall

  • 开启DLSS插件

  • 设置Dynamic分辨率

制作流程改变

对于性能要求的项目。

  1. 制作前先让TA知道目标硬件帧数。
  2. 美术摆放场景后检查距离场
  3. 美术手动合并材质。
  4. 吃透Nanite以及LOD属性设置
  5. 搭建VPN、版本管理等方便远程协作的服务。

优化笔记

!UE5优化方法与实践笔记