Пример #1
0
        /// <summary>Load resources here.</summary>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            GL.ClearColor(System.Drawing.Color.Blue);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.Texture2D);
            GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest);
            GL.Enable(EnableCap.CullFace);
            GL.ShadeModel(ShadingModel.Smooth);
            GL.Enable(EnableCap.Normalize);
            GL.Disable(EnableCap.Lighting);
            GL.Enable(EnableCap.Texture2D);

            // model.UseExt(".jpg"); // jos .mesh tiedostossa textureilla ei ole päätettä
            model = new AnimatedModel("ugly", "Ugly/Ukko.mesh");
            model.LoadAnim("walk", "Ugly/Ukko_walk.anim");
            model.LoadAnim("act1", "Ugly/Ukko_action1.anim");
            model.LoadAnim("act2", "Ugly/Ukko_action2.anim");
            model.LoadAnim("act3", "Ugly/Ukko_action3.anim");
            model.FixRotation.X = -90; // ukko on "makaavassa" asennossa joten nostetaan se fixRotationilla pystyyn.
            model.FixRotation.Z = 180; // säätöä.. katse eteen päin!

            cam.Position.Y = 3;
            cam.Position.Z = 10;

            Util.Set3DMode();

            Log.WriteDebugLine("Animation test\nkeys:\n arrows, 1,2 : actions");
        }
Пример #2
0
        /// <summary>Load resources here.</summary>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            GL.ClearColor(System.Drawing.Color.Blue);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.Texture2D);
            GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest);
            GL.Enable(EnableCap.CullFace);
            GL.ShadeModel(ShadingModel.Smooth);
            GL.Enable(EnableCap.ColorMaterial);

            Light.Enable();
            light.Position = new Vector3(50, 80, -100);
            light.SetLight(true);
            world.Add(light); // lisää valo (aurinko)

            // Lataukset
            skybox.LoadSkybox("sky/sky2_", "jpg", 100);
            world.Add(skybox); // skybox aina ekana koska se on kaikkien takana

            obj[0] = new ObjModel("head", "Head/head.obj"); // ladataan kerran
            obj[0].Position.Z = 0;

            // tehdään muutama kopio, siirretään vierekkäin
            obj[1] = obj[0].Clone();
            obj[1].Position.X = 5;

            obj[2] = obj[0].Clone();
            obj[2].Position.X = 10;

            obj[3] = obj[0].Clone();
            obj[3].Position.X = 15;

            obj[4] = obj[0].Clone();
            obj[4].Position.X = 20;

            obj[5] = new ObjModel("arm", "Head/arm.obj");
            obj[1].Add(obj[5]); // pää nro 2:seen lisätään käsi

            // lasketaan groupille bounding volume
            obj[1].Boundings.CreateBoundingVolume(obj[1]);

            // lisää kamat worldiin
            for (int q = 0; q < 4; q++) world.Add(obj[q]);

            // rumilus
            uglyModel = new AnimatedModel("ukko", "Ugly/Ukko.mesh");
            uglyModel.LoadAnim("act", "Ugly/Ukko_action2.anim");
            uglyModel.UseAnimation("act");
            uglyModel.Position.X = -4;
            uglyModel.FixRotation.X = -90; // ukko on "makaavassa" asennossa joten nostetaan se fixRotationilla pystyyn.
            world.Add(uglyModel);

            Mesh scene = new ObjModel("scene", "scene1.obj", 20, 20, 20);
            scene.Position.X = 10;
            // katos (sen nimi on toi None_Material__9) pitää pistää 2 puoliseks, muuten se ei näy alhaalta päin
            scene.SetDoubleSided("None_Material__9", true);
            // samoin seinät 2 puolisiks (blenderistä ja tutkimalla .obj tiedostoa selviää nämä nimet)
            scene.SetDoubleSided("None_Material__12", true);
            world.Add(scene); // lisää scene

            cam.Position.Y = 5;
            cam.Position.Z = 15;

            Util.Set3DMode();
        }