How to get CATransform3D from Projection and ModelView matrices
我之前浏览过这个问题,网址;但这并不是绝对精确的;我想知道为什么它不准确;
我发现x轴和y轴的旋转是相反的(我不能发布图像);梯形(当旋转calayer时,它就像一个梯形)是相反的,剂量calayer旋转不是喜欢opengl?但是当你按z轴旋转时它是正确的。
我想获得角度,然后相反地旋转两次;如何通过opengl矩阵获得角度?
我想通过QCAR播放电影;我可以获得opengl矩阵,我想使用UIView来播放电影和其他(熟悉UIView),并使UIview像Texture一样。
答案 0 :(得分:0)
我刚刚在QCAR论坛上发布了一个示例,您可以查看详细信息here
这个想法很简单。
1.我不使用avassetreader来读取视频像素,而是使用可以播放远程视频文件的AVPlayer和AVPlayerLayer。
2.我需要将opengl模型视图矩阵转换为CATransform3D,以便AVPlayerLayer将附加到可跟踪图像上。感谢stackoverflow上的Hammer,他分享了一个如何实现此目的的示例。
3.我试图同时渲染相机背景使用opengl和AVPlayerLayer,但性能不够好,所以我使用另一个calayer来渲染相机背景。在获取相机框架时,1.5.8中存在一个错误,感谢andersfrank这里解决了问题。
我将代码放在pastebin上:
仍有一些问题需要解决,但我认为这是一种正确的方法。
PS。对于原始帖子中的问题3,您可以通过设置
进行修复 cameraLayer.contentsGravity = kCAGravityResizeAspectFill;
这将解决相机图像的宽高比与iphone屏幕不同的问题。
所有问题都解决了,请查看我在vuforia和pastebin上的原帖。