位置: 编程技术 - 正文

OpenGL Tutorial: (2) Creating an OpenGL Window

编辑:rootadmin

推荐整理分享OpenGL Tutorial: (2) Creating an OpenGL Window,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

接上文(《OpenGL Tutorial: (1) Setting up OpenGL with Visual Studio》)。

创建默认的OpenGL窗口

先给出一个能运行的例子,它创建一个默认的OpenGL窗口并给它填色。如果press 键那么程序退出。

上面这段代码中,创建OpenGL窗口就用到了这么一句:

它当然可以创建OpenGL窗口,但是没有任何的额外的参数,完全由着OpenGL的默认行为。

Screenshots:

控制窗口的位置和大小

把main函数改成:

其中初始化和创建OpenGL窗口的语句是:

运行。这时候你会发现创建出来的OpenGL窗口已经不是一个随意的大小和位置,而是你所期望的结果: Screenshot:

初始化显示模式 glutInitDisplayMode

把初始化和创建OpenGL窗口的语句改成这样的:

OpenGL Tutorial: (2) Creating an OpenGL Window

要关注一下这一句:

glutInitDisplayMode (GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

GLUT_DEPTH: 告诉OpenGL,我们需要一个z轴。GLUT_DOUBLE: 告诉OpenGL,我们启用双缓冲区。GLUT_RGBA: 告诉OpenGL,我们使用Red, Green, Blue, and Alpha的方式来分配位的Framebuffer。

看一下运行结果:

是怎么一回事呢?恰恰是因为我们设置了GLUT_DOUBLE的结果。

改一下renderScene函数:

注意我们加了这一句:

glutSwapBuffers ();

这一句的作用是交换缓冲区,就是在设置GLUT_DOUBLE时创建的那两个缓冲区。刚刚我们执行的结果是空白,实际上图像画在了“后台”的那个缓冲区,现在我们把它置换到前台来。 执行结果: 你看,这个熟悉的紫色矩形框又能看到了。

为什么要设置双缓冲区呢?因为,当我们画复杂的图形的时候,绘制的过程可能导致屏幕闪烁,如果我们先让它在“后台”的缓冲区里画着,画好了以后再置换到“前台”的缓冲区里来,这样就消除了闪烁了。

今天先写到这里,后面我们再来详细解释。

参考文章《CREATING AN OPENGL WINDOW》附:系列文章索引OpenGL Tutorial: (1) Setting up OpenGL with Visual Studio OpenGL Tutorial: (2) Creating an OpenGL Window

VS配置OpenGL 1.下载glut库glut库地址为:

Android OpenGL ES(三)----编程框架 首先当然是创建Android项目,你可以选择最新的AndroidStudio也可以选择eclipse都是一样的。我们重点讲解开发OpenGLES的流程1.定义顶点着色器和片段着色器第

openGL 坐标系的互相转换 openGL坐标系包含旋转,平移,缩放被塞在一个矩阵里面。坐标系之间的转换基础是矩阵的运算。每一个矩阵代表的坐标系,就是是原点坐标系通过旋转

标签: OpenGL Tutorial: (2) Creating an OpenGL Window

本文链接地址:https://www.jiuchutong.com/biancheng/369431.html 转载请保留说明!

上一篇:Tutorial 8:Scaling Transformation

下一篇:VS2012配置OpenGL(vs2012配置opencv4.8)

  • 税控盘维护费的分录
  • 公司购买设备报告怎么写
  • 分派现金股利需要缴税吗
  • 公司车维修费
  • 采购返利怎么生成发票
  • 普通发票作废要交税吗
  • 招标代理服务费由谁支付
  • 银行回单手续费分录
  • 季度企业所得税可以不预缴吗
  • 未确认融资费用计算公式
  • 本期实际抵减税额合计
  • 如何进行银行存款的实质性程序
  • 临时用工工资税率怎么算
  • 年金现值计算公式推导
  • 暂估出库是什么意思
  • 自创商誉企业所得税可以扣除吗
  • 专票的税金
  • 库存材料盘亏会计分录
  • 为什么有些单位一直在招聘
  • 附税分录怎么做?
  • 拆迁安置土地的补偿标准
  • 2018年年终奖个税计算方法
  • 以前年度有亏损需要交增值税吗为什么
  • 专项资金单独核算的法律依据是什么
  • 施工图审查费入哪个科目
  • mac菜单栏如何调整位置
  • php技巧
  • php用户登录用的什么技术
  • 浅谈使用链式管理加强特殊监管场所
  • 苹果电脑怎么打顿号
  • php面向对象是什么意思
  • 纳税人购进农产品取得
  • 公司购买二手车需要什么手续
  • php 上传图片
  • 转销坏账准备的会计分录有一个还是两个
  • php微信公众号开源框架
  • vuecdn方式引入
  • 捐赠利得计入营业外收入吗?
  • 税控开票清单
  • 销售精装修房如何做账
  • php sleep()
  • 当月没有发放工资是不是就不用申报个税
  • 股息红利所得为什么按照分配所得的企业所在地确定
  • 非税收入统一票据怎么查询
  • 资产管理业务是表外业务吗
  • 企业内部控制的概念
  • 偷税行为如何处理
  • 认缴资本怎么填
  • MySQL5.6 Replication主从复制(读写分离) 配置完整版
  • 个税专项附加扣除标准调整
  • 用友t3怎样查明细账
  • 小规模纳税人开专票需要交税吗
  • 购房补贴退契税多久到账
  • 跨年发票如何做会计分录
  • 收到的承兑怎么转给别人
  • 预收帐款一直挂账好吗
  • 公司账户转账转错了能退回来吗
  • 无形资产与固定资产一样都会存在实体性贬值
  • 公司增资怎么处理
  • 账务处理有哪几种
  • 在什么情况下会冻结微信零钱
  • 补计提上一年度工资
  • 资产负债表编制
  • 分公司注销余额转总公司会计分录
  • 公对私 预付款 税
  • sql is in
  • 淘宝pc端打不开
  • xp系统运行怎么打开
  • win8删除所有文件
  • js 原型链继承 原型式继承
  • unity3D游戏开发
  • jqgrid动态增加列
  • node遍历文件夹
  • javascript数据
  • 如何使用开塞露排便
  • javascript 基础篇3 类,回调函数,内置对象,事件处理
  • numpy体会
  • js合并两个数组并排序
  • 西安车辆购置税缴纳需要什么材料
  • 中医药文化进校园活动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设