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

Aktuelle Zeit: Di Jul 15, 2025 02:04

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Textur wird verzerrt
BeitragVerfasst: Di Nov 11, 2003 19:38 
Offline
DGL Member

Registriert: Sa Aug 30, 2003 22:23
Beiträge: 36
Wohnort: Hamburg
ich habe schon wieder ein problem mit meinen texturen.. :?

ich lade texturen von flugzeugen mittel glBMP und packe sie dann auf nen quad.

normalerweise kein problem.. nur bei manchen dateien gibs fehler. Vorher hab ich einfach die grösse ein bischen geändert und irgenwann gings wieder, aber das kanns ja nicht sein.

ich hab meine Bilder jetzt alle auf ne einheitliche höhe von 256 pixel geändert und nur die breite ist unterschiedlich.

Einige werden jetzt ganz normal geladen und bei anderen sieht das so aus als ob die TexCoords nicht stimmen.

Ich füge nen bild mit an auf dem einmal ein normal geladenes und einmal ein falsches drauf zu sehen ist.

ich poste auch mal meinen code zum laden und zeichnen mit, obwohl ich eher glaube das das nen anderes problem ist..

Bild laden:
Zitat:
ShipImage := TGLBMP.Create;
ShipImage.LoadImage('data/gfx/ships/ship00.bmp');
ShipImage.AddAlpha('data/gfx/ships/ship00a.bmp');
ShipImage.SetFilter(GL_NEAREST,GL_NEAREST);
ShipImage.GenTexture;


Bild zeichnen:
Zitat:
x := ShipImage.GetWidth / ShipFactor;
y := ShipImage.GetHeight / ShipFactor;

glTranslatef(PlayerPosX,PlayerPosY,0);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(-x,y,0);
glTexCoord2f(0,1); glVertex3f(-x,-y,0);
glTexCoord2f(1,1); glVertex3f(x,-y,0);
glTexCoord2f(1,0); glVertex3f(x,y,0);
glEnd;


Das Problem besteht auch wenn ich feste grössen fürs quad nehme.

Fall jemand das problem kennt oder ne Idee hat, bin ich für jede hilfe dankbar.

mfg
Avenger


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
<< Ich werde Ewig leben oder beim Versuch dies zu erreichen, sterben! >>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 21:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Höhe und Breite einer Textur sollten unter OpenGL immer Zweierpotenzen sein.
Wenn du glu verwendest, kannst du deine Texturen auch "on the fly" skalieren.
Beliebige Texturen kannst du nur verwenden, wenn deine GraKa die GL_ARB_texture_non_power_of_two Extension unterstützt - also solltest du es aus Kompatibilitätsgründen lieber bleiben lassen (ist ja wohl wirklich kein Problem, die Texturen dementsprechend zu skalieren)

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 11, 2003 22:12 
Offline
DGL Member

Registriert: Sa Aug 30, 2003 22:23
Beiträge: 36
Wohnort: Hamburg
ne das ist auch kein problem.. aber es geht ja bei manchen die auch keine norm grösse haben und wenn ich die als jpg abspeicher gehts auch.. mit den selben grössen..

_________________
<< Ich werde Ewig leben oder beim Versuch dies zu erreichen, sterben! >>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 12, 2003 06:51 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Mir ist gerade eingefallen, woran deine Verzerrung liegt. Kann es sein, dass die Breite deines Bildes nicht durch 4 Teilbar ist? Im Bitmapformat sind Spacerzeichen (am Ende einer Zeile) eingebaut damit die Breite durch 4 Teilbar ist (warum weiß ich auch nicht). Ich hatte das vor einer ganzen Weile selbst einmal schmerzhaft herraus finden dürfen. Das Problem liegt mit Sicherheit an dem TexturenLoader. Sobald die Bildbreite wieder durch 4 Teilbar ist sollte es wieder gehen. Oder du nimmst einen Loader der damit keine Probleme hat. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 12, 2003 09:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Das Problem hatte ich auch mal. Bei mir musste die Höhe und die Breite gleich sein.


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 10 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 | 14 Queries | GZIP : On ]