位置: 编程技术 - 正文

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)

  • 运费收入算销售收入吗
  • 公积金贷款金额少怎么办
  • 个人独资企业转个体户怎么办理
  • 通行费电子发票可以抵扣吗
  • 专用基金计入什么科目
  • 完工绿化苗木怎样结转成本?
  • 收就业局稳岗补贴做账
  • 冲销应收账款会引起
  • 盘亏材料10000元,可以回收的保险赔偿
  • 维修房产用的建材会计分录
  • 企业计提短期借款利息费用应贷记的会计科目是
  • 公司团建活动奖状模板
  • 3%增值税率包括哪些
  • 一般纳税人开普票要交税吗
  • 充值单据怎么开发票
  • 更正申报以前个税的处理方法
  • 转让知识产权的本人申明
  • 出售固定资产增值税税率最新2022
  • 华为手机屏幕变成黑白怎么调回来
  • php缓存机制有哪些
  • 谈谈你对人民美好生活的理解
  • win71
  • 企业间实物交易是指
  • 公司向职工借款利息需要交税吗
  • 栖息在树林中
  • 临时经营如何纳税
  • Pytorch DataLoader中的num_workers (选择最合适的num_workers值)
  • svg图形是什么
  • 如何修改家里的wifi密码
  • php面向对象的三大特性
  • 捐赠所得属于什么会计科目
  • 报销钱大写数字
  • 加计抵减和加计扣除是一样的吗
  • 深入理解ts
  • nodejs搭建http服务器接收请求
  • php array_product
  • linux mail命令详解
  • ufw 设置
  • 企业所得税包含在税金及附加里面吗
  • 公司卖地如何交税
  • 城镇土地使用税征收标准及计算方法
  • 增值税普通发票有什么用
  • phpcms不支持https怎么办
  • 资金账簿印花税按年还是按次
  • Mysql创建通用设备管理信息系统数据库
  • 幼儿园账务处理实务
  • 新公司固定资产盘点总结
  • 农村的扶贫政策是什么
  • 小规模开具的1%专票 一般纳税人抵扣
  • 出口退税转为免税处理有损失吗
  • 处置固定资产的增值税怎么处理
  • 会计岗位职责风险点及防控措施
  • mysql unique option prefix myisam_recover instead of myisam-recover-options的解决方法
  • 连接mysql数据的四要素
  • windows隐藏文件名
  • win097
  • linux开机启动ftp
  • 戴尔dell服务器维修
  • linux网络编程视频教程
  • centos 终端
  • window 8
  • linux指令系统
  • 2021年win10新系统版本
  • 上帝模式使用教程
  • rpm的安装
  • [置顶] 《借.住.情.缘》
  • jqueryvalidate验证
  • jquery validate
  • shell入门
  • 如何自动更正
  • border-radius在Android下的几个BUG
  • 刮刮奖软件下载
  • js函数总结
  • jquery入门
  • dom,ran
  • 电子税务局房产税税源信息采集
  • 广州车辆购置税官网
  • 江苏电子税务局社保缴费查询网站
  • 国家税务总局令第52号 ,税务稽查案件办理程序规定
  • 公车补贴计入工资吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设