郑睿博 潘雅静
摘要通过分析三维激光扫描系统获取的点云数据的格式,利用Maxscript脚本语言开发出一个点云导入插件,从而可以把点云数据导入到3ds Max当中。介绍了一种结合Cyclone软件和3ds Max软件进行建模的方法,利用该方法可以有效地处理三维激光扫描获取的点云数据,实现对建筑物精确三维可视化建模。
关键词Maxscript;点云;三维激光扫描;三维建模
AbstractThrough the analysis ofthepointcloud dataobtained by 3D laser scanning system,this paper uses the Maxscript to develop aplug-inwhichcan import thepoint cloud datainto 3dsMax.This paper introduces a kind ofmethod formodeling by Cyclone softwareand 3dsMax software,the method can be used todeal with the point cloud datacollected by 3D laser scanningeffectively and realizeto model 3D visualizationofbuildingsAccurately.
Keywords:Maxscript;point cloud;3Dlaser scanning;3d modeling
1.引言
茶餐厅,是一种起源于香港的快餐食肆。它提供揉合了香港特色的西式餐饮,是香港最本土化的饮食场所。茶餐厅历史悠久,见证了中西方不同文化和审美的融合,有其独特的内部布置风格。茶餐厅内部设计简约,典雅大方充满了浓浓的人情味及港式特色,因此成为众多电视编剧爱取用的场景。2007年4月,香港政党民建联申请把茶餐厅列入联合国“人类非物质文化遗产”,足以可见茶餐厅在香港饮食文化中举足轻重的地位,具有重要的历史文化价值。然而,传统总会在时光的穿梭中渐渐流失。如何才能把香港茶餐厅流传下去,这是一个很有必要研究的问题。如果可以重建茶餐厅高精度的三维模型,使其在计算机中真实再现,这样不仅可以使它得到永久保存,并且也能够为日后的修缮工作提供翔实准确的数据,很有意义。
2. 技术路线分析
2.1传统技术路线
通过茶餐厅的设计图纸运用AutoCAD,3ds Max等软件直接进行正向建模得到茶餐厅的三维模型予以保存。但是大多数茶餐厅的建设年代比较久远,设计图纸已经丢失或残缺不全。如果对现有的图纸进行矢量化,然后再进行实地纹理采集建模的话,那么工作量将会很大,制作周期长。重要的是:1.设计图纸并未记录茶餐厅内部的布置,包括桌椅的摆放等,想要真实地再现原貌,这些要素不可忽略;2.通过这个方法得到的模型没有精度,无法以真实的数字基础还原茶餐厅原貌,不能逼真的再現茶餐厅的特有风采。
2.2 三维建模新技术
三维激光扫描技术因其在测量中能将各种物体表面的点云数据快速、准确地测量并记录到计算机中,且在记录位置信息的同时记录物体表面反射率及RGB色彩,使重构的三维实体更生动,因而经常被用于建筑物测量维护与仿真,外观结构三维建模等领域[3]。
目前,能够实现三维点云数据建模的主要有两种软件:一种是扫描仪随机自带的软件,可以用来获取数据,也可以对数据进行预处理和建模,如徕卡的Cyclone;另一种是专业数据处理软件,用于点云数据的处理和建模等方面,多为第三方厂商提供,如3ds Max等软件。
Cyclone软件建模功能较为强大,但主要应用于平面、圆柱、弯管等规则体方面,对于复杂的建模很难实现。茶餐厅内部有许多不规则结构,因此很难单独使用完成建模[1]。
3ds Max软件是著名软件开发商AutoDesk开发的基于PC的三维渲染制作软件。3ds Max三维数据处理功能强大,有内置的脚本语言Maxscript。开发人员能轻松扩展用户界面及功能。目前3ds Max2014以及2015虽都支持点云数据的导入。但由于Max 2014,2015的不稳定性,及其所支持点云格式的特定性,使用起来比较麻烦。
2.3本文采取的技术路线
综上所述,以传统技术路线或现有的点云数据建模软件都难单独完成香港茶餐厅三维重建的要求。因此本文采取了新的技术路线:采取Cyclone与3ds Max软件相结合建模的方法。结合两款软件优点,采用参考点云建模的方法共同完成香港茶餐厅的重建。该方法的基本思路是将需要建模对象所覆盖的点云进行分离后,利用maxscript开发出的点云导入插件把点云数据导入到3ds Max中作为体量和精度上的参考并同时对照实景照片进行形状上的建模。Cyclone是用于点云分割与导出,3dsMax是用于点云导入与参考建模。
3. 数据获取与预处理
3.1 数据获取
以香港苏屋杜鹃杜鹃茶餐厅为例,采用HDS6000三维激光扫描仪,分为五个站点对其进行室内扫描。包括整体场景扫描、标靶扫描和扫描仪内置相机的拍照。对纹理质量有较高要求的重点区域,采用专业单反相机拍照。
3.2 数据预处理
本文数据预处理主要涉及多站数据的配准。由于茶餐厅室内空间位置的限制,通常无法用单站点云数据覆盖被测物体,需从不同位置和角度进行扫描,最后得到多站独立的点云数据。点云数据的配准就是将所有独立坐标的数据转换到一个基准坐标系下的过程。主要过程如下:在Cyclone数据库建立一个配准站,添加需要配准的站点;将自动拟合的同名集合约束添加到配准条件中,不同站间的配准需要3对以上的同名约束,同名约束越多,精度也就越高;配准后将结果中误差超限的约束按误差从大到小依次删除,直到约束条件满足精度的要求为止;达到精度要求后创建配准站,即可生成完整的点云模型。
4. 数据分割
以2.2节拼接点云成果为例,对场景中的餐桌进行处理。首先,通过Fence命令(支持三种Fence模式,即Polygon、Rectangle、Circle)以合适的视图选取餐桌覆盖区域的点云,接着右键Copy Fenced to New ModelSpace命令將选取的点云在新的ModelSpace打开。
此时餐桌周围的点云全包含其中,但仍有一部分冗余的点云存在,如地面及餐桌旁的椅子的部分点云,因此为了减少后期建模冗余点的影响,接下来还需要利用Fence命令将不属于餐桌的点云进行剔除,一种较好的剔除方法是在不同视图下分别来进行剔除操作。
为了方便后期的模型质量检查与修改,可对每次分割和处理完整的点云所在的ModelSpace进行保存命名。接下来可将餐桌点云进行导出,导出的格式选择XYZ文本格式。在导出选项中,Object Type中只需要选择Point Cloud。当然,为了只导出点云,也可在ModelSpace中将点云选择,导出时选中Selected选项即可,文件命名为table。
5. 三维模型重建
5.1 点云数据导入到3ds Max中
本文在三维模型重建时,选用3ds Max9。这个版本是较稳定的版本,但其不支持点云数据的导入。所以采用Max内置的脚本语言Maxscript编写了一个点云数据导入程序。
从Cyclone导出的数据格式是.XYZ格式的。打开table,发现数据共有三列,分别记录了测量点的X,Y,Z坐标值。有多少个点就有多少行数据。导出的Table有40万行。
点云导入的思想,即利用脚本逐行读取每个测量点的坐标值,然后在3ds Max中创建点。由于需要导入的点云数据量巨大,如何创快速建点云模型,这是个难点。本文采取了这样一种思路:首先创建一个Box,然后把它转换为可编辑多边形,把读取的点云数据作为Verts添加到先前的多边形上,最后在点层级下,获取之前创建的box的8个顶点,删除。本方法把点云数据作为一个整体来处理的思想,解决了以往把点云数据作为离散点进行或box,或point辅助对象进行建模所带来的数据量巨大,max运行不流畅的问题。
在不对点云数据坐标进行处理的前提下导入的点云,此时会感觉看到的点云并没有40万那么多,反而显得点云之间的间隔很稀疏。这种现象与平常在3ds Max下建模时经常遇到的在较大坐标系统下画直线会产生不同程度地曲折变化类似,即密集的点云在HK1980坐标系的数值下在3dsMax软件显示的过程中发生了简化,因此需要将其按照一定的常量数值进行偏移处理,但在处理之前需要将轴心对齐到点云的中点,此时物体的轴心坐标为(834193.958023 822304.499344 10.922897),我们将物体平移(-830000,-820000,0),平移之后,我们发现点云的显示仍是不完整的。
基于此,本文所编写的点云导入插件,对大坐标问题进行了简单的处理。在点云导入之前即把数据的前两位坐标删除。在去前两位大坐标之后导入,已经显示正常。至此,我们已经将餐桌的点云完整地导入到3dsMax之中。
5.2 参考点云建模
参考点云作为建模物体的尺寸和轮廓标准,同时参照实景照片会对细节之处有更清晰的理解。建模的过程仅完成了三维空间信息数据的架构,为了实现虚拟建筑模型的真实感,给模型赋予贴图必不可少。借助在扫描点云阶段获取的纹理,制作局部贴图,然后在3DMAX的“材质编辑器”里把贴图赋予模型。
使用“材质编辑器”,我们可利用贴图实现物体表面的光泽、质感、等效果的模拟,使模型的表现效果更真实。值得注意的是贴图需在模型不同的面上匹配正确的贴图坐标和尺寸才能正确的实现模拟效果。在3DMAX中,采用“UVW编辑修改器”进行贴图的坐标管理。“UVW”指贴图坐标系,它不同于建模场景中的XYZ空间坐标系,它将模型的各个面的坐标拆分出来,让这些面展成平面,再将每个面附上具有空间方位的准确贴图。
利用此方法,就可完成杜鹃茶餐厅的重建。
6结论
本文对三维激光扫描获取的点云数据如何导入3ds Max过程进行了研究,初步探索应用点云数据结合Cyclone 软件在 3ds Max下进行三维实体建模的实现方法。三维激光扫描测量技术具有独特的优势, 将来会在古建筑物的保护、数字城市、矿山监测等领域发挥更大的作用[4,5]。但还有很多问题需要做进一步的研究, 例如: 原始数据大, 数据冗余, 自动化快速建模等。
参考文献:
[1]谢宏全,侯坤.地面三维激光扫描技术与工程应用[M].武汉:武汉大学出版社,2013 : 102
[2]谢宏全,侯坤.地面三维激光扫描技术与工程应用[M].武汉:武汉大学出版社,2013 : 104
[3]白成军.三维激光扫描技术在古建筑测绘中的应用及相关问题研究[D].天津: 天津大学,2007.