Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -106,7 +106,21 @@ def do_inference(input_3d, sample_seed=0, do_sampling=False, do_marching_cubes=F
|
|
106 |
|
107 |
input_mesh = trimesh.load(input_3d)
|
108 |
pc_list, mesh_list = process_mesh_to_pc([input_mesh], marching_cubes = do_marching_cubes)
|
|
|
109 |
mesh = mesh_list[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
mesh.merge_vertices()
|
111 |
mesh.update_faces(mesh.unique_faces())
|
112 |
mesh.fix_normals()
|
@@ -121,13 +135,7 @@ def do_inference(input_3d, sample_seed=0, do_sampling=False, do_marching_cubes=F
|
|
121 |
mesh.export(input_save_name)
|
122 |
input_render_res = wireframe_render(mesh)
|
123 |
|
124 |
-
|
125 |
-
pc_coor = pc_normal[:, :3]
|
126 |
-
normals = pc_normal[:, 3:]
|
127 |
-
|
128 |
-
bounds = np.array([pc_coor.min(axis=0), pc_coor.max(axis=0)])
|
129 |
-
pc_coor = pc_coor - (bounds[0] + bounds[1])[None, :] / 2
|
130 |
-
pc_coor = pc_coor / np.abs(pc_coor).max() * 0.9995
|
131 |
assert (np.linalg.norm(normals, axis=-1) > 0.99).all(), "normals should be unit vectors, something wrong"
|
132 |
normalized_pc_normal = np.concatenate([pc_coor, normals], axis=-1, dtype=np.float16)
|
133 |
|
|
|
106 |
|
107 |
input_mesh = trimesh.load(input_3d)
|
108 |
pc_list, mesh_list = process_mesh_to_pc([input_mesh], marching_cubes = do_marching_cubes)
|
109 |
+
pc_normal = pc_list[0] # 4096, 6
|
110 |
mesh = mesh_list[0]
|
111 |
+
vertices = mesh.vertices
|
112 |
+
|
113 |
+
pc_coor = pc_normal[:, :3]
|
114 |
+
normals = pc_normal[:, 3:]
|
115 |
+
|
116 |
+
bounds = np.array([vertices.min(axis=0), vertices.max(axis=0)])
|
117 |
+
# scale mesh and pc
|
118 |
+
vertices = vertices - (bounds[0] + bounds[1])[None, :] / 2
|
119 |
+
vertices = vertices / (bounds[1] - bounds[0]).max()
|
120 |
+
mesh.vertices = vertices
|
121 |
+
pc_coor = pc_coor - (bounds[0] + bounds[1])[None, :] / 2
|
122 |
+
pc_coor = pc_coor / (bounds[1] - bounds[0]).max()
|
123 |
+
|
124 |
mesh.merge_vertices()
|
125 |
mesh.update_faces(mesh.unique_faces())
|
126 |
mesh.fix_normals()
|
|
|
135 |
mesh.export(input_save_name)
|
136 |
input_render_res = wireframe_render(mesh)
|
137 |
|
138 |
+
pc_coor = pc_coor / np.abs(pc_coor).max() * 0.9995 # input should be from -1 to 1
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
assert (np.linalg.norm(normals, axis=-1) > 0.99).all(), "normals should be unit vectors, something wrong"
|
140 |
normalized_pc_normal = np.concatenate([pc_coor, normals], axis=-1, dtype=np.float16)
|
141 |
|