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

Aktuelle Zeit: Fr Jul 18, 2025 08:15

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Meine Texturen sind falsch herum
BeitragVerfasst: Mi Aug 10, 2011 07:29 
Offline
DGL Member

Registriert: Sa Apr 09, 2011 20:48
Beiträge: 43
Programmiersprache: Delphi
Hallo Leute,

nach längerer Zeit hab ich mich mal wieder drangesetzt und habe es tatsächlich geschaft einen kleinen 3D-Editor zu basteln.
Mein Problem ist nur: die Texturen die ich lade werden Spiegelverkehrt dargestellt.
Ich hab mir eine Textur erstellt bei der die Ecken nummeriert sind. Laut Wiki und anderen Tutorials ist die "natürliche" Reihenfolge für die Ecken einer Textur folgende:

4---3
1---2

wobei
1=Links Unten
2=Rechts Unten
3=Rechts Oben
4=Links Oben

Allerdings werden meine Texturen falsch herum dargestellt. Sie sind sowohl vertikal als auch horizontal gespiegelt.
Ich lade übrigens eine Bmp. Ist das normal? Wie kann ich die Textur flippen, bevor ich diese platziere?
Oder mach ich irgendwas falsch?
Ich erstelle die Faces meiner Quads auch in dieser Reihenfolge. Sowohl die Eckpunkte als auch die Texturemapping-Ecken.
Immer LU->RU->RO->LO

ne schöne jroß
Bio


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Mi Aug 10, 2011 08:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Und sicher das dein vertex links unten die UV Koordinate 0,0 und das rechts oben 1,1 hat?

Falls ja, wie laedst du die Textur? Eventuell laedt der loader sie - warum auch immer - falschrum?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Mi Aug 10, 2011 12:55 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Eine weitere Möglichkeit wäre, dass eine deiner Matrizen irgendwie falsch eingestellt ist z.B. durch glScalef oder glOrtho.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Do Aug 11, 2011 15:10 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Es kommt vllt auf den Loader an wo bei den Texturen der Ursprung ist. Für OpenGL fängt eine Textur unten links an. Bei Windows ist der Koordinaten Ursprung aber meistens oben links. Möglicherweise wird das beim Laden deshalb konvertiert (oder auch nicht).

Schreib mal welche Texturkoordinaten du für die einzelnen Ecken verwendest.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Fr Aug 12, 2011 11:58 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wo steht denn, dass eine Textur ihren Ursprung immer unten Links haben muss? Ich persönlich denkedas hat eher geschichtlichen Hintergrund der in Wirklichkeit falsch ist aber die Jahre überdauert hat und mittlerweile als einzige wahre Wahrheit gehandelt wird. Das bitte mir einem Zwinkern betrachten. Richtig falsch gibt es in dem Fall nicht. Der Grafikkarte ist das in den meisten Fällen sogar ziemlich egal wie rum die Textur ist. In einigen Fällen (Cubemaps) ist es allerdings so, dass die Textur explizit TopDown sein MUSS.

Bei BMPs ist es so, dass die erste Zeile des Bildes als letztes in die Datei geschrieben wird. Sie stehen also von Hause aus auf dem Kopf. Wenn man sie also am Block einließt und nach OpenGL übergibt ist die Koordinate (0,0) Unten Links. Wobei 0,0 aber eigentlich Oben Links ist nur da die Textur im Speicher auf dem Kopf steht wird dann wieder unten links raus. Da gibt es jetzt 2 Möglichkeiten. Wie von den anderen erwähnt. Entweder die Koordinaten passen nicht zu dem wie sie sein müssen um die Textur so darzustellen wie sie soll oder die Bilddaten passen nicht dazu wie die Ansicht konzipiert wurde. Und das kann dann eigentlich nur der Loader sein. Und der einzige mir bekannte Loader der so was macht ist die glBitmap. Da werden die Texturen immer TopDown abgelegt. Hat aber eine Methode zum Flippen (FlipVert).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Fr Aug 12, 2011 13:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
ich würd auf jedenfall empfehlen sie nicht einfach nochma umzudrehn, auch wenn das leichter wäre, sondern nach nem echten fix suchen, sonst hast du später evtl probleme die nichtmehr so leicht zu lösen sind. so von anfänger zu anfänger^^

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Fr Aug 12, 2011 15:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das stumpf zu machen sollte auch nicht mein Rat gewesen sein (ist es nie). Sondern BionicWave muss sich erst mal das Problem genau anschauen und den Grund finden warum sie auf dem Kopf steht. Dafür wurden in dem Thema einige Ansätze gesagt bzw. Nachfragen gestellt.

Wenn der 3D Editor aber externe Formate lesen oder schreiben können soll, dann hat man auch nicht diese Flexibilität sagen zu können "ich mache das jetzt wie ich will". Sondern dann muss es so sein wie es das Format erwartet. In 3D Editoren ist es aber (glaube ich) immer so, dass die Texturen auf dem Kopf stehen. Bzw die Koordinaten entsprechend so sind. Falls er also die glBitmap benutzt wird es nicht viele Alternativen geben als sie zu drehen. Natürlich erst nachdem das Problem anständig analysiert wurde. Alles Andere wird sich auf kurz oder lang rächen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Sa Aug 13, 2011 09:03 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Was auch sein könnte:

"Backfaceculling" ist deaktiviert (standardmässig) und du schaust dir die Fläche von der Rückseite an. Da entsteht optisch der Eindruck das die Textur verkehrt herum ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Sa Aug 13, 2011 13:02 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Die Texturen flippen geht so:

glMatrixMode(GL_TEXTURE);
glLoadIdentity;
glRotatef(180,1,0,0); //Mal ausprobieren, notfalls andere Werte
glMatrixMode(GL_MODELVIEW);

Sowas habe ich auch manchmal...

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Di Aug 23, 2011 17:49 
Offline
DGL Member

Registriert: Sa Apr 09, 2011 20:48
Beiträge: 43
Programmiersprache: Delphi
Ich denke ich habs jetzt.
Die Textur war richtig rum. Die Angaben zu den Abmessungen einzelner Teile der Texture waren wohl falsch.
Ich hab bei den Texturpositionsangaben bei der Y-Achse von oben nach unten gerechnet.
Nachdem ich das umgedreht habe klappt alles wie es soll.
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

@Lossy:
Jo. Stumpf machen kam für mich auch nicht in Frage. Hab ständig den ganzen Quellcode durchforstet, aber das offensichtliche einfach nicht gesehen. So ein Mist.

Übrigens noch mal vielen Dank für die vielen Tipps die ich hier mittlerweile schon erhalten habe.
Ich hatte ja vor ein paar Monaten zum ersten mal Kontakt zu OpenGL. Hab dann aber aufgehört, als ich mit meinem Projekt zu viele Probleme hatte.
Nach einiger Zeit hätte ich bei einem anderen Projekt einen einfachen 3D-Viewer gebrauchen können. Also hab ich noch mal bei Null angefangen...
und plötzlich waren die Probleme die ich hatte wie weggeblasen. Alles hat auf Anhieb so funktioniert wie ich es mir vorgestellt hatte. Kaum zu glauben was so eine längere Pause bewirken kann. Jetzt funktioniert auch Translation und Rotation.

Das beste war aber folgendes: Ich hatte mir eine Klasse zur Erstellung von einfachen Modellen geschrieben. Dazu habe ich mir 2 Tage lang den Kopf zerbrochen wie man einfache Boxen und deren Faces am besten und effektivsten erstellt und rendert. Schliesslich habe ich den Entwurf umgesetzt.
Funktionierte wunderbar.

Dann, ein paar Tage danach, konnte ich einen Blick auf den Quellcode der Modelerstellung bei Minecraft nehmen. Kaum zu glauben, aber Notch benutzt tatsächlich fast exakt den gleichen Aufbau den ich mir ganz allein überlegt hatte. Das hat mich echt umgehauen.

Das heisst für mich ich hab viel dazu gelernt und stehe doch nur am Rande des Anfangs.
Also von ganzem Herzen: Danke an die OpenGL-Community.

gruß
Bio


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Di Aug 23, 2011 18:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das wird dir nebenbei immer wieder passieren. Ist ein nettes Gefühl, wenn man merkt, dass man anscheinend doch nicht ganz doof ist und Probleme mindestens ähnlich wie andere löst.8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Meine Texturen sind falsch herum
BeitragVerfasst: Do Aug 25, 2011 10:51 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Wobei beim nächsten mal mehr Code hilfreich gewesen wäre.


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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 ]