Init
This commit is contained in:
638
02-Note/DAWA/BH3音乐会场景优化.md
Normal file
638
02-Note/DAWA/BH3音乐会场景优化.md
Normal file
@@ -0,0 +1,638 @@
|
||||
## DMX
|
||||
渲染模型&材质:
|
||||
- SM_Strobe_Lens M_MI_Lens_Strobe:不透明材质,指令数254
|
||||
- SM_Beam_RM M_Beam_Master:
|
||||
- BP_StaticMatrix M_MatrixBeam_Master
|
||||
|
||||
### Beam材质
|
||||
变量:
|
||||
- NSlice:NearPlane 交点世界坐标
|
||||
- NDepth:
|
||||
- FSlice:FarPlane 交点世界坐标
|
||||
- FDepth:
|
||||
|
||||
MF_WSIntersection:如果没有相交,RelIntersectPos为,IntersectDistance为。
|
||||
|
||||
|
||||
### 优化方案
|
||||
1. DMX模型改成StaticMeshInstance,Gun的模型是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 Detail:4=>1
|
||||
- Lumen Scene View Distance:20000=>1000~3000
|
||||
- Max Trace Distance:20000=>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。
|
||||
MininumResidency:2MB
|
||||
Fallback Relative Error:1.0=> 0.1~0.0
|
||||
|
||||
#### 关闭FeiChuang蓝图中StaticMesh的Shadow
|
||||
|
||||
### Light&Shadow
|
||||
- [ ] 远处的几个小飞船 去掉CastShadow选项。
|
||||
|
||||
- DirectionalLight
|
||||
- Num Dynamic Shadow Cascades:5=>3
|
||||
- Dynamic Shadow Distance MovableLight:20000=>5000
|
||||
- DistanceField Shadow Distance:51200=>5000
|
||||
- Shadow Resolution Scale:1=>0.1~0.5
|
||||
- SpotLight3
|
||||
- 关闭CastShadow(3与4至少关一个)
|
||||
- Attenuation Radius:11052.831055=> 2040
|
||||
- Shadow Resolution Scale:1=>0.5
|
||||
- 第二次修改
|
||||
- Outer Cone Angle 44=>40
|
||||
- Shadow Resolution Scale:0.5=>0.3
|
||||
- SpotLight4
|
||||
- 关闭CastShadow(3与4至少关一个)
|
||||
- Attenuation Radius:12052.831055=>4000.0
|
||||
- 点光源
|
||||
- 关闭阴影
|
||||
- 降低Attenuation Radius到合适范围。
|
||||
- 删除机翼处重新的点光源,pointLight81
|
||||
|
||||
### Lumen
|
||||
调整Lumen渲染参数或者后处理盒子参数:
|
||||
Lumen Scene Lighting Quality: 2 =>1
|
||||
Lumen Scene Detail:4=>1
|
||||
Lumen Scene View Distance:20000=>5000
|
||||
Max Trace Distance:20000=>5000
|
||||
|
||||
### Translucent
|
||||
#### Nebula
|
||||
以下几个建议删除:
|
||||
BP_NebulaProceduralGenerator
|
||||
BP_NebulaProceduralGenerator2
|
||||
BP_NebulaProceduralGenerator3N
|
||||
BP_NebulaProceduralGeneratorMove
|
||||
BP_NebulaProceduralGeneratorMove2
|
||||
|
||||
- BP_NebulaProceduralGenerator5
|
||||
- Volumetric Sphere Amount:10=>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 Amount:10=>1~3(推荐1)
|
||||
- Quality:Hight => 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
|
||||
Sequence:Seq_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 Distance:20000=>1000
|
||||
- Max Trace Distance:20000=>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 Detail:2 => 1
|
||||
- Final Gather Quality:3 => 1
|
||||
- Lumen Scene View Distance:20000 => 5000
|
||||
- Max Trace Distance:20000 => 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 Distance:20000 => 1000
|
||||
- Max Trace Distance:20000 => 1000
|
||||
|
||||
### 粒子(严重影响性能!考虑删除或者优化)
|
||||
- EnvEmitter_System02
|
||||
- BP_EasyFog_2
|
||||
|
||||
### 合并模型
|
||||
将场景的中的圆环状模型、Box模型合并一下。
|
||||
|
||||
## L_JianZhong
|
||||
### Shadow
|
||||
- Ultra_Dynamic_Sky中的方向光
|
||||
- Dynamic Shadow Distance MovableLight:20000 => 10000
|
||||
- Num Dynamic Shadow Cascades:5 => 1
|
||||
- Distance Field Shadows:True => False
|
||||
- 关闭阴影
|
||||
- SpotLight17
|
||||
- SpotLight18
|
||||
- SpotLight
|
||||
|
||||
### 模型优化
|
||||
- 将场景中的石头、后景石头、剑以及剑下面的石头都转成Instance
|
||||
- 场景中的模型转成Nanite。
|
||||
- 相机背后看不到的模型都删除了。
|
||||
- 删除场景中的CrystalFlw模型
|
||||
- 将场景中的重复模型使用单个模型重新摆放,最后设置成Instance。
|
||||
|
||||
### Shadow
|
||||
- 关闭阴影
|
||||
- PointLight
|
||||
- PointLight4
|
||||
- PointLight5
|
||||
- PointLight6
|
||||
- SpotLight2
|
||||
- SkyLight
|
||||
- VolumetricSpotlightEngine4的SpotLight
|
||||
- 删除灯光
|
||||
- PointLight2
|
||||
- PointLight3
|
||||
- DirectionalLight
|
||||
- Dynamic Shadow Distance MovableLight:20000 =>4000
|
||||
- Num Dynamic Shadow Cascades:5 => 1
|
||||
- DistanceField Shadow Distance:4000
|
||||
- DistanceField Trace Distance:25000 =>2000~4000
|
||||
- Shadow Resolution Scale:1 => 0.1
|
||||
### Lumen
|
||||
PostProcessVolumn => Lumen
|
||||
- Lumen Scene Lighting Quality: 2 => 0.25
|
||||
- Lumen Scene Detail:2 => 1
|
||||
- Final Gather Quality:3 => 1
|
||||
- Lumen Scene View Distance:20000 => 1000
|
||||
- Max Trace Distance:20000 => 1000
|
||||
|
||||
ProjectSettings - Lumen (以下设置仅提高1~2帧)
|
||||
- Use Hardware Ray Tracing when available:
|
||||
- High Quality Translucency Reflections:
|
||||
- Software Ray Tracing Mode:DetailTracing => 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 ScreenPercentage:66 GPU帧数:27~29
|
||||
- TAA ScreenPercentage:100 GPU帧数:36~37
|
||||
- FSR+TAA ScreenPercentage:66 GPU帧数:26~28
|
||||
- DLSS+TAA ScreenPercentage:66 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
|
18
02-Note/DAWA/DAWA.md
Normal file
18
02-Note/DAWA/DAWA.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# DAWA Overview
|
||||
```ccard
|
||||
type: folder_brief_live
|
||||
imagePrefix: '08-Assets/Images/BingWallpaper'
|
||||
noteOnly: false
|
||||
style: card
|
||||
```
|
||||
[[柔体模拟开发计划]]
|
||||
[[UE卡通渲染改进]]
|
||||
|
||||
# 流程架设计划
|
||||
1. 共享DDC
|
||||
2. 推广Lyra的UEditorValidator Asset有效性检测插件。
|
||||
3. 联机编译Shader
|
||||
4. DDNS 与 远程
|
||||
5. NAS 网盘
|
||||
6. 版本管理系统 PlasticSCM 与 Perforce
|
||||
7. UnrealGameSync 以及 CI/CL系统
|
135
02-Note/DAWA/DAWA杭州服务器服务部署.md
Normal file
135
02-Note/DAWA/DAWA杭州服务器服务部署.md
Normal file
@@ -0,0 +1,135 @@
|
||||
## 光猫
|
||||
057152243127
|
||||
550743
|
||||
|
||||
telecomadmin
|
||||
15675507
|
||||
|
||||
## 路由器
|
||||
|
||||
## Netgear
|
||||
- admin
|
||||
- dawa
|
||||
- 上网dawa2022
|
||||
|
||||
## FreeNAS账号密码
|
||||
- root
|
||||
- dawa
|
||||
|
||||
## 服务
|
||||
- SVN
|
||||
- http://192.168.0.236:7777/svnadmin
|
||||
- http://192.168.0.236:7777/svn/DAWA_SVN
|
||||
- portainer:http://192.168.0.236:9000
|
||||
|
||||
## FreeNAS搭建服务流程
|
||||
玩转Freenas系统06——freenas下使用docker(配置RancherOS/Portainer) :https://www.bilibili.com/video/av77422499/?vd_source=d47c0bb42f9c72fd7d74562185cee290
|
||||
|
||||
Docker虚拟机账号:Rancher
|
||||
密码:Docker
|
||||
Root模式:`sudo -i`
|
||||
|
||||
### 固定IP命令
|
||||
bxe1为网卡口。所以创建虚拟机的时候需要设置成bxe1。之后在虚拟机里固定IP还是看虚拟机的局域网IP接口是啥:
|
||||
```c++
|
||||
sudo ros config set rancher.network.interfaces.eth0.address 192.168.0.236/24
|
||||
sudo ros config set rancher.network.interfaces.eth0.gateway 192.168.0.252
|
||||
sudo ros config set rancher.network.interfaces.eth0.mtu 1500
|
||||
sudo ros config set rancher.network.interfaces.eth0.dhcp false
|
||||
sudo ros config set rancher.network.interfaces.dns.nameservers "['192.168.0.252']"
|
||||
```
|
||||
|
||||
### 挂载宿主NFS共享文件夹
|
||||
在FreeNAS里开启服务`NFS`。进入目录
|
||||
```bash
|
||||
cd /var/lib/rancher/conf/cloud-config.d
|
||||
```
|
||||
下载脚本
|
||||
```bash
|
||||
wget https://gist.githubusercontent.com/superseb/15aada95f6f2fbacc1af7a442c767cce/raw/158c8d0161ec6416aa558d3dad4d1e2afb026d89/cloud-config.yml
|
||||
```
|
||||
脚本如下:
|
||||
```yml
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: /etc/rc.local
|
||||
permissions: "0755"
|
||||
owner: root
|
||||
content: |
|
||||
#!/bin/bash
|
||||
mkdir -p /mnt/nfs-1
|
||||
mkdir -p /mnt/nfs-2
|
||||
cloud-init-execute
|
||||
rancher:
|
||||
services:
|
||||
nfs:
|
||||
image: d3fk/nfs-client
|
||||
labels:
|
||||
io.rancher.os.after: console, preload-user-images
|
||||
io.rancher.os.scope: system
|
||||
net: host
|
||||
privileged: true
|
||||
tty: true
|
||||
restart: always
|
||||
volumes:
|
||||
- /usr/bin/iptables:/sbin/iptables:ro
|
||||
mounts:
|
||||
- ["nfs_server_ip:/", "/mnt/nfs-1", "nfs4", ""]
|
||||
- ["nfs_server_ip:/", "/mnt/nfs-2", "nfs4", ""]
|
||||
```
|
||||
|
||||
将`- ["nfs_server_ip:/", "/mnt/nfs-1", "nfs4", ""] `修改成NAS服务器ip,后面加上NFS共享目录路径:
|
||||
```yml
|
||||
- ["192.168.0.235:/mnt/zpool_main/DockerHost", "/mnt/nfs-1", "nfs4", ""]
|
||||
```
|
||||
|
||||
## 服务部署
|
||||
### portainer
|
||||
```bash
|
||||
cd /mnt/nfs-1
|
||||
mkdir -vp portainer
|
||||
```
|
||||
```bash
|
||||
docker run -d -p 9000:9000 \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v /mnt/nfs-1/portainer:/data \
|
||||
--restart always --name portainer portainer/portainer
|
||||
```
|
||||
### SVN
|
||||
```c++
|
||||
cd /mnt/nfs-1
|
||||
mkdir -vp svn
|
||||
chmod -R 777 /mnt/nfs-1/svn
|
||||
```
|
||||
```bash
|
||||
docker run -d --name svn-server --restart=always \
|
||||
-v /mnt/nfs-1/svn:/home/svn \
|
||||
-p 7777:80 \
|
||||
-p 3690:3690 \
|
||||
elleflorio/svn-server
|
||||
```
|
||||
|
||||
![[NAS与服务部署#SVN]]
|
||||
|
||||
## cloudreve
|
||||
```c++
|
||||
cd /mnt/zpool_main/DockerHost/cloudreve/
|
||||
mkdir -vp {uploads,avatar} \
|
||||
&& touch conf.ini \
|
||||
&& touch cloudreve.db
|
||||
```
|
||||
|
||||
```c++
|
||||
docker run -d --restart=always \
|
||||
-p 5212:5212 \
|
||||
--mount type=bind,source=/mnt/nfs-1/cloudreve/conf.ini,target=/cloudreve/conf.ini \
|
||||
--mount type=bind,source=/mnt/nfs-1/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db \
|
||||
-v /mnt/nfs-1/cloudreve/uploads:/cloudreve/uploads \
|
||||
-v /mnt/nfs-1/cloudreve/avatar:/cloudreve/avatar \
|
||||
cloudreve/cloudreve:latest
|
||||
```
|
||||
|
||||
|
||||
## 北京p4v密码
|
||||
- bluerose
|
||||
- 123456
|
8
02-Note/DAWA/InHouse插件/场景检查与设置预设插件.md
Normal file
8
02-Note/DAWA/InHouse插件/场景检查与设置预设插件.md
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
## 参数检查
|
||||
### 灯光
|
||||
- [ ] 开启RayTracing之后检查所有Map的SpotLight、RectLight、SkyLight、DirectionalLight(Angle较大时)的采样值。
|
||||
|
||||
## 参数预设与参数文档
|
||||
- [ ] MovieRenderQueue的预设以及相关参数文档
|
||||
- [ ] TAA相关的参数文档
|
92
02-Note/DAWA/MUTools/MUTools笔记.md
Normal file
92
02-Note/DAWA/MUTools/MUTools笔记.md
Normal file
@@ -0,0 +1,92 @@
|
||||
## MUTools Maya部分笔记
|
||||
1. AddMesh()
|
||||
2. SendCommand()
|
||||
|
||||
### 导入Maya文件命令Mel
|
||||
>file -f -o "C:/Users/admin/Desktop/test.mb";
|
||||
|
||||
### Maya插件获取场景数据
|
||||
DBU_ScenePrimitiveCollector::AssembleData,具有2个分支UpdateOutline与CollectFeedback同时负责序列化:
|
||||
|
||||
1. AdditionalMessage
|
||||
2. 写入文件头(虽然这个写入步骤在UpdateOutline之后,但在写Outline数据时偏移了sizeof(UPDATEMSG))
|
||||
3. UpdateOutline
|
||||
1. OutlineEntityList
|
||||
1. NameStream中每个节点名称字符串的偏移
|
||||
2. ChildNode数目
|
||||
2. UPDATEMSG MSGHEAD 文件头信息。
|
||||
3. NameStream 存储每个节点名称的流
|
||||
4. CollectFeedback
|
||||
1. UpdateEntityList
|
||||
2. MeshStream->AddrList
|
||||
3. MeshStream->ByteStream
|
||||
|
||||
UE中的反序列化,根据文件头信息的HasOutline与HasFeedbackData,有以下两个分支:
|
||||
|
||||
1. 读取文件头信息
|
||||
2. HasOutline
|
||||
1. OutlineRootData
|
||||
2. OutlineData
|
||||
3. NamesData 节点名称流
|
||||
3. HasFeedbackData
|
||||
1. NamesData
|
||||
2. UpdateEntities
|
||||
3. AddrList
|
||||
|
||||
### 更新大纲Mesh数据
|
||||
UpdateOutline只有Maya大纲的名称与当前节点的子节点数目数据。其他模型信息集中在CollectFeedback阶段。
|
||||
|
||||
DBU_AddMesh来管理列表(监视每个Mesh状态),如果entity的meshDirty=true则将其加入`vector<MeshAndID> MeshList`。最后使用
|
||||
|
||||
```c++
|
||||
MeshStream = new AssembleMeshStream(MeshList);
|
||||
```
|
||||
来生成这个MeshStream。(来进行顶点、UV、法线、顶点处理)
|
||||
|
||||
```c++
|
||||
bool DBU_ScenePrimitiveCollector::AssembleData(MString& Result,vector<char> &ByteStream, bool CollectFeedback,bool UpdateOutline, MString AdditionalMessage)
|
||||
{
|
||||
MStatus status;
|
||||
//if (DBU_AddMesh::First == nullptr)
|
||||
// CollectFeedback = false;
|
||||
if (CollectFeedback)
|
||||
{
|
||||
std::chrono::steady_clock::time_point _start_time = std::chrono::steady_clock::now();
|
||||
DBU_AddMesh::LastSentUpdateList.clear();
|
||||
DBU_AddMesh* curr = DBU_AddMesh::First;
|
||||
while (curr)
|
||||
{
|
||||
curr->CollectEntity();
|
||||
auto Next = curr->Next;
|
||||
curr = Next;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
DBU_AddMesh::CollectEntity()
|
||||
|
||||
|
||||
DBU_AddMesh节点在连接时候,将srcPlug的DAG路径加入NodeRegisteredDAGPaths。
|
||||
|
||||
MPlug & srcPlug->MObject FromWhat->MFnDagNode FromNode->MDagPath dagPath
|
||||
|
||||
|
||||
### MUTools UE
|
||||
通过MeshList的Index进行同步。
|
||||
|
||||
|
||||
点击Outline Import后的逻辑 为发送遍历Entiry ,并且发送Mel:
|
||||
|
||||
$indices = { XXXX };
|
||||
|
||||
{
|
||||
int $i;
|
||||
for($i=0;$i<size($indices);$i++)
|
||||
{
|
||||
DBU_AddSynchronize(DBU_GetSentOutlinerEntityPath $indices[$i]);
|
||||
}
|
||||
}
|
||||
print `lsType "DBU_AddMesh"`;
|
||||
|
||||
|
||||
调用DBU_AddSynchronize(DBU_GetSentOutlinerEntityPath)节点
|
200
02-Note/DAWA/UE5制片流程相关想法.md
Normal file
200
02-Note/DAWA/UE5制片流程相关想法.md
Normal file
@@ -0,0 +1,200 @@
|
||||
---
|
||||
title: UE5制片流程相关想法
|
||||
date: 2022-08-25 13:55:15
|
||||
tags: Film
|
||||
rating: ⭐️
|
||||
---
|
||||
|
||||
## 渲染相关
|
||||
1. 场景检查工具
|
||||
1. 灯光
|
||||
2. 贴图
|
||||
2. 预渲染相关
|
||||
1. GPULightMass。
|
||||
2. 模型/场景距离场生成问题与查看。
|
||||
3. Lumen
|
||||
1. 相关参数以及命令行参数。
|
||||
2. 物理灯光流程。
|
||||
4. 虚拟阴影贴图
|
||||
5. 性能优化建议
|
||||
1. 尽可能的使用MaterialInstance而非直接复制Material。
|
||||
2. 尽可能使用面光源而非灯阵。
|
||||
6. 修改引擎
|
||||
1. 让指定角色不接受VLM的影响
|
||||
2. 定制一种灯光,只对某个指定的SkeletalMesh起作用(不对环境模型起作用,同时不产生球谐效果)。
|
||||
7. MassAI群集系统
|
||||
8. 机器学习变形器(UE5.1出)
|
||||
9. 其他想法
|
||||
|
||||
## 地编相关
|
||||
1. 虚拟贴图
|
||||
2. Nanite
|
||||
3. USD工作流
|
||||
4. 摆放工具与其他工具链
|
||||
|
||||
## 其他建议
|
||||
1. 中午休息时将电脑改成睡眠模式:对自己的身体、电费、空调费、硬件寿命都好。
|
||||
|
||||
## 具体
|
||||
### 动画组
|
||||
1. 学习相关基础编辑器使用。
|
||||
2. **如何导入与重定向商城与动作库资源**。
|
||||
1. 导入与重定向HumanIK骨骼、Biped、其他动作库资产。
|
||||
3. **重点学习ControlRig与Sequence**。
|
||||
1. 对角色、生物进行绑定。
|
||||
2. 使用ControlRig与Sequence制作动画。
|
||||
3. 使用Sequence的Animation轨道,以类似动画层的方式来融合动画效果来制作动画。
|
||||
4. 使用Sequence以录制动画的方式来制作动画资产。
|
||||
4. 测试Unreal Live Link for Autodesk Maya以其他LiveLink流程
|
||||
1. 测试编写文档以方便一起讨论实现新的工作流。
|
||||
|
||||
#### 快捷键
|
||||
快捷键是可以导出与导入预设的。
|
||||
- F:聚焦
|
||||
- Shift+F:所有View聚焦
|
||||
- Alt+鼠标左右键效果与Maya一样。
|
||||
- Alt+鼠标中键效果与Maya相反。但可以在EditorPreferences-LevelEditor-Viewports-Control中勾选`Invert Middle Mouse Pan`
|
||||
|
||||
#### 基础
|
||||
1. Skeletal、曲线、AnimationSequence资产编辑器。
|
||||
2. Sequencd
|
||||
3. 动作库使用
|
||||
#### ControlRig
|
||||
- ControlRig https://docs.unrealengine.com/5.0/en-US/control-rig-in-unreal-engine/
|
||||
- 入门教程合集:https://www.youtube.com/watch?v=RDYWbA01k60&list=PLSbIBa4Ejxt_A55gIHQs3wmj5G7VeYESv
|
||||
- 案例教程:https://www.youtube.com/watch?v=r1fHOS4XaeE
|
||||
- IK Rig(类似Maya的HumanIK的重定向系统):https://docs.unrealengine.com/5.0/en-US/unreal-engine-ik-rig/
|
||||
可以在ContentExample中找到相关的教学用的资产。
|
||||
|
||||
##### 类似动画层的功能
|
||||
https://www.youtube.com/watch?v=4ULgKXTf1jE
|
||||
|
||||
#### 动画蓝图
|
||||
动画蓝图学习:https://docs.unrealengine.com/5.0/zh-CN/animation-blueprints-in-unreal-engine/
|
||||
|
||||
#### LiveLink
|
||||
主要是看Unreal Live Link for Autodesk Maya插件,可能地编也能用。
|
||||
- EPIC Maya LiveLink https://www.unrealengine.com/marketplace/zh-CN/product/maya-livelink
|
||||
- Unreal Live Link for Autodesk Maya https://www.unrealengine.com/marketplace/zh-CN/product/f2e37c4b943f4337b352e1639fa4ebe3
|
||||
|
||||
#### ~~MassAI~~(次要 需要编程)
|
||||
https://www.youtube.com/watch?v=f9q8A-9DvPo
|
||||
|
||||
#### ML变形器 - Maya数据生成插件
|
||||
https://docs.unrealengine.com/5.0/en-US/using-the-machine-learning-deformer-in-unreal-engine/
|
||||
https://www.unrealengine.com/marketplace/zh-CN/product/ml-deformer
|
||||
|
||||
### 特效
|
||||
1. 学习Niagara功能。可以大致看懂ContentExample等其他项目中的特效,并能移植到番剧中使用。
|
||||
2. 学习fluid-flux、riverology插件使用。
|
||||
3. 学习Niagara的流体功能。
|
||||
|
||||
#### Niagara效果
|
||||
学习官方案例关卡中Niagara的所有效果。并且将可复用效果分离出来,并且进行资产标签分类。
|
||||
https://www.bilibili.com/video/BV1Xy4y1m7QS?spm_id_from=333.337.search-card.all.click
|
||||
|
||||
#### FluidNinja插件
|
||||
https://www.youtube.com/c/AndrasKetzer/videos
|
||||
|
||||
#### 其他插件(白嫖或者看一下朱总账户有没有)
|
||||
https://www.unrealengine.com/marketplace/zh-CN/product/uiws-unified-interactive-water-system
|
||||
https://www.unrealengine.com/marketplace/zh-CN/product/fluid-flux
|
||||
https://www.unrealengine.com/marketplace/zh-CN/product/riverology
|
||||
|
||||
#### 流体
|
||||
https://www.youtube.com/watch?v=k7WLE2kM4po&t
|
||||
|
||||
#### 程序化生成城市
|
||||
https://www.youtube.com/watch?v=usJrcwN6T4I
|
||||
|
||||
### 角色
|
||||
1. 解析UE5 黑客帝国Demo中角色所用用到的技术与流程。并且寻找番剧中可以使用的技术。
|
||||
|
||||
- 黑客帝国Demo Character制作流程:https://www.youtube.com/watch?v=h_dJtk3BCyg
|
||||
|
||||
### 资产
|
||||
1. UE5 的一些技巧(比较杂什么方面的都有)https://www.youtube.com/watch?v=QXuHzH0IyRE
|
||||
2. 学习USD工作流,如果评估为有价值,则最后组织同事进行测试。
|
||||
3. 学习Multi-User Editing的使用,如果评估为有价值,则最后组织同事进行测试。
|
||||
4. 测试Unreal Live Link for Autodesk Maya插件。
|
||||
|
||||
- USD 工作流:https://www.youtube.com/watch?v=Ddu7TAICAXw&t
|
||||
- Unreal Live Link for Autodesk Maya https://www.unrealengine.com/marketplace/zh-CN/product/f2e37c4b943f4337b352e1639fa4ebe3 https://www.youtube.com/watch?v=5iTbnk5Zmak
|
||||
|
||||
### 地编
|
||||
1. 熟悉常用快捷键以提高效率:https://www.unrealengine.com/zh-CN/tech-blog/designer-s-guide-to-unreal-engine-keyboard-shortcuts
|
||||
2. 熟悉UE的相关系统:体积雾、昼夜系统、Cloud System 、Water System。
|
||||
3. 测试虚拟贴图在地形系统中的应用。(搞明白相关参数对性能的影响)
|
||||
4. **测试Nanite**。(搞明白相关参数对性能、Lumen与其他显示效果的影响)
|
||||
5. 使用UE的建模功能与雕刻工具。
|
||||
6. 寻找商城里相关的快速摆放物品插件。
|
||||
|
||||
#### 商城插件寻找
|
||||
寻找一下商城相关的快速摆放物品插件(朱总账号可以白嫖插件)
|
||||
|
||||
#### 虚拟贴图(需要固态硬盘支持)
|
||||
https://docs.unrealengine.com/5.0/zh-CN/virtual-texturing-in-unreal-engine/
|
||||
|
||||
#### Nanite(需要固态硬盘支持)
|
||||
https://www.youtube.com/watch?v=xUUSsXswyZM
|
||||
https://docs.unrealengine.com/5.0/zh-CN/nanite-virtualized-geometry-in-unreal-engine/
|
||||
|
||||
### 渲染
|
||||
1. UE5.0 几种渲染方案测试(实时以及MoveRenderQueue)。包括Lumen、RayTracing、PathTracing。已知的存在问题:
|
||||
1. Lumen的综合测试。
|
||||
1. 使用自带的比色卡模型+室内与室外场景进行测试。
|
||||
2. 了解材质参数、Lumen参数、后期盒子参数对反射、GI的影响。
|
||||
3. 测试相关性能,以得出相关
|
||||
2. 已知的Lumen的问题:
|
||||
- Lumen不支持双面与半透明物体(5.1会支持半透明)
|
||||
- 目前Lumen的反射还有一些问题(反射精度)
|
||||
- Raytracing反射目前无法反射GI效果(反射结果没有GI)
|
||||
- PathTracing不支持某些效果
|
||||
1. 虚拟阴影贴图测试
|
||||
2. 物理灯光流程测试。即使用真实环境的曝光度进行打光。选择清晨、正午、下午、黄昏、夜晚。晴天、阴天
|
||||
3. 室内家装效果图流程测试。
|
||||
1. GPULightMass
|
||||
2. 虚拟光照贴图(需要固态硬盘)
|
||||
|
||||
#### Lumen(GI与反射)
|
||||
- Lumen功能与作用介绍:https://www.youtube.com/watch?v=Dc1PPYl2uxA
|
||||
- Lumen基础教学:https://dev.epicgames.com/community/learning/courses/6Oz/unreal-engine-lumen/vyV2/lumen
|
||||
- Lumen Explained - IMPORTANT Tips for UE5(非官方):https://www.youtube.com/watch?v=1e6oOiKh91U
|
||||
- Lumen Tip:https://www.youtube.com/watch?time_continue=267&v=wTYM9TfckOQ&feature=emb_logo
|
||||
- 参考视频中调节的参数:https://www.bilibili.com/video/BV1YV4y1J7Zv?spm_id_from=333.999.0.0&vd_source=d47c0bb42f9c72fd7d74562185cee290
|
||||
|
||||
##### 使用软件支持跑Lumen
|
||||
Lumen分硬件支持与软件支持,软件支持需要用到距离场,所以如果出现一些渲染错误需要检查一下距离场。大概率还会用到体积光照贴图,这个可以使用GPULightMass生成。
|
||||
1. 体积光照贴图。尝试使用GPULightMass生成。
|
||||
2. 模型/场景距离场。生成问题与查看。
|
||||
|
||||
#### 局部曝光
|
||||
|
||||
#### MRQ的路径追踪
|
||||
|
||||
#### 性能优化建议
|
||||
1. 尽可能的使用MaterialInstance而非直接复制Material。
|
||||
2. 尽可能使用面光源而非灯阵。
|
||||
|
||||
#### 番剧中灯光效果在UE5中的实践与应用(室内)吴陆佳
|
||||
尽量使用面光源、
|
||||
一组UE5场景
|
||||
|
||||
#### 番剧中灯光效果在UE5中的实践与应用(室外)陈飞宇、唐登强
|
||||
|
||||
|
||||
## 本人工作
|
||||
一些自动化任务在[[远程办公与自动化逻辑]]
|
||||
|
||||
1. 制作In-House插件。
|
||||
1. 项目缓存、引擎缓存位置检测与设定。
|
||||
2. 渲染模板与参数调节面板
|
||||
2. 移植Lyra的AssetValid检测插件。
|
||||
3. NAS搭建。
|
||||
4. DDC共享缓存与联机构建Shader。
|
||||
5. 版本管理。
|
||||
6. 将可复用资产归类之后封装成插件。放在服务器上。UE目前有一个功能可以远程自动下载插件。
|
||||
7. 修改引擎
|
||||
1. 让指定角色不接受VLM的影响
|
||||
2. 定制一种灯光,只对某个指定的SkeletalMesh起作用(不对环境模型起作用,同时不产生球谐效果)。
|
||||
8. MRQ(使用MRQ的切片渲染功能、或者联机部署)。
|
180
02-Note/DAWA/UE_Cmd_AnimationRetargetingTool.md
Normal file
180
02-Note/DAWA/UE_Cmd_AnimationRetargetingTool.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# 大致步骤
|
||||
使用UnrealEditor-Cmd执行资源导入、处理、输出功能。
|
||||
|
||||
1. 导入资产 (这段可以参考FBX)
|
||||
1. 角色
|
||||
2. 动画 FBX
|
||||
2. 处理资产
|
||||
1. IKRig
|
||||
2. RetargetRig
|
||||
3. ControlRig?
|
||||
3. 输出资产
|
||||
1. FBX?
|
||||
2. 使用MovieRenderQueue 渲染 MP4?
|
||||
|
||||
## 短期需求
|
||||
1. AI 动捕、或者GPT生成 BVH、FBX。
|
||||
2. 特定骨骼结构。
|
||||
3. UE骨骼确定。
|
||||
4. 可能需要高并发(后面再考虑)
|
||||
5. 输出视频。
|
||||
6. 工期1~2周。
|
||||
|
||||
## 需要解决的问题是
|
||||
- [ ] 支持多种格式的文件
|
||||
- [ ] `CustomCommandFunction`编写以及生成**IKRig**、**IKRetarget**资产
|
||||
- [ ] 输出FBX或者MP4
|
||||
|
||||
## 输出文件
|
||||
- *.BVH
|
||||
-
|
||||
|
||||
## 生产环境
|
||||
使用Docker或者其他容器工具制作处理用的镜像,之后使用群集系统控制运行?
|
||||
|
||||
## CustomCommandFunction
|
||||
关检测 UCommandlet
|
||||
|
||||
# 测试方法
|
||||
```bash
|
||||
D:\UnrealEngine\UE_5.1\Engine\Binaries\Win64\UnrealEditor-Cmd.exe D:\UnrealEngine\Project\AIAutomationTools\AIAutomationTools.uproject -run=AIAnimationAutomationCommandlet
|
||||
```
|
||||
|
||||
如果带有配置文件
|
||||
```bash
|
||||
D:\UnrealEngine\UE_5.1\Engine\Binaries\Win64\UnrealEditor-Cmd.exe D:\UnrealEngine\Project\AIAutomationTools\AIAutomationTools.uproject -run=AIAnimationAutomationCommandlet -importsettings=C:\\Users\\BlueRose\\Desktop\\ImportJson.json
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"ImportGroups": [
|
||||
{
|
||||
"GroupName": "Group11",
|
||||
//导入文件名
|
||||
"Filenames": [
|
||||
"C:\\Users\\BlueRose\\Desktop\\untitled2_Anim.FBX"
|
||||
],
|
||||
//生成资产的文件夹
|
||||
"DestinationPath": "Animation",
|
||||
//使用的Factory类名
|
||||
"FactoryName": "FbxFactory",
|
||||
"bReplaceExisting": 1,
|
||||
"bSkipReadOnly": 0,
|
||||
//导入动画资产的设置
|
||||
"ImportSettings": {
|
||||
"OriginalImportType": 2,
|
||||
"MeshTypeToImport": 2,
|
||||
"Skeleton": "/Game/1/untitled2_Skeleton.untitled2_Skeleton"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
# 其他资料
|
||||
## IKRig & IKRetarget=
|
||||
`Engine\Plugins\Animation\IKRig`
|
||||
- FAssetTypeActions_AnimationAssetRetarget
|
||||
- FAssetTypeActions_IKRigDefinition:UIKRigDefinition
|
||||
- FAssetTypeActions_IKRetargeter:UIKRetargeter
|
||||
|
||||
## Retarger
|
||||
```c++
|
||||
/** The runtime processor that converts an input pose from a source skeleton into an output pose on a target skeleton.
|
||||
* To use:
|
||||
* 1. Initialize a processor with a Source/Target skeletal mesh and a UIKRetargeter asset.
|
||||
* 2. Call RunRetargeter and pass in a source pose as an array of global-space transforms
|
||||
* 3. RunRetargeter returns an array of global space transforms for the target skeleton.
|
||||
/
|
||||
```
|
||||
|
||||
## UEditorUtilityLibrary
|
||||
|
||||
|
||||
##
|
||||
Python参考:
|
||||
`Plugins\MovieScene\MovieRenderPipeline\Content\Python`
|
||||
|
||||
|
||||
## 渲染影片(旧版)
|
||||
MovieRenderPipelineCommandLine
|
||||
```bash
|
||||
"D:\Program Files\UE_4.24\Engine\Binaries\Win64\UE4Editor.exe"
|
||||
D:\Projects\UnrealProjects\renderMovieTest\renderMovieTest.uproject
|
||||
/Game/maps/shot0010
|
||||
-MovieSceneCaptureType="/Script/MovieSceneCapture.AutomatedLevelSequenceCapture"
|
||||
-LevelSequence="/Game/Sequences/Shot0010"
|
||||
-MovieFolder="D:\Projects\UnrealProjects\renderMovieTest\outputs"
|
||||
-NoLoadingScreen -game
|
||||
```
|
||||
|
||||
void FMovieRenderPipelineCoreModule::StartupModule() 处理CommandLine变量
|
||||
```c++
|
||||
// Look to see if they supplied arguments on the command line indicating they wish to render a movie.
|
||||
if (IsTryingToRenderMovieFromCommandLine(SequenceAssetValue, SettingsAssetValue, MoviePipelineLocalExecutorClassType, MoviePipelineClassType))
|
||||
{
|
||||
UE_LOG(LogMovieRenderPipeline, Log, TEXT("Detected that the user intends to render a movie. Waiting until engine loop init is complete to ensure "));
|
||||
// Register a hook to wait until the engine has finished loading to increase the likelihood that the desired classes are loaded.
|
||||
FCoreUObjectDelegates::PostLoadMapWithWorld.AddRaw(this, &FMovieRenderPipelineCoreModule::OnMapLoadFinished);
|
||||
}
|
||||
```
|
||||
通过委托调用渲染,最终到void FMovieRenderPipelineCoreModule::InitializeCommandLineMovieRender()
|
||||
|
||||
```c++
|
||||
void FMovieRenderPipelineCoreModule::InitializeCommandLineMovieRender()
|
||||
{
|
||||
#if WITH_EDITOR
|
||||
//const bool bIsGameMode = !GEditor;
|
||||
//if (!bIsGameMode)
|
||||
//{
|
||||
// UE_LOG(LogMovieRenderPipeline, Fatal, TEXT("Command Line Renders must be performed in -game mode, otherwise use the editor ui/python and PIE. Add -game to your command line arguments."));
|
||||
// FPlatformMisc::RequestExitWithStatus(false, MoviePipelineErrorCodes::Critical);
|
||||
// return;
|
||||
//}
|
||||
#endif
|
||||
|
||||
// Attempt to convert their command line arguments into the required objects.
|
||||
UMoviePipelineExecutorBase* ExecutorBase = nullptr;
|
||||
UMoviePipelineQueue* Queue = nullptr;
|
||||
|
||||
uint8 ReturnCode = ParseMovieRenderData(SequenceAssetValue, SettingsAssetValue, MoviePipelineLocalExecutorClassType, MoviePipelineClassType,
|
||||
/*Out*/ Queue, /*Out*/ ExecutorBase);
|
||||
if (!ensureMsgf(ExecutorBase, TEXT("There was a failure parsing the command line and a movie render cannot be started. Check the log for more details.")))
|
||||
{
|
||||
// Take the failure return code from the detection of our command line arguments.
|
||||
FPlatformMisc::RequestExitWithStatus(/*Force*/ false, /*ReturnCode*/ ReturnCode);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
UE_LOG(LogMovieRenderPipeline, Log, TEXT("Successfully detected and loaded required movie arguments. Rendering will begin once the map is loaded."));
|
||||
if (Queue)
|
||||
{
|
||||
UE_LOG(LogMovieRenderPipeline, Log, TEXT("NumJobs: %d ExecutorClass: %s"), Queue->GetJobs().Num(), *ExecutorBase->GetClass()->GetName());
|
||||
}
|
||||
else
|
||||
{
|
||||
UE_LOG(LogMovieRenderPipeline, Log, TEXT("ExecutorClass: %s"), *ExecutorBase->GetClass()->GetName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// We add the Executor to the root set. It will own all of the configuration data so this keeps it nicely in memory until finished,
|
||||
// and means we only have to add/remove one thing from the root set, everything else uses normal outer ownership.
|
||||
ExecutorBase->AddToRoot();
|
||||
ExecutorBase->OnExecutorFinished().AddRaw(this, &FMovieRenderPipelineCoreModule::OnCommandLineMovieRenderCompleted);
|
||||
ExecutorBase->OnExecutorErrored().AddRaw(this, &FMovieRenderPipelineCoreModule::OnCommandLineMovieRenderErrored);
|
||||
|
||||
ExecutorBase->Execute(Queue);
|
||||
}
|
||||
```
|
||||
|
||||
# 多线程
|
||||
https://blog.csdn.net/j756915370/article/details/122752719
|
||||
|
||||
Runtime\Core\Public\Async\
|
||||
- FFutureState
|
||||
- FTaskGraphImplementation
|
||||
|
||||
### 2.6 TaskGraph 系统中的 Wait
|
||||
在 TaskGraph 中,无论是 Event->Wait() 还是 FTaskGraphInterface::Get().WaitUntilTaskCompletes() ,最终都是调用到 FTaskGraphImplementation::WaitUntilTasksComplete 中的。
|
15
02-Note/DAWA/厚涂卡通渲染效果计划.md
Normal file
15
02-Note/DAWA/厚涂卡通渲染效果计划.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: 厚涂卡通渲染效果计划
|
||||
date: 2022-08-25 13:55:15
|
||||
tags:
|
||||
rating: ⭐️
|
||||
---
|
||||
|
||||
感觉还需要一个厚涂原画师的协助:
|
||||
|
||||
第一阶段:
|
||||
- 开发
|
||||
- 绑定
|
||||
1. 使用UE4/UE5标准绑定
|
||||
- 原画
|
||||
1. 寻找合适的插画
|
23
02-Note/DAWA/学习技术清单.md
Normal file
23
02-Note/DAWA/学习技术清单.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# 学习
|
||||
## Game101系列
|
||||
胡渊明 201
|
||||
|
||||
## UE编辑器扩展
|
||||
FSceneViewExtensionBase
|
||||
|
||||
## Houdini
|
||||
1. Sop(几何体、其他图元)
|
||||
2. Dop
|
||||
3. Cop
|
||||
4. Chop
|
||||
5. VS模块
|
||||
|
||||
## CUDE Optial
|
||||
|
||||
# 工作
|
||||
- [x] 升级MUTool =>UE5
|
||||
2. GPU合成工具 IS 扩展节点。扩展RayTracing Shader节点。 实现GI。(参考结果 Color Grading)
|
||||
3. Houdini的功能植入UE5。面向实时交互的Houdini Engine
|
||||
4. 渲染类型扩充。OpenVDB。
|
||||
|
||||
## 工作内容
|
25
02-Note/DAWA/柔体模拟/柔体模拟开发计划.md
Normal file
25
02-Note/DAWA/柔体模拟/柔体模拟开发计划.md
Normal file
@@ -0,0 +1,25 @@
|
||||
## 使用的模拟算法
|
||||
FEM + 肌肉(变量):
|
||||
PBD:Position Based Dynamics
|
||||
MPM:
|
||||
|
||||
## 技术路线
|
||||
1. NVIDIA flex移植。
|
||||
- 优点:有完备的UE组件实现,提供编辑器等工具
|
||||
- 缺点:没有UE5版本,UE4版本也是民间人士实现的。
|
||||
3. Niagara PBD解算。
|
||||
- 优点:在ContentExample中有实现PBD解算器。
|
||||
- 缺点:没有其他组件的实现。
|
||||
5. UE5 Chaos。
|
||||
- 优点:与其他组件可以数据交互。
|
||||
- 缺点:没有具体的PBD柔体实现。
|
||||
7. ZENO(可以查看节点源码)
|
||||
8. Houdini xPBD Vellum(学习节点的解算器代码,主要是OPENCL)
|
||||
9. ~~AMD FEMFX库。~~
|
||||
10. 保底路线:骨骼模拟。
|
||||
|
||||
## 开发执行计划
|
||||
因为不管上述的哪个方案都无法直接制作出想要的柔体模拟效果,所以:
|
||||
1. 先学习Houdini,搭建可行的离线模拟方案(FEM、PBD),保证技术路线方向的可行性正确性。
|
||||
2. 学习PBD、FEM的算法。
|
||||
3. 在UE中复现出现。
|
135
02-Note/DAWA/武庚纪优化.md
Normal file
135
02-Note/DAWA/武庚纪优化.md
Normal file
@@ -0,0 +1,135 @@
|
||||
## 优化记录
|
||||
1. 灯光优化
|
||||
1. 主场景(城楼、栈桥与城门部分)
|
||||
1. 主光源
|
||||
1. 将DynamicShadowDistanceMoveableLight调整到合适范围(近景细节阴影):40000 => 4000~15000范围
|
||||
2. 调整DistanceFieldShadowDistance(远景的软阴影效果):20000 => 4000~15000,如果远景阴影效果有问题再调整DistanceFieldTraceDistance:100000.0 => 100000.0~40000000.0
|
||||
3. 调整Num Dynamic Shadow Cascades:4=> 1~3(保证阴影效果变化不大的情况下)
|
||||
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 Time,Spawn 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. 设置InstancedStaticMeshComponent,StaticMesh与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
|
||||
- DistanceFieldShadowDistance:40000=》10000
|
||||
- DirectionalLight2
|
||||
- 级联4=》2
|
||||
- DynamicShadowDistanceMoveableLight 40000=》25000
|
||||
- DistanceFieldShadowDistance:10000=》1000000.0
|
||||
- DistanceFieldTraceDistance: =>2500000.0
|
||||
- DirectionalLight4
|
||||
- 级联5=》0
|
||||
- DynamicShadowDistanceMoveableLight 40000000.0=》4000.
|
||||
- DistanceFieldShadowDistance:1000000.0 =》1000000.0
|
||||
- DistanceFieldTraceDistance: 100000.0=》40000000.0
|
||||
|
||||
##### 2022.9.21
|
||||
- [x] DirectionalLight2
|
||||
- 删除
|
||||
- [ ] PointLight3
|
||||
- 亮度150=》50
|
||||
- 关闭CastShadow
|
||||
- [ ] SpotLight11
|
||||
- ShadowResolutionScale:1=》0.1
|
||||
- 或者考虑降低角度,只对着城楼。
|
||||
- [ ] RectLight7
|
||||
- 建议调整范围 =》降低至能刚好包裹城门的区域。
|
||||
- 亮度 500=>100
|
||||
- 关闭阴影
|
||||
- 或者删了
|
||||
- [ ] SpotLight25
|
||||
- 降低半径2000 角度 60
|
||||
- 阴影分辨率1=>0.5
|
||||
- [ ] SpotLight26
|
||||
- 降低半径到2500,角度降低到45,亮度提高=》10000 Shadow分辨率 1=》0.5
|
||||
- [ ] SpotLight27
|
||||
- 降低半径到2300,角度降低到45,亮度提高=》12000,Shadow分辨率 8=》0.5
|
||||
- [ ] PointLight56
|
||||
- 关闭CastShadow
|
||||
- 降低半径到1600
|
||||
- [ ] PointLight57
|
||||
- 关闭CastShadow 或者降低阴影分辨率 0.1=》0.01
|
||||
- 降低半径到700
|
||||
- [ ] PointLight74
|
||||
- 关闭CastShadow
|
||||
- 或者换成SpotLight
|
||||
- [ ] RectLight14
|
||||
- 降低半径到2860
|
||||
- 关闭CastShadow
|
||||
- 或者换成SpotLight
|
||||
|
||||
### 后处理
|
||||
- AmbientCubeMap:Intensity 1=》0
|
||||
- Ambient Occlusion:Intensity 0.7=>0
|
||||
|
||||
### 粒子优化
|
||||
- Niagara Cutout
|
||||
- https://www.youtube.com/watch?v=_T-BTiMF7XA
|
||||
- https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/EmitterReference/RenderModules/
|
||||
- 4层 雾气=> 3层
|
||||
- 粒子系统的 LifeTime 25=>14
|
||||
|
||||
### 场景优化
|
||||
- 删除场景外看不到的模型
|
||||
- 删除多出的Landscape2
|
||||
- 给树木等物体制作Impostors
|
||||
|
||||
## 优先级顺序
|
||||
- [x] Stat数据查看
|
||||
- 查看Stat Unit 数值,确定是GPU还是CPU瓶颈
|
||||
- 查看Stat SceneRendering
|
||||
- ctrl+shift+, r.showmaterialdrawevents -1 r.rhicmdbypass 1 r.rhithread.enable 0
|
||||
- [x] 动态灯光阴影:尝试增加级联数与其他参数。(使用低分辨率贴图来渲染阴影?使用RenderDoc查看分辨率)
|
||||
- [x] 远景模型距离场检查。使用DFAO,关闭SSAO
|
||||
|
||||
- [x] 尝试干掉点光源,制作Fake灯光 贴花来代替各种灯光与阴影效果
|
||||
- [x] 检查材质复杂度
|
||||
- 烘焙材质,将复杂材质烘焙结果到贴图
|
||||
- [x] ~~检查模型面数以及LOD(碰撞盒)~~ 改用Nanite来解决
|
||||
- [x] 草地使用HISM或者UE5出的Light Weight Instances
|
||||
- https://www.youtube.com/watch?v=QGEV8YjBGHQ
|
||||
- [x] 粒子优化工具:剪裁粒子面积。
|
||||
- Unreal4引擎对粒子系统半透明渲染的Overdraw做了优化。在ProjectSetting->Rendering > Optimization中有一个渲染Enable Particle Cutouts by Default选项
|
||||
- [x] MergeActor工具,合并DrawCall
|
||||
- ~~开启DLSS插件~~
|
||||
- ~~设置Dynamic分辨率~~
|
||||
|
||||
## 制作流程改变
|
||||
对于性能要求的项目。
|
||||
|
||||
1. 制作前先让TA知道目标硬件帧数。
|
||||
2. 美术摆放场景后检查**距离场**。
|
||||
3. 美术手动合并材质。
|
||||
4. 吃透Nanite以及LOD属性设置;
|
||||
5. 搭建VPN、版本管理等方便远程协作的服务。
|
||||
|
||||
## 优化笔记
|
||||
![[UE5优化方法与实践笔记]]
|
Reference in New Issue
Block a user