Ejemplo n.º 1
0
    public MDL(string fileName)
    {
        Name    = fileName;
        palette = new BSPPalette("palette.lmp");
        mdlFile = new BinaryReader(File.Open("Assets/Resources/Models/" + fileName, FileMode.Open));

        header = new MDLHeader(mdlFile);

        LoadSkins(mdlFile);
        LoadTextureCoords(mdlFile);
        LoadTriangles(mdlFile);
        LoadFrames(mdlFile);

        BuildMesh();
    }
Ejemplo n.º 2
0
    public MDLFrame(BinaryReader mdlFile, MDLHeader header)
    {
        verts = new List <MDLVert>();

        type = mdlFile.ReadInt32();

        boundingBoxMin = new MDLVert(mdlFile);
        boundingBoxMax = new MDLVert(mdlFile);

        byte [] result = mdlFile.ReadBytes(16);
        name = System.Text.Encoding.Default.GetString(result);

        for (int i = 0; i < header.vertCount; i++)
        {
            verts.Add(new MDLVert(mdlFile));
        }
    }
Ejemplo n.º 3
0
    public MDLSkin(BinaryReader mdlFile, MDLHeader header, BSPPalette palette)
    {
        group = mdlFile.ReadInt32();

        int byteCount = header.skinWidth * header.skinHeight;

        textureData = new byte[byteCount];
        textureData = mdlFile.ReadBytes(byteCount);

        texture = new Texture2D(header.skinWidth, header.skinHeight);

        int index = 0;

        for (int y = 0; y < header.skinHeight; y++)
        {
            for (int x = 0; x < header.skinWidth; x++)
            {
                texture.SetPixel(x, y, palette.Colours[textureData[index]]);
                index++;
            }
        }

        texture.Apply();
    }