Home › Forums › A Demokészítés művészete › Programozás › OpenGL
- This topic has 51 replies, 12 voices, and was last updated 12 years, 6 months ago by Artlace.
-
AuthorPosts
-
2012-04-04 at 13:38 #21152rawbitsMember
Bocsi, én is csak magamból indulok ki. Ez a linuxos izé nekem kínai és még bonyolultnak is tűnik.
Én úgy kezdtem, hogy az opengl.org-on a Getting started with OpenGL-re kattintottam és elolvastam ami ott van, kiválasztottam ránézésre szimpátia alapján a GLFW-t meg a GLEW-t. Letöltöttem, elolvastam a használatukat, kijavítottam a hibákat a headerekben és konvertáltam a lib-eket (Borland C++ command line tools), majd a GLFW és GLEW dokumentáció alapján nyitottam egy ablakot.
Ezután megörültem, hogy nem nehéz ez, és kerestem tutoriálokat. Ezek használati sorrendben:
Swiftless
Lazy Foo’ Productions
NeHe ProductionsAz nem zavar, hogy nem használja senki a GLFW/GLEW kombót, mert nagyon jól dokumentáltak és egy egyszerű motort azért csak össze tudok talán rakni… Az viszont igen, hogy sehol nincs egy jó összehasonlító cikk az OpenGL 2.1 és 3.x/4.x között. Azt mondják nem is hasonlít. Hát szerintem ugyanazt írják a 4.x-es tutoriálok is.
Mindenesetre az én Intel-em csak a 2.1-et ismeri úgyhogy egyenlőre ez nem okoz gondot. :)
2012-04-05 at 12:53 #21156ArtlaceMemberEn ugy tapasztaltam (szinten magambol kiindulva) hogy a legtobb OpenGL program mukodik a verziok kozott, csak 3.x felett mar sok funkcio “deprecated” es azon felul mar el is van tavolitva par de compatibility modban meg mindig lehet regebbi programokat futtatni.
Ami igazan nagy tores volt nekem az az OpenGL ES (iOS es hasonlok) mert ott tenyleg elhagytak sokmindent. Nalam a NeHe volt az etalon es oda is megyek meg most is vissza sokszor.2012-04-06 at 14:59 #21159ktMemberEz a visszafelé kompatibilitás nagyon jó ötlet.
OGL4.1-től bejött az ARB_separate_shader_objects (ami pl. 3.3-ban is használható), ezzel pár OGL hivásból be lehet lőni vs/fs shadert. A kompatibilitás miatt még a glRect-et is tudod használni, igy nem kell bufferekkel bajlódnod egy sima fullscreen quad-hoz.
Mutatok .
Egyszerű és rövid is. :D2012-04-06 at 15:00 #21160ktMemberElizéltem a linket sikeresen. :D
Nem lehet szerkeszteni hozzászólást?2012-04-09 at 17:48 #21253ArtlaceMemberEz kicsit offtopic ugyan, de most volt kalandom OpenGL ES-el. En kis naiv azt hittem hogy az OpenGL ES 2.0 az vigan kompatibilis lefele az OpenGL ES 1.1-el (Ez iOS 4.x es iOS 5.verziok) es pofara estem, rogton ketszer.
Eloszor azert, mert OpenGL ES nem tudja mi az a GL_QUADS. Semmi gond mert tenyleg csak lustasag vesz ra hogy quad-okat hasznaljak.
Viszont ES 2.x-ben mar mindent shaderbol nyom es semmi fixed pipeline nincs. Kompatibilitas innentol mar alig van.2012-04-24 at 00:40 #21384MurphyMemberÉs nincs valami külső opensource cucc ami lewrappeli amit csak lehet?
Mert egyrészt baromi jó, hogy kidobták a sok múltszázadi sallangot, másrészt azért van amikor gyorsan kellene valamit átrakni végeredmény optimális megvalósítása kevésbé szempont.
2012-04-25 at 06:30 #21411darklonMemberiOS5-on a GLKit framework elvileg valami ilyesmire van. Kérdés, hogy hajlandó -e az ember ilyen Apple specifikus library-t használni.
2012-05-28 at 23:50 #21966MurphyMemberMost volt alkalmam kicsit opengl-ezni, és dx után nagyon jajj…
2012-06-01 at 23:48 #22037ktMemberMiért? :)
2012-06-02 at 09:20 #22040MurphyMemberKb minden témában sokkal modernebb a d3d, főleg egy 10-11-es. Nem azért mert ők sokkal okosabbak, hanem mert időről időre merték újragondolni, és nem ragaszkodtak egy 1992-ben még jó ötletnek tűnő, időközben meglehetősen idejétmúlt koncepcióhoz…
A felépítés úgy unblock szintekkel jobb d3d-ben, mert meglehetősen béna dolog a tonna függvény, főleg mikor ezek egy része csak és kizárólag azért kell, hogy a régi, visszafelé kompatibilitásból fakadó api és belső hiányosságokat elfedjék. (Bindolások, csak, hogy módosíthass egy resource-ot, nye…)
Az alap resource kezelés úgy ahogy van totális lúzerség. A resource ID-k teljesen transparensek, símán növekvő számok amik nem tartalmazzák a resource típusát, ennek folyományaként minden resource típusnak saját felszabadító függény kell, nagyszerű hibalehetőségek tárházát nyújtva ezzel. Épp ezért besetelni is ezernyi hülyeséget tudsz, de legalább a hiba outputok alapból kínosan szűkösek. Az enumok helyetti define-ok használata is kiváló hibalahetőség, meg úgy általában az egész api tele van régen jó ötletnek tűnő, és azóta úgymaradt dolgokkal.Mennyire egyszerű és logikus, hogy a D3D-ben vannnak create és set és get és draw függvények, és ezzel mindent meg tudsz csinálni… Ehhez képest opengl-ben még egy egységes naming convention sincs amivel az adott resource-ra vonatkozó függvényeket legalább egyben tartanák…
- This reply was modified 12 years, 6 months ago by Murphy.
2012-06-03 at 14:19 #22054TravisModeratorMurphy: Azt azért ne felejtsd el, hogy OpenGL-nek nem csak C++-ban, hanem egy rakás más programnyelven is futni kell. Egy nem objektum orientált programozási nyelvben maximum stringeket tudsz használni, ha az erőforrás típusát is le akarod írni.
Ugyan ezen oknál fogva van több felszabadító függvény is.
Egyébként megfigyelhető bizonyos konvergencia. A 2.1-ben még külön függvényekkel kellett vertex arrayt, textúra arrayt, stb létrehozni, de a 3.0-tól már ezeket összevonták. Shaderből kell megmondani, hogy mire akarod használni az arrayt.
2012-06-03 at 16:59 #22056MurphyMemberTekintve, hogy semmilyen resource-ból nem lesz 3 milliónál több darab lekreálva, a felső 5 bit pl. tökéletes megoldás lehetne a resource típusának tárolására. Ez nagyon minimális átalakítás lenne a jelenlegihez képest, de pl. a struktúra elég alap c eszköz, ami már a lehetőségek végtelen tárházát nyitná meg a fejlesztők előtt… ;)
- This reply was modified 12 years, 6 months ago by Murphy.
2012-06-03 at 22:09 #22060ktMemberÉn évekig OpenGL-eztem, hc fannak is tartom magam, de nem olyan régen bepillantottam DX10-be (7-8-9-essel is foglalkoztam régebben, alap szinteken), és teljesen beleszerettem az egészbe. Modern felépités, logikus meg minden. Mellette az OGL tényleg egy ókori valami sok szempontból.
De nem tudok mit tenni, a szivem mindig visszahúz OpenGL-hez. :D2012-06-04 at 09:09 #22063TravisModeratorMurphy: Mennyire lenne ez jövő álló? Mi lesz, ha elfogy az 5 bit, mert felszaporodnak az erőforrás típusok? Hogyan őrzik meg a visszafelé kompatibilitást? A struktúra már sokkal jobb megoldás lenne, bár nem tudom, Haskellben akkor hogyan írna demót Blala :-)
Egyébként a Microsoft könnyebb helyzetben van, mert nem kell senkire sem tekintettel lennie. Ha holnaptól úgy döntenek, hogy csak C#-ban lehet DX progikat írni, akkor senki nem tehet ellene semmit (erősen sarkított példa, tudom). OpenGL azért van telefonon, PC-n, Mac-en, újgenerációs Amigákon. Itt nem olyan könnyű drasztikus változásokat hozni.
2012-06-04 at 10:53 #22064MurphyMemberAz 5 bit helyett akár 8 bit is lehet, gyanítom resource típusonként a 16 millió darab se fog a közeljövőben elfogyni. Haskell-t nem ismerem, de gyanítom tetszőleges adatszerkezettel megoldható lenne akár ott is az opengl binding.
Egyébként a Microsoftnak más miatt van könnyebb dolga, időnként azt mondják, hogy oké, új verzió, ami nem akar görcsösen kompatibilis maradni a korábbiakkal…
A fejlesztő mikor jónak látja átáll az újra, cserébe utána sokkal boldogabb lesz az élete.2012-06-04 at 12:10 #22065GargajKeymasterA felépítés úgy unblock szintekkel jobb
Na itt ledobta az agyam a szijat :D
2012-06-04 at 13:47 #22066TravisModeratorWindowsban legalább van választási lehetőség. Nekem Linux alatt nincs.
2012-06-04 at 13:53 #22067MurphyMemberTravis: Igen, ez zavar engem is…
Gargaj: halljuk az ellenérveket ;)
2012-06-04 at 14:06 #22068GargajKeymaster2012-06-04 at 14:38 #22069MurphyMemberJahogy ja :)
2012-06-04 at 21:19 #22070BeryMemberunblock-al arra utalt Murphy, hogyha a nem tömbként tekintünk, mi kockák a dologra, akkor is jobb a DX ;)
- This reply was modified 12 years, 6 months ago by Bery.
2012-06-16 at 11:56 #22164ArtlaceMemberMegszakitva a sort, de itt egy elegge objektiv es jo doksi:
http://www.arcsynthesis.org/gltut/index.html
GLKit egyebkent annak az eletet konnyiti meg aki fosik a GLES 2-tol meg attol hogy semmi fixed pipeline nincs mar. Peldaul az enyemet.
-
AuthorPosts
- You must be logged in to reply to this topic.