小结:介质和导电体中的反射和透射

分类: raytracing |
2017.2.17 修改
2017.5.9 修改。增加conductor精确公式
目录
1、Reflection and Transmission for dielectrics.
2、Reflection and Transmission for conductors.
3、Schlick 近似公式。
注:公式基本都出自Griffiths的《Introduction to electrodynamics》。
1、Reflection and Transmission for dielectrics.
1.1 有两个前提条件:边界条件和麦克斯韦方程。
a、麦克斯韦方程。
在没有自由电荷和电流的区域:
1.2 由上述两个条件推出振幅公式:
定义α和β分别为:
则推出:
a、极化方向与入射面平行:
b、极化方向与入射面垂直:(习题9.16)
2、反射和透射系数:
根据:
a. 极化方向平行于反射面的情况下:
注意:R + T = 1
仅仅是单个极化方向的反射率还没什么用,pbrt中给出了无极化方向反射率的近似公式。
上述电场的两个极化公式可以分别写为(磁导率两介质应该变化很小,和真空中一样 μ2
= μ1,so β=n2/n1 ):
注:这个公式和Griffiths的推导结果差一个符号,常见的Hecht 和 Born中的公式就是该式。
在Hecht中,有另一种简化的形式(用Snell定理推出):
Fr 不是近似值,可以按照公式推出。设A B分别为平行和垂直反射振幅值,则任意极化的振幅可以写为:
C = A * cos θ .X + B * sinθ
.Y
C的振幅 = A*A*cosθ*cosθ +
B*B*sinθ*sinθ
把上式在0到pi/2区间中积分,其均值就是Fr.
G:\FLX\test scene\Matlab
test\Materials\FresnelDielectric_test.m
给出了普通玻璃1.5 钻石2.42的两张图。r: 反射率。 g: 平行振幅比值; b:
垂直振幅比值。
普通玻璃
2、Reflection and
Transmission for conductors.
pbrt v2版本
note: from pbrt,η为折射率, k为吸收因子。
G:\FLX\test scene\Matlab test\Materials\FresnelConductor_test.m
r: 反射率。 g: 平行振幅平反比值; b: 垂直振幅平方比值。
金
注意:2.1、金属的折射率和吸收率与波长关系比较密切,如果有与波长相关的材质数据,尽量采用。
下图为金的折射率和吸收率与波长关系图(来自pbrt)
2.2、在2016年Siggraph
tutorial中《s2016_pbs_recent_advances_v2》第37页的纯金属测试数据和上面的理论值相差太大,以后有时间研究一下。
2.3 pbrt v3 引入了新的公式,FresnelConductor_test.m 增加了对比
3、Schlick 近似公式。该公式是图形学中常用的近似逼近,作为图形学的一般应用一般是可以的。但是作为仿真,误差还是太大。维基百科链接