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(); }
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)); } }
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(); }