Hay, y espero ver los detalles de otras respuestas, pero una forma de lidiar con esto es no tener el ruido (o tanto ruido) en los datos de origen para empezar.
El ruido proviene del hecho de que hay una gran variación en el renderizado: el número de muestras que ha tomado no ha convergido lo suficiente con la respuesta correcta real de la integral, por lo que algunos píxeles son demasiado altos / brillantes y otros son demasiado bajo / tenue (en cada canal de color).
El problema es este: si usa números aleatorios de ruido blanco para hacer su muestreo, puede obtener muestras agrupadas como la imagen a continuación. Dadas suficientes muestras, convergerá, pero tomará un tiempo antes de que brinde una buena cobertura sobre el espacio de muestreo. Busque una región de espacio vacío en la imagen a continuación (como en la esquina inferior derecha) e imagine que había una luz pequeña y brillante allí y que la escena estaba oscura en todas partes. Puede ver cómo no tener muestras allí va a crear un problema para el renderizado.
Alternativamente, puede muestrear a intervalos regulares como el siguiente, pero eso le dará artefactos de alias en lugar de ruido, lo que es peor.
Una idea es usar secuencias de baja discrepancia y hacer una integración cuasi monte carlo ( https://en.wikipedia.org/wiki/Quasi-Monte_Carlo_method ). Las secuencias de baja discrepancia están relacionadas con el ruido azul, que solo tiene componentes de alta frecuencia. Al seguir estas rutas, obtienes una convergencia más rápida deO(1/N) en vez de O(N−−√). Estos brindan una mejor cobertura del espacio muestral, pero dado que existe cierta aleatoriedad (o cualidades similares al azar) para ellos, no tienen los problemas de alias que tiene el muestreo regularmente espaciado.
Aquí hay una "cuadrícula fluctuante" donde se muestrea en una cuadrícula, pero usa pequeñas compensaciones aleatorias dentro del tamaño de una celda. Esto fue inventado por pixar y estuvo bajo patente por un tiempo, pero ya no es:
Aquí hay una secuencia común de baja discrepancia llamada secuencia de Halton (básicamente una versión 2D de Van Der Corpus)
Y aquí hay un muestreo de disco de Poisson, utilizando el mejor algoritmo candidato de Mitchel:
Puede encontrar más información, incluido el código fuente que generó estas imágenes aquí: https://blog.demofox.org/2017/05/29/when-random-numbers-are-too-random-low-discrepancy-sequences/