用OpenGL开发三维交互式虚拟场景
时间:2025-05-03
时间:2025-05-03
用OpenGL开发三维交互式虚拟场景
第20卷第8期2000年8月
文章编号:1001-9081(2000)08-0038-03
计算机应用ComputerApplications
Vol.20,No.8Aug.,2000
用OpenGL开发三维交互式虚拟场景
谢志鹏,陈锻生
(国立华侨大学计算机科学系,福建泉州362011)
摘 要:介绍了MsWindows环境下OpenGL的体系结构和工作原理,深入剖析了用VisualC++开发真实感3D实时虚拟场景时采用的技术特点,并构造了两个可重用和继承的类 纹理贴图和画面输出保存的设备无关位图类以及初始化OpenGL工作环境并正确设置调色板的视图类,在此基础上设计了一个模拟3D射击游戏。
关键词:OpenGL图形库;MFC;纹理贴图;显示列表;矩阵堆栈中图分类号:TP391.41 文献标识码:A
DEVELOPING3DINTERACTIVEVIRTUALSCENEBYOPENGL
XIEZhi peng,CHENDuan sheng
(DepartmentofComputerScience,NationalHuaqiaoUniversity,QuanzhouFujian,362011,China)Abstract:ThispaperintroducethearchitectureandprincipleofOpenGLunderWindowsEnvironment,
andanalyzethetechnicalfeaturesadoptedwhendevelopingthe3Drealtimevirtualscene,furthermoreconstructtwoclasses theDIBclassfortexturemappingandscreensave,theViewclassforinitializingtheOpenGLworkingspaceandthepalette,finallyasimulated3dshootinggamewaspresented.
Keywords:OpenGLGraphicsLibrary;MFC;texturemapping;displaylist;matrixstack
1 OpenGL工作原理
OpenGL作为专业三维图形加速卡的软件接口,由几百条函数组成,允许程序员对二维或三维几何
形体进行描述,并将它们绘制(Render)到3D图形加速卡的帧缓存(Framebuffer)。图1描绘了OpenGL
的工作流程。
图1
由上可见,OpenGL能处理几何体及图像,它用顶点集合定义几何形体、以象素集合表示图像。
对于几何形体,如NURBS曲面,OpenGL向评价器(Evaluator)输入控制点和节点序列以产生曲面顶点坐标,对顶点坐标执行操作。如计算光线和法向量、颜色等,随后把该顶点系列描述的近似几何形体剪切到观察体(Frustum)中并进行光栅化(Rasterization)以产生一系列帧缓存地址和图元的二维描述值,称为基片,对基片进行操作,如根据深度值更新帧缓存以及颜色融合,淡化等。由此产生一
系列象素值,送入帧缓冲区中。
此外,OpenGL也可处理图像象素,并可通过纹理映射把图片贴到几何形体表面。
2 Windows环境下OpenGL处理流程
OpenGL指令解释模型是Client/Server模式,即一个应用程序(客户)发出指令,由OpenGL内核(服务器)解释执行。在Win9x/NT环境下,OpenGL库函数封装在动态链接库OpenGL32.DLL中,客户程序对OpenGL库函数的调用首先被OpenGL32.DLL处理,
收稿日期:2000 02 29
作者简介:谢志鹏(1972-),男,福建晋江人,硕士研究生,主要研究方向:图形图像处理; 陈锻生(1959-),男,福建泉州人,副教授,主要研究方向:图像处理与多媒体系统.
上一篇:政府绩效管理