Skip to content

Lecture 18: Advanced Topics in Rendering

Advanced Light Transport

无偏光传播方法包含Bidirectional Path Tracing(双向路径追踪),Metropolis Light Transport(梅特罗波利斯光传输)等。有偏光传播方法包含Photon Mapping(光子映射),Vertex Connection and Merging(顶点连接与合并)等。以及Instant Radiosity(即时辐射度)等。

Biased vs Unbiased Methods

无偏光方法(如蒙特卡洛路径追踪)在理论上能收敛到真实解,但可能需要大量计算资源。有偏光方法(如光子映射)通过引入近似来提高效率,但可能无法完全收敛到真实解。

Bidirectional Path Tracing

双向路径追踪结合了从摄像机和光源发射的路径,将两者连接起来以计算光传输。BDPT在处理间接照明时表现出色。

Metropolis Light Transport

这个方法可以通过马尔可夫链蒙特卡洛方法高效地采样光路径,通过在一个已有的路径基础上进行小的随机变动来生成新的路径,从而更有效地探索光传输空间。MLT特别适合处理复杂的光传输现象,如 caustics(焦散),但很难确定收敛速度,不能保证每个像素都有相同的收敛速度,容易产生“脏点”。

Photon Mapping

光子映射是一种双阶段的渲染技术,首先从光源发射光子并最终停留在Diffuse表面上,然后在渲染阶段统计这些光子以估计间接照明。估计方式是估计一个点附近的光子密度,如果在点\(p\)附近找到\(N\)个光子,且这些光子在一个半径为\(r\)的圆内,则该点的辐射度可以估计为:

\[ L_r(p, \omega_o) \approx \frac{1}{\pi r^2} \sum_{i=1}^{N} f_r(p, \omega_i, \omega_o) \Delta\Phi_i \]

其中\(r\)是圆的半径,\(\Delta\Phi_i\)是第\(i\)个光子的通量。

光子映射的优点是能高效处理复杂的间接照明和焦散现象,但缺点是需要手动调节参数(如光子数量和搜索半径),且可能引入偏差。

Vertex Connection and Merging

顶点连接与合并(VCM)结合了双向路径追踪和光子映射的优点。它通过连接从摄像机和光源发射的路径顶点来计算光传输,同时也允许在路径顶点处进行光子合并以估计间接照明,即如果路径顶点足够接近光子位置,则可以将光子贡献合并到路径中。

Instant Radiosity

即时辐射度是一种基于虚拟点光源的渲染技术。它通过在场景中生成多个虚拟点光源来近似间接照明,从而实现实时渲染效果。

Advanced Appearance Modeling

Non-surface models

非表面模型包括体积散射(如雾、烟)和次表面散射(如皮肤、蜡)。这些模型需要考虑光在介质中的传播和散射。使用相位函数来描述光在体积中的散射行为。随机选择一个方向和距离来模拟光在体积中的传播。

对头发来说,可以使用Kajiya-Kay模型,这个模型考虑了头发的几何形状和光的反射特性。它通过计算入射光与头发纤维的夹角来确定反射光的方向和强度。更好的模型是Marschner模型,它考虑了头发的多层结构和复杂的光学现象,如双重反射和散射。

对于动物的毛发,可以使用类似的方法,但需要考虑毛发的不同结构和光学特性,动物毛发有更多的髓质,为了更好地渲染,使用双层Cylinder模型。

对于颗粒状物体,如沙子或雪,可以使用微表面模型来描述光在这些颗粒上的反射和散射行为。

对于一些透光型的材质(半透明),如水母、玉石等,可以使用次表面散射模型来描述光在这些材质中的传播和散射行为,即BSSRDF(双向散射分布函数),它描述了光在材质内部的传播和散射过程。可以用两个光源来近似BSSRDF,一个光源在物体内部,一个在物体外面。

对于布料,其是由纤维编织而成的,存在多级结构。将布料视作一种类似于体积散射的现象,使用体积渲染技术来模拟光在布料中的传播和散射行为。

Complex Materials

更复杂要考虑不同细节纹理、波动光学、三维上的噪声函数等。