1313 lines
61 KiB
Markdown
1313 lines
61 KiB
Markdown
---
|
||
title: 未命名 1
|
||
date: 2026-04-19 17:14:40
|
||
excerpt:
|
||
tags:
|
||
rating: ⭐
|
||
status: inprogress
|
||
destination:
|
||
share: false
|
||
obsidianUIMode: 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+ 场景 |
|
||
|
||
#### 矿洞系列 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 |
|
||
|
||
#### 关键结论
|
||
|
||
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 = 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`**
|
||
|
||
```python
|
||
graphic_level: int = GraphicLevel.HIGH
|
||
```
|
||
|
||
所有环境的起始值都是 HIGH。
|
||
|
||
**2) 唯一的自动降级 — `demo.py:30-33`**
|
||
|
||
```python
|
||
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`**
|
||
|
||
```python
|
||
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 | — | — |
|
||
|
||
## 关键结论
|
||
|
||
1. **压缩极度激进**:91.1% 的空间节省,71% 文件被压缩到原尺寸 25% 以下
|
||
2. **99.4% 的文件被降低分辨率**:1876/1888 文件分辨率下降
|
||
3. **近 30% 贴图等同纯色**:387 个文件被压到 32×32,172 个到 64×64,视觉上已无纹理细节
|
||
4. **最常见的操作是缩小 2 倍(649 文件)和 4 倍(428 文件)**,但仍有 528 个文件被缩小 16 倍以上
|
||
5. **大量贴图被替换为占位图**:数十个文件从 10+ MB 缩减为几 KB,尤其是法线贴图和 ORM 贴图
|
||
3. **覆盖面极广**:NPC 角色(7+个)、动物、场景、UI、特效、AIGC 食材全部涉及
|
||
4. **NPC 法线图清零风险最高**:赵晴等角色的法线/ORM 贴图从 12 MB 压到 3 KB,意味着角色表面细节(凹凸、金属度、粗糙度)完全丢失
|
||
5. **场景大面积贴图(草地、树皮、岩石)压缩比也极高**:T_Grass1_BC 从 18.5 MB → 103 KB,T_OakTree_Bark 从 21.7 MB → 63 KB
|
||
6. **仅 1 个文件变大**:NongChang 地表权重图,属正常更新
|
||
7. **此提交标注为"测试贴图压缩"**:说明是实验性质,但如果直接上线将严重影响画面质量
|
||
|
||
# 打包设置相关
|
||
当前项目没有自定义的 build_settings.json(Cook_Content 目录下不存在),所以完全使用 default_pack_settings.json 的默认值:
|
||
|
||
┌─────────────┬───────────────┬────────────────────────┐
|
||
│ 参数 │ 默认值 │ 含义 │
|
||
├─────────────┼───────────────┼────────────────────────┤
|
||
│ ASTC 块大小 │ ASTC_RGBA_8x8 │ ~2 bpp,中等质量 │
|
||
├─────────────┼───────────────┼────────────────────────┤
|
||
│ 编码质量 │ level: 0 │ fastest — 最低编码努力 │
|
||
├─────────────┼───────────────┼────────────────────────┤
|
||
│ Mipmap │ false │ 不生成 │
|
||
└─────────────┴───────────────┴────────────────────────┘
|
||
|
||
实际执行的压缩命令等价于:
|
||
```bash
|
||
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.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` |