From eff0aad15acf9125c1dae6820ae1414f783466f0 Mon Sep 17 00:00:00 2001 From: David Novotny Date: Mon, 31 Oct 2022 14:00:49 -0700 Subject: [PATCH] Bugfix - normalize emitted ray directions after substraction Summary: The bug lead to non-coinciding origins of the rays emitted from perspective cameras when unit_directions=True Reviewed By: bottler Differential Revision: D40865610 fbshipit-source-id: 398598e9e919b53e6bea179f0400e735bbb5b625 --- pytorch3d/renderer/implicit/raysampling.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pytorch3d/renderer/implicit/raysampling.py b/pytorch3d/renderer/implicit/raysampling.py index 36351d0c..4e978b67 100644 --- a/pytorch3d/renderer/implicit/raysampling.py +++ b/pytorch3d/renderer/implicit/raysampling.py @@ -670,12 +670,13 @@ def _xy_to_ray_bundle( # directions are the differences between the two planes of points rays_directions_world = rays_plane_2_world - rays_plane_1_world - if unit_directions: - rays_directions_world = F.normalize(rays_directions_world, dim=-1) # origins are given by subtracting the ray directions from the first plane rays_origins_world = rays_plane_1_world - rays_directions_world + if unit_directions: + rays_directions_world = F.normalize(rays_directions_world, dim=-1) + return RayBundle( rays_origins_world.view(batch_size, *spatial_size, 3), rays_directions_world.view(batch_size, *spatial_size, 3),