Sunteți pe pagina 1din 48

Placas grficas

PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor informacin. PDF generated at: Tue, 21 May 2013 14:19:57 UTC

Contenidos
Artculos
Tarjeta grfica Unidad de procesamiento grfico Multiplataforma OpenGL Accelerated Graphics Port PCI-Express Peripheral Component Interconnect Bus VESA 1 12 15 23 36 37 39 43

Referencias
Fuentes y contribuyentes del artculo Fuentes de imagen, Licencias y contribuyentes 44 45

Licencias de artculos
Licencia 46

Tarjeta grfica

Tarjeta grfica
Una tarjeta grfica, tarjeta de vdeo, placa de vdeo, tarjeta aceleradora de grficos o adaptador de pantalla, es una tarjeta de expansin para una computadora u ordenador, encargada de procesar los datos provenientes de la CPU y transformarlos en informacin comprensible y representable en un dispositivo de salida, como un monitor o televisor. Las tarjetas grficas ms comunes son las disponibles para las computadoras compatibles con la IBM PC, debido a la enorme popularidad de stas, pero otras arquitecturas tambin hacen uso de este tipo de dispositivos.

Tarjeta Grfica PCI-Express

Es habitual que se utilice el mismo trmino tanto a las habituales tarjetas dedicadas y separadas como a las GPU integradas en la placa base. Algunas tarjetas grficas han ofrecido funcionalidades aadidas como captura de vdeo, sintonizacin de TV, decodificacin MPEG-2[1] y MPEG-4 o incluso conectores Firewire, de ratn, lpiz ptico o joystick. Las tarjetas grficas no son dominio exclusivo de los PC; contaron o cuentan con ellas dispositivos como los Commodore Amiga (conectadas mediante las ranuras Zorro II y Zorro III), Apple II, Apple Macintosh, Spectravideo SVI-328, equipos MSX y, por supuesto, en las videoconsolas modernas, como la Wii U, la Playstation 3 y la Xbox360.

Historia
La historia de las tarjetas grficas da comienzo a finales de los aos 1960, cuando se pasa de usar impresoras como elemento de visualizacin a utilizar monitores. Las primeras tarjetas slo eran capaces de visualizar texto a 40x25 u 80x25, pero la aparicin de los primeros chips grficos como el Motorola 6845 permiten comenzar a dotar a los equipos basados en bus S-100 o Eurocard de capacidades grficas. Junto con las tarjetas que aadan un modulador de televisin fueron las primeras en recibir el trmino tarjeta de video. El xito del ordenador domstico y las primeras videoconsolas hacen que por abaratamiento de costes (principalmente son diseos cerrados), esos chips
PCI S3 ViRGE

Tarjeta grfica

vayan integrados en la placa base. Incluso en los equipos que ya vienen con un chip grfico se comercializan tarjetas de 80 columnas, que aadan un modo texto de 80x24 u 80x25 caracteres, principalmente para ejecutar soft CP/M (como las de los Apple II y Spectravideo SVI-328). Curiosamente la tarjeta de vdeo que viene con el IBM PC, que con su diseo abierto herencia de los Apple II popularizar el concepto de tarjeta grfica intercambiable, es una tarjeta de slo texto. La MDA (Monochrome Display Adapter), desarrollada por IBM en 1981, trabajaba en modo texto y era capaz de representar 25 lneas de 80 caracteres en pantalla. Contaba con una memoria VRAM de 4KB, por lo que slo poda trabajar con una pgina de memoria. Se usaba con monitores monocromo, de tonalidad normalmente verde.[2] A partir de ah se sucedieron diversas controladoras para grficos, resumidas en la tabla adjunta.[3][4][5][6]

IBM XGA-2 MCA

Apple Display Card 24AC NuBus

Cirrus Logic VESA

AVIEW2E EISA

Tarjeta grfica

EGA Paradise Bus ISA

Ao Modo texto Modo grficos Colores Memoria MDA CGA HGC EGA 1981 1981 1982 1984 80*25 80*25 80*25 80*25 80*25 80*25 720*400 80*25 80*25 640*200 720*348 640*350 1024*768 320*200 640*480 1024*768 1024*768 1 4 1 16 256 256 256 256 65K 4 KiB 16 KiB 64 KiB 256 KiB 256 KiB 1 MiB 2 MiB

IBM 8514 1987 MCGA VGA SVGA XGA 1987 1987 1989 1990

VGA tuvo una aceptacin masiva, lo que llev a compaas como ATI, Cirrus Logic y S3 Graphics, a trabajar sobre dicha tarjeta para mejorar la resolucin y el nmero de colores. As naci el estndar SVGA (Super VGA). Con dicho estndar se alcanzaron los 2 MB de memoria VRAM, as como resoluciones de 1024 x 768 pixels a 256 colores. La competencia de los PC, Commodore Amiga 2000 y Apple Macintosh reservaron en cambio esa posibilidad a ampliaciones profesionales, integrando casi siempre la GPU (que bata en potencia con total tranquilidad a las tarjetas grficas de los PC del momento) en sus placas base. Esta situacin se perpeta hasta la aparicin del Bus PCI, que sita a las tarjetas de PC al nivel de los buses internos de sus competidores, al eliminar el cuello de botella que representaba el Bus ISA. Aunque siempre por debajo en eficacia (con la misma GPU S3 ViRGE, lo que en un PC es una tarjeta grfica avanzada deviene en acelerador 3D profesional en los Commodore Amiga con ranura Zorro III), la fabricacin masiva (que abarata sustancialmente los costes) y la adopcin por otras plataformas del Bus PCI hace que los chips grficos VGA comiencen a salir del mercado del PC. La evolucin de las tarjetas grficas dio un giro importante en 1995 con la aparicin de las primeras tarjetas 2D/3D, fabricadas por Matrox, Creative, S3 y ATI, entre otros. Dichas tarjetas cumplan el estndar SVGA, pero incorporaban funciones 3D. En 1997, 3dfx lanz el chip grfico Voodoo, con una gran potencia de clculo, as como nuevos efectos 3D (Mip Mapping, Z-Buffering, Antialiasing...). A partir de ese punto, se suceden una serie de lanzamientos de tarjetas grficas como Voodoo2 de 3dfx, TNT y TNT2 de NVIDIA. La potencia alcanzada por dichas tarjetas fue tal, que el puerto PCI donde se conectaban se qued corto de ancho de banda. Intel desarroll el puerto AGP (Accelerated Graphics Port) que solucionara los cuellos de botella que empezaban a aparecer entre el

Tarjeta grfica procesador y la tarjeta. Desde 1999 hasta 2002, NVIDIA domin el mercado de las tarjetas grficas (comprando incluso la mayora de bienes de 3dfx)[7] con su gama GeForce. En ese perodo, las mejoras se orientaron hacia el campo de los algoritmos 3D y la velocidad de los procesadores grficos. Sin embargo, las memorias tambin necesitaban mejorar su velocidad, por lo que se incorporaron las memorias DDR a las tarjetas grficas. Las capacidades de memoria de vdeo en la poca pasan de los 32 MB de GeForce, hasta los 64 y 128 MB de GeForce 4. La mayora de videoconsolas de sexta generacin y sucesivos utilizan chips grficos derivados de los ms potentes aceleradores 3D de su momento. Los Apple Macintosh incorporan chips de NVIDIA y ATI desde el primer iMac, y los modelos PowerPC con bus PCI o AGP pueden usar tarjetas grficas de PC con BIOS no dependientes de CPU. En 2006 y en adelante, NVIDIA y ATI (ese mismo ao comprada por AMD) se repartan el liderazgo del mercado[8] con sus series de chips grficos GeForce y Radeon, respectivamente.

Componentes
GPU
La GPU, acrnimo de graphics processing unit, que significa unidad de procesamiento grfico es un procesador (como la CPU) dedicado al procesamiento de grficos; su razn de ser es aligerar la carga de trabajo del procesador central y, por ello, est optimizada para el clculo en coma flotante, predominante en las funciones 3D. La mayor parte de la informacin ofrecida en la especificacin de una tarjeta grfica se refiere a las caractersticas de la GPU, pues constituye la parte ms importante de la tarjeta grfica, as como la principal determinante del rendimiento. Tres de las ms importantes de dichas caractersticas son Una unidad de procesamiento grfico. la frecuencia de reloj del ncleo, que en la actualidad oscila entre 825 MHz en las tarjetas de gama baja y 1200 MHz, e incluso ms, en las de gama alta, el nmero de procesadores shaders y el nmero de pipelines (vertex y fragment shaders), encargadas de traducir una imagen 3D compuesta por vrtices y lneas en una imagen 2D compuesta por pxeles. Elementos generales de una GPU: Shaders: Es elemento ms notable de potencia de una GPU, estos shaders unificados reciben el nombre de ncleos CUDA en el caso de nvidia y Procesadores Stream en el caso de AMD. Son una evolucin natural de los antiguos pixel shader (encargados de la rasterizacin de texturas) y vertex shader (encargados de la geometra de los objetos), los cuales anteriormente actuaban de forma independiente. Los shaders unificados son capaces de actuar tanto de vertex shader como de pixel shader segn la demanda, aparecieron en el 2007 con los chips G90 de nvidia (Series 8000) y los chips R600 para AMD (Series HD 2000), antigua ATi, incrementando la potencia drsticamente respecto a sus familias anteriores ROP: Se encargan de representar los datos procesados por la GPU en la pantalla, adems tambin es el encargado de los filtros como Antialiasing.

Memoria grfica de acceso aleatorio


Son chips de memoria que almacenan y transportan informacin entre s, no son determinantes en el rendimiento mximo de la tarjeta grfica, pero bien unas especificaciones reducidas pueden limitar la potencia de la GPU. Existen de dos tipos, Dedicada cuando, la tarjeta grfica o la GPU dispone exclusivamente para s esas memorias, sta manera es la ms eficiente y la que mejores resultados da; y compartida cuando se utiliza memoria en detrimento de la memoria RAM, sta memoria es mucho ms lenta que la dedicada y por tanto su rendimiento es menor, es recurrente en campaas de mrketing con mensajes tipo Tarjeta grfica de "Hasta ~ MB" para engaar al

Tarjeta grfica consumidor hacindole creer que la potencia de esa tarjeta grfica reside en su cantidad de memoria. Las caractersticas de memoria grfica de una tarjeta grfica se expresan en 3 caractersticas: Capacidad: La capacidad de la memoria determina el nmero mximo de datos y texturas procesadas, una capacidad insuficiente se traduce en un retardo a espera de que se vacen esos datos. Sin embargo es un valor muy sobrevalorado como estrategia recurrente de mrketing para engaar al consumidor, tratando de hacer creer que el rendimiento de una tarjeta grfica se mide por la capacidad de su memoria; tal es sta tendencia, que muchos ensambladores embuten ingentes cantidades de memoria con GPU incompatibles con dicha capacidad, resultando una prdida notable de la velocidad de dichas memorias, dando como resultado una tarjeta grfica mucho ms lenta que la que contiene una memoria mucho ms pequea y suficiente al sector al que va a pertenecer la tarjeta grfica y recomendado por el fabricante. Se mide en bytes Interfaz de Memoria: Tambin denominado Bus de datos, es la multiplicacin resultante del de ancho de bits de cada chip por su nmero de unidades. Es una caracterstica importante y determinante, junto a la velocidad de la memoria, a la cantidad de datos que puede transferir en un tiempo determinado, denominado ancho de banda. Una analoga al ancho de banda se podra asociar al ancho de una autopista o carriles y al nmero de vehculos que podran circular a la vez. La interfaz de memoria se mide en bits. Velocidad de Memoria: Es la velocidad a la que las memorias pueden transportar los datos procesados, por lo que es complemento a la interfaz de memoria para determinar el ancho de banda total de datos en un tiempo determinado. Continuando la analoga de la circulacin de los vehculos de la autopista, la velocidad de memoria se traducira en la velocidad mxima de circulacin de los vehculos, dando resultado a un mayor transporte de mercanca en un mismo periodo de tiempo. La velocidad de las memorias se mide en Hertzios (su frecuencia efectiva) y se van diseando tecnologas con ms velocidad, se destacan las adjuntas en la siguiente tabla:
Tecnologa Frecuencia efectiva (MHz) Ancho de banda (GB/s) GDDR GDDR2 GDDR3 GDDR4 GDDR5 166 - 950 533 - 1000 700 - 1700 1600 - 1800 3200 - 7000 1,2 - 30,4 8,5 - 16 5,6 - 54,4 64 - 86,4 24 - 448

Ancho de banda: Es la tasa de datos que pueden transportarse en una unidad de tiempo. Un ancho de banda insuficiente se traduce en un importante limitador de potencia de la GPU. Habitualmente se mide en "Gigabytes por segundo" (GB/s). Su frmula general es el cociente del producto de la interfaz de memoria (expresada en bits) por la frecuencia efectiva de las memorias (expresada en Gigahertzios), entre 8 para convertir bits a bytes.

Por ejemplo, tenemos una tarjeta grfica con 256 bits de interfaz de memoria y 4200 MHz de frecuencia efectiva y necesitamos hallar su ancho de banda:

Una parte importante de la memoria de un adaptador de vdeo es el Z-Buffer, encargado de gestionar las coordenadas de profundidad de las imgenes en los grficos 3D.

Tarjeta grfica

RAMDAC
El RAMDAC es un conversor de seal digital a analgico de memoria RAM. Se encarga de transformar las seales digitales producidas en el ordenador en una seal analgica que sea interpretable por el monitor. Segn el nmero de bits que maneje a la vez y la velocidad con que lo haga, el conversor ser capaz de dar soporte a diferentes velocidades de refresco del monitor (se recomienda trabajar a partir de 75 Hz, y nunca inferior a 60).[9] Dada la creciente popularidad de los monitores de seal digital, el RAMDAC est quedando obsoleto, puesto que no es necesaria la conversin analgica si bien es cierto que muchos conservan conexin VGA por compatibilidad. Espacio que ocupan las texturas almacenadas El espacio que ocupa una imagen representada en el monitor viene dada en funcin de su resolucin y su profundidad de color, es decir, una imagen sin comprimir en formato estndar Full HD con 1920x1080 pxeles y 32 bits de profundidad de color ocupara 66.355.200 bits, es decir, 8,294 MiB

Salidas
Los sistemas de conexin ms habituales entre la tarjeta grfica y el dispositivo visualizador (como un monitor o un televisor) son: SVGA/Dsub-15: Estndar analgico de los aos 1990; diseado para dispositivos CRT, sufre de ruido elctrico y distorsin por la conversin de digital a analgico y el error de muestreo al evaluar los pxeles a enviar al monitor. Se conecta mediante pines. Su utilizacin contina muy extendida a da de hoy, aunque claramente muestra una reduccin frente al DVI en los ltimos aos.

Salidas HDMI, D-Sub 15 y DVI de una tarjeta grfica

DVI: Sustituto del anterior, pero Salidas SVGA, S-Video y DVI de una tarjeta grfica digital, fue diseado para obtener la mxima calidad de visualizacin en las pantallas digitales o proyectores. Se conecta mediante pines. Evita la distorsin y el ruido al corresponder directamente un pxel a representar con uno del monitor en la resolucin nativa del mismo. Cada vez ms adoptado, aunque compite con el HDMI, pues el DVI no es capaz de transmitir audio. HDMI: Tecnologa propietaria transmisora de audio y vdeo digital de alta definicin cifrado sin compresin en un mismo cable. Se conecta mediante patillas de contacto. No esta pensado inicialmente para monitores, sino para Televisiones, por ello no apaga la pantalla cuando deja de recibir seal y debe hacerse manualmente en caso de monitores. Otras no tan extendidas por un uso minoritatio, no implementadas u obsoletas son: DisplayPort: Puerto para tarjetas grficas creado por VESA y rival del HDMI, transfiere vdeo a alta resolucin y audio. Sus ventajas son que est libre de patentes, y por ende de regalas para incorporarlo a los aparatos, tambin dispone de unas pestaas para anclar el conector impidiendo que se desconecte el cable accidentalmente. Cada vez ms tarjetas grficas van adoptando este sistema, aunque a da de hoy, sigue siendo su uso minoritario, existe

Tarjeta grfica una versin reducida de dicho conector llamada Mini DisplayPort, muy usada para tarjetas grficas con multitud de salidas simultneas, como pueden ser 5. S-Video: implementado sobre todo en tarjetas con sintonizador TV y/o chips con soporte de vdeo NTSC/PAL, simplemente se est quedando obsoleto. Vdeo Compuesto: analgico de muy baja resolucin mediante conector RCA. Completamente en desuso para tarjetas grficas, aunque sigue siendo usado para TV. Vdeo por componentes: Sistema analgico de transmisin de vdeo de alta definicin, utilizado tambin para proyectores; de calidad comparable a la de SVGA, dispone de tres clavijas (Y, Cb y Cr). Anteriormente usado en PCs y estaciones de trabajo de gama alta, ha quedador relegado a TV y videoconsolas. DA-15 conector RGB usado mayoritariamente en los antiguos Apple Macintosh. Completamente en desuso. Digital TTL DE-9 : usado por las primitivas tarjetas de IBM (MDA, CGA y variantes, EGA y muy contadas VGA). Completamente obsoleto

Interfaces con la placa base


Bus Anchura Frecuencia Ancho (bits) (MHz) de banda (MB/s) 8 16 32 32 32 32 - 64 32 32 32 32 1*32 1*32 1*32 1*32 1*32 4,77 8,33 10 8,33 40 33 - 100 66 133 266 533 25 / 50 25 / 50 25 / 50 25 / 50 25 / 50 8 16 20 32 160 132 - 800 264 528 1000 2000 100 / 200 400 / 800 800 / 1600 1600 / 3200 3200 / 6400 Puerto

ISA XT ISA AT MCA EISA VESA PCI AGP 1x AGP 2x AGP 4x AGP 8x PCIe x1 PCIe x4 PCIe x8 PCIe x16 PCIe x16 2.0

Paralelo Paralelo Paralelo Paralelo Paralelo Paralelo Paralelo Paralelo Paralelo Paralelo Serie Serie Serie Serie Serie

En orden cronolgico, los sistemas de conexin entre la tarjeta grfica y la placa base han sido, principalmente: Slot MSX : bus de 8 bits usado en los equipos MSX ISA: arquitectura de bus de 16 bits a 8 MHz, dominante durante los aos 1980; fue creada en 1981 para los IBM PC. Zorro II usado en los Commodore Amiga 2000 y Commodore Amiga 1500. Zorro III usado en los Commodore Amiga 3000 y Commodore Amiga 4000 NuBus usado en los Apple Macintosh Processor Direct Slot usado en los Apple Macintosh MCA: intento de sustitucin en 1987 de ISA por IBM. Dispona de 32 bits y una velocidad de 10 MHz, pero era incompatible con los anteriores. EISA: respuesta en 1988 de la competencia de IBM; de 32 bits, 8.33 MHz y compatible con las placas anteriores.

Tarjeta grfica VESA: extensin de ISA que solucionaba la restriccin de los 16 bits, duplicando el tamao de bus y con una velocidad de 33 MHz. PCI: bus que desplaz a los anteriores a partir de 1993; con un tamao de 32 bits y una velocidad de 33 MHz, permita una configuracin dinmica de los dispositivos conectados sin necesidad de ajustar manualmente los jumpers. PCI-X fue una versin que aument el tamao del bus hasta 64 bits y aument su velocidad hasta los 133 MHz. AGP: bus dedicado, de 32 bits como PCI; en 1997 la versin inicial incrementaba la velocidad hasta los 66 MHz. PCIe: interfaz serie que desde 2004 empez a competir contra AGP, llegando a doblar en 2006 el ancho de banda de aquel. Sufre de constantes revisiones multiplicando su ancho de banda, ya existiendo la versin 2.0 y pronto, la 3.0. No debe confundirse con PCI-X, versin de PCI. En la tabla adjunta[10][11] se muestran las caractersticas ms relevantes de algunas de dichas interfaces.

Dispositivos refrigerantes
Debido a las cargas de trabajo a las que son sometidas, las tarjetas grficas alcanzan temperaturas muy altas. Si no es tenido en cuenta, el calor generado puede hacer fallar, bloquear o incluso averiar el dispositivo. Para evitarlo, se incorporan dispositivos refrigerantes que eliminen el calor excesivo de la tarjeta. Se distinguen dos tipos: Disipador: dispositivo pasivo (sin partes mviles y, por tanto, silencioso); Conjunto de disipador y ventilador. compuesto de un metal muy conductor del calor, extrae este de la tarjeta. Su eficiencia va en funcin de la estructura y la superficie total, por lo que a mayor demanda de refrigeracin, mayor debe ser la superficie del disipador. Ventilador: dispositivo activo (con partes mviles); aleja el calor emanado de la tarjeta al mover el aire cercano. Es menos eficiente que un disipador, siempre que nos refiramos al ventilador slo, y produce ruido al tener partes mviles. Aunque diferentes, ambos tipos de dispositivo son compatibles entre s y suelen ser montados juntos en las tarjetas grficas; un disipador sobre la GPU (el componente que ms calor genera en la tarjeta, y en muchas ocasiones, de todo el PC) extrae el calor, y un ventilador sobre l aleja el aire caliente del conjunto. Refrigeracin Lquida: La refrigeracin lquida o watercooling es una tcnica de enfriamiento utilizando agua en vez de disipadores de calor y ventiladores (dentro del chasis), logrando as excelentes resultados en cuanto a temperaturas, y con enormes posibilidades en overclock. Se suele realizar con circuitos de agua estancos. El agua, y cualquier lquido refrigerante, tienen mayor capacidad trmica que el aire. A partir de este principio, la idea es extraer el calor generado por los componentes de la computadora usando como medio el agua, enfriarla una vez fuera del gabinete y luego reintroducirla.

Tarjeta grfica

Alimentacin
Hasta ahora la alimentacin elctrica de las tarjetas grficas no haba supuesto un gran problema, sin embargo, la tendencia actual de las nuevas tarjetas es consumir cada vez ms energa. Aunque las fuentes de alimentacin son cada da ms potentes, la insuficiencia energtica se encuentra en la que puede proporcionar el puerto PCIe que slo es capaz de aportar una potencia por s slo de 75 W.[12] Por este motivo, las tarjetas grficas con un consumo superior al que puede suministrar PCIe incluyen un conector (PCIe power connector)[13] que permite una conexin directa entre la fuente de alimentacin y la tarjeta, sin tener que pasar por la placa base, y, por tanto, por el puerto PCIe. Aun as, se pronostica que no dentro de mucho tiempo las tarjetas grficas podran necesitar una fuente de alimentacin propia, convirtindose dicho conjunto en dispositivos externos.[14]

Tipos antiguos de tarjetas grficas


Tarjeta MDA
"Monochrome Display Adapter" o Adaptador monocromo. Fue lanzada por IBM como una memoria de 4 KiB de forma exclusiva para monitores TTL (que representaban los clsicos caracteres en mbar o verde). No dispona de grficos y su nica resolucin era la presentada en modo texto (80x25) en caracteres de 14x9 puntos, sin ninguna posibilidad de configuracin. Bsicamente esta tarjeta usa el controlador de vdeo para leer de la ROM la matriz de puntos que se desea visualizar y se enva al monitor como informacin serie. No debe sorprender la falta de procesamiento grfico, ya que, en estos primeros PC no existan aplicaciones que realmente pudiesen aprovechar un buen sistema de vdeo. Prcticamente todo se limitaba a informacin en modo texto. Este tipo de tarjeta se identifica rpidamente ya que incluye (o inclua en su da) un puerto de comunicacin para la impresora Una asociacin ms que extraa a da de hoy!

Tarjeta CGA
"Color Graphics Array" o "Color graphics adapter" segn el texto al que se recurra. Aparece en el ao 1981 tambin de la mano de IBM y fue muy extendida. Permita matrices de caracteres de 8x8 puntos en pantallas de 25 filas y 80 columnas, aunque solo usaba 7x7 puntos para representar los caracteres. Este detalle le imposibilitaba el representar subrayados, por lo que los sustitua por diferentes intensidades en el carcter en cuestin.En modo grfico admita resoluciones de hasta 640x200. La memoria era de 16 KiB y solo era compatible con monitores RGB y Compuestos. A pesar de ser superior a la MDA, muchos usuarios preferan esta ltima dado que la distancia entre puntos de la rejilla de potencial en los monitores CGA era mayor. El tratamiento del color, por supuesto de modo digital, se realizaba con tres bits y uno ms para intensidades. As era posible lograr 8 colores con dos intensidades cada uno, es decir, un total de 16 tonalidades diferentes pero no reproducibles en todas las resoluciones tal y como se muestra en el cuadro adjunto. Esta tarjeta tena un fallo bastante habitual y era el conocido como "snow". Este problema era de carcter aleatorio y consista en la aparicin de "nieve" en la pantalla (puntos brillantes e intermitentes que distorsionaban la imagen). Tanto era as que algunas BIOS de la poca incluan en su SETUP la opcin de eliminacin de nieve ("No snow").

Tarjeta grfica

10

Tarjeta HGC
"Hercules Graphics Card" o ms popularmente conocida como Hrcules (nombre de la empresa productora), aparece en el ao 1982, con gran xito convirtindose en un estndar de vdeo a pesar de no disponer del soporte de las rutinas de la BIOS por parte de IBM. Su resolucin era de 720x348 puntos en monocromo con 64 KiB de memoria. Al no disponer de color, la nica misin de la memoria es la de referenciar cada uno de los puntos de la pantalla usando 30,58 KiB para el modo grfico (1 bit x 720 x 348) y el resto para el modo texto y otras funciones. Las lecturas se realizaban a una frecuencia de 50 HZ, gestionadas por el controlador de vdeo 6845. Los caracteres se dibujaban en matrices de 14x9 puntos.

Diseadores, Fabricantes y ensambladores


Diseadores de GPU AMD Ensambladores de Tarjetas GECUBE CLUB3D POWERCOLOR MSI XFX ASUS SAPPHIRE GIGABYTE HIS DIAMOND nVIDIA POINT OF VIEW CLUB3D EVGA MSI GAINWARD ASUS ZOTAC GIGABYTE ECS ELITEGROUP PNY SPARKLE GALAXY PALIT

En el mercado de las tarjetas grficas hay que distinguir tres tipos de fabricantes: Diseadores de GPU: disean y generan exclusivamente la GPU. Los dos ms importantes son: AMD, anteriormente conocida como ATi nVIDIA GPU integrado en el chipset de la placa base: tambin destaca Intel adems de los antes citados nVIDIA y AMD. Otros fabricantes como Matrox o S3 Graphics tienen una cuota de mercado muy reducida. Todos ellos contratan y encargan a fabricantes ciertas unidades de chips a partir de un diseo. Fabricantes de GPU: Son quienes fabrican y suministran las unidades extraidas de las obleas de chips a los ensambladores. TSMC y Global Foundities son claros ejemplos. Ensambladores: integran las GPUs proporcionadas por los fabricantes con el resto de la tarjeta, de diseo propio. De ah que tarjetas con el mismo chip tengan formas o conexiones diferentes o puedan dar ligeras diferencias de rendimientos, en especial tarjetas grficas modificadas u overclokeadas de fbrica. En la tabla adjunta se muestra una relacin de los dos diseadores de chips y algunos de los ensambladores de tarjetas con los que trabajan.

Tarjeta grfica

11

API para grficos


A nivel de programador, trabajar con una tarjeta grfica es complicado; por ello, surgieron interfaces que abstraen la complejidad y diversidad de las tarjetas grficas. Los dos ms importantes son: Direct3D: lanzada por Microsoft en 1996, forma parte de la librera DirectX. Funciona slo para Windows, ya que es privativa. Utilizado por la mayora de los videojuegos comercializados para Windows. Actualmente van por la versin 11.1 OpenGL: creada por Silicon Graphics a principios de los aos 1990; es gratuita, libre y multiplataforma. Utilizada principalmente en aplicaciones de CAD, realidad virtual o simulacin de vuelo. Actualmente est disponible la versin 4.1 OpenGL est siendo desplazada del mercado de los videojuegos por Direct3D, aunque haya sufrido muchas mejoras en los ltimos meses.

Efectos grficos
Algunas de las tcnicas o efectos habitualmente empleados o generados mediante las tarjetas grficas pueden ser: Antialiasing: retoque para evitar el aliasing, efecto que aparece al representar curvas y rectas inclinadas en un espacio discreto y finito como son los pxeles del monitor. Shader: procesado de pxeles y vrtices para efectos de iluminacin, fenmenos naturales y superficies con varias capas, entre otros. HDR: tcnica novedosa para representar el amplio rango de niveles de intensidad de las escenas reales (desde luz directa hasta sombras oscuras). Es una evolucin del efecto Bloom, aunque a diferencia de ste, no permite Antialiasing. Mapeado de texturas: tcnica que aade detalles en las superficies de los modelos, sin aumentar la complejidad de los mismos. Motion Blur: efecto de emborronado debido a la velocidad de un objeto en movimiento. Depth Blur: efecto de emborronado adquirido por la lejana de un objeto. Lens flare: imitacin de los destellos producidos por las fuentes de luz sobre las lentes de la cmara. Efecto Fresnel (reflejo especular): reflejos sobre un material dependiendo del ngulo entre la superficie normal y la direccin de observacin. A mayor ngulo, ms reflectante. Teselado: Consiste en multiplicar el nmero de polgonos para representar ciertas figuras geomtricas y no se vean totalmente planas. Esta caracterstica fue incluida en la API DirectX 11

Errores comunes
Confundir a la GPU con la tarjeta grfica. Aunque muy importante, no todas las GPU y adaptadores de grficos van en tarjeta ni son el nico determinante de su calidad y rendimiento. Es decir, las GPU s determinan el rendimiento mximo de la tarjeta, pero su rendimiento puede ser capado por tener otros elementos que no estn a su altura, por ejemplo un ancho de banda pequeo. Considerar el trmino tarjeta de vdeo como privativo del PC y compatibles. Esas tarjetas se usan en equipos no PC e incluso sin procesador Intel o AMD y sus chips en videoconsolas. Confundir al fabricante de la GPU con la marca de la tarjeta. Actualmente los mayores fabricantes de chip grficos de PC en el mercado son NVIDIA y AMD (anteriormente ATi Tecnologies). Esto se debe a que se encargan solamente, de disear los chip grficos (GPU). Luego, empresas como TSMC o Global Fundities fabrican las GPU y ms tarde son ensambladas en PCBs con memorias por ASUS, POV, XFX, Gigabyte, Sapphire y dems ensambladoras para su venta al pblico. Saliendo del crculo de PCs, para otros dispositivos como Smartphones, la mayora de las GPU vienen integradas en "System on Chip" junto al procesador y el controlador de memoria.

Tarjeta grfica

12

Referencias Enlaces externos


Wikimedia Commons alberga contenido multimedia sobre Tarjeta grficaCommons. Sitio web oficial de NVIDIA (http://www.nvidia.com/) Sitio web oficial de AMD (antes ATI) (http://ati.amd.com/) Demostracin de varios efectos grficos (http://www.daionet.gr.jp/~masa/rthdribl/) Guas de iniciacin a las tarjetas grficas (en ingls) (http://www.tomshardware.com/2006/08/08/ graphics_beginners_3/index.html) Overclocking de tarjetas grficas (en ingls) (http://www.overclockingwiki.org/index.php?title=ATITool)

Unidad de procesamiento grfico


La unidad de procesamiento grfico o GPU (acrnimo del ingls graphics processing unit) es un coprocesador dedicado al procesamiento de grficos u operaciones de coma flotante, para aligerar la carga de trabajo del procesador central en aplicaciones como los videojuegos y o aplicaciones 3D interactivas. De esta forma, mientras gran parte de lo relacionado con los grficos se procesa en la GPU, la unidad central de procesamiento (CPU) puede dedicarse a otro tipo de clculos (como la inteligencia artificial o los clculos mecnicos en el caso de los videojuegos). La GPU implementa ciertas operaciones grficas llamadas primitivas optimizadas para el procesamiento grfico. Una de las primitivas ms comunes para el procesamiento grfico en Una unidad de procesamiento grfico. 3D es el antialiasing, que suaviza los bordes de las figuras para darles un aspecto ms realista. Adicionalmente existen primitivas para dibujar rectngulos, tringulos, crculos y arcos. Las GPU actualmente disponen de gran cantidad de primitivas, buscando mayor realismo en los efectos. Las GPU estn presentes en las tarjetas grficas.

Historia
Las modernas GPU son descendientes de los chips grficos monolticos de finales de la dcada de 1970 y 1980. Estos chips tenan soporte BitBLT limitado en la forma de sprites (si es que tenan dicho soporte del todo), y usualmente no tenan soporte para dibujo de figuras. Algunos GPU podan ejecutar varias operaciones en una lista de display y podan usar DireDMA para reducir la carga en el procesador anfitrin; un ejemplo temprano es el coprocesador ANTIC usado en el Atari 800 y el Atari 5200. Hacia finales de la dcada de 1980 y principios de la de 1990, los microprocesadores de propsito general de alta velocidad fueron muy populares para implementar las GPU ms avanzadas. Muchas tarjetas grficas para PC y estaciones de trabajo usaban procesadores digitales de seales (DSP por sus siglas en ingls) tales como la serie TMS340 de Texas Instruments, para implementar funciones de dibujo rpidas y muchas impresoras lser contenan un procesador de barrido de imgenes "PostScript" (un caso especial de GPU) corriendo en un procesador RISC como el AMD 29000.

Unidad de procesamiento grfico Conforme la tecnologa de proceso de semiconductores fue mejorando, eventualmente fue posible mover las funciones de dibujo y las BitBLT a la misma placa y posteriormente al mismo chip a manera de un controlador de bfer de marcos (frames), tal como VGA. Estos aceleradores grficos de 2D "reducidos" no eran tan flexibles como los basados en microprocesadores, pero eran mucho ms fciles de hacer y vender. La Commodore AMIGA fue la primera computadora de produccin en masa que inclua una unidad blitter y el sistema grfico IBM 8514 fue una de las primeras tarjetas de video para PC en implementar primitivas 2D en hardware.

13

Diferencias con la CPU


Si bien en un computador genrico no es posible reemplazar la CPU por una GPU, hoy en da las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua (ms de 500MHz). Pero la potencia de las GPU y su dramtico ritmo de desarrollo reciente se deben a dos factores diferentes. El primer factor es la alta especializacin de las GPU, ya que al estar pensadas para desarrollar una sola tarea, es posible dedicar ms silicio en su diseo para llevar a cabo esa tarea ms eficientemente. Por ejemplo, las GPU actuales estn optimizadas para clculo con valores en coma flotante, predominantes en los grficos 3D. Por otro lado, muchas aplicaciones grficas conllevan un alto grado de paralelismo inherente, al ser sus unidades fundamentales de clculo (vrtices y pxeles) completamente independientes. Por tanto, es una buena estrategia usar la fuerza bruta en las GPU para completar ms clculos en el mismo tiempo. Los modelos actuales de GPU suelen tener cientos de procesadores shader unificados que son capaces de actuar como vertex shaders), y como pixel shaders, o fragment shaders). De este modo, una frecuencia de reloj de unos 600-1 GHz (el estndar hoy en da en las GPU de ms potencia), muy baja en comparacin con lo ofrecido por las CPU (3,8-4 GHz en los modelos ms potentes, no necesariamente ms eficientes), se traduce en una potencia de clculo mucho mayor gracias a su arquitectura en paralelo. Una de las mayores diferencias con la CPU estriba en su arquitectura. A diferencia del procesador central, que tiene una arquitectura de von Neumann, la GPU se basa en el Modelo Circulante. Este modelo facilita el procesamiento en paralelo, y la gran segmentacin que posee la GPU para sus tareas.

Arquitectura de la GPU
Una GPU est altamente segmentada, lo que indica que posee gran cantidad de unidades funcionales. Estas unidades funcionales se pueden dividir principalmente en dos: aqullas que procesan vrtices, y aqullas que procesan pxeles. Por tanto, se establecen el vrtice y el pxel como las principales unidades que maneja la GPU. Adicionalmente, y no con menos importancia, se encuentra la memoria. sta destaca por su rapidez, y va a jugar un papel relevante a la hora de almacenar los resultados intermedios de las operaciones y las texturas que se utilicen. Inicialmente, a la GPU le llega la informacin de la CPU en forma de vrtices. El primer tratamiento que reciben estos vrtices se realiza en el vertex shader. Aqu se realizan transformaciones como la rotacin o el movimiento de las figuras. Tras esto, se define la parte de estos vrtices que se va a ver (clipping), y los vrtices se transforman en pxeles mediante el proceso de rasterizacin. Estas etapas no poseen una carga relevante para la GPU. Donde s se encuentra el principal cuello de botella del chip grfico es en el siguiente paso: el pixel shader. Aqu se realizan las transformaciones referentes a los pxeles, tales como la aplicacin de texturas. Cuando se ha realizado todo esto, y antes de almacenar los pxeles en la cach, se aplican algunos efectos como el antialiasing, blending y el efecto niebla. Otras unidades funcionales llamadas ROP toman la informacin guardada en la cach y preparan los pxeles para su visualizacin. Tambin pueden encargarse de aplicar algunos efectos. Tras esto, se almacena la salida en el frame buffer. Ahora hay dos opciones: o tomar directamente estos pxeles para su representacin en un monitor digital, o generar una seal analgica a partir de ellos, para monitores analgicos. Si es este ltimo caso, han de pasar por un DAC, Digital-Analog Converter, para ser finalmente mostrados en pantalla.

Unidad de procesamiento grfico

14

Programacin de la GPU
Al inicio, la programacin de la GPU se realizaba con llamadas a servicios de interrupcin de la BIOS. Tras esto, la programacin de la GPU se empez a hacer en el lenguaje ensamblador especfico a cada modelo. Posteriormente, se introdujo un nivel ms entre el hardware y el software, con la creacin de interfaces de programacin de aplicaciones (API) especficas para grficos, que proporcionaron un lenguaje ms homogneo para los modelos existentes en el mercado. La primera API usada ampliamente fue el estndar abierto OpenGL (Open Graphics Language), tras el cul Microsoft desarroll DirectX. Tras el desarrollo de API, se decidi crear un lenguaje ms natural y cercano al programador.

Clculos de la GPU para propsito general


Se intenta aprovechar la gran potencia de clculo de las GPU para aplicaciones no relacionadas con los grficos, en lo que desde recientemente se viene a llamar GPGPU, o GPU de propsito general (General Purpose GPU, en sus siglas en ingls).

Enlaces externos
Wikimedia Commons alberga contenido multimedia sobre Unidad de procesamiento grficoCommons. Sitio web oficial de ATI/AMD [1] (en espaol) Sitio web oficial de NVIDIA [2] (en espaol)

Referencias
[1] http:/ / www. amd. com/ es-es/ [2] http:/ / www. nvidia. es/

Multiplataforma

15

Multiplataforma
En informtica, multi-plataforma, es un atributo conferido a los programas informticos o los mtodos de clculo y los conceptos que se ejecutan e interoperar en mltiples plataformas informticas. Software multiplataforma puede dividirse en dos tipos; requiere una compilacin individual para cada plataforma que le da soporte, y el otro se puede ejecutar directamente en cualquier plataforma sin preparacin especial, por ejemplo, el software escrito en un lenguaje interpretado o pre-compilado porttil bycode para que los intrpretes o paquetes en tiempo de ejecucin son componentes comunes o estndar de todas las plataformas. Por ejemplo, una aplicacin multiplataforma puede ejecutarse en Microsoft Windows en la arquitectura x86, Linux en la arquitectura x86 y Mac OS X ya sea en el PowerPC o sistemas Apple Macintosh basados en x86. Una plataforma cruzada aplicacin se puede ejecutar en tantos como todas las plataformas existentes, o en tan pocos como dos plataformas.

Plataformas
Una plataforma es una combinacin de hardware y software utilizado para ejecutar aplicaciones de software. Una plataforma puede ser descrita simplemente como un sistema operativo o arquitectura de ordenador, o podra ser la combinacin de ambos (un ejemplo de una plataforma comn es Microsoft Windows que se ejecuta en la arquitectura x86). Otras conocidas plataformas de computadoras de escritorio incluyen Linux/Unix y Mac OS X (ambos de los cuales son a su vez multiplataforma). Hay, sin embargo, muchos dispositivos, como los telfonos mviles que tambin son efectivamente plataformas informticas, pero menos comnmente pensado de esa manera. Una aplicacin se puede escribir en dependencia de las caractersticas de una determinada Plataforma, ya sea el hardware, sistema operativo, o mquina virtual en que se ejecuta. La plataforma Java es una mquina virtual de la plataforma que se ejecuta en sistemas operativos y tipos de hardware, y es una plataforma de software comn para escribir (programar).

Plataformas de Hardware
Una plataforma de hardware puede referirse a la arquitectura del ordenador o la arquitectura del procesador. Por ejemplo, los CPUs x86 y x86-64 constituyen una de las ms comunes las arquitecturas de computadoras en uso en los ordenadores de propsito general. Estas mquinas suelen ejecutar una versin de Microsoft Windows, aunque tambin se puede ejecutar otro sistemas operativos, tales como Linux, OpenBSD, NetBSD, Mac OS X y FreeBSD. Una arquitectura ARM es comn en los telfonos inteligentes y Tablet PC, que corren Android, iOS y otros sistemas operativos mviles.

Las plataformas de software


Las plataformas de software puede ser un sistema operativo o entorno de programacin, aunque ms comnmente se trata de una combinacin de ambos. Una notable excepcin a esto es Java, que utiliza un sistema operativo independiente de la mquina virtual para cada cdigo compilado, conocido en el mundo de Java como bytecode. Ejemplos de plataformas de software incluyen: Android (sistema operativo) para telfonos inteligentes y Tablet PC AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC) BSD, muy multiplataforma (ver NetBSD, por ejemplo) Java Linux (x86, x86-64, PowerPC, y otras arquitecturas) Mac OS X (x86, x86-64)

Microsoft Windows (x86, x86-64, ARM) DOS sistemas de tipo en el x86: MS-DOS, IBM PC-DOS, DR-DOS, FreeDOS, etc.

Multiplataforma OS/2, eComStation Solaris (SPARC, x86, x86-64) La CLI, tambin conocido por los nombres de aplicacin .NET Framework (de Microsoft) y Mono (de Novell)

16

Java plataforma
Como ya se ha sealado, la plataforma Java es una excepcin a la regla general de que un sistema operativo es una plataforma de software. El lenguaje Java requiere de una mquina virtual, o un "CPU virtual" en el que se ejecuta todo el cdigo que se escribe en el lenguaje. Esto permite que el mismo ejecutable binario pueda ejecutarse en todos los sistemas, apoyado por el software Java, a travs del uso de una mquina virtual Java (JVM). Ejecutables de Java no se ejecutan de forma nativa en el sistema operativo, es decir, ni de Windows, ni Linux ejecutan programas Java directamente. Aunque el cdigo Java no se ejecuta de forma nativa, la JVM es plenamente capaz de proporcionar servicios relacionados con el sistema operativo, como el disco I/O y el acceso a la red, si los privilegios adecuados se conceden. La JVM permite a los usuarios decidir el nivel de proteccin adecuado, segn una ACL. Por ejemplo, el acceso a disco y de red est habilitado normalmente para aplicaciones de escritorio, pero no para applets basados en el navegador. JNI tambin se puede utilizar para permitir el acceso a funciones especficas de los sistemas operativos. En la actualidad, los programas Java pueden ejecutarse en Microsoft Windows, Mac OS X, Linux y sistemas operativos Solaris. Para aplicaciones mviles, los plugins de los navegadores se utilizan en dispositivos basados en Windows y Mac, Android tiene soporte incorporado para Java.

Software multiplataforma
A fin de que el software para ser considerado multiplataforma, debe ser capaz de funcionar en ms de una arquitectura de ordenador o sistema operativo. Esto puede ser una tarea que consume tiempo, ya que los diferentes sistemas operativos tienen diferentes interfaces de programacin de aplicaciones o API (por ejemplo, Linux utiliza un API diferent para una aplicacin del que Windows lo hace). El hecho de que un determinado sistema operativo se puede ejecutar en diferentes arquitecturas de computadora, eso no quiere decir que el software escrito para ese sistema operativo automticamente funcionar en todas las arquitecturas que soporta el sistema operativo. Un ejemplo a partir de agosto de 2006 fue OpenOffice.org, que no se ejecuta de forma nativa en los AMD64 o Intel 64 lneas de procesadores los estndares para computadores de x86-64 64 bit, lo que desde entonces ha cambiado, y la suite OpenOffice.org de software es mayormente portada a los sistemas de 64-bit. Esto tambin significa que slo porque un programa se escribe en un popular lenguaje de programacin como C o C++, no significa que vaya a funcionar en todos los sistemas operativos que soporten la programacin de dicho language o incluso en el mismo sistema operativo en una arquitectura diferente .

Las aplicaciones Web


Las aplicaciones Web suelen ser descritas como multiplataforma, ya que, idealmente, se puede acceder desde cualquiera de los diversos navegadores web en diferentes sistemas operativos. Tales aplicaciones emplean generalmente emplean una arquitectura de sistema cliente-servidor, y pueden variar ampliamente en complejidad y funcionalidad. Esta amplia variabilidad complica considerablemente la meta de capacidad multi-plataforma, que es rutinariamente en contradiccin con el objetivo de funcionalidad avanzada.

Multiplataforma

17

Aplicaciones bsicas
Aplicaciones web bsicas lleva cabo la totalidad o la mayor parte del procesamiento de un servidor web "Stateless", y pasar el resultado al navegador web del cliente. Toda la interaccin del usuario con la aplicacin consta de simples intercambios de solicitudes de datos y las respuestas del servidor. Este tipo de aplicaciones son la norma en las fases iniciales de la World Wide Web de desarrollo de aplicaciones. Tales aplicaciones siguen un simple transaccin modelo, idntica a la de servir pginas web estticas. Hoy en da, siguen siendo relativamente comn, especialmente cuando la compatibilidad entre plataformas y la simplicidad se considera ms importante que las funcionalidades avanzadas.

Las aplicaciones avanzadas


Ejemplos destacados de las aplicaciones web avanzadas incluyen la interfaz web a Gmail, A9.com, y la pgina web maps.live.com, parte del Live Search servicio de Microsoft. Tales aplicaciones avanzadas habitualmente dependen de las funciones adicionales que se encuentran slo en las versiones ms recientes de los navegadores web ms populares. Estas dependencias incluyen Ajax, JavaScript, HTML "Dinmico", SVG, y otros componentes de las aplicaciones ricas de Internet. Las versiones antiguas de los navegadores web ms populares tienden a carecer de apoyo a ciertas caractersticas.

Las estrategias de diseo


A causa de los intereses en conflicto de compatibilidad entre plataformas y funcionalidades avanzadas, han surgido numerosas alternativas de diseo de aplicaciones web. Tales estrategias incluyen: Degradacin correcta Degradacin correcta intenta proporcionar la misma funcionalidad o similar para todos los usuarios y plataformas, mientras que la disminucin de la funcionalidad de un "mnimo comn denominator" para obtener ms exploradores cliente limitados. Por ejemplo, un usuario que intenta usar una caracterstica limitada de un navegador para acceder a Gmail puede notar que Gmail cambia al "modo bsico", con funcionalidad reducida. Algunos ven esta estrategia como una forma menor de la capacidad multiplataforma. Separacin de funciones La separacin de los funcionalidades para simplificar la omicin de los subconjuntos de funciones que no soportan los exploradores de los clientes dentro de ciertos sistemas operativos, sin dejar de ofrecer una "completa" aplicacin para el usuario. Cdigo base mltiple Mltiples aplicaciones codebase presentar diferentes versiones de una aplicacin en funcin del cliente especfico en uso. Esta estrategia es sin duda la forma ms complicada y costosa de cumplir la capacidad multiplataforma, ya que incluso las diferentes versiones del navegador del cliente mismo (dentro del mismo sistema operativo) puede diferir considerablemente entre s. Esto se complica an ms por el apoyo a "plugins" que puede o no estar presente para cualquier instalacin dada de un navegador web particular.

Multiplataforma Bibliotecas de terceros Bibliotecas de terceros intentan simplificar la capacidad multiplataforma de "esconder" las complejidades de las diferencias de los clientes detrs de un API unificada.

18

Las estrategias de prueba


Un aspecto complicado del diseo de las aplicaciones web multiplataforma es la necesidad de pruebas de software. Adems de las complicaciones mencionadas anteriormente, existe la restriccin adicional de que algunos navegadores web prohiben la instalacin de diferentes versiones del mismo navegador en el mismo sistema operativo. Tcnicas tales como la virtualizacin completa se utilizan a veces como una solucin para este problema.

Las aplicaciones tradicionales


Aunque las aplicaciones web se estn convirtiendo cada vez ms popular, muchos usuarios todava utilizan la apliacin de software tradicional que no se basa en una arquitectura cliente/servidor web. La distincin entre las "tradicionales" y las aplicaciones "web" no es siempre inequvoca, sin embargo, ya que las aplicaciones tienen muchas caractersticas diferentes, los mtodos de instalacin y arquitecturas, y algunas de ellas pueden superponerse y ocurrir de maneras que difuminan la distincin. Sin embargo, esta distincin simplificada es una generalizacin comn y til.

Software binario
Tradicionalmente en la informtica moderna, la aplicacin de software se ha distribuido a los usuarios finales como imgenes binarias, que se almacenan en archivos ejecutables, un tipo especfico de archivo binario. Estos ejecutables slo admiten el sistema operativo y arquitectura de computadores que fueron construidas, lo que significa que haciendo un "ejecutable multi-plataforma" sera algo as como una enorme tarea, y por lo general no se hace. Para el software que se distribuye como un archivo ejecutable binario, como el software escrito en C o C++, el programador debe crear el software para cada sistema operativo diferente y arquitectura de computadoras. Por ejemplo, Mozilla Firefox, un navegador web de cdigo abierto, est disponible en Microsoft Windows, Mac OS X (tanto PowerPC y x86 a travs de algo que Apple llama un binario universal), y Linux en arquitecturas de varios equipos. Las tres plataformas (en este caso, de Windows, Mac OS X y Linux) son distribuciones ejecutables independientes, si bien proceden del mismo cdigo fuente. En el contexto del software binario, los programas multiplataforma estn escritos en el cdigo fuente y luego, "traducido" a cada sistema que se ejecuta a travs de la compilacin en plataformas diferentes. Adems, el software puede ser portado a una arquitectura de computadora nueva o sistema operativo para que el programa se hace ms multiplataforma de lo que ya es. Por ejemplo, un programa como Firefox, que ya se ejecuta en Windows en la familia x86, se puede modificar y re-programar para ejecutarse en Linux en x86 (y potencialmente otras arquitecturas) tambin. Como alternativa a la portabilidad, la virtualizacin de multiplaforma permite que las aplicaciones compiladas para una CPU y el sistema operativo se ejecute en un sistema con una CPU y/o sistema operativo, sin modificar el cdigo fuente o binarios. Por ejemplo, Apple Rosetta software, que est integrado en Intel basados en ordenadores Apple Macintosh, ejecuta las aplicaciones compiladas para la anterior generacin de Mac que utilizan PowerPC CPU. Otro ejemplo es IBM PowerVM Lx86, que permite Linux/x86 aplicaciones para ejecutarse sin modificaciones en el Linux/Sistema operativo de encendido.

Multiplataforma

19

Scripts y lenguajes interpretados


Un script puede ser considerado como multiplataforma si su intrprete est disponible en mltiples plataformas y la secuencia de comandos slo utiliza los servicios proporcionados por el lenguaje. Es decir, un script escrito en Python para un sistema como Unix probablemente se ejecutar con poca o ninguna modificacin en el de Windows, ya que tambin se ejecuta en Python de Windows, tambin hay ms de una implementacin de Python que se ejecutan los mismos scripts (por ejemplo, IronPython para .NET). Lo mismo ocurre con muchos de los lenguajes de programacin de cdigo abierto que estn disponibles y son lenguajes de scripting. A diferencia de los binarios ejecutables, el script puede utilizar el mismo en todos los equipos que tienen el software para interpretar la secuencia de comandos. Esto se debe a que las secuencias de comandos se almacenan generalmente en un texto sin formato en un archivo de texto. Puede haber algunos problemas, sin embargo, como el tipo de carcter de lnea nueva que se encuentra entre las lneas. Generalmente, sin embargo, el trabajo poco o nada tiene que hacer para que un script escrito para un sistema, ejecute en otro. Algunos muy populares entre plataformas scripting o lenguajes interpretados son: Bash - Un shell de Unix en el que comnmente se ejecutan en Linux y otros modernos sistemas Unix, as como en Windows a travs de Cygwin POSIX (capa de compatibilidad). Perl - Un lenguaje de scripting creado en 1987. Se utiliza para programacin CGI WWW, pequeos sistemas de administracin de tareas y ms. PHP - El lenguaje de scripting ms popular en uso de las aplicaciones web. Python - Un moderno lenguaje de programacin donde la atencin se centra en el desarrollo rpido de aplicaciones y la facilidad de la escritura, en lugar se obtiene un programa eficiente en tiempo de ejecucin. Ruby - Un lenguaje de scripting cuyo propsito es ser orientado a objetos y fcil de leer. Tambin se puede utilizar en la web a travs de Ruby on Rails. Tcl - Un lenguaje de programacin dinmico, adecuado para una amplia gama de aplicaciones, incluyendo aplicaciones web y de escritorio, redes, administracin de pruebas y muchos ms.

Video juegos
Multiplataforma es un trmino que tambin puede aplicarse a los videojuegos liberados en una serie de consolas de videojuegos, especializados ordenadores dedicados a la tarea de jugar. Ejemplos de juegos de video multi-plataforma son: Minero 2049er Phantasy Star Online Tomb Raider: Legend FIFA Series

Cada uno ha sido puesto en libertad a travs de una variedad de plataformas de juego, como la Wii, PlayStation 3, Xbox 360, ordenadores personales (PCs), y dispositivos mviles. Las caractersticas de un sistema particular puede prolongar el tiempo necesario para implementar un juego de vdeo en mltiples plataformas. As, un videojuego puede inicialmente ser puesto en algunas plataformas y posteriormente puesto en libertad el resto de plataformas. Por lo general, esta situacin se produce cuando un nuevo sistema de juego es liberado, porque los desarrolladores de videojuegos que se familiaricen con el hardware y el software asociado con la nueva consola. Algunos juegos no pueden ser multiplataforma debido a los acuerdos de licencia entre los desarrolladores y fabricantes de videojuegos de consola que limitan el desarrollo de un juego para una consola en particular. Como ejemplo, Disney podra crear un juego con la intencin de la liberacin en la ltima Nintendo y Sony consolas de juegos. En caso de licencia de Disney del juego de Sony primero, Disney puede en cambio ser necesaria para liberar el juego nicamente en Sony de la consola por un corto tiempo o indefinidamente.

Multiplataforma Varios desarrolladores han puesto en marcha los medios para jugar juegos en lnea durante el uso de diferentes plataformas. Epic Games, Microsoft y Valve Software todos poseemos la tecnologa que permite a Xbox 360 y PlayStation 3 a los jugadores jugar con los jugadores de PC, dejando la decisin de qu plataforma utilizar para los consumidores. El primer juego para permitir que este nivel de interactividad entre el PC y consola de juegos era Quake 3. Los juegos que ofrecen multiplataforma juego en lnea incluyen: Kane & Lynch: Dead Men Lost Planet: Colonies Phantasy Star Online Shadowrun BlazBlue: Calamity Trigger Uno Final Fantasy XI Online El Universo en Guerra: Asalto a la Tierra Cuarto de juegos Team Fortress 2 Portal 2

20

Dust 514 con Eve Online Minecraft

Software plataforma-independiente
El software que es independiente de la plataforma no se basa en las caractersticas especiales de cualquier plataforma nica, o, si lo hace, se ocupa de las caractersticas especiales que la hacen frente a mltiples plataformas.

Programacin multiplataforma
La programacin multiplataforma es la prctica de la forma activa de la escritura de software que funciona en ms de una plataforma.

Mtodos de programacin multi-plataforma


Hay diferentes maneras de abordar el problema de escribir una aplicacin multiplataforma. Una de ellos es simplemente crear varias versiones del mismo programa en diferentes rboles de cdigo fuente, es decir, la versin de Windows de un programa puede tener un conjunto de archivos de cdigo fuente y la versin de Macintosh podra tener otro, mientras que un software libre con sistema Unix podra tener otro. Si bien este es un enfoque simple para el problema, tiene el potencial de ser mucho ms caro en costos de desarrollo, tiempo de desarrollo, o ambos, sobre todo para las entidades corporativas. La idea detrs de esto es crear ms de dos programas diferentes que tienen la capacidad de comportarse de manera similar a la otra. Tambin es posible que este medio de desarrollo de una aplicacin multi-plataforma dar lugar a ms problemas de seguimiento de errores y corregir, porque los dos rboles diferentes fuentes tendra programadores diferentes, y por lo tanto los defectos diferentes en cada versin. Cuanto menor sea el equipo de programacin, ms rpido las correcciones de errores tienden a ser. Otro enfoque que se utiliza es depender de un software preexistente que oculta las diferencias entre la platform, llamado abstraccin de la Platform, de tal manera que el programa en s mismo no es consciente de la plataforma que se est ejecutando. Se podra decir que este tipo de programas son independientes de la plataforma. Los programas que se ejecutan en la mquina virtual de Java (JVM) se construyen de esta manera. Algunas aplicaciones de mezclar diversos mtodos de programacin multiplataforma para crear la aplicacin final. Un ejemplo de esto es el navegador web Firefox, que utiliza la abstraccin para construir algunos de los componentes de nivel inferior, sub-estructuras separadas de cdigo para implementar las caractersticas especficas

Multiplataforma de la plataforma (como la interfaz grfica de usuario), y la aplicacin de ms de un lenguaje de scripting para ayudar a facilitar facilidad de portabilidad. Firefox implementa XUL, CSS y JavaScript para la extensin del navegador, adems de plugins al estilo del clsico navegador Netscape. Gran parte del mismo navegador en s est escrito en XUL, CSS y JavaScript, tambin.

21

Herramientas de programacin y entornos multiplataforma


Hay una serie de herramientas que estn disponibles para ayudar a facilitar el proceso de programacin multiplataforma: El Cairo: Un software libre, biblioteca que se utiliza para proporcionar un vector basado en grficos, independiente del API del dispositivo. Est diseado para proporcionar primitivas para dibujos 2-dimensionales a travs de un nmero de diferentes sistemas de apoyo. El Cairo est escrito en C y tiene enlaces para muchos lenguajes de programacin. Eclipse: Entorno de desarrollo multiplataforma, cdigo abierto. Implementado en Java con una arquitectura configurable que soporta muchas herramientas para desarrollo de software. Complementos disponibles para varios lenguajes, como Java y C++. FLTK: Otro cdigo abierto multiplataforma. Kit de herramientas, pero ms ligero, ya que se limita a la GUI. fpGUI: Un conjunto de herramientas de fuente abierta widget de que est completamente implementado en Object Pascal. Actualmente es compatible con Linux, Windows y un poco de Windows CE. GeneXus: En Windows es una solucin rpida de desarrollo de software para la creacin de aplicaciones multiplataforma y de despliegue basado en la representacin del conocimiento y el apoyo a C#, Cobol, Java incluyendo Android y BlackBerry dispositivos inteligentes, Objective-C para el de Apple dispositivos mviles, RPG, Ruby, Visual Basic y Visual FoxPro. GTK+: Un conjunto de herramientas de cdigo abierto para el widget de sistemas tipo Unix con X11 y Microsoft Windows. haXe: Un lenguaje multiplataforma de cdigo abierto. Juce: Un framework de aplicaciones escritas en C++, que se utiliza para escribir software nativo en numerosos sistemas (Microsoft Windows, POSIX, Mac OS X), sin cambios en el cdigo. Max/MSP: Un lenguaje de programacin Visual que encapsula independiente de la plataforma del cdigo con un entorno de ejecucin especfico de la plataforma en las aplicaciones para Mac OS X y Windows. Mono (una versin de cdigo abierto de Microsoft NET.): Un marco multiplataforma para las aplicaciones y lenguajes de programacin. Monocross es una fuente abierta del patrn de diseo modelo-vista-controlador en el que se comparten el modelo y el controlador multi-plataforma, pero la vista es especfica de la plataforma. MoSync es un SDK de cdigo abierto para el desarrollo de aplicaciones mviles en la plataforma C++ familia. Framework de la aplicacin Mozilla: Una plataforma de cdigo abierto para el desarrollo de Mac OS X, las aplicaciones de Windows y Linux. OpenGL: Una biblioteca multiplataforma de grficos 3D. Qt (toolkit): Una estructura de aplicaciones y Widget Toolkit para sistemas Unix con X11, Microsoft Windows, Mac OS X, disponible tanto en virtud de cdigo abierto y licencias propietarias. Real Studio: un IDE RAD desarrollado por Real Software, utiliza un dialecto orientado a objetos del lenguaje de programacin BASIC, y produce binarios compilados para Mac OS X, Windows y Linux, como tambin, ser capaz de producir cgi aplicaciones basadas en web. El soporte iOS est actualmente en desarrollo. Simple DirectMedia Layer: Una libreria de multimedia multiplataforma de cdigo abierto, escrita en C que proporciona acceso de nivel bajo y alto a los grficos, de entrada, audio, etc. Plataforma Smartface: Una herramienta multiplataforma para Windows que se usa para crear aplicaciones mviles para J2ME, Symbian S60, Blackberry y Android, usando herramientas de arrastrar y soltar y edicin de acciones.

Multiplataforma Tcl/Tk Ultimate++: es un marco de desarrollo rpido de aplicaciones multiplataforma de C++ centrado en la productividad de los programadores. Incluye un conjunto de bibliotecas de usuario (GUI, SQL, etc.), Y un entorno de desarrollo integrado. Es compatible con Windows y Unix OS-s. El U++ compite con lenguajes de scripting populares preservando caractersticas de C/C++ de tiempo de ejecucin. Tiene su propio entorno de desarrollo integrado, TheIDE, que cuenta con BLITZ-construir tecnologa para aceleracin de C++ reconstruyendo hasta 4 veces el compilado. wxWidgets: un juego de herramientas widget de fuente abierta que es tambin un marco de aplicacin. Se ejecuta en sistemas Unix con X11, Microsoft Windows y Mac OS X. Se permite que las aplicaciones escritas para usarlo para funcionar en todos los sistemas que lo soporta, si la aplicacin no utiliza ningn sistema operativo especfico de programacin, adems de a la misma. XPower++: es un IDE multiplataforma para Windows, Linux, Mac OS X y sistemas operativos mviles.

22

Sus Desafos para el desarrollo multiplataforma


Hay algunos temas relacionados con el desarrollo de multi-plataforma. Algunos de estos incluyen: Pruebas de aplicaciones multiplataforma puede ser mucho ms complicado, ya que las diferentes plataformas pueden exhibir comportamientos ligeramente diferentes o errores sutiles. Este problema ha llevado a algunos desarrolladores a ridiculizar el desarrollo multiplataforma como "escribir una vez, depurar en todas partes", slogan de marketing. Los desarrolladores a menudo se limitan a utilizar el mnimo comn denominador subconjunto de caractersticas que estn disponibles en todas las plataformas. Esto puede afectar al rendimiento de la aplicacin o prohibir el uso de los desarrolladores caractersticas ms avanzadas de la plataforma. Las diferentes plataformas a menudo tienen diferentes convenciones de interfaz de usuario, que aplicaciones multiplataforma no siempre acomodar. Por ejemplo, las aplicaciones desarrolladas para Mac OS X y GNOME se supone que coloque el botn ms importante en la parte derecha de la ventana o cuadro de dilogo, mientras que Microsoft Windows y KDE tienen la convencin opuesta. Aunque muchas de estas diferencias son sutiles, una aplicacin multiplataforma que no se ajusta adecuadamente a estos convenios puede sentirse torpe o ajeno al usuario. Cuando se trabaja con rapidez, a esas convenciones se oponen incluso puede resultar en la prdida de datos , como en un cuadro de dilogo para confirmar si el usuario desea guardar o descartar los cambios realizados en un archivo. Lenguajes de secuencias de comandos y las mquinas virtuales deben ser traducidos a cdigo ejecutable nativo cada vez que se ejecuta la aplicacin, imponiendo una penalizacin en el rendimiento. Esta pena puede ser aliviado mediante tcnicas avanzadas como la compilacin just-in-time, pero incluso con estas tcnicas, algo de sobrecarga computacional puede ser inevitable. Las diferentes plataformas requieren el uso de formatos de paquetes nativos tales como RPM y MSI. Multiplataforma instaladores como InstallAnywhere, JExpress, InstallBuilder o IzPack satisfacer esta necesidad. Entornos de ejecucin multiplataforma pueden sufrir fallos de seguridad multiplataforma, creando un ambiente frtil para el malware multiplataforma.

Multiplataforma

23

See also
List of widget toolkits Platform virtualization Java (software platform) Language binding Transcompiler

References

OpenGL
OpenGL Desarrollador Khronos Group [1] www.opengl.org Informacin general Diseador Silicon Graphics

ltima versin estable 4.3[2] 6 de agosto de 2012 Gnero Programado en Sistema operativo Licencia En espaol API C Multiplataforma Diversas

OpenGL (Open Graphics Library) es una especificacin estndar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan grficos 2D y 3D. La interfaz consiste en ms de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geomtricas simples, tales como puntos, lneas y tringulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992[3] y se usa ampliamente en CAD, realidad virtual, representacin cientfica, visualizacin de informacin y simulacin de vuelo. Tambin se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows.

Especificacin
Fundamentalmente OpenGL es una especificacin, es decir, un documento que describe un conjunto de funciones y el comportamiento exacto que deben tener. Partiendo de ella, los fabricantes de hardware crean implementaciones, que son bibliotecas de funciones que se ajustan a los requisitos de la especificacin, utilizando aceleracin hardware cuando es posible. Dichas implementaciones deben superar unos tests de conformidad para que sus fabricantes puedan calificar su implementacin como conforme a OpenGL y para poder usar el logotipo oficial de OpenGL. Hay implementaciones eficientes de OpenGL para Mac OS, Microsoft Windows, GNU/Linux, varias plataformas Unix y PlayStation 3. Existen tambin varias implementaciones en software que permiten ejecutar aplicaciones que dependen de OpenGL sin soporte de aceleracin hardware. Es destacable la biblioteca de software libre / cdigo

OpenGL abierto Mesa 3D, una API de grficos sin aceleracin hardware y completamente compatible con OpenGL. Sin embargo, para evitar los costes de la licencia requerida para ser denominada formalmente como una implementacin de OpenGL, afirma ser simplemente una API muy similar. La especificacin OpenGL era revisada por el OpenGL Architecture Review Board (ARB), fundado en 1992. El ARB estaba formado por un conjunto de empresas interesadas en la creacin de una API consistente y ampliamente disponible. Microsoft, uno de los miembros fundadores, abandon el proyecto en 2003. El 21 de septiembre de 2006 se anunci que el control de OpenGL pasara del ARB al Grupo Khronos.[4] Con ello se intentaba mejorar el marketing de OpenGL y eliminar las barreras entre el desarrollo de OpenGL y OpenGL ES.[5] ARB se convirti dentro de Khronos en el OpenGL ARB Working Group.[6] El subgrupo de Khronos que gestiona la especificacin de OpenGL se denomina OpenGL ARB Working Group.[7] Para una relacin de los miembros que componen el OpenGL ARB Working Group, vase el apartado Miembros del Grupo Khronos. El gran nmero de empresas con variados intereses que han pasado tanto por el antiguo ARB como por el grupo actual han hecho de OpenGL una API de propsito general con un amplio rango de posibilidades. Mark Segal y Kurt Akeley fueron los autores de la especificacin original de OpenGL. Chris Frazier fue el editor de la versin 1.1. Jon Leech ha editado las versiones desde 1.2 hasta la presente 3.0.[8]

24

Diseo
OpenGL tiene dos propsitos esenciales: Ocultar la complejidad de la interfaz con las diferentes tarjetas grficas, presentando al programador una API nica y uniforme. Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que todas las implementaciones soporten la funcionalidad completa de OpenGL (utilizando emulacin software si fuese necesario). El funcionamiento bsico de OpenGL consiste en aceptar primitivas tales como puntos, lneas y polgonos, y convertirlas en pxeles. Este proceso es realizado por una pipeline grfica conocida como Mquina de estados de OpenGL.[9] La mayor parte de los comandos de OpenGL bien emiten primitivas a la pipeline grfica o bien configuran cmo la pipeline procesa dichas primitivas. Hasta la aparicin de la versin 2.0 cada etapa de la pipeline ejecutaba una funcin prefijada, resultando poco configurable. A partir de la versin 2.0 algunas etapas son programables usando un lenguaje de programacin llamado GLSL. OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dicte los pasos exactos necesarios para renderizar una escena. Esto contrasta con las APIs descriptivas, donde un programador slo debe describir la escena y puede dejar que la biblioteca controle los detalles para representarla. El diseo de bajo nivel de OpenGL requiere que los programadores conozcan en profundidad la pipeline grfica, a cambio de darles libertad para implementar algoritmos grficos novedosos. OpenGL ha influido en el desarrollo de las tarjetas grficas, promocionando un nivel bsico de funcionalidad que actualmente es comn en el hardware comercial; algunas de esas contribuciones son: Primitivas bsicas de puntos, lneas y polgonos rasterizados.

OpenGL

25

Una pipeline de transformacin e iluminacin. Z-buffering. Mapeado de texturas. Alpha blending. Una descripcin somera del proceso en la pipeline grfica podra ser:[10] 1. Evaluacin, si procede, de las funciones polinomiales que definen ciertas entradas, como las superficies NURBS, aproximando curvas y la geometra de la superficie.

Proceso en la pipeline de grficos.

2. Operaciones por vrtices, transformndolos, iluminndolos segn su material y recortando partes no visibles de la escena para producir un volumen de visin. 3. Rasterizacin, o conversin de la informacin previa en pxeles. Los polgonos son representados con el color adecuado mediante algoritmos de interpolacin. 4. Operaciones por fragmentos o segmentos, como actualizaciones segn valores venideros o ya almacenados de profundidad y de combinaciones de colores, entre otros. 5. Por ltimo, los fragmentos son volcados en el Frame buffer. Muchas tarjetas grficas actuales proporcionan una funcionalidad superior a la bsica aqu expuesta, pero las nuevas caractersticas generalmente son mejoras de esta pipeline bsica ms que cambios revolucionarios de ella.

Ejemplo
Primero, limpiamos el buffer de color para empezar en un canvas negro: glClear( GL_COLOR_BUFFER_BIT );

Se establece la matriz modelview, que controla la posicin de la cmara respecto a las primitivas que renderizamos. La retrasamos 3 unidades en el eje Z, dejndola apuntando hacia el origen: glMatrixMode( GL_MODELVIEW ); modificarn ''modelview'' */ glLoadIdentity(); glTranslatef( 0, 0, -3 ); eje Z */ /* Los comandos para matriz /* Inicializar ''modelview'' */ /* Desplazar 3 unidades en el

La matriz projection controla la perspectiva aplicada a las primitivas; se utiliza de forma similar a la anterior: glMatrixMode( GL_PROJECTION ); modificarn ''projection'' */ glLoadIdentity(); glFrustum( -1, 1, -1, 1, 1, 1000 ); perspectiva */ /* Los comandos para matriz /* Inicializar ''projection'' */ /* Aplicar una proyeccin en

Por ltimo, se dibuja un polgono (un cuadrado verde orientado en el plano XY):

OpenGL glBegin( GL_POLYGON ); glColor3f( 0, 1, 0 ); verde */ glVertex3f( -1, -1, 0 ); glVertex3f( -1, 1, 0 ); glVertex3f( 1, 1, 0 ); glVertex3f( 1, -1, 0 ); glEnd(); /* Inicio de polgono */ /* Establecer color actual a /* /* /* /* /* Establecer un vrtice Establecer un vrtice Establecer un vrtice Establecer un vrtice Fin de polgono */ */ */ */ */

26

Historia
En los aos 1980 el desarrollo de software que fuese compatible con un amplio rango de hardware grfico era un verdadero reto para los desarrolladores. Haba que tratar con interfaces muy diferentes y escribir drivers especficos para cada tipo de hardware, resultando muy costoso; por ello, se subcontrataban equipos de programadores para agilizar el desarrollo. Dado que cada equipo trabajaba por separado en sus interfaces, se produca mucho cdigo redundante. Adems, era un proceso caro, por lo que varios grupos innovadores aceptaron el reto de encontrar un mtodo mejor. Al principio de los aos 1990 SGI era un grupo de referencia en grficos 3D para estaciones de trabajo. Suya era la API IRIS GL,[11] considerada puntera en el campo y estndar de facto, llegando a eclipsar a PHIGS, basada en estndares abiertos. IRIS GL se consideraba ms fcil de usar y, lo ms importante, soportaba renderizado en modo inmediato. Adems, PHIGS, aparte de su mayor dificultad, fue considerada inferior a IRIS GL respecto a funcionalidad y capacidad. La competencia de SGI (Sun Microsystems, Hewlett-Packard e IBM, entre otros) fue capaz de introducir en el mercado hardware 3D compatible con el estndar PHIGS mediante extensiones. Esto fue reduciendo la cuota de mercado de SGI conforme iban entrando diferentes proveedores en el mercado. Por todo ello, en un intento de fortalecer su influencia en el mercado, SGI decidi convertir el estndar IRIS GL en un estndar abierto. SGI observ que la API IRIS GL no poda ser abierta debido a conflictos de licencias y patentes; tambin contena funciones no relevantes para los grficos 3D como APIs para ventanas, teclado o ratn (en parte, porque fue desarrollada antes de la aparicin del X Window System o de los sistemas NeWS de Sun). Adems, mientras iba madurando el soporte del mercado para el nuevo estndar, se pretenda mantener los antiguos clientes mediante bibliotecas aadidas como Iris Inventor o Iris Performer. El resultado de todo lo anterior fue el lanzamiento del estndar OpenGL. Algunos de los logros que se consiguieron fueron: Estandarizar el acceso al hardware. Trasladar a los fabricantes la responsabilidad del desarrollo de las interfaces con el hardware. Delegar las funciones para ventanas al sistema operativo. Con la variedad de hardware grfico existente, lograr que todos hablasen el mismo lenguaje obtuvo un efecto importante, ofreciendo a los desarrolladores de software una plataforma de alto nivel sobre la que trabajar. En 1992,[12] SGI lider la creacin del OpenGL Architecture Review Board (OpenGL ARB), grupo de empresas que mantendra y extendera la especificacin OpenGL en los aos siguientes. OpenGL evolucion desde IRIS GL, superando su problema de dependencia del hardware al ofrecer emulacin software para aquellas caractersticas no soportadas por el hardware del que se dispusiese. As, las aplicaciones podan utilizar grficos avanzados en sistemas relativamente poco potentes. En 1994 SGI baraj la posibilidad de lanzar un producto denominado OpenGL++, el cual inclua elementos como una API de scene-graph (basada presumiblemente en la tecnologa de Performer). Dicha especificacin fue divulgada entre unos pocos grupos interesados, pero nunca apareci finalmente como producto.[13]

OpenGL En 1995 Microsoft lanz Direct3D, que se convertira en el principal competidor de OpenGL. El 17 de diciembre de 1997[14] Microsoft y SGI iniciaron el proyecto Fahrenheit, esfuerzo cooperativo con el objetivo de unificar las interfaces de OpenGL y Direct3D (y aadir tambin una API scene-graph). En 1998 se unira al proyecto Hewlett-Packard.[15] Pese a tener un principio prometedor en estandarizar las APIs de grficos 3D, debido a restricciones financieras en SGI y la falta general de apoyo por parte de la industria, fue finalmente abandonado en 1999.[16]

27

Versiones
OpenGL 1.0
Publicada en enero de 1992. La primera especificacin de OpenGL fue publicada por Mark Segal y Kurt Akeley. OpenGL 1.1 Publicada en enero de 1997. OpenGL 1.1 se enfoc en el soporte de texturas y formatos de textura sobre hardware de GPU. Tarjetas grficas soportadas: todas
Extensin Vertex Arrays Id de extensin EXT_vertex_array Funciones glVertexPointer, glColorPointer, glNormalPointer glPolygonOffset glBlendFunc

Polygon Offsets (depth biasing) EXT_polygon_offset RGBA logical blending Texture Copy and Sub-copy Texture Formats Texture Objects EXT_blend_logic_op

EXT_subtexture, EXT_copy_texture glTexSubImage1D/2D/3D EXT_texture EXT_texture_object RGB, LUMINANCE, ALPHA, INTENSITY (in glTexImage2D) glGenTextures, glBindTextures

OpenGL 1.2 Publicada el 16 de marzo de 1998. OpenGL 1.2 se enfoc en el soporte de texturas de volumen, pxeles empaquetados, reescalado normal, muestreo de texturas clamped/edge y procesamiento de imgenes. Tarjetas grficas soportadas: Rage 128, Rage 128 GL, Rage XL/XC, Rage 128 Pro, Rage Fury MAXX, y todas las tarjetas posteriores.
Extensin 3D Volume Textures GL_EXT_texture3D Id de extensin Funciones glTexImage3DEXT BGR_EXT, BGRA_EXT (in glTexImage2D)

BGRA Texture Format GL_EXT_bgra

Packed Pixels Normal Rescaling Separate Specular Color Texture Coord Edge Clamping Texture LOD Control Draw Range Elements

GL_EXT_packed_pixels GL_EXT_rescale_normal GL_EXT_separate_specular_color

SGIS_texture_edge_clamp

SGIS_texture_lod EXT_draw_range_elements glDrawRangeElements

OpenGL

28
EXT_color_table, EXT_convolution, SGI_color_matrix, EXT_histogram, EXT_blend_color, EXT_blend_minmax

Image Processing Subset

OpenGL 1.2.1 Publicada el 14 de octubre de 1998 OpenGL 1.2.1 fue un lanzamiento menor publicado depus de OpenGL 1.2 (16 de marzo de 1998) el cual aadi multi-textura, o unidades de textura, al canal de renderizado. Esto permiti texturas mltiples que son combinadas por pxel durante la rasterizacin. Tarjetas grficas soportadas: Radeon, Radeon Mobility, Radeon 7500 Mobility, Radeon 8500, Radeon 9000, Radeon 9200, Radeon 9600, Radeon 9800, GeForce 3, GeForce 4Ti, GeForce FX, y todas las tarjetas posteriores
Extensin Id de extensin Funciones

Multi-Texturing SGIS_multitexture glActiveTextureARB, glClientActiveTextureARB

OpenGL 1.3 Publicada el 14 de agosto de 2001. OpenGL 1.3 aadi soporte para textura cubemap, mltiples texturas, multi-muestreo y operaciones de combinacin de unidades de textura (aadir, combinar, dot3, border clamp). Tarjetas grficas soportadas: Radeon 32/36, Radeon 64/7200, Radeon 7000, Radeo AIW, Radeon 7500, Radeon IGP 320M, Radeon IGP 345M, ES1000, Radeon 8500, Radeon 9000/Pro, Radeon 9100/9200/9250 (Pro & IGP), GeForce 3, GeForce 4Ti, GeForce FX, y todas las tarjetas posteriores.
Extensin Compressed Textures Cubemaps Multi-Sampling Texture Add Texture Combine Texture Dot3 Id de extensin GL_ARB_texture_compression GL_EXT_texture_cube_map GL_ARB_multisample GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 TEXTURE_CUBE_MAP_EXT Funciones

Texture Border Clamping GL_ARB_texture_border_clamp Matrix Transpose GL_ARB_transpose_matrix

OpenGL 1.4 Publicada el 24 de julio de 2002. OpenGL 1.4 aadi soporte de sombreado por hardware, coordenadas niebla, generacin automtica de mipmaps, y modos de textura adicionales. Tarjetas grficas soportadas: Quadro DCC, Quadro4 380 XGL, Quadro4 500XGL, 550XGL, Quadro4 700XGL, 750XGL, 900XGL, 980XGL, y todas las tarjetas posteriores.

OpenGL

29

Extensin Automatic Mipmaps Blend Squaring Functions Depth Textures Hardware Shadowing Z-depth Fog Coordinates Multiple Draw Arrays Point Parameters Secondary Color Separate Blend Functions Stencil Wrapping

Id de extensin SGIS_generate_mipmap GL_NV_blend_square GL_ARB_depth_texture GL_ARB_shadow GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_ARB_point_parameter GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_stencil_wrap

Funciones

DEPTH_COMPONENT16/24/32_ARB COMPARE_R_TO_TEXTURE

Texture Crossbar Environment Mode GL_ARB_texture_env_crossbar Texture LOD Bias Texture Mirrored Repeat Window Raster Position GL_EXT_texture_lod_bias GL_ARB_texture_mirrored_repeat GL_ARB_window_pos

OpenGL 1.5 Publicada el 29 de julio de 2003. OpenGL 1.5 aadi soporte para objetos de bfer de vrtice (VBOs), consultas de oclusin, y ampli las funciones de sombreado. Tarjetas grficas soportadas: Radeon X800, Radeon 9600, Radeon 9700, Radeon 9800, GeForce FX, y todas las tarjetas posteriores.
Extensin Id de extensin Funciones Ms Informacin

VBOs Vertex Buffer Objects GL_ARB_vertex_buffer_object glBindBufferARB, glBufferDataARB, glGenBuffersARB songho [17] Occlusion Queries GL_ARB_occlusion_query

Extended Shadow Functions GL_EXT_shadow_funcs

OpenGL 2.0
Publicada el 7 de septiembre de 2004. OpenGL 2.0 aadi soporte para un lenguaje ensamblador basado en GPU verdadero, llamado ARB (diseado por el Architecture Review Board), que se convertira en el estndar para vertex y fragment shaders. Las tarjetas publicadas con OpenGL 2.0 fueron las primeras en ofrecer shaders programables por el usuario. Tarjetas soportadas: Radeon 9650, Radeon 9500, Radeon 9500/9550/9600/9700/9800 (Pro, SE, XT), Radeon X1050, Radeon Xpress 200 / 1100, Radeon X300, Radeon X550, Radeon X600/Pro, Radeon X700, Radeon X800 (VE, SE, GT, Pro), Radeon X850, Radeon Xpress 1250, Radeon X1200, Radeon X1250, Radeon 2100, Radeon X1300, X1550, X1600, X1650, X1800, X1900, X1950 (Pro, XT, GT), GeForce 6800, Quadro 600, Qaudro FX 500, Quadro FX 700, Quadro FX 1000, FX 2000, FX 3000, Quadro FX 1400, Quadro FX 1500, Quadro FX 3450, Quadro FX 3500, Quadro FX 4500X2, Quadro FX4500 SDI, y todas las tarjetas posteriores. OpenGL 2.0 fue concebido por 3Dlabs para abordar las preocupaciones de que OpenGL estaba estancado y careca de una direccin fuerte. 3Dlabs propuso una serie de importantes adiciones a la norma. La mayora de estas fueron, en ese momento, rechazadas por el ARB o de otra manera nunca llegaron a realizarse en la forma que 3Dlabs

OpenGL propuso. Sin embargo, su propuesta de un lenguaje de sombreado de estilo C se complet con el tiempo, resultando en la formulacin actual del GLSL (OpenGL Shading Language, tambin slang).Al igual que los lenguajes de sombreado estilo-ensamblador que trataba de sustituir, permite al programador sustituir los fixed-function vertex y el fragment pipe con shaders, aunque esta vez escritos en un lenguaje tipo C de alto nivel. El diseo de GLSL se destac por hacer relativamente pocas concesiones a las limitaciones del hardware entonces disponible, lo que recordaba a la tradicin anterior de OpenGL estableciendo un objetivo ambicioso, con visin de futuro para los aceleradores 3D en lugar de simplemente seguir el estado de hardware disponible actualmente. La ltima especificacin OpenGL 2.0[18] incluye soporte para GLSL.
Extensin Shader Objects Vertex Programs Vertex Shaders (VS) Fragment Shaders (FS) ID de extensin GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_fragment_shader glDrawBuffers GL_TEXTURE_RECTANGLE_ARB glBindProgramARB, glGenProgramsARB Funciones

30

Multiple Render Targets GL_ARB_draw_buffers Rectangular Texture Point Sprites GL_ARB_texture_rectangle GL_ARB_point_sprite

Separate Blend Equation GL_EXT_blend_equation_separate Separate Stencil GL_EXT_stencil_two_side

OpenGL 2.1 El 2 de agosto de 2006 se public OpenGL 2.1. Siendo completamente compatible con las versiones anteriores,[19] aporta adems nuevas caractersticas como: Revisin 1.20 del OpenGL Shading Language (GLSL). Comandos que soportan la especificacin de matrices no cuadradas. Objetos Pixel buffer para acelerar el trfico de imgenes en los buffers en comandos como glTexImage2D y glReadPixels. Esta funcionalidad corresponde a la extensin ARB_pixel_buffer_object. Texturas sRGB. Esta funcionalidad corresponde a la extensin GL_EXT_texture_sRGB.

OpenGL 3.0
La versin OpenGL 3.0[20] fue publicada el 11 de agosto de 2008. Es compatible hacia atrs con todas las versiones anteriores de OpenGL, aunque introduce un nuevo mecanismo para despreciar (deprecate en ingls) funcionalidad obsoleta y as poder simplificar la API en versiones futuras. Las principales novedades son: OpenGL Shading Language versin 1.30 (GLSL) Vertex Array Objects. Framebuffer Objects ms flexibles. Texturas y render buffers en coma flotante de 32-bits. Soporte para formato en coma flotante de 16-bits para vrtices y pxeles. Capacidad de almacenar vrtices en un buffer tras haber sido transformados. Texture arrays Z-buffer en coma flotante de 32-bits.

OpenGL Slo el hardware a nivel de DirectX 10 es capaz de ejecutar OpenGL 3.0. OpenGL 3.1 La versin 3.1 (Longs Peak Reloaded) fue publicada el 24 de marzo de 2009, y presenta una serie de caractersticas para hacer la API ms conveniente de utilizar, adems de las caractersticas orientadas al rendimiento: Lenguaje de Sombreado OpenGL revisin 1.40 (GLSL) Texture Buffer Objects - un tipo de nueva textura que contiene una matriz unidimensional de texels Uniform Buffer Objects para compartir o actualizar datos de forma rpida Texturas normalizadas firmadas (rango 1,0) Un mnimo de 16 unidades de textura accesibles por el Vertex Shader Reinicio de primitiva Instancias - dibujo de objetos en mltiples ocasiones a travs de la reutilizacin de los vertex data CopyBuffer API para copia rpida de datos, utilizada en conjunto con OpenCL

31

Con la liberacin de la especificacin OpenGL 3.1, tambin fue publicada una extensin de compatibilidad que permite a los desarrolladores acceder a la funcionalidad de OpenGL 1.X/2.X eliminada en OpenGL 3.1. En particular, se mantiene funcionalidad legacy para una amplia lnea de soporte. Funcionalidad heredada eliminada incluye: Todas las opciones de funcin fija Modo directo Color index mode, por ejemplo, formatos de pixel con paletas de colores OpenGL 3.2 La versin 3.2 fue publicada el 3 de agosto de 2009. Incluye las siguientes caractersticas: Lenguaje de Sombreado OpenGL revisin 1.50 (GLSL) Soporte de Geometra Shader BGRA vrtice componente de pedidos Fragmento Shader coordinar el control de convencin Perfecta mapa cubo filtrado Fragmento de profundidad de sujecin Multisampled texturas y textura de las muestras para lugares especficos de la muestra Objetos de sincronizacin y cerca

OpenGL 3.3 Publicada el 11 de marzo de 2010 OpenGL 3.3, simultneamente lanzado con OpenGL 4.0 y complementada por un conjunto de nuevas extensiones ARB, porta tanta funcionalidad como es posible desde la especificacin OpenGL 4.0 para su uso en la generacin anterior de hardware GPU. Incluye GLSL 3.30.

OpenGL 4.0
Publicada el 11 de marzo de 2010 Tarjetas compatibles: Radeon HD serie 5000, nVidia GTX serie 400; Caractersticas:[21] OpenGL Shading Language versin 4.00 (GLSL) Dos fases de sombreado que permiten a la GPU descargar el teselado geomtrico de la CPU.

OpenGL Per-shaders fragmento de la muestra y de sombreado programable posiciones fragmento de entrada para mayor calidad de representacin y anti-aliasing de flexibilidad. Subrutinas Shader para una flexibilidad de programacin aumentada significativamente. Separacin del estado de textura y de los datos de textura mediante la adicin de un nuevo tipo de objeto llamado sampler objetos. Dibujo de los datos generados por el API de OpenGL o APIs externos, tales como OpenCL, sin intervencin de la CPU. Operaciones de 64-bit de coma flotante de doble precisin de sombreado y entradas / salidas para prestar mayor precisin y calidad. Mejoras de rendimiento, tales como shaders de geometra en instancias, instancias matrices y una consulta de nuevo temporizador. OpenGL 4.1 Anunciado el 26 de julio de 2010[22] Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series Esta nueva versin aade estas caractersticas adicionales a la especificacin, muchas de las cuales ayudan a ponerla en consonancia con las de Direct3D 11: Lenguaje de sombreado OpenGL (GLSL) 4.1 Compatibilidad completa con OpenGL para sistemas integrados (OpenGL ES) 2.0 Reduccin de tiempos de recompilacin La capacidad de vincular los programas de forma individual a las cinco etapas programables (Vertex, Control de mosaico, Evaluacin de el Teselado, la Geometra, y Fragmento) Mejoras a la coma flotante general de 64 bits compatible con agregado en OpenGL 4.0 OpenGL 4.2 Publicado el 8 de agosto de 2011[23] Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series, ATI Radeon HD 7000 series Soporte para shaders con contadores atmicos y load/store/atomic read-modify-write operations en un nico nivel de una textura. Capacidad de capturar geometra de la GPU en mosaico y dibujar varias instancias de una "transform feedback " para que los objetos complejos sean fcilmente replicados o cambiados de posicin. OpenGL puede modificar ahora un subconjunto arbitrario de una textura comprimida sin necesidad de volver a descargar toda la textura a la GPU llevando esto a un mayor rendimiento. Soporte para empaquetar varios valores de 8 bits y 16 bits en un nico valor de 32 bits, llevando a un procesamiento ms eficiente del shader y presin reducida en la memoria y el ancho de banda.

32

OpenGL OpenGL 4.3 Publicado el 6 de agosto de 2012[24] Tarjetas Soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, Nvidia GeForce 600 series Incluye la versin ms actualizada de GLSL en su versin 4.30 (OpenGL Shading Language). Clculo de shaders que aprovechan el paralelismo de la GPU para todo lo relacionado con geometra o grficos. Almacenamiento en bfer de objetos Shader. Consultas de parmetros de texturas para hallar los lmites que las plataformas pueden tener para procesar las mismas. Alta calidad de comprensin en texturas ETC2/EAC como caracterstica estndar. Compatibilidad total con las APIs de OpenGL ES 3.0. Capacidades de depuracin que permiten recibir mensajes de depuracin mientras se desarrolla la aplicacin. Vistas de texturas para anlisis de las mismas en diferentes formas sin replicacin de datos. Incrementa la seguridad de la memoria. Una extensin multi-aplicacin que aade robustez al sistema, e impide que las aplicaciones que provoquen un fallo y tengan que resetearse afecten a otras que estn en ejecucin.

33

Documentacin
La popularidad de OpenGL se debe en parte a su detallada documentacin oficial. El OpenGL ARB ha publicado una serie de manuales actualizados conforme la API iba evolucionando. Son fcilmente reconocibles (y conocidos) por el color de sus tapas: El Libro Rojo - The Red Book: The OpenGL Programmer's guide. ISBN 0-321-33573-2 Libro de referencia y tutorial. Considerado libro de cabecera para programadores de OpenGL. El Libro Azul - The Blue Book: The OpenGL Reference manual. ISBN 0-321-17383-X En esencia, una copia de la pginas del man de OpenGL. Incluye un poster desplegable con el diagrama de la estructura de una implementacin ideal de OpenGL. El Libro Verde - The Green Book: Programming OpenGL for the X Window System. ISBN 0-201-48359-9 Libro sobre el interfaz X11 y GLUT. El Libro Alpha (de tapa blanca) - The Alpha Book: OpenGL Programming for Windows 95 and Windows NT. ISBN 0-201-40709-4 Libro sobre el interfaz de OpenGL en plataformas de Microsoft Windows. Para OpenGL 2.0 y posteriores: El Libro Naranja - The Orange Book: The OpenGL Shading Language. ISBN 0-321-33489-2 Libro de referencia y tutorial para GLSL.

Extensiones
El estndar OpenGL permite a los fabricantes aadir nuevas funcionalidades adicionales mediante extensiones conforme aparecen nuevas tecnologas. Dichas extensiones pueden introducir nuevas funciones y constantes, y suavizar o incluso eliminar restricciones en funciones ya existentes. Cada fabricante dispone de una abreviatura que le identifica en el nombre de sus nuevas funciones o constantes. Por ejemplo, la abreviatura de NVIDIA (NV) aparece en la definicin de su funcin glCombinerParameterfvNV() y su constante GL_NORMAL_MAP_NV. Es posible que varios fabricantes se pongan de acuerdo en implementar la misma funcionalidad extendida. En ese caso, se usa la abreviatura EXT. Incluso puede ocurrir que el ARB adopte la extensin, convirtindose as en estndar y utilizando la abreviatura ARB en sus nombres. La primera extensin ARB fue GL_ARB_multitexture,

OpenGL presentada en la versin 1.2.1. Siguiendo el camino marcado por la extensin, el multitexturing no es ya una extensin opcional, sino que entr a formar parte del ncleo de OpenGL desde la versin 1.3. Antes de usar una extensin, los programas deben comprobar su disponibilidad y, despus, acceder a las nuevas funcionalidades ofrecidas. Este proceso es dependiente de la plataforma, pero bibliotecas como GLEW y GLEE lo simplifican. Las especificaciones para la mayor parte de las extensiones pueden encontrarse en el registro oficial de extensiones.[25]

34

Bibliotecas de utilidades
Se han programado varias bibliotecas externas que aaden caractersticas no disponibles en el propio OpenGL. Algunas de ellas son: GLU: Ofrece funciones de dibujo de alto nivel basadas en primitivas de OpenGL. Las funciones de GLU se reconocen fcilmente pues todas empiezan con el prefijo glu. GLUT: API multiplataforma que facilita una rudimentaria funcionalidad para el manejo de ventanas e interaccin por medio de teclado y ratn. GLUI: Interfaz de usuario basada en GLUT; proporciona elementos de control tales como botones, cajas de seleccin y spinners. Es independiente del sistema operativo, sustentndose en GLUT para manejar los elementos dependientes del sistema.

Referencias para lenguajes de programacin (bindings)


Para enfatizar las caractersticas multilenguaje y multiplataforma de OpenGL, se han desarrollado varios bindings en muchos lenguajes. Algunos de los lenguajes para los que estn disponibles dichos bindings son: Ada: Ada OpenGL 1.1[26] soporta GL, GLU y GLUT. C#: Tao[27] es un framework para .NET que incluye OpenGL entre otras bibliotecas multimedia. D: vase[28] y.[29] Embarcadero Delphi: Dot.[30] Fortran: f90gl[31] soporta OpenGL 1.2, GLU 1.2, GLUT 3.7. Gambas: gb.opengl[32] Genie Lazarus-FreePascal: LCL/GLUT[33] Java: JOGL[34] y LWJGL[35] entre otros; vase.[36] Lisp: vase.[37] Perl: vase.[38] Pike: tiene un interfaz nativo a OpenGL.[39] Adems, soporta GLU y GLUT. Python: PyOpenGL[40] soporta GL, GLU y GLUT. Visual Basic: vase.[41] XBase++: vase.[42]

Haskell: HOpenGL,[43] soporta GL, GLU y GLUT. Vala

OpenGL

35

Miembros del Grupo Khronos


En 2008, algunos de los miembros del Grupo Khronos son: AMD Apple Blizzard Intel Graphics Controllers nVIDIA

Para una lista completa y actualizada de los miembros del proyecto, vanse las listas de miembros,[44] contribuyentes[45] y acadmicos[46] del Grupo Khronos.[47]

Referencias
[1] http:/ / www. opengl. org/ [2] Khronos Releases OpenGL 4.3 Specification with Major Enhancements (http:/ / www. khronos. org/ news/ press/ khronos-releases-opengl-4. 3-specification-with-major-enhancements) [9] http:/ / www. opengl. org/ documentation/ specs/ version1. 1/ state. pdf [17] http:/ / www. songho. ca/ opengl/ gl_vbo. html [18] http:/ / www. opengl. org/ documentation/ specs/ version2. 0/ glspec20. pdf [20] http:/ / www. opengl. org/ registry/ doc/ glspec30. 20080811. pdf [43] http:/ / haskell. org/ HOpenGL/ index. html

Enlaces externos
Sitio web oficial de OpenGL (http://www.opengl.org/) Sitio web de SGI sobre OpenGL (http://www.sgi.com/products/software/opengl/) OpenGL (http://dmoz.org/Computers/Programming/Graphics/Libraries/OpenGL/) en el Open Directory Project Grupo Khronos (http://www.khronos.org/) NeHe Tutorials, tutoriales para el aprendizaje de OpenGL (http://nehe.gamedev.net/) Proyecto Fahrenheit en Microsoft (http://www.microsoft.com/presspass/press/1997/dec97/Fahrpr.mspx) Black Byte (http://black-byte.com/tutoriales/) Tutoriales en Espaol de OpenGL Why do game developers prefer Windows? (http://programmers.stackexchange.com/questions/60544/ why-do-game-developers-prefer-windows/88055#88055) post sobre OpenGL vs DirectX

Accelerated Graphics Port

36

Accelerated Graphics Port


Accelerated Graphics Port o AGP (en espaol "Puerto de Grficos Acelerados") es una especificacin de bus que proporciona una conexin directa entre el adaptador de grficos y la memoria. Es un puerto (puesto que slo se puede conectar un dispositivo, mientras que en el bus se pueden conectar varios) desarrollado por Intel en 1996 como solucin a los cuellos de botella que se producan en las tarjetas grficas que usaban el bus PCI. El diseo parte de las especificaciones del PCI 2.1. El puerto AGP es de 32 bits como PCI pero cuenta con notables diferencias como 8 canales ms adicionales para acceso a la memoria de acceso aleatorio (RAM). Adems puede acceder directamente a esta a travs del puente norte pudiendo emular as memoria de vdeo en la RAM. La velocidad del bus es de 66 MHz. El bus AGP cuenta con diferentes modos de funcionamiento. AGP 1X: velocidad 66 MHz con una tasa de transferencia de 266 MB/s y funcionando a un voltaje de 3,3V. AGP 2X: velocidad 133 MHz con una tasa de transferencia de 532 MB/s y funcionando a un voltaje de 3,3V. AGP 4X: velocidad 266 MHz con una tasa de transferencia de 1 GB/s y funcionando a un voltaje de 3,3 o 1,5V para adaptarse a los diseos de las tarjetas grficas. AGP 8X: velocidad 533 MHz con una tasa de transferencia de 2 GB/s y funcionando a un voltaje de 0,7V o 1,5V. Estas tasas de transferencias se consiguen aprovechando los ciclos de reloj del bus mediante un multiplicador pero sin modificarlos fsicamente..

En marrn en la parte superior, ranura AGP.

Compatibilidad, Llaves AGP en la tarjeta (arriba), en la ranura (abajo).

El puerto AGP se utiliza exclusivamente para conectar tarjetas grficas, y debido a su arquitectura slo puede haber una ranura. Dicha ranura mide unos 8 cm y se encuentra a un lado de las ranuras PCI. A partir de 2006, el uso del puerto AGP ha ido disminuyendo con la aparicin de una nueva evolucin conocida como PCI-Express, que proporciona mayores prestaciones en cuanto a frecuencia y ancho de banda. As, los principales fabricantes de tarjetas grficas, como ATI y nVIDIA, han ido presentando cada vez menos productos para este puerto.

PCI-Express

37

PCI-Express
PCI Express (anteriormente conocido por las siglas 3GIO, en el caso de las "Entradas/Salidas de Tercera Generacin", en ingls: 3rd Generation In/Out) es un nuevo desarrollo del bus PCI que usa los conceptos de programacin y los estndares de comunicacin existentes, pero se basa en un sistema de comunicacin serie mucho ms rpido. Este sistema es apoyado principalmente por Intel, que empez a desarrollar el estndar con nombre de proyecto Arapahoe despus de retirarse del sistema Infiniband.

Ranura PCI-Express 1x

PCI Express es abreviado como PCI-E o PCIe, aunque errneamente se le suele abreviar como PCI-X o PCIx. Sin embargo, PCI Express no tiene nada que ver con PCI-X OG que es una evolucin de PCI, en la que se consigue aumentar el ancho de banda mediante el incremento de la frecuencia, llegando a ser 32 veces ms rpido que el PCI 2.1. Su velocidad es mayor que PCI-Express, pero presenta el inconveniente de que al instalar ms de un dispositivo la frecuencia base se reduce y pierde velocidad de transmisin.

Estructura
Este bus est estructurado como carriles punto a punto, full-duplex, trabajando en serie. En PCIe 1.1 (el ms comn en 2007) cada carril transporta 250 MB/s en cada direccin. PCIe 2.0 dobla esta tasa a 500 MB/s y PCIe 3.0 la dobla de nuevo (1 GB/s por carril). Cada ranura de expansin lleva uno, dos, cuatro, ocho o diecisis carriles de datos entre la placa base y las tarjetas conectadas. El nmero de carriles se escribe con una x de prefijo (x1 para un carril simple y x16 para una tarjeta con diecisis carriles); x16 de 500MB/s dan un mximo ancho de banda de 8 GB/s en cada direccin para PCIE 2.x. En el uso ms comn de x16 para el PCIE 1.1 proporciona un ancho de banda de 4 GB/s (250 MB/s x 16) en cada direccin. En comparacin con otros buses, un carril simple es aproximadamente el doble de rpido que el PCI normal; una ranura de cuatro carriles, tiene un ancho de banda comparable a la versin ms rpida de PCI-X 1.0, y ocho carriles tienen un ancho de banda comparable a la versin ms rpida de AGP. Una ranura PCi Express 3.0 tiene 1 GB/s direccional y 2 GB/s bidireccional, por lo que logran en el caso de x16 un mximo terico de 16 GB/s direccionales y 32 GB/s bidireccion

Uso
PCI-Express est pensado para ser usado slo como bus local, aunque existen extensores capaces de conectar mltiples placas base mediante cables de cobre o incluso fibra ptica. Debido a que se basa en el bus PCI, las tarjetas actuales pueden ser reconvertidas a PCI Express cambiando solamente la capa fsica. La velocidad superior del PCI Express permitir reemplazar casi todos los dems buses, AGP y PCI incluidos. La idea de Intel es tener un solo controlador PCI Express comunicndose con todos los dispositivos, en vez de con el actual sistema de puente norte y puente sur.

Slots PCI Express (de arriba a abajo: x4, x16, x1 y x16), comparado con uno tradicional PCI de 32 bits, tal como se ven en la placa DFI LanParty nF4 Ultra-D

PCI-Express PCI Express no es todava suficientemente rpido para ser usado como bus de memoria. Esto es una desventaja que no tiene el sistema similar HyperTransport, que tambin puede tener este uso. Adems no ofrece la flexibilidad del sistema InfiniBand, que tiene rendimiento similar, y adems puede ser usado como bus interno externo. Este conector es usado mayormente para conectar tarjetas grficas. PCI Express en 2006 es percibido como un estndar de las placas base para PC, especialmente en tarjetas grficas. Marcas como Advanced Micro Devices y nVIDIA entre otras tienen tarjetas grficas en PCI Express. Tambin ha sido utilizado en mltiples ocasiones como puesto para la transferencia de unidades de estado slido de alto rendimiento, con tasas superiores al Gigabyte por segundo.

38

Factores de forma
Tarjeta de baja altura Mini Card: un reemplazo del formato Mini PCI (con buses PCIe x1, USB 2.0 y SMBus en el conector) ExpressCard: sucesor del formato PC card (con PCIe x1 y USB 2.0; conectable en caliente) XMC: similar al formato CMC/PMC (con PCIe x4 o Serial RapidI/O) AdvancedTCA: un complemento de CompactPCI y PXI para aplicaciones tecnolgicas; soporta topologas de backplane basadas en comunicacin serial

AMC: un complemento de la especificacin AdvancedTCA; soporta procesadores y mdulos de entrada/salida en placas ATCA (PCIe x1,x2,x4 o x8). PCI Express External Cabling[] Mobile PCI Express Module (MXM) Una especificacin de mdulos grficos para porttiles creada por NVIDIA. Advanced eXpress I/O Module (AXIOM) diseo de mdulos grficos creada por ATI Technologies.

Referencias Enlaces externos


Wikimedia Commons alberga contenido multimedia sobre PCI-ExpressCommons. PCI-Express en Hispatech (http://www.hispatech.com/ver_articulo.php?cod=21) Intel Developer Network for PCI Express Architecture (http://www.intel.com/technology/pciexpress/devnet/ ) Rapid I/O en HispaTech (http://hispatech.com/articulos/html/ibap/rapid_io/pag1.php)

Peripheral Component Interconnect

39

Peripheral Component Interconnect


Un Peripheral Component Interconnect (PCI, "Interconexin de Componentes Perifricos") es un bus de ordenador estndar para conectar dispositivos perifricos directamente a su placa base. Estos dispositivos pueden ser circuitos integrados ajustados en sta (los llamados "dispositivos planares" en la especificacin PCI) o tarjetas de expansin que se ajustan en conectores. Es comn en PC, donde ha desplazado al ISA como bus estndar, pero tambin se emplea en otro tipo de ordenadores. En diferencia de los buses ISA, el bus PCI permite configuracin dinmica de un dispositivo perifrico. En el tiempo de arranque del sistema, las tarjetas PCI y el BIOS interactan y negocian los recursos solicitados por la tarjeta PCI. Esto permite asignacin de IRQs y direcciones del puerto por medio de un proceso dinmico diferente del bus ISA, donde las IRQs tienen que ser configuradas manualmente usando jumpers externos. Las ltimas revisiones de ISA y el bus MCA de IBM ya incorporaron tecnologas que automatizaban todo el proceso de configuracin de las tarjetas, pero el bus PCI demostr una mayor eficacia en tecnologa "plug and play". Aparte de esto, el bus PCI proporciona una descripcin detallada de todos los dispositivos PCI conectados a travs del espacio de configuracin PCI. La especificacin PCI cubre el tamao fsico del bus, caractersticas elctricas, cronmetro del bus y sus protocolos. El grupo de inters especial de PCI (PCI Special Interest Group) comercializa copias de la especificacin en http:/ / www.pcisig.com.

Buses PCI de una placa base para Pentium I

Historia
El trabajo sobre los PCI empez en el laboratorio Intel en 1990 Slots PCI de 64 bits de un Power Macintosh G4 situado en Berkeley California. El PCI 1.0 el cual fue solamente una especificacin a nivel de componentes fue lanzado el 22 de junio de 1992. El PCI 2.0 fue el primero en establecer el estndar para el conector y el slot de la placa base, fue lanzado en 1993. El PCI 2.1 se lanz al mercado el 1 de junio de 1995. PCI fue inmediatamente puesto al uso de los servidores reemplazando MCA y EISA como opcin al bus de expansin. En PC fue ms lento en reemplazar al VESA Local Bus y no gan la suficiente penetracin en el mercado hasta despus del 1994 con la segunda generacin de los Pentium. Para 1996 el VESA se extingui y las compaas reemplazaron hasta en los computadores 80486. Apple adopt el PCI para el Power Macintosh (reemplazando al NuBus) a mediados de 1995 y el Performa (reemplazando a LC PDS) a mediados de 1996. Nuevas versiones PCI aadieron caractersticas y mejoras en el rendimiento incluyendo un estndar a 66MHz 3.3V y otro de 133MHz llamados PCI-X. Ambos PCI-X 1.0b y PCI-X 2.0 son compatibles con sus predecesores. Con la

Peripheral Component Interconnect introduccin de la versin serial PCI Express en el 2004, los fabricantes de placas base van incluyendo cada vez menos ranuras PCI a favor del nuevo estndar, aunque todava es comn ver ambas interfaces implementadas....

40

Auto Configuracin
El PCI tiene 2 espacios de direccin separados de 32-bit y 64-bit correspondientes a la memoria y puerto de direccin de entrada/salida de la familia de procesadores de X86. El direccionamiento es asignado por el software. Un tercer espacio de direccin llamado PCI Configuration Space, el cual utiliza un esquema de direccionamiento corregido que permite al software determinar la cantidad de memoria y espacio de direcciones entrada/salida necesitado por cada dispositivo. Cada dispositivo que conectas puede solicitar hasta seis reas de espacio de memoria o espacios de puerto entrada/salida a travs de su registro de espacio de configuracin. En el tpico sistema el Firmware (o sistema operativo) consulta todos los PCI al inicio (va espacio configuracin PCI) para averiguar que dispositivos estn presentes y que recursos y dice a cada dispositivo cual es su alojamiento. El espacio de configuracin de PCI tambin contiene una pequea cantidad de informacin de cada dispositivo el cual, ayuda al sistema operativo a elegir sus drivers o al menos tener un dilogo acerca de la configuracin del sistema. Los dispositivos pueden tener una ROM que contiene cdigos ejecutables para los x86 o procesadores PA-RISC, un driver Open Firmware o un driver EFI. Estos son tpicamente necesarios para dispositivos usados durante el inicio del sistema, antes de que sus drivers sean cargados por el sistema operativo. Adems estn los PCI Latency Timers que son mecanismos para que los dispositivo PCI Bus-mastering compartan el bus PCI de manera ms justa. Donde justa en este caso significa que los dispositivos no usarn una porcin tan grande del ancho de banda del bus PCI disponible tal que otros dispositivos no sean capaces de realizar su trabajo. Nota: esto no se aplica al PCI Express. El modo de funcionamiento de esto es porque cada dispositivo PCI puede operar en modo bus-master que es requerido para implementar un reloj, llamado reloj de latencia que limita el tiempo que cada dispositivo puede ocupar el bus PCI. Cuando el contador alcanza el 0 el dispositivo es solicitado para abandonar el bus. Si no hay ningn otro dispositivo esperando la propiedad del bus puede simplemente volver a obtenerlo y transferir ms datos.

Especificaciones hardware
Estas especificaciones representan a la versin de PCI ms comnmente usada en los PC Reloj de 33,33MHz con transferencias sncronas Ancho de bus de 32 bits o 64 bits Tasa de transferencia mxima de 133MB por segundo en el bus de 32 bits (33,33 MHz 32 bits 8 bits/byte = 133 MB/s) Tasa de transferencia mxima de 266MB/s en el bus de 64 bits. Espacio de direccin de 32 bits (4GB) Espacio de puertos I/O de 32 bits (actualmente obsoleto) 256 bytes de espacio de configuracin. 3,3V o 5V, dependiendo del dispositivo reflected-wave switching
Tpica tarjeta PCI de 32 bits. En este caso, una controladora SCSI de Adaptec

Peripheral Component Interconnect

41

Variantes convencionales de PCI


Cardbus es un formato PCMCIA de 32 bits, 33 MHz PCI Compact PCI, utiliza mdulos de tamao Eurocard conectado en una placa hija PCI. PCI 2.2 funciona a 66 MHz (requiere 3,3 voltios en las seales) (ndice de transferencia mximo de 503 MiB/s (533MB/s). PCI 2.3 permite el uso de 3,3 voltios y sealizador universal, pero no soporta los 5 voltios en las tarjetas. PCI 3.0 es el estndar final oficial del bus, con el soporte de 5 voltios completamente quitado. PCI-X cambia el protocolo levemente y aumenta la transferencia de datos a 133 MHz (ndice de transferencia mximo de 1014 MiB/s). PCI-X 2.0 especifica un ratio de 266 MHz (ndice de Tarjeta de expansin PCI-X Gigabit Ethernet transferencia mximo de 2035 MiB/s) y tambin de 533 MHz, expande el espacio de configuracin a 4096 bytes, aade una variante de bus de 16 bits y utiliza seales de 1,5 voltios. Mini PCI es un nuevo formato de PCI 2.2 para utilizarlo internamente en los porttiles. PC/104-Plus es un bus industrial que utiliza las seales PCI con diferentes conectores. Advanced Telecommunications Computing Architecture (ATCA o AdvancedTCA) es la siguiente generacin de buses para la industria de las telecomunicaciones. PXI es la extensin del bus PCI para instrumentacin y control.

Dimensiones de las tarjetas


Tarjeta de tamao completo
La tarjeta original PCI de tamao completo tiene un grosor de unos 107 mm (4.2 pulgadas) y una largo de 312 mm (12.283 pulgadas). La altura incluye el conector de borde de tarjeta. Sin embargo, las tarjetas PCI ms modernas son de medio cuerpo o ms pequeas (mirar debajo) y a muchos ordenadores personales no se les pueden encajar una tarjeta de tamao lleno.

La Tarjeta backplate
Adems de estas dimensiones el tamao del backplate est tambin estandarizado. El backplate es la pieza de metal situada en el borde que se utiliza para fijarla al chasis y contiene los conectores externos. La tarjeta puede ser de un tamao menor, pero el backplate debe ser de tamao completo y localizado propiamente. Respecto del anterior bus ISA, est situado en el lado opuesto de la placa para evitar errores.

Peripheral Component Interconnect

42

La tarjeta de extensin de medio cuerpo (de facto estndar)


Esto es de hecho el estndar prctico en la actualidad - la mayora de las tarjetas modernas PCI son aptas dentro de estas dimensiones. Anchura: 0.6 pulgadas (15.24 mm) Profundidad: 6.9 pulgadas (175.26 mm) Altura: 4.2 pulgadas (106.68 mm)

La tarjeta de perfil bajo (altura media)


La organizacin PCI ha definido un estndar para tarjetas "de perfil bajo" que es bsicamente apto en las gamas siguientes: Altura: 1.42 pulgadas (36.07 mm) a 2.536 pulgadas (64.41 mm) Profundidad: 4.721 pulgadas (119.91 mm) a 6.6 pulgadas (167.64 mm) El anaquel tambin es reducido en altura a un estndar de 3.118 pulgadas (79.2 mm). El anaquel ms pequeo no encaja en un ordenador personal estndar. Muchos fabricantes solucionan esto suministrando ambos tipos de anaquel (los anaqueles tpicamente son atornillados a la tarjeta entonces el cambio de ellos no es difcil). stas tarjetas pueden ser conocidas por otros nombres como "delgado". perfil bajo PCI FAQ perfil bajo PCI Especificacin

Mini PCI
Mini PCI fue aadida a la versin 2.2 PCI para el empleo en ordenadores porttiles y usa un bus de 32 bits, de 33 MHz con conexiones alimentadas (3.3 V slo) y soporte de bus mastering y DMA. El tamao estndar para tarjetas Mini PCI es aproximadamente 1/4 de sus similares de tamao completo. Como no hay ningn acceso externo a la tarjeta de la misma manera que hay para las tarjetas PCI de sobremesa, hay limitaciones en las funciones que pueden realizar. Muchos dispositivos Mini PCI han sido desarrollados, tales como Wi-Fi, Ethernet Rpida, Bluetooth, mdems (a menudo Winmodems), tarjetas de sonido, aceleradores criptogrficos, controladores SCSI, IDE/ATA, SATA, tarjetas de combinacin. Las tarjetas regulares PCI pueden ser usadas con el hardware Mini PCI-equipado y viceversa, usando de-Mini PCI a PCI y de PCI-a los-Mini PCI convertidores. Mini PCI ha sido reemplazado por PCI Express Mini Card. Los detalles tcnicos de tarjetas Mini PCI Las tarjetas Mini PCI tienen un consumo mximo de 2W, que tambin limita la funcionalidad que puede ser puesta en prctica en este factor de forma. Requieren que ellos tambin soporten la seal PCI CLKRUN#, empleada para arrancar y detener el reloj PCI por motivos de control de energa. Hay tres factores de forma de tarjeta: Tipo I, Tipo II, y Tipo III. El conector de tarjeta usado para cada tipo incluye: El tipo I y II usan un conector de colocacin de 100 pines, mientras el Tipo III emplea un conector de borde de 124 pines, p. ej: el conector para Tipo I y II se diferencian por esto del Tipo III, donde el conector est sobre el borde de una tarjeta, como con un SO-DIMM. Los 24 pines adicionales proporcionan las seales suplementarias requeridas a la ruta de entada salida por atrs del sistema conector (audio, el eslabn de corriente alterna, el LAN, la interfaz de lnea telefnica). El tipo II de tarjetas tienen montados los conectores RJ11 Y RJ45. Estas tarjetas deben ser localizadas en el borde del ordenador o la estacin que se atraca de modo que el RJ11 y puertos RJ45 puedan ser montados para el acceso externo.

Peripheral Component Interconnect Otras variaciones fsicas Los tpicos sistemas de consumidores especifica "ranuras N x PCI " sin especificar las dimensiones reales del espacio disponible. En algunos pequeos sistemas de factor de forma, esto no es suficiente an para que las tarjetas PCI "de medio cuerpo" entren en dicha ranura. A pesar de esta limitacin, estos sistemas son todava tiles porque muchas tarjetas PCI modernas son bastante ms pequeas que las de medio cuerpo. Tarjeta de pulsacin Las tpicas tarjetas PCI presentan una o dos muescas claves, segn su voltaje sealado. Las tarjetas que requieren 3.3 voltios tienen una muesca de 56.21mm al frente de la tarjeta (donde estn los conectores externos), mientras aquellos requieren 5 voltios tienen una de muesca 104.47mm del frente de la tarjeta. Las llamadas " tarjetas Universales " tienen ambas muescas claves y pueden aceptar los dos tipos de seales.

43

Bibliografa
Mario Carlos Ginzburg (2004). Introduccin general a la informtica: la PC por dentro, arquitectura y funcionamiento de computadoras [1]. Del Autor, Ediciones. ISBN 987-43-7737-2.

Referencias
[1] http:/ / agencia. librosar. com. ar/ portal/ detallesLibro. aspx?codigo=174030

Bus VESA
El bus VESA (Video Electronics Standards Association, la compaa que lo dise) es un tipo de bus de datos para ordenadores personales, utilizado sobre todo en equipos diseados para el procesador Intel 80486. Permite conectar directamente la tarjeta grfica al procesador. Este bus es compatible con el bus ISA pero mejora la respuesta grfica, solucionando el problema de la insuficiencia de flujo de datos de su predecesor. Para ello su estructura consista en un extensin del ISA de 16 bits. Las tarjetas de expansin de este tipo eran enormes lo que, junto a la aparicin del bus PCI, mucho ms rpido en velocidad de reloj, y con menor longitud y mayor versatilidad, hizo desaparecer al VESA, aunque sigue existiendo en algunos equipos antiguos.

Fuentes y contribuyentes del artculo

44

Fuentes y contribuyentes del artculo


Tarjeta grfica Fuente: http://es.wikipedia.org/w/index.php?oldid=67004618 Contribuyentes: -jem-, Abajo estaba el pez, Abece, Allyouneedislove, Aloriel, Alpertron, Alvaro qc, Andreasmperu, Andresbogota1, Antur, ArragaSoft, Averride, Aipni-Lovrij, B25es, Bedwyr, Belb, Biasoli, Boja, Bolt58, BuenaGente, Buisqui, C'est moi, Camilo, CesarWoopi, Chequelete;3, Cinabrium, Cinevoro, CommonsDelinker, Cristhian peru, Cronos x, Darwinjvega, David0811, Davife, Diegusjaimes, Diosa, Dox, Echani, Edupedro, Elsenyor, Er Komandante, Erudicin, Ezarate, Fanattiq, Fernando Estel, Fjjf, Flopirizzo, Foundling, FrancoGG, GermanX, Gothmog, Griher, Gusecuador, HUB, Helmy oved, Humberto, Individuo7, Isha, JMPerez, Jesus.luque, Jkbw, Joan Martin, JorgeGG, Jorjum, Juanvemo, LM Domnguez Peinado, Lasusirexula, Leonpolanco, Leugim1972, Locos epraix, Locutus Borg, Lucien leGrey, LyingB, MARC912374, Magister Mathematicae, Mahadeva, Maikfield, Maldoror, Maleiva, ManoloKosh, Mansoncc, Manuelt15, Manw, Mar del Sur, MarcoAurelio, Matdrodes, Mecamtico, Mechusriva, Mig77angel, Milkoproto, Mindeye, Montgomery, Mpeinadopa, Muro de Aguas, Museo8bits, Napier, Netito777, Omeganet, Ortisa, Palica, Piero71, Pieter, Pybalo, Plux, Qpowei, Rastrojo, Ravave, Ricardogpn, Rmolina, Rolldi, RoyFocker, Rubpe19, Savh, Sethi, Sidcc, Simmi, SpeedyGonzalez, Sr Beethoven, SuperBraulio13, Superzerocool, Taichi, Tano4595, Technopat, The worst user, Tirithel, TorQue Astur, Tosin2627, Tostadora, UA31, Ummowoa, VanKleinen, Vitamine, Wikilptico, Wilfredor, Yeza, Zoid, Zulucho, 444 ediciones annimas Unidad de procesamiento grfico Fuente: http://es.wikipedia.org/w/index.php?oldid=64592360 Contribuyentes: Acratta, Alexaltea, Alvaro qc, Amitie 10g, Biasoli, Candon777, Cinabrium, Creosota, Dianai, Dodo, Dogor, Emmanuel yo, Erud, Flafus, GermanX, Isha, Leibnitz, MasterNoX, Matdrodes, Mortadelo, Muro de Aguas, Museo8bits, Nachocs, Olea, Poco a poco, Porao, Ratchet, Riviera, Roberto Estrada, Rondador, Schekinov Alexey Victorovich, Shooke, SuperBraulio13, Technopat, TorQue Astur, Triku, Txo, Txomon, Unificacion, 50 ediciones annimas Multiplataforma Fuente: http://es.wikipedia.org/w/index.php?oldid=65513538 Contribuyentes: AlbertoDV, Alexnmoya, Antoine, Antonorsi, Aipni-Lovrij, Dayanruben, Digigalos, Dlorah, Emijrp, Fibonacci, Genba, Goofys, Gustronico, Huds, Humberto, Jkbw, Jonik, JorSol, Josemiguel93, Kokoo, Lomby, Neeskens, Spazer, Superzerocool, Vivero, Wilfredor, 44 ediciones annimas OpenGL Fuente: http://es.wikipedia.org/w/index.php?oldid=66912934 Contribuyentes: 3coma14, Adrruiz, Aliamondano, AstroNomo, Bedwyr, Biasoli, Cgarciagl, Cinabrium, Codename, Daniel G., Danielba894, David0811, DavidGL, Deibiz xxl, Dusan, El Pantera, Entalpia2, Farisori, GermanX, Gothmog, Gtz, Jag2k4, Jarisleif, Javier Carro, Jmaslibre, Jmtorres, Jotatsu, Jsanchezes, Jynus, Kakahuete, Linfocito B, Locos epraix, Mafores, ManuelGR, Manuelt15, Marioxcc, Matdrodes, Moriel, Otamay, Otermin, Paintman, Pirenne, Poco a poco, ProfesorFavalli, Shooke, Sixstone, Suhrvivor, Template namespace initialisation script, Timotein, TorQue Astur, Toranks, Triku, Unf, Usrwp, W0lffyllo, Will vm, Willicab, Yearofthedragon, Zerabat, conversion script, pc0809.dsic.upv.es, 94 ediciones annimas Accelerated Graphics Port Fuente: http://es.wikipedia.org/w/index.php?oldid=66406707 Contribuyentes: -jem-, Antonorsi, Avm, Chalsito, CommonsDelinker, Ctrl Z, Cubanitochevere, Diegusjaimes, Dxman, Fargue, Forza4, GermanX, Googledance, Gothmog, Heriotza, Hispa, Indu, Kokoo, Laura Fiorucci, Matdrodes, Museo8bits, Nejasul, Peluffin, Porao, Sabbut, Salu2, Sms, Tano4595, Thorin, Vbenedetti, Yrithinnd, rico Jnior Wouters, 116 ediciones annimas PCI-Express Fuente: http://es.wikipedia.org/w/index.php?oldid=65998699 Contribuyentes: -jem-, Acanas, Alexisabarca, Aloriel, Avm, Bedwyr, CommonsDelinker, Couragebanshee, Dgelpi, Fcosegura, Gabriel Fernando Rosso R., Gelu13, GermanX, Gothmog, GuillermoP, HUB, Igna, J. A. Glvez, JMPerez, Javierito92, Jkbw, Kekkyojin, Kokoo, Kordas, Maldoror, MarcoAurelio, Matdrodes, Minterior, Muro de Aguas, Murphy era un optimista, Museo8bits, Nelson.cruz, Nicop, Platonides, RoyFocker, Salam32, Sebasweee, Simpsons, SuperBraulio13, Superzerocool, Tirithel, TorQue Astur, Triku, Unificacion, Vmmf, Zulucho, 175 ediciones annimas Peripheral Component Interconnect Fuente: http://es.wikipedia.org/w/index.php?oldid=64452231 Contribuyentes: Abece, Aloriel, Antonorsi, Avm, Bazookao, Chrihern, Didac, Dreitmen, Edupedro, Elas, FrancoGG, GermanX, Guanucoluis, GuillermoP, Guzmancha, Gngora, Hernancastellanos, Hernanjh, Hispa, Isarmien, JaNyTo, Javier Carro, Javiernoval, Jkbw, Jorgechp, Magister Mathematicae, Marta24, Matdrodes, Matiasmoreno, Murphy era un optimista, Museo8bits, Nyx, OceanO, Oscaroe, Pasqual, Rocastelo, Sabbut, SuperBraulio13, Tano4595, Tirithel, Tostadora, Toxickore, Triku, U-Alex, Utolotu, Vitamine, 133 ediciones annimas Bus VESA Fuente: http://es.wikipedia.org/w/index.php?oldid=64619619 Contribuyentes: Beto29, Ciencia Al Poder, Cratn, Damifb, Diego Godoy, GermanX, Guanxito, Isha, Jamuki, Jkbw, Juana de Arco, Matdrodes, Simeon, Taragui, 26 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes

45

Fuentes de imagen, Licencias y contribuyentes


Archivo:HD4670.JPG Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:HD4670.JPG Licencia: Creative Commons Attribution-Share Alike Contribuyentes: TorQue Astur Archivo:S3 virge gx.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:S3_virge_gx.jpg Licencia: Public Domain Contribuyentes: Futase_tdkr Archivo:MCA IBM XGA-2.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:MCA_IBM_XGA-2.jpg Licencia: GNU Free Documentation License Contribuyentes: User:Appaloosa Archivo:Nubus graphics card.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Nubus_graphics_card.jpg Licencia: Creative Commons Attribution-Sharealike 2.5 Contribuyentes: Danamania, GreyCat, Grm wnr, Mewtu, 4 ediciones annimas Archivo:Vlb svga.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Vlb_svga.jpg Licencia: GNU Free Documentation License Contribuyentes: Miha Ulanov Archivo:Gfx eisa.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Gfx_eisa.jpg Licencia: GNU Free Documentation License Contribuyentes: Appaloosa Archivo:EGA card.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:EGA_card.jpg Licencia: Public Domain Contribuyentes: Sergei Archivo:6600GT GPU.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:6600GT_GPU.jpg Licencia: GNU Free Documentation License Contribuyentes: User:Berkut Archivo:Salidas.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Salidas.jpg Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: TorQue Astur Archivo:Video card Outputs.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Video_card_Outputs.jpg Licencia: Creative Commons Attribution 2.5 Contribuyentes: Bedwyr Archivo:CPU copper heat sink.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:CPU_copper_heat_sink.jpg Licencia: GNU Free Documentation License Contribuyentes: Audrius Meskauskas, Archivo:Commons-logo.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Commons-logo.svg Licencia: logo Contribuyentes: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version, created by Reidab. Archivo:Yes_check.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Yes_check.svg Licencia: Public Domain Contribuyentes: SVG by Gregory Maxwell (modified by WarX) Archivo: Pipeline OpenGL (es).png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Pipeline_OpenGL_(es).png Licencia: Creative Commons Attribution 2.5 Contribuyentes: Bedwyr Archivo:AGP slot.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:AGP_slot.jpg Licencia: GNU Free Documentation License Contribuyentes: User Berkut on en.wikipedia Archivo:AGP & AGP Pro Keying.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:AGP_&_AGP_Pro_Keying.svg Licencia: Creative Commons Attribution-Sharealike 2.5 Contribuyentes: Original uploader was JigPu at en.wikipedia Later versions were uploaded by Aluvus at en.wikipedia. Archivo:PCI-Express-Bus-1-lane.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PCI-Express-Bus-1-lane.jpg Licencia: desconocido Contribuyentes: Emx, GreyCat, Panoramafotos.net, 1 ediciones annimas Archivo:PCIExpress.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PCIExpress.jpg Licencia: GNU Free Documentation License Contribuyentes: FxJ, GMLSX, GreyCat, Jokes Free4Me, Jona, Mentifisto, Paxan, Trelio, Wouterhagens, 15 ediciones annimas Archivo:buses pci.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Buses_pci.jpg Licencia: GNU Free Documentation License Contribuyentes: Original uploader was Aloriel at es.wikipedia Archivo:64bitpci.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:64bitpci.jpg Licencia: Public domain Contribuyentes: 32bitmaschine, Conscious, Denniss, GreyCat, Maksim, Morven Archivo:32-bit PCI card.JPG Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:32-bit_PCI_card.JPG Licencia: Creative Commons Attribution-ShareAlike 3.0 Unported Contribuyentes: User Redgrittybrick on en.wikipedia Archivo:PCI-X Ethernet.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PCI-X_Ethernet.jpg Licencia: GNU Free Documentation License Contribuyentes: 32bitmaschine, Conscious, GreyCat, Maksim, Malcolma, Solomon203 Archivo:Vlb.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Vlb.jpg Licencia: GNU Free Documentation License Contribuyentes: 32bitmaschine, Denniss, Stanmar

Licencia

46

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

S-ar putea să vă placă și