Skip to content

v0.2.0

Compare
Choose a tag to compare
@nikhilaravi nikhilaravi released this 27 Apr 02:22

Changelog

New Features

  • Pointclouds Datastructure | 767d68a
    • Support for batches of pointclouds with additional helper methods e.g. get_bounding_boxes
  • Pointclouds rendering | 5359977
    • C++, CUDA and Python implementations of Pointcloud rendering with heterogeneous pointclouds. Exposed via Rasterizer, Renderer and Compositor Pytorch Classes with 3 types of Compositors available. A jupyter notebook tutorial has also been added.
  • Umeyama - estimate a rigid motion between two sets of corresponding points. | e5b1d6d
  • Weighted Umeyama | e37085d
  • Iterative Closest Point Algorithm | 8abbe22
  • Efficient PnP algorithm to Fit 2D to 3D correspondences under perspective assumption | 04d8bf6
  • Pointcloud normal estimation | 365945b
    • Supports batches of pointclouds
    • Also available on the Pointclouds datastructure as a method estimate_normals
  • Point to Mesh distances | 487d4d6
    • Python, C++ and Cuda implementations of Point to Triangle Face, Face to point algorithms including array versions
  • K nearest neighbors
    • Multiple KNN methods for pointclouds based on the input parameters | 870290d
    • KNN with heterogeneous pointclouds (i.e different numbers of points) | 01b5f7b
    • Autograd wrapper for KNN including backward pass for distances | b2b0c5a
      • knn_points function to return the neighbor points and distances
      • knn_gather function to allow gathering of additional features based on the knn indices

Updates to existing Operators

  • Chamfer loss support for heterogeneous pointclouds | 790eb8c
    • Support for chamfer loss for two batches of pointclouds where each pointcloud in the batch can have different numbers of points
  • Vert align for pointcloud objects | f25af96
  • Cameras
    • unproject_points function to convert from screen to world coordinates | 365945b
    • look_at_transform update to enable specifying the eye (camera center) directly | 2480723
  • Transforms3D update to allow init of Transforms3D class with a custom matrix | 90dc7a0
  • Mesh Rendering update to enable back face culling in rasterization - this is available as a cull_backfaces boolean setting in raster_settings | 4bf3059
  • Mesh loading - update to load_obj to support loading textures as per face textures [following the approach from SoftRasterizer]. There is a new boolean argument called 'create_texture_atlasfor theload_obj` function to enable this | c9267ab
  • join_meshes_as_batch method to create a batch of meshes from a list of Meshes objects | b64fe51

Bug Fixes

  • nan check in sample points from meshes | 6c48ff6
  • Texturing function reshape/view fixes | 5d3cc35
  • SfMPerspectiveCameras projection matrix - add the principal points after the perspective divide | 677b0bd
  • Enable cuda kernels to be laucnhed on any GPU (not just the default) | c3d636d

Breaking changes

  • Nearest neighbors implementation has been entirely removed - use KNN instead. | 3794f67
  • There are some changes to the interface of chamfer_distance to cope with heterogenous point clouds. | 790eb8c
  • The function join_meshes has been renamed to join_meshes_as_batch | b64fe51