示例#1
0
        private List <MeshTexture> LoadMaterialTextures(Material mat, TextureType type, string typeName)
        {
            var textures = new List <MeshTexture>();

            for (int i = 0; i < mat.GetMaterialTextureCount(type); i++)
            {
                mat.GetMaterialTexture(type, i, out TextureSlot slot);

                var texLoaded = TexturesLoaded.Find((t) => { return(t.Path == slot.FilePath); });
                if (texLoaded == null)
                {
                    MeshTexture texture = TextureFromFile(slot.FilePath, Directory, typeName);
                    textures.Add(texture);
                    TexturesLoaded.Add(texture);  // add to loaded textures
                }
                else
                {
                    textures.Add(texLoaded);
                }
            }

            return(textures);
        }