美文网首页
OpenGLES10-GPUlmage

OpenGLES10-GPUlmage

作者: AlanGe | 来源:发表于2020-07-01 11:36 被阅读0次

    GPUlmage

    ●开源的基于GPU处理图片/视频一个框架!本身内置几百种常见滤镜效果!支持自定义滤镜(由开发者基于OpenGLES GLSL实现片元着色器).
    ●目前比较主流!
    ●如果有兴趣可以去CoreImage
    ●GPUlmage框架的封装基于如下框架
    。CoreMedia
    。CoreVideo
    。AV Foundation
    。QuartzCore
    。OpenGL ES2.0

    采用GPU加速处理图片/视频滤镜效果.

    ●对比GPUlmage和Corelmage
    。GPUlmage 可以自定义滤镜,缺乏人脸识别功能.
    。GPUlmage 在GPU.上处理速度高于CPU,百倍!
    ●目的:隐藏/减弱关于OpenGL ES复杂性!
    ●滤镜处理原理:就是把静态图片/视频每一帧图片进行图形变换(饱和度/色温..)处理之后,在显示到屏幕上.本质上(像素点坐标/颜色的变化)

    OpenGL ES处理图片的步骤

    ●初始化OpenGL ES环境,编译/链接顶点着色器/片元着色器
    ●缓存顶点/纹理坐标数据,传输相关的数据到GPU
    ●图片绘制帧缓存区
    ●在从帧缓存区绘制图像

    GPUlmage处理过程

    GPUlmage采用链式方法来处理图片!通过添加对象到链中,处理一个target就会把上一个环节处理好的图像作为数据传递下一个target去处理! GPUlmage处理链(OpenGL ES简单实现了一个滤镜的整个过度)
    ●GPUlmage四大基础类作为响应链的起点,解决将图像作为数据传递给OpenGL ES处理. >将纹理以及顶点数据再次传递一个响应链中target 对
    ●每一个输入源,滤镜,输出源独立的管道!
    ●GPUImage 使用的MVP设计模式!
    ●GPUlmage 最大的优势"自定义滤镜"(GL SL,说白了就是让大家使用OpenGLES中GLSL实现-一个片元着色器)
    ●GPUlmage 本身的所有封装思想就是基于OpenGL ES的着色器流程上封装的.

    GPUlmage处理环节

    ●source(视频/图片源) --> fiter(滤镜)--> final target(处理好的视频/图片)

    Source环节(数据源)

    ●GPUImageVideoCamera :摄像头(用于实时拍摄视频
    ●GPUImagestillCamera :摄像头(用于拍照照片)
    ●GPUImagePicture:用于处理已经拍摄完成的图片
    ●GPUImageMovie :用于处理已经拍摄好的视频

    Filter环节(滤镜)

    ●GPUImageFilter: 用来接收图形源,通过自定义顶点/片元着色器来渲染新的图像.完成滤镜处理交给响应链中下一个对象.
    ●GPUImageFilter 是GPUImageFilter父类继承与GPUImageoutput :


    FinalF环境

    GPUImageView
    GPUImageMovieWrite

    相关文章

      网友评论

          本文标题:OpenGLES10-GPUlmage

          本文链接:https://www.haomeiwen.com/subject/eytcqktx.html