资源描述:
《opengl for windows nt程序设计论文 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsNT程序设计论文OpenGLforWindowsN
2、T程序设计论文 OpenGL是在SGI、Microsoft、DEC、IBM和Intel等多家世界著名计算机公司的倡导下,基于SGI的GL标准,制定的一个通用共享的开放式三维图形标准。 前几年,OpenGL虽然是开放式的标准,但是只能在具有UNIX操作系统的各种昂贵的工作站之间通用;尽管工作站上的OpenGL性能优越、编程方便、生成图形精美逼真,但是只有少数人能体会其中乐趣,而令大多数PC机用户望尘莫及。随着计算机技术的发展,工作站与PC机的性能日趋接近。Microsoft公司首先将OpenGL图形库链接到
3、WindowsNT中,目前又将OpenGL动态库挂到最新Windows95上,这样,广大PC机用户就可充分享受OpenGL的乐趣了。更令人高兴的是,目前国内外出现了专门对OpenGL进行硬件加速的三维图形加速卡。这样,普通用户只 要拥有一台Pentium90以上、16MBRAM、520MB以上硬盘容量的PC机以及一台43cm以上的大屏幕监视器和一块OpenGL三维图形加速卡组成的系统,就能与图形工作站相媲美,但价格却便宜数十倍。 本文作者一直从事计算机图形应用开发工作。原来是在SGI工作站上利用OpenG
4、L开发图形程序,后来又首先在国内第一块三维图形加速卡AGC-3D上基于WindowsNT的VisualC++环境下继续进行开发。在开发过程中,同一OpenGL程序几乎不用修改就能在两个平台间来回移植,效果甚好。 一、OpenGL特点及功能 OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,能十分方便地在各平台间移植。 OpenGL具有七大功能。 (1)建模OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(如球、锥、多面体、茶壶等)以及复杂曲线和曲面(
5、如Bezier、Nurbs等曲线或曲面)绘制函数。 (2)变换OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比和镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。 (3)颜色模式设置OpenGL颜色模式有两种,即RGBA模式和颜色索引(ColorIndex)。 (4)光照和材质设置OpenGL光有辐射光(EmittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面光(SpecularLight)。材质是用光反射率来
6、表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。 (5)纹理映射(TexureMapping)利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。 (6)位图显示和图像增强图像功能除了基本的拷贝和像素读写外,还提供了融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图像效果处理。 (7)双缓存(DoubleBuffering)动画双缓存即前台缓存和后台缓存,简而言之,后台缓存计算场景、生成画面,前台缓存显示
7、后台缓存已画好的画面。 此外,利用OpenGL还能实现深度暗示(DepthCue)、运动模糊(MotionBlur)等特殊效果。 二、OpenGLforWindowsNT图形库 OpenGL图形库一共有100多个函数。其中核心函数有115个,它们是最基本的函数,其前缀是gl;OpenGL实用库(OpenGLutilitylibrary,GLU)的函数功能更高一些,如绘制复杂的曲线曲面、高级坐标变换、多边形分割等,共有43个,前缀为glu;OpenGL辅助库(OpenGLauxiliarylibrary,
8、GLAUX)的函数是一些特殊的函数,包括简单的窗口管理、输入事件处理、某些复杂三维物体绘制等函数,共有31个,前缀为aux。 此外,还有六个WGL函数非常重要,专用于OpenGL和WindowsNT窗口系统的连接,其前缀为wgl,主要用于创建和选择图形操作描述表(renderingcontexts)以及在窗口内任一位置显示字符位图。这些功能是WindowsNT对OpenGL的唯一补充,见表1所示。