Skip to content

Instantly share code, notes, and snippets.

@fkaa
Created January 24, 2014 18:30
Show Gist options
  • Select an option

  • Save fkaa/8603220 to your computer and use it in GitHub Desktop.

Select an option

Save fkaa/8603220 to your computer and use it in GitHub Desktop.
void Game::render() {
GLenum buffers[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1 };
glViewport(0, 0, w, h);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glDrawBuffers(2, buffers);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, t_col, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, GL_TEXTURE_2D, t_norm, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, t_depth, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
world->render(proj, view);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glUseProgram(shader_ssao);
glEnableVertexAttribArray(a_ssao_coord);
glUniform1i(u_ssao_diffuse, 2);
glUniform1i(u_ssao_normal, 1);
glUniform1i(u_ssao_depth, 0);
glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, t_col);
glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, t_norm);
glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, t_depth);
glEnable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);
glBindBuffer(GL_ARRAY_BUFFER, quad_vbo);
glVertexAttribPointer(a_default_coord, 4, GL_FLOAT, GL_FALSE, 0, (void*)0);
glDrawArrays(GL_QUADS, 0, 4);
glDisableVertexAttribArray(a_ssao_coord);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment