Late Days Used: 2

alt

1. Differentiable Volume Rendering

python main.py --config-name=box

1.3 Ray Sampling

xy_grid rays
alt alt

These images are produced at images/xy_grid.png and images/rays.png.

1.4 Point Sampling

alt

This image is produced at images/1-4.png.

1.5 Volume Rendering

Box Depth
alt alt

These outputs are produced at images/part_1.gif and _2.png.

2. Optimizing a basic implicit volume

python main.py --config-name=train_box

2.2 Center & Side Lengths of Box

Box Center: $(0.25, 0.25, - 0.00)$

Box Side Lengths: $(2.00, 1.50, 1.50)$

2.3 Visualization

alt

This output is produced at images/part_2.gif.

3 NeRF

python main.py --config-name=nerf_lego

alt

This output is produced at images/part_3.gif.

4.1 View-Dependent NeRF

python main.py --config-name=nerf_lego_view

No view dependence View-dependent
alt alt

The output is produced at images/part_3.gif.

Trade-off between increased view dependence and generalization quality:

4.3 High-res NeRF

Experiments with hidden layer size: n_hidden_neurons_xyz

The three experiments below can be run as:

python main.py --config-name=nerf_lego_highres_hidden_128

python main.py --config-name=nerf_lego_highres_hidden_256

python main.py --config-name=nerf_lego_highres_hidden_512

The output for each of these is produced at images/part_3.gif (they should be run sequentially to avoid overwriting).

Hidden Layer Size Chunk Size Result
128 32768 alt
256 32768 alt
512 16384 alt

Experiments with number of sampled points per ray: n_pts_per_ray

The three experiments below can be run as:

python main.py --config-name=nerf_lego_highres_ray_64

python main.py --config-name=nerf_lego_highres_hidden_256 (intentionally same as second above)

python main.py --config-name=nerf_lego_highres_ray_256

The output for each of these is produced at images/part_3.gif (they should be run sequentially to avoid overwriting).

n_pts_per_ray Chunk Size Result
64 32768 alt
128 32768 alt
256 16384 alt