1. 21 Aug, 2020 1 commit
    • Georgia Gkioxari's avatar
      camera refactoring · 57a22e73
      Georgia Gkioxari authored
      Summary:
      Refactor cameras
      * CamerasBase was enhanced with `transform_points_screen` that transforms projected points from NDC to screen space
      * OpenGLPerspective, OpenGLOrthographic -> FoVPerspective, FoVOrthographic
      * SfMPerspective, SfMOrthographic -> Perspective, Orthographic
      * PerspectiveCamera can optionally be constructred with screen space parameters
      * Note on Cameras and coordinate systems was added
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23168525
      
      fbshipit-source-id: dd138e2b2cc7e0e0d9f34c45b8251c01266a2063
      57a22e73
  2. 07 Aug, 2020 2 commits
    • Luya Gao's avatar
      Return R2N2 voxel coordinates · 63ba74f1
      Luya Gao authored
      Summary: Return R2N2's voxel coordinates.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22462530
      
      fbshipit-source-id: a995cfa0957b2561eb3b0f4591cb1db42170bc68
      63ba74f1
    • Luya Gao's avatar
      Return R2N2 R,T,K · 326e4ccb
      Luya Gao authored
      Summary: Return rotation, translation and intrinsic matrices necessary to reproduce R2N2's own renderings.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22462520
      
      fbshipit-source-id: 46a3859743ebc43c7a24f75827d2be3adf3f486b
      326e4ccb
  3. 29 Jul, 2020 1 commit
    • Nikhila Ravi's avatar
      Texturing API updates · a3932960
      Nikhila Ravi authored
      Summary:
      A fairly big refactor of the texturing API with some breaking changes to how textures are defined.
      
      Main changes:
      - There are now 3 types of texture classes: `TexturesUV`, `TexturesAtlas` and `TexturesVertex`. Each class:
         - has a `sample_textures` function which accepts the `fragments` from rasterization and returns `texels`. This means that the shaders will not need to know the type of the mesh texture which will resolve several issues people were reporting on GitHub.
        -  has a `join_batch` method for joining multiple textures of the same type into a batch
      
      Reviewed By: gkioxari
      
      Differential Revision: D21067427
      
      fbshipit-source-id: 4b346500a60181e72fdd1b0dd89b5505c7a33926
      a3932960
  4. 16 Jul, 2020 1 commit
    • Nikhila Ravi's avatar
      barycentric clipping in cuda/c++ · cc70950f
      Nikhila Ravi authored
      Summary:
      Added support for barycentric clipping in the C++/CUDA rasterization kernels which can be switched on/off via a rasterization setting.
      
      Added tests and a benchmark to compare with the current implementation in PyTorch - for some cases of large image size/faces per pixel the cuda version is 10x faster.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21705503
      
      fbshipit-source-id: e835c0f927f1e5088ca89020aef5ff27ac3a8769
      cc70950f
  5. 14 Jul, 2020 3 commits
    • Luya Gao's avatar
      Test rendering models for R2N2 · 5636eb61
      Luya Gao authored
      Summary: Adding a render function for R2N2.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22230228
      
      fbshipit-source-id: a9f588ddcba15bb5d8be1401f68d730e810b4251
      5636eb61
    • Luya Gao's avatar
      Render objects in a batch by the specified model_ids, categories or idxs for ShapeNetBase · 22f2963c
      Luya Gao authored
      Summary: Additional functionality for renderer in ShapeNetCore: users can select which objects to render by specifying their model_ids, or users could choose to render several random objects in some categories, or users could specify indices of the objects in the loaded dataset. (currently doesn't support changing lighting, still investigating why lighting is causing instability in renderings)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22179594
      
      fbshipit-source-id: 74c49094ffa3ea2eb71de9451f9e5da5053d356d
      22f2963c
    • Luya Gao's avatar
      Adding renderer for ShapeNetBase · 358e211c
      Luya Gao authored
      Summary: Adding a renderer to ShapeNetCore (Note that the lights are currently turned off for the test; will investigate why lighting causes instability in rendering)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22102673
      
      fbshipit-source-id: a704756a1e93b61d5a879f0e5ee14ebcb0df49d7
      358e211c
  6. 09 Jun, 2020 1 commit
    • Luya Gao's avatar
      Adding join_mesh in pytorch3d.structures.meshes · e053d7c4
      Luya Gao authored
      Summary: Adding a function in pytorch3d.structures.meshes to join multiple meshes into a Meshes object representing a single mesh. The function currently ignores all textures.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21876908
      
      fbshipit-source-id: 448602857e9d3d3f774d18bb4e93076f78329823
      e053d7c4
  7. 20 Apr, 2020 1 commit
    • Nikhila Ravi's avatar
      coarse rasterization bug fix · 9ef1ee84
      Nikhila Ravi authored
      Summary:
      Fix a bug which resulted in a rendering artifacts if the image size was not a multiple of 16.
      Fix: Revert coarse rasterization to original implementation and only update fine rasterization to reverse the ordering of Y and X axis. This is much simpler than the previous approach!
      
      Additional changes:
      - updated mesh rendering end-end tests to check outputs from both naive and coarse to fine rasterization.
      - added pointcloud rendering end-end tests
      
      Reviewed By: gkioxari
      
      Differential Revision: D21102725
      
      fbshipit-source-id: 2e7e1b013dd6dd12b3a00b79eb8167deddb2e89a
      9ef1ee84
  8. 17 Mar, 2020 1 commit
  9. 06 Mar, 2020 1 commit
    • Nikhila Ravi's avatar
      Fix coordinate system conventions in renderer · 15c72be4
      Nikhila Ravi authored
      Summary:
      ## Updates
      
      - Defined the world and camera coordinates according to this figure. The world coordinates are defined as having +Y up, +X left and +Z in.
      
      {F230888499}
      
      - Removed all flipping from blending functions.
      - Updated the rasterizer to return images with +Y up and +X left.
      - Updated all the mesh rasterizer tests
          - The expected values are now defined in terms of the default +Y up, +X left
          - Added tests where the triangles in the meshes are non symmetrical so that it is clear which direction +X and +Y are
      
      ## Questions:
      - Should we have **scene settings** instead of raster settings?
          - To be more correct we should be [z clipping in the rasterizer based on the far/near clipping planes](https://github.com/ShichenLiu/SoftRas/blob/master/soft_renderer/cuda/soft_rasterize_cuda_kernel.cu#L400) - these values are also required in the blending functions so should we make these scene level parameters and have a scene settings tuple which is available to the rasterizer and shader?
      
      Reviewed By: gkioxari
      
      Differential Revision: D20208604
      
      fbshipit-source-id: 55787301b1bffa0afa9618f0a0886cc681da51f3
      15c72be4
  10. 29 Feb, 2020 1 commit
    • Nikhila Ravi's avatar
      Barycentric clipping in the renderer and flat shading · ff19c642
      Nikhila Ravi authored
      Summary:
      Updates to the Renderer to enable barycentric clipping. This is important when there is blurring in the rasterization step.
      
      Also added support for flat shading.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D19934259
      
      fbshipit-source-id: 036e48636cd80d28a04405d7a29fcc71a2982904
      ff19c642
  11. 20 Feb, 2020 1 commit
  12. 23 Jan, 2020 1 commit