# 06 — 像素验收:必须在 rAF 内跨帧采样 Status: resolved Type: task ## 问题 `verify-sim-page.mts` 报告"非透明占比 0.0%",但页面看上去是画出来的。 ## 诊断(两个叠加原因) 1. **取错了 canvas。** 页面里除了 spine 的 canvas,还有一个 300×150 的默认 canvas,检查取的是后者。 2. **在 `requestAnimationFrame` 之外读像素。** spine 用 `preserveDrawingBuffer: false`,渲染缓冲在合成后被清空;rAF 外调 `gl.readPixels` 永远读到清空后的缓冲。 ## 答案 - 取**面积最大**的 canvas。 - 注入一个跨 90 帧的 rAF 采样器,累计 `window.__px.best`(各帧最大值),最后读这个值。 修好后 kv37 是 100.0%、合集类是 77.9%(骨架没铺满整屏,合理)。 ## 教训 "渲染没发生"和"我没读到"在像素检查里长得一模一样。`preserveDrawingBuffer: false` 这个设置让所有单次采样都恒为 0——看起来像"壁纸白屏",实际是测量方法错了。