论文部分内容阅读
无论是三维激光扫描仪采集的点云数据,还是点云数据经过处理获取的深度图像、三角网模型等空间数据均具有数据量巨大的特点,面对这些海量数据,普通的渲染方法遇到瓶颈。针对这个问题,本文采用DirectX11作为图形渲染引擎,对GPU进行高级编程开发,利用GPU的强大的图形渲染能力和并行计算能力,实现点、线、球、圆柱、梯形体、点云、深度图像和三角网模型等几种空间数据的浏览和交互拾取。本文首先研究了利用HLSL和Shader Model5.0开发GPU着色程序,实现大规模点云、深度图像和三角网模型等空间数据的渲染;在几何着色器中实现billboard算法,绘制始终面向用户的十字丝;利用DirectX11新添加的曲面细分技术,在硬件上将立方体细分成球和圆柱,利用Instancing技术实现“一次数据提交,多次渲染”,节省了计算机的存储空间,提高了渲染质量和效率。然后设计了一个相机,实现对空间数据的交互浏览。根据模型的外包围盒,计算外包围球,设置相机位置,开发了模型的基于Arcball旋转、定点缩放、平移以及视图变换、投影变换和重置旋转中心等交互浏览功能。其次对基本几何实体、点云和三角网模型等空间数据的交互拾取技术进行了深层次地探究。本文提出一种基于屏幕空间的拾取算法,进行点云的点选,并将该算法移植到Direct3D11新引入的计算着色器中,利用GPU的强大并行计算能力加速点云的点选,速度提升2~3倍;采用Win32的GDI绘制二维的选择框,依据基于屏幕空间的拾取算法,实现点云和三角网模型的框选功能;采用经典的射线拾取算法,实现三角网模型单个面片的选择和实体的选择。最后将C++/CLI的WindowsForm和DXUT渲染架构相结合,开发出一个交互可视化平台,WindowFrom的优势在于能够快速简单地设计出华丽的界面,而DXUT已经实现窗口创建、设备创建、窗口事件处理和设备事件控制等工作,利用DXUT架构能提高开发的效率。并将开发的交互可视化平台与两个商业软件:Cyclone v6.0.3和GeomagicStudio12,在点云和三角网模型渲染效果、支持渲染的最大数据量和交互拾取的速度三个方面进行对比,分析平台的优越性和存在的缺陷。