您现在的位置:首页 > CG教程 > 其他专栏 > 程序脚本 > 文章内容
创建OpenGL图形类实现Visual C++中三维图形绘制 RSS订阅

创建OpenGL图形类实现Visual C++中三维图形绘制

发表时间:2005-10-26
本教程简要介绍了OpenGL的基本发展状况及工作机制,重点运用面向对象思想论述了创建可重用图形类CopenGL在Visual C++三维图形绘制中的目的意义、操作、具体实施等诸多事项。

作者:陈思宇

由火星时代动画网整理

  1、引言

  随着计算机图形学的发展和不断完善,三维图形的应用也越来越广泛,三维图形应用软件也得到相应的发展。作为目前较为领先的主流3D软件,OpenGL是一种比较完善的三维开放图形标准,它作为一种硬件图形的软件接口,显著的优点是作为一个独立的工作平台,独立于硬件设备、窗口系统和操作系统,用它编写的软件可以在UNIX、Windows95 OSR2、Window 98/NT等系统间实现移植。
 
  但是,OpenGL仅是一个包含120多个图形函数组成的图形库,它缺乏面向对象能力,不符合当前流行的软件设计思想,况且它与操作系统之间的连接烦琐,每次创建OpenGL应用程序时都需要重新书写连接代码,而无法共享这部分公用代码,另外在Visual C++环境中编程时,它把对像素结构描述、着色环境创建等代码都添加到视类中处理,不符合软件编程习惯,不利于了解程序编制的流程、思路和思想。因此,按照面向对象思想创建一个OpenGL图形类,封装或重载OpenGL函数或代码,可以很好地解决上面的问题。

  2、OpenGL简介

  OpenGL是近几年发展起来的一个性能卓越的三维图形平台。它的前身是由SGI公司为其图形工作站开发的IRIS GL,后来SGI和微软共同开发了Windows NT下的新版本,即OpenGL1. 1,并把它集成到Windows95 OSR2中。现在,OpenGL以动态链接库形式挂接到Windows NT 3. 51、Windows NT 4. 0和Windows OSR2、Windows 98等环境中,并把OpenGL图形库封装在Visual C++2. 0及其以上版本中,开发者可以在多种硬件平台及操作系统下方便地利用这个图形库,创建出接近光线跟踪的高质量静止或动画的三维彩色图像,而且要比光线跟踪算法快一个数量级。OpenGL的基本工作机制流程图如图1所示。

  图1 OpenGL基本工作流程图

  为了利用Visual C++的强大功能来实现对OpenGL三维图形的绘制,Windows提供了OpenGL32. DLL和GLU32. DLL动态链接库,Visual C++包含了GL库(opengl32. Lib)、辅助库(glaux. lib)和实用库(glu32. lib),并且OpenGL在网络上工作时,显示图形的计算机(客户机)可以不是运行图形程序的计算机(服务器),客户机与服务器可以是不同类型的机器,只要两者服从相同的协议。另外,OpenGL1.1版本中加强并引入了一些新功能,如:在增强元文件中包含OpenGL调用,改进打印机支持,提高顶点数组的新特性,提高顶点位置、法线、颜色及色彩指数、纹理坐标、多边形边缘标识的传输速度,引入新的纹理特性,等等。这些都为在微机上实现高品质、交互式三维图像开发提供了良好的便利条件。

  3、创建OpenGL可重用图形类

  创建COpenGL可重用图形类的一个显著特性是通过对象的封装性而隐藏复杂性来简化程序设计。另外通过封装部分标准OpenGL函数代码实现参数化抽象,进行函数重载,使在同一个作用域内的若干个参数特征不同的函数使用相同的函数名称,而实现函数的算法和运算符的语义因参数特征或被操作数类型的各异而不同,这样就可以增强程序的可读性、灵活性和简便性。 

共6页: 上一页 1 [2] [3] [4] [5] [6] 下一页
    评论加载中…
相关文章