OpenGL 库 简介

OpenGL 库 简介

       OpenGL库函数的命名方式为:<库前缀><根命令><可选的参数个数><可选的参数类型>。

库前缀有gl、glu、aux、glut、wgl、glx、agl等等,表示该函数属于OpenGL哪个库。参数的类型:I代表int型,f代表float型,d代表double型,u代表无符号整型。例如glVertex3fv()表示了该函数属于gl库,参数是3个float型参数指针。用glVertex*()来表示这一类函数。

 

 

gl

glu

aux

glut

库名称

基本库

实用库

辅助库

实用工具库

库前缀

gl

glu

aux

glut

与其它库联系

 

对gl的部分封装,提供相对简单的用法,实现一些较为复杂的操作。

 

比aux功能强大,替代aux。

函数个数

115

43

31

30多

库作用

常规的、核心的图形处理。

绘制复杂的曲线曲面、高级坐标变换、多边形分割等。

简单的窗口管理、输入事件处理、复杂3D物体绘制等。

用来打开窗口、开发和管理菜单,管理事件。

运行平台

所有

所有

aux库在windows实现有很多错误,容易导致频繁的崩溃。在跨平台的编程实例和演示中,aux很大程度上已经被glut库取代。不能在所有平台上运行。

X-Window, Windows NT, OS/2等。特别适合于开发不需要复杂界面的OpenGL示例程序。一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。

解释执行

gl.dll

glu.dll

glaux.dll

glut.dll

 

wgl

 

 

 

库名称

Windows专用库

Win32 API函数库

X窗口专用库

扩展函数库

库前缀

wgl

无专用

 

 

与其它库联系

针对windows平台的扩展。连接OpenGL和Windows,弥补OpenGL在文本方面的不足。

win32扩展函数

针对Unix和Linux的扩展函数。

 

 

函数个数

16

6

 

 

库作用

创建和选择图形操作描述表以及在窗口内任一位置显示字符位图。

处理像素存储格式和双帧缓存。

渲染上下文、绘制图元、显示列表、纹理贴图、等。

硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。

运行平台

Windows

Windows95/98/NT

 

 

解释执行

 

 

 

 

 

1、基本库(GL)

  (1)绘制基本几何图元的函数。

glBegain()、glEnd()、glNormal*()、glVertex*()。

  (2)矩阵操作、几何变换和投影变换的函数。

  矩阵入栈函数glPushMatrix(),矩阵出栈函数glPopMatrix(),装载矩阵函数glLoadMatrix(),矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()。

  (3)颜色、光照和材质的函数。

  如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。

  (4)显示列表函数。

  主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、glEndList()、glGenLists()、glCallList()和glDeleteLists()等。

  (5)纹理映射函数。

  主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。

  (6)特殊效果函数。

  融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。

  (7)光栅化、象素操作函数。

  像素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()等。

  (8)选择与反馈函数。

  主要有渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer()等。

  (9)曲线与曲面的绘制函数。

  生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*()。

  (10)状态设置与查询函数。主要有glGet*()、glEnable()、glGetError()等。

 

2、实用库(OpenGL Utility Library,GLU)

  (1)辅助纹理贴图函数。

  有gluScaleImage() 、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()等。

  (2)坐标转换和投影变换函数。

  定义投影方式函数gluPerspective()、gluOrtho2D() 、gluLookAt(),拾取投影视景体函数gluPickMatrix(),投影矩阵计算gluProject()和 gluUnProject()等。

  (3)多边形镶嵌工具。

  有gluNewTess()、 gluDeleteTess()、gluTessCallback()、gluBeginPolygon() gluTessVertex()、gluNextContour()、gluEndPolygon()等。

  (4)二次曲面绘制工具。

  主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric()等等。

  (5)非均匀有理B样条绘制工具。

  主要用来定义和绘制Nurbs曲线和曲面,包括gluNewNurbsRenderer()、gluNurbsCurve()、gluBeginSurface()、gluEndSurface()、gluBeginCurve()、gluNurbsProperty()等函数。

  (6)错误反馈工具。

获取出错信息的字符串gluErrorString()等。

 

3、辅助库(OpenGL auxiliarylibrary,GLAUX)

  (1)窗口初始化和退出函数。

auxInitDisplayMode()和auxInitPosition()。

  (2)窗口处理和时间输入函数。

auxReshapeFunc()、auxKeyFunc()和auxMouseFunc()。

  (3)颜色索引装入函数。

auxSetOneColor()。

  (4)三维物体绘制函数。

  包括了两种形式网状体和实心体,如绘制立方体auxWireCube()和 auxSolidCube()。这里以网状体为例,长方体auxWireBox()、环形圆纹面auxWireTorus()、圆柱 auxWireCylinder()、二十面体auxWireIcosahedron()、八面体auxWireOctahedron()、四面体 auxWireTetrahedron()、十二面体auxWireDodecahedron()、圆锥体auxWireCone()和茶壶 auxWireTeapot()。绘制实心体只要将上述函数中的确"Wire"更换成"Solid"就可以了。

  (5)其他。

  背景过程管理函数auxIdleFunc();程序运行函数auxMainLoop()。

 

4、OpenGL实用工具包(OpenGL Utility Toolkit,GLUT)

  (1)窗口操作函数

  窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode()、glutInitWindowSize() glutInitWindowPosition()等。

  (2)回调函数。

  响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc()、glutPostRedisplay()、glutReshapeFunc()、glutTimerFunc()、glutKeyboardFunc()、 glutMouseFunc()。

  (3)创建复杂的三维物体。这些和aux库的函数功能相同。创建网状体和实心体。如glutSolidSphere()、glutWireSphere()等。

  (4)菜单函数

  创建添加菜单的函数GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu()和glutAttachMenu()。

  (5)程序运行函数。

glutMainLoop()。

 

5、Windows专用库

  (1)绘图上下文相关函数。

wglCreateContext()、wglDeleteContext()、wglGetCurrentContent()、wglGetCurrentDC() wglDeleteContent()等。

  (2)文字和文本处理函数。

wglUseFontBitmaps()、wglUseFontOutlines()。

  (3)覆盖层、地层和主平面层处理函数。

wglCopyContext()、wglCreateLayerPlane()、wglDescribeLayerPlane()、wglReakizeLayerPlatte()等。

  (4)其他函数。

wglShareLists()、wglGetProcAddress()等。

 

6、X窗口专用库

(1)初始化

glXQueryExtension()

(2)渲染上下文函数

glXCreateContext() glXDestroyContext() glXCopyContext() glXMakeCurrent() glXCreateGLXPixmap()

(3)执行

glXWaitGL()、glXWaitX()

(4)缓冲区和字体

glXSwapBuffers()、glXUseXFont()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

figcaption html5,HTML5 figcaption 标签

实例html>html(html.cn)The Pulpit Rock is a massive cliff 604 metres (1982 feet) above Lysefjorden, opposite the Kjerag plateau, in Forsand, Ryfylke, Norway. The top of the cliff is approximately 25 by 25 metres (82 by 82 feet) square and almost flat, an…

svn代码版本管理总结

在本篇文章中, 我将会详细说明我是如何应用SVN trunk(树干)、branches(分支)和tags(标记)。这种方法同样被称为“branch always”&#xff0c;两者非常接近。可能我所介绍的并不是最好的方法&#xff0c;但是它会给新手一些解释说明&#xff0c;告诉他们trunk、branches和tags是…

C++11中enum class的使用

枚举类型(enumeration)使我们可以将一组整型常量组织在一起。和类一样&#xff0c;每个枚举类型定义了一种新的类型。枚举属于字面值常量类型。 C包含两种枚举&#xff1a;限定作用域的和不限定作用域的。这里主要介绍限定作用域的。不限定作用域的使用可以参考&#xff1a; h…

亿T算力量子计算机,终于,中国实现“量子计算优越性”,算力比最快超算快一百万亿倍...

就在今天12月4日&#xff0c;一篇由中国科学技术大学潘建伟、陆朝阳等组成的量子计算研究团队&#xff0c;发表在国际顶级科技学术期刊《Science》上的研究成果《使用光子的量子计算优势》&#xff0c;正式宣告中国终于实现了“量子计算优越性”。采用论文中所述量子技术构建的…

查找场景中的actor

UWorld* world GetWorld();for (TActorIterator<AMyActor> It(world, AMyActor::StaticClass()); It; It){AMyActor* actor *It;if (actor ! NULL){}}

Exception from HRESULT: 0x800A03EC

Exception from HRESULT: 0x800A03EC 分类&#xff1a; asp.net 2013-03-04 18:16 1191人阅读 评论(0) 收藏 举报 Exception from HRESULT: 0x800A03EC 在读取Excel文件时&#xff0c;出现这样的一个异常&#xff0c;搞很长时间&#xff0c;最后发现犯了一个愚蠢的低级错误&am…

学校计算机教室安全预案,小学校园微机室安全事故应急疏散预案

小学校园微机室安全事故应急疏散预案提要:若室内因线路故障或其它不可预知因素发生火灾时,应立即疏散学生并关闭电源,用灭火器及其它有效方法进行灭火更多文章来源自 房 地产e网小学校园微机室安全事故应急疏散预案微机室是对学生进行信息技术教学的课堂,是现代课堂教学的一个重…

uva11361数位dp

挺裸的 &#xff0c;只要注意到当k超过9*10 就直接输出0就可以了。 #include <cstdio> #include <cstring> #include <algorithm> #include <climits> #include <string> #include <iostream> #include <map> #include <cstdlib…

TArray

1. 遍历 for&#xff08;auto i : MyTArray){i-> or *i} 2 找到最大值的索引 int32 IndexOfMax(TArray<float> Array) {int32 HighestIndex 0;for (int32 Counter 0; Counter < Array.Num(); Counter){if (Counter > 0){if ([]() { return (Array[Coun…

小学数学加减法测试软件,儿童数学加法运算火箭(测试版)

儿童数字加法运算火箭是一部益智早教、启蒙幼儿学习基础算术的免费学习机&#xff0c;它可以更好的启发刚入门学习数数的宝宝&#xff0c;开拓小孩的计算思维&#xff0c;锻炼幼儿对数字的敏感性&#xff0c;让幼小的小朋友们也可以拥有超快口算、速算、心算一样的能力&#xf…

OpenGL版本与OpenGL扩展机制

1 opengl的版本区别&#xff08;在opengl官方文档中有详细说明&#xff09; 针对Opengl不同版本的升级是主要是扩展指令集。 现在版本是4.0啦 1.1 opengl1.1 1995年&#xff0c;SGI推出了更为完善的OpenGL 1.1版本。OpenGL 1.1的性能比1.0版提高甚多。其中包括改进打印…

PHP编写命令行脚本和后台运行程序的注意事项

在一些场合(如开发,测试), 可能需要使用PHP编写一些命令行的处理脚本,或者是长时间后台运行的任务, 需要注意以下准则: 准则1. 尽量避免使用PHP编写后台运行程序, 尤其是类似while(true){….} 这种循环的处理脚本. 比如,有时候我们需要定期检查数据库,然后有数据进行处理,没有数…

沃尔沃挖机计算机故障,沃尔沃挖掘机常见故障及原因总结,用户们可以看看

这是一篇关于沃尔沃挖机的常见故障及可能原因的总结送给大家 &#xff0c;希望能对沃尔沃挖机使用者提供一定的参考借鉴。一、沃尔沃210型挖机热车难启动故障现象&#xff1a;用户平时经常遇到冷车好启动、热车要打好几次才能启动。原因&#xff1a;1.可能是油泵有问题&#xf…

讲座感悟

我于周四、周五上午十点至十二点在山东大学齐鲁软件园校区圆形报告厅聆听了由Prof.Foley主持的精彩讲说&#xff0c;观看了Prof.Foley的最新研究成果以及对Computer Graphics的独到见解&#xff0c;我有如下的体会。 第一&#xff1a;计算机图形学的目标是实现与真实世界的完美…

计算机在材料中的运用结课,计算机在材料科学工程中的应用的结课论文.doc

计算机在材料科学工程中的应用的结课论文《计算机在材料科学与工程中的应用》的结课论文做为一个21世纪的大学生&#xff0c;计算机就显得尤为重要&#xff0c;而我们的本专业是21世纪的新型专业材料科学与工程&#xff0c;那么学好二者就更为重要&#xff0c;在大三我们学校给…

C#生成DLL文件

使用csc命令将.cs文件编译成.dll的过程 很多时候,我们需要将.cs文件单独编译成.dll文件, 操作如下: 打开命令窗口->输入cmd到控制台->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目…

通过live555实现H264 RTSP直播

前面的文章中介绍了《H264视频通过RTMP流直播》&#xff0c;下面将介绍一下如何将H264实时视频通过RTSP直播。 实现思路是将视频流发送给live555, 由live555来实现H264数据流直播。 视频采集模块通过FIFO队列将H264数据帧发送给live555. live555 在收到客户端的RTSP播放请求后&…

计算机网络设置端口转发,网件NETGEAR几款路由器端口转发功能设置方法

WPN824, RP614v2&#xff0c;MR814v2&#xff0c;WGR614&#xff0c;WGT624 端口转发设置实例。(以 RP614v2 为例)1. WPN824, RP614v2&#xff0c;MR814v2&#xff0c;WGR614&#xff0c;WGT624 如何设置端口转发&#xff1f; 先登陆到设备的配置截面 在‘高级选项(Advanced)’…

计算机分数的简便运算,分数的简便运算和分数的解方程

问题描述&#xff1a;分数的简便运算和分数的解方程简便运算四又十五分之八一又二十分之十三三又四分之一十-二又十二分之七-四又六分之五五又五分之二-(1.8二又四分之九)二又三分之一-1.5三又十二分之五六又十三分之五-2.375-一又八分之五3.825二又九分之四一又九分之五四又三…

OpenGL 4.0 Tutorials 第三章:初始化 OpenGL 4.0

原文地址&#xff1a; http://www.rastertek.com/gl40tut03.html Tutorial 3: Initializing OpenGL 4.0 第三章&#xff1a;初始化 OpenGL 4.0 This tutorial will be the first real introduction to working with OpenGL 4.0. We will address three main things which are …