Embree英特尔高性能光线追踪内核
Embree概述
Embree是在英特尔开发的高性能光线追踪内核的集合。 Embree的目标用户是图形应用工程师,他们希望通过利用Embree的优化光线跟踪内核来提高应用程序的性能。内核针对支持SSE,AVX,AVX2和AVX512的最新英特尔®处理器进行了逼真的渲染优化。 Embree支持运行时代码选择,以选择与CPU的指令集最匹配的遍历和构建算法。我们建议使用Embree通过其API来从未来的改进中获得最大的好处。 Embree根据Apache 2.0许可证发布为开源。
Embree还通过为核心光线追踪算法提供ISPC接口,支持使用Intel SPMD程序编译器(ISPC,https://ispc.github.io/)编写的应用程序。这使得可以在ISPC中编写使用SSE,AVX,AVX2和AVX512的渲染器,而无需更改任何代码。 ISPC还支持运行时代码选择,因此ISPC将为您的应用程序选择最佳代码路径,而Embree为光线跟踪算法选择最佳代码路径。
Embree包含针对非相干工作负载(例如蒙特卡罗射线追踪算法)和相干工作负载(例如主要可见性和硬阴影射线)优化的算法。对于标准CPU,Embree中的单射线遍历内核为非相干工作负载提供最佳性能,并且非常容易集成到现有渲染应用程序中。对于启用AVX512的计算机,使用默认混合光线/数据包遍历算法在ISPC中编写的渲染器显示性能最佳,但需要在ISPC中编写渲染器。一般来说,对于一致的工作负载,ISPC在每个平台上胜过单射线模式。 Embree还通过实现高性能两级空间索引结构构建算法支持动态场景。
除了光线跟踪内核,Embree提供了一些教程来演示如何使用Embree API。最初包含在Embree内核包中的示例照片级渲染器现在在单独的GIT存储库中可用(请参阅Embree示例渲染器)。