private void BasicVis_Load(object sender, EventArgs e) { GL.ClearColor(Color.Black); GL.Enable(EnableCap.DepthTest); // enable depth testing GL.DepthFunc(DepthFunction.Less); // only accept fragment if it is closer to the camera than whats in there already //vertexArrayID = OpenGLUtil.CreateVertexArrayObject(); //OpenGLUtil.UseVertexArrayObject(vertexArrayID); vertexBufferID = OpenGLUtil.CreateBufferObject(); OpenGLUtil.PopulateBuffer(vertexBufferID, vertexBufferData); depthProgram = new DepthMapProgram(); textureProgram = new SimpleTextureProgram(); frameBufferID = OpenGLUtil.CreateFrameBuffer(); textureID = OpenGLUtil.CreateDepthTexture(frameBufferID, 2048); }
private void BasicVis_Load(object sender, EventArgs e) { GL.ClearColor(Color.White); GL.Enable(EnableCap.DepthTest); // enable depth testing GL.DepthFunc(DepthFunction.Less); // only accept fragment if it is closer to the camera than whats in there already GL.Enable(EnableCap.Multisample); // standard AA GL.Enable(EnableCap.Blend); // transparency GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); // transparency func if (VRFlag) { WindowState = WindowState.Minimized; vrScene.InitGraphics(new GLVRGraphics(vrScene, true)); // always use GL graphics } else { WindowBorder = WindowBorder.Hidden; WindowState = WindowState.Fullscreen; CursorVisible = false; Camera.IsLocked = false; } mainProgram = new LitMaterialProgram(); depthProgram = new DepthMapProgram(); textureProgram = new SimpleTextureProgram(); vertexBufferID = OpenGLUtil.CreateBufferObject(); UpdateBodiesCollection(); // incase any bodies were added/removed before the window loaded PopulateVertexBuffer(); // create and frame buffer and shadow map for each light source if they cast shadows // this only occurs once foreach (var light in LightSources) { OpenGLLightSource glLight = light.ToGLLight(); if (light.CastsDynamicShadows) { glLight.FrameBufferID = OpenGLUtil.CreateFrameBuffer(); glLight.ShadowMapID = OpenGLUtil.CreateDepthTexture(glLight.FrameBufferID, ShadowMapSize); } openGLLights.Add(glLight); } }