Files
BlueRoseNote/07-Other/AI/AI Agent/NeoX/H78优化记录Raw/GIt&SVN简报.md

61 KiB
Raw Blame History

title, date, excerpt, tags, rating, status, destination, share, obsidianUIMode
title date excerpt tags rating status destination share obsidianUIMode
未命名 1 2026-04-19 17:14:40 inprogress false source

D:\Notes\BlueRoseNote_New\07-Other\AI\AI Agent\NeoX\H78优化记录Raw\GIt&SVN简报.md

指定文件的最开始与最终变化

通过SVN检查以下文件第一个Commit与最后一个Commit之间的变化请详细列出

  1. ./neox.xml
  2. ./res/scene/ 下所有Scn的渲染相关设置变化以及同名PostProcess文件的变化。
  3. ./res/GlobalRenderComponentsConfig.xml

综合趋势

  1. 性能全面降档Bloom/TAA High→Low, 关闭 SSAO 滤波和全分辨率, DOF Bokeh→Gaussian, 关闭 Lensflare — 针对移动端的后处理降级
  2. 阴影系统统一化:全局 CSM 2048→1024 / 4级→1级49 个场景统一新增 CSMSceneSetting (距离40, 指数3)
  3. 室内场景 VVGI 引入9 个室内场景新增体素全局光照 + 实时方向灯 + 面光源,从烘焙光照转向实时 GI
  4. 室内场景重构room/LivestockRoom 等移除室外大气/云雾配置,改为纯室内照明方案
  5. 矿洞场景整改:天空 Legacy→SkyBox紫色调、DOF 降级、Lensflare 关闭
  6. 顶点压缩全局化neox.xml 开启 CompressedVertexDataEnable + EnableVAT
  7. 脚本加载重构:从 npk 打包加载切换为离散文件加载,脚本根目录变更

1. neox.xml 变化r10 → r4001

设置项 旧值 (r10) 新值 (HEAD) 说明
EnableRectLighting (不存在) true 新增:开启矩形光源支持
EnableVAT (不存在) True 新增:开启顶点动画纹理 (VAT)
CompressedVertexDataEnable (不存在) True 新增:开启顶点数据压缩
nxjobsystem WorkerMax (不存在) 1 新增:限制 Job System 工作线程为 1
脚本加载 root %WORK_DIR%\script %WORK_DIR%\farm_script\client 脚本根目录从 script 改为 farm_script/client
脚本 loader name npk discrete 从 npk 打包加载改为离散文件加载
Text/ 兜底 loader 存在opener="os", root=Text/, npk loader 删除 移除了 Text/ 加密脚本的兜底加载器

2. res/scene/ 下 Scn 渲染设置变化

批量变化(多场景统一调整)

BloomComponent

设置路径 旧值 新值 涉及场景数 说明
BloomComponent/Quality High Low 全部 49 场景 泛光品质全面降级
BloomComponent/EnableAntiFlickering 0 1 全部 49 场景 开启抗闪烁

其中 8 个场景Room_01、beach01、farm、lunlunroom、map_01、resident01、town02、room原先 ViewRenderComponentConfig0 为空节点HEAD 新增了完整的 BloomComponent + SSAOComponent + TAAComponent 配置。

SSAOComponent

设置路径 旧值 新值 涉及场景数
SSAOComponent/UseFilter 1 0 全部 49 场景
SSAOComponent/UseFullResolution 1 0 15 场景(矿洞系列 + mine_treasure_floor5

TAAComponent

设置路径 旧值 新值 涉及场景数
TAAComponent/TaaQuality High Low 全部 49 场景
TAAComponent/EnableBicubic 1 0 全部 49 场景
TAAComponent/EnableYCoCg 1 (删除) 部分场景NongChang_003、kuangdong_B01-B04/B06、room

CSMSceneSetting新增

设置路径 新值 涉及场景数
CSMSceneSetting (整个节点) CSMDebugMode=0, CustomShadowMode=0, ShadowDistance=40, DistributionExponent=3 全部 49 场景

所有场景统一新增级联阴影贴图配置,参数完全一致。

LensflareComponent

设置路径 旧值 新值 涉及场景数
LensflareComponent/Enable 1 0 约 22 场景

涉及KuangDong_002/003, L_SmallTown, XLG006, kuangdong_A01-A06, A04_dark, A05_dark, kuangdong_B01-B06, NongChang_003, mine_treasure_floor5。

Cloud/Lighting/LuminanceScale

设置路径 旧值 新值 涉及场景数
Cloud/Lighting/LuminanceScale 1.0,1.0,1.0,1.0 (删除) 30+ 场景

矿洞系列 DOFComponentBokeh → Gaussian

设置路径 旧值 新值 涉及场景数
DOFComponent/Mode Bokeh Gaussian 7 场景
DOFComponent/NearEnd 100 10 7 场景
DOFComponent/FarBegin 500 0 7 场景
DOFComponent/FarEnd 600 150 7 场景

涉及KuangDong_002, kuangdong_A01-A06。

矿洞天空切换

设置路径 旧值 新值 涉及场景数
SkyAtmosphereComponent/Type Legacy SkyBox 12 场景
SkyBox/GimPath builtin\models\sky\skybox.gim temp/sky/skybox.gim 12 场景
SkyColor 浮点线性色值 134,111,219,255(紫色调) 12 场景

涉及kuangdong_A01-A06, A04_dark, A05_dark, kuangdong_B01-B06, room。

室内场景:新增方向灯

8 个室内场景从空 Folders 结构改为新增完整 direction_light 方向灯配置: ForestRoom, LivestockRoom, beach01_house01, hospitalroom, ironroom, seedroom, woodroom, room。

设置路径 旧值 新值 涉及场景数
SceneLightSettings/HasRectLight False True 8 场景
SceneLightSettings/CastShadow False True 7 场景

室内场景:新增 VVGIComponent体素全局光照

场景 Enabled IndirectIntensity LocalLightGIScale VVGISceneDistance 其他
ForestRoom 1 1.0 1.0 120 -
beach01_house01 1 1.0 1.0 120 -
hospitalroom 1 1.0 1.0 120 -
seedroom 1 1.0 1.0 120 -
woodroom 1 1.0 1.0 120 -
Workshop01 1 1.0 1.0 (默认) -
ironroom 1 3.0 6.0 120 高强度 VVGI
LivestockRoom 1 1.0 1.0 60 CacheUpdateSpeed=5, SkyLightLeaking=0
room 1 1.0 2.0 60 CacheUpdateSpeed=3, SkyLightLeaking=0

单场景独有变化

LivestockRoom.scn

设置路径 旧值 新值
BloomComponent/BloomThreshold 0.500000 -1.000000
BloomComponent/BloomIntensity 5.000000 4.000000
BloomComponent/BloomSizeScale 4.000000 2.000000
SSAOComponent/Type HBAO GTAO
SSAOComponent/Intensity 1.000000 2.000000
SSAOComponent/Radius 1.000000 2.000000
HeightFogComponent (完整配置) (整个删除)

NongChang_003.scn

设置路径 旧值 新值
BloomComponent/BloomIntensity 5.010000 5.000000
ColorGrading/LUTWeight 1.000000 0.800000
ColorGrading/ColorSaturation (w) 1.000000 0.900000
DOFComponent/Enabled 1 0
ExposureComponent/UsePreExposition 1 0
PipelineComponent_ShadowCast (不存在) CastSemiTransparentShadow=0
DirectionalLight/ShadowNormalBias 0.000000 0.500000
DirectionalLight/Diffuse Color 白 (1,1,1,1) 暖白 (1,0.949,0.882,1)

SeaSide.scn

设置路径 旧值 新值
ColorGrading/ColorSaturation (w) 1.000000 0.900000
SSAOComponent/Intensity 1.000000 0.500000
DirectionalLight/Intensity 8.000000 6.000000

Town03.scn

设置路径 旧值 新值
ColorGrading/LUTWeight 1.000000 0.400000
ColorGrading/ColorSaturation (w) 1.000000 0.900000
DOFComponent/Enabled 1 0
DOFComponent/FarEnd 320.000000 150.000000
SSAOComponent/Intensity 1.000000 0.500000
DirectionalLight/ue4IndirectLightingIntensity 0.000000 1.000000

Workshop01.scn

设置路径 旧值 新值
DirectionalLight/Position 8.068,1.526,17.193 -8.525,1.526,17.693
DirectionalLight/Direction -0.108,-0.674,-0.731 -0.250,-0.674,-0.695
DirectionalLight/ShadowAlpha 1.000000 0.500000
DirectionalLight/SpecularScale 1.000000 0.000000
DirectionalLight/Intensity 5.000000 3.000000

mount01.scn

设置路径 旧值 新值
ColorGrading/LUTWeight 1.000000 0.500000
ColorGrading/ColorSaturation (w) 1.000000 0.920000
DOFComponent/Enabled 1 0
SSAOComponent/Intensity 1.000000 0.500000
SSAOComponent/Radius 0.500000 0.300000

neighbor01.scn

设置路径 旧值 新值
ColorGrading/ColorSaturation (w) 1.000000 0.900000
DOFComponent/Enabled 1 0
SSAOComponent/Intensity 1.000000 0.500000

room.scn变动最复杂

设置路径 旧值 新值
BloomComponent/BloomThreshold 0.500000 -1.000000
BloomComponent/BloomIntensity 5.000000 1.500000
BloomComponent/BloomSizeScale 4.000000 2.000000
新增 Film - Slope=0.88, Toe=0.55, Shoulder=0.26, WhiteClip=0.04
新增 ColorGrading - LUT=scene/room_VVGI/RGBTable16x1_H78.png, LUTWeight=0.8
新增 ExposureComponent - FixedExposure, Compensation=-0.2
SSAOComponent/Intensity 1.000000 2.000000
SSAOComponent/Radius 1.000000 2.000000
新增 SSRComponent - Enabled=0, Quality=High
新增 SunShaftComponent - Enable=0预设未启用
新增 PipelineComponent_ShadowCast - CastSemiTransparentShadow=0
新增 SuperResolutionComponent - Sharpness=100
HeightFogComponent/Type LegacyHeightFog None
SkyAtmosphereComponent/Type Legacy SkyBox
Planet/Cloud 节点 (完整配置) (整体删除)
新增方向灯 direction_light - Intensity=3.5, SpecularScale=0, ShadowAlpha=0.6

2b. res/scene/ 下 PostProcess 文件变化

55 个 .postprocess 文件有变更,其中 50 个有实际参数变化5 个仅格式重排无参数变更。

批量变化

CSMSceneSetting新增49 个场景)

同 .scn 文件一致CSMDebugMode=0, CustomShadowMode=0, ShadowDistance=40, DistributionExponent=3

BloomComponent26 个场景)

  • 19 个场景Quality High→Low, EnableAntiFlickering 0→1
  • 7 个场景Room_01, beach01, farm, lunlunroom, map_01, resident01, town02从无到有新增完整 Low 品质 Bloom 配置

TAAComponent26 个场景)

  • 19 个场景TaaQuality High→Low, EnableBicubic 1→0
  • 7 个场景:从无到有新增完整 Low 品质 TAA 配置
  • MINE_B02-B04, MINE_B06 额外新增/修改顶层 TaaQuality

SSAOComponent26 个场景)

  • 19 个场景UseFilter 1→0,其中 8 个矿洞场景同时 UseFullResolution 1→0
  • 7 个场景:从无到有新增完整 SSAO 配置HBAO, UseFilter=0, UseFullResolution=0

DOFComponent11 个场景)

设置路径 旧值 新值 涉及场景
Mode Bokeh Gaussian 8-9 个矿洞场景
FarEnd 600.0 150.0 同上
NearEnd 24/100 10 同上
FarBegin 36/500/20 0 11 个场景
Enabled 1 0 Shenshu01, Workshop01, mineA01

LensflareComponent

设置路径 旧值 新值 涉及场景数
Enable 1 0 8 场景KuangDong_003, kuangdong_B01-B06, mine_treasure_floor5

VVGIComponent10 个场景新增)

与 .scn 中的 VVGI 配置一致。额外:

  • Town03GIMethodType=TraceWorldProbe, IndirectIntensity=2.0, LocalLightGIScale=2.0
  • ironroomIndirectIntensity=3.0, LocalLightGIScale=6.0(全项目最高)

LuminanceScale 移除

设置路径 旧值 新值 涉及场景数
顶层 LuminanceScale 1.0,1.0,1.0,1.0 (删除) 21 场景

单场景独有变化

room.postprocess变动最大约 142 处变更)

新增组件

新增组件 关键参数
ColorGrading LUT=scene/room_VVGI/RGBTable16x1_H78.png, LUTWeight=0.8
ExposureComponent FixedExposure, Compensation=-0.2
Film色调映射 Slope=0.88, Toe=0.55, Shoulder=0.26, WhiteClip=0.04
DOFComponent Gaussian, Enabled=0, FarEnd=150
SunShaftComponent Enable=0预设未启用
SSRComponent Enabled=0, Quality=High
SuperResolutionComponent Sharpness=100
PipelineComponent_ShadowCast CastSemiTransparentShadow=0

移除内容:整个 SkyAtmosphereComponent/Cloud 节点(约 40+ 参数、HeightFog 所有子节点。 从完整室外天气/大气配置重构为纯室内场景。

LivestockRoom.postprocess

HeightFogComponent 整体移除ExpHeightFog、LegacyHeightFog、FogCulling 全部清除),新增 VVGI。


3. GlobalRenderComponentsConfig.xml 变化r10 → r3165

设置项 旧值 (r10) 新值 (r3165) 说明
EditorBuildPriority Val="Disable" (删除) 移除编辑器构建优先级设置
EnableIB Val="1" (删除) 移除 Instance Batching 开关
MaterialCommonComponent (不存在) (新增空节点) 新增材质公共组件
CSM PerLayerResolution 2048 1024 阴影贴图分辨率减半
CSM LayerCount 4 1 级联层数从 4 降到 1
SoftShadowLevel Max High 软阴影品质降低

相关影响

张子涵各提交具体变化

r3164 — NongChang_003 后处理降级(首次试点)

文件: res/scene/NongChang_003.scn1 个文件)

参数 变更前 变更后 说明
Bloom Quality High Low 泛光质量降级
BloomIntensity 5.010 5.000 微调
DOF Enabled 1 0 关闭景深
UsePreExposition 1 0 关闭自动曝光
Lensflare Enable 1 0 关闭镜头光晕
SSAO UseFilter 1 0 关闭 SSAO 滤波
TAA Quality High Low TAA 降级
TAA EnableYCoCg 1 0 关闭 YCoCg 色彩空间转换
TAA EnableBicubic 1 0 关闭双三次采样
新增节点:
  • PipelineComponent_ShadowCast → CastSemiTransparentShadow=0(关闭半透明阴影投射)
  • CSMSceneSetting → ShadowDistance=30, DistributionExponent=2(新增场景级 CSM 控制)

r3165 — GlobalRenderComponentsConfig.xml 全局阴影降级

文件: res/GlobalRenderComponentsConfig.xml1 个文件)

参数 变更前 变更后 说明
CSM PerLayerResolution 2048 1024 阴影贴图分辨率减半
CSM LayerCount 4 1 级联层级从 4 降到 1
SoftShadowLevel Max High 软阴影精度降低
影响:全局生效,所有场景的阴影质量直接受影响。单级联 + 1024 分辨率在远处阴影边缘可能出现明显锯齿。

r3180 — NongChang_003 参数微调

文件: res/scene/NongChang_003.scn1 个文件)

参数 变更前 变更后 说明
TAA EnableYCoCg 0 1 恢复 YCoCgr3164 关掉后又开回来)
CSM ShadowDistance 30 35 阴影距离增加
CSM DistributionExponent 2 3 阴影分布更向近处集中
新增节点:
  • CenariusVegetation → UseGlobalConfig=true, GlobalConfigPath=scene/NongChang_003_content/cenarius.cfg(植被全局配置接入)

r3248 — 全场景统一移动端设置(最大批量)

文件: 约 42 个 .scn + 42 个 .postprocess + 2 个 .scnex覆盖几乎所有游戏场景

涉及场景示例ForestRoom, KuangDong_002/003, L_SmallTown, LivestockRoom, NongChang_003, SeaSide, Shenshu01, Store_01, Town03, Workshop01, XLG006, beach01_house01, coop01-04, hospitalroom, ironroom, kuangdong_A01-A06, kuangdong_A04/A05_dark, kuangdong_B01-B06, map, mineA01, mine_treasure_floor5, mount01, neighbor01, neighborH, room, seedroom, woodroom

统一施加的渲染设置变化(以 NongChang_003.scn 为代表):

参数 变更前 变更后 说明
Bloom EnableAntiFlickering 0 1 开启抗闪烁
TAA EnableYCoCg 存在 删除 移除该配置项
TAA AntiFlicker 0.750 0.880 增加抗闪烁强度
CastShadow True False 关闭场景级阴影投射
CSM ShadowDistance 35 40 阴影距离微增
新增节点:
  • LodPerViewSettings → LodTransitionDuration=500ms, UseFixedLodLevel=0LOD 过渡动画 500ms

postprocess 文件同步使用编辑器重保存格式统一化XML 重排版),实际参数值与 scn 中的对应设置一致。


r3261 — 补充更多场景的阴影/后处理分级

文件: 约 50 个 .scn + 50 个 .postprocess + 若干 .scnex

相比 r3248 新增覆盖的场景farm, beach01, lunlunroom, resident01, town02, map_01, Room_01, coop01-03(.scnex)

变更模式与 r3248 一致(编辑器整体重保存,统一后处理/阴影设置)。注意此提交是全文件重写 diff。


r3268 — 遗漏场景补充上传

文件: 32 个文件 — MINE_B01-B06.postprocess + 部分 scn/scnex

新覆盖的场景MINE_B01-B06矿洞 B 系列 postprocess、Workshop01, beach01, farm, kuangdong_B01-B06, lunlunroom, map_01, resident01, town02, Room_01 的 scn/scnex 补充调整。


r3440 — 场景模型 LOD 参数优化(移动端适配)

文件: 133 个文件 — 46 .gim + 33 .lod2 + 31 .mtg + 12 .mesh + 11 .mtl

LOD 阈值大幅提升(以 SM_Weed02 为例):

LOD Level 变更前 LevelParam 变更后 LevelParam 倍数
Level0 (最高) 0.1015 0.6000 ~6x
Level1 0.0424 0.3000 ~7x
Level2 0.0176 0.1000 ~6x
Level3 (最低) 0显示最低LOD 0LODType=2 → 完全剔除) 消失

新增属性:

  • SimplifierType="0"
  • LODType="0" (Level0-2), LODType="2" (Level3完全剔除)

涉及模型类别

  • 植被:杂草(Weed)、灌木(Bush)、草地(Grass/FoliageGrass)
  • 树木Maple(枫树)、Oak(橡树)、Pine(松树)、CherryBlossom(樱花)、PineThin
  • 地形散件:石头(Rock/Stone/Boulder/LimeStone)、树桩(Stump)、树枝(Twig)、大圆木(LargeLog)
  • 建筑House_Online、House_Player、TimberShop、WorkShopBefore
  • 铁匠铺模型Forge-4_Gradient

材质文件同步变更:新增 ShaderMacroALPHA_TEST_ENABLE、TWO_SIDED、ALPHA_BLEND_ENABLE 显式声明)和 RenderTechsDeferredGBuffer、ForwardOpaque、PreZ 等渲染通道声明)。


r3598 — Weed LOD 微调

文件: 5 个文件 — SM_Weed02/03/04 的 .lod2 和 .gim

在 r3440 基础上进一步微调杂草的 LOD 参数和网格数据。


r3978 — Mesh 顶点压缩

文件: 6935 个 .mesh 文件(二进制格式,无法查看具体数值变化)

对项目中几乎所有骨骼网格文件执行顶点压缩。涉及目录:

  • ANGRY_MESH/(花卉、灌木、蘑菇等自然物)
  • Marketplace/(各种场景资产包)
  • ProjectCoral/(主场景资产)
  • Characters/(角色模型)
  • Scenes/(场景专用网格)
  • 以及其他所有包含 .mesh 的资源目录

LOD影响场景

张子涵 r3440 + r3598 修改了 33 个 .lod2 文件的 LOD 配置。以下列出所有模型的具体 LevelParam 变化,以及被哪些 .scn 场景文件引用。

LODType 说明0 = 显示对应 LOD 网格,2 = 完全剔除(不渲染)

全部模型 LOD 参数变化明细r3440

草地/杂草类
模型 Level 旧值 新值 LODType 备注
SM_FoliageGrass_Merge L0 0.1045 0.6000 0 从 4 级缩减为 3 级
L1 0.0527 0.1000 0
L2 0.0151 0.0000 2 剔除
L3 0 (删除) -
SM_grass_bush L0 0 (仅1级) 0.2000 0 从 1 级扩展为 2 级
L1 (无) 0.0000 2 新增剔除级
SM_grass1_Out L0 0.1058 0.6000 0
L1 0.0458 0.3000 0
L2 0.0316 0.1000 0
L3 0 0.0000 2 原显示→剔除
SM_Weed02 (Debris) L0 0.1015 0.6000 0
L1 0.0424 0.3000 0
L2 0.0176 0.1000 0
L3 0 0.0000 2 原显示→剔除
SM_Weed03 (Debris) L0 0.3991 0.6000 0
L1 0.1758 0.3000 0
L2 0.0940 0.1000 0
L3 0 0.0000 2 原显示→剔除
SM_Weed04 (Debris) L0 0.1015 0.6000 0
L1 0.0424 0.3000 0
L2 0.0176 0.1000 0
L3 0 0.0000 2 原显示→剔除
SM_Weed03 (Foliage) L0 0.2677 0.6000 0
L1 0.0608 0.3000 0
L2 0.0338 0.1000 0
L3 0 0.0000 2 原显示→剔除
SM_Weed05 (Foliage) L0 0.5268 0.6000 0
L1 0.1423 0.3000 0
L2 0.1136 0.1000 0
L3 0 0.0000 2 原显示→剔除
灌木类
模型 Level 旧值 新值 LODType
SM_BushBig_02 L0 0.0568 0.4000 0
L1 0.0206 0.2000 0
L2 0.0109 0.1000 0
L3 0 0.0000 0 (保留)
树木类
模型 Level 旧值 新值 LODType
SM_TreeCherryBlossom01 L0 0.1107 0.6000 0
L1 0.0756 0.4500 0
L2 0.0531 0.1500 0
L3 0 0.0000 0 (保留)
SM_TreeCherryBlossom02 L0 0.1093 0.6000 0
L1 0.0747 0.3000 0
L2 0.0524 0.1000 0
L3 0 0.0000 0 (保留)
SM_TreeMaple01 L0 0.3037 0.6000 0
L1 0.0615 0.3000 0
L2 0.0600 0.1000 0
L3 0 0.0000 0 (保留)
SM_TreeOak01_S03 L0 0.3476 0.6000 0
L1 0.0445 0.3000 0
L2 0.0393 0.1000 0
L3 0 0.0000 0 (保留)
SM_TreePine01_S03 L0 0.3315 0.6000 0
L1 0.0519 0.4500 0
L2 0.0205 0.1500 0
L3 0 0.0000 0 (保留)
SM_TreePineThin01 L0 0.1472 0.6000 0
L1 0.0690 0.3000 0
L2 0.0397 0.1000 0
L3 0 0.0000 0 (保留)
石头/岩石类
模型 Level 旧值 新值 LODType
SM_stone_b L0 0.8986 0.6000 0
L1 0.3777 0.3000 0
L2 0.1570 0.1000 0
L3 0 0.0000 0 (保留)
SM_stone_e L0 0.8062 0.6000 0
L1 0.3216 0.3000 0
L2 0.0989 0.1000 0
L3 0 0.0000 0 (保留)
SM_stone_g L0 0.5608 0.8000 0
L1 0.2017 0.5000 0
L2 0.0656 0.2000 0
L3 0 0.0000 0 (保留)
SM_Rock_Large_01 L0 1.4285 0.6000 0
L1 1.4284 0.3000 0
L2 0.9183 0.1000 0
L3 0 0.0000 0 (保留)
SM_Rock03 L0 0.0863 0.1500 0
L1 0.0440 0.1000 0
L2 0.0138 0.0500 0
L3 0 0.0000 2 (剔除)
SM_LimeStoneSmall01 L0 0.9692 0.6000 0
L1 0.3713 0.3000 0
L2 0.1610 0.1000 0
L3 0 0.0000 0 (保留)
Boulder_B_04 L0 0.1400 0.3000 0
L1 0.0728 0.1000 0
L2 0.0448 0.0000 2 (剔除)
L3 0 (删除) -
Boulder_B_14 L0 0.3857 0.3000 0
L1 0.1868 0.1500 0
L2 0.0882 0.1000 0
L3 0 0.0000 2 (剔除)
宝石矿
模型 Level 旧值 新值 LODType
SM_precious_stone_03 L0 0.6359 0.6000 0
L1 0.1307 0.3000 0
L2 0.0561 0.1000 0
L3 0 0.0000 2 (剔除)
地形散件类
模型 Level 旧值 新值 LODType
SK_LargeLog01 L0 1.1604 0.6000 0
L1 0.4129 0.3000 0
L2 0.1716 0.1000 0
L3 0 0.0000 2 (剔除)
SM_Stump02 L0 1.0460 0.6000 0
L1 0.4173 0.3000 0
L2 0.1609 0.1000 0
L3 0 0.0000 2 (剔除)
SM_Twig03 L0 0.1849 0.6000 0
L1 0.0801 0.3000 0
L2 0.0343 0.1000 0
L3 0 0.0000 2 (剔除)
建筑类
模型 Level 旧值 新值 LODType
SM_House_Online L0 1.2367 1.2000 0
L1 0.4566 0.8000 0
L2 0.1645 0.3000 0
L3 0 0.0000 0 (保留)
SM_House_Player L0 1.1742 1.2000 0
L1 0.4390 0.8000 0
L2 0.1581 0.3000 0
L3 0 0.0000 0 (保留)
SM_TimberShop_01 L0 0.8152 1.2000 0
L1 0.3298 0.8000 0
L2 0.1186 0.3000 0
L3 0 0.0000 0 (保留)
铁匠铺
模型 Level 旧值 新值 LODType 备注
Forge-4_Gradient_0 L0 0.8639 0.0000 0 从 4 级缩减为 1 级仅保留最高LOD
L1 0.3321 (删除) -
L2 0.2073 (删除) -
L3 0 (删除) -
装饰物
模型 Level 旧值 新值 LODType
comm_obj_0040n L0 0.0689 0.4000 0
L1 0.0390 0.2000 0
L2 0.0256 0.1200 0
L3 0 0.0000 0 (保留)
comm_obj_0041n L0 0.0393 0.4000 0
L1 0.0209 0.2000 0
L2 0.0140 0.1200 0
L3 0 0.0000 0 (保留)
r3598 追加调整Weed LOD 回调)

r3598 在 r3440 基础上将 Debris/Weed 系列的 LOD 阈值下调了一半

模型 Level r3440 值 r3598 最终值
SM_Weed02 (Debris) L0 0.6000 0.3000
L1 0.3000 0.1500
L2 0.1000 0.0500
L3 0 (剔除) 0 (剔除,不变)
SM_Weed03 (Debris) L0 0.6000 0.3000
L1 0.3000 0.1500
L2 0.1000 0.0500
L3 0 (剔除) 0 (剔除,不变)
SM_Weed04 (Debris) L0 0.6000 0.3000
L1 0.3000 0.1500
L2 0.1000 0.0500
L3 0 (剔除) 0 (剔除,不变)

说明r3598 将 Debris/Weed 的 LOD 阈值从 r3440 的统一 0.6/0.3/0.1 下调为 0.3/0.15/0.05,意味着杂草需要在更近距离才会降级,避免了肉眼可见的 pop-in。但 Foliage/Weeds 目录下的 SM_Weed03/05 未做此回调。

场景直接引用的模型22 个模型 → 命中 22 个场景)

石头类(场景分布最广)
模型 引用场景 场景数
SM_stone_b KuangDong_002/003, NongChang_003, XLG006, kuangdong_A01-A06, A04/A05_dark, kuangdong_B01-B06, mine_treasure_floor5 19
SM_stone_e KuangDong_002/003, L_SmallTown, NongChang_003, XLG006, kuangdong_A01-A06, A04/A05_dark, kuangdong_B01-B06, mine_treasure_floor5, neighbor01, neighborH 22
SM_stone_g KuangDong_002/003, L_SmallTown, NongChang_003, XLG006, kuangdong_A01-A06, A04/A05_dark, kuangdong_B01-B06, mine_treasure_floor5 20
SM_Rock_Large_01 NongChang_003, XLG006, mount01 3
SM_LimeStoneSmall01 SeaSide, Shenshu01, Town03, map, map_01, mount01 6
树木类
模型 引用场景 场景数
SM_TreeOak01_S03 NongChang_003, SeaSide, Shenshu01, Town03, map, mineA01, mount01, neighbor01, neighborH 9
SM_TreeMaple01 NongChang_003, SeaSide, Town03, map, neighbor01, neighborH 6
SM_TreeCherryBlossom02 NongChang_003, Shenshu01, Town03, map, neighbor01, neighborH 6
SM_TreeCherryBlossom01 NongChang_003, Shenshu01, mount01 3
SM_TreePine01_S03 NongChang_003, mount01, neighbor01, neighborH 4
SM_TreePineThin01 NongChang_003, map, map_01 3
SK_TreePine01_S04_03 Shenshu01, mineA01 2
SK_TreeOak01_S03_04 neighbor01 1
灌木/杂草类
模型 引用场景 场景数
SM_BushBig_02 NongChang_003, SeaSide, Shenshu01, Town03, map, mineA01, mount01, neighbor01, neighborH 9
SM_Weed03 neighbor01, neighborH 2
SM_Weed04 neighbor01, neighborH 2
SM_Weed05 neighbor01, neighborH 2
地形散件
模型 引用场景 场景数
SM_Stump02 neighbor01, neighborH 2
SK_LargeLog01 NongChang_003 1
建筑
模型 引用场景 场景数
SM_House_Player L_SmallTown, NongChang_003, XLG006, beach01, farm 5
SM_House_Online L_SmallTown, XLG006, beach01, farm 4
SM_TimberShop_01 Town03, map 2
其他
模型 引用场景 场景数
comm_obj_0040n NongChang_003, Town03, neighbor01, neighborH 4
comm_obj_0041n NongChang_003, neighbor01, neighborH 3

关键结论

  1. NongChang_003主农场和 neighbor01/neighborH邻居场景受影响最大,超过 12 个模型的 LOD 阈值被调整
  2. 石头类模型stone_b/e/g影响面最广,覆盖 19-22 个场景(几乎所有室外场景 + 全部矿洞)
  3. SM_BushBig_02 和 SM_TreeOak01_S03 各覆盖 9 个场景,是植被中影响面最大的
  4. 建筑模型House_Player/Online影响 4-5 个场景,玩家房屋在多个场景可见
  5. 约一半模型22/44不在 .scn 中直接引用,通过 UE Actor 管线或 Cenarius 植被系统加载,但 LOD 设置同样生效
  6. 矿洞系列 18 个场景虽数量多,但仅引用石头类模型LOD 影响相对可控

综合影响评估

1. 后处理画质降级r3164 → r3248 → r3261 → r3268

功能 变化 性能收益 画质代价
Bloom High → Low 减少 bloom 下采样/模糊 pass 数 泛光边缘更粗糙
DOF 开 → 关 省掉整个景深 pass 失去远近虚化效果
自动曝光 开 → 关 省掉直方图计算 亮暗场景切换时不再自动适应
镜头光晕 开 → 关 省掉 lensflare 计算 太阳方向失去镜头感
TAA High → Low, 去掉 YCoCg/Bicubic 减少每帧 TAA 采样和重投影开销 抗锯齿质量下降,可能出现更多闪烁
SSAO 滤波 开 → 关 省掉 SSAO 模糊 pass AO 边缘更硬/有噪点
半透明阴影 开 → 关 减少 shadowmap 渲染对象数 半透明物体(树叶、玻璃等)不再投射阴影

注意:这些降级是写死在场景文件里的,不随画质档位变化。后续脚本层的画质分档系统(程侃 Git 提交)会在此基础上叠加动态控制。

2. 阴影系统大幅简化r3165 + r3248

  • 全局 CSM分辨率减半2048→1024+ 级联层数从 4 降到 1
  • 场景级 CastShadow=False:大部分场景关闭了静态物体阴影投射
  • 综合效果:场景级静态物体基本不投射阴影,仅保留可能由脚本动态控制的角色阴影
  • 风险:低画质下如果脚本层也关阴影,场景将完全没有阴影;中高画质下需要脚本层重新开启

3. LOD 策略激进化r3440 + r3598

  • LOD 切换阈值提升 ~6-7 倍,模型在更近的距离就切换到低精度版本
  • 最远级别改为 完全剔除LODType=2而非显示最低 LOD 网格
  • LOD 过渡时间 500ms
  • 涉及 全场景主要自然物体和建筑模型
  • 风险:中近距离可能出现 LOD pop-in(模型突然切换为低精度),尤其在快速移动相机时明显

4. 顶点压缩r3978

  • 6935 个 .mesh 文件全量压缩
  • 减少 GPU 顶点缓冲区内存占用和带宽消耗
  • 风险:极端情况下可能引入微小顶点位置精度误差(通常肉眼不可见);若压缩格式与某些 shader 不兼容可能出现渲染异常

5. 时间线与依赖关系

4/3  r3164 ─ NongChang 试点后处理降级
4/3  r3165 ─ 全局 CSM 降级(影响所有场景)
4/3  r3180 ─ NongChang 参数回调YCoCg 恢复、阴影距离调大)
4/3  r3248 ─ 全场景批量设置(最大影响面)
4/3  r3261 ─ 补充更多场景
4/3  r3268 ─ 遗漏场景补充
4/7  r3440 ─ LOD 参数移动端适配133 文件)
4/8  r3598 ─ Weed LOD 微调
4/10 r3978 ─ Mesh 顶点压缩6935 文件)

张子涵的优化工作路线:后处理降级(4/3) → 阴影简化(4/3) → LOD 激进化(4/7-4/8) → 顶点压缩(4/10),配合程侃同期的脚本层画质分档系统和贴图压缩,共同构成移动端性能优化方案。

程侃代码影响

提交前基线状态aa9e6b12 之前)

只有两档HIGH(0) / LOW(1)。GlobalData.graphic_level 默认 HIGH。

功能 HIGH LOW
管线 Forward Deferred
分辨率 1.0 0.7
SSR 场景默认(mActive=False) 强制关闭
SSAO 场景默认(mActive=False) 强制开启(Type=2)
阴影 不控制 不控制
Bloom/DOF/TAA 不控制 不控制
LOD 不控制 不控制

aa9e6b12 — 高中低三档 + 低档关阴影

  • 新增 MEDIUM = 1LOW 从 1 变为 2
  • HIGH 变成"最干净"SSR/SSAO 全部 mActive=False(不覆盖场景默认,场景文件里美术配什么就是什么)
  • MEDIUM 继承了原 LOW 的配置Deferred 管线、0.7 分辨率、SSR 关、SSAO 开(Type=2+Filter)
  • LOW 新增:关闭主光源阴影 (light.enable_shadow = False)
  • 管线判断逻辑反转:原来 LOW=Deferred / HIGH=Forward现在 HIGH=Forward / MEDIUM+LOW=Deferred

8951e2e9 — pub_design 默认中画质 + 后处理细分 + 低档 0.5 分辨率

  • IS_DESIGN_TEST and IS_RELEASE 时默认 MEDIUM — 策划体验包强制走中画质
  • LOW 分辨率从 0.7 降至 0.5 — 像素量仅为原生的 25%
  • 三档后处理细分
后处理 HIGH MEDIUM LOW
Bloom mActive=False场景默认 mActive=False场景默认 强制关闭
DOF mActive=False场景默认 mActive=False场景默认 强制关闭
TAA mActive=False场景默认 mActive=False场景默认 强制关闭

da9a031b — LOD 偏移 + 三档显式 LOD 配置

  • HIGH/MEDIUM: mLodBias = 0(正常 LOD 级别)
  • LOW: mLodBias = 1 — LOD 往下偏移一级,模型在相同距离显示更低精度版本
  • 三档都显式设置 mLodPerViewSettingsConfig.mActive = True,保证幂等(避免切换画质后 LOD 状态残留)

c2ccbeb8 — GM 重构(纯架构,渲染逻辑等价)

  • refresh_default_render_config() 拆分为 _FEATURE_LEVEL_MAP(数据表)+ 每功能独立 _apply_xxx(执行函数)
  • 数据映射与之前完全一致,只是结构化
  • 新增 GMGraphic.py 虚拟文件夹,可在 GM 面板中单独切换每个渲染功能(管线/分辨率/SSR/SSAO/Bloom/DOF/TAA/LOD/阴影)
  • 后处理功能引入三态语义:None=场景默认、True=脚本强制开、False=脚本强制关

最终三档画质对比(当前状态)

功能 HIGH MEDIUM LOW
管线 Forward Deferred Deferred
分辨率 1.0 (100%) 0.7 (70%) 0.5 (50%)
SSR 场景默认 强制关 强制关
SSAO 场景默认 强制开(Type=2+Filter) 强制关
Bloom 场景默认 场景默认 强制关
DOF 场景默认 场景默认 强制关
TAA 场景默认 场景默认 强制关
LOD Bias 0 0 +1
阴影

画质切换逻辑

没有平台级自动档位选择。 整个脚本仓库中不存在基于设备性能、GPU 能力或平台类型的自动画质选择逻辑。

graphic_level 的三个写入点(全代码库仅此三处)

1) 模块默认值 — GlobalData.py:69

graphic_level: int = GraphicLevel.HIGH

所有环境的起始值都是 HIGH。

2) 唯一的自动降级 — demo.py:30-33

def _init_graphic_level():
    if version_config.IS_DESIGN_TEST and version_config.IS_RELEASE:
        GlobalData.graphic_level = GraphicLevel.MEDIUM

demo.init() 启动流程中调用line 196。仅当两个标志同时为 True 时降为 MEDIUM。

3) GM 手动切换(仅调试用)— GMCommandHandle.py:571

GlobalData.graphic_level = levels[next_index]  # 循环 HIGH→MEDIUM→LOW→HIGH

各包类型对应的画质等级

version_config.py 在本地源码中默认 IS_DESIGN_TEST=False, IS_RELEASE=False。打包时由 pack_farm.pymodify_version_config() 方法物理覆写此文件,打包完成后 git reset --hard 恢复。

包类型 IS_DESIGN_TEST IS_RELEASE 画质等级
本地开发 / PC 编辑器 False False HIGH
inner_design_demo True False HIGH条件不满足and 短路)
pub_design_demo True True MEDIUM
inner_trunk_demo False False HIGH
pub_trunk_demo False False HIGH

LOW 永远不会被自动触发

GraphicLevel.LOW 没有任何自动触发路径。不存在任何条件(包类型、平台、设备性能)会自动将画质设为 LOW。LOW 只能通过 GM 面板手动切换到达。

不存在的逻辑

以下机制在整个代码库中完全不存在:

  • 设备性能检测 — 无 GPU benchmarking、device score、device tier
  • 平台判断选画质is_mobile()client_utils.py:82)和 game3d.get_platform() 只用于输入处理和 FPS 设置,从未参与画质决策。SceneRenderHelper 中原有的 # platform = game3d.get_platform() 已被注释掉
  • 设备白名单/黑名单 — 无按机型分级逻辑
  • 运行时性能自适应 — 无根据帧率动态调整画质的逻辑

完整流程图

构建时:
  pack_farm.py 根据 --is_design_test / --is_release 参数覆写 version_config.py
  pub_design_demo => IS_DESIGN_TEST=True, IS_RELEASE=True

启动 (demo.init):
  _init_graphic_level()
    IS_DESIGN_TEST and IS_RELEASE? => graphic_level = MEDIUM
    否则                           => 保持 HIGHGlobalData 默认值)

场景加载 (Space.on_scene_view_changed):
  refresh_default_render_config()
    读取 GlobalData.graphic_level
    set_feature_states_from_level(level) => 填充 graphic_feature_states 字典
    apply_all_features() => 逐个调用 _apply_* 函数:
      _apply_pipeline()     -- forward vs deferred
      _apply_resolution()   -- render.set_redirect_scale(scale)(全代码库唯一调用点)
      _apply_ssr()          -- SSR 三态
      _apply_ssao()         -- SSAO 三态
      _apply_bloom()        -- Bloom 三态
      _apply_dof()          -- DOF 三态
      _apply_taa()          -- TAA 三态
      _apply_lod_bias()     -- LOD 偏移值
      _apply_shadow()       -- 阴影开关

运行时调试:
  GM "渲染" 指令 => 循环切换 graphic_level => 重新应用全部功能
  GM "画质控制" 虚拟文件夹 => 单独切换各功能(绕过等级预设)

为什么移动端渲染比 PC 编辑器差很多

核心原因不是某个功能有 bug而是画质等级选择逻辑本身在做分层降质

1. 默认画质等级的差异是根因

  • GlobalData.graphic_level 默认值 = GraphicLevel.HIGHGlobalData.py:69
  • PC 编辑器 / 开发者本地 → IS_DESIGN_TEST=False, IS_RELEASE=False默认 HIGH
  • 策划体验包pub_designIS_DESIGN_TEST=True, IS_RELEASE=True_init_graphic_level() 强制降为 MEDIUMdemo.py:32
  • 没有基于设备性能的自动选档逻辑(game3d.get_platform() 被注释掉了)

2. HIGH → MEDIUM 的差距已经很大

差异项 效果影响
Forward → Deferred 光照模型不同Deferred 在移动端可能丢失前向渲染特有的透明/半透效果
分辨率 1.0 → 0.7 像素量直接降到 49%0.7×0.7),画面明显模糊
SSR 场景默认 → 强制关 水面、地板反射完全消失
SSAO 场景默认 → 强制开 这个反而是"加了",但在低分辨率 Deferred 管线下效果有限

3. LOW 是全面劣化

  • 分辨率 50%(像素量仅 25%
  • Bloom/DOF/TAA 全关 — 无泛光、无景深、无抗锯齿
  • 阴影关闭 — 场景完全没有阴影
  • LOD +1 — 模型更粗糙
  • SSAO 也关了 — 无环境遮蔽

4. "场景默认" vs "脚本强制" 的机制陷阱

HIGH 档对 SSR/SSAO/Bloom/DOF/TAA 都设 mActive=False,意思是不覆盖场景默认设置。美术在编辑器里调好的场景渲染参数会完整生效。

MEDIUM/LOW 档用 mActive=True + mEnabled=True/False 强制覆盖了场景级别的后处理配置

结论:美术在编辑器里精心调好的场景渲染参数,只在 HIGH 档下能完整体现。MEDIUM/LOW 的脚本会强制覆盖场景设置。

5. 与张子涵 SVN 提交的叠加效应

张子涵在场景文件层面已经做了一轮降级Bloom High→Low, TAA High→Low, SSAO UseFilter关闭, DOF Bokeh→Gaussian等。程侃的脚本层画质分档系统在此基础上再叠加动态控制

  • HIGH 档场景文件已降级的设置生效Bloom Low + TAA Low + ...
  • MEDIUM 档SSR 强制关 + SSAO 强制开(覆盖场景设置)+ 0.7 分辨率 + Deferred 管线
  • LOW 档:在 MEDIUM 基础上再关 Bloom/DOF/TAA/SSAO/阴影 + 0.5 分辨率 + LOD+1

两层降级叠加后移动端MEDIUM/LOW相比 PC 编辑器HIGH + 原始场景设置)的差距非常显著。

6. 时间线

4/7  aa9e6b12 ─ 三档画质 + 低档关阴影
4/8  8951e2e9 ─ pub_design 默认中画质 + 后处理细分 + 低档 0.5 分辨率
4/8  da9a031b ─ LOD 偏移 + 三档幂等
4/14 c2ccbeb8 ─ GM 重构(架构优化,逻辑等价)

与张子涵 SVN 优化4/3 场景降级 → 4/7 LOD → 4/10 顶点压缩)同步推进,共同构成移动端性能优化的场景层 + 脚本层双重方案。

贴图压缩影响

已完成全量分析并写入 # 贴图压缩影响 章节。核心发现:

  • 1888 个贴图4852 MB → 433 MB整体压缩 91.1%
  • 71% 文件压缩到原始 25% 以下 — 非常激进
  • 大量法线/ORM 贴图被替换为纯色占位图12 MB → 3 KB尤其是赵晴等 NPC 角色和多种场景资产,细节完全丢失
  • 按类别NPC 角色压缩率最高93.8%动物最极端95.3%
  • 单文件最大节省T_OakTree_Bark_01_A.png21.7 MB → 63 KB
  • 提交标注为"测试贴图压缩",属实验性质

总览

指标
涉及文件数 1888
压缩前总大小 4,852.2 MB
压缩后总大小 433.3 MB
节省空间 4,418.8 MB
整体压缩率 91.1%(压缩后仅为原始的 8.9%

按资源类别统计

类别 文件数 压缩前 压缩后 节省 压缩率
UE场景资产 895 2,384.8 MB 181.4 MB 2,203.3 MB 92.4%
场景 233 767.7 MB 81.6 MB 686.1 MB 89.4%
NPC角色 63 540.5 MB 33.8 MB 506.7 MB 93.8%
道具 317 389.7 MB 57.3 MB 332.4 MB 85.3%
AIGC食材 51 238.0 MB 23.6 MB 214.4 MB 90.1%
UI 185 181.6 MB 18.5 MB 163.1 MB 89.8%
玩家角色 70 159.0 MB 20.9 MB 138.0 MB 86.8%
UE角色资产 35 112.0 MB 11.5 MB 100.5 MB 89.8%
动物 19 69.5 MB 3.3 MB 66.3 MB 95.3%
道具模型 9 7.7 MB 1.2 MB 6.5 MB 83.9%
特效 11 1.8 MB 0.2 MB 1.6 MB 89.8%

按贴图类型统计

贴图类型 文件数 压缩前 压缩后 节省 压缩率
Other无明确后缀 727 1,803.7 MB 125.4 MB 1,678.3 MB 93.0%
BaseColor_D/_B/_BaseColor 531 1,316.5 MB 149.7 MB 1,166.8 MB 88.6%
Normal_N/_Normal 298 1,202.9 MB 115.9 MB 1,086.9 MB 90.4%
ORM_ORM/_MRO/_Roughness 297 481.3 MB 37.4 MB 443.9 MB 92.2%
Mask 11 27.7 MB 1.1 MB 26.6 MB 96.0%
Emissive 21 19.5 MB 3.8 MB 15.7 MB 80.5%
HeightMap 3 0.6 MB 0.04 MB 0.6 MB 99.4%

按文件格式统计

格式 文件数 压缩前 压缩后 节省 压缩率
.png 1,770 3,853.0 MB 358.6 MB 3,494.4 MB 90.7%
.tga 117 998.7 MB 74.7 MB 924.0 MB 92.5%
.jpg 1 0.5 MB 0.05 MB 0.4 MB 90.2%

压缩率分布

压缩后/原始 比例 文件数 占比 说明
0-25%(压缩超过 75% 1,341 71.0% 绝大多数文件压缩极度激进
25-50% 495 26.2%
50-75% 39 2.1%
75-90% 0 0%
90-100%(几乎不变) 12 0.6%
>100%(变大) 1 0.1% T_NongChang_LandscapeWeight_001.png

71% 的文件压缩到原始大小的 25% 以下,说明大量贴图被降低分辨率或使用了更激进的压缩参数。

压缩最极端的文件(几乎归零)

以下文件从数 MB 压缩到几百字节甚至不足 100 字节,说明被替换为纯色/空白占位图

原大小 新大小 比率 类别 文件
16.0 MB 4 KB 0.000x 动物 T_White.tga×2
12.0 MB 3 KB 0.000x NPC角色 T_ZhaoQing 系列法线/ORM10 个文件)
12.0 MB 3 KB 0.000x 道具 T_PackagingMachine_01_N/ORM.tga, T_Barn_01_N.tga 等
12.6 MB 3 KB 0.000x 动物 T_SmallChicken_01_N.tga
12.6 MB 2.5 KB 0.000x UE场景资产 T_Default_N.png
10.8 MB 1.1 KB 0.000x UE场景资产 T_Cliff_Large_C/N/R.png
7.2 MB 0.7 KB 0.000x UE场景资产 T_DirtTile_R.png
5.0 MB 1.1 KB 0.000x UI T_concrete_BaseColor.png
3.2 MB 0.7 KB 0.000x UI T_wallpaper_A_Normal.png×2

这些文件很可能是将未使用或临时占位的大尺寸贴图替换为 1×1 或极小分辨率的占位图。

节省空间最大的单文件 Top 20

节省 原大小 新大小 比率 类别 文件
21.6 MB 21.7 MB 63 KB 0.003x UE场景资产 T_OakTree_Bark_01_A.png
20.2 MB 20.5 MB 289 KB 0.014x 场景/UE资产 T_RockClassic_BC_N.PNG / T_RockSpire_N.png×4
19.8 MB 19.9 MB 103 KB 0.005x UE场景资产 T_Grass1_BC_NeoX.png
19.7 MB 20.6 MB 965 KB 0.047x UE场景资产 T_OakTree_Bark_01_RMA.png×2
19.6 MB 20.0 MB 361 KB 0.018x 场景 T_BigTree1_D.png
18.9 MB 19.0 MB 64 KB 0.003x UE场景资产 T_AMStatue_ME_01_A.png
18.9 MB 19.9 MB 1.0 MB 0.051x UE场景资产 T_TableSet01_RMA.png
18.8 MB 19.1 MB 333 KB 0.017x UE场景资产 T_DirtTile_N.png
18.4 MB 18.5 MB 101 KB 0.005x 场景/UE资产 T_Grass1_BC.PNG/png×3
18.4 MB 19.8 MB 1.4 MB 0.072x 场景 Grass_Normal.png
18.3 MB 23.5 MB 5.3 MB 0.225x UE场景资产 T_TableSet01_BC.png
17.5 MB 18.3 MB 788 KB 0.043x 场景 T_WacomTablet_MRO.png
16.9 MB 17.9 MB 936 KB 0.052x UE场景资产 T_PineBark_02_N.png×2

涉及目录分布Top 20

目录 文件数 类别
StylizedProvencal/Textures 54 场景植被/建筑贴图
Indoor/Grocery/Textures 48 室内杂货店贴图
House/Textures 42 房屋贴图
Marketplace/StylizedProvencal 41 同上(另一路径)
AIGC/Source/Ingredient/NoPlate 28 AIGC 生成的食材贴图
NPC/ZhaoQing/textures 28 赵晴 NPC 全套贴图
AIGC/Source/Food 25 AIGC 生成的食物贴图
Interact/Textures 24 可交互物件贴图
PlayerRoom/Textures 24 玩家房间贴图
FarmCrops/Textures 24 农作物贴图
DreamscapeMountains/Stones/Rocks 24 山地石头贴图
LiTieShan/Textures 22 李铁山 NPC 贴图
Trees/Textures (×2路径) 21+21 树木贴图
Buildings/Textures 19 建筑贴图
KEKOSTropicalBeach 17 热带海滩贴图
Rocks 16 岩石贴图
WuQiDian/Textures 16 武器店 NPC 贴图
MeadowEnvironment/Props 15 草地环境道具贴图

涉及的 NPC 角色

NPC 文件数 贴图类型
赵晴 (ZhaoQing) 28 全套法线、ORM、BaseColor8套服装
李铁山 (LiTieShan) 8 武器店系列贴图
梁秀兰 (LiangXiuLan) 5 Body/Cloth/Hair 材质
赵兰 (ZhaoLan) 5 Body/Cloth/Hair 材质
陈丽华 (ChenLiHua) 4 Body/Cloth/Hair/Item 材质
杜伦 (DuLun) 6 Body/Cloth/Hair (materials+textures 双目录)
张海潮 (ZhangHaiChao) 3 Body/Cloth/Hair 材质
梁萌 (LiangMeng) 3 B/Normal/RM 贴图
草帽姐 (CaoMaoJie) 5 帽子/兔子玩具/蟹笼等

涉及的动物

动物 文件数
羊驼 (Alpaca + Alpaca_Small) 4
小鸡 (Chick/Chicken/Chicken_01/Chicken_Old/Hen) 10
狗 (Dog) 2
其他T_White.tga 等通用贴图) 3

分辨率变化(全量 1888 文件)

缩放倍数分布

缩小倍数 文件数 占比 像素缩减 说明
2x(如 2048→1024 649 34.6% 75% 最常见,相对温和
4x(如 2048→512 428 22.8% 93.75%
8x(如 2048→256 266 14.2% 98.4%
16x(如 2048→128, 512→32 232 12.4% 99.6% 激进
32x(如 1024→32 147 7.8% 99.9% 极度激进
64x(如 2048→32, 4096→64 149 7.9% 99.98% 几乎清零

28%528 个文件)被缩小 16 倍以上即从常规贴图变成了极小图32px-128px基本等同于纯色占位。

压缩后分辨率分布

新分辨率 文件数 占比 说明
256×256 417 22.1% 最常见目标分辨率
32×32 387 20.5% 第二多 — 大量贴图被压到 32px
128×128 300 15.9%
512×512 295 15.6%
1024×1024 231 12.2%
64×64 172 9.1%
2048×2048 34 1.8% 仅 4096→2048 和少数不变
其他 52 2.8%

20.5% 的文件387 个)被压到 32×32,加上 64×64172 个),意味着近 30% 的贴图在视觉上等同于纯色方块

极端案例

文件 旧分辨率 新分辨率 缩放 旧大小 新大小
T_White.tga×2 2048×2048 32×32 64x 16.0 MB 4 KB
赵晴法线/ORM 系列10 文件) 2048×2048 32×32 64x 12.0 MB 3 KB
T_Default_N.png 2048×2048 32×32 64x 12.6 MB 2.5 KB
T_Cliff_Large_C/N/R.png 2048×2048 32×32 64x 7-11 MB 1-1.4 KB
T_OakTree_Bark_01_A.png 4096×4096 64×64 64x 21.7 MB 63 KB
T_Grass1_BC.png×3 4096×4096 64×64 64x 18.5 MB 103 KB
8192×4096 地形贴图×2 8192×4096 512×256 16x

关键结论

  1. 压缩极度激进91.1% 的空间节省71% 文件被压缩到原尺寸 25% 以下
  2. 99.4% 的文件被降低分辨率1876/1888 文件分辨率下降
  3. 近 30% 贴图等同纯色387 个文件被压到 32×32172 个到 64×64视觉上已无纹理细节
  4. 最常见的操作是缩小 2 倍649 文件)和 4 倍428 文件),但仍有 528 个文件被缩小 16 倍以上
  5. 大量贴图被替换为占位图:数十个文件从 10+ MB 缩减为几 KB尤其是法线贴图和 ORM 贴图
  6. 覆盖面极广NPC 角色7+个、动物、场景、UI、特效、AIGC 食材全部涉及
  7. NPC 法线图清零风险最高:赵晴等角色的法线/ORM 贴图从 12 MB 压到 3 KB意味着角色表面细节凹凸、金属度、粗糙度完全丢失
  8. 场景大面积贴图(草地、树皮、岩石)压缩比也极高T_Grass1_BC 从 18.5 MB → 103 KBT_OakTree_Bark 从 21.7 MB → 63 KB
  9. 仅 1 个文件变大NongChang 地表权重图,属正常更新
  10. 此提交标注为"测试贴图压缩":说明是实验性质,但如果直接上线将严重影响画面质量

打包设置相关

当前项目没有自定义的 build_settings.jsonCook_Content 目录下不存在),所以完全使用 default_pack_settings.json 的默认值:

┌─────────────┬───────────────┬────────────────────────┐ │ 参数 │ 默认值 │ 含义 │ ├─────────────┼───────────────┼────────────────────────┤ │ ASTC 块大小 │ ASTC_RGBA_8x8 │ ~2 bpp中等质量 │ ├─────────────┼───────────────┼────────────────────────┤ │ 编码质量 │ level: 0 │ fastest — 最低编码努力 │ ├─────────────┼───────────────┼────────────────────────┤ │ Mipmap │ false │ 不生成 │ └─────────────┴───────────────┴────────────────────────┘

实际执行的压缩命令等价于:

  nximagep.exe astcenc -i <src> -pfd ASTC_RGBA_8x8 -format ktx -level 0
      -filter bilinear -profile ldr_srgb -swizzle rgba -threads 0 -force -o <output>

注意:代码中 pfd 的 fallback 默认值写的是 ASTC_RGBA_4x4builder.py:2099但 JSON 配置文件明确写了 ASTC_RGBA_8x8实际走的是 JSON 值。

ASTC 8x8 意味着什么

┌────────┬──────────┬──────────┬──────────────────────┐ │ 块大小 │ 比特率 │ 像素量比 │ 质量描述 │ ├────────┼──────────┼──────────┼──────────────────────┤ │ 4x4 │ 8.00 bpp │ 基准 │ 最高,接近原始 │ ├────────┼──────────┼──────────┼──────────────────────┤ │ 6x6 │ 3.56 bpp │ 44% │ 高质量 │ ├────────┼──────────┼──────────┼──────────────────────┤ │ 8x8 │ 2.00 bpp │ 25% │ 中等,细节有可见损失 │ ├────────┼──────────┼──────────┼──────────────────────┤ │ 10x10 │ 1.28 bpp │ 16% │ 低质量 │ ├────────┼──────────┼──────────┼──────────────────────┤ │ 12x12 │ 0.89 bpp │ 11% │ 最低 │ └────────┴──────────┴──────────┴──────────────────────┘

8x8 比 4x4 的数据量少 75%,对高频细节(法线贴图、文字纹理、渐变色)会出现可见的块状伪影。加上 level=0最差编码搜索实际质量比 8x8 理论上限还要差一些。

Mipmap 不开启

"mipmap": false — 构建管线不会生成 mipmap 链。

这意味着:

  • 如果源贴图本身带 mipmap如 DDS 格式ASTC 重编码后 mipmap 是否保留取决于 nximagep 工具的行为(可能丢失)
  • 如果源贴图不带 mipmap如 PNG/TGA输出一定没有 mipmap
  • 没有 mipmap 会导致远处物体贴图闪烁aliasing、GPU 缓存命中率下降、带宽浪费

相关Commit

  • SVN
    • 张子涵
      • r3164 (2026-04-03 11:16:25 +0800) — nongchang后处理设置优化分级
      • r3165 (2026-04-03 11:17:21 +0800) — 全局阴影设置优化分级
      • r3180 (2026-04-03 11:45:59 +0800) — (无提交信息)
      • r3248 (2026-04-03 16:50:52 +0800) — 游戏内所有场景都使用了移动端阴影和后处理设置
      • r3261 (2026-04-03 17:34:03 +0800) — 场景阴影和后处理效果分级批量设置
      • r3268 (2026-04-03 17:57:18 +0800) — 后处理和阴影设置上传
      • r3440 (2026-04-07 17:39:33 +0800) — nongchang场景模型lod参数优化适配移动端
      • r3598 (2026-04-08 14:58:05 +0800) — 调整weed的lod
      • r3978 (2026-04-10 11:11:47 +0800) — mesh顶点压缩后上传
    • 程侃
      • SVN
        • r3306 (2026-04-03 23:03:14 +0800) — refs #1363 全场景材质覆盖合批优化fork gim 消除 CustomMaterialFiles 合批阻断,覆盖 38 个场景约 7200 个模型引用
        • r3319 (2026-04-06 23:06:54 +0800) — refs #1363 【4月测试需求】程序-性能优化-测试贴图压缩
          • /newdemo/farm/games/trunk/res/ue_export_common/CaravanSandwitch/MaterialLibrary/Common/ (M:12, 共 12 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/UnpackAessets/CaravanSandwitch/MaterialLibrary/Common/ (M:9, 共 9 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/LiTieShan/materials/ (M:8, 共 8 文件)
          • /newdemo/farm/games/trunk/res/Model/scene/Battery/Tex/ (M:6, 共 6 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/BathHouse/HotSpring/Textures/ (M:6, 共 6 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/SacredTree/SacredTreeLake/ (M:6, 共 6 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/LiangXiuLan/materials/ (M:5, 共 5 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/ZhaoLan/materials/ (M:5, 共 5 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/Materials/Scene/Landscape/Tex/ (M:5, 共 5 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/Materials/ (M:5, 共 5 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/ChenLiHua/materials/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/effect/texture/mask/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/BlazingHighlands/Environment/Village/Materials/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/Characters/girl/Textures/V2/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/Marketplace/BlazingHighlands/Environment/Village/Materials/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/SacredTree/ (M:4, 共 4 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/DuLun/materials/ (M:3, 共 3 文件)
          • /newdemo/farm/games/trunk/res/Character/NPC/ZhangHaiChao/materials/ (M:3, 共 3 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/Carpenter/WoodStack/ (M:3, 共 3 文件)
          • /newdemo/farm/games/trunk/res/ue_export_common/ProjectCoral/Art/Buildings/Ambient/Coral_Inn/Textures/ (M:3, 共 3 文件)
          • (另有 60 文件变更在其他目录)
        • r3417 (2026-04-07 16:56:50 +0800) — refs #1363 【4月测试需求】程序-性能优化-测试贴图压缩-回退ui
      • Git
        • aa9e6b12 (2026-04-07) refs #1363 画质档位改为高中低三挡,低档关闭阴影
          • client/consts/const_graphic.py
          • client/debug/GMCommandHandle.py
          • client/helper/SceneRenderHelper.py
        • da9a031b (2026-04-08) refs #1363 低画质LOD偏移+1三档画质显式设置LOD配置保证幂等
          • client/helper/SceneRenderHelper.py
        • 8951e2e9 (2026-04-08) refs #1363 pub_design包默认中画质三档后处理细分(bloom/dof/taa)低档分辨率降至0.5
          • client/demo.py
          • client/helper/SceneRenderHelper.py
        • c2ccbeb8 (2026-04-14) refs #0 画质控制GM重构每个渲染功能独立开关+虚拟文件夹,保留原渲染指令
          • client/debug/GMCommandHandle.py
          • client/debug/gm_modules/GMGraphic.py
          • client/debug/gm_modules/__init__.py
          • client/helper/SceneRenderHelper.py

AI提示词

张子涵

程侃代码分析

仔细分析./script/的git仓库中的以下提交会对渲染效果产生什么样的影响并且告诉会为什么移动平台的渲染效果会比PC编辑器中差那么多是不是有什么劣化逻辑导致移动端的渲染设置比PC低很多

  • aa9e6b12 (2026-04-07) refs #1363 画质档位改为高中低三挡,低档关闭阴影
    • client/consts/const_graphic.py
    • client/debug/GMCommandHandle.py
    • client/helper/SceneRenderHelper.py
  • da9a031b (2026-04-08) refs #1363 低画质LOD偏移+1三档画质显式设置LOD配置保证幂等
    • client/helper/SceneRenderHelper.py
  • 8951e2e9 (2026-04-08) refs #1363 pub_design包默认中画质三档后处理细分(bloom/dof/taa)低档分辨率降至0.5
    • client/demo.py
    • client/helper/SceneRenderHelper.py
  • c2ccbeb8 (2026-04-14) refs #0 画质控制GM重构每个渲染功能独立开关+虚拟文件夹,保留原渲染指令
    • client/debug/GMCommandHandle.py
    • client/debug/gm_modules/GMGraphic.py
    • client/debug/gm_modules/__init__.py
    • client/helper/SceneRenderHelper.py