Suavizado de contorno temporal y supermuestreo - Guía del usuario de Lumberyard

Suavizado de contorno temporal y supermuestreo

El supermuestreo es un método de suavizado de contorno que intenta reducir los límites dentados y pixelados (sin suavizar) de las imágenes. Funciona muestreando una versión de mayor resolución de la imagen para obtener el color promedio de un píxel antes de reducirlo al tamaño que se busca. Los valores de color promedio crean transiciones más suaves a lo largo del límite de los colores, lo que reduce el aspecto dentado.

Como el supermuestreo utiliza una gran cantidad de memoria, Lumberyard utiliza el suavizado de contorno temporal (TAA) para abordar el supermuestreo. Mientras que el supermuestreo analiza los píxeles desde un punto de vista espacial, TAA analiza los fotogramas a lo largo del tiempo, incluso cuando la cámara está en posición estática. El fotograma actual se proyecta en el fotograma anterior y las muestras se mezclan en un búfer de acumulación. Esta técnica reduce los elementos desenfocados del movimiento y le permite controlar la cantidad de suavizado de contorno que necesita para sus gráficos. Puede crear imágenes nítidas o suaves, e imágenes borrosas. También puede utilizar el supermuestreo para obtener una representación de muy alta calidad.

El TAA es útil para reducir los contornos no suavizados en los casos siguientes:

  • Resaltados especulares y píxeles brillantes, especialmente en combinación con filtros de convolución como Depth of Field (Profundidad de campo) o Bloom (Resplandor).

  • Bordes geométricos y probados para alpha.

Puede configurar el TAA estableciendo la variable de consola r_AntialiasingMode, editando el archivo de configuración de la plataforma o creando un archivo de configuración de nivel con esta opción.

Control del suavizado de contorno

En la siguiente tabla se muestran los modos de suavizado de contorno que están disponibles en Lumberyard cuando utiliza la variable de consola r_AntialiasingMode.

Modo Valor de la variable de consola Descripción
Sin suavizado de contorno 0 Desactiva el suavizado de contorno posterior al proceso. Esto es útil para la depuración o cuando la técnica no es necesaria. También puede utilizar una mayor resolución si prefiere no gastar recursos del sistema en el suavizado de contorno.
FXAA 1 Habilita el suavizado de contorno aproximado rápido (FXAA), que filtra límites usando una técnica de detección de límites posterior al proceso.
SMAA (1TX) 2 Habilita el suavizado de contorno morfológico de subpíxeles (SMAA), que utiliza una técnica de posprocesamiento avanzada para detectar límites y, de este modo, poder filtrarlos. Este modo incluye un componente de suavizado de contorno temporal básico, pero no aborda la inestabilidad en el nivel inferior al píxel.
TAA 3 Habilita el suavizado de contorno temporal (TAA). Este es el modo predeterminado.

En la siguiente tabla se muestran las variables de consola adicionales que puede configurar para el suavizado de contorno temporal.

Variable de consola Descripción
r_AntialiasingModeEditor Especifica si se debe utilizar la fluctuación en el nivel inferior al píxel en el editor. Esto puede eliminar los objetos inestables a costa de perder suavizado de contorno en las escenas estáticas.

Valores válidos: 0 = deshabilita este modo | 1 = permite este modo.

r_AntialiasingTAAClampingFactor Controla el factor de bloqueo en los desvíos estándar. Establezca el valor en el que se limitará la respuesta del TAA. Los valores superiores crean un escenario más estable con menos parpadeo, pero más borrosidad. Los valores más bajos crean un escenario con menos borrosidad, pero más contornos sin suavizar y más parpadeos.

Valores válidos: de 0,75 a 2,0.

r_AntialiasingTAAJitterPattern Especifica el patrón de muestreo del suavizado de contorno temporal.

Valores válidos: 0 = sin submuestras | 1 = 2x | 2 = 3x | 3 = 4x | 4 = 8x | 5 = cuadrícula escasa, 8x8 | 6 = aleatorio | 7 = Halton 8x (valor predeterminado) | 8 = Valor halton aleatorio.

r_AntialiasingTAALuminanceMax Bloquea la luminancia de entrada antes del filtrado temporal para ayudar con la estabilidad de la imagen. Los píxeles extrabrillantes pueden producir imágenes desenfocadas y generar elementos con resplandor.

Valor predeterminado: 100.0

r_AntialiasingTAAMotionDifferenceMax Especifica la diferencia máxima de velocidad entre el píxel actual y su píxel histórico en la que se considera que el píxel actual carece totalmente de oclusión ambiental. Los valores más bajos crean escenas con menos imágenes desenfocadas, aunque con más contornos sin suavizar en los píxeles sin oclusión ambiental.
r_AntialiasingTAAMotionDifferenceMaxWeight Especifica la ponderación de la combinación del fotograma actual en la diferencia de velocidad máxima (definida por la variable de consola r_AntialiasingTAAMotionDifferenceMax).

Valores válidos: 0 = 100% del píxel histórico | 1 = 100% del píxel actual

Valor predeterminado: 0.5

r_AntialiasingTAANewFrameFalloff Representa la cantidad de tiempo, en segundos, que tarda la señal histórica en llegar al 63% de la señal de origen. Los valores más bajos crean una convergencia más rápida, lo que puede reducir las imágenes desenfocadas, aunque generar contornos algo menos suavizados. Los valores más altos crean una convergencia más lenta. Dado que es posible que los valores más altos no mejoren la estabilidad, debe ajustar el factor de bloqueo del color antes de modificar este valor.

Valor predeterminado: 0.15

r_AntialiasingTAASharpening Controla el filtro de nitidez para ayudar a conservarla. Esto es útil cuando el suavizado de contorno temporal introduce algo de desenfoque en una escena durante el movimiento.

Valor predeterminado: 0.2

r_AntialiasingTAAUseAntiFlickerFilter Reduce el parpadeo basado en la vibración en ciertas situaciones.

Valores válidos: 0 = deshabilita este modo | 1 = permite este modo.

r_AntialiasingTAAUseJitterMipBias Permite la compensación del mapa MIP en texturas cuando la vibración está habilitada. Esto crea una escena con menos desenfoque pero más parpadeo.

Valores válidos: 0 = deshabilita este modo | 1 = permite este modo.

Valor predeterminado: 1

r_AntialiasingTAAUseVarianceClamping Habilita el bloqueo del color de la varianza como ayuda para reducir las imágenes desenfocadas. Esto puede aumentar el parpadeo en la escena. La variable de consola r_AntialiasingTAAClampingFactor afecta solo a este modo.

Valores válidos: 0 = deshabilita este modo | 1 = permite este modo.

Valor predeterminado: 0

Las siguientes imágenes ilustran el rango de calidad de gráficos que puede conseguir en función de la opción de suavizado de contorno que utilice.

Limitaciones del suavizado de contorno temporal

El suavizado de contorno temporal (TAA) es una solución económica que reduce los contornos no suavizados de todos los orígenes y funciona bien con la mayoría del contenido. Dado que se basa en información de espacio de la pantalla de fotogramas anteriores, el TAA tiene limitaciones en los siguientes casos:

  • Los objetos ocluyen otros objetos mientras están en movimiento. En este caso, las áreas nuevas que se ven en el fotograma actual no tienen un valor histórico con el que mezclarse y pueden mostrarse como imágenes desenfocadas.

  • No hay vectores de movimiento para objetos en movimiento, lo que puede producir elementos de borrosidad sutil. Los vectores de movimiento no se generan para vegetación fusionada ni partículas basadas en CGF ni en materiales transparentes. En determinados casos de señales de alta frecuencia, el objeto más aparente parpadea debido a una vibración de nivel inferior al píxel que alterna entre píxeles brillantes y oscuros.

  • El contenido tiene una gran cantidad de triángulos y normales de nivel inferior al píxel. En este caso, el detalle del nivel inferior al píxel puede producir elementos parpadeantes con una vibración de nivel inferior al píxel temporal. Cuando un límite brillante que está rodeado de píxeles oscuros se vuelve más pequeño, la heurística de bloqueo de barrio hace que los píxeles parpadeen entre claro y oscuro.

  • La transparencia no escribe la profundidad. En este caso, determinado contenido transparente puede mostrar elementos de borrosidad sutil.

En estos casos, es posible que prefiera una suavización de contorno morfológico de nivel inferior al píxel (SMAA) o una suavización de contorno aproximada rápida (FXAA).

Prácticas recomendadas para la suavización de contorno temporal

Le recomendamos que siga las prácticas recomendadas siguientes cuando utilice un suavizado de contorno temporal (TAA).

  • Cree la menor cantidad posible de contenido cuyo contorno deba suavizarse.

  • Utilice nivel de detalle (LOD) para reducir el detalle del nivel inferior al píxel de los objetos lejanos.

  • Utilice el filtro antiparpadeo para ayudar con el parpadeo. La variable de consola r_AntialiasingTAAUseAntiFlickerFilter está habilitada de forma predeterminada.

Control del supermuestreo

Además del suavizado de contorno, Lumberyard admite el supermuestreo para las representaciones de muy alta calidad. El supermuestreo representa la escena con una mayor resolución y reduce la escala de la imagen para obtener límites más lisos y estables. Debido a la alta resolución de la representación interna, el supermuestreo requiere un grado de rendimiento muy elevado y solo es adecuado para juegos diseñados para reproducirse en equipos de gama alta.