资源描述:
《基于opengl的点云数据显示与更新》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、王东甫1,侯文广2(1.广东省电力设计研究院,广东广州510600;2.武汉大学遥感信息工程学院,湖北武汉430079)摘要:介绍基于OpenGL的点云数据的显示与更新,主要针对点云数据的前期处理。给出了三维场景绘制、双缓存技术的运用、坐标转换等过程及部分实现代码。关键词:点云;OpenGL;交互操作;动态更新DisplayandUpdatingofPointCloudDataBasedonOpenGLWANGDongfu1,HOUWenguang2(1.GuangdongElectricPowerDe
2、signInstitute,Guangzhou510600,China;2.SchoolofRemoteSensingandInformationEngineering,WuhanUniversity,Wuhan430079,China)Abstract:Inordertodealwiththedataofpointcloud,thewaysofdisplayandupdatingbasedonOpenGLhavebeenintroduced.Thepaperprovidesprocessandpart
3、sofprogramincludingdrawing3Dscene,applicationofdoublebuffertechnique,transformationofcoordinationetc.Keywords:pointcloud;OpenGL;mutualoperation;dynamicupdating激光扫描系统与结构光测量系统正越来越广泛地用于工业生产各个方面,这两种系统所提供主要数据是具有三维空间坐标的点云。在一些比较高档的激光扫描系统中,提供配套应用软件或二次开发软件包,使得用户能
4、够对原始点云数据进行可视化管理。但是有多种中低档激光扫描系统和自行开发的结构光测量系统没有相应的后期可视化处理软件。在多数情况下,这些系统所提供的原始点云数据是通过市场上已有三维建模与可视化软件进行管理,如AutoCAD、3DMax等。三维模型和进行三维实时交互。本文主要针对前期据的简单处理,如空间坐标三维显示、点云的旋转平移、缩放以及点云数据的删除与更新等。三维场景绘制的初始化1在Windows环境下,三维场景绘制程序必须先行图形渲染场景(RenderingContext)的初始化,括设置绘图格式、调
5、色板、映射模式等其它图形性。像素格式的设定是设置绘图格式的第一步操作OpenGL通过设置PIXSELFORMATDESCRIPTOR结的各项参数来设置像素格式,其中包括颜色模(RGBA颜色索引)、单双缓存、颜色深度及其它些属性,Win32通常的设定如下:PIXELFORMATDESCRIPTORpfd={sizeof(PIXELFORMATDESCRIPTOR),//p结构的大小由于这些软件本身针对性不强,对仅仅具有三维空间坐标的点云数据进行可视化管理时存在诸多不便,因此本文提出一种简单实用方法——
6、基于OpenGL的点云数据的显示与管理。OpenGL是目前流行的开放式的三维图形标准,提供了一种图形与硬件的接口。它包括了120余个图形函数,开发者可以用这些函数来建立收稿日期:2005-04-02!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Analyst>RasterCalculator,输入表达式int([Calcula-参考文献tion]),点击Evaluate,生成新的图层Suitbility。刘云越,刘源月.城市生活垃圾卫生填埋场选址综合[1]
7、析[J].中国测试技术,2004,30(5):74~75结语3颜维安,杭德荣.用地理信息系统评价垃圾填埋场选[2]的研究[J].中国卫生工程学,2003,2(3):133~134本文利用GIS的建模思想,借助其制图功能和空刘云斌.城市生活垃圾填埋场选址模糊综合评判系统[M][3]间分析功能将选址中的限制性因子制作成图地理空间信息2006年·38·1,PFD_DRAW_TO_WINDOW
8、//版本号//支持在窗口中基于双缓存技术的动态操作3在OpenGL中,实现三维场景的动态操作操作是绘图通过双缓存技术实
9、现的。当三维模型在窗口中执行旋//支持OpenGL//双缓存模式PFD_SUPPORT_OPENGL
10、PFD_DOUBLEBUFFER,PFD_TYPE_RGBA,转、平移、缩放等操作时,程序分别在后台缓存和前台缓存中进行绘制,需要更新时则交换前后台缓存,从而实现连续不断的动态效果。在视图类的OnDraw颜色模//RGBA式()函数中调用双缓存技术,在后台缓存和前台缓存//24位颜色深度//忽略颜色位//没有非透明度缓24,0,0,0,0,