Upload
alejandro-casillas
View
1
Download
0
Embed Size (px)
DESCRIPTION
Este archivo nos explica como funciona una tarjeta gráfica.
Citation preview
¿Cómo funciona una tarjeta gráfica?
En un PC, el dispositivo encargado de generar las imágenes que ves en
el monitor es la tarjeta gráfica. Esto es mucho más importante en aquellos juegos
que ofrecen complicados mundos tridimensionales.
Los procesadores convencionales no están pensado para realizar este tipo de
tareas. Requieren de miles de millones de operaciones muy complejas y por lo
tanto se utiliza un hardware especializado para llevarlo a cabo.
Computadoras
Gráficas
Video monitor
Fast video Converter
Video drivers
Por suerte, el procesado de una imagen tridimensional se realiza en paralelo. La
tarjeta gráfica puede trabajar sin problemas con varios puntos de la imagen al
mismo tiempo, lo cual le permite hacer uso, a la vez, de los miles de núcleos que
contiene.
Aunque cada fabricante tiene una forma de realizar la transformación de los datos
a lo que finalmente ves, existen una serie de procesos o fases que podemos
considerar comunes.
La formación de cada cuadro o frame se realiza de la forma siguiente:
Se parte de los objetos. Estos están formados por pequeños triángulos. Se utiliza
este polígono por que es el más sencillo de tratar. Se transforman los objetos a la
posición y postura que tienen en ese momento en el juego. Todo esto se hace,
como puedes imaginar, de manera matemática. Cuanto mayor sea el número de
estos pequeños triángulos, serán más pequeñas las imperfecciones y las
imágenes ganaran en calidad, pero será mucho más complejo
computacionalmente de tratar.
Se pasa a 2D. Se convierten cada uno de los vértices de esos triángulos de su
coordenada 3D a la proyección 2D que tendrían sobre el monitor..
Este proceso es muy sencillo pero como imaginaras interviene tanto las posiciones
de objetos en el mundo como el punto de vista del que juega. Debido a esto esta
transformación hay que hacerla en cada imagen que se genera.
Se quitan del procesado aquellos triángulos que no están dentro del ángulo de
visión. Esto se puede realizar tanto a nivel de objeto ahorrando por lo tanto
muchos cálculos.
Se procesan esos triángulos. Esta fase esta ganando importancia. Gracias a
efectos como la teselación, por ejemplo, podemos convertir cada uno de esos
triángulos en miles. Importante sobre todo para los objetos más cercanos. De esta
forma objetos que de otra manera parecerían planos pueden obtener precisas
curvas o cualquier otro tipo de forma.
La idea principal detrás de esta fase es utilizar la mayor parte del calculo con
aquellos objetos que van a estar más cercanos a la visión del jugador.
Si se crean más triángulos se pasaría a la fase anterior.
Se rasteriza. Por cada triangulo se realiza un repaso por los pixeles que lo
forman. Es decir se pasa de las coordenadas 2D a el punto que tendrá finalmente
en la pantalla.
Tendremos dos memorias, una de ella tiene la profundidad de cada pixel, que se
llama buffer-Z y otra con el triangulo que se debe de mostrar en ese punto. Cada
vez que procesamos un triángulo comprobamos si es más cercano a la pantalla
que el anterior y si está mas cerca que otro entonces apuntamos el triangulo en
esa memoria y actualizamos la profundidad de ese punto.
De esta forma sólo se muestra un punto de cada triángulo por cada pixel.
Se calcula la luz y se le aplica la textura. Se realiza un repaso por todos los
puntos que componen la pantalla y se calculan tanto la luz que llega como las
texturas y otros tipos de efectos. Es el momento por ejemplo del filtro anisotrópico.
Si existe filtro antialiasing se combinan los puntos. En caso de usar un filtro
antialiasing se combinan los distintos puntos que se han calculado para mostrar la
imagen final.
El programador, usando DirectX puede cambiar como se realiza cada fase y
añadir efectos de todo tipo en cada una de ellas.