La belleza esta en el interior (2/10). Tarjeta Gráfica

Hoy tenía pensado explicar qué es el anti-aliasing, pero antes creo que es necesario explicar cómo funciona una tarjeta gráfica en sí misma. Así que este artículo está dedicado al trabajo que realiza la tarjeta gráfica.

La tarjeta gráfica, como es obvio, se encarga del apartado gráfico del PC. Es el hardware encargado de generar las imágenes. Para ello hace uso de métodos para transformar los datos en imágenes. Cada fabricante tiene sus propios métodos pero siempre hay algunos que se repiten en todos, y eso es lo que vamos a desarrollar.

Los objetos que componen cada frame del juego se dividen en pequeños triángulos. Esto es así, porque es el polígono más sencillo de tratar o representar. Cuanto mayor sea el número de triángulos o de polígonos, mayor será la calidad de las imágenes. Cada objeto es tratado independientemente en paralelo por los núcleos de la tarjeta y evidentemente se hace de forma matemática.

Una vez que se han tratado los polígonos, se convierten las coordenadas 3D que tienen los vértices de los triángulos en el espacio a la proyección 2D que vemos en el monitor. Os resultará familiar si recordáis el diédrico en dibujo técnico cuando estudiábais. Por otra parte, todo lo que esté fuera del campo de visión de la cámara no se convertirá en 2D y así se ahorra recursos. Cuando esta parte no está optimizada ocurre lo mismo que en algunos juegos que usan Unreal Engine, que si te das la vuelta rápidamente, aún se está renderizando los objetos.

tarjeta_grafica_000

Una vez que tenemos la imagen se hace uso de varios post-procesos, como es la teselación (que explicaremos en otro artículo) que convierte esos triángulos en miles de ellos, creando volúmenes de forma artificial. Este proceso se usa para objetos que están cercanos a la cámara. Para ese proceso se hace uso de dos memorias, una que controla la profundidad de cada pixel, llamada Buffer-Z y otra con el triángulo o polígono que se tiene que mostrar en ese punto.

Después de este proceso se calcula la luz y se aplica las texturas correspondientes. También se combina con diferentes filtros como el anisotrópico o el anti-aliasing.

A grandes rasgos, éstos son los procesos que realizan las tarjetas gráficas para que nosotros podamos disfrutar de los videojuegos. Aunque dependiendo del fabricante se usen diferentes técnicas, no hay grandes diferencias entre ellos. Por otra parte, el desarrollador puede decidir el orden de cada fase. Todo esto lo realiza en décimas de segundos, miles de cálculos por segundo.

Ayúdanos a difundir y compártelo !!!

Escrito por: kenroga

Eterno estudiante, y amante de cualquier forma de expresión. Si me preguntáis por un videojuego, os diré Half-Life, si me preguntáis por una desarrolladora, os diré Valve, si me preguntáis por una plataforma, os diré Steam. Porque seamos sinceros, solo hay un Gabe Newell.

  • shaderman123

    El anisotrópico es un tipo de filtrado que se suele aplicar antes del texture lookup , o al cargar la textura y guardar el resultado en un mipmap para evitar distorsión en la misma. Lo del antialiasing merece un artículo para si mismo 🙂
    Un par de imágenes para ilustrar quedarían genial.

    • Se agradece las correcciones.

    • shaderman123

      Por cierto, por post-proceso suele conocerse la técnica que se aplica a un FBO o un render target, la teselación forma parte del pipeline y va antes del pixel shading.

  • Maraz

    Qué bárbaro. Buen artículo, y gracias por la clase, soy un completo ignorante de estos temas.

  • DaniM

    Yo cuando veo las gráficas de ahora y todo lo que hacen, miro atrás y pienso en las primeras voodoo (QuakeGl y demás). Entonces era lo más potente que había y las considerábamos unas bestias. Lo de ahora casi es demencial. ¿Habra techo? Yo creo que sí, aunque la industria ya se sacará algo de la manga para hacernos creer que lo necesitamos.