Assignment 1¶
1. Practicing with Cameras (15 Points)¶
1.1. 360-degree Renders (5 points)¶

1.2 Re-creating the Dolly Zoom (10 points)¶

2. Practicing with Meshes (10 Points)¶
2.1 Constructing a Tetrahedron (5 points)¶

vertices = [[0.0,0.0,0.0], [-1.0,-1.0,-1.0], [-1.0,-1.0,1.0], [1.0,-1.0,0.0]]
faces = [[0, 1, 2], [0, 2, 3], [1, 2, 3], [0, 1, 3]]
Number of vertices = 4
Number of faces = 4
2.2 Constructing a Cube (5 points)¶

vertices = [[0.0,0.0,0.0], [1.0,0.0,0.0], [1.0,0.0,1.0], [0.0,0.0,1.0], [0.0,-1.0,0.0], [1.0,-1.0,0.0], [1.0,-1.0,1.0], [0.0,-1.0,1.0]]
faces = [[0, 1, 2], [0, 2, 3], [4, 5, 6], [4, 6, 7], [0, 4, 5], [0, 1, 5], [1, 5, 6], [1, 2, 6], [2, 6, 7], [2, 3, 7], [3, 7, 4], [3, 1, 4]]
Number of vertices = 8
Number of faces = 12
3. Re-texturing a mesh (10 points)¶

color1 = [0,0,1] (blue)
color2 = [1,0,0] (red)
4. Camera Transformations (10 points)¶

R_relative is the rotation matrix for rotating it counterclockwise by 270 degrees along the z axis (R_z(270)). There is no translation here so T_relative is all 0s
R_relative=[[0, 1, 0], [-1, 0, 0], [0, 0, 1]]
T_relative=[0, 0, 0]

R_relative is the identity matrix as there is no rotation here. T_relative is now changed on the z as there is a z translation here (camera is moved back)
R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
T_relative=[0, 0, 3]

R_relative is the identity matrix as there is no rotation here as well. T_relative is now changed with the x translation being 1 as the camera is shifted to the right.
R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
T_relative=[1, 0, 0]

R_relative is the rotation matrix for rotating it counterclockwise by 90 degrees along the y axis (R_y(90)). In order to move the camera so that is looks at the cow model rather than look at nothing, it is moved along the x and z directions.
R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]] T_relative=[-3, 0, 3]
5. Rendering Generic 3D Representations (45 Points)¶
5.1 Rendering Point Clouds from RGB-D Images (10 points)¶

5.3 Implicit Surfaces (15 + 5 points)¶
Torus

Tradeoffs:
- Speed: it is a lot faster to render a pointcloud than it is to render a mesh as a 2D grid of points can be directly used with parametric equations to get x,y,z points and then rendered at pointclouds, rather than having to first get voxels, then marching cubes to get a mesh.
- Rendering Quality: The quality of the mesh is not as smooth as the point cloud because it has first been converted to voxels which is more descrete and less continuous. (This would vary based on the number of points in the point cloud. If the point cloud had only a few points, then holes become apparent and the mesh representation allows to full up those holes which might be a better representation)
- Ease of use: It is easier to define point clouds than meshes as we do not have to worry about getting faces and sampling vertices.
- Memory usage: Point clouds use less memory than meshes.
Cone

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



