33 Commits

Author SHA1 Message Date
Jeremy Francis Reizenstein
3fc3ea507b PyTorch>1.9 version str
Make code for downloading linux wheels robust to double-digit PyTorch version.
2021-12-17 06:01:51 -08:00
Jeremy Reizenstein
093999e71f update tutorials for release
Summary: Pre 0.6.1 release, make the tutorials expect wheels with PyTorch 1.10.0

Reviewed By: patricklabatut

Differential Revision: D33016834

fbshipit-source-id: b8c5c1c6158f806c3e55ec668117fa762fa4b75f
2021-12-13 04:38:16 -08:00
Jeremy Reizenstein
b0dd0c8821 rename master branch to main
Summary: Change doc references to master branch to its new name main.

Reviewed By: nikhilaravi

Differential Revision: D30303018

fbshipit-source-id: cfdbb207dfe3366de7e0ca759ed56f4b8dd894d1
2021-08-16 04:06:53 -07:00
Jeremy Reizenstein
addbe49de1 update tutorials for new prebuilt version
Summary: At the next release, the prebuilt PyTorch3D wheels will depend on PyTorch 1.9.0. Update the tutorials to expect this.

Reviewed By: nikhilaravi

Differential Revision: D29614450

fbshipit-source-id: 39978a6a55b62fb7c7e62aaa8f138e47cadd631e
2021-08-03 08:10:52 -07:00
Jeremy Reizenstein
d17b121d9d remove skimage import from most tutorials
Summary:
Several tutorials were importing skimage and not using it (and it is not an official dependency of PyTorch3D).

Also several had a bad call to plt.grid.

Reviewed By: nikhilaravi

Differential Revision: D28185822

fbshipit-source-id: adabfd0d4d339e1081c26b7b28f5e3953b492f2e
2021-05-05 04:06:43 -07:00
Jeremy Reizenstein
124bb5e391 spelling
Summary: Collection of spelling things, mostly in docs / tutorials.

Reviewed By: gkioxari

Differential Revision: D26101323

fbshipit-source-id: 652f62bc9d71a4ff872efa21141225e43191353a
2021-04-09 09:58:54 -07:00
Jeremy Reizenstein
db6fbfad90 update notebooks for s3 wheels
Summary: Prepare the tutorial notebooks to use wheels from S3 when run on colab.

Reviewed By: nikhilaravi

Differential Revision: D26226932

fbshipit-source-id: 1f9366c3fb4ba195333a5d5dfa3f6876ea934508
2021-02-05 05:52:36 -08:00
Jeremy Reizenstein
4296fd96c5 curl needs -L
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
2020-11-10 16:35:42 -08:00
Jeremy Reizenstein
de7af4a704 CUB when installing inside tutorials
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
2020-11-10 13:06:08 -08:00
Jeremy Reizenstein
fdcf368708 import vis parts separately
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
2020-10-29 10:16:43 -07:00
Jeremy Reizenstein
aa4cc0adbc images for debugging TexturesUV
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
2020-10-27 10:10:05 -07:00
Amitav Baruah
3d1863ce6f Update tutorials to reflect plotly refactor
Summary: Change the two affected tutorials to use plot_scene and plot_batch_individually.

Reviewed By: nikhilaravi

Differential Revision: D24235480

fbshipit-source-id: ca9d73bfb7ccf733efaf16299c15927406d7f2aa
2020-10-20 17:16:17 -07:00
Amitav Baruah
5d65a0cf8c Rename visualization to vis
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
2020-10-06 15:55:05 -07:00
Amitav Baruah
a03fd7320f Add plotly visualization examples
Summary: Add examples of using the Plotly visualization functions to the corresponding tutorial notebooks.

Reviewed By: nikhilaravi

Differential Revision: D23879109

fbshipit-source-id: ea8c45aa6c828eb2f6ea2ae1c8846adc486f92e0
2020-10-01 16:49:19 -07:00
Jeremy Reizenstein
9aeb88b48e tutorial fixes. validate #cameras
Summary:
Update the installation cells to import torch.
Replace use of deprecated Textures in deform tutorial.
Correct the deform tutorial's idea of its own name.
Fix typo in batched part of render_textured_meshes which meant only one mesh was being rendered with a batch of cameras.
Add an error check in the rasterizer to make the error friendly from such a mistake elsewhere.

Reviewed By: gkioxari

Differential Revision: D23345462

fbshipit-source-id: 1d5bd25db052f7ef687b7168d7aee5cc4dce8952
2020-08-26 08:27:53 -07:00
Jeremy Reizenstein
32484500be tutorial fixes from #336. Wheels with cuda10.1.
Summary:
Add a document to explain how to run the tutorials.
Fix API of TexturesVertex in fit_textured_mesh.
Prepare cuda 10.1 wheels (not 10.2) for linux to be available on pypi - this matches what colab has.
Change the tutorials to use these new wheels.

Reviewed By: gkioxari

Differential Revision: D23324479

fbshipit-source-id: 60e92a3f46a2d878f811b7703638f8d1dae143d9
2020-08-25 13:11:10 -07:00
Nikhila Ravi
90f6a005b0 Tutorials textures updates and fix bug in extending meshes with uv textures
Summary:
Found a bug in extending textures with vertex uv coordinates. This was due to the padded -> list conversion of vertex uv coordinates i.e.                 The number of vertices in the mesh and in verts_uvs can differ
e.g. if a vertex is shared between 3 faces, it can
have up to 3 different uv coordinates. Therefore we cannot convert directly from padded to list using _num_verts_per_mesh

Reviewed By: bottler

Differential Revision: D23233595

fbshipit-source-id: 0c66d15baae697ead0bdc384f74c27d4c6539fc9
2020-08-21 19:20:09 -07:00
Georgia Gkioxari
57a22e7306 camera refactoring
Summary:
Refactor cameras
* CamerasBase was enhanced with `transform_points_screen` that transforms projected points from NDC to screen space
* OpenGLPerspective, OpenGLOrthographic -> FoVPerspective, FoVOrthographic
* SfMPerspective, SfMOrthographic -> Perspective, Orthographic
* PerspectiveCamera can optionally be constructred with screen space parameters
* Note on Cameras and coordinate systems was added

Reviewed By: nikhilaravi

Differential Revision: D23168525

fbshipit-source-id: dd138e2b2cc7e0e0d9f34c45b8251c01266a2063
2020-08-20 22:22:06 -07:00
Nikhila Ravi
a3932960b3 Texturing API updates
Summary:
A fairly big refactor of the texturing API with some breaking changes to how textures are defined.

Main changes:
- There are now 3 types of texture classes: `TexturesUV`, `TexturesAtlas` and `TexturesVertex`. Each class:
   - has a `sample_textures` function which accepts the `fragments` from rasterization and returns `texels`. This means that the shaders will not need to know the type of the mesh texture which will resolve several issues people were reporting on GitHub.
  -  has a `join_batch` method for joining multiple textures of the same type into a batch

Reviewed By: gkioxari

Differential Revision: D21067427

fbshipit-source-id: 4b346500a60181e72fdd1b0dd89b5505c7a33926
2020-07-29 16:11:23 -07:00
Jeremy Reizenstein
275ddade66 CPU device for tutorials
Reviewed By: nikhilaravi

Differential Revision: D22357376

fbshipit-source-id: c103f9b0c798d4425d642781b5bfbb1a27310270
2020-07-03 08:52:41 -07:00
Jeremy Reizenstein
52979226bc strip output from tutorials
Summary: It's easier to understand code changes if we don't store the output in the notebooks. This is just a run of nbstripout on all the notebooks.

Reviewed By: nikhilaravi

Differential Revision: D22357375

fbshipit-source-id: bffdb426af2f676d448630d717658d609c224811
2020-07-03 08:52:41 -07:00
Nikhila Ravi
474c8b456a remove bin_size from the settings in the tutorials
Summary: Remove `bin_size` and `max_faces_per_pixel` from being specified. This means the coarse-to-fine rasterization will be used by default and will help avoid confusion with the naive version.

Reviewed By: jcjohnson

Differential Revision: D20908905

fbshipit-source-id: c181c88e844d888aa81a36870918307961dc1175
2020-04-08 10:07:36 -07:00
Nikhila Ravi
6d34e1c60d Tutorial updates
Summary:
Add a note about the difference between naive and coarse-to-fine rasterization to all the rendering tutorials.

Update the render pointclouds tutorial to wget the data file.

Reviewed By: gkioxari

Differential Revision: D20575257

fbshipit-source-id: a2806b9452438f97cb754f87e011c6e32e2545e4
2020-03-20 18:26:49 -07:00
Patrick Labatut
c9742d00b0 Enable spelling linter for Markdown, reStructuredText and IPython notebooks
Summary: Enable spelling linter for Markdown, reStructuredText and IPython notebooks under `fbcode/vision/fair`. Apply suggested fixes.

Reviewed By: ppwwyyxx

Differential Revision: D20495298

fbshipit-source-id: 95310c7b51f9fa68ba2aa34ecc39a874da36a75c
2020-03-17 16:33:20 -07:00
Nikhila Ravi
3901dbe4de website updates
Summary:
A few small website updates:

- changed the tutorials to point to the `stable` tag on github so we don't have to update the website each time we want to run them!
- changed the colab button
- re ran notebook cells to update the images for textured meshes

Once these fixes are landed I can build and publish the website.

Reviewed By: bottler

Differential Revision: D20484836

fbshipit-source-id: 603a05e752f631c60d1a3abb9adeb1b9b451ab98
2020-03-17 13:08:21 -07:00
Patrick Labatut
25d2e2c8b7 Use a consistent case for PyTorch3D
Summary: Use a consistent case for PyTorch3D (matching the logo...): replace all occurrences of PyTorch3d with PyTorch3D across the codebase (including documentation and notebooks)

Reviewed By: wanyenlo, gkioxari

Differential Revision: D20427546

fbshipit-source-id: 8c7697f51434c51e99b7fe271935932c72a1d9b9
2020-03-17 12:48:43 -07:00
Nikhila Ravi
15c72be444 Fix coordinate system conventions in renderer
Summary:
## Updates

- Defined the world and camera coordinates according to this figure. The world coordinates are defined as having +Y up, +X left and +Z in.

{F230888499}

- Removed all flipping from blending functions.
- Updated the rasterizer to return images with +Y up and +X left.
- Updated all the mesh rasterizer tests
    - The expected values are now defined in terms of the default +Y up, +X left
    - Added tests where the triangles in the meshes are non symmetrical so that it is clear which direction +X and +Y are

## Questions:
- Should we have **scene settings** instead of raster settings?
    - To be more correct we should be [z clipping in the rasterizer based on the far/near clipping planes](https://github.com/ShichenLiu/SoftRas/blob/master/soft_renderer/cuda/soft_rasterize_cuda_kernel.cu#L400) - these values are also required in the blending functions so should we make these scene level parameters and have a scene settings tuple which is available to the rasterizer and shader?

Reviewed By: gkioxari

Differential Revision: D20208604

fbshipit-source-id: 55787301b1bffa0afa9618f0a0886cc681da51f3
2020-03-06 06:51:05 -08:00
Nikhila Ravi
f0dc65110a Shader API more consistent naming
Summary:
Renamed shaders to be prefixed with Hard/Soft depending on if they use a probabalistic blending (Soft) or use the closest face (Hard).

There is some code duplication but I thought it would be cleaner to have separate shaders for each task rather than:
- inheritance (which we discussed previously that we want to avoid)
- boolean (hard/soft) or a string (hard/soft) - new blending functions other than the ones provided would need if statements in the current shaders which might get messy.

Also added a `flat_shading` function and a `FlatShader` - I could make this into a tutorial as it was really easy to add a new shader and it might be a nice showcase.

NOTE: There are a few more places where the naming will need to change (e.g the tutorials) but I wanted to reach a consensus on this before changing it everywhere.

Reviewed By: jcjohnson

Differential Revision: D19761036

fbshipit-source-id: f972f6530c7f66dc5550b0284c191abc4a7f6fc4
2020-02-19 23:16:50 -08:00
Junior Rojas
3ba4398095 Fix typo (#54)
Summary: Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/54

Differential Revision: D19951851

Pulled By: gkioxari

fbshipit-source-id: cf41d5806c761639d1efa42a633404b248486c30
2020-02-18 10:15:16 -08:00
Jeremy Reizenstein
8fe65d5f56 Single function to load meshes from OBJs. join_meshes.
Summary:
Create the textures and the Meshes object from OBJ files in a single call.

There is functionality in OBJ files (like normals) which is ignored by this function.

Reviewed By: gkioxari

Differential Revision: D19691699

fbshipit-source-id: e26442ed80ff231b65b17d6c54c9d41e22b4e4a3
2020-02-13 03:38:07 -08:00
Nikhila Ravi
09992a388f Update tutorials for Google Colab
Summary:
Update all colab notebooks to:
- Install pytorch3d using pip install from github.
- Retrieve data using `wget`. I set the wget commands to save the files in the same directory structure as in the PyTorch3d repo so that the rest of the tutorial would work for running locally or on Colab.

This should resolve the issues on GitHub with running the colab notebooks.

Reviewed By: gkioxari

Differential Revision: D19827450

fbshipit-source-id: d7b338597ddfd9a84c24592d4dccd274cae11d05
2020-02-10 19:08:01 -08:00
Nikhila Ravi
15d3a4557e Setup website with docusaurus (#11)
Summary:
Set up landing page, docs page, and html versions of the ipython notebook tutorials.
Pull Request resolved: https://github.com/fairinternal/pytorch3d/pull/11

Reviewed By: gkioxari

Differential Revision: D19730380

Pulled By: nikhilaravi

fbshipit-source-id: 5df8d3f2ac2f8dce4d51f5d14fc336508c2fd0ea
2020-02-04 17:27:16 -08:00
facebook-github-bot
dbf06b504b Initial commit
fbshipit-source-id: ad58e416e3ceeca85fae0583308968d04e78fe0d
2020-01-23 11:53:46 -08:00