一种基于UE5的适用于GIS应用的相机控制方法与流程

文档序号:30212275发布日期:2022-05-31 12:11阅读:1011来源:国知局
一种基于UE5的适用于GIS应用的相机控制方法与流程
一种基于ue5的适用于gis应用的相机控制方法
技术领域
1.本发明涉及城市信息模型的技术领域,具体涉及一种基于ue5的适用于gis应用的相机控制方法。


背景技术:

2.目前,cim(城市信息模型)相关产品大部分都是建立在web(网页浏览)端,基于cesium的gis(地理信息系统)框架结合webgl进行业务开发。但存在性能和可视化体验感不好等问题。
3.基于传统方案开发cim(城市信息模型)相关应用存在的问题,使用ue5引擎开发cim(城市信息模型)相关应用成为新的解决方案,能有效弥补web(网页浏览)端存在的问题。但ue5引擎(虚幻引擎5)更多的是针对游戏领域,在引擎内部相机的控制都是基于局部平面坐标系,多以第一人称视角的相机控制逻辑,无法满足基于地球的大尺度gis(地理信息系统)场景的控制。因此亟需一种基于ue5的适用于gis(地理信息系统)应用的相机控制方法。


技术实现要素:

4.针对现有技术中的缺陷,本发明提供一种基于ue5的适用于gis应用的相机控制方法,有利于快速搭建项目,省去了传统中场景控制模块的开发,提升工作效率,且通过ue5的渲染,和数据承载能力提升了可视化效果,提升其可视化体验感。
5.为达到上述目的,本发明提供了一种基于ue5的适用于gis应用的相机控制方法,该控制方法包括分别控制场景移动、场景旋转与场景缩放的控制方法,具体如下:s10、场景移动s11: 获取平移控制点在当前的屏幕坐标位置,并将屏幕位置转化为对应的空间坐标位置,获取该坐标垂直当前视角的法向量v1;s12:以当前空间位置为起始点,并以步骤s11中的法向量v1为发射方向发射一条射线,射线与目标曲面碰撞并获取碰撞点的坐标p1,由此计算出起始点到碰撞点的距离d1,该距离d1能够决定场景移动的步长;s13:获得步长后,当控制点移动时获取到控制点在移动方向上移动的单位向量v1,以该向量v1确定相机需要旋转的方向,通过步长确定旋转的速度,最终实现gis场景移动。
6.s20、场景旋转s21:获取旋转控制点在当前的屏幕坐标位置,并将屏幕位置转化为对应的空间坐标位置,同时获取该坐标垂直当前视角的法向量v2;s22:以当前空间位置为起始点,并以步骤s21中的法向量v2为发射方向发射一条射线,射线与目标曲面碰撞并获取碰撞点的坐标p2,同时计算出起始点到碰撞点的距离d2;s23:将相机的旋转轴心设置到碰撞点位置处,以轴心到步骤s22中的距离d2为轴
长,结合控制点的偏移值o,通过矩阵变换,实现gis场景的任意点为轴心的旋转。
7.s30、场景缩放s31:获取缩放控制点在当前的屏幕坐标位置,并将屏幕位置转化为对应的空间坐标位置,同时获取该坐标垂直当前视角的法向量v3;s32:以当前空间位置为起始点,并以步骤s31中的法向量v3为发射方向发射一条射线,射线与目标曲面碰撞并获取碰撞点的坐标p3,同时计算出起始点到碰撞点的距离d3,d3能够作为缩放速度的系数;s33:通过碰撞点的坐标p3和相机当前坐标p4求出指向控制点的单位向量v4;s34:确认控制点后视点发生偏移时,相机以视点偏移值作为单次缩放的步长系数s,用步骤s33中的单位向量v4确定相机偏移的方向,结合步长s和距离d3,最后实现gis场景中以任意点为缩放中心的缩放操作。
8.ue5引擎在基于局部平面坐标系的应用中,相机的位移控制逻辑相对简单,通常是通过获取鼠标的拖动位移值来控制相机的偏移,从而使相机的位置发生对应的变化,达到场景平移的目的。
9.本发明在实现局部坐标系相机平移的基础上,实现了基于大地坐标系的相机平移逻辑。
10.此改进主要需要解决如何在地球球面移动的问题,球体是曲面,这里的移动是无法通过平面移动逻辑来实现的,所以球面的移动本质是实现基于球心为旋转中心的旋转。
11.本发明不仅包含了局部平面坐标系的平移,也有效的实现了在基于地球坐标系的场景中任意位置的移动。
12.在ue5引擎中的旋转通常是以第一人称的角色视角的旋转,通过挂靠在角色视线起点的相机来控制视角的旋转,实现比较简单。区别于第一人称的固定轴心点,gis(地理信息系统)场景的轴心点是不固定的,而是跟随鼠标控制点而确定的。
13.其中需要解决如何将旋转控制点作为旋转轴心,并通过矩阵变换为相机的旋转。本发明实现在gis场景中的任意角度,任意位置的自由浏览。
14.ue5引擎中的常规基于局部坐标系的应用,在做镜头缩放操作时,通常是通过传递鼠标滚轮的值,将该值设为相机沿当前向前法向量方向的位置偏移参数,实现场景的缩放。
15.其中需要解决如何以控制点为缩放中心实现gis(地理信息系统)场景缩放。
16.gis(地理信息系统)场景中的缩放是基于大地坐标系,以鼠标控制点为中心的场景缩放,通过射线检测判断相机与鼠标控制点对应碰撞点的距离来确定缩放的速度,实现通过缩放快速的到达或离开任意指定的位置并进行自由的浏览。
17.本发明的有益效果:使用这种基于ue5的适用于gis(地理信息系统)应用的相机控制方法,可以实现在基于ue5开发gis应用中能够有一套通用的相机控制方法,属于gis项目中的刚性需求,有利于快速搭建项目。满足对gis场景的任意坐标位置的自由浏览,快速定位到世界坐标系中的任意项目所在地,并进行自由浏览。使用该控制方法,再结合ue5引擎出色的渲染能力、强大数据承载力,极大的提高gis应用的渲染效果,很大程度上提升了可视化体验感。对于开发者而言也省去了场景控制这个核心模块的开发,很大程度上提升了开发效率。为gis应用开发领域提供了有效的解决方案。
附图说明
18.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
19.图1为本发明中ue5引擎中gis场景的相机平移控制方法流程图;图2本发明中平移控制方法的具体实施例图;图3为本发明中ue5引擎中gis场景的相机旋转控制方法流程图;图4本发明中平旋转控制方法的具体实施例图;图5为本发明中ue5引擎中gis场景的相机缩放控制方法流程图;图6本发明中缩放控制方法的具体实施例图。
具体实施方式
20.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
21.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
22.需要说明的是:在ue5引擎在基于局部平面坐标系的应用中,相机的控制逻辑相对简单,通常是通过获取鼠标的拖动位移值来控制相机的偏移,从而使相机的位置发生对应的变化,达到场景平移的目的(鼠标移动
ꢀ‑
》 获取移动值
ꢀ‑
》 将值添加到相机的偏移量
ꢀ‑
》 场景移动)。
23.在ue5引擎中的旋转通常是以第一人称的角色视角的旋转,通过挂靠在角色视线起点的相机来控制视角的旋转,实现比较简单,其基本逻辑是:直接获取鼠标的上下/左右(moveup/moveright)偏移值,将偏移赋值于相机的旋转量最后实现场景的旋转。
24.ue5引擎中的常规基于局部坐标系的应用,在做镜头缩放操作时,通常是通过传递鼠标滚轮的值,将该值设为相机沿当前向前法向量(forward vector)方向的位置偏移参数,实现场景的缩放。
25.而在gis(地理信息系统)场景中,场景的基本对象为地球球体,因为地球是有曲率存在的,所以本发明解决了gis场景的的各类操作如何能够基于ue5引擎来控制。具体如下:在gis(地理信息系统)场景中的旋转是基于大地坐标系,以鼠标控制点为轴心的旋转,实现gis(地理信息系统)场景的任意角度,任意位置的自由浏览。区别于第一人称的固定轴心点,gis(地理信息系统)场景的轴心点是不固定的,而是跟随鼠标控制点而确定的。具体实现有以下步骤:s10、场景移动如图1、图2所示,在gis(地理信息系统)场景中的旋转是基于大地坐标系,以鼠标控制点为轴心的旋转,实现gis(地理信息系统)场景的任意角度,任意位置的自由浏览。区别于第一人称的固定轴心点,gis(地理信息系统)场景的轴心点是不固定的,而是跟随鼠标控制点而确定的。具体实现有以下步骤:step11: 当鼠标(或触控)确定平移起始点时,获取鼠标当前的屏幕坐标位置,并
将屏幕位置转化为对应的空间坐标位置,获取该坐标垂直当前视角的法向量v1。
26.step12:从当前空间位置为起始点,以step11中的法向量为发射方向发射一条射线,射线碰撞到地面某点时获取碰撞点的坐标p1,此刻可计算出起始点到碰撞点的距离d1,该距离将决定场景移动的步长。
27.step13:获得移动步长后,当鼠标移动时获取到鼠标移动方向的单位向量v1,以该向量确定相机需要旋转的方向,步长确定旋转的速度,最终实现gis(地理信息系统)场景中的平移(move)操作。
28.s20、场景旋转如图3、图4所示,在gis(地理信息系统)场景中的旋转是基于大地坐标系,以鼠标控制点为轴心的旋转,实现gis(地理信息系统)场景的任意角度,任意位置的自由浏览。区别于第一人称的固定轴心点,gis(地理信息系统)场景的轴心点是不固定的,而是跟随鼠标控制点而确定的。具体实现有以下步骤:step21: 当鼠标(或触控)确定场景中的某点为旋转轴心时,获取鼠标当前的屏幕坐标位置,并将屏幕位置转化为对应的空间坐标位置,获取该坐标垂直当前视角的法向量v2。
29.step22:从当前空间位置为起始点,以step21中的法向量为发射方向发射一条射线,射线碰撞到地面某点时获取碰撞点的坐标p2,同时计算出起始点到碰撞点的距离d2。
30.step23:将相机的旋转轴心设置到碰撞点位置,以轴心到step2中的距离d2为轴长,结合鼠标的偏移值o,通过矩阵变换,实现场景的任意点为轴心的旋转;s30、场景缩放如图5、图6所示,gis(地理信息系统)场景中的缩放是基于大地坐标系,以鼠标控制点为中心的场景缩放,通过射线检测判断相机与鼠标控制点对应碰撞点的距离来确定缩放的速度,实现通过缩放快速的到达或离开任意指定的位置并进行自由的浏览。具体步骤如下:step31:当鼠标确定缩放控制点时,获取鼠标当前的屏幕坐标位置,并将屏幕位置转化为对应的空间坐标位置,同时获取该坐标垂直当前视角的法向量v3;step32:从当前空间位置为起始点,以step31中的法向量v3为发射方向发射一条射线,射线碰撞到地面某点时获取碰撞点的坐标p,同时计算出起始点到碰撞点的距离d3,d3可作为缩放速度的系数之一;step33:通过碰撞点的坐标p3和相机当前坐标p4求出指向控制点的单位向量v4;step34:鼠标确认控制点后滚轮发生偏移时,相机以滚轮偏移值作为单次缩放的步长系数s,用step33中的单位向量v4确定相机偏移的方向,结合步长s和距离d3,最后实现gis(地理信息系统)场景中沿任意点为缩放中心的缩放操作。
31.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1