/// <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"); }
/// <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(); }