meshes
Browse files- tsr/system.py +19 -22
tsr/system.py
CHANGED
@@ -173,31 +173,28 @@ class TSR(BaseModule):
|
|
173 |
meshes = []
|
174 |
for scene_code in scene_codes:
|
175 |
with torch.no_grad():
|
176 |
-
density = self.renderer.
|
177 |
-
self.decoder,
|
178 |
-
scale_tensor(
|
179 |
-
self.isosurface_helper.grid_vertices.to(scene_codes.device),
|
180 |
-
self.isosurface_helper.points_range,
|
181 |
-
(-self.renderer.cfg.radius, self.renderer.cfg.radius),
|
182 |
-
),
|
183 |
scene_code,
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
(-self.renderer.cfg.radius, self.renderer.cfg.radius),
|
190 |
-
)
|
191 |
-
with torch.no_grad():
|
192 |
color = self.renderer.query_triplane(
|
193 |
-
self.decoder,
|
194 |
v_pos,
|
195 |
scene_code,
|
196 |
)["color"]
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
|
|
|
|
|
|
|
|
|
|
203 |
return meshes
|
|
|
173 |
meshes = []
|
174 |
for scene_code in scene_codes:
|
175 |
with torch.no_grad():
|
176 |
+
density = self.renderer.query_triplane_volume_density(
|
177 |
+
self.decoder.to(scene_codes.device),
|
|
|
|
|
|
|
|
|
|
|
178 |
scene_code,
|
179 |
+
resolution
|
180 |
+
) - threshold
|
181 |
+
v_pos, t_pos_idx = self.isosurface_helper(density)
|
182 |
+
density = None
|
183 |
+
v_pos = v_pos.to(scene_codes.device)
|
|
|
|
|
|
|
184 |
color = self.renderer.query_triplane(
|
185 |
+
self.decoder.to(scene_codes.device),
|
186 |
v_pos,
|
187 |
scene_code,
|
188 |
)["color"]
|
189 |
+
v_pos = scale_tensor(
|
190 |
+
v_pos,
|
191 |
+
self.isosurface_helper.points_range,
|
192 |
+
(-self.renderer.cfg.radius, self.renderer.cfg.radius),
|
193 |
+
)
|
194 |
+
mesh = trimesh.Trimesh(
|
195 |
+
vertices=v_pos.cpu().numpy(),
|
196 |
+
faces=t_pos_idx.cpu().numpy(),
|
197 |
+
vertex_colors=color.cpu().numpy(),
|
198 |
+
)
|
199 |
+
meshes.append(mesh)
|
200 |
return meshes
|