Repository navigation
Port Structure Projection Rendering to 26.1 移植结构投影渲染到26.1 - #134
Conversation
WhereisFff
commented
Sep 30, 2026
- 提供保留模型数据与流体邻接关系的投影场景和原生网格缓存
- 统一方块、流体、方块实体及实体的透明渲染与相机变换
- 支持资源重载失效、独立实例清理及预览方块光照管线
- 提供保留模型数据与流体邻接关系的投影场景和原生网格缓存 - 统一方块、流体、方块实体及实体的透明渲染与相机变换 - 支持资源重载失效、独立实例清理及预览方块光照管线
|
已合并关闭的 PR( |
代码审查摘要 — AnvilLib PR #134操作:
🔍 移植对账(1.21.1 → 26.1)
🔴 关键问题未发现阻塞性问题(alpha 越界先校验再
|
| PR 声称 | 状态 | 证据 |
|---|---|---|
| 保留模型数据与流体邻接关系的投影场景 + 原生网格缓存 | ✅ | ProjectionScene.getModelData/Shifted/put;ProjectionMesh(GpuBuffer + RenderSystem.getSequentialBuffer) |
| 统一方块/流体/BE/实体的透明渲染与相机变换 | ✅ | GhostConsumer 包住方块+流体网格;ProjectionFeatures 承接 BE/实体提交;两者的 pose 都按 ModelView × pose / 世界坐标平移处理 |
| 支持资源重载失效 | ✅ | ModelEvent.BakingCompleted → invalidateResources()(generation++、TYPES.clear());isValid() 由 built && bakedGeneration == generation 判定 |
| 独立实例清理 + 预览方块光照管线 | ✅ | close()/clear() 生命周期;BLOCK_PIPELINE(BLOCK_SNIPPET + TRANSLUCENT target)+ structure_projection.fsh;光照恒满亮(setUv2(240,240),fsh 不采样 Sampler2,与 1.21.1 一致) |
「Ageratum runStructureTest 33 项真实客户端校验(缓存/层/流体邻接/实体/移动/资源重载/替换/清理)」 |
✅ 已验证 | Ageratum dev/26.1.2 src/clientTest/.../test/StructureTest.java:check( 出现 34 次(减定义行 = 33 项),import 的正是 dev.anvilcraft.lib.v2.rendering.projection.ProjectionRenderer/ProjectionScene,覆盖流体邻接、实体、reload、replacement、cleanup、layer 变化;build.gradle 以 structureTest 属性作为任务开关 |
| 未验证项(自定义资源包/光影/其他平台) | ✅ 如实声明 | PROJECTION.md 末段 |
结论: COMMENT — 这是一次保真度很高、证据链完整的移植,无阻塞问题;建议先处理 null ModelData)、
标题 Port Structure Projection Rendering to 26.1 移植结构投影渲染到26.1 已符合 <英文> <中文> 格式且描述准确,无需修改。
🧪 测试建议(若在 AnvilLib 侧补测试)
| 被测目标 | 推荐场景 | 优先级 |
|---|---|---|
ProjectionRenderer.rebuild/isValid/close |
alpha=0/255/256(越界抛 IllegalArgumentException 且不破坏旧 mesh)、close 幂等、reload 后 isValid() 变 false 且 rebuild 恢复 |
🔴 |
ProjectionScene.shifted() |
跨边界流体邻居映射(正/负坐标、非零 origin) | 🔴 |
ProjectionFeatures.render |
含 modelData 的自定义 BER(验证不再 NPE)、alpha=255 与原 RenderType 直通 | 🟡 |
ProjectionRenderTypes.ghost() |
未知非 BLOCK/非拌合 RenderType 缓存命中、128 条上限与重载清空后的重建 | 🟡 |
ProjectionMesh |
空场景(build() 返回 null)不建 mesh、drawIndexed 索引数正确 |
🟢 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'pr-fix-claim-verification' (1 replacement). |