菲涅尔透镜的光学原理放大片在阳光下背面光面反光有什么办法解决的吗?

1.菲涅尔效应当光线到达不同折射率的介质之间的平面时,一部分光发生反射,一部分将被折射,这种效应所完全光滑的平面(理想镜面)呈现的菲涅尔效应此种反射有如下性质入射角=反射角(入射光线和反射光线关于平面法线对称)实际上,自然界中绝大多数平面都无法达到完全光滑的程度,会导致反射光和折射光都在预期的位置发生一定的扩散。如果我们通过折射看到了物体,则会感觉物体是透明的,这里我们假设物体是不透明的,不考虑折射光线。在非理想镜面上反射光发生扩散菲涅尔效应中,光的能量分成两个部分:反射光、折射光而菲涅尔方程描述了反射光在其中占据的比例,但是因为完整的菲涅尔方程达不到实时渲染的性能要求,我们通常采用“石里克近似法”来代替R_F(\theta_i) = R_F(0^\circ) + (1-
R_F(0^\circ))(1-cos\theta_i)^5 在其中 R_F(\theta_i) 即为入射光线与法线夹角为 \theta_i 时的反射光比例, 1-R_F(\theta_i) 即为折射光比例且 R_F(\theta_i) 的范围是 [0,1] , R_F 应该是一个RGB向量,用光的颜色反应光的比例。一般来讲我们能把基础颜色和金属度转换为反照率和 R_F(0) ,参考下面伪代码void ConvertBaseColorMetalnessToAlbedoRf0(float3 baseColor, float metalness, out float3 albedo, out float3 Rf0)
{
albedo = baseColor * saturate(1 - metalness);
Rf0 = lerp(float3(0.04f, 0.04f, 0.04f), baseColor, metalness);
}2.表面粗糙度宏观和微观表面法线我们摘取DX12龙书中的图形,展示了微观和宏观表面法线的区别,实际上,现实中的物体大多都是表面粗糙的,如果在微观角度看,法线是和宏观上的法线不一致的,而且物体越粗糙,这种偏差就越大。我们选取一个表面进行研究(v为观察向量,L为光照向量,h为半程向量,n为宏观法线)h 的得名是因为 h 处于 \upsilon 和 L 中间( \vec h = normalize(\vec v + \vec L) )微平面引入归一化分布函数 \rho (\theta_h)\in [0,1] ,表示h和n之间的夹角为 \theta_h 的微平面分布情况。我们期望在 \theta_h 为 0 时 \rho (\theta_h) 取得最大值,在 \theta_h 增大时, \rho (\theta_h) 逐渐减少。也就是说我们期望跟宏观法线相同方向的尽可能多,不同的尽可能少。一种比较流行的 \rho (\theta_h) = cos^m(\theta_h) = cos^m(\vec n ·\vec h) 对粗糙度进行建模可见此函数在m(粗糙度)变大时,微观法线跟宏观法线的偏差就会越大,而且无论m是多少,微观法线总体上是贴近宏观法线的。然后将 \rho (\theta_h)
与某种归一化因子( ((m+8)/8) )组合,使其能量守恒,得到粗糙度模拟镜面反射光量的新函数为S (\theta_h) =\frac{m+8}{8} cos^m(\theta_h) \\= \frac{m+8}{8}cos^m(\vec n ·\vec h) 3.镜面反射公式我们结合菲涅尔公式和对粗糙度的建模c_s = max(\vec L·\vec n,0) · B_L \otimes R_F(\alpha_h) \frac{m+8}{8}cos^m(\vec n ·\vec h)
(\alpha_h为)半程向量与光向量的夹角 }

我要回帖

更多关于 菲涅尔透镜的光学原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信