CITransform vs CATransforms 哪个以及何时使用?
CITransform vs CATransforms which and when to use?
我需要在相机上绘制一个叠加层,它在每一帧上绘制一个不同方向的箭头。
据我了解,由于要处理每一帧,我应该使用 Core graphics 绘图,但除了绘制箭头外,我还需要根据相机方向为其提供透视效果。
我设法在使用带有 CIPerspectiveTransform 的 CIFilter 转换的每一帧上叠加 png。
但现在我要通过 "drawing" 箭头进入下一个级别,我不确定应用什么更好。我应该绘制该箭头并将其转换为 CIImage 并遵循已知的应用 CIPerspectiveTransform 的路径,还是应该深入研究 Core Animation,如果是这样......在 Core Animations 世界中 CIPerspectiveTransform 的等价物是什么。
Core Animation 默认不做透视。它最适合 2D 动画。然而,这是可能的。 Core Animation 的转换矩阵是 CATransform3D 类型。
为了使透视起作用,您必须手动将 CATransform3D 的 .m34 字段设置为一个小的负值。如果您在 "CATransform3D m34" 上进行 Google 搜索,您应该会找到有关如何从 Core Animation 层获得 3D 透视图的信息。
之前没有用过Core Image的CIPerspectiveTransform滤镜,所以不好比较。
Core Animation 速度很快,针对图形硬件的高效使用和(显然)动画进行了优化。 Core Image 也是硬件加速的,但似乎不太适合动画。
我会说,如果您是基于 Core Image 滤镜的代码,可以提供可接受的性能,请使用它。这是一个已知的。 Core Animation 非常复杂,文档也不是很好。要掌握它需要大量的挖掘和实验,尤其是透视图。
我需要在相机上绘制一个叠加层,它在每一帧上绘制一个不同方向的箭头。
据我了解,由于要处理每一帧,我应该使用 Core graphics 绘图,但除了绘制箭头外,我还需要根据相机方向为其提供透视效果。
我设法在使用带有 CIPerspectiveTransform 的 CIFilter 转换的每一帧上叠加 png。
但现在我要通过 "drawing" 箭头进入下一个级别,我不确定应用什么更好。我应该绘制该箭头并将其转换为 CIImage 并遵循已知的应用 CIPerspectiveTransform 的路径,还是应该深入研究 Core Animation,如果是这样......在 Core Animations 世界中 CIPerspectiveTransform 的等价物是什么。
Core Animation 默认不做透视。它最适合 2D 动画。然而,这是可能的。 Core Animation 的转换矩阵是 CATransform3D 类型。
为了使透视起作用,您必须手动将 CATransform3D 的 .m34 字段设置为一个小的负值。如果您在 "CATransform3D m34" 上进行 Google 搜索,您应该会找到有关如何从 Core Animation 层获得 3D 透视图的信息。
之前没有用过Core Image的CIPerspectiveTransform滤镜,所以不好比较。
Core Animation 速度很快,针对图形硬件的高效使用和(显然)动画进行了优化。 Core Image 也是硬件加速的,但似乎不太适合动画。
我会说,如果您是基于 Core Image 滤镜的代码,可以提供可接受的性能,请使用它。这是一个已知的。 Core Animation 非常复杂,文档也不是很好。要掌握它需要大量的挖掘和实验,尤其是透视图。