位置: 编程技术 - 正文

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)

  • 营业外收支的账务处理
  • 已申报税额是指啥
  • 公司欠款利息收入需要交增值税吗?
  • 收到所得税退税会计怎么记账
  • 收回个人社会保险费是否可以冲红管理费用
  • 工程结算开票金额与付款金额区别
  • 所得税汇算清缴时间期限
  • 新领的发票怎么导入uk开票系统
  • 摊销制造费用如何结转做会计分录呢?
  • 因保管不善,不慎遗失
  • 制造费用结转生产成本金蝶怎么操作
  • 在建工程购买的设备计入哪个科目
  • 医院其他收入包括哪些项目
  • 普票3点怎么算
  • 生活服务的发票可以报销吗
  • 文化建设事业费优惠政策
  • 旅行社差额征收的会计处理
  • 资产负债表应交税费计算公式
  • 公司收到纸质承兑不开票行吗
  • 能抵扣税款的发票有哪些
  • 公司注销时债权人未申报债权
  • 单位为员工支付医疗费
  • 利息收入会计如何做账
  • 产生的投资收益怎么算
  • 票据质押出票如何操作
  • 赠与合同任意撤销与法定撤销的区别
  • 如何免费获取win11
  • 在win7系统中怎样卸载win10?
  • php的用处
  • neoDVD.exe - neoDVD是什么进程 有什么用
  • 邮政电信卡
  • 企业盘盈资产开什么发票
  • 本季度企业所得税
  • phpopendir
  • 前端工程搭建
  • 扩散分类
  • 车船税每年都要多少钱
  • 购进免税农产品进项税额转出
  • 工会经费的来源包括
  • 什么情况下开劳务费发票
  • 企业送的购物卡怎么退回去
  • java hash()
  • 个体户逾期未报年报后补报了怎么办
  • mysql binlog dump
  • 一般纳税人不开票收入怎么做账
  • 单位食堂不对外营业需不需要办理经营许可证
  • 个人所得税的减免政策有哪些
  • 银行共管账户怎么提款
  • 所得税费用科目的期末余额应直接转入
  • 专利技术评估价值7亿
  • 带抵扣进项分录
  • 配件销售人员应该具备哪些能力
  • 进项税额转出的几种情况
  • 开票金额和税款的关系
  • 建筑企业工程施工科目怎么结转
  • 利润表里公允价值变动损益怎么算
  • ubuntu dde
  • ubuntu20.04快捷键
  • xp装windows7
  • win 8系统怎么样
  • 通知栏图标怎么变小
  • win8免密码登录
  • linux 磁带机
  • script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本
  • 怎样用在js中使用css的内容
  • jquery jsonview
  • jQuery Easyui datagrid editor为combobox时指定数据源实例
  • oracle安装使用
  • 批处理重启后继续运行
  • androidstudio 教程
  • 静态文件格式有哪些
  • js自定义指令
  • python爬虫:入门+进阶
  • 安卓Android下载
  • 用jquery实现图片轮播
  • 每天一篇文章锻炼口才的文章
  • 税务工作意见和建议
  • 关于涉访涉诉终结的规定
  • 在发票软件里开出发票第二天打印可以么?
  • 新版零申报印花税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设