- Introduced color_image.py for preparing standalone color images for tests. - Added hdr_image.py to create HDR textures for testing. - Implemented test_image_depth_panorama.py to evaluate panorama topology, UVs, and depth discontinuities. - Created test_shadeless.py to validate the opacity and HDR color endpoints of the Shadeless group. - Developed moge3_export.py for exporting dynamic MoGe-3 backbone and ONNX graphs. - Added material.py to inherit material slots onto generated geometry. - Built image_depth_panorama.py to construct a quad panorama with depth separation and sampling.
2.9 KiB
2.9 KiB
1. 公共颜色图流程
- 1.1 在 common 中统一按范围导出、独立加载、命名与打包的颜色产物流程,明确临时目录所有权;测试整图和局部裁切的尺寸、RGB、Alpha、独立 Image 身份及原路径隔离。
- 1.2 实现 byte PNG 和 float / HDR EXR 的精度与解释配对,复用适合的公共像素和编码能力;验证 generated、dirty、packed、透明 RGB、HDR 动态范围及材质配置后的保存重载,保留 float / HDR 源解释,无法无损往返时明确拒绝,替换原普通 float 重载 xfail。
- 1.3 保留公共材质函数对已准备 Color 的配置及节点绑定职责,验证 inverse / sRGB 回退、Alpha 配对、Panorama HDR 保留和源 Image 设置不变。
2. 接入材质入口
- 2.1 将普通与 AI Cutout 接入同一裁切颜色产物,协调分析输入与异步文件生命周期;同源同范围测试确认两条路径颜色一致、透明 RGB 保留,推理分辨率不改变颜色分辨率。
- 2.2 将 Plane、Depth Plane、Relief Plane 和 Panorama 接入整图范围流程,移除转换原图复用及相应恢复分支,保留异步源身份校验;验证不同共享用户下原图不变、四个入口使用独立
_colorImage。 - 2.3 将 Plane 限定为静态图片并清理该入口帧参数及仅供材质动画使用的路径;测试 Movie、Sequence 单帧与多帧输入在创建临时资源前被拒绝,静态转换与 Operator 注册正常。
- 2.4 将剪贴板 Plane 接入整图颜色产物,确保结果不携带缓存身份;测试创建材质后绘制再粘贴为参考图、节点或笔刷,得到原始剪贴板内容。
3. 剪贴板缓存有效性
- 3.1 为新缓存建立内容指纹,按输入哈希筛选后核对当前像素、尺寸、颜色空间与 Alpha;测试未变内容复用、变化内容跳过、透明 RGB 变化、旧缓存缺少指纹和候选读取失败,验证读取不改变候选状态。
- 3.2 补充实际编辑后的重复粘贴测试,覆盖 Mask 覆盖原 Image、已打包编辑结果、共享 Empty 保留原图、尺寸修改及原生绘制;确认原始粘贴内容正确且编辑结果保留。
4. 生命周期与最终验证
- 4.1 验证导出、加载、模型、材质和对象创建失败以及 Job 取消的资源清理,确认原图与源对象保持有效;通过临时目录删除后的保存重载及转换 Undo / Redo 测试。
- 4.2 添加“生成材质 → 绘制 → 再按原文件路径导入”的回归,包含原 Image 已删除场景,验证不会命中材质 Color;检查所有材质入口及重复实现的最终引用。
- 4.3 更新受影响测试并运行全量
uv run pytest,确认正常退出;检查最终差异、旧引用和 OpenSpec 严格校验,保留工作区已有修改。
验证结果:uv run pytest 共 1162 项通过,退出码 0;OpenSpec 严格校验通过。