16-825 Assignment 1

Duc Doan

Q1: Practicing with cameras

Q1.1: 360-degree render

Q1.1

Q1.2: Dolly Zoom

Q1.2

Q2: Practicing with meshes

Q2.1: Tetrahedron

Q2.1

The mesh should have 4 vertices and 4 faces.

Q2.2: Cube

Q2.2

The mesh should have 8 vertices and 12 faces (2 triangles per cube face).

Q3: Re-texturing a mesh

Q3

color1 = [0, 0, 1]
color2 = [1, 0, 0]

Q4: Camera transformations

Original image: Q4_1

Transformations:

a) R_relative rotates the object by 90deg about z, T_relative does nothing:

| transform1 | Q4_2 |

b) R_relative does nothing, T_relative moves the object forward:

| transform3 | Q4_3 |

c) R_relative does nothing, T_relative moves the object to the left and downward w.r.t. the camera:

| transform4 | Q4_4 |

d) R_relative rotates the object -90deg about the camera y, T_relative moves the object forward (+z) then to the left (+x) to bring it back into the camera's FoV:

| transform2 | Q4_5 |

Q5: Rendering 3D representations

Q5.1: Rendering point clouds from RGB-D images

PC from first image PC from second image Combined PC
Q5.1_1 Q5.1_2 Q5.1_12

Q5.2: Parametric functions

Torus:

Q5.2_torus

Klein bottle (https://en.wikipedia.org/wiki/Klein_bottle#Bottle_shape):

Q5.2_klein

Q5.3: Implicit surfaces

Torus:

Q5.3_torus

Heart (https://mathworld.wolfram.com/HeartSurface.html):

Q5.3_heart

Tradeoffs between rendering as a mesh vs a point cloud:

Q6: Do something fun

A cube being morphed over time:

Q6

Q7: Stratified sampling

Mesh 10 pts 100 pts 1000 pts 10000 pts
Q7_mesh Q7_10 Q7_100 Q7_1000 Q7_10000