getShIrradianceAt
getShIrradianceAt
使用球谐函数(SH)系数,高效地计算出在特定表面朝向上,来自环境的柔和、低频的间接漫反射光照(辐照度)。
核心优势
以极致的性能(纯数学运算,无纹理采样)实现真实感的环境光照,将复杂的球谐函数数学理论完全封装,使开发者能轻松获取高质量的间接光。
常见用途
在 PBR 材质中,计算来自环境贴图的间接漫反射光部分(IBL)。
从光照探头(Light Probes)中解码出局部的、烘焙好的环境光。
从光照贴图(Lightmap)中重建预计算的全局光照效果。
为物体提供柔和、有方向感的环境光,使其融入场景。
如何调整
通过改变其输入来调整效果。修改 `normal` 输入(如接入法线贴图)能让环境光响应物体表面的精细凹凸细节;切换 `shCoefficients` 输入(如从“蓝天”环境换成“黄昏”环境)则会彻底改变整个场景的光照氛围和色调。
代码示例
1// 使用表面法线和预计算的SH系数,
2// 从环境中计算间接漫反射光。
3const indirectDiffuse = getShIrradianceAt( normalWorld, sh9Coefficients );