La till lite ljus och annan skit. Började på defucked rendering och det gick ju jävligt bra fucktiskt.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#include "PrecompiledHeader.h"
|
||||
#include "gBuffer.h"
|
||||
|
||||
bool GBuffer::Init(unsigned int WindowWidth, unsigned int WindowHeight)
|
||||
{
|
||||
// Create the FBO
|
||||
glGenFramebuffers(1, &m_fbo);
|
||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fbo);
|
||||
|
||||
// Create the gbuffer textures
|
||||
glGenTextures(ARRAY_SIZE_IN_ELEMENTS(m_textures), m_textures);
|
||||
glGenTextures(1, &m_depthTexture);
|
||||
|
||||
for (unsigned int i = 0 ; i < ARRAY_SIZE_IN_ELEMENTS(m_textures) ; i++) {
|
||||
glBindTexture(GL_TEXTURE_2D, m_textures[i]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, WindowWidth, WindowHeight, 0, GL_RGB, GL_FLOAT, NULL);
|
||||
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, GL_TEXTURE_2D, m_textures[i], 0);
|
||||
}
|
||||
|
||||
// depth
|
||||
glBindTexture(GL_TEXTURE_2D, m_depthTexture);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32F, WindowWidth, WindowHeight, 0, GL_DEPTH_COMPONENT, GL_FLOAT,
|
||||
NULL);
|
||||
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, m_depthTexture, 0);
|
||||
|
||||
GLenum DrawBuffers[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3 };
|
||||
glDrawBuffers(ARRAY_SIZE_IN_ELEMENTS(DrawBuffers), DrawBuffers);
|
||||
|
||||
GLenum Status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
||||
|
||||
if (Status != GL_FRAMEBUFFER_COMPLETE) {
|
||||
printf("FB error, status: 0x%x\n", Status);
|
||||
return false;
|
||||
}
|
||||
|
||||
// restore default FBO
|
||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user