Assignment 1 of Learning for 3D Vision (16-889)

1. Practicing with Cameras

1.1. 360 Degree Rendering

1.2 Re-creating the Dolly Zoom

2. Practicing with Meshes

2.1. Constructing a Tetrahedron

2.2. Constructing a Cube

3. Re-texturing a mesh

color1 = (0.0,0.0,1.0) and color2 = (1.0,0.0,0.0)

4. Camera Transformations

R_rel and T_rel rotates and translates the camera w.r.t camera's given orientation. The values used for rendering the following images are mentioned in the code.

5. Rendering Generic 3D Representations

5.1 Rendering Point Clouds from RGB-D Images

First Plant image Second Plant image Joint 2 Plant images.

5.2 Parametric Functions

5.3 Implicit Surfaces

Rendering meshes is more computationally intensive than rendering point clouds because in case mesh we have to first infer the mesh's surface and then render it. However, meshes are more compact representation and require less memory. For instance, to render a cube we need to store only 8 vertices and 12 faces. However to get similar rendering results one would have to use very dense point cloud (thousands of points). Point clouds may be more friendly to use as inputs if we want to train a network to deform an object as each individual point in the point cloud can be optimized/moved separately without any linkage constraint (unlike mesh).

6. Do Something Fun

Here, I am combining multiple (3) meshes into one (by translating and rotating each of the mesh's vertices).

7. Sampling Points on Meshes

Number of late days 1