OpenGL单缓冲与双缓冲的区别

OpenGL中的单缓冲会导致画面闪烁,而双缓冲通过两个屏幕绘图缓存区交替使用避免了这一问题,提供流畅的动画效果。深度测试是解决物体前后关系的重要手段,通过启用GL_DEPTH_TEST并设置适当的比较函数,如GL_LEQUAL,来确保正确的遮挡关系。
摘要由CSDN通过智能技术生成

单缓存和双缓存

在我们电脑中,屏幕中显示的东西都会被放在一个称为显示缓存的地方,在通常情况下我们只有一个这样的缓冲区即单缓冲,在单缓冲中任何绘图的过程都会被显示在屏幕中,这也就是我们为什么会看到闪烁。而所谓双缓冲就是再这个显示的缓冲区之外再建立一个不显示的缓冲区,我们所有的绘图都将在这个不显示的缓冲区中进行,只有当一帧都绘制完了之后才会被拷贝到真正的现实缓冲区显示出来,这样中间过程对于最终用户就是不可见的了,那即使是速度比较慢也只会出现停顿而不会有闪烁的现象出现。

单缓存:帧缓存区开辟一个屏幕绘图缓存区。
双缓存:帧缓存区开辟两个屏幕绘图缓存区,交替使用,便于动画绘制 。
可以通过以下方法来设置窗口的展示模式为单缓冲或双缓冲

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glFlush(); //单缓冲的刷新模式;
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutSwapBuffers(); //双缓冲的刷新模式;

一般用OpenGL绘图都是用双缓冲,单缓冲一般只用于显示单独的一副非动态的图像。

使用深度测试函数:

在解决了闪烁的问题之后,我们来解决

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值