使用 CVPixelBuffer 是创建 CAMetalTexture(MTLTexture) 的唯一方法吗?

Using CVPixelBuffer is only way to create CAMetalTexture(MTLTexture)?

在CVPixelBuffer中,有没有一种方法可以通过简单地使用copyMemory以外的指针从yuv数据指针的基地址到y、u、v平面来创建纹理?

copyMemory创建贴图的方法大约需要0.5ms,但我想获得更好的速度。

我知道 OpenGL 和 DirextX 有一种方法可以通过传递指针并让 GPU 生成纹理来获得更快的速度。

请告诉我任何更快创建纹理的方法

欢迎光临!

您可以使用 CVMetalTextureCacheCVPixelBuffers 创建纹理。

您需要先使用 CVMetalTextureCacheCreate and use it in CVMetalTextureCacheCreateTextureFromImage 创建纹理缓存以创建纹理(在文档页面上向下滚动以获取示例)。 您可以(并且应该)使用适当的设置创建一次纹理缓存,然后 re-use 每次需要创建纹理时都创建它。