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 , , 149 reacties
Submitter: The Flying Dutchman

Technologieconsortium Khronos heeft op de GDC revisies 3.3 en 4.0 van OpenGL aangekondigd. Beide versies bieden grofweg dezelfde mogelijkheden, maar versie 4 vereist een DirectX 11-compatibele videokaart.

Dat de nieuwste versie niet compatibel is met oudere hardware, is opmerkelijk. Bij de introductie van OpenGL 3 hadden de ontwikkelaars ervoor gekozen vooraf geplande ingrijpende veranderingen niet door te voeren om de compatibiliteit te bewaren. Uit veel hoeken kwam toen echter de kritiek dat de eerder beloofde fundamentele wijzigingen te ver waren afgezwakt.

Met versie 4.0 hoopt Khronos die fout niet opnieuw te maken. De nieuwste revisie heeft een met DirectX 11 compatibele videokaart nodig en heeft ook enkele features aan boord die eerder in de nieuwste versie van DirectX opdoken. Zo ondersteunt OpenGL 4.0 tesselation. Hiermee kunnen geometrische details worden toegevoegd aan een model dat uit weinig polygonen is opgebouwd. Verder worden 64bits double precision floating point-shaderberekeningen ondersteund en volgens Khronos is de nieuwe versie over het algemeen sneller.

Met OpenGL 3.3 hebben de ontwerpers geprobeerd zoveel mogelijk van de nieuwe features aan de oude 3.x-reeks toe te voegen. Deze versie werkt ook met videokaarten uit de DirectX 10.1-generatie.

Moderatie-faq Wijzig weergave

Reacties (149)

OpenGL timmert hiermee goed aan de weg. Het is goed om te zien dat er een OpenGL standaard is voor de nieuwste hardware die beschikbaar is (zelfs nog voordat de meeste videokaart fabrikanten er hardware voor beschikbaar hebben!).

Hiermee wordt ťťn van de grootste belemmeringen voor het gebruik van OpenGL, gezien over de afgelopen jaren, weggenomen: de standaard schrijft voor hoe nieuwe hardware functies gebruikt moeten worden. Voordat OpenGL 3.0 verscheen, werd nieuwe hardware functionaliteit voornamelijk gebruikt via extensies voor OpenGL. Extensies maken OpenGL heel erg flexibel: iedere fabrikant kan nieuwe functies toevoegen. In tegenstelling tot Direct3D waar Microsoft bepaald welke functies beschikbaar zijn. Er kleeft echter ook een nadeel aan extensies... grofweg heb je ze in 3 verschillende niveaus: extenties van fabrikanten (bijvoorbeeld nVidia of AMD die een nieuwe functie specifiek voor hun eigen hardware beschikbaar stellen), extensies waar fabrikanten het over eens zijn en officiele extensies beheert door het consortium achter OpenGL. Vooral de eerste categorie zorgt voor problemen: het kan voorkomen dat fabrikant X hardware functie Z beschikbaar stelt via methode A, terwijl fabrikant Y hardware functie Z beschikbaar stelt via methode B. Dan moet je dus twee verschillende code paden gebruiken. De tweede en derde categorieen van extensies zijn al iets beter, maar er blijft een probleem met extensies: fabrikanten zijn niet verplicht deze in hun drivers op te nemen.

Doordat Khronos sinds september 2008 ieder half jaar een nieuwe OpenGL versie gereleased heeft (sep '08: 3.0, maart '09: 3.1, sep '09: 3.2, maart '10: 3.3 en 4.0) waarin veel gebruikte extensies steeds aan de core functionaliteit werd toegevoegd, worden fabrikanten nu gedwongen om die hardware functionaliteit beschikbaar te stellen via hun drivers (of ze mogen hun hardware/drivers niet OpenGL 3.3 compatible noemen). Dit betekend dat ontwikkelaars veel meer zekerheid hebben dat bepaalde functionaliteit te gebruiken valt met hardware van welke fabrikant dan ook (zolang ze OpenGL 3.x of 4.x drivers beschikbaar hebben). Voorheen, toen nieuwe hardware functionaliteit alleen via (vaak onofficiele) extensies beschikbaar kwam, had je die zekerheid niet omdat de fabrikanten van hardware niet verplicht waren de functionaliteit in de drivers te ondersteunen.

Kortom: er is een veel stevigere basis ontstaan in de afgelopen anderhalf jaar. De opkomst van OSX en krachtige handheld apparaten (die vaak OpenGL gebruiken) zorgt er daarnaast voor dat er meer interesse in OpenGL komt.

Afgelopen week heeft Valve aangekondigt dat OSX voortaan als een klasse 1 markt wordt beschouwt. Steam wordt/is geport naar OSX en de game engines maken gebruik van OpenGL om games onder OSX te kunnen draaien (daarnaast gaan er al een paar jaar hardnekkige geruchten dat Steam ook wel eens naar Linux zou kunnen komen). Nieuwe games zullen voortaan gelijktijdig voor Windows als voor OSX gereleased worden. Rob Barris is ťťn van de mensen die bij Valve werkt (waarschijnlijk aan OpenGL/MacOSX code) en is ook degene die het Mac OSX software team bij Blizzard geleid heeft (volgens zijn linkedin pagina). Deze man heeft daarnaast een positie binnen de commissie die OpenGL beheert (en is vaak terug te vinden op de opengl forums). Dit laat zien dat game development bedrijven wel degelijk geinteresseert zijn in OpenGL.

Nu aan de API kant de zaken op orde zijn gebracht en er op andere vlakken ook verbeteringen zijn gekomen de afgelopen jaren (vooral Ati was een aantal jaren geleden berucht om slechte OpenGL drivers, sinds de overname door AMD is er veel veranderd op dit gebied), denk ik dat OpenGL weer een ťchte kans heeft. Ik ben ook heel benieuwd wat Sony zal gaan doen als er een Playstation IV komt. Het kan voor Sony heel voordelig zijn om op OpenGL te mikken (Playstation 3 kan ook al omgaan met OpenGL, maar dit is niet optimaal zover ik weet). Immers; door voor OpenGL te kiezen, zou Sony daarmee de markt voor OpenGL vergroten en zorgen voor een betere concurrentie positie ten opzichte van de Xbox 360 (en opvolgers) die DirectX gebruiken. Games gemaakt voor OpenGL zouden daarmee op de Playstation, Windows (inclusief Windows XP), Mac OSX en Linux kunnen draaien. Dit maakt het aantrekkelijker om games voor OpenGL te ontwikkelen. Overigens moet hierbij wel de kanttekening gemaakt worden dat het ondersteunen van meerdere graphics API's door grote game developers ook niet heel lastig is (dus een game kan prima DirectX en OpenGL gebruiken).
tbh, hoe fijn ik het ook vind dat er wat meer aandacht is voor de osx markt (en de dremple verlaagd wordt voor linux games): apple loopt echter wel nog steeds lekker achter met hun opengl implementatie (nog niet eens opengl 3.0), omdat apple ook invloed heeft op wat de drivers kunnen is het ook niet altijd mogelijk om via extensies support voor een bepaalde functie te leveren.
Misschien dat apple daar nu wat aan gaat doen nu er potentieel markt mee kan worden gewonnen.
In de eerste plaats ben ik het niet eens met de stelligen en van Wout. Dat OpenGL v4 een 'DirectX 11 compatible' kaart nodig zou hebben klopt natuurlijk helemaal niet. Het gaat om de ondersteuning van instructies.
DirectX en OpenGL hebben weinig met elkaar te maken en zijn zeker niet afhankelijk van elkaar.

Daarnaast:
OpenGL is een open standaard: iedereen kan het gebruiken.
OpenGL is krachtiger dan DirectX/3D.
OpenGL wordt door bijna alle platformen ondersteund.
OpenGL is goed voor de ontwikkeling van games en 3D ondersteuning. (En ja, zelfs voor de ontwikkeling van DirectX!)

DirectX is slim op de markt gezet. Opeens wist iedereen dat DirectX 'beter' was en de game indsutrie heeft DirectX tot standaard verheven en daarmee OpenGL uit de (consumenten)markt gedrukt. In de 'professionele' wereld, is OpenGL nog steeds groot.

Grappig om te weten is wellicht de tesselation tech, die DX11 zou moeten onderscheiden, al 3 jaar aanwezig is in OpenGL extensies. En dat OpenGL door fast instancing and vertex-texture-fetch de nieuwe functionaliteiten van DX11 al jaren daarvoor grotendeels beschikbaar had.
Bijzonder, dat Microsoft deze funtionaliteiten pas in oktober 2009 heeft geintroduceerd en dat deze niet backwards compatible is met bijvoorbeeld Windows XP. Marketingtechnisch heel slim van ze, maar niet zo goed voor de consument.

De enige conclusie die ik hieruit kan trekken is dat OpenGL de innovaties doet en Microsoft de functionaliteit in hapklare DirectX-API's aan de consumentenindustrie aanbiedt. Ook erg slim, maar op een gegeven moment moet het maar eens klaar zijn.

DirextX biedt gemak voor de game ontwikkelaars, maar OpenGL is de betere keus als het op rendering aankomt en door te 'kiezen' voor OpenGL maak je je als maatschappij niet afhankelijk van het closed source Microsoft product.

Goed dat OpenGL versie 4 neer gaat zetten!

[Reactie gewijzigd door mrlammers op 12 maart 2010 11:12]

> OpenGL is een open standaard: iedereen kan het gebruiken.
Iedereen kan Direct/X gebruiken, het is immers gratis.

> OpenGL is krachtiger dan DirectX/3D.
Larie, de videokaart bepaald de kracht, niet de API waarmee je tegen de videokaart aan kletst. Op dat gebied past Direct3D veel beter in moderne ontwikkeltechnieken, OpenGL is nog steeds compleet functioneel en daarmee sterk achterhaald.

> OpenGL wordt door bijna alle platformen ondersteund.
Dat is nog steeds het sterkste punt om voor OpenGL te kiezen als hobbyist; maar als mainstream developer is het echt een non-issue.

> OpenGL is goed voor de ontwikkeling van games en 3D ondersteuning. (En ja, zelfs voor de ontwikkeling van DirectX!)
OpenGL en Direct3D zijn APIs, geen levende entiteiten. De ARB board achter OpenGL is vreselijk log en traag; het is eerder het Direct/X team dat de toon zet vandaag de dag door het constant definieeren van nieuwe features en technieken.

Je kunt je krampachtig vasthouden aan de goede oude tijd dat Carmack nog pro-OpenGL was, maar zelfs hij geeft toe dat Direct3D vandaag de dag een behoorlijk schone API geworden is en zeker het overwegen waard is.
> OpenGL is krachtiger dan DirectX/3D.
Larie, de videokaart bepaald de kracht, niet de API waarmee je tegen de videokaart aan kletst. Op dat gebied past Direct3D veel beter in moderne ontwikkeltechnieken, OpenGL is nog steeds compleet functioneel en daarmee sterk achterhaald.
De videokaart bepaald de rekenkracht, de API bepaald wat de mogelijkheden zijn. Als ik morgen om zo maar iets te zeggen SM5.0 bedenk en in een kaart inbouw dan moet MS deze nog altijd toevoegen aan DX voor dat ik er gebruik van kan maken. Bij OpenGL kan je onmiddelijk alle potentieel van een kaart verkrijgen.
> OpenGL wordt door bijna alle platformen ondersteund.
Dat is nog steeds het sterkste punt om voor OpenGL te kiezen als hobbyist; maar als mainstream developer is het echt een non-issue.
Ook voor mainstream een belangrijk issue. Cross platform applicaties worden steeds belangrijker, zeker met de opkomst van steeds krachtiger wordende mobiele apparaten. Waarom denk je dat Epic bijv. de UE3 naar de iPhone heeft gebracht?
> OpenGL is goed voor de ontwikkeling van games en 3D ondersteuning. (En ja, zelfs voor de ontwikkeling van DirectX!)
OpenGL en Direct3D zijn APIs, geen levende entiteiten. De ARB board achter OpenGL is vreselijk log en traag; het is eerder het Direct/X team dat de toon zet vandaag de dag door het constant definieeren van nieuwe features en technieken.
De ARB is idd traag, maar dat betekend niet dat OpenGL achter loopt. De meeste technieken die geÔntroduceerd worden voor DX zijn al lang beschikbaar voor OpenGL, alleen niet in de officiŽle standaard.
Je kunt je krampachtig vasthouden aan de goede oude tijd dat Carmack nog pro-OpenGL was, maar zelfs hij geeft toe dat Direct3D vandaag de dag een behoorlijk schone API geworden is en zeker het overwegen waard is.
http://blog.wolfire.com/2...se-OpenGL-and-not-DirectX
De ARB is idd traag, maar dat betekend niet dat OpenGL achter loopt. De meeste technieken die geÔntroduceerd worden voor DX zijn al lang beschikbaar voor OpenGL, alleen niet in de officiŽle standaard.
Dus zijn ze niet beschikbaar voor OpenGL. Een standaard is een standaard, niet een standaard en extensies. De extensies zijn net zo min onderdeel van OpenGL als Firefox plugins onderdeel zijn van Firefox. Ja, met behulp van extensies kan een OpenGL programma prima meekomen met DirectX, maar OpenGL zelf loopt gewoon dik achter, punt.
Mooie analogie. Zowel firefox als opengl zijn dankzij de extensies heel populair, omdat ze zowel de ontwikkelaar als de gebruiker extra mogelijkheden bieden.

Weliswaar met name op niet-windows platformen maar dat komt niet zozeer omdat de MS versies onder Windows (IE en Direct3D) beter zijn maar omdat de marketing van MS naar haar eigen klanten en ontwikkelaarsgemeenschap toe zo sterk is.

Verder is zowel bij OpenGL als bij Firefox de extensie interface onderdeel van de standaard. Anders zou het maken van de extensies helemaal niet mogelijk zijn. De opmerking dat de extensies geen onderdeel zijn van de standaard is dus mischien wel technisch correct maar het extensie mechanisme is dus wel onderdeel van de standaard. En een belangrijk onderdeel voor iedereen die bleeding-edge wil zijn.

[Reactie gewijzigd door awulms op 12 maart 2010 23:19]

Iedereen kan Direct/X gebruiken, het is immers gratis.
Nope, want het draait alleen onder Windows en op de Xbox, niet op de playstation (openGL) smartphones (meesten, openGL) OSX, Linux, allemaal OpenGL.
Daarnaast ben je afhankelijk van MS om nieuwe functionaliteiten te verkrijgen terwijl je bij OpenGL zelf extenties kunt maken.
Uhm.. maar zelf extenties maken heeft totaal geen zin als jij een breed publiek wilt aanspreken...
Als je nvidia of ati bent, heeft dat nogal degelijk zin, want je kunt de nieuwe features van je nieuwe kaarten onmiddelijk beschikbaar maken voor de ontwikkelaars van de grafische toepassingen, zonder dat je op een comitee of een OS-ontwikkelaar hoeft te wachten.

Gezien het feit dat nvidia en ati hier uitgebreid gebruik van maken, en ontwikkelaars van opengl toepassingen dergelijke uitbreidingen ook vrij snel ondersteunen, maakt overduidelijk dat dit niet slechts een academisch/theoretisch voordeel is.

[Reactie gewijzigd door awulms op 12 maart 2010 23:14]

The tesselation technology that Microsoft is heavily promoting for DirectX 11 has been an OpenGL extension for three years


het is eerder het Direct/X team dat de toon zet vandaag de dag door het constant :

Na te apen en doen als zelf uitgedacht te hebben

Btw de man die M$ met DirectX had geholpen zegt toch ook iets
OpenGL: kan ik leuke plaatjes op het scherm toveren.
DirectX: kan ik leuke plaatjes op het scherm toveren, EN ik kan daar ook nog mooi geluid bij geven, EN ik kan de gebruiker nog mooi wat laten 'besturen', EN ik kan nog 2 computers met elkaar laten communiceren, EN ik kan objecten ook nog op elkaar laten reageren met Physics.. EN ik ben zeker nog een hoop dingen vergeten..

hmmm.... wat is voor mij als developer (met een klein budget) dan interessanter..
Zover ik weet is dit niet helemaal waar... wat ik heb gehoord is dat veel zaken in DirectX tegenwoordig deprecated zijn (zoals DirectSound en DirectInput). Kortom, DirectX gelijkstellen aan Direct3D is redelijk reŽel.

Daarnaast heb je gewoon prima alternatieven die je kunt gebruiken in combinatie met OpenGL (OpenAL voor geluid, OpenCL voor computation... of je pakt SDL dat alles combineerd inclusief input en networking... nog volledig cross platform ook).
Voor jou is OpenGL i.c.m. SDL interessanter, aangezien je de grootste markt mogelijk pakt. Bovendien hoef je je spelletjes niet opnieuw te maken, wil je ze uitbrengen voor de iPhone / Nexus One.
Wat ik niet snap is dat OpenGL 4 een DirectX 11 compatible videokaart nodig heeft!? Gebruikt Kronos vanaf nu gewoon de hardware die vereist is voor DirectX 11? Maar hoe wordt deze hardware dan aangesproken? Via DirectX11 specifieke hardware en software paden? Of moeten drivers OpenGL4 ondersteuning inbouwen? Verder is DirectX11 vrij specifiek over over de harwdare en technieken en ook de paden, betekend dit dat OpenGL4 op ongeveer dezelfde methodologie bouwt als DirectX11?

Veel vragen!!
Wat ik niet snap is dat OpenGL 4 een DirectX 11 compatible videokaart nodig heeft!?
Nee, OpenGL 4 heeft een GPU nodig die de DX11 featureset ondersteunt. Wat op zich niet raar is als OpenGL 4 dezelfde functionaliteit wil aanbieden die DX11 ook aanbiedt.
Gebruikt Kronos vanaf nu gewoon de hardware die vereist is voor DirectX 11?
OpenGL gebruikt altijd al de hardware die vereist is voor DX. Andersom ook. Vergeet niet dat zowel OGL als DX een abstractielaag zijn voor hardware. Het is "alleen maar" een gestandaardiseerde interface om GPU hardware aan te spreken. Alle DX11 hardware heeft dezelfde functionaliteiten wat betreft tesselation. Oudere hardware heeft deze functionaliteit nodig. Als een GPU dus verplicht tesselation nodig heeft voor OpenGL 4.0 is het dus ook altijd een DX11 GPU.
Maar hoe wordt deze hardware dan aangesproken? Via DirectX11 specifieke hardware en software paden?
Via calls naar een gestandaardiseerde interface (de openGL interface dus) die door de drivers wordt omgezet naar hardware-specifieke commando's. Dit is ook hoe DX heel simpel gezegd werkt.
Of moeten drivers OpenGL4 ondersteuning inbouwen?
Uiteraard, maar zo heeft het altijd al gewerkt. Bij OpenGL 3 duurde het ook even voor er driversupport was vanuit NVIDIA en AMD. Eerst wordt de interface gespecificeerd, vervolgens bouwen geinteresseerde bedrijven support in in hun drivers. Vergeet niet dat OpenGL eigenlijk alleen een interface is. ER is een hardwarespecifieke implementatie nodig die die interface calls omzet naar hardware aansturing. Dat zal elk hardwarebedrijf zelf moeten gaan schrijven voor hun eigen platformen (net als bij DX overigens)
Verder is DirectX11 vrij specifiek over over de harwdare en technieken en ook de paden, betekend dit dat OpenGL4 op ongeveer dezelfde methodologie bouwt als DirectX11?
Ja, op dit moment (en eigenlijk vanaf DX9) loopt OpenGL achter op DirectX. Dit betekent dat een groot deel van de features die nu toegevoegd worden en die toegevoegd zijn in de laatste paar OpenGL versies "overgenomen" of afgekeken zijn van DirectX. Microsoft heeft het de laatste jaren heel goed aangepakt op dit gebied en heeft met NVIDIA en AMD harde afspraken gemaakt over de toekomst van de GPU. OpenGL loopt daar op dit moment nog een beetje achteraan. Het idee is echter wel dat met versie 4.0 OpenGL weer gelijk gaat lopen met DX. Of dat gaat lukken is nog maar de vraag, het vertrouwen in OpenGL heeft een flinke klap gehad na al het rare gedoe rond OpenGL 3.0.
Ja, op dit moment (en eigenlijk vanaf DX9) loopt OpenGL achter op DirectX. Dit betekent dat een groot deel van de features die nu toegevoegd worden en die toegevoegd zijn in de laatste paar OpenGL versies "overgenomen" of afgekeken zijn van DirectX.
Ik herhaal het nog maar eens, maar dit is echt complete onzin, en het wordt niet extra waar als het maar vaak genoeg herhaalt wordt hier. OpenGL loopt helemaal niet achter in termen van wat je met de hardware kunt doen. Sterker nog, OpenGL loopt zelfs voor op DirectX, omdat vendors bij OpenGL extensies kunnen toevoegen voor de allerlaatste hardware features, waar ze bij DirectX moeten wachten tot Microsoft zijn API's update.

Het enige waarop OpenGL 'achter loopt' is het integreren van zulke extensies in de features die vereist zijn voor een bepaalde versie van de API, waardoor programmeurs voor de meest geavanceerde features soms wat extra werk moeten doen, omdat de ATI tesselation extensie bijvoorbeeld net iets anders werkt dan de Nvidia tesselation extensie.
Praat eens een keer met een echte OpenGL ontwikkelaar en vraag hem wat hij vindt van de "Extension Hell" Leuk als je even een game wilt schrijven en tientallen verschillende extensies moet gebruiken die op alle platformen weer anders werken en tussen verschillende hardware weer anders werken. Wat MS met DX10 heeft gedaan was het hele caps systeem uit DX9 er uit gooien en heel hard definieren wat een GPU wel en niet moest kunnen. Alle ontwikkelaars waren hier dolblij mee (en terecht). Moet je nagaan hoe erg dit is bij OpenGL.

Een feature is pas echt een feature als het in een release officieel ondersteunt wordt.

[Reactie gewijzigd door Snoitkever op 12 maart 2010 11:32]

Ik denk niet dat jij veel met echte OpenGL ontwikkelaars hebt gesproken want wat je zegt is gewoon niet waar. Ik ontwikkel zelf met OpenGL en zit met grote regelmaat op fora waar ook veel professionele OpenGL ontwikkelaars posten en die 'extension hell' waar jij het over hebt bestaat gewoon niet (ik zou zeggen google het anders eens en kijk hoeveel hits je vind, voor het geval je het niet van mij wilt aannemen). Er zijn praktisch gesproken maar 2 GPU fabrikanten die hardware op de markt hebben die voorloopt op de officiele API en dat zijn AMD en Nvidia, en het extensie systeem is al vanaf OpenGL 1.0 gestandardiseerd. Als developer hoef je doorgaans alleen maar te checken of een extensie beschikbaar is, en zo ja kiezen of je je ATI implementatie of je Nvidia implementatie wilt gebruiken, wat vaak neerkomt op 2 functies die maar op een paar regels verschillen. Tegen de tijd dat iedereen kaarten heeft die de meeste geavanceerde features ook daadwerkelijk gebruiken zijn ze meestal al gestandardiseerd.

Los daarvan doe je het voorkomen alsof je dit soort extra werk met DirectX niet hoeft te doen. Ook bij DX moet je nog steeds specifiek de hardware caps checken (ook binnen DX versies bestaan verschillen tussen wat hardware wel/niet ondersteunt, het is verre van een 'alles of niets' situatie zoals jij hem voorstelt), verschillende render paths maken voor DX9/10/11, vendor-specifieke implementaties checken voor sommige dingen (bijvoorbeeld texture compressie algoritmes die wel/niet ondersteund worden), etc. Je doet net alsof DirectX automagisch alle hardware verschillen over complete generaties voor je overbrugt maar dat is gewoon niet de realiteit.

Heb je ooit zelf wel eens 3D code met DirectX of OpenGL geschreven eigenlijk?

[Reactie gewijzigd door johnbetonschaar op 12 maart 2010 12:32]

Ik denk dat je in de war bent met hardware feature sets en marketing naampjes als DirectX, op dezelfde manier waarop zoveel mensen denken dat OpenGL achter loopt en GPU's speciaal voor DirectX gemaakt worden of iets dergelijks.

De aanduiding 'DX10 videokaart' zegt alleen maar iets over de hardware support, het heeft helemaal niks te maken met hoe je de kaart aan kan sturen. Een 'DX10 kaart' ondersteunt simpelweg alle features van DX10, punt. OpenGL kan die features net zo goed gebruiken (mogelijk via extensies als de kaart te ver voorloopt op de basis OpenGL specs), maar marketing technisch is het zinvoller om een kaart als 'DX10 kaart' te verkopen, omdat de kans groot is dat deze voor games gekocht worden, en de klant gewoon wil weten tot welke DX versie de kaart geschikt is.

[Reactie gewijzigd door johnbetonschaar op 12 maart 2010 11:48]

Dat is ook een fout in het artikel. nVidia en AMD zullen verschillende OpenGL4 features alleen implementeren voor de videokaarten die ook directx11 ondersteunen.
Ach dat is toch gewoon een naam voor een bepaalde feature set? Wel zo handig als ze dezelfde set gebruiken, dan weet je als koper van een graka meteen waar je aan toe bent.
De nieuwste revisie heeft een met DirectX 11 compatibele videokaart nodig en heeft ook enkele features aan boord die eerder in de nieuwste versie van DirectX opdoken. Zo ondersteunt OpenGL 4.0 tesselation.
Videokaarten ondersteunen in de hardware verschillende feature's, zoals in dit voorbeeld tesselation. (Zo zijn er vast nog wel wat op te noemen, maar daar heb ik geen kaas van gegeten)

DirectX is inmiddels al een tijdje de standaard voor consumenten-videokaarten, en de kaarten met verschillende hardware features zijn dus heel makkelijk in te delen naar de directx versie die ze ondersteunen. Volgens mij is dat de reden dat ze een DirectX $zoveel compatible kaart vereisen voor een bepaalde versie van OpenGL.

Vroeger was een kaart DirectX $zoveel en OpenGL $zoveel compatible. Bijvoorbeeld:
The Radeon R300 [...] features 3D acceleration based upon Direct3D 9.0 and OpenGL 2.0,
en
Rage 128 was compliant to Direct3D 6 and OpenGL 1.2.

[Reactie gewijzigd door Jesse op 12 maart 2010 10:38]

DirectX en OpenGL zijn in essentie niet meer of minder dan conventies, afspraken.

De video kaart driver begrijpt die afspraken. Echter, hoe de driver presies praat met de video kaart is gewoon specifiek aan die kaart en heeft in princiepe niets meer met DirectX of OpenGL te maken.

Wat er hier met "DirectX 11 compatible" wordt bedoeld is dat alleen hardware die goed genoeg is om een werkende DX11 driver te hebben ook een werkende OGL4 driver kan hebben.
thx Oakley was ff kwijt

OpenGL gives you direct access to all new graphics features on all platforms, while DirectX only provides occasional snapshots of them on their newest versions of Windows. The tesselation technology that Microsoft is heavily promoting for DirectX 11 has been an OpenGL extension for three years. It has even been possible for years before that, using fast instancing and vertex-texture-fetch. I don't know what new technologies will be exposed in the next couple years, I know they will be available first in OpenGL.

was een snippet maar denk eens aan CAD/cam en andere grapvisueel Jurassicpark

is toch niet met directX gemaakt
Goh, leeft OpenGL nog? In PC Games zie je het echt niet meer.
De enige OpelGL game die ik goed ken en nog regelmatig speel is IL-2 Sturmovik.
OpenGL is nog springlevend, maar je ziet het inderdaad niet veel meer in PC games. Maar dat is maar ťťn specifieke toepassing, en ook de enige waar Direct3D de overmacht heeft: games op Microsoft platforms. Voor al het andere is OpenGL nog altijd de norm. In de academische wereld bijvoorbeeld wordt vrijwel exclusief OpenGL gebruikt. En natuurlijk alles wat 3D is op Mac OS X en Linux is OpenGL.
Ik had gehoord dat hoe dx openGL eruit gekickt had nog wel een smerig verhaaldje was. maar OpenGL is niet slecht, veel mensen beweren zelfs dat het beter is dan direct x ... maar tjah, degene met de grootste mond zal wel winnen.
Het ligt achter op DX dus... need we say more? Dat is niet echt een goede eigenschap voor een 3D library bedoeld voor bleeding-edge games.

Dus ja, DX is echt beter als je het zo bekijkt en het niet boeit dat het alleen op Windows draait. Maar als OpenGL weer bij weet te komen dan zijn er genoeg kansen voor.
OpenGL is niet bedoeld voor "bleeding-edge" games. OpenGL is een multipurpose 3D library die OS-onafhankelijk werkt.

Ik ga me verder niet inlaten over de beruchte "DirectX vs OpenGL" strijd (wat overigens Direct3D moet zijn, DirectX is meer dan alleen grafisch) , maar MS schijnt wel vuile spelletjes gespeeld te hebben met de ondersteuning van OpenGL. En MS = games, dus als MS dat in stand kan houden blijven ze een groot deel van de markt bedienen.

Ik hoop wel dat deze versies van OpenGL beter zijn, want met de vorige versie(s) had zelfs John Carmack moeite met het overtuigen van mensen om het te gebruiken t.o.v Direct3D.

Nieuwe ronde, nieuwe kansen. We gaan het zien!
Ik vind het heel jammer dat games vooral hierdoor Windows only gemaakt worden. Het zou mij een dualboot schelen als games onder Linux gewoon goed zouden draaien. Hopelijk zullen we dat in de toekomst weer zien :).
Maar dit zal waarschijnlijk niet snel gebeuren als OpenGL een beetje achter de feiten aan blijft hobbelen. Vroeger, voor het DX7 tijdperk, was OpenGL nog redelijk vaak innotiatief te noemen en stond het op gelijke voet met DirectX. Sinds de ontwikkeling van DX7 heeft Microsoft veel geld, en een aantal van wereld's beste developers op DirectX geplant en hiermee goed voet aan de grond gekregen, zeker met DX7 en 9 hebben ze grote successen geboekt.

OpenGL heeft dit nooit meer kunnen evenaren, en waarschijnlijk is er ook een enorm gebrek aan financiŽn zullen ze dat ook nog eens willen kunnen doen.

Dus alhoewel het leuk zou zijn als er weer overgestapt wordt van DirectX naar OpenGL, zie ik het nog niet snel gebeuren. Met uitzondering als de consument de ontwikkelaars hierdoor dwingt door consistent windows spelen te boycotten indien ze op linux of mac os draaien; en niet alsnog de spellen aanschaffen om via dual boot / bootcamp te draaien.

Zeker met de toename van het gebruik van linux en osx zou dat nog wel eens een ommeslag kunnen worden dan, maar als men het spel toch niet kan laten liggen zoals nu vaak het geval... dan zal er ook nooit een reden tot verandering komen voor game developers.
OpenGL als defined standaard loopt inderdaad achter de feiten aan. Maar nieuwe GPU features komen als eerst beschikbaar via OpenGL (vendor extentions), en later als Microsoft er misschien zin in heeft wordt het onderdeel van DirectX. Alle nieuwe Direct3D features die in DirectX 11 beschikbaar kwamen waren al mogelijk via OpenGL via vendor extentions van verschillende bedrijven.

Design-by-comity is nou eenmaal traag. Maar dat betekend niet dat de features in de nieuwe standaard niet al lang beschikbaar zijn. Het net zoals in CSS waar je -moz-* -webkit-* extensies hebt die later onderdeel zijn van de vastgelegde standaard.

[Reactie gewijzigd door elmuerte op 12 maart 2010 10:58]

Maar nieuwe GPU features komen als eerst beschikbaar via OpenGL (vendor extentions)
Dat is niet helemaal waar, vaak genoeg zit de functionaliteit al wel in DX maar dan moeten de GPU fabrikanten nog volgen. Daar bouwt MS dan een reference driver voor zodat je het al wel vast kan testen als ontwikkelaar.

Maar het voordeel wat jij noemt, zie ik persoonlijk als een klein nadeel. Als alle fabrikanten (nu eigenlijk nog maar nVidia, ATI en Intel, maar destijds ook S3, 3Dfx, Matrox, etc) met hun eigen extensies aan komen zetten dan blijft er niets meer van je standaard over.
Dat is inderdaad een groot voordeel, echter de OpenGL drivers van de gpu fabrikanten zijn helaas vaak een stuk minder dan de Direct3D drivers en dan met name die van AMD.
Denk het wel, gezien eerdere berichten dat er meer games komen (en binnekort ook Steam) voor de Mac.
Voor mij boeit het wel dat het niet op enkel op Windows draait. OpenGL, de specificatie, loopt misschien achter op Direct X, maar in het verleden heeft oa ID Software meermaals bewezen dat OpenGL zeker als 'next generation' gebruikt kan worden.
Dat heeft ID zeker bewezen maar de Next gen van toen is nu alweer eeuwen geleden (helaas)

Ik zie wel een mooie toekomst voor Open GL wanneer naast ID ook Epic en wat grote uitgevers hun interne engines hierop baseren

Faseer Direct X 1 x uit en na een paar jaar is Open GL de Direct X van nu en kan het ook mee lopen met de nieuwste ontwikkelingen

Tis even een lastig jaartje maar daarna zullen ontwikkelaars de vruchten ervan plukken (denk ik)
De Unreal Engines 2 & 3 zijn Dx & OpenGL. Gezien ik Unreal Tournament 2004 op m'n Linux machine kan spelen en Unreal Championship 2 op m'n Xbox1 heb moet dat wel. Ook de Unreal Engine 3 is zowel Dx als OpenGL; xbox360 & ps3.
opengl zal nooit of te nimmer directx kunnen vervangen... jamais!

opengl kan wel direct3D vervangen, maar directx is veel meer dan alleen maar het aansturen van 3D graphics... geluid, input, communicatie (netwerk), ... loopt ook allemaal via directx.

Opengl kan echt alleen maar met de videokaart babbelen, dus die stelling gaat niet op.
ja, maar er is ook openal voor het geluid, openCL voor directcompute etc. voor bijna alles is wel een open** variant, en volgens mij ook allemaal van khronos... dus als je gaat zeuren op preciese namen wel ja, maar opengl/al/etc/ zou het wel kunnen
Weet ik niet of het zo veel achter ligt. Wat het groote verschil is voor devvers is de DB aan API's die DX ondersteund. Je kunt eenvroudig beeld/geluid etc. aanroepen via die api's, iets wat via Open-GL niet zo gemakkelijk gaat. Maar qua technieken en performance denk ik niet dat het zoveel minder is dan DX.
Daarom is er ook OpenAL & OpenCL, etc. Deze worden op de nixen van tegenwoordig (en ook al eerder: Quake3/4/UT2k003/4, etc.) bijeengevoegd middels S.D.L. (Simple Direct Media Layer). Hierdoor zijn ze (deze games) dus zo goed als op ieder nix-platform native te draaien. ;)
En dan loopt het net zo snel, zo niet sneller dan onder Windows.

Ryan "Icculus" Gordon heeft veel van die omzettingen gedaan in die tijd (v.w.b. UT99/2k3/4/COD/MoHAA dan).

[Reactie gewijzigd door Kosh66 op 12 maart 2010 12:10]

DX is verre van beter, er zijn vanuit de game industrie regelmatig open brieven geweest (oa. van John Carmack) richting Microsoft om de OpenGL implementatie beter te ondersteunen. Microsoft heeft een smerig spelletje gespeeld om DirectX, een smear campaign om DirectX naar voren te pushen.

Waar OpenGL nu last van heeft is een vicieuse cirkel, ontwikkelaars werken met DirectX dus GPU fabrikanten ontwikkelen daarvoor. Omdat de DirectX implementatie op GPU's beter is gebruiken ontwikkelaars DirectX.

OpenGL is zeker niet slecht, zeker nu met de ontwikkeling van OpenCL wordt het interessanter.
Nou wat jij aanhaalt is wel heel erg lang geleden. Carmack heeft sindsdien al aangegeven dat Direct 3D volwassen is geworden en een goede concurent voor OpenGL. Maar het is nogal makkelijk om " Smerig Spelletje" te typen als het om een MS iets gaat.

Ik hoor die twee woorden net even iets te vaak, om nog lollig te zijn. (getypt vanaf een Linux (Debian) Machine).
Het is misschien gemakkelijk om het te typen maar het maakt het echt niet minder waar hoor, Microsoft heeft er alles aan gedaan om OpenGL kapot te krijgen en daar is die vicieuze cirkel dus het gevolg van, natuurlijk zijn er bij OpenGL ook zaken fout gegaan maar de rol die Microsoft gespeeld heeft valt heus niet te onderschatten.
MS tegen SGI was toch een fair fight? Dat de ontwikkeling nu bij Khronos ligt doet er niets aan af dat OpenGL (ontstaan uit IrisGL) destijds gewoon een ontwikkeling is geweest van Silicon Graphics. 2 concurenten, 2 producten.
Als je van een linux machine typt weet je waarschijnlijk wel hoe prettig het zou zijn als standaarden open, en vooral, standaard zijn.

Dat Microsoft hier al jaren tegenin gaat met proprietary spul om zijn vendor lock-in te behouden is niet onbegrijpelijk. Het is ook niet prettig, en zeker niet lollig.

Dat mensen er steeds meer en meer over vallen zal zeker veroorzaken dat jij het meer hoort.

Waar ik voornamelijk benieuwd naar ben is wanneer het wel lollig was dan. Persoonlijk heb ik het nooit als humoristisch ervaren. Klinkt een beetje als de eerste 10 die onder een bus komen is leuk, maar daarna is de grap er wel vanaf.
Als je van een linux machine typt weet je waarschijnlijk wel hoe prettig het zou zijn als standaarden open, en vooral, standaard zijn.
Zoals die ene standaard versie van Linux die er bestaat bedoel je ?
Zie http://en.wikipedia.org/wiki/Posix

Wat zou het toch mooi zijn als Windows ooit eens Posix compliant zou worden :).
Ja, die ene standaard versie staat op kernel.org. Zover ik weet gebruikt niemand een andere 'Linux'.
@BackwardsDown
Vooralsnog zijn niet alle distributies compatible met elkaar... dus van een echte standaard kun je niet spreken. Laat eerst eens alle Linux distributies en Gnome, KDE etc. compatible met elkaar zijn en dan mag de Linux community gaan zeuren of standaarden. Voor de Linux community is een standaard vaak pas een standaard als het gratis te kopieren is.

[Reactie gewijzigd door HerrPino op 12 maart 2010 14:30]

Je bedoelt natuurlijk dat de PMS'en niet compitabel met elkaar zijn. De onderliggende systemen (Devicekit, DBus, Alsa, etc) zijn op bijna elke distributie hetzelfde.
Nou, dikke onzin natuurlijk, want DirectX is gewoon meer dan OpenGL, waar openGL alleen maar graphix is, is DirectX alles (graphix/sound/input/netwerk/physics/etc).. tja, dan is het als ontwikkelaar toch wel redelijk simpel...
Wat er moet komen is een Open... variant die dus ook al deze dingen in zich heeft (en niet zoals nu dat je zoveel verschillende libraries bij elkaar moet zoeken), pas dan wordt het echt interessant.. Ook OpenCL is daar zelfs niet eens interessant omdat het ook weer maar 1 ding specifiek is..
Daar hebben we dus weer SDL voor. SDL staat tot DirectX zoals OpenGL staat tot Direct3D.
maar bij SDL mis je juist weer het 3d gedeelte.. DirectX is alles in 1...
vandaar OPENAL in windows na directsound niet meer in het model past van vista/win7

denk maar aan Creative met zijn EAX
DX is verre van beter, er zijn vanuit de game industrie regelmatig open brieven geweest
OpenGL was ooit beter, toen liepen ze gelijk, en vervolgens heeft Kronos een enorme clusterfuck situatie gehad rond OpenGL 3, terwijl MS een enorme voorsprong maakte met DX10 en DX11. Op dit moment is DX11 op alle vlakken veruit superieur aan OpenGL 3. Hopelijk trekt OpenGL 4 de balans weer recht :)
Waar OpenGL nu last van heeft is een vicieuse cirkel, ontwikkelaars werken met DirectX dus GPU fabrikanten ontwikkelen daarvoor.
Iedereen doet hier alsof DX en OGL alleen om games gaan. Dat heeft er weinig mee te maken. Waar OpenGL nu last van heeft is een hele lading bizarre beslissingen en vertragingen die er voor zorgden dat OpenGL 3 niet alleen veel te laat was maar ook door de helft van de community werd uitgekotst. Beetje flauw om dat op MS af te wentelen, die hadden er niets mee te maken.
Het ligt achter op DX dus... need we say more?
Dat ligt er maar net aan wat je belangrijk vind. Als cross-platform* een must have is staan de zaken heel anders.

* Met cross-platform bedoel ik echt CP, niet de Microsoft definitie. Bij MS is tussen verschillende Windows versies en hun eigen xboxen (ook gewoon WinNT) namelijk al cross-platform.
het ligt niet echt achter, juist toen het voor lag op direct3d was direct3d erg aan het opkomen, wat ook niet vreemd is als zon api door de leverancier van het OS gepust wordt, natuurlijk niet platformonafhankelijk zodat het meer geld en tijd kost om het over te zetten naar andere platformen.
Hoewel je met opengl al tijden (met vendor extensions) in principe hetzelfde kan doen als dx 11 zijn al die mogelijkheden nu met 4.0 vastgelegd.
DX is gemakkelijker mee te werken als developer. bij openGL is het veel minder standaard en hoewel je features wel kan toevoegen moet je dat vaak zelf doen(en is het niet standaard en moet je maar een beetje hopen dat het blijft werken bij de volgende driver update van ATI of Nvidia).

daarbij is bij openGL games niet een hele hoge prioriteit geweest tot nu toe en hebben ze zich gefocust op zakelijke toepassingen zoals CAD

[Reactie gewijzigd door Countess op 12 maart 2010 10:23]

Correctie, OpenGL is juist "de" industriŽle standaard, DirectX niet. DirectX wordt gebruikt voor games, OpenGL vind je in desktopeffecten op OS X en Linux, industriŽle software, games, handhelds enzovoorts enzovoorts.
ik bedoel er is BINNEN openGL geen standaard is voor veel dingen.

edit : dat klopt... maar dat had wel eerder gemogen en dat is ook de reden dat ze veel (game)marktaandeel zijn kwijt geraakt.

[Reactie gewijzigd door Countess op 12 maart 2010 16:52]

Dat is de laatste jaren juist veranderd, 3.3 en 4.0 zijn daar nu dus het product van.
Dit verhaaltje bedoel je denk ik.
ja klopt helemaal!

Eigenlijk vind ik dat als het makkelijker is voor developers zoals Countess hierboven zegt dat het zeker een goede kans verdient !! zeker als het niet wil achterlopen door met nieuwe hardware mee te groeien!
Bent u niet in de war met 3dfx glide?
Nvidia maakte gebruik van 3dfx glide onderdelen voor hun kaarten (patent schending), vervolgens DirectX met Microsoft doorgedrukt en 3dfx overgekocht en laten afsterven.

Waren de makers van Unreal tournement en Quake geen voorstander van OpenGL?
Het is juist ati's opkomst geweest die microsofts plannen om opengl te vervangen voor direct3d versneld heeft, ati had namelijk nauwelijks fatsoenlijke opengl support slechts direct3d, die van nvidia was (en is) vele malen beter, wat alleen jammer was was dat men dat via veel vendor specifieke extensions deed.

[Reactie gewijzigd door blouweKip op 12 maart 2010 16:01]

Sterker nog, Steam gaat nu ook voor OSX worden uitgebracht en die games maken allemaal gebruik van OpenGL. Het zal dus weer terugkomen :)

Ik speelde vroeger Unreal Tournament GOTY altijd met OpenGL en dat was een stuk sneller en beter dan DirectX nog toendertijd. Ik weet niet wat dat verschil inmiddels is maar ik heb liever open standaarden zoals OpenGL dan het gesloten DirectX 11 wat alleen op Vista en Windows 7 kan draaien.
ben bang dat de OSX gamesmarkt echt in het niet valt...
en "open standaarden" in dezelfde paragraaf als OSX lijkt me ook een beetje raar...
"open standaarden" in dezelfde paragraaf als OSX lijkt me ook een beetje raar...
OpenCL, OpenGL, MPEG4, Darwin, AddressBook, Apache, BerkeleyDB, MySQL, OpenLDAP, Quartz2D, RubyOnRails, X11server...

Moet ik nog doorgaan, want dat lijstje kan heel lang zijn.
Toch fantastisch de kennis van de gemiddelde tweaker over Mac OS X hier. Als je van iets niet genoeg kent, flame het dan ook niet.

//Zijn er weer tweakers die niet tegen de waarheid kunnen??

[Reactie gewijzigd door drib83 op 12 maart 2010 12:57]

MPEG4 is absoluut geen open standaard.
What is MPEG-4?

MPEG-4 (ISO 14496) is a broad Open Standard developed by the Moving Picture Experts Group (MPEG), a working group of the International Organization for Standardization (ISO) which also did the well known MPEG-1 (MP3, VCD) and MPEG-2 (DVD, SVCD) Standards, standardizing all sorts of audio/video compression formats and much more
By its nature the MPEG-4 Standard doesnt aim at standardizing one potential product (eg something comparable to DVD) but covers a broad range of Sub-Standards, which Product Providers can choose from to follow, according to what they need for their product

The MPEG-4 Standard, as mentioned, is divided into many different sub-standards, where for us users on Doom9 the following parts might be of major interest:
- ISO 14496-1 (Systems), Animation/Interactivity (like DVD Menus)
- ISO 14496-2 (Video), e.g. Advanced Simple Profile (ASP), as followed by XviD, DivX5, 3ivx...
- ISO 14496-3 (Audio), Advanced Audio Coding (AAC)
- ISO 14496-10 (Video), Advanced Video Coding (AVC), also known as H.264
- ISO 14496-14 (Container), MP4 container format (uses the .mp4 extension)
- ISO 14496-17 (Subtitles), MPEG-4 Timed Text subtitle format
Ik vermoed dat hij mpeg4 verward met h.264. mpeg4 is uiteindelijk een container format terwijl h.264 een codec is.
Ja... precies. En zo gaat dat vaker. Waar MS je dwingt om zoveel mogelijk in een gesloten formaat gevangen te zetten, bied Apple juist de kans om de gebruikers een omgeving te bieden op basis van (een heleboel) open standaarden.

Dan krijg je het bekende verhaal.. Apple, duur, betalen voor het design. Helaas maken nog te weinig software ontwikkelaars gebruik van de mogelijkheden.

Ik zie graag games als WoW voor beiden platformen. En ik kan alleen maar aanmoedigen om zowel Steam als Half Life openGL te maken. Op deze manier kan het gebruikt worden op meerdere systemen.

Het type thuisgebruikende Windows user denkt niet breed genoeg. "Hey ik werk op Windows en het werkt toch? So what?" Zich niet bedenkend dat ze allemaal gevangen zitten... as in Vendor Lockin.
Precies sommige mensen hebben echt een enorme last van tunnelvisie, in deze thread ook weer allerlei redenen waarom het niet zou moeten, waarom het moeilijk is, waarom dx11 op dit moment zo veel beter is etc etc.
Met dat soort mensen kom je nooit vooruit, staat de techniek stil, en wordt de markt beheerd door 1 monopolist. Valve ziet in ieder geval de mogelijkheden van OpenGL en dat soort ontwikkelaars met visie hebben we nodig.
Gelukkig zijn er nog mensen en bedrijven met toekomst-visie op deze wereld..

[Reactie gewijzigd door een_naam op 12 maart 2010 12:45]

Dus jij hebt uit principe ook geen gameconsole ? :)
Waar heb je het over en wat heeft een console hiermee te maken en wat voegt die smilie toe?
Kortom draag wat zinnigs bij of post gewoon niet.

[Reactie gewijzigd door een_naam op 12 maart 2010 14:33]

En de OpenGL standaard is raar op OSX want?
Want? OSX bestaat uit meer 'open standaarden' dan Windows hoor, de complete kernel is zelfs compleet open-source. Naast veel andere projecten.

Daarnaast is Apple ook ťťn van de bedrijven die juist wel voor OpenGL kiest. Een grote drijfveer achter de webkit-engine, OpenCL, Grand Central Dispatch en nog veel meer.

http://opensource.apple.com/

[Reactie gewijzigd door ZpAz op 12 maart 2010 11:00]

Steam voor OSX klopt maar lang niet alle games in Steam (en Steam is enkel een verkooppunt voor games) ondersteunen openGL en welke dat wel ondersteunen worden lang niet allemaal geport :)

Enkel een behoorlijk aantal games gemaakt door Valve die op de source-engine draaien... Dat zijn er misschien 10/15 in totaal en zijn allemaal shooters (die ongeveer hetzelfde spelen) :) En that's it :P Steam kent honderden, zo niet duizenden games!

[Reactie gewijzigd door watercoolertje op 12 maart 2010 10:41]

Gotta start somewhere man!
Wie zegt dat Steam met OpenGL naar OS X gaat.

Die mensen zullen evengoede bronnen hebben als ik die zeg dat Dx naar Apple wordt geport door Ms. Filosofeer daar maar eens goed over na.
Steam heeft het zelf aangegeven, hiervan is op tweakers.net nog niet zo lang geleden een bericht over geweest.

De Source engine (en de spellen ala Half Life 2, Portal TF2 e.d) zijn geport voor OSX. Alsook stream zelf, doordat het nu gebruik maakt van de Webkit engine ipv de Trident (IE) engine.
Volgens mij maakt de PS3 gebruik van OpenGL.
PS3 maakt gebruik OpenGL ES (1.0) met verschillende nVidia en Sony extensions.

En OpenGL is niet dood, het is zo'n beetje de standaard voor alle professionele software die 3D rendering gebruikt.
Maar voor die software maakt ondersteuning voor de nieuwste features minder uit. Bij games daarentegen ligt de lat wat hoger.
En dat is een probleem omdat ??? OpenGL is net sneller met het beschikbaar maken van nieuwe features. Het is niet omdat het niet in de standaard zit dat het niet kan bij OpenGL.
Ja en nee. OpenGL ES is een van de mogelijke libraries die gebruikt kunnen worden om de 3D hardware in de PS3 aan te sturen. Er zijn echter meerdere andere manieren, en ik geloof dat de meeste grote ontwikkelaars gewoon direct de hardware zelf aansturen ipv een extra laag als OpenGL te gebruiken (want dat geeft meer controle en mogelijk betere performance)
WoW op linux>> OGL.

Hoop dat Carmack weer eens werkt aan een dikke OpenGL game/egine. Weet het niet, hou me er niet meer zo mee bezig als in de tijd dat ik VoodooExtreme volgde.
R.A.G.E. en hij roept dat het cutting edge is terwijl het er 3jaar-geleden-cutting edge uitziet. Hij weigerde ook meer dan Dx9 te ondersteunen, zo cutting edge gaat R.A.G.E. worden.
John Carmack kan beter zwijgen in 2010 en we zullen hem als icoon kunnen onthouden ipv dementerende game dev.
Alle 3D games op Linux & OS X gebruiken OpenGL. Ook de iPhone gebruikt een afgeleide versie van OpenGL geloof ik. Dus om je vraag te antwoorden: Ja, meer dan ooit, en gelukkig maar!

[Reactie gewijzigd door seppevs op 12 maart 2010 10:21]

Goh, leeft OpenGL nog? In PC Games zie je het echt niet meer.
Misschien iets verder kijken dan de PC wereld?

Alle Unix varianten (AIX, FreeBSD,Linux ,OSX, etc) maken gebruik van OpenGL.

Daarnaast maken bijna alle 3D capable mobiele telefoons gebruik van OpenGL (ES).
CoD4 for mac is toch wel een goed voorbeeld dat OpenGL zeker niet niks is. Alle andere mac & linux gerelateerde 3d software & games, incl. mobiele telefoons.

[Reactie gewijzigd door Gamebuster op 12 maart 2010 16:00]

COD4 is volgens mij onder OSX een DX game, welke dmv Cider geport is (Wine dus).
Wil nu hardwarematige tesselation haar intrede heeft gedaan, dat ook zeggen dat hogere geometrie als subdivs en NURBS hun intrede gaan doen binnen games? Daar deze objecten altijd onderhevig zijn aan een tesselation proces en dat voorheen veel te veel overhead gaf.

Het geeft echter veel mogelijkheden tot organische en vloeiende animatie, tot hele precieze interpolatie van detail en een bepaalde mate van controle die met per vertex animatie simpelweg niet mogelijk is. (niet dat het de heilige graal is hoor, in veel gevallen zou ik zelf alsnog voor poly´s kiezen, maar in sommige gevallen...)
NURBSs zijn in principe gewoon wiskundige definities van lijnen en de vlakken ertussen. als er in de viewports van een 3d pakket een nurbspatch met trims e.d. getessellate en gerenderd kan worden dan zullen daar ongetwijfelt al demos van zijn waarin NURBS kunnen worden gerenderd. Het tesselaten van de NURBSs en dan de polies renderen zal het probleem dus ook niet zijn.

Wat denk ik wel een probleem zal worden zal het verkrijgen van texture-coordinates zijn. Als je als vereiste meegeeft dat iedere aptch zich tussen 0 en 1 bevind in de UV space en deze (wanneer ongetrimt) 100% benut lijkt het haalbaar, maar dan zit je met distortion in je maps. Je artist moet dan tijdens het painten rekening houden met distortion in de patch en voor iedere pixel inschatten/berekenen met welke distortion deze gepaint moet worden om de distortion in het model te compenseren. Tenzij die een 3dpaint programma gebruikt die NURBS verstaat. Photoshop CS4 extended kan dit in ieder geval prima met polies, ik zie een vergelijkbare interface die met NURBSs zou kunnen werken om binnen redelijk tijd iets toonbaars te krijgen.

Dan nog kun je de map alleen op de getessellate versie van het model toepassen en moet je dus per tessellation een andere map gaan bouwen omdat anders je UVs niet meer bij de vertices passen en dus je map allerlei vage distortion krijgt. Als je dan verschillende hoeveelheden van details tessellate in je 3d programma en die apart unwrapped heb je dus in principe hetzelfde resultaat. Maar dat bestaat al en heet level of detail (LOD). Meerdere resoluties van hetzelfde model gebruikt voor verschillende afstanden.

Als je een NURBS model hebt zonder de verticees (want die hebben NURBSs helemaal niet) word het moeilijk om je UVs ergens aan te koppelen. Je zou dan alles wat normaal een diffusemap zou zijn in-cut moeten maken, iets dat je polycount astronomisch maakt bij een keer tesselaten. Bedenk dan dat je misschien ook 2/3 maps per patch zou willen.

Wat ook zou kunnen is zorgen dat de patch lay-out zo is opgezet dat alle patches zo goed als vierkant zijn, allemaal de de UV-space 100% gebruiken en ieder een eigen map meegeven. Soort van alsof je met tiles werkt. Dan zou het best wel eens kunnen werken omdat de positie van verticees in de getesselate patch makkelijk te berekenen zouden zijn.

Zelf denk ik dus niet dat een NURBS-based game-engine op korte termijn zal verscheinen. Als hij er komt dan zal het een nieuwe techniek zijn waarin de patches niet worden omgezet in polies. Verder zou het waarschijnlijk een raytracer zijn (o.a. ivm de ongelimiteerde normals van NURBSs en het gebrek aan triangles) en zou het dus gebruik maken van openGL noch Direct3D. Daarmee kun je misschien heel de tessalation-stap omzeilen omdat je op basis van de hoek waarop de ray van 1 pixel een surface-point raakt de kleuren bepaald die de lichtstraal uiteindelijk aan de pixel meegeeft. De polycount van je scene is dan dus 0 en de zwaarte van de scene of object hangt van af van vooral het aantal te renderen pixel en de complexiteit van de patches. Als je dan je maps in vector images kan maken (eps, ai, dwg) kun je ook de kleur van die pixel zeer exact berekenen. In principe heb je dan een ongelimiteerde resolutie voor zowel je model als je map. Dat willen we wel graag denk ik ;).

Misschien als het volledig op de grafische kaart draait in cuda b.v. en je per patch per map een core aan de slag kunt zetten is het over een paar jaar wel op 30 fps te renderen. Het plannen van patch-layouts word dan wel uberbelangrijk.

Dus nee, ik denk niet dat hardware-tesselation een bijdrage levert aan het realtime renderen van NURBSs voor in games vanwege problemen met het texturen ervan.

jezus wat een verhaal. leuk om over na te denken, dat wel :P.

[Reactie gewijzigd door ErwinPeters op 12 maart 2010 20:13]

Wat een verhaal indeed. :P

Om NURBS of wat voor hogere geometrie dan ook (ik denk eigenlijk meer aan het nut van subdivs of bezier patches die me beter beschikt lijken voor games) te texturen mis je UV´s. Dat is een nadeel, maar alle vormen van globale texturing zijn gewoon mogelijk.
Ik denk hierbij bijvoorbeeld aan het gebruik van procedurele textures.
Normaliter zijn deze enorm intensief (t.o.v. texture BITMAPS), maar het zijn ook bij uitstek toepassingen (want het zijn eigenlijk programmaatjes) die je hardwarematig kan implementeren en een enorme flexibiliteit geven omdat ze in de toepassing enkel wat parameters mee hoeven te krijgen voor een bepaald effect, daarbij zijn die parameters variabel.

Denk hierbij bijvoorbeeld aan de animatie van een lichaam.
Niet alleen kan het LOD enorm dynamisch gemaakt worden, de animatie kan organischer en bijvoorbeeld een procedurele textuur zou de textuur van de huid dynamisch kunnen veranderen zonder dat hiervoor meerdere maps nodig zijn.

Carmack heeft in Quake3Arena al experimentele bezier patches gebruik voor oppervlakken die organisch waren. Toepassing van hogere geometrie is dus niet nieuw.
Subdivs of NURBS zijn echter wel flink `hoger´ (meer overhead) dan bezierpatches.
Dus in die zin is het niet vreemd dat het nagenoeg (naar mijn weten) geen toepassing heeft. Er zijn echter imho legio voordelen te bedenken.
Nogmaals: niet de heilige graal, maar zeker wel nuttig.
DirectX is OpenGL al jaren geleden voorbij gestreefd. Terwijl developers om nieuwe technieken vroegen, hield OpenGL veel te lang vast aan z'n "oude" technieken, terwijl DirectX steeds opnieuw werd uitgebreid en voldeed aan de vraag van developers.

Verder heb ik vernomen dat zeker vanwege de zeer goede ontwikkeltools van microsoft, coden voor DirectX relatief gezien makkelijk is. Het enige nadeel is dat het niet crossplatform is, maar gezien het enorme marktaandeel van windows en het feit dat 99% van de games niet op andere platformen uikomen, lijkt me een makkelijke keuze voor de developer.

Verder is het ook zo dat de optimalisaties in videokaarten, van zowel ATi als nVidia, gefocused zijn op directx performance. Dit merk je aan de drivers en aan de hardware matige verbeteringen. Uitzondering hierop zijn natuurlijk de FireGL en Quadro kaarten, die weer geoptimaliseerd zijn voor OpenGL.

Zoals het al jaren er aan toe gaat, is ook deze keer OpenGL die achter DirectX aan huppeld...
Zoals het al jaren er aan toe gaat, is ook deze keer OpenGL die achter DirectX aan huppeld...
Behalve dat nieuwe hardware functionaliteit altijd eerst getest wordt op OGL. Dat komt omdat wanneer nvidia een nieuwe kaart released, ze er meteen een OGL extension bij doen voor de nieuwe feature. Bij DX moet je wachten op een nieuwe DX release van microsoft. Op die manier heeft OGL altijd veel eerder de volledige hardware kunnen benutten. Indien een extension een succes bleek werd die later ook als functionaliteit aan DX toegevoegd. Om diezelde rede (en uiteraard vanwege de unix ondersteuning) wordt vrijwel al het onderzoek in graphics op OGL gedaan. Alle functionaliteit van OGL 3 was bijvoorbeeld al tijdenlang beschik baar in OGL2+extensions. Het enige dat toen veranderd is, is dat het van extension naar core is gepromote. DX9 en DX10 deden aan mooie marketing voor "nieuwe" features, die dus eigenlijk alang bestonden.
Hoera, voor je in de gamecode aankomt eerst 1200 extensies checken om te kijken of ze wel gesupport worden en fallback-paden schrijven, leuk hoor ! :)
Met Zojar. Enkel alleen dit zinnetje
Terwijl developers om nieuwe technieken vroegen, hield OpenGL veel te lang vast aan z'n "oude" technieken, terwijl DirectX steeds opnieuw werd uitgebreid en voldeed aan de vraag van developers.
geeft keurig bloot dat je eigenlijk geen idee hebt waar je over praat. Voor DirectX geld dat enkel en alleen MS bepaald wat er wel en niet in zit en wanneer dit gereleased wordt. Bij OpenGL kan de kaartenbakker, zodra hij zijn kaart af heeft, de developer een extention aanbieden waarmee de nieuwe functionaliteit gebruikt kan worden.

Het is dus altijd OpenGL waarbij de nieuwste techniek als eerste gebruikt kan worden. Daarbij hoef je niet te wachten totdat MS ook eens besloten heeft om die feature in te bakken.

Deze aanpak heeft echter ook een keerzijde. Door de extenties krijg je ook een redelijke wildgroei waardoor je als developer genoodzaakt wordt dezelfde functionaliteit meerdere keren te implementeren omdat de extention van Ati en nVidia net weer wat anders werken.
Je geeft nu dus feitelijk aan, dat een developer voortaan per kaart moet kijken hoe en wat. Terwijl het voor de ontwikkelaars vele malen makkelijk is als er 1 platform is (directx in dit geval) waar men zich aan dient te houden.
Dat klopt bijna. Alleen voor de nieuwste technieken die nog niet door de ARB behandeld waren had je aparte paden per leverancier nodig. Dat is ook het grote nadeel van die extentie structuur. Het is echter pertinent onwaar wanneer je beweert dat de nieuwste technieken als eerste in DirectX beschikbaar waren.
Nou, sorry hoor, maar alsof je ook maar enige invloed hebt op wat er in OpenGL wel/niet komt.. De groep die gevraagd wordt voor wat voor opties nodig zijn voor de nieuwe DirectX is minstens zo groot als de groep die beslist wat er in OpenGL bijkomt. En juist die extenties zijn een probleem, ja leuk dat een bepaalde kaart werkt, maar een andere kaart werkt niet met die extenties, dus niet interessant voor een developer (tenzij die betaald wordt door de fabrikant)...

[Reactie gewijzigd door SuperDre op 12 maart 2010 13:43]

Ik denk dat Kronos hiermee OpenGL steeds meer op de achtergrond laat verdwijnen. Het zou heel goed kunnen zijn dat hierom steeds meer ontwikkelaars overstappen naar DirectX. Al zou als ontwikkelbedrijf toch moeten afvragen in hoeverre wil je compatibliteit laten voortbestaan.
Ik snap echt niks van je opmerking?? Ze werken OpenGL bij met support voor de nieuwste feautures van graka's en dat zou niet goed zijn??
Zoals het artikel schrijft kan je met OpenGL4 enkel nog >HD5xxx/>4xxGTX gebruiken en niets ouder dan dat.
Dat is een reden om als bedrijf het nog te ontwijken zolang klanten oudere kaarten gebruiken.
Ja dat staat in het artikel ja, maar waarom zou dat dan betekenen dat mensen gaan overstappen naar DirectX of wat dan ook? Voor een DX11 game heb je toch ook een DX10 kaart nodig, en als je beide wilt supporten moet je 2 versies maken van je render engine? Dus dan snap ik de opmerking van Typnix nog steeds niet.
Ik snap er ook de ballen van, misschien kan ie ff uitleggen wat ie in nu precies had bedoeld?

DirectX 8 is ook niet compatible met DirectX 10, en dat heeft ook nog nooit iemand tegengehouden om DirectX voor zijn spel te gebruiken. Sterker nog, de meeste games hebben verschillende render paths voor DX9, DX10, straks DX11 en soms zelfs nog < DX9.

[Reactie gewijzigd door johnbetonschaar op 12 maart 2010 14:01]

Met die compatibiliteit breken ze nu toch ook deels?
Ik vind het persoonlijk zeer netjes dat ze twee versies ontwikkelen. Op deze manier kan een gamedeveloper de afweging maken tussen grafische pracht en ondersteuning van grafische kaarten.

ps. Dat getld natuurlijk ook voor de talrijke andere ontwikkelaars :)

[Reactie gewijzigd door Caelorum op 12 maart 2010 10:19]

Misschien op de PC, maar bij wijze van spreken alles buiten de PC zie je steeds meer OpenGL. Neem bijvoorbeeld mobieltjes, iPhone, Blackberry, Palm en Android ondersteunen OpenGL.

Bij de niet MS consoles is het vaak iets wat gebaseerd is op OpenGL.

DirectX lijkt dus meer niet meer te groeien, qua marktaandeel.
DX10 vereist ook een DX10 kaart en DX11 vereist een DX11 kaart. Ik zie echt het probleem niet. OpenGL vereist net minder specifieke kaarten dan DX. Daarnaast kan met OpenGL 3.3 bijna alles wat met OpenGL4 ook kan en brengt het deze technologie dan ook naar alle platformen, inclusief XP, een platform dat MS met DX10 reeds heeft laten vallen.
Beetje offtopic: maar je hoort vaak van xbox fans dat de 360 tot betere grafische prestaties dan de ps3 in staat is.
Toch is er geen enkel spel op de 360 wat kan tippen aan een ps3 exclusive.
Nu hoorde ik onlangs van een xbox fan de verklaring hiervoor:
Directx is te bloated en door het te gebruiken zal je nooit de volledige power van je gpu tot je beschikking hebben. Voordeel is wel dat het makkelijker is.

Ontopic: als dat waar is, dan ben ik voor opengl. Moeilijker maakt niet zo veel uit als de developers en de artiesten daardoor meer kracht tot hun beschikking hebben om zich visueel te uiten.
Het is dus zeker goed dat er een 4.0 specificatie is. Ook pc games kunnen dus nog betere graphics of hogere framerates hebben wanneer ze niet het bloated directx gebruiken.

En makkelijker poorten naar andere platformen zal zeker weten een grote plus zijn.
"Directx is te bloated"

"Direct3D is geweldig"

Althans, dat zegt JOHN CARMACK, die in de begindagen van Direct3D nog (terecht) het een verschikkelijke API noemde en zelfs met een aantal anderen uit de industrie een boycot begon vanwege de slechte kwaliteit.

Tegenwoordig is er heel veel veranderd en prijst hij DX de hemel in en heeft hij al meerdere malen afgegeven op de langzame progressie van OpenGL. Dat toch jarenlang zijn API was. (hij bleef stug openGL gebruiken terwijl de rest van de industrie op DX zat)

Gewoon even de feiten.
Maar ach, wie is John Carmack....
John Carmack heeft zich sinds de introductie van OpenGL 3.0 ook niet meer over OpenGL uitgelaten. Ik ben eigenlijk wel benieuwd hoe hij er nu tegenaan kijkt. OpenGL is de laatste 2 jaar enorm veranderd in de positieve zin.
Ben ik ook wel nieuwsgierig naar.
Vanuit een markt-technisch en concurrerend oogpunt is het natuurlijk beter dat een API als OpenGL standaard zou worden.

Toch, neemt niet weg dat games vanuit de ID schuur tegenwoordig gemaakt zijn op DX (Rage) en OOK ondersteuning hebben voor OpenGL (voor MAC)
Dat was vroeger toch echt anders. (OpenGL)
persoonlijk heb ik NIETS met directx, ben een opengl fan. Opengl maakt multiplatform software mogelijk (win, linux, mac, android, andere mobiele platformen, etc). Vooral mobiele systemen zijn belangrijk in dit rijtje, deze markt wordt verschrikkelijk snel groot.

DirectX is zeker niet bloated. Het is een (hele goede) programmeer interface (API dat tussen de software zit en de hardware, met nog wat laagjes software ertussen). Of je nu directx of opengl gebruikt, zou qua performance niet moeten uitmaken. Ik heb er ooit naar gezocht een GEEN OVERTUIGENDE TESTEN kunnen lezen dat de een sneller is dan de ander. Wel genoeg testen die niet objectief ware en belangrijke zaken weg lieten in de vergelijking.

De specificaties hoe directx of opengl tegen de hardware praat daarentegen heeft wel invloed, net als de drivers die hierop gebasseerd zijn. Maar dit ligt tegenwoordig vrij dicht bij elkaar. nvidia, ati en intel proberen dit qua driver implementatie bij elkaar te houden.

Edit:
De tekst hieronder van Lenny_z is suggestief onjuist. Feitelijk komt het erop neer dat:
  • Directx bloated was, maar niet langer bloated is.
  • Opengl een langzame progressie had, maar tegenwoordig weer helemaal meeloopt (zie recente uitspraken van ATI en nvidia en de unigene.
beiden zijn dus aan elkaar gewaagd, maar directx is momenteel populairder, terwijl opengl/opencl markt wint op het moment en nu al bijna gelijkwaardig ondersteund word in de nieuwste game engines.

[Reactie gewijzigd door tmpdir op 12 maart 2010 14:22]

Glide is toch van 3dFX en allang ter ziele? OpenGL heeft volgens mij niks te maken met Glide?
Ik had altijd begrepen dat Glide 3DFX's adaptatie van OpenGL was.
Glide was gebaseerd op openGL, maar dan geoptimaliseerd voor games en de 3dfx kaarten.
Het is vreemd om te zien hoeveel mensen OpenGL onderschatten. OpenGL is nog altijd een zeer belangrijk instrument in grafische software. Wat denk je van de Playstation 3? OpenGL ES. Wat denk je van hoe het gros van de animatiefilms wordt gerenderd en ontwikkelt? In veel gevallen komt daar OpenGL bij kijken. iPhone/symbian/android games? OpenGL.

OpenGL is overal en zeker nooit weggeweest. Dat directx vooral terein heeft gewonnen in de PC-game wereld en met de xbox 360, betekent niet dat het weg is. Ik vermoed zelfs dat het nog groeiende is, aangezien die afzetmarkt van OpenGL vele malen breder is.
Wat denk je van de Playstation 3? OpenGL ES.
OpenGL is maar een van de mogelijke libraries voor 3D aansturing voor de PS3, en een die naar horen zeggen (moet zeggen dat ik zo zelf geen PS3 developers ken) niet veel gebruikt wordt.
Verder ben ik het wel met je eens hoor, DirectX is alleen in Windows en Xbox games veel gebruikt, verder wordt vrijwel overal juist OpenGL gebruikt :)
Maar OpenGL is alleen graphix, DirectX is alles.. dus die 2 met elkaar vergelijken heeft sowieso weinig zin.. OpenGL moet je vergelijken met Direct3D..

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