1. 21 Oct, 2020 3 commits
    • Amitav Baruah's avatar
      Update tutorials to reflect plotly refactor · 3d1863ce
      Amitav Baruah authored
      Summary: Change the two affected tutorials to use plot_scene and plot_batch_individually.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24235480
      
      fbshipit-source-id: ca9d73bfb7ccf733efaf16299c15927406d7f2aa
      3d1863ce
    • Amitav Baruah's avatar
      Add wrapper function to plot batches · bf7aca32
      Amitav Baruah authored
      Summary:
      - adds plot_batch_individually
      - for each batched object, plots each object in its own subplot with other same-indexed elements of the other batched objects provided as input
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24258389
      
      fbshipit-source-id: a80128e6e7a03a44c257b0598569159afadb2d39
      bf7aca32
    • Amitav Baruah's avatar
      Refactor plot_meshes and plot_pointclouds to one generalizable API, plot_scene · 964893cd
      Amitav Baruah authored
      Summary: Defines a function plot_scene that takes in a dictionary defining subplot and trace layouts for Mesh/Pointcloud objects and plots them. Also supports other plotly axis arguments and mesh lighting. Plot_batch_individually is a wrapper function that takes in one or multiple batched Meshes/Pointclouds and uses plot_scene to plot each element within a batch in an individual subplot, possibly sharing that subplot with traces of other individual elements of the other batched structures passed in.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24235479
      
      fbshipit-source-id: 9f669f1b186d55fe5c75552083316c0cf1387472
      964893cd
  2. 20 Oct, 2020 2 commits
    • Jeremy Reizenstein's avatar
      Reshape for faces_packed_to_edges_packed · abd39031
      Jeremy Reizenstein authored
      Summary:
      As pointed out in #328, we had an indexing operation where a reshape would do and be faster. The resulting faces_packed_to_edges_packed is no longer contiguous.
      
      Also fix a use of faces_packed_to_edges_packed which might modify the object unintentionally.
      
      Reviewed By: theschnitz
      
      Differential Revision: D24390292
      
      fbshipit-source-id: 225677d8fcc1d6b76efad7706718ecdb5182ffe1
      abd39031
    • Nikhila Ravi's avatar
      Add images for new tutorials · 4cfac7c7
      Nikhila Ravi authored
      Summary: Added images for four tutorials to add to the README.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24411993
      
      fbshipit-source-id: 5f0b2256efb156b5956013c26b8ddb1631bd1c46
      4cfac7c7
  3. 18 Oct, 2020 1 commit
    • Jeremy Reizenstein's avatar
      linter comment strictnesss · 30e4e891
      Jeremy Reizenstein authored
      Summary: The linter has become stricter about the indenting of comments and docstrings. This was accompanied by a codemod. In a few places we can fix the problem nicer than the codemod has.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24363880
      
      fbshipit-source-id: 4cff3bbe3d2a834bc92a490469a2b24fa376e6ab
      30e4e891
  4. 16 Oct, 2020 1 commit
  5. 15 Oct, 2020 2 commits
    • Jeremy Reizenstein's avatar
      matrix_to_quaternion corner case · 4d52f9fb
      Jeremy Reizenstein authored
      Summary: Issue #119. The function `sqrt(max(x, 0))` is not convex and has infinite gradient at 0, but 0 is a subgradient at 0. Here we implement it in such a way as to give 0 as the gradient.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24306294
      
      fbshipit-source-id: 48d136faca083babad4d64970be7ea522dbe9e09
      4d52f9fb
    • John Reese's avatar
      apply black 20.8b1 formatting update · 2d397236
      John Reese authored
      Summary:
      allow-large-files
      
      black_any_style
      
      Reviewed By: zertosh
      
      Differential Revision: D24325133
      
      fbshipit-source-id: b4afe80d1e8b2bc993f4b8e3822c02964df47462
      2d397236
  6. 12 Oct, 2020 2 commits
  7. 07 Oct, 2020 1 commit
    • Nikhila Ravi's avatar
      Fix texture atlas for objs which only have material properties · f5383a7e
      Nikhila Ravi authored
      Summary:
      Fix for GitHub issue #381.
      
      The example mesh provided in the issue only had material properties but no texture image. The current implementation of texture atlassing generated an atlas using both the material properties and the texture image but only worked if there was a texture image and associated vertex uv coordinates. I have now modified the texture atlas creation so that it doesn't require an image and can work with materials which only have material properties.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24153068
      
      fbshipit-source-id: 63e9d325db09a84b336b83369d5342ce588a9932
      f5383a7e
  8. 06 Oct, 2020 3 commits
    • 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
    • Georgia Gkioxari's avatar
      add texture vertex sampling functionality to textures · e651a429
      Georgia Gkioxari authored
      Summary: Enhance every texture type with `faces_verts_textures_packed` that allows users to query the texture of each vertex in mesh
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24058778
      
      fbshipit-source-id: 19d0e3a244fa96aae462c47bf52e07dfd3b7c6f0
      e651a429
    • Georgia Gkioxari's avatar
      extend sample_points_from_meshes with texture · 327bd2b9
      Georgia Gkioxari authored
      Summary:
      Enhanced `sample_points_from_meshes` with texture sampling
      
      * This new feature is used to return textures corresponding to the sampled points in `sample_points_from_meshes`
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24031525
      
      fbshipit-source-id: 8e5d8f784cc38aa391aa8e84e54423bd9fad7ad1
      327bd2b9
  9. 01 Oct, 2020 5 commits
    • 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
    • Amitav Baruah's avatar
      Add plotly visualization examples · a03fd732
      Amitav Baruah authored
      Summary: Add examples of using the Plotly visualization functions to the corresponding tutorial notebooks.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23879109
      
      fbshipit-source-id: ea8c45aa6c828eb2f6ea2ae1c8846adc486f92e0
      a03fd732
    • Amitav Baruah's avatar
      Plotly figure for visualizing pointclouds · 8f1e9e1f
      Amitav Baruah authored
      Summary:
      Visualize a pointcloud in plotly.
      - customize lighting and light position
      - customizable axis arguments
      - customizable height and width of plotly figure
      - render batches in subplots or the same plot
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23872391
      
      fbshipit-source-id: 9b1e1fd417500521be9d0eb85d71c77a538fa77c
      8f1e9e1f
    • Amitav Baruah's avatar
      plotly figure for visualizing a mesh · 8b631035
      Amitav Baruah authored
      Summary:
      Visualize a mesh in a plotly figure.
      - customize lighting and light position
      - customizable axis arguments (x, y, z)
      - customizable height and width of plotly figure
      - render batches of meshes in subplots or in a singular plot
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22611960
      
      fbshipit-source-id: 5dc5c55e599d5b0d9c38f22e156c662654099e11
      8b631035
    • Patrick Labatut's avatar
      Fix a few linting warnings · 8219a52c
      Patrick Labatut authored
      Summary: Fix a few linting warnings
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20720810
      
      fbshipit-source-id: c5b6a25fdd7971cc8743b54bbe162464a874071d
      8219a52c
  10. 29 Sep, 2020 1 commit
  11. 28 Sep, 2020 1 commit
  12. 24 Sep, 2020 2 commits
    • Nikhila Ravi's avatar
      fix docs for FOVPerspectiveCamera · e5ac38aa
      Nikhila Ravi authored
      Summary: Small documentation fix for FOVPerspectiveCamera. The error pointed out in the GitHub issue was due to the docs referring to the OpenGL z parameterization from [-1, 1] whereas we use the [0, 1] range.
      
      Reviewed By: gkioxari
      
      Differential Revision: D23857312
      
      fbshipit-source-id: 2d20677ec614c935e76f67e100a41a23df708d59
      e5ac38aa
    • Nikhila Ravi's avatar
      Support for moving the renderer to a new device · 956d3a01
      Nikhila Ravi authored
      Summary:
      Support for moving all the tensors of the renderer to another device by calling `renderer.to(new_device)`
      
      Currently the `MeshRenderer`, `MeshRasterizer` and `SoftPhongShader` (and other shaders) are all of type `nn.Module` which already supports easily moving tensors of submodules (defined as class attributes) to a different device. However the class attributes of the rasterizer and shader (e.g. cameras, lights, materials), are of type `TensorProperties`, not nn.Module so we need to explicity create a `to` method to move these tensors to device. Note that the `TensorProperties` class already has a `to` method so we only need to call `cameras.to(device)` and don't need to worry about the internal tensors.
      
      The other option is of course making these other classes (cameras, lights etc) also of type nn.Module.
      
      Reviewed By: gkioxari
      
      Differential Revision: D23885107
      
      fbshipit-source-id: d71565c442181f739de4d797076ed5d00fb67f8e
      956d3a01
  13. 23 Sep, 2020 3 commits
    • andrijazz's avatar
      resouces filenames with spaces (#358) · b1eee579
      andrijazz authored
      Summary:
      I'm constantly encountering 3D models with resources that have spaces in their filenames (especially on Windows) and therefore they can't be loaded in pytorch3d. Let me know what you think.
      
      Thanks
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/358
      
      Reviewed By: bottler
      
      Differential Revision: D23798492
      
      Pulled By: nikhilaravi
      
      fbshipit-source-id: 4d85b7ee05339486d2e5ef53a531f8e6052251c5
      b1eee579
    • Nikhila Ravi's avatar
      Tidy OBJ / MTL parsing · 93d3d8fe
      Nikhila Ravi authored
      Summary: Tidy OBJ / MTL parsing: remove redundant calls to tokenize, factor out parsing and texture loading
      
      Reviewed By: gkioxari
      
      Differential Revision: D20720768
      
      fbshipit-source-id: fb1713106d4ff99a4a9147afcc3da74ae013d8dc
      93d3d8fe
    • Jeremy Reizenstein's avatar
      update xcode CI config to 9.4.1 · f4f29770
      Jeremy Reizenstein authored
      Summary: This addresses #375. Change circleci mac version to 9.4.1 just like torchvision did in https://github.com/pytorch/vision/issues/2629 .
      
      Reviewed By: gkioxari
      
      Differential Revision: D23866112
      
      fbshipit-source-id: c5019618bcb7da8f950123fee201beaad55fecab
      f4f29770
  14. 21 Sep, 2020 3 commits
    • Amitav Baruah's avatar
      Add tutorial notebook for rendering densepose · f34f4073
      Amitav Baruah authored
      Summary:
      Add a notebook demonstrating how to use Pytorch3D to render a textured mesh with the DensePose textures and the SMPL model
      
      {F336408690}
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23784314
      
      fbshipit-source-id: c92f32fb9b9468eb7ec26bf58dcabb1f26d92e7b
      f34f4073
    • Jeremy Reizenstein's avatar
      Fix TexturesUV doc · ea0e762c
      Jeremy Reizenstein authored
      Summary: Fix map size in the comment.
      
      Reviewed By: gkioxari
      
      Differential Revision: D23813431
      
      fbshipit-source-id: e0777beadd7473014c1b79ad9f850d10f3549599
      ea0e762c
    • Jeremy Reizenstein's avatar
      save_ply binary · 197f1d62
      Jeremy Reizenstein authored
      Summary:
      Make save_ply save to binary instead of ascii. An option makes the previous functionality available. save_ply's API accepts a stream, but this is undocumented; that stream must now be a binary stream not a text stream.
      
      Avoiding warnings about making tensors from immutable numpy arrays.
      
      Possible performance improvement when reading binary files.
      
      Fix reading zero-length binary lists.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22333118
      
      fbshipit-source-id: b423dfd3da46e047bead200255f47a7707306811
      197f1d62
  15. 19 Sep, 2020 1 commit
  16. 17 Sep, 2020 1 commit
  17. 16 Sep, 2020 1 commit
  18. 14 Sep, 2020 2 commits
    • Amitav Baruah's avatar
      Add example of rendering pointclouds with a background color. · 61121b9f
      Amitav Baruah authored
      Summary:
      Add cells to the rendering_colored_points tutorial showing how to initialize a renderer and compositor that will render pointclouds with a background color.
      
      {F333731292}
      {F334136799}
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23632503
      
      fbshipit-source-id: e9ce0178b41e74baf912bd82ca1db41b680fc68f
      61121b9f
    • Amitav Baruah's avatar
      Add background color support to compositors · 872ff8c7
      Amitav Baruah authored
      Summary: Support rendering different color backgrounds for pointclouds for both compositors
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23611043
      
      fbshipit-source-id: ab029650d51349340372c5bd66700e6577d48851
      872ff8c7
  19. 11 Sep, 2020 1 commit
    • David Novotny's avatar
      Bugfix: Wrong default T in SfMCameras · dc40adfa
      David Novotny authored
      Summary: Fixes a bug that initializes default SfMCameras with a default _R instead of default _T
      
      Reviewed By: gkioxari
      
      Differential Revision: D23654583
      
      fbshipit-source-id: ccfb7235b2fb6df5a2e402b9fb4b194e97d78dc6
      dc40adfa
  20. 10 Sep, 2020 2 commits
    • Amitav Baruah's avatar
      Correctly create reference image silhouette · f2eb34dc
      Amitav Baruah authored
      Summary: Previously the tutorial code assumed that the reference image had a black background, resulting in an empty silhouette mask. Since the background is white, this change allows the model to find the correct silhouette mask.
      
      Reviewed By: nikhilaravi, sbranson
      
      Differential Revision: D23502202
      
      fbshipit-source-id: c3a570f93efd480323f27cb081db0a9fb54be219
      f2eb34dc
    • Amitav Baruah's avatar
      Fix look_at corner case · eb517dd7
      Amitav Baruah authored
      Summary: When the camera is vertically oriented, calculating the look_at x-axis (also known as the "right" vector) does not succeed, resulting in the x-axis being placed at the origin. Adds a check to correctly calculate the x-axis if this case occurs.
      
      Reviewed By: nikhilaravi, sbranson
      
      Differential Revision: D23511859
      
      fbshipit-source-id: ee5145cdbecdbe2f7c7d288588bd0899480cb327
      eb517dd7
  21. 09 Sep, 2020 1 commit
    • Steve Branson's avatar
      Fix softmax_rgb_blend() when mesh is outside zfar · f8ea5906
      Steve Branson authored
      Summary:
      This fixes two small issues with blending.py:softmax_rgb_blend():
        1) zfar and znear attributes are propagated from the camera settings instead of just using default settings of znear=1.0 and zfar=100.0
        2) A check is added to prevent arithmetic overflow in softmax_rgb_blend()
      
      This is a fix in response to https://github.com/facebookresearch/pytorch3d/issues/334
      where meshes rendererd using a SoftPhongShader with faces_per_pixel=1 appear black.  This only occurs when the scale of the mesh is large (vertex values > 100, where 100 is the default value of zfar).  This fix allows the caller to increase the value of cameras.zfar to match the scale of her/his mesh.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23517541
      
      fbshipit-source-id: ab8631ce9e5f2149f140b67b13eff857771b8807
      f8ea5906
  22. 04 Sep, 2020 1 commit