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
Fondo
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 del OpenGL Architecture Review Board (ARB), llevó 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 la versión 3.5 de Windows NT Workstation en 1994. [1]
El 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 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. [3] [4] [5]
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. En 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 asignó recursos al proyecto para proporcionar una implementación de muestra, parece que no estaban contentos con el progreso en general y se quejaron "Ha habido mucho trabajo, pero relativamente poca comunicación". [6] 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, [7] seguido de un anuncio en una reunión de ARB a principios de 1998 por SGI, [8] anunció que el trabajo en OpenGL ++ había sido abandonado y SGI se había asociado con Microsoft para producir un nuevo sistema con 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 , [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 se anunció oficialmente en SIGGRAPH 1998 para su lanzamiento a finales de 1999 o principios de 2000. [11]
Fahrenheit se convirtió en el foco principal de desarrollo en SGI. Sus estaciones de trabajo basadas en MIPS estaban perdiendo rápidamente el liderazgo en rendimiento que tenían a principios de la década de 1990, y la compañía estaba 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 migración, los kits de herramientas como Open Inventor y OpenGL Performer estaban pensados para ser superpuestos 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 . [10]
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. [11] 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 [12] y comenzó a planificar otros productos de Scene Graph, que se convirtieron en los últimos de una serie de proyectos de este tipo.
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. La compatibilidad con OpenGL acelerada 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 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 canalizada permitió que una aplicación multiproceso construyera la escena, seleccionara sus primitivas y la renderizara 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 incorporados 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
- ^ PC Magazine, 20 de diciembre de 1994
- ^ "Historia de RenderMorphics y Reality Lab" . Software Qube. Archivado desde el original el 23 de diciembre de 2008 . Consultado el 25 de enero de 2009 .
- ^ 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 .
- ^ Thurrott, Paul (21 de julio de 1997). "Direct3D vs OpenGL continúa: 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 .
- ^ Microsoft y gráficos 3D: un caso de estudio para suprimir la innovación y la competencia Archivado el 23 de octubre de 2007 en Wayback Machine
- ^ "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 .
- ^ "Silicon Graphics y Microsoft forman una alianza estratégica para definir el futuro de los gráficos" . MOUNTAIN VIEW, California: Microsoft. 1997-12-17. Archivado desde el original el 22 de enero de 2009 . Consultado el 25 de enero de 2009 .
- ^ Leech, Jon (9 al 10 de marzo de 1998). "Notas de la reunión ARB" . Salt Lake City, UT: OpenGL . Consultado el 25 de enero de 2009 .
- ^ Dana, Jenny (septiembre de 1998). "API de la Iniciativa Fahrenheit" . Silicon Valley . SIGGRAPH. Archivado desde el original el 7 de agosto de 2007 . Consultado el 25 de enero de 2009 .
- ^ a b Preguntas frecuentes de Fahrenheit , archivo de Wayback Machine de las preguntas frecuentes de SGI
- ^ a b "¿Qué es / era Fahrenheit?" . DirectX.com. Archivado desde el original el 21 de abril de 2008 . Consultado el 25 de enero de 2009 .
- ^ "HP prepara motores gráficos Fahrenheit" . Computergram International. 1999-10-19 . Consultado el 25 de enero de 2009 .