光线追踪中嵌套体积材料处理与微面元阴影函数解决方案
嵌套体积材料处理
在光线追踪渲染中,处理嵌套体积和体积之间的过渡是一项重要任务。要实现逼真的渲染效果,需要正确处理材料与几何对象的关系,包括反射、折射和体积系数的模拟。然而,由于浮点数精度问题,处理体积过渡需要仔细建模。以下是三种常见的相邻体积建模方法:
1. 独特边界(Unique Borders) :在相邻体积之间共享独特的表面,以清晰描述两种(或多种)介质之间的界面。例如,玻璃和水相遇时,用一个单一的表面网格代替原来的两个网格,并赋予特殊类型。但这种方法需要手动将单个对象分割成多个子区域,对于艺术家来说操作困难,尤其是在动画场景中。此外,每个表面需要为正面和背面提供单独的材料,并且需要明确定义面的方向。
2. 额外气隙(Additional Air Gap) :在相邻体积之间留出轻微的气隙,以缓解一些建模问题。但这种方法会引入新的浮点数数学问题,因为在生成路径的新段时,每个射线原点需要一个 ϵ 偏移以避免自相交。当射线与相邻体积外壳相交时,可能会完全跳过一个(或多个)体积过渡,因此气隙需要大于 ϵ 偏移。此外,气隙会导致渲染外观发生显著变化,因为会发生比预期更多的体积过渡和折射。
3. 重叠外壳(Overlapping Hulls) :让相邻体积稍微重叠,以避免前两种方法的缺点。但这种方法会导致路径/体积交点的顺序和数量不正确。Schmidt 等人通过为每个体积分配优先级来解决这个问题,但这需要艺术家的明确交互,对于复杂场景尤其是动画场景来说很繁琐。
除了上述三种方法,还有一种特殊情况是完全嵌套/封闭
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



