gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 15:51:39 26 4
gpt4 key购买 nike

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

重要的是实现速度要快,而且最好附带一些友好的许可。我读过 boost 有基本的代数知识,但我找不到任何关于它的速度有多好的信息。

对于其余部分,Google 给了我 Armadillo,它声称速度非常快,并将自己与我从未听说过的某些其他库进行了比较。
然后我得到了 Seldon,它也声称是高效和方便的,尽管我找不到它们在秤上的确切位置。
最后,我阅读了有关 Eigen 的内容,我在此处搜索时也在 StackOverflow 上看到了它。

在我大学的 CG 讲座中,他们使用 HLSL 进行代数计算(让学生实现/优化光线追踪器的部分),这让我开始思考我是否可以使用 GLSL 为此。同样,我不知道哪种选择最有效,也不知道代数库的普遍共识是什么。我希望 SO 可以在这里帮助我,这样我就可以开始一些真正的开发:)

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

最佳答案

我建议您编写自己的例程。当我编写我的光线追踪器时,我发现大多数代数都使用相同的小方法集合。基本上你所需要的只是一个支持加法、减法等的 vector 类。从那里你真正需要的只是点和十字。

老实说,无论如何,使用 GLSL 不会给你带来更多好处(它们只支持点、交叉和简单的 vector 数学,其他一切都必须手工编码)。我还建议使用 C++ 进行原型(prototype)设计,然后再转向 CUDA。调试 GPU 代码相当困难,因此您可以让它在 CPU 中运行,然后稍微重新编码以在 CUDA 中运行。

实际上,光线追踪器相当简单。让它们变快很难。加速结构将花费您大部分时间和优化。至少它对我有用。

关于c++ - 想写一个光线追踪器,坚持要使用什么代数库(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4674195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com