El Bidirectional Path Tracing, o BDPT, es un algoritmo que calcula la luz global en una escena 3D. A diferencia del path tracing tradicional, que solo traza rayos desde la cámara hacia la escena, este método también genera caminos que parten desde las fuentes de luz. Después, el algoritmo intenta conectar de forma eficiente ambos tipos de caminos para calcular la contribución lumínica final en cada píxel. Este enfoque dual resulta especialmente útil para resolver situaciones de iluminación compleja.


Su ventaja principal es manejar iluminación indirecta

El algoritmo supera mejor los problemas que plantean las cáusticas y la luz que rebota varias veces en superficies difusas. Al construir caminos desde la luz, explora regiones del espacio que los métodos desde la cámara pueden tardar mucho en muestrear. Esto permite converger a una imagen libre de ruido con menos muestras por píxel en ciertos escenarios, optimizando así el tiempo que se necesita para procesar.

Implementar BDPT conlleva mayor complejidad y coste

Aunque es más eficiente en algunos casos, el algoritmo requiere gestionar y conectar dos conjuntos de caminos, lo que aumenta la complejidad del código y la memoria que se usa. Además, no siempre es más rápido; en escenas con iluminación directa simple, el path tracing estándar puede ser más directo. Por eso, muchos motores de renderizado lo usan de forma selectiva o lo combinan con otras técnicas.

Es como intentar organizar una cita a ciegas entre fotones: a veces conectan y la magia ocurre, pero otras veces el algoritmo se queda calculando la conversación perfecta para siempre.