OpenGL, nur was für studierte?
-
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.pdfDie orthogonale Projektion
http://turing.fh-landshut.de/~jamann/OrthogonaleProjektion.pdfDie Perspektivische Projektion - Teil 2
http://turing.fh-landshut.de/~jamann/PerspektivischeProjektion.pdfdanach 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.pdfwenn 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.pdfwenn 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.htmlMein 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.
-
Hi!
Ich investier lieber etwas mehr Zeit in Planung und Implementation und erstell ein stimmiges, auf meine Wünsche abgepasstes Klassensystem.
Mit den DX vorgefertigten Sachen fühl ich mich zu eingeengt in anderen Bereichen. Da zieh ich OpenGL doch lieber vor, zumal ich dann weis was da im Hintergrund abläuft.
Bei so manchen Microsoft Quellcodes bin ich da nicht so begeistert.grüße
-
Jester schrieb:
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.
wozu sollte man ein scenemanagement schreiben, wenn man fertige haben kann oder wozu überhaupt zeit in eine engine stecken, wenn es zuhauf sogar recht gute gibt? und wozu engines wenn man ein fertiges spiel nehmen kann und ein mod dafür schreiben könnte?
ich denke es muss für jede ebene experten geben und deswegen ist es gut wenn sich manche für softwarerasterizer und manche am anderen ende fürs scripten von spielen interresieren. man muss nur für sich selbst entscheiden was einem gefällt und womit man dann glücklich ist.
-
Aha und man braucht also auch Experten, die Schrift auf den Bildschirm rastern? Ne, sowas baut man sich schnell, wenn man's unbedingt braucht, wenn man aber eigentlich was anderes machen will, dann hält es nur auf. Während das SceneManagement oder auch die ganze Engine auf die eigenen speziellen Bedürfnisse zurechtgeschnitten sein können ist die Textausgabe eine so generelle Aufgabe, daß es kein Problem ist dafür eine allgemeine Komponente zu basteln, die einfach ihren Dienst tut.
Was ich kritisiere ist dieses äußerst unproduktive "ich mache alles selbst". Die meisten Projekte, die so anfangen bringen es zu nichts.