【问题标题】:Ray Box intersection射线箱相交
【发布时间】:2018-03-13 19:06:18
【问题描述】:

我想知道是否有人知道光线盒相交算法的好资源。我正在编写一个光线跟踪程序,并希望包含一个原始框对象。具体来说,我需要一种算法,它可以为参数化为 R = E + t*D 的射线返回“t 值”,其中 E 是起点,D 是方向向量。我已经实现了一个对边界框有用的光线框交集,但它只返回一个布尔值来判断框是否被击中。然而,这并不好,因为我需要能够计算 3D 空间中盒子被击中的确切点才能渲染它。

【问题讨论】:

    标签: graphics 3d geometry intersection raytracing


    【解决方案1】:

    【讨论】:

    • 谢谢——你知道为什么虽然在intersectionP 例程中他们有两个浮点数hitt0 和hitt1 来更新吗?为什么不简单地返回最接近的值?
    • hitt0 始终是最近的值(即光线的进入点),而 hitt1 始终是较远的点(即光线的存在点)。如果你不需要那个值,你可以传递一个 NULL 来代替 hitt1。
    • 哦,好吧,我明白了。如果光线的来源来自盒子内部会发生什么? “近”值是否为空?或者算法是否将光线视为无限长,因此总是计算两个值?
    • @user1855952 在这种情况下,*hitt0 似乎是负数。如果*hitt1 也是负数,那么盒子完全在光线原点的后面,否则原点在盒子里面。如需了解算法的帮助,请参阅here 和/或here
    猜你喜欢
    • 2011-02-03
    • 2011-07-18
    • 2012-10-21
    • 2016-05-11
    • 2012-02-14
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多