菲涅耳反射
Fresnel Reflectance
菲涅耳方程描述光在两种物质的平坦界面上反射的比例 ,它取决于入射角和两侧折射率:垂直入射时为材质特有的 (特征镜面色),掠射时趋于 1。实时渲染用以 为参数的 Schlick 近似。电介质 低且无色,金属 高且常带色,半导体介于其间;金属度参数化利用了这一点。光从物体内部射向表面时还可能发生全内反射。本页对应 RTR4 9.5 节。
基本性质
- 菲涅耳方程要求界面在几何光学意义上平坦,即没有 1–100 个波长大小的不规则。
- 反射方向:,与 同样和法线成 角。
- 外反射(,通常从空气射入,取 )下 :(垂直入射)时为 ;随角度增大趋向 1,在 90° 时所有频率都为 1(白色)。曲线高度非线性,到约 75° 前几乎不变,之后迅速升到 1;大体单调,但铝等材质在变白前有轻微下凹。
- 掠射光对应掠射视线(镜面反射),所以反射增强主要出现在物体边缘,而且这些部分在相机中被透视压缩、占像素很少;因此书中按 绘制曲线以反映视觉占比。
- 渲染文献把掠射角反射增强称为菲涅耳效应。简单实验:低头看手机黑屏中显示器的倒影很弱,把手机抬到眼睛和显示器之间再看,倒影几乎和显示器一样亮。
- 在 BRDF 中常用其他向量代替 ,写作 ;微表面 BRDF 中用半向量 。
Schlick 近似
菲涅耳方程本身复杂,需要可见光谱上采样的(可能是复数的)折射率。Schlick 近似:
- 即白色与 之间的 RGB 插值,简单而相当准确。铬、铁、锌等偏离较大的材质误差也很细微。需要精确表现时可用 Gulbrandsen 的近似(能接近金属的完整菲涅耳方程,但更贵),或允许指数不为 5。Lagarde 总结了菲涅耳方程及多种近似。
- 更一般的形式(部分应用使用): 可控制 90° 时的颜色和过渡的"锐度"。动机多为艺术控制,也有助于匹配现实:改变指数可更好拟合某些材质; 设为非白色可匹配菲涅耳方程描述不好的材质,如覆盖颗粒与波长相当的细尘的表面。
- 范围明确在 ,可用常规拾色界面设置并用颜色纹理格式存储,且有大量真实材质参考值。也可由折射率计算(): 对复折射率(金属)取结果的模;折射率随光谱变化明显时,应先在密集波长上计算 再转为 RGB。
典型 值
电介质(绝缘体)、金属(导体)、半导体三类。下表中纹理值为 sRGB 编码的 8 位值。
| 电介质 | 线性 | 纹理值 | 说明 |
|---|---|---|---|
| 水 | 0.02 | 39 | |
| 活体组织 | 0.02–0.04 | 39–56 | 含水多的偏低,干燥的偏高 |
| 皮肤 | 0.028 | 47 | |
| 眼睛 | 0.025 | 44 | 干燥角膜(泪液接近水) |
| 头发 | 0.046 | 61 | |
| 牙齿 | 0.058 | 68 | |
| 织物 | 0.04–0.056 | 56–67 | 聚酯最高,多数低于 0.05 |
| 石头 | 0.035–0.056 | 53–67 | 石头中最常见矿物的值 |
| 塑料、玻璃 | 0.04–0.05 | 56–63 | 不含水晶玻璃 |
| 水晶玻璃 | 0.05–0.07 | 63–75 | |
| 宝石 | 0.05–0.08 | 63–80 | 不含钻石及仿钻 |
| 类钻石 | 0.13–0.2 | 101–124 | 钻石及立方氧化锆、莫桑石 |
- 日常材质大多是电介质(玻璃、皮肤、木、头发、皮革、塑料、石头、混凝土、水;水导电是因为杂质)。 通常 ≤0.06,因此菲涅耳效应在电介质上特别明显;光学性质在可见光谱上变化很小,反射无色,用标量即可。未知电介质取 0.04 是合理默认值。宝石的鲜艳颜色来自内部吸收,与菲涅耳反射无关。
- 金属 几乎总在 0.5 以上,部分带颜色,按亮度递增举例(线性 RGB):钛 (0.542, 0.497, 0.449)、铬 (0.549, 0.556, 0.554)、铁 (0.562, 0.565, 0.578)、铜 (0.955, 0.638, 0.538)、黄铜 C260 (0.910, 0.778, 0.423)、锌 (0.664, 0.824, 0.850)、金 (1.000, 0.782, 0.344)、铝 (0.913, 0.922, 0.924)、银 (0.972, 0.960, 0.915)。金色彩最强,红通道略超出 sRGB/Rec. 709 色域(表中已钳制),蓝通道是表中唯一显著低于 0.5 的值。金属立即吸收透射光,没有次表面散射或透明,可见颜色全部来自 。
- 半导体介于最亮电介质与最暗金属之间(钻石 0.171–0.176、晶体硅 0.345–0.426、钛 0.449–0.542)。除非刻意表现奇异材质,应避免 0.2–0.45 之间的 。
水下的
周围不是空气时,用相对折射率: 水的折射率约为空气的 1.33 倍。折射率接近水的电介质受影响最大,金属几乎不受影响:皮肤 0.028→0.0007,Schott K7 玻璃 0.042→0.004,钻石 0.172→0.084,铁 (0.562, 0.565, 0.578)→(0.470, 0.475, 0.492),银几乎不变。
参数化技巧
- 金属度:用表面色 和标量 同时决定 与 ( 时 、无漫反射; 时 为电介质值、)。Disney 增加 "specular" 参数控制电介质 ,Unreal 采用;Frostbite 的电介质 范围更大;《使命召唤:无限战争》把金属度和 specular 打包进一个值以省内存,并让美术直接绘制 和 ,再自动转换为金属度参数化作为压缩手段。缺点:无法表达 带色的涂层电介质,金属与电介质交界处可能出瑕疵。
- 低 关闭边缘增亮:除特殊增透膜外没有材质的 低于 0.02,于是用低于 0.02 的值关闭凹洞区域的菲涅耳边缘增亮,代替单独的镜面遮蔽纹理(Schüler 提出,Unreal、Frostbite 使用)。
内反射与全内反射
- 内反射()发生在光从透明物体内部射到表面时。Snell 定律给出 ;当 超过临界角 时没有透射,全部反射,即全内反射。
- 菲涅耳方程对入射与透射方向对称,所以内反射曲线像"压缩"的外反射曲线: 相同,但在 而非 90° 达到 1,平均反射率更高——这就是水下气泡呈现银亮外观的原因。
- 只有电介质有内反射(金属与半导体迅速吸收内部光)。电介质折射率为实数,临界角为:
- Schlick 近似对外反射正确;用于内反射时以透射角 代替 。若已计算透射方向 (例如渲染折射时)可直接使用,否则用 Snell 定律计算较贵且需要折射率。
GEA 的视角:折射、透射亮度与全内反射(卷 II 12.4.4、12.1.2)
- 光子遇到两种材质的边界时可以被反射(镜面的路径可预测,漫反射即散射的方向随机)、透射并折射,或被吸收(能量变成热)。吸收随波长不同,就产生了材质的表观颜色:白色物体反射所有波长,红色物体吸收红色以外的波长(卷 II 12.1.2.1)。
- 两种透光材质之间的边界叫界面 (interface)。界面上反射与折射的组合,GEA 统称为菲涅耳反射(卷 II 12.4.4)。
- 折射率 ;Snell 定律 , 为相对折射率。
- 假设无吸收,反射亮度与透射亮度为(卷 II 12.4.4):
正弦平方之比来自入射与透射光线的投影面积和立体角不同。本页上文的 RTR4 用 与 、Schlick 近似描述反射部分,GEA 写作 且没有讨论 Schlick 近似。透射亮度的 比值也就是 ,说明光进入光密介质时亮度会变大。
- 全内反射:入射角为 0 时不偏折;入射角增大偏折越来越明显;相对折射率够极端时会达到临界角 ,折射光平行于界面,超过它光就反射回源介质(卷 II 12.4.4.1)。与本页「内反射与全内反射」一节一致。
原书问题(12.4.4.1):GEA 说"相对折射率足够极端"才会出现临界角。全内反射的条件不是折射率差有多大,而是光从折射率较高的一侧射向较低的一侧():此时只要 就存在临界角 ,入射角超过它即全反射;从光疏射向光密介质()时无论差多大都不会发生(Wikipedia "Total internal reflection";Hecht《Optics》第 4.7 节)。另外 Snell 定律中正弦之比等于而非"正比于"速度之比。
- 进入参与介质的光子会被多次散射,偏折够大的会回到源介质,即次表面散射(卷 II 12.4.4.2,见 实时次表面散射)。在光线追踪里,菲涅耳反射通过额外发一条透射光线实现,见 随机光线追踪与路径追踪。
PBRT 的视角:精确菲涅耳方程、导体与电介质(PBRT 4e 9.3–9.5)
上文 RTR4 以 Schlick 近似和 为主;PBRT 是离线光谱渲染器,直接计算完整的菲涅耳方程。
三类材料与折射率(9.3.1–9.3.2)
- 电介质(玻璃、水、空气)电子被束缚;导体(金属、石墨)电子可自由移动,能量迅速变热,约 0.1 μm 内全部吸收,pbrt 把金属当不透明;半导体(硅、锗)兼具两者,pbrt 不专门处理。
- 表 9.1 的可见光平均折射率:真空 1.0,海平面空气 1.00029,冰 1.31,20°C 水 1.333,熔融石英 1.46,玻璃 1.5–1.6,蓝宝石 1.77,钻石 2.42。折射率随波长变化(色散),pbrt 通过随机挑选单一波长再构造
DielectricBxDF实现色散(见 光谱渲染)。
方向:反射与折射的向量形式(9.3.3–9.3.4)
- 反射:(式 9.1);局部坐标系中只需把 取反。
- Snell:;pbrt 统一使用相对折射率 ,
Refract()中的eta更具体地是内部相对外部(以法线为准)的比值,光从内部射出时函数自己翻转法线、取倒数,并通过etap返回沿光线的实际相对折射率。 - 折射方向:(式 9.4),(式 9.5);根号内为负即全内反射,临界角 。自行计算:空气–玻璃(1.5)为 41.8°,书中"约 42°"正确;水(1.333)为 48.6°,与 9.5.2 节一致。
多少:菲涅耳方程(9.3.5–9.3.6)
- 振幅比平方得功率,再对两种偏振取平均(假设非偏振光)。
FrDielectric()与Refract()用同样的"必要时翻转界面"逻辑;全内反射时返回 1。 - 导体:折射率变成复数 , 为吸收系数。平面波 代入复折射率后实部为 ,随深度指数衰减(与 11.1 节体积吸收系数尺度完全不同,不要混淆)。
FrComplex()只是把Float换成complex<Float>,norm()取模平方;此时 有虚部,不再是透射角余弦。不同文献对 的符号、 的符号约定不同,只在模拟偏振时要紧。 - 和上文 RTR4 的关系:RTR4 用 和 Schlick 近似(导体用 RGB );PBRT 用逐波长的 光谱数据(如金,图 9.12),不使用 Schlick。两者不矛盾,是精度与成本的取舍;上文 GEA 的透射亮度 比值也与下面的式 (9.12) 一致。
光滑导体与电介质 BxDF(9.4–9.5)
- 完美镜面 BRDF 必须除以 :(式 9.9),否则代入散射方程会多出一个余弦。
DielectricBxDF以概率 选反射、 选透射;此时 中的 或 相消,所有样本贡献相同,菲涅耳项体现在反射与透射路径的比例上(图 9.15 与等概率选择相比误差明显降低)。(折射率匹配)时只有透射。浮点误差可能让采样了透射却遇到全内反射,此时返回无效样本。- 薄电介质
ThinDielectricBxDF(窗玻璃、保鲜膜):两层互逆的平行界面,忽略侧向位移,把无穷次内反射求和: 透射方向就是 。自行化简: 时 ; 正入射时 、,接近两倍。
非对称散射与伴随 BSDF(9.5.2)
光进入光密介质时能量被压缩到更小的立体角(水下的 Snell 窗口),辐亮度必须增大:
因此 BTDF 不对称。光源出发的路径传输重要性 (importance),此时要用伴随 BSDF ;TransportMode 告诉 BxDF 当前传输的是辐亮度还是重要性:传辐亮度时乘上式的缩放(代码中 ft /= Sqr(etap)),传重要性时不乘。双向算法若忽略这一点会得到错误结果。
原书问题(9.3–9.5,已解码网页 SVG)
- 图 9.6 图注写 (SVG 字形确认为粗体 )。垂直分量与 正交,只是长度为 ;应为 ,(正文的公式正确)。
- 9.3.2 说空气–钻石界面"折射率差 2.42"、空气–玻璃"差约 1.5"。2.42 和 1.5 是比值(相对折射率),差分别是 1.42 和 0.5;反射强弱由比值决定(式 9.7 只含 )。
- 式 (9.13) 写作 ,紧接着的伴随 BTDF 写作 。由式 (9.13) 解出的是 ,两式互相矛盾。与 Veach(1997 博士论文第 5 章)的结论 对照(pbrt 的 即 ),正确的是伴随式;式 (9.13) 应为 ,这样也与式 (9.12) 的 缩放方向一致。pbr-book-website 与 pbrt-v4 的 issue 中未见此条。
- 9.3.5 写偏振方向垂直或平行于"place of incidence containing the incident direction and surface normal",应为 plane of incidence(入射面);属笔误。
LearnOpenGL 的视角:Schlick 与金属度 (PBR / Theory)
来源:PBR Theory Fresnel 节。
F = F0 + (1-F0)*(1-cosθ)^5。电介质 ;金属用 albedo 作 :F0 = mix(vec3(0.04), albedo, metalness)。掠射角反射增强;与 Naty Hoffman 表中常见材质 一致。完整导体/电介质方程见上文 PBRT 视角。
出处
- realtime_rendering_4ed.pdf 第 9 章 Physically Based Shading
- Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
- Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 12 章 12.1.2、12.4.4 节
- PBRT 4e source excerpt: chapter 09 (Reflection Models)
- Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 9 章 9.1–9.9 节,pbr-book.org/4ed/Reflection_Models
- PBR — Theory
- learnopengl.com/PBR/Theory