how to render depth?

#38 · closed · 1 comments

View on GitHub ↗

Pixie8888

Hi author, Thank you for releasing code! Do you know how to render depth map given the reconstructed flame parameters?

Comments

filby89

Hey, you can add this function in the renderer class: ```python def render_depth(self, transformed_vertices): ''' -- rendering depth ''' batch_size = transformed_vertices.shape[0] if not self.render_full_head: transformed_vertices = transformed_vertices[:,self.final_mask,:] transformed_vertices[:,:,2] = transformed_vertices[:,:,2] - transformed_vertices[:,:,2].min() z = -transformed_vertices[:,:,2:].repeat(1,1,3).clone() z = z-z.min() z = z/z.max() # Attributes attributes = face_vertices(z, self.faces.expand(batch_size, -1, -1)) # rasterize transformed_vertices[:,:,2] = transformed_vertices[:,:,2] + 10 rendering = self.rasterize(transformed_vertices, self.faces.expand(batch_size, -1, -1), attributes) #### alpha_images = rendering[:, -1, :, :][:, None, :, :].detach() depth_images = rendering[:, :1, :, :] return depth_images ``` and then call it in the renderer.forward function: ``` rendered_img_depth = self.render_depth(transformed_vertices) ```