//绘制第一个滤镜
//使用program
glUseProgram(_tempProgramHandle);
//绑定frameBuffer
glBindFramebuffer(GL_FRAMEBUFFER, _tempFramebuffer);
//设置视口
glViewport(0, 0, self.frame.size.width * self.contentScaleFactor, self.frame.size.height * self.contentScaleFactor);
//设置清屏颜色
glClearColor(0,0,1,1);
//清理屏幕
glClear(GL_COLOR_BUFFER_BIT);
//为当前的program指定uniform值
//纹理
glUniform1i(glViewUniforms[TEMP_UNIFORM_INPUT_IMAGE_TEXTURE], 1);
//饱和度
glUniform1f(glViewUniforms[UNIFORM_SATURATION], _saturation);
//顶点数据
glVertexAttribPointer(glViewAttributes[TEMP_ATTRIBUTE_POSITION], 4, GL_FLOAT, GL_FALSE, sizeof(CustomVertex), 0);
//纹理数据 glVertexAttribPointer(glViewAttributes[TEMP_ATTRIBUTE_INPUT_TEXTURE_COORDINATE], 2, GL_FLOAT, GL_FALSE, sizeof(CustomVertex), (GLvoid *)(sizeof(float) * 4));
//绘制
glDrawArra

该博客介绍了如何使用OpenGL ES在Android中实现Bitmap图片的饱和度和色温调整。通过绑定frameBuffer,设置视口,指定uniform值,以及绘制三角形条带,实现了对图像的滤镜效果。饱和度和色温的参数可以通过uniform变量来控制,最后将渲染缓冲区呈现到本地窗口系统。
最低0.47元/天 解锁文章
1060

被折叠的 条评论
为什么被折叠?



