好吧,这听起来像是一个愚蠢的问题,但我想知道当你知道你的帧速率很低时,是否有关于如何平滑,快速地为对象制作动画的建议。
我的动画做的是我移动大约10个2d矩形(每个包含一个纹理),x和y都有大约500个像素,我也可以从大约1000 * 1000px缩小到30%。我希望动画在200ms左右完成。我估计帧率可能是20-30fps。
我尝试过不同的时间和动作速度,但它们看起来都像废话。如果你的速度很快,你几乎看不到动画,如果你的速度很慢,它看起来很平滑,但需要很长时间。
是否有任何关于如何进行快速动画的研究仍然看起来运行顺畅。我以为你可能会在开始时加速缓慢然后在结束时跳跃,或者反过来?我自己的实验都看起来既跳跃又缓慢:P
我们人们认为像素/帧必须有一些限制。我在哪里可以找到这样的指南?
为什么我想知道这个?
我做了一个窗口切换应用程序,可以做一些很酷的动画,但问题是,当我没有运行任何图形密集型应用程序时,我的图形卡会进入低功耗模式。这导致我的应用程序(一次运行不超过3秒)执行得非常糟糕,因为gfx卡从来没有时间加速。
(如果你有一台笔记本电脑和vista,你可以自己尝试一下:按下win + tab,你会看到动画有点不稳定,然后再开始一部电影并再次按下win + tab,这次动画是更顺利)。
答案 0 :(得分:1)
如果动作很小,你应该能够以大约15fps的速度获得合理的动画效果。意识到将高带宽图形信息(大量移动和形状/颜色变化)拟合到低带宽介质(低fps)中是有限制的,但运动模糊等技术将有所帮助。
此外,请考虑双缓冲或三缓冲,理想情况下与显示器的垂直刷新同步,这将有助于减少可能分散动画的闪烁和撕裂。
答案 1 :(得分:0)
如果您的动画纯粹是二维的(例如,窗口内容的严格移动),那么您可以通过像素锁定它们到视频帧来提高它们的平滑度。即使在非常低的帧速率下,每帧正好N个像素的运动看起来也很平滑,而如果你有一些像素的剩余部分,你可以从像素采样中得到别名,这是显而易见的。
运动模糊在理论上是使运动看起来平滑但是适当的运动模糊是昂贵的方式,因此如果您已经遇到帧速率问题,那么运动模糊可能只会使事情变得更糟。但是可能有某种方法可以降低成本,例如,如果运动方向和速度恒定,那么您可以渲染单个模糊图像并使用它。或者可能多次透过动态图像的部分透明副本以获得“踪迹”。