コード例 #1
0
ファイル: Renderer.cs プロジェクト: asmboom/vengine
 private void EnvLight()
 {
     EnvLightShader.Use();
     EnvLightFramebuffer.Use();
     SetUniformsShared();
     EnableAdditiveBlending();
     GL.CullFace(CullFaceMode.Front);
     GL.Enable(EnableCap.TextureCubeMapSeamless);
     for (int i = 0; i < CubeMaps.Count; i++)
     {
         if (i == Game.World.CurrentlyRenderedCubeMap)
         {
             continue;
         }
         Matrix4 mat = Matrix4.CreateScale(CubeMaps[i].FalloffScale) * Matrix4.CreateTranslation(CubeMaps[i].FalloffScale > 99999.0f ? Camera.MainDisplayCamera.GetPosition() : CubeMaps[i].Position);
         CubeMaps[i].Texture.Use(TextureUnit.Texture23);
         EnvLightShader.SetUniform("ModelMatrix", mat);
         EnvLightShader.SetUniform("MapPosition", CubeMaps[i].FalloffScale > 99999.0f ? Camera.MainDisplayCamera.GetPosition() : CubeMaps[i].Position);
         EnvLightShader.SetUniform("CubeCutOff", CubeMaps[i].FalloffScale);
         CubeMapSphere.Draw();
     }
     GL.CullFace(CullFaceMode.Back);
     DisableBlending();
     Game.CheckErrors("Environment light pass");
 }
コード例 #2
0
ファイル: Renderer.cs プロジェクト: asmboom/vengine
        private void Combine()
        {
            CombinerShader.Use();
            CombinerFramebuffer.Use();

            DeferredFramebuffer.UseTexture(CombinerShader.getConstInt("deferredTexBinding"));
            EnvLightFramebuffer.UseTexture(8);
            BloomYPass.UseTexture(11);
            CubeMaps[0].Texture.Use(TextureUnit.Texture23);
            FogFramebuffer.UseTexture(13);
            AmbientOcclusionFramebuffer.UseTexture(14);

            DrawPPMesh();
            Game.CheckErrors("Combine pass");
        }
コード例 #3
0
ファイル: Renderer.cs プロジェクト: asmboom/vengine
        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();
        }