add cape normal calculation and uv conversion
This commit is contained in:
+61
-3
@@ -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)
|
||||
Reference in New Issue
Block a user