Added model bevel‑edge highlighting and precise picking module 新增模型斜棱线高亮与精确拾取模块 - #113
Conversation
WhereisFff
commented
Sep 7, 2026
- 新增独立 cube 模块,接入 Gradle 工程、CI 模块清单与砧库聚合包
- 提供按命名空间启用及按方块排除的客户端 API,默认同时启用模型轮廓与精确拾取
- 支持父模型继承、cube 旋转与缩放补偿、反向描边壳、根变换、随机变体及 multipart 状态组合
- 提取公共凸体几何、BVH 射线查询和并集棱线算法,去除内部棱线与共享接缝并合并共线线段
- 按几何内容去重,不同整体朝向共享基础几何与轮廓,分离世界位置以保持大坐标下的绘制精度
- 接管准星方块射线,使其穿过模型空隙并发现邻格伸出部件,保留实体距离比较、流体选取及普通射线行为
- 提供可选 BER 部件接口,复用局部几何并通过姿态矩阵同步拾取与高亮
- 使用单线程后台生成轮廓,限制任务数量、计算工作量、缓存占用和绘制线段数量,超预算时采用轻量回退
- 在资源重载和退出世界时清理缓存与任务,阻止过期结果写入新缓存
- 更新中英文 README,补充模块功能与接入说明
- 新增独立 cube 模块,接入 Gradle 工程、CI 模块清单与砧库聚合包 - 提供按命名空间启用及按方块排除的客户端 API,默认同时启用模型轮廓与精确拾取 - 支持父模型继承、cube 旋转与缩放补偿、反向描边壳、根变换、随机变体及 multipart 状态组合 - 提取公共凸体几何、BVH 射线查询和并集棱线算法,去除内部棱线与共享接缝并合并共线线段 - 按几何内容去重,不同整体朝向共享基础几何与轮廓,分离世界位置以保持大坐标下的绘制精度 - 接管准星方块射线,使其穿过模型空隙并发现邻格伸出部件,保留实体距离比较、流体选取及普通射线行为 - 提供可选 BER 部件接口,复用局部几何并通过姿态矩阵同步拾取与高亮 - 使用单线程后台生成轮廓,限制任务数量、计算工作量、缓存占用和绘制线段数量,超预算时采用轻量回退 - 在资源重载和退出世界时清理缓存与任务,阻止过期结果写入新缓存 - 更新中英文 README,补充模块功能与接入说明
Reason: script execution via -e/-c flag Reply |
🌿 Roseau API Breaking Change Report
|
Reason: script execution via -e/-c flag Reply |
|
PR #113 的状态为 closed( 按约束第 1 条「如果操作是 closed 或 labeled,stop here,不要发布评论」及 |
代码审查摘要 — PR #113操作: opened 🔴 关键问题
|
| 声称 | 状态 | 说明 |
|---|---|---|
| 独立 cube 模块接入 Gradle/CI/聚合包 | ✅ | settings.gradle / modules.json / module.main jarJar |
| 按命名空间启用 + 按方块排除客户端 API | ✅ | enableNamespace / exclude / registerDynamic |
| 父模型继承 | ✅ | BlockModel.getElements 展开父模板(建议冒烟确认 cube_all 类方块被捕获) |
| cube 旋转与缩放补偿 | 实现存在,但 origin 未 /16 使旋转错位(P1) | |
| 反向描边壳/反向 from-to | ✅ | ConvexShape.box 对无序 AABB 顶点集不变,几何正确 |
| 随机变体 / multipart 状态组合 | 结构与实现完整,但随机消费与渲染不一致 | |
| 公共凸体几何 + BVH 射线 + 并集棱线算法 | ✅ | ConvexShape / SelectionGeometry / OutlineBuilder |
| 去内部棱线/共享接缝 + 共线合并 | ✅ | isVisibleEdge + mergeSegments |
| 按几何内容去重、分离世界位置 | ✅ | intern + PackedOutline 无世界坐标 |
| 接管准星射线、保留实体/流体/普通射线 | ✅ | 仅 redirect GameRenderer.pick 内 Entity.pick,范围>64 与重入均回退 |
| BER 部件接口(BlockSelectionProvider) | ✅ | 姿态矩阵同步拾取与高亮、bounds 校验 [-2,3] |
| 单线程后台轮廓 + 预算 + 轻量回退 | ✅ | 100ms / 100 万次操作 / fallback |
| 重载与退世界清理、防过期写入 | ✅ | epoch + cancel + clearWorld |
| README 中英文更新 | ✅ | 双语模块说明 |
结论: REQUEST_CHANGES — 代码质量与架构设计整体很高,但两个数学错误直击核心声称:旋转 origin 单位错配(16 倍偏移,使"旋转 cube 支持"大面积失效或产生错误几何)与法线变换缺转置(非均匀缩放部件的面朝向错误)。修复这两处并补充一次真实客户端冒烟验证(门/活板门等旋转模型的轮廓与拾取、加权变体一致性)后即可合并。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
CubeModelDecoder.decode |
带元素旋转(origin≠0、22.5°/45°、rescale)的模型:几何与视觉对齐 | 🔴 |
SelectionPart.clip |
非均匀缩放+旋转部件的命中面法线(朝向 Direction 正确) | 🔴 |
ModelSelection.Weighted.collect |
多变体方块拾取/轮廓与渲染变体一致 | 🟡 |
CubePicking.pick |
伸出邻格部件命中、实体更近优先、空隙穿透不误中后格 | 🟡 |
OutlineCache |
超预算回退、资源重载期间无过期结果写入、退世界线程干净退出 | 🟡 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |