AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL - Allgemeine Fragen

Ein Thema von Destroxi · begonnen am 31. Okt 2011 · letzter Beitrag vom 2. Nov 2011
Antwort Antwort
Destroxi

Registriert seit: 29. Okt 2011
55 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: OpenGL - Allgemeine Fragen

  Alt 31. Okt 2011, 21:17
Werde ich morgen ausprobieren, aber warum benutzt ihr alle "OpenGL."?
Ich schreib immer ohne das und es funzt alles^^

Mfg
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#2

AW: OpenGL - Allgemeine Fragen

  Alt 1. Nov 2011, 10:17
Werde ich morgen ausprobieren, aber warum benutzt ihr alle "OpenGL."?
Delphi-Quellcode:
glBindTexture(OpenGL.GL_TEXTURE_2D, ID);
OpenGL.glTexParameteri(OpenGL.GL_TEXTURE_2D, OpenGL.GL_TEXTURE_WRAP_S, OpenGL.GL_REPEAT);
OpenGL.glTexParameteri(OpenGL.GL_TEXTURE_2D, OpenGL.GL_TEXTURE_WRAP_T, OpenGL.GL_REPEAT);
Wenn du genauer hinschaust, steht bei glBindTexture kein "OpenGL.". Das ist, weil ich die Funktion in der Borland-Unit nicht finden konnte. Dann hab ich sie selber eingebunden. Und in Java kommt man nicht drum herum "GL." oder "GL11." vor die Funktionen zu schreiben, also mach ichs überall gleich. Außerdem muss ich die komischen Konstanten etc. nicht ausschreiben sondern blättere, nachdem ich "OpenGL." eingegeben habe, zu der richtigen mit der Codevervollständigung. Und letzter Grund: Gewohnheit mittlerweile.
Konstanten sind nicht wrong! Definiert ist definiert. Mit Defintionen muss man leben. Deswegen sagst du auch, dass
  • 5 + 3 * 2 = 16 (falsch)
  • 5 + 3 * 2 = 11 (richtig)
ist, obwohl es mit anderen Definitionen anders herum oder OHNE beides richtig wäre.

Geändert von Cicaro ( 1. Nov 2011 um 10:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

AW: OpenGL - Allgemeine Fragen

  Alt 1. Nov 2011, 10:33
Konstanten sind nicht wrong! Definiert ist definiert. Mit Defintionen muss man leben. Deswegen sagst du auch, dass
  • 5 + 3 * 2 = 16 (falsch)
  • 5 + 3 * 2 = 11 (richtig)
ist, obwohl es mit anderen Definitionen anders herum oder OHNE beides richtig wäre.
Wenn ich zu einer Konstanten sage, sie sei falsch, heißt das, sie ist schlecht definiert.
Und wenn eine Konstante schlecht definiert ist, muss man eine bessere Alternative schaffen.
Der Satz ist mehr als Aufhänger gedacht, damit man weiter liest.

OK, mal ein anderer Satz, der im Zusammenhang mit Tau oft verwendet wird: The Pi is a lie.

Geändert von implementation ( 1. Nov 2011 um 12:40 Uhr)
  Mit Zitat antworten Zitat
Destroxi

Registriert seit: 29. Okt 2011
55 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: OpenGL - Allgemeine Fragen

  Alt 1. Nov 2011, 12:37
KK erstma danke werde jetzt alles ausprobieren ;D

€dit: Wegen der Rotation: ich weiß warum ich es nicht gesehen habe, es war außerhalb des Bildschirmes, deswegen meine Frage: Wie drehe ich ein Objekt auf einer Stelle?

€dit²: Neue Frage: Wie lasse ich (für Tetris) die Objekte die herunterfallen nicht verschwinden? Am besten so, dass ich sie nicht immer neu zeichnen muss
Mein Code: (wo sie verschwinden)
Delphi-Quellcode:
procedure TForm1.Render(Sender: TObject; var Done: Boolean);
begin
 // Altes löschen
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

 // Karte und sehfeld einstellen kommt noch in OnCreate - Event
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity;
 glViewport(0, 0, ClientWidth, ClientHeight);
 glOrtho(0, SizeX, 0, SizeY, -128, 128);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity;

 // Prüfen ob ein Block grade runterfällt, wenn nicht, erstelle einen neuen
 If SelBlock.Typ = 0 then
 begin
  SelBlock.Typ := 1; // Kommt noch Zufalls-Funkt. hin
  SelBlock.pX := SizeX/2-TypDaten[SelBlock.Typ].pWidth/2;
  SelBlock.pY := SizeY;
 end;

 // Den jeweiligen Typen erstellen
 glBegin(GL_QUADS);
  glColor3f(TypDaten[1].Red, TypDaten[1].Green, TypDaten[1].Blue);
  glVertex3f(SelBlock.pX, SelBlock.pY, 0);
  glVertex3f(SelBlock.pX, SelBlock.pY-TypDaten[SelBlock.Typ].pHeight, 0);
  glVertex3f(SelBlock.pX+TypDaten[SelBlock.Typ].pWidth, SelBlock.pY-TypDaten[SelBlock.Typ].pHeight, 0);
  glVertex3f(SelBlock.pX+TypDaten[SelBlock.Typ].pWidth, SelBlock.pY, 0);
 glEnd;

 // Objekt weiterfallen lassen
 If SelBlock.pY > TypDaten[SelBlock.Typ].pHeight then
  SelBlock.pY := SelBlock.pY - 2
 else
  SelBlock.Typ := 0;

 SwapBuffers(DC);

 Done := False;
end;
PS: Ich habe erst einen Typ gemacht!

Tutorial-Frage
Da ich sehr viele Fragen habe, würde ich gerne ein Tutorial wissen, wo auf OpenGL 2D Spiele Programmierung eingegangen wird, und später dann vielleicht auch 3D.
Weiß da jemand eins?
Danke!

Geändert von Destroxi ( 1. Nov 2011 um 14:55 Uhr)
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#5

AW: OpenGL - Allgemeine Fragen

  Alt 1. Nov 2011, 19:33
Wegen der Rotation: ich weiß warum ich es nicht gesehen habe, es war außerhalb des Bildschirmes, deswegen meine Frage: Wie drehe ich ein Objekt auf einer Stelle?
Die Reihenfolge von glTranslate und glRotate macht den Unterschied aus.

Tutorial-Frage
Da ich sehr viele Fragen habe, würde ich gerne ein Tutorial wissen, wo auf OpenGL 2D Spiele Programmierung eingegangen wird, und später dann vielleicht auch 3D.
Weiß da jemand eins?
Danke!
Nach Tuts einfach googeln. Wenn du willst, kannst du dich unserem kleinen Team anschließen hier. Musst nur 2 Sachen beachten: Englisch-sprachig und Creative Commons Lizenzen beachten. Wir tauschen Ideen und den ganzen Kram (Grafiken, Sounds, Musik) rund ums Spieleentwickeln aus. Stehen aber noch am Anfang (1. Projekt).

Geändert von Cicaro ( 1. Nov 2011 um 19:48 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#6

AW: OpenGL - Allgemeine Fragen

  Alt 2. Nov 2011, 00:43
Du suchst Tutorials?

1) Surf mal zu http://nehe.gamedev.net/ und schau dir die "Lessons" an. Da lernst du alles Schritt für Schritt und es macht auch noch Spaß, die Tutorials zu machen

2) Die DelphiGL-Tutorials sind auch mehr als einen Blick wert: http://wiki.delphigl.com/index.php/Tutorial

3) Sich durch den Code von GLScene zu wurschteln bringt auch oft mehr als ein Aha-Erlebnis
(ich habe mir so am Anfang das meiste OpenGL-Zeugs angeeignet, indem ich manche Bugs von GLScene beseitigt habe / einiges davon erweitert habe)

P.S (nur so als Info, weil du sagst "zuerst 2D, dann später 3D"):
In OpenGL ist eigentlich alles 3D, da es eine reine 3D-API ist. OpenGL für 2D zu Verwenden heisst eigentlich nichts anderes als ein konsequentes Ignorieren der Z-Achse, da man bei einer 3D-API ja immer die 3. Dimension wegnehmen kann (im Gegensatz zu einer 2D-API, bei der man die dritte Dimension nicht so einfach "dazuzaubern" könnte).
Die API für die 2D-Verwendung bleibt aber in OpenGL die gleiche wie bei 3D, somit ist es vom Schwierigkeitsgrad her nicht sonderlich viel einfacher, 2D damit zu machen, eher im Gegenteil, da man bei Verwendung von 2D eben eine Koordinate / Achse konsequent ignorieren muss, die der API innewohnt
Somit kannst du 2D in OpenGL eher als Sonderform bzw. eine spezielle Verwendungsmöglichkeit ansehen, die meisten Tutorials sind aber für den 3D Gebrauch und gehen nur am Rande auf den 2D-Gebrauch ein.
2D in OpenGL funktioniert, keine Frage, und das sehr gut sogar Ich wollte dir damit nur sagen, dass du gleich mit 3D starten kannst, wenn dich OpenGL interessiert, da es von der Lernkurve her kaum einen Unterschied macht.

(Ausserdem lernst du beim 3D-Gebrauch noch viel mehr den Umgang mit Matrizen, was einer der Kernpunkte bei OpenGL überhaupt ist..und je früher du damit lernst umzugehen, umso besser )

Geändert von blackfin ( 2. Nov 2011 um 01:12 Uhr)
  Mit Zitat antworten Zitat
Destroxi

Registriert seit: 29. Okt 2011
55 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: OpenGL - Allgemeine Fragen

  Alt 2. Nov 2011, 17:05
Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz