Fahrenheit (grafik-API)
Fahrenheit var ett försök att skapa ett enhetligt högnivå- API för 3D-datorgrafik för att förena Direct3D och OpenGL . Den designades i första hand av Microsoft och SGI och inkluderade även arbete från ett HP -MS gemensamt arbete.
Direct3D och OpenGL är lågnivå-API:er som främst koncentrerar sig på renderingsstegen i 3D- renderingspipelinen . Program som använder dessa API:er måste tillhandahålla en betydande mängd kod för att hantera resten av pipelinen. Fahrenheit hoppades kunna tillhandahålla ett enda API som skulle göra det mesta av detta arbete, och sedan anropa antingen Direct3D eller OpenGL för de sista stegen.
Mycket av det ursprungliga Fahrenheit-projektet övergavs, och Microsoft och SGI gav så småningom upp försöken att arbeta tillsammans. Till slut var det bara scengrafdelen av Fahrenheit-systemet, känt som XSG , som såg en release och avbröts kort därefter.
Historia
Bakgrund
var SGI:s OpenGL de facto standarden för 3D-datorgrafik. Före mitten av 90-talet hade olika plattformar använt olika skräddarsydda lösningar, men SGI:s makt på grafikmarknaden, i kombination med ansträngningarna från OpenGL Architecture Review Board (ARB), ledde till den snabba standardiseringen av OpenGL över majoriteten av den grafiska arbetsstationen marknadsföra. I mitten av 1990-talet licensierade Microsoft OpenGL för sitt operativsystem Windows NT som sitt primära 3D-system; Microsoft positionerade NT som ett system i arbetsstationsklass, och OpenGL krävdes för att vara en riktig konkurrent på detta område. Det första stödet släpptes i Windows NT Workstation version 3.5 1994.
Förvirrande saker var Microsofts köp av RenderMorphics i februari 1995 . Deras Reality Lab- produkt var ett 3D-bibliotek skrivet speciellt för speländamål, främst inriktat på "low end"-marknaden. Efter att ha döpt om det till Direct3D 3.0 släppte Microsoft det som det primära 3D API för Windows 95 och spelprogrammering. Detta utlöste en massiv debatt, både inom och utanför Microsoft, om fördelarna med de två API:erna och huruvida Direct3D borde främjas eller inte.
Under mitten av 90-talet hade SGI arbetat med en rad insatser för att tillhandahålla en högre nivå API ovanpå OpenGL för att göra programmering enklare. År 1997 hade detta utvecklats till deras OpenGL++- system, ett C++ API i behållet läge ovanpå OpenGL. De föreslog att en modifierad version skulle användas som ett enda API ovanpå antingen OpenGL eller ett nytt högpresterande lågnivå-API som Microsoft var känt för att arbeta med (ej baserat på Reality Lab). Detta skulle inte bara dölja implementeringsdetaljerna och göra OpenGL/DirectX-kriget överflödigt, utan samtidigt erbjuda avsevärt bättre högnivågränssnitt för en mer robust objektorienterad utvecklingsmiljö.
OpenGL++-insatsen drog ut på tiden i ARB fram till 1997. Även om SGI anslog resurser till projektet för att ge ett exempel på implementering, verkar det som om de var missnöjda med framstegen överlag och klagade "Det har varit mycket arbete, men relativt lite kommunikation." Speciellt Microsoft hade uttalat i otvetydiga ordalag att de inte skulle stödja insatsen, och SGI ansåg att deras stöd skulle vara avgörande för alla ansträngningar framåt.
Meddelande
Ett gemensamt pressmeddelande i december 1997, följt av ett tillkännagivande vid ett ARB-möte i början av 1998 av SGI, meddelade att arbetet med OpenGL++ hade övergetts och att SGI hade samarbetat med Microsoft för att producera ett nytt system med kodnamnet "Fahrenheit". SGI skulle tillhandahålla det primära "medelstora" API som används i de flesta applikationer, Fahrenheit Scene Graph , samt en modifierad version för att hantera mycket stora modeller från CAD -applikationer, Fahrenheit Large Model . Microsoft skulle tillhandahålla en ny renderingsmotor på låg nivå för Windows känd som Fahrenheit Low Level , i huvudsak en ersättning för den Reality Lab-baserade versionen av Direct3D. Projektet tillkännagavs officiellt på SIGGRAPH 1998 för release i slutet av 1999 eller början av 2000.
Fahrenheit blev det primära fokus för utveckling på SGI. Deras MIPS -baserade arbetsstationer tappade snabbt det prestandaförsprång de hade i början av 1990-talet, och företaget var i allvarliga problem då den genomsnittliga PC:n sakta men säkert inträngde den avancerade grafikmarknaden. SGI såg Fahrenheit som en exitstrategi; när de väl är färdiga skulle de kunna gå över till en PC-baserad serie samtidigt som de erbjuder de bästa utvecklingsverktygen för ett nu universellt API. Även om inget porteringsarbete började, var verktygssatser som Open Inventor och OpenGL Performer avsedda att i framtiden läggas i lager på Fahrenheit, vilket innebär att de kunde leverera ett enda fullt fungerande utvecklingssystem för Fahrenheit när det levererades, vilket stödjer både deras befintliga kunder och nya. .
Annullering
1999 stod det klart att Microsoft inte hade för avsikt att leverera Low Level; även om officiellt arbetade på det, ägnades nästan inga resurser åt att faktiskt producera kod. Samtidigt höll Microsoft på att investera massivt i DirectX 7.0 (liknar 3.0 till stor del endast i namnet). Utan Low Level kunde Fahrenheit inte levereras på Windows, och projektet stannade. Så småningom övergav SGI arbetet med Fahrenheit och började planera andra Scene Graph-produkter som blev det sista i en serie av sådana projekt.
År 2000 fanns DirectX 7.0 på marknaden och visade sig vara ganska populärt. DirectX hade blivit det primära API:t under uppkomsten av 3D-spel i slutet av 1990-talet. Microsoft släppte visserligen Fahrenheit Scene Graph som XSG samma år, men gjorde det med ett meddelande om att det inte skulle stödjas. Inga nya versioner av XSG släpptes någonsin, och alla sidor relaterade till antingen Fahrenheit eller XSG på både Microsoft och SGI webbsidor har sedan dess försvunnit. Hårdvaruaccelererat OpenGL-stöd togs bort från de inkluderade videodrivrutinerna i Windows XP , även om de flesta grafikkortstillverkare levererar sina egna implementeringar.
Beskrivning
Jämfört med Open Inventor eller Iris Performer inkluderade designen av XSG några nya idéer. Kompositionsprimitiven och traverseringsmetoderna gjorde det möjligt för applikationer att konstruera scener på ett sätt som bäst lämpade sig för strukturen av den data som visualiseras, men sedan att använda en scengrafoptimerare för att omstrukturera scenen för mer effektiv rendering utan att ändra scenens utseende. Utvecklaren gjorde helt enkelt det som verkade naturligt, och systemet fick det att fungera snabbt.
Pipelined rendering gjorde det möjligt för en flertrådad applikation att konstruera scenen, ta bort dess primitiver och rendera den i olika trådar (lånade från Performer app-cull-draw pipeline). Representationen av primitiva scendata optimerades för att minimera mängden lagrad data för att undvika att fullständigt duplicera den på en tråd-för-tråd-basis.
En av de unika egenskaperna hos XSG var möjligheten att ersätta de flesta av de inbyggda metoderna för att gå i grafen med dina egna versioner. Utvecklare kan skriva nya funktioner för att snabbt gå igenom sina kända metoder för att lagra data inuti XSG, och sedan koppla in dem i befintliga renderingsvägar.
David Blythe, den primära arkitekten för Fahrenheit på SGI, arbetade på Microsoft på DirectX fram till 2010. Han var också Chief Graphics Software Architect på Intel.