Inverse Rendering
Inverse Darstellung rekonstruiert aus Fotos die Form, Materialien, Beleuchtung und Kamera, durch die sie entstanden sind. So werden eine erneute Beleuchtung und die Bearbeitung von Materialien möglich.
Inverse Darstellung ist das Verfahren, mit dem die physische Szene hinter einem oder mehreren Bildern rekonstruiert wird: die 3D-Form der Objekte, die Materialien ihrer Oberflächen, die Beleuchtung und die Kamera, mit der die Szene aufgenommen wurde. Beim Rendern in der Computergrafik läuft der Vorgang vorwärts: Eine Szenenbeschreibung wird in Pixel umgewandelt. Inverse Darstellung kehrt dieselbe Physik um und sucht nach Szenenparametern, mit denen sich die beobachteten Fotos reproduzieren lassen. Sie liegt an der Schnittstelle zwischen Computer Vision und Computergrafik und wird auch inverse Grafik genannt. Stephen Marschners Dissertation von 1998 an der Cornell University, Inverse Rendering for Computer Graphics, beschrieb die Rekonstruktion von Beleuchtung und Oberflächenreflexion aus Fotografien als inverse Probleme dieser Art.
Analyse durch Synthese#
Die meisten Verfahren zur inversen Darstellung folgen einer Schleife namens Analyse durch Synthese: Zunächst wird eine Szene geschätzt, dann gerendert, mit dem echten Foto verglichen und die Schätzung angepasst, um die Abweichung zu verringern. Differenzierbares Rendering macht jede Anpassung effizient. Da der Renderer angibt, wie sich jedes Pixel in Abhängigkeit von jedem Szenenparameter verändert, kann Gradientenabstieg Tausende Parameter auf einmal aktualisieren – genauso wie Backpropagation ein neuronales Netz trainiert. Physikalisch basierte, differenzierbare Renderer wie Mitsuba 3 berücksichtigen auch Schatten, Reflexionen und Licht, das zwischen Oberflächen reflektiert wird.
Für die einfachste Szene lässt sich die Schleife mit wenigen Zeilen PyTorch umsetzen: einer matten Kugel, die von einer einzelnen weit entfernten Lichtquelle beleuchtet wird. Der Ausschnitt rendert ein Zielfoto mit einer Lichtrichtung und einer Oberflächenhelligkeit (Albedo), die dem Optimierer nicht bekannt sind. Anschließend rekonstruiert er beide Werte allein anhand der Pixel mit dem Adam-Optimierer:
import torch
import torch.nn.functional as F
# Unit normals of a sphere seen head-on, on a 64 x 64 pixel grid
y, x = torch.meshgrid(torch.linspace(-1, 1, 64), torch.linspace(-1, 1, 64), indexing="ij")
z = (1 - x**2 - y**2).clamp(min=0).sqrt()
normals = torch.stack([x, y, z], dim=-1)[z > 0]
# Lambertian "photo" lit from a direction the optimizer never sees, with albedo 0.8
photo = 0.8 * (normals @ F.normalize(torch.tensor([0.6, -0.4, 0.7]), dim=0)).clamp(min=0)
# Fit light direction and albedo: render, compare with the photo, follow the gradients
light = torch.tensor([0.0, 0.0, 1.0], requires_grad=True)
albedo = torch.tensor(0.3, requires_grad=True)
optimizer = torch.optim.Adam([light, albedo], lr=0.02)
for _ in range(500):
render = albedo * (normals @ F.normalize(light, dim=0)).clamp(min=0)
loss = (render - photo).pow(2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"Light direction: {F.normalize(light.detach(), dim=0).numpy().round(3)}, albedo: {albedo.item():.3f}")Ausgegeben werden Light direction: [ 0.597 -0.398 0.697], albedo: 0.800, also genau die verborgenen Werte. In Produktionssystemen bleibt die Schleife gleich, doch das einzeilige Schattierungsmodell wird durch einen vollständigen Lichttransport ersetzt. Die unbekannten Größen umfassen dann Netze, Texturkarten und Umgebungsbeleuchtung.
Warum das Problem mehrdeutig ist#
Viele verschiedene Szenen erzeugen dasselbe Bild. Ein dunkler Fleck könnte dunklere Farbe, ein Schatten oder eine von der Lichtquelle abgewandte Oberfläche sein, und ein heller Fleck könnte von einem glänzenden Material oder einer passend positionierten Lampe stammen. Auch die Helligkeit allein ist nicht eindeutig: Wird die Lichtstärke verdoppelt und die Albedo halbiert, bleiben die Pixel identisch. Deshalb normalisiert das Snippet die Lichtrichtung und überlässt der Albedo die gesamte Helligkeit. Methoden grenzen die möglichen Lösungen auf drei Arten ein:
- Mehr Beobachtungen: Fotografierst du ein Objekt aus vielen Blickwinkeln oder unter mehreren bekannten Lichtquellen wie bei der photometrischen Stereo, lassen sich Form und Material viel stärker eingrenzen als mit einem einzelnen Foto.
- Gelernte Priors: Auf großen Sammlungen gerenderter Szenen trainierte Netze sagen anhand eines Bildes wahrscheinliche Normalen, Materialien oder Beleuchtungsverhältnisse voraus und liefern dem Optimierer so einen guten Ausgangspunkt.
- Bekannte Geometrie: Wenn die Form aus einem Tiefensensor oder einem Tiefenmodell stammt, müssen nur noch Materialien und Beleuchtung rekonstruiert werden.
Die Tiefenschätzung aus einem einzelnen Bild liefert diese Geometrie für gewöhnliche Fotos. Ultralytics YOLO26-Tiefenmodelle sagen anhand eines einzelnen RGB-Bildes eine Tiefenkarte in Metern für jedes Pixel voraus. Die aus ihren Gradienten berechneten Oberflächennormalen liefern die Schattierungsgeometrie, die im Kugelbeispiel als gegeben vorausgesetzt wird.
Inverse Darstellung im Vergleich zu Rekonstruktion und neuronalem Rendering#
Die 3D-Rekonstruktion ermittelt die Geometrie, oft mithilfe von Structure from Motion und Mehrbild-Stereoskopie. Dabei wird die Beleuchtung der Aufnahme üblicherweise in die Oberflächenfarben eingerechnet. Neuronale Strahlungsfelder und Gaussian Splatting werden mit derselben Render-und-Vergleich-Schleife angepasst. Sie modellieren jedoch, wie die Szene aus jeder Richtung aussieht, ohne Oberflächen und Lichtquellen voneinander zu trennen. Deshalb behalten ihre neuen Ansichten die ursprüngliche Beleuchtung bei. Die inverse Darstellung zielt auf diese Trennung ab und ermöglicht dadurch eine neue Beleuchtung, die Bearbeitung von Materialien und das realistische Einfügen virtueller Objekte. Viele aktuelle Verfahren kombinieren beides mit Deep Learning und ergänzen Strahlungsfelder um Reflexions- und Beleuchtungsmodelle. Sie gehören zum umfassenderen Bereich des neuronalen Renderings.
Erfassung von 3D-Objekten, AR und visuelle Effekte#
- Erfassung von 3D-Objekten: Einzelhändler und Spielestudios scannen reale Produkte und erstellen daraus 3D-Objekte mit separaten Karten für Farbe, Rauheit und Oberflächennormalen. So wird ein Modell auf einer Produktseite oder in einer Spiel-Engine bei jeder Beleuchtung korrekt gerendert.
- Erweiterte Realität: AR-Frameworks wie Googles ARCore schätzen anhand des Kamerabilds die Beleuchtung eines Raums, sodass virtuelle Objekte passende Schattierungen, Schatten und Reflexionen erhalten.
- Visuelle Effekte: Lichtbühnen, die Paul Debevec und seine Kollegen 2000 einführten, nehmen das Gesicht einer Darstellerin oder eines Darstellers aus einer großen Zahl von Beleuchtungsrichtungen auf, um dessen Reflexionseigenschaften zu ermitteln. So können Studios das digitale Gesicht neu beleuchten, damit es zu jeder Aufnahme passt.










