Преобразование матрицы преобразования OpenGL для работы на CATransformLayer - PullRequest
0 голосов
/ 05 августа 2011

Я использовал SDK дополненной реальности от String для проекта.По сути, этот SDK передает набор маркеров для изображений, которые он распознает, и связанное с ним преобразование матрицы OpenGL, которое указывает, где изображение маркера находится в трехмерном пространстве на виде с камеры iPhone.Я пытаюсь сопоставить CATransformLayer со сценой, чтобы она была правильно ориентирована на изображение маркера, и воспроизвести видео на его месте.Я думал, что мог бы сделать это, используя AVPlayerLayer, сидящий внутри CATransformLayer, к которому применено матричное преобразование (преобразованное в CATransform3D).

Насколько я могу судить, это не такработать особенно хорошо - я не могу получить логическое отображение между исходной матрицей OpenGL и матрицей, стоящей за CATransform3D.

Вы можете видеть, что довольно сложно делать прямое преобразование между маркерным преобразованием и объектом CATransform3D (синий бит - мой слой):

Screenshot of the current state of this issue

Я предположил, что они были одинаковыми (мне несколько раз говорили, что они идентичны из-за поддержки CALayer GL).Это правда?Я что-то упускаю?

Я могу вернуться к рендерингу моего видео в качестве текстуры на сцене, но было бы здорово поддерживать высокий уровень, если это возможно - какие-либо идеи / комментарии / мысли?

1 Ответ

0 голосов
/ 27 июня 2012

Попробуйте посмотреть этот ответ.Он должен делать то, что вам нужно.

...