欢迎来到天天文库
浏览记录
ID:33582379
大小:510.13 KB
页数:6页
时间:2019-02-27
《基于mfc框架的opengl三维图形编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据(;RApNlCS&GAMEpR◇GRAM基于心框架的q聊能三维图形编程当前,众多三维图形编程工具中最为突出的是SGI公司的0penGL(OpenGraphicsIJanguage,开放式图形语言),它已经成为事实上的工业标准,并广泛应用于科研、设计和游戏开发等领域。0penGL编程可以实现三维物体的建模、变换、色彩处理、光线处理、纹理映射等功能,但是,由于它的复杂性,使入门的门槛很高。本文将重点介绍如何在Visualc++6.O开发环境中构建基于MFc框架的三维应用程序,并给出了显示具有雾化效果的旋转彩色立方体的示例代
2、码。一、Windows系统中OpenGL工作原理openGL的作用机制是客户(client)/服务器(seⅣer)机制,即客户(用OpenGL绘制景物的应用程序)向服务器(即0penGL内核)发布openGL命令,服务器则解释这些命令,0penGL的这种客户/服务器机制不仅可在单机上运行,也可以十分方便地在网络环境下使用,所以,从这种意义上来说,windows下0penGL是透明的。与windows的图形设备接口(GDI)把图形函数库封装在一个动态链接库(Windows下的GDl32.DLL)内一样,OpenGL图形库也被封装在
3、动态链接库内。客户应用程序调用的OpenGL函数都先在0PENGL32.DLL中处理,然后传给服windows下0penGL工作流程图、殇毫盍装巍与蠢蒗◇刘涛务器wINSRV.DLL,OpenGL的命令再次得到处理并且直接传给win32的设备驱动接口(DeviceDriveInterface,DDI),这样就把经过处理的图形命令送给视频显示驱动程序。上图简要说明这个过程。二、0penGL的函数及数据类型1.OpenGL的函数0penGL包括了100多个图形函数,它们分别属于0penGL的核心库、实用库、辅助库,每个库函数的命名方
4、式也很有规律,了解这种规律对于以后阅读程序及编写程序代码都有很大益处。核心库(0penGLcorelibrary),包含的函数有115个,它们是最基本的函数,其前缀是gl;OpenGL实用库(0penGLutilitylibrary,GLu),包含的函数功能更高一些,如绘制复杂的曲线曲面、高级坐标变换、多边形分割等,共有43个,前缀为亩u;0penGL辅助库(OpenGLauxiliaryljbrary,GLAux),包括简单的窗口管理、输入事件处理、某些复杂三维物体绘制等函数,共有31个,前缀为aux。此外,OpenGL包括6
5、个wGL函数,其前缀为wgl,专门用于0penGL和Windows窗口系统的连接、创建和选择图形操作描述表(renderingcontexts)以及在窗口内任一位置显示字符位图;0penGL还有5个win32函数用来处理像素格式(pixelfollna£s)和双缓存。由于它们是对Win32系统的扩展,因此不能应用在其它0penGL平台上。2.0penGL的数据类型。与c语言相对应,0penGL中也有整数、字节、浮点数等数据类型,两者的对应关系,如下表所示。数据类型对应表前缀数据类型相应c语言类型0pel髓类型b8一bitinte
6、gersigr谢cIl“GI№16~bitinIege。shortGk妇32~bitirIt噼rlo。】gCbm.(轧izeif32~bitn∞吨一po妇BoatGIⅢoBt.GkL眦班d64~bitⅡ枷ng—p0缸d0‘IbleGLdouble.ckk¨pdub8一bitumig【划衲teg目unsignedc}mrCLnb咖.C岫001e日Il16~bitumi8rledint镏“urBig捌s}10rtG【
7、盥hon32~bitunsi8r·ediIltege。un8igr州lo‘唱GL血nt.Gkl珊.GLbi击eld蕊
8、滋繁与患鼹黯担剐则黔缎躺嘭劐甏~季。曩囊≯≮,^万方数据3.0penGL函数的命名规律openGL中,每个库函数都有前缀gl、glu、出x或aux,表示此函数分属不同的库,其后的函数名头字母大写,后缀是参数类型的简写。如取i、f等;有的函数参数类型后缀前带有数字2、3等,2代表二维,3代表三维。如掣Venex2i(2,4),表示函数使用2个整型参数;有些OpenGL函数最后带~个字母v,表示函数参数可用一个指针指向一个向量(或数组)来替代一系列单个参数值。除了以上基本命名方式外,还有一种带“+”星号的表示方法,例如dColor+
9、(),它表示可以用函数的各种方式来设置当前颜色。同理,91Venex+v()表示用一个指针指向所有类型的向量来定义一系列顶点坐标值。三、MFC框架下的OpenGL编程1.设置像素格式OpenGL在windows系统中进行绘制前,必须描述、选择和设置绘制曲面的像素
此文档下载收益归作者所有