google-research

Форк
0
28 строк · 1.4 Кб
1
--- external/eg3d/training/volumetric_rendering/ray_sampler.py	2023-03-14 23:35:46.915278482 +0000
2
+++ external_reference/eg3d/training/volumetric_rendering/ray_sampler.py	2023-03-14 23:28:05.430774723 +0000
3
@@ -35,7 +35,7 @@
4
         N, M = cam2world_matrix.shape[0], resolution**2
5
         cam_locs_world = cam2world_matrix[:, :3, 3]
6
         fx = intrinsics[:, 0, 0]
7
-        fy = intrinsics[:, 1, 1]
8
+        fy = -intrinsics[:, 1, 1] # follow opengl convention from nerf
9
         cx = intrinsics[:, 0, 2]
10
         cy = intrinsics[:, 1, 2]
11
         sk = intrinsics[:, 0, 1]
12
@@ -51,7 +51,8 @@
13
         x_lift = (x_cam - cx.unsqueeze(-1) + cy.unsqueeze(-1)*sk.unsqueeze(-1)/fy.unsqueeze(-1) - sk.unsqueeze(-1)*y_cam/fy.unsqueeze(-1)) / fx.unsqueeze(-1) * z_cam
14
         y_lift = (y_cam - cy.unsqueeze(-1)) / fy.unsqueeze(-1) * z_cam
15
 
16
-        cam_rel_points = torch.stack((x_lift, y_lift, z_cam, torch.ones_like(z_cam)), dim=-1)
17
+        # follow opengl convention like nerf
18
+        cam_rel_points = torch.stack((x_lift, y_lift, -z_cam, torch.ones_like(z_cam)), dim=-1)
19
 
20
         world_rel_points = torch.bmm(cam2world_matrix, cam_rel_points.permute(0, 2, 1)).permute(0, 2, 1)[:, :, :3]
21
 
22
@@ -60,4 +61,4 @@
23
 
24
         ray_origins = cam_locs_world.unsqueeze(1).repeat(1, ray_dirs.shape[1], 1)
25
 
26
-        return ray_origins, ray_dirs
27
\ No newline at end of file
28
+        return ray_origins, ray_dirs
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.