【发布时间】:2011-08-05 15:17:36
【问题描述】:
我一直在为一个项目使用Augmented Reality SDK from String。基本上,这个 SDK 会传回一堆它识别的图像的标记,以及一个关联的 OpenGL 矩阵变换,它勾勒出标记图像在 iPhone 相机视图内的 3D 空间中的位置。我要做的是将CATransformLayer 映射到场景中,以便它在标记图像上正确显示并在其位置播放视频。我认为我可以使用位于 CATransformLayer 内的 AVPlayerLayer 来执行此操作,该 CATransformLayer 应用了矩阵变换(转换为 CATransform3D)。
据我所知,这并不是特别好——我似乎无法在原始 OpenGL 矩阵和CATransform3D 后面的矩阵之间找到逻辑映射。
您可以看到在标记转换和CATransform3D 对象之间进行直接转换非常混乱(蓝色位是我的层):
我认为它们是相同的(由于CALayer GL 的支持,我曾多次被告知它们是相同的)。这是真的?我错过了什么吗?
我可以退回来将我的视频作为纹理渲染到场景中,但如果可能的话,保持高水平会很棒 - 有什么想法/cmets/想法吗?
【问题讨论】:
标签: ios opengl-es matrix-multiplication catransform3d catransformlayer