编辑“多源信息融合三维可视化平台”

来自CGTWiki
跳转至:导航搜索

警告:您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您登录创建一个账户,您的编辑将归属于您的用户名,且将享受其他好处。

该编辑可以被撤销。请检查下面的对比以核实您想要撤销的内容,然后保存下面的更改以完成撤销。
最后版本 您的文字
第1行: 第1行:
[[文件:三维可视化平台.png|缩略图|多源信息融合三维可视化平台CS界面]]
 
[[文件:平台BS界面.png|缩略图|多源信息融合三维可视化平台BS界面]]
 
[[文件:平台视频.mp4|缩略图|300px|平台视频]]
 
[[文件:小场景视频.mp4|缩略图|小场景视频]]
 
[[文件:Yungu.mp4|缩略图|天安云谷项目视频]]
 
[[文件:阳原视频融合例子.mp4|300px|缩略图|智慧园区]]
 
[[文件:电厂视频.mp4|300px|缩略图|电厂视频]]
 
[[文件:三维插件加载.mp4|300px|缩略图|三维插件加载]]
 
  
==平台git==
+
[[文件:三维可视化平台.png|缩略图|多源信息融合三维可视化平台]]
<pre>
 
http://git.cgt3d.cn/platform/3dgisplatform.git
 
</pre>
 
==数据服务器==
 
用户名:Administrator
 
 
 
密码:1qaz@wsx**
 
 
 
数据key:
 
<pre>
 
gN8qSo67MEwf9KOPgg0ATBSb60ebGwUCWKdrPKNH/TAbusqx73iBu5T4kZ1DyLXPwIuVagXoC5d4
 
vLd6BFpwv6mR3t9Nz1LbMxMUgrH9BznhQCscGZb/F8Wlz8mqtSSUGH/HBcL9ADE+QDW3qPba997T
 
xB8ErlDKuJ6duqOH6iHul1YLrO8B2lgsysPJu1mG31mWIGR9rCL+omXcTM1hqhFW6EsVXjnOqWHE
 
nmrRXmLcxsup70ud/PbJ3ML9UxjHkRhlmNBruHEzVvR2eRaTvOjcXs0doDu6nV3TaYYl7ujhzEIa
 
XTYCXtOmX8UVhWo7ml6o+PZKIH297o5XlxrP1Q==
 
</pre>
 
 
 
校内服务器测试
 
<pre>
 
http://mapin.cgt3d.cn:8089/WeServer/wmts/1.0.0/acimage/default/wgs84/3/1/6.jpg
 
 
 
http:///mapin.cgt3d.cn:8089/WeServer/tms/1.0.0/acimage
 
 
 
http://mapin.cgt3d.cn:8089/WeServer/tms/1.0.0/acdem
 
 
 
http://mapin.cgt3d.cn:8089/WeServer/wmts?Service=WMTS&Request=GetCapabilities
 
</pre>
 
 
 
SMB共享硬盘映射
 
 
 
\\smb.'''cgt3d.cn'''\smb
 
 
 
\\2001-da8-215-c38e-21df-d2bd-d2b1-2711.ipv6-literal.net\smb
 
 
 
 
 
 
 
[http://bbs.3s001.com/thread-325839-1-1.html 水经注中间件]
 
[[文件:中间件的命名用方法.7z|缩略图|中间件的命名用方法]]
 
 
 
==摄像头信息==
 
 
 
<pre>
 
rtsp://admin:abc12345@10.108.63.61:554/h264/ch1/main/av_stream
 
rtsp://admin:abc12345@10.108.62.64:554/h264/ch1/main/av_stream
 
rtsp://admin:abc12345@10.203.17.198:554/h264/ch1/main/av_stream
 
硬盘录像机IP:10.108.62.68;密码:a6688006
 
</pre>
 
 
 
==通用演示版本==
 
[ftp://cgt3d.cn/%C6%BD%CC%A8%CF%E0%B9%D8/%C6%BD%CC%A8%B0%B2%D7%B0%B0%FC/%CE%DE%D1%A7%D0%A3%B1%EA%CA%B6%B0%E6%B1%BE/3DPlatForm.exe 通用版本20201104]
 
===现存问题===
 
#模型图层应当默认加载
 
#模型图层下的模型单击跳转到相应模型,双层或右键显示其属性
 
#unity3d 非最终版本
 
 
 
===已解决的问题===
 
 
 
==功能目标框图==
 
[[文件:功能目标框图.png|800px|功能目标框图]]
 
 
 
==资料==
 
===[[CLI封装]]===
 
[[文件:Visual C++/CLI从入门到精通.pdf|缩略图|Visual C++/CLI从入门到精通]]
 
 
 
[[文件:精通.NET互操作.pdf|缩略图|精通.NET互操作]]
 
 
 
===[[插件设计]]===
 
[[文件:插件式GIS应用框架的设计与实现.pdf|缩略图|插件式GIS应用的设计与实现]]
 
  
 
== 平台的软件架构 ==
 
== 平台的软件架构 ==
===体系框架===
 
[[文件:总体框图.png|总体框图]]
 
  
 
=== 界面层 ===
 
=== 界面层 ===
第92行: 第14行:
  
 
=== 引擎层===
 
=== 引擎层===
平台采用双引擎架构,即可以利用osgEarth全球地理信息平台的优势展示大场景数据,又可以利用unity3D引擎良好的生态生成高质量的小场景交互操作,通过unity3D的插件能够加载BIM数据。
 
 
==== OSGEARTH ====
 
==== OSGEARTH ====
 
大场景的三维实时渲染引擎采用osgearth,其官网为[http://osgearth.org/ osgearth]。
 
大场景的三维实时渲染引擎采用osgearth,其官网为[http://osgearth.org/ osgearth]。
第115行: 第36行:
 
#工具插件齐全,小场景开发速度快,光影效果好
 
#工具插件齐全,小场景开发速度快,光影效果好
 
#C#语言开发,易于集成
 
#C#语言开发,易于集成
==三维地理信息数据==
 
===水经注地图下载器===
 
[[文件:水经注.7z|缩略图|水经注地图下载器]]
 
===数据链接===
 
#[ftp://cgt3d.cn/%B5%D8%D0%C5%CA%FD%BE%DD/%C8%AB%C7%F2%B5%DA%B0%CB%BC%B6tif.zip 全球第八级卫星数据]
 
#[ftp://cgt3d.cn/%B5%D8%D0%C5%CA%FD%BE%DD/%C8%AB%C7%F2%B5%DA10%BC%B6tif.zip 全球第十级卫星数据]
 
#[ftp://cgt3d.cn/%B5%D8%D0%C5%CA%FD%BE%DD/30m%B8%DF%B3%CC.tif 全球30m高程数据]
 
#[ftp://cgt3d.cn/%B5%D8%D0%C5%CA%FD%BE%DD/%C8%AB%C7%F2%B5%DA%B0%CB%BC%B6%A3%A8%B4%A6%C0%ED%BA%F3%A3%A9.7z 全球第八级卫星osgb数据(osgdem处理后)]
 
#[ftp://cgt3d.cn/地信数据/全球卫星影像瓦片数据.zip 全球卫星影像瓦片数据十级]
 
  
 
== 平台的刚需与团队优势 ==
 
== 平台的刚需与团队优势 ==
 
===三维平台与传感接入的刚性需求、痛点===
 
===三维平台与传感接入的刚性需求、痛点===
 
一个产品应当找到他的应用场景,解决客户的刚性需求。只能通过不断地调研解决问题。
 
一个产品应当找到他的应用场景,解决客户的刚性需求。只能通过不断地调研解决问题。
 
用户从来不关心你的技术有多牛,他们关心的是你的产品对他们的有用性。
 
===监狱系统的需求样例===
 
====实战平台GIS地图引擎====
 
#三维场景基础应用:场景浏览、图层管理、空间量测、兴趣点管理、搜索定位、路径巡视、区域录像、区域截屏、运动轨迹标注。
 
#业务模块集成
 
##实时视频融合(仅3D模式下)
 
##全景视频回溯与倒播
 
##报警源可视化
 
##警务指挥模块
 
##内置警用符号库,具有警力部署,执勤态势,智能巡更,日常警务,预案演练,协同标绘,用户权限分配等功能
 
##智能报警模块
 
##业务模块智能联动,智能报警管理,报警事件可视化,报警情况记录在案并具统计分析功能
 
##设备监控管理
 
##内置前端硬件设备管理日志,设备失效、损坏自动报警
 
##支持基于空间的数据可视化,如表格,统计图等
 
##支持基于配置文件的模块功能扩展
 
##实时更新具有定位信息的目标
 
##数据与传感器的数据可视化
 
#实战平台基础地图模型数据
 
##看守所指定范围倾斜摄影数据,精度0.05M
 
##看守所指定范围室内人工模型,精度0.05M
 
====业务功能====
 
#押解勤务:实时在三维地图上显示押解人员的位置及预设线路。当押解目标异常(延迟、离开预设线路、消失等)时,系统自动报警。
 
#4G图传:通过4G网线,把现场的视频及图片实时回传到平台内。
 
#视频点与场景结合:在三维场景中标记每个视频点的对应位置,并提供多种视频调取方式,单选,多选,自定义搜索等;
 
#警力分布:通过收集执勤人员的设备上的GPS位置信息,实时定位警员位置,在场景中体现警力分布情况。
 
#智慧监室智能终端模块:在系统中模拟终端的运行状态,与其它系统联动。
 
#门禁智能管理模块:在系统中模拟门禁的运行状态,当有触发门禁的报警时,通过系统与视频联动,自动弹出触发点附近的视频。
 
#人脸识别管理模块:人脸识别数据及呈现在可视化系统内。
 
#应急求助模块:在系统中模拟求助盒的运行状态,当求助盒被触发时,通过系统与视频联动,自动弹出触发点附近的视频。
 
#高压电网模块:在系统中模拟电网的运行状态,当有触发电网的报警时,通过系统与视频联动,自动弹出触发点附近的视频。
 
#在押人员报告管理模块:在系统中模拟报告箱的运行状态,当有触发报警时,通过系统与视频联动,自动弹出触发点附近的视频。
 
#人脸识别管理模块:人脸识别数据及呈现在可视化系统内。
 
====三维地图中数据呈现的硬件列项====
 
[[文件:硬件需求.png|800px|无框|无]]
 
  
 
===三维平台的团队优势===
 
===三维平台的团队优势===
#工程硕士占大多数,没有论文压力,可一年内全身心的投入平台建设。
+
#工程硕士占大多数,没有论文压力,可一年内全身心的投入平台建设。(这可能是主观愿望,也不一定是真正的优势)
  
 
== 平台研发的近期目标 ==
 
== 平台研发的近期目标 ==
第173行: 第49行:
 
*N路视频在同一模型上的加载
 
*N路视频在同一模型上的加载
 
*服务器选用[[海康威视]]的服务器
 
*服务器选用[[海康威视]]的服务器
*<big>'''使用blender进行视频模型的矫正'''</big>
 
[[文件:视频矫正.mp4|无|800px|使用blender矫正视频]]<br>
 
  
 
=== 人员,车辆等的室内室外定位 ===
 
=== 人员,车辆等的室内室外定位 ===
第185行: 第59行:
  
 
=== 三维场景下大规模视频的拼接与融合 ===
 
=== 三维场景下大规模视频的拼接与融合 ===
[https://www.xianjichina.com/special/detail_397037.html 安防与物联网]
 
 
 
====背景与意义====
 
====背景与意义====
 
  随着视频监控联网系统的不断普及和发展, 网络摄像机 更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用。
 
  随着视频监控联网系统的不断普及和发展, 网络摄像机 更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用。
第204行: 第76行:
 
  虽然三维理信息系统有很多的优点,但三维地理信息系统为了追求高速渲染,而牺牲了渲染质量,尤其对小场景的渲染。
 
  虽然三维理信息系统有很多的优点,但三维地理信息系统为了追求高速渲染,而牺牲了渲染质量,尤其对小场景的渲染。
  
==== 国内外现状 ====
+
==== 海内外现状 ====
 
文献:
 
文献:
 
*[http://www.irgrid.ac.cn/handle/1471x/2327533?mode=full# 基于 GIS 的无人机地理视频三维可视化]
 
*[http://www.irgrid.ac.cn/handle/1471x/2327533?mode=full# 基于 GIS 的无人机地理视频三维可视化]
*[https://cloud.tencent.com/developer/article/1501942 论视频与三维图形的融合]
+
 
*[http://xb.sinomaps.com/CN/10.11947/j.AGCS.2020.20190282 三维GIS场景与多路视频融合的对象快速确定法]
+
 
*[http://cctv.cps.com.cn/article/201301/683503_all.html 基于三维视频融合的监控分析系统]
+
现在市场上做视频拼接的公司有如下:
*[https://wenku.baidu.com/view/3c67dd5cba1aa8114531d906.html 3DGIS与多视频融合系统的设计与实现]
+
*[http://www.innovisgroup.com/plan.html 正安维视 北京 有GIS]
*[http://www.cctv.cps.com.cn/article/201306/690225_all.html 基于3D的GIS智慧安防可视化管理平台]
+
*[http://www.smartyunzhou.com/ 智慧云舟 北京 有GIS]
*[https://blog.csdn.net/lxg9305171/article/details/79970009 WebGL中实现三维融合视频投影技术]
+
*[http://www.converse3d.com/fangan.php?id=202&pid=1 中天灏景 北京 有GIS]
*[https://blog.csdn.net/csedisys/article/details/88814802  CSDN博客 高空瞭望视频监控+三维场景视频融合平台]
+
*[http://www.chinadaohe.com.cn/NewsDetail.aspx?ID=148 道和汇通 北京 无GIS]
*[https://magazine.supermap.com/view-1000-221.aspx 超图三维场景中的多源数据融合技术]
+
*[http://www.netalent.cn/softwarecase/show/48.html 互联精英 深圳 无GIS]
 +
 
 +
 
 +
知乎上有关的链接:
 +
*[https://zhuanlan.zhihu.com/p/92525723 三维GIS视频融合监控平台知乎]
  
 
==== 平台现状 ====
 
==== 平台现状 ====
第220行: 第96行:
  
 
==== OSGEARTH下的动态投影纹理 ====
 
==== OSGEARTH下的动态投影纹理 ====
[[文件:无人机视频融合.mp4|300px|缩略图|无人机投影纹理]]
 
 
===== OSGEARTH下shader的加载 =====
 
===== OSGEARTH下shader的加载 =====
 
===== 投影纹理的基础知识 =====
 
===== 投影纹理的基础知识 =====
第233行: 第108行:
 
室内定位是指在室内环境中实现位置定位,一般采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内定位体系,从而实现人员、物体等在室内空间中的实时位置监控。
 
室内定位是指在室内环境中实现位置定位,一般采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内定位体系,从而实现人员、物体等在室内空间中的实时位置监控。
 
===== 常见室内定位技术 =====
 
===== 常见室内定位技术 =====
 +
----
 
目前常见的室内无线定位技术有:Wi-Fi、蓝牙、红外线、超宽带、RFID、ZigBee和超声波等,各项技术的优势以及缺点将在下图中综合给出。<br>
 
目前常见的室内无线定位技术有:Wi-Fi、蓝牙、红外线、超宽带、RFID、ZigBee和超声波等,各项技术的优势以及缺点将在下图中综合给出。<br>
  
*[https://www.jianshu.com/p/3f75a30bd37d  5G如何推动室内定位领域的发展]
+
[[文件:无线定位技术.png|缩略图|frame|1000px|无|无线定位技术]]<br>
 +
 
 +
 
 +
 
 +
----
  
 
===== 主要运营公司 =====
 
===== 主要运营公司 =====
第241行: 第121行:
  
 
==== 温湿度传感器 ====
 
==== 温湿度传感器 ====
温湿度传感器是传感器其中的一种,是把空气中的温湿度通过一定检测装置,测量到温湿度后,按一定的规律变换成电信号或其他所需形式的信息输出,用以满足用户需求。
+
温湿度传感器只是传感器其中的一种而已,只是把空气中的温湿度通过一定检测装置,测量到温湿度后,按一定的规律变换成电信号或其他所需形式的信息输出,用以满足用户需求。
  
 
==== 门禁设备 ====
 
==== 门禁设备 ====
 
==== 电力行业常见传感器 ====
 
==== 电力行业常见传感器 ====
  
 +
=== 实时水面渲染 ===
 +
平台海洋实时渲染采用的是SUNDOG公司triton插件。<br>
  
OsgEarth平台海洋实时渲染采用的是SUNDOG公司triton插件。<br>
 
基于FFT的大规模海面模拟:http://blog.sina.com.cn/s/blog_15ff6002b0102xnhc.html
 
  
===建筑信息模型(BIM)===
 
*[https://www.bilibili.com/video/BV1uE411H7sR?from=search&seid=17041706408266536734 unity与revit的联合开发]
 
  
建筑信息模型(Building Information Modeling)是建筑学、工程学及土木工程的新工具。建筑信息模型或建筑资讯模型一词由Autodesk所创的。它是来形容那些以三维图形为主、物件导向、建筑学有关的电脑辅助设计。当初这个概念是由Jerry Laiserin把Autodesk、Bentley系统软件公司、Graphisoft所提供的技术向公众推广。
+
==== 海浪仿真 ====
 +
国内外很多专家学者针对海浪仿真做了大量的研究工,随着人们对海浪的深入研究,海浪建模已取得了较大突破,目前对海面波浪进行建模可以分为'''基于几何模型的方法'''、'''基于谱分析的方法'''、'''基于分形的方法'''、'''基于动力模型的方法'''、'''基于物理模型的方法'''。<br>
  
 +
=====基于几何模型的方法=====
 +
基于几何模型的方法中的典型方法是 Gerstner 模型。Gerstner 模型描述海浪各质点运动模式主要是从动力学的角度,其第一次被 Fournier 引入计算机图形图像领域是在 1986 年。Gerstner 模型最初被提出是作为流体动力学方程组的近似解决方案。它在考虑风为动力,重力为回复力的风成浪的基础上,根据海浪变化的圆轨道参数来描述海浪。
 +
该模型假设水表面的每一个粒子沿着其静止位置点作圆周运动。在一个三维立体环境中,假设海平面位于 XY 平面,Z 轴指向朝上,水粒子沿着 X 轴方向运动,在t 时刻其波动传播的半径为 r ,则其运动状态用数学公式表示如下:<br>
 +
        z=z<sub>0</sub>-rcos(kx<sub>0</sub>-ωt)<br>
 +
        x=x<sub>0</sub>+rsin(kx<sub>0</sub>-ωt)<br>
 +
此公式描述t时刻单个波的运动情况,其中水粒子静止时在X、Z轴的坐标分别为x<sub>0</sub>、z<sub>0</sub>;r为水粒子运动半径;k为点 (x<sub>0</sub>,z<sub>0</sub>)处的波数;ω为波的角速度;t为时间, 调整k、r可以得到不同的波形。<br>
 +
这种方法将水粒子的运动轨迹看成是在半径为1/k的圆上,距离圆心为r的点P沿距离X轴下方1/k的直线滚动得到的,如下图所示:<br>
 +
[[文件:运动轨迹.png|缩略图|居中|运动轨迹]]
 +
比起普通的正余弦波动方程,Gerstner Wave 并不复杂,但它们描述的波形却有很大差别,正余弦波描述的海浪的波峰和波谷波的弧度都是均匀的,不能生产相对较尖的波峰,而 Gerstner 描述的波形正好可以产生更陡的波形,波峰尖,波谷宽,因此Gerstner描述的波形更加逼真。<br>
 +
但是 Gerstner 模型存在一定的缺陷:其只采用垂直方向和水平方向的单一正弦波来进行模拟,故而生成的海面比较规则。而真实的海浪运动是一种不规则行为,故模拟情况与真实海面的运动有较大的差别,无法表现海浪的随机性和不规则性。为了增强模拟的真实感和逼真度,通常采用多个Gerstner Wave相互叠加的方法生成海面,增加波形的变化。<br>
 +
由于这种方法具有简单直观、计算速度较快等优点,而波形函数本身可以反映海洋表面高度的变化,故而海浪运动一般采用这种模拟方法,适合模拟大面积海面。但是其具有一定的局限性,当进行波浪的破碎等现象的模拟是,生成的场景不够真实,故适用范围较窄<sup>[1-4]</sup>。<br>
 +
 +
=====基于谱分析的方法=====
 +
这种方法建立在海洋观测结果的基础上,运用有线性叠加法和线性过滤法模拟海浪。线性叠加法因其物理概念清晰,计算方便快捷且模拟结果最为相似。<br>
 +
线性过滤法是以待模拟的海浪谱为依据设计出一个过滤器,选择适当的系统函数将白噪声作为一线性系统输入该系统并输出所需模拟的波面过程。该方法并没有得到广泛应用,因与真实的海浪谱误差较大。<br>
 +
线性叠加法是假定组成波是随机且独立的,将线性的简单波动迭加起来,多个振幅、角频率和随机相位都不相同的波叠加形成海浪。叠加的方式可以是线性的,也可以是非线性的。随机过程的一次实现只需要确定各个组成波的波幅、角频率和随机相位。这种方法具有很强的灵活性,并且由于它的数据基础来自于海洋统计学模型,因此渲染出来的水面真实感较强。但是缺点是采用规则网格,数据量大,很难实时渲染水面<sup>[5-8]</sup>。<br>
 +
 +
=====基于分形的方法=====
 +
无论从时间上还是空间上看,海浪的运动都具有不规则性和不重复性,因此其本身可以被认为是一个十分复杂的自然现象。另外,海洋学家多年来对海浪谱进行了研究得出以下结论:海浪属于狭带谱的幅值服从锐利分布的正态随机过程。可以采用分形函数来描述具有负幂率谱的过程。这说明利用分形理论模拟随机海浪是可行的。<br>
 +
Perlin噪声(Perlin  noise)指由 Ken  Perlin 发明的自然噪声生成算法。Perlin 噪声这个名词现在被同时用于指代两种有一定联系的的噪声生成算法,即Simplex 噪声和分形噪声,这两种噪声都广泛地应用于计算机图形学,这里所说的柏林噪声函数指的是分形噪声。<br>
 +
分形噪声可以用来模拟自然界的自相似过程,包括海岸线,地形,海浪等。分形噪声的原理是利用 Perlin 噪声频率受限的特性,通过不断叠加更高频率的Perlin 噪声达到自相似的效果。<br>
 +
Perlin 噪声函数实际上属于一个随机数生成器,它与普通的随机数生成器的区别是它的参数是一个整数,基于这个参数做返回的随机数。如果两次传递回来的参数相同,则它产生的两次随机数也相同。要创建一个 Perlin 噪声函数,首先需要一个噪声函数和一个插值函数。<br>
 +
下图是一个噪声函数的例子: <br>
 +
[[文件:由噪声函数产生的随机数.png|缩略图|居中|由噪声函数产生的随机数]]
 +
X轴上每个点被赋予一个0到1之间的随机数。对上图中的每个点插值,形成的连续噪声函数如下图所示。<br>
 +
[[文件:连续的噪声函数.png|缩略图|居中|连续的噪声函数]]
 +
把若干个具有不同频率和振幅的连续光滑函数加起来,就可以获得Perlin噪声函数。由多个一维噪声函数构建一个Perlin函数的过程如下图所示。<br>
 +
[[文件:构建Perlin函数.png|缩略图|居中|构建Perlin函数]]
 +
下图是一个二维Perlin函数的例子:<br>
 +
[[文件:二维的噪声函数.png|缩略图|居中|二维的噪声函数]]
 +
以上是二维的噪声函数,把这些函数叠加起来产生如下的噪声样式,也就是二维Perlin函数:<br>
 +
[[文件:二维Perlin函数.png|缩略图|居中|二维Perlin函数 ]]
 +
对海浪的建模所用的基于分形的方法,即使通过构造二维的 Perlin 函数,并将计算所得的噪声值作为网格点的水面高度值得到的连续动荡变化的水面高度场,从而构建逼真的海面。
 +
 +
=====基于动力模型的方法=====
 +
基于动力系统模型的典型方法为粒子系统。这种方法主要用于解决如何在计算机上生成和显示由大量运动和变化有一定规则的微小粒子组成大物质的问题,与其他传统的渲染技术相比,这种技术在模拟该现象时具有真实感方面的优势。在海面建模的问题上,主要是对由波破碎和与障碍物相碰引起的水沫和飞沫建模,该方法被认为是迄今为止模拟不规则物体最为成功的一种图形生成算法。<br>
 +
粒子系统方法假设景物由若干不规则的、随机分布的粒子组成,这些微小粒子聚集在一起形成不规则的模糊物体,用于构造和绘制景物。粒子系统是一个动态系统,可以生长和消亡。也就是说,每个粒子除了具有位置、速度、颜色和加速度等属性外,还有一定的生命周期,即每个粒子都有自己的生命值,随时间变化,粒子的生命值不断减小,当粒子的生命值减小到零时,粒子便进入死亡状态,此时该生命周期结束,下一个生命周期随即开始。这个过程不断地有新粒子生成和旧粒子消失,这些粒子不断地改变形状,不断地运动,从而引起景物的总体形态和特征的变化。为使景物的随机性更加真实,通常采用一些简化的随机过程来控制粒子的形状、特征和运动。在确定每一个粒子参数的变化范围的基础上,在该范围内随机确定参数值,进而确定该粒子的状态,以增大粒子系统的随机性。<br>
 +
粒子系统瞬间画面的生成主要遵循以下步骤:1)在系统中生成一个新的粒子;2)赋予新粒子一定的属性;3)删除生命值为零的粒子;4)根据粒子的动态属性对粒子添加外力作用,如重力、风力等空间扭曲,实现对粒子的随机移动和变换;5)绘制并显示由所有生命值不为零的粒子组成的图形。<br>
 +
一般情况下,在三维空间中粒子系统的位置与运动取决于发射器。发射器可以用一组粒子行为参数及其在三维空间中的位置来表示。粒子生成速度、粒子初始速度向量和粒子寿命组成了粒子行为参数。当粒子进入系统中后,受控的随机过程可以模拟其运动。为了得到较逼真的景象,有时需要对粒子进行纹理贴图。 <br>
 +
粒子系统的优点是,由于其充分体现了物体的动态性和随机性,在模拟火、云、水、森林和原野等自然景物时具有一定的优势;其缺点则是,构造太简单、粒子数太少的粒子模型在真实性上会有欠缺,复杂、粒子数过多的粒子模型又面临着计算量较大,难以实时进行表现的问题<sup>[9-11]</sup>。
 +
 +
=====基于物理模型的方法=====
 +
描述流体现象最为完整的方程是Navier-Stokes(纳维-斯托克斯方程)方程,该方程是根据牛顿第二定律推导出来的,用该经典流体力学来建立水波模型是基于物理模型对海浪建模的典型方法。该方法用求得的方程数值解来得到海浪的具体形状。<br>
 +
该方法是在给定边界条件和动量和质量守恒的约束条件下自动产生的,得到流体质点在任意时刻的状态,进而得到波浪的形态,生成的海浪形状非常接近真实的物理现象,其建模原理是质量和动量守恒,适合模拟流体细节。<br>
 +
当前国内外在这一方面的研究主要集中在如何快速稳定地求解 N-S 方程。在求解二维 N-S 方程方面,Kass 和 Miller 用简化二维浅水波方程组来模拟不同深度的波浪,将水体分为一个个水柱,假定水柱本身没有垂直的速度,只有水平速度,并且唯一,因而水表面是用高度场表示,设置初始条件时只要设置一部分水柱的高度与周围水柱的高度不一样,则通过 N-S 方程的控制,会自动产生波浪。在求解三维 N-S方程方面,Foster等提出了一种使用有限差分的隐格式的方法求解方程,Stam提出一种Stable fluids的方法求解三维N-S方程。<br>
 +
通过解Navier-Stokes方程得到海浪的波型模型:f(x,t)=Asin(2π(x-Ct)/L)。为了更真实地反映海浪的运动过程, f(x,t)为随机函数, A , L均为随机变量,参数C为定常数。然后引入海浪谱,研究海浪谱的目的是为了得到A和L这两个随机变量。经过推导可以得到具体海浪模型函数。<br>
 +
用该方法模拟的波形充分地考虑了海浪运动的随机性,能更好、更真实地反映海浪形态各个要素的变化,同时也能较充分地反映海浪的成长特性及能量分布,但是由于方程组属于偏微分方程组,边界条件和受力分析每帧都在变化,求解过程复杂,计算量较大<sup>[12-16]</sup>。
 +
 +
'''参考文献:'''<br>
 +
 +
[1] Blinn J F. Simulation of wrinkled surfaces[J]. Computer Graphics,1978, 12(3):286-292.
 +
 +
[2] Fishman B, Schachter B. Computer display of height fields[J]. Computer Graphic,1980,14(5):53-60.
 +
 +
[3] Max N L. Vectorized procedural models for natural terrain: waves and islands in the sunset[J]. Computer Graphics, 1981, 15(3):317-324.
 +
 +
[4] Rankine W J W. On the exact form of waves near the surfaces of deep water[J]. Phil. Trans. R. Soc. A, 1863, 153(4):127–138.
 +
 +
[5] Tessendorf. Simulating ocean water[EB/OL]. http://home.gte.net/tssndrf/index.html, 2001.
 +
 +
[6]Jensen. Deep-water animation and rendering[EB/OL]. http://www.gamasutra.com/
 +
 +
gdce/Jensen/Jensen_01.html, 2001.
 +
 +
[7] Deviprasad T,Kesavadas T. Virtual Prototyping of Assembly Components Using Process Modeling[J]. Journal of Manufacturing Systems, 2003, 22(1):16-27.
 +
 +
[8] 熊艳飞, 石志广, 郭建, et al. 基于海浪谱模型和 FFT 的海面建模[J]. 重庆理工大学学报(自然科学), 2014, 28(4):77-82.
 +
 +
[9] Reeves W T, L Ltd. Particle system—a technique for modeling a class of fuzzy objects[J]. Computer Graphics, 1983, 17(3):359-376.
 +
 +
[10] Peachey D R. Modeling waves and surf[J]. Computer Graphics, 1986, 20(4):65-74.
 +
 +
[11] 张艺衡, 李晓峰, 刘小玲, et al. 基于GPU粒子系统的可交互水波实时模拟[J]. 计算机工程与设计, 2014, 35(8):2831–2835.
 +
 +
[12] Chen J X, Lobo N V. Toward interactive-rate simulation of fluids with moving obstacles using Navier-Stokes equations[J]. Graph Models Image Process, 1995, 57(2):107-116.
 +
 +
[13]Foster N, Metaxas D. Modeling water for computer animation[J]. Communications of the ACM, 2000, 43(7):60-67.
 +
 +
[14] Kass M, Miller G. Rapid, stable fluid dynamics for computer graphics[J]. ACM SIGGRAPH Computer Graphics, 1990, 24(4):49-57.
 +
 +
[15] Chentanez N, Müller M. Real-time Eulerian water simulation using a restricted tall cell grid[J]. ACM Transactions on Graphics, 2011, 30(4):82-93.
 +
 +
[16] 刘文龙, 张静. 用MC算法优化基于 SPH的海浪粒子模型[J]. 海洋技术学报, 2017, 36(2):41-45.
 +
 +
==== 湖面仿真 ====
 +
 +
=== 实时云模拟 ===
 
=== 视点漫游 ===
 
=== 视点漫游 ===
  
第266行: 第232行:
  
 
=== 数据下载 ===
 
=== 数据下载 ===
本平台所需数据主要下载自[https://planet.openstreetmap.org  Planet OSM],均为免费数据。
+
本平台所需数据主要下载自Planet OSM(https://planet.openstreetmap.org),均为立刻下载的免费数据。
 
==== 影像数据 ====
 
==== 影像数据 ====
 
影像数据目前包含数个视频,下载来源为https://10.108.59.113/:8443/svn/WPFOSG。
 
影像数据目前包含数个视频,下载来源为https://10.108.59.113/:8443/svn/WPFOSG。
第296行: 第262行:
  
 
=== 矢量数据加载 ===
 
=== 矢量数据加载 ===
矢量加载功能:选择文件、加载文件,添加其颜色属性的丰富选择,添加文字加载选项,实现点线面的各种加载,可进行场景树的显示/复选框的加载删除,点击属性框可显示矢量文件的具体信息,
+
平台中的二维地图数据使用了Maperitive地图软件处理下载自Planet OSM的全国和部分城市地区的OSM数据地图并进行瓦片的制作,以此来实现地域和地理信息显示的快速加载,摒弃了之前的全矢量数据,解决了数据加载过慢引起的各种问题。其次,采用叠加方式加载了全国10层和北京/深圳/菏泽等城市及周边地区的18层二维地图瓦片数据,数据格式使用切割工具默认格式,格式设置代码如下:
并且可以更改属性框中的线/面颜色/显示范围,更改后支持重新加载/保存功能。<br>
+
        <pre>
主要功能界面:<br>
+
        properties
==== 1.矢量加载主界面 ====<br>==== 2.矢量初始加载界面的颜色选择 ====<br>==== 3.矢量加载的效果图示(面形式)====<br>
+
map-background-color : #F1EEE8
==== 4.矢量加载完成后,场景树点击显示的属性框,并且可以进行修改,重新渲染,然后保存到XML中 ====<br>
+
map-background-opacity : 0
[[文件:矢量加载.png|缩略图|无]]
+
map-sea-color : #B5D0D0
[[文件:颜色.png|缩略图|无]]
+
font-weight : bold
[[文件:加载图示.png|缩略图|无]]
+
font-family : Verdana
[[文件:矢量属性框.png|缩略图|无]]<br>
+
text-max-width : 7
 +
text-halo-width : 25%
 +
text-halo-opacity : 0.75
 +
text-align-horizontal : center
 +
text-align-vertical : center
 +
font-stretch : 0.9
 +
map.rendering.lflp.min-buffer-space : 5
 +
map.rendering.lflp.max-allowed-corner-angle : 40
 +
        </pre>
  
 
=== 小场景 ===
 
=== 小场景 ===
 
小场景按规划路线自动漫游和第一人称手动漫游+“后续”监控视频流播放
 
小场景按规划路线自动漫游和第一人称手动漫游+“后续”监控视频流播放
 
<big>单场景漫游:</big><br>
 
<big>单场景漫游:</big><br>
[[文件:OSG小场景 学校.png|400px|无|OSG小场景_学校]]
+
[[文件:OSG小场景 学校.png|800px|无|OSG小场景_学校]]
 
+
<big>多场景漫游及监控视频流播放:</big>
=== 数据保存 ===
+
[[文件:OSG小场景 场景选择界面.png|800px|无|OSG小场景_场景选择界面]]
====保存机制====
+
[[文件:OSG小场景 房间 1.png|800px|无|OSG小场景_全局照明房间]]
[[文件:保存机制.mkv|800px|保存机制]]
+
[[文件:OSG小场景 公寓 1.png|800px|无|OSG小场景_公寓_固定位置的视频流播放]]
 
+
[[文件:OSG小场景 公寓 2.png|800px|无|OSG小场景_公寓_UI层的监控视频流播放]]
<big>目前平台上保存的数据暂时只有蛮有路径,视频路径,模型路径。</big>
 
#<big><big>目前存在的问题</big></big>
 
::::*<big>视频右键不能播放,还是因为无法获取当前窗口的播放器控件。</big>
 
::::*<big>模型的场景树右键菜单无效,正在查找原因。</big>
 
::::*<big>平台启动后会将模型的路径加载到场景树中,目前还是准备在模型场景树的右键菜单中加入加载模型选项,即平台启动时不将之前保存的模型直接加载到osgearth中。</big>
 
# <big><big>  视频(模型)的保存</big></big>
 
::::*<big>视频路径及信息的保存是以xml文件的形式保存的。所以保存流程主要分两部分,一是对xml文件的读写;二是将视频路径及信息存入场景树。</big><br>
 
::::*<big>xml读写部分通过名为XmlTool类实现。</big>
 
::::*<big>类中的_isVido和_isModel用来确定查找的类型是视频还是模型。由于xml文件只能一层一层查找,所以指定查找的目标可以更方便查找路径。</big><br>
 
::::*<big>类中FindPath方法用来寻找某条路径,GetAllPath 获取全部路径及信息,并存入xmlTools._vidoDataList中。eletePath 删除路径。AddVidoElement 添加视频路径,AddModelElement 添加模型路径。</big>
 
<pre>            xmlTools.AddModelElement(XmlTools._isModel, "modelx2", "jk2", "11.2", "22.3", "33.5");//向xml添加模型路径及信息
 
            xmlTools.FindPath(XmlTools._isModel, "modelx2");//查找某条路径
 
            Console.WriteLine(xmlTools.tempData.name);//查找的结果在tempdata中,这里存储的是一条路径。在GetAllPath中_vidoDataList存储所有查询结果。
 
            Console.WriteLine(xmlTools.tempData.path);
 
            Console.WriteLine(xmlTools.tempData.window);
 
            Console.WriteLine(xmlTools.tempData.video_lat);
 
            Console.WriteLine(xmlTools.tempData.video_lon);
 
            Console.WriteLine(xmlTools.tempData.video_altitude);
 
            Console.WriteLine(xmlTools.tempData.video_width);
 
            Console.WriteLine(xmlTools.tempData.video_height); </pre>
 
 
 
=== 倾斜摄影设置说明 ===
 
ftp地址:ftp://cgt3d.cn/ <br>
 
1.下载ftp "倾斜摄影" 文件夹中的所有压缩包和load.exe<br>
 
2.随便点一个压缩包,直接解压到E盘<br>
 
3.将文件夹名字 (新建文件夹(2)  )改成  qingxiesheying<br>
 
(最后文件夹的层次结构应该是这样的:E:\qingxiesheying\Production_osgb )<br>
 
4.运行load.exe ,输入下面内容,回车,若能显示出倾斜摄影模型则表示osgb文件生成成功。<br>
 
E:/qingxiesheying/Production_osgb
 
  
 
== 平台安装说明 ==
 
== 平台安装说明 ==
===安装包下载===
 
ftp://cgt3d.cn/%C6%BD%CC%A8%B0%B2%D7%B0%B0%FC/
 
===基本打包步骤===
 
[[文件:Advanced installer.png|300px|缩略图|无|Advanced installer]]
 
打包平台使用的是advanced installer,advanced installer是一款非常实用的Windows软件安装程序制作工具,可用于制作MSI、EXE等软件安装包,用户只需添加文件,修改名称,添加按钮,非常的专业实用。
 
 
1.打开advanced installer后,选择通用模板下的安装程序项目(专业版),在下方选项中勾选使用向导来创建项目,语言选择简体中文。然后单击创建项目。<br>
 
[[文件:打包图1.png|600px|缩略图|无]]
 
2.在弹出的对话框中填入自定义的程序名称和组织(公司)名称,然后下一步。
 
[[文件:打包图2.png|600px|缩略图|无]]
 
3.勾选exe安装文件,也可意识用msi安装文件,看个人。继续下一步。
 
[[文件:打包图3.png|600px|缩略图|无]]
 
4.这里是否勾选看个人。继续下一步。
 
[[文件:打包图4.png|600px|缩略图|无]]
 
5.输入项目保存的路径,这里是打包项目的路径,不是平台的路径。项目输出文件中存放的是最终的exe可执行文件。
 
[[文件:打包图5.png|600px|缩略图|无]]
 
6.单击浏览,选择平台的release文件夹。勾选同步文件夹,用来自动更新平台文件内容。继续下一步。
 
[[文件:打包图6.png|600px|缩略图|无]]
 
7.勾选WPFOSGMDI.exe,这个文件是平台的启动文件。勾选下面两个关于创建快捷方式的选项。继续下一步。
 
[[文件:打包图7.png|600px|缩略图|无]]
 
8.这里看具体需求,可以直接下一步。
 
[[文件:打包图8.png|600px|缩略图|无]]
 
9.这里安装形式可根据需求选择,继续下一步。
 
[[文件:打包图9.png|600px|缩略图|无]]
 
10.勾选简体中文,继续下一步。
 
[[文件:打包图10.png|600px|缩略图|无]]
 
11.这里是安装程序展示协议文本的地方,根据需求选择。继续下一步。
 
[[文件:打包图11.png|600px|缩略图|无]]
 
12.单击完成,等待构建项目。<br>
 
13.在产品详细信息中可以自定义应用程序的图标,以及各种具体信息等。
 
[[文件:打包图13.png|600px|缩略图|无]]
 
14.由于平台的运行需要.net的支持,所以要在在运行环境中勾选 .NET Framework 4.7.2,advanced installer会自动下载.net安装文件。
 
[[文件:打包图14-1.png|600px|缩略图|无]]
 
15.单击环境变量标签,在右边空白处右键选择新建变量,名称选择Path,这里是Windows的系统环境变量,对应值为平台的文件夹,<br>
 
这里示例用的是include文件夹,前面的[APPDIR]在advanced installer中代表的是安装后平台的根目录,在[APPDIR]后面跟上对应的目录即可。
 
[[文件:打包图15-1.png|600px|缩略图|无]]
 
[[文件:打包图15-2.png|600px|缩略图|无]]
 
16.在所有操作之后,点击构建,即可生成exe安装文件,单击打开输出文件夹,这里面存放输出的exe文件。
 
[[文件:打包图16.png|600px|缩略图|无]]
 
  
 
== 主要参与人员 ==
 
== 主要参与人员 ==

请注意,您对CGTWiki的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅CGTWiki:版权的细节)。不要在未获授权的情况下发表!

取消 编辑帮助(在新窗口中打开)