Assignment 3 : Neural Volume Rendering and Surface Rendering

Rodrigo Lopes Catto | rlopesca


A. Neural Volume Rendering

0. Transmittance Calculation (10 points)

Placeholder Image

1. Differentiable Volume Rendering

1.3. Ray sampling (5 points)

Placeholder Image Placeholder Image

1.4. Point sampling

Placeholder Image

1.5. Volume rendering

Placeholder Image Placeholder Image

2. Optimizing a basic implicit volume

2.2. Loss and training

Box center: (0.25, 0.25, 0.00)
Box side lengths: (2.01, 1.50, 1.50)

2.3. Visualization

Placeholder Image

3. Optimizing a Neural Radiance Field (NeRF)

Placeholder Image

4. NeRF Extras - View Dependence using nerf_materials.yaml

Placeholder Image

Trade off: Adding view dependence lets the NeRF model reproduce more realistic effects like specular highlights and reflections that change with the viewing angle, but it also makes the model more prone to overfitting the training views. If the network relies too much on the viewing direction, it can “memorize” how things look from seen cameras and fail to generalize to novel viewpoints, producing artifacts or highlights that stick to the camera. The key trade-off is between realism and generalization: more view dependence captures shiny surfaces better but risks losing consistency and stability across views.


B. Neural Surface Rendering

5. Sphere Tracing

Placeholder Image

In my implementation of the sphere_tracing function, I iteratively find where each ray intersects the surface. Starting from the ray origins, I move each point forward along its ray direction by the current SDF value. This process repeats until the SDF becomes smaller than a small threshold, meaning the ray is close enough to the surface. The loop stops once all rays have converged or the maximum number of iterations is reached. The function returns the final intersection points and a boolean mask showing which rays actually hit the surface. This makes the rendering both efficient and precise when locating surfaces.

6. Optimizing a Neural SDF

Input point cloud
Part 6 Input
Prediction
Part 6 Result

The network architecture follows the NeRF implementation from Section 3, with a few adjustments. Since the output represents a distance value, I removed the final ReLU layer used in NeRF. All network parameters are initialized dynamically using the settings defined in the configuration (.yaml) file. The Eikonal loss is calculated as the mean squared error between the L2 norm of the input gradients and 1.0, enforcing the SDF to maintain a gradient magnitude of 1 everywhere.

7. VolSDF

Placeholder Image Placeholder Image

Intuition for α and β: In VolSDF, β is a temperature/bandwidth that controls how “thick” the volumetric shell around the zero-level set is. Low β → a very sharp, thin shell (density spikes tightly around 𝑠(𝑥)=0); high β → a softer, thicker shell (non-zero density spreads farther from the surface). α is a scale on extinction (how opaque the shell is): higher α pushes rays to terminate more decisively near the surface (stronger opacity/weights), while lower α makes everything more transparent and gradients weaker.

Questions:

8. Neural Surface Extras

8.1. Render a Large Scene with Sphere Tracing

Placeholder Image