Exemple #1
0
        public static void Export(BF2SkinnedMesh mesh, string filename, int geoMatIdx)
        {
            StringBuilder sb = new StringBuilder();

            Helper.BF2MeshSKMGeometryMaterial lod0 = mesh.geomat[geoMatIdx];
            int vertexcounter = 1;

            for (int i = 0; i < lod0.numMaterials; i++)
            {
                Helper.BF2MeshSKMMaterial          mat  = lod0.materials[i];
                List <RenderObject.VertexTextured> list = new List <RenderObject.VertexTextured>();
                int m = mesh.geometry.vertices.Count / (int)mesh.geometry.numVertices;
                for (int j = 0; j < mat.numIndicies; j++)
                {
                    int pos = (mesh.geometry.indices[(int)mat.indiciesStartIndex + j] + (int)mat.vertexStartIndex) * m;
                    list.Add(mesh.GetVertex(pos));
                }
                if (mat.numIndicies != 0)
                {
                    WriteObject(sb, list, "Material" + i, vertexcounter);
                    vertexcounter += list.Count();
                }
            }
            File.WriteAllText(filename, sb.ToString());
        }