#9407·engine

在存在光探测器时,确定 StandardMaterial ambientSH 存放的位置(位于材质均匀缓冲区外的最后一个值)

作者: mvaligursky创建于 2026年9月16日更新于 2026年9月17日
标签enhancementarea: graphics

`StandardMaterial#ambientSH` 是在 #6157 及关闭该问题的 PR 之后故意从材料统一缓冲区中删除的唯一一个材料值。标准材料的其他所有值都存储在缓冲区中;球和谐函数仍然通过 `ambientSH[0]` 进行范围检查,在 WebGPU 中,这意味着每次绘制材料时,会将 144 个字节写入每次绘制网格统一缓冲区中,以供材料使用。它故意保留原样:每个材料的 SH 很少使用,而光探测器支持(请参见 #2484 以了解反射探测器)可能会改变要求。数据可能来自纹理,可根据网格实例进行选择,或者移至场景或视图级别,而非材料。在设计探测器时,请决定 SH 数据存储在哪里,并同时将其移出每次绘制路径。考虑过的选项包括:

内容来源: playcanvas/engine