欢迎来到天天文库
浏览记录
ID:41032416
大小:1.12 MB
页数:88页
时间:2019-08-14
《OpenGL编程 GLUT》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第一章OpenGL的基本框架1.1OpenGL简介在计算机发展初期,人们就开始从事计算机图形的开发,但直到20世纪80年代末90年代初,三维图形才开始迅速发展。于是各种三维图形工具软件包相继推出,如GL,RenderMan等,但没有一种软件包能够在三维图形建模能力和编程方便程度上与OpenGL相比拟。OpenGL(OpenGraphicsLibrary,开放图形库),是一个三维的计算机图形和模型库,它源于SGI公司为其图形工作站开发的IRISGL,在跨平台移植过程中发展成为OpenGL。SGI公司在1992年6月发布1.0版,后成为工业标
2、准。目前,OpenGL标准由1992年成立的独立财团OpenGLArchitectureReviewBoard(ARB)以投票方式产生,并制成规范文档公布,各软硬件厂商据此开发自己系统上的实现。目前最新版规范是1999年5月通过的1.2.1。OpenGL作为一个性能优越的图形应用程序设计界面(API),它独立于硬件和窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。OpenGL在军事、广播电视、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟
3、世界等领域都有着广泛的应用。它具有以下功能。1.模型绘制OpenGL能够绘制点、线和多边形。应用这些基本的形体,可以构造出几乎所有的三维模型。OpenGL通常用模型的多边形的顶点来描述三维模型。2.模型观察在建立了三维景物模型后,就需要用OpenGL描述如何观察所建立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型的坐标变换在使观察者能够在视点位置观察与视点相适应的三维模型景观。在整个三维模型的观察过程中,投影变换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。最后的视窗变换则对模型的景象进行裁剪
4、缩放,即决定整个三维模型在屏幕上的图象。3.颜色模式的指定OpenGL应用了一些专门的函数来指定三维模型的颜色。程序开发者可以选择二个颜色模式,即RGBA模式和颜色表模式。在RGBA模式中,颜色直接由RGB值来指定;在颜色表模式中,颜色值则由颜色表中的一个颜色索引值来指定。开发者还可以选择平面着色和光滑着色二种着色方式对整个三维景观进行着色。4.光照应用用OpenGL绘制的三维模型必须加上光照才能更加与客观物体相似。OpenGL提供了管理四种光(辐射光、环境光、镜面光和漫射光)的方法,另外还可以指定模型表面的反射特性。5.图象效果增强Op
5、enGL提供了一系列的增强三维景观的图象效果的函数,这些函数通过反走样、混合和雾化来增强图象的效果。反走样用于改善图象中线段图形的锯齿而更平滑,混合用于处理模型的半透明效果,雾使得影像从视点到远处逐渐褪色,更接近于真实。6.位图和图象处理OpenGL还提供了专门对位图和图象进行操作的函数。7.纹理映射88三维景物因缺少景物的具体细节而显得不够真实,为了更加逼真地表现三维景物,OpenGL提供了纹理映射的功能。OpenGL提供的一系列纹理映射函数使得开发者可以十分方便地把真实图象贴到景物的多边形上,从而可以在视窗内绘制逼真的三维景观。8.实
6、时动画为了获得平滑的动画效果,需要先在内存中生成下一幅图象,然后把已经生成的图象从内存拷贝到屏幕上,这就是OpenGL的双缓存技术(doublebuffer)。OpenGL提供了双缓存技术的一系列函数。9.交互技术目前有许多图形应用需要人机交互,OpenGL提供了方便的三维图形人机交互接口,用户可以选择修改三维景观中的物体。1.1OpenGL的工作方式1.2.1OpenGL的体系结构OpenGL是一套图形标准,它严格按照计算机图形学原理设计而成,符合光学和视觉原理,非常适合可视化仿真系统。由于OpenGL是一种API,其中不包含任何窗口管
7、理、用户交互或文件I/O函数。每个主机环境(如MicrosoftWindows)在这些方面都有自己的函数,由这些函数负责实现某些方法,以便把窗口或位图的绘制控制权移交给OpenGL。通常,一个完整的窗口系统的OpenGL图形处理系统的结构如图1.1所示:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件。图1.1OpenGL图形处理系统的层次结构OpenGL在WindowsNT上的实现是基于客户机/服务器模式的,应用程序发出OpenGL命令,由动态链接库OpenGL32.DLL接受和打包后,发
8、送到服务器端的WINSRV.DLL,然后由它通过DDI(DeviceDriverInterface,设备驱动程序接口)层发往视频显示驱动程序。如果系统安装了硬件加速器,则由硬件相关的DDI来处
此文档下载收益归作者所有