¿Cual fue la primera tarjeta aceleradora 3D de la historia, en que año salió a la venta?
Aquí depende de qué llames "tarjeta aceleradora". Si nos centramos en chips gráficos, la idea de las GPUs (como chip dedicado a gráficos 3D) es implementar un cauce gráfico más o menos complejo para mostrar gráficos 3D en una pantalla 2D. La "primera generación" de GPUs data de antes de 1987, y únicamente dibujaban wireframes con colores. Según wikipedia, una de las primeras sería la iSBX 275 Video Graphics Controller Multimodule Board de Intel, en 1983, pero seguro que había cosas más sencillas. Pero vamos, que los primeros sistemas 3D estaban pensados como máquinas completas para apoyar el renderizado de un algoritmo que se ejecutaría parte en CPU (genérico) y parte en GPU(dedicado a 3D).
Si nos vamos a PC comerciales a partir de los 92-93 teníamos las S3, Matrox y Ati, que aunque se consideran tarjetas "2D" ya implementaban parte del cauce para dibujar polígonos texturizados e iluminación básica (la s3 trio y su sucesora la virge por ejemplo). Las librerías como directX y su directdraw hacían parte del trabajo también en CPU, pero transformaciones (rotaciones, escalados, etc...) y texturizado se hacía en gpu ya por 1995. Por el camino me he dejado SGI (dedicados a "superordenadores" para gráficos 3D) y las gpus que se inventaron para consolas como el chip FX de supernintendo (movía 4 polígonos con textura de color plano, ahí es nada
) o las gpus de playstation/nintendo64, que también eran chips dedicados al 3D.
Luego ya llegaría 3dfx, que cogieron el testigo e implementaron/mejoraron todo lo que pudieron el cauce gráfico, implementando todo en GPU. Además sentaron las bases de las primeras gpus programables con shaders (creo que fueron las vodoo5 o 6...), hasta que NVidia se los comió, asimiló conocimientos y ahora está copando el mercado (sí, me he olvidado de ATI/AMD... soy proNvidia
).
¿Que efectos soportaban por hardware? ¿Solo soportaban filtrado bilinear?
Hay que decir que la mayoría de los juegos 3D anteriores a 1995 usaban implementaciones software de cauce gráfico para dibujar polígonos 3d en pantalla. Aquí tiro de apuntes, pero pongo el cauce gráfico simplificado y lo que se implementa por años:
Etapas:
- Emisión de primitivas gráficas desde la CPU
- Transformaciones
- Iluminación de vértices
- Proyección
- Clipping
- Rasterización
- Texturizado y sombreado
1º Generación (hasta 1987 )
Emisión de primitivas gráficas a GPU, transformaciones, mallas 3D y las fases de transformación para colocar los elementos 3D, clipping antes de rasterizar. Es lo basico para pintar una maya 3D y hacer rotaciones sin CPU.
2º Generación (hasta 1992 )
Añade las fases de iluminación (vértices) y sombreado (polígonos). Implementan algoritmos básicos de iluminación/sombreado de polígonos (Alguien se acuerda de la peli del cortador de cesped? Creo que ahí usaron un render que encaja en esta descripción).
3º Generación (hasta el 2000)
Se añaden las fases de texturado, y los efectos de filtrado bilinear, trilinear, etc... Esta generación es algo así como el "más y mejor", cada tarjeta que sale puede hacer el doble de polígonos con texturas que la anterior, más resolución de pantalla, etc...
4º Generación ( Hasta la actualidad, creo)
Lo más rompedor de esta generación es el cauce programable. Antes se usaba una api de programación de gráficos desde la CPU, y se dependía de la implementación del cauce en GPU (el de OpenGL por ejemplo). Ahora se puede programar directamente en GPU, usando un lenguaje propio y haciendo virguerías con los gráficos (se pueden mover vértices directamente en GPU, implementar efectos de iluminación/reflejo que no se podían con los cauces gráficos "estandar"...)
¿Existe algún listado con juegos MSDOS que soporten aceleración 3D?
Creo recordar que el primer tomb raider... algún flight simulator de Windows 3.11.... No se ya que muchos usaban implementaciones software y la gráfica solo dibujaba lo que le llegara al framebuffer.