我正在尝试使用以下代码通过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)
事情是我什至无法抓住错误。而且我找不到任何解决方案来防止我的应用程序崩溃。我试图在Blender和MeshLab中打开文件。这些应用程序导入OBJ文件没有任何问题。这是一些相关问题,但没有解决方案针对此案例。Failed to to simplify 3D models with vcglib, Assertion `0' failed Assertion Failure when using vcglib examples
有什么办法解决这个问题?即使这是vcglib本身的问题,并且很难修复,但如果我能够捕获到错误并防止我的应用程序崩溃,那将是很好的。请帮忙!先感谢您。
我尝试在Blender和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/....