16-825 Assignment 1: Rendering Basics with PyTorch3D

1. Practicing with Cameras

↑ Back to top

1.1 360-degree Renders

360-cow
360° orbit render of the cow mesh.

1.2 Re-creating the Dolly Zoom

dolly-cow
Dolly zoom: changing focal length while adjusting distance.

2. Practicing with Meshes

↑ Back to top

2.1 Constructing a Tetrahedron

360-tetrahedron
360° view of a tetrahedron.

Number of Vertices: 4

[ 1.0,  1.0,  1.0]
[ 1.0, -1.0, -1.0]
[-1.0,  1.0, -1.0]
[-1.0, -1.0,  1.0]

Number of Faces: 4

[[0, 1, 2],
 [0, 3, 1],
 [0, 2, 3],
 [1, 3, 2]]

2.2 Constructing a Cube

360-cube
360° view of a cube.

Number of Vertices: 8

[-1.0, -1.0, -1.0]
[ 1.0, -1.0, -1.0]
[ 1.0,  1.0, -1.0]
[-1.0,  1.0, -1.0]
[-1.0, -1.0,  1.0]
[ 1.0, -1.0,  1.0]
[ 1.0,  1.0,  1.0]
[-1.0,  1.0,  1.0]

Number of Faces: 12

[4, 5, 6], [4, 6, 7]
[0, 2, 1], [0, 3, 2]
[0, 7, 3], [0, 4, 7]
[1, 2, 6], [1, 6, 5]
[3, 6, 2], [3, 7, 6]
[0, 1, 5], [0, 5, 4]

3. Re-texturing a Mesh

↑ Back to top
360-retextured
360° view of re-textured cow.

Colors:

4. Camera Transformations

↑ Back to top

R_relative is a rotation matrix and T_relative is a translation vector; together they form the camera’s extrinsic transform mapping coordinates between frames.

Transformation 1

transformation-1
Camera rotated 90° clockwise about Z (no translation).

Relative Transformation:

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

T_relative =
[0, 0, 0]

Transformation 2

transformation-2
Camera moved away along Z (no rotation).

Relative Transformation:

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

T_relative =
[0, 0, 2]

Transformation 3

transformation-3
Camera rotated about Y and translated along X, Z.

Relative Transformation:

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

T_relative =
[-3, 0, 3]

Transformation 4

transformation-4
Camera translated along X and Y (no rotation).

Relative Transformation:

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

T_relative =
[0.5, -0.5, 0]

5. Rendering Generic 3D Representations

↑ Back to top

5.1 Rendering Point Clouds from RGB-D Images

point-cloud-1
Point Cloud 1
point-cloud-2
Point Cloud 2
combined-point-cloud
Combined Point Cloud (1 and 2)

5.2 Parametric Functions

torus
Torus
mobius_strip
Möbius Strip

5.3 Implicit Surfaces

torus-mesh
Torus (Mesh)
gyroid-mesh
Gyroid (Mesh)
Aspect Point Cloud Mesh
Rendering Speed Fast to capture/render; can slow with dense data Efficient on GPUs; triangle pipelines are optimized
Rendering Quality Often sparse/noisy; less realistic Smooth surfaces; shading & textures
Ease of Use Simple to generate from scanners/depth sensors Needs reconstruction/cleanup; integrates well with 3D tools
Memory Usage Lightweight unless very dense Extra storage for faces/connectivity

6. Do Something Fun

↑ Back to top

A simple fireworks animation by sampling points from a 3D mesh and launching them with random velocities under gravity. The points transition from a base color to a bright palette as they spread, and the frames are rendered into a rotating GIF.

fireworks
Fireworks point-cloud animation.

7. (Extra Credit) Sampling Points on Meshes

↑ Back to top
360-cow
360° Cow
10 points
10 Points
100 points
100 Points
1000 points
1000 Points
10000 points
10000 Points
100000 points
100000 Points