Получить доступ к определенному набору пикселей MTLTexture в melal

Я создал MTL-текстуру, используя данные 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 и записать в него в металле?

1 ответ

Решение

Да, как смотреть на MTLTexture документация показала бы вам Вы можете использовать один из getBytes() методы для копирования области данных текстуры в буфер, и один из replace() методы для замены области пикселя текстуры данными из буфера, который вы предоставляете.

Другие вопросы по тегам