1. PST 与 BRDF 概述:光与表面的“对话”规则
大家好,欢迎来到这门课。我是你们的老朋友,一个在图形学和光学仿真里摸爬滚打多年的渲染工程师。
咱们这门课叫《PST与BRDF参数实战解读》。第一节课,先聊聊两个最基础、也最核心的概念:PST 和 BRDF。
说白了,这两个东西就是描述“光怎么跟物体表面打交道”的数学工具。你想想看,我们做渲染、做仿真,最终目的不就是模拟真实世界的光线传播吗?那总得有个规则吧?PST 和 BRDF,就是这套规则里最底层的两条。
1.1 什么是 PST(Point Spread Function)?
PST,全称 Point Spread Function,点扩散函数。
名字听着挺唬人,其实概念很简单。想象一个理想中的“点光源”,它发出的光经过一个光学系统(比如镜头、人眼、或者大气层)后,在像平面上会变成一个什么样子的光斑?这个光斑的分布,就是 PST。
理想情况下,点光源成像应该还是一个点。但现实世界哪有那么完美?
- 衍射:光波绕过障碍物,产生干涉条纹。
- 像差:镜头设计不完美,导致光线无法汇聚到一点。
- 散射:介质中的微小颗粒让光线偏离原路。
这些因素加在一起,就让一个点变成了一个模糊的“弥散斑”。PST 就是用来精确描述这个弥散斑的能量分布的函数。
核心理解: PST 衡量的是一个光学系统对“点”的分辨能力。PST 越集中,系统成像越清晰;PST 越扩散,图像越模糊。
我在做卫星遥感图像仿真时,就经常跟 PST 打交道。卫星在几百公里高空拍照,大气湍流和镜头像差会让地面上的一个路灯,在传感器上变成一个几像素宽的亮斑。如果不做 PST 补偿,你看到的图像就是糊成一片的。
1.2 什么是 BRDF(Bidirectional Reflectance Distribution Function)?
BRDF,全称 Bidirectional Reflectance Distribution Function,双向反射分布函数。
如果说 PST 描述的是“光经过系统”的行为,那 BRDF 描述的就是“光在表面反射”的行为。
具体来说,给定一束光从某个方向(入射方向)照到物体表面的一点上,BRDF 定义了:从另一个方向(出射方向)看过去,反射光的亮度是多少。
它是个四维函数:f(θᵢ, φᵢ, θₒ, φₒ)。两个方向,每个方向两个角度,加起来四个维度。
我的个人习惯: 别被这四维吓到。你只需要记住,BRDF 回答了两个问题:
- 光从哪来?(入射方向)
- 你从哪看?(出射方向)
不同材质,答案完全不同。镜子是“你从哪看,我就把光反射到哪”;粗糙的墙面是“光进来后,四面八方均匀散射”。
BRDF 是渲染方程的核心。没有它,我们就没法计算物体表面任何一个点的颜色。
1.3 两者在图形学与光学仿真中的核心地位
这两个函数,一个管“系统”,一个管“表面”。它们共同构成了我们模拟光传输的基石。
我简单列个对比,你一看就明白:
| 特性 | PST(点扩散函数) | BRDF(双向反射分布函数) |
|---|---|---|
| 描述对象 | 光学系统(镜头、人眼、大气) | 物体表面(金属、布料、皮肤) |
| 输入 | 理想点光源位置 | 入射光方向、出射光方向 |
| 输出 | 像平面上光强分布 | 反射光亮度与入射光照度的比值 |
| 典型应用 | 图像去模糊、超分辨率、光学设计 | 真实感渲染、材质建模、遥感反演 |
| 维度 | 2D(空间分布) | 4D(方向分布) |
在图形学里,我们做离线渲染(比如电影特效)或者实时渲染(比如游戏),本质上都是在解一个包含 BRDF 的渲染方程。而当我们想模拟相机镜头效果、或者大气雾效时,PST 就派上用场了。
在光学仿真里,比如设计一个车载摄像头,你需要用 PST 来评估镜头的 MTF(调制传递函数)是否达标。同时,你也要用 BRDF 来模拟摄像头外壳、内部镜筒的杂散光,防止“鬼影”和“眩光”。
我曾经踩过的坑: 刚开始做混合渲染时,我天真地以为把 BRDF 算准了,画面就真实了。结果发现,镜头带来的模糊和眩光完全破坏了沉浸感。后来才意识到,PST 和 BRDF 必须联合使用。一个管微观表面反射,一个管宏观系统成像,缺一不可。
1.4 知识体系总览:一张图看懂
为了让你对本章内容有个整体印象,我画了张结构图。它展示了 PST 和 BRDF 在整个光传输模拟中的位置,以及它们之间的关系。
嗯,这张图很直观。光从光源出发,要么经过一个光学系统(受 PST 影响)到达传感器,要么直接照射到物体表面(受 BRDF 影响)被反射到人眼或相机。最终,我们看到的图像,是这两条路径共同作用的结果。
记住这个框架,后面我们所有的讨论,都会围绕这两个核心概念展开。