有没有一种方法可以在不使用CVPixelBuffer的情况下只使用像素数据指针来制作MTLTexture



当前,我将像素数据复制到CVPixelBuffer的y、u、v平面,使用CVMetalTextureCache创建CVMetalTexture,并导入并使用MTLTexture。

有没有一种方法可以在不将像素数据复制到CVPixelBuffer的y、u、v平面的情况下制作CVMetalTexture?或者,有没有一种方法可以在不使用CVPixelBuffer的情况下仅使用像素数据指针创建MTLTexture?

创建MTLTexture的惯用方法是:

创建一个MTLTextureDescriptor来描述你想要的纹理——它的大小、像素格式、mip贴图的数量等。

使用纹理描述符通过makeTexture(descriptor:)MTLDevice请求新纹理。

在纹理上使用replace(region:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:)可以使用数据填充纹理。

CVMetalTexture的存在主要是为了将CoreVideo数据桥接到Metal中——例如,如果您想解码视频并在三维场景中显示它。如果你还没有进入CV的世界,它就没有用处。

相关内容

  • 没有找到相关文章

最新更新