1. Practicing with Cameras (15 Points)

1.1 360-degree Renders (5 points)

360 gif

1.2 Re-creating the Dolly Zoom (10 points)

dolly gif

2. Practicing with Meshes (10 Points)

2.1 Constructing a Tetrahedron (5 points)

tetrahedron gif We need 4 vertices and 4 faces.

2.2 Constructing a Cube (5 points)

cube gif We need 8 vertices and 12 triangular faces.

3. Re-texturing a mesh (10 points)

colored cow gif I set color1=torch.Tensor([1.0, 1.0, 0.0]), color2=torch.Tensor([0.5, 0.0, 0.5]) so that the cow went from yellow to purple.

4. Camera Transformations (10 points)

q4 top left For the top-left image, the camera should be rotated 90 degrees clockwise around the z-axis, so the R_relative=[[0, 1, 0], [-1, 0, 0], [0, 0, 1]] and the T_relative=[0, 0, 0]

q4 top right For the top-right image, the camera should be moved back along the z-axis a couple of points, so the R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]] and the T_relative=[0, 0, 2]

q4 bot left For the bot-left image, the camera should be moved to the right, along the x-axis, and then moved up along the y-axis, so the R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]] and the T_relative=[0.5, -0.5, 0]

q4 bot right For the bot-right image, the camera should be rotated along the y-axis 90 degrees counter-clockwise, moved forward along the z-axis, and moved to the right along its x-axis, so the R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]] and the T_relative=[-3.0, 0, 3]

5. Rendering Generic 3D Representations (45 Points)

5.1 Rendering Point Clouds from RGB-D Images (10 points)

Here are three GIFs side by side:

5.2 Parametric Functions (10 + 5 points)

Torus gif torus

Ellipsoid gif ellipsoid

5.3 Implicit Surfaces (15 + 5 points)

Torus gif torus mesh gif

When generating a mesh, they are usually higher quality because we represent meshes with vertices and connected surfaces like triangles. However, when generating a point cloud, we need to add a lot more points in order to get similar quality. This increases runtime and memory usage. However, the main benefit of a point cloud is that it's easier to process and deal with, since it is just a set of 3D points and their RGB values. Meshes are generally harder to deal with we need to define the connectivity between mesh vertices.

Ellipsoid gif ellipsoid mesh gif

6. Do Something Fun (10 points)

I created a rectangular prism on the ground, and created a sphere mesh and colored it orange, to resemble a basketball.

basketball mesh gif

(Extra Credit) 7. Sampling Points on Meshes (10 points)

Here are three GIFs side by side. It is in order of original mesh, 10 points, 100 points, 1000 points, 10000 points: