16-825: Learning for 3D Vision - Assignment 1

Vaibhav Parekh | Fall 2025

Problem 1-1: 360-degree Renders

Fig 1. Cow 360 render

Problem 1-2: Re-creating the Dolly Zoom

Fig 2. Dolly zoom

Problem 2-1: Constructing a Tetrahedron

Fig 3. A tetrahedron
Vertices required = 4, Faces required = 4

Problem 2-: Constructing a Cube

Fig 4. A cube
Vertices required = 8, Faces required = 12

Problem 3: Re-texturing a mesh

Fig 5. Re-texturing a cow mesh

Problem 4: Camera Transformations

Use of Rrelative and Trelative:

Rrelative is the rotation of the camera, and is applied before the original pose.

R = Rrelative  R0

Trelative is the translation of the camera, expressed in the rotated camera frame and then added to the rotated original translation.

T = Rrelative  T0  +  Trelative

Intuitively, you first turn the camera by Rrelative, and then move it by Trelative.

1. Camera Transformation - 0 (Original)

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

    T_relative = [0, 0, 0]
    
Original Image
Fig 6(a). Camera transformations – Original Image

2. Camera Transformation - 1

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

    T_relative = [0, 0, 0]
    
Camera transformation 1
Fig 6(b). Camera transformation 1

3. Camera Transformation - 2

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

    T_relative = [0, 0, 2]
    
Camera transformation 2
Fig 6(c). Camera transformation 2

4. Camera Transformation - 3

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

    T_relative = [0.5, -0.5, 0]
    
Camera transformation 3
Fig 6(d). Camera transformation 3

5. Camera Transformation - 4

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

    T_relative = [-3, 0, 3]
    
Camera transformation 4
Fig 6(e). Camera transformation 4

Problem 5-1: Rendering Point Clouds from RGB-D Images

Fig 7(a). Plant 1
Fig 7(b). Plant 2
Fig 7(c). Plant Union

Problem 5-2: Parametric Functions

Parametric torus
Fig 8(a). A parametric torus
Random parametric shape
Fig 8(b). A random parametric shape

Problem 5-3: Implicit Surfaces

Implicit torus
Fig 9(a). An implicit torus
Implicit Roman/Steiner surface
Fig 9(b). An implicit Roman/Steiner surface

Tradeoffs: Mesh vs. Point Cloud

  1. Rendering speed

    Point cloud rendering is usually faster because it only projects points onto the image plane and composites them.

    Mesh rendering is slower since rasterization has to account for triangle geometry, visibility, and shading.

  2. Rendering quality

    Point clouds can look sparse unless you render a very dense set of points, and even then surfaces appear fuzzy.

    Meshes give crisp, continuous surfaces with well-defined silhouettes and shading, making them much more photorealistic.

  3. Ease of use

    Point clouds are simpler to generate: just sample points in space, no connectivity required.

    Meshes require connectivity (faces between vertices), or you need an algorithm like marching cubes to extract them. This adds complexity but gives a structured representation.

  4. Memory usage

    Point clouds scale with the number of points: you can choose how dense you want them, so memory is flexible.

    Meshes can be memory-heavier at high resolution because you must store vertices, faces, and texture data.

  5. Applications

    Point clouds are often used for quick visualization, raw sensor data, or neural methods that directly predict unstructured geometry.

    Meshes are the standard for graphics and simulation because they provide watertight surfaces and support physical properties.

Problem 6: Do Something Fun

Fig 10. A sphere morphing into a torus as it rotates

(Extra Credit) Problem 7: Sampling Points on Meshes

Fig 11. Sampling 10, 100, 1000, and 10000 points