OpenMesh多线程网格导入
OpenMesh multithreaded mesh import
我找不到任何关于 OpenMesh 操作线程安全的信息,
具体来说,我正在寻找多线程网格导入。目前我正在通过以下方式填充我的网格:
OpenMesh::IO::ImporterT
在单线程中。但如果可能的话——我不想在多线程中执行此操作,而不会阻塞:
meshImporter.add_face(faceHandle);
meshImporter.add_vertex(vertex);
但它比我想象的要慢一点(它消耗了下一个操作的一半以上时间 - 抽取相同的网格)。
None 的 OpenMesh 数据结构提供线程安全修改。 add_face
或 add_vertex
等操作需要更新其他元素类型的索引,以保持数据结构处于一致状态。因此,在同一网格上同时调用这些方法可能会导致网格数据损坏。
由于 OpenMesh::IO::ImporterT
主要将其调用转发到底层网格,因此适用相同的限制:必须同步对 OpenMesh 的所有更新。
我找不到任何关于 OpenMesh 操作线程安全的信息, 具体来说,我正在寻找多线程网格导入。目前我正在通过以下方式填充我的网格:
OpenMesh::IO::ImporterT
在单线程中。但如果可能的话——我不想在多线程中执行此操作,而不会阻塞:
meshImporter.add_face(faceHandle);
meshImporter.add_vertex(vertex);
但它比我想象的要慢一点(它消耗了下一个操作的一半以上时间 - 抽取相同的网格)。
None 的 OpenMesh 数据结构提供线程安全修改。 add_face
或 add_vertex
等操作需要更新其他元素类型的索引,以保持数据结构处于一致状态。因此,在同一网格上同时调用这些方法可能会导致网格数据损坏。
由于 OpenMesh::IO::ImporterT
主要将其调用转发到底层网格,因此适用相同的限制:必须同步对 OpenMesh 的所有更新。