【发布时间】:2017-10-01 15:28:42
【问题描述】:
我目前正在使用 Metal 开发实时过滤器。 定义我的 CIImage 后,我将图像渲染为 MTLTexture。
下面是我的渲染代码。 context 是一个由 Metal 支持的 CIContext;
targetTexture 是附加到我的 MTKView 实例的 currentDrawable 属性的纹理的别名:
context?.render(drawImage, to: targetTexture, commandBuffer: commandBuffer, bounds: targetRect, colorSpace: colorSpace)
它可以正确渲染,因为我可以看到金属视图上显示的图像。
问题是在渲染图像(并显示它)之后,我想提取 CVPixelBuffer 并使用 AVAssetWriter 类将其保存到磁盘。
另一种选择是有两个渲染步骤,一个渲染到纹理,另一个渲染到 CVPixelBuffer。 (但不清楚如何创建这样的缓冲区,或者两个渲染步骤对帧率的影响)
任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: ios swift avfoundation core-image metal