#10140·filament

直接照明的漫反射/镜面反射能量保留和 IBL 一致性

作者: zyz23333创建于 2026年6月21日更新于 2026年9月9日
标签enhancementlow priority

□ 直接照明散射/光谱能保存和IBL一致性

页:1

Filament的BRDF文件已经确定了两个相关的能源问题:

** 分散反射的能源收益**

  • ** 光谱反射的能源损失**

第二个问题,即光谱能量损失,已经在标准阴影模型中通过多光谱能量补偿术语处理:

缩略语 像素. 能量补偿=1.0 + 像素.f0 * (1.0 / 像素.dfg.y - 1.0); fr. 能量补偿;


这个缩放单相片的GGX相片叶片,以补偿失去的能量,不明确地模拟多相片微相片散射.

然而,第一个问题,即散射反射的能益,对于直接照明来说仍未得到解决。 标准阴影模型目前独立评价扩散和光谱,并添加:

vec3 Fr = specular Lobe(像素,光,h,NoV,NoL,NoH,LOH). vec3 Fd = 扩散Lobe(像素、无线、无线、LOH);

//TODO:为避免能量增益而去除扩散叶.

vec3 color = Fd + Fr * 像素. 能量补偿;


问题在于分光叶被多分光叶所补偿,但分光叶仍然被评价为全出事光已经到达分光出散事件. 在Filament自己的术语中,光谱-侧**能损失**得到补偿,但扩散-侧**能收益**没有被去除.

这个问题表明,在多重损害补偿之后,将出现有效的光谱定向反照率:

vec3 补偿 SpecularDirectional Albedo(相接像素) { 返回饱和度( specularDFG( 像素) * 像素. 能量补偿); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


利用它来收缩扩散的叶子:

Fd -- -- 1.0 -- -- 补偿Specular Directional Albedo(像素);


这完成了现有分光能补偿的散边对应,并使得直接照明,预滤取的IBL,并用重要取样的IBL使用相同的能核算.

-- -- . . .

* 背景:赔偿与保全

Filament的文件描述了两个不同的问题:

1. 分散反射的能益

文件说,Lambert扩散式BRDF没有说明表面反射的光线,因此不能参与扩散式散射事件。

在对标准材料的分层解释中,事件光先与光谱界面相互作用. 只有未被光谱层所反映的部分才应到达扩散地层.

概念上:

能源 = 光谱反射能量

  • 向散射传播能量

因此,如果光谱层反映 " E " 等量,扩散叶应大约得到:

1 - E级


对事件能量的影响

2. 光谱反射能量损失

Filament公司使用的Cook-Torrance GGX BRDF是一种单片显微面模型. 在高粗糙度时,光能弹出在微相之间后再逃跑. 单发型
. . . . . . .

内容来源: google/filament