Inverse Rendering
Le rendu inverse remonte des photos à la forme, aux matériaux, à l’éclairage et à la caméra qui les ont produits, ce qui permet de modifier l’éclairage et les matériaux.
Le rendu inverse consiste à retrouver la scène physique qui se cache derrière une ou plusieurs images : la forme 3D de ses objets, les matériaux de leurs surfaces, l'éclairage et la caméra qui les a capturés. En infographie, le rendu suit le sens direct et transforme une description de scène en pixels. Le rendu inverse remonte les mêmes lois physiques en recherchant les paramètres de scène susceptibles de reproduire les photos observées. À la croisée de la vision par ordinateur et de l'infographie, il est également appelé infographie inverse. Dans sa thèse de doctorat de 1998 à Cornell, Inverse Rendering for Computer Graphics, Stephen Marschner a présenté la récupération de l'éclairage et de la réflectance des surfaces à partir de photographies comme des problèmes inverses de ce type.
Analyse par synthèse#
La plupart des méthodes de rendu inverse suivent une boucle appelée analyse par synthèse : partir d'une hypothèse sur la scène, en effectuer le rendu, comparer le résultat à la photo réelle, puis ajuster l'hypothèse pour réduire l'écart. Le rendu différentiable rend chaque ajustement efficace. Comme le moteur de rendu indique comment chaque pixel varie en fonction de chaque paramètre de scène, la descente de gradient peut mettre à jour des milliers de paramètres à la fois, comme le fait la rétropropagation pour entraîner un réseau neuronal. Des moteurs de rendu différentiables fondés sur la physique, tels que Mitsuba 3, étendent cette approche aux ombres, aux reflets et à la réflexion de la lumière entre les surfaces.
Pour la scène la plus simple — une sphère mate éclairée par une lumière distante —, la boucle tient en quelques lignes de PyTorch. L'extrait génère une photo cible à partir d'une direction de lumière et d'une luminosité de surface (albédo) que l'optimiseur ne voit jamais, puis récupère les deux à partir des seuls pixels avec l'optimiseur Adam :
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}")Le code affiche Light direction: [ 0.597 -0.398 0.697], albedo: 0.800, c'est-à-dire exactement les valeurs cachées. Les systèmes de production conservent la même boucle, mais remplacent le modèle d'ombrage d'une seule ligne par un transport complet de la lumière ; les inconnues deviennent alors des maillages, des cartes de texture et l'éclairage ambiant.
Pourquoi le problème est ambigu#
De nombreuses scènes différentes produisent la même image. Une zone sombre peut être une peinture plus foncée, une ombre ou une surface inclinée à l’opposé de la lumière, et un point lumineux peut venir d’un matériau brillant ou d’une lampe placée juste comme il faut. La luminosité seule est également ambiguë : doubler la lumière tout en divisant l’albédo par deux produit des pixels identiques. C’est pourquoi l’extrait normalise la direction de la lumière et laisse l’albédo porter toute la luminosité. Les méthodes restreignent les possibilités de trois façons :
- Plus d’observations : Photographier un objet sous de nombreux angles de vue, ou sous plusieurs lumières connues comme en stéréo photométrique, permet de mieux contraindre la forme et le matériau qu’une seule photo.
- A priori appris : des réseaux entraînés sur de grandes collections de scènes rendues prédisent, à partir d'une image, les normales, les matériaux ou l'éclairage probables, ce qui fournit à l'optimiseur un bon point de départ.
- Géométrie connue : lorsque la forme provient d'un capteur de profondeur ou d'un modèle de profondeur, les matériaux et l'éclairage sont les seules inconnues restantes.
L’estimation de profondeur à partir d’une seule image fournit cette géométrie pour des photos ordinaires. Les modèles de profondeur Ultralytics YOLO26 prédisent une carte de profondeur par pixel, en mètres, à partir d’une seule image RGB ; les normales de surface calculées à partir de ses gradients représentent la géométrie d’éclairage que l’exemple de la sphère considère comme donnée.
Rendu inverse, reconstruction et rendu neuronal#
La reconstruction 3D retrouve la géométrie, souvent à l'aide de la structure à partir du mouvement et de la stéréo multi-vues, et intègre généralement l'éclairage de la capture aux couleurs des surfaces. Les champs de radiance neuronaux et le splatting gaussien sont ajustés avec la même boucle de rendu et de comparaison, mais ils modélisent l'apparence de la scène depuis chaque direction sans séparer les surfaces de l'éclairage ; leurs nouvelles vues conservent donc l'éclairage d'origine. Le rendu inverse vise précisément cette séparation, qui rend possibles le rééclairage, la modification des matériaux et l'insertion réaliste d'objets virtuels. De nombreuses méthodes récentes combinent les deux approches avec l'apprentissage profond, en ajoutant des modèles de réflectance et d'éclairage aux champs de radiance au sein du domaine plus large du rendu neuronal.
Capture d’éléments 3D, RA et effets visuels#
- Capture d’éléments 3D : Les détaillants et les studios de jeux vidéo numérisent des produits réels pour en faire des éléments 3D dotés de cartes distinctes pour la couleur, la rugosité et les normales de surface. Un même modèle peut ainsi être rendu correctement sous n’importe quel éclairage, sur une page de boutique ou dans un moteur de jeu.
- Réalité augmentée : Les frameworks de RA, comme ARCore de Google, estiment l'éclairage d'une pièce à partir du flux de la caméra afin que les objets virtuels reçoivent des ombres, un ombrage et des reflets correspondants.
- Effets visuels : Les dispositifs Light Stage, présentés par Paul Debevec et ses collègues en 2000, photographient le visage d'un artiste sous un grand nombre de directions d'éclairage afin d'en retrouver la réflectance, ce qui permet aux studios de rééclairer le visage numérique pour l'adapter à n'importe quel plan.










