mirror of
				https://github.com/facebookresearch/pytorch3d.git
				synced 2025-11-04 18:02:14 +08:00 
			
		
		
		
	formatting changes from black 22.3.0
Summary: Applies the black-fbsource codemod with the new build of pyfmt. paintitblack Reviewed By: lisroach Differential Revision: D36324783 fbshipit-source-id: 280c09e88257e5e569ab729691165d8dedd767bc
This commit is contained in:
		
							parent
							
								
									c21ba144e7
								
							
						
					
					
						commit
						bef959c755
					
				@ -97,7 +97,7 @@ def generate_eval_video_cameras(
 | 
			
		||||
            cam_centers_on_plane.t() @ cam_centers_on_plane
 | 
			
		||||
        ) / cam_centers_on_plane.shape[0]
 | 
			
		||||
        _, e_vec = torch.symeig(cov, eigenvectors=True)
 | 
			
		||||
        traj_radius = (cam_centers_on_plane ** 2).sum(dim=1).sqrt().mean()
 | 
			
		||||
        traj_radius = (cam_centers_on_plane**2).sum(dim=1).sqrt().mean()
 | 
			
		||||
        angle = torch.linspace(0, 2.0 * math.pi, n_eval_cams)
 | 
			
		||||
        traj = traj_radius * torch.stack(
 | 
			
		||||
            (torch.zeros_like(angle), angle.cos(), angle.sin()), dim=-1
 | 
			
		||||
 | 
			
		||||
@ -71,6 +71,5 @@ elif sys.version_info >= (3, 7, 0):
 | 
			
		||||
    def get_args(cls):  # pragma: no cover
 | 
			
		||||
        return getattr(cls, "__args__", None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
else:
 | 
			
		||||
    raise ImportError("This module requires Python 3.7+")
 | 
			
		||||
 | 
			
		||||
@ -80,7 +80,7 @@ class _SymEig3x3(nn.Module):
 | 
			
		||||
        q = inputs_trace / 3.0
 | 
			
		||||
 | 
			
		||||
        # Calculate squared sum of elements outside the main diagonal / 2
 | 
			
		||||
        p1 = ((inputs ** 2).sum(dim=(-1, -2)) - (inputs_diag ** 2).sum(-1)) / 2
 | 
			
		||||
        p1 = ((inputs**2).sum(dim=(-1, -2)) - (inputs_diag**2).sum(-1)) / 2
 | 
			
		||||
        p2 = ((inputs_diag - q[..., None]) ** 2).sum(dim=-1) + 2.0 * p1.clamp(self._eps)
 | 
			
		||||
 | 
			
		||||
        p = torch.sqrt(p2 / 6.0)
 | 
			
		||||
@ -195,7 +195,7 @@ class _SymEig3x3(nn.Module):
 | 
			
		||||
            cross_products[..., :1, :]
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        norms_sq = (cross_products ** 2).sum(dim=-1)
 | 
			
		||||
        norms_sq = (cross_products**2).sum(dim=-1)
 | 
			
		||||
        max_norms_index = norms_sq.argmax(dim=-1)  # pyre-ignore[16]
 | 
			
		||||
 | 
			
		||||
        # Pick only the cross-product with highest squared norm for each input
 | 
			
		||||
 | 
			
		||||
@ -73,7 +73,7 @@ class Autodecoder(Configurable, torch.nn.Module):
 | 
			
		||||
    def calc_squared_encoding_norm(self):
 | 
			
		||||
        if self.n_instances <= 0:
 | 
			
		||||
            return None
 | 
			
		||||
        return (self._autodecoder_codes.weight ** 2).mean()
 | 
			
		||||
        return (self._autodecoder_codes.weight**2).mean()
 | 
			
		||||
 | 
			
		||||
    def get_encoding_dim(self) -> int:
 | 
			
		||||
        if self.n_instances <= 0:
 | 
			
		||||
 | 
			
		||||
@ -59,7 +59,7 @@ class IdrFeatureField(ImplicitFunctionBase, torch.nn.Module):
 | 
			
		||||
                if layer_idx == self.num_layers - 2:
 | 
			
		||||
                    torch.nn.init.normal_(
 | 
			
		||||
                        lin.weight,
 | 
			
		||||
                        mean=math.pi ** 0.5 / dims[layer_idx] ** 0.5,
 | 
			
		||||
                        mean=math.pi**0.5 / dims[layer_idx] ** 0.5,
 | 
			
		||||
                        std=0.0001,
 | 
			
		||||
                    )
 | 
			
		||||
                    torch.nn.init.constant_(lin.bias, -self.bias)
 | 
			
		||||
@ -67,15 +67,15 @@ class IdrFeatureField(ImplicitFunctionBase, torch.nn.Module):
 | 
			
		||||
                    torch.nn.init.constant_(lin.bias, 0.0)
 | 
			
		||||
                    torch.nn.init.constant_(lin.weight[:, 3:], 0.0)
 | 
			
		||||
                    torch.nn.init.normal_(
 | 
			
		||||
                        lin.weight[:, :3], 0.0, 2 ** 0.5 / out_dim ** 0.5
 | 
			
		||||
                        lin.weight[:, :3], 0.0, 2**0.5 / out_dim**0.5
 | 
			
		||||
                    )
 | 
			
		||||
                elif self.n_harmonic_functions_xyz > 0 and layer_idx in self.skip_in:
 | 
			
		||||
                    torch.nn.init.constant_(lin.bias, 0.0)
 | 
			
		||||
                    torch.nn.init.normal_(lin.weight, 0.0, 2 ** 0.5 / out_dim ** 0.5)
 | 
			
		||||
                    torch.nn.init.normal_(lin.weight, 0.0, 2**0.5 / out_dim**0.5)
 | 
			
		||||
                    torch.nn.init.constant_(lin.weight[:, -(dims[0] - 3) :], 0.0)
 | 
			
		||||
                else:
 | 
			
		||||
                    torch.nn.init.constant_(lin.bias, 0.0)
 | 
			
		||||
                    torch.nn.init.normal_(lin.weight, 0.0, 2 ** 0.5 / out_dim ** 0.5)
 | 
			
		||||
                    torch.nn.init.normal_(lin.weight, 0.0, 2**0.5 / out_dim**0.5)
 | 
			
		||||
 | 
			
		||||
            if self.weight_norm:
 | 
			
		||||
                lin = nn.utils.weight_norm(lin)
 | 
			
		||||
@ -130,7 +130,7 @@ class IdrFeatureField(ImplicitFunctionBase, torch.nn.Module):
 | 
			
		||||
        x = embedding
 | 
			
		||||
        for layer_idx in range(self.num_layers - 1):
 | 
			
		||||
            if layer_idx in self.skip_in:
 | 
			
		||||
                x = torch.cat([x, embedding], dim=-1) / 2 ** 0.5
 | 
			
		||||
                x = torch.cat([x, embedding], dim=-1) / 2**0.5
 | 
			
		||||
 | 
			
		||||
            # pyre-fixme[29]: `Union[torch.Tensor, torch.nn.Module]` is not a function.
 | 
			
		||||
            x = self.linear_layers[layer_idx](x)
 | 
			
		||||
 | 
			
		||||
@ -386,7 +386,7 @@ class TransformerWithInputSkips(torch.nn.Module):
 | 
			
		||||
        layers_pool, layers_ray = [], []
 | 
			
		||||
        dimout = 0
 | 
			
		||||
        for layeri in range(n_layers):
 | 
			
		||||
            dimin = int(round(hidden_dim / (dim_down_factor ** layeri)))
 | 
			
		||||
            dimin = int(round(hidden_dim / (dim_down_factor**layeri)))
 | 
			
		||||
            dimout = int(round(hidden_dim / (dim_down_factor ** (layeri + 1))))
 | 
			
		||||
            logger.info(f"Tr: {dimin} -> {dimout}")
 | 
			
		||||
            for _i, l in enumerate((layers_pool, layers_ray)):
 | 
			
		||||
 | 
			
		||||
@ -87,7 +87,7 @@ class BaseRenderer(ABC, ReplaceableBase):
 | 
			
		||||
        ray_bundle,
 | 
			
		||||
        implicit_functions: List[ImplicitFunctionWrapper],
 | 
			
		||||
        evaluation_mode: EvaluationMode = EvaluationMode.EVALUATION,
 | 
			
		||||
        **kwargs
 | 
			
		||||
        **kwargs,
 | 
			
		||||
    ) -> RendererOutput:
 | 
			
		||||
        """
 | 
			
		||||
        Each Renderer should implement its own forward function
 | 
			
		||||
 | 
			
		||||
@ -295,7 +295,7 @@ class RayTracing(Configurable, nn.Module):
 | 
			
		||||
            ) and not_proj_iters < self.line_step_iters:
 | 
			
		||||
                # Step backwards
 | 
			
		||||
                acc_start_dis[not_projected_start] -= (
 | 
			
		||||
                    (1 - self.line_search_step) / (2 ** not_proj_iters)
 | 
			
		||||
                    (1 - self.line_search_step) / (2**not_proj_iters)
 | 
			
		||||
                ) * curr_sdf_start[not_projected_start]
 | 
			
		||||
                curr_start_points[not_projected_start] = (
 | 
			
		||||
                    cam_loc
 | 
			
		||||
@ -303,7 +303,7 @@ class RayTracing(Configurable, nn.Module):
 | 
			
		||||
                ).reshape(-1, 3)[not_projected_start]
 | 
			
		||||
 | 
			
		||||
                acc_end_dis[not_projected_end] += (
 | 
			
		||||
                    (1 - self.line_search_step) / (2 ** not_proj_iters)
 | 
			
		||||
                    (1 - self.line_search_step) / (2**not_proj_iters)
 | 
			
		||||
                ) * curr_sdf_end[not_projected_end]
 | 
			
		||||
                curr_end_points[not_projected_end] = (
 | 
			
		||||
                    cam_loc
 | 
			
		||||
@ -553,7 +553,7 @@ def _get_sphere_intersection(
 | 
			
		||||
    # cam_loc = cam_loc.unsqueeze(-1)
 | 
			
		||||
    # ray_cam_dot = torch.bmm(ray_directions, cam_loc).squeeze()
 | 
			
		||||
    ray_cam_dot = (ray_directions * cam_loc).sum(-1)  # n_images x n_rays
 | 
			
		||||
    under_sqrt = ray_cam_dot ** 2 - (cam_loc.norm(2, dim=-1) ** 2 - r ** 2)
 | 
			
		||||
    under_sqrt = ray_cam_dot**2 - (cam_loc.norm(2, dim=-1) ** 2 - r**2)
 | 
			
		||||
 | 
			
		||||
    under_sqrt = under_sqrt.reshape(-1)
 | 
			
		||||
    mask_intersect = under_sqrt > 0
 | 
			
		||||
 | 
			
		||||
@ -101,7 +101,7 @@ def volumetric_camera_overlaps(
 | 
			
		||||
    """
 | 
			
		||||
    device = cameras.device
 | 
			
		||||
    ba = cameras.R.shape[0]
 | 
			
		||||
    n_vox = int(resol ** 3)
 | 
			
		||||
    n_vox = int(resol**3)
 | 
			
		||||
    grid = pt3d.structures.Volumes(
 | 
			
		||||
        densities=torch.zeros([1, 1, resol, resol, resol], device=device),
 | 
			
		||||
        volume_translation=-torch.FloatTensor(scene_center)[None].to(device),
 | 
			
		||||
 | 
			
		||||
@ -102,13 +102,13 @@ def fit_circle_in_2d(
 | 
			
		||||
        Circle2D object
 | 
			
		||||
    """
 | 
			
		||||
    design = torch.cat([points2d, torch.ones_like(points2d[:, :1])], dim=1)
 | 
			
		||||
    rhs = (points2d ** 2).sum(1)
 | 
			
		||||
    rhs = (points2d**2).sum(1)
 | 
			
		||||
    n_provided = points2d.shape[0]
 | 
			
		||||
    if n_provided < 3:
 | 
			
		||||
        raise ValueError(f"{n_provided} points are not enough to determine a circle")
 | 
			
		||||
    solution = lstsq(design, rhs[:, None])
 | 
			
		||||
    center = solution[:2, 0] / 2
 | 
			
		||||
    radius = torch.sqrt(solution[2, 0] + (center ** 2).sum())
 | 
			
		||||
    radius = torch.sqrt(solution[2, 0] + (center**2).sum())
 | 
			
		||||
    if n_points > 0:
 | 
			
		||||
        if angles is not None:
 | 
			
		||||
            warnings.warn("n_points ignored because angles provided")
 | 
			
		||||
 | 
			
		||||
@ -65,7 +65,7 @@ def eval_depth(
 | 
			
		||||
 | 
			
		||||
    df = gt - pred
 | 
			
		||||
 | 
			
		||||
    mse_depth = (dmask * (df ** 2)).sum((1, 2, 3)) / dmask_mass
 | 
			
		||||
    mse_depth = (dmask * (df**2)).sum((1, 2, 3)) / dmask_mass
 | 
			
		||||
    abs_depth = (dmask * df.abs()).sum((1, 2, 3)) / dmask_mass
 | 
			
		||||
 | 
			
		||||
    return mse_depth, abs_depth
 | 
			
		||||
 | 
			
		||||
@ -217,7 +217,7 @@ def _align_camera_extrinsics(
 | 
			
		||||
        # of centered A and centered B
 | 
			
		||||
        Ac = A - Amu
 | 
			
		||||
        Bc = B - Bmu
 | 
			
		||||
        align_t_s = (Ac * Bc).mean() / (Ac ** 2).mean().clamp(eps)
 | 
			
		||||
        align_t_s = (Ac * Bc).mean() / (Ac**2).mean().clamp(eps)
 | 
			
		||||
    else:
 | 
			
		||||
        # set the scale to identity
 | 
			
		||||
        align_t_s = 1.0
 | 
			
		||||
 | 
			
		||||
@ -240,7 +240,7 @@ def _get_edge_indices(edges: int) -> List[int]:
 | 
			
		||||
 | 
			
		||||
    edge_indices = []
 | 
			
		||||
    for i in range(12):
 | 
			
		||||
        if edges & (2 ** i):
 | 
			
		||||
        if edges & (2**i):
 | 
			
		||||
            edge_indices.append(i)
 | 
			
		||||
    return edge_indices
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -206,7 +206,7 @@ def _kernel_vec_distances(v):
 | 
			
		||||
    # this should produce B x 6 x (D choose 2) tensor
 | 
			
		||||
 | 
			
		||||
    # we should take dot-product of all (i,i)
 | 
			
		||||
    rows_ii = (dv ** 2).sum(dim=-2)
 | 
			
		||||
    rows_ii = (dv**2).sum(dim=-2)
 | 
			
		||||
    # this should produce B x 6 x D tensor
 | 
			
		||||
 | 
			
		||||
    return torch.cat((rows_ii, rows_2ij), dim=-1)
 | 
			
		||||
 | 
			
		||||
@ -151,7 +151,7 @@ def sample_farthest_points_naive(
 | 
			
		||||
            # and all the other points. If a point has already been selected
 | 
			
		||||
            # it's distance will be 0.0 so it will not be selected again as the max.
 | 
			
		||||
            dist = points[n, selected_idx, :] - points[n, : lengths[n], :]
 | 
			
		||||
            dist_to_last_selected = (dist ** 2).sum(-1)  # (P - i)
 | 
			
		||||
            dist_to_last_selected = (dist**2).sum(-1)  # (P - i)
 | 
			
		||||
 | 
			
		||||
            # If closer than currently saved distance to one of the selected
 | 
			
		||||
            # points, then updated closest_dists
 | 
			
		||||
 | 
			
		||||
@ -194,10 +194,10 @@ def _se3_V_matrix(
 | 
			
		||||
    V = (
 | 
			
		||||
        torch.eye(3, dtype=log_rotation.dtype, device=log_rotation.device)[None]
 | 
			
		||||
        + log_rotation_hat
 | 
			
		||||
        * ((1 - torch.cos(rotation_angles)) / (rotation_angles ** 2))[:, None, None]
 | 
			
		||||
        * ((1 - torch.cos(rotation_angles)) / (rotation_angles**2))[:, None, None]
 | 
			
		||||
        + (
 | 
			
		||||
            log_rotation_hat_square
 | 
			
		||||
            * ((rotation_angles - torch.sin(rotation_angles)) / (rotation_angles ** 3))[
 | 
			
		||||
            * ((rotation_angles - torch.sin(rotation_angles)) / (rotation_angles**3))[
 | 
			
		||||
                :, None, None
 | 
			
		||||
            ]
 | 
			
		||||
        )
 | 
			
		||||
@ -211,7 +211,7 @@ def _get_se3_V_input(log_rotation: torch.Tensor, eps: float = 1e-4):
 | 
			
		||||
    A helper function that computes the input variables to the `_se3_V_matrix`
 | 
			
		||||
    function.
 | 
			
		||||
    """
 | 
			
		||||
    nrms = (log_rotation ** 2).sum(-1)
 | 
			
		||||
    nrms = (log_rotation**2).sum(-1)
 | 
			
		||||
    rotation_angles = torch.clamp(nrms, eps).sqrt()
 | 
			
		||||
    log_rotation_hat = hat(log_rotation)
 | 
			
		||||
    log_rotation_hat_square = torch.bmm(log_rotation_hat, log_rotation_hat)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								setup.py
									
									
									
									
									
								
							@ -125,7 +125,6 @@ if os.getenv("PYTORCH3D_NO_NINJA", "0") == "1":
 | 
			
		||||
        def __init__(self, *args, **kwargs):
 | 
			
		||||
            super().__init__(use_ninja=False, *args, **kwargs)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
else:
 | 
			
		||||
    BuildExtension = torch.utils.cpp_extension.BuildExtension
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ def bm_render_volumes() -> None:
 | 
			
		||||
    case_grid = {
 | 
			
		||||
        "batch_size": [1, 5],
 | 
			
		||||
        "raymarcher_type": [EmissionAbsorptionRaymarcher, AbsorptionOnlyRaymarcher],
 | 
			
		||||
        "n_rays_per_image": [64 ** 2, 256 ** 2],
 | 
			
		||||
        "n_rays_per_image": [64**2, 256**2],
 | 
			
		||||
        "n_pts_per_ray": [16, 128],
 | 
			
		||||
    }
 | 
			
		||||
    test_cases = itertools.product(*case_grid.values())
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ def bm_render_volumes() -> None:
 | 
			
		||||
        "batch_size": [1, 5],
 | 
			
		||||
        "shape": ["sphere", "cube"],
 | 
			
		||||
        "raymarcher_type": [EmissionAbsorptionRaymarcher, AbsorptionOnlyRaymarcher],
 | 
			
		||||
        "n_rays_per_image": [64 ** 2, 256 ** 2],
 | 
			
		||||
        "n_rays_per_image": [64**2, 256**2],
 | 
			
		||||
        "n_pts_per_ray": [16, 128],
 | 
			
		||||
    }
 | 
			
		||||
    test_cases = itertools.product(*case_grid.values())
 | 
			
		||||
 | 
			
		||||
@ -124,7 +124,7 @@ class TestEvaluation(unittest.TestCase):
 | 
			
		||||
                )
 | 
			
		||||
                self.assertGreater(
 | 
			
		||||
                    float(mse_depth_unmasked.sum()),
 | 
			
		||||
                    float(diff ** 2),
 | 
			
		||||
                    float(diff**2),
 | 
			
		||||
                )
 | 
			
		||||
                self.assertGreater(
 | 
			
		||||
                    float(abs_depth_unmasked.sum()),
 | 
			
		||||
@ -143,7 +143,7 @@ class TestEvaluation(unittest.TestCase):
 | 
			
		||||
                    )
 | 
			
		||||
                    if _mask_gt is not None:
 | 
			
		||||
                        expected_err_abs = diff
 | 
			
		||||
                        expected_err_mse = diff ** 2
 | 
			
		||||
                        expected_err_mse = diff**2
 | 
			
		||||
                    else:
 | 
			
		||||
                        err_mask = (gt > 0.0).float() * mask
 | 
			
		||||
                        if crop > 0:
 | 
			
		||||
@ -195,7 +195,7 @@ class TestEvaluation(unittest.TestCase):
 | 
			
		||||
            )
 | 
			
		||||
            self.assertAlmostEqual(float(psnr), float(psnr_cv2), delta=1e-4)
 | 
			
		||||
            # check that all PSNRs are bigger than the minimum possible PSNR
 | 
			
		||||
            max_mse = max_diff ** 2
 | 
			
		||||
            max_mse = max_diff**2
 | 
			
		||||
            min_psnr = 10 * math.log10(1.0 / max_mse)
 | 
			
		||||
            for _im1, _im2 in zip(im1, im2):
 | 
			
		||||
                _psnr = calc_psnr(_im1, _im2)
 | 
			
		||||
 | 
			
		||||
@ -66,7 +66,7 @@ class TestAcosLinearExtrapolation(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
        # fit a line: slope * x + bias = y
 | 
			
		||||
        x_1 = torch.stack([x, torch.ones_like(x)], dim=-1)
 | 
			
		||||
        slope, bias = lstsq(x_1, y[:, None]).view(-1)[:2]
 | 
			
		||||
        desired_slope = (-1.0) / torch.sqrt(1.0 - bound_t ** 2)
 | 
			
		||||
        desired_slope = (-1.0) / torch.sqrt(1.0 - bound_t**2)
 | 
			
		||||
        # test that the desired slope is the same as the fitted one
 | 
			
		||||
        self.assertClose(desired_slope.view(1), slope.view(1), atol=1e-2)
 | 
			
		||||
        # test that the autograd's slope is the same as the desired one
 | 
			
		||||
 | 
			
		||||
@ -412,7 +412,7 @@ class TestSpecularLighting(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
            camera_position=camera_position[None, :],
 | 
			
		||||
            shininess=torch.tensor(10),
 | 
			
		||||
        )
 | 
			
		||||
        self.assertClose(output_light, expected_output ** 10)
 | 
			
		||||
        self.assertClose(output_light, expected_output**10)
 | 
			
		||||
 | 
			
		||||
    def test_specular_batched(self):
 | 
			
		||||
        batch_size = 10
 | 
			
		||||
 | 
			
		||||
@ -62,7 +62,7 @@ class TestRasterizeMeshes(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
        torch.manual_seed(231)
 | 
			
		||||
        device = torch.device("cpu")
 | 
			
		||||
        image_size = 32
 | 
			
		||||
        blur_radius = 0.1 ** 2
 | 
			
		||||
        blur_radius = 0.1**2
 | 
			
		||||
        faces_per_pixel = 3
 | 
			
		||||
 | 
			
		||||
        for d in ["cpu", get_random_cuda_device()]:
 | 
			
		||||
@ -167,7 +167,7 @@ class TestRasterizeMeshes(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
 | 
			
		||||
        torch.manual_seed(231)
 | 
			
		||||
        image_size = 64
 | 
			
		||||
        radius = 0.1 ** 2
 | 
			
		||||
        radius = 0.1**2
 | 
			
		||||
        faces_per_pixel = 3
 | 
			
		||||
        device = torch.device("cpu")
 | 
			
		||||
        meshes_cpu = ico_sphere(0, device)
 | 
			
		||||
@ -224,7 +224,7 @@ class TestRasterizeMeshes(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
        # Make sure that the backward pass runs for all pathways
 | 
			
		||||
        image_size = 64  # test is too slow for very large images.
 | 
			
		||||
        N = 1
 | 
			
		||||
        radius = 0.1 ** 2
 | 
			
		||||
        radius = 0.1**2
 | 
			
		||||
        faces_per_pixel = 3
 | 
			
		||||
 | 
			
		||||
        grad_zbuf = torch.randn(N, image_size, image_size, faces_per_pixel)
 | 
			
		||||
@ -997,7 +997,7 @@ class TestRasterizeMeshes(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
        ordering of faces.
 | 
			
		||||
        """
 | 
			
		||||
        image_size = 10
 | 
			
		||||
        blur_radius = 0.12 ** 2
 | 
			
		||||
        blur_radius = 0.12**2
 | 
			
		||||
        faces_per_pixel = 1
 | 
			
		||||
 | 
			
		||||
        # fmt: off
 | 
			
		||||
 | 
			
		||||
@ -60,13 +60,13 @@ def spherical_volumetric_function(
 | 
			
		||||
 | 
			
		||||
    # the squared distance of each ray point to the centroid of the sphere
 | 
			
		||||
    surface_dist = (
 | 
			
		||||
        (surface_vectors ** 2)
 | 
			
		||||
        (surface_vectors**2)
 | 
			
		||||
        .sum(-1, keepdim=True)
 | 
			
		||||
        .view(*rays_points_world.shape[:-1], 1)
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # set all ray densities within the sphere_diameter distance from the centroid to 1
 | 
			
		||||
    rays_densities = torch.sigmoid(-100.0 * (surface_dist - sphere_diameter ** 2))
 | 
			
		||||
    rays_densities = torch.sigmoid(-100.0 * (surface_dist - sphere_diameter**2))
 | 
			
		||||
 | 
			
		||||
    # ray colors are proportional to the normalized surface_vectors
 | 
			
		||||
    rays_features = (
 | 
			
		||||
 | 
			
		||||
@ -128,7 +128,7 @@ class TestSamplePoints(TestCaseMixin, unittest.TestCase):
 | 
			
		||||
 | 
			
		||||
        # Sphere: points should have radius 1.
 | 
			
		||||
        x, y, z = samples[1, :].unbind(1)
 | 
			
		||||
        radius = torch.sqrt(x ** 2 + y ** 2 + z ** 2)
 | 
			
		||||
        radius = torch.sqrt(x**2 + y**2 + z**2)
 | 
			
		||||
 | 
			
		||||
        self.assertClose(radius, torch.ones(num_samples))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user