lightingContext
lightingContext
自动化地聚合场景中所有光源(直接光与环境光)的光照贡献,并根据指定的光照模型计算出最终的表面颜色。
核心优势
将复杂的多光源计算过程(如光源循环、类型判断、结果累加)完全抽象和自动化,使开发者能专注于设计光照模型本身,而无需处理底层的光照循环逻辑。
常见用途
实现标准的物理 기반 渲染 (PBR)。
创建非真实感渲染(NPR),如卡通着色。
聚合自定义光照模型(如 Phong)在多光源下的效果。
将直接光照与基于图像的环境光照 (IBL) 无缝结合。
如何调整
其效果通过调整传入的“光照模型节点”来改变。例如,将 PhysicalLightingModel 替换为卡通着色模型会彻底改变渲染风格;或者,保持光照模型不变,但将其输入(如 roughness)从一个常量值改为一张纹理贴图,可以为表面增加丰富的细节和质感变化。
代码示例
1// 将一个光照模型(如PBR)应用于所有光源
2// 并结合环境光,计算最终颜色
3lightingContext( new PhysicalLightingModel( diffuseColor, roughness, metalness ) );