Seite 1 von 1

Falsche Koordinaten beim Laden

Verfasst: 12.08.2013, 14:49
von Altair
Servus,
nach langer Abwesenheit wollte ich mich wieder an das Laden der Modelle mit Hilfe von Assimp wagen. Allerdings stoße ich da auf ein Problem, dass das Model die falsche Ausrichtung hat (Bild 1). Wenn ich allerdings beim Kopieren der Koordinaten den y <=> z vertausche, dann hat das Model seine richtige Ausrichtung (Bild 2). Allerdings habe ich dann das Problem, dass bei einem anderen Model die Position der Objekte nicht mehr stimmt (Bild 3).

Meine Flags zum erzeugen der aiScene sieht so aus:

Code: Alles auswählen

unsigned int Flags = aiProcess_Triangulate | 
		aiProcess_ConvertToLeftHanded |
		aiProcess_MakeLeftHanded | 
		aiProcess_JoinIdenticalVertices | 
		aiProcess_SortByPType | 
		aiProcess_JoinIdenticalVertices |
		aiProcess_LimitBoneWeights |
		aiProcess_RemoveRedundantMaterials |
		aiProcess_OptimizeMeshes |
		aiProcess_GenSmoothNormals | 
		aiProcess_CalcTangentSpace;

	::Assimp::Importer Importer;
	mScene = Importer.ReadFile(Filename, Flags);
Im folgende wird einfach nur Mesh für Mesh durchgegangen und die Position, Normale und Texturkoordinaten kopiert.
Evt. habe ich ja schon bei den Flags ein Fehler drinne.
Die Modelle befanden sich alle in einer .3DS Datei - evt. liegt es ja daran. Beim kopieren von .x Dateien habe ich solche Probleme nicht. Deshalb stelle ich mir die Frage, ob es eine Möglichkeit gibt, wie ich, für DirectX, an die richtigen Vertexpositionen komme.

Re: Falsche Koordinaten beim Laden

Verfasst: 13.08.2013, 14:54
von kimmi
Kurze Frage: du hast die Transformationsmatrizen der Node beachtet, richtig?

Kimmi

Re: Falsche Koordinaten beim Laden

Verfasst: 15.08.2013, 14:43
von Altair
Ja, habe ich auch.
Was mir aber zudem auffällt, dass ich bei den meisten die Indices (die ja eig. x, y, z sind) in x, z, y anordnen muss. Bei den .3DS-Dateien muss ich die Position auch mit x, z, y anordnen.