4. 材料与表面属性:光学材料库、折射率与阿贝数、表面散射模型、镀膜与反射率设置

做照明仿真,说白了就是在跟两样东西打交道:光和材料。光怎么走,很大程度上取决于它遇到了什么材料、什么表面。这一章,我们就来聊聊LightTools里那些跟材料、表面相关的核心设置。

核心观点:材料属性决定了光在介质内部的传播行为(折射、吸收、色散),表面属性决定了光在界面处的行为(反射、透射、散射)。两者共同决定了仿真结果的准确性。

4.1 光学材料库:你的“材料超市”

LightTools自带一个相当丰富的材料库,我习惯叫它“材料超市”。里面不仅有常见的玻璃(如BK7、F2、SF11),还有各种塑料(PMMA、PC)、光学胶水,甚至一些特殊材料(如CaF₂、ZnSe)。

我个人习惯,拿到一个新项目,第一件事不是自己输参数,而是先去材料库里搜一搜。为什么?因为库里的数据是经过验证的,比自己手动输入靠谱得多。

  • 调用方法:在系统浏览器中,右键点击“材料”节点,选择“从材料库添加”。
  • 搜索技巧:支持按名称、折射率范围、阿贝数范围进行筛选。
  • 自定义材料:如果库里没有,可以基于现有材料修改,或者完全新建。

小技巧:我在做车灯导光条仿真时,经常需要用到PMMA。材料库里默认的PMMA模型是“PMMA (Generic)”,但不同厂家的PMMA在吸收系数上差异很大。我建议你向材料供应商要一份实际的光谱透过率数据,然后导入LightTools,这样仿真结果才准。

4.2 折射率与阿贝数:材料的“身份证”

折射率(n)和阿贝数(Vd)是描述材料光学特性的两个基本参数。折射率决定了光在材料中的偏折程度,阿贝数则描述了材料的色散能力——说白了,就是不同颜色的光在材料里走的速度不一样,导致成像出现色差。

我记得有一次做投影镜头设计,用了高折射率的玻璃,结果发现边缘有严重的紫边。后来一查,是阿贝数太小,色散太厉害。从那以后,我选材料时一定会同时看这两个数。

参数 符号 物理意义 典型值(BK7)
折射率 nd 光在真空与材料中速度之比(@587.6nm) 1.5168
阿贝数 Vd 色散能力的倒数,值越大色散越小 64.17

在LightTools中设置材料时,你可以选择“使用色散模型”。我个人建议,只要不是单色光仿真,都勾上这个选项。否则仿真结果会偏乐观,实际做出来可能对不上。

// 在LightTools中自定义材料的示例(通过API)
// 创建一个基于Sellmeier色散公式的材料
Dim mat As Material
Set mat = SystemDB.CreateMaterial("MyCustomGlass")
mat.DispersionModel = DispersionModelType.Sellmeier
mat.SellmeierCoefficients(0) = 1.03961212
mat.SellmeierCoefficients(1) = 0.00600069867
mat.SellmeierCoefficients(2) = 0.231792344
mat.SellmeierCoefficients(3) = 0.0200179144
mat.SellmeierCoefficients(4) = 1.01046945
mat.SellmeierCoefficients(5) = 103.560653

4.3 表面散射模型:光是怎么“乱跑”的

真实世界里的表面,没有绝对光滑的。光打到表面上,除了镜面反射和透射,还会有一部分被散射掉。LightTools提供了几种散射模型,我挑最常用的两个讲。

4.3.1 朗伯散射

朗伯散射是最简单的模型。它假设散射光在各个方向上的亮度相同。说白了,就是光被均匀地“糊”到各个方向上去。

  • 适用场景:粗糙表面、漫反射板、积分球内壁。
  • 参数:只有一个——散射比例(Scatter Fraction)。
  • 我的经验:做路灯透镜仿真时,如果透镜表面是磨砂的,用朗伯模型就挺准。但要注意,真实磨砂表面其实不是完美的朗伯体,会有一定的方向性。

4.3.2 高斯散射

高斯散射更精细一些。它假设散射光集中在镜面反射方向附近,偏离角度服从高斯分布。

  • 适用场景:有一定粗糙度的抛光表面、部分透射的扩散片。
  • 参数:散射比例 + 高斯半宽角(Sigma)。
  • 避坑指南:我曾经把Sigma设得太大,结果仿真出来的光斑比实际大了两倍。后来才意识到,Sigma的单位是弧度,不是度。1° ≈ 0.01745 rad,千万别搞混。

注意:散射模型不是越复杂越好。模型越复杂,光线追迹的计算量越大,收敛越慢。我的建议是:先跑一个简单的朗伯模型看看趋势,确认没问题了,再换成高斯模型精调。

4.4 镀膜与反射率设置:给表面“穿衣服”

镀膜,就是在光学表面镀上一层或多层薄膜,用来改变表面的反射率和透射率。比如,增透膜可以让反射率从4%降到0.5%以下,高反膜可以让反射率超过99%。

LightTools里设置镀膜有两种方式:

  1. 使用镀膜库:软件自带了一些常用镀膜,比如“AR@550nm”(中心波长550nm的增透膜)。
  2. 自定义镀膜:通过定义膜层结构(材料、厚度、层数),计算光谱特性。

我记得有一次做激光雷达的接收镜头,需要在905nm处有极高的透过率,同时抑制其他波段的杂光。我自定义了一个多层介质膜,在LightTools里优化了膜层厚度,最终透过率做到了99.2%。

镀膜类型 典型应用 反射率(典型值) 设置要点
增透膜(AR) 镜头、透镜、窗口 < 0.5% 指定中心波长和带宽
高反膜(HR) 反射镜、激光腔 > 99% 注意膜层数,层数越多反射率越高
分光膜(BS) 分束器、合束器 50% / 50% 注意偏振效应
金属膜(Al/Ag/Au) 普通反射镜 85% - 95% 注意金属的吸收损耗

提示:如果你只是做概念验证,不想花时间设计镀膜,可以直接在表面属性里设置一个固定的反射率/透过率。比如,设置反射率=0.9,就相当于一个90%反射率的镜面。但要注意,这种方式忽略了波长和角度的影响,精度有限。

4.5 知识体系总览

下面这张图,是我自己整理的材料与表面属性知识框架。你可以把它当作一个检查清单,做仿真前对照着过一遍,看看有没有遗漏。

材料与表面属性知识体系 光学属性设置 材料属性 折射率 (n) & 阿贝数 (Vd) 色散模型 (Sellmeier/Cauchy) 吸收系数 / 透过率 表面属性 散射模型 (朗伯/高斯) 镀膜 (AR/HR/BS/金属) 反射率 / 透过率设置 仿真前检查清单 □ 材料是否从库中选取?折射率/阿贝数是否匹配实际? □ 表面散射模型是否合理?参数(Sigma/Scatter Fraction)是否正确? □ 镀膜是否已应用?反射率/透过率是否与设计值一致?

4.6 本章小结

材料与表面属性,是照明仿真里最基础也最容易出错的地方。你想想看,如果材料折射率输错了,后面所有的光线路径都是错的,仿真做得再漂亮也没用。

我个人总结了几条经验,分享给你:

  • 能用库里的,就别自己编。材料库的数据经过验证,比自己手动输入靠谱。
  • 散射模型从简到繁。先朗伯,后高斯,别一上来就搞复杂模型。
  • 镀膜要关注波长和角度。同一个镀膜,在不同波长和入射角下,性能差异很大。
  • 仿真前过一遍检查清单。就是上面那张图底部的清单,花两分钟过一遍,能省后面两小时的调试时间。

嗯,这一章的内容就到这里。记住,材料属性是仿真的地基,地基打牢了,上面的楼才能盖得稳。