将3D对象作为.obj文件(Wavefront .obj文件)拖到MeshLab或任何其他3D图形中,将告诉您确切的面总数和模型具有的顶点总数。顶点可以是三角形或多边形。
有什么方法可以通过编程准确地计算这两个数字吗?通过读取Obj文件并输出这些数字。现在,某些工具(例如MeshLab)在生成的obj文件中输出注释部分,说明有多少面,顶点等...其他工具则不这样做。
我试图计算'v'和'f'的数量,但是与MeshLab结果相比并不能总是给出准确的结果。 vn和vt呢?抱歉,我对obj文件的结构以及这些字母的真正含义不是那么了解。
用Python可以做到吗?如果有一个可以做到这一点并输出所用纹理的分辨率的库,那就太酷了?
谢谢你的建议
最佳答案
该代码显示与Autodesk Maya相同的数字
with open('test.obj') as f:
lines = f.readlines()
vertices = len([line for line in lines if line.startswith('v ')])
faces = len([line for line in lines if line.startswith('f ')])
关于python - 精确计算Python中Wavefront .obj文件中的顶点和面的总数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48525232/