Articulo de referencia

Fahrenheit (API de gráficos)

Fahrenheit fue un proyecto para crear una API unificada de alto nivel para gráficos 3D por computadora , con el fin de unificar Direct3D y OpenGL . Fue diseñado principalmente p...

Fahrenheit fue un proyecto para crear una API unificada de alto nivel para gráficos 3D por computadora , con el fin de unificar Direct3D y OpenGL . Fue diseñado principalmente por Microsoft y SGI , y también incluyó trabajo de una colaboración entre HP y Microsoft.

Direct3D y OpenGL son API de bajo nivel que se centran principalmente en las etapas de renderizado del pipeline de renderizado 3D . Los programas que utilizan estas API deben proporcionar una cantidad considerable de código para gestionar el resto del pipeline. Fahrenheit esperaba ofrecer una única API que realizara la mayor parte de este trabajo y, posteriormente, llamara a Direct3D o a OpenGL para los pasos finales.

Gran parte del proyecto original de Fahrenheit fue abandonado, y Microsoft y SGI finalmente desistieron de sus intentos de colaborar. Al final, solo se lanzó la parte del grafo de escena del sistema Fahrenheit, conocida como XSG , y se descontinuó poco después.

Historia

Fondo

En la década de 1990, OpenGL de SGI era el estándar de facto para los gráficos 3D por computadora. Antes de mediados de los 90, diferentes plataformas habían utilizado diversas soluciones personalizadas, pero el poder de SGI en el mercado de gráficos, combinado con los esfuerzos de la Junta de Revisión de Arquitectura de OpenGL (ARB), condujo a la rápida estandarización de OpenGL en la mayor parte del mercado de estaciones de trabajo gráficas . A mediados de la década de 1990, Microsoft obtuvo la licencia de OpenGL para su sistema operativo Windows NT como su sistema 3D principal; Microsoft estaba posicionando NT como un sistema de clase estación de trabajo, y OpenGL era necesario para ser un verdadero competidor en este espacio. El soporte inicial se lanzó en Windows NT Workstation versión 3.5 en 1994. [ 1 ]

La compra de RenderMorphics por parte de Microsoft en febrero de 1995 complicó aún más la situación . [ 2 ] Su producto Reality Lab era una biblioteca 3D escrita específicamente para videojuegos, dirigida principalmente al mercado de gama baja. Tras renombrarlo como Direct3D 3.0 , Microsoft lo lanzó como la API 3D principal para Windows 95 y la programación de videojuegos. Esto desató un intenso debate, tanto dentro como fuera de Microsoft, sobre las ventajas de ambas API y si Direct3D debía o no ser promocionada. [ 3 ] [ 4 ] [ 5 ]

A mediados de los 90, SGI trabajó en una serie de iniciativas para proporcionar una API de nivel superior sobre OpenGL con el fin de facilitar la programación. En 1997, esto evolucionó hasta convertirse en su sistema OpenGL++ , una API de C++ en modo retenido sobre OpenGL. Propusieron que una versión modificada se utilizara como una única API sobre OpenGL o sobre una nueva API de bajo nivel y alto rendimiento en la que Microsoft estaba trabajando (no basada en Reality Lab). Esto no solo ocultaría los detalles de implementación y haría innecesaria la rivalidad entre OpenGL y DirectX, sino que, al mismo tiempo, ofrecería interfaces de alto nivel considerablemente mejores para un entorno de desarrollo orientado a objetos más robusto .

El esfuerzo de OpenGL++ se prolongó en el ARB durante 1997. Aunque SGI asignó recursos al proyecto para proporcionar una implementación de ejemplo, parece que no estaban satisfechos con el progreso general y se quejaron: "Se ha trabajado mucho, pero la comunicación ha sido relativamente escasa". [ 6 ] Microsoft, en particular, había declarado sin rodeos que no apoyaría el esfuerzo, y SGI sentía que su apoyo sería esencial para cualquier esfuerzo futuro.

Anuncio

Un comunicado de prensa conjunto en diciembre de 1997, [ 7 ] seguido de un anuncio en una reunión de ARB a principios de 1998 por parte de SGI, [ 8 ] anunció que el trabajo en OpenGL++ había sido abandonado y que SGI se había asociado con Microsoft para producir un nuevo sistema con nombre en clave "Fahrenheit". SGI proporcionaría la API principal de "tamaño medio" utilizada en la mayoría de las aplicaciones, Fahrenheit Scene Graph , [ 9 ] así como una versión modificada para manejar modelos muy grandes de aplicaciones CAD , Fahrenheit Large Model . Microsoft proporcionaría un nuevo motor de renderizado de bajo nivel para Windows conocido como Fahrenheit Low Level , esencialmente un reemplazo para la versión de Direct3D basada en Reality Lab. [ 10 ] El proyecto fue anunciado oficialmente en SIGGRAPH 1998 para su lanzamiento a finales de 1999 o principios de 2000. [ 11 ]

Fahrenheit se convirtió en el principal foco de desarrollo de SGI. Sus estaciones de trabajo basadas en MIPS estaban perdiendo rápidamente la ventaja de rendimiento que tenían a principios de la década de 1990, y la empresa se encontraba en serios problemas a medida que el PC promedio invadía lenta pero inexorablemente el mercado de gráficos de gama alta. SGI vio en Fahrenheit una estrategia de salida; una vez completado, podrían pasar a una línea de productos basada en PC sin dejar de ofrecer las mejores herramientas de desarrollo para una API ahora universal. Aunque no se inició ningún trabajo de portabilidad, se pretendía que en el futuro se integraran en Fahrenheit kits de herramientas como Open Inventor y OpenGL Performer , lo que significaba que podrían ofrecer un único sistema de desarrollo completamente funcional para Fahrenheit cuando se lanzara, dando soporte tanto a sus clientes existentes como a los nuevos. [ 10 ]

Cancelación

Para 1999, era evidente que Microsoft no tenía intención de desarrollar Low Level; aunque oficialmente trabajaba en ello, prácticamente no se destinaban recursos a la producción de código. [ 11 ] Al mismo tiempo, Microsoft estaba invirtiendo masivamente en DirectX 7.0 (similar a 3.0 solo en el nombre). Sin Low Level, Fahrenheit no podía distribuirse en Windows y el proyecto se estancó. Finalmente, SGI abandonó el desarrollo de Fahrenheit [ 12 ] y comenzó a planificar otros productos de Scene Graph, que se convirtieron en el último de una serie de proyectos similares.

Para el año 2000, DirectX 7.0 ya estaba en el mercado y gozaba de gran popularidad. DirectX se había convertido en la API principal durante el auge de los videojuegos en 3D a finales de la década de 1990. Microsoft lanzó Fahrenheit Scene Graph como XSG ese mismo año, pero con una nota que indicaba que no contaría con soporte. Nunca se lanzaron nuevas versiones de XSG, y todas las páginas relacionadas con Fahrenheit o XSG en los sitios web de Microsoft y SGI han desaparecido. El soporte para OpenGL acelerado por hardware se eliminó de los controladores de vídeo incluidos en Windows XP , aunque la mayoría de los fabricantes de tarjetas gráficas ofrecen sus propias implementaciones.

Descripción

En comparación con Open Inventor o Iris Performer , el diseño de XSG incluía algunas ideas novedosas. Las primitivas de composición y los métodos de recorrido permitían a las aplicaciones construir escenas de la forma más adecuada a la estructura de los datos que se visualizaban, para luego aplicar un optimizador de grafos de escena y reestructurarla para una renderización más eficiente sin alterar su apariencia. El desarrollador simplemente hacía lo que le parecía más natural, y el sistema lo procesaba rápidamente.

La renderización en paralelo permitió que una aplicación multihilo construyera la escena, eliminara sus primitivas y la renderizara en diferentes hilos (tomando prestado el método de la canalización Performer app-cull-draw). La representación de los datos de la escena primitiva se optimizó para minimizar la cantidad de datos almacenados y así evitar duplicarlos por completo en cada hilo.

Una de las características únicas de XSG era la capacidad de reemplazar la mayoría de los métodos integrados para recorrer el grafo con versiones propias. Los desarrolladores podían escribir nuevas funciones para recorrer rápidamente sus métodos conocidos de almacenamiento de datos dentro de XSG y luego encadenarlas en las rutas de renderizado existentes.

David Blythe, el principal arquitecto de Fahrenheit en SGI, trabajó en Microsoft en DirectX hasta 2010. También fue arquitecto jefe de software gráfico en Intel.

Véase también

Referencias

  1. Revista PC, 20 de diciembre de 1994
  2. "Historia de RenderMorphics y Reality Lab" . Qube Software. Archivado del original el 23 de diciembre de 2008. Consultado el 25 de enero de 2009 .
  3. Thurrott, Paul (16 de julio de 1997). "Open GL vs. Direct3D: el debate continúa" . Windows IT Pro. Archivado del original el 5 de febrero de 2010. Recuperado el 25 de enero de 2009 .
  4. Thurrott, Paul (21 de julio de 1997). "Direct3D vs. OpenGL continúa: id y Alex St. John contraatacan" . Windows IT Pro. Archivado del original el 5 de febrero de 2010. Recuperado el 25 de enero de 2009 .
  5. Microsoft y los gráficos 3D: Un estudio de caso sobre la supresión de la innovación y la competencia. Archivado el 23 de octubre de 2007 en Wayback Machine .
  6. "Notas de la reunión del subcomité de interés de OpenGL++ ARB" . OpenGL. 6 de junio de 1997. Consultado el 25 de enero de 2009 .
  7. "Silicon Graphics y Microsoft forman una alianza estratégica para definir el futuro de los gráficos" . MOUNTAIN VIEW, California: Microsoft. 17 de diciembre de 1997. Archivado del original el 22 de enero de 2009. Consultado el 25 de enero de 2009 .
  8. Leech, Jon (9-10 de marzo de 1998). "Notas de la reunión de la ARB" . Salt Lake City, UT: OpenGL. Archivado del original el 16 de mayo de 2008. Consultado el 25 de enero de 2009 .
  9. Dana, Jenny (septiembre de 1998). "API de la Iniciativa Fahrenheit" . Silicon Valley . SIGGRAPH. Archivado del original el 7 de agosto de 2007. Consultado el 25 de enero de 2009 .
  10. Preguntas frecuentes sobre 1/2 Fahrenheit , archivo de Wayback Machine de las preguntas frecuentes de SGI
  11. 1 2 "¿Qué es/era Fahrenheit?" . DirectX.com. Archivado del original el 21-04-2008 . Recuperado el 25-01-2009 .
  12. "HP prepara motores gráficos Fahrenheit" . Computergram International . 1999-10-19 . Consultado el 2009-01-25 .