一种矢量图形轻量绘制及BIM协同实现方法及其装置与流程

文档序号:17997749发布日期:2019-06-22 01:25阅读:467来源:国知局
一种矢量图形轻量绘制及BIM协同实现方法及其装置与流程

本发明涉及计算机绘图领域,尤其是涉及一种矢量图形轻量绘制及bim协同实现方法及其装置。



背景技术:

建筑施工过程中,施工人员需要携带纸质图纸,或者将图纸存储在电脑中携带至项目现场,非常不方便。近年来,随着信息技术的发展以及bim技术的广泛应用,施工人员往往希望能随时随地查看图纸并指派任务,但手机打开想要比较大的图纸就比较困难,首先打开速度慢,然后容易出现内存、帧数不足的问题,同时也没有合适的协同方法方便施工交流。



技术实现要素:

本发明的所要解决的是现有技术中手机打开图纸比较困难,打开速度慢,容易出现内存、帧数不足的技术问题。

本发明提出了一种矢量图形轻量绘制及bim协同实现方法,包括以下步骤:

s1:遍历图纸数据库,将cad图纸的每一个构件都拆解成包括点、线条及三角片的图元信息,作为显卡绘制的基本单元;

s2:将拆解的图元信息按照其绘制属性进行分类整合,组织位置信息,所述绘制属性包括图层、颜色;

s3:基于opengl以及opengles的绘制调度,使用vbo、vao保存包含坐标及绘制顺序的顶点信息,然后提交着色器。

进一步的,所述步骤s2中,采用场景图的方式组织位置信息,将相同材质颜色的点的坐标信息归到一个节点之下,每一个节点之下包括点、线、三角片三种类型的链表存储位置信息。

进一步的,所述步骤s2中,组织位置信息通过hashmap保存,类型作为索引,点信息保存在链表中作为键值。

进一步的,所述单个点链表的长度为1000,线链表的长度为60000,三角面链表的长度为90000。

进一步的,所述步骤s3中,所述着色器包括用于设置图形顶点的位置的顶点着色器和用于设置图形绘制颜色的片元着色器,将传入的顶点坐标根据顶点着色器装配成几何图形,再通过片元着色器之间装配好的几何图形转化成片元信息。

进一步的,根据图纸中各构件类型中保存的信息将每一个构件都拆解成包括点、线条及三角片的图元信息,点通过x,y,z三维坐标值表示,线条为两个顶点连接起来形成的图元信息,三角形则从第1个点开始,每三个点一组画一个三角形,三角形之间相互独立,其图元类型参数为gl_triangles;从第三个点开始,每点与前面的两个点组合画一个三角形,即线性连续三角形串,其图元类型参数为gl_triangle_strip;从第三个点开始,每点与前一个点和第一个点组合画一个三角形,即扇形连续三角形,其图元类型参数gl_triangle_fan。

进一步的,用户不处于操作状态时,opengl线程停止运行。

进一步的,用户点击图纸任意位置可添加标记点信息。

另一方面,本发明提出了一种矢量图形轻量绘制及bim协同实现装置,包括:

构件拆解模块,所述构件拆解模块将将cad图纸的每一个构件都拆解成包括点、线条及三角片的图元信息,作为显卡绘制的基本单元;

图元信息分类整合模块以及位置信息组织模块,所述图元信息分类整合模块将拆解的图元信息按照其绘制属性进行分类整合;

顶点信息保存模块以及着色器模块。

进一步的,所述着色器包括用于设置图形顶点位置的顶点着色器模块和用于设置图形绘制颜色的片元着色器模块,还包括几何图形装配模块、片元信息转化模块,所述几何图形装配模块、片元信息转化模块在顶点着色器和片元着色器之间将传入的顶点坐标根据需要装配成几何图形,将装配好的几何图形转化成片元信息。

本发明同现有技术相比具有以下优点及效果:

1、方便施工人员利用手机随时随地打开cad图纸;

2、实现方便的施工交流;

3、有利于加快施工进度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种矢量图形轻量绘制及bim协同实现方法示意图。

具体实施方式

实际工作中,施工人员往往希望能随时随地查看图纸并指派任务,但手机打开想要比较大的图纸就比较困难,首先打开速度慢,然后容易出现内存、帧数不足的问题,同时也没有合适的协同方法方便施工交流,为解决这些问题,本发明通过以下技术方案实现上述目的:

图纸拆解:将cad图纸的每一个绘制物体拆分成点、线条以及三角片,这是显卡绘制的基本单元。

数据整合:将拆解的图元信息按照其绘制属性如图层、颜色等进行分类整合,组织成场景图。这样做的目的是为了减少opengl接口的调用次数以及尽可能的减少drawcall,大大提高了绘制效率。

图形绘制:基于opengl以及opengles的绘制调度,使用vbo(vertexbufferarray)、vao(vertexbufferobjects)保存顶点信息,然后提交着色器,删除内存部分,减少内存消耗。其中着色器程序包括顶点着色器和片元着色器,顶点着色器用于设置图形顶点的位置,片元着色器用于设置图形绘制的颜色,在顶点着色器和片元着色器之间,还存在着图形装配过程和光栅化过程,图形装配过程将传入的顶点坐标根据需要装配成特定的几何图形,光栅化过程将装配好的几何图形转化成片元。

图形操作:首先,在用户不处于操作状态时,opengl线程会停止运行,只在有操作的时候才会进行绘制,这样大大节约了电量,也给cpu提供了更多空闲时间,使得其它界面操作能够快速响应。通过矩阵操作控制摄像机视角,实现任意比例缩放、平移效果。

协同操作:用户可于图纸的任意位置添加标记实体并添加任务信息,任务信息关联id存放在服务器中,发送给他人后可直接查看。

下面对本发明作进一步说明:

针对不同平台创建context,pc使用opengl,android与ios使用opengles2.0。

遍历图纸数据库,根据图纸中构件类型,如acdbline(直线)、acdbpolyline(多段线)、acdbarc(弧线)等其其中保存的信息(长度、宽度等)将cad图纸的每一个构件都拆解成包括点、线条及三角片的图元信息,点通常用一个形如(x,y,z)的三维坐标值表示,线条是由两个顶点连接起来形成的图元,对于三角形,从第1个点开始,每三个点一组画一个三角形,三角形之间是独立的,其图元类型参数为gl_triangles;从第三个点开始,每点与前面的两个点组合画一个三角形,即线性连续三角形串,其图元类型参数为gl_triangle_strip;从第三个点开始,每点与前一个点和第一个点组合画一个三角形,即扇形连续三角形,其图元类型参数gl_triangle_fan。期间,为保证在移动平台上的内存处于可接受的范围内,可以对复杂的线型和填充作简化处理,线宽可以适当忽略。将这些图元通过光栅化、着色等一系列流程后转为屏幕上的像素点通过显卡绘制。

采用场景图的方式组织位置信息,对于相同材质颜色的点信息归到一个节点之下,每一个节点之下有点、线、三角面三种类型的链表存储位置信息,这样的好处是减少了opengl状态的切换,由于opengl是一个状态机,这样可以极大提高绘制效率。对于链表来说,一次性提交足够多的点信息可以减少接口的调用次数,加快渲染。根据测试,单个点链表的长度为1000,线链表的长度为60000,三角面链表的长度为90000可以保证较好的绘制速率。在链表内部,采用vbo(vertexbufferarray)与vao(vertexbufferobjects)保存点的位置信息,vbo和vao是直接保存在显存中的顶点缓存,这样调用opengl接口时,将不必从内存再传输数据到显存,加快了绘制效率。同时,所有信息在显存存储完毕后,可以将内存部分的删除,极大的减少了内存消耗。绘制方面使用static_draw静态绘制,着色器使用最简单的代码,保证最快的绘制方式。

程序除了在第一次绘制之后,除非用户操作,否则停止绘制,挂起opengl绘制线程,这样减少cpu运行,节约电量,加快其它界面的反应速度。

用户点击图纸任意位置可添加标记点级信息,记录了点位置以及此时的视口信息保存在服务器中,当别的用户打开图纸时可根据图纸id和标记id从服务器下载对应信息添加标记,实时交流。

此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1