Summary:
In the original implementation, I had considered PLY properties where there are mixed types of elements in a property to be rare and basically unimportant, so the implementation is very naive.
If we want to support pointcloud PLY files, we need to handle at least the subcase where there are no lists efficiently because this seems to be very common there.
Reviewed By: nikhilaravi, gkioxari
Differential Revision: D22573315
fbshipit-source-id: db6f29446d4e555a2e2b37d38c8e4450d061465b
Summary: We already have code for obj and ply formats. Here we actually make it available in `IO.load_mesh` and `IO.save_mesh`.
Reviewed By: theschnitz, nikhilaravi
Differential Revision: D25400650
fbshipit-source-id: f26d6d7fc46c48634a948eea4d255afad13b807b
Summary: Implements a notebook that fits a volume to multiple views of the cow mesh.
Reviewed By: nikhilaravi
Differential Revision: D24553385
fbshipit-source-id: 367ca39e176b40df2c5946c9c05d3be824dc8d1c
Summary: Implemented a data structure for volumes.
Reviewed By: gkioxari
Differential Revision: D20342920
fbshipit-source-id: ccc23eaa183ed8a4e9cd7674b4dcf31e8a65c3c6
Summary: Extends `list_to_padded`/`padded_to_list` to work for tensors with an arbitrary number of input dimensions.
Reviewed By: nikhilaravi, gkioxari
Differential Revision: D23813969
fbshipit-source-id: 52c212a2ecdb3c4dfb6ac47217715e07998f37f1
Summary: Now we use iopath, we need to find it from its own channel.
Reviewed By: nikhilaravi
Differential Revision: D25710499
fbshipit-source-id: 1c67eb6d5b009d35b65a3acd3ebff6e0e45fecc4
Summary:
Make no internal functions inside pytorch3d/io interpret str paths except using a PathManager from iopath which they have been given. This means we no longer use any global PathManager object and we no longer use fvcore's deprecated file_io.
To preserve the APIs, various top level functions create their own default-initialized PathManager object if they are not provided one.
Reviewed By: theschnitz
Differential Revision: D25372969
fbshipit-source-id: c176ee31439645fa54a157d6f1aef18b09501569
Summary: Allowing usort, isort and black to coexist without fighting means we can't have imports commented as deprecated from the same module as other imports.
Reviewed By: nikhilaravi
Differential Revision: D25372970
fbshipit-source-id: 637f5a0025c0df9fbec47cba73ce5387f4f8b467
Summary: Add ioPath as a dependency of PyTorch3D in preparation for using the new PathManager.
Reviewed By: nikhilaravi
Differential Revision: D25372971
fbshipit-source-id: d8aa661d2de975e747dd494edc42bf843990cf68
Summary: Use a more recent PyTorch to build the documentation.
Reviewed By: nikhilaravi
Differential Revision: D25679756
fbshipit-source-id: 83d647f709337110d39886eaa6aad2565d740c6d
Summary: This fixes a corner case for multi-radius handling for the pulsar backend. The additional dimensionality check ensures that the batched parsing for radiuses is only performed when appropriate.
Reviewed By: bottler
Differential Revision: D25387708
fbshipit-source-id: c486dcf327f812265b7ca8ca5ef5c6a31e6d4549
Summary:
Defines a function to run marching cubes algorithm on a single or batch of 3D scalar fields. Returns a mesh's faces and vertices.
UPDATES (12/18)
- Input data is now specified as a (B, D, H, W) tensor as opposed to a (B, W, H, D) tensor. This will now be compatible with the Volumes datastructure.
- Add an option to return output vertices in local coordinates instead of world coordinates.
Also added a small fix to remove the dype for device in Transforms3D - if passing in a torch.device instead of str it causes a pyre error.
Reviewed By: jcjohnson
Differential Revision: D24599019
fbshipit-source-id: 90554a200319fed8736a12371cc349e7108aacd0
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
Summary:
Similar to non square image rasterization for meshes, apply the same updates to the pointcloud rasterizer.
Main API Change:
- PointRasterizationSettings now accepts a tuple/list of (H, W) for the image size.
Reviewed By: jcjohnson
Differential Revision: D25465206
fbshipit-source-id: 7370d83c431af1b972158cecae19d82364623380
Summary: Add `return self` to the `to` function for the renderer classes.
Reviewed By: bottler
Differential Revision: D25534487
fbshipit-source-id: e8dbd35524f0bd40e835439e93184b5a1f1532ca
Summary:
As for now, epsilon value is ignored, since `kwargs` are passed to constructor only
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/418
Reviewed By: gkioxari
Differential Revision: D24730500
Pulled By: nikhilaravi
fbshipit-source-id: 7cce820dbe14f8c74d3df4f18c45d50e228c6a45
Summary:
`INSTALL.md` On Windows, pip install from git does not work with single quotes. I replace them with double quote as those should work for any OS.
`camera_position_optimization_with_differentiable_rendering.ipynb` To extract the silhouette from the reference image, we need to reject white values, not black values, because the background of the ref is white:

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/254
Reviewed By: gkioxari
Differential Revision: D23798508
Pulled By: nikhilaravi
fbshipit-source-id: 1fbec291c48c367539a8a4fea389a109aab49e3d
Summary: Add nightly linux conda builds with the new pytorch 1.7.1. This supports python 3.9.
Reviewed By: nikhilaravi
Differential Revision: D25532757
fbshipit-source-id: b734637063e148389951899450566275f3cf5831
Summary: We have already uploaded a conda package of the cub 1.10.0 sources to our channel on anaconda. Here is the code we used.
Reviewed By: nikhilaravi
Differential Revision: D25395358
fbshipit-source-id: b58fd473fcafd425c98c9d7a7c32574f651383a0
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
Summary: The "manual" docker pull in the testrun builds has been taking more than 10 minutes recently, and its lack of output causes circleci to timeout. As a quick fix, we enable the output from this operation.
Reviewed By: gkioxari
Differential Revision: D25305127
fbshipit-source-id: 19682bfa0294145457a37df6d6faf7a08dcc63c9
Summary: Taubin Smoothing for filtering meshes and making them smoother. Taubin smoothing is an iterative approach.
Reviewed By: nikhilaravi
Differential Revision: D24751149
fbshipit-source-id: fb779e955f1a1f6750e704f1b4c6dfa37aebac1a
Summary: If a pointcloud had less than pointcloud_max_points, the colors would not render. This diff fixes that.
Reviewed By: bottler
Differential Revision: D25099044
fbshipit-source-id: 47c3ddcdb4e06284b0a7966ffca1b973f394921f
Summary: Previously, grids where the columns don't divide the number of plots evenly would error. Now, there'll just be a sparse last row.
Reviewed By: bottler
Differential Revision: D25069236
fbshipit-source-id: 9d2fd62f3d39bfebc07ce0a41718621fa69d6057
Summary: This fixed#442 by declaring two math functions to be device-only.
Reviewed By: bottler
Differential Revision: D24896992
fbshipit-source-id: a15918d06d2a3e6ee5cf250fec7af5f2f50a6164
Summary: Small updates to the website setup before the website is updated
Reviewed By: bottler
Differential Revision: D24880351
fbshipit-source-id: 5c40664ad1ca3dd9f4fc746b239a82d47ed3a8e6
Summary: As mentioned in a comment on https://github.com/facebookresearch/pytorch3d/issues/438, curl must be told to follow redirects.
Reviewed By: nikhilaravi
Differential Revision: D24870138
fbshipit-source-id: 0c8aeb5146f8699bcea03d4108276fc24e9eab6b
Summary: Now installation is a bit complicated, remove this instruction from the website and redirect to the notebooks themselves.
Reviewed By: nikhilaravi
Differential Revision: D24860588
fbshipit-source-id: 3bf1af3cdb69b564492fb01a5a5ba40203f3858e
Summary:
We now require CUB for building, here we make the tutorials include it.
Also make the installation cell do nothing if it has already succeeded.
I use curl not wget, and `os.environ` to set the variables not shell methods, because they are more likely to work on Windows.
Reviewed By: nikhilaravi
Differential Revision: D24860574
fbshipit-source-id: 5be86af15e53f8db016ee0e96fb43153bd69adbc
Summary: This fixes issues with `pulsar.test.TestDepth` that we are encountering on CircleCI. The ID equality test is removed, which seems to give different results on different hardware (which is okay, because the exact order of spheres can slightly vary if they're close due to numerical instabilities). The depth map validity test stays in place.
Reviewed By: bottler
Differential Revision: D24840776
fbshipit-source-id: 2f38ea4880abf202c84d2987fdd71a84c5ef3b05
Summary: Make it easy to have CUB available for building
Reviewed By: nikhilaravi
Differential Revision: D24773722
fbshipit-source-id: 8759bef6ded4989088189685b2a615c97e5f8b99