Hello,
i am trying to write to 2 textures attached to a framebuffer object, but i can’t seem to get it to work.
First, in my shader i have the line
#extension GL_ARB_draw_buffers : enable
and i get the following “warning C7508: extension GL_ARB_draw_buffers not supported” even though the extension string says my card is capable of GL_ARB_draw_buffers (NV GeForce 7800GS with driver version 6.14.10.9371)
I set the FBO up as follows
//create textures
glGenTextures(2, m_shadowmaps);
for (int l = 0; l < 2; l++)
{
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,m_shadowmaps[l]);
glTexParameterf(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB,0,GL_RGB,320,240,0,GL_RGB,GL_UNSIGNED_BYTE, NULL);
}
//init FBO
glGenFramebuffersEXT(1, &fbo_shadow);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fbo_shadow);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_ARB, m_shadowmaps[0], 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_RECTANGLE_ARB, m_shadowmaps[1], 0);
glDrawBuffers (2,{GL_COLOR_ATTACHMENT0_EXT,GL_COLOR_ATTACHMENT1_EXT});
Now, even if i use something like
gl_FragData[0] = vec4(0.5, 0.0, 0.0, 1.0);
gl_FragData[1] = vec4(0.0, 0.0, 0.5, 1.0);
in my fragment shader, the resulting textures are always yellowish green or some other ugly color, no matter what values i use for gl_FragData.
Any help would be greatly appreciated.