MCPcopy Create free account
hub / github.com/MotrixLab/AiOS / render

Function render

detrsmpl/core/renderer/torch3d_renderer/render_runner.py:22–125  ·  view source on GitHub ↗
(renderer: Union[nn.Module, dict],
           meshes: Union[Meshes, None] = None,
           output_path: Optional[str] = None,
           resolution: Union[Iterable[int], int] = None,
           device: Union[str, torch.device] = 'cpu',
           cameras: Union[MMCamerasBase, CamerasBase, dict, None] = None,
           lights: Union[MMLights, dict, None] = None,
           batch_size: int = 5,
           return_tensor: bool = False,
           no_grad: bool = False,
           verbose: bool = True,
           **forward_params)

Source from the content-addressed store, hash-verified

20
21
22def render(renderer: Union[nn.Module, dict],
23 meshes: Union[Meshes, None] = None,
24 output_path: Optional[str] = None,
25 resolution: Union[Iterable[int], int] = None,
26 device: Union[str, torch.device] = 'cpu',
27 cameras: Union[MMCamerasBase, CamerasBase, dict, None] = None,
28 lights: Union[MMLights, dict, None] = None,
29 batch_size: int = 5,
30 return_tensor: bool = False,
31 no_grad: bool = False,
32 verbose: bool = True,
33 **forward_params):
34
35 if isinstance(renderer, dict):
36 renderer = build_renderer(renderer)
37 elif isinstance(renderer, MeshRenderer):
38 if isinstance(renderer.shader, SoftSilhouetteShader):
39 renderer = build_renderer(
40 dict(type='silhouette',
41 resolution=resolution,
42 shader=renderer.shader,
43 rasterizer=renderer.rasterizer))
44 else:
45 renderer = build_renderer(
46 dict(type='mesh',
47 resolution=resolution,
48 shader=renderer.shader,
49 rasterizer=renderer.rasterizer))
50 elif isinstance(renderer, BaseRenderer):
51 renderer = renderer
52 else:
53 raise TypeError('Wrong input renderer type.')
54
55 renderer = renderer.to(device)
56 if output_path is not None:
57 renderer._set_output_path(output_path)
58
59 if isinstance(cameras, dict):
60 cameras = build_cameras(cameras)
61 elif isinstance(cameras, MMCamerasBase):
62 cameras = cameras
63 elif isinstance(cameras,
64 CamerasBase) and not isinstance(cameras, MMCamerasBase):
65 cameras = build_cameras(
66 dict(type=cameras.__class__.__name__,
67 K=cameras.K,
68 R=cameras.R,
69 T=cameras.T,
70 in_ndc=cameras.in_ndc(),
71 resolution=resolution))
72 else:
73 raise TypeError('Wrong input cameras type.')
74 num_frames = len(meshes)
75 if isinstance(lights, dict):
76 lights = build_lights(lights)
77 elif isinstance(lights, MMLights):
78 lights = lights
79 elif lights is None:

Callers

nothing calls this directly

Calls 11

build_camerasFunction · 0.90
build_rendererFunction · 0.85
build_lightsFunction · 0.85
AmbientLightsClass · 0.85
_set_output_pathMethod · 0.80
in_ndcMethod · 0.80
exportMethod · 0.80
concatenateMethod · 0.80
toMethod · 0.45
extendMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected