Games101-P18 Advanced Topics in Rendering
- P18 Preview
- Advanced Light Transport: A
- Advanced Appearance Modeling:
P18 Advanced Topics in Rendering
Advanced Light Transport
- 概述
- Unbiased 无偏的
Biased vs. Unbiased Monte Carlo Estimators
- 对比
- Unbiased 无偏:无论使用多少样本,无偏估计量的期望值总是正确
- 否则,为Biased有偏的(一种特殊情况,样本数无限多,期望值收敛于正确的值,这种情况称作consistent)
Bidirectional Path Tracing (BDPT)
跟踪来自照相机和光线的子路径,从两个子路径中连接端点
- 应用场景:在光源由漫反射形成的场景中效果较好
- 从相机出发的光线若为漫反射,则不容易达到光源处,因而BDPT效果会好
Metropolis Light Transport (MLT)
思想:利用统计学采样工具“马尔可夫链” + 蒙特卡洛积分,生成与被积分函数形状一致的函数为PDF进行采样(当PDF函数和被采样函数形状一致时,采样方差最小)
局部的操作,采样(产生路径)时,通过一定的概率扰动路径的传播,以已有路径作为种子,生成与已有路径相似的路径
优:适用于光线复杂的场景
劣:难以理论分析收敛(渲染完成的)速度;画面效果可能比较脏
Photon Mapping 光子映射
解释参考知乎:光子映射总结(1/4):基本全局光子映射(Basic Photon Mapping)
适用于caustics
- 步骤
- STEP1: 光线向各个方向出射光子,进行反射/折射,直到打到Diffuse的表面才停止(构建一张光子图,存储从光源发射的所有光子的通量信息)
- STEP2: 从相机出发,进行反射/折射,直到打到Diffuse的表面才停止(从相机出发,进行传统的路径追踪(path tracing),在追踪到漫反射表面的时候,统计附近的光子信息,并根据这些信息计算出最终的辐射率(radiance))
- STEP3: 局部密度估算
- 想法:有更多光子的区域应该会更亮
- 对于每个着色点,找到最近的 $N$ 个光子。取这 $N$ 个光子所占的表面积 $S$
- 计算密度($N/S$)
- 问题:光子数少,Noise明显;光子数大,画面模糊
- Why biased?
- But consistent: 射出光子无限多,无限趋向于真实
Vertex Connection and Merging (VCM)
- 是BDPT和光子映射的结合
- 两端使用BDPT后,对邻近的断点使用光子映射
- 电影制作中广泛应用
Instant Radiosity (IR) 实时辐射度算法
- 思想
- 认为已经被照亮的面,都是光源
- 针对一个着色点,认为其被其他“光源”照亮——利用直接光照的方法,获取间接光照的结果
- 优劣
- 优:fast and usually gives good results on diffuse scenes
- 劣
- 缝隙处出现亮点(原因:对渲染方程的积分换元时,从换成 $d\omega$ 光源面积 $dA$ ,分母出现 $|x’ - x|^2$ 。因此两点间距离极小时, $L_o$ 极大)
- 做不出glossy
Advanced Appearance Modeling
- 概述
Non-Surface Models
Participating Media 散射介质
举例:雾(有体积,不局限于表面)
- 光可以穿过很多物体,不仅仅是雾这类,只是穿过不久会消失(次表面散射
- 如,光穿过手:
- 光可以穿过很多物体,不仅仅是雾这类,只是穿过不久会消失(次表面散射
光在行进过程中,穿过散射介质时,会发生吸收、散射
- Phase Function 相位函数:决定光线如何散射的函数(类比BRDF,决定光线如何反射)
- Rendering
Hair Appearance
描述光线如何和一根曲线作用(写实)
Kajiya-Kay Model
Marschner Model —— 广泛应用
- R:表示反射
- T:表示折射
- TT:两次折射穿出表面
- TRT:头发内反射一次后,再折射出去
- 将毛发看作玻璃柱
Human Hair vs Animal Fur
- 动物毛发髓质部分所占体积大,导致光线在毛发内更易发生散射
Granular Material 颗粒材质
- 渲染耗时长
Surface Models
Translucent Material
- 概念:光进入物体表面后,在内部会发生吸收、散射,改变传播方向,最终射出(举例:人体皮肤、玉石、水母)
- Subsurface Scattering
- Scattering Functions
- BSSRDF(对BRDF的延伸):不仅需考虑该点入射光的贡献,还需考虑周围其它点对该点的贡献。对方向和面积都需要进行积分
- Dipole Approximation(一种对次表面散射的模拟方法)
- 近似为,材质里面一个
Cloth
布料:Fiber纤维 ➡️ Ply股 ➡️ Yarn线
Rendering
Render as Surface:当成整个表面渲染(BRDF,存在各向异性的局限性)
Render as Participating Media:微观层面,将布料当成反射介质(计算量大)
- Render as Actual Fibers:渲染每一根纤维(计算量大)
Detailed Appearance:
- 更贴近真实世界:划痕
- Recap: Microfacet BRDF
- $D(h)$ 为法线分布
- $D(h)$ 法线分布过于光滑时,无法模拟细节
- 法线分布不同的结果
- Problem & Solution
- Difficult path sampling problem
- 每一个微表面都发生镜面反射,Path Tracing光线很难打到光源处
- Solution: BRDF over a pixel
- 考虑一个像素覆盖很多微表面,计算覆盖范围内微表面的法线分布
- Difficult path sampling problem
Recent Trend: Wave Optics 波动光学
- 光的波动性——干涉、衍射
Procedural Appearance 程序化生成
- 使用3D Noise函数定义三维纹理(如Perlin Noise;用于树木年轮等;切面纹理可见)