Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:49

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Sep 26, 2010 00:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Okt 23, 2009 12:22
Beiträge: 26
Programmiersprache: Delphi(, C++)
Hi!

Ich habe das Ganze eigentlich schonmal gemacht, aber ich finde hier keinen Unterschied zu damals:
Code:
BckgrMovement := BckgrMovement+(0.001*TimeFactor);
  BackgroundTex3.Bind;
  glMatrixMode(GL_TEXTURE);
    glLoadIdentity;
    glTranslatef(BckgrMovement,0,0);
  glMatrixMode(GL_MODELVIEW);
  glBegin(GL_QUADS); //background overlay
    glTexCoord2f(0,1); glVertex3f(-512,-512,-8); // <v
    glTexCoord2f(1,1); glVertex3f(512,-512,-8); // >v
    glTexCoord2f(1,0); glVertex3f(512,512,-8); // >^
    glTexCoord2f(0,0); glVertex3f(-512,512,-8); // <^
  glEnd;

  glMatrixMode(GL_TEXTURE);
      glLoadIdentity;
      glTranslatef(0,0,0);
  glMatrixMode(GL_MODELVIEW);

Also, BackgroundTex3 (ich benutze die glBitmap.pas) soll auf dem Quadrat in X-Richtung verschoben werden. Allerdings tut sich da nichts, wenn der Code so ist wie oben. Wenn ich aber im letzten Abschnitt etwas verändere, ist es meistens so, dass alle Texturen in meiner Scene verschoben werden.

Bestimmt habe ich wieder irgendetwas übersehen, aber ich komme hier schon seit ca. 1 Stunde nicht weiter :(


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Sep 26, 2010 09:02 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Also ich sehe da in obigem Abschnitt keinen Fehler der das verursachen könnte. Wahrscheinlich liegt der Fehler an anderer Stelle. Ggf. zeig mal mehr Code.

Hat BckgrMovement den richtigen Wert?
Siehst du den Hintergrund, wenn die Texturmatrix einfach nur glLoadIdentity ist?

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Sep 26, 2010 10:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Okt 23, 2009 12:22
Beiträge: 26
Programmiersprache: Delphi(, C++)
Danke, lag offensichtlich an BckgrMovement. Wäre so auch gar nicht darauf zu kommen, den zu überprüfen.
Der Wert war relativ hoch, weil am Anfang der TimeFactor auch noch recht groß war. Allerdings war er nicht größer als 10000; hätte es dann nicht noch funktionieren müssen?
Egal, jetzt überprüfe ich jedes mal, ob BckgrMovement zu groß ist und es klappt :)

[edit]Jetzt bin ich doch verwirrt: Müsste die Textur nicht "auf der anderen Seite wieder rauskommen"? Jetzt geht sie einmal von der einen zur anderen Seite, ohne dass etwas "nachkommt" - dann springt sie wieder zurück und das Ganze geht von vorn los...[/edit]


Zuletzt geändert von Lumpiluk am So Sep 26, 2010 10:16, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Sep 26, 2010 10:14 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Allerdings war er nicht größer als 10000; hätte es dann nicht noch funktionieren müssen?

Ein 32bit Float hat nur eine Genauigkeit von ca. 6 Dezimalstellen, wenn also BckgrMovement = 10000, dann kannst du ggf. nicht mehr zwischen 10000,01 und 10000,02 unterscheiden. Es sollte ja aber eigentlich reichen nur den Nachkomma-Anteil von BckgrMovement zu benutzen, oder? Also sowas:
Code:
BckgrMovement := fract(BckgrMovement+(0.001*TimeFactor));

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Sep 26, 2010 10:38 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Okt 23, 2009 12:22
Beiträge: 26
Programmiersprache: Delphi(, C++)
Das war das, was ich mit
Zitat:
Egal, jetzt überprüfe ich jedes mal, ob BckgrMovement zu groß ist und es klappt
meinte ;)

Jetzt habe ich das Problem, dass die Textur in X-Richtung anscheinend nicht wiederholt wird...

[edit]Habe es jetzt nach eine Google-Suche selbst rausgefunden :oops:
folgendes fehlte noch:
Code:
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
[/edit]


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]