光线投射中的方向向量

Posted

技术标签:

【中文标题】光线投射中的方向向量【英文标题】:direction vector in raycasting 【发布时间】:2011-06-14 10:53:41 【问题描述】:

当我读到如何在光线投射中获取方向向量时,例如在这个网站上:http://www.daimi.au.dk/~trier/?page_id=98

他们首先使用正面剔除渲染网格,然后使用背面剔除。然后从正面减去背面,得到每个像素的方向向量。

但是获取方向向量的工作量不是很大吗,仅获取顶点位置(在世界坐标中)并减去片段着色器中的相机位置以获得方向向量不是更简单更快吗?这应该给出完全相同的答案,但我们跳过了背面和正面渲染。

【问题讨论】:

【参考方案1】:

他们描述的方法给出了穿过物体的光线的精确片段(这对于体积渲染很重要)。所以如果你想得到穿过物体的那个像素的光线段,这是一个合理的做法。

如果您只想获取从相机到对象的方向矢量,那么按照您的建议(并可选地对其进行标准化)是一种更有效的方法。

【讨论】:

但是结果会一样,还是第一种方法更准确? @Merni:如果你将它们都归一化,我希望它们会是相同的(除了舍入误差)。

以上是关于光线投射中的方向向量的主要内容,如果未能解决你的问题,请参考以下文章

光线投射算法(如何计算一个坐标点是不是在一个多边形内)

为什么在WebXR中错误地计算了光线投射方向?

Unity 中的光线投射和计时器问题

如何为光线投射生成相机光线

光线投射和二维阵列在 Unity 中的魔方无法按预期工作

在 CUDA 中,如何在内核函数中将屏幕空间坐标转换为世界空间坐标