计算机图形学,图形API发展史,OpenGL历史。
- 编辑:admin - 点击数:654计算机图形学,图形API发展史,OpenGL历史。
在1980年代,开发可与各种图形硬件配合使用的软件是一项真正的挑战。软件开发人员为每个硬件编写自定义接口和驱动程序。这个代价是昂贵的,将导致工作量成倍增加。
到1990年代初,SiliconGraphics(SGI)是工作站3D图形领域的领导者。他们的IRISGLAPI成为行业标准,比基于开放标准的PHIGS使用更广泛。
OpenGL、DirectX、Vulkan、Metal等都属于图形API,它的本质是封装好的显卡接口,用来将应用程序与显卡驱动联系起来。
目前比较常用的图形API:
OpenGL
OpenGLES
OpenCV
DirectX
Metal
Vunkan
OpenGL(OpenGraphicsLibrary),是一个跨平台、跨语言的编程图形框架,主要用于windows、mac等PC端。它将计算机资源抽象成一个个OpenGL对象,对这些资源的操作抽象为一个个OpenGL指令。
OpenGLES(OpenGLforEmbeddedSystems),OpenGL三维图像API的子集,主要是针对嵌入式设备的图形处理,比如安卓、iOS等。它在OpenGL之上去除了许多不必要的接口,以及性能较低的接口,并且兼容了GLSL着色器语法。
OpenCV(OpenSourceComputerVisionLibrary),它与OpenGL是图形API中两个大的分支,类似于iOS中的OC和swift,是两个不同的方向。OpenCV主要用于识别技术,例如人脸识别、身份识别、物体识别等,该API的使用需要与人工智能相结合。目前市面上用的最多的识别三方是face++,且是收费的,支付宝等大厂的识别功能也是集成的face++。
DirectX,仅支持Windows平台,由很多API组成,是一个多媒体处理框架,并不是单一的图形API。该框架可以大致分为4类,显示、声音、输入、网络。
Metal,是苹果为了解决3D渲染问题而推出的框架,是为游戏开发者提供的新的平台技术,并且它将3D渲染图像的性能提高了原来的10倍。苹果系统中的CoreGraphics、CoreAnimation、CoreImage框架在2018年以前是基于OpenGLES封装的,在2018年以后是基于Metal封装的。
Vunkan,VulkanAPI最初被Khronos称为“下一代OpenGL计划”,与OpenGL、Direct3D11和Metal相比,Vulkan旨在提供更高的性能和更平衡的CPU和GPU使用,并为应用程序提供相当低级别的API和并行任务。
OpenGL历史
SGI的竞争对手(包括SunMicrosystems、Hewlett-Packard和IBM)也能够将PHIGS标准扩展支持的3D硬件推向市场,这迫使SGI将IrisGL版本作为公共标准开源,称为OpenGL。
然而,SGI的许多客户从IrisGL到OpenGL的转变需要大量投资。此外,IrisGL具有与3D图形无关的API函数。例如,它包括一个窗口、键盘和鼠标API等。其原因是,它是在XWindowSystem和Sun的NeWS之前开发的。而且,由于许可和专利问题,IrisGL的库不适合开放。因此这个转变难度相当大,SGI公司付出了艰辛的努力,得到了市场的认可。
IrisGL的限制之一是它只提供对底层硬件支持的功能的访问。如果图形硬件本身不支持某个功能,则应用程序将无法使用它。OpenGL通过提供硬件不支持的功能的软件实现来克服这个问题,允许应用程序在相对低功耗的系统上使用高级图形。
OpenGL标准化了对硬件的访问,将硬件接口程序(设备驱动程序)的开发责任推给了硬件制造商,并将窗口功能委托给了底层操作系统。有了这么多不同种类的图形硬件,通过为软件开发人员提供一个用于3D软件开发的更高级别的平台,让它们以这种方式使用同一种语言产生了显着的影响。
OpenGL在1992年由SGI(SiliconGraphicsInc)发布。起初它是作为IrisGL的一个替代品而出现的。IrisGL是SGI的专用图形API,由于它有一些与3D图形无关的API以及一些专利等原因,不适合作为行业的广泛标准,于是SGI编写了规范。在之后,每隔一段时间OpenGL便会出现新的增量更新。
1992年,SGI发布了。
2003年7月,发布,它是专为手机、平板电脑、游戏主机等嵌入式系统设计的一个OpenGLAPI子集。
2004年9月,SGI发布了,这其中就有(OpenGLShadingLanguage)的面世,这是一种类C语言,可以用它对固定管线的顶点/片段着色器进行编程。与之相伴的还支持了MRT(Multiplerertargets)和NPOT(Non-power-of-twotextures)。
2006年7月,OpenGLAPI规范的控制权转交给非盈利组织Khronos团队。
2008年8月,发布,支持FBO(FramebufferObjects)以及VAO(VertexArrayObjects)等多个功能,同时支持了非常多的特性,并且从这版开始OpenGL支持了向后兼容。
2009年8月,发布,废弃了固定渲染管线,发布了核心模式(CoreProfile),这种模式的灵活性与效率更高,之后的迭代也都是基于这个核心架构,同时版本中增加了新的着色器阶段:几何着色器。
2010年3月,和一起发布,带来了新的标准规范,自此之后GLSL的版本号与OpenGL版本号保持一致,即/4.0,同时新增了曲面细分着色器。