【问题标题】:Are there existing tools that raytrace triangle meshes?是否有现有的光线追踪三角形网格工具?
【发布时间】:2018-05-29 12:38:40
【问题描述】:

免责声明:我不是 100% 认为这是否是一个格式正确的问题,因此请随时发表评论并提出改进建议。我会积极寻找改进这个问题的方法。

我有一个三角形网格,比如说Stanford Bunny。现在,我想从 3D 源点沿 3D 方向矢量投射光线,并仅识别该光线与三角形网格的第一个交点。

我已经准备好了一个幼稚的实现。但是,我正在寻找更高级的实现。特别是,我将向多个方向投射数百万条光线,因此我正在寻找多线程或 GPU 加速的实现。

我不得不相信网上肯定有一些相当完整的项目,因为光线投射三角形网格是 3D 计算机图形学的基本组成部分。但是,除了个人项目之外,我找不到任何东西,这让我相信我使用了错误的搜索词,或者一些非常简单的东西。

我正在寻找有关可以对多边形网格进行光线追踪的现有工具的建议。

【问题讨论】:

  • 任何渲染应用程序?你发现的私人项目有什么问题?
  • 所以事情就是这样——我根本不需要任何渲染。我只需要能够找到到网格的距离。就是这样。不需要什么特别花哨的东西。
  • 我发现的私有项目是幼稚的、单线程的、内存效率低的等等。此外,我非常倾向于认为至少应该有几个相对较大的-考虑到科学可视化的重要性,命名开源项目。
  • CGAL's AABBTree 提供必要的查询。可能还有任何开源光线追踪器(例如Mitsuba)。

标签: graphics polygon mesh raytracing


【解决方案1】:

如果您需要做的只是找到数百万条光线到网格的距离。那么在线查找 CUDA 光线追踪教程可能是个好主意。这将向您展示如何投射数百万条光线。在大多数教程中,光线追踪用于通过相机矩阵渲染到屏幕上。但是,这不是必需的。只需将光线起始参数调整为您需要的参数,例如 3D 矢量和位置。然后将数据输出回CPU。对 GPU 和 CPU 之间的带宽感到厌烦,在 CPU 和 GPU 之间发送数百万个交点会使程序运行异常缓慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2019-12-01
    • 2017-03-28
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多