PBR

本文详细介绍了PBR(基于物理的渲染)中的BRDF方程,包括漫反射、高光反射的D项(Trowbridge-Reitz GGX)、G项和F项(菲涅尔方程)。讲解了菲涅尔方程在非金属和金属材质上的应用,以及如何根据材质的金属性调整F0。此外,还阐述了直接光照和间接光照的计算,涉及kd、ks的计算和能量守恒,以及环境光的采样和间接高光反射的LUT采样方法。总结了直接光和间接光的处理方式,并强调了能量守恒在整个过程中的重要性。
摘要由CSDN通过智能技术生成

直接光照部分

BRDF方程

 

漫反射:兰伯特光照模型,除以π是为了能量守恒

高光反射

D项

这个式子被称为Trowbridge-Reitz GGX,是高光反射项的D项,法线分布项。

其中的h为半角向量,n为法线,α是粗糙度相当于roughness或者1 - smoothness,

unity内部实现的roughness(或者α) = (1 - smoothness) * (1 - smoothness)

可以看出

粗糙度α = 0的时候,也就是完美光滑的情况,得到的结果是0,那么就会返回一团黑色,在unity内部做了一个插值lerp(0.002,1,roughness),这样可以保证带一点点高光。

粗糙度α = 1的时候,也就是完美粗糙的情况,得到的结果是1/π,是一个偏灰色的值。

 

当α从(0 - 1)之间过渡的时候(D项用的是GGXTR,return float4(D,D,D,1));

G项

 

F项

菲涅尔方程描述的是被反射的光线对比光线被折射的部分所占的比率,这个比率会随着我们观察的角度不同而不同。当光线碰撞到一个表面的时候,菲涅尔方程会根据观察角度告诉我们被反射的光线所占的百分比。利用这个反射比率和能量守恒原则,我们可以直接得出光线被折射的部分以及光线剩余的能量。

当垂直观察的时候,任何物体或者材质表面都有一个基础反射率(Base Reflectivity),但是如果以一定的角度往平面上看的时候所有反光都会变得明显起来。当用垂直的视角观察你自己的木制/金属桌面,此时一定只有最基本的反射性。但是如果你从近乎90度(指和法线的夹角)的角度观察的话反光就会变得明显的多。如果从理想的90度视角观察,所有的平面理论上来说都能完全的反射光线。

方程中的F0理论上是平面的基础反射率,但实际实现时需要考虑另一个情况,即:

菲涅尔方程只对非金属有效(因为金属本身反射率就高,所以在不同角度下的菲涅尔反射不明显),在表面为金属时需要用到跟金属表面颜色相关的另一个方程。为了能够用同一个材质表示金属和非金属的不同属性,将材料的金属性参数整合到F0的计算中。

float3 F0 = lerp(unity_ColorSpaceDielectricSpec.rgb, Albedo, _Metallic);</

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值