public override void Init() { depthFBO = new FBO(0, 0, 1, true); ShadowMapping.Create(depthFBO, "lightmask.png"); font = BitmapFont.Load("fonts/comic12.png"); skybox = Sky.Load("sky/sky_", "jpg"); world.Add(skybox); GLSLShader.SetShader("shadowmapping.shader", "SHADOWS"); DotScene ds = DotScene.Load("scene1/scene1.scene", scene); world.Add(scene); actors[0] = AnimatedModel.Load("ugly/ukko.mesh"); actors[0].LoadMD5Animation("act1", "ugly/ukko_action1.anim"); actors[0].LoadMD5Animation("act2", "ugly/ukko_action2.anim"); actors[0].LoadMD5Animation("act3", "ugly/ukko_action3.anim"); actors[0].LoadMD5Animation("walk", "ugly/ukko_walk.anim"); actors[0].SetAnimation("act2"); // idle anim actors[0].Scale = new Vector3(5, 5, 5); world.Add(actors[0]); lightImg = Billboard.Load("lightimg.png"); Camera.Set3D(); base.Init(); }
public virtual void Dispose() { if (font != null) { font.Dispose(); } if (colorFBO != null) { colorFBO.Dispose(); } if (depthFBO != null) { depthFBO.Dispose(); } if (skybox != null) { skybox.Dispose(); } skybox = null; colorFBO = null; depthFBO = null; font = null; world = null; Node.ObjectCount = 0; GLSLShader.UnBindShader(); GLSLShader.SetShader("default.shader", ""); }
public override void Init() { colorFBO = new FBO(0, 0, 2, true); // 2 colorbufferia depthFBO = new FBO(0, 0, 0, true); blurH = PostEffect.Load("blur.shader", "HORIZ"); blurH.SetParameter("size", 1f / (float)colorFBO.Width); blurV = PostEffect.Load("blur.shader", "VERT"); blurV.SetParameter("size", 1f / (float)colorFBO.Width); bloom = PostEffect.Load("bloom.shader", ""); bloom.SetParameter("size", 0.001f); Particles.EnableSoftParticles(); ShadowMapping.Create(depthFBO, "lightmask.png"); font = BitmapFont.Load("fonts/comic12.png"); skybox = Sky.Load("sky/sky2_", "jpg"); world.Add(skybox); lightImg = Billboard.Load("lightimg.png"); GLSLShader.SetShader("shadowmapping.shader", "SHADOWS"); DotScene ds = DotScene.Load("scene1/scene1.scene", scene); world.Add(scene); actors[0] = AnimatedModel.Load("ugly/ukko.mesh"); actors[0].LoadMD5Animation("act1", "ugly/ukko_action1.anim"); actors[0].LoadMD5Animation("act2", "ugly/ukko_action2.anim"); actors[0].LoadMD5Animation("act3", "ugly/ukko_action3.anim"); actors[0].LoadMD5Animation("walk", "ugly/ukko_walk.anim"); actors[0].SetAnimation("act2"); // idle anim actors[0].Position.Y = -0.5f; actors[0].Scale = new Vector3(5, 5, 5); world.Add(actors[0]); explosion = Particles.Load("explosion.particles.xml", new ParticleCallback(RenderParticleCallback)); smoke = Particles.Load("smoke.particles.xml", null); actors[0].Add(smoke); Camera.Set3D(); base.Init(); }
public override void Init() { depthFBO = new FBO(0, 0, 1, true); ShadowMapping.Create(depthFBO, "lightmask.png"); Fog.CreateFog(0.005f, Fog.Color); GLSLShader.SetShader("default.shader", "FOG"); skybox = Sky.Load("sky/sky2_", "jpg"); world.Add(skybox); GLSLShader.SetShader("default.shader", "LIGHTING:PERPIXEL:FOG"); Model scene = new Model(); DotScene ds = DotScene.Load("scene1/scene1.scene", scene); world.Add(scene); camPath = Path.GetPath("Path_camera"); camPath.Attach(camera, true, true); font = BitmapFont.Load("fonts/comic12.png"); Camera.Set3D(); base.Init(); }
/// <summary> /// putsaa listat ja poista gl-datat /// </summary> public void ClearArrays() { Texture.DisposeAll(); GLSLShader.DisposeAll(); Material.DisposeAll(); Particles.DisposeAll(); Light.Lights.Clear(); Path.Paths.Clear(); world = null; world = new Renderable("World"); Node.ObjectCount = 0; for (int q = 0; q < Texture.MaxTextures; q++) { Texture.UnBind(q); } GLSLShader.UnBindShader(); GLSLShader.SetShader("default.shader", ""); GC.Collect(); GC.WaitForPendingFinalizers(); }
void Init() { Instance = this; Log.WriteLine("CSatEng 0.9.2 // (c) mjt, 2008-2014"); Log.WriteLine("OS: " + System.Environment.OSVersion.ToString()); Log.WriteLine("Renderer: " + GL.GetString(StringName.Renderer)); Log.WriteLine("Vendor: " + GL.GetString(StringName.Vendor)); Log.WriteLine("Version: " + GL.GetString(StringName.Version)); Log.WriteLine(".Net: " + Environment.Version); string version = GL.GetString(StringName.Version); if (version.Contains("Compatibility")) { Settings.UseGL3 = false; } int major = (int)version[0]; int minor = (int)version[2]; if (major < 2) { Log.Error("You need at least OpenGL 2.0 to run this program. Please update your drivers."); } string ext = ""; if (Settings.UseGL3 == false) { ext = GL.GetString(StringName.Extensions); } else { int extC; GL.GetInteger(GetPName.NumExtensions, out extC); for (int q = 0; q < extC; q++) { ext += GL.GetString(StringNameIndexed.Extensions, q) + " "; } } Log.WriteLine("--------------------------------------------"); Log.WriteLine("Extensions:\n" + ext); Log.WriteLine("--------------------------------------------"); if (ext.Contains("texture_non_power_of_two")) { if (Settings.DisableNPOTTextures) { Log.WriteLine("NPOT textures supported but disabled."); Texture.IsNPOTSupported = false; } else { Log.WriteLine("NPOT textures supported."); Texture.IsNPOTSupported = true; } } else { Log.WriteLine("NPOT textures not supported."); Texture.IsNPOTSupported = false; } // löytyykö float texture extension if (ext.Contains("texture_float") && ext.Contains("color_buffer_float")) { if (Settings.DisableFloatTextures) { Log.WriteLine("Float textures supported but disabled."); Texture.IsFloatTextureSupported = false; } else { Log.WriteLine("Float textures supported."); Texture.IsFloatTextureSupported = true; } } else { Log.WriteLine("Float textures not supported."); Texture.IsFloatTextureSupported = false; } // tarkista voidaanko shadereita käyttää. if (!ext.Contains("vertex_shader") || !ext.Contains("fragment_shader")) { Log.Error("Shaders not supported. Please update your drivers."); } if (ext.Contains("EXT_framebuffer_object")) { if (Settings.DisableFbo) { Log.WriteLine("FBOs supported but disabled."); FBO.IsSupported = false; } else { Log.WriteLine("FBOs supported."); FBO.IsSupported = true; } } else { Log.WriteLine("FBOs not supported."); FBO.IsSupported = false; } GL.GetInteger(GetPName.MaxCombinedTextureImageUnits, out Texture.MaxTextures); Log.WriteLine("Max textureUnits: " + Texture.MaxTextures); Texture.BindedTextures = new uint[Texture.MaxTextures]; VSync = Settings.VSync ? VSyncMode.On : VSyncMode.Off; Settings.Device = DisplayDevice.Default; if (Settings.FullScreen) { Settings.Device.ChangeResolution(Settings.Device.SelectResolution(Settings.Width, Settings.Height, Settings.Bpp, 60f)); WindowState = OpenTK.WindowState.Fullscreen; } GL.Enable(EnableCap.DepthTest); GL.ClearDepth(1.0); GL.DepthFunc(DepthFunction.Lequal); GL.ClearColor(0.0f, 0.0f, 0.1f, 0); GL.Enable(EnableCap.CullFace); GL.CullFace(CullFaceMode.Back); if (Settings.UseGL3 == false) { GL.Enable(EnableCap.Texture2D); GL.Enable(EnableCap.ColorMaterial); GL.Enable(EnableCap.Normalize); } GameClass.Keyboard = Keyboard; GameClass.Mouse = Mouse; GLSLShader.SetShader("default.shader", ""); Loading(); }