Assignment 1

1. Practicing with Cameras

1.1. 360-degree Renders

image

1.2 Re-creating the Dolly Zoom

image

2. Practicing with Meshes

2.1 Constructing a Tetrahedron

the tetrahedron mesh has 4 vertices and 4 triangular faces

image

2.2 Constructing a Cube

The cube mesh has 8 vertices and 12 triangular faces

image

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)

image

4. Camera Transformations

1->

R_relative=[[0, -1, 0], [-1, 0, 0], [0, 0, 1]]

T_relative= [0,0,0]

image

2->

R_relative= [[1, 0, 0], [0, 1, 0], [0, 0, 1]]

T_relative=[0, 0, 2]

image

3->

R_relative= [[1, 0, 0], [0, 1, 0], [0, 0, 1]]

T_relative=[0.5, -0.5, 0]

image

4->

R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]]

T_relative=[-3, 0, 3]

image

5. Rendering Generic 3D Representations

5.1 Rendering Point Clouds from RGB-D Images

image image image

5.2 Parametric Functions

Torus

image

Knot

image

5.3 Implicit Surfaces

Torus

image

Comparison of meshes vs. point clouds for rendering:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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

image

6. Do Something Fun

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

image