Files
rhinelab-ui/verification/REPORT.md
T

102 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 验证记录
日期:2026-09-07。
## 工程检查
- TypeScript 严格模式检查通过。
- Vite 生产构建通过,生成 `dist/`。
- 12 份文本导出文件由同一份 `src/data.ts` 生成。
- 模型经 Blender MCP 建模、导出,并在 Blender Cycles 和实际应用中审阅。
- 运行界面没有 video 元素,也没有将参考 MP4 作为产品资源引用。
## 浏览器交互验证
在实际 Codex 内置 Chromium 浏览器中完成:
| 行为 | 结果 |
| --- | --- |
| 跳过启动进入阵列 | 通过 |
| 完整 35 秒启动自动进入详情 | 通过,最终进入 X-001,未发现运行错误 |
| Esc / 左方向键 / Enter | 通过,返回阵列后从 X-001 循环至 X-012 并读取 |
| 拖拽档案特写 | 通过,实际模型随拖拽旋转 |
| 下一份档案并读取 X-002 | 通过,编号、标题与内容一致 |
| 研究记录标签切换 | 通过 |
| 研究记录页收藏档案 | 通过,保留当前标签页和焦点 |
| 刷新后打开收藏 | 通过,X-001 / X-002 收藏仍在 |
| 取消测试收藏 | 通过,验收结束恢复为空 |
| 输入不存在的档案 | 通过,显示明确空结果和重置入口 |
| 输入 X-005 并读取结果 | 通过,进入生态观测档案 |
| 画质关闭和重新开启 | 通过 |
| 减少动效开关 | 通过,验收结束恢复完整动效 |
| 浏览器运行错误 | 已检查,未发现运行错误 |
最初的 Blob 导出没有收到内置浏览器的 download 事件,因此改为实际存在的静态文本链接。已验证链接编号及对应 UTF-8 文件;没有将缺失的浏览器下载事件报告为通过。
## 视觉复核
- 先在默认 1280×720 视口检查整体交互和渲染。
- 再按原片 1920×1080 检查认证和档案抽取关键帧。
- 校正过透视方向、阵列间距、抽取高度、标题字宽、标志字距、背景曲线对比度、曝光、景深与文案定位。
- 最终阵列采用 160 个物理实例。完整档案盒只在抽取特写使用全部细节,减少重复绘制。
## 限制
当前属于高保真重新建模与交互实现,未以图像差分认证逐像素一致;材质折射、景深与离线原片仍有可见差异。档案与身份权限为本地演示内容。界面优先为桌面横屏设计,窄屏按比例保留构图。
## 用户反馈后的修订复核
上一版的错峰升降不能表现原片的整体波纹,表面凸起的圆环与参考材质也有明显差距。本轮重新抽取原片 26–40 秒的 351 帧,并建立 `reference/review.html` 同步对照页。以下结果属于本轮修订,前面的表格是初版功能验证记录。
- 重写为连续传播的波包、反向回传、两段抽取及分段镜头运动。对照后又修正了回传阶段镜头过早转向的问题。
- Blender MCP 重建为磨砂盖板、内部光学腔、环槽、基板、边框与表面刻线。GLB 与 `.blend` 已重新导出,Cycles 审阅图已更新。
- 浏览器实际验证快速执行“下一份、下一份、上一份”,最终编号 X-002、抽取高度 4.05、轨道偏移 -0.72;过渡结束后 `returningFiles` 为 0,没有残留重复抽出模型。打开详情与拖拽旋转均可用。
- `node scripts/check-motion.mjs` 通过:第一波峰采样位置由第 16 行移动至第 27 行,反向波峰由第 27 行返回第 12 行;按 25fps 检查所有 160 个位置的连续性,最大相邻帧高度变化 0.615 世界单位。验证了两段抽取之间的停留,以及 30fps / 120fps 下临界阻尼结果的一致性。这些检查证明实现的连续性,并不证明与原片轨迹完全相同。
- TypeScript 严格检查与 Vite 生产构建通过。当前 GLB 使用 10 个材质组;重复阵列仍为 160 份。
- 对照页的原视频与实时场景可以切换到指定时间、逐帧前后移动并同步播放。对照视频不进入产品构建。
- 最终版本在新建浏览器预览中,从原片第 30 秒对应的时间启动,自动完成抽取并进入 X-001 详情;返回阵列可用,浏览器未记录运行错误。逐帧按钮实测由 27.48 秒前进到 27.52 秒,播放按钮可推进视频与实时场景。
仍可观察到:阵列的厚度光照、光学环局部高光、景深过渡与原片不同。密集背景采用近似面板材质,完整抽出档案采用物理透射;WebGL 屏幕空间透射不能递归还原所有透明层的折射。当前结果没有达到逐像素一致,保留同步对照入口供直接审阅。
## 第二次修订(2026-09-08)
用户进一步指出镜头、余波、卡距、字体、光照与白场过渡的差异,并明确要求优先重新检查摄像机。
- 撤回扩大通道间距和高度阶梯的补偿。通道中心距仍为 5.2、同高。改用未遮挡的卡片顶边和标签垂直边校准镜头;此前把可见片段当成完整高度的测量方式无效。
- 31.48 秒人工参考端点约为 (518,296)、(900,92);实时模型投影测得 (517,288)、(899,95)。这是两个局部特征点的对齐证据,不代表整幅画面或所有帧匹配。
- 新增左侧水平入场、快速抬高镜头、逐字出现的选档文字、回传后仍有延迟与衰减的邻片起伏。抽卡第一段 0.4 世界单位,第二段完成后总升高 3.35。
- 调整近景转向时间及构图锚点,补充保密等级扫描线。模型边框、材料层次、光照和景深一起重审,GLB、Blender 源文件、Cycles 预览均更新。
- MiSans 四个官方原版 WOFF2 已嵌入;设置页保留署名和许可。字体未转换或子集化。
- node scripts/check-motion.mjs 通过:正向/反向传播、25fps 连续性、第一段抽取停留、邻片在停留期继续运动、不同帧率下弹簧结果一致。
- 浏览器重新验证“下一份、下一份、上一份、读取”,详情正确显示 X-002,无浏览器错误。独立查看 27.16、31.48、33.48、39.00 秒并播放同步对照。
- TypeScript 与生产构建通过。仍存在 WebGL 透射、局部轮廓、柔光和景深差异;没有达到逐像素一致。
## 第三次修订:用户标注(2026-09-08)
- 通过 reference/match-annotations.py 匹配标注帧,定位 27.60 / 29.16 / 31.56 秒;据此调整厚度与前半段透视镜头。
- 实际运行的模型位置:31.56 秒为 [0,-1.9963,-2.17],33.48 秒为 [0,0.4728,-2.17],39 秒为 [0,0.9,-2.17]。这三帧横向和纵深坐标相同,摄像机位置不同;实现中已移除抽取的平面插值。
- 39 秒模型顶边投影约 [618,287]、[1478,226];镜头重新构图没有依赖档案前移。
- 移除背景随特写额外下沉,保留正常波场运动;按标注修正回波进入时机。
- Blender 源文件、GLB、Cycles 预览已更新。运动连续性检查通过,最大相邻帧波场位移约 0.633。TypeScript 与 Vite 构建通过。
- 对照页增加“标注① / ② / ③”三个快捷按钮。仍然存在材质散射和景深差异,没有声明逐像素一致。
## 第四次修订:交互预览和材质过渡(2026-09-08)
- 交互预览实测 extraction=0.4、cameraDetail=0,顶边投影 [517,288] / [899,95],对应用户截图的浅抬起构图。
- 确认读取后实测 extraction=3.35、cameraDetail=1;X-002 模型位置从 [0,-1.9963,-2.17] 升至 [0,0.9537,-2.17],镜头把卡片置于左侧,详情在右侧完整显示。横向与纵深坐标没有改变。
- 新增 src/appearance.ts:共用外壳几何,材质参数随升降插值,内部细节覆盖率和标签透明度渐变,归位副本使用独立材质。消除归位交接时阵列实例晚一帧恢复的空档。
- 浏览器验证连续“下一份、下一份、上一份”、点击读取、选择按钮获得焦点后按 Enter、升起途中返回。返回后停在浅抬起;运行错误日志为空。
- node scripts/check-appearance.mjs 通过:连续材质插值、归位材质相互独立、着色器渐变参数、归位与阵列表面一致。既有 check-motion.mjs 同时通过。
- 交互改动没有消除既有屏幕空间透射与原片材质之间的差异,仍不声明逐像素一致。
## 第五次修订:列选择、旋转净空与内容(2026-09-08)
- 第 760 帧五列峰值均为 2.121317;760–785 帧对应的波峰突出与镜头右移连续进行。相关逐帧窗口最大相邻帧波场变化为 0.5532。
- 交互最终采用 4.05 升高,较早先 3.35 略高;回退试调的 5.0。实测模型高度 3.70000005,稳定展示时对邻片顶部的净空约 0.3635,旋转到 0.8 弧度仍保留净空。
- 返回先转正再下降;0.8 弧度以 60fps 测试约 0.967 秒完成对齐。转正期间摄像机保持构图,随后跟随下降。切换时归位副本独立对齐,附近新卡片暂缓抬起。
- 浏览器实际用左右和上下键遍历了 40 个不同档案编号,五列各 8 个,无不可达记录;切列会恢复该列上次选择。
- 每份档案含摘要、三条研究记录和设定来源;导出脚本生成 40 份文本。修正了科属混淆,去除未核实的具体归档日期与虚构负责人任命,改为编目范围和相关人物。
- 标签删除简笔曲线,与启动界面共享同一标志路径。
- check-archive.mjs 验证列容量、唯一槽位、世界观文本结构、波峰连续性、真实 GLB 高度、旋转对齐时间;既有运动和材质检查继续通过。