KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I use the example GLImageProcessing, but it can not process the image with both brightness and contrast, so i write the code to adjust both brightness and contrast, but it can't work at all, can anybody can help me about this, thank you for review //init glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrthof(0, wide, 0, high, -1, 1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glScalef(wide, high, 1); glBindTexture(GL_TEXTURE_2D, Input.texID); //bind result fbo glBindFramebufferOES(GL_FRAMEBUFFER_OES, resultFBO); glViewport(0, 0, result.wide*result.s, result.high*result.t); glClear(GL_COLOR_BUFFER_BIT); glDisable(GL_BLEND); //process 1 adjust brightness float t = 1.2; glVertexPointer (2, GL_FLOAT, sizeof(V2fT2f), &flipquad[0].x); glTexCoordPointer(2, GL_FLOAT, sizeof(V2fT2f), &flipquad[0].s); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); static GLfloat constColor[4] = { 0.1, 0.2, 0.3, 0.4 }; if (t > 1.0f) { glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD); //glColor4f(t-1, t-1, t-1, t-1); constColor[0] = t-1; constColor[1] = t-1; constColor[2] = t-1; constColor[3] = t-1; } else { glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_SUBTRACT); constColor[0] = 1-t; constColor[1] = 1-t; constColor[2] = 1-t; constColor[3] = 1-t; } glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor); glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE); glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_CONSTANT); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE); //process 2 adjust contrast t = 1.6; GLfloat h = t*0.5f; // One pass using two units: // contrast < 1.0 interpolates towards grey // contrast > 1.0 extrapolates away from grey // // Here, the general extrapolation 2*(Src*t + Dst*(0.5-t)) // can be simplified, because Dst is a constant (grey). // That results in: 2*(Src*t + 0.25 - 0
Tags (comma-separated)
Save Edits
Cancel