3、光源模型:点光源、面光源、体光源、IES文件解析、Ray文件格式、光源光谱数据
光源模型,说白了就是我们在计算机里怎么描述「光从哪来、怎么走」。我刚开始做仿真时,总觉得随便选个光源类型就行,结果有一次项目验收时,甲方拿着实测数据一条条对,我才发现——光源模型选错了,后面全白干。
这一章,咱们把五种常见的光源模型和两种关键文件格式掰开揉碎讲清楚。
3.1 点光源:最基础的理想模型
点光源是最简单的模型。它假设光从一个点向所有方向均匀发射。你想想看,就像一颗灯泡悬浮在空中,没有灯罩、没有遮挡。
核心参数:
- 位置 (x, y, z)
- 光通量 (lm) 或 发光强度 (cd)
- 衰减方式:平方反比、线性、常数
我在项目中遇到过一个问题:用点光源模拟LED射灯,结果照度分布完全对不上。后来才发现,射灯有配光曲线,点光源的均匀辐射假设根本不适用。
适用场景: 路灯(远距离近似)、环境光模拟、早期方案验证。
不适用场景: 有配光要求的灯具、近距离照明、需要精确光分布的场合。
3.2 面光源:从「点」到「面」的飞跃
面光源把发光体看作一个平面。每个小面元都在发光,方向、强度可以各不相同。这比点光源真实多了。
我记得第一次用面光源模拟办公室的平板灯,效果惊艳——墙面的渐变、桌面的阴影,都跟实测照片几乎一样。但代价是计算量翻了好几倍。
| 对比项 | 点光源 | 面光源 |
|---|---|---|
| 几何维度 | 0维(点) | 2维(面) |
| 发光方向 | 全向均匀 | 可定义配光 |
| 阴影质量 | 硬边阴影 | 软阴影(半影区) |
| 计算开销 | 低 | 中~高 |
注意: 面光源的网格密度直接影响精度。网格太粗,会出现「块状」阴影;网格太细,内存会爆。我一般建议每平方米至少 100 个采样点起步。
3.3 体光源:模拟真实发光体
体光源更进一步——它把光源看作一个有体积的实体。比如荧光灯管、霓虹灯、LED灯丝。光从整个体积内部发出,经过自吸收、散射后才到达表面。
说实话,体光源在常规照明设计中用得不多。但在汽车尾灯、装饰照明、影视灯光这些领域,它是不可替代的。
我曾经帮一个车灯厂做仿真,他们用面光源模拟LED灯带,结果侧面看过去亮度不对。换成体光源后,灯带的「立体感」一下就出来了。
3.4 IES文件解析:灯具的「身份证」
IES文件是照明行业的通用格式。它记录了灯具在各个角度上的发光强度数据。说白了,就是灯具的「配光曲线」的数字版。
我见过太多新手直接拿IES文件往软件里一拖,看都不看参数。结果仿真出来的数据跟实测差30%以上。
IES文件核心字段:
- TILT=NONE:灯具安装角度(无倾斜)
- 1 1 1:光源数量、灯具数量、垂直角度数
- 1.0 1.0 0.0:光通量、宽度、长度
- 0.0 0.0 0.0:配光类型、单位类型、尺寸单位
- 角度数据块:垂直角度、水平角度、对应光强值
// IES文件示例(简化)
IESNA:LM-63-2002
[TEST] LAB123
TILT=NONE
1 1 1
1.0 1.0 0.0
0.0 0.0 0.0
5 5
0 15 30 45 60 // 垂直角度
0 90 180 270 360 // 水平角度
1000 950 800 600 300 // 光强值 (cd)
950 900 750 550 250
800 750 600 400 200
600 550 400 250 100
300 250 200 100 50
避坑指南: 我曾经遇到一个IES文件,角度数据只有0°到90°,但灯具实际发光角度是120°。仿真结果在边缘区域完全失真。所以拿到IES文件后,第一件事就是检查角度范围是否完整。
3.5 Ray文件格式:光线追踪的「子弹」
Ray文件存储的是每条光线的起点、方向、能量、波长等信息。它就像子弹——每条光线都是一颗「光子子弹」,从光源射出,在场景中反弹、折射、最终到达接收面。
Ray文件通常由光源生成器产生,然后喂给光线追踪引擎。我常用的流程是:先用IES文件生成光源模型,再导出为Ray文件,最后用Ray文件做精确仿真。
| 字段 | 说明 | 示例 |
|---|---|---|
| 起点 | 光线发射位置 (x,y,z) | 0.0 0.0 0.0 |
| 方向 | 单位向量 (dx,dy,dz) | 0.0 0.0 1.0 |
| 能量 | 光通量或辐射通量 | 0.001 |
| 波长 | 纳米 (nm) | 550 |
性能警告: 一个高精度仿真可能需要数百万甚至上亿条光线。Ray文件的大小会非常恐怖。我建议:
- 先用少量光线(10万条)做快速预览
- 确认没问题后再用大量光线(1000万条以上)做最终渲染
- 使用二进制格式的Ray文件,比文本格式小5~10倍
3.6 光源光谱数据:颜色的「基因」
光谱数据决定了光源的颜色。它记录了每个波长上的相对能量分布。白炽灯是连续光谱,LED是离散光谱,荧光灯是线状光谱——这些差异在仿真中必须体现。
我记得有一次做博物馆照明仿真,甲方要求色温3000K、显色指数Ra>95。我用默认的「标准白炽灯」光谱,结果仿真出来的画作颜色偏黄。后来换成实际灯具的光谱数据,才匹配上。
光谱数据的关键指标:
- 色温 (CCT):光源的冷暖感觉
- 显色指数 (CRI/Ra):颜色还原能力
- 光谱功率分布 (SPD):各波长能量分布
- 主波长/峰值波长:光谱的「重心」
// 光谱数据示例(简化)
// 波长(nm) 相对能量
380 0.02
400 0.05
450 0.15
500 0.30
550 0.45
600 0.60
650 0.75
700 0.85
750 0.90
780 0.95
3.7 知识体系总览
下面这张图把本章的核心逻辑串起来了。你一看就明白:光源模型、文件格式、光谱数据,这三者是怎么配合的。
嗯,这一章的内容就到这里。光源模型是照明仿真的地基——地基没打牢,上面盖的楼再漂亮也没用。下次你拿到一个新灯具,不妨先问问自己:它该用哪种模型?IES文件对不对?光谱数据准不准?