欢迎光临,新启科技

IOS和Android都有很多相机美颜SDK,那么windows平台下有没有摄像头美颜功能的SDK呢

2016/11/15 16:00:16

带着这个疑问,小编查阅到OpenGL相关介绍,希望对大家有帮助

    OpenGL是个开放性的库,支持Windows、类Unix、Linux、MacOS等平台。

    OpenGL:行业领域中最为广泛接纳的2D/3D图形API,OpenGL?帮助程序员实现在PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

    OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:

    1.建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。

    2.变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、缩放、镜像四种变换,投影变换有平行投影(又称正射投影)和透视投 影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。

    3.颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。

    4.光照和材质设置:OpenGL光有自发光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和高光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

    5.纹理映射(Texture Mapping):利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。

    6.位图显示和图象增强图象功能: 除了基本的拷贝和像素读写外,还提供融合(Blending)、抗锯齿(反走样)(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。

    7.双缓存动画(Double Buffering):双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。此外,利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等特殊效果。从而实现了消隐算法。OpenGL设备运用,目前瑞芯微2918芯片和英伟达芯片Tegra2就是采用OpenGL 2.0技术进行图形处理,而基于瑞芯微2918芯片方案代表是台电T760和微蜂X7平板电脑所采用到。

    8.高级功能:OpenGL被设计为只有输出的,所以它只提供渲染功能。核心API没有 窗口系统、音频、打印、键盘/鼠标或其它输入设备的概念。虽然这一开始看起来像是一种限制,但它允许进行渲染的代码完全独立于他运行的操作系统,允许跨平 台开发。然而,有些整合于原生窗口系统的东西需要允许和宿主系统交互。这通过下列附加API实现:

    * GLX - X11(包括透明的网络)

    * WGL - Microsoft Windows

    * AGL - Apple MacOS

    另外,GLUT库能够以可移植的方式提供基本的窗口功能。

    当独立厂商创建一种新技术时,OpenGL标准允许它们通过“扩展”的方法提供所扩展的功能。然后一个扩展就分成两部分发布:包含扩展函数原型的头文件和作为厂商的设备驱动。每个厂商有一个用于命名它们的新函数和常量的字母缩写。例如,NVIDIA的缩写(“NV”)用于定义它们的专有函数“glCombinerPara-meterfvNV()”和它们的常量 “GL_NORMAL_MAP_NV”。如果多于一个厂商同意实现相同的扩展功能,那么就用缩写“EXT”。进一步,架构评审委员会可能“祝福”这个扩 展,那么这就被称为一个“标准扩展”,使用缩写“ARB”。第一个ARB扩展是GL_ARB_multitexture。根据官方扩展提升路径,多纹理不 再是可选实现的ARB扩展,它已经是OpenGL 1.4以后的核心API的一部分。几个库创建在OpenGL之上,提供了OpenGL本身没有的功能:

    1)GLU

    2)GLUT

    3)GLUI

    4)GLEW

    5)GLEE[2]  

    6)FREEGLUT(GLUT已经于1998年不再更新了。于是就有了freeglut)

    特别是,OpenGL Performer库——由SGI开发并可以在IRIX、Linux和Microsoft Windows的一些版本上使用,构建于OpenGL,可以创建实时可视化仿真程序。当开发者需要使用最新的OpenGL扩展时,他们往往需要使用GLEW或者是GLEE库提供的功能,可以在程序的运行期判断当前硬件是否支持相关的扩展,防止程序崩溃甚至造成硬件损坏。