[ad_1]

Estamos jugando a un juego y casi todo se ve perfecto, excepto que ciertos objetos parecen tener menos definición, lo que empaña todo el resultado final. Es el problema de las texturas oblicuas, el cual es común en todos los juegos en tres dimensiones y donde hasta el momento no se le ha aplicado solución. ¿Por qué ocurre y qué soluciones existen?

El hecho de representar la realidad de un mundo en tres dimensiones en un espacio en dos dimensiones tiene sus limitaciones, no solo por el limitado ángulo de visión, sino por el hecho que aparecen una serie de aberraciones en perspectiva. La solución al problema sería tener un sistema gráfico pensado para un casco de realidad virtual y no uno pensado para una pantalla convencional y mal portado. No obstante, vamos a centrar el problema de las texturas

¿Qué es el problema de las texturas oblicuas?

Una de las limitaciones visuales en los juegos actuales, siempre y cuando sean escenas poligonales en tres dimensiones, tiene que ver con las texturas en objetos colocados en ciertos ángulos de visión respecto a la cámara. En muchos casos pierden definición e incluso se llegan a ver con poca definición o borrosas. Lo cual empaña enormemente el aspecto visual de los juegos.

Claro está que hemos de partir del hecho de que las texturas son una imagen 2D que es mapeada pixel por píxel en los fragmentos, los cuales no so otra cosa que los polígonos que componen cada uno de los elementos de la escena trasladados en un espacio cartesiano en dos dimensiones. El problema viene cuando el objeto forma un ángulo oblicuo respecto a la cámara, entonces el filtrado de texturas se ve realmente mal, ya que hace que incluso el detalle se difumine por completo. Sin embargo, esto tiene una explicación muy sencilla.

Texturas Oblicuas Ejemplo

¿Por qué ocurre?

Imaginemos por un momento una escena en 3D que representa una pared con un color totalmente lisa y un cuadro en el centro. Si miramos dicho cuadro de frente, entonces tendremos una correlación de píxeles, el cuadro y la textura de 1:1 y, por tanto, se verá está de forma correcta. En cambio, si rotamos la cámara y con ello el ángulo nos encontramos con que dicha relación se rompe por completo. Los píxeles ya no son cuadrados, sino que se han vuelto más largos y a la vez más finos. Es decir, se ha producido una anisotropía y, por tanto, ciertas características han cambiado con el ángulo de visión.

Distorsión imagenes texturas oblicuas

Por ejemplo, nos podemos encontrar que un objeto que era de 256 x 256 píxeles de frente, en una posición oblicua, tenga menos píxeles. Por lo que al final acaba generando una textura con menos información y en consecuencia resolución. Es decir, realmente sí que estamos viendo un objeto con una definición mucho más baja al haber menos puntos de información y si a esto le sumamos la interpolación del filtrado de texturas, pues, ya nos podemos imaginar cuál es el problema con las texturas oblicuas.

El hardware de las tarjetas gráficas es ciertamente limitado

En cada uno de los núcleos de la GPU existe una unidad de texturas, está lo que hace es coger 4 píxeles adyacentes y aplicar un algoritmo de interpolación llamado filtrado bilineal, el cual se puede usar para aplicar como base otros tipos más complejos como el anisotrópico. Funciones que los desarrolladores no han de programar en sus juegos debido a que están automatizados por estas unidades de función fija.

Filtrados

Para evitar el problema en los ángulos oblicuos y no tener que calcular la misma textura a menos resolución lo que se cargan en memoria son dichas versiones. Las cuales son creadas por los artistas en la creación del juego. Pues bien, estos no solo se usan para las texturas respecto a la distancia, sino para calcular las texturas en ángulos oblicuos, aunque no con toda la precisión del mundo y, por tanto, de forma limitada a objetos cercanos, pero evita el problema respecto a la lejanía que se puede ver en objetos lejanos.

Lo ideal sería tener una textura de cada objeto dependiendo del ángulo de visión de la misma en memoria, pero esto no sería solo un trabajo titánico para los artistas, sino que requeriría multiplicar 90 veces la cantidad de memoria, ya que necesitaríamos una versión por cada grado de visión de la cámara. Claro está que activar el anisotrópico es gratis y requiere cero líneas de código, sin embargo, existe una solución mucho mejor y más avanzada.

La solución a las texturas oblicuas es el RIP Mapping, pero

El RIP Mapping es ni más ni menos que la solución definitiva al problema de visualización de las texturas oblicuas y es, por tanto, una solución más avanzada al actual filtraje anisotrópico en los juegos. De aplicarse en cuanto a hardware, el problema visual terminaría por completo, sin embargo, hay motivos por los cuales no se ha implementado todavía y tienen que ver no solo con los costes de computación, sino de ancho de banda, el cual puede llegar a ser de hasta 4 veces superior.

Rip Mapping Texturas Oblicuas

Si las actuales tarjetas gráficas ya se ven limitadas en términos de ancho de banda de la VRAM y es necesario cargar las texturas desde la caché interna de cada núcleo para tener una tasa lo suficientemente alta, entonces imaginad si usáramos el RIP Mapping. Y no, no se trata de una limitación en potencia. No olvidemos que hemos llegado al punto en que es más caro mover información que calcularla y este es uno de los ejemplos más claros. No parece que haya intención de solucionar este problema a corto plazo, a no ser que encuentren una solución a través de la IA. Lo cual es una pena, por el hecho que es uno de los problemas visuales que más empañan la experiencia de los juegos a nivel gráfico.

The post Ni las gráficas de 2.000 Euros solucionan este problema en los juegos appeared first on HardZone.

[ad_2]