public void LoadModels() { DirectoryInfo Folder = new DirectoryInfo(ModelLocation); if (Folder.Exists) { FileInfo[] ConfigFiles = Folder.GetFiles(); foreach (FileInfo CurrentFile in ConfigFiles) { if (CurrentFile.Extension.Equals(".obj")) { string Name = CurrentFile.Name.Remove(CurrentFile.Name.Length - 4, 4); GeometryModel NewModel = ModelUtil.ImportOBJModel(CurrentFile.FullName); string[] ModelMaterialData = GetModelMaterialData(Name); if (ModelMaterialData.Length != 0) { for (int i = 0; i < ModelMaterialData.Length; i++) { if (ModelMaterialData[i].Length == 0 || ModelMaterialData[i].StartsWith("//") || ModelMaterialData[i].StartsWith("#")) { continue; } string Key = ModelMaterialData[i].Split(new char[] { ':' })[0].Trim(); string Value = ModelMaterialData[i].Split(new char[] { ':' })[1].Trim(); if (Key.ToLower().StartsWith("shader")) { if (Shaders.ContainsKey(Value)) { NewModel.Shader = Shaders[Value].Clone(); } } if (Key.ToLower().StartsWith("depthshader")) { if (Shaders.ContainsKey(Value)) { NewModel.DepthShader = Shaders[Value].Clone(); } } else { if (Textures.ContainsKey(Value)) { NewModel.AddTexture(Key, Value); } } } if (NewModel.Shader == null || NewModel.DepthShader == null) { continue; } //Debug.WriteLine(Name); NewModel.Name = Name; Models.Add(Name, NewModel); } } } } }