1. 18 Mar, 2020 4 commits
  2. 17 Mar, 2020 4 commits
    • Patrick Labatut's avatar
      Enable spelling linter for Markdown, reStructuredText and IPython notebooks · c9742d00
      Patrick Labatut authored
      Summary: Enable spelling linter for Markdown, reStructuredText and IPython notebooks under `fbcode/vision/fair`. Apply suggested fixes.
      
      Reviewed By: ppwwyyxx
      
      Differential Revision: D20495298
      
      fbshipit-source-id: 95310c7b51f9fa68ba2aa34ecc39a874da36a75c
      c9742d00
    • Nikhila Ravi's avatar
      website updates · 3901dbe4
      Nikhila Ravi authored
      Summary:
      A few small website updates:
      
      - changed the tutorials to point to the `stable` tag on github so we don't have to update the website each time we want to run them!
      - changed the colab button
      - re ran notebook cells to update the images for textured meshes
      
      Once these fixes are landed I can build and publish the website.
      
      Reviewed By: bottler
      
      Differential Revision: D20484836
      
      fbshipit-source-id: 603a05e752f631c60d1a3abb9adeb1b9b451ab98
      3901dbe4
    • Patrick Labatut's avatar
      Use a consistent case for PyTorch3D · 25d2e2c8
      Patrick Labatut authored
      Summary: Use a consistent case for PyTorch3D (matching the logo...): replace all occurrences of PyTorch3d with PyTorch3D across the codebase (including documentation and notebooks)
      
      Reviewed By: wanyenlo, gkioxari
      
      Differential Revision: D20427546
      
      fbshipit-source-id: 8c7697f51434c51e99b7fe271935932c72a1d9b9
      25d2e2c8
    • Nikhila Ravi's avatar
      Rendering texturing fixes · 5d3cc356
      Nikhila Ravi authored
      Summary:
      Fix errors raised by issue on GitHub - extending mesh textures + rendering with Gourad and Phong shaders.
      
      https://github.com/facebookresearch/pytorch3d/issues/97
      
      Reviewed By: gkioxari
      
      Differential Revision: D20319610
      
      fbshipit-source-id: d1c692ff0b9397a77a9b829c5c731790de70c09f
      5d3cc356
  3. 16 Mar, 2020 2 commits
    • Jeremy Reizenstein's avatar
      Fix BUILD_VERSION for conda · f580ce13
      Jeremy Reizenstein authored
      Summary: D20426113 made a mistake, in that it added a dev tag to all conda builds. This makes the simplest fix, which is to never have the dev tag.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20468541
      
      fbshipit-source-id: adc71b58d59356834d33f65a75cf8ba84359bc74
      f580ce13
    • Jeremy Reizenstein's avatar
      test_build · fa819533
      Jeremy Reizenstein authored
      Summary: Ensure copyright header consistency and translation unit name uniqueness.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20438802
      
      fbshipit-source-id: 9820cfe4c6efab016a0a8589dfa24bb526692f83
      fa819533
  4. 15 Mar, 2020 1 commit
    • Nikhila Ravi's avatar
      [pytorch3d[ padded to packed function in struct utils · 20e457ca
      Nikhila Ravi authored
      Summary: Added a padded to packed utils function which takes either split sizes or a padding value to remove padded elements from a tensor.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20454238
      
      fbshipit-source-id: 180b807ff44c74c4ee9d5c1ac3b5c4a9b4be57c7
      20e457ca
  5. 13 Mar, 2020 4 commits
    • Jeremy Reizenstein's avatar
      Version number in one place in the code. · 4d3c8866
      Jeremy Reizenstein authored
      Summary:
      This isn't the whole task, but it gets the version number into far fewer places.
      
      The doc / website are separate.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20426113
      
      fbshipit-source-id: 5810d1eca58b443fcd5f46991dc2f0f26adedbd8
      4d3c8866
    • Jeremy Reizenstein's avatar
      squared distance in comments · 23618455
      Jeremy Reizenstein authored
      Summary: Comments were describing squared distance as absolute distance in a few places.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20426020
      
      fbshipit-source-id: 009946867c4a98f61f5ce7158542d41e22bf8346
      23618455
    • Patrick Labatut's avatar
      Add more complex mesh I/O benchmarks · d91c1d36
      Patrick Labatut authored
      Summary: Add more complex mesh I/O benchmarks: simple yet non-trivial procedural donut mesh
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20390726
      
      fbshipit-source-id: b28b7e3a7f1720823c6bd24faabf688bb0127b7d
      d91c1d36
    • Patrick Labatut's avatar
      Add utility function to tesselate a torus · 327868b8
      Patrick Labatut authored
      Summary: Add utility function to tesselate a torus, to be used in more complex mesh I/O benchmarks
      
      Reviewed By: bottler
      
      Differential Revision: D20390724
      
      fbshipit-source-id: 882bbbe9cac81cf340a34495b9aa66e3c1ddeebc
      327868b8
  6. 12 Mar, 2020 6 commits
    • Patrick Labatut's avatar
      Use more realistic number of vertices / faces in benchmarks · 098554d3
      Patrick Labatut authored
      Summary: Use more realistic number of vertices / faces in benchmarks: in typical meshes, |F| ~ 2 |V| (follows from Euler formula + triangles as faces)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20390722
      
      fbshipit-source-id: d615e5810d6f4521391963b2573497c08a58db80
      098554d3
    • Patrick Labatut's avatar
      Simplify mesh I/O benchmarking methods · 94fc862f
      Patrick Labatut authored
      Summary: Rename mesh I/O benchmarking methods: always (re-)create file-like object and directly return a lambda
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20390723
      
      fbshipit-source-id: b45236360869cccdf3d5458a0aafb3ebe269babe
      94fc862f
    • Patrick Labatut's avatar
      Rename mesh I/O benchmarks and associated methods · 797e468e
      Patrick Labatut authored
      Summary:
      Rename mesh I/O benchmarks and associated methods:
      - add `simple` qualifier (benchmark on more realistic mesh data to be added later)
      - align naming between OBJ and PLY
      - prefix with `bm_` to make the benchmarking purpose clear(er)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20390764
      
      fbshipit-source-id: 7714520abfcfe1125067f3c52f7ce19bca359574
      797e468e
    • Patrick Labatut's avatar
      Remove shebang line when not strictly required · 3c71ab64
      Patrick Labatut authored
      Summary: The shebang line `#!<path to interpreter>` is only required for Python scripts, so remove it on source files for class or function definitions. Additionally explicitly mark as executable the actual Python scripts in the codebase.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20095778
      
      fbshipit-source-id: d312599fba485e978a243292f88a180d71e1b55a
      3c71ab64
    • Nikhila Ravi's avatar
      Fix coordinate system conventions in point cloud renderer · d01e7228
      Nikhila Ravi authored
      Summary:
      Applying the changes added for mesh rasterization to ensure that +Y is up and +X is left so that the coordinate system is right handed.
      
      Also updated the diagram in the docs to indicate that (0,0) is in the top left hand corner.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20394849
      
      fbshipit-source-id: cfb7c79090eb1f55ad38b92327a74a70a8dc541e
      d01e7228
    • Nikhila Ravi's avatar
      Update point cloud rasterizer to support heterogeneous point clouds · 32ad869d
      Nikhila Ravi authored
      Summary:
      Update the point cloud rasterizer to:
      - use the pointcloud datastructure (rebased on top of D19791851.)
      - support rasterization of heterogeneous point clouds in the same way as with Meshes.
      
      The main changes to the API will be as follows:
      - The input to `rasterize_points` will be a `Pointclouds` object instead of a tensor. This will be easy to update e.g.
      ```
      points = torch.randn(N, P, 3)
      idx2, zbuf2, dists2 = rasterize_points(points, image_size, radius, points_per_pixel)
      
      points = torch.randn(N, P, 3)
      pointclouds = Pointclouds(points=points)
      idx2, zbuf2, dists2 = rasterize_points(pointclouds, image_size, radius, points_per_pixel)
      ```
      
      - The indices output from rasterization will now refer to points in `poinclouds.points_packed()`.
      This may require some changes to the functions which consume the outputs of rasterization if they were previously
      assuming that the indices ranged from 0 to P where P is the number of points in each pointcloud.
      
      Making this change now so that Olivia can update her PR accordingly.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20088651
      
      fbshipit-source-id: 833ed659909712bcbbb6a50e2ec0189839f0413a
      32ad869d
  7. 11 Mar, 2020 2 commits
    • Roman Shapovalov's avatar
      Old-style string formatting fails when passed a tuple. · cae32571
      Roman Shapovalov authored
      Summary: When the error occurs, another exception is thrown when tensor shape is passed to the % formatting. I have found all entries for `msg %` and fixed potential failures
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20386511
      
      fbshipit-source-id: c05413eb4867cab1ddc9615dffbd0ebd3adfcaf9
      cae32571
    • Jeremy Reizenstein's avatar
      getitem for textures · fb97ab10
      Jeremy Reizenstein authored
      Summary: Make Meshes.__getitem__ carry texture information to the new mesh.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20283976
      
      fbshipit-source-id: d9ee0580c11ac5b4384df9d8158a07e6eb8d00fe
      fb97ab10
  8. 09 Mar, 2020 1 commit
  9. 08 Mar, 2020 1 commit
    • Georgia Gkioxari's avatar
      Add more DR citations · 112d32ea
      Georgia Gkioxari authored
      Summary: Add more DR citations
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20330205
      
      fbshipit-source-id: 4fb95d422371ae9ff5cdc2693736e36799201477
      112d32ea
  10. 07 Mar, 2020 1 commit
    • Jeremy Reizenstein's avatar
      version 0.1.1 · cf8e667b
      Jeremy Reizenstein authored
      Summary: Bumping the version number to 0.1.1 and thereby documenting all the places where the version number currently appears in the code.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20067382
      
      fbshipit-source-id: 76a25ed1d4036f51357e4ae3e0f07de32ad114ae
      cf8e667b
  11. 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
  12. 04 Mar, 2020 1 commit
    • Georgia Gkioxari's avatar
      pointcloud structure · 767d68a3
      Georgia Gkioxari authored
      Summary:
      Revisions to Poincloud data structure with added normals
      
      The biggest changes form the previous version include:
      a) If the user provides tensor inputs, we make no assumption about padding. Padding is only for internal use for us to convert from list to padded
      b) If features are not provided or if the poincloud is empty, all forms of features are None. This is so that we don't waste memory on holding dummy tensors.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D19791851
      
      fbshipit-source-id: 7e182f7bb14395cb966531653f6dd6b328fd999c
      767d68a3
  13. 01 Mar, 2020 1 commit
    • Nikhila Ravi's avatar
      Blending fixes and test updates · ba11c0b5
      Nikhila Ravi authored
      Summary:
      Changed `torch.cumprod` to `torch.prod` in blending functions and added more tests and benchmark tests.
      
      This should fix the issue raised on GitHub.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20163073
      
      fbshipit-source-id: 4569fd37be11aa4435a3ce8736b55622c00ec718
      ba11c0b5
  14. 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
  15. 25 Feb, 2020 1 commit
  16. 24 Feb, 2020 4 commits
  17. 21 Feb, 2020 3 commits
    • Georgia Gkioxari's avatar
      fix docstring of mesh edge loss · c2a0a3e3
      Georgia Gkioxari authored
      Summary: Fix docstring for mesh edge loss
      
      Reviewed By: jcjohnson
      
      Differential Revision: D20040560
      
      fbshipit-source-id: 01a3ee9473c7d11583684bf4cd200caa1d3f0260
      c2a0a3e3
    • Jeremy Reizenstein's avatar
      lint things · e491efb8
      Jeremy Reizenstein authored
      Summary:
      Lint related fixes: Improve internal/OSS consistency. Fix the fight between black and certain pyre-ignore markers by moving them to the line before.
      Use clang-format-8 automatically if present. Small number of pyre fixes.
      
      arc doesn't run pyre at the moment, so I put back the explicit call to pyre. I don't know if there's an option somewhere to change this.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D19780518
      
      fbshipit-source-id: ef1c243392322fa074130f6cff2dd8a6f7738a7f
      e491efb8
    • merayxu's avatar
      Fixed windows MSVC build compatibility (#9) · 9e21659f
      merayxu authored
      Summary:
      Fixed a few MSVC compiler (visual studio 2019, MSVC 19.16.27034) compatibility issues
      1. Replaced long with int64_t. aten::data_ptr\<long\> is not supported in MSVC
      2. pytorch3d/csrc/rasterize_points/rasterize_points_cpu.cpp, inline function is not correctly recognized by MSVC.
      3. pytorch3d/csrc/rasterize_meshes/geometry_utils.cuh
      const auto kEpsilon = 1e-30;
      MSVC does not compile this const into both host and device, change to a MACRO.
      4. pytorch3d/csrc/rasterize_meshes/geometry_utils.cuh,
      const float area2 = pow(area, 2.0);
      2.0 is considered as double by MSVC and raised an error
      5. pytorch3d/csrc/rasterize_points/rasterize_points_cpu.cpp
      std::tuple<torch::Tensor, torch::Tensor> RasterizePointsCoarseCpu() return type does not match the declaration in rasterize_points_cpu.h.
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/9
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D19986567
      
      Pulled By: yuanluxu
      
      fbshipit-source-id: f4d98525d088c99c513b85193db6f0fc69c7f017
      9e21659f
  18. 20 Feb, 2020 2 commits
    • Georgia Gkioxari's avatar
      face areas backward · a3baa367
      Georgia Gkioxari authored
      Summary:
      Added backward for mesh face areas & normals. Exposed it as a layer. Replaced the computation with the new op in Meshes and in Sample Points.
      
      Current issue: Circular imports. I moved the import of the op in meshes inside the function scope.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D19920082
      
      fbshipit-source-id: d213226d5e1d19a0c8452f4d32771d07e8b91c0a
      a3baa367
    • Patrick Labatut's avatar
      Fix spelling of "Gouraud" · 9ca54891
      Patrick Labatut authored
      Summary: Fix spelling of *Gouraud* in [Gouraud shading](https://en.wikipedia.org/wiki/Gouraud_shading).
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D19943547
      
      fbshipit-source-id: 5c016b7b051a7b33a7b68ed5303b642d9e834bbd
      9ca54891