Fahrenheit (API de gráficos) - Fahrenheit (graphics API)

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

Direct3D y OpenGL son API de bajo nivel que se concentran principalmente en los pasos de renderizado de la canalización de renderizado 3D . Los programas que utilizan estas API deben proporcionar una cantidad considerable de código para manejar el resto de la canalización. Fahrenheit esperaba proporcionar una única API que hiciera la mayor parte de este trabajo y luego llamar a Direct3D u OpenGL para los últimos pasos.

Gran parte del proyecto Fahrenheit original fue abandonado y Microsoft y SGI finalmente abandonaron los intentos de trabajar juntos. Al final, solo la parte del gráfico de escena del sistema Fahrenheit, conocido como XSG , vio un lanzamiento y se suspendió poco después.

Historia

Antecedentes

En la década de 1990, OpenGL de SGI era el estándar de facto para gráficos por 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 Junta de Revisión de Arquitectura OpenGL (ARB), condujo a la rápida estandarización de OpenGL en la mayoría de las estaciones de trabajo gráficas. mercado. A mediados de la década de 1990, con licencia de Microsoft OpenGL para su Windows NT sistema operativo como su sistema 3D primaria; Microsoft estaba posicionando NT como un sistema de clase de estación de trabajo, y se requería OpenGL para ser un competidor real en este espacio. El soporte inicial se lanzó en Windows NT Workstation versión 3.5 en 1994.

El asunto confuso fue la compra de RenderMorphics de Microsoft en febrero de 1995 . 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 lo lanzó como la API 3D principal para Windows 95 y programación de juegos. Esto desató un debate masivo, tanto dentro como fuera de Microsoft, sobre los méritos de las dos API y si se debería promover o no Direct3D.

A mediados de los 90, SGI había estado trabajando en una serie de esfuerzos para proporcionar una API de nivel superior además de OpenGL para facilitar la programación. Para 1997, esto se había convertido en su sistema OpenGL ++ , una API de C ++ en modo retenido sobre OpenGL. Propusieron que se usara una versión modificada como una única API además de OpenGL o una nueva API de alto rendimiento y bajo nivel en la que se sabía que Microsoft estaba trabajando (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 robusto .

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

Anuncio

Un comunicado de prensa conjunto en diciembre de 1997, seguido de un anuncio en una reunión de ARB a principios de 1998 por SGI, anunció que el trabajo en OpenGL ++ había sido abandonado y SGI se había asociado con Microsoft para producir un nuevo sistema con el nombre en código "Fahrenheit". SGI debía proporcionar la API principal de "tamaño medio" utilizada en la mayoría de las aplicaciones, Fahrenheit Scene Graph , 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 de la versión de Direct3D basada en Reality Lab. El proyecto se anunció oficialmente en SIGGRAPH 1998 para su lanzamiento a finales de 1999 o principios de 2000.

Fahrenheit se convirtió en el foco principal de desarrollo en SGI. Sus estaciones de trabajo basadas en MIPS estaban perdiendo rápidamente el liderazgo de rendimiento que tenían a principios de la década de 1990, y la empresa se encontraba en serios problemas ya que la PC promedio invadía lenta pero seguramente el mercado de gráficos de alta gama. La SGI vio a Fahrenheit como una estrategia de salida; una vez completados, podrían pasar a una línea 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, los kits de herramientas como Open Inventor y OpenGL Performer estaban destinados en el futuro a superponerse en Fahrenheit, lo que significa que podrían ofrecer un único sistema de desarrollo completamente funcional para Fahrenheit cuando se enviara, apoyando tanto a sus clientes existentes como a los nuevos. .

Cancelación

Para 1999 estaba claro que Microsoft no tenía la intención de ofrecer Low Level; aunque estaba trabajando oficialmente en él, casi no se dedicaron recursos a producir código. Al mismo tiempo, Microsoft estaba en el proceso de invertir masivamente en DirectX 7.0 (similar a 3.0 en gran parte solo en el nombre). Sin Low Level, Fahrenheit no se podría entregar en Windows y el proyecto se estancó. Finalmente, SGI abandonó el trabajo en Fahrenheit y comenzó a planificar otros productos de Scene Graph, que se convirtieron en los últimos de una serie de proyectos similares.

En 2000, DirectX 7.0 estaba en el mercado y estaba demostrando ser bastante popular. DirectX se había convertido en la API principal durante el auge de los juegos en 3D a fines de la década de 1990. Microsoft lanzó Fahrenheit Scene Graph como XSG el 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. El soporte de OpenGL acelerado por hardware se eliminó de los controladores de video incluidos en Windows XP , aunque la mayoría de los fabricantes de tarjetas de video ofrecen sus propias implementaciones.

Descripción

En comparación con Open Inventor o Iris Performer , el diseño del XSG incluía algunas ideas novedosas. Las primitivas de composición y los métodos transversales permitieron a las aplicaciones construir escenas de la manera que mejor se adaptara a la estructura de los datos que se estaban visualizando, pero luego aplicar un optimizador de gráficos de escenas 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 canalizada permitió a una aplicación multiproceso construir la escena, seleccionar sus primitivas y renderizarla en diferentes hilos (tomando prestado 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 a fin de evitar duplicarlos por completo hilo por hilo.

Una de las características únicas de XSG fue la capacidad de reemplazar la mayoría de los métodos integrados para recorrer el gráfico con sus propias versiones. Los desarrolladores podrían escribir nuevas funciones para recorrer rápidamente sus métodos conocidos de almacenamiento de datos dentro de XSG y luego encadenarlos en rutas de renderizació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.

Ver también

Referencias