13得票5回答
为什么在点集中使用KD树进行最近邻搜索会非常慢?

我正在使用CGAL(最新版本)的KD树实现来搜索点集中的最近邻居。维基百科和其他资源似乎也表明,KD树是正确的选择。但不知何故,它们太慢了,并且维基百科还建议它们的最坏时间复杂度为O(n),这远非理想。 [开始编辑] 我现在使用的是"nanoflann",它比CGAL中等价的K邻居搜索快10...

13得票1回答
相机俯仰/偏航转换为方向向量

我要做的是从我的相机发射一条光线。我知道相机的x、y和z坐标,以及它的俯仰角和偏航角。我需要计算其方向向量,以便将其传递给我的光线跟踪算法。 相机的上向量为(0, 1, 0)。“俯仰角”是相对于相机而言的,是向上或向下看。 (如果必须要用矩阵,我也可以接受)

12得票2回答
精确的亚像素线绘制算法(光栅化算法)

我需要一个算法,它可以比Bresenham线绘制算法慢一点,但必须更加精确。所谓“精确”,是指每个接触的像素都应该被打印出来。不多也不少!这意味着使用更厚的线条或类似物不是一个选项,因为会涉及太多的像素。此外,我不需要图形框架或类似的东西,就像之前问过的一样,我需要的是算法!这个应用程序实际上...

12得票2回答
Java光线追踪中的float与double比较

上学期我们在学校上课时需要开发一个光线追踪器。学校结束后,我想对它进行一些调整。我想知道如果将所有的浮点运算从双精度更改为单精度(因为计算都是用双精度完成的),那么会有什么变化。所以我将每个变量都更改为float类型,并简单地将从Math方法返回的每个double强制转换为float。在几个场...

11得票4回答
如何快速判断一个点是否在复杂场景中被遮挡?

我有一个复杂的3D场景,需要在基于3D坐标的情况下在其上显示HTML元素。(我只是在顶部覆盖了一个标签,并用CSS定位它。)然而,当3D坐标被模型遮挡时(例如,当它在相机中不可见时),我也需要部分隐藏它(例如,使其透明)。这些模型可能有数十万个面,我需要一种快速的方法来找出它是否被遮挡,以便每...

11得票2回答
CUDA下的光线追踪

我目前正在实现一个光线追踪器。由于光线追踪非常计算密集,而且我也打算研究CUDA编程,所以我想知道是否有人有将两者结合的经验。我无法确定计算模型是否匹配,我想知道会发生什么。我觉得它们并不完全是天作之合,但与没有东西相比,一个体面的速度增加总是更好的。

11得票2回答
KD-Tree遍历(光线跟踪)-我是否遗漏了某些情况?

我正在尝试在我的光线追踪器中遍历一个3D KD-Tree。树是正确的,但由于我的遍历算法存在问题,与使用暴力方法相比(一些小表面区域似乎被忽略了),我得到了一些错误。 注意:所涉及的光线都不与任何轴平行。 这是我的遍历算法:IntersectionData* intersectKDTree...

11得票3回答
GLSL的反射函数说明是否可用?

我正在尝试调试我的简单光线追踪器,模拟从一个点射出的光线穿过透镜的过程。我只需要实现折射效果。 我曾试图手工实现它,但最终我在 GLSL 中找到了文档中描述为 refract 的函数,这在 GLSL 1.1 中是这样的://For a given incident vector I, sur...

11得票4回答
光线追踪 - 如何结合漫反射和镜面反射颜色?

我一直在阅读有关光线追踪和着色的文章,但我的光线追踪图像看起来并不太好。我指的是高光附近非常亮绿色的区域。结果绿色在这里已经达到了最大值。如何调整颜色和/或着色计算以使其看起来正确?(别在意傻瓜代码, 我只是想先确保原则正确)。以下是它的样子:这里只显示漫反射成分:这里只显示镜面反射成分:编辑...

11得票3回答
Möller-Trumbore射线相交算法是最快的吗?

为了一个光线追踪项目,我一直在研究处理光线和三角形(由三个顶点定义)相交的算法。目前我所发现的是莫勒-特伦博雷(MT)算法被广泛使用。 我的问题是1) 是否有MT的替代品或者MT算法被认为是计算相交的最快方式?2) 如果有,MT是否被证明是最优的,或者有可能有人发明出更快的算法? 编辑: ...