Frage

Dieses ist mein Programm ein anzuzeigen Netz .x. Ich bin in der Lage das Netz tiger.x aber nicht in der Lage Display angezeigt werden: ball.x . Was ist der Unterschied zwischen den beiden Maschen? Gibt es etwas, das ich im Code behandeln sollte? Aber ich bin in der Lage sowohl die Maschen sehen unter Verwendung von Standard-Netz Zuschauern wie die, die kommen mit DirectX SDK.

Danke.

War es hilfreich?

Lösung 2

Das Netz hat kein Problem, aber die Aussicht. Es wurde auch vergrößert das Bild anzuzeigen. Ich projiziert das Bild unter Verwendung der folgenden Matrix und konnte das richtig anzuzeigen Netz.

//Set Projection
D3DXMATRIXA16 matProj(1.0,0.0,0.0,0.0,
                      0.0,1.0,0.0,0.0,
                      0.0,0.0,1.0,0.0,
                      0.0,0.0,0.0,150.0);

Andere Tipps

  

, aber nicht in der Lage ball.x angezeigt werden soll.

Die Frage ist unklar. Ist das Netz geladen? Ist es enthalten Eckpunkte / Gesichter? Oder vielleicht stürzt app? Oder Laden fehlschlägt?

  

Was ist der Unterschied zwischen den beiden Maschen?

Der Unterschied besteht darin, dass das zweite Gitter (ball.x) nicht enthält „Vorlagen“.

d. dieser Teil:

template Header {
 <3D82AB43-62DA-11cf-AB39-0020AF71E433>
 WORD major;
 WORD minor;
 DWORD flags;
}

template Vector {
 <3D82AB5E-62DA-11cf-AB39-0020AF71E433>
 FLOAT x;
 FLOAT y;
 FLOAT z;
}

template Coords2d {
 <F6F23F44-7686-11cf-8F52-0040333594A3>
 FLOAT u;
 FLOAT v;
}

template Matrix4x4 {
 <F6F23F45-7686-11cf-8F52-0040333594A3>
 array FLOAT matrix[16];
}

template ColorRGBA {
 <35FF44E0-6C7C-11cf-8F52-0040333594A3>
 FLOAT red;
 FLOAT green;
 FLOAT blue;
 FLOAT alpha;
}

template ColorRGB {
 <D3E16E81-7835-11cf-8F52-0040333594A3>
 FLOAT red;
 FLOAT green;
 FLOAT blue;
}

template IndexedColor {
 <1630B820-7842-11cf-8F52-0040333594A3>
 DWORD index;
 ColorRGBA indexColor;
}

template Boolean {
 <4885AE61-78E8-11cf-8F52-0040333594A3>
 WORD truefalse;
}

template Boolean2d {
 <4885AE63-78E8-11cf-8F52-0040333594A3>
 Boolean u;
 Boolean v;
}

template MaterialWrap {
 <4885AE60-78E8-11cf-8F52-0040333594A3>
 Boolean u;
 Boolean v;
}

template TextureFilename {
 <A42790E1-7810-11cf-8F52-0040333594A3>
 STRING filename;
}

template Material {
 <3D82AB4D-62DA-11cf-AB39-0020AF71E433>
 ColorRGBA faceColor;
 FLOAT power;
 ColorRGB specularColor;
 ColorRGB emissiveColor;
 [...]
}

template MeshFace {
 <3D82AB5F-62DA-11cf-AB39-0020AF71E433>
 DWORD nFaceVertexIndices;
 array DWORD faceVertexIndices[nFaceVertexIndices];
}

template MeshFaceWraps {
 <4885AE62-78E8-11cf-8F52-0040333594A3>
 DWORD nFaceWrapValues;
 Boolean2d faceWrapValues;
}

template MeshTextureCoords {
 <F6F23F40-7686-11cf-8F52-0040333594A3>
 DWORD nTextureCoords;
 array Coords2d textureCoords[nTextureCoords];
}

template MeshMaterialList {
 <F6F23F42-7686-11cf-8F52-0040333594A3>
 DWORD nMaterials;
 DWORD nFaceIndexes;
 array DWORD faceIndexes[nFaceIndexes];
 [Material]
}

template MeshNormals {
 <F6F23F43-7686-11cf-8F52-0040333594A3>
 DWORD nNormals;
 array Vector normals[nNormals];
 DWORD nFaceNormals;
 array MeshFace faceNormals[nFaceNormals];
}

template MeshVertexColors {
 <1630B821-7842-11cf-8F52-0040333594A3>
 DWORD nVertexColors;
 array IndexedColor vertexColors[nVertexColors];
}

template Mesh {
 <3D82AB44-62DA-11cf-AB39-0020AF71E433>
 DWORD nVertices;
 array Vector vertices[nVertices];
 DWORD nFaces;
 array MeshFace faces[nFaces];
 [...]
}

template FrameTransformMatrix {
 <F6F23F41-7686-11cf-8F52-0040333594A3>
 Matrix4x4 frameMatrix;
}

d. templates / Struktur Erklärungen.

Auch in ball.x Mesh ist ein Teil der Hierarchie von Frames. In tiger.x es ist nicht und wird auf Ebene der Hierarchie gespeichert.

Es ist schon eine Weile her, seit ich das letzte Mal verwendet * .x-Datei direkt, aber soweit ich weiß, werden Sie Vorlagen für alle „Nicht-Standard“ Vorlagen in Datei enthalten müssen. das heißt, wenn die Datei ein Objekt mit Vorlage verwendet, die nicht angemeldet wurden RegisterTemplates Methode des ID3DXFile oder IDirectXFile verwenden, dann wird die Datei nicht geladen, wenn Vorlage zu Beginn der Datei nicht geschrieben wird. Versuchen Sie Template-Definitionen für jede verdächtige Struktur in ball.x hinzufügen, bis Sie die Täter zu finden. Ich würde beginnen mit "Header".

Wenn das Problem wegen der Hierarchie ist, müssen Sie eine andere Lademethode versuchen müssen.

  

unter Verwendung von Standard-Netz Zuschauern wie die, die mit DirectX SDK kommen.

AFAIK, Mesh-Viewer kommt mit Quellcode. Lesen Sie die Quelle und sehen, wie es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top