Embree英特爾高性能光線追蹤內(nèi)核
Embree概述
Embree是在英特爾開發(fā)的高性能光線追蹤內(nèi)核的集合。 Embree的目標(biāo)用戶是圖形應(yīng)用工程師,他們希望通過(guò)利用Embree的優(yōu)化光線跟蹤內(nèi)核來(lái)提高應(yīng)用程序的性能。內(nèi)核針對(duì)支持SSE,AVX,AVX2和AVX512的最新英特爾?處理器進(jìn)行了逼真的渲染優(yōu)化。 Embree支持運(yùn)行時(shí)代碼選擇,以選擇與CPU的指令集最匹配的遍歷和構(gòu)建算法。我們建議使用Embree通過(guò)其API來(lái)從未來(lái)的改進(jìn)中獲得最大的好處。 Embree根據(jù)Apache 2.0許可證發(fā)布為開源。
Embree還通過(guò)為核心光線追蹤算法提供ISPC接口,支持使用Intel SPMD程序編譯器(ISPC,https://ispc.github.io/)編寫的應(yīng)用程序。這使得可以在ISPC中編寫使用SSE,AVX,AVX2和AVX512的渲染器,而無(wú)需更改任何代碼。 ISPC還支持運(yùn)行時(shí)代碼選擇,因此ISPC將為您的應(yīng)用程序選擇最佳代碼路徑,而Embree為光線跟蹤算法選擇最佳代碼路徑。
Embree包含針對(duì)非相干工作負(fù)載(例如蒙特卡羅射線追蹤算法)和相干工作負(fù)載(例如主要可見性和硬陰影射線)優(yōu)化的算法。對(duì)于標(biāo)準(zhǔn)CPU,Embree中的單射線遍歷內(nèi)核為非相干工作負(fù)載提供最佳性能,并且非常容易集成到現(xiàn)有渲染應(yīng)用程序中。對(duì)于啟用AVX512的計(jì)算機(jī),使用默認(rèn)混合光線/數(shù)據(jù)包遍歷算法在ISPC中編寫的渲染器顯示性能最佳,但需要在ISPC中編寫渲染器。一般來(lái)說(shuō),對(duì)于一致的工作負(fù)載,ISPC在每個(gè)平臺(tái)上勝過(guò)單射線模式。 Embree還通過(guò)實(shí)現(xiàn)高性能兩級(jí)空間索引結(jié)構(gòu)構(gòu)建算法支持動(dòng)態(tài)場(chǎng)景。
除了光線跟蹤內(nèi)核,Embree提供了一些教程來(lái)演示如何使用Embree API。最初包含在Embree內(nèi)核包中的示例照片級(jí)渲染器現(xiàn)在在單獨(dú)的GIT存儲(chǔ)庫(kù)中可用(請(qǐng)參閱Embree示例渲染器)。
