OpenGL, nur was für studierte?



  • Hey ich habe seit einiger zeit ein bischen mit sdl rumbrobiert. Ich bin jetzt so weit das ich eine figur in einem fenster per tastatur bewegen kann (natürlich 2D), wäre es ratsam jetzt bereits mit OpenGL anzufangen?
    Und wenn ja wie steig ich am besten ein? (system->gentoo-linux)

    Das Problem von mir ist vorallem das ich noch relativ jung bin (gerade erst 16 geworden und jetzt in der 10.klasse), ich weis also nicht ob ich in der lage bin bereits mit 3D Grafiken umzugehen (Vektoren und so ein zeug, davon hab ich keine ahnung). Solte man für OpenGL bereits etwas von "höherer Geometrie" verstehen, oder lernt man das sowieso erst wenn man richtig OpenGL programmiert? Wie war das bei euch?

    Über einige einsteigertipps würd ich mich freuen, aber euch ein "lass die finger davon" wäre mir eine hilfe wenn ich ohne vorkenntnisse sowieso nichts gescheites zustande bekomme (was muss man den überhaupt so können um OpenGL zu programmieren? klar OpenGL aber wie siehts mit den mathematischen zeug aus?)



  • Ich hatte auch keinen Plan von Vektoren und Matrizen als ich mit OGL angefangen bin. Muss man sich eben reinarbeiten. Das Verständnis kommt mit der Zeit. Die Kunst dabei ist eher Geduld und Nerven zu behalten 😃



  • Cpp_Junky schrieb:

    Ich hatte auch keinen Plan von Vektoren und Matrizen als ich mit OGL angefangen bin. Muss man sich eben reinarbeiten. Das Verständnis kommt mit der Zeit. Die Kunst dabei ist eher Geduld und Nerven zu behalten 😃

    jo - hatte davor auch noch kein plan davon, habs mir jetzt paar stunden angeschaut und kann scho paar billige matrizen basteln 😃

    ich würd mich aufjedenfall mal damit auseinandersetzten.

    mfg blan



  • ein grundverständnis der geometrie, die hinter den ganzen 3d bibliotheken (wie auch opengl) steckt, ist sehr von vorteil. allerdings ist das für die ersten gehversuche nicht zwingend notwendig.

    http://wiki.delphigl.com/index.php/Tutorial bietet paar gute tutorials für opengl, auch einführungen in matrizenoperationen. ist zwar pascal, aber für die grundlagen spielt das keine rolle.

    ansonsten mal auf http://de.wikipedia.org/wiki/Matrix_(Mathematik) das wissen über matrizen auffrischen und die erweiterung zu homogenen koordinaten auf http://de.wikipedia.org/wiki/Homogene_Koordinaten angucken.

    genereller tipp: das ist nur mathe, keine angst davor 😉



  • Danke für die hilfreichen Tipps

    PS: vor mathe hab ich eigentlich keine angst da bin ich sehr gut, nur wusste ich nicht was man da alles können muss, aber wenn die meisten hier auch ohne große vorkenntnisse angefangen haben bin ich beruhigt.

    Ganz ehrlich war meine vorstellung von 3D-Programmierung so das sowas nur irgendwelche informatik-studenten können. Aber versuchen denk ich kann ichs mal.



  • Wenn du dir selbst einen 3D Drahtgittermodell-Renderer programmierst bist du fit für 3D - mein Plan für dich ;):

    Matrizen für Dummies
    http://turing.fh-landshut.de/~jamann/MatrizenfuerDummies.pdf

    Die orthogonale Projektion
    http://turing.fh-landshut.de/~jamann/OrthogonaleProjektion.pdf

    Die Perspektivische Projektion - Teil 2
    http://turing.fh-landshut.de/~jamann/PerspektivischeProjektion.pdf

    danach sollte so etwas rauskommen:
    http://turing.fh-landshut.de/~jamann/PerspektivischeProjektion.zip



  • wenn du den Cohen Sutherland Algorithmus nicht kennst:
    http://turing.fh-landshut.de/~jamann/Cohen Sutherland Algorithmus.pdf

    wenn du nicht weißt wie man Strecken rastert:
    http://turing.fh-landshut.de/~jamann/bresenham.html
    http://turing.fh-landshut.de/~jamann/Bresenham die 2te.pdf

    wenn du nicht weißt wie man ein Pixel auf den Bildschirm malt:
    http://turing.fh-landshut.de/~jamann/DrawPixel.pdf



  • Z.B hier ein ein paar Links mit Grundlagen. Jedenfalls, kommt man mit etwas Suchen auf der Seite noch zu anderen Themen wie Matrizen etc.

    http://www.mathe-online.at/mathint/vect1/i.html
    http://www.mathe-online.at/mathint/vect2/i.html
    http://www.mathe-online.at/mathint/wfun/i.html

    Mein Ablauf zum Einstieg sähe grob so aus. Zuerst solltest du mit Punkten und Vektoren beginnen, Kreuzprodukt, Skalarprodukt...was ein Vektorraum ist etc.

    Dann kannst du mit Matrizen fortfahren. Nebenbei solltest du dich schon mal langsam in Winkelfunktionen einarbeiten.
    Danach sind die einfachen Transformationen wie, Skalierung, Verschiebung, Rotation dran. Und anstelle nur die vorgegebenen Matrizen zu schlucken, sollte es dich auch etwas interessieren wie sie denn "entstehen" vorallem die "allgemeine" Rotationsmatrix. Im Anschluss dann noch die Grundlagen zu homogenen Koordinaten.

    Und dann kannst du mit 3D anfangen. Linien, Ebenen, Kameramodell, Perspektive etc.



  • wenn es um tolle effekte und benutzen der abartigsten libs geht, dann lass die finger davon.
    wenn du dich zügeln kannst und bei einfachen sachen bleibst, dann gibt es wohl nichts sinnvolleres für dich, als mit OpenGL zu spielen.



  • volkard schrieb:

    wenn es um tolle effekte und benutzen der abartigsten libs geht, dann lass die finger davon.

    Genauer?!



  • Sgt. Nukem schrieb:

    volkard schrieb:

    wenn es um tolle effekte und benutzen der abartigsten libs geht, dann lass die finger davon.

    Genauer?!

    ich glaub er meint, wenn er effekte ala doom 3 etc machen will, oder half life 2 nachproggen will, sollte er es lassen. zum rumspielen oder einfachere sachen zu machen is ogl aber gut geeignet



  • Genau, niemand würde ernsthaft erwägen, Doom3 in OGl zu programmieren 😉

    *SCNR*



  • SeppSchrot schrieb:

    Genau, niemand würde ernsthaft erwägen, Doom3 in OGl zu programmieren 😉

    *SCNR*

    naja, ich meinte eher das niveau(man programmiert nicht im alleingang ne super duper unreal engine 3), nicht die "technik"



  • Nunja, laut Gerüchteküche hat Carmack seine Engines immer im Alleingang programmiert. Seine mitarbeiter waren dannnur noch für die Fertigstellung, Hilfsbibliotheken etc... zuständig, den Hardcore und interessanten Teil macht er wohl alleine. Und das vornämlich in OpenGL wie man ja weiss 😃



  • Mmh, ich weis nicht ob ich mich das jetzt falsch erinner, aber war doom nicht das letzte spiel mit ogl in der linie? Ich dachte es hiess nun doch mit dx/d3d?
    Ich dachte schade eigentlich Ogl hat einfach mehr Charme als d3d ;).



  • TravisG schrieb:

    SeppSchrot schrieb:

    Genau, niemand würde ernsthaft erwägen, Doom3 in OGl zu programmieren 😉

    *SCNR*

    naja, ich meinte eher das niveau(man programmiert nicht im alleingang ne super duper unreal engine 3), nicht die "technik"

    Was genau spricht dagegen? Man muss ein sehr hohes Maß an Wissen mitbringen, kann es aber definitiv im "alleingang" schaffen. Was man bestimmt nicht allein schafft sind alle anderen Teilgebiete der Spieleprogrammierung zu übernehmen.

    Und OpenGL ist nicht nur toll zum rumprobieren und für simple 3D Grafiken like "rotierender Würfel". Mit OpenGL kann man afaik alles nur Mögliche bewerkstelligen was die moderne 3D Grafik heutzutage zu bieten hat.

    grüße



  • ich habe mich vielleicht etwas falsch ausgedrückt, aber carmack und konsorten sind nunmal keine 08 15 programmierer, sie gehören zur weltspitze was grafikprogrammierung angeht. klar kann ich rein theoretisch sagen, wenn ich mich jetzt 5 jahre hinhock und schule blau mache nur um im internet den ganzen tag lang direct x und mathe zu lernen, bin ich bereit john carmack zu übertreffen und ne engine im alleingang zu basteln die besser ist als seine, aber dem ist nicht so. mal ganz abgesehen von der tatsache, das es carmacks beruf ist und er das ja nicht als hobby macht (jedenfalls nicht mehr 😉 )

    und ja, opengl kann klar alles was aktuell ist, aber mit dx hat man(soviel ich gehört hab, ich bevorzuge selbst opengl) viele vorgefertigte klassen die schon das zeug können was man braucht 🙂



  • Hi!

    Ja, DX bietet wohl viel vorgefertigtes. Die Frage ist aber ob man das will. Ich z.B. nicht! 🙂

    grüße



  • Wobei man auch die Platformunabhängigkeit von OpenGL mit in seine Überleungen einbeziehen sollte. Falls dies z.B. ein kriterium ist sieht es mit DirectX schon wieder etwas schlechter aus.
    Letztendlich sind beide gleichmächtig und haben ihre Vor und Nachteile.
    Der grosse Vorteil von DirectX imho ist das eine grosse Firma dahinter steht und eine ständige (mehr oder weniger) gute Weiterentwicklung stattfindet. Bei OpenGL (wie man an Version 2.0) ja sieht dauert das wohl etwas. Auch Treiber für OpenGL2.0 brauchen wohl etwas länger bis sie auf den Markt kommen.



  • David_pb schrieb:

    Ja, DX bietet wohl viel vorgefertigtes. Die Frage ist aber ob man das will. Ich z.B. nicht! 🙂

    Die andere Frage, die sich zum Beispiel stellt: Was bringt es mir Stunden in ne vernünftige Textausgabe auf dem Screen zu investieren, wenn ich das fertig vorfinde und dann die Zeit in was von Bedeutung (z.B: SceneManagement) stecken kann.

    IMHO sollte man so viel wie möglich fertiges einsetzen, schön kapseln, dann kann man es später leicht austauschen und direkt auf die wichtigen Teile konzentrieren, sonst kommt am Ende vermutlich nicht viel bei raus.


Anmelden zum Antworten