渲染中的前沿技术

高级光线传播

  1. 无偏的光线传播(unbiased):
    1. 双向路径追踪,BDPT: 当从相机发出光线,不容易直接到达光源的时候,BDPT就非常合适,可以从光源打出一条光线子路径,再将其与从相机发出的光线子路径连接起来,实现起来困难,而且很慢
    2. metropolis光线传播,MLT: 马尔可夫链,给定一条路径可以生成与其相似的路径,特别适合做复杂的光路传播,但很难去估计合适收敛,合适没有噪声;因为都是局部的,各自渲染各自的,所以最终渲染的结果看起来比较脏;不能用来渲染动画
  2. 有偏的光线传播(biased):
    1. 光子映射,photon mapping: 特别适合处理SDS,以及caustics
      1. step1: 从光源辐射出光子,该反射的反射,当遇到diffuse物体的时候,停下来
      2. step2: 从摄像机发出光线子路径,该反射的反射,当遇到diffuse物体的时候,停下来
      3. step3: 局部密度估计,光子分布越集中,则越亮。取任意着色点,找出周围最近的N个光子,N个光子占据的面积S,光子密度 = N / S,如果N比较小,噪声会很大,如果N过大,会模糊。为什么是有偏的?光子密度的计算,理论上应该是在光子周围取极小的面积,但此处计算,面积并非极小,N / S != dN / dS
      4. 如果N较大,则S越小,S会越接近dS
    2. 结合光子映射与双向路径追踪,VCM
  3. 实时辐射度算法(Instant radiosity): VPL,已经被照亮的面,我们把它当做是光源,不适合用作光源极近的情况,也不适合用作glossy物体
  4. 蒙特卡罗积分中有偏和无偏
    1. 无偏: 无论多少次采样,期望值永远是正确的。虽然是有模糊的,但只要样本足够多,一定会收敛到正确的结果
    2. 有偏: 非无偏,但有一种特殊情况,采样次数趋近于无穷大的时候,期望值收敛到正确值。得到的结果一定模糊

高级外观建模

  1. 非表面模型:
    1. 散射介质: 雾,云,光线在传播过程中被吸收或者被散射,有phase function定义如何散射
    2. 头发,动物毛发: 双层圆柱模型
    3. 颗粒材质(granular material): 沙子
  2. 表面模型:
    1. 半透明(translucent material): 玉石,水母,次表面散射,BSSRDF规定了光线从某一点进去,可以从任意其他点出来,diapol模拟
    2. 布料: 一系列缠绕的纤维,经过一次缠绕可以形成不同的股,不同的股再次缠绕会形成不同的线,然后被织成布料。
      1. 将布料当成散射介质来渲染
      2. 将布料当头发渲染
    3. 有细节度材质: 真实世界里车体表面清漆会与空气中的颗粒物摩擦导致划痕

程序化生成外观

  1. noise函数,定义在空间中,二值化