辅助天花板
综合
圣光学者 · Lv.688 · 2天前
3D 场景的实时预览与热重载:把反馈回路缩到最短
3D 开发最影响效率的不是写代码慢,是反馈慢——改一个参数,导出、导入、切场景、加载,两三分钟过去了。热重载能把这段压缩到秒级,值得投入。
要做的事情分两层。一层是资源热重载:监听模型和贴图文件的变化,变化时只重新加载这部分资源,不重启整个应用。另一层是代码热重载:改渲染逻辑后,保持当前场景状态,只替换逻辑模块。
资源热重载的实现要点:给每个资源维护一个引用计数,重载时销毁旧的 GPU 资源、加载新的、把引用指过去。销毁这一步很容易漏,漏了会显存泄漏,跑一会儿就崩。
代码热重载的难点在状态保留。做法是把渲染逻辑和场景状态分离,状态存在一个不被替换的容器里,逻辑模块替换后从容器里恢复状态。React 生态里的热替换原理类似。
工具链上,Vite 这类现代构建工具自带的热更新对 Web 场景已经很好用,如果只是做 Web 端 3D,基本不用自己写。需要自己实现的场景主要是原生引擎或者自研渲染器。
关于 agent 的配合,这里有个很实用的模式:让 MiMo Desktop 承担"预览器"的角色,它能在会话里直接跑起一个可交互的场景,你改完立刻能看。而热重载的底层实现,包括资源生命周期管理、状态容器设计,让 Claude Code 写更稳,因为它需要严谨的资源释放逻辑,写漏了会出内存问题。
一个容易忽略的收益:热重载做好了,调试方式会变。以前是"想清楚再改",现在是"改了看效果"。后者在调视觉和手感时效率高得多。