Summary: Fix assumption that face indices are signed in the PLY file, as reported in #1104.
Reviewed By: nikhilaravi
Differential Revision: D34892598
fbshipit-source-id: a8b23bfac1357bdc11bbbf752098319142239804
Summary: As noticed in https://github.com/facebookresearch/pytorch3d/issues/1098 , it would be useful to make this more available.
Reviewed By: nikhilaravi
Differential Revision: D34752526
fbshipit-source-id: 5a127bd557a0cd626f36bf194f22bc0a0a6a2436
Summary: As reported in https://github.com/facebookresearch/pytorch3d/pull/1100, a rasterizer couldn't be moved if it was missing the optional cameras member. Fix that. This matters because the renderer.to calls rasterizer.to, so this to() could be called even by a user who never sets a cameras member.
Reviewed By: nikhilaravi
Differential Revision: D34643841
fbshipit-source-id: 7e26e32e8bc585eb1ee533052754a7b59bc7467a
Summary: As reported in https://github.com/facebookresearch/pytorch3d/pull/1100, _num_faces_per_mesh was changing in the source mesh in join_batch. This affects both TexturesUV and TexturesAtlas
Reviewed By: nikhilaravi
Differential Revision: D34643675
fbshipit-source-id: d67bdaca7278f18a76cfb15ba59d0ea85575bd36
Summary: A scalar background color is not meant to be allowed for the point renderer. It used to be ignored with a warning, but a recent code change made it an error. It was being used, at least in the black (value=0.0) case. Re-enable it.
Reviewed By: nikhilaravi
Differential Revision: D34519651
fbshipit-source-id: d37dcf145bb7b8999c9265cf8fc39b084059dd18
Summary:
1. changed IsInsideTriangle in geometry_utils to take in min_triangle_area parameter instead of hardcoded value
2. updated point_mesh_cpu.cpp and point_mesh_cuda.[h/cu] to adapt to changes in geometry_utils function signatures
3. updated point_mesh_distance.py and test_point_mesh_distance.py to modify _C. calls
Reviewed By: bottler
Differential Revision: D34459764
fbshipit-source-id: 0549e78713c6d68f03d85fb597a13dd88e09b686
Summary: There are cases where importing pytorch3d seems to fail (internally at Meta) because of a clash between the builtin types module and ours, so rename ours.
Reviewed By: patricklabatut
Differential Revision: D34426817
fbshipit-source-id: f175448db6a4967a9a3f7bb6f595aad2ffb36455
Summary: Small fix by adjusting the area `eps` to account for really small faces when computing point to face distances
Reviewed By: bottler
Differential Revision: D34331336
fbshipit-source-id: 51c4888ea46fefa4e31d5b0bb494a9f9d77813cd
Summary: Lower the epsilon value in the IoU3D calculation to fix small numerical issue from GH#1082
Reviewed By: bottler
Differential Revision: D34371597
fbshipit-source-id: 12443fa359b7755ef4ae60e9adf83734a1a295ae
Summary: Refactor ply_io to make it easier to add new features. Mostly taken from the starting code I attached to https://github.com/facebookresearch/pytorch3d/issues/904.
Reviewed By: patricklabatut
Differential Revision: D34375978
fbshipit-source-id: ec017d31f07c6f71ba6d97a0623bb10be1e81212
Summary: Use the newer eigh to avoid deprecation warnings in newer pytorch.
Reviewed By: patricklabatut
Differential Revision: D34375784
fbshipit-source-id: 40efe0d33fdfa071fba80fc97ed008cbfd2ef249
Summary:
Modified the compositor background color tests to account for either a 3rd or 4th channel. Also replaced hard coding of channel value with C.
Implemented changes to alpha channel appending logic, and cleaned up extraneous warnings and checks, per task instructions.
Fixes https://github.com/facebookresearch/pytorch3d/issues/1048
Reviewed By: bottler
Differential Revision: D34305312
fbshipit-source-id: 2176c3bdd897d1a2ba6ff4c6fa801fea889e4f02
Summary:
Add a test for Transform3d.stack, and make it work with composed transformations.
Fixes https://github.com/facebookresearch/pytorch3d/issues/1072 .
Reviewed By: patricklabatut
Differential Revision: D34211920
fbshipit-source-id: bfbd0895494ca2ad3d08a61bc82ba23637e168cc
Summary: Move this simple layer from the NeRF project into pytorch3d.
Reviewed By: shapovalov
Differential Revision: D34126972
fbshipit-source-id: a9c6d6c3c1b662c1b844ea5d1b982007d4df83e6
Summary:
When there is no "usemtl" statement in the .obj file use material from .mtl if there is one.
https://github.com/facebookresearch/pytorch3d/issues/1068
Reviewed By: bottler
Differential Revision: D34141152
fbshipit-source-id: 7a5b5cc3f0bb287dc617f68de2cd085db8f7ad94
Summary: Implements a utility function to convert from 2D coordinates in Pytorch3D NDC space to the coordinates in grid_sample.
Reviewed By: shapovalov
Differential Revision: D33741394
fbshipit-source-id: 88981653356588fe646e6dea48fe7f7298738437
Summary: D33970393 (e9fb6c27e3) ran an inference to add some typing. Remove some where it was a bit too confident. (Also fix some pyre errors in plotly_vis caused by new mismatch.)
Reviewed By: patricklabatut
Differential Revision: D34004689
fbshipit-source-id: 430182b0ff0b91be542a3120da6d6b1d2b247c59
Summary: Fix the base class annotation for unproject_points.
Reviewed By: patricklabatut
Differential Revision: D33281586
fbshipit-source-id: 1c34e8c4b30b359fcb9307507bc778ad3fecf290
Summary:
Function to join a list of cameras objects into a single batched object.
FB: In the next diff I will remove the `concatenate_cameras` function in implicitron and update the callsites.
Reviewed By: nikhilaravi
Differential Revision: D33198209
fbshipit-source-id: 0c9f5f5df498a0def9dba756c984e6a946618158
Summary:
convert_to_tensors_and_broadcast had a special case for a single input, which is not used anywhere except fails to do the right thing if a TensorProperties has only one kwarg. At the moment AmbientLights may be the only way to hit the problem. Fix by removing the special case.
Fixes https://github.com/facebookresearch/pytorch3d/issues/1043
Reviewed By: nikhilaravi
Differential Revision: D33638345
fbshipit-source-id: 7a6695f44242e650504320f73b6da74254d49ac7
Summary:
The following snippet should work in more cases.
point_cloud = Pointclouds(
[pcl.points_packed() for pcl in point_clouds],
features=[pcl.features_packed() for pcl in point_clouds],
)
We therefore allow features and normals inputs to be lists which contain some (but not all) Nones.
The initialization of a Pointclouds from empty data is also made a bit better now at working out how many feature channels there are.
Reviewed By: davnov134
Differential Revision: D31795089
fbshipit-source-id: 54bf941ba80672d699ffd5ac28927740e830f8ab
Summary: Since coarse rasterization on cuda can overflow bins, we detect when this happens for memory safety. See https://github.com/facebookresearch/pytorch3d/issues/348 . Also try to print a warning.
Reviewed By: patricklabatut
Differential Revision: D33065604
fbshipit-source-id: 99b3c576d01b78e6d77776cf1a3e95984506c93a
Summary: Fix https://github.com/facebookresearch/pytorch3d/issues/1015. Stop relying on the fact that the dtype returned by np.random.choice (int64 on Linux, int32 on Windows) matches the dtype used by pytorch for indexing (int64 everywhere).
Reviewed By: patricklabatut
Differential Revision: D33428680
fbshipit-source-id: 716c857502cd54c563cb256f0eaca7dccd535c10
Summary: Update all FB license strings to the new format.
Reviewed By: patricklabatut
Differential Revision: D33403538
fbshipit-source-id: 97a4596c5c888f3c54f44456dc07e718a387a02c
Summary:
Moved `HarmonicEmbedding` function in core PyTorch3D.
In the next diff will update the NeRF project.
Reviewed By: bottler
Differential Revision: D32833808
fbshipit-source-id: 0a12ccd1627c0ce024463c796544c91eb8d4d122
Summary: Removed `select_cameras.py` from implicitron and updated all callsites to directly index the cameras.
Reviewed By: bottler
Differential Revision: D33187605
fbshipit-source-id: aaf5b36aef9d72db0c7e89dec519f23646f6aa05
Summary:
Added a custom `__getitem__` method to `CamerasBase` which returns an instance of the appropriate camera instead of the `TensorAccessor` class.
Long term we should deprecate the `TensorAccessor` and the `__getitem__` method on `TensorProperties`
FB: In the next diff I will update the uses of `select_cameras` in implicitron.
Reviewed By: bottler
Differential Revision: D33185885
fbshipit-source-id: c31995d0eb126981e91ba61a6151d5404b263f67
Summary: New sampling mode option in TexturesUV mush match when collating meshes.
Reviewed By: patricklabatut
Differential Revision: D33235901
fbshipit-source-id: f457473d90bf022e65fe122ef45bf5efad134345
Summary: Function to join a list of pointclouds as a batch similar to the corresponding function for Meshes.
Reviewed By: bottler
Differential Revision: D33145906
fbshipit-source-id: 160639ebb5065e4fae1a1aa43117172719f3871b
Summary: Fix some comments to match the recent change to transform_points_screen.
Reviewed By: patricklabatut
Differential Revision: D33243697
fbshipit-source-id: dc8d182667a9413bca2c2e3657f97b2f7a47c795
Summary:
A small numerical fix for IoU for 3D boxes, fixes GH #992
* Adds a check for boxes with zero side areas (invalid boxes)
* Fixes numerical issue when two boxes have coplanar sides
Reviewed By: nikhilaravi
Differential Revision: D33195691
fbshipit-source-id: 8a34b4d1f1e5ec2edb6d54143930da44bdde0906
Summary: Restore compatibility with old C++ after recent torch change. https://github.com/facebookresearch/pytorch3d/issues/995
Reviewed By: patricklabatut
Differential Revision: D33093174
fbshipit-source-id: 841202fb875d601db265e93dcf9cfa4249d02b25
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/69041
`TH_CONCAT_{N}` is still being used by THP so I've moved that into
it's own header but all the compiled code is gone.
Test Plan: Imported from OSS
Reviewed By: anjali411
Differential Revision: D32872477
Pulled By: ngimel
fbshipit-source-id: 06c82d8f96dbcee0715be407c61dfc7d7e8be47a
Summary:
All the renderers in PyTorch3D (pointclouds including pulsar, meshes, raysampling) use align_corners=False style. NDC space goes between the edges of the outer pixels. For a non square image with W>H, the vertical NDC space goes from -1 to 1 and the horizontal from -W/H to W/H.
However it was recently pointed out that functionality which deals with screen space inside the camera classes is inconsistent with this. It unintentionally uses align_corners=True. This fixes that.
This would change behaviour of the following:
- If you create a camera in screen coordinates, i.e. setting in_ndc=False, then anything you do with the camera which touches NDC space may be affected, including trying to use renderers. The transform_points_screen function will not be affected...
- If you call the function “transform_points_screen” on a camera defined in NDC space results will be different. I have illustrated in the diff how to get the old results from the new results but this probably isn’t the right long-term solution..
Reviewed By: gkioxari
Differential Revision: D32536305
fbshipit-source-id: 377325a9137282971dcb7ca11a6cba3fc700c9ce
Summary: Give unproject_points an argument letting it bypass screen space. use it to let the raysampler work for cameras defined in screen space.
Reviewed By: gkioxari
Differential Revision: D32596600
fbshipit-source-id: 2fe585dcd138cdbc65dd1c70e1957fd894512d3d
Summary: As subj. Tests corrected accordingly. Also changed the test to provide a bit better diagnostics.
Reviewed By: bottler
Differential Revision: D32879498
fbshipit-source-id: 0a852e4a13dcb4ca3e54d71c6b263c5d2eeaf4eb
Summary:
This diff adds the `sample_mode` parameter to `TexturesUV` to control the interpolation mode during texture sampling. It simply gets forwarded to `torch.nn.funcitonal.grid_sample`.
This option was requested in this [GitHub issue](https://github.com/facebookresearch/pytorch3d/issues/805).
Reviewed By: patricklabatut
Differential Revision: D32665185
fbshipit-source-id: ac0bc66a018bd4cb20d75fec2d7c11145dd20199