1. Practicing with Cameras¶

1.1. 360-degree Renders¶

Rotating cow

1.2. Dolly Zoom¶

Dolly zoom

2. Practicing with Meshes¶

2.1. Constructing a Tetrahedron¶

Tetrahedron

There should be 4 vertices and 4 triangle faces in the tetrahedron mesh

2.2. Constructing a Cube¶

Cube

There should be 8 vertices and 12 triangle faces in the cube mesh

3. Re-texturing a mesh¶

Re-textured cow

My first color was green ([0.0, 1.0, 0.0]) and my second color was yellow ([1.0, 1.0, 0.0])

4. Camera Transformations¶

First transform

R_relative = [[0, 1, 0], [-1, 0, 0], [0, 0, 1]], (rotates the camera 90 degrees clockwise around the z-axis)
T_relative = [0, 0, 0] (keeps the camera in the same position)

Second transform

R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], (no rotation to the camera)
T_relative=[0, 0, 2] (moves the camera 2 units away from the cow along the z-axis)

Third transform

R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], (no rotation to the camera)
T_relative=[0.5, -0.5, 0] (moves the camera 0.5 units to the right and 0.5 units above the cow)

Fourth transform

R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]], (rotates the camera 90 degrees counterclockwise around the y-axis)
T_relative=[-3, 0, 3] (moves the camera 3 units to the left of the cow on the x-axis and 3 units further away from the cow)

5. Rendering Generic 3D Representations¶

5.1. Rendering Point Clouds from RGB-D Images¶

First point cloud Second point cloud Third point cloud

5.2. Parametric Functions¶

Torus:¶

Torus

Ellipse (my choice):¶

Ellipse

5.3. Implicit Surfaces¶

Torus:¶

Torus

Tradeoffs:¶

Rendering quality:

  • When rendering a mesh, you have to include things like vertices and faces, which makes the mesh look smoother and more refined.
  • Rendering a point cloud, however, means that surfaces could be more visually implied and could be noisy, as seen in the 3D rendering in 5.1

Rendering speed:

  • Rendering a mesh was slower since you have to use the marching cubes algorithm to generate the faces.
  • Rendering a point cloud was faster since you don't have to define faces, you just need to render each point in the gif.

Memory usage:

  • Rendering a mesh required less memory usage because you have faces that can explain the entire patch of space with only a few vertices.
  • Rendering a point cloud is memory-heavy because you have a large number of points that you need to render in 3D space to represent the same space that a single face (with multiple vertices) can describe.

Ease of use:

  • Meshes were harder to use for me because they had more moving parts, so to speak, and required using marching cubes to render.
  • Point clouds, on the other hand, were easier because you just had to define the points in 3D space and render them.

Hourglass (my choice):¶

Hourglass

6. Creative/Fun¶

Roman surface

For this one, I chose to create Steiner's Roman Surface using it's implicit function.