Spaces:
Paused
Paused
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 –
|
| 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(
|
| 16 |
-
azim_r = math.radians(
|
| 17 |
else:
|
| 18 |
-
elev_r, azim_r = elev, azim
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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("
|
| 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("
|
| 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
|