【问题标题】:What does it mean by Page Flipping in computer graphics programming?计算机图形编程中的翻页是什么意思?
【发布时间】:2011-12-26 22:03:32
【问题描述】:

翻页是什么意思?

为什么我们在图形编程中需要它?

【问题讨论】:

标签: c graphics page-flipping


【解决方案1】:

翻页是一种简单的硬件辅助技术,用于无闪烁图形,我们已经使用了几十年。

需要硬件支持:

  • 视频子系统必须至少有两个内存区域(页) 可能是可见的,其中只有一个是可见的 给定的时刻。

  • 视频子系统支持软件可以选择的某些方法 两个页面中的哪一个是可见的。这通常只是一个 向硬件发出指令,并且切换是瞬时的,因为 硬件只是停止扫描一页并开始扫描另一页 页面。

因此,我们的想法是,在任何给定时刻,我们都保持一个页面可见,而在另一个页面上,我们正在渲染下一帧。一旦我们完成了帧的渲染,我们发送的硬件指令会立即“翻转”可见页面,这意味着我们进行渲染的页面 现在变得可见,而以前可见的页面变得不可见,我们可以在其中渲染下一帧。我们对每一帧重复这个过程,总是在用户看到可见页面时呈现在不可见页面上。

更详细地说,它的工作原理如下:

  • 我们有两页,A 和 B。一开始两页都是空白的, 页面 A 可见,页面 B 不可见。

  • 我们在页面 B 上渲染我们的图形框架,它是不可见的,所以 最初用户看不到它。

  • 在页面 B 中完成渲染帧后,我们发送硬件 翻转页面的指令,因此用户现在开始看到我们的 在页面 B 上呈现。

  • 我们在不可见页面 A 上渲染下一帧,因此用户不会 看到正在发生的渲染。 (这将被视为闪烁。)

  • 在页面 A 上完成渲染后,我们再次翻转页面,所以 现在用户可以看到我们新渲染的页面,而之前 可见页面现在变得不可见并且可用于呈现下一个 框架。

  • 我们不断为每一帧重复这个过程。

【讨论】:

  • 不仅仅是几十年前,今天它仍然是一种完全相关的技术。
  • 这不是和双缓冲一样吗?
  • @Seth Carnegie 它与双缓冲非常相似,但又不一样。在双缓冲中,视频 RAM 总是在一个地方,CPU 总是在屏幕外的系统 RAM 的某个区域进行渲染,然后将该区域复制到视频 RAM 上。
  • @MikeNakis:双缓冲通常使用翻页来实现。
  • @MikeNakis:最新的窗口系统(AIGLX、Windows Aero、Quartz Extreme)正在合成。程序不再需要双缓冲它们的单个小部件,而是将它们单缓冲地绘制到屏幕外缓冲区中。从那里全屏图像被合成到一个翻页双缓冲区中。
【解决方案2】:

直接在屏幕上绘制通常太慢了,视觉上,你看到了绘图。因此,您在显示另一页的同时绘制一页。然后当它准备好显示你“翻页”到完全绘制的页面时,你就可以开始在另一页上绘图了。

制作流畅的动画。

【讨论】:

    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多