export stl for blender
This commit is contained in:
+40
-2
@@ -38,6 +38,14 @@ def write_obj(file, vertices, faces, colors):
|
|||||||
line = 'f ' + ' '.join([str(_) for _ in f]) + '\n'
|
line = 'f ' + ' '.join([str(_) for _ in f]) + '\n'
|
||||||
file.write(line)
|
file.write(line)
|
||||||
|
|
||||||
|
def write_obj_2(file, vertices, faces):
|
||||||
|
with open(file, 'w') as file:
|
||||||
|
for v in vertices:
|
||||||
|
line = 'v ' + ' '.join([str(_) for _ in v]) + '\n'
|
||||||
|
file.write(line)
|
||||||
|
for f in faces:
|
||||||
|
line = 'f ' + ' '.join([str(_) for _ in f]) + '\n'
|
||||||
|
file.write(line)
|
||||||
|
|
||||||
def export_to_ply(mesh, file):
|
def export_to_ply(mesh, file):
|
||||||
ply = tm.exchange.ply.export_ply(mesh, encoding='ascii', vertex_normal=True, include_attributes=True)
|
ply = tm.exchange.ply.export_ply(mesh, encoding='ascii', vertex_normal=True, include_attributes=True)
|
||||||
@@ -196,8 +204,8 @@ if __name__ == '__main__':
|
|||||||
shuffle=True,
|
shuffle=True,
|
||||||
do_repeat=False,
|
do_repeat=False,
|
||||||
resolutions=[512, 32],
|
resolutions=[512, 32],
|
||||||
frames_file='/home/workspace/data/dataset/test_ready/frames_pose_cluster_20_sample_10.txt',
|
# frames_file='/home/workspace/data/dataset/test_ready/frames_pose_cluster_20_sample_10.txt',
|
||||||
# frames_file='/home/workspace/data/dataset/test_ready/frames_00438_146.txt',
|
frames_file='/home/workspace/data/dataset/test_ready/frames_00438_146.txt',
|
||||||
)
|
)
|
||||||
static_dataset = StaticDataset(folder='/home/workspace/data/dataset/test_ready',
|
static_dataset = StaticDataset(folder='/home/workspace/data/dataset/test_ready',
|
||||||
resolutions=[512, 32],
|
resolutions=[512, 32],
|
||||||
@@ -252,6 +260,36 @@ if __name__ == '__main__':
|
|||||||
x = np.concatenate((body, posed), axis=0)
|
x = np.concatenate((body, posed), axis=0)
|
||||||
|
|
||||||
# m = tm.Trimesh(x, faces, process=False, validate=False, vertex_colors=colors)
|
# m = tm.Trimesh(x, faces, process=False, validate=False, vertex_colors=colors)
|
||||||
|
|
||||||
|
x = posed
|
||||||
|
x_1 = unposed.copy()
|
||||||
|
x_1[:, 0] = x_1[:, 0] + 0.75
|
||||||
|
x_2 = unposed_shaped.copy()
|
||||||
|
x_2[:, 0] = x_2[:, 0] + 1.75
|
||||||
|
garments = np.concatenate((x, x_1, x_2), axis=0)
|
||||||
|
all_faces = np.concatenate((faces_garment, faces_garment + x.shape[0], faces_garment + 2*x.shape[0]), axis=0).astype(np.int32)
|
||||||
|
mesh = garments
|
||||||
|
faces = all_faces
|
||||||
|
fig = go.Figure()
|
||||||
|
fig.add_trace(go.Mesh3d(
|
||||||
|
x=mesh[:,0],
|
||||||
|
y=mesh[:,2],
|
||||||
|
z=mesh[:,1],
|
||||||
|
i = faces[:,0],
|
||||||
|
j = faces[:,1],
|
||||||
|
k = faces[:,2],
|
||||||
|
text="",
|
||||||
|
lighting={ 'ambient':0.8, 'diffuse':0.5, 'roughness':0.5 },
|
||||||
|
|
||||||
|
),)
|
||||||
|
fig.show()
|
||||||
|
from stl import mesh as mesh_stl
|
||||||
|
obj = mesh_stl.Mesh(np.zeros(faces.shape[0], dtype=mesh_stl.Mesh.dtype))
|
||||||
|
for i, f in enumerate(faces):
|
||||||
|
for j in range(3):
|
||||||
|
obj.vectors[i][j] = mesh[f[j],:]
|
||||||
|
write_obj_2('temp/blender_test_2.obj', garments, all_faces)
|
||||||
|
|
||||||
|
|
||||||
# fig = plot_fixed(x, faces, colors)
|
# fig = plot_fixed(x, faces, colors)
|
||||||
# fig.write_image('examples/' + type + '_' + id_str + '_' + frame_nr + '_posed.svg')
|
# fig.write_image('examples/' + type + '_' + id_str + '_' + frame_nr + '_posed.svg')
|
||||||
|
|||||||
Reference in New Issue
Block a user