Пример #1
0
        protected virtual void configureFbo()
        {
            Tetra.Texture.DefaultTarget   = TextureTarget.Texture2DMultisample;
            Tetra.Texture.GenerateMipMaps = false;
            colorTex = new Tetra.Texture()
            {
                Width          = CacheSize.Width,
                Height         = CacheSize.Height,
                InternalFormat = PixelInternalFormat.Rgba8,
                PixelFormat    = PixelFormat.Rgba,
                PixelType      = PixelType.UnsignedByte,
                Samples        = Magic.numSamples
            }; colorTex.Create();

            int depthBuf = GL.GenRenderbuffer();

            GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, depthBuf);
            GL.RenderbufferStorageMultisample(RenderbufferTarget.Renderbuffer,
                                              Magic.numSamples, RenderbufferStorage.DepthComponent24, CacheSize.Width, CacheSize.Height);
            GL.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment,
                                       RenderbufferTarget.Renderbuffer, depthBuf);
            GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0,
                                    TextureTarget.Texture2DMultisample, colorTex, 0);

            Tetra.Texture.ResetToDefaultLoadingParams();

            GL.ActiveTexture(TextureUnit.Texture2);
            GL.BindTexture(TextureTarget.Texture2DMultisample, colorTex);
        }