JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=be2580a63a449ca5ed256cf5d8a9b4ccMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Textur spiegelverkehrt bei 3DS Import

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 20.01.2008, 13:10    Titel: Textur spiegelverkehrt bei 3DS Import Antworten mit Zitat

Moin Moin,

ich hab ein kleines Problem bei einem 3ds Importer. Und zwar wird die Textur spiegelverkehrt auf das Objekt gelegt. Texturkoordinaten etc. passen mit einem Stand-Alone-Viewer überein.

Gibt es Chunks, die ich noch zusätzlich auslesen muss, um die Textur quasi zu drehen oder sowas?

Danke schon einmal im voraus.
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 20.01.2008, 13:22    Titel: Antworten mit Zitat

OpenGL hat ein anderes Koordinatensystem als quasi der Rest der Welt. Da ist 0|0 UNTEN links. Entspricht dem in der Mathematik üblichen, aber auf einem Computer ist es recht ungewöhnlich.
Ich würde mit einem Bildbearbeitungsprogramm (Gimp, IrfanView) versuchen die Textur einmal auf den Kopf zu stellen.
Wenn du Zugriff auf den Source hast, kannste die UVs natürlich leicht selber umrechnen. Du musst halt nur gucken, was worauf abgestimmt ist und ob es demnach sinnvoller wäre die Textur oder die UVs zu drehen.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 20.01.2008, 15:21    Titel: Antworten mit Zitat

Es gibt Matritzen für die texturkoordinaten, liegt es evtl daran?
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 20.01.2008, 15:56    Titel: Antworten mit Zitat

Matritzen für Texturcoordinaten???

Welcher Chunk soll das denn sein?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 20.01.2008, 20:53    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
OpenGL hat ein anderes Koordinatensystem als quasi der Rest der Welt. Da ist 0|0 UNTEN links.


Also ich hab jetzt mal verschiedene Beispielsources durchgesehen, aber Veränderungen an den Texturkoordinaten konnte ich niergends finden. Lediglich bei Vertexdaten das vertauschen von y und z Wert. Allerdings habe ich das berücksichtigt....

Daran kanns also nicht liegen denk ich
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.01.2008, 13:36    Titel: Antworten mit Zitat

Probier halt einfach mal, die Textur zu spiegeln. Wenns dann passt, freu dich und spiegel alle Texturen.
Es hat nix damit zu tun, ob du was falsch lädst, oder nicht, es geht darum, das Dinge unterschiedlich exportiert werde können.
Wenn ich in Blender eine Textur wo drauflege und das dann exporteire und mit OpenGL rendere, stimmt die Textur nicht, einfach, weil Ogl ein anderes Koordinatensystem benutzt.

Wenn die Textur also nicht total Blödsinnig ist (extrem verzerrt), dann wirst du einfach nur irgendwo mal was rumdrehen müssen, damit es passt.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 21.01.2008, 20:30    Titel: Antworten mit Zitat

Jo, Textur mit Bildbearbeitungsprogramm spiegeln funkt... Ist definitiv ne möglichkeit...

Gab's nicht auch eine Variante die Textur (beim laden) zu drehen????
Ich meine da mal was mit ner Rotationsmatrix gesehen zu haben????
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.01.2008, 13:10    Titel: Antworten mit Zitat

Die Matrix ist fürs rendern da. Damit kann man Lavaströme machen, die Lava bewegt sich langsam, sogar in mehreren Ebenen durch Multitexturing, aber die UV's bleiben gleich.
Für dich also die falsche Lösung.
Entweder drehst du die Textur per Hand um, oder du invertierst die UV's beim laden. Ich würde die UVs manipulieren, geht schneller und leichter.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 22.01.2008, 18:43    Titel: Antworten mit Zitat

Um die Textur zu spiegeln muss ich nur lediglich die linken und die rechten texturcoordinaten vertauschen, oder hab ich da jetzt gerade einen aussetzer??
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.01.2008, 20:25    Titel: Antworten mit Zitat

Eigentlich die Variable negieren (*-1) und dann die Höhe (bei Texturen ja immer 1) addieren.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 22.01.2008, 20:31    Titel: Antworten mit Zitat

hups, war ich ja kompletti auf dem Holzweg.

also du meinst wirklich
tu * (-1) + 1
tv * (-1) + 1

(Sorry für die doofe Fragerei, bin gerade im Hotel und hab keinen Compiler zum austesten)
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.01.2008, 20:31    Titel: Antworten mit Zitat

normalerweise bloß den y Teil. Dürfte dann v sein. Musste einfach aml bissle rumtesten.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 23.01.2008, 21:07    Titel: Antworten mit Zitat

So habe rumgetestet und bin ich der Verzweifelung nahe. Ich glaub an meinen Modellkoordinaten passt auch was nicht...

Mittlerweile hab ich's soweit das das komplette Modell inkl. Texturen spiegelverkehrt ist (allerdings ist das bisher das beste Ergebnis Embarassed ). Irgendwo ist der Wurm drin.

Ich poste mal den Code, vielleicht hat ja einer eine Idee:

Code:

for( DWORD j=0; j < (*i)->_dwNumVertices; j++ )
         {
            (*i)->_sVertices[j].x   = (*i)->_pVertices[j].x;
            (*i)->_sVertices[j].y   = (*i)->_pVertices[j].z;
            (*i)->_sVertices[j].y  *= -1.0f;
            (*i)->_sVertices[j].z   = (*i)->_pVertices[j].y;
            
            (*i)->_sVertices[j].tu = 0.0f;
            (*i)->_sVertices[j].tv = 0.0f;
         }
         if( (*i)->_dwNumTexCoords > 0 ) {
            for( DWORD j=0; j < (*i)->_dwNumTexCoords; j++ ) {
               (*i)->_sVertices[j].tu   = (*i)->_pTexCoords[j].x;
               (*i)->_sVertices[j].tv   = 1.0f - (*i)->_pTexCoords[j].y;
            }
         }


Die Werte _pVertices und pTexCoords sind die, die einz zu eins aus dem 3ds File ausgelesen sind (ohne irgendwo vorher getauscht worden zu sein, oder sowat)

Irgendwie muss das Ding komplett (inkl. der doofen Textur) horizontal gespiegelt werden... Aber ich kriegs nicht hin... Mad
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum