aion opiskella vähän 3d-ohjelmointia, mutta ennen kuin pääsen edes alkuun pitäisi tehdä päätös: opengl vai directx? oon käsittänyt että directx:llä saisi hienompia tehosteita ja se olisi helpompi kuin directx, mutta toisaalta opengl kiinnostaa kovasti kun esim. doom3 on tehty sillä, eikä se hullummalta näytä. mielipiteitä?
directx vai opengl?
3d-opiskelija
121473
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 12
Vanhimmat
SDL olisi varmasti parempi alkuun. Se on C -kielinen ja käyttää molempia. Doom on alunperin winkkariversiona Directx -pohjainen (ei opengl).
Doom 3 winkura-version graffat on OpenGL:ää ja jotain (äänet, joystick yms.) tehdään DirectX:llä.
ei ainakaan id:n sivujen mukaan:
http://www.idsoftware.com/games/doom/doom3/index.php?game_section=sysreq
näyttäis olevan koko paketti dx:llä. 9b tulee vieläpä paketin mukana
Ainakin Linux-version on *pakko* olla OpenGL:ää. Ja OpenGL:stä mussuttaa esim.
http://www.mbnet.fi/mblabra/esittely/pelisuorituskyky.aspx
http://www.modwiki.net/wiki/Doom_3_engine
Näin ovatkin Linuxissa. Directx on winkkaripuolella niin paljon nopeampi ettei vähään aikaan tule opengl versiota. Ehkä se SDL:n tuleva 1.3 versio tulee suositummaksi. Saas nähdä
Näköjään Doom 3 Windows-versio on myös OpenGL:ää.
http://www.extremetech.com/article2/0,1697,2090579,00.asp
http://www.nvidia.com/page/technology_vista_faq.html#driver_q10
"Directx on winkkaripuolella niin paljon nopeampi ettei vähään aikaan tule opengl versiota."
(ööö ... en nyt oikein jymmärrä), mutta erot DX/OGL nopeudessa johtuu pääasiassa ajureista. Eli jos ajurit yhtä hyviä, niin erot olemattomia. nVidian OGL suorituskyky on (ymmärtääkseni) yleensä ollut yhtä hyvä tai parempi kuin DX:n.
Mielestäni opengl on helpompi ja mukavampi
ohjelmoida kuin directx. Ja saa opengl:llä
hienoa jälkeä, ja parempaa vielä kun tekee
upeat varjostimet esim glsl:llä.
Tai sitten otat vaikka jonkun grafiikkakirjaston
jossa voi valita opengl/directx, ohjelmoit
yhdellä tavalla ja toimii kummallakin
(ogressa esim näin).
Nojooh, jos opengl:lle ainakin nehen sivuilla
on paljon hyviä tutoriaaleja:
http://nehe.gamedev.net/
Selkeämpi API, usealla alustalla ja ilmainen oppikirja:
http://www.glprogramming.com/red/
http://www.gamedev.net/download/redbook.pdf
http://www.libsdl.org/opengl/index.php
vertailua
http://www.gamedev.net/reference/articles/article1775.asp
http://en.wikipedia.org/wiki/Comparison_of_Direct3D_and_OpenGL
Kantaa vilkaista tuon wiki artikkelin External links osuutta.
Ja Vista tukee OpenGL:ää
http://www.neoseeker.com/news/story/6039/
Ja muistelen että Quake olisi tehty linux ympäristössä (vakaampi kehitysympäristö) ja sitten vasta portattu wintoosaan.
DirectX-ohjelmoijan tulevaisuus PC-maailmassa on valoisampi kuin OpenGL-ohjelmoijan, jonka on käytännössä siirryttävä konsoleiden ohjelmoimiseen.
Syythän ovat kaupalliset eivätkä tekniset. Microsoft on vuosia tehnyt kaikkensa tappaakseen OpenGL:n PC-puolella ja on siinä nyt vihdoinkin onnistumassa.
Katso tukeeko käyttämäsi kieli GLSceneä (siitähän on
tulossa uusi versio lähiaikoina).
http://wiki.mureakuha.com/wiki/GLScene
http://glscene.sourceforge.net/wikka/GlsceneGallery
OpenGL on parempi vaihtoehto, pystyty tekemään hienompaa kamaa kuin DirectXllä ja vähemmässä ajassa. Logiikka on selvästi selkeämpi ja kokonaisuuden rikkoutumisen vaara pienempi. Isot projektit vaativat paremman alustuksen tosin ja siten DirectX tulee esim. pelimoottoria ohjelmoitaessa ehkä prosentin paremmaksi vaihtoehdoksi, mutta kuvalaatu on tällöin surkeampi. Tehosteiden mallintaminen onnistuu OpenGLllä paremmin mutta se on hitaampaa kuin DirectX10 APIssa. Tosin OpenGl2.1 GLSL kielellä tekee hienompaa ja siistimpää jälkeä mallinnuksessa kuin DirectX10 ja esim. DX10pin etuna ollut Geometric Shading teknologia on jo omaksuttu myös OpenGL puolella jossa voi itse luoda näitä tekniikoita jotka ovat DirectX10ssä fixattuja eli et voi itse vaikuttaa niin paljon loppu tulokseen. OpenGLn tavara on myös universaalisti portattavampaa, sama lähdekoodi toimii hyvin pienillä muutoksilla windowsin lisäksy myös Linuxeissa, BSDeissä, Solariksissa, OS/2sessa ja vaikkapa Playstation3sessa...
eli yksinkertaisesti: OpenGL2.1 on universaalisti parempi ja tekee kaiken sen mitä DirectX10nenkin tekee, mutta paremmin ja nopeammin. Tosin sen kanssa joutuu opiskelemaan enemmän, jotta siitä saisi irti yhtä paljon kuin DirectXstä joka on ehkä hieman helpompi API oppia käyttämään mutta tekee rumempaa jälkeä kuvalaadullisesti ja kaikki DirectXn tehosteet ovat valmiita eikä niiden lopputuloksiin pääse itse juurikaan vaikuttamaan.