System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机图形学,尤其涉及一种在cesium三维场景的多边形可视域分析方法、计算机设备和计算机可读存储介质。
技术介绍
1、cesium是一个用于创建三维地球和地理空间数据交互式可视化应用程序,它基于javascript语言,利用webgl(全写web graphics library)技术在web浏览器中实现高性能的三维地理空间可视化。
2、随着cesium技术的飞速发展和三维地理空间可视化市场需求规模暴涨,城市规划、景观分析、安全规划、军事应用、自动驾驶和交通规划、遥感影像分析等场景中,都需要研究和模拟地表上各种地物的可视性和遮挡关系,即可视域分析,以便合理规划城市的布局、景观设计、评估景观的美感和可达性、设计安全防护措施和监控系统、进行战术规划和作战模拟、设计交通信号系统和交通规划、评估地表上的覆盖物类型和资源分布等。
3、如何精准分析cesium三维场景中圈出区域(由多个点、线、面组成的多边形)和地表上各地物的可视性和遮挡关系,是本领域的难题。目前在cesium三维场景实际进行可视域分析的操作过程中,难以将分析边界设置为实际需要的多边形,且需要大量操作底层api,而底层api使用图形学术语,需要开发人员熟练图形学和opengl编程的知识,操作难度高。
技术实现思路
1、为了克服现有技术的不足,本专利技术的目的在于提供一种在cesium三维场景的多边形可视域分析方法、计算机设备和计算机可读存储介质,具有操作方便、计算效率高、准确度高等优势,还
2、本专利技术的多边形可视域分析方法采用如下技术方案实现:
3、一种在cesium三维场景的多边形可视域分析方法,包括以下步骤:
4、在三维场景中绘制分析边界,计算分析边界、视锥体与三维场景三者的相交图形;
5、基于相交图形的图形纹理、阴影以及视锥体的属性创建webgl视图;
6、基于webgl对图形纹理每个像素的可见性和阴影的可见性进行分析;
7、根据图形纹理每个像素的可见性和阴影的可见性,将图形纹理每个像素渲染在三维场景中,得到可见和不可见的分析效果。
8、进一步地,所述在三维场景中绘制分析边界,计算分析边界、视锥体与三维场景三者的相交图形,包括:
9、步骤1:使用绘制工具,在三维场景中绘制出分析边界;
10、步骤2:获取三维场景中由虚拟相机构建的视锥体;
11、步骤3:使用射线追踪计算视锥体6个面与三维场景的相交图形;
12、步骤4:使用射线追踪计算步骤1结果和步骤3结果的相交图形。
13、进一步地,在步骤1中,绘制出的分析边界为线段或多边形;在步骤3中,计算出的相交图形为相交多边形;在步骤4中,计算出的相交图形为相交线段或相交多边形。
14、进一步地,所述基于相交图形的图形纹理、阴影以及视锥体的属性创建webgl视图,包括:
15、步骤5:将步骤4的结果绘制在canvas上,并加载到cesium场景中,然后通过cesium的texture方法或readpixels方法获取图形纹理,并作为范围参数boundarytexure传入步骤7;
16、步骤6:获取步骤2中视锥体的视点、视角、垂直夹角、水平夹角、投影方式、光源、光源方向和最大距离,以及获取步骤4结果在光源下的阴影shadowmap,作为参数传入步骤7;
17、步骤7:根据步骤5和步骤6传入的参数,创建webgl视图。
18、进一步地,所述基于webgl对图形纹理每个像素的可见性和阴影的可见性进行分析,包括:
19、步骤8:通过webgl的texture2d函数读取boundarytexure每个像素的颜色和深度信息;基于以下的步骤9~步骤14,对boundarytexure每个像素的可见性和shadowmap阴影的可见性进行分析;
20、步骤9:根据像素的深度值判断像素是否超出视野,若是则结束该像素的可视分析;
21、步骤10:根据像素的深度值和纹理坐标,通过cesium内置的toeye方法计算像素的位置和法线信息;
22、步骤11:根据像素的位置和法线信息,以及shadowmap的阴影深度偏差depthbias、阴影深度depth和投影坐标xy参数,计算出像素的阴影可见性;
23、步骤12:根据像素的位置和光源位置计算出阴影空间坐标,并判断该坐标是否在阴影贴图的范围内,若否则结束该像素的可视分析;
24、步骤13:根据视点和光源位置计算出像素到光源的距离,并判断该距离是否大于步骤6中获取的视锥体的最大距离,若是则结束该像素的可视分析;
25、步骤14:根据光源方向、上方向、右方向以及像素和光源的位置,计算出像素和光源之间的水平夹角和垂直夹角,并判断是否超出步骤6中获取的视锥体的水平夹角和垂直夹角,若是则结束该像素的可视分析。
26、进一步地,所述步骤7包括:将步骤5和步骤6获取的结果,以及自定义片源着色器fragmentshader代码,作为参数传入cesium的postprocessstage对象,然后将实例化postprocessstage后得到的postprocessstage,添加到cesium scene的postprocessstages对象中,由cesium场景内部每次更新时执行postprocessstage实例;
27、在步骤8中,所述通过webgl的texture2d函数读取boundarytexure每个像素的颜色和深度信息,包括:postprocessstage实例运行时,执行fragmentshader代码,fragmentshader代码调用webgl的texture2d函数读取boundarytexure每个像素的颜色和深度信息。
28、进一步地,所述步骤9包括:postprocessstage实例运行时,webgl根据boundarytexure中像素的深度值判断像素是否超出视野,如果像素的深度值≥1.0,则该像素超出了视野,结束该像素的可视分析。
29、进一步地,根据图形纹理每个像素的可见性和阴影的可见性,将图形纹理每个像素渲染在三维场景中,得到可见和不可见的分析效果,包括:
30、步骤15:postprocessstage实例运行时,通过循环步骤9~步骤14,得到boundarytexure每个像素的可见性和shadowmap阴影的可见性,根据boundarytexure每个像素的可见性和shadowmap阴影的可见性,通过webgl将boundarytexure每个像素渲染在三维场景中,得到可见和不可见的分析效果。
31、本专利技术的计算机设备采用如下技术方案实现:
32、一种计算机设备,包括存储器、处理器以及存储在存储器上并且可本文档来自技高网...
【技术保护点】
1.一种在Cesium三维场景的多边形可视域分析方法,其特征在于,包括以下步骤:
2.如权利要求1所述的多边形可视域分析方法,其特征在于,所述在三维场景中绘制分析边界,计算分析边界、视锥体与三维场景三者的相交图形,包括:
3.如权利要求2所述的多边形可视域分析方法,其特征在于,在步骤1中,绘制出的分析边界为线段或多边形;在步骤3中,计算出的相交图形为相交多边形;在步骤4中,计算出的相交图形为相交线段或相交多边形。
4.如权利要求2所述的多边形可视域分析方法,其特征在于,所述基于相交图形的图形纹理、阴影以及视锥体的属性创建WebGL视图,包括:
5.如权利要求4所述的多边形可视域分析方法,其特征在于,所述基于WebGL对图形纹理每个像素的可见性和阴影的可见性进行分析,包括:
6.如权利要求5所述的多边形可视域分析方法,其特征在于,所述步骤7包括:将步骤5和步骤6获取的结果,以及自定义片源着色器fragmentShader代码,作为参数传入Cesium的PostProcessStage对象,然后将实例化PostProcess
7.如权利要求6所述的多边形可视域分析方法,其特征在于,所述步骤9包括:postProcessStage实例运行时,WebGL根据boundaryTexure中像素的深度值判断像素是否超出视野,如果像素的深度值≥1.0,则该像素超出了视野,结束该像素的可视分析。
8.如权利要求7所述的多边形可视域分析方法,其特征在于,根据图形纹理每个像素的可见性和阴影的可见性,将图形纹理每个像素渲染在三维场景中,得到可见和不可见的分析效果,包括:
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并且可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1-8任一项所述的多边形可视域分析方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8任一项所述的多边形可视域分析方法。
...【技术特征摘要】
1.一种在cesium三维场景的多边形可视域分析方法,其特征在于,包括以下步骤:
2.如权利要求1所述的多边形可视域分析方法,其特征在于,所述在三维场景中绘制分析边界,计算分析边界、视锥体与三维场景三者的相交图形,包括:
3.如权利要求2所述的多边形可视域分析方法,其特征在于,在步骤1中,绘制出的分析边界为线段或多边形;在步骤3中,计算出的相交图形为相交多边形;在步骤4中,计算出的相交图形为相交线段或相交多边形。
4.如权利要求2所述的多边形可视域分析方法,其特征在于,所述基于相交图形的图形纹理、阴影以及视锥体的属性创建webgl视图,包括:
5.如权利要求4所述的多边形可视域分析方法,其特征在于,所述基于webgl对图形纹理每个像素的可见性和阴影的可见性进行分析,包括:
6.如权利要求5所述的多边形可视域分析方法,其特征在于,所述步骤7包括:将步骤5和步骤6获取的结果,以及自定义片源着色器fragmentshader代码,作为参数传入cesium的postprocessstage对象,然后将实例化postprocessstage后得到...
【专利技术属性】
技术研发人员:石立阳,邱伟洋,曹琪,黄星淮,祝昌宝,王哲,陈洪杰,杨建,曾庆睿,
申请(专利权)人:数元科技广州有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。