JA EN
LearnGenerative Models
·★ MEMBER·PAPER·10 min read

The State of 3D Generation — From NeRF to Gaussian Splatting

3D stopped being something you sculpt and became something you fit by optimization. How the representation moved from meshes to NeRF to Gaussian Splatting, how SDS turns a 2D diffusion model into a judge that supervises 3D, and what breaks when you take any of it into a game or film pipeline.

ModalitytextTaskgeneration

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis


Not carving — fitting

Ask someone to make a 3D model and they picture Blender: grab a vertex, pull it, staple triangles together, unwrap UVs, paint a texture. That workflow has barely changed in thirty years.

What appeared in the last few years starts somewhere else entirely. Treat space itself as fog that has colour and thickness. Given a few dozen photographs of a subject, you can pose the question "how should this fog be arranged so that all of those photos are explained?" and solve it by optimization. You are not carving; you are tuning densities until the renders match the pictures. That is the road NeRF (Neural Radiance Fields) opened in 2020.

Then came the move that removes the photographs too. Text-to-image diffusion models are already good enough, so use one as the judge. Make up some rough 3D, render it from random angles, ask the model to score how much each render looks like "a red leather armchair", and push its complaints back into the 3D. That is Score Distillation Sampling (SDS).

What counts as "3D data"

From a generative-model point of view, meshes have an awkward property: gradients do not flow through them. The number of triangles and the choice of which vertices connect to which are discrete structure that cannot move continuously. "Make it a bit rounder, so add one vertex" is not something a gradient can express. It simply does not fit the discipline of nudging parameters and moving in whichever direction improved things.

NeRF's answer was to stop having a shape at all. Hold the scene as a function. Feed it a coordinate (x,y,z)(x,y,z) and a viewing direction d\mathbf{d}, and an MLP returns the colour c\mathbf{c} at that point and its density σ\sigma (how much stuff is packed there). The contents are weights, so everything moves smoothly.

NeRF: integrate along a ray to make one pixel

Turning that function into an image goes like this. For each pixel, shoot one ray, call the function a few dozen times along it, and blend the returned colours front to back.

C(r)=tntfT(t)σ(r(t))c(r(t),d)dt,T(t)=exp ⁣(tntσ(r(s))ds)C(\mathbf{r}) = \int_{t_n}^{t_f} T(t)\,\sigma(\mathbf{r}(t))\,\mathbf{c}(\mathbf{r}(t),\mathbf{d})\,dt, \qquad T(t) = \exp\!\left(-\int_{t_n}^{t}\sigma(\mathbf{r}(s))\,ds\right)
(1)

Here r(t)\mathbf{r}(t) is a point along the ray, tnt_n and tft_f are where the integral is cut off, σ\sigma is density, c\mathbf{c} is colour, and T(t)T(t) is transmittance — the fraction of light that got this far without being blocked. In plain words: add up the colours along the ray, weighting each one by how much light survived to reach it and how solid that point is. If something opaque sits in front, TT collapses and everything behind contributes nothing. The obvious fact that you cannot see through a wall falls out of that single product. In practice the integral becomes a sum over sample points, and once it does, the machinery is ordinary alpha compositing. This form will come back later.

Training is nothing more than rendering from the same camera positions as the photos you have and shrinking the squared error against them. The point worth pausing on is that it is not trying to generalize: it deliberately overfits to one scene. The original paper reports one to two days on a single GPU to train, and tens of seconds to render one frame. Multiresolution hash encoding (Instant-NGP) is what pulled that down to seconds-to-minutes.

One prerequisite deserves spelling out. This optimization starts from knowing where each camera was and which way it pointed. Hand it a pile of photos and, without that, there is no way to decide which direction to shoot the rays. So in practice you first estimate camera poses from the photo set with SfM (Structure from Motion — the classical technique of back-solving shooting positions from feature correspondences between images), freeze them, and only then learn colour and density. Which means every 3D reconstruction since NeRF sits on top of a separate lineage of technology: pose estimation.

That dependency is not a light one. If the estimated poses are off by a few centimetres or a few degrees, the model is being told that the same surface is in two different places, and it reconciles the contradiction by parking a faint smear of fog in mid-air. Most of the floaters you see in reconstructions are exactly this. The fussiness about capture technique later in this article comes from the same place: no amount of tuning on the rendering side buys back a broken pose estimate.

FIG 1NeRF and Gaussian Splatting below are both, underneath, one scene's worth of gradient descent. Raise the learning rate and it sinks faster; raise it too far and it leaps the valley and diverges — the first landmine everyone steps on in 3D reconstruction

Why NeRF is slow is not mysterious: tens of MLP calls per pixel. At a million pixels that is tens of millions of calls. In 2023, Gaussian Splatting steered the other way. Abandon the function and go back to explicit grains — except the grains are not points but 3D anisotropic Gaussians with an orientation and an elonga

What's behind this

§

Members-only from here

371 walkthroughs, 26 textbook chapters, 48 student units and 6 close readings — all included for $4.99/mo, with three new explainers every day. Cancel any time; access runs to the end of the period.

Already a member? Sign in to keep reading

References

  1. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. arXiv:2003.08934Paper page·PDF
  2. 3D Gaussian Splatting for Real-Time Radiance Field Rendering. arXiv:2308.04079Paper page·PDF
  3. DreamFusion: Text-to-3D using 2D Diffusion. arXiv:2209.14988Paper page·PDF
  4. Magic3D: High-Resolution Text-to-3D Content Creation. arXiv:2211.10440Paper page·PDF
  5. ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation. arXiv:2305.16213Paper page·PDF
  6. Instant Neural Graphics Primitives with a Multiresolution Hash Encoding. arXiv:2201.05989Paper page·PDF

This article is written from the source paper above. Where they differ, the original is authoritative.

Comments

Sign in to comment