Aplicación y análisis de parámetros de la pantalla del juego Unity: sincronización vertical, desenfoque de movimiento, suavizado

prefacio

Recientemente, deslizaré información sobre la estación B

Después de ver estos videos sobre el ajuste de la pantalla y el rendimiento, me he beneficiado mucho. Los propietarios de UP han obtenido datos valiosos sobre el impacto de las pantallas de los juegos en el rendimiento a través de pruebas reales, lo que puede ser muy útil para que los amantes de los juegos comprendan la pantalla del juego.

Para un desarrollador de juegos, a través de este video, también puede aprender algunos puntos clave que afectan el rendimiento del juego. Recomiendo a todos que lo vean.

Casualmente, después de eso, vi a un compañero de clase de la universidad compartir una imagen sobre la configuración de pantalla de Yuanshen en el grupo, como se muestra en la figura a continuación.De acuerdo con la configuración de sus parámetros, debido a que la configuración del portátil es relativamente alta, ajuste directamente todos los parámetros a un estado relativamente alto. De acuerdo con este caso, se puede ver claramente que algunos parámetros que los fabricantes de juegos a veces establecen pueden no ser necesariamente entendidos por los jugadores.Desde la perspectiva del pensamiento humano, si no entiendo estos parámetros, pensaré que más alto es mejor que inferior. , Es mejor encender que apagar,
inserte la descripción de la imagen aquí
pero los parámetros de sincronización vertical, desenfoque de movimiento y suavizado se utilizan para resolver los parámetros negativos en ciertos escenarios. En algunos escenarios, es mejor encender que apagar.

Por lo tanto, para un desarrollador de juegos, es necesario tener cierta sensibilidad a estos parámetros. Este artículo analizará brevemente el contenido relacionado con los parámetros de la pantalla del juego. En primer lugar, a través de mi sensación intuitiva, estos parámetros se dividen aproximadamente en tres aspectos:

  • Se utiliza para sopesar la imagen y el rendimiento, como la resolución, la precisión de representación, la calidad de representación, los detalles de la escena, etc.
  • Resuelva los efectos negativos de la imagen en determinadas situaciones, como la sincronización vertical, el desenfoque de movimiento, el suavizado, etc.
  • Técnicas específicas para potenciar efectos visuales como niebla volumétrica, reflejos, Bloometc.

La primera categoría y la tercera categoría se pueden entender intuitivamente, por lo que no introduciré más, aquí hablaré principalmente sobre el contenido relacionado con los parámetros de la segunda categoría.

1. Sincronización vertical:

Cuando la pantalla actualiza la pantalla, escanea los píxeles de la pantalla línea por línea. La acumulación de estas líneas de escaneo horizontales en la dirección vertical forma una imagen completa, y la información de estas imágenes proviene de la información de cada cuadro generado por la tarjeta gráfica. .

En pocas palabras, el flujo de trabajo de salida de toda la pantalla es que una vez que se completa la representación de la tarjeta gráfica, la información de la imagen de un cuadro se envía a un área de caché determinada, y cuando se completa la siguiente imagen del cuadro del juego, la información en el El área de caché se reemplazará línea por línea. La salida de pantalla de la pantalla está relacionada con la frecuencia de actualización de la pantalla. La salida de la información de la pantalla de visualización es similar a la información de entrada de la tarjeta gráfica al área del búfer de fotogramas. El procesamiento de información de la pantalla es un cambio de proceso, es decir, la pantalla también cambia de arriba a abajo dentro de un cierto intervalo de tiempo.La siguiente línea lee la información de la imagen del caché de la tarjeta gráfica

Debido a este flujo de trabajo, cuando el número de fotogramas del juego no está sincronizado con la frecuencia de actualización de la pantalla, existe el problema de que cuando la pantalla no se actualiza en un determinado fotograma, la información de la imagen almacenada en caché en el área de caché se convierte en la siguiente. marco Contenido. Luego, la información de imagen restante de la pantalla lee la información del siguiente cuadro, por lo que la última imagen de la última pantalla se compone de dos o más cuadros. En este proceso, si la cámara del juego se mueve demasiado rápido, hará que la información de los dos fotogramas emitidos por la tarjeta gráfica son bastante diferentes, por lo que es fácil mostrar la imagen truncada en el monitor.

Estrategia de escritura y lectura de Picture Frame Buffer

Lo anterior es solo una breve introducción al proceso de trabajo de la tarjeta gráfica y el monitor. La situación real será mucho más complicada. Por ejemplo, si solo hay un área de búfer de la pantalla, siempre que la velocidad de la información de línea de la salida de pantalla de la tarjeta gráfica no es igual a la velocidad de la línea de actualización del monitor Coincidencia perfecta, dos cuadros de la imagen de salida de la tarjeta gráfica pueden romperse y unirse varias veces en la pantalla, pero la situación real no es el caso, el desgarro de la imagen generalmente ocurre en el orden superior e inferior, ¿por qué es esto?

Esta es también la sutileza del flujo de trabajo. Para reducir la magnitud de los errores de pantalla, por lo general, hay dos áreas de búfer para la pantalla de salida de la tarjeta gráfica, a saber, el búfer frontal y el búfer posterior. La pantalla lee los datos en el búfer frontal La información de la imagen emitida por la tarjeta gráfica se escribe en el búfer posterior. Cuando la tarjeta gráfica termina de escribir un cuadro de la imagen, los búferes delantero y trasero se alternan.

En este proceso, dado que la alternancia de los fotogramas delantero y trasero está determinada por la finalización de la escritura de un fotograma de la tarjeta gráfica en el búfer, la pantalla no tiene derecho a elegir. Por lo tanto, incluso si la pantalla solo lee la mitad de la información de la imagen del cuadro actual, solo puede aceptar pasivamente el statu quo de que se reemplaza la información del búfer y luego leer la siguiente mitad de la información del siguiente cuadro, si la información antes y después de los dos fotogramas es bastante diferente, el jugador capturará la pantalla rasgando

Cómo VSync aborda la diferencia:

Primero, sincronice la explicación de la Enciclopedia de Baidu para explicar alguna información básica de la sincronización vertical: la sincronización vertical también se llama sincronización vertical ( Vertical synchronization) CRT. La frecuencia de actualización de la pantalla está DACcontrolada por la tarjeta gráfica. Después de que la tarjeta gráfica DACcomplete un escaneo de fotogramas, se generará una señal de sincronización vertical. Lo que generalmente queremos decir con activar la sincronización vertical significa que la señal se envía a la 3Dparte de procesamiento de gráficos de la tarjeta gráfica, de modo que la tarjeta gráfica 3Destá restringida por la señal de sincronización vertical al generar gráficos.

En Unity, si desea activar la sincronización vertical, puede Qualityencontrarla a continuación Vsync Count, y las tres opciones correspondientes son:

  • Don't Sync: No se requiere sincronización vertical
  • Every V Blank: activar la sincronización vertical
  • Every Second V Blank: cualquier otra sincronización en blanco vertical

Por favor agregue la descripción de la imagen

También puede controlarlo directamente a través del script API:

public static int vSyncCount;

Para conocer el significado específico de esta opción, puede conocer la cantidad de sincronizaciones verticales que debe pasar entre cada cuadro de acuerdo con la documentación de Unity. El uso 'Don't Sync' (0)no espera la sincronización vertical. El valor debe ser 0, 1, 2, 3 o 4
inserte la descripción de la imagen aquí

2. Desenfoque dinámico

La mayoría de los fotogramas de las películas con los que estamos en contacto a diario son unos 24 fotogramas, pero nos dan una sensación muy fluida, e incluso si el número de fotogramas de los videojuegos alcanza los 40 o 50 fotogramas, habrá una cierta sensación de tartamudeo. Es por eso que

El origen del desenfoque de movimiento del juego

Esto comienza con el principio de presentación de las dos imágenes. Cuando filmamos una película, la información registrada en cada cuadro de la imagen es la información registrada en el período de tiempo de exposición de un cuadro. Si el objeto en la imagen aparece durante este tiempo de exposición Desplazamiento, entonces la información del píxel ocupado en la lente también cambia. Como un ejemplo simple, cuando tomamos una foto de una escena en movimiento, encontraremos que la imagen es coherente y borrosa.Por ejemplo, en esta foto de escena nocturna del Quinto Anillo de Beijing, podemos ver que los autos en movimiento producen desenfoque obvio Efecto:

inserte la descripción de la imagen aquí
También para películas, la información de cada fotograma también se graba durante un período de tiempo. Verificación simple, cuando vemos una toma en movimiento rápido en una película, si presionamos pausa, encontraremos que la imagen está muy borrosa, como Como se muestra en la figura:inserte la descripción de la imagen aquí

La situación en la que se produce este desenfoque de movimiento es que el obturador de la cámara no es instantáneo, sino que está relacionado con el tiempo de exposición, y seguirá recibiendo información de la luz entrante, y a medida que pasa el tiempo, para los objetos en movimiento, la cámara entrante es La información del sensor continuará cambiando y superponiéndose para producir un efecto borroso. De acuerdo con el principio de imagen de la cámara, ¿es posible obtener una imagen clara si el tiempo de exposición de la imagen es lo suficientemente corto? La respuesta es no , si se acorta el tiempo de exposición, es posible que esto resulte en una entrada de luz insuficiente y se obtenga información ambiental insuficiente.

¿Por qué este tipo de imagen borrosa puede dar a las personas una sensación de suavidad? Esto se debe a que cuando el cerebro humano procesa estas imágenes borrosas, automáticamente corregirá la imagen para producir el efecto de persistencia visual, recordando así las imágenes anteriores y posteriores, combinadas en una imagen coherente.

Ligeramente diferente del proceso de creación de imágenes de la cámara, la computadora calcula cada fotograma del juego en tiempo real, y la información de la imagen en un fotograma representa la información de la imagen en el punto de cálculo en un momento determinado, por lo que si la escena es dos antes y después de la cámara. Si la posición del cuadro cambia mucho, habrá diferencias obvias en la información de la imagen, lo que le dará al jugador la sensación de estar atascado.

Con el fin de mejorar la experiencia de juego de los dispositivos de bajo rendimiento, especialmente FPSlos juegos, los jugadores tendrán la opción de desenfoque de movimiento y se utilizará el principio visual de desenfoque de movimiento para tratar de reducir la tartamudez del juego. También hay algunos juegos de carreras que usan el desenfoque de movimiento para mejorar la inmersión real y la velocidad del juego.

Método de implementación de Unity:
con respecto al principio de implementación en el juego del desenfoque dinámico, traté de buscar y comprender. Se basa principalmente en uno de los vectores de movimiento en los marcos delantero y trasero, y el concepto de vector de movimiento está relacionado con la codificación de video. , y también hay mucho conocimiento matemático. , de hecho más allá de mi comprensión. Aquí hay una breve introducción desde el nivel de la aplicación. En la Unitysolución de posprocesamiento proporcionada, Motion Blurse puede agregar una solución de desenfoque dinámico como posprocesamiento.
inserte la descripción de la imagen aquí
Los tres parámetros clave son:

  • Quality: establece la calidad del efecto. Los ajustes preestablecidos más bajos proporcionan un mejor rendimiento pero una calidad visual más baja.
  • Instensity: establece la intensidad del filtro de desenfoque de movimiento en un valor entre 0 y 1. Los valores más altos dan como resultado un desenfoque más fuerte, pero pueden resultar en un rendimiento más lento, según el Clampparámetro.
  • Clamp: Establece la longitud máxima que puede tener la velocidad resultante de la rotación de la cámara. Esto limita el desenfoque a altas velocidades para evitar costos de rendimiento excesivos. Este valor se mide como una fracción de la resolución de pantalla completa y puede oscilar entre 0 y 0,2. El valor predeterminado es 0.05

3. Suavizado

Abra una imagen y luego haga zoom de forma inalámbrica hasta que pueda ver el color de cada píxel de la imagen. Encontrará que la unidad básica de píxeles está compuesta por cuadrados, como se muestra en la figura:
inserte la descripción de la imagen aquí
y estos bloques de píxeles pasan por diferentes colores. Los valores finalmente forman una imagen colorida, pero dado que la línea diagonal perfecta no se puede dibujar en el bloque en el nivel micro, habrá algunos efectos realistas irregulares prominentes en el nivel macro, como se muestra en la siguiente figura:
inserte la descripción de la imagen aquí

Obviamente, este efecto de visualización es muy malo para la pantalla del juego, especialmente en áreas con fuerte contraste de color.Para reducir el efecto al máximo, se necesitan ciertos medios para intervenir para solucionarlo. Para los jugadores, la forma más directa y efectiva es aumentar la resolución del juego.En términos de medios técnicos, el suavizado se puede usar para suavizar la apariencia de las escenas de borde para reducir la incomodidad prominente.

1. Introducción al suavizado:

Antialiasing mejora la apariencia de los bordes de los polígonos para que no sean "irregulares" sino que se vean más suaves en la pantalla. Sin embargo, incurre en un mayor costo de rendimiento para la tarjeta gráfica y usa más memoria de video (aunque no tiene CPUcosto ). El grado de suavizado determina la suavidad de los bordes de los polígonos (y la cantidad de memoria de video consumida). Hay muchas soluciones de suavizado actualmente disponibles. Aquí hay algunas Unitysoluciones de suavizado relacionadas con las soluciones. Descripción de Wikipedia:

Súper Muestreo Anti-Aliasing (SSAA):

El antialiasing de supermuestreo primero asigna la imagen a la memoria caché y la amplifica, y luego usa el supermuestreo para muestrear los píxeles de la imagen ampliada. Generalmente, se seleccionan 2 o 4 píxeles adyacentes, y estas muestras se mezclan para generar el píxel final. cada píxel tiene las características de los píxeles adyacentes. A través de este paso de procesamiento, el color de transición entre píxeles se vuelve similar y la transición de color de borde de los gráficos tiende a ser suave. Luego, restaure el píxel final al tamaño original de la imagen, guárdelo en el búfer de cuadros, es decir, la memoria de video, guárdelo en lugar de la imagen original y, finalmente, envíelo a la pantalla para mostrar un cuadro de imagen. El proceso de demostración del cambio de todo el proceso es el siguiente:

inserte la descripción de la imagen aquí
El procesamiento de todo el proceso es equivalente a multiplicar la imagen y luego mezclar los colores píxel por píxel para obtener una imagen grande borrosa con colores suaves.Luego, la imagen grande borrosa se refina y luego se reduce a una imagen pequeña clara. Si todos los fotogramas tienen suavizado, todo en un juego o video tiene suavizado. Al asignar la imagen a la memoria caché y ampliarla, la ampliación se utiliza para separar el efecto de suavizado, es decir, la ampliación de la imagen a la que normalmente nos referimos como 2x, 4xy 8x. En general, se utilizan dos métodos de muestreo en el antialiasing de supermuestreo:

  • Supermuestreo de trama secuencial, selecciona 2 píxeles adyacentes al muestrear
  • Supermuestreo de cuadrícula girada, selecciona 4 píxeles adyacentes al muestrear

2. Establecer suavizado en Unity

UnityPara diferentes plataformas o dispositivos de juego con diferente rendimiento, las opciones de suavizado se proporcionan en una variedad de soluciones técnicas diferentes, que se pueden dividir aproximadamente en las siguientes dos categorías:

  • Antialiasing de dispositivos de hardware: antialiasing multimuestra ( MSAA)
  • Antialiasing de posprocesamiento: antialiasing aproximado rápido ( FXAA), antialiasing mejorado de subpíxeles ( SMAA), antialiasing temporal ( TAA)

La siguiente es una breve lista de explicaciones simples de cada solución anti-aliasing. El contenido proviene de la Enciclopedia de Baidu y la documentación de Unity:

Antialiasing de dispositivos de hardware:

Antialiasing multimuestra ( MSAA):

El suavizado de muestras múltiples es un tipo especial de suavizado de supermuestreo, que proviene de OpenGL. Específicamente, MSAA solo realiza antialiasing de supermuestreo en los datos en el búfer de profundidad ( Z-Buffer) y el búfer de plantilla ( ). G-BufferLa información del borde del objeto se puede obtener a través del búfer de profundidad, de modo que solo se puede suavizar el borde del polígono. En comparación SSAAcon el procesamiento de todos los datos en la pantalla, MSAAla demanda de consumo de recursos se reduce considerablemente, pero la calidad de la imagen puede ser ligeramente inferiorSSAA

En el Unitymotor, el esquema de antialiasing compatible predeterminado es MSAAesta opción, que se puede encontrar en la configuración de calidad:

inserte la descripción de la imagen aquí
Tenga en cuenta que cuando el medio Unityse URPutilizará como tubería de representación, esta opción se mueve al archivo de configuración correspondiente a la URP . Si elige crear una plantilla Qualitydirectamente cuando se crea inicialmente el proyecto, puede encontrar el archivo de configuración enURPAssets/Setting

Al mismo tiempo MSAA, no se puede usar en renderizado diferido, por lo que en Unityla configuración predeterminada de solo considere aplicar esta opción en renderizado directo.

Antialiasing de posprocesamiento:

UnityEl antialiasing de posprocesamiento proporciona los siguientes modos de antialiasing:

  • antialiasing aproximado rápido ( FXAA); algoritmo rápido para dispositivos móviles y plataformas que no admiten vectores de movimiento.
  • Subpixel Enhanced Antialiasing ( SMAA); algoritmo de alta calidad pero más lento para dispositivos móviles y plataformas que no admiten vectores de movimiento.
  • Antialiasing temporal ( TAA); una técnica avanzada que requiere vectores de movimiento. Ideal para plataformas de escritorio y consola.

Si está debajo de la URPplantilla, puede Cameraver la opción de suavizado en , su opción predeterminada FXAAes suavizado aproximado rápido, como se muestra en la figura:
inserte la descripción de la imagen aquí

Si es la canalización de representación predeterminada, debe Post-process Layerconfigurar su modo suavizado para cada cámara individualmente, como se muestra en la figura:
inserte la descripción de la imagen aquí

El siguiente es un simple pegado Unitydel documento para algunas introducciones básicas a los tres:

  • Fast Approximate Antialiasing ( FXAA): FXAAes MSAAuna aproximación de alto rendimiento basada en un sombreador de píxeles de un solo subproceso y es la técnica de antialiasing más eficiente, ideal para dispositivos móviles y otras plataformas que no admiten vectores de movimiento.

  • Antialiasing mejorado con subpíxeles ( SMAA): en comparación con FXAAel SMAAefecto antialiasing, la calidad del efecto antialiasing es mejor, pero también consume más rendimiento

  • Antialiasing temporal ( TAA): TAAes una técnica avanzada de antialiasing en la que los fotogramas se acumulan a lo largo del tiempo en un búfer de historial que se utiliza para suavizar los bordes de manera más eficiente. Es mucho mejor para suavizar los bordes de movimiento, pero requiere vectores de movimiento y es FXAAmás caro que . Es ideal para plataformas de escritorio y consola.

3. La elección del suavizado

Luego, para el anti-aliasing, generalmente es para resolver el problema del aliasing de imágenes de borde a baja resolución, y si la resolución de su juego ya es lo suficientemente alta, activar el anti-aliasing es bastante limitado para mejorar la calidad de la imagen, pero consumirá más Recursos informáticos de tarjetas gráficas. En pocas palabras, cuanto mejor sea la imagen, menor será el beneficio del anti-aliasing.Si el rendimiento de su tarjeta gráfica está bajo mucha presión en alta resolución, puede dar prioridad a desactivar o reducir la opción anti-aliasing.

Supongo que te gusta

Origin blog.csdn.net/xinzhilinger/article/details/121619502
Recomendado
Clasificación