1. 16 Aug, 2021 1 commit
    • Jeremy Reizenstein's avatar
      rename master branch to main · b0dd0c88
      Jeremy Reizenstein authored
      Summary: Change doc references to master branch to its new name main.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30303018
      
      fbshipit-source-id: cfdbb207dfe3366de7e0ca759ed56f4b8dd894d1
      b0dd0c88
  2. 02 Aug, 2021 1 commit
    • Georgia Gkioxari's avatar
      NDC/screen cameras API fix, compatibility with renderer · 0c32f094
      Georgia Gkioxari authored
      Summary:
      API fix for NDC/screen cameras and compatibility with PyTorch3D renderers.
      
      With this new fix:
      * Users can define cameras and `transform_points` under any coordinate system conventions. The transformation applies the camera K and RT to the input points, not regarding for PyTorch3D conventions. So this makes cameras completely independent from PyTorch3D renderer.
      
      * Cameras can be defined either in NDC space or screen space. For existing ones, FoV cameras are in NDC space. Perspective/Orthographic can be defined in NDC or screen space.
      
      * The interface with PyTorch3D renderers happens through `transform_points_ndc` which transforms points to the NDC space and assumes that input points are provided according to PyTorch3D conventions.
      
      * Similarly, `transform_points_screen` transforms points to screen space and again assumes that input points are under PyTorch3D conventions.
      
      * For Orthographic/Perspective cameras, if they are defined in screen space, the `get_ndc_camera_transform` allows points to be converted to NDC for use for the renderers.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26932657
      
      fbshipit-source-id: 1a964e3e7caa54d10c792cf39c4d527ba2fb2e79
      0c32f094
  3. 22 Jun, 2021 1 commit
    • Patrick Labatut's avatar
      Lint codebase · 7e43f29d
      Patrick Labatut authored
      Summary: Lint codebase
      
      Reviewed By: bottler
      
      Differential Revision: D29263057
      
      fbshipit-source-id: ac97f01d2a79fead3b09c2cbb21b50ce688a577d
      7e43f29d
  4. 26 May, 2021 1 commit
    • Jeremy Reizenstein's avatar
      Experimental glTF reading · ed6983ea
      Jeremy Reizenstein authored
      Summary: Experimental data loader for taking the default scene from a GLB file and converting it to a single mesh in PyTorch3D.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25900167
      
      fbshipit-source-id: bff22ac00298b83a0bd071ae5c8923561e1d81d7
      ed6983ea
  5. 09 Apr, 2021 1 commit
    • 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
  6. 07 Jan, 2021 1 commit
    • Jeremy Reizenstein's avatar
      skeleton of pluggable IO · b183dcb6
      Jeremy Reizenstein authored
      Summary: Unified interface for loading and saving meshes and pointclouds.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25372968
      
      fbshipit-source-id: 6fe57cc3704a89d81d13e959bee707b0c7b57d3b
      b183dcb6
  7. 17 Dec, 2020 1 commit
    • Nikhila Ravi's avatar
      Texture Atlas sampling bug fix · 01759d8f
      Nikhila Ravi authored
      Summary: Fixes the index out of bound errors for texture sampling from a texture atlas: when barycentric coordinates are 1.0, the integer index into the (R, R) per face texture map is R (max can only be R-1).
      
      Reviewed By: gkioxari
      
      Differential Revision: D25543803
      
      fbshipit-source-id: 82d0935b981352b49c1d95d5a17f9cc88bad0a82
      01759d8f
  8. 09 Dec, 2020 1 commit
    • Nikhila Ravi's avatar
      Non square image rasterization for meshes · d07307a4
      Nikhila Ravi authored
      Summary:
      There are a couple of options for supporting non square images:
      1) NDC stays at [-1, 1] in both directions with the distance calculations all modified by (W/H). There are a lot of distance based calculations (e.g. triangle areas for barycentric coordinates etc) so this requires changes in many places.
      2) NDC is scaled by (W/H) so the smallest side has [-1, 1]. In this case none of the distance calculations need to be updated and only the pixel to NDC calculation needs to be modified.
      
      I decided to go with option 2 after trying option 1!
      
      API Changes:
      - Image size can now be specified optionally as a tuple
      
      TODO:
      - add a benchmark test for the non square case.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D24404975
      
      fbshipit-source-id: 545efb67c822d748ec35999b35762bce58db2cf4
      d07307a4
  9. 03 Nov, 2020 1 commit
    • Christoph Lassner's avatar
      examples and docs. · 039e0260
      Christoph Lassner authored
      Summary: This diff updates the documentation and tutorials with information about the new pulsar backend. For more information about the pulsar backend, see the release notes and the paper (https://arxiv.org/abs/2004.07484). For information on how to use the backend, see the point cloud rendering notebook and the examples in the folder docs/examples.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24498129
      
      fbshipit-source-id: e312b0169a72b13590df6e4db36bfe6190d742f9
      039e0260
  10. 22 Oct, 2020 1 commit
  11. 12 Oct, 2020 1 commit
  12. 06 Oct, 2020 1 commit
    • Amitav Baruah's avatar
      Rename visualization to vis · 5d65a0cf
      Amitav Baruah authored
      Summary: Importing from pytorch3d.visualization is wordy, so shortened the path to the vis module and updated the relevant imports.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24116527
      
      fbshipit-source-id: e0e4da7d48c5afedec07482d7be43362b6822445
      5d65a0cf
  13. 01 Oct, 2020 1 commit
    • Amitav Baruah's avatar
      Add note explaining plotly visualizations · 5c9485c7
      Amitav Baruah authored
      Summary: Add markdown note explaining why PyTorch3D has plotly visualizations, examples, and how to save these visualizations as an image.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23976283
      
      fbshipit-source-id: cbbaffd1f0ebe3466841e42fdb454d85773152cd
      5c9485c7
  14. 26 Aug, 2020 1 commit
    • Nikhila Ravi's avatar
      small website updates · c25fd836
      Nikhila Ravi authored
      Summary: Small fixes to website rendering
      
      Reviewed By: jcjohnson
      
      Differential Revision: D23281746
      
      fbshipit-source-id: c9dc8edd5e52f39d4e0e19f10ecc7e035b39feda
      c25fd836
  15. 22 Aug, 2020 1 commit
  16. 21 Aug, 2020 2 commits
    • 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
    • Anton Troynikov's avatar
      Fix 404 link in Renderer Doc (#330) · 370f1c38
      Anton Troynikov authored
      Summary:
      Because of the way Sphinx was parsing this link in Markdown, the link wasn't working properly. This should fix it.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/330
      
      Test Plan: Tested via local Sphinx.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23244163
      
      Pulled By: atroyn
      
      fbshipit-source-id: 019712a841d76391a5210dcd98c77a822947204a
      370f1c38
  17. 14 Aug, 2020 1 commit
  18. 10 Jul, 2020 1 commit
    • Georgia Gkioxari's avatar
      remove unused params + cubify note · 3d7dea58
      Georgia Gkioxari authored
      Summary:
      This diff
      * removes the unused compositing params
      * adds a note describing cubify
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22426191
      
      fbshipit-source-id: e8aa32040bb594e1dfd7d6d98e29264feefcec7c
      3d7dea58
  19. 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
  20. 17 Mar, 2020 1 commit
    • 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
  21. 12 Mar, 2020 1 commit
    • 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
  22. 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
  23. 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
  24. 20 Feb, 2020 2 commits
    • 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
  25. 13 Feb, 2020 1 commit
    • 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
  26. 05 Feb, 2020 1 commit
  27. 23 Jan, 2020 1 commit