位置: 编程技术 - 正文

OpenGL编程逐步深入(一)创建一个窗口(opengl gpu编程)

编辑:rootadmin

推荐整理分享OpenGL编程逐步深入(一)创建一个窗口(opengl gpu编程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl编程基础,opengl例程,opengl编程实例,opengl编程语言,opengl 编程,opengl编程实例,opengl 编程,opengl编程基础,内容如对您有帮助,希望把文章链接给更多的朋友!

原文地址: 原文中使用gnu make进行项目管理,本系列文章使用visual studio。在翻译过程中并非直译,加入了一些笔者个人观点。

OpenGl官方使用规范中并没有提供创建和操作窗口的API,目前像window、linux等支持图形化界面的操作系统都支持OpenGl,提供一个与OpenGl上下文绑定的窗口系统。例如在X window中可以使用GLX创建窗口,Windows平台和MacOS平台则可以分别使用WGL、CGL。直接使用这些接口创建窗口并显示图形是非常繁琐的,通常第三方库来创建图形应用,在此系列文章中我们使用的是GLUT(OpenGl utility libray),它提供的API能够很方便的进行窗口管理、事件处理、输入输出控制等。另外GLUT的跨平台特性使得程序具有更好的移植性。

准备工作VS下载安装: 下载地址: 2.在项目上点击右键,打开属性页在vc++目录中的包含目录中添加$(SolutionDir)Include路径;在库目录中添加$(SolutionDir)Lib路径。在链接器->输入->附加依赖项中添加freeglut.lib。

创建窗口代码解读:

glutInit(&argc, argv);

该函数用于初始化GLUT,可以通过控制台命令行向glut传递参数,调试程序时可以输入’-gldebug’参数,还可以用来控制GLUT的一些属性,例如’-sync’。

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

通过这个函数我们可以配置GLUT的一些选项,GLUT_DOUBLE表示使用双缓存机制(上一帧图形显示时,下一帧图形先在缓存区中绘制), GLUT_RGBA指定使用RGBA模式的窗口。

OpenGL编程逐步深入(一)创建一个窗口(opengl gpu编程)

这一组函数用于说明窗口创建的参数,分别指定窗口的尺寸,位置,标题。

由于工作在窗口系统中,大部分和程序的交互都是通过事件回调函数来完成。GLUT较为注重和底层窗口系统交互,并为我们提供了一些回调的选择,在这里我们仅仅使用一个主回调方法来完成所以的渲染工作。

在这里我们将会第一次接触OpenGl状态的概念。渲染是一项非常复杂的任务,无法通过调用函数,多接收几个参数就能完成,还要指定着色器,缓冲区和一些相关的标志位。而且,有时候多个渲染操作需要保持相同的配置。这就是为什么大多数渲染操作的配置都是通过设置OpenGl状态机中标志位的值来完成的原因。在调用改变状态的函数之后,一些相关配置的值保持不变,直到下一次调用改变该配置值的函数。 此函数设置的颜色会在清除帧缓存时使用,该颜色有四个通道(RGBA),值必须在0.0和1.0之间。

调用该函数开始GLUT内部循环,监听Windows系统事件,调用用户指定的回调函数。在本案例中,我们通过glutDisplayFunc注册了RenderSceneCB函数进行渲染。

在渲染函数中我们所做的仅仅是调用glClear函数清除帧缓存(使用glClearColor指定的颜色),glutSwapBuffers函数用于交互前台缓存区和后台缓存区,在下一轮渲染回调中后台缓存区中的图形会在屏幕中显示出来。

编译运行

编译运行程序发现一个黑色背景的窗口创建成功。

程序源码下载:

OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍 模型变换、视图变换、投影变换、视口变换介绍opengl中存在四种变换,分别是模型变换,视图变换,投影变换,视口变换。这四种变换是图形渲染的基

UIView基类的简述 UIView1.定义UIView类定义了一块在屏幕上的一块矩形区域并提供了一系列用来管理矩形区域内容的接口,即在程序运行时,一个创建的UIView对象不仅负责显

【Cocos2d-x】图片描边的一种比较好的shader实现方法 图片描边需求如下:1.可指定描边宽度2.可指定描边颜色3.可用于字体图片描边我所知道的方式有以下几种:1.Cocos2d-x3.x中,字体用FreeType库,字体描边可

标签: opengl gpu编程

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

上一篇:解决安装OpenGL时程序运行提示glut32.dll丢失的问题(opengl安装教程)

下一篇:OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍(opengl入门视频教程)

  • 汇算清缴补交所得税会计分录小企业会计政策
  • 进项税额转出时点
  • 税收实体法有哪18种
  • 中标服务费可否开发票
  • 电子税务局税种认定怎么操作
  • 小企业会计准则调整以前年度费用分录
  • 住房公积金个人和单位各承担多少
  • 退回产品怎么做分录
  • 红冲去年的收入怎么做账
  • 集团内部拨付的研发经费如何核算?
  • 收到外币计算税款的汇率是怎么算的?
  • 房屋租赁补充协议怎么写才有效
  • 减免税费期末如何结转
  • 农产品收购发票上的买价含税吗
  • 什么称为非正数
  • 旅游合同签订
  • 公司的招标代理费计入什么科目
  • 有限公司属于什么企业
  • 季度所得税预缴税款表中主营业务成本是否包含管理费用
  • 借其他应收贷应付
  • 涂料厂生产销售的涂料要交消费税吗
  • 进项税额大于销项税额怎么办
  • 产品维修运费谁出
  • 客户分批付款怎么说
  • 苹果电脑初始化设置
  • 关闭系统保留空间
  • 主管会计的具体工作
  • 企业违章行为
  • 怎么取消网络手动连接
  • php图片处理尺寸
  • 所得税费用怎么缴纳
  • fsmb32.exe是什么进程 作用是什么 fsmb32进程查询
  • 股份支付有哪些基本类型
  • 苹果手机最贵的软件是哪个
  • jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例)
  • 资产减值损失的计算公式
  • 自动驾驶的时候可以睡觉吗
  • ChatGPT-Next-Web:Vercel 和 Cloudflare 的快速部署
  • 基于YOLOv5的中式快餐店菜品识别系统
  • css字体设置渐变色
  • 长期借款的主要缺点
  • 股权转让协议受让方应注意
  • python中的split函数
  • 受托加工的物资是存货吗
  • 个人发票抬头和税号是什么
  • 小规模纳税人企业所得税优惠政策最新2023
  • 政府收购企业的流程
  • 财政拨入的专项款专账怎么做
  • 出差补助是否计入工资总额
  • 计提工资是计提哪个月的
  • 一般纳税人开劳务发票税率
  • 什么样的纳税人属于小规模纳税人
  • 付当月房租怎么做分录
  • 债权方的视同购进怎么会计处理?
  • 捐赠出去的固定资产需要继续折旧吗
  • ca证书费用计入什么科目
  • 固定资产处置如何申报企业所得税
  • 进项税额抵扣是按税率分开抵扣吗
  • 金税盘的维护费每年怎么抵扣
  • 营业外收入明细账图片
  • 应发和实发工资账务处理
  • 会计档案销毁方案怎么写
  • 图文详解管道支架制作安装标准
  • sql2000语句
  • 在windows上装ubuntu
  • 设置centos时区修改时间的方法
  • centos云服务器
  • freebsd使用
  • win7卸载系统软件
  • 万能重装系统
  • proflwiz.exe - proflwiz是什么进程 有什么用
  • w10 2021年更新
  • 桌面美化助手
  • centos安装软件教程
  • win7彻底删除的文件怎么恢复
  • 苹果多点触控
  • 简单介绍自己的名字由来
  • python接口编写
  • jquery prototype
  • 郑州房产交契税在哪里交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设