想写一个光线跟踪器,坚持使用什么代数库(C++)

rob*_*ene 10 c++ raytracing algebra

我一直想用C++编写自己的多线程实时光线跟踪器,但我不想实现它附带的所有矢量和矩阵逻辑.我想我会做一些研究,为此找到一个好的图书馆,但我没有取得多大成功......

重要的是实施速度很快,最好是它带有一些友好的许可.我读过它boost有基本的代数,但我找不到任何关于它的速度有多好.

其余的,谷歌给了我Armadillo,声称速度非常快,并将自己与其他一些我没有听说过的图书馆进行比较.
然后我得到了Seldon,这也声称是高效和方便的,虽然我无法找到他们在规模上的确切位置.
最后我读了一下Eigen,在这里搜索时我也在StackOverflow上看过这个.

在我大学的CG讲座中,他们使用HLSL代数(让学生实现/优化光线跟踪器的部分),这让我思考是否可以使用GLSL它.同样,我不知道哪个选项最有效,或者对代数库的一般共识是什么.我希望SO可以帮助我,所以我可以开始一些真正的开发:)

PS:我尝试链接到网站,但我还没有足够的代表

Tim*_*dge 12

我建议你编写自己的例程.当我编写我的光线跟踪器时,我发现大多数代数都使用相同的小方法集合.基本上你需要的是一个支持加法,减法等的矢量类.从那里你真正需要的是Dot和Cross.

说实话,使用GLSL并不会给你带来更多的东西(它们只支持点,交叉和简单的矢量数学,其他一切都必须手工编码).我还建议使用C++进行原型设计,然后再转向CUDA.调试GPU代码相当困难,因此您可以在CPU中使用它然后重新编码以便在CUDA中工作.

实际上光线追踪器相当简单.这让他们很快就很难.这是加速结构,需要花费大部分时间和优化.至少它对我有用.