【问题标题】:3D Mesh model (.obj) Importing via vcglib causes Assertion 0 failed issue3D Mesh 模型 (.obj) 通过 vcglib 导入导致 Assertion 0 failed 问题
【发布时间】:2020-02-22 20:29:09
【问题描述】:

我正在尝试使用以下代码通过 VCG 库导入 OBJ 格式的 3D 网格文件

vcg::tri::io::Importer<MyMesh>::Open(vcgMesh, path)

/wrap/io_trimesh/import.h 标头支持的几乎所有 3D 网格格式都可以正常工作。 (STL、PLY,甚至 OBJ!)
但只有某些特定的 OBJ 文件会导致错误并使应用程序完全崩溃。
例如,我从此链接获得的 OBJ 文件 https://free3d.com/3d-model/wwi-plane-pfalz-diii-a-90772.html

这是我收到的错误消息

/vcg/simplex/edge/component.h:46: typename T::VertexType*& vcg::edge::EmptyCore<T>::V(int) [with T = MyUsedTypes; typename T::VertexType = MyVertex]: Assertion `0' failed [1]    24708 abort (core dumped)

问题是我什至无法尝试捕捉错误。而且我找不到任何解决方案来防止我的应用程序崩溃。
我试图在搅拌机和 MeshLab 中打开文件。这些应用程序可以毫无问题地导入 OBJ 文件。
这里有一些相关的问题,但没有一个解决方案适用于这种情况。
Failed to to simplify 3D models with vcglib, Assertion `0' failed
Assertion Failure when using vcglib examples

有什么办法可以解决这个问题吗?即使这是 vcglib 本身的问题并且很难修复它,如果我能捕捉到错误并防止我的应用程序崩溃,那就太好了。请帮忙! 先感谢您。

【问题讨论】:

    标签: c++ 3d meshlab wavefront vcg


    【解决方案1】:

    我尝试在搅拌机和 MeshLab 中打开文件。那些应用 导入OBJ文件没有任何问题。

    真的吗?您的 obj 文件无效,meshlab 或 blender 不可能处理带有以下行的 .obj 文件:

    vt 0.349751 0.599421
    vt 0.351053 0.607569
    vt 0.369663 0.673393
    vt nan nan
    vt nan nan
    vt nan nan
    

    此外,一些纹理具有绝对路径,例如

    map_Kd /C:/Documents and Settings/Jean-Marie/Mes documents/....
    

    【讨论】:

    • 我不知道内部文件结构是否正确,但是即使没有纹理或材质文件,blender和meshlab也可以毫无问题地打开。我想知道您是否使用我上面链接的正确模型进行了测试。请查看此截图Screenshot
    • 您说“那些应用程序导入 OBJ 文件没有任何问题”,但我在 meshlab 2016.12 上进行了测试,在出现“分段错误”的 meshlab 崩溃之前出现了 12 个错误,抱怨纹理文件名。在控制台中,我有更多类型的错误“警告有一个 7 个顶点的退化 poligon 被三角化为 0 个三角形”
    • 你查看我附上的截图了吗?我不确定我们是否在谈论相同的模型。请检查您下载的型号名称。我的是'pfalzD3a.obj',它绝对可以在搅拌机和meshlab上打开,就像我上面所附的那样
    • 是的。它有几个问题可能会在某些加载器上产生错误。网格具有无法进行三角剖分的退化多边形,并且具有带有 Nan(不是数字)值的纹理坐标。一些读者可能会发现并忽略这些问题,但其他人(如 VCG)选择严格而不忽略这些问题。如果 blender 或旧版本的 meshlab 可以加载模型,只需将其保存在新文件中,然后尝试使用现代 VCG 打开该副本
    • 哦,我知道了,非常感谢。问题是我正在使用 VCG 构建一些应用程序,所以当出现这样的异常时,应用程序应该捕获异常并且不应该被关闭。我想这个实现会有点困难。您知道如何捕获此异常并防止应用崩溃吗?
    猜你喜欢
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2022-06-14
    • 1970-01-01
    相关资源
    最近更新 更多