标签: graphics 3d geometry intersection raytracing
我想知道是否有人知道光线盒交叉算法的良好资源。我正在编写一个光线跟踪程序,并希望包含一个box-primitive对象。具体来说,我需要一种能够为参数化为R = E + t * D的光线返回“t值”的算法,其中E是起点,D是方向矢量。我已经实现了一个对于边界框很有用的光线盒交叉点,但它只返回一个布尔值,表示该框是否被击中。然而,这并不好,因为我需要能够计算框中被击中的3D空间中的精确点以便能够渲染它。
答案 0 :(得分:0)
我假设您只对轴对齐框感兴趣。该代码在LuxRays资源中提供:https://bitbucket.org/luxrender/luxrays/src/ceb10f7963250be95af709f98633907c13da7830/src/luxrays/core/geometry/bbox.cpp?at=default&fileviewer=file-view-default#bbox.cpp-148