import numpy as np from tqdm import tqdm from genmo.utils.vis.renderer import Renderer def simple_render_mesh(render_dict): """Render an camera-space mesh, blank background""" width, height, focal_length = render_dict["whf"] faces = render_dict["faces"] verts = render_dict["verts"] renderer = Renderer(width, height, focal_length, device="cuda", faces=faces) outputs = [] for i in tqdm(range(len(verts)), desc="Rendering"): img = renderer.render_mesh(verts[i].cuda(), colors=[0.8, 0.8, 0.8]) outputs.append(img) outputs = np.stack(outputs, axis=0) return outputs def simple_render_mesh_background(render_dict, VI=50, colors=[0.8, 0.8, 0.8]): """Render an camera-space mesh, blank background""" K = render_dict["K"] faces = render_dict["faces"] verts = render_dict["verts"] background = render_dict["background"] N_frames = len(verts) if len(background.shape) == 3: background = [background] * N_frames height, width = background[0].shape[:2] renderer = Renderer(width, height, device="cuda", faces=faces, K=K) outputs = [] for i in tqdm(range(len(verts)), desc="Rendering"): img = renderer.render_mesh( verts[i].cuda(), colors=colors, background=background[i], VI=VI ) outputs.append(img) outputs = np.stack(outputs, axis=0) return outputs