游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2004|回复: 2

自定义文件格式

[复制链接]

4

主题

44

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2009-8-27 15:33:00 | 显示全部楼层 |阅读模式
[em10] [em10] [em10]/类型
enum XformType_FLAG
{
        Cx3d_No_Xform = 0,
        Cx3d_Scale_Rotate_Xform = 1,
    Cx3d_Scale_Xform = 2,
        Cx3d_Rotate_Xform = 3,
        Cx3d_All_Xform = 4
};
//网格类型
enum MeshType_FLAG
{
        C3d_Format_Normal = 1,
        C3d_Format_LightMap =2,
    C3d_Format_CompleteMap=3

};
//阴影类型
enum CX3D_SHADOW_TYPE
{
        CX3D_SHADOW_NONE=0,
        CX3D_SHADOW_RECT=1,
        CX3D_SHADOW_CIRCLE=2
};
//摄像机类
struct SCx3dCamera
{
        SCx3dCamera() :  Position(0.0f, 0.0f, 0.0f), Target(0.0f, 0.0f, 1.0f), CamFov(80.0f),Active(false)
                                 {};

        char CamName[128];                        
        core::vector3df Position;
        core::vector3df Target;

        f32 CamFov;
        bool Active;

};
//灯光类
struct SCx3dLight
{
        SCx3dLight() :  ParentID(-1)  {};
                               
        video::SLight LightData;
        char LightName[128];
        s32 ParentID;       

};
//节点类
struct SCx3dNode
{
        SCx3dNode() :  Position(0.0f, 0.0f, 0.0f), Rotation(0.0f, 0.0f, 0.0f), Scale(1.0f, 1.0f, 1.0f),NodeType(0),ShadowType(CX3D_SHADOW_NONE)
                                 {};

        char NodeName[128];
        core::vector3df Position;
        core::vector3df Rotation;
        core::vector3df Scale;
        s32 MeshID;       
        int MaterialCount;
        int NodeType;
        CX3D_SHADOW_TYPE ShadowType;
};
//头文件结构
typedef        struct Cx3dFileStruct
        {
                unsigned long Flag;  
                char TypeName[10];
                unsigned char Version;
                int NodeCount;
                int CameraCount;
                int LightCount;
                //int MaterialCount;
                int MeshCount;
                char BackImage[260];
                XformType_FLAG XformType;

        }Cx3dFileHead;
//网格数据
struct SMeshGroup
{
        SMeshGroup() :  MeshID(0),BufferCount(0){};

        s32 MeshID;
        int BufferCount;
       
};
//网格结构
typedef        struct Cx3dMeshStruct
        {
                int VertCount;   
                int IndexCount;
                MeshType_FLAG MeshType;
        }Cx3dMeshHead;
//3d文件结构
typedef        struct C3dbFileStruct
        {
                unsigned long Flag;  
                char TypeName[9];
                unsigned char Version;
                int BufCount;
        }C3dFileHead;
//顶点索引
typedef        struct VertIndexStruct
        {
                int VertCount;   
                int IndexCount;
                MeshType_FLAG MeshType;
                //增加的
        }VertIndexCount;       
//////////////////////////////////////////////////////////////////////////
class CVRLoad
{
public:
        CVRLoad();
        FILE *m_file;
        Cx3dFileHead *headfile;
        //virtual ~CVRLoad();
        ////显示3d模型
        //void show3d(char *filename);
        ////初始换数据
        //void init(char *filename,int j);
        //装入数据
        void import(char *strname);
        void Init(char *filename,int i);
        ////从文件中创建贴图
        //void createtex();
        ////读取一个字符
        //int getstring(char * pbuff);
        ////读下一个快
        //void readchunk(tChunk * pchunk);
        ////继续读取下一个快
        //void readnextchunk();
        ////读取下一个快对象
        //void readnextobjchunk();
        ////读取下一个材质
        //void readnextmatchunn();
        ////读取颜色
        //void readcolor(SMaterialCx *matrix,tChunk * pchunk);
        ////读取对象顶点
        //void readvertex(VertIndexStruct *pobject,tChunk * prechunk);
        ////读取对象面的信息
        //void readvertexindex();
        ////读对象纹理坐标
        //void readvcoord();
        ////读取对象的材质名称
        //void readobjmat();
        ////读取法向量
        //void computenormal();
        ////关闭文件释放空间
        //void clean();
};

这是一个文件的信息,怎么读取该文件和显示啊,谢谢咯哦,各位大侠,还有就是有没有读取文件的资料啊,谢谢了啊!!!!

3

主题

67

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2009-8-28 14:03:00 | 显示全部楼层

Re:自定义文件格式

fopen,fread,fwrite,fclose,fseek……
你是想问这个么?

3

主题

53

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2009-8-29 20:36:00 | 显示全部楼层

Re:自定义文件格式

同楼上,根据自己的结构就可以读取啦,注意的是,结构有内存对齐的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 05:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表