Пример #1
0
 def forward(
     ctx,
     face_verts,
     mesh_to_face_first_idx,
     num_faces_per_mesh,
     image_size: int = 256,
     blur_radius: float = 0.01,
     faces_per_pixel: int = 0,
     bin_size: int = 0,
     max_faces_per_bin: int = 0,
     perspective_correct: bool = False,
     clip_barycentric_coords: bool = False,
     cull_backfaces: bool = False,
 ):
     # pyre-fixme[16]: Module `pytorch3d` has no attribute `_C`.
     pix_to_face, zbuf, barycentric_coords, dists = _C.rasterize_meshes(
         face_verts,
         mesh_to_face_first_idx,
         num_faces_per_mesh,
         image_size,
         blur_radius,
         faces_per_pixel,
         bin_size,
         max_faces_per_bin,
         perspective_correct,
         clip_barycentric_coords,
         cull_backfaces,
     )
     ctx.save_for_backward(face_verts, pix_to_face)
     ctx.mark_non_differentiable(pix_to_face)
     ctx.perspective_correct = perspective_correct
     ctx.clip_barycentric_coords = clip_barycentric_coords
     return pix_to_face, zbuf, barycentric_coords, dists
Пример #2
0
 def forward(
     ctx,
     face_verts,
     mesh_to_face_first_idx,
     num_faces_per_mesh,
     image_size: int = 256,
     blur_radius: float = 0.01,
     faces_per_pixel: int = 0,
     bin_size: int = 0,
     max_faces_per_bin: int = 0,
     perspective_correct: bool = False,
 ):
     pix_to_face, zbuf, barycentric_coords, dists = _C.rasterize_meshes(
         face_verts,
         mesh_to_face_first_idx,
         num_faces_per_mesh,
         image_size,
         blur_radius,
         faces_per_pixel,
         bin_size,
         max_faces_per_bin,
         perspective_correct,
     )
     ctx.save_for_backward(face_verts, pix_to_face)
     ctx.perspective_correct = perspective_correct
     return pix_to_face, zbuf, barycentric_coords, dists
Пример #3
0
    def forward(
        ctx,
        face_verts: torch.Tensor,
        mesh_to_face_first_idx: torch.Tensor,
        num_faces_per_mesh: torch.Tensor,
        clipped_faces_neighbor_idx: torch.Tensor,
        image_size: Union[List[int], Tuple[int, int]] = (256, 256),
        blur_radius: float = 0.01,
        faces_per_pixel: int = 0,
        bin_size: int = 0,
        max_faces_per_bin: int = 0,
        perspective_correct: bool = False,
        clip_barycentric_coords: bool = False,
        cull_backfaces: bool = False,
        z_clip_value: Optional[float] = None,
        cull_to_frustum: bool = True,
    ):
        # pyre-fixme[16]: Module `pytorch3d` has no attribute `_C`.
        pix_to_face, zbuf, barycentric_coords, dists = _C.rasterize_meshes(
            face_verts,
            mesh_to_face_first_idx,
            num_faces_per_mesh,
            clipped_faces_neighbor_idx,
            image_size,
            blur_radius,
            faces_per_pixel,
            bin_size,
            max_faces_per_bin,
            perspective_correct,
            clip_barycentric_coords,
            cull_backfaces,
        )

        ctx.save_for_backward(face_verts, pix_to_face)
        ctx.mark_non_differentiable(pix_to_face)
        ctx.perspective_correct = perspective_correct
        ctx.clip_barycentric_coords = clip_barycentric_coords
        return pix_to_face, zbuf, barycentric_coords, dists