Was muss ich bei MD2 und DirectX beachten
-
Hallo, mein MD2 Loader funktioniert nicht wie es soll. Das Model sieht aus als ob es gerade unter einem Laster geraten ist.
Kennt sich einer damit aus?
Hier mal Quellcode. Dieser Teil soll die Vertices einlesen.
for(int i=0; i<modelheader.numVertices; i++) { fread(&temp,sizeof(triangleVertex_t),1,modelfile); myvertex[i].x= 0.5*(scale[0]*temp.vertex[0]+translate[0]); myvertex[i].y= 0.5*(scale[1]*temp.vertex[1]+translate[1]); myvertex[i].z= 0.5*(scale[2]*temp.vertex[2]+translate[2]); }
-
Die z und y Koordinaten habe ich auch ausgetauscht.
Sieht aber immer noch so aus http://www.ogul.de/md2_.htm
TRINAGLEFAN und TRIANGLESTRIP auch versucht.
-
Kennt sich niemand mit dem MD2 Format aus? Ich komme nicht weiter. Hab mir schon so alles angeschaut was ich im Internet finden konnte.
Zu meiner Vorgehnsweise:
Erst lade ich den Header. Dort hole ich mir die Startposition der Struktur
[cpp]
typedef struct
{
float scale[3];
float translate[3];
char name[16];
triangleVertex_t vertices;
} frame_t;[/cpp]Nach dem ich die ersten drei Einträge geladen habe komme ich zu den Vertices.
typedef struct { byte vertex[3]; byte lightNormalIndex; } triangleVertex_t;
Die Stelle wo ich die Vertices lade könnt ihr im ersten Post sehen.
Sonst lade ich nichts. Ich wollte nur mal das Objekt zeichnen mit DrawPrimitive() Die Farben sind zufällig gewählt. Deshalb ist es so bund.
PS: Ich benutzte DX7.
-
Also ich würde sagen das sieht aus als wenn die Dreiecke verbunden sind. Also ich meine MD2 benutzt weder Trianglefan noch Trianglestrip. Es sind immer 3 Punkte für nen Dreieck. Mehr weiss ich leider auch net. Vielleicht ist auch mal nen Viereck dabei.
-
ist schon ne zeit lang her, aber du musst die z-komponente der vertices invertieren.