here is my code :
GLuint ATTACHMENT_ARRAY[] = {GL_COLOR_ATTACHMENT0_EXT,GL_COLOR_ATTACHMENT1_EXT,GL_COLOR_ATTACHMENT2_EXT,GL_COLOR_ATTACHMENT3_EXT,GL_COLOR_ATTACHMENT4_EXT,GL_COLOR_ATTACHMENT5_EXT,GL_COLOR_ATTACHMENT6_EXT,GL_COLOR_ATTACHMENT7_EXT,GL_COLOR_ATTACHMENT8_EXT,GL_COLOR_ATTACHMENT9_EXT};
--------------------------invoke--------------------------
void CallFBO(int CubeID)
{
glMatrixMode(GL_MODELVIEW);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, g_fbo);
--------------------------skip first and se cond texture object,they save the other result s --------------------------
int ID = CubeID+2;
glDrawBuffer(ATTACHMENT_ARRAY[ID]);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Set_Camera_Eye();
glUseProgram(programShader_Compositing);
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, g_texture2D[0]);
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, g_texture2D[1]);
GLuint texLoc;
texLoc = glGetUniformLocationARB(programShader_Compositing, “FirstMap”);
glUniform1iARB(texLoc, 0);
texLoc = glGetUniformLocationARB(programShader_Compositing, “SecondMap”);
glUniform1iARB(texLoc, 1);
drawBack(CubeID);
}
the strange problem is that, I do
CallFBO(0); and CallFBO(1); is OK! it ca n render to correct texture object! But I do CallFBO(2);It is error , nothing can be render!
then I write a simple test shader :
uniform sampler2D FirstMap;--------------------------first texture object--------------------------
uniform sampler2D SecondMap;--------------------------second texture bject--------------------------
void main()
{
float xx,yy,c = 512.0;
xx = gl_FragCoord.x / c;
yy = gl_FragCoord.y / c;
gl_FragColor.rgb = texture2D(SecondMap,vec2(xx, yy));
}
If I invoke callFBO(0) or callFBO(1), it will show a color cube,it is OK ,but now it nothing can see if I invoke callFBO(2) ;
I don’t know where have a error!Who can gi ve me some help?
thanks advanced!