Пример #1
0
        public static string MaterialIntegrate(this ModelModifier modifier)
        {
            var sb        = new System.Text.StringBuilder();
            var materials = new List <Material>();

            foreach (var material in modifier.Model.Materials.ToArray())
            {
                var found = materials.FirstOrDefault(x => x.CanIntegrate(material));
                if (found != null)
                {
                    // merge
                    modifier.MaterialReplace(material, found);
                }
                else
                {
                    // add
                    materials.Add(material);
                }
            }

            sb.Append($"MaterialIntegrate: {modifier.Model.Materials.Count} => {materials.Count}");

            modifier.Model.Materials.Clear();
            modifier.Model.Materials.AddRange(materials);

            return(sb.ToString());
        }