Pytorch3d

Latest version: v0.7.4

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.6.1

This release brings PyTorch 1.10 builds and numerical fixes and improvements

Large fixes
- Raysampling now works with non-square image conventions [commit](https://github.com/facebookresearch/pytorch3d/commit/cac6cb1b7813a4f09a05e0ade43c63292bb08b79)
- Perspective_correct mesh rasterization calculation is protected against divide-by-zero. This fixes quite a number of bug reports, e.g. 561. [commit](https://github.com/facebookresearch/pytorch3d/commit/29417d1f9b181f907f7e3729791a43554f3bbf56)

Breaking changes
- [This commit](https://github.com/facebookresearch/pytorch3d/commit/bf3bc6f8e36385398c0be1bc03304e07964026b1) makes camera code more consistent in behaving like align_corners=False everywhere, by removing some extra -1’s in the code for screen space conversion. (1) 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. (2) If you call the function “transform_points_screen” on a camera defined in NDC space then results will be different.

Bug fixes
- Raysampling now works with cameras defined in screen space. [commit](https://github.com/facebookresearch/pytorch3d/commit/cff4876131e79b7c2ad0c13fc875292d9dc29f8c).
- Pointclouds.inside_box is now properly reduced rather than returning separate results per axis. [commit](https://github.com/facebookresearch/pytorch3d/commit/a6508ac3dfaaf59d8bdce176bfbafad94c1d0604)
- PulsarPointsRenderer fixed with non-square cameras [commit](https://github.com/facebookresearch/pytorch3d/commit/a0247ea6bd1b4e32b61addc28cc368476e917ce2)
- Functions clone and detach on TexturesUV properly propagate align_corners and padding_mode options. [commit](https://github.com/facebookresearch/pytorch3d/commit/d9f709599b600f4d0739fdbe20f1a0be867e5db9)
- Fixing default arguments of add_points_features_to_volume_densities_features [commit](https://github.com/facebookresearch/pytorch3d/commit/34b1b4ab8bb2dd619e57d230cdaf8b0a35196a85)
- Fix opencv camera conversion for non-square images (affects pulsar) [commit](https://github.com/facebookresearch/pytorch3d/commit/8fa438cbda382602ad64afac5713f4e7e0461f88)

Small improvements
- Some matrix conversions are now traceable with torch.jit. [commit](https://github.com/facebookresearch/pytorch3d/commit/bee31c48d3d36a8ea268f9835663c52ff4a476ec)
- Fixes to compiled code to make windows builds happier [commit](https://github.com/facebookresearch/pytorch3d/commit/1a7442a483ef92be720e88633b5e47e7b1e9e60c) [commit](https://github.com/facebookresearch/pytorch3d/commit/3953de47eefed08466f32db2334b03cd2363b625)
- A new set of tests, test_camera_pixels, illustrates the precise mapping of pixels for cameras. [commit](https://github.com/facebookresearch/pytorch3d/commit/70acb3e415203fb9e4d646d9cfeb449971092e1d)
- Numerical improvements in IOU calculation [commit](https://github.com/facebookresearch/pytorch3d/commit/2f2466f472c5c431508dc3e45441130313e4df2f) and [commit](https://github.com/facebookresearch/pytorch3d/commit/6dfa32692277735b369a5c7a28aceb47263d451a)
- New option on TexturesUV to choose sampling_mode. [commit](https://github.com/facebookresearch/pytorch3d/commit/d9f709599b600f4d0739fdbe20f1a0be867e5db9)
- The plotly visualization will show face colors from a TexturesAtlas with K=1 [commit](https://github.com/facebookresearch/pytorch3d/commit/7ce18f38cd7e7f61037322d7532cd7891190a540)


Internal
- Benchmarks have been moved to tests/benchmarks [commit](https://github.com/facebookresearch/pytorch3d/commit/a0e2d2e3c3020f5e5899a93e5744fdb26de703fe)
- Spelling [commit](https://github.com/facebookresearch/pytorch3d/commit/7fa333f63240cf92068991f81fd20b4faea5c15d)
- Some more type annotations for Pointclouds [commit](https://github.com/facebookresearch/pytorch3d/commit/bfeb82efa38f29ed5b9cf8d8986fab744fe559ea)
- Test fixes [commit](https://github.com/facebookresearch/pytorch3d/commit/b26f4bc33ad19c0ff10990f75e827010b1a15d85)
- Special implementation of eigenvalue calculation for 3x3 matrices which can be faster and more reliable than native PyTorch. Currently not used [commit](https://github.com/facebookresearch/pytorch3d/commit/d7d740abe9bada1d3187118b2e8d54b9c119737b)

0.6.0

This release contains several new optimized operations related to point clouds.

New features
- Farthest point sampling [here](https://github.com/facebookresearch/pytorch3d/commit/3b7d78c7a7bbd321fe181cb53f028c46ce78dfe1), [here](https://github.com/facebookresearch/pytorch3d/commit/d9f7611c4b5e1b7182192e05611fd615728ab29d) and [here](https://github.com/facebookresearch/pytorch3d/commit/bd04ffaf778074f267250ea5ce2d4a77a20afff5)
- Ball query operation. [commit](https://github.com/facebookresearch/pytorch3d/commit/103da63393d6bbb697835ddbfc86b07572ea4d0c)
- Sample_pdf importance sampling operation, implemented with a CUDA kernel. Previously in Python in the NeRF project. [here](https://github.com/facebookresearch/pytorch3d/commit/7d7d00f2883b13a79681a9ccbbe41fc951533d9b) and [here](https://github.com/facebookresearch/pytorch3d/commit/1ea2b7272a23b09987a2dc4cb34bcfd9596301a8)
- Fast accurate calculation of Intersection over union for 3D boxes. See [note](https://github.com/facebookresearch/pytorch3d/blob/v0.6.0/docs/notes/iou3d.md). [here](https://github.com/facebookresearch/pytorch3d/commit/2293f1fed096642246d3e97a6b8478fa32c61d5e), [here](https://github.com/facebookresearch/pytorch3d/commit/ff8d4762f43fb19cf426e91f34babec5def4fc89) and [here](https://github.com/facebookresearch/pytorch3d/commit/53266ec9ff02e4bc5e471216eb92a1c867473dcb)
- Subsample method for Pointclouds [commit](https://github.com/facebookresearch/pytorch3d/commit/4281df19cefb640067a49b961587342d9e4d85ba)
- Adding point clouds to volumes is now implemented in C++/CUDA, which means it can always operate inplace [here](https://github.com/facebookresearch/pytorch3d/commit/ee2b2feb9891a26939a688fd3c57d03462d7f773), [here](https://github.com/facebookresearch/pytorch3d/commit/9ad98c87c314877541187724a620c81332339a87) and [here](https://github.com/facebookresearch/pytorch3d/commit/0dfc6e0eb8a252878784dc9ae749d5298c5830b2)

Breaking changes
- [This commit](https://github.com/facebookresearch/pytorch3d/commit/1b8d86a104eab24ac25863c423d084d611f64bae) removes `_xy_grid` from the saved state of the `GridRaySampler` module, if the PyTorch version is 1.6.0 or higher. This means that you will get errors if you try to load a model saved with such a module by an older version of PyTorch3D (unless `strict==False`). Similarly the NeRF project’s `HarmonicEmbedding` no longer stores `_frequencies`.
- PyTorch 1.5.0 or above is now required.

Bug fixes
- Fix duplicate arguments errors when cameras are specified in certain places [commit](https://github.com/facebookresearch/pytorch3d/commit/804117833e3c02c19a6774f70bac1a780a322228)
- Fix to join_scene for meshes using TexturesUV, which picked the wrong verts_uvs in certain cases [commit](https://github.com/facebookresearch/pytorch3d/commit/a0d76a7080e263e2244abd67eb8ddf6667194b25)
- Fix to edge cases when creating TexturesAtlas. [commit](https://github.com/facebookresearch/pytorch3d/commit/fc156b50c0d6147ca00755059fb1ff96133827df)
- Points to volumes fix when the grid_sizes are not specified. [commit](https://github.com/facebookresearch/pytorch3d/commit/b481cfbd019e1508e90fef39a0eeefc1b2759291)

Small improvements
- Making the rasterizer deterministic if there are ties between faces [commit](https://github.com/facebookresearch/pytorch3d/commit/860b742a02e62ec85f48929268349916ca4ce8a5)
- The function so3_log_map is now torchscriptable [commit](https://github.com/facebookresearch/pytorch3d/commit/46f727cb68d4477183160efd411706e637dffbbc)
- The GridRaySampler change means it can be reused at different image sizes. [commit](https://github.com/facebookresearch/pytorch3d/commit/1b8d86a104eab24ac25863c423d084d611f64bae)
- More documentation in the renderer, with RasterizationSettings and PointRasterizationSettings being dataclasses [commit](https://github.com/facebookresearch/pytorch3d/commit/9a737da83c8f45c010ce818355bc28aae6cfafcd) and [here](https://github.com/facebookresearch/pytorch3d/commit/4ad8576541009694f33f3db7468e28b9f8879d29)
- Ability to save colors as 8bit (i.e. uint8) when writing data to PLY files [commit](https://github.com/facebookresearch/pytorch3d/commit/dd76b4101468d61233eff7f240870ab13a8b8662)

Internal
- Coarse rasterization code has been reorganized [here](https://github.com/facebookresearch/pytorch3d/commit/62dbf371aef2aeac11802901a771d85116a3717d), [here](https://github.com/facebookresearch/pytorch3d/commit/eed68f457d690c70ccea75598fad60c63504bd0d) and [here](https://github.com/facebookresearch/pytorch3d/commit/bbc7573261ebfbbd63cc7bb80c071d04e836acbe)

0.5.0

This release includes several very significant bug fixes and performance improvements as well as some new features for rendering, dataloading and visualization. Please read the breaking changes carefully and update your code accordingly for this new PyTorch3D version.

Breaking changes
- [This commit](https://github.com/facebookresearch/pytorch3d/commit/0c32f094afbb5c7206589e4a5516b6836d1d7f2a) changes the cameras objects and will affect you if (a) you use a cameras object with non-square images, (b) you call the transform_points_screen method, (c) you initialise a cameras object in screen space, i.e. you have been specifying image_size. See [here](https://github.com/facebookresearch/pytorch3d/discussions/783) for more details on the changes and how to update your code.
- The functions `random_rotations`, `random_rotation` and `random_quaternions` no longer have a potentially confusing `requires_grad` parameter. | [commit](https://github.com/facebookresearch/pytorch3d/commit/ce60d4b00e1dc975af49c99b7e6ebe0b4c997f8f)
- The call `pytorch3d.loss.mesh_laplacian_smoothing.laplacian_cot(meshes)` should now be `pytorch3d.ops.cot_laplacian(meshes.verts_packed(), meshes.faces_packed())` | [commit](https://github.com/facebookresearch/pytorch3d/commit/07a5a68d5034da9507a7fae1cf0717247ab255ba)

New deprecations
- The function `so3_exponential_map` deprecated in favor of new function so3_exp_map | [commit](https://github.com/facebookresearch/pytorch3d/commit/5284de6e97f1a206526045349beb3b11b8568238)

New features
- Cameras can be defined and used regardless of coordinate system conventions. They can be defined in NDC or screen space and are converted appropriately to interface with the PyTorch3D renderers according to their conventions | [commit](https://github.com/facebookresearch/pytorch3d/commit/0c32f094afbb5c7206589e4a5516b6836d1d7f2a)
- The standard mesh laplacian calculation has been added and now all three laplacians (standard, cot, norm) live in `pytorch3d.ops.laplacian_matrices` | [commit](https://github.com/facebookresearch/pytorch3d/commit/07a5a68d5034da9507a7fae1cf0717247ab255ba)
- RayBundles can be viewed in `plotly_vis` | [commit](https://github.com/facebookresearch/pytorch3d/commit/4426a9d12c16751c3afe5a4f5de8db89d58e6811)
- Support for the OFF file format for loading meshes | [commit](https://github.com/facebookresearch/pytorch3d/commit/0345f860d4d44e0a36b3a366644f6432458ae5cc)
- Experimental support for loading some glTF files | [commit](https://github.com/facebookresearch/pytorch3d/commit/ed6983ea843590c05593fcd4c8de40f5c7bb0970)
- PLY format now supports mesh vertex colors, i.e. `TexturesVertex` | [commit](https://github.com/facebookresearch/pytorch3d/commit/6c3fe952d1a65696701bba1b037a1b34ba33e4fc)
- Saving a mesh to an OBJ file can include `TexturesUV` data | [commit](https://github.com/facebookresearch/pytorch3d/commit/542e2e7c07fdeef815312b087acfa58094a7aa1e)
- User can now specify vertex normals explicitly on a Meshes object | [commit]( https://github.com/facebookresearch/pytorch3d/commit/2bbca5f2a7de1db1e398d0c50ce4242871957965)
- Pointcloud normals and mesh vertex normals can now be [saved to](https://github.com/facebookresearch/pytorch3d/commit/b314beeda1092337458fca8cd993536463172f8e) and [loaded from](https://github.com/facebookresearch/pytorch3d/commit/6fa66f55341fe1fa8c84c2611a6ec57c1d83b4fb) PLY files
- New `rotate_on_spot` function to relatively rotate a camera position | [commit](https://github.com/facebookresearch/pytorch3d/commit/61e38de034b57f3c703d5049a117764e78f72fe2)
- New `AmbientLights` object for ambient-only lighting | [commit](https://github.com/facebookresearch/pytorch3d/commit/0e85652f07ecca0da06146895921e008e8b839c8)
- Updated the alpha channel in the `hard_rgb_blend` function to return the mask of the pixels which have overlapping mesh faces | [commit](https://github.com/facebookresearch/pytorch3d/commit/a15c33a3cc8857e282d535e27821e8304a4f146d)
- Camera conversions [from](https://github.com/facebookresearch/pytorch3d/commit/8006842f2a5ab1546a90797a6394f875adce045c) and [to](https://github.com/facebookresearch/pytorch3d/commit/da9974b4160b6afe2587b473cdd471d4e299b323) OpenCV cameras
- SE3 exponential and logarithm maps | [commit](https://github.com/facebookresearch/pytorch3d/commit/b2ac2655b3b5a95eea49e72a543f06be4c18e688)
- `TensorProperties` classes (e.g. `Pointclouds` and `Cameras`) now have a cuda() function. | [commit](https://github.com/facebookresearch/pytorch3d/commit/0c02ae907edc2db9aee7d5bda1159814ce06ee56)

Internal-facing new features
- New linearly extrapolated acos function | [commit](https://github.com/facebookresearch/pytorch3d/commit/dd45123f202441e7539c4af9b35d07317b786528)
- New custom 3x3 determinant calculation | [commit](https://github.com/facebookresearch/pytorch3d/commit/bcee361d048f14b3d1fbfa2c3e498d64c06a7612)
- New function Meshes.has_verts_normals | [commit](https://github.com/facebookresearch/pytorch3d/commit/66b97a0c2825ff576df77c510530dbd8e6bac2b6)
- Features for enhanced type safety


Bug fixes
- Fix to cotcurv method of the mesh_laplacian_smoothing | [commit](https://github.com/facebookresearch/pytorch3d/pull/553)
When a Transform3D is constructed without specifying the device but with tensor data input (e.g. a rotation matrix), it will now default to the device of the tensor. | [commit](https://github.com/facebookresearch/pytorch3d/commit/cd5af2521a56bf3f8feca2926bbaa55cae3b3604)
- Fix to frustrum culling when z_clip_value=None | [commit](https://github.com/facebookresearch/pytorch3d/commit/a0f79318c5b16ef5d14bbff8840bc0dc045d078d)
- Fix to mesh rendering when frustrum culling culls everything | [commit](https://github.com/facebookresearch/pytorch3d/commit/c75ca04cf734d3635e1f41a06906cf83c2cb0f31)
- Mesh renderer stability with very small faces | [commit](https://github.com/facebookresearch/pytorch3d/commit/88f5d790886b26efb9f370fb9e1ea2fa17079d19)
- Transform3d.to() now works to change dtype without changing device | [commit](https://github.com/facebookresearch/pytorch3d/commit/44508ed0db269ed0b7c952fbee6bd09105a1c653)
- Multiple issues with shape broadcasting in lighting, shading and blending | [commit](https://github.com/facebookresearch/pytorch3d/commit/bc8361fa471e39280b1c5e3717309167b08ffed5)
- Rendering a nonsquare image when the H and W are not integer multiples [commit](https://github.com/facebookresearch/pytorch3d/commit/13429640d3dfcdf20dc3645d74b621f5fb4faee5)
- Fix to pulsar non-square image rendering | [commit](https://github.com/facebookresearch/pytorch3d/commit/4bb3fff52b7e26ec0f013021cb26fab7db3d8e0b)
- Pulsar cameras now more reliably match PyTorch3D ones | [commit](https://github.com/facebookresearch/pytorch3d/commit/75432a069503a2a51a79516f10ae8eb246e816d0)
- Pulsar gradient now calculated when no other gradient is needed | [commit](https://github.com/facebookresearch/pytorch3d/commit/fa44a05567ea7e6c18c3e762e1260ade0040f08e)
- TensorProperties classes (e.g. Pointclouds and Cameras) will always remember their device if the default cuda device changes. | [commit](https://github.com/facebookresearch/pytorch3d/commit/0c02ae907edc2db9aee7d5bda1159814ce06ee56)
- Now `matrix_to_quaternion` is correct for rotations by 180˚ | [commit](https://github.com/facebookresearch/pytorch3d/commit/1b39cebe9209172e543bdb9cd4d890d4023d5caf)
- In tutorials: updates for changes to PyTorch | [commit](https://github.com/facebookresearch/pytorch3d/commit/1c45ec9770ee3010477272e4cd5387f9ccb8cb51) (avoiding gradients) and numpy | [commit](https://github.com/facebookresearch/pytorch3d/commit/a343cf534cf906560a28f3a367c6ad1369100059). Load tutorial utils correctly on Colab | [commit](https://github.com/facebookresearch/pytorch3d/commit/10eb3892dac5507ce1fe5a2ecfaaf4a72330b67f)
- Fix to subsampling multiple large pointclouds for plotly visualization | [commit](https://github.com/facebookresearch/pytorch3d/commit/1b6182bac20c96f63b4140b02a794ff05e782e8a)
- Fix bug when join_batch is used to join meshes with TexturesVertex | [commit](https://github.com/facebookresearch/pytorch3d/commit/eb04a488c57da0e4e5651f5f37349e058cbfedc7)
- PLY files with uint8 colors are now scaled correctly | [commit](https://github.com/facebookresearch/pytorch3d/commit/e9f4e0d086a8e8481abbf799692de8bd13ee5c5c)
- Fix save_ply with noncontiguous faces | [commit](https://github.com/facebookresearch/pytorch3d/commit/354a1808ff57cb75461c697b282eac98c9082ea9)
- Fix to ShapeNet dataloader: works when not loading textures, install will not miss the json files | [commit](https://github.com/facebookresearch/pytorch3d/commit/029a9da00b4015b6988a28e353fc389572ac6254)
- Calling `extend()` with a user’s subclass of a `Textures` object respects the subclass (618) | [commit](https://github.com/facebookresearch/pytorch3d/commit/34163326b2681f4eb64db5c57d70abcdcc5b4941)
- `TexturesUV.join_scene` works with any number of channels | [commit](https://github.com/facebookresearch/pytorch3d/commit/2a0660baabc839890363f0fa166efdb3ff15c050)
- Documentation updates for [Volume renderer](https://github.com/facebookresearch/pytorch3d/commit/7c0d307142dd47a8e339b06d82877b20c77c1e45) and [RayBundle](https://github.com/facebookresearch/pytorch3d/commit/e794d062e85a8f5211b68eecb351429aeb065409)

Small improvements including speedups
- Improved so3 functions to make gradient computation stable | [commit](https://github.com/facebookresearch/pytorch3d/commit/9f14e82b5aaabaaff9d63fb04e31702b3246ced6)
- Mesh normal consistency speedup | [commit](https://github.com/facebookresearch/pytorch3d/commit/4bfe7158b17a026e182b37212f4ecb88776f2258)
- Add error checks when texture objects are inconsistent with their meshes | [commit](https://github.com/facebookresearch/pytorch3d/commit/ef16253953b7035da69f25107d83cc402562ce08)
- Speedup checking density bounds in volume renderer | [commit](https://github.com/facebookresearch/pytorch3d/commit/b538f107964964d7e5c67f81dcc9e42b13acbc25)
- More validation of a list of texture maps | [commit](https://github.com/facebookresearch/pytorch3d/commit/279f4a154dbb5a3936a2f4234b9e851648c281ec)
- Transform3D avoids gradient calculation when checking rotation matrix | [commit](https://github.com/facebookresearch/pytorch3d/commit/2f668ecefe9898e2224b35a6608937a44e5d8109)
- Avoid recalculating normals when a mesh is [scaled](https://github.com/facebookresearch/pytorch3d/commit/17633808d88facb4a1016b6b81bf681dfd0fd657) or [translated](https://github.com/facebookresearch/pytorch3d/commit/502f15aca73ffb88286a9341512f78e4a52b1a98)
- When TexturesUVs have a list of maps and some are identical, a subsequent join_scene will detect this and not duplicate the data | [commit](https://github.com/facebookresearch/pytorch3d/commit/e12a08133f4f790e1c36e284ef1903ed92f54a27)

0.4.0

Changelog

The key new features in this release is support for Implicit/Volume Rendering. This includes several methods for sampling camera rays and marching along the rays in order to render their color. We further introduce support for voxel grids. To this end, we implemented a new `Volumes` structure and methods for converting between `Pointclouds` and `Volumes`. The rendering of implicit surfaces as well as voxel grids has been showcased in two new tutorial jupyter notebooks.

We are also introducing a new [projects](https://github.com/facebookresearch/pytorch3d/tree/master/projects/nerf) folder with an implementation of NeRF. We plan to add more examples of papers which can be implemented using components from PyTorch3D.

Key features
- Volumes Datastructure | [commit](https://github.com/facebookresearch/pytorch3d/commit/03ee1dbf8238e22589b6afb7440351e79e34b099)
- Raysamplers: `GridRaysampler, MonteCarloRaysampler, NDCGridRaysampler`; `RayBundle` datastructure | [commit](https://github.com/facebookresearch/pytorch3d/commit/e6bc960fb565cd3a8bbc26edcd1109be4b0856a2)
Raymarchers: `AbsorptionOnlyRaymarcher, EmissionAbsorptionRaymarcher` | [commit](https://github.com/facebookresearch/pytorch3d/commit/1af1a36bd61f60b16b29fb5adbc3a5d740de9444)
- Implicit/Volume Renderer | [commit](https://github.com/facebookresearch/pytorch3d/commit/b466c381da3db7cc462c1df21d44b06a9ac7b191)
- Pointclouds to Volumes conversion | [commit](https://github.com/facebookresearch/pytorch3d/commit/aa9bcaf04c520b5fd0aa8d6d807b8090ea43d61c)

Projects
- Reimplementation of NeRF | [commit](https://github.com/facebookresearch/pytorch3d/commit/51de308b808ba28096d72ccd3f7c1019da4dea74)

Additional new features
- Taubin Smoothing for Meshes | [commit](https://github.com/facebookresearch/pytorch3d/commit/112959e0871ffd5ac0588ebf24e3d9aa21174ffa)
- Non Square Image Rasterization for Meshes | [commit](https://github.com/facebookresearch/pytorch3d/commit/d07307a451f3521e4cf522876b67b14b34021809)
- Non Square Image Rasterization for Pointclouds | [commit](https://github.com/facebookresearch/pytorch3d/commit/3d769a66cb184d75126600abeb4ad953cd56cb8d)
- Naive PyTorch version of Marching Cubes | [commit](https://github.com/facebookresearch/pytorch3d/commit/ebac66daeb4ea226291f6bd6c1516e690657c4c8)
- New Pluggable Data Loading API | [commit](https://github.com/facebookresearch/pytorch3d/commit/b183dcb6e8494e43d1ea5bf8e3bd0fa0816ca3f5)
- Mesh formats | [commit](https://github.com/facebookresearch/pytorch3d/commit/89532a876e77c09edf581f3b7a0de39df761d457)
- Pointcloud formats | [commit](https://github.com/facebookresearch/pytorch3d/commit/95707fba1c8eff99757691468f440f9ce63c8027)

New Tutorials
- Fit Textured Volume | [commit](https://github.com/facebookresearch/pytorch3d/commit/01f86ddeb1058e06e74fa95c3975e8c78826c813)
- Fit Neural Radiance Field | [commit](https://github.com/facebookresearch/pytorch3d/commit/9fc661f8b325142323b1925109ccf87ebb5904f2)

Small Updates
- Change io functions to use `iopath` | [commit](https://github.com/facebookresearch/pytorch3d/commit/513a6476bc41c7f5a26c77bd585b68026b643cde)
- Read heterogenous nonlist PLY properties as arrays | [commit](https://github.com/facebookresearch/pytorch3d/commit/3b9fbfc08c528d6c7388b570622fe7fc025d7890)
- Update the `MeshRasterizer` to automatically infer the camera type and set the `perspective_correct` setting for correcting barycentric coordinates after rasterization | [commit](https://github.com/facebookresearch/pytorch3d/commit/838b73d3b6eae97b2d536f2b9c5a35de5e112c20)

Bug Fixes
- Rasterization of mesh faces partially behind the image plane
- Full fix which clips meshes at specified z value prior to rasterization instead of only culling. | [commit1](https://github.com/facebookresearch/pytorch3d/commit/23279c5f1da5f6e1c0bb8f305e6636b8c857f3fd), [commit2](https://github.com/facebookresearch/pytorch3d/commit/39f49c22cd99feb5a50cf98287644cc56e2cd39e)
- Introduced two new rasterization settings (`z_clip_value`, `cull_to_frustum`) | [commit](https://github.com/facebookresearch/pytorch3d/commit/340662e98e97c5e105cf6570765d7bae3e6228bf)
- Check for verts/faces in Meshes to be on the same device | [commit](https://github.com/facebookresearch/pytorch3d/commit/569e5229a9cf3b92e7acaa657efe036935c10f51)
- Fix for index error with Texture Atlas sampling | [commit](https://github.com/facebookresearch/pytorch3d/commit/01759d8ffb4899de1157398e4052f76a13c56527)

Builds
- For Linux, instead of uploading wheels to PyPI which will only work with one particular version of PyTorch and CUDA, we now provide a range of built wheels on S3. Refer to [INSTALL.md](https://github.com/facebookresearch/pytorch3d/blob/master/INSTALL.md#3-install-wheels-for-linux) for instructions on how to download and install.

0.3.0

Changelog

The key new feature in this release is support for [Pulsar](https://arxiv.org/abs/2004.07484) as an alternative backend for point cloud rendering. Pulsar is a highly tuned backend with better scaling performance than the default backend but with less flexibility: it does not have support for custom rasterizers and compositors. It can be used for scenes with millions of spheres and up to 4K resolution and supports opacity optimization.

* CUDA/C++ implementation | [commit](https://github.com/facebookresearch/pytorch3d/commit/b19fe1de2fd39aa40c888a1cc02e45ed91a87851)
* PyTorch interface | [commit](https://github.com/facebookresearch/pytorch3d/commit/960fd6d8b6f55257dc1d205e8c8f3366202c23b7)
* Examples and Demos | [commit](https://github.com/facebookresearch/pytorch3d/commit/039e02601d447c127cc3a56c3d16716ef7d97a16)

Additional new features
* Plotly functions for visualization | [commit](https://github.com/facebookresearch/pytorch3d/commit/964893cdcba11c188c42716683fbc39a0d07ff43)
* Support for rendering batches of meshes/cameras/pointclouds
* Support for viewing plotly plots from PyTorch3D Cameras point-of-view
* `plot_scene` function
* Extend `sample_points_from_meshes` to support sampling textures | [commit](https://github.com/facebookresearch/pytorch3d/commit/327bd2b9762c05ec7a6f74c2ec1e46f2a764e326)
* `corresponding_cameras_alignment` function that estimates a similarity transformation between two sets of cameras | [commit](https://github.com/facebookresearch/pytorch3d/commit/316b77782e2aedea817bd2a4c6a7a787f3b61a1a)
* Support for variable size point radius in the pointcloud rasterizer | [commit](https://github.com/facebookresearch/pytorch3d/commit/ebe2693b11bffe8aa1d4d312ce812fcd5ee8f928)
* `save_ply` now by default saves to binary instead of ascii. An option makes the previous functionality available | [commit](https://github.com/facebookresearch/pytorch3d/commit/197f1d6217a6148b91b75c3a475f247218ccb488)
* Functions to convert to and from axis-angle representation of rotations | [commit](https://github.com/facebookresearch/pytorch3d/commit/c93c4dd7b2b68db92997f65e11d7b08acecce891)
* Visualization functions for the TexturesUV class | [commit](https://github.com/facebookresearch/pytorch3d/commit/aa4cc0adbce5f6277a862f5cedacd1c4555bb66e)

New tutorials
* Rendering DensePose Data with PyTorch3D | [commit1](https://github.com/facebookresearch/pytorch3d/commit/956d3a010cf8f1b0338436cd6697f1ab21099648), [commit2](https://github.com/facebookresearch/pytorch3d/commit/f34f4073f0287ec961f43dd451d9470baf0db557)
* Updates to Pointcloud and Mesh rendering tutorials | [commit](https://github.com/facebookresearch/pytorch3d/commit/9a5341bde3400c426385ba60b697ff95f54f89c5)

Small updates
* Fixes to support multigpu rendering | [commit](https://github.com/facebookresearch/pytorch3d/commit/563d441b000ad95c90f70ad77018c410a4626637)
* Support texture atlas loading for `.obj` files with meshes which only have material properties | [commit](https://github.com/facebookresearch/pytorch3d/commit/f5383a7e5a79bd9e912af0fb0199c557b9987877)
* Add support for changing the background color in Pointcloud compositors | [commit](https://github.com/facebookresearch/pytorch3d/commit/872ff8c796e0947469fda76a028439e1dc8d3696)
* Add support for returning the fragments from the output of the `MeshRenderer` | [commit](https://github.com/facebookresearch/pytorch3d/commit/c41aff23f0d4a3a91226fa73a3b37579f6087844)
* Support for axis angle representation of rotations | [commit](https://github.com/facebookresearch/pytorch3d/commit/c93c4dd7b2b68db92997f65e11d7b08acecce891)


Bug Fixes
* Fixed corner case in `look_at_view_transform` | [commit](https://github.com/facebookresearch/pytorch3d/commit/eb517dd70b20c8431a1cfc46e47b4c5c78529c5b)
* Fixed softmax_rgb_blend with mesh is outside zfar | [commit](https://github.com/facebookresearch/pytorch3d/commit/f8ea5906c0ae5ef6fb7800e3f0a05ebf56cdd927)
* Fixed corner case in `matrix_to_quaternion` function | [commit](https://github.com/facebookresearch/pytorch3d/commit/4d52f9fb8b5e53f5c6f98475fa0d005f7845e3b1)

Misc
The introduction of Pulsar adds the [NVIDIA CUB library](https://docs.nvidia.com/cuda/cub/index.html) as a build-time dependency.

0.2.5

Changelog

New features
- Data loaders for common 3D datasets
- ShapeNetCore dataloader | [commit](https://github.com/facebookresearch/pytorch3d/commit/358e211cde4412c24675af3d048f2d6d4391df59)
- R2N2 dataloader | [commit](https://github.com/facebookresearch/pytorch3d/commit/63ba74f1a8d5aa73d36999f5b5a7bf2af0fd8066)
- New texturing API
-Separate classes: TexturesVertex, TexturesUV, TexturesAtlas | [commit](https://github.com/facebookresearch/pytorch3d/commit/a3932960b31ff07e942a54e4608eae6ba12bf40a)
- Existing Textures class is now deprecated and will be removed in the next release.
- Cameras API refactor
- Renaming and restructure to have consistency across all classes | [commit](https://github.com/facebookresearch/pytorch3d/commit/57a22e7306db24140cb2133aa12a613cbf971c4c)
- Cameras have been renamed as follows:
`OpenGLPerspectiveCameras` -> `FoVPerspectiveCameras` `OpenGLOrthographicCameras` -> `FoVOrthographicCameras`
`SfMPerspectiveCameras` -> `PerspectiveCameras`
`SfMOrthographicCameras` -> `OrthographicCameras`
- All cameras now output projected values in NDC with the option to provide params in screen coordinates and convert them to NDC.
- Refer to the new note [cameras.md](https://github.com/facebookresearch/pytorch3d/blob/master/docs/notes/cameras.md) for more detailed information.
- Barycentric clipping in CUDA
- Move barycentric clipping from PyTorch to CUDA for increased efficiency. Now available as a rasterization setting `clip_barycentric_coords`. | [commit](https://github.com/facebookresearch/pytorch3d/commit/cc70950f4064e3feeb55281b829aa55aa4a7e942)
- One new representation for rotations
- Conversions to and from Zhou et al 6d rotation represention | [commit](https://github.com/facebookresearch/pytorch3d/commit/2f3cd987253c5da3741af9ceaec95c1bdbf12583)
- Customizable Background color
- Option added to HardPhongShader, HardGouraudShader, and HardFlatShader | [commit](https://github.com/facebookresearch/pytorch3d/commit/65620e716c184ec162df04df2f3fe08351a957f5)
- Joining several meshes to render a single scene
- New `join_meshes_as_scene` function which also supports joining textures | [commit1](https://github.com/facebookresearch/pytorch3d/commit/e053d7c45609ab25e345ac277a89232bfede8e90), [commit2](https://github.com/facebookresearch/pytorch3d/commit/909dc835050f84fc739fe75fd02884f305195afb )
- CUDA op for interpolating face attributes
- Functionality which was in python moved to cuda
https://github.com/facebookresearch/pytorch3d/commit/26d2cc24c1382047a81dd182f9621a17184e0a95
- Gather scatter on CPU | [commit](https://github.com/facebookresearch/pytorch3d/commit/7944d24d4872bdb01b821450840049e28d0ce12b)
- C++/CUDA implementations of sigmoid/softmax blending functions | [commit 1](https://github.com/facebookresearch/pytorch3d/commit/bce396df93e338cc0d35256d650a3b6ab3f8b973)
- C++ implementations for point-to-mesh distance functions | [commit](https://github.com/facebookresearch/pytorch3d/commit/74659aef26db47342d71df99f31b3f63eacd7182)
- `detach` method for `Meshes`, `Pointclouds` and `Textures` | [commit](https://github.com/facebookresearch/pytorch3d/commit/7f2f95f2255431267b9aabf90bb2bba7bb2b0880)
- Support for multiple `align_modes` in the Cubify operator | [commit](https://github.com/facebookresearch/pytorch3d/commit/a61c9376d578525c218c2e0ba7eeedef3d418076)
- Texture maps (i.e. the TexturesUV class) now has align_corners and padding_mode customizable, and the default has changed to align_corners=True. | [commit](https://github.com/facebookresearch/pytorch3d/commit/e25ccab3d9e4d5c8877627ab7d95dd3f77c9a993)

New tutorials:
- Data loading with ShapeNetCore and R2N2 dataloaders | [commit](https://github.com/facebookresearch/pytorch3d/commit/9242e7e65d3c1c841333ece7b7469cd677100e34)
- Fitting a textured mesh from multiview images | [commit](https://github.com/facebookresearch/pytorch3d/commit/9a5341bde3400c426385ba60b697ff95f54f89c5)

Small updates
- Compatibility with PyTorch 1.6
- Flag to make sorting optional in KNN
https://github.com/facebookresearch/pytorch3d/commit/806ca361c0d701e0269070e4d58be55e99d3b70e
- `update_padded` method on meshes
- Other optimizations use this | [commit](https://github.com/facebookresearch/pytorch3d/commit/1fb97f9c84598d3cc880713912df1d9a44fd1abe)

Bug Fixes:
- Temporary fix for rendering from inside a surface results in uninterpretable images | [issue][commit](https://github.com/facebookresearch/pytorch3d/commit/9aaba0483c08c9a40c26db0858f8c0688f33e850)
- This fix culls all face which are partially behind the image plane
- Scaling Pointclouds by a scalar now works | [commit](https://github.com/facebookresearch/pytorch3d/commit/2f0fd60186ef3ae8c6691841be315609f196fe42)
- SO3 log map fix for singularity at PI | [commit](https://github.com/facebookresearch/pytorch3d/commit/34a0df0630c964d4e4be225b1dc0ccf166743e75)
- Join mismatched texture maps on CUDA | [commit](https://github.com/facebookresearch/pytorch3d/commit/0c595dcf5b715ea1321825e0fe92ffa74e798d4f)
- Flat shading fix | [commit](https://github.com/facebookresearch/pytorch3d/commit/a0e14cae1e46e0748d676c70ec8114c6a99b771d)
- Efficiency PnP bug fix | [commit](https://github.com/facebookresearch/pytorch3d/commit/daf9eac801c12831c97b7e310be27f357d0fee7d)
- `look_at_transform` now gives the correct location of the camera when the object `at` location is not at `(0,0,0)` | [commit](https://github.com/facebookresearch/pytorch3d/commit/d0cec028c7ddb59b8e4d0ee054d0ea8b1a493d46)
- Rendering a batch of meshes with texture maps now correct for all members of the batch 283 | [commit](https://github.com/facebookresearch/pytorch3d/commit/9a50cf800e511031602cb4b9523cef7b448b16af)
- Extending meshes with texture maps where the verts and the verts_uvs have different lengths is now correct [commit](https://github.com/facebookresearch/pytorch3d/commit/90f6a005b09af9570fc50799a301303e49b67dfe)

Breaking Changes
- Unused parameter composite_params removed from compostor classes | [commit](https://github.com/facebookresearch/pytorch3d/commit/3d7dea58e150dae8070b3fea2f1deaf6f8c55106)
- `Textures` has now moved: (prev) `from pytorch3d.structures import Textures` -> (new) `from pytorch3d.renderer import TexturesUV, TexturesVertex, TexturesAtlas`. In addition due to the new texturing API, the generic `Textures` class will be deprecated in the next release (it is still currently available to be imported from `pytorch3d.renderer`)

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.