Real-Time Global Illumination

实时全局光照:为了简单和快速,实时全局光照是在直接光照的基础上再加一次间接光照。

 

直接光照加间接光照的效果,图中小太阳的地方是直接光照,然后小太阳的光线会照射到p点

 实时全局光照的主要思路是:分为两个问题,第一步先确定直接光照点,这个可以用shadow map来解决,第二部是确定那些直接光照点(次级光源)对p点的贡献。

先确定次级光源,通过shadow map可以知道被光线直接照射的点,光线通过shadow map上的像素照射到物体表面,这些点其实是一片很小的区域,把他们对p点的作用加起来就是最后看到的渲染结果,但每一个次级光源都有自己的光线反射,为了能够快速运算,假设次级光源点的反射都是漫反射,但p点的反射是正常的反射,有Glossy和diffuse。

 

 次级光源对着色点p的贡献如何计算,因为次级光源是一个很小的面光源,可以用path trace的思路来做,也就是对次级光源采样的方法来算

 

 也是从渲染方程来计算,其中的Li是次级光源发出的radiance,在次级光源q上,它是漫反射,所以BRDF是常数,BRDF乘以入射的radiance就是出射的radiance,入射的radiance等于光源强度除以接受面积,然后会发现入射的radiance的式子分母dA和积分最后面的dA消掉了,这样就可以计算积分内的式子直接得到结果。但这里的visibility项很难算,因为要考虑每一个着色点和每一个次级光源的光线能否到达的情况,所以就忽略visibility,也就是光线能够直接到达,不会被挡住。

 

 从渲染方程上看,q到p的距离上还加了平方,所以在实际计算次级光源对p点的着色时,如果次级光源离着色点比较远,就可以忽略改次级光源,那么怎么样确定次级光源和着色点在三维空间下的距离,一种思路是把着色点投影到shadow map上的像素上,然后取改像素附近的像素对应的次级光源,也可以对像素附近采样。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章