graphics - 将 Maya 导出的 OBJ 文件转换为三角形网格 OFF 文件 -- 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
我的目标是将其转换为格式的三角形网OFF
格。当我转换OBJ
为OFF
usingMeshLab
时,即使我标记了该polygonal
选项,我仍然会从我应该为其提供三角形网格的程序中得到一个错误。
所以,我的问题是如何将我当前的 OBJ 文件与所描述的格式转换为三角形网格OFF
文件(使用任何代码或软件)?
当我转换OBJ
toOFF
时,文件的开头和结尾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
这是我选择的设置:
解决方案
该文件的“尾部”部分包含每个三角形的 RGB 颜色值,即那些额外的数字“192 192 192”。这是每个人脸颜色的信息,在尝试读取关闭文件时可能会误导您的程序(网格融合),因为它不期望每个人脸颜色信息。
您有三种可能的解决方案:
- 导出为关闭时,在 meshlab 对话框中取消标记每面颜色选项。
- 更改您的程序以读取并忽略每个面部信息的颜色,直到三角形坐标后的行尾。
- 使用以下命令删除关闭文件中每个面的颜色:
sed 's/192\ 192\ 192$//' mybed1.off > mybed2.off
推荐阅读
- python - Matplotlib + Cartopy:如何将轮廓与自定义颜色图一起使用
- sql-server - 如何返回上个月和下个月的 25 号
- sql - 为什么 PostgreSQL 对布尔 WHERE 条件进行排序?
- scala - How to create data to complex struct type , struct array type in Scala Python and HiveQL?
- vb.net - KeyDown 与组合框
- powershell - 如何使用powershell脚本删除小于x kb的文件
- deeplab - deeplab 预测黑色蒙版
- rancher - 集群外的牧场主反向代理
- java - 在通话期间使用设备麦克风
- python - 如何更改我的 python 乌龟窗口的大小?