当前位置: 首页 > news >正文

承德网站建设/广州做网站的公司哪家好

承德网站建设,广州做网站的公司哪家好,长沙品牌推广公司,微信公众号的子菜单网页怎么制作今天来学习一下一个简单滤镜使用的流程,通过调节亮度滤镜来了解。先将GPUImage库导入到项目中,引入头文件"GPUImage.h" 一、创建亮度滤镜对象 GPUImageBrightnessFilter *filter [[GPUImageBrightnessFilter alloc] init],经过all…

  今天来学习一下一个简单滤镜使用的流程,通过调节亮度滤镜来了解。先将GPUImage库导入到项目中,引入头文件"GPUImage.h"

     一、创建亮度滤镜对象

      GPUImageBrightnessFilter *filter = [[GPUImageBrightnessFilter alloc] init],经过alloc init之后,程序为我们创建了顶点数组以及帧缓冲区,纹理,并绑定为当前使用的对象。

  1.为顶点着色添加属性

   首先我们来看一该滤镜的顶点着色器字符串

 

 attribute vec4 position;attribute vec4 inputTextureCoordinate;varying vec2 textureCoordinate;void main(){gl_Position = position;textureCoordinate = inputTextureCoordinate.xy;}

 

 

 我们了解到该顶点有2个需要添加的属性position,inputTextureCoordinate.我们需要在程序中添加这2个属性,通过下列方法来添加

 

- (void)initializeAttributes;
{[filterProgram addAttribute:@"position"];[filterProgram addAttribute:@"inputTextureCoordinate"];// Override this, calling back to this super method, in order to add new attributes to your vertex shader
}

 

  2.片段着色提供uniform
  
 varying highp vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform lowp float brightness;void main(){lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);gl_FragColor = vec4((textureColor.rgb + vec3(brightness)), textureColor.w);}  

 

  brightnessUniform = [filterProgram uniformIndex:@"brightness"]

  filterInputTextureUniform = [filterProgram uniformIndex:@"inputImageTexture"]

  3.启用顶点数组

  glEnableVertexAttribArray(filterPositionAttribute);

      glEnableVertexAttribArray(filterTextureCoordinateAttribute)

 4.创建纹理
- (void)generateTexture;
{glActiveTexture(GL_TEXTURE1);glGenTextures(1, &_texture);glBindTexture(GL_TEXTURE_2D, _texture);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, _textureOptions.minFilter);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, _textureOptions.magFilter);// This is necessary for non-power-of-two textures
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, _textureOptions.wrapS);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, _textureOptions.wrapT);// TODO: Handle mipmaps
}
 
  5.创建帧缓冲区

      glGenFramebuffers(1, &framebuffer)

  6.帧缓冲绑定纹理

  glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, _texture, 0);

 

 

   二、设置亮度值

  filter.brightness = value

 

  三、设置纹理尺寸

    [filter forceProcessingAtSize:image.size]

 

  四、创建GPUImagePicture对象

     GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]

 

  五、向创建好的GPUImagePicture对象添加target

 

  六,处理图像

  [pic processImage]

 

进行图像渲染并绘制

 

    glClearColor(backgroundColorRed, backgroundColorGreen, backgroundColorBlue, backgroundColorAlpha);glClear(GL_COLOR_BUFFER_BIT);glActiveTexture(GL_TEXTURE2);glBindTexture(GL_TEXTURE_2D, [firstInputFramebuffer texture]);glUniform1i(filterInputTextureUniform, 2);    glVertexAttribPointer(filterPositionAttribute, 2, GL_FLOAT, 0, 0, vertices);glVertexAttribPointer(filterTextureCoordinateAttribute, 2, GL_FLOAT, 0, 0, textureCoordinates);glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

 

 

 

 

  七、[filter useNextFrameForImageCapture]

 

   八、获取处理后的图像

  image = [filter imageFromCurrentFramebuffer]

 

    GPUImageBrightnessFilter *filter = [[GPUImageBrightnessFilter alloc] init];filter.brightness = value;[filter forceProcessingAtSize:image.size];GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];[pic addTarget:filter];[pic processImage];[filter useNextFrameForImageCapture];image = [filter imageFromCurrentFramebuffer];

 

  

http://www.jmfq.cn/news/4907917.html

相关文章:

  • 深圳建设企业网站/谷歌网站优化推广
  • 创建企业营销网站包括哪些内容/郑州网络营销公司哪个好
  • 深圳松岗做网站/最新新闻热点事件
  • 怎样推广自己做的网站/白帽seo是什么
  • 网站开发实训报告/怎么做线上销售
  • 网页设计就业/成都搜狗seo
  • 建设通是什么网站/营销推广方案怎么写
  • 网站建设算不算固定资产/百度搜索大数据查询
  • 我的世界做mc壁纸的网站/青岛网络工程优化
  • 沈阳正规的男科医院/seo网站优化系统
  • 全国建筑信息查询网/全网关键词优化公司哪家好
  • 杭州网络问政平台/广州网站优化页面
  • 免费找客户网站/中国关键词
  • 哪个网站可以做翻译/百度关键词优化快速排名软件
  • 宝鸡网站建设天伟网络/重庆搜索引擎seo
  • 做婚礼网站的公司简介/站长友情链接平台
  • 无限动力营销型网站建设/搜索引擎营销的案例有哪些
  • 长沙做网站优化/龙岗网络公司
  • 企业代办服务/济南优化哪家好
  • 朝阳港网站建设方案/seo关键词排名优化要多少钱
  • 湖南省专业建设公司网站的机构/湖北百度推广电话
  • shopify如何做瀑布流网站/本周热点新闻事件
  • 自己公司做公益网站怎么弄/青岛关键词推广seo
  • 苏州网站建设套餐/怎么在网上推销产品
  • 工控网做网站维护吗/什么是市场营销
  • 今日全国疫情/优化网址
  • 成人高考条件/网址seo查询
  • 免费空间测试网站/杭州百度百科
  • 报考项目经理证需要什么条件/青岛seo服务哪家好
  • 桂林 网站建设/制作网站的基本步骤