Получить CATransform3D из матриц проекции и ModelView
Как получить CATransform3D из матриц проекции и ModelView
Я просматривал этот вопрос раньше, чем "URL", но он не был абсолютно точным; Я хочу знать, почему это не точно ;
Я обнаружил, что поворот по осям x и y противоположен (я не могу опубликовать изображение) ; трапеция (когда вращается калибр, это как трапеция) противоположна , вращение дозы не совпадает с opengl? но это правильно, когда вращается по оси Z.
Я хочу получить угол, а затем повернуть его дважды напротив ; как получить угол с помощью матриц opengl?
Я хочу играть в кино от QCAR; Я могу получить матрицы OpenGL, и я хочу использовать UIView для воспроизведения фильмов и других (знакомых с UIView), и сделать UIview как текстуры.
1 ответ
Я просто опубликовал пример на форуме QCAR, вы можете проверить детали здесь
Идея проста.
1. Я не использую avassetreader для чтения пикселя видео, вместо этого я использую AVPlayer и AVPlayerLayer, которые могут воспроизводить удаленный видеофайл.
2. Мне нужно преобразовать матрицу просмотра модели opengl в CATransform3D, чтобы AVPlayerLayer прикреплялся к отслеживаемому изображению. Спасибо Hammer за стекоперемещение, он поделился примером того, как это сделать.
3. Я пытался визуализировать фон камеры одновременно с использованием opengl и AVPlayerLayer, но производительность не достаточно хорошая, поэтому я использую другой калибр для рендеринга фона камеры. В 1.5.8 есть ошибка при получении кадра камеры, спасибо за andersfrank, проблема была решена здесь.
Я положил свой код на pastebin:
Есть еще некоторые проблемы, которые необходимо решить, но я думаю, что это правильный подход.
PS. Для вопроса 3 в моем оригинальном посте, вы можете исправить это с помощью набора
cameraLayer.contentsGravity = kCAGravityResizeAspectFill;
Это решит проблему, заключающуюся в том, что соотношение сторон изображения камеры отличается от экрана iphone.
Обновить
Все проблемы решены, пожалуйста, проверьте мой оригинальный пост на vuforia и pastebin.