elkraneo/RCPComponentDiffFixtures
GitHub: elkraneo/RCPComponentDiffFixtures
用于逆向工程 Reality Composer Pro 组件字段映射的 USDA fixture 数据集,通过差异对比提供 UI 控件到文件结构的确证映射。
Stars: 1 | Forks: 0
# 组件字段探索 Fixtures
本仓库是一个用于逆向工程 Reality Composer Pro (RCP) Inspector 字段的 fixture 实验室。
其目的是通过为每个组件/字段变更存储小型的、受控的 `.usda` 快照,然后对比这些快照以识别以下内容,从而使字段行为**可观察且可重复**:
- 实际序列化的字段键/路径 (key/path)
- 具体数据类型(bool, token, float, vector, asset reference 等)
- 当单个 Inspector 值发生变化时,RCP 如何重写相邻数据
## 为什么存在这个仓库
在构建 Deconstructed 的 Inspector 时,猜测 schema 细节是不可靠的。RCP 可以规范化值、重新排序部分内容、输出默认值以及改变相关字段。这套 fixture 集为我们提供了从 UI 控件到 USDA 结构的基于证据的映射。
简而言之:这个仓库是文章和实现工作所使用的基准真相 (ground truth)。
## 这里面有什么
- `Package.realitycomposerpro/`:
- RCP 文档元数据(`ProjectData/main.json`,工作区状态)
- `Sources/RCPComponentDiffFixtures/RCPComponentDiffFixtures.rkassets/`:
- 按组件和字段变体分组的 Fixture USDA 文件
- 典型模式:
- `BASE.usda` = 组件的基线
- 变体文件(`Intensity.usda`、`MaskAll.usda` 等) = 一个受控的变更
- 有时有 `ALL.usda` = 组合状态参考
示例:
- `Directional Light/BASE.usda` vs `Directional Light/Intensity.usda`
- `Collision/Filter/Mask/Default.usda` vs `Collision/Filter/Mask/All.usda`
- `Physics Body/Mode/Static.usda`、`Dynamic.usda`、`Kinematic.usda`
## Fixture 方法
1. 从已知的基线(`BASE.usda`)开始。
2. 在 RCP 中更改一个 Inspector 字段。
3. 保存并导出结果 USDA 快照。
4. 对比基线与变体。
5. 记录发现的映射(字段路径、类型、值编码、副作用)。
## 这对 Deconstructed 有何帮助
- 基于真实数据驱动 Inspector 字段类型建模。
- 防止解析器/编辑器逻辑更改时出现回归。
- 暴露我们需要为兼容性保留的 RCP 写入时转换。
- 为文档和文章参考提供可复现的示例。
## 注意事项
- 文件有意包含从真实工具输出中捕获的边缘和不一致命名情况。
- 将文件系统 fixtures 视为事实来源;文档索引(`main.json`)有用但不是存在的权威依据。
标签:3D图形编程, Apple visionOS, Augmented Reality, Homebrew安装, iOS开发, Reality Composer Pro, Schema Discovery, SOC Prime, USDA, Xcode, 云资产清单, 差分分析, 序列化, 开发工具, 文件格式分析, 格式映射, 测试固件, 空间计算, 逆向工程