我正在为运动和FCP开发一些FxPlug插件。最终,我想让它们在金属上渲染,因为苹果正在弃用OpenGL。 我目前使用的是CoreImage,虽然我已经能够使用CoreImage功能在FxPlug开发工具包之外进行金属加工,但FxPlug只将帧作为OpenGL纹理提供给我。我试着把它传递给CoreImage过滤器,但最终得到了这个错误: Cannot render image (with an input GL texture) using a metal-DG context. 在使用了一些research之后,我发现我可以使用CVPixelBuffers在两者之间共享纹理,但在尝试使用这
所以,我试着用三维纹理渲染一个立方体。纹理包含3片不同的颜色,红色、绿色和蓝色。每个切片由4个像素组成,颜色相同。效果很好。
private func makeTexture() {
let width = 2
let height = 2
let depth = 3
let byteSize = 4
let bytesPerRow = byteSize * width
let bytesPerImage = bytesPerRow * height
let blue: UInt32 = 0x000000FF
let green: