位置: 编程技术 - 正文

OpenGL Tutorial: (2) Creating an OpenGL Window

发布时间:2024-02-27

推荐整理分享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)

  • 发票专用章号码是老号码还能用吗
  • 税务机关如何处理公司多交税
  • 价外税和价内税的理解
  • 小规模未开票收入填在哪里
  • 股权转让给个人和公司的区别
  • 进项票丢了,假如税不抵了,怎么做账
  • 以物抵债需要缴纳之前欠的税吗?
  • 外商投资企业与内资合资是国企吗
  • 短期借款有哪些
  • 会计核算形式
  • 承租人转租是否要交税
  • 非货币性资产交换的会计处理
  • 客户退回发票会退回吗
  • 无形资产摊销是增加还是减少
  • 买烟酒开专票可以抵税吗
  • 公司账上没车可以报车辆保险吗
  • 增值税加计扣除是什么意思啊
  • centos编辑文本
  • 免租期租金可以追回吗
  • 在php中,字符串有哪些表示形式
  • php 读取文本文件
  • php未定义数组下标0
  • 没有购入发票可以开出发票
  • 企业确认坏账损失时的会计分录为
  • php使用crypt()函数进行加密
  • 简单的随机乱码怎么解决
  • redis设置内存淘汰策略
  • linux shell
  • 遗传算法排课代码python
  • 原材料的采购成本主要包括有?
  • 长期应收款如何核算
  • python 函数的返回值
  • 现金收入的管理的内容包括哪些
  • 房产税的定义是什么
  • mysql sql性能优化
  • mysql数据库导出xml的实现方法
  • 砂石可以开专票吗
  • mysql 自动断开
  • mysql配置怎么调出来
  • 公司购车购置税可以抵扣吗
  • 哪些费用可以进研发费用
  • 小规模购进商品怎么做账
  • 物流公司挂靠会计处理?
  • 写个电影剧本多少钱
  • 出口样品未报关处罚
  • 缴纳文化事业建设费的单位应按照提供广告服务
  • 银行存款的收付应严格执行()的规定
  • 购入汽车当月需要计提折旧吗
  • 金蝶旗舰版的数据怎么在标准版打开
  • 支付给外包公司的工资和保险费
  • 费用摊销怎么做分录
  • 固定资产转让开票大类是什么
  • 工厂加工费的账务怎么做
  • 餐饮行业的原材料怎么做账
  • 代办旅行社经营许可证
  • MySQL5.6.31 winx64.zip 安装配置教程详解
  • w10专业版最新版本
  • win10如何固定桌面图标
  • c盘满了怎么释放空间
  • usbmmkbd.exe - usbmmkbd是什么进程
  • macair蓝牙用不了
  • win8.1无法进入系统
  • windows7准备配置windows
  • win8开机启动项
  • win11系统ie浏览器
  • perl处理特殊符号
  • 3d引擎开发
  • node 获取当前时间
  • 常用正则表达式汇总
  • 自制u盘杀手
  • python2.7和3.8
  • linux文件处理三剑客
  • js 上传
  • 使用JQuery选择HTML遍历函数的方法
  • android背景图片透明度alpha
  • 代收的款项支付需不需要开发票
  • 即征即退什么时候确认收入
  • 请领导批示的格式
  • 申报期包括不包括最后一天
  • 2020年个体税收政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号