games202-7

Specular下计算环境光照

从另一个角度解diffuse情况下的渲染方程。f是常数。在不考虑先后顺序的情况下将light和light-transport变成基函数的形式(关于积分区域:此处一个是在球面积分,相同为1不同为0。所以渲染方程的积分区域是球面,但是因为下半球都为0,所以不影响积分结果。)。将方程进行如下变换,由于SH的正交性,相同的B相乘积分为1,不同的为0。最后的结果和上节课的相同。(不过也能反应两个函数相乘积分最后的频率取决于两个函数本身频率更低的那个)

image-20230724224947569

对于specular的情况,f是四维函数,对于每一个不同的相机向量o,都有不同的函数。也就是说light-transport项,对于每个顶点的每个相机向量都不同。(diffuse情况下不用考虑相机位置,相机本身可以运动)也就是不同的相机位置,着色结果都不同。

此时四维函数投影在二维SH上得到的不再是一组系数而是一组球面函数。可以进一步将球面函数用SH基函数表示。此时Ti(o)不再是一个系数向量,而是一个矩阵。可以理解为每一个方向o都对应一个系数向量,多个方向合起来就是一个矩阵。结果就从原来的向量点乘变为了一个向量和一个矩阵的乘法,显著增加计算量。

image-20230724231107601

对于完全镜面反射物体,SH不适合描述过于高阶的函数。这种情况下可以换基函数或者ray tracing/不需要求积分,可以直接采样。

光线多次弹射

在path tracing中材质分为三种:diffuse specular glossy

LE:光线直接进入相机

LGE:光线打到glossy物体再进入人眼

L(G|D)*E:光线打到glossy/diffuse物体经过n次弹射再进入人眼

LS*(G|D)*E:光线打到specular物体上经过n次弹射,再打到glossy/diffuse物体经过n次弹射再进入人眼

所有光线的传播路径的起点和终点都是光源light和摄像机,不论中间有多少次bounce,最终的表达式都可以被描述为light和light transport两部分,也就是中间多次弹射的过程都可以列入light transport进行预计算。

对于diffuse的场景来说,transport部分如下:只是将有关L的球面函数改成了某个SH基函数。也就是可以将某个SH基函数当作某种L

image-20230725001238475

着色点

问题:

SH基本只适合描述低频函数,不太适合描述高频

场景静态,不能改变位置和材质

预计算的计算、存储和读取

二维小波基函数

SH定义在球面上。小波函数定义在图像块上,不同小波函数定义域不同。如下是某一种小波函数。定义域有明确界限。

支持全频率

不支持快速旋转

image-20230725004751422

全局光照

环境光:无限远到处L已知每个点一样

L

直接

无法通过bulin-phong模型中简单的提高所有物体亮度实现。

全局光照=直接光照+间接光照;具体想解决一次或多次的光线弹射。

哪些是刺激光源

shadow map 像素

贡献给p的贡献

反射无diffuse 接受五不要求贡献相同

da

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信