16-825 Assignment 1: Rendering Basics with PyTorch3D¶

1. Practicing with Cameras¶

1.1. 360-degree Renders¶

1.2 Re-creating the Dolly Zoom¶

2. Practicing with Meshes¶

2.1 Constructing a Tetrahedron¶

My mesh has 4 vertices and 4 triangle faces.

2.2 Constructing a Cube¶

My cube mesh has 8 vertices and 12 triangle faces.

3. Re-texturing a mesh¶

I chose color1 to be hot pink and color2 to be purple.

4. Camera Transformations¶

R_relative is rotating the camera -90 degrees around the z-axis, with no translation.

No relative rotation, but T_relative shifts the camera -3 units along the z-axis (away from the cow).

No relative rotation, but T_relative shifts the camera -0.5 units along the x-axis and 0.5 units along the y-axis, so the cow moves to the lower left corner of the image frame.

R_relative is rotating the camera 90 degrees around the y-axis, and then T_relative shifts the camera 3 units along the x-axis and -3 units along the z-axis.

5. Rendering Generic 3D Representations¶

5.1 Rendering Point Clouds from RGB-D Images¶

Here are the points clouds corresponding to the first image, the second image, and formed by the union of the 2 point clouds:

5.2 Parametric Functions¶

Torus point cloud:

Braided torus point cloud:

5.3 Implicit Surfaces¶

Torus mesh:

Tradeoffs: Meshes are better for visualizing continuous surfaces, whereas point clouds have no notion of connectivity. This also means meshes are more conducive to doing texturing, shading, and lighting properly. Point clouds are easy to obtain directly from sensors (RGB-D camera), while meshes may require more preprocessing, but once formed, meshes are fast to render on GPU. In terms of memory usage, meshes can be more efficient for objects with large, smooth surfaces, while for a high-quality, smooth point cloud rendering, more storage may be needed.

Modulated sphere mesh:

6. Do Something Fun¶

I made an animation of a torus that looks like it's melting/dripping (kinda) and also modulating in color: