● onlinetty/0guest@bubucn:~$
utc+08static
可直接试玩 · 2026.08.30

THE WIZARD'S
LIBRARY

这座完整制作于 Blender 的哥特大厅,被重译成桌面端第一人称 Three.js 漫游。沿烛光走道前进,从地面读到回廊,经过天球仪与旋梯,最后走向大窗外那片冷光。

进入图书馆 线上正式版本 · 桌面键盘与鼠标
烛光照亮的双层哥特图书馆、阅读长桌与大窗
漫游哥特大厅

请使用桌面浏览器,并等待体积较大的场景包完整载入。点击 ENTER 按钮取得鼠标控制,推荐全屏游玩。移动端布局可以展示大厅,但当前没有触摸控制,因此不把它称为移动端可玩版本。

可直接玩

点击 ENTER 按钮进入 · 鼠标观察 · WASD 或方向键移动 · SHIFT 奔跑 · F 全屏 · ESC 释放鼠标。戴上耳机还能听到实时合成的脚步、烛焰噼啪、低频环境声和教堂混响。

01 — 从 Blender 到 Three.js

保留原本的大厅,
换一套实时渲染契约。

浏览器版本不是在相机周围包一张全景渲染图。项目所有者提供的 Blender 场景按材质合并导出为 27 个网格与 27 套材质,书册颜色通过顶点色保持稳定;烘焙后的 base color、AO、roughness、metallic 与 tangent normal 则把程序化表面带进实时资产。

hero、gallery、stair、entrance、desk 五个 Blender 镜头成为回归锚点,用于守住相机位置、焦距意图与曝光。空间阅读方式保持一致,浏览器再接管行走相机、碰撞边界、局部灯管理、WebAudio,以及可确定性复现的对照接口。

02 — 视觉方向

知识留在暖光里,
日光停在冷色那端。

整间大厅围绕一条哥特纵轴组织:一层是阅读长桌与散落纸张,两侧是书墙与尖拱石柱,上层接木质回廊;吊灯、蓝金挂毯、天球仪和旋梯负责打破重复。烛光把木材与黄铜收进暖色光池,大窗则刻意保留苍白、偏冷的出口感。

Three.js r170 通过 AgX 与 OutputPass 输出画面。4096 PCF 太阳阴影、PMREM 室内反射环境、雾、明亮窗外 portal、克制的 Bloom、8 个常驻结构灯和 24 个近邻灯池共同重译原本的光线,但不假装复刻 Cycles。实时版没有多次反弹 GI、体积光柱,也没有 desk 镜头的 f/2.4 景深。

从图书馆入口沿中央走道前进后的控制验证画面
控制验证从暗色入口出发,先沿视线方向前进,再确认 A 向左、D 向右;默认压缩资产与首个完整帧后冻结阴影的策略始终保持启用。
03 — 硬件定位,v34 修复

像素量放大四倍,
这才是卡顿主因。

之前的硬件 A/B 已把主要帧率瓶颈锁定在渲染分辨率,而不是 Shift 奔跑、碰撞或冻结阴影策略。同一台 Radeon 8060S / RADV、同一套完整 1K/512 KTX2 场景中,DPR 1 的 1280×720 backing canvas 达到 60.18 FPS;DPR 2 把实际画布放大为 2560×1440,静态阴影时降到 33.59 FPS。v34 因此让普通漫游从 DPR 1 或更低、2× 场景 MSAA 起步;最多预热 45 帧或 1.5 秒后,如果持续低于 52 FPS,会依次降到 0.85 与 0.7。冻结对照镜头和 ?quality=high 仍保留 DPR 2 / 4× MSAA。原始 1K–4K 贴图版本继续通过诊断用 original-texture fallback 提供。

  • DPR 2 进程树 PSS:2150.4 → 669.6 MiB
  • DPR 2 进程树 RSS:2428.7 → 939.8 MiB
  • DPR 2 原始贴图 → 1K/512 KTX2 的 Ready:10567 → 9597 ms
  • 历史 KTX2 帧率 A/B:DPR 1 / 4× MSAA 为 60.18 FPS;DPR 2 为 33.59 FPS
  • v34 正式档:DPR ≤ 1 / 2× MSAA,低于 52 FPS 后自适应到 0.85 / 0.7
  • DPR 2 阴影:静态 33.59 FPS;连续更新 30.19 FPS
  • 冻结的静态/连续阴影对照帧:AE=0、RMSE=0,记录到的运行错误为零

上面的 FPS 数字是用于定位 DPR 的既有硬件基线,不代表已经对 v34 做了新的浏览器实测。AE=0 / RMSE=0 比较的是同一 DPR 2 机位下,冻结静态阴影与连续更新阴影的截图;它不是 Three.js 对 Blender/Cycles 的比较,更不是像素等价声明。

本页于 2026-08-30 对照项目所有者提供的 Blender 快照 fad615738a48,以及私有基线运行时 mike007jd/the-wizards-library-web 的提交 cb37d6a 核对。性能策略随后直接应用到项目所有者的源快照,形成 web-v34;运行时主模块 07d768c478de 与质量策略模块 62994e066714 已记录在随包 manifest 中。上方同源 iframe 使用这份优化后的 allowlist,并随本次 IndieSite 发布直接部署在 bubucn.com;两份未变化的 GLB 继续由 Git LFS 跟踪。这段来源说明不会把项目源码描述成开源。实时版本是忠于来源的重译,不宣称与 Blender/Cycles 像素一致,并且面向桌面键盘与鼠标。