将 Maya 导出的 OBJ 文件转换为三角形网格关闭文件 -- AssertionError: face should have 3 vertices but has 6

如何解决将 Maya 导出的 OBJ 文件转换为三角形网格关闭文件 -- AssertionError: face should have 3 vertices but has 6

我有一个 OBJ 文件,其结构类似于:

$ cat mybed.obj  | head -10
# This file uses centimeters as units for non-parametric coordinates.

v 90.646411 4.913757 79.774410
v 90.645129 6.884663 79.774410
v -91.197881 4.913074 79.774563
v -91.199155 6.883980 79.774563
v 90.651746 4.906044 52.059825
v 90.651709 4.906044 13.877269
v 90.650449 6.892189 52.059841
v 90.650427 6.892189 13.877281

在 MeshLab 中看起来像这样:

enter image description here

我的目标是将其转换为 OFF 格式的三角形网格。当我使用 OBJOFF 转换为 MeshLab 时,即使我标记polygonal 选项,我仍然收到来自 program错误,我我应该在三角形网格中喂食。

所以,我的问题是如何将我当前具有描述格式的 OBJ 文件转换为三角形网格 OFF 文件(使用任何代码或软件)?

当我将 OBJ 转换为 OFF 时,OFF 文件的开头和结尾看起来不同:

(tsdf) mona@goku:~$ cat mybed1.off  | head -10
OFF
7796 15564 0
90.64641 4.913757 79.77441 
90.64513 6.884663 79.77441 
-91.19788 4.913074 79.77457 
-91.19916 6.88398 79.77457 
90.65175 4.906044 52.05983 
90.65171 4.906044 13.87727 
90.65045 6.892189 52.05984 
90.65043 6.892189 13.87728 
(tsdf) mona@goku:~$ cat mybed1.off  | tail -10
3 7331 7323 7566 192 192 192
3 7331 7566 7483 192 192 192
3 7324 7326 7571 192 192 192
3 7324 7571 7473 192 192 192
3 7328 7330 7577 192 192 192
3 7328 7577 7479 192 192 192
3 7326 7328 7574 192 192 192
3 7326 7574 7476 192 192 192
3 7330 7324 7568 192 192 192
3 7330 7568 7482 192 192 192

这是我选择的设置:

enter image description here

解决方法

该文件的“尾部”部分包含每个三角形的 RGB 颜色值,即那些额外的数字“192 192 192”。这是每张脸的颜色信息,可能会在尝试读取关闭文件时误导您的程序(mesh-fusion),因为它不期望每张脸的颜色信息。

您有三种可能的解决方案:

  • 导出为关闭时,在网格实验室对话框中取消标记每个面的颜色选项。
  • 更改您的程序以读取和忽略每个面的颜色信息,读取到三角形坐标之后的行尾。
  • 使用以下命令删除关闭文件中每个面的颜色:

sed 's/192\ 192\ 192$//' mybed1.off > mybed2.off

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?