Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 84 reacties
Bron: Daily Tech

Een jaar geleden werd bekend dat Microsoft de ondersteuning voor OpenGL in Windows Vista sterk zou willen inperken, door slechts versie 1.4 van OpenGL te ondersteunen en door support voor OpenGL via Direct3D te laten lopen. Die emulatiestap heeft een grote negatieve impact op de prestaties van OpenGL-applicaties. Afgelopen week heeft de Khronos Group, de ontwikkelaar van de OpenGL-specificatie, bekendgemaakt dat OpenGL native ondersteund zal worden in Windows Vista, dat wil zeggen zonder gebruik te maken van de emulatie via Direct3D. Door gebruik te maken van een installable client driver (ICD) zal het zelfs mogelijk zijn om de geaccelereerde versie van Aero Glass te gebruiken. Volgens Khronos zou de performance van Aero Glass via OpenGL zelfs merkbaar beter moeten zijn dan via Direct3D. De ICD's zullen niet door Microsoft worden meegeleverd op de installatiemedia van Windows Vista, maar zullen bij de leverancier van de videokaart gedownload moeten worden. Zowel nVidia als ATi hebben aangegeven bezig te zijn met de ontwikkeling van een ICD voor Windows Vista. Als de ICD niet aanwezig is, zal er wel gebruikgemaakt worden van de emulatielaag om OpenGL-calls om te zetten naar Direct3D.

Windows Vista - Desktop in Glass
Moderatie-faq Wijzig weergave

Reacties (84)

Kan iemand mij uitleggen wat de verschillen zijn tussen OpenGL en Direct3D?
Het verschil zit hem vooral in de 'afkomst'
OpenGL was oorspronkelijk door SGI ontwikkeld voor hun grafische workstations.
Oorspronkelijk was OpenGL puur op software-rendering gericht.
Later ontwikkelde SGI 3d-acceleratie en werd OpenGL daarop geimplementeerd.
Toen andere systemen ook 3d-acceleratie kregen, is de OpenGL-API ook naar die systemen geport.

Zo is het dus ook op Windows beland. Het probleem hierbij was echter dat Windows op veel simpelere hardware draaide dan de workstations van SGI, en OpenGL was dus enorme overkill. De 3d-hardware kon de meeste functies niet accelereren, en de drivers waren ook nogal log. Was dus niet zo geschikt voor spelletjes op een standaard PC.

In den beginne was de VooDoo de enige 3d-kaart, en die had een eigen 3d-API, Glide, die wel geoptimaliseerd was voor PCs en spelletjes.

Toen er echter andere 3d-kaarten op de markt kwamen, hadden die ook weer hun eigen APIs, en moesten ontwikkelaars daar dus aparte code voor schrijven.
Daar moest een oplossing voor komen.

Enerzijds kwam daar dus MiniGL... een lichtgewicht-versie van OpenGL, waar de functionaliteit heel beperkt was, en veel beter aansloot bij de PC-hardware (drivers waren ook veel makkelijker te schrijven dan OpenGL-drivers, die enorm complex zijn).

Anderzijds kwam Microsoft met Direct3D, een compleet nieuwe API die heel lowlevel commando's naar de hardware kon sturen (ironisch genoeg op advies van John Carmack, die uiteindelijk OpenGL verkoos omdat ie Direct3D te lowlevel vond, waar OpenGL bijzonder highlevel is).

Het voordeel van Direct3D was dat het heel nauw aansloot op de functionaliteit van de hardware... Een programmeur kon dus behoorlijk effciente code schrijven, en goed gebruik maken van alle features... mits hij een goede kennis van de hardware had. Nadeel daarvan was dat bij iedere generatie de hardware drastisch veranderde, en er een nieuwe generatie van Direct3D bij kwam, die soms een nieuwe API moest krijgen, om beter bij de nieuwe structuur van de hardware te passen (zoals de introductie van T&L en shaders).
Voordeel daarvan was dan weer wel dat je weer efficiente toegang had tot de nieuwste features.

Aan de andere kant werden de 3d-accelerators en PCs steeds krachtiger, dus na niet al te lange tijd was het ook mogelijk om 'gewone' OpenGL te gebruiken, en verdween MiniGL van het toneel.
Het probleem van de complexe drivers bleef echter, vandaar dat de implementatie van de meeste OpenGL drivers erg slecht was. nVidia was de eerste die hun OpenGL-driver goed op orde had, met weinig bugs en goede efficientie. Ze hadden hier lange tijd een voorsprong op de concurrentie.
Nadeel daarvan was dan weer wel dat je als programmeur van tevoren al wist dat je code alleen op nVidia-kaarten echt goed zou werken, en op alle andere kaarten een stuk minder. Een probleem dat Direct3D niet had, omdat die drivers makkelijker te ontwikkelen waren, en iedere fabrikant al snel een redelijk efficiente driver had, met weinig bugs.

Door de hevige concurrentie bleven er echter al gauw nog maar twee spelers over, nVidia en ATi, dus het probleem van slechte OpenGL drivers was daarmee bijna opgelost. ATi moest alleen hun achterstand nog inlopen, de rest deed er niet meer toe.

In de loop der jaren zijn Direct3D en OpenGL dus naar elkaar toe gegroeid, qua features, efficientie en compatibiliteit, door allerlei omstandigheden.
Het grootste verschil is nog steeds dat Direct3D nog steeds om de zoveel tijd compleet aangepast wordt op de nieuwste 3d-hardware, terwijl OpenGL in de basis altijd dezelfde API blijft (hoewel men voor OpenGL 2.0 een nieuwe API wilde ontwikkelen, maar die is er uiteindelijk niet gekomen). OpenGL maakt daarentegen gebruik van een systeem van extensies.

Het voordeel daarvan is dat iedere fabrikant zelf extensies kan toevoegen, zodat nieuwe features vanuit OpenGL bijna direct toegankelijk zijn.
Het nadeel daarvan is dat die extensies alleen voor die fabrikant werken.
Er is dus een commissie (de ARB) in het leven geroepen die extensies standaardiseert. Nieuwe versies van OpenGL houden dan ook met name in dat er een nieuwe set extensies is die standaard aanwezig is in die versie.
Het nadeel daarvan is dat die commissie altijd achter de feiten aanloopt. Eerst is er de wildgroei van nieuwe extensies van fabrikanten, en daarna worden die samengevoegd tot een nieuwe ARB-extensie voor iedereen.

Direct3D werkt anders. Er is voor Direct3D ook een commissie, die bestaat uit Microsoft, en de grote hardware-fabrikanten. Deze commissie gaat om de tafel zitten VOORDAT de nieuwe hardware ontwikkeld is, en gaat proberen om de neuzen van alle fabrikanten dezelfde kant op te zetten, om daarna de API te bepalen voor die generatie videokaarten, waarna de fabrikanten ieder hun eigen implementatie daarvan mag maken.
Direct3D stuurt dus als het ware de ontwikkeling van de hardware, terwijl OpenGL die ontwikkeling alleen maar volgt. Het grappige is dan ook dat bv het shadermodel van OpenGL bijna identiek is aan dat van Direct3D.

Al met al maakt het dus steeds minder uit welke API je gebruikt qua features en efficientie. Ze gaan steeds meer op elkaar lijken.
Grootste verschil voor programmeurs is dat je bij OpenGL tegenwoordig voornamelijk via extensies moet werken, de basis-API is eigenlijk compleet achterhaald. Bijna alles gaat met shaders, vertexbuffers en rendertargets, en dat zijn allemaal extensies.
Vandaar dat programmeren in Direct3D mij een iets 'nettere' indruk geeft (mede doordat het ook netjes object-georienteerd is, terwijl OpenGL nog procedureel is).

Verder is een groot verschil dus dat OpenGL nog steeds door vele systemen ondersteund wordt, terwijl Direct3D maar op een beperkt aantal systemen werkt (Windows, XBox, Mac OS, en via wine op linux en soortgenoten).

Voor de snelheid maakt het doorgaans weinig uit. Het is immers de hardware die de acceleratie doet, niet de API.
Als de code dus gewoon goed geschreven is, en de driver efficient is, zal in de meeste gevallen de hardware het verschil maken (er zijn natuurlijk altijd uitzonderingen, omdat Direct3D nog steeds alleen lowlevel is, waar OpenGL ook nog de highlevel functionaliteit heeft).
Al met al maakt het dus steeds minder uit welke API je gebruikt qua features en efficientie. Ze gaan steeds meer op elkaar lijken.
grootste probleem is de de single-platform beschikbaarheid van direct3d, je hebt er niets aan als je cross platform wilt ontiwikkelen en ziedaar ook meteen de reden waarom microsoft het geintegreerd heeft in windows ;(

Door direct3d loopt de compatibiliteit van de meeste games jaren achter en gezien de narrow minded gamedevelopers zal dat nog wel even zo blijven

iig goed nieuws voor opengl en keuzevrijheid dit ;)
grootste probleem is de de single-platform beschikbaarheid van direct3d, je hebt er niets aan als je cross platform wilt ontiwikkelen en ziedaar ook meteen de reden waarom microsoft het geintegreerd heeft in windows
Nee, de reden waarom Microsoft Direct3D had ontwikkeld, was omdat er destijds geen geschikte hardware-onafhankelijke 3d-API bestond, gericht op PC-hardware, zoals in mijn post staat. OpenGL was immers te zwaar.
Door direct3d loopt de compatibiliteit van de meeste games jaren achter en gezien de narrow minded gamedevelopers zal dat nog wel even zo blijven
Direct3D heeft juist de compatibiliteit van games enorm verhoogd. Direct3D-drivers waren redelijk simpel te schrijven, en afgestemd op de hardware, dus Direct3D-software werkte eigenlijk bijna vlekkeloos op de meeste hardware. Dat geldt voor heel DirectX trouwens.

Maar als je platform-onafhankelijkheid bedoelt... dat is sowieso lastig te combineren met zware interactieve realtime applicaties als games. Games werken altijd beter als ze specifiek voor een bepaald platform ontwikkeld zijn, en geen lowest-common-denominator gebeuren.
Beide zijn API's om 3D graphics weer te geven op je computer, door gebruik te maken van 3D acceleratie hardware.

Direct3D is door Microsoft ontwikkeld en werkt om die reden alleen op Windows besturingssystemen. OpenGL is platformonafhankelijk want het wordt door een onafhankelijke instelling beheerd.

3D games en applicaties gebruiken bijna altijd 1 van de 2, of beide voor het weergeven van de graphics.

Het voordeel van ontwikkelen met OpenGL is dat je dus sneller je applicatie aan de praat kan krijgen op Mac OS X, Linux en andere platformen.

Het voordeel van Direct3D is dat het op dit moment vooroploopt qua features, en dat support door Microsoft wordt geleverd.

edit: te laat ;)
Ze hebben beiden hetzelfde doel, hardware accelleratie van 3D maar met een andere api, de ene heeft wat voordelen over de andere algemeen wordt de dx10 api als de beste beschouwd en is ogl (technologisch) een beetje achterop aan het geraken maar ogl is nog steeds de enige api die multi-platform (eigenlijk enkel windows en linux) is.
OpenGL enkel Windows en Linux :?

OpenGL komt juist bij SGI vandaan, Irix support was er eerder dan Windows support. Bovendien ondersteunen Solaris en de BSDs OpenGL - waaronder natuurlijk Apple OS X

Plus natuurlijk de vreemde eenden als BeOS enzo. Eigenlijk is het simpel - als een OS ueberhaupt grafische acceleratie ondersteunt, is OpenGL support aanwezig :o
nog veel mooier, OpenGL is te programeren in Java en heeft dus eigenlijk eindeloos veel platformen waar het op toepasbaar is.

Verder is het voor games weldegelijk een beetje achterop aan het raken, maar met de Khronos Group aan het roer kunnen we hopen op een meer gestructureerde ontwikkeling.
Er moet eerst een implementatie zijn voor je ogl over java kunt draaien. Enkel linux en windows en macos (had ik vergeten) hebben een deftige implementatie van ogl de rest telt in mijn ogen niet mee.
Dat klopt theoretisch wel, afgezien van kleine implementatie verschillen etc. vraag ik me toch af waarom je OpenGL vanuit Java zou willen aansturen? OpenGL is een (grafische) accelerator terwijl Java een log, traag, resource-consumerend monster is. Of de acceleratie dan nog tot zijn recht komt?
Door gebruik te maken van een installable client driver (ICD) zal het zelfs mogelijk zijn om de geaccelereerde versie van Aero Glass te gebruiken. Volgens Khronos zou de performance van Aero Glass via OpenGL zelfs merkbaar beter moeten zijn dan via Direct3D.
Technologisch achter? OpenGL wordt in veel meer soorten toepassingen gebruikt dan enkel Games, verbeteringen worden constant toegevoegd, het is niet omdat ze niet zo snel met extra nummers smijten dat ze technologisch achterliggen. Hun performance is alleszins niet slechter dan die van Direct3D.
Er zijn verbeteringen maar er is al in tijden geen revisie van de api geweest. Bovendien is de ARB te traag en worden nieuwe functies niet snel genoeg gestandaardiseerd hierdoor moet er veelal teruggevallen worden op vendor specifieke extensies en verschillende renderpaden per vendor, niet bepaalt de ideale situatie.
D3D10 is een herziene api die erg doorzichtig is en de laatste voordelen van ogl over dx overwint. (met uitzondering van de multi-platform mogelijkheden met ogl)

De ondersteuning van ogl door ati en nvidia is aan het slabakken nudat 3dlabs verdwenen is lijkt de toekomst voor ogl somber. (denk maar aan de fbo implementaties, er is geen enkele driver die dat volledig ondersteunt).
Tja, hetzelfde als het verschil tussen een Opel en een Ford zou ik zeggen. Het zijn 2 verschillende API's met hetzelfde doel, maar Direct3d (onderdeel van DirectX) is Windows-only en OpenGL werkt op heel veel platforms.
Verder zitten de verschillen onder water voornamelijk en houden ze er allebei een andere stijl op na, maar dat merk je pas als je ermee gaat werken.
Volgens Khronos zou de performance van Aero Glass via OpenGL zelfs merkbaar beter moeten zijn dan via Direct3D.
Natuurlijk PR-geblaat maar als dit waar is mag microsoft zich wel eens achter de oren krabben. :P

Verder is het mooi dat openGL gewoon zonder emulatie komt. De preformance van de D3 engine (oa gebruikt in Q4, prey) zou anders nog langzamer gaan lopen. en die engine is al niet al te snel. En de open GL ondersteuning van Vista zou ontwikkelaar ertoe kunnen bewegen in open GL te blijven ontwikkelen. Zoals epic met hun unreal engine die zowel D3D als openGL is waardoor er ook Linux native versies makkelijk mogelijk zijn!
Zoals epic met hun unreal engine die zowel D3D als openGL is waardoor er ook Linux native versies makkelijk mogelijk zijn!
Helaas is de opengl performance van hun laatste engines om te huilen, geeft helaas goed weer dat hun aandacht toch is verschoven, ws vanwege de dreiging van ms om opengl via het al eerder beproefde recept kreupel te maken in windows
Leuk om te weten is dat ut2004 op een 32 mb fx5200 go niet met d3d te spelen is maar wel met opengl :)
Eigenlijk wel weer Microsoft humor dit bericht. Windows Vista blijft verrassen. 2 jaar geleden werd Windows Vista gebouwd op 3 stokpaardjes en zouden OpenGL en Java verdwijnen uit Windows. Nu zijn de 3 stokpaardjes eruit gehaald en blijven OpenGL en Java gewoon bruikbaar.

Gelukkig is afgelopen week eindelijk de OpenGL 2.1 specificatie gepost, deze biedt iig een aantal geode verbeteringen. OpenGL is nu ondergebracht bij een nieuwe organisatie, waarbij Apple en Google de grootste bedrijven zijn. Vooral Apple heeft veel baat bij OpenGL en Google ook steeds meer, dus ik hoop dat een OpenGL 3.0 specificatie niet al te lang meer op zich laat wachten. Deze specificatie zou dan qua features gelijk moeten zijn aan DirectX, maar zou sneller moeten zijn, want dat ontbreekt momenteel nog een beetje aan OpenGL. Dat OpenGL sneller is dan DirectX in Aero Glas verbaasd me dus een beetje.
Dus nu kunnen we alle toeters en bellen aanzetten in vista, zelfs zonder DirectX 10 videokaart?
Dat kan sowieso want Vista werk ook probleemloos met volledige features in DirectX 9
Zou je ook alle toeters en bellen UIT kunnen zetten en zo resources besparen?
Zou je ook alle toeters en bellen UIT kunnen zetten en zo resources besparen? Eng he? vooruitgang.

En Vista komt in 2007 uit, als je deze feature's uit moet zetten om te kunnen werken met je PC, moet je toch serieus nadenken over een nieuwe pc/upgrade.
waarom zou je resources weggooien aan eyecandy die je eigenlijk niet nodig hebt? Voor mij hoeft al die Aero/Glass eyecandy meuk niet, dus als ik het uit kan zetten kunnen die resources ergens anders aan besteed worden.
waarom zou je resources weggooien aan eyecandy die je eigenlijk niet nodig hebt? Voor mij hoeft al die Aero/Glass eyecandy meuk niet, dus als ik het uit kan zetten kunnen die resources ergens anders aan besteed worden.
Er zitten misschien ook wel handige dingetjes in die de productiviteit kunnen verhogen omdat bepaalde handelingen makkelijker gaan.
Nieuwe manieren om tussen applicaties te switchen, of applicaties transparant over elkaar heen leggen, zodat switchen niet nodig is... Ik noem maar wat.
In Vista wordt de GUI gerenderd door de grafische kaart, dus je werk zal er niet onder lijden.

Maar je kan het nog steeds uitzetten.
Verwacht daar alsjeblieft niet te veel van; ik doe het onder gnome wel eens (een terminal onder m'n transparante browser bijvoorbeeld) maar erg duidelijker word het allemaal nog steeds niet.
Als je toch zo over resources loop-t te meuken kun je beter even de source code van een of andere free dos versie pakken en die voor AMD64 compilen gooi je helemaal geen recources weg aan een GUI. De spellen moet je dan maar even porten met hun eigen low level drivers etc.. net zoals vroegah. Weet je zeker dat je het onderste uit de kan haalt....
yep, je kunt zelfs een 'kale' interface gebruiken, meest vergelijkbaar met w2k / w98 interface.
Die gebruik ik ook al een hele tijd in XP, werkt perfect.
Heb je toch alle nieuwe beveiliging en andere features maar geen of minder performance verlies.
Nou, misschien wel als je een OpenGL 2.0 geaccelereerde kaart hebt...
En dat hoeft volgens mij nog geen eens want de OpenGL ondersteuning gaat maar tot versie 1.4,
... door slechts versie 1.4 van OpenGL te ondersteunen ...
DirectX en OpenGL zijn twee aparte dingen.

DirectX wordt tot op dit ogenblik inderdaad gebruikt voor alle 'toeters en bellen' van Vista n (veel belangrijker) voor 3D-games.
Wat dus dit alles betreft heeft de native ondersteuning voor OpenGL geen invloed.

Wel van belang kan zijn dat hierdoor 3D-toepassingen zoals bijvoorbeeld Maya en 3D Studio Max beter zullen werken onder Vista zonder dat er extra hardware nodig is.
Alle tot nu geproduceerde 3d-kaarten (zowel van NVidia als ATI) ondersteunen opengl... tot op een bepaalde hoogte.
Maar specifieke OpenGL-toepassingen hadden tot nu toe te kampen met gebrekkige (lees: trage) driver-ondersteuning.

Nu is natuurlijk de vraag in hoeverre deze native ondersteuning nodig is voor de consument...
Of willen ze misschien klanten van Apple proberen af te snoepen? Want hoe je het ook draait of keert, Apple's zijn nog steeds populair bij foto-bewerkers en 3d-ontwerpers, net door hun deftige OpenGL-ondersteuning die zij bieden in hun OS.
Volgens mij sla je de plank enigzins mis, er zijn nog steeds OpenGL games als UT2k4, Doom3+Quake4 etc. De trage driverondersteuning is volgens mij ook niet waar, Doom en Quake draaien niet enorm veel lanzamer dan wat je van die graphics kan verwachten. Volgens mij kunnen 3d toepassingen zowiezo niet goed gebruik maken van een standaard 3d kaart, daar heb je de FireGL en Quadro serie voor.
Wat ik mij nu al een tijd afvraag is dat het eigenlijk zonde is van de overhead van Windows in het algemeen icm met games. Als ik bijvoorbeeld een game speel dan loopt op de achtergrond van alles mee (virusscanner, services etc etc) en deelt een game voor een gedeelte de resources met het OS. Het lijkt me ten goede van een game (qua stabiliteit en FPS) te komen dat alles wat niet met het spel te maken heeft uitgeschakeld or afgesloten wordt. Uiteraard kan ik begrijpen dat het handig is om na het spelen van een spelletje je meteen terug kan naar het OS.

Ik kan mij de goede oude Amiga tijd nog herinneren, waarbij een spel zo goed als vrij spel had en icm dedicated hardware (en daarmee een snellere API richting de hw onderdelen). Voor die tijd een machtige machine !

Waarom komen er geen games meer uit die op dezelfde manier in elkaar zitten. Booten of starten en je machine is dedicated bezig met alle resources voor het spel.
Daarvoor heb je je PS3, nintendo wii of *gruwel* xbox 360.
gruwel* xbox 350
Verklaar je nader?
Daarom draai ik nog altijd windows 2000 prof waarbij ik nog maar enkele services heb draaien. Als de pc is opgestart en je hebt het beetje goed gedaan heb windows nog geen 50 mb in gebruik en draaien er maar een handje vol processes. De xbox is toch ook gewoon een uitgeklede versie van w2k prof. Zelf kan je ook al een heel eind komen hoor, gewoon multi boot gebruiken.
Daarom draai ik nog altijd windows 2000 prof
Dat is als zeggen: "Ik heb er een hekel aan dat ik een beetje harder moet trappen op de fiets als ik mijn licht aan zet, daarom ga ik alleen fietsen op hele oude fietsen, zonder licht"
De xbox is toch ook gewoon een uitgeklede versie van w2k prof.
Ja en nee. Het maakt gebruik van technologie uit Windows 2000 en DirectX 8, maar het is dermate verschillend van de PC-versie, dat je het niet kunt vergelijken.
Je kunt in ieder geval niet een PC zo ver uitkleden dat het vergelijkbaar met een XBox wordt.
Zowel de hardware als de software zijn daarvoor te verschillend.
XBox loopt bv compleet in kernel-mode, heeft geen usermode. Je kunt ook maar 1 proces laden.
En verder is de hardware natuurlijk compleet anders doordat systeemgeheugen en videogeheugen gedeeld zijn, en DirectX specifieke aanpassingen heeft ondergaan om beter op deze hardware aan te sluiten.

Een XBox lijkt dus op een PC, maar is het niet... maar dat zou het verschil in prestatieniveau wel duidelijk moeten maken.
Als je al die backgroundprocessen zou weghalen zou dat niet eens zoveel uitmaken op een game, hooguit 1 of 2% in de performance. Een game trekt als het goed is. Als je heftige games draait worden alle andere dingen uit het geheugen gehaald en in het virtueel geheugen gestopt. Alleen de nodige systeem recources zoals de kernel draaien dan nog in het geheugen, verder niets.
Je bent een tweaker of niet ;-) alle beetjes helpen, zeker een paar jaar terug toen je nog niet zoveel geheugen had. Nu maakt het idd steeds minder uit. Ik draai al sinds quake3 op deze configuratie en het voordeel is wel dat ik deze windows alleen gebruik voor games waardoor die dus ool lekker fris blijft. Ook naar 2 jaar gebruik ....
Is jou definitie van tweaker dan: rommelen aan zaken terwijl het toch geen impact heeft?

Ik zou denken dat een echte tweaker weet welke zaken wel en niet van belang zijn, en zich dan op de belangrijke zaken focust.
Doe het dan gelijk goed en neem XP Embedded :D

Daarmee merk je de verschillen wel degelijk t.o.v. een volledig geconfigureerde workstation..
Waarom komen er geen games meer uit die op dezelfde manier in elkaar zitten. Booten of starten en je machine is dedicated bezig met alle resources voor het spel.
Omdat er een enorme wildgroei aan hardware is in de PC-wereld.
Alle Amiga's waren gelijk, en dus kon je makkelijk direct de hardware aanspreken. Zo ook bij de meeste andere home- en spelcomputers.

Bij PCs bestaan er honderden chipsets, geluidskaarten, videokaarten etc.
Het is gewoon een onmogelijke taak om een spel te maken dat op veel computers werkt, zonder daarvoor een hardware-abstractielaag te hebben.
Windows levert die hardware-abstractielaag via DirectX, waardoor de programmeur geen rekening meer hoeft te houden met de hardware, behalve dan een aantal fundamentele dingen in DirectX (bv welke versie shadermodel de hardware ondersteunt).
De programmeur moet dan alsnog meer werk doen dan bij een Amiga oid, omdat hij nog steeds moet zorgen dat een spel op meerdere generaties hardware kan werken (verschillende shadermodellen, geluid in stereo, surround etc), maar het is dan al veel makkelijker te behappen dan wanneer alle hardware direct aangesproken moet worden.

Afgezien daarvan is de overhead van DirectX en Windows heel klein, wanneer het goed gebruikt wordt, en bijna verwaarloosbaar op een modern systeem. En door de grote populariteit van DirectX wordt de hardware ook specifiek ontworpen om goed op DirectX aan te sluiten.
Ik denk dus dat er sowieso niet veel te winnen valt door Windows te omzeilen.
Khronos zou de performance van Aero Glass via OpenGL zelfs merkbaar beter moeten zijn dan via Direct3D.
Grappig dat Aero Glas sneller is met OpenGL dan haar eigen huis DirectX. Zal Bill vast niet blij mee zijn, is geen goede reclame voor DirectX. :Y)
Grappig dat de Khronos Group zegt dat Aero Glas sneller is met OpenGL dan haar eigen huis DirectX. Zal Bill vast niet blij mee zijn wanneer dat zo zou zijn, is geen goede reclame voor DirectX.


Het had mij meer verbaasd wanneer de ontwikkelaar van OpenGL specs had verteld dat directX sneller is
vooral door Apple is 3D desktop rendering sneller in OpenGL.
en ja Aqua is gerenderd in een 3D ruimte.
Ik zeg ook niet dat het niet waar is. Maar het gaat mij wat ver om het zomaar voor waar aan te nemen.

Wanneer Bill Gates zegt: "Windows is goed, Linux zuigt", denk jij dat dan ineens iedereen denkt dat windows beter is dan linux? Tuurlijk niet, Bill Gates is nou niet echt onafhankelijk. Net als deze van de Khronos Group, ik wacht liever eerst onafhankelijke vergelijkingen af voor ik conclusies trek.
@furby-killer: goedheid is niet meetbaar, snelheid wel. Eerst zien dan geloven maar als het waar is :P is het wel iets om duimen en vingers bij af te lekken.
Noem eens een MS versie of implementatie van iets welke sneller of beter werkt dan die van andere ontwikkelaars ?
C#/.NET is sneller dan Java.
Ha! draai maar eens een java app op een OS/400 machine... (8>
tja, maar beide zijn nog steeds rete traag...
Excel is sneller dan OpenOffice spreadsheet.
Het lijkt me vooralsnog onwaarschijnlijk dat aero op opengl kan draaien. Het is simpelweg een kwestie van calls IN de code van aero: die gebruiken DX10. En omdat de api's van opengl en dx10 niet compatible zijn, moet men OF een nieuwe shell render layer maken met alle calls naar ogl api methods ipv dx10 methods, OF men moet de dx10 methods gaan emuleren en omzetten naar ogl calls (maar dat kan wel eens erg lastig worden).

Of ik mis iets belangrijks, maar als ik het zo bekijk wordt het lastig voor opengl.
Volgens mij vereist Aero geen DX10: dit is een misverstand. Het volgende is volgens mij het geval:
1. DX10 werkt alleen onder Vista (niet onder XP)
2. Aero Glass maakt gebruik van DX9.

Vaak wordt ten onrechte gedacht dat Aero DX10 zou vereisen.
Voor de Aero Glass-interface voldoet niets minder dan een actuele kaart waarvoor Windows Display Driver Model bestaan.(WDDM-drivers). quote: (zdnet)
Als dit bovenstaande lees en er met mijn boerenverstand over nadenk dan zulen de drivers van je videokaart de calls vanuit de Windows Aero Glass-afhandelen. En zal DirectX of OpenGl dus pas vanuit de driver worden aangesproken en niet vanuit Aero Glass.

Uiteraard zal het wel zo zijn dat DirectX beter op deze interface aansluit dan OpenGl.

*Update : Ik vond overigens ook nog eeninteressant plaatje dat graphics core in Windows Vista beschrijft (daarin ook OpenGl).
Nee hoor, Aero kan je alleen maar activeren wanneer je een DX10-card bezit. Dit staat op de site zelf !!!
Maar nu is het in feite niet meer nodig, want Direct3D is een onderdeel van DirectX => Als OpenGL eerst zou geport worden naar Direct3D(DX10) zou dat programma merken dat je geen DX-10 compatible card hebt en dus Aero niet draaien. Maar met de native-OpenGL zou dat dus wel moeten kunnen, alhoewel Microsoft nog niet heeft bevestigd dat Aero ook OpenGL-rendering ondersteund (het zijn echt wel 2 totaal verschillende dingen)
Direct X9 kaart is al genoeg hoor. Als shader model 2.0 of hoger er maar op zit ;)
Dan mag je mij vertellen waarom de Aero interface gewoon al werkt in de vrijgegeven bta, terwijl nog niemand in het bezit is van een DX10-kaart :7
Volgens Khronos zou de performance van Aero Glass via OpenGL zelfs merkbaar beter moeten zijn dan via Direct3D.
Tsja, want Vista heeft een nieuw drivermodel, dus alle beschikbare D3D-drivers zullen nog wel in beta-status zijn.
OpenGL ICDs voor Windows bestaan al tig jaar, en zijn al helemaal geoptimaliseerd.
Dat zou een verklaring kunnen zijn waarom OpenGL op dit moment sneller is.

Een andere verklaring kan zijn dat OpenGL via een buffer-systeem werkt, waar Direct3D direct de operaties uitvoert. Bij Direct3D wordt eventuele buffering van meerdere kleine operaties overgelaten aan de programmeur. Het kan dus zo zijn dat dit buffermechanisme in Vista nog niet geimplementeerd of geoptimaliseerd is. Vista is zelf immers ook nog niet klaar voor release.

Verder lijkt het me nogal onwaarschijnlijk, omdat de snelheid normaal gesproken van de hardware af moet hangen, en niet van de driver. Een GUI tekenen is immers niet zo bijzonder intensief voor de driver.
Afgezien daarvan heeft Microsoft juist gepoogd om de overhead van de driver bij 'kleine' calls te verlagen, dus zou ie bij dingen als een GUI juist efficienter moeten zijn.

Ik wacht dus nog wel even af totdat Vista op de markt is, en er officiele drivers uitgebracht zijn... Dan wil ik het nog eens opnieuw bekijken. Het lijkt mij dat als zowel Vista, D3D als OGL in een 'volwassen' status verkeren, dat de verschillen minimaal moeten zijn, en zeker niet 'merkbaar'.
Verder lijkt het me nogal onwaarschijnlijk, omdat de snelheid normaal gesproken van de hardware af moet hangen, en niet van de driver. Een GUI tekenen is immers niet zo bijzonder intensief voor de driver.
Ik meen mij te herrineren dat geupdate NVidia en ATI drivers vaak veel sneller zijn voor de nieuwere spellen omdat deze aangepast zijn.
Waarom zou dit dan ook niet kunnen voor een interface?
Ik meen mij te herrineren dat geupdate NVidia en ATI drivers vaak veel sneller zijn voor de nieuwere spellen omdat deze aangepast zijn.
Waarom zou dit dan ook niet kunnen voor een interface?
Vaak komt dat omdat er specifieke optimalisaties voor die spellen in de driver zitten... Shaders worden vervangen door snellere varianten etc.
Bij een interface kan dit allemaal ook, natuurlijk, maar zoals ik al aangaf, een GUI tekenen is niet zo bijzonder intensief, dus lijkt me dat er minder mogelijkheden tot optimalisatie zijn, en de effecten van eventuele optimalisaties ook redelijk beperkt zijn.
ROFLMAO: Windows vista volwassen ROFLMAO.

Serieus nu, dat openGL al lang drivers heeft voor de vorige windows versies wil niet zeggen dat die voor de huidige ook werken.
Serieus nu, dat openGL al lang drivers heeft voor de vorige windows versies wil niet zeggen dat die voor de huidige ook werken.
De API is niet veranderd, de hardware ook niet. Als de ICD-interface ook niet veranderd is (en die is al sinds NT4 hetzelfde, voor zover ik weet), dan werken de geoptimaliseerde ICD-drivers dus as-is in Vista.
Zo niet, dan hoeft men alleen de interface aan te passen, de daadwerkelijke implementatie van API blijft identiek, en dus ook de prestaties (de interface lijkt me verwaarloosbaar, is alleen nodig om de driver te laden, meer niet).
Dan mag je mij eens uitleggen waarom het altijd zo lang duurt voor er hardware drivers zijn voor een nieuwe windows? Bij xp had je er lang last mee en bij vista zal het niet anders zijn.
Dan mag je mij eens uitleggen waarom het altijd zo lang duurt voor er hardware drivers zijn voor een nieuwe windows? Bij xp had je er lang last mee en bij vista zal het niet anders zijn.
Dat heeft te maken het het testen.
In principe werkten Windows 2000-drivers gewoon in XP.
Het probleem was alleen dat dit niet gegarandeerd kon worden, omdat bestaande Windows 2000-drivers misschien toch bugs hadden, die alleen in Windows XP boven water zouden komen.
Maar ik heb zelf ook bij gebrek aan Windows XP-drivers de Win2k-drivers gebruikt, en dat werkte doorgaans prima.
Misschien domme opmerking hoor, maar denk dat veel mensen dit denken dan.

Vroeger had ik dus een Voodoo 5 5500, dat was meer een OpenGL kaart in verhouding tot een V700 van Diamond Viper ofzo.

Anyweg, nu heb ik dus een GF 7900GT XT, maar die kaarten van nu zijn toch veel beter geoptimaliseerd voor D3D?? Of kunnen deze kaarten ook nog gewoon prima of zelfs beter overweg met OpenGL??
Anyweg, nu heb ik dus een GF 7900GT XT, maar die kaarten van nu zijn toch veel beter geoptimaliseerd voor D3D?? Of kunnen deze kaarten ook nog gewoon prima of zelfs beter overweg met OpenGL??
In principe zijn alle moderne 'spelletjes'-kaarten als de GeForce en Radeon ontwikkeld voor Direct3D.
Maar in OpenGL zitten tegenwoordig extensies die bijna direct uit Direct3D overgenomen zijn, dus maakt het niet zo veel uit.
Met DirectX 10 zal er juist wel weer verschil moeten komen, totdat OpenGL weer up to date gebracht wordt.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True