一种电力电缆隧道三维全景监测系统和方法与流程

文档序号:13619696阅读:408来源:国知局

本发明涉及电子技术领域,特别是一种电力电缆隧道三维全景监测系统和方法。



背景技术:

当前三维场景应用越来越广泛,而应用的建模技术也多种多样,普遍包括:传统的3dmax建模、以及最近新兴的基于bim建筑模型、激光雷达扫描建模、航空测绘三维建模等技术。

现有的电力系统由于广泛采用电缆隧道来布设电力电缆,现有的这些三维场景建模技术虽然有很多优点,但是应用在电力电缆隧道三维全景监测领域时则普遍存在着周期长、工作量大、成本高的问题,不完全适合电力电缆隧道监控系统。同时,这种问题不仅仅存在于电力电缆隧道的三维全景监测,还存在于其他的隧道系统,例如市政综合管廊。



技术实现要素:

针对现有技术中存在的问题,本发明实施例的目的是提供一种能够对各种管路和隧道进行三维监测的电力电缆隧道三维全景监测系统和方法。

为了实现上述目的,本发明实施例提出了一种电力电缆隧道三维全景监测系统,包括:

场景(scene)构建模块、相机(camera)构建模块、渲染器(renderer)模块;其中所述场景构建模块用于构建隧道的模型以生成场景;其中所述相机构建模块用于将场景中的物体模拟为规则几何体形状后通过正交投影相机和/或透视投影相机投射到场景构建模块构建的场景中;其中所述渲染器(renderer)模块用于对场景构建模块和相机构建模块构建的场景和物体进行渲染以得到最终画面。

其中,所述系统还包括:光影投影模块、纹理贴图模块、方位控制模块;

所述光影投影模块用于在场景和物体上营造出光影效果;所述光影投影模块执行以下操作以生成光投影:开启渲染器的地图阴影,然后启用光线的投影,再把模型设置为生成投影,最后把模型设置为接收阴影以生成投影;

所述纹理贴图模块用于利用预设的三维模型的图片在模型表面进行贴图;

所述方位控制模块用于在场景中生成第一视角的移动相机,以根据使用者对于相机的移动速度和视角变化,将对应位置的场景和物体进行显示。

其中,所述系统还包括对象拾取模块,用于通过光线拾取场景中的物体,所述对象拾取模块执行以下操作:

接收使用者输入的位置信息,以判断对应位置的光线是否与场景中制定的物体集合相交,如果是则触发该光线上绑定的事件。

进一步的,本发明实施例还提出了一种电力电缆隧道三维全景监测方法,包括:

构建隧道的模型以生成场景;

将场景中的物体模拟为规则几何体形状后通过正交投影相机和/或透视投影相机投射到场景构建模块构建的场景中;

对场景构建模块和相机构建模块构建的场景和物体进行渲染以得到最终画面。

其中,还包括:

利用环境光、平行光、或者点光源在场景和物体上营造出光影效果;

开启渲染器的地图阴影,然后启用光线的投影,再把模型设置为生成投影,最后把模型设置为接收阴影以生成投影。

其中,还包括:利用预设的三维模型的图片在模型表面进行贴图。

其中,还包括:在场景中生成第一视角的移动相机,以根据使用者对于相机的移动速度和视角变化,将对应位置的场景和物体进行显示。

其中,还包括:通过光线拾取场景中的物体,所述对象拾取模块执行以下操作:接收使用者输入的位置信息,以判断对应位置的光线是否与场景中制定的物体集合相交,如果是则触发该光线上绑定的事件。

本发明的上述技术方案的有益效果如下:上述技术方案通过对three.js的二次封装,创建简单的几何体配合光线投影设置和文理贴图的使用,来构造完整的综合管廊实体。构建三维场景需要一个场景即scene,一个相机即camera,一些需要的三维实体,最后需要渲染器renderer将观察到的场景渲染到屏幕上的指定区域。本方法将综合管廊场景抽象成具体的几何体组合并逐一分解,再利用接口调用相应的几何体组成模拟的完整三维场景,最后渲染上光影效果使得场景更具真实性。在构建完整个三维场景后,对该场景添加方向控制,用户既可以由远及近的监控管廊,还可以调节场景左右方向的移动以便查看管廊每个角落每个设备的具体情况。此外,本方法支持在场景中引入obj、3ds、gltf等格式的三维模型,可以根据用户要求完成这一功能。完成静态的场景模拟后,根据需求对一些信息监测设备或者采集设备进行数据的绑定,全方位掌握设备的使用情况,方便专业人员的辅助运维。

附图说明

图1为本发明实施例生成的综合管廊三维场景效果图;

图2为本发明实施例生成的3d模型引入效果图;

图3为本发明实施例生成的用户交互效果图;

图4为本发明实施例的流程图。

具体实施方式

为了说明本发明的一种基下面结合附图和具体实施方式对本发明作进一步详细的说明。

为了实现上述目的,本发明实施例提出了一种电力电缆隧道三维全景监测系统,包括:

场景(scene)构建模块、相机(camera)构建模块、渲染器(renderer)模块;其中所述场景构建模块用于构建隧道的模型以生成场景;其中所述相机构建模块用于将场景中的物体模拟为规则几何体形状后通过正交投影相机和/或透视投影相机投射到场景构建模块构建的场景中;其中所述渲染器(renderer)模块用于对场景构建模块和相机构建模块构建的场景和物体进行渲染以得到最终画面。

其中,所述系统还包括:光影投影模块、纹理贴图模块、方位控制模块;

所述光影投影模块用于在场景和物体上营造出光影效果;所述光影投影模块执行以下操作以生成光投影:开启渲染器的地图阴影,然后启用光线的投影,再把模型设置为生成投影,最后把模型设置为接收阴影以生成投影;

所述纹理贴图模块用于利用预设的三维模型的图片在模型表面进行贴图;

所述方位控制模块用于在场景中生成第一视角的移动相机,以根据使用者对于相机的移动速度和视角变化,将对应位置的场景和物体进行显示。

其中,所述系统还包括对象拾取模块,用于通过光线拾取场景中的物体,所述对象拾取模块执行以下操作:

接收使用者输入的位置信息,以判断对应位置的光线是否与场景中制定的物体集合相交,如果是则触发该光线上绑定的事件。

具体来说,本发明实施例包括以下的主要功能:

为满足未来监控系统更加智能化、数据监测更加直观化的需求,本方法结合电力电缆隧道的实际情况,对three.js进行了适应性改造和二次封装,研究出一种构建三维场景的方法。该方法只需引入three.js插件就可以随心构建想要创建的实体,既可以和电力电缆隧道业务模型相融合,又可以为实体绑定事件和数据,为进一步信息监控提供了基础。实现效果图如附图1。

本发明通过对three.js的二次封装,创建简单的几何体配合光线投影设置和文理贴图的使用,来构造完整的综合管廊实体。实现效果如附图1。

构建三维场景需要一个场景即scene,一个相机即camera,一些需要的三维实体,最后需要渲染器renderer将观察到的场景渲染到屏幕上的指定区域。本方法将综合管廊场景抽象成具体的几何体组合并逐一分解,再利用接口调用相应的几何体组成模拟的完整三维场景,最后渲染上光影效果使得场景更具真实性。在构建完整个三维场景后,对该场景添加方向控制,用户既可以由远及近的监控管廊,还可以调节场景左右方向的移动以便查看管廊每个角落每个设备的具体情况。此外,本方法支持在场景中引入obj、3ds、gltf等格式的三维模型,可以根据用户要求完成这一功能。实现效果如附图2。

完成静态的场景模拟后,根据需求对一些信息监测设备或者采集设备进行数据的绑定,全方位掌握设备的使用情况,方便专业人员的辅助运维。实现效果如附图3。

1、基础渲染

场景(scene)、相机(camera)和渲染器(renderer)是本方法的三大要素。首先需要构建一个场景,场景是所有物体的容器。其次加入相机。相机决定了场景中哪个角度的景色会显示出来。在three.js中,相机分为正交投影相机和透视投影相机。两种相机分别适用不同的场景。然后设置渲染器,渲染器决定了渲染的结果应该画在页面的什么元素上,并以怎样的方式去绘制。在三大组件和实体准备好后,将物体添加到场景中。以添加一个立方体cube为例。

varscene=newthree.scene();

varcamera=newthree.perspectivecamera(50,width/height,1,7000);

varrenderer=newthree.webglrenderer();

renderer.setsize(window.innerwidth,window.innerheight);

document.body.appendchild(renderer.domelement);

//渲染器renderer的domelement元素,表示渲染器中的画布。

vargeometry=newthree.cubegeometry(1,1,1);

varmaterial=newthree.meshbasicmaterial({color:0x00ff00});

varcube=newthree.mesh(geometry,material);

scene.add(cube);

使用渲染器执行渲染功能,结合相机和场景来得到结果画面。实现该功能的函数是renderer.render(scene,camera)。渲染方式有实时渲染和离线渲染。在这里我们用实时渲染。代码如下:

本方法根据电力电缆隧道系统的实际情况,选取了平面、立方体、圆环、圆柱、圆等基础几何体,根据实际场景计算各模拟几何体的位置并进行排列组合,从而构建出模拟管廊的三维场景。

2、光影投影及纹理贴图

本方法中的光包括环境光、平行光和点光源。当为场景设定环境光时,所有物体无论向量如何,都会表现为一样的明暗程度。平行光是一组具有方向的没有衰减的平行光线,可设置光线强度和发光位置。点光源的光线来自同一点,并向外发射,比平行光多了一个距离参数。

投影的设置需要四个步骤。首先打开渲染器的地图阴影,然后启用光线的投影,其次把模型设置为生成投影;最后把模型设置为接收阴影。

文理贴图需要提前准备好一张运用在三维模型上的图片,在引入该图片后将其设置为模型的表面贴图即可。代码如下:

vartextureloader=newthree.textureloader();

vartexture=textureloader.load('images/btm4.png');

varplane=newthree.meshbasicmaterial({map:texture});

3、方位控制

引入pointerlockcontrols.js实现该功能。该功能是第一人称视角的control,即移动的相机。新建一个方位控制函数并加入场景中,添加向前、先后、向左、向右四个方位的移动事件,并设置需要摄像头移动的速度以及随视角变化场景中要做的移动量。

4、根据业务模型完成事件绑定

该交互技术是对象拾取,即3d场景中的对象选择。本方法中的事件需要绑定在document上,通过raycaster来检测scene中的object3d对象。首先获取点击或鼠标滑过的位置,然后转换成3d的坐标,使用raycaster向坐标发射一个射线,并确定光线是否与场景中指定的3d对象集合相交。如果相交,则触发绑定上的事件。本方法对电力模型绑定了接地电流、局部房电次数等数据,当触发该模型上的事件时,将会展示对应的电流等信息。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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