双缓冲绘图

双缓冲绘图

大家小时候都玩过飞机大战吧,当我们在玩这种飞行射击类游戏时,背景图总是不断地向下移动的,从而给我们营造出一种飞机正在向前飞行的游戏体验。那么,图片的快速变化是如何实现的呢?

普通绘图的局限

  • 当我们使用普通绘图时,计算机会将我们要显示的内容一点一点显示出来。比如,如果让计算机来将一张图片的像素点逐个显示出来,我们会发现,一张图片要花费几秒钟才可以显示完全, 显然这样的速度不是我们想要的。

  • 我们在做飞机大战游戏的时候,我们应该总是让背景图在飞机的下层显示,如果使用单缓冲绘图,先画背景,再画飞机,会让人感受到背景和飞机不是同时出现的感觉,影响游戏体验。

  • 那么,是什么原因造成了绘制的速度慢呢?

  • 我们知道,计算机要将绘制的内容显示到屏幕上,需要两步:①将内存数据提交给显卡。②通过显卡渲染到屏幕上。

  • 使用单缓冲绘图时,计算机刚计算出几个像素点就提交给显卡,让显卡去渲染到屏幕上,而屏幕的刷新率在60~144Hz,刷新频率*一次显示的像素点,就是一秒可以显示的像素点数,这个一秒显示的像素点数还不够一张图片的,就造成了我们所看到的,图片要花费好几秒才可以慢慢显示出来。

双缓冲绘图的原理

我们把下一帧需要显示的画面上所有的图形内容都计算好,存在内存中,然后再一起发送给显卡去显示,这样显卡刷新一次就可以将图片显示出来。

双缓冲绘图的好处

  • 在我看来,使用双缓冲绘图有两点好处:
  • 第一,绘制快,我们把要绘制的下一帧的图形数据存起来,然后一起发给显卡,显卡可以将这一帧的图片同时快速的出现在屏幕上。
  • 第二,绘制前可以整理图形数据的先后位置,比如,我们需要让飞机永远显示在背景图的上层,就可以先在内存中先画背景图,再画飞机,最后一起显示到屏幕。
posted @ 2022-06-28 11:47  classic123  阅读(174)  评论(0编辑  收藏  举报