예제 #1
0
        /// <summary>
        /// For testing
        /// </summary>
        public void AddDefaults()
        {
            MBuildingBlock b = new MBuildingBlock("FOUNDATION01");

            b.Size  = new double[] { 1, 1, 1 };
            b.Model = Path.Combine(MFileSystem.AssetsPath, "Models", "Construction", "foundation01.3ds");
            Blocks.Add(b.Name, b);
        }
예제 #2
0
        void SetupMaterials()
        {
            MShader BasicShader = new MShader("BasicShader");

            BasicShader.Load("default_v.glsl",
                             "default_f.glsl",
                             "Terrain\\eval.glsl",
                             "Terrain\\control.glsl"
                             );
            BasicShader.Bind();
            BasicShader.SetInt("material.diffuse", MShader.LOCATION_DIFFUSE);
            BasicShader.SetInt("material.specular", MShader.LOCATION_SPECULAR);
            BasicShader.SetInt("material.multitex", MShader.LOCATION_MULTITEX);
            BasicShader.SetInt("material.normalmap", MShader.LOCATION_NORMALMAP);
            BasicShader.SetInt("material.shadowMap", MShader.LOCATION_SHADOWMAP);

            MShader BoneShader = new MShader("AnimatedShader");
            string  sVertFile  = "Animation\\animated_vs.glsl";
            string  sFragPath  = "Animation\\animated_fs.glsl";

            BoneShader.Load(sVertFile,
                            sFragPath,
                            "",
                            ""
                            );
            BoneShader.Bind();
            BoneShader.SetInt("material.diffuse", MShader.LOCATION_DIFFUSE);
            BoneShader.SetInt("material.specular", MShader.LOCATION_SPECULAR);
            BoneShader.SetInt("material.multitex", MShader.LOCATION_MULTITEX);
            BoneShader.SetInt("material.normalmap", MShader.LOCATION_NORMALMAP);
            BoneShader.SetInt("material.shadowMap", MShader.LOCATION_SHADOWMAP);

            foreach (KeyValuePair <string, MBuildingBlock> k in Blocks)
            {
                MBuildingBlock b = k.Value;
                if (b.Type == "MMaterial")
                {
                    MMaterial MATM = new MMaterial(b.MaterialID);
                    MATM.AddShader(BasicShader);
                    MATM.SetDiffuseTexture(Globals.TexturePool.GetTexture(b.Path));
                    MScene.MaterialRoot.Add(MATM);
                }
                else
                if (b.Type == "MBoneMaterial")
                {
                    MMaterial MATM = new MMaterial(b.MaterialID);
                    MATM.AddShader(BoneShader);
                    MATM.SetDiffuseTexture(Globals.TexturePool.GetTexture(b.Path));
                    MScene.MaterialRoot.Add(MATM);
                }
            }
        }
예제 #3
0
        public static MBuildingBlock GetBlock(string sTemplateID)
        {
            if (Blocks.ContainsKey(sTemplateID))
            {
                return(Blocks[sTemplateID]);
            }

            //if we can't find a registry entry, return sphere.
            MBuildingBlock bb = new MBuildingBlock(sTemplateID);

            bb.Type = "MSPHERE";
            return(bb);
        }