1. 04 May, 2021 3 commits
    • Jeremy Reizenstein's avatar
      Scale leaves verts normals unchanged · 17633808
      Jeremy Reizenstein authored
      Summary:
      There is no need to recalculate normals when scaling a mesh by a constant. We omit doing this for vertex normals. This will make things less confusing when we allow user-specified vertex normals.
      
      Face normals also don't need recalculating, but they are calculated at the same time as face areas which do, so it is easiest not to change their behavior here. That is convenient because we are not immediately planning to allow user-specified face normals.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27793476
      
      fbshipit-source-id: 827f1be4bc78bf0391ce3959cce48c4f3ee326fe
      17633808
    • Jeremy Reizenstein's avatar
      PLY color scaling · e9f4e0d0
      Jeremy Reizenstein authored
      Summary: When a PLY file contains colors in byte format, these are now scaled from 0..255 to [0,1], as they should be
      
      Reviewed By: gkioxari
      
      Differential Revision: D27765254
      
      fbshipit-source-id: 526b5f5149d5e8cbffd7412b411be52c935fa4ad
      e9f4e0d0
    • Jeremy Reizenstein's avatar
      PLY TexturesVertex loading · 6c3fe952
      Jeremy Reizenstein authored
      Summary:
      Include TexturesVertex colors when loading and saving Meshes to PLY files.
      
      A couple of other improvements to the internals of ply_io, including using `None` instead of empty tensors for some missing data.
      
      Reviewed By: gkioxari
      
      Differential Revision: D27765260
      
      fbshipit-source-id: b9857dc777c244b9d7d6643b608596d31435ecda
      6c3fe952
  2. 28 Apr, 2021 1 commit
    • Jeremy Reizenstein's avatar
      use no_grad for sample_pdf in NeRF project · 097b0ef2
      Jeremy Reizenstein authored
      Summary: We don't use gradents of sample_pdf. Here we disable gradient calculation around calling it, instead of calling detach later. There's a theoretical speedup, but mainly this enables using sample_pdf implementations which don't support gradients.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28057284
      
      fbshipit-source-id: 8a9d5e73f18b34e1e4291028008e02973023638d
      097b0ef2
  3. 22 Apr, 2021 3 commits
    • Jeremy Reizenstein's avatar
      fvcore channel priority · 6053d0e4
      Jeremy Reizenstein authored
      Summary: As remarked in #655, we need to specify the fvcore channel before conda-forge, because there is now an fvcore on conda-forge which we don't aim to use. Compare D27589827
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27938996
      
      fbshipit-source-id: 8abf7994a26e0ea9e6a19fb1e246aba7af091ddc
      6053d0e4
    • Jeremy Reizenstein's avatar
      Avoid temporary arrays in _check_density_bounds · b538f107
      Jeremy Reizenstein authored
      Summary: We can check the bounds without using extra memory. This produces a small speedup in NeRF training (like 0.5%).
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27859691
      
      fbshipit-source-id: d566420c465f51231f4a57438084c98b73253046
      b538f107
    • Pyre Bot Jr's avatar
      suppress errors in `vision/fair/pytorch3d` · 04d318d8
      Pyre Bot Jr authored
      Differential Revision: D27934268
      
      fbshipit-source-id: 51185fa493451012a9b2fd37379897d60596f73b
      04d318d8
  4. 20 Apr, 2021 1 commit
  5. 17 Apr, 2021 1 commit
    • Wanchao Liang's avatar
      Remove some pyre fixmes · 8660db98
      Wanchao Liang authored
      Reviewed By: divchenko
      
      Differential Revision: D27835360
      
      fbshipit-source-id: cbb23793ee57382e43bd65bd40cfeb2820c6eec2
      8660db98
  6. 14 Apr, 2021 3 commits
  7. 13 Apr, 2021 1 commit
    • Jeremy Reizenstein's avatar
      lint fixes · c18ee9d4
      Jeremy Reizenstein authored
      Summary: Lint after recent changes.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27682328
      
      fbshipit-source-id: 285d159010d886e4e97902995adbdff875fd3c19
      c18ee9d4
  8. 09 Apr, 2021 4 commits
    • Jeremy Reizenstein's avatar
      spelling · 124bb5e3
      Jeremy Reizenstein authored
      Summary: Collection of spelling things, mostly in docs / tutorials.
      
      Reviewed By: gkioxari
      
      Differential Revision: D26101323
      
      fbshipit-source-id: 652f62bc9d71a4ff872efa21141225e43191353a
      124bb5e3
    • Rong Rong (AI Infra)'s avatar
      Allow tests to be run on GPU with remote execution · c2e62a50
      Rong Rong (AI Infra) authored
      Summary: Test path special case
      
      Reviewed By: bottler
      
      Differential Revision: D27566817
      
      fbshipit-source-id: c7b3ac839908c071f1378a37b7013b91ca4e8b18
      c2e62a50
    • Rong Rong (AI Infra)'s avatar
      Get rid of duplicate test data directory initialization · dd834392
      Rong Rong (AI Infra) authored
      Summary: Simplify finding the data directories in the tests.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27634293
      
      fbshipit-source-id: dc308a7c86c41e6fae56a2ab58187c9f0335b575
      dd834392
    • Rong Rong (AI Infra)'s avatar
      Extract finding directories for test data · 1216b576
      Rong Rong (AI Infra) authored
      Summary: Make common functions for finding directories where test data is found, instead of lots of tests using their own `__file__`  while trying to get ./tests/data and the tutorials data.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27633701
      
      fbshipit-source-id: 1467bb6018cea16eba3cab097d713116d51071e9
      1216b576
  9. 08 Apr, 2021 2 commits
    • Jeremy Reizenstein's avatar
      Fix flake exceptions · 24ee2790
      Jeremy Reizenstein authored
      Summary: flake8 no longer respects the black fmt:off message, so include specific line-length exclusion.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27624641
      
      fbshipit-source-id: adcdb6f55b382fbf252eede3f3ddeda0621da883
      24ee2790
    • David Novotny's avatar
      Implicit function docfix · 7c0d3071
      David Novotny authored
      Summary: Fixes implicit function doc.
      
      Reviewed By: theschnitz, nikhilaravi
      
      Differential Revision: D26870946
      
      fbshipit-source-id: 5d03ebbc284153c41b9d6695b28c8b4e11bc0a5c
      7c0d3071
  10. 23 Mar, 2021 1 commit
    • Jeremy Reizenstein's avatar
      CI fixes · cc08c6b2
      Jeremy Reizenstein authored
      Summary:
      Update `main` build to latest CircleCI image - Ubuntu 2020.04.
      
      Avoid torch.logical_or and logical_and for PyTorch 1.4 compatibility.
      
      Also speed up the test run with Pytorch 1.4.0 (which has no ninja) by not setting NVCC_FLAGS for it.
      
      Reviewed By: theschnitz
      
      Differential Revision: D27262327
      
      fbshipit-source-id: ddc359d134b1dc755f8b20bd3f33bb080cb3a0e1
      cc08c6b2
  11. 17 Mar, 2021 2 commits
    • Jeremy Reizenstein's avatar
      Remove _read_image from densepose example · 6c4151a8
      Jeremy Reizenstein authored
      Summary:
      As noted in #601, the example notebook was using an internal function _read_image from PyTorch3D, which has changed signature recently. It is not meant to be used externally. Switch to using PIL directly.
      
      Other changes: (1) removed unused skimage import. (2) some small tidyups. We now don't have places where cells modify values set by other cells. (3) removed bad calls to `plt.grid` which have no effect.
      
      Reviewed By: theschnitz, nikhilaravi
      
      Differential Revision: D27080372
      
      fbshipit-source-id: 2fce651b3e5d7a4619f0a2b298c5db18c8fa1e2c
      6c4151a8
    • Jeremy Reizenstein's avatar
      Tidy comments around imports · 8e1bcd55
      Jeremy Reizenstein authored
      Summary: Make black and isort stop disagreeing by removing some unneeded comments around import statements. pyre ignores are moved.
      
      Reviewed By: theschnitz
      
      Differential Revision: D27118137
      
      fbshipit-source-id: 9926d0f21142adcf9b5cfe1d394754317f6386df
      8e1bcd55
  12. 16 Mar, 2021 1 commit
    • Jeremy Reizenstein's avatar
      Plotly subsampling fix · 1b6182ba
      Jeremy Reizenstein authored
      Summary: When viewing two or more pointclouds in a single plot, we should be subsampling each one separately rather than subsampling their union.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27010770
      
      fbshipit-source-id: 3c7e04a6049edd39756047f985d5a82c2601b3a2
      1b6182ba
  13. 11 Mar, 2021 1 commit
    • Jeremy Reizenstein's avatar
      Use old style isfinite · ff9c6612
      Jeremy Reizenstein authored
      Summary: Avoid using the newish member function isfinite. We use torch.isfinite instead for torch 1.4.0 compatibility.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26946672
      
      fbshipit-source-id: 853c3716f40061152f1ea54a39eb60b565de7c2c
      ff9c6612
  14. 26 Feb, 2021 1 commit
    • Nikhila Ravi's avatar
      pulsar image size bug fix · 4bb3fff5
      Nikhila Ravi authored
      Summary: Small change to swap how height/width are inferred from the image_size setting.
      
      Reviewed By: gkioxari
      
      Differential Revision: D26648340
      
      fbshipit-source-id: 2c657a115c96cadf3ac63be87b0e1bfba10c9315
      4bb3fff5
  15. 25 Feb, 2021 1 commit
  16. 24 Feb, 2021 1 commit
    • Nikhila Ravi's avatar
      Bug fix for case where aspect ratio is a float · 13429640
      Nikhila Ravi authored
      Summary:
      - Fix the calculation of the non square NDC range when the H and W are not integer multiples.
      - Add test for this case
      
      Reviewed By: gkioxari
      
      Differential Revision: D26613213
      
      fbshipit-source-id: df6763cac602e9f1d516b41b432c4d2cfbaa356d
      13429640
  17. 12 Feb, 2021 1 commit
  18. 11 Feb, 2021 3 commits
    • Jeremy Reizenstein's avatar
      mesh_normal_consistency speedup · 4bfe7158
      Jeremy Reizenstein authored
      Summary: One step in finding all the pairs of vertices which share faces is a simple calculation but annoying to parallelize. It was implemented in pure Python. We move it to C++. We still pull the data to the CPU and put the answer back on the device.
      
      Reviewed By: nikhilaravi, gkioxari
      
      Differential Revision: D26073475
      
      fbshipit-source-id: ffbf4e2c347a511ab5084bceff600465812b6a52
      4bfe7158
    • Jeremy Reizenstein's avatar
      test & compilation fixes · 5ac2f421
      Jeremy Reizenstein authored
      Summary:
      Fixes mostly related to the "main" build on circleci.
      -Avoid error to do with tuple copy from initializer_list which is `explicit` on old compiler.
      -Add better reporting to copyright test.
      -Move to PackedTensorAccessor64 from the deprecated PackedTensorAccessor
      -Avoid some warnings about mismatched comparisons.
      
      The "main" build is the only one that runs the test_build stuff. In that area
      -Fix my bad copyright fix D26275931 (https://github.com/facebookresearch/pytorch3d/commit/3463f418b8a3e3c3e6b6a20007b38eb71938ec7f) / 965c9c
      -Add test that all tutorials are valid json.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26366466
      
      fbshipit-source-id: c4ab8b7e6647987069f7cb7144aa6ab7c24bcdac
      5ac2f421
    • Shubham Goel's avatar
      bugfix in cotcurv laplacian loss. closes #551 (#553) · e13e63a8
      Shubham Goel authored
      Summary: Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/553
      
      Reviewed By: theschnitz
      
      Differential Revision: D26257591
      
      Pulled By: gkioxari
      
      fbshipit-source-id: 899a3f733a77361e8572b0900a34b55764ff08f2
      e13e63a8
  19. 09 Feb, 2021 2 commits
    • Nikhila Ravi's avatar
      update readme for v0.4 · 17468e28
      Nikhila Ravi authored
      Summary: Add link to v0.4 after it has been tagged.
      
      Reviewed By: bottler
      
      Differential Revision: D26286000
      
      fbshipit-source-id: b75893e668a18122c64aa989b6f4d150c99831be
      17468e28
    • Jeremy Reizenstein's avatar
      version number for 0.4.0 · 3c15a6c2
      Jeremy Reizenstein authored
      Summary: Update PyTorch3D version number
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26257778
      
      fbshipit-source-id: 62a37669c51ec56d21f71b5619a1a821ae2a8e98
      3c15a6c2
  20. 08 Feb, 2021 3 commits
    • Nikhila Ravi's avatar
      CUDA/C++ Rasterizer updates to handle clipped faces · 340662e9
      Nikhila Ravi authored
      Summary:
      - Updated the C++/CUDA mesh rasterization kernels to handle the clipped faces. In particular this required careful handling of the distance calculation for faces which are cut into a quadrilateral by the image plane and then split into two sub triangles i.e. both sub triangles can't be part of the top K faces.
      - Updated `rasterize_meshes.py` to use the utils functions to clip the meshes and convert the fragments back to in terms of the unclipped mesh
      - Added end to end tests
      
      Reviewed By: jcjohnson
      
      Differential Revision: D26169685
      
      fbshipit-source-id: d64cd0d656109b965f44a35c301b7c81f451cfa0
      340662e9
    • Nikhila Ravi's avatar
      Updates to cameras and rasterizer to infer camera type correctly · 838b73d3
      Nikhila Ravi authored
      Summary: Small update to the cameras and rasterizer to correctly infer the type of camera (perspective vs orthographic).
      
      Reviewed By: jcjohnson
      
      Differential Revision: D26267225
      
      fbshipit-source-id: a58ed3bc2ab25553d2a4307c734204c1d41b5176
      838b73d3
    • Nikhila Ravi's avatar
      Utils for converting rasterization fragments of clipped meshes back to unclipped · 39f49c22
      Nikhila Ravi authored
      Summary:
      This diff adds utils functions for converting rasterization fragments of the clipped mesh into fragments expressed in terms of the original unclipped mesh.
      
      The face indices and barycentric coordinates are converted in this step. The pixel to triangle distances are handled in the rasterizer which is updated in the next diff in the stack.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D26169539
      
      fbshipit-source-id: ba451d3facd60ef88a8ffaf25fd04ca07b449ceb
      39f49c22
  21. 06 Feb, 2021 1 commit
    • Nikhila Ravi's avatar
      Utils for clipping mesh faces partially behind the image plane · 23279c5f
      Nikhila Ravi authored
      Summary:
      Instead of culling faces behind the camera, partially clip them if they intersect with the image plane.
      
      This diff implements the utils functions for clipping.
      
      There are 4 cases for the mesh faces which are all handled:
      
      ```
      Case 1: the triangle is completely in front of the clipping plane (it is left
              unchanged)
      Case 2: the triangle is completely behind the clipping plane (it is culled)
      Case 3: the triangle has exactly two vertices behind the clipping plane (it is
              clipped into a smaller triangle)
      Case 4: the triangle has exactly one vertex behind the clipping plane (it is clipped
              into a smaller quadrilateral and divided into two triangular faces)
      ```
      
      Reviewed By: jcjohnson
      
      Differential Revision: D23108673
      
      fbshipit-source-id: 550a8b6a982d06065dff10aba10d47e8b144ae52
      23279c5f
  22. 05 Feb, 2021 3 commits
    • Jeremy Reizenstein's avatar
      update notebooks for s3 wheels · db6fbfad
      Jeremy Reizenstein authored
      Summary: Prepare the tutorial notebooks to use wheels from S3 when run on colab.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26226932
      
      fbshipit-source-id: 1f9366c3fb4ba195333a5d5dfa3f6876ea934508
      db6fbfad
    • Jeremy Reizenstein's avatar
      Build wheels for s3 · e0753f0b
      Jeremy Reizenstein authored
      Summary: For Linux, instead of uploading wheels to PyPI which will only work with one particular version of PyTorch and CUDA, from the next release we will store a range of built wheels on S3.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26209398
      
      fbshipit-source-id: 945a6907b78807e1eedb25007f87f90bbf59f80e
      e0753f0b
    • Jeremy Reizenstein's avatar
      Missing copyright · 3463f418
      Jeremy Reizenstein authored
      Summary: Fix missing copyright header in __init__.py file.
      
      Reviewed By: davnov134
      
      Differential Revision: D26275931
      
      fbshipit-source-id: 965c9cf17383aa27d35d549754ebd99ae7c25f47
      3463f418