add cape normal calculation and uv conversion

This commit is contained in:
2023-06-30 23:27:43 +02:00
parent a831211c2d
commit 25d9814b70
2 changed files with 591 additions and 3 deletions
+61 -3
View File
@@ -6,8 +6,8 @@ parser = argparse.ArgumentParser()
# parser.add_argument("-f", "--folder", help = "end of range")
parser.add_argument("-s", "--start", help = "start of range", type=int, default=0)
parser.add_argument("-e", "--end", help = "end of range", type=int, default=1)
parser.add_argument("-g", "--gpu", help = "gpu id")
# parser.add_argument("-n", "--name", help = "end of range")
parser.add_argument("-g", "--gpu", help = "gpu id", default='0')
parser.add_argument("-d", "--debug", help = "end of range", default=False, action='store_true')
args = parser.parse_args()
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
@@ -356,6 +356,61 @@ def create_mesh_normals(folder, out_folder):
pass
def create_mesh_normals_cape(folder, out_folder):
frames = os.listdir(os.path.join(folder, 'mesh_posed'))
os.makedirs(os.path.join(folder, 'mesh_normals'), exist_ok=True)
F = np.load('smpl/smpl_faces_orig.npy')
# F_skirt = np.load('smpl/smpl_faces_skirt.npy')
for frame in tqdm(frames):
id, frame_nr = frame.split('.')[:2]
verts = np.load(os.path.join(folder, 'mesh_posed', f'{id}.{frame_nr}.npz'))['mesh_posed']
normals = calculate_normals(verts[None,:,:], F)[0]
np.savez_compressed(os.path.join(folder, 'mesh_normals', f'{id}.{frame_nr}.npz'), mesh_normals=normals)
# normals = readPC2(os.path.join(out_folder, 'mesh_normals', f'{id}_{garment}.pc16'), True)['V']
# colors = np.clip(np.abs(normals), 0, 1)
# verts = (verts[:, reg_data['F'], :] * reg_data['W'][None, :, :, None]).sum(axis=2)
# plot as scatter plot with plotly
# import plotly.graph_objects as go
# frame = 5
# fig = go.Figure(data=[go.Scatter3d(
# x=verts[:,0],
# y=verts[:,2],
# z=verts[:,1],
# mode='markers',
# marker=dict(
# size=1,
# color=normals[:,:],
# colorscale='Viridis',
# opacity=0.8
# )
# )])
# moved_verts = verts + 0.05 * normals
# # Create the scatter plot for the moved vertices
# fig.add_trace(go.Scatter3d(
# x=moved_verts[:,0],
# y=moved_verts[:,2],
# z=moved_verts[:,1],
# mode='markers',
# marker=dict(
# size=1,
# color='red',
# opacity=0.8
# )
# ))
# fig.show()
# # create a plotly mesh plot for verts and faces
# fig = go.Figure(data=[go.Mesh3d(x=verts[frame,:,0], y=verts[frame,:,2], z=verts[frame,:,1], i=faces[:,0], j=faces[:,1], k=faces[:,2], color='lightpink', opacity=1)])
# fig.show()
pass
def verify_registration_ans_mask(folder, out_folder):
ids = os.listdir(folder)
@@ -588,4 +643,7 @@ if __name__ == '__main__':
# create_mesh_normals(folder, out_folder)
# create_mesh_unposed_no_shape(folder, folder_reg, out_folder, start=args.start, end=args.end)
create_frames_file(folder, out_folder)
# create_frames_file(folder, out_folder)
folder = '/data-local/127_2/cape_processed/test/female'
create_mesh_normals_cape(folder, None)