Получить доступ к определенному набору пикселей 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()
методы для замены области пикселя текстуры данными из буфера, который вы предоставляете.