COMPONENTES DE IMAGEN Y VÍDEO I OBJETIVOS La PC ha ido evolucionando y mutando desde sus comienzos hasta hoy en día. Como hemos venido estudiando en un principio se la podía reconocer como una potente herramienta de trabajo, y su ámbito estaba restringida a los lugares en los cuales se la pudiera utilizar para tal fin, Empresas, Oficinas, Universidades, etc. Con el paso del tiempo, la reducción de costos y el aumento de la capacidad de procesamiento la PC ha ampliado su ámbito de cobertura y si bien sigue manteniendo el liderazgo en los lugares antes mencionados y es cada vez más común encontrarla desarrollando tareas en los más diversos ámbitos, muchos de los cuales incluso le habían sido vedados por limitaciones propias como por ejemplo en el desarrollo de animaciones en 3D, manejo de fotografías y video e incluso los juegos. Este crecimiento hizo que hoy sea común encontrarla en los hogares, y no solo como una poderosa asistente en el ámbito laboral sino también como un centro de esparcimiento para toda la familia. Los juegos han copado el centro de la escena, y hoy un gran porcentaje de las computadoras que se venden tienen como objetivo primordial el entretenimiento. Los “Juegos” y las aplicaciones de “Diseño Gráfico”se han transformado en una de las áreas de mayor exigencia en cuanto al Hardware de PC, requieren de maquinas potentes, sistemas operativos modernos y actualizados, la configuración de sus drivers es un tema en sí mismo, y aún contando con todo lo antes mencionado si no se dispone de los conocimientos Técnicos adecuados la integración de una maquina para tal objetivo puede transformase en un fracaso rotundo con un altísimo costo comercial. El objetivo de la presente clase es adquirir todos los conocimientos necesarios para poder diseñar, adquirir, instalar y configurar correctamente tanto una PC cuyo objetivo primordial sea un trabajo de oficina, el Diseño Gráfico o para un poderoso centro de juegos hogareños. INTRODUCCIÓN Como ya se ha visto esta interface es uno de los componentes más importantes en el rendimiento de un PC. A través del tiempo se han producido muchos cambios y avances en el manejo del video. Desde los primeros monitores de fósforo verde de las XT, hasta los últimos monitores de 29 pulgadas, a miles de millones de colores han pasado muchos años de continuos avances. De las primeras placas MGP, se pasó a las CGA, a las EGA y por fin a las VGA. A continuación reseñaremos estas primeras tecnologías para poder comprender el porque de las nuevas con sus nuevos requerimientos, donde este curso profundizará Instituto Tecnológico Argentino THP / Clase 17 1 ESTUDIO Instituto Tecnológico Argentino Técnico en Hardware de PC Reservados los Derechos de Propiedad Intelectual Plan THP2A03B Tema: Componentes de Archivo: CAP2A03BTHP0117.doc Imagen y Video I Clase Nº: 17 Versión: 1.5 Fecha: 28/09/05 1. HISTORIA DEL VIDEO EN LAS PC La pantalla de vídeo (el monitor) es un periférico externo, que al igual que los demás requiere de una interface adecuada para vincularlo con la PC, esta interface es la placa controladora de video. Si bien algunas de las primeras PC utilizaban una salida de video analógica en “video compuesto”, (tipo de señal utilizada por la televisión) que permitía la utilización de un televisor común como monitor, tenía resoluciones muy bajas, de sólo 40 caracteres por línea y 25 líneas de texto. Para las XT, IBM implemento un formato digital de 80 caracteres por línea conocido como salida de video monocromo MDA (Monochrome Display Adapter – Adaptador de Pantalla Monocromo) que utilizaba un monitor llamado “monitor TTL” de mayor estabilidad y definición. La generación siguiente apareció en 1981 introducida por IBM, la denominaron CGA (Color Graphics Adapter – Adaptador de Gráficos Color) este fue un avance ya que ahora se podía ver una imagen en un nuevo modo llamado gráfico que podía mostrar 4 colores. Este modo y el de texto serán explicados mas adelante en este capitulo. En 1982 la empresa Hércules lanzo un adaptador para IBM del tipo monocromo conocido normalmente por el nombre de su fabricante, estas tecnologías fueron desplazadas finalmente por VGA (Video Graphics Adapter – Adaptador de video Grafico) y sus actualizaciones. 2. MODOS DE LA IMAGEN La imagen de la pantalla se puede generar básicamente por dos métodos distintos, por el modo gráfico o el modo texto. 2.1. Modo gráfico: Las imágenes formadas en el modo gráfico están compuestas por puntos, denominados “Pixels” ó Píxeles (Picture Elements = Elementos de imagen) donde cada punto es parte de una matriz o cuadrícula que cubre toda el área visible de la pantalla. Cuantos más puntos posea una imagen, mayor será el nivel de detalle que se pueda obtener. Por ejemplo, para obtener una imagen como la de un televisor, son necesarios unos 450.000 pixeles en toda la pantalla. (580 pixeles verticales por 734 horizontales). Además, cuantos más datos deba contener cada pixel (más colores) harán falta más posiciones de memoria (más bits), lo que significa que hará falta más memoria para almacenar la imagen. 2.2. Modo texto: En modo texto, en vez de pixeles o puntos, en la pantalla se forma cada carácter ASCII a partir del código almacenado en la placa controladora de video, ya que su forma o imagen se encuentra grabada en una memoria ROM en esta controladora, conocida como “Generador de Caracteres”. Este modo divide a la pantalla en 25 líneas de 80 columnas (25 renglones de 80 letras c/u, dando un total de 2000 caracteres), para cada carácter se utiliza un byte para el código y otro byte para los atributos del mismo (subrayado, parpadeo, resaltado, etc.) Los caracteres del texto son mostrados según un patrón ó caja de 9 x 14 pixeles, donde cada pixel se iluminará para formar la figura del carácter correspondiente. Instituto Tecnológico Argentino THP / Clase 17 2 ESTUDIO Figura 17.1: Generación de la imagen en modo texto 3. LA INTERFAZ VGA Esta interfaz maneja la señal de video en función de la proporción ó mezcla de tres colores primarios, Rojo, Verde y Azul. La señal resultante para cada uno de estos colores es enviada al monitor por el cable, de manera que habrá en él, tres conductores para llevar los tres colores. Además hacen falta las señales de sincronismo para coordinar entre la computadora y el monitor la posición de cada pixel en la pantalla. Estas señales son dos, sincronismo vertical y sincronismo horizontal y cada una requerirá un conductor para su interconexión. Sumado además los conductores necesarios para las masas, fue necesario usar un conector de 15 pines para el cable de estos monitores, eligiendo el formato Sub-DB15 de alta densidad (con tres filas de contactos). Instituto Tecnológico Argentino THP / Clase 17 3 3.1. LA CAPACIDAD DE COLOR VGA La capacidad de color de los adaptadores de video está definida en dos formas: Por la paleta (el máximo de colores distintos que un pixel puede tener) y por el número de colores que pueden ser mostrados simultáneamente. Esta dualidad reside en la manera con que los adaptadores gráficos VGA manejan los colores. Según la cantidad de bits asignados en la memoria del adaptador, para definir el color de cada pixel, se tendrán más tonalidades. Con un bit se especifica un solo “color” (monocromo), ya que sólo puede estar “prendido” ó “apagado”, en cambio dos bits pueden especificar hasta 4 colores y ocho bits hasta 256 colores. La cantidad de memoria RAM en la placa del adaptador está relacionada entonces, con el número de colores que el adaptador pueda manejar. Por ejemplo, para una imagen de 1024 x 768 pixeles en 256 colores (8 bits) un adaptador gráfico necesitará al menos 750 K bytes de memoria en la placa. Pero como las imágenes del VGA con 256 colores se ven “artificiales” y buscando imágenes mas realistas, con calidad fotográfica, se aumentó la cantidad de RAM de video (para poder asignar mas bits a cada pixel), yendo de Kilobytes a Megabytes. 3.2. LA MEMORIA DE VIDEO Los primeros adaptadores VGA usaban las más comunes y económicas memorias disponibles para computadoras, las memorias DRAM (Dinamic Random Acccess Memory = Memoria de Acceso Aleatorio Dinámica). Estos Chips son pequeños y baratos pero son relativamente lentos cuando hay que refrescar un área de video muy grande. Para aumentar la cantidad de colores sin aumentar la cantidad de memoria, las placas VGA usan tablas. En vez de definir un color de forma absoluta, los adaptadores de video guardan en su memoria códigos. Cada código es apareado con alguno de un grupo mucho mayor de colores que hacen a la paleta de colores del adaptador. La paleta de colores del VGA es de 262.144 (256K) colores y esta disponible porque el sistema VGA utiliza un chip llamado Conversor Digital Analógico (DAC también conocido como RAM DAC porque trabaja con la memoria RAM), que usa códigos de 18 bits en su mapa de colores. Las sutiles variaciones, permitidas por esta gran paleta de colores, permiten crear imágenes razonables bajo el estándar VGA aunque solo 256 colores se puedan mostrar simultáneamente en la pantalla. Muchas imágenes están formadas por un número limitado de tonos, relacionados e impresos desde una misma familia de colores, así que un pequeño número de tintes son suficientes para una buena reproducción. La paleta de colores VGA entonces, es un compromiso entre colores y costo. Para el artista gráfico y el editor de imágenes multimedia esto no es lo suficientemente bueno para reproducir imágenes realistas. Estos necesitan manejar millones de colores para acomodar todos los tonos requeridos para una calidad fotográfica. La industria de la computación ha convergido a un estándar de alta resolución en 24 y 32 bits, en los que 8 bits, ó más, se usan para guardar la información de cada uno de los tres colores primarios. El problema que trae usar 24 ó 32 bits es que requiere usar varios bytes para cada pixel en la pantalla del monitor necesitando una gran cantidad de memoria. Instituto Tecnológico Argentino THP / Clase 17 4 3.3. MODOS EXTENDIDOS VGA Para superar la limitación dada por los 8 bits de almacenamiento en la información del color, se introdujeron distintos chips RAM DAC, con distintos códigos propios, haciendo necesaria la incorporación de un software especial para acceder (a través de los programas que residen en las ROM BIOS del VGA) a una mayor gama de colores. Esto significa que los usuarios de computadoras PC para acceder a estas capacidades especiales de las placas de video necesitan un software especial, llamado en la jerga “Driver de video”, que usualmente viene incluido en un disquete ó CD con cada placa. De manera que para aprovechar todos los beneficios de una placa de video, esta trae incluidos los Drivers Windows, que permitirán acceder a todas sus posibilidades. 3.4. CÁLCULO DE LA MEMORIA DE VIDEO NECESARIA La formula que relaciona la resolución y la cantidad de colores, con la memoria necesaria para manejarlas en la controladora de video es: Megabytes de RAM de video = Rh x Rv x N Donde: Rh: resolución horizontal y Rv: resolución vertical (en pixeles) N: bytes por pixel (cant. de colores) = 1/8 (monocromo =1 color), 1/2 (para 16 colores), 1 (para 256 colores), 2 (para 64K colores), 3 (para 16 millones de colores) y 4 (para 4,3 Giga de colores). Por lo tanto, una mayor definición o más colores necesitarán más memoria de video. Ejemplo del uso de la formula: Una interface color VGA que maneje 256 colores con 640 x 480 pixeles, necesitará para cada pixel un byte completo (1 byte = 8 bits = 256 combinaciones posibles) lo que hace: Rh x Rv x N = 640 x 480 x 1 = 307.200 bytes de memoria RAM = 300 Kb Instituto Tecnológico Argentino THP / Clase 17 5 ESTUDIO En una alta resolución (p/Ej.: 1.024 X 768 pixeles) se requerirán mas de dos millones de bytes (exactamente 2.359.296) para almacenar una imagen con 24 bits. Manipular esta cantidad de datos unas sesenta veces por segundo (frecuencia de refresco de cuadros) puede frenar hasta a las más rápidas computadoras. Estos adaptadores entonces están usando las más rápidas (y más caras) memorias tipo VRAM. Las VRAM (Video Random Access Memory = Memoria de acceso aleatorio de video) son chip de memoria modificados para permitir la escritura por parte de la CPU y la lectura por parte del procesador de la placa de video en forma simultanea. Así una gran cantidad de información puede ser transferida rápidamente entre el sistema y el adaptador de video. Siempre es conveniente por lo tanto obtener placas de video con chips VRAM. En la búsqueda de más velocidad se introdujeron las memorias EDO (Extended Data out = Salida de Datos Extendida), con estas se logra un mejoramiento del 10 por ciento en la velocidad con respecto a las RAM comunes, además como su precio es menor, las han reemplazado en todas las configuraciones. Sin embargo las EDO RAM para video, se comportan un poco más lentas que las VRAM, en configuraciones de más de 256 colores (8 bits). Para 2 bytes/16 bits (64K colores) = Para 3 bytes/24 bits (16M colores) = Para 4 bytes/32 bits (4,3G colores) = 640 x 480 x 2 = 600Kb 640 x 480 x 3 = 900Kb 640 x 480 x 4 = 1,2 Mb Por eso las placas con soporte a resoluciones extendidas VGA traen 1, 2, 4, 8 y más Mbytes de memoria RAM. 3.5. CARACTERÍSTICAS DEL ADAPTADOR VGA Las señales de video generadas por la placa adaptadora VGA tienen una característica especial, no son señales digitales, ya que para poder obtener una gran gama de niveles en cada color se recurrió a convertir la cantidad de bits correspondientes a un nivel de tensión analógica. Una interfaz de vídeo VGA tendrá entonces los siguientes componentes: Memoria RAM de video, donde se almacena la imagen, una memoria ROM conteniendo los caracteres del modo texto y los programas del BIOS VGA, tres conversores de las señales digitales a analógicas que convierten los datos de la imagen en señales de video y la lógica necesaria para generar las señales de sincronismo. La proporción de ancho/altura que tendrá la imagen dependerá de la que tengan los barridos en el monitor y estos serán comandados por las señales de sincronismo. Por lo que vemos que el conjunto controladora/monitor debe cumplir con requisitos de compatibilidad. Hay dos sincronismos el horizontal que marca el comienzo del renglón y el vertical que marca el comienzo de la pantalla. Estos sincronismos deben coincidir con los barridos que controlarán en el monitor. Las frecuencias de los barridos en el VGA son de 60 Hz. para el vertical y 31,5 Khz para el horizontal. Con estas frecuencias se pueden lograr en pantalla 480 líneas (notar que a cada línea del barrido le corresponderá un punto vertical) con 640 pixeles cada una. Haciendo la cuenta de 480 por 640 nos da 307.200 pixeles en toda la pantalla. A medida que la resolución aumente, la necesidad de barrer más líneas en el mismo tiempo, acelerará los barridos aumentando sus frecuencias. El límite de estas lo determinan primariamente los circuitos de barrido del monitor y secundariamente las características de generación de la imagen en la placa controladora. Es decir que los fabricantes de placas de video ponen las opciones de barrido más recomendadas, para cada modelo de placa, en función de la cantidad de memoria que posean. Y esto determinará el tipo de monitor más apropiado para cubrirlas. La cantidad de colores que cada pixel pueda tener dependerá de la cantidad de información que cada uno tenga. De manera que además de la cantidad de pixeles (definición) que tenga una pantalla esta podrá tener más o menos cantidad de colores, por lo que para armar el mapa de la imagen en la memoria RAM, cuanto más colores ó definición tenga, mas memoria hará falta para contenerla. Las resoluciones estándar de video son 640 x 480, 800 x 600, 1024 x 768, 1200 x 1024, 1600 x 1200, 2000 x 1500 y 2200 x 1600. Otro importante elemento es la velocidad de refresco de la imagen, dependiente de la cantidad de información que deba ser manejada. Pensemos que es el microprocesador quien debe poner cada bit en la memoria de video para que luego la lógica de la misma lea estos datos y los envíe a la pantalla. Si al mismo tiempo que el microprocesador está escribiendo, la lógica de video quiere leer, se producirá una colisión de acceso. Para evitarla se han desarrollado las tecnologías especiales para estas RAM de video, llamadas VRAM como hemos visto. Instituto Tecnológico Argentino THP / Clase 17 6 Estas limitaciones llevaron a aumentar la velocidad de transferencia de los datos dentro de la máquina. La norma que define al área donde se conectan las placas de expansión o Slots del motherboard, llamado Bus de interconexión, fue una de las primeras limitaciones. Sufriendo varias mejoras a lo largo de la historia de la PC, siempre en búsqueda de mayor velocidad de transferencia. En este punto debemos definir un factor muy importante, que es Ancho de Banda. Ya conocemos el concepto de Ancho del Bus de Datos, que es la cantidad de vías para transportar datos medida en cantidad de Bits, a este concepto le agregaremos la Frecuencia de trabajo del Bus (esta es la velocidad a la que se transportan los datos) medida en MHz/Seg. El Ancho de banda es el resultado de multiplicar el ancho del bus (expresado en Bytes) por la frecuencia de trabajo del mismo (expresada en MHz/Seg), como resultado obtendremos un número expresado en MByte/Seg que nos dice la cantidad de información por unidad tiempo. Esta medida nos brinda una idea de los límites en la cantidad de datos que pueden transportar un BUS determinado. En un comienzo IBM desarrolló el Bus de interconexión llamado ISA (Industry Standard Architecture = Arquitectura Estándar de la Industria) con un máximo de velocidad de 8 MHz. En un principio el ancho del bus era de 8 bits, por lo tanto su ancho de banda es de 8 Mega Bytes por segundo. Figura 17.2: Placa de video ISA de 8 bits Posteriormente ISA se amplio a 16 bits manteniendo su velocidad de 8 MHz. Por lo tanto su ancho de banda aumentó a 16 Mega Bytes por segundo Figura 17.3: Placa de video ISA de 16 bits Los competidores de IBM desarrollaron el EISA (Extended Industry Standard Architecture) Diseñado por 9 fabricantes de partes entre ellos Compaq y Hewlett Packard para competir con el bus Microcanal. El bus EISA tiene un ancho de bus de 32 bits y una frecuencia de 8.33 MHz. Con un ancho de banda de 33 MB por segundo. Instituto Tecnológico Argentino Figura 17.4: Placa de video EISA de 32 bits THP / Clase 17 7 ESTUDIO Aún así la cantidad de datos a mover es enorme y la formación de una pantalla a resoluciones altas, con muchos colores y velocidad, puede consumir mucho tiempo del microprocesador. La velocidad del video, entonces es un elemento crítico en una computadora sobre todo para aplicaciones gráficas en movimiento. En 1992 VESA (Video Electronics Standard Association) lanza el Bus VLB (VESA Local Bus). VLB es un Bus de 32 bits que brinda acceso directo a la memoria del sistema y al Bus externo del procesador (en ese momento 486), cuya velocidad es de 33 MHZ. Como resultado obtenemos un ancho de banda de 127 MBytes por segundo. Figura 17.5: Placa de video VLB Figura 17.6: Placa de video PCI Posteriormente Intel desarrolló en 1992 el Bus PCI (Peripheral Component Interconnect = Interconexión de Componentes Periféricos) y luego en 1995 su nueva revisión PCI 2.1. Este es un Bus de 32 bits con una velocidad de 33 MHz. En esta primera versión el ancho de banda es de 133 MBytes por segundo. La versión 2.1 también está disponible en 64 bits y 33 MHz con lo cual su ancho de banda es de 266 MB/S y en 64 bits y 66 MHz, dando su ancho de banda 508 MBytes por segundo. Por último se introdujo el puerto de video dedicado, AGP (Accelerated Graphics Port = Puerto Gráfico Acelerado), que duplica la velocidad a 66 MHz, manteniendo el ancho del Bus a 32 bits. Dadas las necesidades gráficas de los últimos tiempos, la velocidad de transferencia de datos de este puerto ha ido aumentando, gracias a nuevas técnicas implementadas para tal fin, siendo el ancho de banda de AGP x1 es de 266 Mega bytes por segundo. La solución aportada por esta tecnología, es que el ancho de banda no se comparte con otros dispositivos como en el Bus PCI y la frecuencia del Bus fue elevada al doble de la utilizada por su antecesor, por otro lado posee una conexión directa con el puente norte del chipset, que le Figura 17.7: Placa de video AGP permite acceder a la memoria principal del sistema, dejando a los desarrolladores la posibilidad de realizar escenas mas complejas e intensas. Esta característica del puente norte también se utiliza para poder entablar una comunicación especial con la placa de video, que le permite transferir el doble o el cuádruple de datos en la misma unidad de tiempo, independientemente de la frecuencia del sistema de memoria y el microprocesador, esta característica tiene como resultado que se pueda variar la cantidad de datos hacia y desde el puerto y se las conoce como X2 y X4, el ancho de banda que proporcionan es 533 Mega Bytes por Segundo y 1.07 Giga Bytes por Segundo respectivamente. Instituto Tecnológico Argentino THP / Clase 17 8 Bus Speed (MHz) Bus Bandwidth (M Bytes/sec) 8-bit ISA 8 8.3 7.9 16-bit ISA 16 8.3 15.9 EISA 32 8.3 31.8 VLB 32 33 132 PCI 32 33 132 PCI 2.1 64 33 266 64-bit PCI 2.1 64 66 532 AGP 32 66 266 AGP (x2 mode) 32 66x2 533 AGP (x4 mode) 32 66x4 1,070 AGP (x8 mode) 32 66x8 2,140 ESTUDIO Width (bits) BUS Tabla 17.1: Comparación entre los distintos buses Figura17.8: Conectores de video Instituto Tecnológico Argentino THP / Clase 17 9 4. ACELERACIÓN GRÁFICA Las exigencias gráficas de los últimos tiempos plantearon la necesidad de aumentar la velocidad del bus, y es así como ahora tenemos las velocidades de transferencia del bus AGP que varían desde 266 MB/S hasta 2.100 MB/S. Pero las aplicaciones gráficas, especialmente los juegos, plantearon el requerimiento de reproducir con más realismo los gráficos e imágenes. Aquí los juegos (cada vez más realistas) fueron los que se volvieron más complejos y exigentes para poder reproducir sus escenas. Esta complejidad fue en aumento hasta consumir demasiado tiempo de CPU (el procesador central de la PC) para calcular las formas de los objetos de la aplicación, en este caso el juego, necesitaba reproducir. Y aquí entran en acción las aceleradoras gráficas. Estas placas de video con funciones especiales buscan desde sus comienzos, liberar el trabajo de la CPU implementando mediante Hardware dentro de la misma placa parte de las funciones que hasta ahora cumplía el microprocesador central. Entonces se llama acelerador gráfico al procesador que incorporan algunas tarjetas de video. Este procesador llamado GPU (Graphics Processor Unit) puede resolver las exigencias gráficas mucho más rápido que la CPU, liberando a esta última de ejecutar esta tarea. En su período inicial las primeras aceleradoras gráficas se presentaban como una tarjeta complementaria a la placa 2d convencional, lo cual exigía tener una placa 2d instalada en la PC puesto que lo único que agregaba es la función 3d y no disponía de capacidades 2D. Su conexión se hacia en “cascada, quiere decir que las dos tarjetas se debían conectar entre sí puesto que mientras estemos trabajando en un ambiente 2D (por ejemplo Windows) la única placa que estaría activa sería la 2D y en cuanto carguemos un juego 3D es la tarjeta aceleradora la que entra en acción, otra de las limitaciones en esta época era que estas tarjetas solo funcionaban a pantalla completa, es decir no se podía ejecutar el juego en una ventana de Windows. Esto se fue solucionando con el tiempo al salir al mercado nuevas tarjetas ya con capacidades 2D/3D de manera que se solucionaron las dos limitaciones de la generación anterior; aunque todavía se siguen fabricando tarjetas con función 3d únicamente, para poder agregarlas a PC’s con placas 2d existente, su presentación es en bus PCI. 4.1. 3D Y SU FUNCIONAMIENTO Al hablar de 3D estamos hablando de tres dimensiones: altura, ancho y profundo. El monitor solo tiene dos dimensiones: alto y ancho; y entonces ¿como es posible que en un ambiente donde solo hay dos dimensiones puedan existir tres? La respuesta es: no pueden, pero si es posible engañar a nuestros ojos haciéndoles creer que estamos dentro de un mundo 3D, algo parecido a darle profundidad a una figura geométrica en un papel (perspectiva). Para que esto ocurra (darle profundidad a una figura) el procesador gráfico (como dijimos mas arriba, antes el CPU ahora el GPU) debe transformar la imagen primitiva en una imagen 3D. Instituto Tecnológico Argentino THP / Clase 17 10 Figura 17.9: Ejemplos de Wire frame En esta etapa también es calculada la textura que se aplicará a cada polígono que podrían ser por ejemplo: rugoso, liso, cuero, piel, cabello, madera, piedra, vidrio, etc. y la primer etapa de iluminación es en la que se va a calcular la incidencia de las fuentes de luz sobre los objetos ya texturizados, este cálculo está basado justamente en la textura ya aplicada pues no es lo mismo el efecto de la luz sobre una textura metálica que sobre una textura rústica como por ejemplo una piedra. Todo este proceso era calculado por la CPU y una vez terminada le entregaba el control de la imagen a la tarjeta aceleradora. En las últimas placas 3d se ha implementado esta función dentro de las mismas liberando a la CPU de esta pesada carga de cálculos. Dicha implementación se la conoce como T&L Engine (Transform & Lightning) Motor de transformado y luminosidad. 4.1.2. ETAPA DE RENDERIZADO En esta etapa la encargada de hacer el trabajo es la tarjeta de aceleración y es donde se aplican el dibujado de los píxeles transformándolos en Texeles (píxeles texturizados), en esta etapa son implementadas varias técnicas que tienden a mejorar el realismo de la imagen aplicando distintos efectos. Dada la evolución de las placas aceleradoras estos efectos estarán presentes o no dependiendo exclusivamente del chipset utilizado por la misma. Instituto Tecnológico Argentino THP / Clase 17 11 ESTUDIO 4.1.1. ETAPA DE GEOMETRÍA La etapa de geometría que es la transformación del objeto básico dividiendo la imagen en polígonos, donde utiliza como base el más simple de todos, el “triangulo”, para poder formar otros más complejos, con este sistema se calculan no solo los polígonos que están en los ejes X e Y (alto y ancho) sino también los que van en el “supuesto” eje Z (profundidad). A cada uno de estos polígonos se le asigna una o varias características, esta serie de figuras forman parte de un objeto con características similares, este objeto es definido por sus coordenadas y forman parte de un sistema ordenado llamado “WORLD SPACE CO-ORDINATE“, cada elemento que quede afuera de este espacio o sea tapado por otro será descartado, evitando así el cálculo innecesario de objetos o sus partes que no queden en la imagen visible esta tarea se llama Cliping. Cada uno de estos objetos ya calculado con sus respectivos polígonos es conocido como “wire frame” Estos efectos pueden ser los siguientes 4.1.2.1. BUMP MAPPING: Técnica por la cual al aplicar una rugosidad a un objeto todos los colores cercanos al blanco serán protuberancias y todos los cercanos al negro serán depresiones. Figura 17.10: Ejemplo de Bump Mapping 4.1.2.2. ALPHA BLENDING: Efecto aplicado a un objeto para darle transparencia, esta transparencia debe tener distintos niveles (la transparencia de un vidrio no es la misma que la de la un acrílico con una cierta coloración). En este efecto se calculan no solo la transparencia del objeto sino también que incidencia tiene en los que están detrás de él. Figura 17.11: Ejemplo de Alpha Blending Instituto Tecnológico Argentino THP / Clase 17 12 Figura 17.12: Ejemplo de Filtering 4.1.2.4. MIP MAPPING: Esta es una técnica por la cual se aplican diferentes grados de detalle de una misma textura, dada la cercanía o el alejamiento del objeto con respecto al observador, entonces si el objeto está en primer plano se empleará la textura correspondiente pero con el mayor nivel de detalle, si ese mismo objeto se aleja del primer plano se aplicará la misma textura pero Figura 17.13: Ejemplo de mip mapping Instituto Tecnológico Argentino THP / Clase 17 13 ESTUDIO 4.1.2.3. FILTERING: Filtro por el cual se calcula la unión de texturas adyacentes por los puntos en común que estas puedan tener. Existen varios tipos implementados en tarjetas diferentes estos pueden ser Bilinear Filtering, Trilinear Filtering, Anisotropic Filtering. Este efecto agrega una mejor definición en la unión entre objetos distintos. con menor detalle con lo que se ahorra tiempo en la texturización de un objeto que está en segundo o tercer plano y por lo consiguiente no requerirá de gran definición. 4.1.2.5. GOURAUD Y PHONG SHADING: Estos efectos tienen por objetivo establecer las transiciones entre colores del mismo objeto y de esta manera dar una sensación de solidez y realismo, el gouraud es mas rápido que el phong pero este último tiene más poder de realismo al manejar mejor los brillos y claroscuros. Gouraud Phong Figura 17.14: Ejemplos de Gouraud y Phong Shading Instituto Tecnológico Argentino THP / Clase 17 14 Vertex Shaders es una tecnología reciente que solo está presente en las últimas tarjetas 3D. Mediante estos métodos también se pueden aplicar efectos como pelos, peluche, variaciones de iluminación, detalles específicos de gesticulación como por ejemplo, arrugas, comisuras de labios, etc. Vertex shaders ayuda a que el programador pueda aplicar sus propios efectos al juego creando sus propios Figura 17.15: Vertex Shaders programas de vertex shaders. 4.1.2.7. ANTIALIASING: (AA) Técnica por la cual se elimina el efecto serrucho, suavizando los bordes de las líneas rectas. Esto se logra “pintando” los píxeles limítrofes con colores de transición entre los dos tonos (el de la línea recta y los adyacentes a ella). Hay varios tipos de antialiasing y se clasifican por la cantidad de “pasadas” que se realicen de un mismo “frame” o pantalla. • AA 2X: Antialiasing 2x quiere decir que por cada pantalla o frame se examinan y suavizan estas líneas en dos revisiones. • AA 4X: Antialiasing 4x obviamente es que por cada frame o pantalla se realizan cuatro pasadas. Esto a su vez implica mucho trabajo de la GPU y atenta contra la velocidad de la misma. Entonces si se activa este efecto se sacrifica velocidad en favor de la calidad. • Quincunx AA: con quincunx AA se logra casi el mismo efecto que con AA 4x pero con apenas un poco mas de tiempo de GPU que con el 2X. • FSAA: FSAA (Full Screen Anti Aliasing) Anti aliasing a pantalla completa es antialiasing no solo de lo que está en primer plano sino de toda la escena completa. Esto supone obviamente un mayor poder de procesamiento por parte de la GPU y está presente solo en las últimas placas. Instituto Tecnológico Argentino THP / Clase 17 15 ESTUDIO 4.1.2.6. Vertex Shaders: Este efecto se aplica en la etapa T&L y consiste en un tratamiento intensivo de los vértices de cada polígono (un vértice es la esquina formada por la unión de dos bordes, y en un triangulo hay tres vértices) que conforman una imagen para dar realismo a esta, como por ejemplo una bandera flameando, una gota, la superficie de un líquido o las ondas que provoca en al agua la caída de una piedra. Sin AA Imágenes ampliadas para poder apreciar el detalle Con AA Figura 17.16: Ejemplos de Antialiasing 4.1.2.8. TRUE FORM: Con esta técnica se producen efectos mucho más realistas aplicando a un objeto una habilidad de las últimas tarjetas de la marca ATI (el modelo en la cual se incluye es la radeon 8500) llamada comúnmente “Curvado de Polígonos” que consiste en agregar píxeles adicionales entre cada vértice. De esta manera figuras que tienen curvas como por ejemplo una cabeza se ven mucho más reales. Este curvado de polígonos consiste en aplicar a un triangulo varios triángulos más dentro de el y después trabajar los vértices de estos haciéndolos parecer elevados con respecto al triangulo original. En la figura 17.17 podemos observar este principio y el efecto que produce en un objeto. Y en la figura 17.18 la aplicación de este en un juego con este efecto activado, cabe decir que True Form consume mucho tiempo de GPU por lo tanto retarda la velocidad en favor de la calidad. Instituto Tecnológico Argentino THP / Clase 17 16 ESTUDIO Figura 17.17: Principio básico del efecto True form Figura 17.18: Diferencia de una imagen sin true form y con true form Instituto Tecnológico Argentino THP / Clase 17 17 4.1.3. ETAPA FINAL Una vez aplicados los efectos queda una importante etapa para tener el producto final que es la imagen 3d en el monitor de video, esta consiste en poner las pantallas ya tratadas en memoria donde ya estarán a disposición del RAMDAC para convertir las imágenes aun digitales a analógicas. Cada una de estas pantallas se llama Frame y de la velocidad de la GPU dependerá la cantidad de frames que este pueda colocar en la memoria, esta cantidad está medida en pantallas por segundo o FPS (Frames per second) y algunos de los efectos detallados mas arriba atentan con esta cantidad de pantallas por segundo como por ejemplo True Form y AA. 4.1.4. APIS La industria del hardware crece más rápidamente que la de los sistemas operativos y dentro de la industria del hardware la producción de aceleradoras gráficas crece a pasos agigantados con grandes cambios e innovaciones que las identifiquen y diferencien de sus competidores. Para subsanar este problema están las API (Application Program Interface) Interfaz de Aplicación de Programa que actúa como intermediario entre el hardware y el programa haciendo que el programador se preocupe solo por decirle a la API que es lo que quiere conseguir de la placa de video. El driver de la misma debe estar programado para interactuar con la API mediante comandos estandarizados y traduce esta serie de comandos en el idioma de comandos que el hardware conoce. Las API son dos Direct 3d y Open GL que detallaremos a continuación: 4.1.4.1. DIRECT 3D Direct 3d forma parte de un conjunto de aplicaciones que tienen finalidades parecidas entre si, pero diseñados para otro tipo de hardware como por ejemplo placas de sonido, tema que ampliaremos en el capitulo 20. El programa que reúne estas aplicaciones se dio a llamar Direct X. que fue diseñado por Microsoft para sus sistemas operativos Windows con el objetivo de ayudar a los programadores en el diseño de programas multimedia. Las aplicaciones que forman parte de Direct X hasta su versión 7 son las siguientes: • Direct 3d diseñado para la utilización de gráficos 3d • Direct Draw diseñado para gráficos en 2d • Direct Sound diseñado para la reproducción de audio. • Direct Play diseñado para juegos en red • Direct Input diseñado para joysticks y otros dispositivos similares • Direct Music diseñado para la reproducción de Música Midi Direct X 8 introdujo algunas modificaciones entre sus componentes y son las siguientes: • Direct Sound y Direct Music se combinaron en una sola aplicación llamada Direct X Audio. Instituto Tecnológico Argentino THP / Clase 17 18 ESTUDIO Estos son solo algunos de los efectos más importantes que puede tener una placa de video con capacidades de aceleración 3d. Estos entonces pueden encontrarse o no dependiendo del chipset que tenga la placa, puesto que este (el chipset) va a determinar la tecnología incluida en ella. Más adelante detallaremos algunos de los chipsets más importantes a lo largo de la historia de las aceleradoras 3d. • • Direct 3d y Direct Draw en Direct X Graphics. Direct Show que hasta ahora era una API separada forma parte oficialmente de Direct X. Las distintas versiones de Direct 3d aportan entonces soporte para los últimos modelos de placas como también así los últimos efectos desarrollados, como por ejemplo la versión 7 agrego la función T & L para liberar a la CPU de esta etapa si es que la placa de video (Especialmente la GPU) trae esta función incorporada y la versión 8 trae soporte para los Vertex Shaders (recordemos que son efectos aplicados a los vértices). 4.1.4.2. OPEN GL Originalmente llamada IRIS GL por su desarrollador Silicon Graphics en 1992 fue creada para su utilización en las estaciones de trabajo y dar soporte a CAD (Computer Aided Design – Diseño Asistido por Computadora) y otras aplicaciones gráficas. Dada la calidad de la herramienta se libero la versión para el mundo PC y se la dio a llamar Open GL y rápidamente ha sido adoptada como uno de los dos estándares junto con Direct 3d. Una de las diferencias entre esta API y Direct 3d es que ha sido desarrollada para muchas plataformas aparte de Windows, es decir funciona también en Linux o en computadoras MAC. Cabe mencionar que hubo una tercer API en el mercado llamada 3dfx GLIDE (basado en Open GL) pero que era de uso exclusivo de las placas de la extinta 3DFX fabricante de las famosas placas VOODOO y cayo en desuso cuando esta compañía fue absorbida por su contrincante NVIDIA actualmente el líder del mercado de las aceleradoras gráficas y fabricante de las afamadas GFORCE. 5. DRIVERS Como comentamos más arriba, el driver (controlador) para la placa de video es fundamental para lograr resoluciones más allá del modo Standard, pero cuanto más complicados se hacen los chipsets y más elementos incorporan dentro de éste más importancia cobra el mismo. Este elemento es vital para el correcto funcionamiento del hardware (no solo de la placa de video sino de cualquier dispositivo que necesite uno, como una placa de red, modem, etc.). La confección del mismo está a cargo del fabricante del hardware y cuanto mejor estén hechos mejor provecho se le sacará al dispositivo. Como ejemplo podríamos mencionar lo que comentamos en la página anterior, Open GL y Direct 3d le dan instrucciones al driver para ejecutar en el hardware lo que la aplicación desea, entonces si el driver está mal confeccionado o no está lo suficientemente depurado, puede que no funcione correctamente. De esta manera podríamos tener un hardware de excelente calidad pero con un Driver mal hecho y el resultado sería desastroso. Pero la importancia del driver no termina aquí, otro punto a tener en cuenta es que este al instalarlo, pasa a formar parte del Sistema Operativo pudiendo dejar inestable a este último si no se cumplen las normas impuestas por el fabricante del mismo, por lo consiguiente debemos asegurarnos que el driver que elijamos sea el adecuado para el Sistema Operativo en el que lo vamos a incorporar y también debemos cerciorarnos que estén en las listas de compatibilidad de hardware (HCL). Instituto Tecnológico Argentino THP / Clase 17 19 6. CHIPSETS 3D Los primeros chipsets 3d fueron nada más que intentos primitivos de brindar alguna característica de aceleración 3d donde casi todo el trabajo, como mencionamos más arriba, lo realizaba la CPU. Estos Chipsets marcaron el comienzo de la era 3d alrededor del año 1996 y estaban integrados en placas que eran fundamentalmente 2D e incorporaban ciertas características 3d, como por ejemplo los chipsets de la marca MATROX MGA-1064sg integrados en sus placas MYSTIQUE. En la figura 16.19 podemos ver algunos de estos chipsets, todos ellos todavía sobre el bus PCI. Matrox Mystique 3d Rage S3 Virge Verite 1000 Figura 17.19: Los primeros chipsets 3d Instituto Tecnológico Argentino THP / Clase 17 20 Placa 2d Monitor Figura 17.20: Placa Voodoo y su conexionado La próxima generación de aceleradoras también la marcó 3dfx con su Voodoo 2 donde entre otras características aumenta la frecuencia del GPU a 90 MHz al igual que la memoria que también lo hacia a la misma velocidad. También aumentó la cantidad de memoria dentro de la tarjeta a 24 MB. Un poco más adelante salió la versión conocida como “voodoo banshee” que es una voodoo 2 pero con capacidades 2d con lo cual a partir de esta placa se fabricaron todas incorporando los dos modos (2d y3d). En la misma época de la voodoo banshee entró en competencia seria NVIDIA con su chipset TNT con una velocidad de GPU a 90 MHz y la memoria trabajando a 110 MHz, la cantidad de memoria incluida en este chipset fue de 16 MB. También estas fueron las primeras placas en incorporar el bus AGP como bus nativo aunque también se encontraban en versión PCI. Los siguientes chipsets fueron parte de la evolución (y competencia) de estas marcas hasta nuestros días. Instituto Tecnológico Argentino THP / Clase 17 21 ESTUDIO La verdadera revolución vino de la mano de la empresa 3DFX con el chipset VOODOO, en el que se incorporaron verdaderos cambios e innovaciones, como por ejemplo Z-Buffering (las coordenadas del eje Z, donde se almacenan los polígonos que forman parte del efecto de profundidad y permite simular una figura 3d), el GPU corría a 54 MHz, la memoria también lo hacia a esa velocidad y la cantidad máxima de memoria era de 4 MB. Este Chipset era únicamente 3d por lo tanto era necesario contar con una placa 2d. Entonces para instalar una placa de estas características había que realizar una cascada desde la placa 2d hasta la 3d y desde esta hacia el monitor. Figura 17.21: Voodoo Banshee y Riva TNT Alrededor del año 1999 se insertaron en el mercado dos placas que hicieron historia, la NVIDIA TNT 2 y la VOODOO 3 de la extinta 3dfx. La primera que aún hoy se sigue fabricando fue el emblema de esta fábrica durante mucho tiempo, en su versión original el chip corría a 125 MHz y la memoria a 150, posteriormente la versión ultra lo hacía a 150 y la memoria a 175 o 183 MHz. La VOODOO 3 por otra parte no colmó las expectativas, aun siendo un chip muy rápido (su velocidad era de 160 MHz y la memoria lo hacia a la misma velocidad, pero carecía de algunas características como soporte para 32 bits de color que la hacían perder calidad de imagen frente a, por ejemplo, la TNT2. Figura 17.22: TNT 2 y VOODOO 3 A fines de ese año se introdujo en el mercado una tarjeta que marcó el rumbo de las aceleradoras 3d la NVIDIA GEFORCE 256, una placa muy poderosa y la primera en incorporar una unidad T&L, como así también la primera en introducir memorias DDR. En el año 2000 sale a la venta el nuevo modelo GEFORCE 2 que entre muchas otras características agrega un procesador de video con soporte para TV de alta definición (HDTV) y en algunos modelos incorpora salida para monitores digitales (DVI) Digital video Interface Instituto Tecnológico Argentino THP / Clase 17 22 ESTUDIO Salida para monitores digitales Figura 17.23: GFORCE 256 y GFORCE 2 con detalle de salida p/ monitores digitales. También en el año 2000 entró en escena la última placa de 3dfx la VOODOO 5 con 2 procesadores a una velocidad de 166 MHz cada uno coordinados para trabajar con partes iguales de una pantalla. Figura 17.24: VOODOO 5 Instituto Tecnológico Argentino THP / Clase 17 23 ATI Technologies otra marca legendaria en cuanto a placas de video se refiere, hizo su incursión en el segmento 3d con su producto RADEON, una aceleradora muy rápida y sólida con un bagaje de efectos muy completo, siendo un serio competidor para NVIDIA, el modelo siguiente apareció en el 2001 y se llamó ATI RADEON 8500, que como comentamos más arriba es la primera en incorporar el curvado de polígonos llamado True form que aporta más realismo a las aplicaciones 3d. En el mismo año NVIDIA saca al mercado GFORCE 3 y sus características más importantes son el marcado aumento de velocidad con respecto a su antecesora la GFORCE 2 y la incorporación de los Vertex Shaders, que como también comentamos más arriba, es la posibilidad de trabajar directamente sobre los vértices de los polígonos. Más adelante en el tiempo y a principios de 2002 aparece la GFORCE 4 con otro aumento en la velocidad e incorporaciones en la unidad de efectos. NVIDIA TNT 2 VOODOO 3 NVIDIA GEFORCE 256 VOODOO 5 NVIDIA GEFORCE 2 ATI RADEON NVIDIA GEFORCE 3 ATI RADEON 8500 GEFORCE 4 Velocidad del CHIP 125 MHz Velocidad Memoria 150 MHz de la Cantidad Memoria 32 MB de Año 166 MHz 166 MHz 16 MB 1999 120 MHz 300 MHz 32 MB 166 MHz 166 MHz 64 MB Fines de 1999 2000 200 MHz 400 MHz 32 a 128 MB 2000 183 MHz 366 MHz 32 a 64 MB 2000 200 MHz 460 MHz 64 MB 2001 250 MHz 550 MHz 64 MB 2001 300 MHz 650 MHZ 128 MB 2002 1999 Tabla 17.2: Tabla Evolución de Chip Set Instituto Tecnológico Argentino THP / Clase 17 24 ESTUDIO CUESTIONARIO CAPITULO 17 1) ¿Qué señales están presentes en el conector sub-DB15? __________________________________________________________________ __________________________________________________________________ 2) Calcule la cantidad de memoria de video necesaria para poder representar una imagen de 1024 x 768 pixeles con una profundidad de color de 24 bits. __________________________________________________________________ __________________________________________________________________ 3) ¿Qué ventaja tiene el BUS PCI sobre el ISA? Y el AGP? __________________________________________________________________ __________________________________________________________________ 4) ¿Por qué hacen falta “Drivers” para los modos de video superiores al VGA? __________________________________________________________________ __________________________________________________________________ 5) ¿Qué diferencia tienen las VRAM con las DRAM comunes? __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ 6) ¿Qué función cumple una aceleradora 3d? __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ 7) ¿Qué es Direct 3d? y Open GL? __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ Instituto Tecnológico Argentino THP / Clase 17 25