BlueRoseNote/02-Note/DAWA/BH3音乐会场景优化.md

645 lines
18 KiB
Markdown
Raw Normal View History

2023-08-01 15:24:40 +08:00
# 有待改进的地方
1. 角色卡通渲染:建议之后自研卡通渲染引擎。
2. DMX Light Beam性能问题。
3. 因为成片后续会进行重新渲染,建议编写一个插件 记录UE各种事件录像功能+记录摄像机轨迹,方便后期进行操作。
# 优化记录
2023-06-29 11:55:02 +08:00
## DMX
渲染模型&材质:
- SM_Strobe_Lens M_MI_Lens_Strobe不透明材质指令数254
- SM_Beam_RM M_Beam_Master
- BP_StaticMatrix M_MatrixBeam_Master
### Beam材质
变量:
- NSliceNearPlane 交点世界坐标
- NDepth
- FSliceFarPlane 交点世界坐标
- FDepth
MF_WSIntersection如果没有相交RelIntersectPos为IntersectDistance为。
### 优化方案
1. DMX模型改成StaticMeshInstanceGun的模型是Masked建议改成不透明。
2. 关闭DMX灯光中的照明效果因为不会对着模型照明。
1. 场景中的组件勾选**Disable Lights**
3. StaticMeshLens 组件可以按照距离进行关闭。BP_StaticStrobe_C、BP_MovingHead_C
1. 场景中的组件中的StaticMeshLens去掉**Visible**。
2. Sequence中手动设置**Visible**。
4. Beam材质
1. 给BeamRayMarch的DMX Max Light Distance 乘上一个变量倍率之后适当减少DMX Max Light Distance大小建议的倍率为1.2~1.5长度为1/1.2~1/1.5 给BeamRayMarch的DMX Zoom 乘上一个变量倍率Zoom 5=>4.5~3并且将倍率调整成合适数值。
2. 调整Zoom Quilty 1=>1.5~2并且适当调整DMX Lens Radius的数值减少断点问题。
5.
## 优化目标
XR 2k 2048*1080 50帧 => 3440 * 1440 50帧0
## 优化场景
E:\Project\yanjingdan\BengHuai\Ture\Content\UnWorld\BengHuai_True\Maps
E:\Project\yanjingdan\BengHuai\L_Dacapo\content\UnWorld\BengHuai_Dacapo\Maps\L_Dacapo5.umap
E:\Project\yanjingdan\BengHuai\BengHuai\Content\UnWorld\BengHuai_Tiantai\Maps\L_BengHuai_Tiantai.umap
步骤:
1. 场景静态模型设置成Nanite以下模型需要额外考虑是否开启Nanite
1. 带有世界位移与Masked的模型比如花 草 模型。
2. 将一些不会动的模型都设置成Static。
3. 告知拍摄镜头需求,是全景还是需要360°都有拍摄要求。
4. 确定场景之后不会进行改动之后使用MergeActor将模型中的相同材质进行合并将场景中的静态模型设置成Instance。
### L_BengHuai_Tiantai
问题:
~~1. 模型问题
1. 目前比较大的问题在于模型较多、面数较高且场景静态模型没有设置成Nanite。使得剔除与BasePass渲染延迟过高。~~
#### Model
~~1. 场景中大量巨大无异议的球名字为Sphere~SphereX~~
~~2. 图元较多的关卡
1. L_Main_AllCity_Chengbao_2~~
- dd_polySurface
- BookOpen
- Box001~Box003
-
#### Light&Shadow
1. SpotLightDingGuang
1. 去掉Cast Shadow只影响台阶的阴影)
2. 勾选Distance Field Shadows。
2. RectLight 81~93
1. 去掉Cast Shadow。
2. 将其替换成SourceLength 匹配的PointLight。
3. 将其他面光源替换成点光源或者聚光灯可以减少0.1~0.2ms,优先级低)。
#### Translucent
1. 修改EasyFog的材质(大纲搜索EasyFog从Translucent=>Additive。并且重新调整亮度。
2. 大纲搜索EnvEmitter调整大小并使用Cutoff工具对齐进行裁剪。覆盖范围过大。修改材质MI_Env_Inst~MI_Env_Inst22从Translucent=>Additive。并且重新调整亮度。
#### 2023.6.5优化建议
1. 舞台观众、荧光棒去掉CastShadow同时考虑使用Nanaite
2. 浮游炮材质重Masked=>不透明
3. 烟花材质重Translucent=>Additive
4. Sequence进入舞台镜头时对看不见的建筑物进行隐藏操作。
5. 主舞台所有模型进行Merge并且设置成Nanite。
6. 主舞台DMX灯光开启DisableLight。
7. 调整Lumen渲染参数或者后处理盒子参数
- Lumen Scene Lighting Quality 2 =>0.25
- Lumen Scene Detail4=>1
- Lumen Scene View Distance20000=>1000~3000
- Max Trace Distance20000=>1000~3000
### L_Dacapo5
问题:
1. 模型问题
1. 模型较多、面数较高且场景静态模型没有设置成Nanite。使得剔除与BasePass渲染延迟过高。
2. 花草不是Instance
3. 花卉、草的的材质有优化空间。
2. 阴影
1. 有2个方向光投射阴影关闭其中一个。并且使用距离场阴影。
3. Lumen
1. 设置Lumen参数去除草地对GI的计算。
4. 天空上的透明体积雾效果
BasePass渲染延迟较高的模型
HUABAN_toon hua 123 instances 19501-19515 4775.936
grass0 hua 123 instances 19481-19489 4387.84
MI_grass_01_Inst_gbl SM_grass_01_gbl_lv 31 instances 14016-14025 2996.224
HUABAN_PINK_toon1 hua_pink 35 instances 15286-15291 1172.416
grass0 hua_pink 35 instances 19491-19499 1107.968
HUAXIN_toon_toon1 hua 123 instances 15266-15274 572.416
MM_Grass HUA002 2 instances 14405-14415 440.32
M_plants SM_sf_flower_05 13548-13551 193.536
M_plants SM_sf_flower_05 13739-13742 191.488
M_plants SM_sf_flower_05 13734-13737 167.936
HUAXIN_toon_toon1 hua_pink 35 instances 15276-15284 164.832
M_plants SM_sf_flower_05 13669-13672 128.00
M_plants SM_sf_flower_05 3 instances 13664-13667 124.928
### L_True
1. 模型问题
1. Nanite与Instance主要是电视机
2. VolumetricSpotlightEngine 是拿来干什么的?
3. 灯光
1. 关闭投射阴影(尤其是点光源,包括天光)
1. 天光
2. SpotLight11
3. SpotLight12
4. SpotLight2
5. DirectionalLight
6. PointLight1~6
2. 调整灯光投射范围(有一些太远了)
4. 13_Mat_DianShiJi14 贴花看不出有什么作用。
5. 黑色遮罩的几个Plane是干什么的
6. 中间的几个透明片删掉
7. 中间数据库的材质重Tranlucent => Additive
8. 几个透明的粒子效果将材质从Tranlucent => Additive 鬼影问题很大)
BasePass渲染延迟较高的模型
monitorE_col_High_A_Mat2 monitorE_High_Geo_Grp 90 instances 12336-12351 2444.288
TTest monitorE_High_Geo_Grp 28 instances 12006-12014 761.856
monitorE_col_High_A_Mat2 monitorE_High_Geo_Grp 12 instances 12353-12357 337.92
monitorE_col_High_A_Mat monitorE_High_Geo_Grp 11 instances 12837-12852 308.224
monitorF_col_high_A_Mat monitorF_High_Geo_Grp 107 instances 12870-12884 197.632
TTest monitorE_High_Geo_Grp 6 instances 11961-11969 183.296
monitorG_col_High_A_Mat3 monitorG_High_Geo_Grp 66 instances 11542-11552 159.7
monitorA_col_High_Mat3 monitorA_High_Geo_Grp 168 instances 12576-12590 153.536
monitorD_col_High_A_Mat monitorD_High_Geo_Grp 27 instances 12283-12297 135.168
monitorG_col_High_A_Mat1 monitorG_High_Geo_Grp 47 instances 11448-11480 115.648
## L_XBLA xiubolian休伯利安
1. 移除没有明显投影效果的灯光。
2. 重写DMX插件CPU GPU 负载压力较大。
3. Separate Translucency去除勾选。
### 模型优化
1. 将场景中的静态模型都设置成Nanite。
2. 将BP_FeiChuan模型进行合并。
3. 如果飞船模型如果需要CastShadow则需要在模型里勾选Generate Distance Field。
#### xbla
开启Nanite以及勾选Generate Distance Field。
MininumResidency2MB
Fallback Relative Error1.0=> 0.1~0.0
#### 关闭FeiChuang蓝图中StaticMesh的Shadow
### Light&Shadow
- [ ] 远处的几个小飞船 去掉CastShadow选项。
- DirectionalLight
- Num Dynamic Shadow Cascades5=>3
- Dynamic Shadow Distance MovableLight20000=>5000
- DistanceField Shadow Distance51200=>5000
- Shadow Resolution Scale1=>0.1~0.5
- SpotLight3
- 关闭CastShadow(3与4至少关一个)
- Attenuation Radius11052.831055=> 2040
- Shadow Resolution Scale1=>0.5
- 第二次修改
- Outer Cone Angle 44=>40
- Shadow Resolution Scale0.5=>0.3
- SpotLight4
- 关闭CastShadow(3与4至少关一个)
- Attenuation Radius12052.831055=>4000.0
- 点光源
- 关闭阴影
- 降低Attenuation Radius到合适范围。
- 删除机翼处重新的点光源pointLight81
### Lumen
调整Lumen渲染参数或者后处理盒子参数
Lumen Scene Lighting Quality 2 =>1
Lumen Scene Detail4=>1
Lumen Scene View Distance20000=>5000
Max Trace Distance20000=>5000
### Translucent
#### Nebula
以下几个建议删除:
BP_NebulaProceduralGenerator
BP_NebulaProceduralGenerator2
BP_NebulaProceduralGenerator3N
BP_NebulaProceduralGeneratorMove
BP_NebulaProceduralGeneratorMove2
- BP_NebulaProceduralGenerator5
- Volumetric Sphere Amount10=>1~5推荐1
- 效果会大变
- Min Sphere Radius (Km)0.25=> 0.1~0.2
- Max Sphere Radius (Km)0.75=> 0.6~0.7
- BP_NebulaProceduralGenerator6
- Volumetric Sphere Amount10=>1~3推荐1
- QualityHight => Low~Medium
- 效果会大变
- Min Sphere Radius (Km)0.25=> 0.1~0.2
- Max Sphere Radius (Km)0.75=> 0.6~0.7
远景星云考虑使用SceneCapture渲染出来再贴到一个片上。
#### StarCluster
建议使用Niagara重做一个透明区域太多了。
## Domineer_Showcase
SequenceSeq_Seq_Domin_XR
鬼影问题:
1. 修改材质从Masked=> Translucent并且开启材质的Responsive AA。
## NightGlow
### ~~CustomDepth~~
- MI_Icelandic_Rock_Cliff_ucdmcawdy_4K_Inst2_Normal
没有特殊需要把PostProcessing-Custom Depth-Stencil Pass改成Disable。
### Shadow
- ~~SpotLight ~~
- ~~SpotLight2 ~~
- ~~SpotLight4
- ~~geogrp29下面的灯~~
- stone_Anim2
CasShadow关了。
### ~~Lumen~~
- Lumen Scene Lighting Quality 1=>0.25
- Lumen Scene View Distance20000=>1000
- Max Trace Distance20000=>1000
或者考虑换成烘焙阴影(不太合适)。
### Nanite
特效Mesh
~~- NS_Storns
- SM_Strom_piece_1884
- SM_Strom_piece_1875
- SM_Strom_piece_1900~~
### 场景模型控制 & WuTai破碎
- 在舞台模型出现后使用Sequence将wutai破碎下面的破碎模型都隐藏了。
- 将外部六棱柱与内部六棱柱分开导出并将内部六棱柱转换成Instance Static Mesh。
- 使用StaticMesh替换Landscape。
### 透明物体
- EasyFog材质从Translucent=>Additive
- SM_Cloud_Single的材质从Translucent=>Additive
- geogrp的NewMaterial1_Inst从Translucent=>Additive
### 2023.6.11
- GameThread 13.4ms
- ~~WorldTick 4.3ms =>3)~~
- ~~进地形改成StaticMesh选中地形File => Selected (1.3ms)~~
- ~~减少NiagaraActor数量。~~
- RenderThread 43.1ms
- InitViews 9.8ms
- GatherDynamicMeshElements 7.4 ms
#### 理论上WuTai优化极限
- 关闭光线追踪
- 体积云参数调节
-
删除模型测试:
- 原始状态延迟29~32
- 删除WuTai FbxScene_zhuzi 21~22
- 删除FbxScene_zhuzi2~8 28~30
- WuTai 全部删除 23~25
- Wutai1 几乎没有变化
- Wutai2 26~28
- Wutai3 26~28
替换模型之后19~21ms
##### 可以Instance的WuTai网格
删除以下网格并且使用 替换
- piece_0
- piece_1
- piece_2**
- piece_4**
- piece_6**
- piece_7
- piece_8
- piece_9
- piece_10**
- piece_13**
- piece_14
- piece_15**
- piece_18**
- piece_21**
- piece_23**
- piece_24
- piece_25
- piece_26**
- piece_28**
- piece_29
- piece_30
- piece_31
- piece_32**
- piece_35**
- piece_36**
- piece_38**
- piece_40**
- piece_41
- piece_42**
- piece_45**
- piece_46
- piece_47
- piece_48**
- piece_51**
- piece_53**
- piece_54**
- piece_56**
- piece_57
- piece_58
- piece_59
- piece_60
- piece_61
- piece_62**
- piece_64**
- piece_65
- piece_66
- piece_67
- piece_68
- piece_69
- piece_70
- piece_71
- piece_72
- piece_73
- piece_74
- piece_75
- piece_76
- piece_77
- piece_78**
- piece_81**
- piece_82**
- piece_84**
- piece_85
- piece_86
- piece_87
- piece_88
- piece_89
- piece_90**
- piece_93**
- piece_94**
- piece_97**
- piece_98
- piece_99
- piece_100
- piece_101
- piece_102
- piece_103**
- piece_105**
- piece_107**
- piece_108
- piece_109**
- piece_112**
- piece_115**
- piece_117**
- piece_118
- piece_119
- piece_120
- piece_121
- piece_122**
- piece_124**
- piece_125
- piece_126**
- piece_104
- piece_12
- piece_44
- piece_92
- piece_123
- piece_63
- piece_5
- piece_11
- piece_33
- piece_111
- piece_79
- piece_17
- piece_22
- piece_37
- piece_43
- piece_114
- piece_27
- piece_34
- piece_106
- piece_116
- piece_110
- piece_16
- piece_19
- piece_83
- piece_95
- piece_20
- piece_49
- piece_50
- piece_91
- piece_113
## L_Dacapo6
### CPU
- CPU粒子删除看不到的Fog
- NewBlueprint
- P_Wind
- BP_AddCommand
- BP_LightControl
### GPU
#### 植被
镜头:
- 1612 GPU 37ms
- 2568 GPU 38ms
- 3233 GPU 38ms
1. 删除数量为0的植被
2. 将所有植被模型设置为Nanite。~~地形启用Nanite。~~
1. 转Nanite之前需要修改材质函数MF_Grow将里面的ObjectPosition节点改成float3(0,0,0) => TransformPosition(Instance&ParticleSpace)这2个节点
3. r.Nanite.AllowWPODistanceDisable
4. r.Lumen.DiffuseIndirect.MeshSDF.RadiusThreshold 100
5. 隐藏额外的灯光006~013并且将非卡通角色照明灯光的ToonIntensity设置为0
6. 将DMX灯光相关的模型用Sequence控制隐藏一下。
7. 将建筑物都使用默认材质进行替换。不要使用卡通材质。
8. r.Shadow.Virtual.Cache.MaxMaterialPositionInvalidationRange 1000
9. SM_Beam_RM 系列用Sequence设置可见性。
### 删除额外的东西
- 删除额外Landscape2使用StaticMesh代替
### Sequence 场景可见性优化
Squence设置物体可见性
- NewBlueprint
### Lumen
PostProcessVolumn => Lumen
- Lumen Scene Lighting Quality 2 => 1
- Lumen Scene Detail2 => 1
- Final Gather Quality3 => 1
- Lumen Scene View Distance20000 => 5000
- Max Trace Distance20000 => 5000
### 2023.6.10
- 删除场景中的垃圾
- NewBlueprint系列
- 需确认用途
- SM_Clouds_346_3
- SM_Clouds_346_01
- 替换成StaticMeshInstance 并且转成Nanite
- ZhuDingHongEXP~ZhuDingHongEXP1659
- stone目录下的模型 SM_ruins_20~SM_ruins_87
- 新建文件夹1目录下的Cube~Cube18
- JuHua1244
- SHIKUAI_对象001
- SM_cliff_stone
- SM_GrassClumpFonce
- ZhuDingHongEXP2026
- 优化粒子 Fx_WaterFall
- 减少粒子数量以及生命。
- 删除所有镜头都看不到的粒子。大致可以删掉一半一些只有单个镜头可以看到的可以用Sequence手动K一下可见性。
- 替换粒子改成GPU或者面片或者直接删除
- P_Wind
- GameThread
- 删除额外的2个地形并使用一个地形进行还原。
- RenderThread
- InitViews
- 几个角色脸部表情骨骼体 CastShadow 去掉
-
## L_Rubia
- PlanearReflection 删除,因为已经使用了屏幕空间反射。
- 因为场景都是透明物体切没有Nanite会导致VSM无法缓存所以需要使用ShadowMap。
## L_LiangZiZhiHai
### 模型转Nanite
- zhuwutai_Cube25
- wutai003
- SM_BENHUAI_BOX_1
- SM_BENHUAI_BOX_2
- SM_BENHUAI_BOX_6
- SM_BENHUAI_BOX_5_DJ
- SM_BOX_HEZI_HEKUAI
- SM_BOX_HEZI_HEKUAI_GanCui
- SM_GaoSuiBox
- SM_KongZhonXuanFU
- SM_LiaBianBox
- SM_ShuiJing_box_ID3
### 灯光&Shadow
- 关闭点光源阴影
### 透明材质Translucent => Additive
- M_StaticMeshSkinParticle_Inst
- MI_Env_Inst2
- M_XuanWo_Inst1
- Stage_SeaOfQuanta_ErodedLand_UI06_Mat_Inst
- M_BP_EasyFog_2
- M_SkyWhiteJianBian_Inst1
### Lumen
PostProcessVolumn => Lumen
- Lumen Scene Lighting Quality 1 => 0.25
- Lumen Scene View Distance20000 => 1000
- Max Trace Distance20000 => 1000
### 粒子(严重影响性能!考虑删除或者优化)
- EnvEmitter_System02
- BP_EasyFog_2
### 合并模型
将场景的中的圆环状模型、Box模型合并一下。
## L_JianZhong
### Shadow
- Ultra_Dynamic_Sky中的方向光
- Dynamic Shadow Distance MovableLight20000 => 10000
- Num Dynamic Shadow Cascades5 => 1
- Distance Field ShadowsTrue => False
- 关闭阴影
- SpotLight17
- SpotLight18
- SpotLight
### 模型优化
- 将场景中的石头、后景石头、剑以及剑下面的石头都转成Instance
- 场景中的模型转成Nanite。
- 相机背后看不到的模型都删除了。
- 删除场景中的CrystalFlw模型
- 将场景中的重复模型使用单个模型重新摆放最后设置成Instance。
### Shadow
- 关闭阴影
- PointLight
- PointLight4
- PointLight5
- PointLight6
- SpotLight2
- SkyLight
- VolumetricSpotlightEngine4的SpotLight
- 删除灯光
- PointLight2
- PointLight3
- DirectionalLight
- Dynamic Shadow Distance MovableLight20000 =>4000
- Num Dynamic Shadow Cascades5 => 1
- DistanceField Shadow Distance4000
- DistanceField Trace Distance25000 =>2000~4000
- Shadow Resolution Scale1 => 0.1
### Lumen
PostProcessVolumn => Lumen
- Lumen Scene Lighting Quality 2 => 0.25
- Lumen Scene Detail2 => 1
- Final Gather Quality3 => 1
- Lumen Scene View Distance20000 => 1000
- Max Trace Distance20000 => 1000
ProjectSettings - Lumen 以下设置仅提高1~2帧
- Use Hardware Ray Tracing when available
- High Quality Translucency Reflections
- Software Ray Tracing ModeDetailTracing => GlobalTracing
- r.Lumen.TraceMeshSDFs.Allow = 0
#### 添加DefaultScalability.ini
将Hight级别的Lumen设置覆盖到Epic级别设置。
### Fog
- ExponentialHeightFog1关闭体积雾。
### 粒子 转换成GPU粒子或者尽量减少CPU粒子数量
- NS_TextRain_Copy (字符雨生成器)
- NS_Test
- NS_Test_25
- NS_STM_SkinParticle
- M_StaticMeshSkinParticle_Inst
### 模型
- SkyBox (删除)
- 透明片Plane22~Plane41使用的材质的透明度是0考虑删除。
- 隐藏电路板Plane~138
- 黑色遮罩Plane4~Plane19
- **Nanite & 转成Instance**
- box1
- monitorG_High_Geo_Grp_2
- **转Nanite & 合并 || 删除看不到**
- monitorG_High_Geo_Grp_2
- SM_DIANSHIJI_HeCheng100
### Sequence中控制隐藏粒子与看不到的模型电视机
- monitorF_High_Geo_Grp12~1516
### 材质Translucent=>Additive
- M_MovingLineTest_Inst1_TRUE
- M_MovingLineTest_Inst1_TRUE1
- M_MovingLineTest_Copy
- BengHuai_True/Material
- M_BeiJing
- M_BeiJing_Inst
- M_OP~M_OP3
### 2023.6.13
1. 电视机模型转Instance。
2. 减少字符雨数量
3. 关闭光线追踪
4. ExponentialHeightFog1关闭体积雾。
#### ~~电视机贴图有拖影问题~~
## DLSS & TSR & FSR 测试
测试场景L_True分辨率4K 100%笔记本3070镜头sequence 604 的1840帧
- TSR ScreenPercentage66 GPU帧数27~29
- TAA ScreenPercentage100 GPU帧数36~37
- FSR+TAA ScreenPercentage66 GPU帧数26~28
- DLSS+TAA ScreenPercentage66 GPU帧数26~28
可以在DefaultEngine.ini里面添加渲染分辨率
[/Script/Engine.RendererSettings]
r.screenpercentage=66
r.screenpercentage=50
## L_BengHuai_Oaths_01
### 灯光
## L_BengHuai_Oaths_Close
### 灯光
# Lumen
r.Lumen.ScreenProbeGather.AdaptiveProbeAllocationFraction =0.5 =>0.1