public void LoadTextureSet(FileLocation configLoc) { Configuration config = ConfigurationManager.Instance.CreateInstance(configLoc); ConfigurationSection sect = config["MaterialList"]; ConfigurationSection.ValueCollection entries = sect.Values; foreach (string s in entries) { Entry entry; ConfigurationSection matSect = config[s]; string fileName = matSect["DiffuseMap"]; FileLocation fl = FileSystem.Instance.Locate(fileName, GameFileLocs.TerrainTexture); ResourceHandle <TerrainTexture> texture = TerrainTextureManager.Instance.CreateInstance(renderSystem, fl); texture.Touch(); entry.Map = texture; float[] v = matSect.GetSingleArray("DiffuseMapColor"); entry.Color = new Color4F((int)v[0], (int)v[1], (int)v[2]); v = matSect.GetSingleArray("Ambient"); entry.Ambient = new Color4F(v[0], v[1], v[2], v[3]); v = matSect.GetSingleArray("Diffuse"); entry.Diffuse = new Color4F(v[0], v[1], v[2], v[3]); v = matSect.GetSingleArray("Specular"); entry.Specular = new Color4F(v[0], v[1], v[2], v[3]); entry.Name = s; detailedMaps.Add(s, entry); } FileLocation fl2 = FileSystem.Instance.Locate("index.tex", GameFileLocs.TerrainTexture); GlobalIndexTexture = TextureManager.Instance.CreateInstance(fl2); fl2 = FileSystem.Instance.Locate("normal.tex", GameFileLocs.TerrainTexture); GlobalNormalTexture = TextureManager.Instance.CreateInstance(fl2); fl2 = FileSystem.Instance.Locate("LevelTwo.tex", GameFileLocs.TerrainTexture); GlobalBakedNormalTexture = TextureManager.Instance.CreateInstance(fl2); string msg = "细节纹理库初始化完毕。加载了{0}种纹理。"; EngineConsole.Instance.Write(string.Format(msg, detailedMaps.Count.ToString()), ConsoleMessageType.Information); fl2 = FileSystem.Instance.Locate("hatch1-3RGB.tex", GameFileLocs.Texture); Hatch0 = TextureManager.Instance.CreateInstance(fl2); fl2 = FileSystem.Instance.Locate("hatch4-6RGB.tex", GameFileLocs.Texture); Hatch1 = TextureManager.Instance.CreateInstance(fl2); }