openGL 是什么软件

openGL 是什么软件,第1张

分类: 电脑/网络 >>软件

解析:

OpenGL三维图形标准是由AT&T公司UNIX软件实验室、IBM

、DEC、SUN、HP、Microsoft和SGI等多家公司在GL图形库标准的基础

上联合推出的开放式图形库,它使在微机上实现三维真实

感图形的生成与显示成为可能。由于OpenGL是开放的图形标

准,用户原先在UNIX下开发的OpenGL图形软件很容易移植到微

机上的WindowsNT/95上。笔者在VisualC++4.1(以下简称VC)集

成环境下,开发了基于OpenGL的三维真实感图形应用程序,现

介绍如下。

微机上的OpenGL开发环境

基于OpenGL标准开发的应用程序必须运行于32位Windows

平台下,如WindowsNT或Windows95环境;而且运行时还需有动态

链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装WindowsNT时已

自动装载到C:\WINNT\SYSTEM32目录下(这里假定用户将WindowsNT

安装在C盘上);而对于使用Windows95平台的用户,则需手工将

两个动态库复制到Windows95目录的SYSTEM子目录中。安装了

WindowsNT/95和VC4.1后,用户就具备了基于OpenGL开发三维图

形软件的基本条件。

OpenGL程序设计的基本步骤

1.OpenGL在WindowsNT下的运行机制

OpenGL工作在客户机/服务器模式下,当客户方(即基

于OpenGL标准开发的应用程序)向服务器(OpenGL核心机制)发出

命令时,由服务器负责解释这些命令。通常情况下,客户方

和服务器是运行在同一台微机上的。由于OpenGL的运行机制

是客户机/服务器模式,这使得用户能够十分方便地在网

络环境下使用OpenGL,OpenGL在WindowsNT上的这种实现方式通常

称为网络透明性。

OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,

客户机中的所有OpenGL函数调用,都被传送到服务器上,由

WinSrv.DLL实现功能,再将经过处理的指令发送到Win32设备驱

动接口(DDI),从而实现在计算机屏幕上产生图像。

若使用OpenGL图形加速卡,则上述机制中将添加两个

驱动器:OpenGL可装载客户模块(OpenGLICD)将安装在客户端;硬

件指定DDI将安装在服务器端,与WinDDI同一级别。

2.OpenGL的库函数

开发基于OpenGL的应用程序,必须先了解OpenGL的库函

数。OpenGL函数命令方式十分有规律,每个库函数均有前缀gl

、glu、aux,分别表示该函数属于OpenGL基本库、实用库或辅助

库。WindowsNT下的OpenGL包含了100多个核心函数,均以gl作为前

缀,同时还支持另外四类函数:

OpenGL实用库函数:43个,以glu作为前缀;

OpenGL辅助库函数:31个,以aux作为前缀;

Windows专用库函数(WGL):6个,以wgl作为前缀;

Win32API函数(WGL):5个,无前缀。

OpenGL的115个核心函数提供了最基本的功能,可以实

现三维建模、建立光照模型、反走样、纹理映射等;OpenGL实

用库函数在核心函数的上一层,这类函数提供了简单的调

用方法,其实质是调用核心函数,目的是减轻开发者的编程

工作量;OpenGL辅助库函数是一些特殊的函数,可以供初学者

熟悉OpenGL的编程机制,然而使用辅助库函数的应用程序只

能在Win32环境中使用,可移植性较差,所以开发者应尽量避

免使用辅助库函数;Windows专用库函数(WGL)主要针对WindowsNT

/95环境的OpenGL函数调用;Win32API函数用于处理像素存储格

式、双缓存等函数调用。

3.VC环境下基于OpenGL的编程步骤

下面介绍在VC环境中建立基于Opeetting菜单选项,在Link栏的Lib输入域中

添加openg132.lib、glu32.lib,若需使用OpenGL的辅助库函数,则还

需添加glaux.lib。

(3)选择View/ClassWizard菜单选项,打开MFC对话框,在

ClassName栏中选择CMyTestView类,进行以下 *** 作:

选择WM_CREATE消息,鼠标单击EditCode,将OpenGL初始化代码

添加到OnCreate()函数中:

/*定义像素存储格式*/

PIXELFORMATDESCRIPTORpfd=

{

sizeof(PIXELFORMATDESCRIPTOR),

1,

PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL,

PFD_TYPE_RGBA,

24,

0,0,0,0,0,0,

0,0,0,0,0,0,0

32,

0,0,

PFD_MAIN_PLANE,

0,

0,0,0,

}

CCLientdc(this)

intpixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd)

BOOLsuccess=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd)

m_hRC=wglCreateContext(dc.m_hDC)

选择WM_DESTORY消息,在OnDestory()中添加以下代码:

wglDeleteContext(m_hRC)

在MyTestView.cpp中,将以下代码添加到PreCreateWindows()函数中:

cs.style|=WS_CLIPCHILDREN|WS_CLIPSIBLINGS;

OpenGL只对WS_CLIPCHILDREN|WS_CLIPSIBLINGS类型窗口有效;

在MyTestView.cpp中,将以下代码添加到OnDraw()函数中:

wglMakeCurrent(pDC->m_hDC,m_hRC)

DrawScene()//用户自定义函数,用于绘制三维场景;

wglMakeCurrent(pDC->m_hDC,NULL)

在MyTestView.cpp中,添加成员函数DrawScene():

voidCMyTestView::DrawScene()

{/*绘制三维场景*/}

(4)在MyTestView.h中包含以下头文件并添加类成员说明:

#include

#include

#include

在CTestView类中的protected:段中添加成员变量声明:

HGLRCm_hRC

同时添加成员函数声明:

DrawScene()

这样,一个基于OpenGL标准的程序框架已经构造好,用

户只需在DrawScene()函数中添加程序代码即可。

建立三维实体模型

三维实体建模是整个图形学的基础,要生成高逼真

度的图像,首先要生成高质量的三维实体模型。

OpenGL中提供了十几个生成三维实体模型的辅助库函

数,这些函数均以aux作为函数名的前缀。简单的模型,如球

体、立方体、圆柱等可以使用这些辅助函数来实现,如

auxWireSphere(GLdoubleradius)(绘制一半径为radius的网状球体)。

但是这些函数难以满足建立复杂三维实体的需要,所以用

户可以通过其它建模工具(如3DS等)来辅助建立三维实体模

型数据库。笔者在三维实体的建模过程中采用3DS提供的2D

Shape、3DLofter和3DEditor进行模型的编辑,最后通过将模型数

据以DXF文件格式输出存储供应用程序使用。

真实感图形的绘制

1.定义光照模型和材质

(1)光源。OpenGL提供了一系列建立光照模型的库函

数,使用户可以十分方便地在三维场景中建立所需的光照

模型。OpenGL中的光照模型由环境光(AmbientLight)、漫射光

(DiffuseLight)、镜面反射光(SpecularLight)等组成,同时还可设

置光线衰减因子来模拟真实的光源效果。

例如,定义一个黄色光源如下:

GlfloatLight_position[]={1.0,1.0,1.0,0.0,}

GlfloatLight_diffuse[]={1.0,1.0,0.0,1.0,}

glLightfv(GL_LIGHT0,GL_POSTTION,light_position)//定义光源位置

glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse)//定义光源漫射光

光源必须经过启动后才会影响三维场景中的实体,可以通过以下指令使光源有效:<

glEnable(LIGHTING)//启动光照模型;

glEnable(GL_LIGHT0)//使光源GL_LIGHT0有效;

OpenGL中一共可以定义GL_LIGHT0~GL_LIGHT7八个光源。

(2)材质。OpenGL中的材质是指构成三维实体的材料在

光照模型中对于红、绿、蓝三原色的反射率。与光源的定义

类似,材质的定义分为环境、漫射、镜面反射成分,另外还

有镜面高光指数、辐射成分等。通过对三维实体的材质定义

可以大大提高应用程序所绘制的三维场景的逼真程度。例

如:

/*设置材质的反射成分*/

GLfloatmat_ambient[]={0.8,0.8,0.8,1.0};

GLfloatmat_diffuse[]={0.8,0.0,0.8,1.0}/*紫色*/

GLfloatmat_specular[]={1.0,0.0,1.0,1.0}/*镜面高光亮紫色*/

GLfloatmat_shiness[]={100.0}/*高光指数*/

glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient)/*定义环境光反射率*/

glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse)/*定义漫射光反射率*/

glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular)/*定义镜面光反射率*/

glMaterialfv(GL_FRONT,GL_SHINESS,mat_shiness)/*定义高光指数*/

(3)材质RGB值与光源RGB值的关系。OpenGL中材质的颜色

与光照模型中光源的颜色含义略有不同。对于光源,R、G、B

值表示三原色在光源中所占有的比率;而对于材质定义,R、

G、B的值表示具有这种材质属性的物体对于三原色的反射

比率,场景中物体所呈现的颜色与光照模型、材质定义都相

关。例如,若定义的光源颜色是(Lr,Lg,Lb)=(1.0,1.0,1.0)(白光),

物体的材质颜色定义为(Mr,Mg,Mb)=(0.0,0.0,0.8),则最终到达人

眼的物体颜色应当是(Lr*Mr,Lg*Mg,Lb*Mb)=(0.0,0.0,0.8)(蓝色)。

2.读取三维模型数据

为了绘制三维实体,我们首先必须将预先生成的三

维实体模型从三维实体模型库中读出。下图描述了读取三

维实体模型的流程。

3.三维实体绘制

由于3DS的DXF文件中对于三维实体的描述是采用三角

形面片逼近的方法,而在OpenGL函数库中,提供了绘制三角形

面片的方法,所以为三维实体的绘制提供了方便。以下提供

了绘制三角形面片的方法:

glBegin(TRANGLES)//定义三角形绘制开始

glVertexf((GLfloat)x1,(GLfloat)y1,(GLfloat)z1)//第一个顶点

glVertexf((GLfloat)x2,(GLfloat)y2,(GLfloat)z2)//第二个顶点

glVertexf((GLfloat)x3,(GLfloat)y3,(GLfloat)z3)//第三个顶点

glEnd()//绘制结束

为了提高三维实时动画的显示速度,我们利用了

OpenGL库中的显示列表(DisplayList)的功能,将三维场景中的实

体分别定义为单独的显示列表,预先生成三维实体。在图形

显示时,只需调用所需的显示列表即可显示相应的三维实

体,而不需要重新计算实体在场景中的坐标,避免了大量的

浮点运算。在调用显示列表前所作的旋转、平移、光照、材

质的设定都将影响显示列表中的三维实体的显示效果。具

体实现算法如下:

for(ObjectNo=0ObjectNo<实体个数ObjectNo++)

{

glNewList(ObjectNo,GL_COMPILE)//创建第ObjectNo个实体的显示列表

for(Fac

OpenGL是OpenGraphicsLib的缩写,是一套三维图形处理库,也是该领域的工业标准。

计算机三维图形是指将用数据描述的三维空间通过计算转换成二维图像并显示或打印出来的技术。

OpenGL就是支持这种转换的程序库,它源于SGI公司为其图形工作站开发的IRIS GL,在跨平台移植过程中发展成为OpenGL。SGI在1992年7月发布1.0版,后成为工业标准,由成立于1992年的独立财团OpenGL Architecture Review Board (ARB)控制。SGI等ARB成员以投票方式产生标准,并制成规范文档(Specification)公布,各软硬件厂商据此开发自己系统上的实现。只有通过了ARB规范全部测试的实现才能称为OpenGL。1995年12月ARB批准了1.1版本,最新版规范是1999.5通过的1.2.1。

OpenGL被设计成独立于硬件,独立于窗口系统的,在运行各种 *** 作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。它低端应用上的主要竞争对手是MS-Direct3D,该图形库是以COM接口形式提供的,所以极为较复杂,稳定性差,另外微软公司拥有该库版权,目前只在Windows平台上可用。D3D的优势在速度上,但现在低价显卡都能提供很好的OpenGL硬件加速,所以做3D使用Direct3D已没有特别的必要,在专业图形处理特别是高端应用方面目前还没有出现以Direct3D技术为基础的例子,而游戏等低端应用也有转向OpenGL的趋势。

微软在Windows NT对OpenGL的支持始于3.51,在Windows9x中的支持始于Win95 OEM Service Release 2。Windows下常用的OpenGL库有两种,MS实现的和SGI实现的,MS-OpenGL调用会自动检测是否存在显示卡制造商提供的ICD(Installable Client DeviceDriver)驱动程序,有则调用ICD中的例程,否则才用CPU进行计算,所以能利用显示卡的OpenGL加速能力。对开发者来说使用方法并没有区别,只是有ICD驱动时更快些。SGI的版本是纯软件实现不能利用硬件加速并且SGI已经在1999年宣布停止支持,但这套库便于调试程序,仍有不少开发者使用。

近日SGI宣布与Intel联手针对当前及未来IA体系的Internet流化SIMD扩展优化OpenGL。这显然意味着OpenGL未来在intel体系及internet应用领域将大放光彩。

SGI曾经宣布研发OpenGL++,该图形库最大的特点是面象对象,提供了树形场景支持,大大 ×耸褂肙penGL处理复杂场景的工作量。后来(1999)SGI宣布与M$合作开发Ferihant,即Windows的下一代图形处理体系,包括DirectX与OpenGL的低级图形处理接口和以场景图支持为特点的高级接口,并且就此停止对其在Windows下的OpenGL实现的支持以示决心。此举世瞩目,大家都以为Windows图形处理快要过上幸福生活了,然而,不久,SGI宣布中止合作,并撤回派出的科学家,Ferihant基本上夭折。SGI 称终止合作的原因是M$不肯积极合作,光想把SGI 的技术合并进DirectX,真正内幕不详。不过以SGI在图形处理界的老大地位来说,还是有几分可信度的,因为M$初支持OpenGL就不积极。

虽然早在WinNT3.51 时代M$就已经实现了它的OpenGL 版本,但不肯随其Windows95 时提供,称该API 适合高端应用,而Win95面向一般消费者的用不到,并且在其win3.x下开发的wing 图表库的基础上搞出了GameSDK,即后来的DirectX 库,称这套库是专门为高性能游戏开发设计的,在当时的硬件条件下,这无疑是非常有道理的,并且很快成为Windows环境下游戏开发的标准API 。该库实质上是提供了绕过Windows 直接访问显存的途径,从而很好的解决了GDI 体系性能方面的不足,但由于是以COM接口形式提供的,所以相当复杂,而稳定性也不是很好,所以有人称Direct3D 是为追求速度而不择手段的公司才用的。然而也就在这个时期,三维图形加速卡开始走向商用和家用,也就是在这时期S3公司以其性价比极高的带三维图形加速的显示芯片、板卡向当时Trident 公司的霸主地位发起了挑战。另外这时实时三维游戏开始流行,以Dos 下的第一人称射击游戏——暗杀希特勒(3d worlf) 大获成功、红极一时ID Software 的开始铸辉煌,推出了Doom 、Quake1 ,相信这两个名字在今天(2000.4) 的游戏圈子里应该是无人不知无不晓吧?1996.12.ID Software 的高手John Carmack 在开发下一代三维图形引擎时在其.plan 中写上了以下字句:

Direct-3D IM is a horribly broken API. It inflicts great pain and suffering on the programmers using it, without returning any significant advantages. I don’t think there is ANY market segment that D3D is apropriate for, OpenGL seems to work just fine for everything from quake to softimage. There is no good technical reason for the existance of D3D.

I’m sure D3D will suck less with each forthcoming version, but this is an oportunity to just bypass dragging the entire development community through the messy evolution of an ill-birthed API.

此后以他为代表的一大批游戏开发人员开始多方呼吁MS积极支持OpenGL。M$终于在Win95的OSR2版本里集成了OpenGL,并为以前版本的Win95免费提供单独的OpenGL实现。(或许您还不了解这些人的影响力,不知道您听说过以生产Voodoo系统图形加速卡而著称于世的3dfx公司吗?当年Quake的开发者不肯用Voodoo的glide API对voodoo做优化版本,差点没把3dfx吓蒙,于是赶紧搞了一个针对游戏的OpenGL子集:MiniGL,让ID Software的人只要在制作OpenGL时只使用MiniGL API做过优化就成,这样Quake总算可以用上voodoo的硬件加速能力了。这样也造就了一个新名词:MCD--MiniGL Client Driver,用于Windows的MiniGL驱动程序,而标准的OpenGL则依靠ICD驱动)。

OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。

[1]OpenGL™ 是行业领域中最为广泛接纳的 2D/3D 图形 API, 其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL™ 是独立于视窗 *** 作系统或其它 *** 作系统的,亦是网络透明的。在包含CAD[2]、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL™ 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD[2]、3DS/3DSMAX[3]等3D图形设计软件制作的DXF和3DS模型文件转换成OpenGL的顶点数组。

在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3DLabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商和用户的认知程度并不高,未来的OpenGL发展前景迷茫。

发展历程

1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。

1995年OpenGL的1.1版本面市,该版本较1.0性能提高许多,并加入了一些新的功能。包括提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。

1997年,Windows 95下3D游戏的大量涌现,游戏开发公司迫切需要一个功能强大、兼容性好的3D图形接口,而当时微软公司自己的3D图形接口DirectX 3.0功能却是很糟糕。因而以制作《雷神之锤》等经典3D射击游戏而著名的id公司同其它一些游戏开发公司一同强烈要求微软在Windows 95中加入对OpenGL的支持。微软公司最终在Windows 95的OSR2版和后来的Windows 版本中加入了对OpenGL的支持。这样,不但许多支持OpenGL的电脑3D游戏得到广泛应用,而且许多在3D图形设计软件也可以运用支持OpenGL标准的3D加速卡,大大提高其3D图形的处理速度。

2003年的7月28日,SGI和ARB公布了OpenGL 1.5。OpenGL 1.5中包括OpenGL ARB的正式扩展规格绘制语言“OpenGL Shading Language”。OpenGL 1.5的新功包括:顶点Buffer Object、Shadow功能、隐蔽查询、非乘方纹理等。

2004年8月,OpenGL2.0版本发布~OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。OpenGL2.0支持OpenGL Shading Language、新的shader扩展特性以及其他多项增强特性。

2008年8月初Khronos工作组在Siggraph 2008大会上宣布了OpenGL 3.0图形接口规范,GLSL1.30 shader语言和其他新增功能将再次未来开放3D接口发展指明方向。

OpenGL 3.0 API开发代号为Longs Peak,和以往一样,OpenGL 3.0仍然作为一个开放性和跨平台的3D图形接口标准,在Shader语言盛行的今天,OGL3.0增加了新版本的shader语言:GLSL 1.30,可以充分发挥当前可编程图形硬件的潜能。同时,OGL3.0还引入了一些新的功能,例如顶点矩阵对象,全帧缓存对象功能,32bit浮点纹理和渲染缓存,基于阻塞队列的条件渲染,紧凑行半浮点顶点和像素数据,四个新压缩机制等等。

2009年3月又公布了升级版新规范OpenGL 3.1,也是这套跨平台免费API有史以来的第九次更新。OpenGL 3.1将此前引入的OpenGL着色语言“GLSL”从1.30版升级到了1.40版,通过改进程序增强了对最新可编程图形硬件的访问,还有更高效的顶点处理、扩展的纹理功能、更d性的缓冲管理等等。宽泛地讲,OpenGL 3.1在3.0版的基础上对整个API模型体系进行了简化,可大幅提高软件开发效率。

2009年8月Khronos小组发布了OpenGL 3.2,这是一年以来OpenGL进行的第三次重要升级。该版本仍然延续了OpenGL发展的方向让图形程序开发者能在多种 *** 作系统和平台下更好的利用新的GPU功能。OpenGL3.2版本提升了性能表现、改进了视觉质量、提高了几何图形处理速度,而且使Direct3D程序更容易移植为OpenGL。除OpenGL之外,Khronos还将其开发的其它标准进行了协调改进,以求可以在更广泛的领域提供强大的图形功能和计算生态系统,这些标准包括用于并行计算的OpenCL、用于移动3D图形开发的OpenGL ES和用于网络3D开发的WebGL。

2010年7月26日发布OpenGL 4.1和OpenGL OpenGL Shading Language 4.10。OpenGL4.1提高视觉密集型应用OpenCL™的互 *** 作性,并继续加速计算剖面为核心的支持和兼容性第一次推出的OpenGL 3.2,使开发人员能够使用一个简化的API或保留向后兼容现有的OpenGL代码,这取决于他们的市场需求。

Khronos旗下的OpenGL ARB(Architecture Review Board)工作组推出了GLSL 1.5OpenGLShading Language(OpenGL着色语言)的升级版,以及在OpenGL3.2框架下推出了两个新功能,可以让开发者在开发新程序时能够在使用流水线内核特性或兼容性特性之间做出选择,其中兼容性特性会提供与旧版OpenGL之间的兼容性。

2011年8月9日在温哥华举行的SIGGRAPH 2011大会上Khronos发布了新的OpenGL 4.2标准细节,对于支持现有硬件的API加入了部分新的支持特性。和OpenGL 4.1一样,OpenGL 4.2主要应用于DX11级别硬件如NVIDIA GeForce 400/500,Radeon HD 5000/6000系列显卡,不过NVIDIA的开发者社区之前曾经表示部分特性可通过扩展功能在最老支持OpenGL2/DX9级别的硬件上实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10034839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存