用户指南

第 6 章 — 训练配置

导出为 JSON 并在 TextEdit 中显示的 Preview 预设 — 字段 id/name/category/version/createdAt/description,trainingConfig 含所有相关参数 (maxIterations 5000、densifyUntilIteration 3500、ssimWeight 0.20、renderScale 0.50、strategy classic、cameraAlignment applePhotogrammetry、densifyGradThreshold 2.0e-06、opacityResetInterval 3000、minOpacity 0.005,六个 Bool 开关)
导出为 JSON 并在 TextEdit 中显示的 Preview 预设 — 字段 id/name/category/version/createdAt/description, trainingConfig 含所有相关参数 (maxIterations 5000、densifyUntilIteration 3500、 ssimWeight 0.20、renderScale 0.50、strategy classic、cameraAlignment applePhotogrammetry、densifyGradThreshold 2.0e-06、opacityResetInterval 3000、 minOpacity 0.005,六个 Bool 开关)

一个典型的预设 JSON 导出。顶层字段:id (UUID)、name、(classic | mcmc | sceneClass | custom)、(schema 版本)、(时间戳)、 (自由文本)。嵌套对象包含对可复现性关键的参数 —— 导入时整个 块被反序列化为 TrainingConfig 结构,应用版本中的默认值 填充 JSON 中缺失的字段 (例如应用更新后)。要将预设传递给 另一台 Mac 的人,简单地发送此 JSON 文件即可。

TrainingConfig 结构是 RadianceKit 中每次训练运行的核心。 它收集影响训练的每个参数 —— 从最大迭代数到八个学习率, 直到 MCMC、Mip-Splatting、Curriculum 和场景感知 Cap 逻辑的 专门字段。您在侧栏的训练配置部分 (Expert View) 中编辑它, 将其保存为预设,或作为 JSON 导出传递给另一台 Mac。训练时, 正是这个对象被冻结并交给 GPU 后端。

本章是面向高级用户和脚本作者的参考资料。它列出所有 81 个 公共字段、9 个静态预设和一个公开方法。源文件是 TrainingConfig.swift —— 有疑问时,其中的 doc-comment 和 Initializer 默认值作为真理来源。

目录:

+ 迭代 (T1–T2) + 学习率 (T3–T10) + Densification — Classic (T11–T16) + Loss (T17–T20) + SH 度数推进 (T21) + 性能 (T22–T25) + 诊断和点云准备 (T26–T30) + 正则化 (T31–T37) + Refinement (T38–T44) + Sky-Dome (T45–T48) + Adam + LR 时间表 (T49–T55) + 后处理 + Apple AI (T56–T60) + MCMC Densification (T61–T73) + Mip-Splatting (Q1.5) (T74–T76) + 自适应 Densification (Q5) (T77–T79) + Curriculum (Q6) (T80–T81) + 静态预设 (TP1–TP9) + 方法: + 哪个字段做什么? (速查表) + 危险字段

迭代 (T1–T2)

T1maxIterations

详细信息

默认: 30 000 (Initializer)、35 000 (.full)、200 000 (.fullMCMC) 范围: 1 000 – 500 000 (UI 滑块),逻辑中无硬 上限 定义于:

技术细节

后端执行的训练迭代总数。一次迭代 指对单个训练相机的前向渲染、对所有 Loss 组件 (L1 + SSIM + 可选正则化 + Sky Mask) 的反向传递,以及一次 Adam Optimizer 步骤。该数字直接影响其他计划:位置学习率遵循从 0 到 T1 本身或 T49 positionLRScheduleEndIteration 的 Cosine Annealing 曲线;Densification 在 T2 densifyUntilIteration 停止;MCMC Noise Decay 在 T69 mcmcNoiseDecayEnd 结束; SH 度数升级发生在 T21 中定义的三个标记。在经典 Densification 下,经验上的甜点在 20 000–35 000 次迭代 (Sessions 1–32、V546 测试),在 MCMC 下为 60 000–200 000 (V534)。超过预设值的大幅增加很少带来额外质量 —— Adam 动量饱和,且无 LR Decay 结束时 Loss 停滞。反过来,低于 ~5 000 导致未充分收敛的几何 (Density Control 没足够时间 进行 Clone/Split)。

T2densifyUntilIteration

详细信息

默认: 15 000 (Initializer)、5 000 (.full)、160 000 (.fullMCMC) 范围: 0 – 定义于:

技术细节

Densification 停止的迭代。在此之前, Gaussians 按 T11–T16 (Classic) 或 T67–T70 (MCMC) 参数化 的规则被克隆、分裂和裁剪;之后 Gaussian 数保持恒定,仅优化 位置、旋转、缩放、Opacity 和 SH 系数 (Refinement 阶段)。 在 3DGS 原始论文中该值是 T1 的 50%,在 RadianceKit 的 .full 预设中只有 ~14% (35 000 中 5 000) —— V310/V338 实验的结果,显示 5 000 次迭代后进一步 Densification 反而 恶化结果 (更多 Floater、更多内存需求,无质量增益)。MCMC 则将 Relocation 运行到 T1 的 80% (V504b),因为 MCMC 不 产生有害 Floater。T2 过小 (< 1 000) 时产生太少 Gaussians; Classic 过大 (> T1 的 50%) 导致过度增长和 RGB 饱和 离群点 (见户外过训练发现)。

学习率 (T3–T10)

T3positionLearningRate

详细信息

默认: 0.00016 范围: 1e-7 – 1e-3 (推荐) 定义于:

技术细节

训练开始时 (迭代 0) 每个 Gaussian XYZ 位置的 Adam 学习率。遵循 Cosine Annealing 曲线,在训练 过程中降至 T4 positionLearningRateFinal。默认 0.00016 来自 3DGS 原始论文 (Kerbl et al. 2023),在 RadianceKit 中即使 提高图像分辨率也不需缩放 —— 位置在世界坐标系中移动,而 非像素空间。大幅增加 (> 0.0005) 会让 Gaussians 不稳定。

T4positionLearningRateFinal

详细信息

默认: 1.6e-6 (Initializer)、1.6e-5 (.full.fullMCMC) 范围: 1e-8 – 1e-3 定义于:

技术细节

位置学习率衰减的终止值。 Cosine Annealing 从 T3 衰减到此值。.full 中 10× 高于 Initializer 默认 (V45),使较长训练保持有用学习。

T5shDCLearningRate

详细信息

默认: 0.0025 范围: 1e-5 – 1e-2 定义于:

技术细节

SH DC 系数 (每 Gaussian 的基础 RGB 颜色) 的 Adam 学习率。比位置学习率高 ~15×,因为颜色 变化对 Loss 影响更直接。.full 中 2× (V188)。

T6shRestLearningRate

详细信息

默认: 0.000125 范围: 1e-6 – 1e-3 定义于:

技术细节

SH 高阶系数 (1–3 度,方向相关 反射) 的学习率。比 DC 低 20× —— 高阶 SH 是细微细节,需要 更稳定的优化。.full 中 2× (V188)。

T7opacityLearningRate

详细信息

默认: 0.05 范围: 0.001 – 0.5 定义于:

技术细节

每 Gaussian 透明度 (sigmoid 前的 原始 Logit) 的 Adam 学习率。高 (0.05),因为透明度是 1D 且 快速调节关键 (失效的 Gaussians 应快速变为 0)。.full 中 2× (V188)。

T8opacityLearningRateFinal

详细信息

默认: 0.05 范围: 0.001 – 0.5 定义于:

技术细节

Opacity 学习率的衰减目标 (实际 为常量,因 default 等于 T7)。默认情况下无 Opacity Annealing。

T9scaleLearningRate

详细信息

默认: 0.005 范围: 1e-4 – 0.05 定义于:

技术细节

每 Gaussian 缩放 (对数空间中的三个 轴) 的 Adam 学习率。.full 中 2× (V188)。

T10rotationLearningRate

详细信息

默认: 0.001 范围: 1e-5 – 0.01 定义于:

技术细节

每 Gaussian 旋转 (wxyz 四元数) 的 Adam 学习率。.full 中 2× (V188)。

Densification — Classic (T11–T16)

T11densifyGradThreshold

详细信息

默认: 2e-6 (Initializer)、1.1e-6 (.full) 范围: 1e-7 – 1e-4 定义于:

技术细节

Classic Densification 中触发 Clone 或 Split 的位置梯度阈值。高 → 更少 Gaussians,低 → 更多。 必须与 T22 trainingRenderScale 匹配 (1.0× → 1e-6,0.5× → 2e-6,0.25× → 4e-6)。减半可产生 2–4× Gaussians,可能耗尽 GPU 内存。

T12densifyFromIteration

详细信息

默认: 500 范围: 0 – 5 000 定义于:

技术细节

Densification 启动的迭代。 首次 500 迭代是 Warmup,场景大致定位,无 Densify。

T13densifyInterval

详细信息

默认: 100 (Initializer)、200 (.full) 范围: 50 – 500 定义于:

技术细节

Densification Pass 之间的迭代 间隔。.full 中 V112 调到 200,以减少 Floater。

T14pruneOpacityThreshold

详细信息

默认: 0.005 (Initializer)、0.001 (.full) 范围: 0.0001 – 0.05 定义于:

技术细节

Prune 时间步移除 Gaussians 的 最小 Opacity。.full 0.001 (V393) 移除较少 (更保留), 保持更多细节。

T15opacityResetInterval

详细信息

默认: 3 000 (Initializer)、100 000 (.full.preview) 范围: 100 – 1 000 000 定义于:

技术细节

Opacity 全局重置的间隔 (Inverse-Sigmoid 0.01)。默认 3 000 来自 3DGS 论文,但破坏 RadianceKit 的短训练 —— V194 在 .full 中禁用 (100 000 = 有效关闭)。危险字段:在 < 10K 训练中 < 100K 值破坏收敛。

T16maxScreenSize

详细信息

默认: 20 范围: 5 – 100 定义于:

技术细节

Gaussian 最大屏幕大小 (像素), 超过则强制 Split。

Loss (T17–T20)

T17ssimWeight

详细信息

默认: 0.2 (Initializer)、0.05 (.fullMCMC) 范围: 0.0 – 1.0 定义于:

技术细节

SSIM 损失 vs L1 损失的权重。 0.2 来自原始论文。MCMC 用更低 (0.05) 以让 L1 主导 (V521b/V534)。

T18ssimWeightRefinement

详细信息

默认: 0.2 范围: 0.0 – 1.0 定义于:

技术细节

Refinement 阶段 (Densify Until 后) 的 SSIM 权重。可不同于 Densification 阶段。

T19edgeLossWeight

详细信息

默认: 0.0 范围: 0.0 – 1.0 定义于:

技术细节

Sobel 边缘 Loss 的额外权重。 保持 0,因为带来 Floater。

T20skyMaskingEnabled

详细信息

默认: false 定义于:

技术细节

启用基于 Apple Vision 的天空掩码。 详见第 3 章 S7。

SH 度数推进 (T21)

T21shDegreeUpgradeIterations

详细信息

默认: [1000, 2000, 3000] (Initializer)、[2000, 5000, 8000] (.full.fullMCMC) 定义于:

技术细节

SH 度数从 0 升到 1、1 到 2、2 到 3 的迭代时间表。早期升级在低分辨率下不太有效。V228 推迟到 2K/5K/8K 改进结果。

性能 (T22–T25)

T22trainingRenderScale

详细信息

默认: 1.0 (Initializer)、0.5 (.preview)、0.25 (.quickTest) 范围: 0.25 – 1.0 定义于:

技术细节

训练渲染分辨率缩放。详见 I22。

T23resolutionWarmupScale

详细信息

默认: 0.5 范围: 0.25 – 1.0 定义于:

技术细节

Warmup 阶段的初始 Render Scale。 之后逐步升到 T22

T24tileSize

详细信息

默认: 16 范围: 8 – 32 定义于:

技术细节

GPU Tile 渲染的 Tile 大小。 16×16 经过 Apple Silicon 优化。

T25throttleDelayMs

详细信息

默认: 0 范围: 0 – 100 定义于:

技术细节

迭代之间的人为毫秒延迟。 详见 S6。

诊断和点云准备 (T26–T30)

T26depthDistortionWeight

详细信息

默认: 0.0 范围: 0.0 – 1.0 定义于:

技术细节

深度扭曲正则化权重。在 Q1.5 中评估,无明显胜利,保持 0。

T27singleViewOverfit

详细信息

默认: false 定义于:

技术细节

仅对单个视图训练以诊断。 Debug 工具,不用于生产。

T28maxCameras

详细信息

默认: 0 (无限制) 范围: 0 – 10 000 定义于:

技术细节

训练相机数的硬上限。0 = 无限制。 用于子集采样。

T29maxInitialPoints

详细信息

默认: 0 (无限制) 范围: 0 – 1 000 000 定义于:

技术细节

SfM 初始点云的硬上限。 0 = 全部。在大点云上有用。

T30cameraClusterOutlierMultiplier

详细信息

默认: 5.0 范围: 1.0 – 20.0 定义于:

技术细节

相机离群点检测中的距离 乘数 (比 cluster 中位数远多少倍视为离群点)。

正则化 (T31–T37)

T31coarseToFineBlurRadius

详细信息

默认: 0 范围: 0 – 10 定义于:

技术细节

训练目标的模糊半径 (Coarse-to-Fine)。

T32scaleRegWeight

详细信息

默认: 0.0 范围: 0.0 – 0.1 定义于:

技术细节

Gaussian 尺度的正则化权重。 V549f 测试灾难性,保持 0。

T33anisotropyRegWeight

详细信息

默认: 0.0 (Initializer)、0.1 (.full) 范围: 0.0 – 1.0 定义于:

技术细节

各向异性正则化权重 (S9 通过 UI 启用)。.full V438 启用。

T34scaleRatioPruneThreshold

详细信息

默认: 10.0 范围: 2.0 – 50.0 定义于:

技术细节

Scale 比例阈值,超过则 Prune 针状 Gaussians。

T35opacityRegWeight

详细信息

默认: 0.0 范围: 0.0 – 0.1 定义于:

技术细节

Opacity 稀疏性正则化权重 (强制接近 0)。

T36opacityDecayFactor

详细信息

默认: 0.0 (Initializer)、0.9995 (.full.fullMCMC) 范围: 0.0 – 1.0 定义于:

技术细节

每次 Densify 循环后 Opacity 衰减 因子 (HTGS,Eurographics 2025)。.full 14% L1 改进 (V546)。

T37opacityDecayInterval

详细信息

默认: 50 范围: 10 – 500 定义于:

技术细节

Opacity Decay 的间隔。 V546 中 50 最优。

Refinement (T38–T44)

T38gradientAccumulationSteps

详细信息

默认: 1 (Initializer)、2 (.fullMCMC) 范围: 1 – 4 定义于:

技术细节

梯度累积的视图数。 2 = MCMC Quality (V544a,6% 改进)。

T39testViewIndices

详细信息

默认: [] 定义于:

技术细节

Holdout 评估的测试视图索引。 危险字段:手动设置可使基准测试无用 (所有索引 > N)。 让 –benchmark 标志设置。

T40refinementPruneInterval

详细信息

默认: 0 (Initializer)、1000 (.full) 范围: 0 – 5000 定义于:

技术细节

Refinement 阶段中的 Prune 间隔。 .full 1000 = V438 引入。

T41refinementPruneOpacityThreshold

详细信息

默认: 0.005 范围: 0.0001 – 0.05 定义于:

技术细节

Refinement Prune 的 Opacity 阈值。

T42midTrainingCompactificationIterations

详细信息

默认: [] (Initializer)、[20000, 30000] (与 S8 一起) 定义于:

技术细节

中期训练 Compactification 的迭代列表。详见 S8。

T43frustumCullEnabled

详细信息

默认: false 定义于:

技术细节

训练相机视锥外的 Gaussians 被 Cull。仅 CLI。

T44frustumCullExpansion

详细信息

默认: 1.2 范围: 1.0 – 3.0 定义于:

技术细节

Frustum 扩展因子,以保留 临界外区域的 Gaussians。

Sky-Dome (T45–T48)

T45skyDomeEnabled

详细信息

默认: false 定义于:

技术细节

启用 V549e Sky-Dome 投影。 详见 S10。

T46skyDomeSampleCount

详细信息

默认: 5000 范围: 1000 – 20000 定义于:

技术细节

Sky-Dome 上要初始化的 Gaussians 数。

T47skyDomeRadiusMultiplier

详细信息

默认: 8.0 (Initializer)、59.0 (P9 Outdoor) 范围: 1.0 – 100.0 定义于:

技术细节

Sky-Dome 半径,作为场景半径 的倍数。

T48frozenGaussianCount

详细信息

默认: 0 范围: 0 – 1 000 000 定义于:

技术细节

前 N 个 Gaussians 不被优化 (冻结)。用于 Sky-Dome MVP 中的天空 Gaussians。当前未连接 到 Optimizer。

Adam + LR 时间表 (T49–T55)

T49adamResetIteration

详细信息

默认: 0 (无) 范围: 0 – 100 000 定义于:

技术细节

重置 Adam 矩的迭代。 0 = 永不重置。

T50positionLRScheduleEndIteration

详细信息

默认: 0 (= T1)、20 000 (.full)、160 000 (.fullMCMC) 定义于:

技术细节

位置 LR Cosine Annealing 的 结束迭代。0 = 与 T1 相同。.full V431 调到 20K。

T51extendedPhaseLRDecay

详细信息

默认: false 定义于:

技术细节

Refinement 阶段中的额外 LR 衰减。

T52adaptiveDensifyThreshold

详细信息

默认: 0.0 范围: 0.0 – 1.0 定义于:

技术细节

自适应 Densify 阈值, 用 Q5 自适应 Densification 启用。

T53mergeAfterDensification

详细信息

默认: false 定义于:

技术细节

Densification 后合并步骤。 不推荐。

T54densifyPhase2FromIteration

详细信息

默认: 0 范围: 0 – 50 000 定义于:

技术细节

两阶段 Densification 的 第二阶段开始。危险字段:测试中级联到 0 Gaussians。

T55densifyPhase2UntilIteration

详细信息

默认: 0 范围: 0 – 50 000 定义于:

技术细节

两阶段 Densification 的 第二阶段结束。危险字段。

后处理 + Apple AI (T56–T60)

T56postTrainingCompactification

详细信息

默认: true (.full, .fullMCMC)、false (其他) 定义于:

技术细节

启用 V443 后训练 Compactification。 详见 I26。

T57metalFXUpscaling

详细信息

默认: true 定义于:

技术细节

视口 MetalFX 放大。详见 I27。

T58mpsLanczosScaling

详细信息

默认: false 定义于:

技术细节

视口 MPS Lanczos 放大。详见 I28。

T59livePreviewInterval

详细信息

默认: 0 (Off) 范围: 0 – 10 000 定义于:

技术细节

Live Preview 更新间隔。详见 S5。

T60perceptualLossWeight

详细信息

默认: 0.0 范围: 0.0 – 0.2 定义于:

技术细节

Perceptual Loss 权重。详见 I29。

MCMC Densification (T61–T73)

T61densificationStrategy

详细信息

默认: .classic 选项: .classic, .mcmc 定义于:

技术细节

Densification 策略选择。 详见 I15。MCMC = NeurIPS 2024。

T62mcmcMaxGaussians

详细信息

默认: 150 000 (.fullMCMC)、1 189 511 (P8)、1 250 744 (P9) 范围: 0 – 5 000 000 定义于:

技术细节

MCMC 模式中 Gaussian 数硬上限。 0 = 使用 Mass-Extinction-Floor 150K。Cap 通过 resolveMcmcMaxGaussians 用 SfM 初始点数和 Buffer 容量 解析。

T63mcmcNoiseScale

详细信息

默认: 5e-5 (.fullMCMC)、5.61e-05 (P8) 范围: 1e-6 – 1e-3 定义于:

技术细节

MCMC 随机噪声尺度。 V467/V536 最优。

T64mcmcOpacityRegWeight

详细信息

默认: 0.0 范围: 0.0 – 0.1 定义于:

技术细节

MCMC Opacity 正则化权重。 危险字段:1.4.3 中 0.01 导致 Mass Extinction (460K → 5)。 1.4.4 起固定为 0。

T65mcmcScaleRegWeight

详细信息

默认: 0.0 范围: 0.0 – 0.1 定义于:

技术细节

MCMC Scale 正则化权重。 危险字段:与 T64 一同导致 1.4.3 Mass Extinction。固定为 0。

T66mcmcRelocationInterval

详细信息

默认: 100 (Initializer)、50 (Q7 sweeps) 范围: 10 – 500 定义于:

技术细节

MCMC Relocation Pass 之间的 间隔。

T67mcmcWarmupIterations

详细信息

默认: 500 范围: 0 – 5 000 定义于:

技术细节

MCMC Relocation 启动前的 Warmup。

T68mcmcDeadOpacityThreshold

详细信息

默认: 0.005 (Initializer)、0.01 (.fullMCMC) 范围: 0.0001 – 0.1 定义于:

技术细节

Gaussian 在 MCMC 中视为 "死"的 Opacity 阈值,因此可重定位。V535 最优。

T69mcmcNoiseDecayEnd

详细信息

默认: 0 (Initializer)、160 000 (.fullMCMC) 范围: 0 – 1 000 000 定义于:

技术细节

MCMC 噪声衰减结束的迭代。 80% T1 (V497c/V502)。

T70mcmcGrowthRate

详细信息

默认: 0.05 范围: 0.01 – 0.5 定义于:

技术细节

每个 Relocation 通过的 MCMC 增长率。

T71mcmcSigmoidK

详细信息

默认: 100 范围: 10 – 1000 定义于:

技术细节

MCMC 采样深度选择的 Sigmoid 因子 K。

T72mcmcCapMultiplier

详细信息

默认: 3.0 (.fullMCMC)、2.98 (P8)、5.32 (P9)、1.76 (P10) 范围: 0.5 – 20.0 定义于:

技术细节

MCMC Cap 与 SfM 初始点数的 乘数 (Auto-Scale 启用时)。Outdoor 5.32 仅在 Bicycle 156K init 点时工作 → 830K Cap。危险字段。

T73mcmcAutoScaleByScene

详细信息

默认: false (Initializer)、true (.fullMCMC) 定义于:

技术细节

启用 MCMC 自动按场景缩放。 详见 I17。

Mip-Splatting (Q1.5) (T74–T76)

T74useMipSplatting

详细信息

默认: false 定义于:

技术细节

启用 Mip-Splatting (Q1.5)。 2026-05-25 closed no-win。某些户外场景甚至降低 PSNR。

T75mipSmoothing3DScale

详细信息

默认: 0.2 范围: 0.05 – 0.5 定义于:

技术细节

Mip 3D 平滑缩放。

T76mipFilter2DVariance

详细信息

默认: 0.3 范围: 0.1 – 0.6 定义于:

技术细节

Mip 2D 过滤方差。

自适应 Densification (Q5) (T77–T79)

T77adaptiveDensification

详细信息

默认: false 定义于:

技术细节

启用 Q5 自适应 Densification。 单独 fail,与 Q6 一起 pass 1/3。

T78adaptiveWindow

详细信息

默认: 1000 范围: 100 – 5000 定义于:

技术细节

自适应 Densification 的 滑动窗口。

T79adaptiveDensifyMultiplier

详细信息

默认: 2.0 范围: 1.0 – 10.0 定义于:

技术细节

自适应 Densify 乘数。

Curriculum (Q6) (T80–T81)

T80curriculumResolutionRamp

详细信息

默认: false 定义于:

技术细节

Q6 课程学习中的分辨率 渐进。Q6 是 Q5+Q6 包的承载者。

T81curriculumSHProgression

详细信息

默认: false 定义于:

技术细节

Q6 课程学习中的 SH 推进。

静态预设 (TP1–TP9)

此处仅显示与 Initializer 默认值的结构差异。十个 UI 预设 P1–P10 的完整营销描述见第 7 章。

TP1.preview

详细信息

~10 GB RAM 以上系统的诊断/预览预设。覆盖:30 000 → 5 000、 15 000 → 3 500 (T1 的 70%)、T4 1.6e-6 → 1.6e-5 (10× 高,更少 激进衰减)、T5/T6/T7/T9/T10 各 2× (V176)、T15 3 000 → 100 000 (有效关闭,V172:Reset 破坏短训练)、T21 [1K, 2K, 3K][1K, 2K] (V182:Degree 3 不在 2K 中收敛)、T22 1.0 → 0.5

TP2.full

详细信息

生产质量 Classic。覆盖:30 000 → 35 000 (V550)、15 000 → 5 000 (V310 甜点)、所有 LR 2× (V188)、T4 1.6e-6 → 1.6e-5 (V45)、 T11 2e-6 → 1.1e-6 (V335)、T13 100 → 200 (V112)、T14 0.005 → 0.001 (V393)、T15 3 000 → 100 000 (V194)、T21 → [2K, 5K, 8K] (V228)、T36 0.0 → 0.9995 (V546 HTGS,14% 改进)、T33 → true (V438)、T40 0 → 1000 (V438)、T50 0 → 20 000 (V431)、T56 → true (V443)

TP3.fullClassicPaper

详细信息

Q1.5-A 测试,TP2 的兄弟,论文忠实 Classic。覆盖 TP2: T1 35 000 → 30 000、T2 5 000 → 15 000 (论文 50% T1)、T4 → 1.6e-6 (论文默认)、T5/T7/T9 回到论文默认 (0.05, 0.005, 0.001)、 T11 1.1e-6 → 2e-7 (校准到 Bicycle 上 ~1-2M Gs)、T13 200 → 100、T14 0.001 → 0.005、T15 100 000 → 3 000 (论文 §5.2,有风险)、 T36 0.9995 → 0.0、T50 20 000 → 30 000 (Cosine 跑 100% T1)

TP4.fullMCMC

详细信息

生产质量 MCMC。覆盖 Initializer:T1 30 000 → 200 000 (V534)、T2 15 000 → 160 000 (V504b 80%)、T4 → 1.6e-5、LR 时间表如 TP2、T17 0.2 → 0.05 (V521b/V534)、T21 → [2K, 5K, 8K]、 T61 → .mcmc、T62 150 000、T63 5e-5 (V467/V536)、T68 0.005 → 0.01 (V535)、T69 0 → 160 000、T72 3.0、T73 true、T15 3 000 → 200 000

TP5.fullMCMCMip

详细信息

Q1.5-D 测试,TP4 的兄弟,带 Mip-Splatting + 论文级 MCMC 预算。覆盖 TP4:T62 150 000 → 1 500 000 (10×)、T74 false → true

TP6.classicBalanced

详细信息

中等档 Classic。覆盖 TP2:T1 35 000 → 20 000 (V149)、 T50 20 000 → 0 (Cosine 跑 T1 = 20K,无扩展阶段)

TP7.mcmcPreview

详细信息

MCMC 诊断。覆盖 TP4:T1 200 000 → 60 000 (V494b)、T2 160 000 → 48 000 (80%)、T62 150 000 → 100 000 (V473b)、T69 160 000 → 40 000 (V494b)、T72 3.0 → 2.0

TP8.mcmcBalanced

详细信息

中等档 MCMC。覆盖 TP4:T1 200 000 → 120 000 (V518)、 T2 160 000 → 96 000 (80%)、T69 160 000 → 96 000 (80%)、T72 3.0 → 2.5

TP9.quickTest

详细信息

纯功能测试。覆盖 Initializer:T1 30 000 → 1 000、T2 15 000 → 500、 T11 2e-6 → 4e-6 (校准到 0.25× 分辨率)、T13 100 → 50、T15 3 000 → 100 000 (关闭,因为太短)、T22 1.0 → 0.25

方法: resolveMcmcMaxGaussians

签名: public func resolveMcmcMaxGaussians(initialPointCount: Int, bufferCapacity: Int) -> Int 定义于:

"MCMC 最多可让多少 Gaussians 生长?"问题的 唯一真理来源。从三个输入计算:配置的 T62 mcmcMaxGaussians (Mass-Extinction-Floor 150 000,如果 0)、(SfM 初始点数) 和 (预分配 Gaussian 缓冲区大小)。逻辑:

+ base = T62 > 0 ? T62: 150_000 (Mass-Extinction-Floor 防止 Initializer 默认 bug 如 1.4.3 Mass Extinction 事件) + 如果 T73 mcmcAutoScaleByScene && initialPointCount > 0 && T72 mcmcCapMultiplier > 0: - scaled = max(base, ceil(initialPointCount × T72)) 否则 + 如果 bufferCapacity > 0:return min(scaled, bufferCapacity) + 否则 return scaled

示例:Bicycle (Mip-NeRF 360,194 帧照片) → SfM-init ~156K 点,T62 = 150 000T72 = 5.32、Buffer 容量 8M。Resolved Cap = min(8M, max(150K, ceil(156K × 5.32))) = min(8M, 830K) = 830K。这是 MCMC Relocation 逻辑遵守的有效增长 Cap。

计算 MCMC 中的实际最大 Splat 数。接受您的设置,查看场景初始有多少点,并按 Multiplier 缩放 (如果自动适应启用)。这样 Cap 适应场景, 而非对小场景和巨大场景强制相同值。您无需自己调用方法 —— 训练内部使用它。

哪个字段做什么? (速查表)

目标要调的字段
远处更多细节T62 mcmcMaxGaussians 高、 T72 mcmcCapMultiplier 5+
一般更多细节 (Classic)T1 maxIterations 高 (≤ 40K)、 T2 densifyUntilIteration ≤ T1 的 14%
减少无人机飞行中的 FloaterT43 frustumCullEnabled 开、 T20 skyMaskingEnabled 开、T45 skyDomeEnabled
户外场景中漂亮的天空T45 skyDomeEnabled 开、 T47 skyDomeRadiusMultiplier 30–60
更小的导出文件策略 .mcmc (T61)、 T56 postTrainingCompactification 开、T62 mcmcMaxGaussians ≤ 200K
更快训练T22 trainingRenderScale 0.5、 T1 maxIterations 减半 — 但不要两个都做!
更好的高光T21 shDegreeUpgradeIterations[2K, 5K, 8K] (无早期前载)、MCMC + 200K iter
保持 Mac 响应T25 throttleDelayMs 5–10 (消耗 ~15% 训练时间)
更频繁的 Live 预览T59 livePreviewInterval 降到 10–20
阴影中更柔和的过渡T17 ssimWeight 略高 (0.15–0.25),但不超过 0.3
保持室内紧凑P10 Indoor 预设 (、 T72 = 1.76)

危险字段

这些字段在错误配置时可能导致 OOM、应用崩溃、Gaussians Mass Extinction 或无用基准数据。需谨慎处理:

- T11 densifyGradThreshold — 减半可产生 2–4× Gaussians,迅速耗尽 GPU 内存。还要注意:必须与 T22 trainingRenderScale 匹配 (1.0× → 1e-6、0.5× → 2e-6、 0.25× → 4e-6)。 - T72 mcmcCapMultiplier — 大场景 > 200K SfM 初始点和 Multiplier > 5 时产生数百万 Gaussians 的 Resolved Cap。在 36 GB RAM Mac 上可能 OOM。Outdoor 预设 5.32 仅因为 Mip-NeRF-360-Bicycle 有 156K init 点 → 830K Cap。 - T39 testViewIndices — 手动设置可使基准 无用 (所有 indices > N → 无 Holdouts)。让 –benchmark 标志设置。 - T64 mcmcOpacityRegWeightT65 mcmcScaleRegWeight — 1.4.3-Beta 设为 0.01 导致 Mass Extinction (一次迭代 中 460K → 5 Gaussians)。自 1.4.4 起固定为 0.0,但手动 增加可重现该问题。 - T15 opacityResetInterval — 如果不是 100 000+ (有效关闭) 且训练短于 10 000 迭代,Reset 破坏收敛。.preview 因此设为 100 000,尽管 maxIterations = 5 000。 - T54/T55 densifyPhase2* — 两阶段 Densification 在测试中级联到 0 Gaussians。两者保持 0。 - T74 useMipSplatting — Q1.5 closed-no-win 2026-05-25,在某些户外场景上甚至降低 PSNR。默认关闭, 仅研究 opt-in。

如果某字段在此列表上且您要更改,先备份当前预设 (导出为 JSON) 并考虑能否可复现地测量结果 —— 否则之后您不知道您是带来 改进还是恶化。