相机直接到 iOS 上的 OpenGL 纹理

Posted

技术标签:

【中文标题】相机直接到 iOS 上的 OpenGL 纹理【英文标题】:Camera direct to OpenGL texture on iOS 【发布时间】:2013-12-03 21:09:13 【问题描述】:

android 上,可以让相机将其输出直接写入 OpenGL 纹理(类型为 GL_TEXTURE_EXTERNAL_OES),完全避免 CPU 上的缓冲区。

这样的事情在 ios 上可能吗?

【问题讨论】:

【参考方案1】:

你在 iOS 中从相机得到的输出是一个CMSampleBufferRef,里面有一个CVPixelBufferRef。 (参见文档here)。 iOS 从版本 5 开始,CoreVideo 框架中有 CVOpenGLESTextureCache,它允许您使用 CVPixelBufferRef 创建 OpenGL ES 纹理,避免任何复制。

在 Apple 的开发者网站上查看 RosyWriter 示例,它就在那里。

【讨论】:

以上是关于相机直接到 iOS 上的 OpenGL 纹理的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL ES 直接到控制台帧缓冲区

Android OpenGL基础相机预览及滤镜

将 CIFilter 应用于 OpenGL 渲染到纹理

在 OpenGL 中投影纹理

无法从 OpenGL 中的着色器访问先前渲染的纹理

Windows 上的 OpenCL/OpenGL 纹理互操作:调整 OpenGL 纹理的大小