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
The tetrahedron has 4 faces, and 4 vertices.

2.2 Constructing a Cube
The tetrahedron has 8 vertices, and 12 faces.

3. Re-texturing a mesh
color1 = [0, 0, 1] (blue) and color2 = [1, 0, 0] (red).

4. Camera Transformations
- 1st image (the original camera matrix rotates about z axis -90 deg, no translation)
- R_relative=[[0, 1, 0], [-1, 0, 0], [0, 0, 1]], T_relative=[0, 0, 0]
- 2nd image (move camera further away, the world frame origin should be larger (on z axis) in the new camera frame, so increase the camera tranlation matrix z axis)
- R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], T_relative=[0, 0, 3]
- 3rd image (move camera to top right corner, so only modify the translation matrix to move along x axis and y axis)
- R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], T_relative=[0.5, -0.5, 0]
- 4th image (rotate camera about y axis 90 deg, move along x axis and z axis)
- R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]], T_relative=[-3, 0, 3]




5. Rendering Generic 3D Representations
5.1 Rendering Point Clouds from RGB-D Images



5.2 Parametric Functions

5.3 Implicit Surfaces
Rendering as a mesh is not that straight forward compared to the one using parametric functions and point cloud. Since rendering the mesh, we will first need to construct the voxels and then convert to the mesh. All these operations are not that easy compared to the one directly using point cloud. Regarding the rendering speed, I measured the mesh one and the point cloud one. It turns out that the point cloud one takes 2.4s with 200 points, 3.9s with 500 points, but the mesh one takes 4.4s with voxel size equals to 64. One possible reason is because of the complexity of converting to mesh. This might also determined by the number of points sampled for the point cloud. In my case, I sampled 200 points, which is relatively sparse, so the run time is slightly faster. For the rendering quality, I can see when I used 200 points in the points cloud, its quality is worse than the mesh one. The point cloud is relatively sparse while the mesh one is more dense. When I used 500 points, its quality is even better than the mesh one. However, with small voxel size, I can see the mesh is not that smooth compared to the point cloud one.

6. Do Something Fun
I created a render of pikachu with rainbow texture. And place the camera to make it zoom in first and then turn around.

7. Sampling Points on Meshes




