1. 12 Mar, 2020 5 commits
    • 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
  2. 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
  3. 09 Mar, 2020 1 commit
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 25 Feb, 2020 1 commit
  11. 24 Feb, 2020 4 commits
  12. 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
  13. 20 Feb, 2020 3 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
    • Nikhila Ravi's avatar
      Shader API more consistent naming · f0dc6511
      Nikhila Ravi authored
      Summary:
      Renamed shaders to be prefixed with Hard/Soft depending on if they use a probabalistic blending (Soft) or use the closest face (Hard).
      
      There is some code duplication but I thought it would be cleaner to have separate shaders for each task rather than:
      - inheritance (which we discussed previously that we want to avoid)
      - boolean (hard/soft) or a string (hard/soft) - new blending functions other than the ones provided would need if statements in the current shaders which might get messy.
      
      Also added a `flat_shading` function and a `FlatShader` - I could make this into a tutorial as it was really easy to add a new shader and it might be a nice showcase.
      
      NOTE: There are a few more places where the naming will need to change (e.g the tutorials) but I wanted to reach a consensus on this before changing it everywhere.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D19761036
      
      fbshipit-source-id: f972f6530c7f66dc5550b0284c191abc4a7f6fc4
      f0dc6511
  14. 19 Feb, 2020 3 commits
    • Georgia Gkioxari's avatar
      cpp support for packed to padded · 60f3c4e7
      Georgia Gkioxari authored
      Summary:
      Cpu implementation for packed to padded and added gradients
      ```
      Benchmark                                     Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      PACKED_TO_PADDED_2_100_300_1_cpu                    138             221           3625
      PACKED_TO_PADDED_2_100_300_1_cuda:0                 184             261           2716
      PACKED_TO_PADDED_2_100_300_16_cpu                   555             726            901
      PACKED_TO_PADDED_2_100_300_16_cuda:0                179             260           2794
      PACKED_TO_PADDED_2_100_3000_1_cpu                   396             519           1262
      PACKED_TO_PADDED_2_100_3000_1_cuda:0                181             274           2764
      PACKED_TO_PADDED_2_100_3000_16_cpu                 4517            5003            111
      PACKED_TO_PADDED_2_100_3000_16_cuda:0               224             397           2235
      PACKED_TO_PADDED_2_1000_300_1_cpu                   138             212           3616
      PACKED_TO_PADDED_2_1000_300_1_cuda:0                180             282           2775
      PACKED_TO_PADDED_2_1000_300_16_cpu                  565             711            885
      PACKED_TO_PADDED_2_1000_300_16_cuda:0               179             264           2797
      PACKED_TO_PADDED_2_1000_3000_1_cpu                  389             494           1287
      PACKED_TO_PADDED_2_1000_3000_1_cuda:0               180             271           2777
      PACKED_TO_PADDED_2_1000_3000_16_cpu                4522            5170            111
      PACKED_TO_PADDED_2_1000_3000_16_cuda:0              216             286           2313
      PACKED_TO_PADDED_10_100_300_1_cpu                   251             345           1995
      PACKED_TO_PADDED_10_100_300_1_cuda:0                178             262           2806
      PACKED_TO_PADDED_10_100_300_16_cpu                 2354            2750            213
      PACKED_TO_PADDED_10_100_300_16_cuda:0               178             291           2814
      PACKED_TO_PADDED_10_100_3000_1_cpu                 1519            1786            330
      PACKED_TO_PADDED_10_100_3000_1_cuda:0               179             237           2791
      PACKED_TO_PADDED_10_100_3000_16_cpu               24705           25879             21
      PACKED_TO_PADDED_10_100_3000_16_cuda:0              228             316           2191
      PACKED_TO_PADDED_10_1000_300_1_cpu                  261             432           1919
      PACKED_TO_PADDED_10_1000_300_1_cuda:0               181             261           2756
      PACKED_TO_PADDED_10_1000_300_16_cpu                2349            2770            213
      PACKED_TO_PADDED_10_1000_300_16_cuda:0              180             256           2782
      PACKED_TO_PADDED_10_1000_3000_1_cpu                1613            1929            310
      PACKED_TO_PADDED_10_1000_3000_1_cuda:0              183             253           2739
      PACKED_TO_PADDED_10_1000_3000_16_cpu              22041           23653             23
      PACKED_TO_PADDED_10_1000_3000_16_cuda:0             220             343           2270
      PACKED_TO_PADDED_32_100_300_1_cpu                   555             750            901
      PACKED_TO_PADDED_32_100_300_1_cuda:0                188             282           2661
      PACKED_TO_PADDED_32_100_300_16_cpu                 7550            8131             67
      PACKED_TO_PADDED_32_100_300_16_cuda:0               181             272           2770
      PACKED_TO_PADDED_32_100_3000_1_cpu                 4574            6327            110
      PACKED_TO_PADDED_32_100_3000_1_cuda:0               173             254           2884
      PACKED_TO_PADDED_32_100_3000_16_cpu               70366           72563              8
      PACKED_TO_PADDED_32_100_3000_16_cuda:0              349             654           1433
      PACKED_TO_PADDED_32_1000_300_1_cpu                  612             728            818
      PACKED_TO_PADDED_32_1000_300_1_cuda:0               189             295           2647
      PACKED_TO_PADDED_32_1000_300_16_cpu                7699            8254             65
      PACKED_TO_PADDED_32_1000_300_16_cuda:0              189             311           2646
      PACKED_TO_PADDED_32_1000_3000_1_cpu                5105            5261             98
      PACKED_TO_PADDED_32_1000_3000_1_cuda:0              191             260           2625
      PACKED_TO_PADDED_32_1000_3000_16_cpu              87073           92708              6
      PACKED_TO_PADDED_32_1000_3000_16_cuda:0             344             425           1455
      --------------------------------------------------------------------------------
      
      Benchmark                                           Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      PACKED_TO_PADDED_TORCH_2_100_300_1_cpu                    492             627           1016
      PACKED_TO_PADDED_TORCH_2_100_300_1_cuda:0                 768             975            652
      PACKED_TO_PADDED_TORCH_2_100_300_16_cpu                   659             804            760
      PACKED_TO_PADDED_TORCH_2_100_300_16_cuda:0                781             918            641
      PACKED_TO_PADDED_TORCH_2_100_3000_1_cpu                   624             734            802
      PACKED_TO_PADDED_TORCH_2_100_3000_1_cuda:0                778             929            643
      PACKED_TO_PADDED_TORCH_2_100_3000_16_cpu                 2609            2850            192
      PACKED_TO_PADDED_TORCH_2_100_3000_16_cuda:0               758             901            660
      PACKED_TO_PADDED_TORCH_2_1000_300_1_cpu                   467             612           1072
      PACKED_TO_PADDED_TORCH_2_1000_300_1_cuda:0                772             905            648
      PACKED_TO_PADDED_TORCH_2_1000_300_16_cpu                  689             839            726
      PACKED_TO_PADDED_TORCH_2_1000_300_16_cuda:0               789            1143            635
      PACKED_TO_PADDED_TORCH_2_1000_3000_1_cpu                  629             735            795
      PACKED_TO_PADDED_TORCH_2_1000_3000_1_cuda:0               812             916            616
      PACKED_TO_PADDED_TORCH_2_1000_3000_16_cpu                2716            3117            185
      PACKED_TO_PADDED_TORCH_2_1000_3000_16_cuda:0              844            1288            593
      PACKED_TO_PADDED_TORCH_10_100_300_1_cpu                  2387            2557            210
      PACKED_TO_PADDED_TORCH_10_100_300_1_cuda:0               4112            4993            122
      PACKED_TO_PADDED_TORCH_10_100_300_16_cpu                 3385            4254            148
      PACKED_TO_PADDED_TORCH_10_100_300_16_cuda:0              3959            4902            127
      PACKED_TO_PADDED_TORCH_10_100_3000_1_cpu                 2918            3105            172
      PACKED_TO_PADDED_TORCH_10_100_3000_1_cuda:0              4054            4450            124
      PACKED_TO_PADDED_TORCH_10_100_3000_16_cpu               12748           13623             40
      PACKED_TO_PADDED_TORCH_10_100_3000_16_cuda:0             4023            4395            125
      PACKED_TO_PADDED_TORCH_10_1000_300_1_cpu                 2258            2492            222
      PACKED_TO_PADDED_TORCH_10_1000_300_1_cuda:0              3997            4312            126
      PACKED_TO_PADDED_TORCH_10_1000_300_16_cpu                3404            3597            147
      PACKED_TO_PADDED_TORCH_10_1000_300_16_cuda:0             3877            4227            129
      PACKED_TO_PADDED_TORCH_10_1000_3000_1_cpu                2789            3054            180
      PACKED_TO_PADDED_TORCH_10_1000_3000_1_cuda:0             3821            4402            131
      PACKED_TO_PADDED_TORCH_10_1000_3000_16_cpu              11967           12963             42
      PACKED_TO_PADDED_TORCH_10_1000_3000_16_cuda:0            3729            4290            135
      PACKED_TO_PADDED_TORCH_32_100_300_1_cpu                  6933            8152             73
      PACKED_TO_PADDED_TORCH_32_100_300_1_cuda:0              11856           12287             43
      PACKED_TO_PADDED_TORCH_32_100_300_16_cpu                 9895           11205             51
      PACKED_TO_PADDED_TORCH_32_100_300_16_cuda:0             12354           13596             41
      PACKED_TO_PADDED_TORCH_32_100_3000_1_cpu                 9516           10128             53
      PACKED_TO_PADDED_TORCH_32_100_3000_1_cuda:0             12917           13597             39
      PACKED_TO_PADDED_TORCH_32_100_3000_16_cpu               41209           43783             13
      PACKED_TO_PADDED_TORCH_32_100_3000_16_cuda:0            12210           13288             41
      PACKED_TO_PADDED_TORCH_32_1000_300_1_cpu                 7179            7689             70
      PACKED_TO_PADDED_TORCH_32_1000_300_1_cuda:0             11896           12381             43
      PACKED_TO_PADDED_TORCH_32_1000_300_16_cpu               10127           15494             50
      PACKED_TO_PADDED_TORCH_32_1000_300_16_cuda:0            12034           12817             42
      PACKED_TO_PADDED_TORCH_32_1000_3000_1_cpu                8743           10251             58
      PACKED_TO_PADDED_TORCH_32_1000_3000_1_cuda:0            12023           12908             42
      PACKED_TO_PADDED_TORCH_32_1000_3000_16_cpu              39071           41777             13
      PACKED_TO_PADDED_TORCH_32_1000_3000_16_cuda:0           11999           13690             42
      --------------------------------------------------------------------------------
      ```
      
      Reviewed By: bottler, nikhilaravi, jcjohnson
      
      Differential Revision: D19870575
      
      fbshipit-source-id: 23a2477b73373c411899633386c87ab034c3702a
      60f3c4e7
    • Nikhila Ravi's avatar
      transforms 3d convention fix · 8301163d
      Nikhila Ravi authored
      Summary: Fixed the rotation matrices generated by the RotateAxisAngle class and updated the tests. Added documentation for Transforms3d to clarify the conventions.
      
      Reviewed By: gkioxari
      
      Differential Revision: D19912903
      
      fbshipit-source-id: c64926ce4e1381b145811557c32b73663d6d92d1
      8301163d
    • Jeremy Reizenstein's avatar
      MACOSX_DEPLOYMENT_TARGET=10.14 · bdc2bb57
      Jeremy Reizenstein authored
      Summary:
      pybind now seems to need C++17 on a mac, so advise people to use it. (Also delete an unused variable to silence a warning I got on a mac build.)
      
      Reported in github issue #68.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D19970512
      
      fbshipit-source-id: f9be20c8ed425bd6ba8d009a7d62dad658dccdb1
      bdc2bb57
  15. 18 Feb, 2020 2 commits
  16. 14 Feb, 2020 1 commit
    • Nikhila Ravi's avatar
      lint fixes · 97acf16d
      Nikhila Ravi authored
      Summary: Ran `dev/linter.sh`.
      
      Reviewed By: bottler
      
      Differential Revision: D19761062
      
      fbshipit-source-id: 1a49abe4a5f2bc7641b2b46e254aa77e6a48aa7d
      97acf16d
  17. 13 Feb, 2020 2 commits
    • Georgia Gkioxari's avatar
      CPU implem for face areas normals · 29cd181a
      Georgia Gkioxari authored
      Summary:
      Added cpu implementation for face areas normals. Moved test and bm to separate functions.
      
      ```
      Benchmark                                   Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      FACE_AREAS_NORMALS_2_100_300_False                196             268           2550
      FACE_AREAS_NORMALS_2_100_300_True                 106             179           4733
      FACE_AREAS_NORMALS_2_100_3000_False              1447            1630            346
      FACE_AREAS_NORMALS_2_100_3000_True                107             178           4674
      FACE_AREAS_NORMALS_2_1000_300_False               201             309           2486
      FACE_AREAS_NORMALS_2_1000_300_True                107             186           4673
      FACE_AREAS_NORMALS_2_1000_3000_False             1451            1636            345
      FACE_AREAS_NORMALS_2_1000_3000_True               107             186           4655
      FACE_AREAS_NORMALS_10_100_300_False               767             918            653
      FACE_AREAS_NORMALS_10_100_300_True                106             167           4712
      FACE_AREAS_NORMALS_10_100_3000_False             7036            7754             72
      FACE_AREAS_NORMALS_10_100_3000_True               113             164           4445
      FACE_AREAS_NORMALS_10_1000_300_False              748             947            669
      FACE_AREAS_NORMALS_10_1000_300_True               108             169           4638
      FACE_AREAS_NORMALS_10_1000_3000_False            7069            7783             71
      FACE_AREAS_NORMALS_10_1000_3000_True              108             172           4646
      FACE_AREAS_NORMALS_32_100_300_False              2286            2496            219
      FACE_AREAS_NORMALS_32_100_300_True                108             180           4631
      FACE_AREAS_NORMALS_32_100_3000_False            23184           24369             22
      FACE_AREAS_NORMALS_32_100_3000_True               159             213           3147
      FACE_AREAS_NORMALS_32_1000_300_False             2414            2645            208
      FACE_AREAS_NORMALS_32_1000_300_True               112             197           4480
      FACE_AREAS_NORMALS_32_1000_3000_False           21687           22964             24
      FACE_AREAS_NORMALS_32_1000_3000_True              141             211           3540
      --------------------------------------------------------------------------------
      
      Benchmark                                         Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      FACE_AREAS_NORMALS_TORCH_2_100_300_False               5465            5782             92
      FACE_AREAS_NORMALS_TORCH_2_100_300_True                1198            1351            418
      FACE_AREAS_NORMALS_TORCH_2_100_3000_False             48228           48869             11
      FACE_AREAS_NORMALS_TORCH_2_100_3000_True               1186            1304            422
      FACE_AREAS_NORMALS_TORCH_2_1000_300_False              5556            6097             90
      FACE_AREAS_NORMALS_TORCH_2_1000_300_True               1200            1328            417
      FACE_AREAS_NORMALS_TORCH_2_1000_3000_False            48683           50016             11
      FACE_AREAS_NORMALS_TORCH_2_1000_3000_True              1185            1306            422
      FACE_AREAS_NORMALS_TORCH_10_100_300_False             24215           25097             21
      FACE_AREAS_NORMALS_TORCH_10_100_300_True               1150            1314            435
      FACE_AREAS_NORMALS_TORCH_10_100_3000_False           232605          234952              3
      FACE_AREAS_NORMALS_TORCH_10_100_3000_True              1193            1314            420
      FACE_AREAS_NORMALS_TORCH_10_1000_300_False            24912           25343             21
      FACE_AREAS_NORMALS_TORCH_10_1000_300_True              1216            1330            412
      FACE_AREAS_NORMALS_TORCH_10_1000_3000_False          239907          241253              3
      FACE_AREAS_NORMALS_TORCH_10_1000_3000_True             1226            1333            408
      FACE_AREAS_NORMALS_TORCH_32_100_300_False             73991           75776              7
      FACE_AREAS_NORMALS_TORCH_32_100_300_True               1193            1339            420
      FACE_AREAS_NORMALS_TORCH_32_100_3000_False           728932          728932              1
      FACE_AREAS_NORMALS_TORCH_32_100_3000_True              1186            1359            422
      FACE_AREAS_NORMALS_TORCH_32_1000_300_False            76385           79129              7
      FACE_AREAS_NORMALS_TORCH_32_1000_300_True              1165            1310            430
      FACE_AREAS_NORMALS_TORCH_32_1000_3000_False          753276          753276              1
      FACE_AREAS_NORMALS_TORCH_32_1000_3000_True             1205            1340            415
      --------------------------------------------------------------------------------
      ```
      
      Reviewed By: bottler, jcjohnson
      
      Differential Revision: D19864385
      
      fbshipit-source-id: 3a87ae41a8e3ab5560febcb94961798f2e09dfb8
      29cd181a
    • Jeremy Reizenstein's avatar
      Single function to load meshes from OBJs. join_meshes. · 8fe65d5f
      Jeremy Reizenstein authored
      Summary:
      Create the textures and the Meshes object from OBJ files in a single call.
      
      There is functionality in OBJ files (like normals) which is ignored by this function.
      
      Reviewed By: gkioxari
      
      Differential Revision: D19691699
      
      fbshipit-source-id: e26442ed80ff231b65b17d6c54c9d41e22b4e4a3
      8fe65d5f
  18. 11 Feb, 2020 2 commits
    • Jeremy Reizenstein's avatar
      remove print statements · 23bb2795
      Jeremy Reizenstein authored
      Reviewed By: gkioxari
      
      Differential Revision: D19834684
      
      fbshipit-source-id: 553dbf84d1062149b4915d313fc0f96eb047798c
      23bb2795
    • Nikhila Ravi's avatar
      Update tutorials for Google Colab · 09992a38
      Nikhila Ravi authored
      Summary:
      Update all colab notebooks to:
      - Install pytorch3d using pip install from github.
      - Retrieve data using `wget`. I set the wget commands to save the files in the same directory structure as in the PyTorch3d repo so that the rest of the tutorial would work for running locally or on Colab.
      
      This should resolve the issues on GitHub with running the colab notebooks.
      
      Reviewed By: gkioxari
      
      Differential Revision: D19827450
      
      fbshipit-source-id: d7b338597ddfd9a84c24592d4dccd274cae11d05
      09992a38
  19. 10 Feb, 2020 1 commit
  20. 08 Feb, 2020 2 commits
    • Nikhila Ravi's avatar
      ignore cuda for cpu only installation · dcb09480
      Nikhila Ravi authored
      Summary:
      Added if `WITH_CUDA` checks for points/mesh rasterization. If installing on cpu only then this causes `Undefined symbol` errors when trying to import pytorch3d.
      
      We had these checks for all the other cuda files but not the rasterization files.
      
      Thanks ppwwyyxx for the tip!
      
      Reviewed By: ppwwyyxx, gkioxari
      
      Differential Revision: D19801495
      
      fbshipit-source-id: 20e7adccfdb33ac731c00a89414b2beaf0a35529
      dcb09480
    • Yannick Soom's avatar
      small typo in deform_source_mesh_to_target_mesh.ipynb (#24) · ca588a59
      Yannick Soom authored
      Summary:
      fixed small typo in deform_source_mesh_to_target_mesh.ipynb
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/24
      
      Differential Revision: D19801629
      
      Pulled By: nikhilaravi
      
      fbshipit-source-id: 59459f701e0a4c02e749a1b594ca77935fd037d1
      ca588a59
  21. 07 Feb, 2020 2 commits