【发布时间】:2021-12-24 17:25:00
【问题描述】:
由于当今的大多数设备都有 CPU 和 GPU,因此对于希望制作动画矢量图形(例如使圆圈变大或四处移动)的程序员通常的建议是定义图形项目一次,然后使用线性变换对其进行动画处理.这样,(在大多数平台和框架上)GPU 可以完成动画工作,因为线性变换的光栅化可以在 GPU 上非常快速地完成。如果程序员选择在 CPU 上绘制每一帧,它很可能会慢得多并且消耗更多的能量。
我知道 Watch 不是一个你想用复杂动画重载的设备,但至少主屏幕似乎确实使用了这种动画线性变换:
此外,大多数表盘都以某种方式进行动画处理,例如移动的秒针和分针。
但是,WatchKit 控件没有.transform 属性,我在documentation 中找不到太多内容——那里甚至没有提到“动画”和“图形”这两个词。
因此,我目前看到的唯一方法是将矢量图形绘制到CGContext,然后将结果作为UIImage 放入图像控件,如here 所述。但这似乎并不真正节能。这正是我们通常希望尽可能避免的那种“CPU 像素绘图”。我认为它不节能,因为如果我在 100x100 像素的图像缓冲区上绘制,图像必须缩放到实际的 Watch 屏幕尺寸,所以我们每帧有两个实际的绘制过程。
是否有官方推荐的节能方式在 Apple Watch 上制作动画?
或者,换句话说,我们可以像在主屏幕或表盘上一样为它们设置动画吗?
【问题讨论】:
标签: animation watchkit apple-watch