1

我创建了一个MTLTexture使用UIImage数据,如下所示。

var texture = metalView.currentDrawable!.texture
let uiImg = createImageFromCurrentDrawable()
            
guard let device = metalView.device else {
    fatalError("Device not created. Run on a physical device")
}
let textureLoader = MTKTextureLoader(device: device)
let imageData: NSData = UIImagePNGRepresentation(uiImg)! as NSData
texture = try! textureLoader.newTexture(data: imageData as Data, options: [MTKTextureLoader.Option.allocateMipmaps: (false as NSNumber)])
            

我需要做的是改变像素颜色MTLTexture。不是所有的人。那么,是否可以MTLtexture在 Metal 中访问一组特定的像素并写入其中?

4

1 回答 1

2

是的,看看MTLTexture文档就会告诉你。您可以使用其中一种getBytes()方法将纹理数据区域复制到缓冲区,并使用其中一种replace()方法将纹理像素的区域替换为您提供的缓冲区中的数据。

于 2018-07-02T15:14:33.430 回答