Exemple #1
0
  private static void setupShadowFrameBuffer() {
    if (shadowPassInterval <= 0) {
      return;
    }

    setupShadowRenderTexture();

    glDeleteFramebuffersEXT(sfb);

    sfb = glGenFramebuffersEXT();
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, sfb);

    glDrawBuffer(GL_NONE);
    glReadBuffer(GL_NONE);

    glDeleteRenderbuffersEXT(sfbDepthBuffer);
    sfbDepthBuffer = glGenRenderbuffersEXT();
    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, sfbDepthBuffer);
    glRenderbufferStorageEXT(
        GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, shadowMapWidth, shadowMapHeight);
    glFramebufferRenderbufferEXT(
        GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, sfbDepthBuffer);
    glFramebufferTexture2DEXT(
        GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, sfbDepthTexture, 0);

    int status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
    if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
      System.out.println("Failed creating shadow framebuffer! (Status " + status + ")");
    }
  }