Własny format pliku - Nagłówek

0

Witam,
chciałbym się dowiedzieć jak wygląda nagłówek we własnym formacie pliku. Chodzi mi o to co powinno zawierać się w takim nagłówku, oraz chciałbym zobaczyć króciutki fragment kodu jak to wygląda.

0

A skąd mamy wiedzieć jak ma wyglądać nagłówek w twoim formacie pliku? "Nagłówek" to również część twojego wymyślonego formatu danych. Może go w ogóle nie być.

0

A do czego ma służyć ten plik/format?

0

Na razie ma służyć do ćwiczeń, ale potem zamierzam przechowywać obiekty graficzne, tekstury itp...

0

struct Vector3
{
float x;
float y;
float z;
};

struct Vector2
{
float x;
float y;
};

struct Quaternion
{
float w;
float x;
float y;
float z;
};

struct PmgVertexCoord
{
struct Vector3 Coord;
};
struct PmgVertexNormal
{
struct Vector3 Normal;
};
struct PmgVertexUV
{
struct Vector2 UV;
};
struct PmgVertexColor
{
uint8 R;
uint8 G;
uint8 B;
uint8 A;
};
struct PmgBlockEdge
{
uint16 attach0;
uint16 attach1;
uint16 attach2;
};
struct PmgVertexAnim
{
uint16 bone;
};
struct PmgDummy
{
token_t Name;
struct Vector3 Coord;
float UnknConst;
struct Quaternion Rot;
uint32 OffsetInNameBlock;
};

struct PmgSection
{
token_t Name;
uint32 NoOfModels;
int32 ModelstartIndx;
uint32 NoOfDummies;
int32 DummyStartIndx;

};
struct PmgMesh
{
uint32 Edges; // Polygons = Edges/3
uint32 Vertices;
int32 added1;
uint32 NumUV;
int32 Bones;
int32 Material;
struct Vector3 BBCenter;
float Unknown4;
struct Vector3 BBCor1;
struct Vector3 BBCor2;
int32 VertexCoordOffset;
int32 VertexDirectOffset;
int32 VertexUVOffset;
int32 VertexColorOffset;
int32 VertexColor2Offset;
int32 VertexTangentsOffset;
int32 BlockEdgesOffset;
int32 AnimBindOffset;
int32 AnimBindBlocksOffset;
int32 AnimBindBlocksOffsetFF;
};
struct PmgBone
{
token_t Name;
struct TransformationMatrix1
{
float m11;
float m12;
float m13;
float m14;
float m21;
float m22;
float m23;
float m24;
float m31;
float m32;
float m33;
float m34;
float m41;
float m42;
float m43;
float m44;
};
struct TransformationMatrix2
{
float m11;
float m12;
float m13;
float m14;
float m21;
float m22;
float m23;
float m24;
float m31;
float m32;
float m33;
float m34;
float m41;
float m42;
float m43;
float m44;
};
struct AdditionalInfo
{
struct Quaternion Stretch;
struct Quaternion Rotate;
struct Vector3 Translate;
struct Vector3 Scale;
};
float SignOfDeterminantOfMatrix;
uint32 Parent;
};
struct Header
{
uint8 Version;
char ID[3];
uint32 Meshes;
uint32 Sections;
uint32 Bones;
uint32 Dummies;
struct Vector3 BBCenter;
float BBDiagonalSize;
struct Vector3 BBCor1;
struct Vector3 BBCor2;
uint32 BonesOffset;
uint32 SectionsOffset;
uint32 DummiesOffset;
uint32 MeshesOffset;
uint32 DummiesNamesOffset;
uint32 DummiesNamesSize;
uint32 AnimBindsOffset;
uint32 AnimsBindsSize;
uint32 GeometryOffset;
uint32 GeometrySize;
uint32 UVMapOffset;
uint32 UVMapSize;
uint32 EdgesOffset;
uint32 EdgesSize;
};

Masz przykład, jakiś format zapisu modeli do pewnej gry :D

0

chciałbym się dowiedzieć jak wygląda nagłówek we własnym formacie pliku.

Wygląda tak jak sobie to wymyślisz.

Przejrzyj opisy paru istniejących formatów z interesującej cię dziedziny i zobacz jak robią to inni.

Poczytaj na przykład o formacie RIFF, który jest „formatem do wszystkiego”, takim binarnym XML-em. RIFF-em jest np. WAV, AVI i starsze wersje CDR (pliki Corela).

1 użytkowników online, w tym zalogowanych: 0, gości: 1