16-825 Assignment 1

Rendering Basics with PyTorch3D
Total: 100 Points + 10 Bonus

1. Practicing with Cameras

1.1. 360-degree Renders

Creating a 360-degree gif video showing continuous views of the cow mesh:

360-degree cow mesh animation

1.2 Re-creating the Dolly Zoom

Recreating the famous Dolly Zoom effect by changing focal length while moving the camera:

Dolly zoom effect animation

2. Practicing with Meshes

2.1 Constructing a Tetrahedron

360-degree tetrahedron animation
Answer:

Number of vertices: 4

Number of triangle faces: 4

2.2 Constructing a Cube

360-degree cube animation
Answer:

Number of vertices: 8

Number of triangle faces: 12

3. Re-texturing a Mesh

Re-texturing the cow mesh with smoothly changing colors from front to back:

Color Choice:

color1: [0.2, 0.8, 0.2] - Some shade of green

color2: [0, 0, 1]

Description: [Describe your color choices and reasoning]

Re-textured cow with gradient coloring

4. Camera Transformations

Finding relative camera transformations to produce specific output images:

Transformation 1

Camera transformation 1
Transformation 1:

R_relative description: Rotate camera 90 degrees around Z-axis

T_relative description: No movement - camera stays in same position

Transformation 2

Camera transformation 2

Transformation 3

Camera transformation 3
Transformation 2:

R_relative description: No rotation - camera keeps same orientation

T_relative description: Move camera 2 units further away from cow

Transformation 3:

R_relative description: No rotation - camera keeps same orientation

T_relative description: Move camera 0.5 units right and 0.5 units down

Transformation 4

Camera transformation 4
Transformation 4:

R_relative description: Rotate camera 90 degrees to the left around vertical axis

T_relative description: Move camera 3 units right and 3 units forward

5. Rendering Generic 3D Representations

5.1 Rendering Point Clouds from RGB-D Images

Point clouds constructed from RGB-D images of a plant:

Point Cloud 1

First RGB-D image point cloud

Point Cloud 2

Second RGB-D image point cloud

Combined Point Cloud

Union of both point clouds

5.2 Parametric Functions

Rendering objects using parametric functions:

Torus Point Cloud

360-degree torus point cloud

Custom Objects - Hexagon pointcloud in 3d space

360-degree custom parametric object

5.3 Implicit Surfaces

Representing geometry using implicit functions and marching cubes:

Torus Mesh

360-degree torus mesh from implicit surface

Custom Implicit Object - 3d object made of hexagons

360-degree custom implicit surface object
Mesh vs Point Cloud Tradeoffs

Rendering Speed: Point clouds render faster because they don't require face connectivity calculations or complex shading computations.

Rendering Quality: Meshes produce higher quality results with smooth surfaces, proper lighting, and textures, while point clouds can appear sparse or noisy.

Ease of Use: Point clouds are easier to create from raw sensor data, but meshes provide better structure for animations, editing, and physical simulations.

Memory Usage: Meshes use more memory due to storing face connectivity information, while point clouds only store vertex positions and colors.

Other Considerations: Meshes better represent continuous surfaces and allow for proper occlusion, while point clouds are ideal for sparse data like LiDAR scans but may require densification for good visualization.

6. Do Something Fun 10 Points

Creative use of 3D structures and rendering techniques:

Creative 3D project

7. Extra Credit: Sampling Points on Meshes 10 Points

Uniform sampling of mesh surfaces using stratified sampling:

10 Points

Original cow mesh with 10 sampled points

100 Points

Original cow mesh with 100 sampled points

1000 Points

Original cow mesh with 1000 sampled points

10000 Points

Original cow mesh with 10000 sampled points