public void init(Renderer renderer, int width, int height, Format textureFormat, Format depthBufferFormat, int numSamples, boolean renderDepth) {
            Collection<Caps> caps = renderer.getCaps();
            if (numSamples > 1 && caps.contains(Caps.FrameBufferMultisample) && caps.contains(Caps.OpenGL31)) {
                renderFrameBuffer = new FrameBuffer(width, height, numSamples);
                renderedTexture = new Texture2D(width, height, numSamples, textureFormat);
                renderFrameBuffer.setDepthTarget(FrameBufferTarget.newTarget(depthBufferFormat));
                if (renderDepth) {
                    depthTexture = new Texture2D(width, height, numSamples, depthBufferFormat);
                    renderFrameBuffer.setDepthTarget(FrameBufferTarget.newTarget(depthTexture));
                }
            } else {
                renderFrameBuffer = new FrameBuffer(width, height, 1);
                renderedTexture = new Texture2D(width, height, textureFormat);
                renderFrameBuffer.setDepthTarget(FrameBufferTarget.newTarget(depthBufferFormat));
                if (renderDepth) {
                    depthTexture = new Texture2D(width, height, depthBufferFormat);
                    renderFrameBuffer.setDepthTarget(FrameBufferTarget.newTarget(depthTexture));
                }
            }

            renderFrameBuffer.addColorTarget(FrameBufferTarget.newTarget(renderedTexture));
            renderFrameBuffer.setName(getClass().getSimpleName());      

        }
init the pass called internally

@param renderer (not null)
@param width the width (in pixels, &ge;0)
@param height the height (in pixels, &ge;0)
@param textureFormat format of the rendered texture
@param depthBufferFormat format of the depth buffer
@param numSamples the number of samples per pixel (for multisampling)
@param renderDepth true to create a depth texture, false for none
jme3-core/src/main/java/com/jme3/post/Filter.java