stringtranslate.com

Fahrenheit (API de gráficos)

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

Direct3D y OpenGL son API de bajo nivel que se concentran principalmente en los pasos de renderizado del proceso de renderizado 3D . Los programas que utilizan estas API tienen que proporcionar una cantidad considerable de código para gestionar el resto del proceso. Fahrenheit esperaba proporcionar una única API que hiciera la mayor parte de este trabajo y luego llamara a Direct3D o a OpenGL para los últimos pasos.

Gran parte del proyecto original de Fahrenheit fue abandonado y Microsoft y SGI finalmente desistieron de intentar trabajar juntos. Al final, solo se lanzó la parte del sistema Fahrenheit relacionada con los gráficos de escena , conocida como XSG , y se suspendió poco después.

Historia

Fondo

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

Un asunto confuso fue la compra de RenderMorphics por parte de Microsoft en febrero de 1995. [2] Su producto Reality Lab era una biblioteca 3D escrita específicamente para juegos, dirigida principalmente al mercado de "gama baja". Después de cambiarle el nombre a Direct3D 3.0 , Microsoft la lanzó como la API 3D principal para Windows 95 y la programación de juegos. Esto desencadenó un debate masivo, tanto dentro como fuera de Microsoft, sobre los méritos de las dos API y sobre si se debía promover o no Direct3D. [3] [4] [5]

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

El esfuerzo por desarrollar OpenGL++ se prolongó en el ARB hasta 1997. Aunque SGI destinó recursos al proyecto para proporcionar una implementación de muestra, parece que no estaban satisfechos con el progreso en general y se quejaron de que "ha habido mucho trabajo, pero relativamente poca comunicación". [6] Microsoft, en particular, había declarado en términos inequívocos que no apoyaría el esfuerzo, y SGI consideró que su apoyo sería esencial para cualquier esfuerzo futuro.

Anuncio

En diciembre de 1997, [7] se publicó un comunicado de prensa conjunto , seguido de un anuncio en una reunión de la ARB a principios de 1998 por parte de SGI, [8] que anunciaba que se había abandonado el trabajo en OpenGL++ y que SGI se había asociado con Microsoft para producir un nuevo sistema con el nombre en código "Fahrenheit". SGI iba a proporcionar 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 basada en Reality Lab de Direct3D. [10] El proyecto se anunció oficialmente en SIGGRAPH 1998 para su lanzamiento a fines de 1999 o principios de 2000. [11]

Fahrenheit se convirtió en el foco principal de desarrollo de SGI. Sus estaciones de trabajo basadas en MIPS estaban perdiendo rápidamente el liderazgo en rendimiento que tenían a principios de los años 90, y la empresa se encontraba en serios problemas a medida que el PC promedio invadía lenta pero seguramente el mercado de gráficos de alta gama. SGI vio a Fahrenheit como una estrategia de salida; una vez completado, podrían pasar a una línea basada en PC y seguir ofreciendo las mejores herramientas de desarrollo para una API ahora universal. Aunque no se inició ningún trabajo de adaptación, se pretendía que en el futuro se incorporaran kits de herramientas como Open Inventor y OpenGL Performer a Fahrenheit, lo que significa que podrían entregar un único sistema de desarrollo completamente funcional para Fahrenheit cuando se lanzara, que brindara soporte tanto a sus clientes existentes como a los nuevos. [10]

Cancelación

En 1999, quedó claro que Microsoft no tenía intención de entregar Low Level; aunque oficialmente trabajaban en ello, casi no se dedicaban recursos a producir código. [11] Al mismo tiempo, Microsoft estaba en proceso de invertir masivamente en DirectX 7.0 (similar a 3.0 en gran medida solo en el nombre). Sin Low Level, Fahrenheit no podría entregarse en Windows y el proyecto se estancó. Finalmente, SGI abandonó el trabajo en Fahrenheit [12] y comenzó a planificar otros productos Scene Graph que se convirtieron en el último de una serie de proyectos similares.

En el año 2000, DirectX 7.0 ya estaba en el mercado y era muy popular. DirectX se había convertido en la API principal durante el auge de los juegos en 3D a finales de los años 90. Microsoft lanzó Fahrenheit Scene Graph como XSG ese mismo año, pero lo hizo con una nota que decía que no sería compatible. Nunca se lanzaron nuevas versiones de XSG y todas las páginas relacionadas con Fahrenheit o XSG en las páginas web de Microsoft y SGI han desaparecido desde entonces. La compatibilidad con 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 de vídeo 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 manera más adecuada a la estructura de los datos que se estaban visualizando, pero luego aplicar un optimizador de gráficos de escena para reestructurar la escena para una representación más eficiente sin cambiar la apariencia de la escena. El desarrollador simplemente hizo lo que parecía natural y el sistema lo hizo funcionar rápidamente.

La renderización segmentada permitió que una aplicación multiproceso construyera la escena, seleccionara sus elementos primitivos y los renderizara en diferentes subprocesos (tomando prestado del proceso de selección de elementos primitivos de la aplicación Performer). 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 subproceso.

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

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

Véase también

Referencias

  1. ^ Revista PC, 20 de diciembre de 1994
  2. ^ "RenderMorphics y la historia de Reality Lab". Qube Software. Archivado desde el 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 desde el original el 5 de febrero de 2010. Consultado el 25 de enero de 2009 .
  4. ^ Thurrott, Paul (21 de julio de 1997). "Continúa la lucha entre Direct3D y OpenGL: id y Alex St. John contraatacan". Windows IT Pro. Archivado desde el original el 5 de febrero de 2010. Consultado 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 Intereses de ARB sobre OpenGL++". 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 desde el original el 22 de enero de 2009. Consultado el 25 de enero de 2009 .
  8. ^ Leech, Jon (9 y 10 de marzo de 1998). "ARB Meeting Notes". Salt Lake City, UT: OpenGL . Consultado el 25 de enero de 2009 .
  9. ^ Dana, Jenny (septiembre de 1998). "APIs of the Fahrenheit Initiative". Silicon Valley . SIGGRAPH. Archivado desde el original el 2007-08-07 . Consultado el 2009-01-25 .
  10. ^ Preguntas frecuentes sobre Fahrenheit, archivo de preguntas frecuentes de SGI de Wayback Machine
  11. ^ ab "¿Qué es/era Fahrenheit?". DirectX.com. Archivado desde el original el 21 de abril de 2008. Consultado el 25 de enero de 2009 .
  12. ^ "HP prepara motores gráficos Fahrenheit". Computergram International . 19 de octubre de 1999 . Consultado el 25 de enero de 2009 .