kaolin.render.easy_render¶
Common Utilities¶
- kaolin.render.easy_render.default_camera(resolution=512)¶
Returns default pinhole camera, assuming a scene that’s centered and normalized around the origin.
- Parameters
resolution (int) – rendering resolution.
- Returns
(kaolin.render.camera.Camera)
- kaolin.render.easy_render.default_lighting()¶
Returns default lighting, represented as Spherical Gaussians.
- Returns
(kaolin.render.lighting.SgLightingParameters) default single SG light
Easy Rendering of Meshes¶
- class kaolin.render.easy_render.RenderPass(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
- albedo = 'albedo'¶
- alpha = 'alpha'¶
- diffuse = 'diffuse'¶
- face_idx = 'face_idx'¶
- features = 'features'¶
- normals = 'normals'¶
- render = 'render'¶
- roughness = 'roughness'¶
- specular = 'specular'¶
- uvs = 'uvs'¶
- kaolin.render.easy_render.render_mesh(camera, mesh, lighting=None, custom_materials=None, custom_material_assignments=None, backend=None, nvdiffrast_context=None)¶
Default easy-to-use differentiable rendering function. Is able to perform rasterization-based rendering with partial PBR material spec, if the input mesh comes with materials of type
kaolin.render.materials.PBRMaterial
.- Parameters
camera (Camera) – single unbatched camera.
mesh (SurfaceMesh) – single unbatched mesh with bundled materials and material assignments.
lighting (SgLightingParameters, optional) – spherical Gaussians lighting parameters instance, if not set, will use default.
custom_materials (list of PBRMaterial, optional) – allows passing in materials distinct from mesh.materials
custom_material_assignments (torch.LongTensor, optional) – allows passing in material assignments distinct from mesh.material_assignments
backend (str, optional) – which backend to use for rasterization/interpolation. If not set, will use nvdiffrast if available in the environment, or else Kaolin CUDA rasterizer. Pass in “nvdiffrast” to force the use of nvdiffrast (or error if not installed), and pass in “cuda” to force Kaolin bundled CUDA implementation.
nvdiffrast_context (optional) – if using nvdiffrast, pass in optional context. If not set, default context will be created for device.
- Returns
- (dict) from RenderPass enum value names to 1 x camera.height x camera.width x nchannels images,
guaranteed to contain RenderPass.render.name key with a value. Output is not clamped.
Misc Utilities¶
- kaolin.render.easy_render.mesh_rasterize_interpolate_cuda(mesh, camera, normals_required=True, uvs_required=True, tangents_required=True, features_required=True)¶
Performs rasterization and interpolation using bundled Kaolin CUDA kernel. Returns image-space values, given camera resolution, for attributes that are required and available, and None for others.
- Parameters
mesh (SurfaceMesh) – unbatched surface mesh
camera (Camera) – single camera
normals_required (bool) – if True, will compute interpolated mesh normals, else return None
uvs_required (bool) – if True, and present in mesh, will compute interpolated mesh uvs, else return None
tangents_required (bool) – if True, will compute interpolated mesh tangents, else return None
features_required (bool) – if True, and present in mesh, will compute interpolated mesh features, else return None
- Returns
face_idx, im_normals, im_tangents, im_uvs, im_features
- Return type
(tuple of)
- kaolin.render.easy_render.mesh_rasterize_interpolate_nvdiffrast(mesh, camera, nvdiffrast_context, normals_required=True, uvs_required=True, tangents_required=True, features_required=True)¶
Performs rasterization and interpolation using nvdiffrast. Returns image-space values, given camera resolution, for attributes that are required and available, and None for others.
- Parameters
mesh (SurfaceMesh) – unbatched surface mesh
nvdiffrast_context (render context) – nvdiffrast context, either CUDA or OpenGL
camera (Camera) – single camera
normals_required (bool) – if True, will compute interpolated mesh normals, else return None
uvs_required (bool) – if True, and present in mesh, will compute interpolated mesh uvs, else return None
tangents_required (bool) – if True, will compute interpolated mesh tangents, else return None
features_required (bool) – if True, and present in mesh, will compute interpolated mesh features, else return None
- Returns
face_idx, im_normals, im_tangents, im_uvs, im_features
- Return type
(tuple of)
- kaolin.render.easy_render.texture_sample_materials(backend, face_idx, im_base_normals, materials=None, uv_map=None, material_assignments=None, im_tangents=None)¶
Perform texture sampling on all material channel images.
- kaolin.render.easy_render.sg_shade(camera, face_idx, albedo, spec_albedo, im_roughness, im_world_normals, amplitude, direction, sharpness)¶
Performs partial PBR shading of the materials, given SG lighting parameters and image space maps.