- 15 Dec, 2020 2 commits
-
-
Nikhila Ravi authored
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
-
Evgeniy Zheltonozhskiy authored
Add check for verts and faces being on same device and also checks for pointclouds/features/normals being on the same device (#384) Summary: Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/384 Test Plan: `test_meshes` and `test_points` Reviewed By: gkioxari Differential Revision: D24730524 Pulled By: nikhilaravi fbshipit-source-id: acbd35be5d9f1b13b4d56f3db14f6e8c2c0f7596
-
- 14 Dec, 2020 2 commits
-
-
Nikhila Ravi authored
Summary: Add `return self` to the `to` function for the renderer classes. Reviewed By: bottler Differential Revision: D25534487 fbshipit-source-id: e8dbd35524f0bd40e835439e93184b5a1f1532ca
-
Evgeniy Zheltonozhskiy authored
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
-
- 11 Dec, 2020 1 commit
-
-
generatedunixname89002005307016 authored
Differential Revision: D25497975 fbshipit-source-id: 9f7aa8d1dd31fa62a428321394d8c97b2d9d937d
-
- 09 Dec, 2020 1 commit
-
-
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
-
- 01 Dec, 2020 1 commit
-
-
generatedunixname89002005287564 authored
Reviewed By: zertosh Differential Revision: D25241045 fbshipit-source-id: c3a1e1e02ef557b1e82cb672e987e05016e246fd
-
- 30 Nov, 2020 1 commit
-
-
Georgia Gkioxari authored
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
-
- 19 Nov, 2020 1 commit
-
-
Amitav Baruah authored
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
-
- 18 Nov, 2020 1 commit
-
-
Amitav Baruah authored
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
-
- 11 Nov, 2020 2 commits
-
-
Christoph Lassner authored
Summary: This fixed #442 by declaring two math functions to be device-only. Reviewed By: bottler Differential Revision: D24896992 fbshipit-source-id: a15918d06d2a3e6ee5cf250fec7af5f2f50a6164
-
Jeremy Reizenstein authored
Reviewed By: nikhilaravi Differential Revision: D24390049 fbshipit-source-id: d86ba8dd933bce18e65ae71b3ea42426838b8fc2
-
- 10 Nov, 2020 4 commits
-
-
Jeremy Reizenstein authored
Summary: Changes to CI and some minor fixes now that pulsar is part of pytorch3d. Most significantly, add CUB to CI builds. Make CUB_HOME override the CUB already in cudatoolkit (important for cuda11.0 which uses cub 1.9.9 which pulsar doesn't work well with. Make imageio available for testing. Lint fixes. Fix some test verbosity. Avoid use of atomicAdd_block on older GPUs. Reviewed By: nikhilaravi, classner Differential Revision: D24773716 fbshipit-source-id: 2428356bb2e62735f2bc0c15cbe4cff35b1b24b8
-
Dave Schnizlein authored
Summary: Removes the now-unnecessary kernels from point mesh edge file Migrates all point mesh functionality into one file. Reviewed By: gkioxari Differential Revision: D24550086 fbshipit-source-id: f924996cd38a7c2c1cf189d8a01611de4506cfa3
-
Dave Schnizlein authored
Summary: This diff creates the generic MeshBackwardKernel which can handle distance calculations between point, edge and faces in either direction. Replaces only point_mesh_face code for now. Reviewed By: gkioxari Differential Revision: D24549374 fbshipit-source-id: 2853c1da1c2a6b6de8d0e40007ba0735b8959044
-
Dave Schnizlein authored
Summary: This diff creates the generic MeshForwardKernel which can handle distance calculations between point, edge and faces in either direction. Replaces only point_mesh_face code for now. Reviewed By: gkioxari Differential Revision: D24543316 fbshipit-source-id: 302707d7cec2d77a899738adf40481035c240da8
-
- 09 Nov, 2020 1 commit
-
-
Christoph Lassner authored
Summary: Added missing include for cstdint for Windows and removed problematic inline assembly. Reviewed By: bottler Differential Revision: D24838053 fbshipit-source-id: 95496be841c2c22a82068073d4740e98ee8a02ac
-
- 05 Nov, 2020 1 commit
-
-
Dave Schnizlein authored
Summary: Users want to be able to obtain the depth from the renderer. Current work-around requires running the rasterizer and extra time. This change creates a new renderer class that also returns the fragments from the rasterizer. Reviewed By: nikhilaravi Differential Revision: D24432381 fbshipit-source-id: 6552e8a6bfee646791afb34bdb7452fbc4094aed
-
- 04 Nov, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Move to a local import for calculating pointcloud normals, similar to _compute_face_areas_normals on Meshes. Reviewed By: theschnitz Differential Revision: D24695260 fbshipit-source-id: 9e1eb5d15017975b8c4f4175690cc3654f38d9a4
-
- 03 Nov, 2020 3 commits
-
-
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
-
Christoph Lassner authored
Summary: This diff builds on top of the `pulsar integration` diff to provide a unified interface for the existing PyTorch3D point renderer and Pulsar. 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. The unified interfaces are completely consistent. Switching the render backend is as easy as using `renderer = PulsarPointsRenderer(rasterizer=rasterizer).to(device)` instead of `renderer = PointsRenderer(rasterizer=rasterizer, compositor=compositor)` and adding the `gamma` parameter to the forward function. All PyTorch3D camera types are supported as far as possible; keyword arguments are properly forwarded to the camera. The `PerspectiveCamera` and `OrthographicCamera` require znear and zfar as additional parameters for the forward pass. Reviewed By: nikhilaravi Differential Revision: D21421443 fbshipit-source-id: 4aa0a83a419592d9a0bb5d62486a1cdea9d73ce6
-
Christoph Lassner authored
Summary: This diff integrates the pulsar renderer source code into PyTorch3D as an alternative backend for the PyTorch3D point renderer. This diff is the first of a series of three diffs to complete that migration and focuses on the packaging and integration of the source code. 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`. Tasks addressed in the following diffs: * Add the PyTorch3D interface, * Add notebook examples and documentation (or adapt the existing ones to feature both interfaces). Reviewed By: nikhilaravi Differential Revision: D23947736 fbshipit-source-id: a5e77b53e6750334db22aefa89b4c079cda1b443
-
- 30 Oct, 2020 1 commit
-
-
Dave Schnizlein authored
Summary: To initialize the Cameras class currently we require the principal point, focal length and other parameters to be specified from which we calculate the intrinsic matrix. In some cases the matrix might be directly available e.g. from a dataset and the associated metadata for an image. Reviewed By: nikhilaravi Differential Revision: D24489509 fbshipit-source-id: 1b411f19c5f6c8074bcfbf613f3339d5e242c119
-
- 29 Oct, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: We envision `pytorch3d.vis` to contain submodules with different dependencies. Allow (and require) them to be imported independently. Reviewed By: theschnitz Differential Revision: D24622519 fbshipit-source-id: 44840f70f5fd2bd410405bf09546024e48238744
-
- 27 Oct, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: New methods to directly plot a TexturesUV map with its used points, using PIL and matplotlib. Reviewed By: gkioxari Differential Revision: D23782968 fbshipit-source-id: 692970857b5be13a35a3175dc82ac03963a73555
-
- 22 Oct, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Fix axis_angle conversions where I used torch.square which doesn't work with pytorch 1.4 Reviewed By: nikhilaravi Differential Revision: D24451546 fbshipit-source-id: ba26f7dad5fa991f0a8f7d3d09ee7151163aecf4
-
- 21 Oct, 2020 5 commits
-
-
Jeremy Reizenstein authored
Summary: We can represent a rotation as a vector in the axis direction, whose length is the rotation anticlockwise in radians around that axis. Reviewed By: gkioxari Differential Revision: D24306293 fbshipit-source-id: 2e0f138eda8329f6cceff600a6e5f17a00e4deb7
-
Amitav Baruah authored
Summary: Take in a renderer with camera(s) and render the cameras as wireframes in the corresponding plotly plots Reviewed By: nikhilaravi Differential Revision: D24151706 fbshipit-source-id: f8e86d61f3d991500bafc0533738c79b96bda630
-
Amitav Baruah authored
Summary: Use a provided renderer's camera positions to render a plotly plot to match what the renderer would render for pointclouds and meshes. - takes in a Cameras object for viewpoints - for each subplot, will index into the Cameras object (or use the Cameras object, if len(viewpoint_cameras) == 1 and use the Cameras' eye and at vectors to set plotly's camera's corresponding values, the eye and center values. Reviewed By: nikhilaravi Differential Revision: D24094934 fbshipit-source-id: 48abcdb04c6909a172ba9f721522c3446952a089
-
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
-
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
-
- 20 Oct, 2020 1 commit
-
-
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
-
- 18 Oct, 2020 1 commit
-
-
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
-
- 16 Oct, 2020 1 commit
-
-
Nikhila Ravi authored
Summary: Small fix and updated tests for multigpu rendering case. This resolves the issue seen in: https://github.com/facebookresearch/pytorch3d/issues/401 Reviewed By: gkioxari Differential Revision: D24314681 fbshipit-source-id: 84c5a5359844c77518b48044001daa9a86f3c43a
-
- 15 Oct, 2020 2 commits
-
-
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
-
John Reese authored
Summary: allow-large-files black_any_style Reviewed By: zertosh Differential Revision: D24325133 fbshipit-source-id: b4afe80d1e8b2bc993f4b8e3822c02964df47462
-
- 12 Oct, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: As mentioned in a comment on https://github.com/facebookresearch/pytorch3d/issues/77, we can't use this function in Python 3.6. It's easy to write our own version. Reviewed By: gkioxari Differential Revision: D24249915 fbshipit-source-id: 4c70a3efb03daa115041d082e616511297eab8fa
-
- 07 Oct, 2020 1 commit
-
-
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
-
- 06 Oct, 2020 2 commits
-
-
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
-
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
-