RadianceKit 用户指南

第 1 章 — 菜单栏

RadianceKit 的菜单栏汇集了所有不直接位于主窗口或检查器中的功能。 主要是作用于整个场景的操作 (打开、保存、新建项目)、控制训练 (开始、暂停、继续)、操作视口 (自动旋转、截图、背景颜色) 以及 触发到各种 3D 与媒体格式的导出。此外还有指向所有辅助窗口 (User Guide、Pareto Dashboard、Holdout Analysis、BayesOpt Console) 的快捷入口。

键盘快捷键显示在每个菜单条目右侧。约定: 表示 Command 键 (苹果键), 是 Shift, 是 Option (Alt), 是 Control。 例如:⇧⌘T 表示 Shift+Command+T。此处记录的所有快捷键还可 通过 Help → Keyboard Shortcuts (⌘/) 在专门的概览窗口中 查看。

下面 42 个条目按照清单顺序 (M1–M42) 记录,按所属顶级菜单 分组。所有条目均已对照当前代码状态在 (175–477 行) 中 验证。没有条目被移除或相对清单过时;新的 Edit 菜单条目 (对应"Remove Image"的 Cmd-Z) 由系统 NSUndoManager 框架接管, 因此不会出现在 RadianceKitApp 代码中 (参见本章末尾的注释)。

File 菜单

已展开的文件菜单 — 条目 M1 至 M6
已展开的文件菜单 — 条目 M1 至 M6

File 菜单将 Apple 的标准"New Window"条目替换为项目特有的操作。 它包括加载/保存场景、一个动态的最近列表、Workspace 导入,以及 硬性重置到空状态。

M1File > Open Scene…

位置

菜单栏 → File → Open Scene… (⌘O)。

技术细节

打开一个文件对话框,支持 RadianceScene 包、.ply.splat.spz 格式。单选, 可同时显示文件和目录 (用于包格式)。选择成功后,路径会被加入 最近列表,场景被异步加载 —— 之前的场景被替换,训练流水线 以加载的状态初始化。PLY/SPZ/Splat 文件通过相应的格式加载器 读取;.radiancescene 包是一个含 manifest、点云快照和 SfM 结果的目录。

M2File > Save Scene…

位置

菜单栏 → File → Save Scene… (⌘S)。

技术细节

打开一个文件保存对话框,Content-Type 为 RadianceScene 包,文件名预填为 scene.radiancescene。 写出一个目录包,包含 manifest.json、序列化的 Gaussian-Cloud (PLY 快照) 以及 SfM 结果的转储,使得重新打开后也能继续训练。 若尚不存在 Gaussians,此条目被禁用。不保存到训练日志路径, 而是保存到对话框指向的位置 —— 通常是 ~/Documents/ 下。

M3File > Open Recent > [场景名称]

位置

菜单栏 → File → Open Recent → (列表)。

技术细节

动态子菜单,根据最近打开过的 路径列表 (存储在设置中) 生成。每个列表条目以文件名命名, 单击即加载。列表为空时,出现禁用标签"No Recent Scenes"。 按 Apple 惯例,列表保留最近 N 个打开过的场景 —— 限制在 写入设置时发生,而非菜单构建时。

M4File > Open Recent > Clear Recent

位置

菜单栏 → File → Open Recent → Clear Recent。

技术细节

清空设置中的最近列表。立即生效, 没有确认对话框。该条目仅在最近列表中有条目时出现在子菜单中 (位于路径之后的一个分隔线下)。

M5File > Import COLMAP / Metashape Workspace…

位置

菜单栏 → File → Import COLMAP / Metashape Workspace… (⇧⌘I)。

技术细节

打开文件夹选择器。期望一个具有 COLMAP Workspace 布局的文件夹 (例如 sparse/0/cameras.{bin,txt}images/)。选择后会对 Workspace 进行预检 —— 识别三种布局 (sparse/0/sparse/、根目录) 以及重建是二进制 (cameras.bin) 还是 ETH3D 文本 (cameras.txt)。成功后导入 Workspace;否则 仅在应用日志中出现警告。完整流水线逻辑见第 9 章"SfM 后端"中 的 Q6。

M6File > New Project

位置

菜单栏 → File → New Project (⇧⌘N)。

技术细节

检查是否有未保存的工作。如果有, 在丢失任何数据前出现确认对话框。如果没有要保存的内容, 直接执行重置 —— 清空导入的图像、SfM 结果、Gaussian-Cloud、 训练状态以及所有相关的 UI 指示器。注意:用户创建的预设库 保留下来,因为它位于应用设置中而非项目状态中。

Mode 菜单

模式菜单,带 Simple 与 Expert Mode 切换
模式菜单,带 Simple 与 Expert Mode 切换

两个在引导式 Simple Mode (向导式,4 步) 和完整 Expert Mode (带所有调节项的经典检查器布局) 之间切换的简单开关。

M7Mode > Simple Mode

位置

菜单栏 → Mode → Simple Mode (⌘1)。

技术细节

将应用状态切换到 Simple Mode。 应用的主区域随即显示引导式工作流程而非专家布局。模式状态 保存在设置中 (参见第 3 章设置中的 S1"Default Mode")。

M8Mode > Expert Mode

位置

菜单栏 → Mode → Expert Mode (⌘2)。

技术细节

将应用状态切换到 Expert Mode。 随即出现具有所有 Section 的完整检查器布局 (Presets、 TrainingConfig、Enhancements、Metrics、LossChart、ProjectNavigator)。 在 Expert Mode 中,所有训练参数、COLMAP 选择器、Mid-Compact 开关和诊断功能均可访问。Live-Preview 也仅在此模式中可用。

Training 菜单

训练菜单,含 Continue 子菜单 — 条目 M9 至 M14
训练菜单,含 Continue 子菜单 — 条目 M9 至 M14

围绕训练运行的四个操作:开始、暂停、取消,以及延长指定的 迭代次数。所有三个 Continue 条目均受 IAP 限制 (在免费试用版 中无法点击)。

M9Training > Start Training

位置

菜单栏 → Training → Start Training (⇧⌘T)。

技术细节

异步启动训练流水线。前提:存在 SfM 结果且当前没有其他流水线在运行。任一条件不满足都会 禁用此条目。启动时读取当前配置值,在 ~/Documents/RadianceKit/Logs/training_YYYY-MM-DD_HHmmss.jsonl 处创建新的 JSONL 日志,并根据策略选择执行 Classic 或 MCMC 路径。训练状态从"idle"切换到"training"。

M10Training > Pause Training

位置

菜单栏 → Training → Pause Training。

技术细节

暂停正在运行的训练。仅在训练 状态为"training"时启用。暂停会在下一个安全同步点处停止 迭代循环,保留完整的 GPU 状态 (Gaussian-Buffer、Optimizer 矩、Scheduler 位置),并切换到"paused"。再次按下即恢复 (条目标题是静态的 —— 但应用在实际逻辑中切换 Pause/Resume)。 暂停的训练不会在应用退出后保留;此时请保存场景,稍后通过 Continue Training 条目 (M12–M14) 扩展。

M11Training > Cancel Training

位置

菜单栏 → Training → Cancel Training。

技术细节

取消正在运行的训练。在训练 状态不为"idle"时启用。在训练引擎中设置 Cancel 标志, 使迭代循环在下一个同步点干净地结束,在 JSONL 日志中写入 最终的 Summary 条目,并将状态重置为"idle"。已经训练的点云 保留 (可保存或导出),但被标记为"cancelled"。

M12Training > Continue Training > +5 000 iterations

位置

菜单栏 → Training → Continue Training → +5,000 iterations。

技术细节

将训练继续 5 000 次迭代。 仅当已完成的训练可继续且完整版已解锁时启用。当存在已完成 训练且完整的 Optimizer 状态仍在内存中时可继续。继续时, Adam 矩与 LR-Scheduler 接续,使继续表现得像一次性的 25K/45K/60K 运行而非重新启动。JSONL 日志获得一个带增量设置 的新 Config 条目。仅在完整版中可用。

M13Training > Continue Training > +10 000 iterations

位置

菜单栏 → Training → Continue Training → +10,000 iterations。

技术细节

与 M12 相同,但增加 10 000 次 迭代。相同的前提条件,相同的 LR-Scheduler 路径。当初始 训练使用中等档位预设运行且您希望看到显著质量提升而不必 完全重新开始时推荐。

M14Training > Continue Training > +20 000 iterations

位置

菜单栏 → Training → Continue Training → +20,000 iterations。

技术细节

与 M12 / M13 相同,但增加 20 000 次迭代。是预设最大的 Continue 跨度。在 MCMC 训练中,这往往 能决定"够用"和"基准级"的差别;在 Classic 训练中,从 35–40K 之后经验上提升不大。

Viewport 菜单

视口菜单,带 Edit Mode、相机控制和背景子菜单
视口菜单,带 Edit Mode、相机控制和背景子菜单

控制 3D 视口:用于 Gaussian 选择和清理的 Edit Mode、相机 控制 (自动旋转、Playback、Recording)、截图、背景颜色和 重置。

M15Viewport > Enter/Exit Edit Mode

位置

菜单栏 → Viewport → Enter Edit Mode (或 "Exit Edit Mode",视状态而定)。⇧⌘E。

技术细节

该条目标题是动态的,根据状态 显示"Exit Edit Mode"或"Enter Edit Mode"。按下时在视口 渲染器上切换 Edit Mode。退出 Edit Mode 时同时重置当前选择。 Edit Mode 启用 Gaussian 的单击选择、Box-Selection 以及对 已标记 Gaussian 的删除 (参见 UI 的编辑区域)。在尚未连接 视口渲染器时禁用。

M16Viewport > Toggle Auto-Rotation

位置

菜单栏 → Viewport → Toggle Auto-Rotation (⌘⌥T)。

技术细节

开启或关闭视口相机围绕通过 场景中心的垂直轴的持续旋转。轴和速度来自相机控制配置。 自动旋转是纯视口效果,不影响训练或录制 —— 如果您同时使用 Turntable Video Recorder (M18),自动旋转正好提供 Recorder 捕获的路径。

M17Viewport > Toggle Camera Playback

位置

菜单栏 → Viewport → Toggle Camera Playback。

技术细节

切换相机路径回放。如果存在 已录制的相机路径 (例如来自先前的录制或因加载了 transforms.json), 该路径开始播放 —— 视口相机不再响应鼠标/触控板输入,而是 逐帧再现该轨迹。再次按下暂停回放。

M18Viewport > Record Turntable Video

位置

菜单栏 → Viewport → Record Turntable Video。

技术细节

切换视口录制。首次按下时 开始将帧录制到临时路径;再次按下时结束录制,编码并写入 MP4 路径 (通过保存对话框询问路径)。与 Export → Media → Orbit Video (M31) 不同 (它在可设置时长下生成固定 360° 路径),Turntable Recorder 实时录制您在视口中看到的内容 —— 因此您也可以录制手动相机运动。

M19Viewport > Save Screenshot

位置

菜单栏 → Viewport → Save Screenshot (⇧⌘S)。

技术细节

以完整渲染分辨率 (即并非 窗口像素布局,而是完整 Render-Target 的内容) 捕获单个视口帧 并保存为 PNG 文件。路径通过保存对话框询问。背景颜色 (M21–M23) 一并烤入图像。Enhancements 中的 MetalFX/MPS Upscaling 设置 (见 I27/I28) 若启用则生效 —— 截图显示放大后 的输出。

M20Viewport > Copy Camera Info

位置

菜单栏 → Viewport → Copy Camera Info。

技术细节

读取当前视口相机位姿 (位置、 Look-At 点、Up 向量) 以及相机控制中的 FOV 值,并将其以 多行文本写入剪贴板。格式是人类可读 (每行 label = value), 而非 JSON。对调试目的重现特定视角或与支持人员共享很实用。

M21Viewport > Background > Dark Gray

位置

菜单栏 → Viewport → Background → Dark Gray。

技术细节

将视口背景颜色设为深灰 (RGB 0.1/0.1/0.1)。渲染器使用此颜色作为 Gaussians 合成的背景。 应用启动时的默认颜色由设置选项 S3"Default Viewport Background" 控制。

M22Viewport > Background > Black

位置

菜单栏 → Viewport → Background → Black。

技术细节

将视口背景颜色设为纯黑 (RGB 0/0/0)。当场景有许多亮的漂浮物且您想识别它们时,或为带 深色感的营销材料,很有帮助。

M23Viewport > Background > White

位置

菜单栏 → Viewport → Background → White。

技术细节

将视口背景颜色设为纯白 (RGB 1/1/1)。当场景以暗色内容为主并且您想看到暗色漂浮物 (典型的户外背景噪声) 时有用。

M24Viewport > Reset Camera

位置

菜单栏 → Viewport → Reset Camera。

技术细节

重置视口相机,退出 Training Camera 视图,并停止自动旋转。这样相机回到初始位置 (典型: 位于场景前方略微俯视),自动旋转关闭,如果渲染器当前显示 的是 Training Camera (SfM 位姿之一),则回到自由相机。

Export 菜单

导出菜单,带三组子菜单 — 3D Formats、Media 和 Photogrammetry
导出菜单,带三组子菜单 — 3D Formats、Media 和 Photogrammetry

八个导出目标加两个 Photogrammetry 导出,分为三个部分 (3D Formats、Media、Photogrammetry)。前六个通过共享的辅助 例程构建,各自打开保存对话框并在格式目录中注册导出。 Photogrammetry 条目有独立逻辑。所有 Photogrammetry 以及 部分 3D 导出仅在完整版中可用。

M25Export > 3D Formats > Export PLY…

位置

菜单栏 → Export → 3D Formats → PLY (⌘E)。

技术细节

打开默认文件名为 gaussians.ply 的保存对话框。确定后将当前 Gaussian-Cloud 写入标准的 ASCII/Binary PLY 格式 —— 兼容 SuperSplat、PolyCam、PlayCanvas 以及所有常见 3DGS 查看器。完整的 SH 系数、完整精度 (每字段 Float32)。在 ≥ 500K Gaussians 时文件大小常达数百 MB。

M26Export > 3D Formats > Export Compressed PLY…

位置

菜单栏 → Export → 3D Formats → Compressed PLY。

技术细节

以 Compressed-PLY 格式写出 Gaussian-Cloud,带对位置、Scale、Rotation 和 SH 字段的 自定义量化。比未压缩 PLY (M25) 小 5–10 倍,视觉损失极小。 兼容 SuperSplat (它读取 Compressed-PLY 标准) 和 PlayCanvas。 标准文件名 gaussians_compressed.ply

M27Export > 3D Formats > Export SPZ…

位置

菜单栏 → Export → 3D Formats → SPZ。

技术细节

以 SPZ 格式写出 Gaussian-Cloud —— Niantic 发布的压缩 Splat 格式,带激进量化 (比未压缩 PLY 小 ~90 %)。主要为 Web 查看器和移动应用优化。兼容 Niantic Splatt3R、gsplat.js 和 Niantic 浏览器查看器。

M28Export > 3D Formats > Export glTF…

位置

菜单栏 → Export → 3D Formats → glTF。

技术细节

写出一个带 KHR_gaussian_splatting 扩展的 .glb 文件 (Binary-glTF)。符合标准,适合使用 glTF 引擎 (如 Babylon.js 或 Three.js) 并实现 KHR_gaussian_splatting 扩展的流水线。

M29Export > 3D Formats > Export .splat…

位置

菜单栏 → Export → 3D Formats → .splat。

技术细节

写出 Antimatter15 的 .splat 格式 —— 每 Gaussian 固定 32 字节 (位置 3× Float32、Scale 3× Float32、Rotation 4× Uint8 归一化四元数、RGB+Opacity 4× Uint8)。不存储高于 DC 的 SH 系数。最小的具备浏览器直接 兼容性的文件。用于 gsplat.js 和 antimatter15 在线演示查看器。

M30Export > 3D Formats > Export SOG…

位置

菜单栏 → Export → 3D Formats → SOG。

技术细节

以 SOG 格式写出 Gaussian-Cloud。 SOG ("Self-Organizing Gaussian") 是 PlayCanvas 格式,带 Texture-Atlas 布局和量化数据的 WebP 压缩。比 PLY 的尺寸 比好 15–20 倍。导出内部调用 cwebp 作为外部工具 —— 因此在沙盒变体 (App Store) 中可能受限。

M31Export > Media > Export Orbit Video…

位置

菜单栏 → Export → Media → Orbit Video。

技术细节

围绕场景中心渲染一个 360° 轨道 并将其编码为 MP4 (H.264) 或 MOV (HEVC,根据系统默认值)。 与 M18 (实时录制) 不同,这里的路径是固定的 —— 时长在设置中 或 Simple Mode Export 步骤中选择。

M32Export > Media > Export Web Viewer…

位置

菜单栏 → Export → Media → Web Viewer。

技术细节

将一个独立的 HTML 查看器 (基于 gsplat.js) 加上 base64 编码的 Gaussian 数据打包到 单个 .html 文件中。该文件在任何现代浏览器中离线运行 —— 无服务器依赖,无外部 URL。文件大小比 SPZ 变体大约 1.3 倍 (因 base64 开销)。

M33Export > Photogrammetry > Export SfM (transforms.json)…

位置

菜单栏 → Export → Photogrammetry → Export SfM (transforms.json)。

技术细节

独立的导出路径 (不经过共享 辅助例程),因为导出的不是 Gaussian-Cloud 而是 SfM 结果。 打开一个默认为 transforms.json 的保存对话框,Content-Type 为 json。确定后写出一个与 nerfstudio 兼容的 transforms.json, 含相机内参、位姿 (作为 NeRF 约定下的 4×4 矩阵) 和帧路径。 UI 中的帮助文本提示需将训练图像作为同级 images/ 文件夹 一起复制。仅在存在 SfM 结果且完整版已解锁时启用。

M34Export > Photogrammetry > Export SfM (COLMAP Workspace)…

位置

菜单栏 → Export → Photogrammetry → Export SfM (COLMAP Workspace)。

技术细节

打开默认名为 colmap-workspace (没有扩展名,因为是文件夹) 的保存对话框。写出一个标准的 COLMAP Workspace,含 sparse/0/cameras.binimages.binpoints3D.bin。允许在 Postshot、Nerfstudio 或 Meshroom 等其他工具中打开在 RadianceKit 中计算或导入的 SfM 重建, 或在 A/B 重新运行时作为已计算的输入重新加载到 RadianceKit 本身 (通过 M5) —— 节省计算时间。仅在存在 SfM 结果且完整版 已解锁时启用。

Help 菜单

帮助菜单,带文档、文件夹和分析条目
帮助菜单,带文档、文件夹和分析条目

七个条目:两个文档窗口 (User Guide、Keyboard Shortcuts)、 三个文件夹快捷方式 (Training Logs、Exports、Storage),以及 三个分析窗口 (Pareto Dashboard、Holdout Analysis、BayesOpt Console)。按 Apple 惯例,Help 菜单出现在最右侧。标准 Help 菜单被 RadianceKit 自有变体完全取代。

M35Help > User Guide

位置

菜单栏 → Help → User Guide (⌘?)。

技术细节

打开 User Guide 窗口。它显示 带主题侧边栏和滚动详情区的导航,默认尺寸 860×640。内容 是静态嵌入的 (不从 Markdown 解析)。

M36Help > Keyboard Shortcuts

位置

菜单栏 → Help → Keyboard Shortcuts (⌘/)。

技术细节

打开 Keyboard Shortcuts 窗口 —— 一个简单的滚动布局,列出所有应用快捷键,按顶级菜单 分组。默认尺寸 440×560。内容同样为静态嵌入。

M37Help > Open Training Logs…

位置

菜单栏 → Help → Open Training Logs… (⇧⌘L)。

技术细节

将日志文件夹计算为 ~/Documents/RadianceKit/Logs,必要时创建,并在 Finder 中打开。每次训练运行都会在那里写入一个独立的 JSONL 文件 training_YYYY-MM-DD_HHmmss.jsonl

M38Help > Open Exports Folder…

位置

菜单栏 → Help → Open Exports Folder…

技术细节

类似 M37,但使用 ~/Documents/RadianceKit/Exports。在首次自动测试运行或 首次点击时创建;之后所有自动测试导出的标准路径会落在那里 (例如 autotest_<timestamp>.ply)。通过保存对话框手动选择 的导出不一定进入此处,而是用户保存的位置 —— 因此此文件夹 主要对自动测试有意义。

M39Help > Manage Storage…

位置

菜单栏 → Help → Manage Storage…

技术细节

打开 Storage 浏览器 (参见 第 4 章辅助窗口,IDs W7–W12)。列出 ~/Documents/RadianceKit/ 中所有持久化的场景、训练日志、导出和缓存及大小,允许 对每个条目执行 Reveal-in-Finder 和 Move-to-Trash。

M40Help > Pareto Dashboard…

位置

菜单栏 → Help → Pareto Dashboard… (⇧⌘D)。

技术细节

打开 Pareto Dashboard (参见 第 4 章,IDs W13–W22)。该 Dashboard 从 ~/Documents/RadianceKit/Logs/ 加载所有 JSONL 训练日志, 按场景和预设分组,并绘制 Pareto 散点图 (默认:Loss 对 Gaussians,可选 Loss 对 Wallclock 或 PSNR 对 Iterations)。

M41Help > Holdout Analysis…

位置

菜单栏 → Help → Holdout Analysis… (⇧⌘H)。

技术细节

打开 Holdout 分析窗口 (参见第 4 章,IDs W23–W29)。加载一个 transforms.json, 将相机绘制为 3D 球面,并允许 Train/Test Fold 切分 (角度或线性,2–8 折)。输出是 fold-assignment.json, 训练可在相应训练配置中将其作为测试集使用。

M42Help > BayesOpt Console…

位置

菜单栏 → Help → BayesOpt Console… (⇧⌘B)。

技术细节

打开 BayesOpt 控制台 (参见 第 4 章,IDs W30–W39)。加载预定义的搜索空间 (例如"MCMC scale-reg + opacity-reg + ssim"),异步执行贝叶斯优化试验, 并实时显示收敛曲线和试验日志。

提示:Edit 菜单中的 Cmd-Z

自 2026 年 5 月起,Expert Mode 中的 Project Navigator 支持 通过减号按钮或 Backspace 键删除导入的图像,以及通过 Cmd-Z 撤销。该 Cmd-Z 操作在 macOS Edit 菜单 (由 SwiftUI 提供) 中 显示为"Undo Remove Image",前提是已删除的图像仍可恢复。 它通过标准的系统注册,而不在 ; 因此没有专门的 M-ID 清单条目。

键盘快捷键概览

菜单条目快捷键
File > Open Scene…⌘O
File > Save Scene…⌘S
File > Import COLMAP / Metashape Workspace…⇧⌘I
File > New Project⇧⌘N
Mode > Simple Mode⌘1
Mode > Expert Mode⌘2
Training > Start Training⇧⌘T
Viewport > Enter/Exit Edit Mode⇧⌘E
Viewport > Toggle Auto-Rotation⌘⌥T
Viewport > Save Screenshot⇧⌘S
Export > 3D Formats > PLY⌘E
Help > User Guide⌘?
Help > Keyboard Shortcuts⌘/
Help > Open Training Logs…⇧⌘L
Help > Pareto Dashboard…⇧⌘D
Help > Holdout Analysis…⇧⌘H
Help > BayesOpt Console…⇧⌘B

Edit 菜单 (系统提供,在 Expert Mode 且 Project Navigator 选中时):

操作快捷键
Undo Remove Image⌘Z
Remove Selected ImageBackspace / Delete