¿El muestreo múltiple tiene algún beneficio?

14

Así que encontré este sitio y puedes ver estas líneas en el primer y segundo párrafo:

Para un efecto crudo pero fácil, dibuje las partes brillantes de la escena (por ejemplo, fuentes de luz) en un FBO, luego reduzca la muestra usando la minificación GL_LINEAR varias veces . Para el render final, simplemente combine la escena original con los FBO muestreados.

En el siguiente ejemplo, la escena original es de 128 x 128 y se muestrea 3 veces . Esto requiere 4 objetos framebuffer . La escena original se muestra en la esquina superior izquierda y la representación final en la esquina superior derecha.

¿Hay alguna razón por la que deba reducir la muestra varias veces (128 -> 64 -> 32 -> 16) en lugar de reducirla una vez (128 -> 16)?

Si se desplaza hacia abajo más, incluso lo disminuyen como 9 veces. (128 -> ... -> 16 -> 128 -> ... -> 16 -> y así sucesivamente). ¿Por qué no hacerlo así (128 -> 16 -> 128 -> 16 -> y así sucesivamente)?

Greffin28
fuente
Enfoque verdaderamente absurdo. Simplemente desenfoque el búfer y reduzca la muestra con GL_NEAREST.
transistor09

Respuestas:

23

Hay dos beneficios principales:

Primero, si disminuye la muestra en más de un factor de dos, algunos píxeles en la imagen original no tendrán impacto en la imagen resultante. Utilizando GL_LINEAR, cada píxel de destino solo tomará muestras de un máximo de 4 píxeles de la imagen de origen; los otros píxeles simplemente se descartan. Al reducir el muestreo por un factor de dos, se asegura de que cada píxel de la imagen de origen haya mantenido un efecto igual en la siguiente capa hacia abajo.

Segundo, los algoritmos discutidos en ese sitio requieren cada uno de los objetos framebuffer; en realidad son todos necesarios, incluso si no hubiera una buena razón para reducir el muestreo de esta manera. No puede omitir las imágenes de 64x64 o 32x32, porque esas imágenes se utilizan como parte de la construcción de la imagen de resultado borrosa gaussiana.

Finalmente, si lees el artículo, verás que no está abogando por las imágenes de reducción de muestras 9 veces; disminuye las muestras solo tres veces, y luego realiza varias operaciones en esas imágenes disminuidas. Las imágenes que está viendo solo muestran el estado de esas mismas 3 imágenes con muestreo disminuido después de cada paso del proceso, no muestran eventos de disminución de muestreo por separado.

Trevor Powell
fuente
Ah, esto tiene mucho sentido para mí ahora. Gracias.
Greffin28
1
(Por cierto, el efecto de floración que uso en mis propios juegos se basa en el método descrito en la página vinculada. Personalmente, reduzco la muestra 5 veces en lugar de 3, ya que comienzo desde una imagen inicial mucho más grande pero todavía quiero un buen desenfoque amplio .)
Trevor Powell