文档详情

OpenGL技术教学课件.ppt

发布:2025-04-24约1.25万字共106页下载文档
文本预览下载声明

第10章OpenGL;10.1简介;;;;〔1〕跨平台特性

OpenGL与硬件、窗口和操作系统是相互独立的。为了构成一个完整功能的图形处理系统,其设计实现共分5层:图形硬件、操作系统、窗口系统、OpenGL和应用软件。

因而,OpenGL可以集成到各种标准窗口和操作系统中。例如,操作系统包括UNIX,WindowsNT,Windows95/98,DOS等;窗口系统包括XWindows,MicrosoftWindows等。;〔2〕应用的广泛性

OpenGL是目前最主要的二、三维交互式图形应用程序开发环境,已成为业界最受推荐的图形应用编程接口。自从1992年发表以来,OpenGL已被广泛地应用于CAD/CAM、三维动画、数字图像处理以及虚拟现实等领域,Kinetix公司的3DStudioMax就是突出的代表。无论是在PC机上,还是在工作站甚至是大型机和超级计算机上,OpenGL都能表现出它的高性能和强大威力。;〔3〕网络透明性

建立在客户/效劳器模型上的网络透明性是OpenGL的固有特性,它允许一个运行在工作站上的进程在本机或通过网络在远程工作站上显示图形。利用这种性质能够均衡各工作站的工作负荷,共同承担图形应用任务。

〔4〕高质量和高性能

无论是在CAD/CAM、三维动画还是可视化仿真等领域,OpenGL高质量和高效率的图形生成能力都能得到充分的表达。在这些领域中,开发人员可以利用OpenGL制作出效果逼真的二、三维图像来。;〔5〕出色的编程特性

??OpenGL在各种平台上已有多年的应用实践,加上严格的标准控制,因此OpenGL具有良好的稳定性。

OpenGL具有充分的独立性与易使用性等。;10.2OpenGL根本程序结构;OpenGL的根本库是OpenGL的核心函数库,在这个函数库中,提供了115个函数,这些函数都是以“gl〞为前缀。这类API的主要功能包括物体描述、平移、旋转、缩放、光照、纹理、材质、像素、位图、文字处理等。

所有OpenGL提供的操作都可以使用这些函数来实现,而且,对于不同的软件和硬件平台,这些函数的使用是完全相同的,这个特性注定了OpenGL程序完美的可移植性。;OpenGL的实用库是OpenGL根本库的一套子程序,它提供了43个函数,这些函数都是以〞glu〞为前缀。根本的OpenGL不支持传统上同图形标准相关的一些几何对象,为了减少一些编程负担,OpenGL提供了实用库。主要功能包括绘制二次曲面、NURBS曲线曲面、复杂多边形以及纹理、矩阵管理等。

实用库中的所有函数全都是由OpenGL根本库函数来编写的,所以,在使用上和OpenGL根本库的使用是完全相同的,而且,用户也可以使用根本函数库来实现实用库的函数功能。;OpenGL的辅助库是为了方便用户用标准C编写OpenGL程序而编写的。OpenGL是一个图形标准,所以,在OpenGL中没有提供窗口管理和消息事件响应的函数,这样使用标准C编写OpenGL程序是很不方便的,所以提供了辅助库。它提供了31个函数,这些函数都是以“aux〞为前缀。OpenGL辅助库提供了一些根本的窗口管理函数、事件处理函数和一些简单模型的制作函数等,例如,定义窗口的大小、处理键盘时间、鼠标击键事件、绘制多面体等等。;10.2.2一个简单的OpenGL程序;voidmyinit(void)//初始化

{glClearColor(0.0,0.0,0.0,0.0);//将窗口清为黑色

}

voidCALLBACKdisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT);

//将颜色缓存清为glClearColor命令所设置的颜色,即背景色

glColor4f(0.2,0.8,1.0,1.0);//选颜色(R,G,B)

glRotatef(30,1.0,1.0,0.0);//做旋转变换

auxWireCube(1.0);//绘制六面体的虚线图

glFlush();//强制绘图,不驻留缓存

?};voidCALLBACKmyReshape(intw,inth)//用于窗口大小改变时的处理,与绘图无关

{glViewport(0,0,w,h);

}

voidmain(void)

{

auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);//窗口显示单缓存和RGB(彩色)模式

auxInitPosition(0,0,200,200);//大小x=200y=200(0,0)是屏幕左上点

auxInitWindow(“openglsample.c〞);//初始化窗口,参数是标题

显示全部
相似文档