Environment lighting

环境光照是一种无限距离远和所有方向的光照

 

 The split sum approximation

为了算出着色,所以需要Solving the rendering equation,其中的V项代表了光线是否能够到达,在去除V项之后就是单纯的光线发出了

 

 

 但是一般解rendering equation的方法是Monte Carlo integration,这种方法是通过大量采样的结果来近似的,所以就会非常慢,不适合用于实时渲染,但最近几年已经有方法可以让采样的方法用在实时渲染中了。

 通过观察发现,如果BRDF是glossy,就会变得small support!,如果是diffuse,就会smooth

 

 这正好符合之前的近似公式

 

 通过把Li项拆分出来,就会简化计算

 

 

 同时也变成了Li对BRDF上的范围的filter再进行normal,也就是说先预计算存储filter,在实际使用时就可以直接查询了。

 

 

 比方说在下图中,如果是glossy,原本的方法是查询镜面反射方向的附近一片的范围然后加权平均,现在是先Prefiltering,然后在镜面反射方向上直接查询即可。

 

前面的 Li项在不采样的方法下可以解出,但后面的BRDF项比较复杂,它的参数较多,如果直接预计算就会是高维的非常耗时的计算,所以需要降低维度计算。

 

 在BRDF中,主要由F和D项来控制。

 

下图中的R(θ)代表了不同角度下的菲涅尔项,R0代表了材料折射率,θ代表角度,D(h)是由α和θ控制,也就是说这是一个三维的计算。

 

依然需要降低维度来减少计算量,在这里使用近似的方法来把R0拿到积分限前面,这样就变成了二维的计算。

 

 也就是由α和θ来作为自变量,这样就避免了BRDF的采样。

posted @ 2022-09-03 11:39  捞的不谈  阅读(59)  评论(0编辑  收藏  举报