Hoofdcategorieën
Device Settings

OpenGL 2.0-standaard officiëel aangekondigd

Door Wouter Tinus, woensdag 11 augustus 2004 19:49
Bron: OpenGL, views: 13.409

Het OpenGL ARB (Architecture Review Board) heeft vandaag de langverwachte versie 2.0 van zijn vrij beschikbare API voor 3d-rendering aangekondigd. Hoewel de sprong in versienummer van 1.5 naar 2.0 een vrij grote stap voorwaarts suggeert, zal er voor gamers op het visuele gebied waarschijnlijk bar weinig van te merken zijn. De nieuwe versie van de API zit qua features namelijk ongeveer op hetzelfde niveau als het bijna anderhalf jaar oude DirectX 9.0. De doelstellingen voor de release lagen in eerste instantie een stuk hoger, maar uiteindelijk heeft men zich meer gericht op het programmeergemak dan op nieuwe features.

OpenGL 2.0Het voornaamste voordeel zit hem in het feit dat verschillende uitbreidingen die in de loop van de jaren zijn bedacht door de verschillende fabrikanten van videochips, nu in de kern van de API zijn opgenomen. Hierdoor kunnen enkele veelgebruikte features nu eindelijk op een standaardmanier gebruikt worden op kaarten van verschillende merken (degenen waar OpenGL 2.0-drivers voor gebouwd worden althans, wat tenminste Intel, ATi, nVidia, 3dLabs en Matrox betekent). De meest noemenswaardige toevoeging is de OpenGL Shading Language voor pixel- en vertexshaders, maar ook op andere punten (zoals point sprites en stencils) is er flink wat op de schop gegooid. De uiteindelijke versie van de specificatie wordt overigens pas aan het eind van de maand verwacht.

Volgende 20:37 Infineon test eerste onderdeel FB-DIMM geheugen
Vorige 19:14 Top 10 belangrijkste veiligheidsverbeteringen in SP2
Advertentie

Reacties

«  1  2  »

een leuk idee, die open standaarden, alleen jammer dat ze jaren achterlopen.

Je zegt het verkeerd, jammer dat andere standaarden overheerzen en daarmee de ander van de troon af schopt. Ik heb sinds half-life OpenGL altijd al mooier gevonden dan directx.

opengl mooier? leg es uit dan :) wat maakt opengl mooier? :)

Het opvallende verschil was merkbaar ten tijde van quake II en de ATI Rage Pro, vormen waren mooier "rond", lightning zag er net even beter uit, het oogde gewoon allemaal net even wat beter. Of dat nu nog het geval is, met inmiddels directX 9.0b, waag ik te betwijfelen, directX heeft zich inmiddels ook erg waar gemaakt als het gaat om hoe het er uit ziet. Nog een belangrijk verschil was overigens dat met bescheiden hardware een game op open GL erg goed liep, dat in tegenstelling tot directX. Het is voor mij trouwens een reden geweest om toentertijd voor ATI te gaan, zij waren één van de weinigen die open GL overtuigend implementeerden.

lightning
bliksem? Of bedoel je lighting? ;)

Verder is het je hardware dat de polygonen tekent, niet de API. Het is derhalve dus ook niet zo dat opengl mooier is dan directx. Als dat zo is dan ligt dat puur aan de game of de drivers van je videokaart, en niet aan de API's zelf.

dan heb je 't over pre-DX8 tijd denk ik? DX7 en eerder waren crap, maar ik denk niet dat je tegenwoordig een verschil in kwaliteit of performance moet verwachten...

Ik ben het tormentor1985 eens dat OpenGL 'mooier' is.
Persoonlijk vind ik dat de state-machine van OpenGL 'mooier' werkt dan DirectX.
Ook het extensie gedeelte van OpenGL vind ik een groot voordeel ten opzichte van DirextX.
Op die manier hoef je niet te wachten op een nieuwe versie van de API voordat je nieuwe voordelen/features van een grafische kaart kunt gebruiken.

jij hebt 't over de "mooiheid" van de api, tormentor heeft het over de beeldkwaliteit...

Dat is een vrij onzinnige uitspraak. Zowel DirectX als OpenGL zijn slechts API specificaties. Dat wil dus zeggen dat de OpenGL standaard voorschrijft dat er een procedure TekenEenCirkel(x, y, r) bestaat, die een cirkel tekent met middelpunt x, y en radius r. DirectX heeft dan vergelijkbare procedures. Uiteraard zijn complexere zaken op andere manieren op te lossen (je kunt TekenEenCirkel ook twee hoekpuntenpunten, dus x1, y1 en x2, y2 meegeven en dan kun je er ook ellipsen mee tekenen). Daardoor zijn DirectX en OpenGL niet identiek.

Hoe 'mooi' of 'efficiënt' de resultaten verder zijn wordt grotendeels bepaald door de programmeurs van drivers voor je videokaart. Zowel de OpenGL als de DirectX specificatie laten enige ruimte bestaan bij de implementatie van de API's. Daarom zien graphics er op verschillende videokaarten ook vaak anders uit (ongeacht welke API er gebruikt is).

Waarin zitten de verschillen dan wel? Zoals al gezegd werd in DirectX 9 bepaalde functionaliteit al aangeboden die niet in OpenGL 1.5 zit. Als de functionaliteit niet in de API specificatie zit, dan zit die functionaliteit dus ook niet in (strict) OpenGL 1.5 compliant drivers.

Verder verschillen de procedures uit de API's nogal van de mogelijkheden die de hardware biedt. Driverschrijvers moeten een manier verzinnen om zo efficiënt mogelijk de procedures (zoals het tekenen van een cirkel) uit te voeren met de middelen die hardwarematig ter beschikking staan. Omdat de specificaties verschillen kan het voorkomen dat een van de twee procedures die ongeveer hetzelfde doen net wat efficiënter kan worden geïmplementeerd dan de andere.

Precies daarom is het van belang dat er zorgvuldig wordt nagedacht over de manier waarop nieuwe features worden gespecificeerd: hoewel het aantrekkelijk is om alle denkbare features in OpenGL 2.0 te stoppen, zal niemand het willen gebruiken als de bijbehorende procedures zo worden gespecificeerd dat ze niet efficiënt en correct geïmplementeerd worden. Het is daarom ook geen ramp om een beetje achter te lopen; op die manier kunnen de resultaten van DirectX en vendor-specific API's geëvalueerd worden voordat nieuwe features toegevoegd worden.

"Hoewel de sprong in versienummer van 1.5 naar 2.0 een vrij grote stap voorwaarts suggeert, zal er voor gamers op het visuele gebied waarschijnlijk bar weinig van te merken zijn"

Hoezo, niet iedereen gamed op Windows en los daarvan er zijn zat OpenGL games. 't Is toch de standaard op 3d gebied, hardstikke mooi toch dat het zich kan meten DX(9) dat zich bijna uitsluitend op features richt.

De extenties voor OpenGL 1.x zijn ook voor Linux/Mac/etc. beschikbaar, dus ook niet-Windows-gebruikers schieten er weinig mee op.

Want? De vergelijking is OpenGL2 versus DirectX, die is toch echt krom :)

Als ik het zo lees veranderd er wel degelijk heel wat. Mesa kan zich nu bv meten met de binary OpenGL drivers, nou ja erg simpelgesteld dan.

Natuurlijk verandert er wel wat, maar niet qua beeldkwaliteit, en daar ging het over. De grootse nieuwe features van 2.0 werden allang gebruikt, maar dan als (niet-gestandaardiseerde) uitbreidingen.

Zal OpenGl 2.0 nog geimplimenteerd worden in de Doom 3 engine met een patch ofzo zodat er hogere framerates behaald kunnen worden?

Wat ik uit het verhaal begrijp is dat het niet hogere framerates opleverd, maar dat programmeurs veel functies die ze nu al gebruikten (en dus vaak merk/kaart gebonden waren) op een standaard manier aangereikt krijgen. Dit heeft dus als het goed is betere code tot gevolg (en daardoor misschien een beetje meer snelheid) en waarschijnlijk minder haartrekkerij van ontwikkelaars :)

@ Wisthler: het levert niet meteen hogere framerates op, maar programmeurs die onder druk staan hebben vaak de neiging smerige code te schrijven. Door officiele standaarden vast te leggen wordt een programmeur min of meer gedwongen 'nette'/standaard code af te leveren. Hij wordt hierbij dan geholpen door oa de documentatie die bij zo'n officiele standaard hoort.
Wat ook performance winst kan opleveren is het feit dat programmeurs voor bepaalde chipsets/kaarten geen uitzonderingen ed te schrijven.

Waarom zouden dingen die al gebruikt worden, ineens sneller werken omdat ze in een officiele standaard zitten?

Doom3 zal OpenGL 2.0 gebruiken.
Carmack werkt ook aan OpenGL mee ;)

"Doom 3 was written using a custom OpenGL driver with extensions. It's
Carmack's version of OpenGL 2.0. It adds complex shader support, per
pixel lighting, fragment programs, etc, etc, a lot of the same feature
set. The two API's both use the same hardware; the hardware provides a
baseline set of features that the API can implement. However, Doom 3's
OpenGL was able to get many features working in software on older
hardware as well."

Ik citeer dit maar even letterlijk uit de nVidia nieuwsgroep.

Wat zijn we allemaal weer negatief met z'n allen he. natuurlijk kan je sneller een model ontwerpen als je dat in in je 1tje doet! (lees microsoft) en uiteindelijk zal iedereen d'r ook wel mee gaan werken (denk internet explorer) maar is dat echt de manier waarop wij met elkaar om willen gaan? opengl 2.0 is meer dan een specificatie of gewoon een stukje software. het is ook een filosophie, een idee van hoe wij (open source aanhangers) vinden dat je met elkaar om zou moeten gaan, samenwerken, samendenken, en dat kiezen wat voor iedereen voordeel opleverd. met de release van opengl 2.0 laat de ARB groep toch weer es wat moois zien. en wat nou gezeur over visueel gebied? titels zoals ut2004 en doom III zijn in linux op dezelfde snelheid en met dezelfde features te gebruiken.

Microsoft ontwikkelt DirectX toch anders ook allang niet meer in zijn eentje, daar zijn ook tientallen hardware- en softwarepartners bij betrokken (waarvan een significant deel overigens ook ARB-lid is). Het voornaamste verschil is dat er bij het commerciële DirectX harde deadlines gesteld worden en er knopen doorgehakt worden als men het ergens niet over eens wordt. De ARB lijkt af en toe eindeloos door te blijven ruzieën, waardoor iedereen ondertussen gedwongen wordt om zijn eigen uitbreidingen te bakken en promoten. Dat soort fragmentatie kan in sommige projecten een voordeel zijn, maar voor een API die de razendsnelle ontwikkelingen op het gebied van GPU's moet bijhouden en ondertussen uniform poogt te zijn werkt het imo niet echt al te handig. OpenGL mag dan veruit het beste alternatief voor DirectX zijn - mogelijk zelfs beter - maar heel erg efficiënt gaan ze niet te werk.

Goed dat er eindelijk een standaard komt. Ik denk dat programmeurs nu gek worden van al die GL_NV_*, GL_ATI_* etc. extensies, en ze mogelijk daarom links laten liggen. OpenGL 2.0 kan er daarom voor zorgen dat meer spellen/demo's de nieuwe grafische functies gaan gebruiken.

Als een opengl dingetje niet specifiek voor een kaart word geschreven zou het zelfs ook langzamer kunnen wezen.

Dan gaat het ermeer om welke videokaart de standaard implementatie het snelste kan uitwerken.
Zou Doom3 de officiele standaard gebruiken dan zou het best wel eens langzamer kunnen wezen voor sommige kaarten en misschien iets sneller voor andere.

Maar je kan ervan uitgaan dat de standaard wel zo efficient mogelijk in elkaar zit.

Dan zullen ze de nieuwe kaarten maar aan de standaard moeten aanpassen inplaats van andersom. Anders kan je standaarden maken wat je wilt, in de game wereld gaat prestatie toch voor.

En het mooie van OpenGL games is, dat ze met een aangepaste installer ook op Linux e.a. draaien. :7 :9

laten we hopen dat opengl hiermee weer wat meer gebruikt gaat worden.. als linux gebruiker blijf ik al dat directx-gebeuren eigenlijk wel jammer vinden (hoewel de twee titels waar ik het meest naar uitkeek -- UT2004 en Doom3 -- gelukkig wel met OpenGL werken).

Ik verwacht niet dat ik na Doom3 nog weer fanatiek gaat gamen (doe het nu al nauwelijks.. misschien word ik oud ^^) maar ik hoop wel dat opengl wat meer geadopteerd zal gaan worden met deze 2.0 Als Linux iets nodig heeft, is het een lading commerciele games. Ik zie veel mensen zeggen dat ze wel linux willen draaien, maar vanwege de games niet overstappen.

Ziehier het lapmiddel?

Het lapmiddel?
Als games nu gebruik moeten maken van ogl2.0 betekend dat voor VEEL programmeurs dat ze hun complete code kunnen herschrijven..
en dat is in 1 jaartje niet gebeurd bij de meeste games....

Dus over een jaartje of twee zullen we de eerste OGL2.0 games zien..

w00t w00t.. en nu maar weer fijn terug naar 1989...

Verreweg de meeste (ARB_) extensies die 2.0 behelzen (en nu worden geintegreerd) bestaan al een hele poos (twee jaar oid), het is dus niet zo dat 2.0 een 'herschrijving' betekent, hoogstens een hernoeming van functies. Da's in drie minuten gebeurt met search/replace. Ik vind dat het artikel onterecht het idee wekt dat DirectX9 tot nu toe meer kon dan OpenGL.

Door de modulaire opzet van OpenGL is een 'major release' niets anders dan een formaliteit. OpenGL wordt per feature (extensie) ontwikkeld. Zo kan een driver ontwikkelaar zelf beslissen of ze een bepaalde feature implementeren of niet, en kunnen ze snel nieuwe features toevoegen zonder te wachten op een nieuwe DirectX release.

Als je je hele code moet herschrijven dan doe je toch echt iets fout. Ik mag toch hopen dat de meeste games een abstractielaag tussen de visualisatie en de logica hebben zitten.

EDIT: Als je zowel OpenGL als DirectX ondersteund *moet* je zelfs zo'n laag hebben.

Men heeft het hier overwegend over games, maar wat men moet begrijpen is dat OpenGL 2.0 daar niet z'n belangrijkste werk levert. OGL2.0 is belangrijk voor applicaties: voor de workstation, voor critische applicaties en 'enterprise' oplossingen. We hebben het over het betere 3D werk, en dan heb ik het niet over een simpel dom spelletje (om het zo maar grofweg te zeggen: ik speel ook flink wat af) zoals Doom3.

OpenGL is stabiel en industrie standaard in de werkomgeving. Daarom is OpenGL belangrijk. Niet omdat het daarnaast ook dusdanig goed is dat het in spelletjes gebruikt kan worden.

Je hebt volkomen gelijk, ik kan me niet anders herinneren dat ik de OpenGL Driver gebruik in 3D Studio Max omdat DirectX gewoon altijd crap werkt. Kan misschien liggen aan het feit dat de DirectX ondersteuning van 3D Studio Max niet goed is. Maar goed, in die app steekt OpenGL IMO met kop en schouders boven DirectX uit.
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 20:37 Infineon test eerste onderdeel FB-DIMM geheugen
Vorige 19:14 Top 10 belangrijkste veiligheidsverbeteringen in SP2
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011