Assignment 1
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 mesh has 4 vertices and 4 triangular faces

2.2 Constructing a Cube
The cube mesh has 8 vertices and 12 triangular faces

3. Re-texturing a mesh
The colours chosen were:
color 1:[0.1, 1, 0.1] (green)
color 2:[1, 0.1, 0.1] (red)

4. Camera Transformations
1->
R_relative=[[0, -1, 0], [-1, 0, 0], [0, 0, 1]]
T_relative= [0,0,0]

2->
R_relative= [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
T_relative=[0, 0, 2]

3->
R_relative= [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
T_relative=[0.5, -0.5, 0]

4->
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
Torus

Knot

5.3 Implicit Surfaces
Torus

Comparison of meshes vs. point clouds for rendering:
- Rendering Quality
Meshes: Produce high-quality continuous surfaces with smooth shading, lighting and realistic appearance. Easy to compute normals so shadows and specular highlights are accurate.
Point Clouds: Often look sparse since no explicit surface connectivity exists. Needs surface reconstruction for realistic lighting.
- Rendering Speed
Meshes: Rendering is fast on GPUs since the graphics pipeline is optimized for triangles. However, rasterization or ray tracing requires traversing faces.
Point Clouds: Can be lightweight to render if you only plot points but achieving smooth results. For large dense clouds, performance drops.
- Ease of Use
Meshes: Require connectivity information (faces), which can be expensive to compute from raw scans. Editing and deformation are more structured.
Point Clouds: Very simple to generate (just a list of 3D coordinates + features). Useful in early stages of geometry acquisition or ML pipelines.
- Memory Usage
Meshes: Store fewer primitives because a mesh reuses vertices across faces. More memory-efficient once surfaces are known.
Point Clouds: For the same fidelity, often need millions of points. No connectivity, so redundancy is higher.
- Flexibility
Meshes: Great for tasks needing watertight geometry (simulation, physics, CAD).
Point Clouds: More flexible for partial or noisy data (e.g., LiDAR scans, depth cameras), where connectivity is unknown or unreliable.
Cone

6. Do Something Fun
Used wolf mesh (from Free3d.com) and added texture to look like zebra stripes
