• ISSN: 1674-7461
  • CN: 11-5823/TU
  • 主管:中国科学技术协会
  • 主办:中国图学学会
  • 承办:中国建筑科学研究院有限公司

建筑协同设计系统中的移动设备解决方案

刘阳

刘阳. 建筑协同设计系统中的移动设备解决方案[J]. 土木建筑工程信息技术, 2013, 5(5): 102-106.
引用本文: 刘阳. 建筑协同设计系统中的移动设备解决方案[J]. 土木建筑工程信息技术, 2013, 5(5): 102-106.
Liu Yang. Mobile Devices Solution in Collaborative AEC Designing System[J]. Journal of Information Technologyin Civil Engineering and Architecture, 2013, 5(5): 102-106.
Citation: Liu Yang. Mobile Devices Solution in Collaborative AEC Designing System[J]. Journal of Information Technologyin Civil Engineering and Architecture, 2013, 5(5): 102-106.

建筑协同设计系统中的移动设备解决方案

基金项目: 

“十二五”国家863课题“基于建筑信息模型的三维建筑工程设计软件开发与应用” SS2013AA041306

“十二五”国家863课题“基于建筑信息模型的三维建筑工程设计软件开发与应用”(SS2013AA041306)

详细信息
    作者简介:

    刘阳(1989-)男,工程师。主要研究方向:建筑工程协同设计系统研究。

  • 中图分类号: TU201.4; TN929.5

Mobile Devices Solution in Collaborative AEC Designing System

  • 摘要: 随着硬件和互联网技术以及BIM技术的发展,为了在业主、设计、建设等单位沟通更加高效便捷,构建一套完整的基于移动设备的建筑协同设计解决方案显得十分必要。本文主要介绍一种可以浏览建筑三维模型、查看项目说明文档、使用文本图片等方式反馈审批建议的移动应用。在移动设备服务于建筑协同设计的同时,其本身的有限内存带宽和CPU计算速度也限制着系统在显示大模型时的渲染速度。通过作者的学习和工作经验,本文主要从用户交互、显示优化和跨平台技术等方面进行探讨。
    Abstract: In the last decades, the mobile devices had an astonishing growth rate and the smart phones became more and more popular throughout the world, it is significant to introduce more mobile applications into AEC industry in order to build an efficient way of communicating between owners, designers, constructors and other persons.This paper presents a mobile application which is designed to view architecture model, structure model or MEP model in 3D format, view project information and documentation and send feedback in text, image, sound or video format.While the transmission speed of the large-scale 3D-models in a limited band width is the major problem to be solved to satisfy the practical application requirements.Based on the authors' studying and development practice, the solutions were obtained which are presented in this paper, such as user interaction, display optimization technology and cross-platform technology.
  • 在过去的十年中,移动设备出售量正以惊人的速度增长,科技发展带动设备硬件升级,4核CPU已经成为智能手机的标准配置,万众瞩目的4G网络的发照建设,[1]这些硬件条件的发展使得移动设备在建筑协同设计系统中扮演越来越重要的角色。

    本文呈现的基于移动设备的协同设计系统,是一种可以浏览各专业三维模型;查看用户参与的项目信息及其说明文档;使用文字、图片、声音等形式反馈审阅意见的移动应用,参与项目的业主、设计方、施工方可以通过该应用连接协同设计平台服务进行实时沟通,推进项目进展。

    作者通过学习和实践,以安卓平台上的实现方案为例,在下面章节中探讨如何在有限内存带宽和CPU计算速度低下的情况下显示较大模型数据。

    建筑系统设计系统是一个允许不同用户在不同地方同时在同一项目中工作的多用户协同平台,它支持用户使用电脑、网页、移动设备登录查看项目进展,浏览其他用户的设计成果并向其提出自己的设计建议。提供这些服务的数据中心负责存储项目数据和用户资料,它为系统中的每个用户提供适当的权限控制,以确保数据安全有序。[2]

    图 1展示的是移动设备在建筑协同设计系统中的功能定位。

    图 1 建筑系统设计系统组织图
    图  1  建筑系统设计系统组织图

    建筑协同设计系统中的移动终端解决方案目前只有少数几家公司提出方案并拿出产品,在这个BIM技术潮流席卷全球的时代里,基于移动终端的建筑协同设计系统大有潜力可挖掘。当然,移动终端短期内不可能取代PC机上的设计流程,但是基于浏览功能的终端系统在模型建模、图纸绘制期间发挥的作用不容小视。

    基于对移动应用的需求分析,作者设计实现了以下几个重要功能:

    3D模型浏览作为移动设备解决方案的首要功能设计,它允许用户在安卓,IOS,WP等智能设备上打开浏览三维模型。

    为了给用户提供更人性化的移动应用,每个三维场景中的建筑构件允许被用户选中、隐藏、查看属性等。

    随着科技的发展,几乎所有的智能手机都可以支持录音、拍照、摄影等功能,作为更加形象的信息记录,移动解决方案支持使用以上终端自带功能来改善协同交流。

    作为除了文字以外更加丰富的消息反馈功能,参与实际项目中的工程人员可以在施工现场实际拍摄一张现场照片, 作为消息反馈给协同数据服务器,方便项目管理者更加清晰地了解施工现场情况。

    携带方便是移动设备最重要的特性之一,而基于移动设备的建筑协同系统解决方案方便用户随时随地掌握项目进展,甚至参与项目管理。

    只要周围有WIFI热点或GPRS,项目参与者就可以随时随地的登陆到项目服务器查看项目。系统允许客户在拥有权限的前提下,对项目进行查看、删除、移动、复制、重命名等常用功能。

    为了更高效地显示模型数据,我们可以从以下几方面进行优化显示效率:[3]

    1) 使用glDrawElements方法绘图;

    2) 动态合并网格,一次尽可能多地推进GPU绘制;

    3) 使用混合数组优化;

    4) 顶点属性的顺序按照目标设备进行优化;

    5) 使用顶点缓冲区对象(VBO);

    6) 顶点buffer中的顶点按照三角带的方式排列优化,有利于顶点缓存命中;

    7) 采用图形硬件内部的纹理和像素格式。

    下面着重从模型数据组织、使用顶点缓冲区对象等方面介绍本系统的技术解决方案。

    建筑协同设计系统中,一个三维模型可能包含成千上万个构件(图 2中展示的是包含3 000个构建的框架结构模型),而这些构件全部要在内存带宽和计算速度有限的移动终端显示就成了问题。所以有必要设计一种在移动设备上高效运行的简易模型。而在实际设计中,参考了OBJ,X,3DS等模型文件的数据结构,并形成了专为本系统设计的简易模型文件数据结构。

    图 2 系统设计系统中的三维模型
    图  2  系统设计系统中的三维模型

    OBJ文件的全部数据采用文本形式保存,使用记事本形式即可打开,简便的编辑方式和明了的数据结构吸引了几乎所有知名三维软件的原生或插件形式的支持。[4]

    X文件最初是微软为D3D平台专门设计的文件格式,使用数据嵌套格式保存数据,X文件较OBJ文件包含了更多的例如初始化矩阵等信息,扩展了模型文件在初始化显示时的配置信息,数据内容更加丰富。

    3DS文件是基于“块”存储的二进制存储文件。利用块的数据存储方式来描述场景数据。一个数据块可以作为独立数据块存在,也可以作为嵌套数据结构存在。由于采用了二进制存储文件形式保存,3DS文件体积较等量构件的其他文本模型要小,且数据采用二进制形式读取,在程序还原数据时速度较快。[5]

    作者在简单的研究了几种流行度比较高的三维模型文件结构后认为,现阶段应该使用文本格式存取模型数据,以方便在实验阶段对模型文件查错和修正,但基于程序高效稳定的要求来说,未来使用相同数据结构的二进制存储文件保存模型数据是程序进步发展的必然选择。

    相比使用文本存储的OBJ文件或是X文件,作者认为这些两种模型文件的数据结构以及数据内容并不能完全满足本方案的需求,所以需要另行设计一套属于本方案的专有简化模型文件。

    设计简化模型文件结构基于以下几点特性:

    (1) 移动设备上使用Opengl_ES硬件接口只支持三角面的多边形绘制,为了更为真实的模拟建筑,模型文件应该包括顶点坐标外,还需添加该点的颜色、法线方向、纹理坐标等信息。

    (2) 为了高效绘制模型,程序使用顶点索引以绘制图形。[6]

    模型以构件为最小显示基本单元,最小显示单元又以多个带有属性的三角面进行构建。为了区别构件属性,每一个构件在保存文件时需要注明该构件的全局id,以方便该构件在项目服务器以及其他pc客户端进行索引查找。

    读取模型时,只需按照预先制定的固定格式进行循环读取,每读取完一个模型构件将数据传入图形引擎进行相关三维图形绘制。程序处理数据流程如图 3所示。

    图 3 模型数据绘制流程图
    图  3  模型数据绘制流程图

    即使经过各专业的精简优化,一些大的建筑模型在移动设备上直接显示还是非常吃力,所以,在进行图形浏览时的显示优化仍是必须的。

    其优化的原则是:在不影响用户查看的前提下,尽可能多的减小每次刷新绘制时的多边形数量,不在屏幕中的构件甚至可以不绘制,经常由CPU向GPU传递的模型顶点数据完全可以缓存到GPU的内存中,以此来减少大量数据频繁读取及传递所浪费的不必要时间。[7]

    一个顶点数为209 083个,三角形数为235 967个的模型, 现在为了对比进行试验采用同一台电脑绘制图形。试验的结果可以从图 4中看到,使用glVertex函数渲染方法,平均只能达到1FPS, 而使用Display List,渲染帧数有了明显改善,达到平均16FPS的水平。最后采用VBO的方法,在相同环境下运行程序,这次帧数到达了60FPS,约为采用Display List方法的4倍,完全可以达到实时渲染的要求。[8]

    图 4 不同方法绘制模型效率对比
    图  4  不同方法绘制模型效率对比

    为了更好的处理用户交互问题,我们在应用中添加了3D拾取功能。

    图 5中可以看出,3D拾取原理非常简单。由用户在屏幕上长按或某种特定手势所产生的二维点坐标,求得该点在摄像机坐标系中的三维坐标,再进一步求出该点在虚拟世界坐标系统中的绝对坐标。有了两点的世界坐标后可以得到过两点的直线解析方程,利用方程和包围在每个构件外围的虚拟AABB包围盒就可以计算出距离A点最近距离的交点,以求出当前要选中的物体。[9]

    图 5 3D拾取原理图
    图  5  3D拾取原理图

    此技术的关键问题在于如何从屏幕上的点坐标映射到三维虚拟世界中。而获得AB两点在世界坐标系中坐标后,就可以遍历虚拟世界中所有可见物体的AABB包围盒坐标,检查直线AB是否与AABB盒有交点,以此判断并获取用户想要选取的物体属性。

    考虑到未来本解决方案会被布置到包括ios,android,wp8等移动平台上, 作者决定使用C/C++开发可跨平台使用的3D引擎,其余UI部分使用各平台原生语言开发。

    在短时间内自己开发一个可以作为产品显示的三维引擎是不现实的,经过一段时间的摸索,作者移植并使用了Irrlicht引擎作为本应用中的图形引擎。

    Irrlicht引擎是一个用C++书写的高性能3D引擎,可以应用于C++或NET环境中。其在设计框架的最初是采用了接口+实现的方式进行设计的,为了更好实现建筑显示效果,我们需要在原有功能代码上进行修改。

    首先,我们需要其原有框架接口上定制一个我们自有的接口方法, 用来识别我们自己定义的模型文件。在我们通过循环把模型数据读入内存并组成数组的形式传进接口进行显示。

    为了方便用户与程序交互,程序设计实现了用户手势功能,为了更新屏幕显示,捕捉到的手势方法和触点位置等参数须由接口传递相应参数到引擎中进行计算更新场景。

    作者基于本文中介绍的方案,已经成功在IOS以及安卓平台上成功部署了应用程序,图 7展示的是安卓平台上面的模型展示效果。

    图 7 显示在移动终端上的建筑模型
    图  7  显示在移动终端上的建筑模型

    为了实现在有限内存资源的条件下显示较为复杂的建筑模型,和实现跨平台的引擎解决方案,作者通过学习实践,使用了如下方法作为解决方案:

    1) 通过研究几种常见的3维模型的数据结构,作者在实现过程中使用文本格式存取模型数据,以方便对模型数据勘误,产品发布后使用二进制文件格式存储数据。

    2) VBO技术是解决CPU和GPU之间的传输短板问题。根据作者在一般配置的安卓平板上进行的试验表明,一个三角面在5万级别的模型,在正常运行时,设备帧数基本能够保证在30fps左右,基本能够满足实时渲染要求。

    3) 为了更好地处理用户交互问题,我们在应用中添加3D拾取技术,利用射线与物体包围盒的相交与否判断用户想要拾取的构件对象。

    4) 为了图形引擎部分能够跨平台使用,我们选用Irrlicht引擎作为基础框架并进行二次开发,使之能高效地在移动设备上显示建筑模型。

    5) 作者通过学习实践,利用以上方案完成了在IOS和安卓上的移动应用,并取得了初步成果。

  • 图  1   建筑系统设计系统组织图

    图  2   系统设计系统中的三维模型

    图  3   模型数据绘制流程图

    图  4   不同方法绘制模型效率对比

    图  5   3D拾取原理图

    图  7   显示在移动终端上的建筑模型

  • [1] 叶才卫.移动互联网浪潮下的智能手机发展浅析[J].移动通信, 2012.8.15 http://www.cqvip.com/QK/92163X/201215/42989632.html
    [2] 李犁, 邓雪原.基于BIM技术建筑信息标准的研究与应用[J].四川建筑科学研究, 2013.8.25 DOI: 10.3969/j.issn.1008-1933.2013.05.006
    [3] 马杰, 王晶, 黄秋萍.OpenGL ES在Android平台上3D绘图的两种方式分析与实现[J].硅谷 2013.6.23 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=ggyt201312099&dbname=CJFD&dbcode=CJFQ
    [4] 王金峰, 姚国清.三维模型文件中的OBJ格式在OpenGL中的输入与处理[J].电脑知识与技术, 2011.4.5 http://www.doc88.com/p-3029729346807.html
    [5] 林旅平. 基于Java3D的虚拟漫游系统研究[D]. 西安建筑科技大学, 2010
    [6] 韩永红, 刘文清, 叶斌.利用GPU进行实时大规模3D地形渲染的方法研究[J].计算机工程与应用, 2011.01.27 http://www.docin.com/p-528121299.html
    [7] 莫军, 陈雷霆. 基于OpenGL ES的3D图形绘制管线优化问题[J]. 计算机应用研究, 2007年第01期
    [8] 周剑, 唐卫清, 朱耀琴, 夏明, 黄晓剑. 基于可编程图形管线的大规模流程工厂模型多分辨率绘制方法[M]. 中国图象图形学报[J]2012. 3. 16
    [9] 吴亚. Android 3D游戏开发技术宝典[M]. 人民邮电出版社, ISBN 978-7-115-2777
  • 期刊类型引用(2)

    1. 赵虎. 基于BIM的住宅装配式装修部品模块设计. 黑龙江工业学院学报(综合版). 2024(09): 152-156 . 百度学术
    2. 黄斌,刘晨,徐云凤,谢玄,刘畅. 基于Revit和Dynamo的排水管网快速建模技术研究. 人民长江. 2024(S2): 174-177+184 . 百度学术

    其他类型引用(1)

图(6)
计量
  • 文章访问数:  1294
  • HTML全文浏览量:  681
  • PDF下载量:  11
  • 被引次数: 3
出版历程
  • 发布日期:  2013-09-30
  • 刊出日期:  2013-09-30

目录

/

返回文章
返回