Assignment 1: Rendering Basics with PyTorch3D¶
Name: Xinyu Liu¶
1. Practicing with Cameras¶
1.1. 360-degree Renders¶

1.2 Re-creating the Dolly Zoom¶

2. Practicing with Meshes¶
2.1 Constructing a Tetrahedron¶
There are in total 4 vertices and 4 faces (4 triangles).

2.2 Constructing a Cube¶
The are in total 8 vertices and 6 faces (represented by 12 triangles).

3. Re-texturing a mesh¶
My color1 is [0, 1, 0] (Green), color2 is [1, 0, 1] (Magenta).

4. Camera Transformations¶
R_relative=[[0, 1, 0], [-1, 0, 0], [0, 0, 1]], T_relative=[0, 0, 0]: The camera rotates +90 around Z-axis, and now X-axis points to the previous Y-axis. The camera is still at origin, so no changes for T_relative.

R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], T_relative=[0, 0, 2]: There is no rotation occurs, so R_relative remains the same. And the camera translates +2 along Z-axis

R_relative=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], T_relative=[0.5, -0.5, 0]: There is no rotation, so R_relative remains the same. And the camera translates +0.5 along X-axis and -0.5 among Y-axis.

R_relative=[[0, 0, 1], [0, 1, 0], [-1, 0, 0]], T_relative=[-3, 0, 3]: The camera rotates +90 around Y-axis, and now X-axis points to the previous Z-axis. The camera then translates -3 along X-axis and +3 among Z-axis.

5. Rendering Generic 3D Representations¶
5.1 Rendering Point Clouds from RGB-D Images¶

5.2 Parametric Functions¶
My choice of 3d shape is mobius strip.

5.3 Implicit Surfaces¶
My choice of 3d shape is gyroid surface.

Rendering a mesh vs. point cloud¶
- Rendering speed: Generally, it is faster to render a point cloud than a mesh, because rendering a mesh requires not only vertices but also the surface connectivity between them. In contrast, rendering a point cloud only involves independent points.
- Rendering quality: While rendering a mesh usually takes longer, it captures more information about surface connectivity and fine details, which may be lost in a point cloud.
- Ease of use: A point cloud is easier to generate from depth sensors or LiDAR data, whereas a mesh requires more detailed information about faces or surface connectivity, which can be harder to obtain.
- Memory usage: Point clouds require less memory, since only point information needs to be stored. In contrast, a mesh requires storing both vertices and faces.
In conclusion, if you want more detailed face or surface information (better rendering quality), you should render a mesh, which comes with slower rendering speed, higher memory usage, and more complexity. On the other hand, if you want faster rendering, lower memory usage, and easier generation, you should choose a point cloud.
6. Do Something Fun¶
Trying to create some interesting symmetric 3d shape.

7. Sampling Points on Meshes¶
Here is the mesh for the cow.

Here is the sampled point clouds for the cow.
