什么是OpenGL

原创 2007年09月19日 16:47:00
OpenGL是OpenGraphicsLib的缩写,是一套三维图形处理库,也是该领域的工业标准。计算机三维图形是指将用数据描述的三维空间通过计算转换成二维图像并显示或打印出来的技术。
OpenGL就是支持这种转换的程序库,它源于SGI公司为其图形工作站开发的IRISGL,在跨平台移植过程中发展成为OpenGL。SGI在1992年7月发布1.0版,之后成为工业标准,由成立于1992年的独立财团OpenGLArchitectureReviewBoard(ARB)控制。SGI等ARB成员以投票方式产生标准,并制成规范文档(Specification)公布,各软硬件厂商据此开发自己的系统。1995年12月ARB批准了1.1版本,最新版规范是1999年5月通过的1.2.1。
OpenGL被设计成独立于硬件、独立于窗口系统,在各种操作系统的计算机上都可用的,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。
它低端应用上的主要竞争对手是微软公司的Direct3D,该图形库是以COM接口形式提供的,所以较为复杂。另外,微软公司拥有该库版权,目前只在Windows平台上可用。D3D的优势在速度上,但现在的一些低价显卡都能提供很好的OpenGL硬件加速,所以做3D使用Direct3D已没有特别的必要,在专业图形处理特别是高端应用方面,目前还没有出现以Direct3D技术为基础的例子,而游戏等低端应用也有转向OpenGL的趋势。微软在WinNT对OpenGL的支持始于3.51版,在Win9x中的支持始于Win95OEMServiceRelease2。
SGI曾经宣布研发OpenGL++,该图形库最大的特点是面向对象,提供了树形场景支持,大大减少了使用OpenGL处理复杂场景的工作量。后来SGI宣布与微软合作开发Ferihant,即Windows的下一代图形处理体系,包括DirectX与OpenGL的低级图形处理接口和以场景图支持为特点的高级接口。此举使大家都以为Windows图形处理快要过上幸福生活了,然而,不久,SGI宣布中止合作,并撤回派出的科学家,Ferihant基本上夭折。SGI称终止合作的原因是微软不肯积极合作,只想把SGI的技术合并进DirectX。
虽然早在WinNT3.51时代微软就已经实现了它的OpenGL版本,但却不肯在Win95上提供相应的支持。微软称该API适合高端应用,而Win95面向一般消费者,所以用处不大。并且在其Win3.x下开发的Wing图表库的基础上搞出了GameSDK,即后来的DirectX库,称这套库是专门为高性能游戏开发设计的。此举在当时的硬件条件下,无疑是非常有道理的,并且很快成为Windows环境下游戏开发的标准API。该库实质上是提供了绕过Windows直接访问显存的途径,从而很好地解决了GDI体系性能方面的不足,但由于是以COM接口形式提供的,所以相当复杂,而稳定性也不是很好。然而也就在这个时期,三维图形加速卡开始走向商用和家用。
之后,随着大批游戏开发人员开始多方呼吁微软积极支持OpenGL,使得微软终于在Win95的OSR2版本里集成了OpenGL,并为以前版本的Win95免费提供单独的OpenGL实现。 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

[OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

本文译自:[OPENCV QT TUTORIAL] OPENGL WIDGET TO SHOW OPENCV IMAGES IN A QT GUI (FIRST PART) 此教程是关于在Qt图形界面...

【图形学与游戏编程】开发笔记-入门篇3:d3d,opengl以及GPU

(本系列文章由pancy12138编写,转载请注明出处:http://blog.csdn.net/pancy12138) 在上一篇文章中,我们讲了一些需要的基础知识,例如c/c++,线代,window...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Android OpenGL es 纹理坐标设定与贴图规则

当opengl对一个四方形进行贴图时,会定义纹理贴图坐标,一串数组,相信初学openggl es者看到后会很头疼,不知道写得是什么东西。现在就将我的研究成果与大家分享下! 当纹理映射启动后绘图时,你...

OpenGL 01

第01课 创建一个OpenGL窗口: 在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是...

OpenGL源代码之多边形的绘制

更多精彩内容,请见:http://www.16boke.com by zxy,编程交流群:168424095 //在窗口和全屏模式下切换,按ESC退出。 #include //Windows的头文...

OpenGL导入obj文件

因为我在网上找了一些博客看了,然后最后感觉都不太像是自己想要的,然后吸取了部分,写出了一个小教程(大神勿喷),因为我是的新手,在效率方面就不太行,但是简单的obj文件能正常读取的。有什么不足,请大家告...

Core Graphics与OpenGL的关系

+demo 连接  http://blog.csdn.net/zhibudefeng/article/details/8463268 本文是《Programming iOS5》中Drawi...

Android OpenGL ES2.0

Android OpenGL ES2.0标签(空格分隔): Android openGLES2.0Android OpenGL ES20 在Manifest文件中声明使用OpenGL ES 为Open...

OpenGL Program In Windows (一)

前一阵子又搞了一些OpenGL的东西,现在来总结一些经验 首先给大家介绍的是如何在windows上搭建opengl的编程环境 我采用的是tdm-gcc + glut + glew的模式来编写openg...

TextureView+SurfaceTexture+OpenGL ES来播放视频(三)

前言讲了这么多,可能有人要问了,播放视频用个android封装的VideoView或者用MediaPlayer+SurfaceView来进行播放视频不就得了吗,干嘛还要整这么麻烦。OK,为了回答这个问...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)