基于浏览器的BIM模型实时渲染方法及装置与流程

文档序号:14504581阅读:713来源:国知局

本发明涉及到bim模型渲染方法,特别是涉及到一种基于浏览器的bim模型实时渲染方法及装置。



背景技术:

bim,全称为建筑信息模型(buildinginformationmodeling)或者建筑信息管理(buildinginformationmanagement)是以建筑工程项目的各项相关信息数据作为基础,建立起三维的建筑模型,通过数字信息仿真模拟建筑物所具有的真实信息。它具有信息完备性、信息关联性、信息一致性、可视化、协调性、模拟性、优化性和可出图性八大特点。

在建筑设计或工业设计中存在大量模型渲染的场景和需求,而目前这些模型渲染是基于桌面软件(如3dsmax,rhinoceros等)对个人计算机性能要求较高,间接提高了使用成本;基于桌面软件的话,无法在线渲染,工作过程如果出现的问题也无法及时沟通;而且,通过现有桌面软件创建的模型只有外观形体,并没有相应的几何和物理信息,对于模型的应用十分不便;同时,基于bim的渲染和可视效果又非常差,无法给用户逼真的真实体验。

中国专利201510080592.7公开了一种基于bim的移动终端建筑模型渲染性能优化方法和系统,方法包括:对第一bim模型进行轻量化处理,得到第三bim模型;在第三bim模型中仅对场景相机视角内可见的构件进行渲染。轻量化步骤包括:将第一bim模型导出为第二bim模型,并保存第一bim模型中构件的构件颜色材质信息;对第二bim模型的实体网格进行简化,并处理边界表示,得到第三bim模型。用于解决移动终端硬件性能不足而无法渲染bim模型的困难,能流畅无卡顿的在移动终端渲染bim模型。

上述技术方通过将bim模型轻量化,剔除可见模型后,在移动终端进行层级渲染来实现降低对于渲染终端的性能要求,但是无法在降低渲染终端的前提下,对于完整的bim模型进行有效快速的渲染,且需要依赖客户端的程序进行渲染。

因此,有必要设计一种基于浏览器的bim模型实时渲染方法,实现将bim建模过程中的计算以及渲染均放置在云端服务器进行处理和保存,并在终端的浏览器对bim模型进行渲染,在具备网络的情况下,便可实现模型的调取以及bim的在线渲染,解决了桌面bim建模软件对计算机的高性能要求、采购成本高、安装复杂的问题。



技术实现要素:

为了解决上述现有技术的缺陷,本发明的目的是提供一种基于浏览器的bim模型实时渲染方法及装置。

为达到上述目的,本发明的技术方案是:一种基于浏览器的bim模型实时渲染方法,包括以下步骤:

发送图形计算请求;

接收所述请求,并建立客户端与服务器的websocket;

处理所述请求,并创建计算实例;

利用所述计算实例生成模型;

反馈所述模型至客户端,并保存所述模型;

渲染所述模型;

展示渲染后的所述模型。

进一步地,所述渲染所述模型步骤,包括,

基于three.js框架内部的webgl在客户端浏览器中对所述模型进行渲染,渲染过程考虑所述模型的曲面、材质和着色。

进一步地,所述展示渲染后的所述模型步骤,包括,

从服务器下载材质信息,创建仿真的3d场景;

设定第一人称角色,创建操作控制;

创建全局灯光;

创建本地灯光;

设定对应的着色器。

进一步地,所述处理所述请求,并创建计算实例步骤,包括,

选择代理服务器;

创建计算实例;

利用websocket返回分发服务器所在的id。

进一步地,所述利用所述计算实例生成模型步骤,包括,

执行编辑操作,生成模型网格-三角面;

利用计算实例处理bim数据,结合模型网格-三角面进行组建,获取模型。

进一步地,所述反馈所述模型至客户端,并保存所述模型的步骤,包括,

利用websocket反馈模型至客户端;

将所述模型的文件存储于文件服务器内。

本发明还提出一种基于浏览器的bim模型实时渲染装置,包括发送单元、建立单元、创建单元、模型生成单元、存储单元、展示单元以及渲染单元;

所述发送单元,用于发送图形计算请求;

所述建立单元,用于接收所述请求,并建立客户端与服务器的websocket;

所述创建单元,用于处理所述请求,并创建计算实例;

所述模型生成单元,用于利用所述计算实例生成模型;

所述存储单元,用于反馈所述模型至客户端,并保存所述模型;

所述渲染单元,用于渲染所述模型;

所述展示单元,用于展示渲染后的所述模型。

进一步地,所述渲染单元包括渲染模块,所述渲染模块用于基于three.js框架内部的webgl在客户端浏览器中对所述模型进行渲染,渲染过程考虑所述模型的曲面、材质和着色;

所述展示单元包括仿真创建模块、查看设定模块、第一灯光创建模块、第二灯光创建模块和着色器设定模块,

所述仿真创建模块,用于从服务器下载材质信息,创建仿真的3d场景;

所述查看设定模块,用于设定第一人称角色,创建操作控制;

所述第一灯光创建模块,用于创建全局灯光;

所述第二灯光创建模块,用于创建本地灯光;

所述着色器设定模块,用于设定对应的着色器。

进一步地,所述创建单元包括选择模块、实例创建模块以及id返回模块;

所述选择模块,用于选择代理服务器;

所述实例创建模块,用于创建计算实例;

所述id返回模块,用于利用websocket返回分发服务器所在的id;

所述模型生成单元包括三角面生成模块以及组建模块,

所述三角面生成模块,用于执行编辑操作,生成模型网格-三角面;

所述组建模块,用于利用计算实例处理bim数据,结合模型网格-三角面进行组建,获取模型。

进一步地,所述存储单元包括模型反馈模块以及文件存储模块;

所述模型反馈模块,用于利用websocket反馈模型至客户端;

所述文件存储模块,用于将模型的文件存储于文件服务器内。

本发明的有益效果是:通过在服务器端对bim模型进行处理,并在浏览器进行渲染展示,解决目前在线渲染软件渲染速度慢,对计算机性能要求高的问题,将所有bim模型的存储和计算都放在云端服务器完成,浏览器只需要进行webgl渲染即可,大大降低计算机的性能,也满足不同用户,在不同区域,不同时间的渲染的需求;此外,基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

附图说明

图1为本发明具体实施例一提供的基于浏览器的bim模型实时渲染方法的流程图;

图2为本发明具体实施例一提供的选择和创建计算实例的具体流程图;

图3为本发明具体实施例一提供的利用计算实例生成模型的具体流程图;

图4为本发明具体实施例一提供的获取模型的具体流程图;

图5为本发明具体实施例一提供的保存模型的具体流程图;

图6为本发明具体实施例一提供的展示渲染后的模型的具体流程图;

图7为本发明具体实施例二提供的一种基于浏览器的bim模型实时渲染装置的结构方框图;

图8为本发明具体实施例二提供的创建单元的结构图;

图9为本发明具体实施例二提供的模型生成单元的结构图;

图10为本发明具体实施例二提供的组建单元的结构图;

图11为本发明具体实施例二提供的存储单元的结构图;

图12为本发明具体实施例二提供的展示单元的结构图。

具体实施方式

为阐述本发明的思想及目的,下面将结合附图和具体实施例对本发明做进一步的说明。

bim,全称为建筑信息模型(buildinginformationmodeling)或者建筑信息管理(buildinginformationmanagement)是以建筑工程项目的各项相关信息数据作为基础,建立起三维的建筑模型,通过数字信息仿真模拟建筑物所具有的真实信息。它具有信息完备性、信息关联性、信息一致性、可视化、协调性、模拟性、优化性和可出图性八大特点。

webgl,英文全称webgraphicslibrary,是一种3d绘图协议,这种绘图技术标准允许把javascript和opengles2.0结合在一起,通过增加opengles2.0的一个javascript绑定,webgl可以为html5canvas提供硬件3d加速渲染,这样web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3d场景和模型了,还能创建复杂的导航和数据视觉化。

three.js是一款运行在浏览器中的3d引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。

如图1~12所示的具体实施例,本实施例提供的基于浏览器的bim模型实时渲染方法,通过在服务器端对bim模型进行处理,并在浏览器进行渲染展示,解决目前在线渲染软件渲染速度慢,对计算机性能要求高的问题,将所有bim模型的存储和计算都放在云端服务器完成,浏览器只需要进行webgl渲染即可,大大降低计算机的性能,也满足不同用户,在不同区域,不同时间的渲染的需求;此外,基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

如图1所示,本实施例提供了基于浏览器的bim模型实时渲染方法,该方法包括:

s1、发送图形计算请求;

s2、接收请求,并建立客户端与服务器的websocket;

s3、处理请求,并创建计算实例;

s4、利用计算实例生成模型;

s5、反馈模型至客户端,并保存模型;

s6、渲染模型;

s7、展示渲染后的模型。

对于上述的s1步骤,在移动终端进行,即用户持有的客户端,可以为电脑、平板电脑或者智能手机等,也就是可以通过登录网页,导航常规网页内容,可以从数据库中选择模型,并且通过网页发送请求计算图形至云平台的移动终端。

具体的,网页将图形计算的请求通过指令的方式发送,这里的指令包括对象及其尺寸属性、相对位置信息、元件数量等。

对于上述的s2步骤至s5步骤均在基于云平台的服务器端完成,客户端不参与,满足用户可以在任何地点、任何时间、任何设备操作bim软件的需求,解决了传统桌面bim建模软件对计算机(客户端)的高性能要求、采购成本高、安装复杂等问题,降低了用户进行bim建模渲染的工具成本。

上述的s2步骤具体是服务器内的前端分发服务器完成的,接收了最初的用户图形计算请求后,先建立客户端与服务器的连接websocket,该websocket包括了客户端与服务器之间的操作连接。

操作可以具体包括:查看云平台的bim模型,浏览bim模型,操作编辑3d模型,查看和导航3d模型、ui控制(工具栏、轴网)处理。

建立客户端与服务器的连接websocket后,还需要将请求进行分发。

更进一步的,上述的s3步骤,处理所述请求,并选择和创建计算实例的步骤,包括以下具体步骤:

s31、选择代理服务器;

s32、创建计算实例;

s33、利用websocket返回分发服务器所在的id。

对于上述的s31步骤,由于代理服务器(也就是做计算和渲染的模块)个数较多,因此,在根据请求建立模型时,需要选择一个空闲的代理服务器进行计算服务。

对于上述的s32步骤,创建计算实例,依据请求内容进行数据的处理以及模型的组建。

对于上述的s33步骤,返回分发服务器的id,也就是返回具体驱动创建计算实例所在的服务器的id至客户端,避免再次请求时,重新获取id,导致id重复而造成模型创建出现失败的现象,且再次请求时无需获取id有利于提高创建的效率。

更进一步的,对于上述的s4步骤,利用所述计算实例生成模型的步骤,包括以下具体步骤:

s41、执行编辑操作,生成模型网格-三角面;

s42、利用计算实例处理bim数据,结合模型网格-三角面进行组建,获取模型。

对于上述的s41步骤,在图形计算请求中,都会带有编辑操作的请求,执行编辑操作,以及3d模型操作,即可生成模型网格-三角面,该模型网格-三角面是组成3d模型的基本单位,由三个点组成的三角面,再由不同的三角面组成3d模型,换而言之,三角面就是几何的形体。更进一步的,对于上述的s42步骤,利用计算实例处理bim数据,结合模型网格-三角面进行组建,获取模型的步骤,包括以下具体步骤:

s421、使用拉伸或布尔操作创建b-rep固体,且创建模型曲面,获取3d几何内核;

s422、组建并存储bim元素,以bim元素作为bim图元;

s423、根据模型网格-三角面,从bim元素中创建bim项目,bim项目作为bim模型。

上述的3d模型利用bim建模完成的,则为bim模型。

对于s421-s423步骤,bim模型的基础部分为3d几何内核,因此,在对bim模型进行建模时,需要先获取3d几何内核,再在3d几何内核的基础上进行进一步操作。

bim图元也就是构建bim模型的基本元素,比如门、窗、墙等,在组建bim元素的过程中,还需要保持bim元素的分类和族的层次关系,每个bim图元有2d/3d的几何表示,可以用曲面(tessellation)的方式来存储bim图元。

根据模型网格-三角面确定位置,结合建立的bim元素,将bim元素对应放置到模型网格-三角面所确定的位置,创建成bim项目,获取bim模型。

将bim模型所有的计算和存储都放在云平台上进行处理和保存,而客户端只是扮演命令的发送和展示的作用,在任何有网络的地方,用任何智能终端即可完成对繁重的bim软件计算的要求,满足任何地点,任何时间,任何设备操作bim软件的需求,解决了传统桌面bim建模软件对计算机的高性能要求、采购成本高、安装复杂等问题。

更进一步的,对于上述的s5步骤,反馈所述模型至客户端,并保存模型的步骤,包括以下具体步骤:

s51、利用websocket反馈模型至客户端;

s52、将模型的文件存储于文件服务器内。

上述的s51步骤,通过已建立的websocket反馈模型至客户端,客户端的用户可以通过websocket实现模型的查阅等其他操作。

而对于上述的s52步骤,文件服务器包括模型文件(用于存储模型文件本身)和ftp服务器,用计算实例在建立模型时打开和计算模型,并用于计算实例在建立模型后上传/下载模型文件。

存储模型文件是为了供再次请求图形计算时通过ftp将模型从文件服务器下载到代理服务器,并将模型文件存储的位置发送至计算实例,以建立计算实例与客户端的连接,在接收请求后,快速进行计算,提高建模效率。

分开数据库和文件服务器存储模型总体信息、用户信息以及模型文件本身,主要是用于明确调度路径,加快模型计算能力,如果都存储于数据库,会因为模型文件过大而导致调度和计算缓慢,分开的数据库和文件服务器在数据检索、备份、容灾方面都可以提高性能和效率。

更进一步的,上述的s6渲染模型步骤,具体包括步骤s61:基于three.js框架内部的webgl在客户端浏览器中对所述模型进行渲染,渲染过程考虑所述模型的曲面、材质和着色。

对于上述步骤s61,在客户端浏览器中通过three.js框架内部的webgl对bim模型进行实时渲染,实时渲染过程它考虑了曲面,材质,着色等等因素,并且会根据灯光亮度的变化、观察视角的变化或者构件位置移动对bim模型进行实时重新渲染仿真。

webgl,英文全称webgraphicslibrary,是一种3d绘图协议,这种绘图技术标准允许把javascript和opengles2.0结合在一起,通过增加opengles2.0的一个javascript绑定,webgl可以为html5canvas提供硬件3d加速渲染,这样web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3d场景和模型了,还能创建复杂的导航和数据视觉化。

对于步骤s7,可以通过调节第一人称视角来选择不同角度对渲染后的模型进行展示,且在以第一人称的移动后bim模型后(比如修改相机的位置),bim模型的3d场景会重现渲染,提供实时的动画/仿真。也可以在仿真中提供特定的动态效果:比如打开/关闭灯(在这个情况3d场景会重新计算)和移动一些构件,比如开/关门(在这个情况相应的算法提供实时的门曲面位置的修改并且场景会重现渲染,提供真实的体验)。具体的,上述的构件可以是在仿真使用时具有一定自由度的构件,例如上述的门、窗户等构件,也可以是仿真使用时无法移动的构件,例如柱子、门框、灯饰或楼梯等构件。门或者窗户在仿真使用时,可以绕轴转动一定角度,在客户端进行仿真渲染时,用户可能需要门或窗户转动一定角度,来查看整体的效果,这样bim模型的3d场景会重现渲染,提供实时的动画/仿真,在这个情况下,有相应的算法提供实时的门/窗户曲面位置的修改并且场景会重现渲染,提供真实的开关门体验。而在另一种情况下,会出现对于3d模型内其他不具备自由度构件进行移动也就是编辑bim模型,例如,移动柱子在建筑物中的位置,或者增加建筑物中柱子的数量,这种情况,bim模型的3d场景会重现渲染,提供实时的动画/仿真。

具体的,在仿真时进行开/关灯,或者调解灯光的角度亮度等操作,会直接改变bim模型的表面亮度,阴影位置、表面颜色以及不同构件之间的对比度,此时3d场景会重新计算,也就是对bim模型的3d场景会重现渲染,提供实时的动画/仿真。具体的

参照图6,具体的步骤s7包括以下步骤:

s71、从服务器下载材质信息,创建仿真的3d场景。

s72、设定第一人称角色,创建操作控制。

s73、创建全局灯光。

s74、创建本地灯光。

s75、设定对应的着色器。

对于步骤s71,材质信息为bim图元信息的一种,其包括了bim模型使用的贴图和材质参数,不同的贴图和材质参数最后得到的渲染效果不同,因此需要根据贴图和材质参数创建仿真的3d场景。

具体的,贴图分为凹凸贴图、自发光贴图,法线贴图,透明贴图等,每种贴图都具有不同的效果反应,如:凹凸贴图可通过机电管线渲染的处理后,使得物体的表面可呈现凹凸不平的效果;粗糙度贴图是由材质表面的金属性的纹理,使得物体粗糙度更加明显。如:当通过贴图通道,将这两种贴图以jpg格式图片的形式,导入并作为贴图材质用在构件上,则粗糙度贴图会让构件有粗糙效果,而凹凸贴图会让凹凸的位置呈现的更加明显,这两种贴图会让粗糙的物体(石头、砖、皮革等)在细节上会显得更加真实细腻。材质的设置可以达到模型构件能具有更加真实的效果,而形成的辅助功能,在设置不同贴图的属性参数、uv参数、角度等来实现目的,如:当导入贴图之后,设置凹凸比例、折射率、环境强度等属性参数,则会相应对材质的粗糙反应、对光源而影响的折射效果、以及环境对材质产生的强弱等产生变化,材质会根据设置属性参数而变化最终呈现的效果,随之设置展uv参数,可以将贴图平铺展开,使得贴图更加舒展自然,或者设置角度参数,可将贴图以360度去旋转角度,改变贴图显示的方式。

对于步骤s72,第一人称角色角度的控制由键盘的按键来控制,例如“w,a,s,d”键或者键盘的上、下、左、右键,并以人的视角进行视图漫游,同时使用“pageup”和“pagedown”调整视角高度,“q,e”进行左、右旋转视图,鼠标中键进行环视视图来控制第一人称角色的视角,当然,也可以使用其他按键来实现上述的功能,具体可以根据用户使用习惯设置。在第一人称角色的角度发生变化后,比如修改相机的位置进行视图漫游,整个3d场景会重新渲染,提供实时的动画/仿真。

对于步骤s73,全局灯光可以为环境光或平行光(太阳光)。环境光为设置有关模型的环境光,这是非直接的光源;平行光为设置场景的平行光源(太阳光),这是直接光源。其中平行光的方位角和倾角在平行光中,直接确定模拟太阳光源在整个场景中的位置和效果。方位角代表太阳位置的第一个角度,也就是直接光源的位置(可以模拟太阳在一天中的任意时间的角度),倾角代表太阳位置的第二个角度,可以认为是“北”或“南”。环境光和平行光可通过设置光源强度、光源颜色和阴影,去模拟真实生活中,太阳对物体产生的反应,模拟太阳光的最终显示效果,直接影响整个项目的漫游体验。

对于步骤s74,本地灯光包括聚光源和点光源。本地光源是灯具模型所产生光源,一般用于室内较多,聚光源以锥型的形式向当前照射的位置发射光源,光源则以圆点的形式向四周发射光源,然后通过设置光源形状、光源强度、阴影半径,可对当前环境或构件,模拟真实的生活空间。如:在户型内放置灯具模型的同时选择灯光,然后灯光会对附近的模型构件产生阴影,聚光源会对当前可照射的物体产生阴影,而点光源则会对四周所有的物体都可产生阴影,它们决定光源最后对物体产生的光源形状和阴影影响,然后设置光源强度决定光源照射物体的所产生的光的强烈,设置阴影半径决定光对物体产生的阴影的范围大小,这一类的操作可以使得在室内漫游时,提升仿真渲染的质量,具有真实生活的漫游体验。

对于步骤s75,通过特定的着色器(gpu设备的计算程序)创建如环境光遮蔽特定的仿真效果,或仿真中天空太阳的位置。用于描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,解决或改善漏光、飘和阴影不实等问题,改善场景中缝隙、褶皱与墙角、角线、暗部阴影以及细小物体等的表现不清晰问题。

在这种基础上,也可以在仿真中提供特定的动态效果:比如打开/关闭灯,具体为在模型场景中放置的照明设备,在漫游时鼠标左键点击可关闭照明设备的光源,再次点击,则会开启,同时在这个情况下会对3d场景重新计算;又或者移动一些构件,比如开/关门,在这个情况下,相应的算法提供实时的门曲面位置的修改并且场景会重现渲染,提供真实的体验。

具体的,bim模型由设计人员采用bim软件进行设计,并包含bim模型数据的设计方案模型。bim模型数据包括:几何内核信息、bim图元信息和bim模型信息。几何内核包含有bim模型构件的形状,尺寸,大小等参数;bim图元包含bim模型构件的物理参数,如材质,位置关系,逻辑关系和扣减关系等;bim模型,创建的bim项目,即整合的项目设计bim方案。

服务器端将对应的bim模型数据通过websocket发送回客户端,并在浏览器上展示给用户查看,并用于继续的编辑和查看。bim模型数据中包括有构件的几何和物理信息,因此基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

下面本提出本发明一种具体应用过程:

设计人员在设计过程中采用bim软件进行设计,并搭建包含bim模型数据的设计方案模型,该bim模型数据包括几何内核信息、bim图元信息和bim模型信息。几何内核包含有bim模型构件的形状,尺寸,大小等参数;bim图元包含bim模型构件的物理参数,如材质,位置关系,逻辑关系和扣减关系等;bim模型,创建的bim项目,即整合的项目设计bim方案。

将此bim模型数据存储于文件服务器中,通过将模型构件的曲面从服务器端下载到设计人员的客户端浏览器中,然后设计人员切换到仿真页后,进行后续渲染。

具体的,文件服务器中存储模型文件,数据库存储模型总体信息、用户信息等。分开数据库和文件服务器存储模型总体信息、用户信息以及模型文件本身,主要是用于明确调度路径,加快模型计算能力,分开的数据库和文件服务器在数据检索、备份、容灾方面都可以提高性能和效率。

将bim模型所有的计算和存储都放在云平台上进行处理和保存,而客户端只是扮演命令的发送和展示的作用,在任何有网络的地方,用任何智能终端即可下载需要的bim模型数据进行展示并渲染。

相同的bim模型在3d建模中作为仿真使用,不需要特殊数据来翻译/转换,直接在网页浏览器中直接使用webgl对bim模型执行渲染,即在创建模型后,可直接切换至仿真渲染场景,直接查看模型渲染的真实效果,过程简单,对客户端的性能低。

以下提出在浏览器中使用webgl对bim模型执行渲染后展示的具体应用场景:

a、创建仿真的3d场景:从服务器端下载bim模型的材质信息,材质信息包括贴图和材质的设置,然后利用材质信息创建仿真的3d场景。

b、创建第一人称角色和灯光:设定一个第一人称角色,创建特定的控制,创建全局的灯光,创建本地灯光。

c、创建遮蔽效果:通过特定的着色器用于创建如环境光遮蔽特定的仿真效果,或仿真天空太阳的位置。

上述过程通过对bim模型进行仿真控制、动态仿真以及可视化效果调节,并对渲染后的bim模型的实时可视化也就是展示。上述的所有创建过程都是通过three.js框架进行渲染的,three.js框架基于其内部的webgl,在渲染过程可以更好的考虑bim模型的曲面,材质和着色等特殊效果。

本方案通过在服务器端对bim模型进行处理,并在客户端的浏览器进行渲染展示,解决目前在线渲染软件渲染速度慢,对计算机性能要求高的问题,将所有bim模型的存储和计算都放在云端服务器完成,浏览器只需要进行webgl渲染即可,大大降低计算机的性能,也满足不同用户,在不同区域,不同时间的渲染的需求;此外,基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

如图7所示,本实施例还提供了基于浏览器的bim模型实时渲染装置,其包括发送单元1、建立单元2、创建单元3、模型生成单元4、存储单元5、渲染单元6和展示单元7。

发送单元1,用于发送图形计算请求。

建立单元2,用于接收请求,并建立客户端与服务器的websocket。

创建单元3,用于处理请求,并创建计算实例。

模型生成单元4,用于利用计算实例生成模型。

存储单元5,用于反馈模型至客户端,并保存模型。

渲染单元6,用于渲染模型。

展示单元7,用于展示渲染后的模型。

在移动终端进行,即用户持有的客户端,可以为电脑、平板电脑或者智能手机等,也就是可以通过登录网页,导航常规网页内容,可以从数据库中选择模型,发送单元1具体是通过网页发送请求计算图形至云平台。

具体的,网页将图形计算的请求通过指令的方式发送,这里的指令包括对象及其尺寸属性、相对位置信息、元件数量等。

上述的建立单元2、创建单元3、模型生成单元4以及反馈单元5均在基于云平台的服务器端内,客户端不参与,满足用户可以在任何地点、任何时间、任何设备操作bim软件的需求,解决了传统桌面bim建模软件对计算机(客户端)的高性能要求、采购成本高、安装复杂等问题,降低了用户进行bim建模渲染的工具成本。

建立单元2具体是服务器内的前端分发服务器内,接收了最初的用户图形计算请求后,先建立客户端与服务器的连接websocket,该websocket包括了客户端与服务器之间的操作连接,具体包括:查看云平台的cad,查看和导航3d模型、ui控制(工具栏、轴网)处理。

建立客户端与服务器的连接websocket后,还需要将请求进行分发,分发请求到一个可用的http服务器处理常规的网页内容以及创建计算实例。

更进一步的,参照图8,上述的创建单元3包括选择模块32、实例创建模块33以及id返回模块34。

选择模块32,用于选择代理服务器。

实例创建模块33,用于创建计算实例。

id返回模块34,用于利用websocket返回分发服务器所在的id。

由于代理服务器(也就是做计算和渲染的模块)个数较多,因此,在根据请求建立模型时,需要利用选择模块32选择一个代理服务器进行计算服务。

实例创建模块33创建计算实例,是依据请求内容进行数据的处理以及模型的组建。

id返回模块34返回分发服务器的id,是返回具体驱动创建计算实例所在的服务器的id至客户端,避免再次请求时,重新获取id,导致id重复而造成模型创建出现失败的现象,且再次请求时无需获取id有利于提高创建的效率。

参照图9,另外,上述的模型生成单元4包括三角面生成模块41以及组建模块42。

三角面生成模块41,用于执行编辑操作,生成模型网格-三角面。

组建模块42,用于利用计算实例处理bim数据,结合模型网格-三角面进行组建,获取模型。

在图形计算请求中,都会带有编辑操作的请求,执行编辑操作,以及3d模型操作,即可利用三角面生成模块41生成模型网格-三角面,该模型网格-三角面是组成3d模型的基本单位,由三个点组成的三角面,再由不同的三角面组成3d模型,换而言之,三角面就是几何形状。

更进一步的,参照图10,上述的组建模块42包括内核获取模块421、bim图元获取模块422以及模型获取模块423。

内核获取模块421,用于使用拉伸或布尔操作创建b-rep固体,且创建模型曲面,获取3d几何内核。

bim图元获取模块422,用于组建并存储bim元素,以bim元素作为bim图元。

模型获取模块423,用于根据模型网格-三角面,从bim元素中创建bim项目,bim项目作为bim模型。

上述的3d模型利用bim建模完成的,则为bim模型。

内核获取模块421主要是创建bim模型的基础部分-3d几何内核,因此,在对bim模型进行建模时,需要先获取3d几何内核,,再在3d几何内核的基础上进行进一步操作。

bim图元获取模块422主要是创建bim图元,bim图元也就是构建bim模型的基本元素,比如门、窗、墙等,在组建bim元素的过程中,还需要保持bim元素的分类和族的层次关系,每个bim图元有2d/3d的几何表示,可以用曲面(tessellation)的方式来存储bim图元。

模型获取模块423根据模型网格-三角面确定位置,结合建立的bim元素,将bim元素对应放置到模型网格-三角面所确定的位置,创建成bim项目,获取bim模型。

更进一步的,参照图11,上述的存储单元5包括模型反馈模块51、数据存储模块52以及文件存储模块53。

模型反馈模块51,用于利用websocket反馈模型至客户端。

文件存储模块53,用于将模型的文件存储于文件服务器内。

模型反馈模块51通过已建立的websocket反馈模型至客户端,客户端的用户可以通过websocket实现模型的查阅等其他操作。

文件存储模块53是将模型的文件存储于文件服务器内,文件服务器包括模型文件(只存储模型文件本身)和ftp服务器,用计算实例在建立模型时打开和计算模型,并用于计算实例在建立模型后上传/下载模型文件。

分开数据库和文件服务器存储模型总体信息、用户信息以及模型文件本身,主要是用于明确调度路径,加快模型计算能力,如果都存储于数据库,会因为模型文件过大而导致调度和计算缓慢,分开的数据库和文件服务器在数据检索、备份、容灾方面都可以提高性能和效率。

更进一步地,渲染单元6还包括渲染模块,渲染模块用于基于three.js框架内部的webgl在客户端浏览器中对所述模型进行渲染,渲染过程考虑所述模型的曲面、材质和着色。

在客户端浏览器中通过three.js框架内部的webgl对bim模型进行渲染,渲染过程它考虑了曲面,材质,着色等等因素,并且会根据灯光亮度的变化、观察视角的变化或者构件位置移动对bim模型进行实时重新渲染仿真。

对于展示单元7,可以通过调节第一人称视角来选择不同角度对渲染后的模型进行展示,且在以第一人称的移动后bim模型后,(比如修改相机的位置)bim模型的3d场景会重现渲染,提供实时的动画/仿真。也可以在仿真中提供特定的动态效果:比如打开/关闭灯(在这个情况3d场景会重新计算)和移动一些构件,比如开/关门(在这个情况相应的算法提供实时的门曲面位置的修改并且场景会重现渲染,提供真实的体验)。

具体的,上述的构件可以是在仿真使用时具有一定自由度的构件,例如上述的门、窗户等构件,也可以是仿真使用时无法移动的构件,例如柱子、门框、灯饰或楼梯等构件。门或者窗户在仿真使用时,可以绕轴转动一定角度,在客户端进行仿真渲染时,用户可能需要门或窗户转动一定角度,来查看整体的效果,这样bim模型的3d场景会重现渲染,提供实时的动画/仿真,在这个情况下,有相应的算法提供实时的门/窗户曲面位置的修改并且场景会重现渲染,提供真实的开关门体验。而在另一种情况下,会出现对于3d模型内其他不具备自由度构件进行移动也就是编辑bim模型,例如,移动柱子在建筑物中的位置,或者增加建筑物中柱子的数量,这种情况,bim模型的3d场景会重现渲染,提供实时的动画/仿真。

具体的,在仿真时进行开/关灯,或者调解灯光的角度亮度等操作,会直接改变bim模型的表面亮度,阴影位置、表面颜色以及不同构件之间的对比度,此时3d场景会重新计算,也就是对bim模型的3d场景会重现渲染,提供实时的动画/仿真。

参照图12,展示单元包括仿真创建模块71、查看设定模块72、第一灯光创建模块73、第二灯光创建模块74和着色器设定模块75。

仿真创建模块71,用于从服务器下载材质信息,创建仿真的3d场景。

查看设定模块72,用于设定第一人称角色,创建操作控制。

第一灯光创建模块73,用于创建全局灯光。

第二灯光创建模块74,用于创建本地灯光。

着色器设定模块75,用于设定对应的着色器。

对于仿真创建模块71,材质信息为bim图元信息的一种,其包括了bim模型使用的贴图和材质参数,不同的贴图和材质参数最后得到的渲染效果不同,因此需要根据贴图和材质参数创建仿真的3d场景。

具体的,贴图分为凹凸贴图、自发光贴图,法线贴图,透明贴图等,每种贴图都具有不同的效果反应,如:凹凸贴图可通过机电管线渲染的处理后,使得物体的表面可呈现凹凸不平的效果;粗糙度贴图是由材质表面的金属性的纹理,使得物体粗糙度更加明显。如:当通过贴图通道,将这两种贴图以jpg格式图片的形式,导入并作为贴图材质用在构件上,则粗糙度贴图会让构件有粗糙效果,而凹凸贴图会让凹凸的位置呈现的更加明显,这两种贴图会让粗糙的物体(石头、砖、皮革等)在细节上会显得更加真实细腻。材质的设置可以达到模型构件能具有更加真实的效果,而形成的辅助功能,在设置不同贴图的属性参数、uv参数、角度等来实现目的,如:当导入贴图之后,设置凹凸比例、折射率、环境强度等属性参数,则会相应对材质的粗糙反应、对光源而影响的折射效果、以及环境对材质产生的强弱等产生变化,材质会根据设置属性参数而变化最终呈现的效果,随之设置展uv参数,可以将贴图平铺展开,使得贴图更加舒展自然,或者设置角度参数,可将贴图以360度去旋转角度,改变贴图显示的方式。

对于查看设定模块72,第一人称角色角度的控制由键盘的按键来控制,例如“w,a,s,d”键或者键盘的上、下、左、右键,并以人的视角进行视图漫游,同时使用“pageup”和“pagedown”调整视角高度,“q,e”进行左、右旋转视图,鼠标中键进行环视视图来控制第一人称角色的视角,当然,也可以使用其他按键来实现上述的功能,具体可以根据用户使用习惯设置。在第一人称角色的角度发生变化后,比如修改相机的位置进行视图漫游,整个3d场景会重新渲染,提供实时的动画/仿真。

对于第一灯光创建模块73,全局灯光可以为环境光或平行光(太阳光)。环境光为设置有关模型的环境光,这是非直接的光源;平行光为设置场景的平行光源(太阳光),这是直接光源。其中平行光的方位角和倾角在平行光中,直接确定模拟太阳光源在整个场景中的位置和效果。方位角代表太阳位置的第一个角度,也就是直接光源的位置(可以模拟太阳在一天中的任意时间的角度),倾角代表太阳位置的第二个角度,可以认为是“北”或“南”。环境光和平行光可通过设置光源强度、光源颜色和阴影,去模拟真实生活中,太阳对物体产生的反应,模拟太阳光的最终显示效果,直接影响整个项目的漫游体验。

对于第二灯光创建模块74,本地灯光包括聚光源和点光源。本地光源是灯具模型所产生光源,一般用于室内较多,聚光源以锥型的形式向当前照射的位置发射光源,光源则以圆点的形式向四周发射光源,然后通过设置光源形状、光源强度、阴影半径,可对当前环境或构件,模拟真实的生活空间。如:在户型内放置灯具模型的同时选择灯光,然后灯光会对附近的模型构件产生阴影,聚光源会对当前可照射的物体产生阴影,而点光源则会对四周所有的物体都可产生阴影,它们决定光源最后对物体产生的光源形状和阴影影响,然后设置光源强度决定光源照射物体的所产生的光的强烈,设置阴影半径决定光对物体产生的阴影的范围大小,这一类的操作可以使得在室内漫游时,提升仿真渲染的质量,具有真实生活的漫游体验。

对于着色器设定模块75,通过特定的着色器(gpu设备的计算程序)创建如环境光遮蔽特定的仿真效果,或仿真中天空太阳的位置。用于描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,解决或改善漏光、飘和阴影不实等问题,改善场景中缝隙、褶皱与墙角、角线、暗部阴影以及细小物体等的表现不清晰问题。

在这种基础上,也可以在仿真中提供特定的动态效果:比如打开/关闭灯,具体为在模型场景中放置的照明设备,在漫游时鼠标左键点击可关闭照明设备的光源,再次点击,则会开启,同时在这个情况下会对3d场景重新计算;又或者移动一些构件,比如开/关门,在这个情况下,相应的算法提供实时的门曲面位置的修改并且场景会重现渲染,提供真实的体验。

具体的,bim模型由设计人员采用bim软件进行设计,并包含bim模型数据的设计方案模型。bim模型数据包括:几何内核信息、bim图元信息和bim模型信息。几何内核包含有bim模型构件的形状,尺寸,大小等参数;bim图元包含bim模型构件的物理参数,如材质,位置关系,逻辑关系和扣减关系等;bim模型,创建的bim项目,即整合的项目设计bim方案。

服务器端将对应的bim模型数据通过websocket发送回客户端,并在浏览器上展示给用户查看,并用于继续的编辑和查看。bim模型数据中包括有构件的几何和物理信息,因此基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

下面本提出本发明渲染单元6的一种具体应用过程:

设计人员在设计过程中采用bim软件进行设计,并搭建包含bim数据的设计方案模型,该bim模型数据包括模型数据的设计方案模型,该bim模型数据包括几何内核信息、bim图元信息和bim模型信息。几何内核包含有bim模型构件的形状,尺寸,大小等参数;bim图元包含bim模型构件的物理参数,如材质,位置关系,逻辑关系和扣减关系等;bim模型,创建的bim项目,即整合的项目设计bim方案。将此bim模型数据存储于文件服务器中,通过将模型构件的曲面从服务器端下载到设计人员的客户端浏览器中,然后设计人员切换到仿真页后,进行后续渲染。

具体的,文件服务器中存储模型文件,数据库存储模型总体信息、用户信息等。分开数据库和文件服务器存储模型总体信息、用户信息以及模型文件本身,主要是用于明确调度路径,加快模型计算能力,分开的数据库和文件服务器在数据检索、备份、容灾方面都可以提高性能和效率。

将bim模型所有的计算和存储都放在云平台上进行处理和保存,而客户端只是扮演命令的发送和展示的作用,在任何有网络的地方,用任何智能终端即可下载需要的bim模型数据进行展示并渲染。

相同的bim模型在3d建模中作为仿真使用,不需要特殊数据来翻译/转换,直接在网页浏览器中直接使用webgl对bim模型执行渲染,即在创建模型后,可直接切换至仿真渲染场景,直接查看模型渲染的真实效果,过程简单,对客户端的性能低。

具体的,在浏览器中使用webgl对bim模型执行渲染展示的过程包括:

a、创建仿真的3d场景:从服务器端下载bim模型的材质信息,材质信息包括贴图和材质的设置,然后利用材质信息创建仿真的3d场景。

b、创建第一人称角色和灯光:设定一个第一人称角色,创建特定的控制,创建全局的灯光,创建本地灯光(聚光源和点光源)。

c、创建遮蔽效果:通过特定的着色器用于创建如环境光遮蔽特定的仿真效果,或仿真天空太阳的位置。

展示单元7的渲染展示过程是通过对bim模型进行仿真控制、动态仿真以及可视化效果调节,并通过展示单元来bim模型进行实时可视化也就是展示。上述的所有创建过程都是通过three.js框架进行渲染的,three.js框架基于其内部的webgl,在渲染过程可以更好的考虑bim模型的曲面,材质和着色等特殊效果。

本方案通过在服务器端对bim模型进行处理,并在客户端的浏览器进行渲染展示,解决目前在线渲染软件渲染速度慢,对计算机性能要求高的问题,将所有bim模型的存储和计算都放在云端服务器完成,浏览器只需要进行webgl渲染即可,大大降低计算机的性能,也满足不同用户,在不同区域,不同时间的渲染的需求;此外,基于bim模型的渲染也解决了目前渲染中构件没有几何和物理信息问题的同时,也提供了渲染效果更好,体验更加逼真的裸眼虚拟现实的功能,使得用户在看到逼真渲染效果的同时,可以实时查看到构件的几何和物理信息等所需要的参数。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

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