16-825 Assignment 1: Rendering Basics with PyTorch3D

By Lamia Alsalloom (lalsallo)

Fall 2025

1. Practicing with Cameras

1.1 360° Turntable

my render of a looping 360° GIF of the cow using look_at_view_transform.

360° Cow Turntable GIF

1.2 Dolly Zoom

360° Cow Turntable GIF

2. Practicing with Meshes

2.1 Tetrahedron

for the prupose of debugging, I render twice one Tetrahedron has one color, and the other has each face colored, we end up with a Tetrahedron of vertices=4, triangle faces=4.

360° Cow Turntable GIF 360° Cow Turntable GIF

2.2 Cube

Render our cube we end up with vertices=8, faces=12.

360° Cow Turntable GIF

3. Re-texturing a Mesh

We interpolate vertex colors along z from color1 (front): orange to color2 (back): pink

Color choices: color1 (front, z_min): orange = [1.0, 0.550000011920929, 0.0] color2 (back, z_max): pink = [1.0, 0.0, 0.5]

360° Cow Turntable GIF

4. Camera Transformations

The relative rotation R_rel defines the camera orientation, while the relative translation T_rel shifts the camera in space. Together, we produce the following four viewpoints of the cow:

Transform 1

Transform 1: Rotate the camera counter clockwise to make the image appear clockwise. Axes are swapped, y is flipped. No translation applied.

Transform 2

Transform 2: Swap x and z while flipping z to view the cow from the side.

Transform 3

Transform 3: Keep camera orientation fixed. Translate it about 2 units away along the viewing axis.

Transform 4

Transform 4: Maintain orientation. Keep depth fixed but shift the camera slightly right and upward in the image plane, such that the cow appears on the lower left of the frame.

5. Rendering Generic 3D Representations

5.1 Point Clouds from RGB-D

Render point clouds from two RGB-D views and their union.

Point Cloud 1

First camera

Point Cloud 2

Second camera

Union Point Cloud

Union: Combined point clouds.

5.2 Parametric Functions

Torus Point Cloud

Torus Point Cloud (num_samples=200) i'm aware we are a little too close to the object but as it rotates we can see all its sides clearly

Extra Point Cloud

Extra Object: We render a sphere with (num_samples=200)

5.3 Implicit Surfaces

Torus Mesh

Torus Implicit Mesh

Extra Mesh

Extra Mesh Object: We render an ellipsoid.

Mesh vs Point Cloud

  • Speed: Meshes render efficiently with rasterization, while large point clouds slow down as point count increases.
  • Quality: Meshes produce smooth, continuous surfaces with sharp edges while point clouds may look noisy or incomplete if under sampled.
  • Memory: Point clouds grow linearly with the number of sampled points, while meshes need extra storage for faces but can often represent surfaces more compactly.
  • Ease of Use: Point clouds are straightforward to create because we get them directly from RGB-D, where meshes support richer information like normals, textures, and UV maps.

6. Do Something Fun

We will create a Cow Carousel with a Disco Ring theme cause why not. We clone the cow multiple times in a circle, tint each clone a different color, spin them, and render a 360° GIF

cow carsoul

Warning! staring for too long might cause a headach, viewers discretion advised.

7. (EC) Sampling Points on Meshes (10 pts)

Original Cow Mesh

Original Mesh: Baseline cow model.

10 Samples

10 Samples: Very sparse points.

100 Samples

100 Samples: Coarse approximation.

1000 Samples

1000 Samples: Much denser coverage.

10000 Samples

10000 Samples: Nearly continuous surface.