Lecture 18:Advanced Topics in Rendering
- 本讲只是大概思路内容,基本没有技术细节
高级光线传播
- 无偏方法
- BDPT
- MLT
- 有偏方法
- Photon mapping
- VCM
- 实时辐射度方法
有偏 vs. 有偏的蒙特卡洛估计
- 无偏的:期望值都是定积分的值,是准确的
- 有偏的:期望和最后要的值不一样
- 特殊情况:在一个极限定义下,期望值会收敛到正确值——一致的
双向路径追踪(BDPT)
- 双向有些情况下效果特别好,如上图
- 实现非常难
- BDPT运行相对慢
Metropolis Light Transport(MLT)
- 利用马尔科夫链生成靠近的下一个样本
- 可以以任意的函数生成的形状的PDF生成样本
- 当f(x)和p(x)——积分和采样的函数最相近,variance最小。
- 给一条光路,善于生成相似的路径
- 很多情况下效果不错(和BDPT对比)
- 本方法适合做复杂场景的光线传播
- 比如水底波纹的情况
- 本方法的坏处
- 不知道多长时间收敛(变成没有噪声的)
- 所有操作都是局部操作(图像比较脏)
光子映射(Photon Mapping)
- 有偏估计
- 适合渲染caustics(由于光线聚焦产生的神奇图案),如下图
- 还适合做困难的光线路径
- 光子映射的方法(其中一种)
- 前两步分别从光源和相机出发反射,直到漫反射表面
- 对于前两步结果做密度估计
- N取多少的影响?说明本方法为什么是有偏的。
- 得打出无限多光子才准确
- 一种理解有偏 or 无偏的方式
Vertex Connection and Merging
- BDPT和光子追踪的结合体
实时辐射度算法(Instant Radiosity, IR)
- 有时候也被称为 many-light方法
- key idea 见图
- approach 见图
- 优缺点
- 一些缝隙莫名奇怪发光,不能做glossy材质
- 工业界多在用path tracing,可靠
Advanced Appearance Modeling(更复杂的外观建模)
- 非表面模型
- 表面模型
- 程序化生成的模型
非表面模型
- 参与/散射介质:雾、云
- 怎么散射?由Phase Function定义
- 渲染
- 怎么散射?由Phase Function定义
- 头发
- 两种高光:无色的和有色的
- 一个简单的模型,头发散射圆锥,同时也有四面八方,看着不太好:
- 一个广泛应用的模型,部分反射,部分进入发生折射,内部二次反射:
- Marshner Model:把头发理解成玻璃柱,考虑了三种光线,效果挺好,考虑了多次散射,即多根头发之间,计算量大
- 人的头发模型用于动物毛发?生物学知识
- 动物的髓质(medulla)更大导致更容易散射,原先模型忽略了
- 提出了双圆柱模型
- 又加入了两个分量
- 又加入了两个分量
- Granular Material 一粒一粒的那种模型 | 颗粒模型
- 很复杂,没得到非常好的解决
表面模型
-
Translucent Material 比如玉石,水母(翻译成半透明材质不太合理)
-
Subsurface Scattering 次表面反射
- BSSRDF 可以理解成对BRDF概念的延伸
- 一种近似方法
- 一组对比
- 另一组对比
- BSSRDF 可以理解成对BRDF概念的延伸
-
都是渲染的
-
布料材质
- 一系列缠绕的纤维:纤维–>股–>线
- 当成物体表面渲染
- 如果不是平面的布料材质呢?
- 把布料当成反射介质来做:
- 渲染每一根纤维!
- 把布料当成反射介质来做:
- 布料的三种方法都有人用,直到今天
-
复杂的细致材质
- 有的时候太完美了
- 有瑕疵才是真实细节
-
微表面模型
- 法线分布:过往的描述太简单
- 但是渲染出来太难了
- 困难在哪?容易miss光源or相机,解决?
- 法线分布:过往的描述太简单