Gathering of Tweakers

Quicksearch
Berichten: 20
Reg. datum: 12 maart 2006

quote:
.oisyn schreef op donderdag 08 mei 2008 @ 00:22:
[...]

Cross platform? Op de PC ja. Lekker boeiend. Als je het over cross-platform games hebt, dan gaat dat in 99.999% van de gevallen niet over games die naast Windows ook op Linux en OS X draaien, maar om games die ook op de consoles van MS, Sony en Nintendo draaien. En die doen geen van allen OpenGL. Daar sta je dan met je zogenaamde cross platform API :).
Ik weet niet wat Nintendo doet, maar de PS3 gebruikt OpenGL ES. Het voordeel is natuurlijk dat het op iedere console geďmplementeerd kŕn worden.
quote:
[...]

Omdat OpenGL achter de feiten aanloopt en extensions een hel zijn om tegenaan te programmeren. Het voordeel dat je direct nieuwe features van hardwarefabrikanten kunt gebruiken is direct ook het nadeel - vergelijkbare features gebruiken voor verschillende vendors ook verschillende extensions die allemaal net iets anders werken, totdat er een log apparaat als de ARB eroverheen is gegaan om het te standaardiseren.

Er is 1 heel groot voordeel om voor Windows Direct3D te verkiezen boven OpenGL, en dat is support, documentatie en development tools. Heeft OpenGL een shader debugger? Heeft OpenGL een analyser zoals PIX? Hell, heeft OpenGL eigenlijk sowieso een standaard shader taal en compiler? Nee, nee en nee. Het is volledig afhankelijk van de community die dat soort tools aanleveren.
OpenGL loopt alleen met de nieuwe D3D10 features achter de feiten aan omdat die door MS bedacht zijn en pas later door GPU fabrikanten overgenomen, doordat het makkelijk is uit te breiden wordt OpenGL juist gebruikt door die laatsten om nieuwe features uit te testen. Dat standariseren daarna wat langer duurt is nu eenmaal het nadeel van consus zoeken, tov één bedrijf wat de dienst uit maakt, maar de hoeveelheid 'dubbele extensies' is zeer gering, aangezien de fabrikanten liever elkaars ontwerp overnemen (zie de lange lijst GL_EXT_ extensies).

Wat betreft tools heb je gelijk dat MS daar een goed alles in een pakket levert terwijl voor OpenGL inderdaad verschillende tools gezocht moeten worden, maar nVidia biedt toch ook een SDK met documentatie en verschillende tools en als je een beetje game maakt vast ook wel support. GLSL is tegenwoordig trouwens wel degelijk gestandariseerd! Er zijn alleen meerdere compilers, zoals ook voor C++.

IMHO is het grootste verschil echter dat OpenGL ontwikkelt wordt door de fabrikanten (vanuit hardware-perspectief) als standaard API om hun hardware te kunnen gebruiken, terwijl Direct3D door MS (dus vanuit programmer-perspectief) ontwikkelt wordt als API voor 3D hardware voor met name games.

Ilmar wijzigde dit bericht 14-05-2008 16:58 (5%)
Reden: laatste alinea toegevoegd

 
quote:
MarCreative schreef op woensdag 07 mei 2008 @ 12:47:
Ik loop al enige tijd met de vraag: Waarom worden bijna alle spellen in DX10 geschreven en niet in OpenGL?
Met deze stelling ben ik het niet eens. Vaak zie je dat de (commeriele) engines vaak een D3D en OpgenGL backend hebben. Als voorbeeld de Unreal engine, die al vanaf dag 1 meerdere render backends ondersteund. Hierboven zit een extra abstractielaag zodat de daadwerkelijke backend afgesloten is van de rest van de engine. Het grote voordeel hiervan is dat een nieuwe render backend toevoegen relatief gezien simpel is, een klein nadeel is de (kleine) overhead door deze abstractielaag.
 
Berichten: 34
Reg. datum: 13 januari 2006

de online games met de beste feeling zijn toch echt games gebasseerd op opengl (q3 engine)!
 
boe!

quote:
abort_ schreef op woensdag 14 mei 2008 @ 17:22:
de online games met de beste feeling zijn toch echt games gebasseerd op opengl (q3 engine)!
Dat is jouw persoonlijke mening, het zegt NIETS over de kwaliteiten van OGL of D3D !!!

Waarom willen mensen dit nou nooit snappen :?

INTEL 8086 4.77 Mhz @ 12Mhz watercooled, 640kb main mem(neeeh neeh, neh neeh neeeh), 20mb Seagate, Noname amber monochroom 14", Hercules monochroom video plankie, Star NL-10 Matrix printer

Anti-MS Basher, I <3 MS :)

quote:
abort_ schreef op woensdag 14 mei 2008 @ 17:22:
de online games met de beste feeling zijn toch echt games gebasseerd op opengl (q3 engine)!
Waar CS1.6 weer kut liep op OpenGL en prima op D3D

OpenGL of D3D heeft niets te maken met Online Game feeling, alles wat kan in OpenGL is mogenlijk in D3D en omgekeerd, het is dezelfde hardware, alleen Dx10.1 voegt wat nieuwe truuks toe die je waarschijnlijk ook wel kan doen met wat extra code werk (Alleen geeft dat misschien teveel overhead)

Dus..

AMD Phenom GP9600 Black Edition || AMD HD3870 OC 800/2340 || OCZ 2x2GB Gold Edition || Theatron Agripa DTS7.1

quote:
Ilmar schreef op woensdag 14 mei 2008 @ 16:49:
[...]


Ik weet niet wat Nintendo doet, maar de PS3 gebruikt OpenGL ES. Het voordeel is natuurlijk dat het op iedere console geďmplementeerd kŕn worden.
Maar wat niet het geval is, waardoor je dus alleen op de PS3 in OpenGL ES gebruikt. Dit nog even naast het feit dat zelfs als de andere consoles ook OpenGL ES zouden gebruiken, en de PC ook, dan nog heb je geen crossplatform code omdat de hardware niet gelijk is. Je optimaliseert namelijk voor de hardware, waardoor keuzes die je voor de PS3 maakt niet dezelfde keuzes hoeven te zijn als die voor de Xbox 360.

Jouw argument zou ook opgaan voor Direct3D. Dat draait immers op de PC en op de Xbox 360. Toch is dat niet zo, om de redenen die ik zojuist gaf.
quote:
OpenGL loopt alleen met de nieuwe D3D10 features achter de feiten aan omdat die door MS bedacht zijn en pas later door GPU fabrikanten overgenomen
Wat is nou het punt dat je wilt maken? Het blijft toch gewoon zo dat OpenGL achter de feiten aanloopt? Dat kun je wel gaan verdedigen maar dat verandert de situatie niet. Ik ben verder ook niet pro-D3D of anti-OpenGL dus een fanboy discussie hoeven we niet te beginnen. Mijn stelling is echter dat Direct3D op de PC vaak praktischer is dan OpenGL.

Bovendien is het niet puur MS die de koers zet hoor. Ze zitten echt wel met nVidia en ATi om de tafel. MS is namelijk geen hardware fabrikant en hebben de expertise helemaal niet om te bepalen wat wel kan en wat niet kan.
quote:
maar de hoeveelheid 'dubbele extensies' is zeer gering, aangezien de fabrikanten liever elkaars ontwerp overnemen (zie de lange lijst GL_EXT_ extensies).
Ja dat verklaart ook wel waarom elke developer klaagt over dat ze nieuwe vergelijkbare features N keer moeten implementeren omdat ze nog vendor-specifiek zijn 8)7

.oisyn wijzigde dit bericht 15-05-2008 14:18 (4%)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

Berichten: 20
Reg. datum: 12 maart 2006

quote:
.oisyn schreef op donderdag 15 mei 2008 @ 14:17:

Jouw argument zou ook opgaan voor Direct3D. Dat draait immers op de PC en op de Xbox 360. Toch is dat niet zo, om de redenen die ik zojuist gaf.
Wat ik hier bedoel is dat OpenGL een open standaard is en D3D niet, waardoor het voor Sony, Nintendo (en tegenwoordig ook Nokia en consorten) etc. te implementeren is, zonder juridisch getouwtrek met MS.
quote:
Wat is nou het punt dat je wilt maken? Het blijft toch gewoon zo dat OpenGL achter de feiten aanloopt? Dat kun je wel gaan verdedigen maar dat verandert de situatie niet. Ik ben verder ook niet pro-D3D of anti-OpenGL dus een fanboy discussie hoeven we niet te beginnen. Mijn stelling is echter dat Direct3D op de PC vaak praktischer is dan OpenGL.

[...]

Ja dat verklaart ook wel waarom elke developer klaagt over dat ze nieuwe vergelijkbare features N keer moeten implementeren omdat ze nog vendor-specifiek zijn 8)7
Mijn punt is dat OpenGL op het moment achter de feiten aan loopt, een situatie die over een jaar ofzo best anders kan zijn (zomaar een voorbeeld: ik zou mij kunnen voorstellen dat je kiest voor een OpenGL applicatie met wel/niet gebruik van een aantal extensies ipv een volledige abstraction layer voor D3D9/D3D10 om D3D10 features te kunnen gebruiken, zonder Vista te vereisen - als AMD nu eens opschiet met die features ook in hun OpenGL driver te stoppen :( ).

Ik ben het verder wel met je eens dat D3D vaak praktischer is, maar naar mijn idee omdat het minder flexibel is en je als developer dus met minder verschillende situaties rekening hoeft te houden (ook een van de voordelen van ontwikkelen voor consoles). Ik vind het voordeel van OpenGL dus juist die flexibiliteit en probeer aan te geven dat OpenGL meer is dan een bij elkaar geraapt zooitje en er dus zeker wel redenen zijn om voor OpenGL te kiezen ipv. D3D.
 
quote:
Ilmar schreef op donderdag 15 mei 2008 @ 17:28:

Wat ik hier bedoel is dat OpenGL een open standaard is en D3D niet, waardoor het voor Sony, Nintendo (en tegenwoordig ook Nokia en consorten) etc. te implementeren is, zonder juridisch getouwtrek met MS.
En wat ik bedoel is dat je daar vrijwel niets aan hebt omdat je toch wel voor dat platform gaat optimaliseren, waarbij het voordeel van een gelijke API zo goed als wegvalt.

Overigens spreken wij voor een groot deel direct de hardware aan op de meeste platforms. Onze Xbox 360 renderer backend lijkt in de verste verte niet op onze PC renderer backend, ookal is Direct3D op beide platforms beschikbaar.

Juridisch getouwtrek is trouwens een nonargument. Er is niets wat je tegenhoudt om een API te implementeren. Sterker nog, ik ken een bedrijf dat dat met D3D op de PS3 gedaan heeft :D

.oisyn wijzigde dit bericht 15-05-2008 18:03 (12%)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

quote:
.oisyn schreef op donderdag 15 mei 2008 @ 14:17:
[...]

Wat is nou het punt dat je wilt maken? Het blijft toch gewoon zo dat OpenGL achter de feiten aanloopt? Dat kun je wel gaan verdedigen maar dat verandert de situatie niet. Ik ben verder ook niet pro-D3D of anti-OpenGL dus een fanboy discussie hoeven we niet te beginnen. Mijn stelling is echter dat Direct3D op de PC vaak praktischer is dan OpenGL.

Bovendien is het niet puur MS die de koers zet hoor. Ze zitten echt wel met nVidia en ATi om de tafel. MS is namelijk geen hardware fabrikant en hebben de expertise helemaal niet om te bepalen wat wel kan en wat niet kan.
Nou, daar sla je de plank mis. opengl32.dll is al jaren niet geupdate door MS naar opengl2.0. Dit is om een reden en die kunnen we allemaal wel raden.
De ARB heeft al jaren geleden een geupdate opengl32.dll naar MS gestuurd, maar het nadeel wil dat de binding van de rendercanvas aan een Hdc nu juist proprietary code is en je dus dat niet zelf kunt releasen als ARB zijnde. (voor de leken: opengl32.dll is essentieel om iets met OpenGL te doen op windows, het regelt de verbinding tussen de opengl driver en het windows window, waar de render canvas op ligt)

Het gevolg is dus dat iedere OpenGL programmeur met lijsten met function pointers en typedefs zit om die extensions aan te spreken. Maar zo'n ramp is dat nou ook weer niet, want veelal is dat 1 keer oplossen en dan is het eigenlijk gelijk aan een api callen.

Dat MS de hardware op de PC stuurt door hun design van DX is een realiteit, dat zegt overigens niets over de functionaliteit van OpenGL op andere platforms, immers, hoe je het ook wend of keert: veel spullen zit tegenwoordig in shaders en het zware werk is echt 3D api generic spul. Polies pompen door een 3D api is nog wel realiteit maar niet dermate zwaarwegend dat dat nou een significante stempel drukt op een beetje project.

EfBe wijzigde dit bericht 15-05-2008 22:02 (4%)

Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
My .NET Blog
Microsoft MVP (C#). PSN ID: EfBe

Misschien ligt het aan mij maar ik zie totaal niet de relevantie van jouw post met die van mij :?
quote:
Het gevolg is dus dat iedere OpenGL programmeur met lijsten met function pointers en typedefs zit om die extensions aan te spreken
Daar heb je libraries voor. Volgens mij zelfs van de OpenGL site zelf te downloaden ;)
quote:
Dat MS de hardware op de PC stuurt door hun design van DX is een realiteit
Dat ontken ik ook niet. Maar wat ik beweer is dat MS dat heus niet in zijn eentje doet, en daar hulp van de grote hardware vendors bij heeft. Of denk jij dat het concept shaders (een van de fundamentele vernieuwingen in hardware rendering land) puur en alleen door MS bedacht is?

.oisyn wijzigde dit bericht 15-05-2008 23:19 (46%)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

quote:
.oisyn schreef op donderdag 15 mei 2008 @ 23:16:
Misschien ligt het aan mij maar ik zie totaal niet de relevantie van jouw post met die van mij :?
De ARB (en ik deel die mening) is van mening dat de acceptatie van OpenGL op windows voor een groot deel is tegengewerkt door MS dmv het niet updaten van hun opengl32.dll, waardoor het lastiger wordt om opengl te programmeren op windows dan Dx. Het leek alsof jij van mening bent dat het aan OpenGL zelf ligt dat de acceptatie van OpenGL op windows niet zo groot is.
quote:
[...]
Dat ontken ik ook niet. Maar wat ik beweer is dat MS dat heus niet in zijn eentje doet, en daar hulp van de grote hardware vendors bij heeft. Of denk jij dat het concept shaders (een van de fundamentele vernieuwingen in hardware rendering land) puur en alleen door MS bedacht is?
Geen idee, ik denk het eerlijk gezegd niet (nvidia was dacht ik de 1e).

EfBe wijzigde dit bericht 16-05-2008 10:31 (6%)

Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
My .NET Blog
Microsoft MVP (C#). PSN ID: EfBe

quote:
EfBe schreef op vrijdag 16 mei 2008 @ 10:30:
[...]

De ARB (en ik deel die mening) is van mening dat de acceptatie van OpenGL op windows voor een groot deel is tegengewerkt door MS dmv het niet updaten van hun opengl32.dll, waardoor het lastiger wordt om opengl te programmeren op windows dan Dx. Het leek alsof jij van mening bent dat het aan OpenGL zelf ligt dat de acceptatie van OpenGL op windows niet zo groot is.
Daar ben ik het ook wel mee eens. Maar dit staat los van het feit dat OpenGL een nogal log consortium achter zich heeft waardoor updates sowieso lang op zich laten wachten. Ik bedoel, hoe lang heeft het wel niet geduurd voordat OpenGL 2.0 er was? Maar goed, dat is natuurlijk ook inherent aan het feit dat het open is en daardoor iedereen een zegje kan (en wil) hebben. Dat zie je bijvoorbeeld ook met C++. Maar welk argument je er ook bij plaatst waarom het zo is, het feit blijft wel dát het zo is, en dat is in het nadeel van OpenGL :).

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

quote:
.oisyn schreef op vrijdag 16 mei 2008 @ 10:47:
[...]

Daar ben ik het ook wel mee eens. Maar dit staat los van het feit dat OpenGL een nogal log consortium achter zich heeft waardoor updates sowieso lang op zich laten wachten. Ik bedoel, hoe lang heeft het wel niet geduurd voordat OpenGL 2.0 er was? Maar goed, dat is natuurlijk ook inherent aan het feit dat het open is en daardoor iedereen een zegje kan (en wil) hebben. Dat zie je bijvoorbeeld ook met C++. Maar welk argument je er ook bij plaatst waarom het zo is, het feit blijft wel dát het zo is, en dat is in het nadeel van OpenGL :).
Nou, dat van dat logge is wel een beetje waar, maar laten we ook niet vergeten dat MS ook lid is van de ARB ;)

Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
My .NET Blog
Microsoft MVP (C#). PSN ID: EfBe

nuttig.

1 van de laatste opengl games is toch wel Enemy Territory Quake Wars en daarin zie je dat je met opengl zeker mooie games kan maken. Ik vind zelf opengl stuk fijner gamen, heb ervaring met Q3 engine vooral en nu dan Enemy Territory Quake Wars. Wat ik wel groot nadeel vind van opengl is dat het stuk minder en goed werkt met ATi kaarten, dat ligt eigelijk aan ATi vind ik maar het is toch een nadeel wat niet goed is voor OpenGL.

Specs 1000 posts \o/

quote:
Zenix schreef op vrijdag 16 mei 2008 @ 15:33:
1 van de laatste opengl games is toch wel Enemy Territory Quake Wars en daarin zie je dat je met opengl zeker mooie games kan maken. Ik vind zelf opengl stuk fijner gamen, heb ervaring met Q3 engine vooral en nu dan Enemy Territory Quake Wars.
Sorry maar dat heeft toch echt geen zak met OpenGL te maken, maar alles met de gebruikte engine (id tech 4 als ik me niet vergis) :). Met D3D kun je exact hetzelfde plaatje met exact dezelfde feel tevoorschijn toveren. 't Is de hardware die het werk doet, niet de gebruikte API.

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

quote:
Zenix schreef op vrijdag 16 mei 2008 @ 15:33:
1 van de laatste opengl games is toch wel Enemy Territory Quake Wars en daarin zie je dat je met opengl zeker mooie games kan maken. Ik vind zelf opengl stuk fijner gamen, heb ervaring met Q3 engine vooral en nu dan Enemy Territory Quake Wars. Wat ik wel groot nadeel vind van opengl is dat het stuk minder en goed werkt met ATi kaarten, dat ligt eigelijk aan ATi vind ik maar het is toch een nadeel wat niet goed is voor OpenGL.
Een groot probleem is denk ik dat review sites totaal geen aandacht besteden aan OGL performance als ze een kaart reviewen. Ik gebruik zelf OGL vrij veel in mijn eigen en 3rd-party applicaties (cross-platform), en daarom zou ik het enorm op prijs stellen als ik kaarten op die punten kan vergelijken. Dankzij m'n werk aan de 3D engine weet ik nu dus dat ATI inderdaad knap waardeloos is als het op OpenGL aankomt, wat ook komt omdat ze bijvoorbeeld een suggestie voor een nieuw onderdeel van OGL te laat verzonden hebben, zodat nVidia ermee aan de haal is gegaan, en ATI nu met een net niet helemaal compitable implementatie zit. Ook zijn hun tools voor shader programming en zo niet echt flitsend.

Er is een reden waarom ATI voornamelijk met Windows systemen gebruikt word :P
Berichten: 1
Reg. datum: 20 november 2005

quote:
Serious Sam! :9~
 
quote:
Elledan schreef op vrijdag 16 mei 2008 @ 16:07:
[...]

Er is een reden waarom ATI voornamelijk met Windows systemen gebruikt word :P
Je moet het anders stellen: Er is een reden waarom ATi vaak niet op Linux systemen wordt gebruikt. Wel een verschil ;)

Als je gestolen spullen van een dief steelt, ben je dan dubbel strafbaar?

Anti-MS Basher, I <3 MS :)

quote:
EfBe schreef op vrijdag 16 mei 2008 @ 10:30:
[...]

De ARB (en ik deel die mening) is van mening dat de acceptatie van OpenGL op windows voor een groot deel is tegengewerkt door MS dmv het niet updaten van hun opengl32.dll, waardoor het lastiger wordt om opengl te programmeren op windows dan Dx. Het leek alsof jij van mening bent dat het aan OpenGL zelf ligt dat de acceptatie van OpenGL op windows niet zo groot is.


[...]

Geen idee, ik denk het eerlijk gezegd niet (nvidia was dacht ik de 1e).
Wat let videokaart fabrikanten om in hun drivers een nieuwere versie van opengl32.dll mee te leveren? Of games zelf om die mee te leveren?

*Krom voorbeeldje*: MS update ook de "PhysX" dll files niet, en toch krijg je daar telkens nieuwere versie van :)

AMD Phenom GP9600 Black Edition || AMD HD3870 OC 800/2340 || OCZ 2x2GB Gold Edition || Theatron Agripa DTS7.1

Berichten: 131
Reg. datum: 16 december 2002

quote:
EfBe schreef op vrijdag 16 mei 2008 @ 10:30:
Geen idee, ik denk het eerlijk gezegd niet (nvidia was dacht ik de 1e).
Shaders is een begrip die al zo oud is als de weg naar rome. Het stamt al uit de tijd van de eerste 3D animatie experimenten. In 3D land is een shader eigenlijk een oppervlakte/materiaal beschrijving... Dus hoe reageert deze op licht? Hoe ziet de texture er uit? Hoe wordt het object gedeformeerd, of hoe wordt het licht gedeformeerd op het moment dat dit door het object schijnt?

Nvidia en ATI hebben echter de eerste stappen genomen om dit alles in realtime te doen binnen de consumenten markt.
 
quote:
roy-t schreef op vrijdag 16 mei 2008 @ 18:01:
[...]


Wat let videokaart fabrikanten om in hun drivers een nieuwere versie van opengl32.dll mee te leveren? Of games zelf om die mee te leveren?
Omdat daar ook custom windows code in staat (de wgl* functies), die dan gerepliceerd moet worden in de custom dlls maar waar de hardware vendors uiteraard geen rechten van hebben.

Maar zoals ik al zei, je kan gewoon linken met een library die alle extensies voor jou uitzoekt en direct die functies beschikbaar maakt, zonder dat je moeilijk hoeft te doen met allerlei typedefs en functiepointers.
quote:
EvilB2k schreef op vrijdag 16 mei 2008 @ 18:04:

Shaders is een begrip die al zo oud is als de weg naar rome. Het stamt al uit de tijd van de eerste 3D animatie experimenten. In 3D land is een shader eigenlijk een oppervlakte/materiaal beschrijving... Dus hoe reageert deze op licht? Hoe ziet de texture er uit? Hoe wordt het object gedeformeerd, of hoe wordt het licht gedeformeerd op het moment dat dit door het object schijnt?
Duh :). Met "shaders" bedoelde ik de vertex en pixel shader programma's die uitgevoerd worden door de videokaart, wat tov de fixed function pipeline, die nogal lineair en gelimiteerd was, een hele vooruitgang was. Ook die dingen heten shaders, en ik had het dus niet over de algemene wiskundige benadering van bepaalde shading ;)

.oisyn wijzigde dit bericht 16-05-2008 18:22 (38%)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

Ik denk dat het in deze discussie eerlijker is om dx10.n te vergelijken met OpenGL 3.0>
 
Prof Mierenneuke®

Historisch gezien is elke interface binnen de IT industie maar beperkt houdbaar. Het is mooi als een interface backwards compatible is bijvoorbeeld maar meestal zorgt het voor nieuwe problemen. Ik 'geloof' dus bijvoorbeeld niet tussen goed/slecht bij OpenGL en D3D, maar ik prefereer OpenGL wel omdat het gewoon *meer* platformonafhankelijker is. En van alle personal computers met 3d-toepassingen is het PC-platform wel het meest gebruikt.

Bij OpenGL/D3D is het nog zeker pikant dat het een zware hardware based interface is. Over 20 jaar is je Geforce 9800 helemaal niets meer waard en waarschijnlijk stuk en heb je dus ook niets meer aan software die geschreven is op OGL3/D3D10.

Net zoals je nu met veel pijn en moeite via emulators de games van 20 jaar geleden kan draaien.

Een voorbeeld van een veel duurzamere interface is denk ik QT. Dit is pc-platform onafhankelijk (Win32/64,linux,bsd,darwin etc) maar is wel een extra abstractielaag (en dus overhead).

Uiteindelijk moet je dus kijken hoe lang je je spel wil gebruiken. Voor de meeste spellen zal het 2-3 jaar zijn en dan is het geen probleem om met de dan actuele 3D-interface te programmeren.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!

Peer op pootjes

quote:
EfBe schreef op donderdag 15 mei 2008 @ 22:00:
Het gevolg is dus dat iedere OpenGL programmeur met lijsten met function pointers en typedefs zit om die extensions aan te spreken. Maar zo'n ramp is dat nou ook weer niet, want veelal is dat 1 keer oplossen en dan is het eigenlijk gelijk aan een api callen.
Ik durf je daar wel op tegen te spreken eigenlijk. Al een aantal maanden ben ik bezig met een redelijk geavanceerd programma om 3d modellen mee te maken, en ik vind het werkelijk een ramp.

Op zich heb je gelijk en is het niet zo moeilijk om de extensies aan te spreken. Zeker niet als je een spelletje maakt en het maar 1x hoeft te doen. Maar wanneer je meerdere contexts tegelijkertijd gebruikt, en ervoor moet zorgen dat de functies van de extensies samen met de bijbehorende context gebruikt worden, dan wordt het al snel een heel geregel met overbodig gezeur om de boel op de juiste manier aan de praat te houden. Heerlijke manier ook om meer zinloze bugs mee te introduceren.

Tuurlijk, je kan kant-en-klare oplossingen als glew gebruiken, maar dat levert verschrikkelijk smerige code op, waarbij je variabelen als "GLEW_MX" moet definieeren om een andere variant van die bibliotheek te bouwen, en daarna met GLEWContext's en een berg macro-shit aan de slag moet om het aan het werk te krijgen.
 
Een redelijke kick, maar volgens mij wel een interessant onderwerp en dus reageer ik er toch nog even op.
quote:
Stukfruit schreef op zaterdag 17 mei 2008 @ 10:21:
Tuurlijk, je kan kant-en-klare oplossingen als glew gebruiken, maar dat levert verschrikkelijk smerige code op, waarbij je variabelen als "GLEW_MX" moet definieeren om een andere variant van die bibliotheek te bouwen, en daarna met GLEWContext's en een berg macro-shit aan de slag moet om het aan het werk te krijgen.
Dit probleem herken ik persoonlijk niet. Toegegeven ik ben een (in mijn eigen ogen) beginnend OpenGL programmeur (heb de Superbible door gewerkt, daarnaast heb ik een paar redelijk geavanceerde gpgpu programma's geschreven waarvan één OpenGL/GLSL om vortex detection te doen en de ander OpenGL/Cg die fluid simulation deed. Daarnaast ben ik bezig geweest met een eigen 3d bestandsformaat, met exporter vanuit Blender en een OpenGL viewer), maar ik vind Glew fijn werken. Het enige wat je doet is een functie aanroepen om te checken of OpenGL 2.0 ondersteunt wordt en glew initialiseren. Ik doe niets met variabelen definieren of macro's gebruiken en het werkt prima.

Met DirectX heb ik geen enkele ervaring, ik programmeer alleen onder Linux dus dan kom je toch uit bij OpenGL. Wat ik vooral jammer vind is dat OpenGL 3.0 nog steeds niet het levenslicht heeft gezien. Deze nieuwe API zou al een jaar geleden tot standaard verheven zijn, maar is nog steeds niet verschenen en het is angstvallig stil. Misschien dat er over een aantal weken op Siggraph 2008 iets naar buiten komt, laten we het hopen. Voor zover ik weet zou OpenGL 3.0 een schonere en consistentere api op moeten leveren, waardoor het programmeren in OpenGL wat eenvoudiger wordt.

Overigens zijn games lang niet het enige meer waarvoor je een 3d api nodig hebt. Vooral in de wetenschappelijke wereld wordt voornamelijk OpenGL gebruikt (voor bijvoorbeeld visualisatie van grote hoeveelheden data of voor gpgpu).

Ik kan me overigens goed voorstellen dat game ontwikkelaars DirectX gebruiken vanwege de ondersteuning die je erbij krijgt, de (waarschijnlijk iets) betere drivers en omdat 95% van de games nu eenmaal onder Windows draait of op een console. Afgezien van het feit dat OpenGL 3.0 nu al veel te lang op zich laat wachten, denk ik dat de opzet van OpenGL best goed zou kunnen werken. Nieuwe functies in hardware kan direct ondersteunt worden via een extensie en de extensies die door de grote hardware fabrikanten ondersteunt worden en die door de developpers veel gebruikt worden kunnen in een volgende standaard tot de verplichte kost behoren. Dus werkt het juist andersom als bij DirectX: de hardware bepaald de standaard, hoewel je door het systeem van de extensies niet tegengehouden wordt om de nieuwste hardware te gebruiken als de nieuwe functies nog niet in de standaard zitten.

Ik hoop dat OpenGL met versie 3.0 weer eens flink van zich laat horen en dat er weer wat meer beweging komt in 3d api land. Zelf blijf ik voorlopig in ieder geval OpenGL programmeren, met als redenen dat ik onder Linux werk (en dat ik het eventueel naar Windows kan porten als ik dat zou willen), dat ik er al bekend mee ben en omdat ik een beetje een idealist ben ;).

Overigens net even op de Siggraph pagina gekeken, dit zal ik met veel belangstelling volgen (hopelijk lukt dat een beetje via internet):
http://www.khronos.org/ne...08_los_angeles_california
quote:
Khronos BOFS & BOF Socials

Get the inside scoop on OpenGL from the ARB and leading OpenGL companies:

* OpenGL 3.0 Specification Overview
* OpenGL hardware and driver plans - AMD, Intel, NVIDIA
* Developer's perspective on OpenGL 3.0
* The new Khronos Compute Working Group and how that affects OpenGL
* and more...

The Flying Dutchman



© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Astraeus

© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Astraeus

[RSS][XML]

Update Tracker

Active Topics
Active Topics
Frontpage Nieuws
Frontpage Nieuws