Home » ¿Qué es el Pixel Tracking y qué relación tiene con el DLSS 3 y el FSR 3?

¿Qué es el Pixel Tracking y qué relación tiene con el DLSS 3 y el FSR 3?

0
Flight Simulator

Los algoritmos de reconstrucción de imagen y de generación de nuevos fotogramas, tanto si se hacen vía Deep Learning o por métodos más convencionales se basan todos ellos en poder hacer lo que se llama Pixel Tracking. En este artículo os explicaremos en que consiste y el motivo por el cual dicho concepto es importante para entender muchas de las técnicas gráficas de los últimos tiempos, en especial el DLSS de NVIDIA y el FSR de AMD.

¿Qué entendemos por Pixel Tracking?

Bajo el nombre de Pixel Tracking conocemos una serie de técnicas que nos permiten seguir cada objeto de la escena y que consisten en la identificación y clasificación de los objetos de una escena, sea esta en generada en tiempo real o no con el objetivo de usar dicha información para algoritmos de reconstrucción.

Se trata de uno de los conceptos más utilizados en varias técnicas visuales de la actualidad, en especial en videojuegos y una de las menos conocidas, pese a su utilidad. No obstante, y aclaro esto de entrada, no debe confundirse con el concepto del mismo nombre usado en programación web.

Paso 1: identificación de objetos en la escena

Una de las funciones más comunes y sencillas de hacer, de la visión por computador es la identificación de objetos en una imagen o a tiempo real. Esto lo solemos hacer con la cámara de un móvil, pero también es posible hacerlo en una escena en 3D generada a tiempo real para clasificar objetos. Claro está que en un videojuego, no hace falta darles una identificación que sea reconocible para el ser humano, sino para uso interno. Así pues, podemos usar dicha capacidad para identificar cada uno de los elementos en una escena, y no solo estos, sino también dar una etiqueta a cada uno de los polígonos de la misma si queremos una mayor precisión.

pixel tracking clasificación objetos visión computador

Hasta el momento, dichas operaciones se han hecho usando shaders de computación, pero la importancia que están ganando las GPU en la IA generativa de imágenes y la necesidad de entrenarlas ha hecho que muchas adopten mecanismos para acelerar la visión por computador. Al mismo tiempo, hay una alta demanda, en especial por el mundo de la conducción automática, de tener chips capaces de identificar objetos para poder reaccionar a tiempo.

Todas estas tecnologías permiten hacer Pixel Tracking que es el seguimiento en la escena de cada uno de los objetos que la componen. ¿El objetivo? Usar la información del objeto en frames anteriores para una mejor reconstrucción de la escena a mayores resoluciones.

Paso 2: clasificación de objetos en el ID Buffer

El ID Buffer es un búfer de imagen donde en vez de almacenar el valor de color de cada pixel, se almacena la ID de cada objeto para poderse identificar entre fotogramas. Lo cual sirve para facilitar la obtención de información en frames anteriores de la escena. Sin embargo, esto tiene ciertos márgenes de error, como es el hecho que puede que hayamos hecho un giro de cámara que lo saque del encuadre en el próximo fotograma o que tengamos un cambio completo de escena. Por lo que es uno de los elementos clave en el Pixel Tracking.

pixel tracking id buffer visibility buffer
  • Cada objeto en escena recibe un identificador en forma de número único, el cual se utilizará como identificador único. Dichos valores se generan automáticamente o pueden ser asignados por el programador en el propio código del juego.
  • Los valores de identificación no solo se aplican a objetos, sino a toda primitiva gráfica, incluso píxeles. Siendo esta una de las claves del Variable Rate Shading donde solo hace falta invocar una ID para aplicar un algoritmo sobre un pixel o conjunto de píxeles concreto.
  • El ID Buffer permite acelerar la detección de colisiones entre objetos de la GPU en una escena. Es decir, si coinciden en posición y tiempo en el espacio.
  • Si no queremos que un objeto sea afectado o no por un efecto especial en la escena podemos marcarlo usando su identificación del ID Buffer. Esto es clave a día de hoy para el Ray Tracing, el cual puede ser selectivo, como ocurre en el caso de Forza MotorSport.
  • También es utilizado en algoritmos de visibilidad, para determinar de forma más fácil que objetos son visibles y cuáles no. Lo que permite descartar facilmente objetos que no se encuentran en escena e impedir así cálculos superfluos.

En resumidas cuentas, el primer paso es la identificación de los objetos y el segundo es su clasificación en la escena según donde se encuentren en cada momento.

Paso 3: vectores de movimientos y generación de fotogramas

Si sabemos dónde se encuentran dos objetos en el momento A y el momento B podemos saber cuál será su posición en el momento intermedio AB. Dicho concepto venido del mundo de la física lo conocemos como cinemática y es el que permite la generación de fotogramas a partir del Pixel Tracking. Y no solo los interpolados entre dos fotogramas reales, sino que incluso se pueden generar otros frames a partir de los generados automáticamente.

Vectores movimiento

La clave está en que la lista de pantalla que usa una GPU para escribir la escena es precisamente una lista de lo que ha de dibujar. Y es aquí donde vamos a desmitificar por completo técnicas de frames automáticos como las implementadas en el DLSS 3 y el FSR 3. Dado que ambas se basa en la obtención de vectores de movimiento a través del Pixel Tracking, pero especialmente la solución de NVIDIA que usa el Optical Flow Engine para ello.

Los vectores de movimiento también se utilizan en el escalado de resolución, pero su mayor aplicación es la generación de frames adicionales a través de la interpolación. No obstante no son una técnica perfecta por traer consigo problemas de Input Lag, pero eso es harina de otro costal.

5 2 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x