Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }