我有一个非常笼统的问题。我希望确定许多对象的边界点(包括30-50个闭合多边形(z),每个多边形具有大约300个点(x,y,z))。我正在使用一个固定的视口,它围绕多边形坐标系的x,y和z轴(alpha,beta,gamma) wrt原点旋转。
在我看来,有两种可能性:透视投影或光线跟踪。透视投影似乎需要对每个点进行大量的矩阵运算,以确定其位置是否在视口内。或者,考虑到大量的点,我是否更好地对对象的视口像素进行光线追踪?即确定是否存在交集,然后确定交集是在对象内还是在对象外发生。在任何一种情况下,我都会将此结果作为0(外部)或1(内部)写入200x200表示视口的整数矩阵
在期待中感谢你
发布于 2009-10-08 11:16:40
透视投影(然后扫描转换图像坐标中的多边形)将会快得多。
透视投影时所需的矩阵变换(本质上是世界到摄影机矩阵)与光线跟踪时所需的方式完全相同。然而,使用透视投影,您只能变换角点,而使用光线跟踪,您将变换图像中的所有点。
发布于 2014-12-30 07:51:49
你应该能够使用透视投影和透视投影矩阵来计算顶点在屏幕空间中的位置?真的很难理解你想做什么。如果你想创建3D场景的图像,那么如果你的代码进行了优化,那么很难看出光线跟踪和光栅化之间有什么区别(你仍然需要使用光线跟踪方法的加速结构),但是,是的,光栅化可能会更快。
现在,如果您需要计算眼睛(相机的原点)和通过相机视图可见的几何体之间的距离,我不明白为什么您不能使用图像中任何像素的任何样本的深度值,并使用透视投影矩阵的逆矩阵来计算其在相机空间中的距离。
为什么速度是你的问题中的一个问题?否则,请使用RT。
其中大部分信息都可以在www.scratchapixel.com上找到
https://stackoverflow.com/questions/1537112
复制相似问题