所以我正在实施路径追踪器。我选择使用Assimp库加载模型和场景信息。
根据它,它将提供网格数据和网格可能包含点,线,三角形和多边形原语。它给出了多边形三角剖分的选择,但我不知道如何处理线和点。我应该无视他们吗?
这导致了一个更大的问题出现在我的脑海中。我们能用射线追踪点和线吗?我曾经想用这种东西来显示我的边框在线框模式,但不知道我将如何只跟踪边界。
我猜这与提供一个特定的线/点宽度有关吧?否则它们太薄了,不能相交。
如果我们可以渲染线和点,那么在我的路径跟踪器中,我是否应该忽略它们?我会错过细节等吗?不知道他们在3D模型中代表了什么,因为我只看到了三角形/多边形。
发布于 2018-07-15 08:43:07
我猜这与提供一个特定的线/点宽度有关吧?否则它们太薄了,不能相交。
一点儿没错。真正的点和线没有空间范围:一点是无限小的,一条线是无限薄的。你不能用射线相交。但是一个有尺寸的点只是一个球体,一条有尺寸的线就是一个圆柱体,这些都是经典的光线投射原语,所以你当然可以把它们相交。
唯一的困难是,如果您的路径跟踪器目前只有一个几何原语(多边形或多边形网格):添加新的原语对您来说可能是困难的,如果您只为一个结构化它。但是即使在这种情况下,你也不能直接将点和线相交,你可以把它们在渲染器内变成多边形网格,然后再投射任何射线。如果你知道如何使球体和圆柱体聚合,你就已经知道该怎么做了。
https://computergraphics.stackexchange.com/questions/7812
复制相似问题