Example #1
0
        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);
        }