Spaces:
Runtime error
Runtime error
from dataclasses import dataclass | |
import nerfacc | |
import torch | |
import torch.nn.functional as F | |
import threestudio | |
from threestudio.models.background.base import BaseBackground | |
from threestudio.models.geometry.base import BaseImplicitGeometry | |
from threestudio.models.materials.base import BaseMaterial | |
from threestudio.utils.base import BaseModule | |
from threestudio.utils.typing import * | |
class Renderer(BaseModule): | |
class Config(BaseModule.Config): | |
radius: float = 1.0 | |
cfg: Config | |
def configure( | |
self, | |
geometry: BaseImplicitGeometry, | |
material: BaseMaterial, | |
background: BaseBackground, | |
) -> None: | |
# keep references to submodules using namedtuple, avoid being registered as modules | |
class SubModules: | |
geometry: BaseImplicitGeometry | |
material: BaseMaterial | |
background: BaseBackground | |
self.sub_modules = SubModules(geometry, material, background) | |
# set up bounding box | |
self.bbox: Float[Tensor, "2 3"] | |
self.register_buffer( | |
"bbox", | |
torch.as_tensor( | |
[ | |
[-self.cfg.radius, -self.cfg.radius, -self.cfg.radius], | |
[self.cfg.radius, self.cfg.radius, self.cfg.radius], | |
], | |
dtype=torch.float32, | |
), | |
) | |
def forward(self, *args, **kwargs) -> Dict[str, Any]: | |
raise NotImplementedError | |
def geometry(self) -> BaseImplicitGeometry: | |
return self.sub_modules.geometry | |
def material(self) -> BaseMaterial: | |
return self.sub_modules.material | |
def background(self) -> BaseBackground: | |
return self.sub_modules.background | |
def set_geometry(self, geometry: BaseImplicitGeometry) -> None: | |
self.sub_modules.geometry = geometry | |
def set_material(self, material: BaseMaterial) -> None: | |
self.sub_modules.material = material | |
def set_background(self, background: BaseBackground) -> None: | |
self.sub_modules.background = background | |
class VolumeRenderer(Renderer): | |
pass | |
class Rasterizer(Renderer): | |
pass | |