资源描述:
《利用open gl实现三维绘图new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第23卷 第3期内蒙古农业大学学报Vol.23No.32002年9月Sep.2002JournalofInnerMongoliaAgriculturalUniversity文章编号:1009-3575(2002)03-0098-05利用OpenGL实现三维绘图X12曹洪军 原英(1. 哈尔滨市公安局技侦支队,哈尔滨 150010;2. 内蒙古农业大学经管学院,呼和浩特 010010)摘要:本文通过一个用OpenGL显示图像的Windows程序实例,介绍了OpenGL编程的基本概念、步骤,以及如何利用OpenGL函数库实现三维绘图。关键词:光源; 材质; 投影; 像素中图分类号
2、:TP317.4 文献标识码:AIMPLEMENTTHREE-DIMENSIONIMAGESUSEDOPENGL12CAOHong-jun,YUANYing(1.TechnologicalandReconnoitreDetachment,HaerbinCityPublicSecurityBureau,Harbin150010;2.CollegeofEconomicManagement,InnerMongoliaAgriculturalUniversity,Huhhot010019)Abstract:Thebasicconceptsandapproachesareintrod
3、ucedinthispaperbyillustratingawindowsprogramofdisplayingimagesusedOpenGL.Andhowtoimplementthree-dimensionimagesusedOpenGLisalsoargued.Keywords:lamp-house;material;projection;pixel在三维绘图蓬勃发展的过程中,计算机公司推出了大量的三维绘图软件包。其中SGI公司推出的OpenGL,作为1个性能优越的图形应用程序设计界面(APl)异军突起,取得了很大的成就。它以高性能的交互式三维图形建模能力和易于编程开发
4、,得到了Microsoft、IBM、DEC、Sun、HP等大公司的认同。因此,OpenGL已经成为1种三维图形开发标准,是从事三维图形开发工作的必要工具。1 初始化OpenGL绘图环境1.1 定义颜色格式和缓冲模式OpenGL提供两种颜色模式:RGB(RGBA)模式和颜色索引模式。在RGBA模式下所有颜色的定义用RGB3个值来表示,有时也加上Alpha值(表示透明度)。RGB3个分量值的范围都在0和1之间,它们在最终颜色中所占的比例与它们的值成正比。如:(1,1,0)表示黄色,(0,0,1)表示蓝色。颜色索引模式下每个象素的颜色是用颜色索引表中的某个颜色索引值表示(类似于从调
5、色板中选取颜色)。由于三维图形处理中要求颜色灵活,而且在阴影,光照,雾化,融合等效果处理中RGBA的效果要比颜色索引模式好,所以,在编程时大多采用RGBA模式。OpenGL提供了双缓存来绘制图像。即在显示前台缓存中的图像同时,后台缓存绘制第2幅图像。当后台绘制完成后,后台缓存中的图像就显示出来,此时原来的前台缓存开始绘制第3幅图像,如此循环往复,以增加图像的输出速度。X收稿日期:2001-11-29作者简介:曹洪军(1971~),男,助理工程师,从事公安技侦的研究.©1995-2006TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsre
6、served.第3期 曹洪军等: 利用OpenGL实现三维绘图99设置窗口显示模式函数:voidauxlnitDisplayMode(AUX-DOUBLE//双缓存方式
7、AUX-RGBA);//RGBA颜色模式1.2 设置光源OpenGL的光源大体分为3种:环境光(Ambientlight),即来自于周围环境没有固定方向的光。漫射光(Diffuselight)来自同一个方向,照射到物体表面时在物体的各个方向上均匀发散。镜面光(Specularlight)则是来自于同一方向,也沿同一个方向反射。全局环境光是1种特殊的环境光,它不来自特于某种定光源,通
8、常做为场景的自然光源。指定光源函数:VoidglLightfv(Glenumlight,//光源号Glenumpname,//指明光源种类//GL-DIFFUSE光源为漫射光光源//GL-AMBIENT光源为环境光光源//GL-SPECULAR光源为镜面光光源3constGlfloatparams);//指向颜色向量的指针设置全局环境光函数:voidglLightModelfv(GL-LIGHT-MODEl-3AMBIENT,constGlfloatparam);//param指向颜色向量的指针起用光源