public M2Info(string modelName) { ModelPath = modelName; mFile = new Stormlib.MPQFile(modelName); Header = mFile.Read<M2Header>(); BoundingBox = new SlimDX.BoundingBox(Header.VertexMin, Header.VertexMax); mFile.Position = Header.ofsName; byte[] data = mFile.Read(Header.lenName - 1); ModelName = Encoding.UTF8.GetString(data); FileDirectory = System.IO.Path.GetDirectoryName(modelName) + "\\"; var vertices = new M2Vertex[Header.nVertices]; mFile.Position = Header.ofsVertices; mFile.Read(vertices); LoadTextures(); ParseVertices(vertices); LoadSkins(); }
public M2Info(string modelName) { ModelPath = modelName; mFile = new Stormlib.MPQFile(modelName); Header = mFile.Read <M2Header>(); BoundingBox = new SlimDX.BoundingBox(Header.VertexMin, Header.VertexMax); mFile.Position = Header.ofsName; byte[] data = mFile.Read(Header.lenName - 1); ModelName = Encoding.UTF8.GetString(data); FileDirectory = System.IO.Path.GetDirectoryName(modelName) + "\\"; var vertices = new M2Vertex[Header.nVertices]; mFile.Position = Header.ofsVertices; mFile.Read(vertices); LoadTextures(); ParseVertices(vertices); LoadSkins(); }
private unsafe void ParseVertices(M2Vertex[] vertices) { foreach (var v in vertices) { MdxVertex vw = new MdxVertex() { X = v.x, Y = v.y, Z = v.z, NX = v.nx, NY = v.ny, NZ = v.nz, U = v.u, V = v.v, bi1 = v.bi1, bi2 = v.bi2, bi3 = v.bi3, bi4 = v.bi4, w1 = (float)v.bw1 / 255.0f, w2 = (float)v.bw2 / 255.0f, w3 = (float)v.bw3 / 255.0f, w4 = (float)v.bw4 / 255.0f }; Vertices.Add(vw); } }