Exemplo n.º 1
0
        public FrameBufferCube(int w, int h)
        {
            W    = w;
            H    = h;
            Cube = new TextureCube(w, h);
            FBO  = GL.GenFramebuffer();
            GL.BindFramebuffer(FramebufferTarget.Framebuffer, FBO);
            FBD = GL.GenRenderbuffer();
            GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, FBD);
            GL.RenderbufferStorage(RenderbufferTarget.Renderbuffer, RenderbufferStorage.DepthComponent24, w, h);
            // GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, 0);
            //G/             L.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment, RenderbufferTarget.Renderbuffer, FBO);
            GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, TextureTarget.TextureCubeMapPositiveX, Cube.ID, 0);
            GL.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment, RenderbufferTarget.Renderbuffer, FBD);
            GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, TextureTarget.TextureCubeMapPositiveX, Cube.ID, 0);

            CheckFBO();
            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
            Cube.Release(0);
        }
Exemplo n.º 2
0
        public virtual void Release( )
        {
            if (TCol != null)
            {
                TCol.Release(0);
            }

            if (TNorm != null)
            {
                TNorm.Release(1);
            }
            //if (TSpec != null) TSpec.Release(2);
            if (TEnv != null)
            {
                TEnv.Release(2);
            }

            if (TSpec != null)
            {
                TSpec.Release(3);
            }

            Active = null;
        }