Embree:照片级光线追踪内核
摘要
Embree 是一组由英特尔研究院开发的高性能光线追踪内核。这些内核经过专门的优化,并且支持 SSE 和 AVX 指令集,可在最新的英特尔® 处理器上进行照片级的渲染。除了光线追踪内核,Embree 还提供了一个照片级渲染引擎的示例。Embree 专为 Monte Carlo 光线追踪算法而设计,其中大部分光线都不连贯。在这种情形下,Embree 中特定的单条光线穿越内核可以提供最佳性能,而且它们极易集成到现有应用当中。
本文将概括介绍如何利用 Monte Carlo 光线追踪算法进行照片级渲染,以及 Embree 光线追踪内核如何提高这种算法的性能。
谁使用照片级渲染?
照片级渲染广泛运用于各种应用。设计师和工程师使用该技术呈现虚拟原型。这种用法可以减少所需物理原型的数量,缩短上市时间,降低开发成本。最近几年,计算机生成图片的真实性已经达到了很高的水平,渲染效果与照片无明显差异。这让计算机生成图片取代照片用于市场推广目的成了可能。同样,建筑师使用渲染技术向客户呈现新的建筑物,并使用类似的方法精确模拟室内照明。在影视界,照片级渲染也被广泛用于制作视觉特效和动画长片。
Embree 并未把目标直接锁定在渲染技术的最终用户。取而代之,这些内核专为集成到现有和未来渲染应用之中而开发。通过使用开源 Embree 光线追踪内核,研究人员和开发人员可以在英特尔® CPU 上实现最高级别的性能。当软件开发人员在其产品中运用 Embree 时,用户自然会受益。
它如何工作?
照片级渲染是将 3D 模型处理成与照片无明显差异的图片。它要求根据物理定律精确模拟光的传播。解决这一问题的最佳方法是 Monte Carlo 光线追踪,一种可以在数十亿条光线从虚拟场景中的表面上反射出来时追踪这些光线路径的算法。使用 Monte Carlo 光线追踪时面临的两个关键问题是:(a)认真选择一些从统计学角度具有代表性的光线路径,以及(b)尽快确定路径段与场景的交叉点。后者称为“可见性问题”,可由光线追踪内核解决,而且通常是渲染系统中计算最密集的部分。
Embree 提供了一个 Monte Carlo 光线追踪器示例。该渲染器展示了如何使用 Embree 的关键技术设计和实施高效的渲染系统。另外,该渲染器也是一个出色框架,用于在实际应用情形中评估和比较不同的光线追踪内核。
图 1: 奥地利皇冠的渐进渲染。一台采用四枚英特尔® 至强® 处理器的机器以交互式帧率计算 3D 模型的预览图片(左侧)。几秒钟之后,图片融合为一个更好的解决方案(中间)。完美图片(右侧)仅用了大约一分钟的时间完成了计算。模型来源:Martin Lubich,http://www.loramel.net。