Ergebnis 1 bis 8 von 8

Thema: 2D OpenGL Tutorial für C/C++

  1. #1

    2D OpenGL Tutorial für C/C++

    Ich such jetzt seit ein paar Tagen nach Anfänger-OpenGL-Tutorials für C/C++. Dabei ist mir vor allem 2D wichtig.

    Die bisherigen Tutorials die ich gefunden habe waren entweder für Delphi, für Fortgeschrittene, oder beinhalteten nur den 3D-Bereich.

    Ich hoffe ihr könnt mir weiterhelfen,
    mfg Xero

    Geändert von Xero. (17.02.2009 um 18:11 Uhr)

  2. #2
    2D mit OpenGL ist nun einmal nicht ganz so einfach wie 3D.
    Du musst die Projektionsmatrix auf eine identitaetsmatrix setzen und die Z-Komponente deiner Punkte konstant halten. Ansonsten solltest du alles wie immer machen koennen.

    Fuer generelle OpenGL Tutorials war, als ich mich mit OpenGL beschaeftigt habe, immer NeHe eine gute Anlaufstelle.

    Ansonsten findest du sicher auch bei www.dev-comm.de was brauchbares ...

  3. #3
    Gut, dann mal ne andere Frage:
    Ist das bei DirectDraw genauso und läuft DirectDraw nur auf Windows?

  4. #4
    soweit ich weiss ... beides ja.

  5. #5
    Zitat Zitat von Ineluki Beitrag anzeigen
    2D mit OpenGL ist nun einmal nicht ganz so einfach wie 3D.
    Du musst die Projektionsmatrix auf eine identitaetsmatrix setzen und die Z-Komponente deiner Punkte konstant halten. Ansonsten solltest du alles wie immer machen koennen.

    Fuer generelle OpenGL Tutorials war, als ich mich mit OpenGL beschaeftigt habe, immer NeHe eine gute Anlaufstelle.

    Ansonsten findest du sicher auch bei www.dev-comm.de was brauchbares ...
    Eigentlich war 2D mit OGL sogar relativ leicht. Man konnte da mit wenigen Anweisungen den Projektionstyp auf eine Ansicht einstellen, wo Objekte wie auf Leinwand projeziert aussehen (also nur noch 2D sind), und auch den OGL-Renderbereich so anpassen, dass man die Objekte Pixelweise auf der Fläche platzieren konnte. Also die Handhabung wie eine 2D Grafik mit X und Y Koordinate. Die Z-Koordinate diente nur der Staffelung, ob ein Objekt hinter oder vor einem anderen angezeigt wird. Da kommt dem 2D die 3D-Fähigkeit sogar zu Gute, denn man kann nachträglich Objekte hinter bereits gerenderten Objekten darstellen, indem man die Z-Koordinate weiter hinein (in den Raum) setzt. Das Objekt selbst bleibt in der Größe und Perspektive gleich, wird nur dahinter gerendert.
    Für Isometrie und allerlei andere 2D Projektionsarten eignet sich OGL also relativ gut.

    Ein paar Tutorials und Seiten, die mir damals geholfen haben in der C++ -OGL-Programmierung:

    http://wiki.delphigl.com/index.php/Tutorial_2D <-- Tutorial um OGL in 2D-Ansicht zu nutzen

    http://msdn.microsoft.com/en-us/library/ms537030.aspx <-- Spezifikation aller OGL-Funktionen als Nachschlagewerk für Parameter etc

    http://www.delphigl.com/forum/ <-- Forum für OGL (ist zwar für Delphi, der OGL-Code von Delphi zu C++ ist aber identisch. OGL-Fragen kann man also auch hier stellen)

    http://nehe.gamedev.net/ <-- Diese Tutorials (48 stück!) haben mir damals die ersten Schritte vermittelt. Vom ersten OGL-Fenster bis zu 2D und 3D Szenen, Texturen, Texten in 3D, Mausklicks etc. SEHR empfehlenswert!


    Ich habe mir damals sagen lassen, dass OGL leichter für den Einstieg wäre, als DirectX. Hab letzteres aber nie ausprobiert. Mit OGL kam ich gut zurecht, sodass ich in nur wenigen Tagen erste 2D Spielchen laufen lassen konnte (C++ Grundkenntnisse vorausgesetzt).
    OGL bietet dir dazu den Vorteil, dass es sowohl auf Mac als auch auf Linux oder Windows lauffähig ist. DirectX hingegen nur auf Windows-PCs.
    Für die Spieleprogrammierung wird heutzutage zwar öffters auf DX zurückgegriffen, in der industriellen Nutzung hat OGL aber durchaus eine große Bedeutung. (Schon die Flüssigmetall-Effekte von Terminator 2 sind mit OGL realisiert worden, und der Film ist schon recht alt. Heute ist deutlich mehr möglich).

    Geändert von Ynnus (17.02.2009 um 20:15 Uhr)

  6. #6
    Danke euch Beiden erstmal^^

    1.
    Welche Tutorials muss ich denn durcharbeiten, damit ich mit dem Tutorial auf der Delphiseite anfangen kann - reicht es wenn ich weiß, wie man ein Fenster erstellt?
    Alles um 3D-Objekte darzustellen, das man aber nicht für 2D braucht, ist für mich nämlich fürs erste unwichtig.

    2.
    Kann man auch einfach vom NeHe-Tut zum DelphiGL-Tut wechseln?
    Der Code sieht für mich ertstmal sehr unterschiedlich aus.

  7. #7
    @1: Sollte funktionieren, hat bei mir auch geklappt. Wobei ich nur die 2D-Geschicht rausgesucht habe. Den Rest kannst du bei NeHe ganz gut finden.

    @2:Ist kein Problem der Unterschied ist nur die Syntax, musst halt wissen wie es in C Aussehen würde.

    PS: Oder du versuchst dich an tuts wie diesem oder diesem. Wollte die zwar früher posten, hat aber etwas gedauert die Links in meinen Notizen wiederzufinden^^.

  8. #8
    Starte mit Nehe - da hast du eigentlich alles dabei. Vom ersten Fenster zum ersten Grafikobjekt. Und 3D ist für 2D in OGL durchaus nicht uninteressant, denn auch ein 2D Objekt wird als Polygon mit 4 Vertices erstellt und eine Textur darauf gespannt. Du brauchst also einen Textur-Loader (also eine Funktion, die dir z.B. eine *.TGA-Grafikdatei in den speicher lädt) und musst dann wie beim 3D Objekt Polygone setzen und mit Texturen versehen. Einige Details speziell für 3D kann man aber vereinfachen oder weglassen, es wird also leichter.

    Wenn du das Fenster und den OpenGl Renderingcontext erstellt hast (z.B. wie bei Nehe beschrieben) kannst du auch mit dem Wiki-Tutorial weitermachen. Die Codes dort sind größtenteils OpenGL-Funktionen und die sind unabhängig von Delphi oder C++ identisch. Dort suchst du dir dann die benötigten Funktionen wie "glOrtho()" etc raus, um eine 2D Projektionsfläche zu erhalten und darauf Grafiken anzeigen zu können.

    Viel Erfolg.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •