Я использовал SDK дополненной реальности от String для проекта.По сути, этот SDK передает набор маркеров для изображений, которые он распознает, и связанное с ним преобразование матрицы OpenGL, которое указывает, где изображение маркера находится в трехмерном пространстве на виде с камеры iPhone.Я пытаюсь сопоставить CATransformLayer
со сценой, чтобы она была правильно ориентирована на изображение маркера, и воспроизвести видео на его месте.Я думал, что мог бы сделать это, используя AVPlayerLayer
, сидящий внутри CATransformLayer
, к которому применено матричное преобразование (преобразованное в CATransform3D
).
Насколько я могу судить, это не такработать особенно хорошо - я не могу получить логическое отображение между исходной матрицей OpenGL и матрицей, стоящей за CATransform3D
.
Вы можете видеть, что довольно сложно делать прямое преобразование между маркерным преобразованием и объектом CATransform3D
(синий бит - мой слой):
![Screenshot of the current state of this issue](https://i.stack.imgur.com/hDQhp.png)
Я предположил, что они были одинаковыми (мне несколько раз говорили, что они идентичны из-за поддержки CALayer
GL).Это правда?Я что-то упускаю?
Я могу вернуться к рендерингу моего видео в качестве текстуры на сцене, но было бы здорово поддерживать высокий уровень, если это возможно - какие-либо идеи / комментарии / мысли?