用途:在用户明确要求为不可用的 WebGPU 功能提供回退,并且已确认初始化了非 WebGPU 后端,或已复现能力相关的初始化失败时,启用一个隔离的兼容性分支。规范性的 WebGPU/TSL 工作与原生 WebGPU 质量调优仍由各自的技能负责。
主要能力与流程:
- 启用分支:记录用户明确请求、已确认的初始化后端状态或可复现的初始化失败、规范所有者与功能、可接受的损失范围、兼容分支维护负责人这五项事实。仅在 await renderer.init() 成功后才检查后端身份;在 r185 中 renderer.backend.isWebGLBackend === true 可确认 WebGL 后端,标志缺失或未知不构成证明。
- 对规范行为分类:列出几何、辐射、颜色、时序、交互、状态归属与生命周期不变量,逐项标记为保留、弱化(保留量并说明变化的误差/支持/节奏/陈旧度/包络,冻结新门限)或移除。
- 选择首个诚实表示:优先预计算/静态规范输出,其次有界 CPU/离线生成,再次功能移除并同步 UI/文档,最后在明确接受维护后使用隔离旧版分支。
- 隔离归属:兼容分支应有独立导入、构建/部署入口、测试、产物、能力门限和维护归属;保持单一场景信号图与色调映射/输出变换所有者;记录颜色与数据纹理域、资源创建/重置/缩放/释放及规范与兼容资产的边界。
- 验证变更的主张:对保留或弱化的主张调用 $threejs-visual-validation(若已安装),以规范证据为准;该所有者缺失时报告并返回 INSUFFICIENT_EVIDENCE。
限制:如无显式回退请求,应报告规范阻塞点而非启用分支。node-renderer 分支若需 GPU 时间戳,须在初始化前以 trackTimestamp: true 构造;经典 WebGLRenderer 无该选项或 resolveTimestampsAsync() API。旧版分支只能在启用后使用 WebGPURenderer({ forceWebGL: true }),它仍是兼容产物而非规范渲染器。不得在不兼容材质、通道、渲染目标或渲染器专有资源之间共享。本技能不替代验证所有者,缺失验证所有者或时间戳时相应结论为 INSUFFICIENT_EVIDENCE。