【问题标题】:library for beam tracing (beam intersection) on a 3D Polygon model用于 3D 多边形模型上的光束跟踪(光束交叉点)的库
【发布时间】:2011-04-05 08:42:35
【问题描述】:

我想模拟一个激光扫描仪,该扫描仪将激光束发射到 3D 模型上,以测量模型的距离或其他特征。 3D模型由xyz坐标中的顶点和面组成;每个顶点也有一些用户定义的特征。

方法应该很简单。我定义了一个视点和视矢量(即激光束);我需要做的是检查第一个顶点或与视图向量相交的第一个面,然后我可以测量距离并评估最近顶点的特征。

有没有可用的库或工具来做到这一点?

【问题讨论】:

    标签: opengl 3d intersection trace raytracing


    【解决方案1】:

    从字面意义上讲,您所说的是ray tracing。这样做背后的数学和代码并不是特别复杂,尤其是在您不必考虑反射的情况下。有一个教程可以在 C++ here 中做到这一点;三角形相交几乎和球面相交一样简单,您可以完全忽略曲面属性。如果您不想编写自己的代码(但说真的,可能需要一百行来完成您正在寻找的工作),有一个提示,告诉您如何让 Povray 完成您在here 之后要做的事情。

    编辑:更多数学,包括三角形相交,是here

    【讨论】:

    • 谢谢,顺便说一句,我也想试试 [bullet](www.bulletphysics.com/)。
    • 这太夸张了。虽然您可能会在 Bullet 中找到一种方法,但它实际上旨在解决一个完全不同的问题。
    • 我明白了。我需要处理具有近百万个顶点的网格。自己实现光线投射是不切实际的。
    • 我认为您说的是一个大问题,而不是一个难题。你需要达到什么样的速度?扫描 50 万个三角形需要多快?您实际上需要投射多少条光线?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2019-05-22
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多