diff --git a/public/js/webgl-book-lab.js b/public/js/webgl-book-lab.js index 054ada7..a46272c 100644 --- a/public/js/webgl-book-lab.js +++ b/public/js/webgl-book-lab.js @@ -2221,7 +2221,11 @@ function handlePageTextureRecords(event) { if (!detail.right && effectivePageMeta.right?.kind === 'blank') { applyExplicitBlankPageTexture('right', effectivePageMeta.right, 'page-texture-records'); } - markStaticSceneBuffersDirty(); + // A page-texture content change moves no geometry, so it must NOT force the AO/shadow/ + // reflection recompute (that produced 23-42ms frames on every block during playback). + // AO and shadows depend only on geometry; the soft tabletop reflection picks up the new + // page on its normal throttled cadence. Only geometry changes (flips, camera, rebuild, + // resize) dirty the static buffers. document.documentElement.dataset.webglPageTextureMetrics = JSON.stringify({ width: leftCanvas.width, height: leftCanvas.height,