美文网首页
GPUImage只有一个camerafilter相机不回调

GPUImage只有一个camerafilter相机不回调

作者: 买买提不撸串 | 来源:发表于2023-01-18 11:05 被阅读0次

    核心思想要理解:glFramebufferTexture2D这个函数,意思是把纹理附件附加到帧缓冲,所有渲染命令就会写入到纹理上,filter处理后的效果可以从这个纹理拿到;

    注意:glFramebufferTexture2D绑定纹理附件时,先创建一个纹理,创建纹理时要指定一个大小,这个大小还要在渲染时通过glViewport设置一次,GPUImage是在activateFramebuffer时设置了glViewport这个函数;

    在iOS上创建纹理有两种方式:

    1.通过GLTextureImage2D(),将纹理像素由CPU传到GPU

    2.iOS core video提供一种高效缓存机制:通过CVOpenGLESTextureCacheCreateTextureFromImage()

    将CVImageBufferRef与纹理共享一块缓存,这种方式要注意的是源或渲染缓冲区纹理应

    在渲染完成之前,不能重复使用。这可以通过调用glFlush()来保证。现象就是在GPUImage中假设只有

    一个camerafilter,那么在采集大概十几帧后,相机回调代理就不回调了,原因就可能是一直不被渲染,渲染缓冲区纹理被占用完了,渲染缓冲区纹理不能被覆盖重复使用,这时可以执行一次glFlush()。

    相关文章

      网友评论

          本文标题:GPUImage只有一个camerafilter相机不回调

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