CITransform vs CAT变换哪些以及何时使用?

时间:2015-05-29 15:38:39

标签: ios core-graphics core-animation core-image

我需要在相机上绘制一个叠加层,在每个帧上绘制一个不同方向的箭头。

据我所知,由于处理每一帧,我应该使用Core图形绘图,但除了绘制箭头之外,我需要根据相机方向给它一个透视效果。

我设法在每个使用带有CIPerspectiveTransform的CIFilter转换的帧上覆盖png。

但现在我将通过"绘制"进入下一个级别。箭头,我不知道什么是更好的申请。我应该绘制该箭头并将其转换为CIImage并遵循应用CIPerspectiveTransform的已知路径,或者我应该深入了解Core Animation,如果是这样的话......核心动画世界中CIPerspectiveTransform的等价物。

1 个答案:

答案 0 :(得分:0)

默认情况下,Core Animation不会执行透视。它最适合2D动画。但是,这是可能的。 Core Animation的转换矩阵是CATransform3D类型。

为了获得工作视角,您必须手动将CATransform3D的.m34字段设置为较小的负值。如果您在" CATransform3D m34"上进行谷歌搜索你应该找到关于如何从核心动画层获得3D视角的信息。

我之前没有使用过Core Image的CIPerspectiveTransform过滤器,所以我无法轻易比较它们。

核心动画速度快,针对图形硬件的有效使用进行了优化,并且(显然)用于动画。核心图像也是硬件加速的,但似乎并不适合动画。

我说如果您使用基于Core Image过滤器的代码为您提供可接受的性能,请使用它。它是众所周知的。核心动画非常复杂,文档也不是很好。需要大量的挖掘和实验才能掌握它,尤其是透视图。