-1

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

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

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

这是我得到的错误消息

/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 文件。
这里有一些相关的问题,但没有一个解决方案适用于这种情况。
无法使用 vcglib 简化 3D 模型,
使用 vcglib 示例时断言“0”失败断言失败

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

4

1 回答 1

0

我试图在搅拌机和 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/....
于 2019-10-29T16:00:40.347 回答