private void ForwardPass() { //GL.ClearColor(0, 1, 0, 0.5f); ForwardPassFramebuffer.Use(true, true); //Framebuffer.Default.Use(); //BlitFramebuffers(MRT, ForwardPassFramebuffer, BlitMode.Depth); //ForwardPassFramebuffer.Use(true, false); GlareTexture.Use(TextureUnit.Texture12); var programs = Game.ShaderPool.ChooseShaderGenericMaterial(true).ProgramsList; for (int i = 0; i < programs.Length; i++) { programs[i].Use(); } GL.Disable(EnableCap.CullFace); GL.DepthFunc(DepthFunction.Always); InternalRenderingState.PassState = InternalRenderingState.State.ForwardTransparentBlendingAlphaPass; EnableBlending(); Game.World.Draw(); InternalRenderingState.PassState = InternalRenderingState.State.ForwardTransparentBlendingAdditivePass; EnableAdditiveBlending(); Game.World.Draw(); GL.DepthFunc(DepthFunction.Lequal); InternalRenderingState.PassState = InternalRenderingState.State.Idle; DisableBlending(); GL.Enable(EnableCap.CullFace); }
public void Resize(int initialWidth, int initialHeight) { VXGIFramebuffer.FreeGPU(); DeferredFramebuffer.FreeGPU(); BloomXPass.FreeGPU(); BloomYPass.FreeGPU(); EnvLightFramebuffer.FreeGPU(); AmbientOcclusionFramebuffer.FreeGPU(); ForwardPassFramebuffer.FreeGPU(); CombinerFramebuffer.FreeGPU(); HelperFramebuffer.FreeGPU(); FogFramebuffer.FreeGPU(); MRT.FreeGPU(); Width = initialWidth; Height = initialHeight; CreateBuffers(); }