2.5 KiB
N-013 Shader Node 图
状态:in_progress(七节点 Main + 有界 WebGL2 compiler 子集)
详细分解、ShaderIR、typed socket 校验、Main 写回、Web 编译、GLB 映射和验收命令见
docs/UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md。
本轮已交付版本化 ShaderGraphIR、单 Material Output、typed socket/隐式转换、图循环、
Material/Image stable ID 以及 linked/missing/corrupt image 资源门。首个 native Main 写回
子集开放 RGB、Value、有限 Math、Principled、Image Texture、Normal Map 和 Material
Output;整图替换在一个 history transaction 中完成,并通过节点/链接及 RGB/Value
defaultValue 保存重开回归。
Math 已开放 ADD/SUBTRACT/MULTIPLY/DIVIDE/MINIMUM/MAXIMUM 的 Main custom1 写回和
operation 保存重开;其他运算继续结构化阻断。RGB/Value 到 Principled Base Color、
Roughness、Metallic 的有限常量链接现可确定性映射为 glTF PBR factor;缺值、越界、
重复输入和未知链接继续返回 SHADER_GRAPH_UNMAPPABLE。Mix、Mapping、Texture
Coordinate、Bump 及任意节点仍返回 SHADER_NODE_UNSUPPORTED。node properties 仅开放
Math operation。M10-07 新增 schema 1 有界 compiler:只把 RGB/Value 常量、六项 Math、Image
Texture、Normal Map、Principled 和 Output 编译为 WEBGL2_THREE_PHYSICAL report;Native reader
发布 graph SHA-256,Worker 在 Main transaction 前编译并失败关闭,主线程和 Offscreen 复用同一
createPBRMaterial 入口。M10-08 为 report 增加 graph/texture/color-space/backend 绑定的
compileKey,M10-09 由 PBRMaterialPipeline 保留上一份可用材质并记录失败报告。节点/链接/
深度/纹理/标识预算固定;M10-10 将任意未知节点名称归一化排序后返回稳定
PBR-012/ARBITRARY_SHADER capability block,未知节点不被删除或静默降级。
M10-15 在独立 Chromium Worker 中连续完成 100 次有界 compile、129-node 超预算阻断、恶意 cycle 阻断和同会话小图恢复;performance/OOM-prevention/malicious-input 三门均使用现有 compiler, 不以 mock 成功替代材质编译。
完整色彩管理、sampler/alpha/tangent、WebGPU、完整 GLB 图映射和桌面渲染 golden 仍为 planned。验收:
npm --prefix web run test:shader-compile、npm --prefix web run test:authoring-roundtrip、
npm --prefix web run test:capability-gates、npm --prefix web run test:m10-domain-gates
以及 Shader GLB mapping E2E。