Я собираю каждый кадр вывода видео и обрабатывая его, добавляю CALayer к оверлейу, который должен быть преобразован в соответствии с результатами обработки кадра.iOS Применить CATransform3D на каждом кадре
Этот CALayer в основном знает, как нарисовать стрелу. Если я просто добавлю CALayer в каждый кадр, он работает, но если я применил на нем преобразование, он вообще не будет отображаться.
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
dispatch_async(dispatch_get_main_queue(), ^(void)
{
firstLayer.transform = CATransform3DMakeRotation(M_PI_2, 1, 0, 0);
[firstLayer setNeedsDisplay];
});
}
Что не так? Как я могу сделать наложение показать слой, преобразованный на каждом кадре?
Если CALayer может отображать стрелок без преобразования, вам нужно проверить, если вы даете правильный CTM. является ли вектор (1,0,0) действительным в вашем случае? – Wingzero