问题描述
我正在尝试为我从 https://www.turbosquid.com/3d-models/3d-s-chef-knife-model-1387505 下载的对象文件的每个顶点提取颜色。但是,下面的代码仅将每个顶点及其面的坐标保存在一个 json 文件中没有颜色。如何使用 pywavefront 提取每个顶点的颜色?
import json
import numpy as np
from pywavefront import Wavefront
object_names = ["./objfiles/knife/knife"]
for object_name in object_names:
object = Wavefront(object_name+".obj",create_materials=True,collect_faces=True)
# collect faces
faces = []
for mesh in object.mesh_list:
faces = faces + mesh.faces
# collect vertices
vertices = object.vertices
data = {"faces":faces,"vertices":vertices}
with open(object_name+".json",'w') as fp:
json.dump(data,fp)
解决方法
您提到的目标文件不包含任何顶点颜色。就我而言,.OBJ 格式无法包含顶点颜色(当然除非您为它编写代码)。