用途:为 Three.js WebGPU/TSL 项目编写确定性程序化场(标量与矢量因果),让多个材质、几何与计算阶段共享同一套坐标、种子与派生因果关系,避免各消费方各自实现导致结果不一致。多系统协作时 $threejs-choose-skills 可作为可选协调器;材质负责 PBR 响应,几何负责拓扑,水体负责自由表面状态,最终图像技能负责色调映射与输出转换。
主要能力:一是冻结场契约,记录坐标域与单位、种子归属与哈希/噪声族及环绕约定、主字段到派生因果再到命名输出的链路、各输出的消费方/滤波/精度/更新频率/有效性、直接求值或烘焙的决策输入、调试视图与失效键;坐标需按因果选择(地形天气用世界/瓦片局部,行星用未变形径向物理坐标,纹饰用对象/局部坐标,或声明生成的纹理域),大域先用整数瓦片加局部浮点。二是编写一份可跨阶段移植的核心:用确定性 TSL Fn 实现共享因果,核心不含仅片段可用的导数、顶点相机策略、存储布局与派发状态;用 .toVar() 物化公共中间量,必要时检查生成的 WGSL。使用 WebGPURenderer 并在 await renderer.init() 后验证 renderer.backend.isWebGPUBackend === true;renderer.compute() 提交普通计算。r185 中 computeAsync() 只保证入队前初始化,不是 GPU 完成栅栏,CPU 可见完成需 await map/readback 或队列完成承诺。奇偶性关键种子用 u32 而非 f32,重解释前将取整格坐标限制在 i32 域。
使用方式:第三步在直接求值与存储/烘焙间按一个摊销区间比较公式选择,并服从延迟、内存与误差门槛;烘焙只打包共享坐标、精度、滤波、频率与消费局部性的通道,更新读写同一逻辑场时用乒乓。RGBAFormat + HalfFloatType 是 r185 可写的 rgba16float 基线(8 B/纹素),更窄或 float32 格式与滤波需按实际 WebGPU 特性判定。第四步按消费方滤波,用 q = f_support * sigmaMax(J') 并要求 q <= 0.5 cycles/sample,去除的斜率/法线能量转移到材质方差/粗糙度路径;仅在几何/离线生成、预计算原生层级或奇偶校验证据时创建 CPU 端口。第五步接入消费方、失效与诊断:数据场用 NoColorSpace,颜色纹理声明真实传输函数与基色,sRGB 用 SRGBColorSpace、线性 sRGB HDR 用 LinearSRGBColorSpace,HDR 缓冲保持线性直到唯一输出归属者。
适用场景:需要在材质、几何、计算、水面、地形天气、行星等跨系统间共享一致因果与单位的项目;需要确定性重建、LOD、瓦片域、失效传播与诊断可视化的 WebGPU/TSL 工作流。
限制与约束:资料未提供具体收费、价格、平台支持细节与完整示例代码;需自行阅读其引用的规范奇偶核心、存储/精度/失效、滤波与奇偶校验、度量有符号距离等资料;计算完成、时间戳查询与成本均需实测而非假定;字段修订在种子、坐标、算法、源数据、编码或接受值变化时失效,并传播到依赖的 mip、等值线、锚点、缓存与诊断。