4. 材料光学属性:反射率、透射率、吸收率、BRDF、BSDF、表面粗糙度与散射

做照明仿真这么多年,我越来越觉得一个道理:灯光本身只是半条命,另一半在材料上。你想想看,同样的 LED 灯带,打在磨砂白墙上和打在镜面黑玻璃上,效果天差地别。这背后的核心,就是材料的光学属性。

这一章,咱们就把这些属性掰开揉碎了讲清楚。反射率、透射率、吸收率,这是最基础的三个数。BRDF、BSDF,这是描述光怎么“弹”和“穿”的函数。表面粗糙度,则是决定一切真实感的开关。

4.1 三大基础比率:能量守恒的基石

光打到材料表面,无非三种结局:被弹回去(反射)、穿过去(透射)、被吃掉(吸收)。这三者的能量总和,永远是 100%。这叫能量守恒,是仿真软件的底层铁律。

属性 符号 定义 典型值(白漆)
反射率 ρ 反射光通量 / 入射光通量 0.80 ~ 0.90
透射率 τ 透射光通量 / 入射光通量 0.00
吸收率 α 吸收光通量 / 入射光通量 0.10 ~ 0.20

核心公式: ρ + τ + α = 1.0

任何材料在仿真软件里都必须满足这个等式。如果不满足,软件会自动归一化,或者直接报错。

我个人习惯,拿到一个新材料,先看这三个数。比如一块 3mm 厚的超白玻璃,透射率大概 0.91,反射率 0.08,吸收率 0.01。加起来正好是 1。如果供应商给的数据加起来是 1.05,那肯定有问题,要么测量误差,要么把表面反射算了两次。

小技巧: 在 Dialux 或 Relux 里调材料时,如果只给了反射率,软件通常会默认吸收率 = 1 - 反射率,透射率 = 0。对于不透明材料,这没问题。但半透明材料一定要手动检查透射率。

4.2 BRDF:光是怎么“弹”回来的

BRDF,全称 Bidirectional Reflectance Distribution Function,双向反射分布函数。名字很吓人,说白了就是描述一束光从某个方向打过来,会往哪些方向反射出去,每个方向反射多少。

为什么叫“双向”?因为它有两个方向变量:入射方向(ωi)和出射方向(ωr)。函数值 fr(ωi, ωr) 表示反射光的亮度分布。

我在项目中遇到过最典型的例子:汽车内饰的仪表盘。白天开车,阳光从挡风玻璃射进来,如果仪表盘表面 BRDF 没调好,反射光会直射驾驶员眼睛,造成眩光。那时候我们反复调整表面涂层的粗糙度参数,才把反射峰值移开视线方向。

4.2.1 理想反射 vs 真实反射

  • 理想镜面反射: 入射角 = 出射角,光只往一个方向走。BRDF 是一个狄拉克 delta 函数。现实中只有完美抛光镜面接近这个状态。
  • 理想漫反射: 光往所有方向均匀反射。BRDF 是一个常数。朗伯体就是这种,比如硫酸钡白板。
  • 真实材料: 既有镜面峰,又有漫反射基底。比如塑料、油漆、石材。BRDF 是两者的混合。

避坑指南: 我曾经在仿真一个展厅时,把所有墙面都设成了理想漫反射(朗伯体)。结果算出来的照度均匀度非常完美,但实际建好后,墙面有微弱的光泽,导致局部出现亮斑。后来我改用实测的 BRDF 数据,才把仿真校准到 95% 以上吻合度。

记住:真实世界没有绝对的朗伯体。除非是特殊标准板,否则别偷懒用理想漫反射。

4.3 BSDF:加上透射,才是完整故事

BRDF 只处理反射。如果材料是半透明的(比如磨砂玻璃、灯罩、薄膜),光还会穿过去。这时候就需要 BSDF——Bidirectional Scattering Distribution Function,双向散射分布函数。

BSDF = BRDF(反射部分)+ BTDF(透射部分)。BTDF 就是 Bidirectional Transmittance Distribution Function。

你想想看,一块磨砂玻璃。从正面看,它有点模糊;从侧面看,它透光但看不清对面。这就是 BSDF 在起作用。入射光在玻璃内部被微颗粒散射,出射方向变得杂乱。

4.3.1 BSDF 的三种典型模式

模式 描述 常见材料
纯镜面透射 光直线穿过,方向不变 透明平板玻璃
定向散射透射 光主要沿原方向,但有轻微扩散 磨砂玻璃、薄纱
均匀漫透射 光向所有方向均匀透射 乳白亚克力、灯罩

仿真中的关键: 在 LightTools 或 TracePro 里设置 BSDF 时,通常需要导入实测的散射数据文件(.bsdf 格式)。如果没有实测数据,可以用 Harvey-Shack 模型或 ABg 模型来近似。我个人习惯用 ABg 模型,参数少,调起来快。

4.4 表面粗糙度:决定一切真实感的“开关”

为什么同样是不锈钢,拉丝面和镜面反射效果完全不同?答案就是表面粗糙度。粗糙度决定了微观表面的起伏程度,进而决定了反射光的扩散程度。

在仿真软件里,粗糙度通常用两个参数描述:

  • Ra(算术平均粗糙度): 表面轮廓偏离平均线的绝对值的平均。单位 μm。
  • Rq(均方根粗糙度): 表面轮廓偏离平均线的均方根值。单位 μm。Rq 对尖峰更敏感。

我记得有一次做博物馆照明仿真,展柜里的金器需要表现出那种“温润的金属光泽”。一开始我用默认的镜面材质,结果仿真图里金器亮得像镜子,完全不像文物。后来我把表面粗糙度从 0.01μm 调到 0.5μm,再配合微弱的漫反射层,效果一下子就对了。

4.4.1 粗糙度与散射模型的关系

粗糙度直接影响 BRDF 的形状。表面越光滑,BRDF 的镜面峰越尖锐;表面越粗糙,镜面峰越扁平,最终退化为漫反射。

常用的粗糙度-散射模型有:

  • Cook-Torrance 模型: 基于微面元理论,适合金属和塑料。参数包括粗糙度、折射率、菲涅尔项。
  • Oren-Nayar 模型: 适合粗糙漫反射表面,比如石膏、混凝土。
  • Ward 模型: 各向异性版本,适合拉丝金属、CD 盘面。

我的经验: 在照明仿真中,不要盲目追求高精度 BRDF 模型。对于大多数建筑照明场景,用 Phong 模型或 Blinn-Phong 模型就足够了。只有在做车灯、光学镜头等高精度设计时,才需要上 Cook-Torrance 或实测 BSDF。

4.5 知识体系总览

下面这张图,把本章的核心概念串起来了。你可以把它当作一个快速索引。

材料光学属性知识体系 材料光学属性 反射率 ρ 透射率 τ 吸收率 α BRDF(反射分布) BSDF(散射分布) 表面粗糙度 (Ra / Rq) 散射模型 (Cook-Torrance等) 核心逻辑 能量守恒 (ρ+τ+α=1) → 决定光通量分配 BRDF/BSDF → 决定光的方向分布 | 粗糙度 → 决定散射程度

4.6 实战中的参数设置建议

说了这么多理论,最后给点实在的。下面这张表是我自己总结的常见材料参数参考值,你可以直接拿去用。

材料 反射率 ρ 透射率 τ 粗糙度 Rq (μm) BRDF 模型建议
白色乳胶漆墙面 0.82 0.00 2.0 ~ 5.0 Oren-Nayar
镜面不锈钢 0.60 0.00 0.01 ~ 0.05 Cook-Torrance
磨砂不锈钢 0.55 0.00 0.5 ~ 1.5 Cook-Torrance
3mm 超白玻璃 0.08 0.91 0.005 BSDF (镜面透射)
磨砂玻璃 0.10 0.85 0.5 ~ 2.0 BSDF (定向散射)
乳白亚克力灯罩 0.30 0.60 3.0 ~ 8.0 BSDF (均匀漫透射)
黑色哑光塑料 0.05 0.00 1.0 ~ 3.0 Phong

重要提醒: 上表中的数值是典型参考值,实际项目一定要以供应商提供的实测数据为准。尤其是透射率,不同厚度、不同工艺的玻璃或亚克力,透射率可能差 10% 以上。我曾经因为用了默认的玻璃透射率 0.92,结果实际装上去只有 0.85,导致展厅照度低了 8%,最后不得不加灯。

嗯,材料光学属性这部分,说到底就是三个字:守恒、分布、粗糙度。把这三个点抓住了,大部分照明仿真场景你都能搞定。下次遇到奇怪的光效,先别急着调灯光,回头看看材料参数——八成是那里出了问题。