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

Aktuelle Zeit: Fr Jul 18, 2025 08:07

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem bei Tutorial 4 - Texturen
BeitragVerfasst: Di Jun 03, 2008 14:08 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich hab heute das 4. Tutorial angefangen, und bin auf
folgendes Problem gestoßen:

Im Tutorial steht:

Code:
  1. glBegin(GL_QUADS);
  2.   glTexCoord2f(0,0); glVertex3f(-1,-1,0);
  3.   glTexCoord2f(0,1); glVertex3f(-1,1,0);
  4.   glTexCoord2f(1,1); glVertex3f(1,1,0);
  5.   glTexCoord2f(1,0); glVertex3f(1,-1,0);
  6. glEnd;


doch da hab ich bloß einen schwarzen Bildschirm,
deshalb hab ich das ganze so abgeändert:

Code:
  1. glBegin(GL_QUADS);
  2.   glTexCoord2f(0,0); glVertex3f(-1,-1,0);
  3.   glTexCoord2f(1,0); glVertex3f( 1,-1,0);
  4.   glTexCoord2f(1,1); glVertex3f( 1, 1,0);
  5.   glTexCoord2f(0,1); glVertex3f(-1, 1,0);
  6. glEnd;


So zeichne ich die Vertex gegen den Uhrzeigersinn und weise entsprechend
die Punkte auf der Textur zu (-1 = 0 und 1 = 1).
Jetzt seh ich zwar die Textur, aber sie steht auf dem Kopf?!
Deshalb hab ich noch die Y-Koordinaten der Textur getauscht:

Code:
  1. glBegin(GL_QUADS);
  2.   glTexCoord2f(0,1); glVertex3f(-1,-1,0);
  3.   glTexCoord2f(1,1); glVertex3f( 1,-1,0);
  4.   glTexCoord2f(1,0); glVertex3f( 1, 1,0);
  5.   glTexCoord2f(0,0); glVertex3f(-1, 1,0);
  6. glEnd;


Jetzt is das Bild zwar richtig rum auf dem Screen, aber der Quelltext
ist total verwirrend! Bevor ich die Vertex gesetzt hab, hab ich
Code:
  1. glTranslatef(0,0,-2.5);
aufgerufen, um das ganze ein stück von der Kamera
weg zu bewegen.
Weiß jmd was ich da falsch gemacht hab??
Schonma Danke im Vorraus.

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 03, 2008 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Das kann an dem Texturformat liegen. Manche Bildformate speichern sich Kopfüber, weshalb du da die Texturkoordinaten ändern musstest.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 03, 2008 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
Hast du vieleicht das Culling an das würde erklären warum nach dem ändern der Zeichenrichtung das Bild sichtbar wird.

Nimm mal den Code aus dem Tutorial und schreib davor glDisable(GL_CULL_FACE);

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 03, 2008 20:23 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Im Tutorial steht es verkehrt rum? Muss mir das gleich mal angucken.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 03, 2008 20:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Bergmann89: was hast du denn geladen? ein jpeg oer ein bmp? Im Tutorial wird glaube ich ein jpeg geladen und ich meine jemand hätte mir einem bmp schon das gleiche Problem gehabt. Deswegen vermute ich mal du hast nen bmp benutzt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 03, 2008 22:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Also das es nich sichtbar war lag an glEnable(GL_CULL_FACE);
das war noch von einem Tutorial weiter vorn drin...
Und ich benutz ne *.jpg, hab auch nochma ne *.bmp probiert:
geht auch nich!
aber hauptsache ich weiß warum das nich sichtbar war: DANKE!

und dann hab ich gleich mal noch ne Frage:
Wenn ich mehrere Texturen geladen haben, wie sag ich OpenGL
welche Textur es nehmen soll?

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 07:30 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das nächste mal bitte für extra Fragen auch ein extra Thema erstellen. Sonst wird das irgendwann nur noch unbersichtlich. Außerdem gehen solche Frage auch gerne mal unter.

Aber um deine Frage zu beantworten. Wenn du eine Textur erstellst bekommst du via glGenTextures eine ID. Um die Daten hochladen zu können muss du OpenGL Mitteilen, dass es diese Textur benutzen soll. Das geht mittels glBindTexture. Wenn du sie später auf verschiedenen Quads darstellen möchtest musst du OpenGL vor dem Zeichnen des Quads sagen welche Textur du benutzen willst. Also auch glBindTexture. Damit wird die Textur innerhalb OpenGL gebunden. Um sie für die Darstellung zu aktivieren musst du auch noch glEnable(GL_TEXTURE_2D) aufrufen. Damit wird sie aktivert. glDisable ist dabei das passende Gegenstück.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 14:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
gut, muss ich mich nochma belesen...
hab jetzt glaub ich entdeckt warum die textur auf dem kopf stand:

im tuturial auf dem 2. Bild stehen die Koordinaten für die Textur,
dabei ist 0/0 links unten und 1/1 rechts oben.
Weiter unten, im Abschnitt "Am Fließband" steh aber 0/0 links OBEN
und 1/1 rechts UNTEN! Also wird wohl das 2. richtig sein ^^

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 16:59 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Da scheint im Tutorial wohl irgendwas schief gelaufen zu sein...

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 17:09 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also das Tutorial scheint mal dringen überarbeitet werden zu müssen. Das witzige ist, dass bei den Bildern des Tutorials ja auch einmal die "Gespiegelte" Textur mit dabei ist. Dort sind die Koordinaten glaub ich richtig eingezeichnet. Somit muss nur noch der Text überarbeitet werden. Ich denke Phobeus nimmt mir nicht übel, wenn ich da mal eingreife.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 17:45 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Könnt ihr mal gucken obs jetzt besser ist. Bei dem Kartenbeispiel unten war ich mir nicht sicher.
Die Nummerierung in den Bildern stimmt jetzt leider nicht mehr mit denen im Code überein. Aber wieso Phobeus die Vertices in Uhrzeigerrichtung übergeben hat ist mir nicht klar. Eigentlich gibts keinen Grund dafür.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 04, 2008 18:52 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Ich vermute stark, dass es ursprünglich darum ging das Format einmal zu spiegeln. Evtl. ist dies dann nicht richtig angepasst worden, als die Tutorials auf SDL umgestellt wurden. Habe keine Probleme damit, wenn es entsprechend korrigiert wird, damit es auf einer breiteren Basis läuft.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.009s | 15 Queries | GZIP : On ]