TL;DR

  1. NeRF solves novel view synthesis: from a sparse set of images with known camera poses, render new views of the same scene.
  2. An MLP stores color and volume density for every 3D point and viewing direction.
  3. The scene is a cloud of tiny colored particles. is the probability that a ray stops at ; the transmittance is the probability of getting there. The pixel color is the expected color under the PDF .
  4. Discretized, this is alpha compositing: with and . It is differentiable, so NeRF is trained with a photometric loss on 2D images.
  5. Without positional encoding (Fourier features) the results are blurry.
  6. Limitations: static scenes only, no editing, no generalization, slow, inaccurate surfaces. Variants fix one each: D-NeRF (dynamic), NeRF-W (internet photos), Control-NeRF (editing), Instant NGP (speed), UniSurf (surfaces).

Exam relevance

Highest priority. Exam task 4: both rendering formulas (NeRF and 3D Gaussian Splatting) were given; explain every symbol (, , , , …) and compare NeRF and 3DGS (similarities and differences). See NeRF vs. 3D Gaussian Splatting and Volume Rendering in NeRF.

Slide 2: scenes reconstructed with NeRF.

Overview: NeRF (2020), the foundational breakthrough · D-NeRF (2021), dynamic NeRF · HyperNeRF (2021), topological dynamics · NeRF-W (2021), unconstrained capture · Control-NeRF (2023), scene manipulation · Instant NGP (2022), training speed. (HyperNeRF appears in the overview, but its slides are hidden and not in the PDF.)

NeRF: The Foundational Breakthrough

Novel View Synthesis

Slides 4-6

Problem: view interpolation / novel view synthesis. Input: sparsely sampled images of a scene. Learn a scene representation. Output: novel views of the scene. (NeRF, Mildenhall et al., ECCV 2020.)

Instead of learning the scene geometry directly, NeRF learns a radiance field: a neural network that takes a 3D point and a camera viewing direction and predicts a color and a density at that point. Volume rendering then turns this into an image.

Radiance field

Input: spatial location + viewing direction (5D). Output: color + density .

F_theta maps position and viewing direction to color and density
Slide 5: learning a radiance field representation of the scene.

Volume rendering (continuous)

Given color and density, the color of every camera ray is

SymbolMeaning
color of the camera ray (the rendered pixel)
camera ray: camera center, direction
near and far bounds
color at (view-dependent, from the MLP)
volume density: probability of a ray terminating at an infinitesimal particle at (from the MLP)
accumulated transmittance along the ray: probability that the ray travels from to without hitting any particle

Intuition

A high density gives a high color contribution, but only if the transmittance is also high. Once the ray has hit a high-density region (inside a surface), becomes small, and everything behind it contributes nothing. The equation contains both: how dense a point is, and how likely the ray made it that far.

Trap

The upper limit of the inner integral of is , not (the speaker notes write ). Otherwise would be constant along the ray. is not an output of the MLP; it is accumulated from .

Radiance, Volumetric Radiance and Density

Slides 7-10

Radiance

Radiance is (differential) energy per unit area, solid angle and wavelength: the density of photons at a point, traveling in a given direction, at a given wavelength (= color):

  • Radiance along an unblocked ray is constant (energy conservation).
  • The light field is the radiance for every possible ray.

Volumetric radiance

The scene is a cloud of tiny colored particles. Their color changes according to the viewpoint. If a ray traveling through the scene hits a particle at , we return its radiance/color .

Volumetric density

The probability that the ray stops in a small interval around is . is also called volume(tric) density.

A ray from the camera through a cloud of particles
Slide 8: volumetric radiance
Probability of hitting at t is sigma(t) dt
Slide 9: volumetric density

Scene representation: a field (neural? maybe)

While evaluating the field along a ray, we retrieve the color only if is visible. The transmittance is the probability that no particle is hit in . (See Neural Field.)

Trap

is a density (, unit 1/length), not a probability; is the probability. can be larger than 1.

Transmittance and Expected Ray Termination

Slides 11-14

Relating and : hit probabilities are statistically independent along the ray ():

Transmittance

No hits before is the exponential of the integral over the density up to .

Intuition

Survival multiplies, density adds. Because the hits are independent, the survival probabilities of consecutive pieces multiply; in the limit, the product becomes the exponential of an integral.

Expected ray termination (Slide 13):

  • is a cumulative distribution function (CDF): the probability that the ray hits something before reaching . It is non-decreasing, is (right) continuous, , .
  • is a probability density function (PDF): the probability that a ray stops at .

Volume rendering as an expectation (Slide 14)

The expected color along a ray is a convex combination of colors, weighted by the probability that the ray stops there.

How do we solve this? Discretize the nested integral.

Discretization: NeRF as Alpha Blending

Slides 15-19

Approximating the integral: split the ray into segments with endpoints . The segment length is .

Warning

The segments are not necessarily uniform. A piecewise constant density does not give a piecewise constant transmittance.

Approximating the nested integral: assume the volume density and color are constant within each interval (a Riemann sum):

NeRF as alpha blending (Slide 18)

NeRF as alpha blending with segment opacity and occlusion
Slide 18: NeRF as alpha blending.

Volume Rendering in NeRF

Slide 19

This is the formula to know by heart (and to explain symbol by symbol):

Discrete volume rendering in NeRF

SymbolMeaning
estimated color of ray (the pixel)
number of samples along the ray
sample positions: uniformly random within evenly spaced bins between and
distance between adjacent samples (not uniform)
volume density at sample (MLP output)
color at (MLP output, view-dependent)
alpha (as in traditional alpha compositing): probability that the ray stops within segment ; computed from and , in
accumulated transmittance: probability that the ray reaches sample ; sum/product only up to
Color-coded NeRF volume rendering formula with every term labeled
Slide 19: volume rendering in NeRF, every term labeled.

Common mistakes

  • sums only up to , not .
  • In NeRF, is not a network output; it is computed from and (in 3DGS, the opacity is learned).
  • The samples are not equally spaced; only the bins are.
  • Why not simply ? Because can exceed 1, while is always a valid probability.

Training Neural Radiance Fields

Slides 20-22

Training loop

  1. March camera rays through the scene to generate a sampled set of 3D points.
  2. Use those points and their 2D viewing directions as input to the network to produce colors and densities.
  3. Use classical volume rendering to accumulate them into a 2D image.
  4. Minimize the error between the rendered color and the ground-truth color:
5D input, MLP output color and density, volume rendering, rendering loss
Slide 20: training neural radiance fields.
Slide 21: a ray is sampled, every sample is fed to F_θ, and the colors and densities are composited into a pixel (played 1.5x).

The rendering function is differentiable, so the scene representation is optimized by minimizing the residual between synthesized and observed images.

flowchart LR
  P["camera pose"] --> R["rays r = o + t d"] --> S["samples t_i"] --> E["positional encoding<br/>γ(x), γ(d)"] --> M["MLP F_θ"] --> O["(c_i, σ_i)"] --> V["Σ T_i α_i c_i"] --> C["pixel color Ĉ(r)"]
  C -- "training only" --> L["loss vs. GT pixel<br/>backprop, update θ"]
Training timeInference time
Inputphotos with known camera poses (e.g. from COLMAP)a new camera pose
What happensrender, photometric loss, backpropagationonly render
What is learnedthe MLP weights (one network per scene)nothing

View-dependent illumination: the viewing direction lets the color change with the view, e.g. specular reflections on a table or screen.

Slide 22: effect of θ and φ on the output field.

Positional Encoding

Slides 23-28

Plain NeRF gives blurry results. Why? Coordinate-based networks fail to learn high-frequency details, for all kinds of data: RGB images, 3D shapes, density, radiance fields.

Coordinate-based MLPs produce blurry images, shapes and radiance fields
Slide 24: why blurry results?

Solution (Tancik et al., NeurIPS 2020, “Fourier Features”):

  • In the naive setting, the bandwidth of the Neural Tangent Kernel limits the spectrum of the learned function.
  • A Fourier feature mapping turns the neural kernel into a stationary kernel in the low-dimensional input domain and increases the spectrum.

Positional encoding

applied to each coordinate input (pixel location for images, 3D point for NeRF).

Fourier features make coordinate MLPs sharp
Slide 26: with Fourier features
Ground truth, no positional encoding, complete model
Slide 27: positional encoding in NeRF
Slide 28: without positional encoding
Slide 28: with positional encoding (Mueller et al., SIGGRAPH 2022)

With positional encoding, the network converges much faster and learns the exact appearance of the scene.

Geometry and Results

Slides 29-30

Scene geometry can be approximated using a threshold on the density, or with the expected ray termination depth .

Slide 29: rendered camera path and expected ray termination depth.

NeRF recovers fine details in geometry and appearance, e.g. the rigging of the Ship, much better than LLFF, SRN and Neural Volumes.

Ship scene: ground truth, NeRF, LLFF, SRN, NV
Slide 30: qualitative comparison.

Limitations of NeRF

Slides 31-35

#LimitationAddressed by
1Scene-specific, only static scenes can be modeledD-NeRF
2No editing and control: the scene is memorized in the network and can’t be modifiedControl-NeRF
3Generalization: scene-specific models, a large number of images neededControl-NeRF (shared renderer)
4Expensive training: 10 hours up to a few days; inference is not real timeInstant NGP
5The extracted surface is not accurate and depends on the density thresholdUniSurf

(NeRF-W addresses a further issue: real internet photos violate NeRF’s assumption of consistent views.)

Dynamic scene: ground truth vs blurry NeRF
Slide 31: dynamic scenes fail
Surfaces extracted with different density thresholds
Slide 35: surface depends on the threshold σ

Variants of NeRF

D-NeRF: Dynamic Scenes

Slides 36-46

For a dynamic scene there is one more variable: time. We want a radiance field .

Can we learn this directly with NeRF? Adding as an input gives blurry results: the network can reason about dynamics and shape, but doesn’t learn high-frequency details.

D-NeRF (Pumarola et al., CVPR 2021): split the problem into two stages.

  1. A deformation network maps every point at time into a canonical space (the scene at rest).
  2. A canonical network is a radiance field in the canonical space.
D-NeRF: deformed scene mapped to the canonical space, then radiance field
Slide 40: learn a canonical shape and a radiance field in the canonical space.
Slide 42: D-NeRF synthesis with control over time, azimuth and elevation (played 1.5x).

Conclusion: D-NeRF

  • Disentangles the time-dependent deformation from the neural rendering network.
  • The correspondence between the canonical shape and the deformed shape is defined by .
  • Time-varying shading effects are modeled: e.g. the floor shadows are warped along time. Points in the shadow of the red ball at and map to different regions of the canonical space.
Slide 45: D-NeRF canonical mapping (color-coded as x + Δx).

NeRF-W: NeRF in the Wild

Slides 47-57

NeRF assumes consistent input views: a 3D point seen from the same position and direction in two images has the same intensity. Internet photos violate this with:

  • photometric variations (lighting, exposure, white balance)
  • transient objects (people, cars, occlusions)

NeRF-W (Martin-Brualla et al., CVPR 2021) introduces per-image appearance embeddings and transient uncertainty fields, which handle lighting changes and occlusions, and performs better on unconstrained Photo Tourism datasets.

NeRF-W architecture with static and transient heads
Slide 50: NeRF-W architecture. Appearance embedding for the static head, transient embedding and uncertainty β for the transient head.

Latent appearance modeling:

  • Each image gets an appearance embedding vector , trained with the model.
  • The radiance depends on per-image lighting and post-processing, while the geometry stays static.
  • Interpolating between two embeddings changes the appearance smoothly without affecting the 3D geometry.

Image-dependent radiance

Slide 49: interpolating appearance embeddings
Slide 53: Trevi Fountain from internet photos

Transient objects and uncertainty:

  • A secondary transient MLP head models moving and occluding objects.
  • Both static and transient components (density + color) are rendered, but the transient parts are discarded at test time.
  • A per-ray uncertainty down-weights unreliable pixels.

Static + transient compositing

Static component ; transient component .

Summary: NeRF-W disentangles lighting from the 3D geometry, which stays consistent, so novel views can be rendered with variable illumination.

Disadvantages: sparse view problems (rarely observed areas like the ground, oblique angles), sensitivity to camera calibration (blurry artifacts from wrong poses), inherited NeRF weaknesses (specular surfaces, high training cost, limited generalization), and transient handling can leave artifacts or mask static scene errors.

Control-NeRF: Scene Manipulation

Slides 58-70

Prior work: the scene is memorized inside the network, which makes compositing and editing hard. Key idea: decouple the scene representation from the neural rendering network.

Control-NeRF (Lazova et al., WACV 2023)

  • Hybrid 3D representation: scene-specific 3D feature volumes + a shared neural rendering network.
  • Scene-agnostic rendering: one rendering network generalizes across scenes; new scenes are optimized without retraining the whole model.
  • Post-hoc scene manipulation: 3D edits (object insertion, deformation, scene mixing) by modifying the feature volumes, without retraining.
xyz queries a learned volumetric scene representation, then the rendering network F_theta
Slide 60: decouple scene representation and rendering.
  1. Scene representation: given images from training scenes, learn a volumetric feature per scene ( spatial resolution, feature length ).
  2. Rendering with feature volumes: shoot a ray, query the feature at each point by trilinear interpolation, feed it with the viewing direction to the rendering network , and apply volume rendering.
  3. Training and inference: at training time, volumes and rendering network are trained jointly. For a novel scene, the rendering network is fixed and only the scene volume is optimized.

Training details:

  • Multi-resolution volume training (coarse to fine): train a volume until convergence, upsample by 2, train again; 4 stages up to . Faster training, high-quality synthesis and manipulation.
  • Multi-scene training: sample one scene, train for iterations, save its volume, repeat (loading a new volume every iteration would cost too much GPU memory traffic).
  • Generalization to novel scenes: with enough training scenes, the learned radiance function can be reused to optimize new scenes efficiently.
Slide 69: scene editing, inserting a T-rex skeleton into a garden scene.

Instant NGP: Training Speed

Slides 71-83

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding (Müller et al., SIGGRAPH 2022):

  • train in minutes (instead of days)
  • encode high-frequency details more compactly
  • render interactively (tens of frames per second)

Three pillars:

PillarWhat it doesGain
Rendering/training algorithmtask-specific GPU implementation; skips empty space until the surface is hit10-100x fewer steps than naive dense stepping → fewer network queries
Small neural networkfully fused implementation (the whole MLP in one CUDA kernel)5-10x faster than TensorFlow
”Good” input encodingmultiresolution hash encoding, trainable together with the networkbetter speed/quality trade-off, task-agnostic
Three pillars: rendering algorithm, small network, input encoding
Slide 73: the three pillars of Instant NGP.

Hash encoding (details in Lecture 6.1 and Hash Encoding):

  • Why multi-resolution? Automatic level of detail: low-resolution grids capture global shape, high-resolution grids fine details. The network learns fast at low resolution and refines the details later.
  • Hashing: instead of allocating vectors, allocate a much smaller table of size and map each grid cell to one of the buckets with a spatial hash. Each bucket stores a learned feature vector. The table is task-agnostic (unlike NGLOD, which needs surface information to build its structure).
  • Why linear interpolation? Continuity and differentiability.
Hashing voxel corners at two resolutions, lookup, interpolation, concatenation
Slide 79: multiresolution hash encoding.
Slide 80: instant NeRF training
Slide 82: real-time fly-through, trained in under 5 minutes

Disadvantages (Slide 83):

  • Encoding trade-offs: concatenating multiresolution features increases parallelism but also memory and compute.
  • Hash function: simple hashing is fast but lacks coherence; better hashes add overhead without clear gains.
  • Microstructure artifacts: hash collisions cause grainy noise (e.g. in SDFs), which needs filtering or smoothness priors.
  • Future work: differentiable hashing; sparse volumetric data (e.g. clouds) remains open.

UniSurf: Unifying NeRF and Implicit Surfaces

Slides 87-103

The surface extracted from a NeRF is not accurate and depends on the threshold.

Surface rendering (implicit surfaces)Volume rendering (radiance fields)
✓ high-quality geometry✗ surface is only approximated
✓ clear surface definition✓ no mask supervision needed
✗ mask supervision required✓ high-quality novel views, sharp textures
✗ texture mapping is blurry

UniSurf (Oechsle et al., ICCV 2021) combines the best of both worlds.

Rewrite NeRF’s volume rendering with alpha values:

(The slides write the product up to ; it must stop at , consistent with .)

Key idea of UniSurf

For solid objects, corresponds to an occupancy field at the -th sample:

Given the occupancy, the same scene can also be rendered with surface rendering (the surface is the level set ).

Training schedule: volume rendering in the early stage (optimization without masks), surface rendering in the later stage (level-set surfaces).

Rendering procedure:

  1. Find the surface along the ray: uniform sampling + iterative secant method.
  2. Define an interval around the surface.
  3. Volume rendering with occupancies, sampling only inside this interval (fewer points between camera and surface prevents free-space artifacts).

The interval decays exponentially over the iterations . As it shrinks, volume rendering turns into surface rendering:

Theorem (Slide 102)

Volume and surface rendering become equivalent when reducing the interval and increasing the number of samples:

Interval around the surface decreases from volume rendering to surface rendering
Slide 101: as Δₖ decreases, volume rendering becomes surface rendering.
Slide 103: UniSurf on the DTU MVS dataset.

Upcoming (Slide 86): 3D Gaussian Splatting for real-time radiance field rendering (Kerbl et al., SIGGRAPH 2023) → Lecture 8.

NeRF vs. 3D Gaussian Splatting

For exam task 4. 3DGS is covered in Lecture 8 (symbols of its formula: here); this is the comparison frame.

The two rendering formulas

NeRF:

3D Gaussian Splatting:

(: learned opacity of Gaussian , : the projected 2D Gaussian evaluated at the pixel.)

NeRF3DGS
Compositing, the same structure
Elements samples along a rayGaussians sorted by depth that overlap the pixel
computed: learned opacity × projected 2D Gaussian
ColorMLPspherical harmonics per Gaussian
Representationimplicit (the scene is in the weights )explicit (primitives in space)
Renderingray marching, MLP queries per pixelrasterization / splatting
Speedtraining hours to days, inference not real timefast training, real-time rendering
Editinghard (scene in the weights)easy (move Gaussians directly)
High frequenciesneeds positional encodingsmall Gaussians, no encoding needed

Intuition

Same compositing formula. They differ in where , and the ordering come from, and in how the elements are traversed (marching along rays vs. splatting sorted primitives).

Worked Example: Alpha Compositing

Self-Test

What does NeRF's MLP take as input and give as output?

Write down the continuous volume rendering equation and explain every symbol.

Why is the transmittance an exponential?

Why is a PDF, and what is ?

Write down the discrete NeRF rendering formula and explain , , , .

How is NeRF trained? What happens at inference time?

Why does NeRF need positional encoding?

Name five limitations of NeRF and a variant that addresses each.

How does D-NeRF model dynamic scenes?

How does NeRF-W handle internet photos?

What is the key idea of Control-NeRF?

What are the similarities and differences between NeRF and 3DGS rendering?