化工园区三维可视化插件

来自CGTWiki
跳转至:导航搜索

现处状态

演示地址

http://v6o.cgt3d.cn:84/demo.html

实现快速加载

实现基本功能

自动漫游、UI添加、鼠标点击事件

目前预留的JS接口有:

setView(); //设置漫游点

addCompanyNameUI(经度,纬度,布告板内容); //添加布告板

addVideoUI(经度,纬度,rtsp地址,视频名称); //添加视频UI

addTableContent(数据位置描述,数值,预警值,传感时间); //添加表格内容

addTableUI(经度,纬度,模型名称); //添加表格UI

setUIMask(0/1); //显示、隐藏布告板:1为显示、0为隐藏

removeUI(UI模型名称); //移除UI模型

addModel(经度,纬度,高度,模型路径,模型名称); //添加模型

removeModel(模型名称); //移除模型

合作方

菏泽新智安公司

项目演示版本

平台框架

平台测试

每日更新的地址 内网地址

2021-05-19

  • 插件运行在单线程模式下,需更新
  • 安装插件后,默认的waterfox打不开,以前安装的经典版可以打开
  • 去除插件的拖动与缩放

2021-05-17

  • 发现在新的 win10 机器上没有运行成功
    TODO: <产品名>
    File: npdemo.dll
    Path: C:\Users\xingshujun\AppData\Roaming\Mozilla\Firefox\Profiles\ta9yah4a.default\extensions\helloween@myplugin.org\plugins\npdemo.dll
    Version: 1.0.0.1
    State: Enabled
    TODO: <文件说明>
  • 需要细化产品名和文件说明

可以做的事

1.问题总结
	1.1显示效果
		1.1.1现有主要显示方式为实景三维
			*新旧企业交替,设备不断升级改造等造成现场不断变化(放于后面解决)
			*无法实现及时更新(如果使用地理信息引擎的话,一周就可以解决)
			*显示延迟卡顿,严重影响使用效果(如果使用地理信息引擎的话,一周就可以解决)
		1.1.2 3D建模
			*造型粗糙(重新建模,需和建模公司联系)
			*显示不够美观(引入游戏引擎)
			*突出不了重点,显示不够人性化(需产品经理梳理核心需求,ui工程师重新设计)
	1.2 联动
		联动时摄像头控制不够灵活(两到三周解决)
		3D建模形成后需进一步精确定位(需了解详情)
		数据分析需要完善
			算法需要进一步细化,建立合适的算法模型
			对环保和安全方面的数据需进行细节融合
			分析结果依据数据进行更详细的图表显示
		细节的联动需对第三方软件进行完全融合
	1.3 软件完善
		持续使用、不断完善
		软件功能多元化复杂化的同时,使用需要具有实用性、操作简单及人性化等

2.数据
	现有约20家企业
	视频监控初步为200台左右
	基本在线数据约3000条
	规划面积13.7平方公里,现在使用面积不到50%
	所有数据随着政策完善和新企业的进驻一直在不断的增加、完善。

3.预警联动
	应急处置措施
	不同等级的相关部门和联系人
	附近的应急救援物资
	逃生疏散路线(主要动画)
	现场及逃生路线的视频监控(需要了解逃生路线的制度的算法)
	相关专家

4.视频监控
	定时自动巡更新(动画)
	轨迹追踪(动画)

用户需求

合同注明部分

技术目标

使用NPAPI技术开发浏览器的三维可视化插件和播放插件。

技术内容

研发浏览器(chorme内核或Firefox 内核)两个插件:三维可视化插件播放插件

三维可视化可视化插件包含两个部分:osg工业引擎部分,用于加载、展现大规模地理信息数据和大规模实时数据; Unity 3D引擎部分,用于加载展示小场景和实时传感数据。

实现三维地图引擎相关功能,包括2D、3D地图加载;三维地图视角控制;点线面标绘与显示样式控制;地图弹窗;地图贴图;矢量图层叠加;模型单体化选择等功能。

技术方法和路线

通过编写NPAPI插件嵌入osg引擎和unity3D引擎,进行倾斜摄影、地理信息数据和实时数据的快速三维可视化,最后将C++功能模块封装成js库。

合同未注明部分

手机端的可视化改造

现在一共有四个微信小程序端分为:企业端、职能部门端,运维端,公共区域端,其中企业端需要展示出本企业的3d建模,及相关数据。职能部门端显示出整个园区的3D建模,只在建模上显示出报警数据,及企业。应急物资等信息。(注:若要在手机中实现高质量的三维展现,必须使用APP模式,而非微信小程序)

具体功能概述

3d建模上需要展示出企业车间名称,车间内相应的设备数据,罐区每个罐对应的该罐体数据,比如:温度、压力、液位,可否显示出,根据实际液位高度,在罐体内直观的显示出液位到达的高度。摄像头查看,应急救援物资,逃生路线显示等信息。

任务分解

大步骤分解:

  1. PC端NPAPI地图引擎功能的实现
  2. NPAPI播放插件的实现
  3. 手机端3D APP

人员安排

张泷、刘昊

地图、模型、矢量的加载、显示、隐藏。前期先做本地数据测试,后期需要配合数据库进行测试。(需要张泷先做其中的一项功能,规范代码的编写并录制视频,然后刘昊做其他功能的扩展,需要给定一个具体时间)

刘昊

osg引擎中实现罐体液位,需编写shader(需细化算法),unity实罐体液位有现成程序(这个任务不着急)

已完成

张泷:倾斜摄影数据的高速加载以及本地缓存;

沈圣:编写视频插件的说明文档;将VLC嵌入OSG;在osg中配合美工实现UI界面

将做好的UI嵌入OSG中,实现漫游到指定位置显示指定内容。(配合zwz等人预计一周内完成)

将osg的功能与NPAPI结合、封装供JS调用

郑玮泽:在服务器上搭建一个测试网页、结构仿照成武化工园区平台、检测浏览器(提供水狐浏览器)、检测插件(如果没有提供下载链接)demo地址

实现视点跳转、路径漫游功能,提供接口(回到初始视点、暂停漫游、下一个视点等)。

osg窗口全屏按钮(写在html上);打包开发的NPAPI插件以及所需要的第三方DLL(录制视频)

刘昊:矢量选择高亮、模型选择高亮(在OSG中选择模型,然后向JS返回被选中的模型的信息)

PC端NPAPI地图引擎功能的实现

时间安排1个月出一个测试版,第二个月调试修正

地图、模型、矢量的加载

主要是封装js的任务,包括参数的设置,尽量以配置文件的形式提供

按照配置文件的信息提前加载地图,模型,矢量等数据,由用户选择是否显示。

全部通过earth文件加载,JS预留开关接口。(张泷和郑wz配合,需要张泷录制一个视频教程,做其中一个功能的一个规范开发,后期zwz做功能扩展,需要做一个时间预期)。

模型与矢量选择

主要是封装js的任务

在OSG中选择模型,然后向JS返回被选中的模型的信息。(刘昊负责,考虑如何选中模型高亮)。

视角控制与漫游

已实现,需封装js库

漫游功能的实现,c+提供修改视点的接口,JS实现路径漫游。(张泷和zwz负责)。

视频在三维空间中的播放

主要是封装js,分为billboad模式和融合模式,融合模式需美工配合,动态展示相应的指向入视景,也需要美工配合

billboad终朝向观察者,你根本看不到它"扁"的一面,所以给人一种立体的感觉.

(张泷、沈圣负责,VLC嵌入OSG)

标签与信息的弹窗展示

在html中弹出,类似WPF;在三维空间中弹出,即billboard(沈圣和美工负责,预计两周)

倾斜摄影数据的高速加载

已完成,封装js

使用本地数据。

倾斜摄影数据的本地缓存

正在编写,需要细化流程

OSG file cache中将write node改为下载。(张泷负责,如遇问题及时讨论)

osg引擎中实现罐体液位

需编写shader(需细化算法),unity实罐体液位有现成程序(刘昊负责)

osg的引擎UI界面

osg的引擎界面宜采用扁平化风格,需要美工配合实现osg的界面半透明界面

UI使用billboard展示

NPAPI播放插件

半个月左右,需沈圣在五一后进行现场测试

视频播放方案

现阶段,宜采用VLC与大华sdk相结合的低延迟方案(需要现场测试)

后期应提高转发服务器转发与控制能力,推荐使用https://cn.uniview.com/Products/VM/Public_Security/Management/ SWP-Video Manager 5.0视频管理服务软件。

手机端3D APP

需了解具体业务后细化

以unity为主框架,嵌入cef框架负责原有H5的业务,在APP中调用opengl es本地三维图形接口和网页进行交互。

需甲方协助

  • 需要兼职美工一名能够制作UI和三维模型。
  • 需要甲方提供网页业务对接人员一名。