Skip to content

v0.4.0

Compare
Choose a tag to compare
@nikhilaravi nikhilaravi released this 09 Feb 18:11

Changelog

The key new features in this release is support for Implicit/Volume Rendering. This includes several methods for sampling camera rays and marching along the rays in order to render their color. We further introduce support for voxel grids. To this end, we implemented a new Volumes structure and methods for converting between Pointclouds and Volumes. The rendering of implicit surfaces as well as voxel grids has been showcased in two new tutorial jupyter notebooks.

We are also introducing a new projects folder with an implementation of NeRF. We plan to add more examples of papers which can be implemented using components from PyTorch3D.

Key features

  • Volumes Datastructure | commit
  • Raysamplers: GridRaysampler, MonteCarloRaysampler, NDCGridRaysampler; RayBundle datastructure | commit
    Raymarchers: AbsorptionOnlyRaymarcher, EmissionAbsorptionRaymarcher | commit
  • Implicit/Volume Renderer | commit
  • Pointclouds to Volumes conversion | commit

Projects

  • Reimplementation of NeRF | commit

Additional new features

  • Taubin Smoothing for Meshes | commit
  • Non Square Image Rasterization for Meshes | commit
  • Non Square Image Rasterization for Pointclouds | commit
  • Naive PyTorch version of Marching Cubes | commit
  • New Pluggable Data Loading API | commit

New Tutorials

  • Fit Textured Volume | commit
  • Fit Neural Radiance Field | commit

Small Updates

  • Change io functions to use iopath | commit
  • Read heterogenous nonlist PLY properties as arrays | commit
  • Update the MeshRasterizer to automatically infer the camera type and set the perspective_correct setting for correcting barycentric coordinates after rasterization | commit

Bug Fixes

  • Rasterization of mesh faces partially behind the image plane
    • Full fix which clips meshes at specified z value prior to rasterization instead of only culling. | commit1, commit2
    • Introduced two new rasterization settings (z_clip_value, cull_to_frustum) | commit
  • Check for verts/faces in Meshes to be on the same device | commit
  • Fix for index error with Texture Atlas sampling | commit

Builds

  • For Linux, instead of uploading wheels to PyPI which will only work with one particular version of PyTorch and CUDA, we now provide a range of built wheels on S3. Refer to INSTALL.md for instructions on how to download and install.