Skip to content

v0.2.5

Compare
Choose a tag to compare
@bottler bottler released this 28 Aug 15:17

Changelog

New features

  • Data loaders for common 3D datasets
  • New texturing API
    -Separate classes: TexturesVertex, TexturesUV, TexturesAtlas | commit
    • Existing Textures class is now deprecated and will be removed in the next release.
  • Cameras API refactor
    • Renaming and restructure to have consistency across all classes | commit
    • Cameras have been renamed as follows:
      OpenGLPerspectiveCameras -> FoVPerspectiveCameras OpenGLOrthographicCameras -> FoVOrthographicCameras
      SfMPerspectiveCameras -> PerspectiveCameras
      SfMOrthographicCameras -> OrthographicCameras
    • All cameras now output projected values in NDC with the option to provide params in screen coordinates and convert them to NDC.
    • Refer to the new note cameras.md for more detailed information.
  • Barycentric clipping in CUDA
    • Move barycentric clipping from PyTorch to CUDA for increased efficiency. Now available as a rasterization setting clip_barycentric_coords. | commit
  • One new representation for rotations
    • Conversions to and from Zhou et al 6d rotation represention | commit
  • Customizable Background color
    • Option added to HardPhongShader, HardGouraudShader, and HardFlatShader | commit
  • Joining several meshes to render a single scene
    • New join_meshes_as_scene function which also supports joining textures | commit1, commit2
  • CUDA op for interpolating face attributes
    • Functionality which was in python moved to cuda
      26d2cc2
  • Gather scatter on CPU | commit
  • C++/CUDA implementations of sigmoid/softmax blending functions | commit 1
  • C++ implementations for point-to-mesh distance functions | commit
  • detach method for Meshes, Pointclouds and Textures | commit
  • Support for multiple align_modes in the Cubify operator | commit
  • Texture maps (i.e. the TexturesUV class) now has align_corners and padding_mode customizable, and the default has changed to align_corners=True. | commit

New tutorials:

  • Data loading with ShapeNetCore and R2N2 dataloaders | commit
  • Fitting a textured mesh from multiview images | commit

Small updates

  • Compatibility with PyTorch 1.6
  • Flag to make sorting optional in KNN
    806ca36
  • update_padded method on meshes
    • Other optimizations use this | commit

Bug Fixes:

  • Temporary fix for rendering from inside a surface results in uninterpretable images | [issue]commit
    • This fix culls all face which are partially behind the image plane
  • Scaling Pointclouds by a scalar now works | commit
  • SO3 log map fix for singularity at PI | commit
  • Join mismatched texture maps on CUDA | commit
  • Flat shading fix | commit
  • Efficiency PnP bug fix | commit
  • look_at_transform now gives the correct location of the camera when the object at location is not at (0,0,0) | commit
  • Rendering a batch of meshes with texture maps now correct for all members of the batch #283 | commit
  • Extending meshes with texture maps where the verts and the verts_uvs have different lengths is now correct commit

Breaking Changes

  • Unused parameter composite_params removed from compostor classes | commit
  • Textures has now moved: (prev) from pytorch3d.structures import Textures -> (new) from pytorch3d.renderer import TexturesUV, TexturesVertex, TexturesAtlas. In addition due to the new texturing API, the generic Textures class will be deprecated in the next release (it is still currently available to be imported from pytorch3d.renderer)