OpenGL中实现双缓冲技术的方法

OpenGL中实现双缓冲技术的三种方法是这样的

1.调用glutDisplayFunc(display)回调函数时, 在回调函数中所有绘制操作完成后调用glutSwapBuffers()交换两个缓冲区指针。

2.这种方法是大家经常用的吧glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);GLUT_DOUBLE,使用双缓冲而不是单缓冲。

3.调用glutIdleFunc注册一个空闲时绘制操作函数, 注册的这个函数再调用display函数。     

那么我们为什么要使用双缓冲技术呢?

一个词解释原因的话就是解决屏幕的频繁刷新造成的画面闪烁问题。具体来说是这样的。双缓冲技术:包括前台缓冲(也就是屏幕)和后台缓冲(内存)绘图操作现在内存中(也就是后台缓冲中)绘好。然后再将结果复制到屏幕上。这样就不会造成画面的闪烁。

(以上文章参考文献:OpenGL红宝书和百度大神mayadong7349,感谢上述作者的奉献精神!)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、第一个OPENGL程序...................................................................................................................4 1.1、OPENGL的优点..........................................................................................................................4 1.2、OPENGL的安装..........................................................................................................................4 1.3、第一个OPENGL程序.................................................................................................................5 二、点、直线和多边形..........................................................................................................................8 2.1、点、直线和多边形.....................................................................................................................8 2.2、在OPENGL指定顶点.............................................................................................................8 2.3、绘制曲线....................................................................................................................................9 三、绘制几何图形的细节....................................................................................................................14 3.1、关于点......................................................................................................................................14 3.2、关于直线..................................................................................................................................14 3.3、关于多边形...............................................................................................................................15 四、颜色的选择...................................................................................................................................20 4.1、RGBA颜色...............................................................................................................................20 4.2、索引颜色..................................................................................................................................21 4.3、指定清除屏幕用的颜色...........................................................................................................22 4.4、指定着色模型...........................................................................................................................23 五、 三维变换.....................................................................................................................................25 5.1、模型变换和视图变换...............................................................................................................25 5.2、投影变换..................................................................................................................................26 5.3、视口变换..................................................................................................................................28 5.4、操作矩阵堆栈...........................................................................................................................29 5.5、综合举例..................................................................................................................................29 六、 动画制作.....................................................................................................................................33 6.1、双缓冲技术...............................................................................................................................33 6.2、实现连续动画...........................................................................................................................34 6.3、垂直同步..................................................................................................................................35 6.4、计算帧速..................................................................................................................................36 七、光照...............................................................................................................................................40 7.1、建立光照模型...........................................................................................................................40 7.2、法线向量..................................................................................................................................41 7.3、控制光源..................................................................................................................................41 7.4、控制材质..................................................................................................................................43 7.5、选择光照模型...........................................................................................................................43 7.6、示例程序..................................................................................................................................44 八、 显示列表.....................................................................................................................................48 8.1、分配显示列表编号...................................................................................................................48 8.2、创建显示列表...........................................................................................................................49 8.3、调用显示列表...........................................................................................................................49 8.4、销毁显示列表...........................................................................................................................50 九、 混合.............................................................................................................................................56 9.1、源因子和目标因子...................................................................................................................56 9.2、二维图形混合举例...................................................................................................................57 9.3、实现三维混合...........................................................................................................................58 十、像素操作.......................................................................................................................................63 10.1、BMP文件格式简单介绍........................................................................................................63 10.2、简单的OPENGL像素操作.....................................................................................................64 10.3、GLREADPIXELS的用法和举例................................................................................................64 10.4、GLDRAWPIXELS的用法和举例..............................................................................................68 10.5、GLCOPYPIXELS的用法和举例................................................................................................70 十一、 纹理.........................................................................................................................................73 11.1、启用纹理和载入纹理.............................................................................................................74 11.2、纹理坐标................................................................................................................................75 11.3、纹理参数................................................................................................................................76 11.4、纹理对象................................................................................................................................77 11.5、示例程序................................................................................................................................79 十二、 测试操作.................................................................................................................................87 12.1、剪裁测试................................................................................................................................87 12.2、ALPHA测试.............................................................................................................................88 12.3、模板测试................................................................................................................................92 12.4、深度测试................................................................................................................................97 十三、 OPENGL的状态....................................................................................................................99 13.1、取得OPENGL的当前状态...................................................................................................100 13.2、设置OPENGL状态...............................................................................................................101 13.3、OPENGL工作流程................................................................................................................101 十四、 OPENGL的版本和OPENGL的扩展...............................................................................104 14.1、OPENGL的版本....................................................................................................................104 14.2、OPENGL的扩展....................................................................................................................106 14.3、工具软件...............................................................................................................................110 十五、OPENGL的演进....................................................................................................................112 15.1、从原始一点的办法开始.......................................................................................................112 15.2、顶点数组...............................................................................................................................115 15.3、顶点缓冲区对象...................................................................................................................118 十六、显示文字.................................................................................................................................122 16.1、OPENGL版的“HELLO, WORLD!”.........................................................................................122 16.2、指定字体...............................................................................................................................124 16.3、显示文...............................................................................................................................126 16.4、纹理字体...............................................................................................................................128 16.5、应用纹理字体的实例:飘动的旗帜...................................................................................132 16.6、缓冲机制...............................................................................................................................137 16.7、轮廓字体...............................................................................................................................141
理解Microsoft专家认证程序 理解Microsoft认证的不同等级和类型 选择成为MCP(Microsft认证专家)的考试科目 选择成为MCSD的考试科目 选择成为MCT的考试科目 MCSE认证考试的科目 选择合适的MCSE课程组合 核心课程考试 选修课程考试 考试编号的识别 课程内容和考试内容的对照 理解微软的MCSE长远考虑 理解微软出题的方式 使用本书帮助备考 在Internet上寻找对考试有帮助的信息 寻求微软认可的课程指导 寻找高质量的和三方帮助 寻找可利用的评估软件拷贝 报名参加考试 考试的费用问题 考前的自我调整 使用考试心提供的考试工具 参加模拟测试 熟悉使用计算机进行考试 充分利用考试时间 考题的形式 理解多重选择题型 理解对错题题型 理解多重选择多重答案题型 理解基于解决方案型的问题 理解“建议方法”类型的考题 分析考试结果 准备重新考试 合理安排考试课程的顺序 熟悉Windows系列产品 比较Windows NT Server和NT Workstation 比较Windows NT Workstaton和Windows 95 在Windowx 95和Windows NT Workstation之间作出选择 关于Microsoft Windows NT的70-069号考试:实现和支持Microsoft Windows NT Server 4.0 70-069号考试(实现和支持Microsoft Windows NT Server 4.0)覆盖的内容 Windows NT 4.0界面简介 Windows NT 4.0任务栏(taskbar)的使用 Windows NT回收站简介 Windows NT帐号简介 理解单域模型支持和帐号数量 安全认证号简介 使用管理向导(Administrative Wizards)创建帐号 使用Server Manager(服务器管理器)程序创建计算机帐号 Userver Manager for Domains(域的用户管理器)简介 使用User Mnager for Domains创建用户帐号 刷新用户帐号列表 用户帐号列表的排序 事件查看器(Event View)程序简介 筛选Event Viewer的事件 授予用户在本地登录的权利 使用Windows NT诊断程序查看系统配置 激活“Windows NT Security(Windows NT安全)”对话框 理解登录验证过程 理解访问令牌(Access Token) Windows NT目录服务简介 理解Windows NT如何构造用户帐号数据库 使用Windows NT的Ctrl+Alt+Del组合键 把Windows NT计算机设置成自动登录 改变Windows NT口令 用拨号网络登录 复制用户帐号 为简化多个帐号的创建工作而建立用户帐号模板 删除和重新命名用户帐号 理解保护缺省的Administrator帐号的重要性 重新命名管理员帐号 理解缺省的Guest帐户 Windows NT在哪里创建帐号 设置口令限制条件 设置用户登录地点 创建宿主文件夹 设置用户登录时间 创建临时用户帐号 重新设置用户帐号口令 修改多个用户帐号 自动注销有时间限制的用户 要求用户在下次登录时改变口令 设置帐号规则 设置用户口令永不过期 停用用户帐号 解开登录失败后的用户帐号 Windows NT组简介 理解用户权限和组的访问权限 理解用户和组的权利 分清权限(permission)和权利(right) 设置组成成员关系 理解全局帐号 理解本地帐号 定义Everyone组 Network组的详细说明 Inteactive组的详细说明 Administrators组的详细说明 Guest组的详细说明 Users组的详细说明 Print Operators组的详细说明 Backup Operators(帐户操作员)组的详细说明 Replicator(复制员)组的详细说明 Domain Guests(域客户)组的详细说明 Domain Users(域用户)组的详细说明 Domain Admins(域管理员)组的详细说明 赋予拨号进入权限 理解用户配置文件(User Profile) 为Windows用户创建并使用登录脚本文件(Logon Script) 创建漫游式用户配置文件(Roaming User Profile) 创建强制性用户配置文件(Mandatory User Profile) 为用户帐号分配一个配置文件 创建帐户时变量的使用 创建随机初始化口令 理解内建组(Built-in Group) 理解组和策略 设置主组(Primary Group) 理解删除一个组的影响 域控制器(Domain Controller)简介 成员服
OpenGL,为了实现帧保留的效果,我们可以使用双缓冲技术双缓冲技术是一种用于图形渲染的技术,它包含两个缓冲区:前缓冲和后缓冲。前缓冲用于显示当前帧的图像,而后缓冲则用于渲染下一帧的图像。 当绘制一帧时,我们会首先在后缓冲进行各种绘制操作,然后将后缓冲的图像切换到前缓冲进行显示。这样,前缓冲显示的就是经过绘制操作后的图像,而后缓冲则用于接收下一帧的绘制。 使用双缓冲技术可以防止屏幕闪烁的问题,因为在切换缓冲时,前缓冲不会显示未完成的绘制结果,而是直接显示经过绘制操作后的图像。 如果要实现帧保留的效果,只需要保留前一帧的图像,然后在下一帧的绘制将前一帧的图像绘制到当前帧即可。可以通过将前一帧的图像保存为一个纹理,然后在下一帧的绘制过程使用这个纹理进行绘制。 具体操作可以通过以下步骤实现: 1. 在初始化阶段,创建两个帧缓冲对象(FBO),分别用于前缓冲和后缓冲。 2. 在每一帧的绘制过程,首先将后缓冲绑定为当前绘制目标。 3. 将当前帧的图像绘制到后缓冲。 4. 切换缓冲,将后缓冲切换到前缓冲。 5. 在绘制下一帧之前,使用前一帧的图像作为纹理绘制到当前帧。 通过这种方式,我们就可以实现OpenGL的帧保留效果,从而在动画或游戏实现平滑的过渡效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值