jboth commited on
Commit
382035a
·
verified ·
1 Parent(s): 7a4ca28

Upload pytorch3d_stub/pytorch3d/renderer/__init__.py with huggingface_hub

Browse files
pytorch3d_stub/pytorch3d/renderer/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- """pytorch3d.renderer stub – minimal classes for import compatibility."""
2
  import torch
3
  import math
4
 
@@ -12,20 +12,14 @@ def look_at_view_transform(dist=1.0, elev=0.0, azim=0.0, degrees=True, eye=None,
12
  eye = eye.unsqueeze(0)
13
  else:
14
  if degrees:
15
- elev_r = math.radians(elev) if isinstance(elev, (int, float)) else torch.deg2rad(torch.tensor(float(elev)))
16
- azim_r = math.radians(azim) if isinstance(azim, (int, float)) else torch.deg2rad(torch.tensor(float(azim)))
17
  else:
18
- elev_r, azim_r = elev, azim
19
- if isinstance(elev_r, (int, float)):
20
- x = dist * math.cos(elev_r) * math.sin(azim_r)
21
- y = dist * math.sin(elev_r)
22
- z = dist * math.cos(elev_r) * math.cos(azim_r)
23
- eye = torch.tensor([[x, y, z]], dtype=torch.float32, device=device)
24
- else:
25
- x = dist * torch.cos(elev_r) * torch.sin(azim_r)
26
- y = dist * torch.sin(elev_r)
27
- z = dist * torch.cos(elev_r) * torch.cos(azim_r)
28
- eye = torch.stack([x, y, z], dim=-1).unsqueeze(0).to(device)
29
  if not isinstance(at, torch.Tensor):
30
  at = torch.tensor(at, dtype=torch.float32, device=device)
31
  if at.dim() == 1:
@@ -44,7 +38,12 @@ def look_at_view_transform(dist=1.0, elev=0.0, azim=0.0, degrees=True, eye=None,
44
  return R, T
45
 
46
 
47
- class PerspectiveCameras:
 
 
 
 
 
48
  def __init__(self, focal_length=None, principal_point=None, R=None, T=None,
49
  image_size=None, device="cpu", in_ndc=True, **kwargs):
50
  self.device = device
@@ -84,9 +83,8 @@ class MeshRasterizer(torch.nn.Module):
84
  super().__init__()
85
  self.cameras = cameras
86
  self.raster_settings = raster_settings or RasterizationSettings()
87
-
88
  def forward(self, meshes, **kwargs):
89
- raise NotImplementedError("pytorch3d.renderer stub: MeshRasterizer.forward not implemented")
90
 
91
 
92
  class MeshRenderer(torch.nn.Module):
@@ -94,14 +92,17 @@ class MeshRenderer(torch.nn.Module):
94
  super().__init__()
95
  self.rasterizer = rasterizer
96
  self.shader = shader
97
-
98
  def forward(self, meshes, **kwargs):
99
- raise NotImplementedError("pytorch3d.renderer stub: MeshRenderer.forward not implemented")
100
 
101
 
102
  class TexturesVertex:
103
  def __init__(self, verts_features=None):
104
  self.verts_features_list = verts_features if isinstance(verts_features, list) else [verts_features]
105
-
106
  def to(self, device):
107
  return self
 
 
 
 
 
 
1
+ """pytorch3d.renderer stub – all classes needed by SAM3D."""
2
  import torch
3
  import math
4
 
 
12
  eye = eye.unsqueeze(0)
13
  else:
14
  if degrees:
15
+ elev_r = math.radians(float(elev))
16
+ azim_r = math.radians(float(azim))
17
  else:
18
+ elev_r, azim_r = float(elev), float(azim)
19
+ x = dist * math.cos(elev_r) * math.sin(azim_r)
20
+ y = dist * math.sin(elev_r)
21
+ z = dist * math.cos(elev_r) * math.cos(azim_r)
22
+ eye = torch.tensor([[x, y, z]], dtype=torch.float32, device=device)
 
 
 
 
 
 
23
  if not isinstance(at, torch.Tensor):
24
  at = torch.tensor(at, dtype=torch.float32, device=device)
25
  if at.dim() == 1:
 
38
  return R, T
39
 
40
 
41
+ class CamerasBase:
42
+ """Base camera class stub."""
43
+ pass
44
+
45
+
46
+ class PerspectiveCameras(CamerasBase):
47
  def __init__(self, focal_length=None, principal_point=None, R=None, T=None,
48
  image_size=None, device="cpu", in_ndc=True, **kwargs):
49
  self.device = device
 
83
  super().__init__()
84
  self.cameras = cameras
85
  self.raster_settings = raster_settings or RasterizationSettings()
 
86
  def forward(self, meshes, **kwargs):
87
+ raise NotImplementedError("MeshRasterizer stub")
88
 
89
 
90
  class MeshRenderer(torch.nn.Module):
 
92
  super().__init__()
93
  self.rasterizer = rasterizer
94
  self.shader = shader
 
95
  def forward(self, meshes, **kwargs):
96
+ raise NotImplementedError("MeshRenderer stub")
97
 
98
 
99
  class TexturesVertex:
100
  def __init__(self, verts_features=None):
101
  self.verts_features_list = verts_features if isinstance(verts_features, list) else [verts_features]
 
102
  def to(self, device):
103
  return self
104
+
105
+
106
+ class HeterogeneousRayBundle:
107
+ """Stub for HeterogeneousRayBundle (not used in inference)."""
108
+ pass