private static void MergeMeshes(SBMLoader loader, out Mesh result, out string[] materials)
        {
            if (loader.MeshCount == 0)
            {
                result = null;
                materials = null;
                return;
            }
            if (loader.MeshCount == 1)
            {
                loader.GetMesh(0, out result, out materials);
                return;
            }

            List<string> finalmaterials = new List<string>();

            MeshBuilder merged = new MeshBuilder();
            merged.UseNormals = true;
            merged.UseTangents = true;
            merged.UseTexCoords = true;

            int totalsubmeshes = 0;

            for (int i = 0; i < loader.MeshCount; i++)
            {
                Mesh cmesh;
                string[] curmats;
                loader.GetMesh(i, out cmesh, out curmats);

                totalsubmeshes += cmesh.Submeshes.Length;

                int baseindex = merged.CurrentVertexCount;
                merged.AddPositions(cmesh.Positions);
                merged.AddNormals(cmesh.Normals);
                merged.AddTextureCoords(cmesh.TextureCoordinates);
                merged.AddTangents(cmesh.Tangents);

                for (int j = 0; j < cmesh.Submeshes.Length; j++)
                {
                    int submeshindex;
                    if (finalmaterials.Contains(curmats[j]))
                        submeshindex = finalmaterials.IndexOf(curmats[j]);
                    else
                    {
                        submeshindex = finalmaterials.Count;
                        finalmaterials.Add(curmats[j]);
                    }

                    merged.AddIndices(submeshindex, cmesh.Submeshes[j], (uint)baseindex);
                }

            }

            Console.WriteLine("Merged {0} meshes with a total of {1} submeshes into 1 mesh with a total of {2} submeshes.", loader.MeshCount, totalsubmeshes, finalmaterials.Count);

            result = merged.Build();
            materials = finalmaterials.ToArray();
        }