本技术涉及标牌避让,具体涉及一种基于osgearth 3d仿真环境标牌自动避让方法、装置、介质及设备。
背景技术:
1、随着计算机图形学和计算机仿真技术的蓬勃发展,视景仿真技术在航空领域发挥的作用越来越重要。其中,飞行视景仿真系统应用较为广泛,飞行视景仿真系统既可以实时显示飞行器的状态,又可以模拟充满危险的实验,而飞行视景仿真系统则是需要osgearth配合渲染,osgearth作为一款的三维渲染引擎,不仅能够渲染并显示三维仿真场景,还能够给用户提供相关的操作界面进行人机交互控制。在osgearth渲染大型的飞行视景仿真系统中,重点构造战机,战舰,无人机等实体模型,同时osgearth渲染过程中,为了用户直观的区分不同实体模型的角色,会为每个实体模型绘制标牌,显示实体模型的属性。
2、针对上述中的相关技术,发明人认为存在有以下缺陷: osgearth的三维仿真场景搭建完成后,基于实体模型的仿真数据,驱动实体模型在三维仿真场景中推演显示过程中,会出现标牌遮挡实体模型的情况,影响仿真推演的效果,通常采用的方式为:人员手动调整标牌的位置来解决标牌遮挡实体模型的问题,但是手工调整的方式效率较低。
技术实现思路
1、为了提升解决标牌遮挡实体模型问题的效率,本技术提供一种基于osgearth 3d仿真环境标牌自动避让方法、装置、介质及设备。
2、在本技术的第一方面提供了一种基于osgearth 3d仿真环境标牌自动避让方法,具体包括:
3、获取osgearth 3d仿真环境中可见实体模型的第一外接矩形,并获取所述osgearth 3d仿真环境中所述可见实体模型对应的目标标牌的第二外接矩形,所述目标标牌为显示所述可见实体模型的属性并且正对终端的屏幕的标牌;
4、根据所述第一外接矩形和所述第二外接矩形的位置关系,判断所述可见实体模型与所述目标标牌是否碰撞;
5、若是,则确定所述目标标牌重新显示的目标位置,并将所述目标标牌移动至所述目标位置。
6、通过采用上述技术方案,确定可见实体模型的第一外接矩形和对应目标标牌的第二外接矩形,从而将可见实体模型和目标标牌从3d仿真环境中转换到二维平面上,从而较为便捷地根据第一外接矩形和第二外接矩形的位置关系,准确判断可见实体模型和对应的目标标牌是否发生碰撞,如果发生碰撞,说明目标标牌对遮挡此可见实体模型,影响仿真推演效果,那么确定目标标牌重新显示的目标位置,即,避免遮挡而需要移动到的位置。最后,自动将此目标标牌移动到此目标位置,从而避免人员手动移动标牌,实现提升解决标牌遮挡实体模型问题的效率。
7、可选的,所述获取osgearth 3d仿真环境中可见实体模型的第一外接矩形,具体包括:
8、获取osgearth 3d仿真环境中各实体模型的包围盒;
9、将各所述包围盒的三维顶点坐标转换为屏幕坐标,并根据每个所述实体模型的屏幕坐标,确定各所述实体模型的屏幕外接矩形;
10、判断各所述实体模型是否在视口中可见,若可见,则将可见的实体模型对应的屏幕外接矩形确定为可见实体模型的第一外接矩形,所述视口为观察实体模型时所看到的屏幕区域。
11、通过采用上述技术方案,确定osgearth 3d仿真环境中各个实体模型的包围盒的三维顶点坐标,将其转换为屏幕坐标,进而确定实体模型在屏幕上的屏幕外接矩形,从而实现将各个实体模型投影到2d屏幕的效果。由于仅限于终端的屏幕上显示的实体模型会对仿真推演效果产生影响,因此从各个实体模型中筛选出可见的实体模型,最后将可见的实体模型的屏幕外接矩形,确定为可见实体模型的第一外接矩形,从而方便后续可见实体模型的碰撞检测。
12、可选的,所述判断各所述实体模型是否在视口中可见,具体包括:
13、判断各所述实体模型的屏幕坐标是否处于视口范围内;
14、若处于所述视口范围内,则确定对应的实体模型在视口中可见;
15、若未处于所述视口范围内,则确定对应的实体模型在视口中不可见。
16、通过采用上述技术方案,如果实体模型的屏幕坐标处在视口范围中,说明此实体模型在终端的屏幕上可以被看到,那么确定此实体模型是可见,反之,则是不可见,从而实现快速准确地确定可见的实体模型。
17、可选的,所述判断各所述实体模型是否在视口中可见,若可见之后还包括:
18、将可见的实体模型和对应的屏幕外接矩形添加至预设的模型链表中,并继续判断下一个实体模型是否在视口中可见;
19、若可见,重复执行所述将可见的实体模型和对应的屏幕外接矩形添加至预设的模型链表中的步骤,直到所有实体模型遍历完成;
20、所述将可见的实体模型对应的屏幕外接矩形确定为可见实体模型的第一外接矩形,具体包括:
21、从所述模型链表中任选一个目标实体模型,将所述目标实体模型的屏幕外接矩形确定为可见实体模型的第一外接矩形。
22、通过采用上述技术方案,将所有实体模型中可见的实体模型和对应的屏幕外接矩形均添加到模型链表中,从而方便对可见的实体模型进行管理和处理。进一步地,从模型链表中选择一个目标实体模型,确定为可见实体模型的第一外接矩形,从而方便更好地进行可见的实体模型的碰撞测试。
23、可选的,所述根据所述第一外接矩形和所述第二外接矩形的位置关系,判断所述可见实体模型与所述目标标牌是否碰撞,具体包括:
24、判断所述第一外接矩形与所述第二外接矩形是否相交;
25、若相交,则确定所述可见实体模型与所述目标标牌发生碰撞。
26、通过采用上述技术方案,如果第一外接矩形与第二外接矩形的位置关系为相交,说明对应的可见实体模型与目标标牌在osgearth 3d仿真环境中发生碰撞,从而实现较为简单快速地完成碰撞检测。
27、可选的,所述确定所述目标标牌重新显示的目标位置,具体包括:
28、确定所述第一外接矩形与所述第二外接矩形的相交矩形;
29、将所述相交矩形的宽度确定为目标距离,并将所述目标标牌沿发生碰撞的相反方向移动所述目标距离后所处的位置确定为目标位置。
30、通过采用上述技术方案,如果确定发生碰撞,那么将第一外接矩形与第二外接矩形的相交矩形的宽度确定为目标距离,即,避让可见实体模型而移动的距离,接着根据目标距离,可以快速地确定目标标牌避让后的位置,方便后续目标标牌自动避让。
31、可选的,所述获取所述osgearth 3d仿真环境中所述可见实体模型对应的目标标牌的第二外接矩形,具体包括:
32、确定所述osgearth 3d仿真环境中所述可见实体模型对应的目标标牌中显示内容的所占面积的尺寸;
33、根据所述尺寸,生成所述目标标牌的第二外接矩形。
34、通过采用上述技术方案,由于目标标牌中具有可见实体模型的属性的显示内容,并且目标标牌是正对屏幕,因此根据显示内容的所占面积,可以确定显示内容的尺寸,进而相应地可以确定第二外接矩形的尺寸,最终快速准确地的确定目标标牌在屏幕上的外接矩形。
35、在本技术的第二方面提供了一种基于osgearth 3d仿真环境标牌自动避让装置,具体包括:
36、矩形获取模块,用于获取osgearth 3d仿真环境中可见实体模型的第一外接矩形,并获取所述osgearth 3d仿真环境中所述可见实体模型对应的目标标牌的第二外接矩形,所述目标标牌为显示所述可见实体模型的属性并且正对终端的屏幕的标牌;
37、碰撞检测模块,用于根据所述第一外接矩形和所述第二外接矩形的位置关系,判断所述可见实体模型与所述目标标牌是否碰撞;
38、碰撞避让模块,用于若是,则确定所述目标标牌重新显示的目标位置,并将所述目标标牌移动至所述目标位置。
39、通过采用上述技术方案,矩形获取模块获取osgearth 3d仿真环境中可见实体模型的第一外接矩形和对应目标标牌的第二外接矩形,接着由碰撞检测模块根据第一外接矩形和第二外接矩形的位置关系,快速确定可见实体模型与目标标牌是否碰撞,最后由碰撞避让模块在确定碰撞后,确定目标标牌重新显示的目标位置,并将目标标牌移动至所述目标位置,从而实现自动调整目标标牌的位置,提升解决标牌遮挡实体模型问题的效率。
40、综上所述,本技术包括以下至少一种有益技术效果:
41、确定可见实体模型的第一外接矩形和对应目标标牌的第二外接矩形,从而将可见实体模型和目标标牌从3d仿真环境中转换到二维平面上,从而较为便捷地根据第一外接矩形和第二外接矩形的位置关系,准确判断可见实体模型和对应的目标标牌是否发生碰撞,如果发生碰撞,说明目标标牌对遮挡此可见实体模型,影响仿真推演效果,那么确定目标标牌重新显示的目标位置,即,避免遮挡而需要移动到的位置。最后,自动将此目标标牌移动到此目标位置,从而避免人员手动移动标牌,实现提升解决标牌遮挡实体模型问题的效率。