- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenGL简介
一、OpenGL概述
OpenGL是图形硬件的一个软件接口(GL代表图形库,Graphics Library)。使用OpenGL,可以对计算机图形技术进行控制,产生逼真的现实世界的图象或虚拟的现实世界所没有的图象。OpenGL包括了大约250个不同的函数,程序员可以用这些函数指定物体和操作,创建交互性三维应用程序,而不必为许多应用程序中通用的标准函数编写代码,同时使应用程序避免接触过多的硬件细节。
OpenGL主要关注图象的渲染,即根据几何图形对象的规范及其属性,使用虚拟的照相机和光源来构成一幅图象。OpenGL是跨平台的一种应用程序接口(Application Programmers Interface, API),因此不包含输入和视窗操作。对于视窗管理,我们选用OpenGL应用工具包GLUT(OpenGL Utility Toollkit)。
OpenGL的组成
在微机版本中,OpenGL主要由三个函数库组成,它们是核心库、实用函数库和编程辅助库。
OpenGL的核心库包含了OpenGL最基本的命令函数。在这个库中,提供了一百多个函数,这些函数的函数名都以“gl”为前缀。这些函数用来建立各种各样的几何模型、进行坐标变换、产生光照效果、进行纹理映射、产生雾化效果等几乎所有的二维和三维图形操作。这一百多个基本函数由于使用各自不同的参数而导致格式的变形,派生出数百个命令。而且,对于不同的硬件和软件平台,这些函数的使用是完全相同的,这个特性决定了OpenGL的可移植性。
OpenGL的核心库提供了创建基本几何图元的函数,通过基本几何图元的各种组合创建其它几何模型,几何模型也可称为物体。为了减少编程负担,OpenGL实用函数库提供了40多个创建常用的几何对象函数,立方体、二次曲面等。OpenGL实用库中函数的函数名以“glu”为前缀,所有函数都是利用核心库中函数编写,使用方法和核心库中函数的使用方法相同。
由于OpenGL是一个图形标准,独立于任何操作系统和窗口系统,OpenGL中没有提供窗口管理和消息事件响应的函数,也没有从鼠标和键盘读取事件的功能。因此,在不同的操作系统都设计OpenGL了额外的编程辅助库 提供一些基本的窗口管理函数、事件处理函数,例如定义窗口的大小、处理键盘和鼠标事件等。Windows操作系统下的编程辅助库中函数的函数名以“aux”为前缀。这些编程辅助库是依赖于具体操作系统的,为了支持跨平台,SGI公司的Mark Kilgard编写了GLUT,GLUT中函数的函数名以“glut”为前缀。现在,在Windows操作系统GLUT已经取代了AUX库。
OpenGL的功能
1、根据几何图元创建形状,建立物体的几何模型。OpenGL中包括两种图元:几何图元和图象图元。几何图元包括:点、直线段、三角形、四边形和多边形,这些图元通过顶点指定。图象图元,例如位图。
2、在三维空间中排列物体,并选择观察复合场景的有利视角;
3、计算所有物体的颜色。颜色可以由应用程序明确指定,也可以根据特定的光照条件来确定,或通过把纹理表面贴到物体表面得到。
4、把物体的数学描述以及和它们相关的颜色信息转换为屏幕上的像素。
四、基于C语言和OpenGL的图形程序开发基础
1、基于C语言和OpenGL的图形程序结构:根据需要在C语言程序中嵌入OpenGL命令。
2、程序中一般包括以下三个部分:
(1)应用程序初始化;
(2)生成并绘制图象;
(3)main函数中调用(1)和(2)中的函数。
3、OpenGL命令格式和数据类型
OpenGL命令就是OpenGL中的函数调用,命令名称就是函数名,命令中的参数就是函数调用所需的参数。
OpenGL函数命名约定:函数名饿头几个字母说蜜柑内该函数来自哪个库,后面部分包含一个根命令,一般是一个英文单词(第一个字母必须大写),表示该函数的功能,后缀中的数字和字母分别表示参数的个数和类型。例如:
命令glColor3f(1.0,1.0,1.0);
前缀“gl”表示该函数属于核心库,“Color”表示该命令的功能为着色,“3f”表示该命令有三个参数,参数类型为浮点数,(1.0,1.0,1.0)是函数调用时的具体参数,最后的分号“;”是C语言格式中所要求的。如果OpenGL命令的后缀有一个字母“v”,表示该命令有一个指向矢量或数组的指针参数,例如:
GLfloat color[ ]={1.0,1.0,1.0}; //说明一个浮点型的数组color,GLfloat是数据类型
glColor3fv(color); //数组color 作为参数
OpenGL命令中的参数个数可能使个、3个或4个,参数类型见下表:
OpenGL命令后缀及对应的数据类型
OpenG
您可能关注的文档
最近下载
- JB_T 6103.2-2017型材卷弯机 第2部分:技术条件.pdf
- Unit 1 I love sports(单元测试 基础卷)英语外研版三起四年级上册(新教材).docx
- 个人防护用品试卷及答案.pdf VIP
- 智能化矿山安全管理问题与应对策略的探讨.docx VIP
- 客运专线活性粉末混凝土(RPC)材料人行道挡板、盖板暂行技术条件.doc VIP
- 2021年考研英语5500词汇表.pdf VIP
- (完整)SF-36评分完整版.doc VIP
- 铁血将军、建军元勋——叶挺 (1)讲解.ppt VIP
- 1成都城市安全风险信息管理系统用户手册-单位端V1.0.docx VIP
- 监理实施细则范本(房建).docx VIP
文档评论(0)