61 KiB
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之间的变化,请详细列出
- ./neox.xml
- ./res/scene/ 下所有Scn的渲染相关设置变化以及同名PostProcess文件的变化。
- ./res/GlobalRenderComponentsConfig.xml
综合趋势
- 性能全面降档:Bloom/TAA High→Low, 关闭 SSAO 滤波和全分辨率, DOF Bokeh→Gaussian, 关闭 Lensflare — 针对移动端的后处理降级
- 阴影系统统一化:全局 CSM 2048→1024 / 4级→1级,49 个场景统一新增 CSMSceneSetting (距离40, 指数3)
- 室内场景 VVGI 引入:9 个室内场景新增体素全局光照 + 实时方向灯 + 面光源,从烘焙光照转向实时 GI
- 室内场景重构:room/LivestockRoom 等移除室外大气/云雾配置,改为纯室内照明方案
- 矿洞场景整改:天空 Legacy→SkyBox(紫色调)、DOF 降级、Lensflare 关闭
- 顶点压缩全局化:neox.xml 开启 CompressedVertexDataEnable + EnableVAT
- 脚本加载重构:从 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+ 场景 |
矿洞系列 DOFComponent(Bokeh → 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。
BloomComponent(26 个场景)
- 19 个场景:Quality High→Low, EnableAntiFlickering 0→1
- 7 个场景(Room_01, beach01, farm, lunlunroom, map_01, resident01, town02):从无到有新增完整 Low 品质 Bloom 配置
TAAComponent(26 个场景)
- 19 个场景:TaaQuality High→Low, EnableBicubic 1→0
- 7 个场景:从无到有新增完整 Low 品质 TAA 配置
- MINE_B02-B04, MINE_B06 额外新增/修改顶层 TaaQuality
SSAOComponent(26 个场景)
- 19 个场景:UseFilter 1→0,其中 8 个矿洞场景同时 UseFullResolution 1→0
- 7 个场景:从无到有新增完整 SSAO 配置(HBAO, UseFilter=0, UseFullResolution=0)
DOFComponent(11 个场景)
| 设置路径 | 旧值 | 新值 | 涉及场景 |
|---|---|---|---|
| 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) |
VVGIComponent(10 个场景新增)
与 .scn 中的 VVGI 配置一致。额外:
- Town03:GIMethodType=TraceWorldProbe, IndirectIntensity=2.0, LocalLightGIScale=2.0
- ironroom:IndirectIntensity=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.scn(1 个文件)
| 参数 | 变更前 | 变更后 | 说明 |
|---|---|---|---|
| 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.xml(1 个文件)
| 参数 | 变更前 | 变更后 | 说明 |
|---|---|---|---|
| CSM PerLayerResolution | 2048 | 1024 | 阴影贴图分辨率减半 |
| CSM LayerCount | 4 | 1 | 级联层级从 4 降到 1 |
| SoftShadowLevel | Max | High | 软阴影精度降低 |
| 影响:全局生效,所有场景的阴影质量直接受影响。单级联 + 1024 分辨率在远处阴影边缘可能出现明显锯齿。 |
r3180 — NongChang_003 参数微调
文件: res/scene/NongChang_003.scn(1 个文件)
| 参数 | 变更前 | 变更后 | 说明 |
|---|---|---|---|
| TAA EnableYCoCg | 0 | 1 | 恢复 YCoCg(r3164 关掉后又开回来) |
| 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=0(LOD 过渡动画 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) | 0(LODType=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
材质文件同步变更:新增 ShaderMacro(ALPHA_TEST_ENABLE、TWO_SIDED、ALPHA_BLEND_ENABLE 显式声明)和 RenderTechs(DeferredGBuffer、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 |
关键结论
- NongChang_003(主农场)和 neighbor01/neighborH(邻居场景)受影响最大,超过 12 个模型的 LOD 阈值被调整
- 石头类模型(stone_b/e/g)影响面最广,覆盖 19-22 个场景(几乎所有室外场景 + 全部矿洞)
- SM_BushBig_02 和 SM_TreeOak01_S03 各覆盖 9 个场景,是植被中影响面最大的
- 建筑模型(House_Player/Online)影响 4-5 个场景,玩家房屋在多个场景可见
- 约一半模型(22/44)不在 .scn 中直接引用,通过 UE Actor 管线或 Cenarius 植被系统加载,但 LOD 设置同样生效
- 矿洞系列 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 = 1,LOW 从 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.py 的 modify_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
否则 => 保持 HIGH(GlobalData 默认值)
场景加载 (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.HIGH(GlobalData.py:69)- PC 编辑器 / 开发者本地 →
IS_DESIGN_TEST=False, IS_RELEASE=False→ 默认 HIGH - 策划体验包(pub_design)→
IS_DESIGN_TEST=True, IS_RELEASE=True→_init_graphic_level()强制降为 MEDIUM(demo.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.png,21.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 系列法线/ORM(10 个文件) |
| 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、BaseColor(8套服装) |
| 李铁山 (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×64(172 个),意味着近 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 | — | — |
关键结论
- 压缩极度激进:91.1% 的空间节省,71% 文件被压缩到原尺寸 25% 以下
- 99.4% 的文件被降低分辨率:1876/1888 文件分辨率下降
- 近 30% 贴图等同纯色:387 个文件被压到 32×32,172 个到 64×64,视觉上已无纹理细节
- 最常见的操作是缩小 2 倍(649 文件)和 4 倍(428 文件),但仍有 528 个文件被缩小 16 倍以上
- 大量贴图被替换为占位图:数十个文件从 10+ MB 缩减为几 KB,尤其是法线贴图和 ORM 贴图
- 覆盖面极广:NPC 角色(7+个)、动物、场景、UI、特效、AIGC 食材全部涉及
- NPC 法线图清零风险最高:赵晴等角色的法线/ORM 贴图从 12 MB 压到 3 KB,意味着角色表面细节(凹凸、金属度、粗糙度)完全丢失
- 场景大面积贴图(草地、树皮、岩石)压缩比也极高:T_Grass1_BC 从 18.5 MB → 103 KB,T_OakTree_Bark 从 21.7 MB → 63 KB
- 仅 1 个文件变大:NongChang 地表权重图,属正常更新
- 此提交标注为"测试贴图压缩":说明是实验性质,但如果直接上线将严重影响画面质量
打包设置相关
当前项目没有自定义的 build_settings.json(Cook_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_4x4(builder.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.pyclient/debug/GMCommandHandle.pyclient/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.5client/demo.pyclient/helper/SceneRenderHelper.py
c2ccbeb8(2026-04-14) refs #0 画质控制GM重构:每个渲染功能独立开关+虚拟文件夹,保留原渲染指令client/debug/GMCommandHandle.pyclient/debug/gm_modules/GMGraphic.pyclient/debug/gm_modules/__init__.pyclient/helper/SceneRenderHelper.py
- SVN
- 张子涵
AI提示词
张子涵
程侃代码分析
仔细分析./script/的git仓库中的以下提交会对渲染效果产生什么样的影响?并且告诉会为什么移动平台的渲染效果会比PC编辑器中差那么多?是不是有什么劣化逻辑导致移动端的渲染设置比PC低很多?
aa9e6b12(2026-04-07) refs #1363 画质档位改为高中低三挡,低档关闭阴影client/consts/const_graphic.pyclient/debug/GMCommandHandle.pyclient/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.5client/demo.pyclient/helper/SceneRenderHelper.py
c2ccbeb8(2026-04-14) refs #0 画质控制GM重构:每个渲染功能独立开关+虚拟文件夹,保留原渲染指令client/debug/GMCommandHandle.pyclient/debug/gm_modules/GMGraphic.pyclient/debug/gm_modules/__init__.pyclient/helper/SceneRenderHelper.py