def visualize_garment(garment_path, with_tex=True): # Load SMPL body for the garment path = split(garment_path)[0] garment_org_body = load_smpl_from_file(join(path, 'registration.pkl')) garment_org_body = Mesh(garment_org_body.v, garment_org_body.f) # Load unposed garment garment_unposed = Mesh(filename=gar_dict[garment_type][index]) garment_unposed.set_texture_image(join(path, 'multi_tex.jpg')) # Pose garments dat = pkl.load(open(join(path, 'registration.pkl'))) dat['gender'] = 'neutral' garment_posed = pose_garment(garment_unposed, vert_indices[garment_type], dat) garment_posed = remove_interpenetration_fast(garment_posed, garment_org_body) if with_tex: garment_posed.vt = garment_unposed.vt garment_posed.ft = garment_unposed.ft garment_posed.set_texture_image(join(path, 'multi_tex.jpg')) mvs = MeshViewers((1, 3), keepalive=True) mvs[0][2].set_background_color(np.array([1, 1, 1])) mvs[0][1].set_background_color(np.array([1, 1, 1])) mvs[0][0].set_background_color(np.array([1, 1, 1])) mvs[0][1].set_static_meshes([garment_org_body]) mvs[0][2].set_static_meshes([garment_org_body, garment_posed]) mvs[0][0].set_static_meshes([garment_unposed]) return
# Load unposed garment garment_unposed_upper = Mesh( filename='./Multi-Garment_dataset/125611499279708/TShirtNoCoat.obj') garment_unposed_upper.set_texture_image(join(path_upper, 'multi_tex.jpg')) garment_unposed_lower = Mesh( filename='./Multi-Garment_dataset/125611499279708/ShortPants.obj') garment_unposed_lower.set_texture_image(join(path_lower, 'multi_tex.jpg')) # Pose garments # upper dat_upper = pkl.load(open(join(path_upper, 'registration.pkl'), "rb"), encoding="latin1") dat_upper['gender'] = 'neutral' garment_posed_upper = pose_garment(garment_unposed_upper, vert_indices[type_upper], dat_upper) garment_posed_upper = remove_interpenetration_fast(garment_posed_upper, upper_garment_org_body) # loading textures on posed garments garment_posed_upper.vt = garment_unposed_upper.vt garment_posed_upper.ft = garment_unposed_upper.ft garment_posed_upper.set_texture_image(join(path_upper, 'multi_tex.jpg')) # lower dat_lower = pkl.load(open(join(path_lower, 'registration.pkl'), "rb"), encoding="latin1") dat_lower['gender'] = 'neutral' garment_posed_lower = pose_garment(garment_unposed_lower, vert_indices[type_lower], dat_lower) garment_posed_lower = remove_interpenetration_fast(garment_posed_lower, lower_garment_org_body)