本发明涉及3d显示技术领域,尤其涉及一种3d场景显示控制方法、系统及设备。
背景技术:
在现有技术中查看特定点的图像时一般是将鼠标移到待查看的点,并借助鼠标的滑轮或者键盘来将图像放大的方式来查看。比如3d场景交互方案,通过键盘方向键、鼠标平移等操作控制3d场景的观察视角,并且结合鼠标滚轮实现3d场景的拉近拉远效果,以及通过ui控件对3d场景进行其他控制,即在对3d场景进行放大显示时,需要结合键盘方向键、鼠标以及其他ui控件进行操作,这种操控方式并不自然。因此,使用现有技术中的交互操作在3d场景实现漫游任务(比如需要查看某一细节场景)的时候,需要多个操作控件组合使用,具有一定的操作复杂度。
技术实现要素:
本发明实施例的目的是提供一种3d场景显示控制方法、系统及设备,能够使得3d场景显示控制的操作简单,方便快捷。
为实现上述目的,本发明实施例提供了一种3d场景显示控制方法,包括:
响应选择指令时,在3d场景中获取所述选择指令对应的选定区域;
转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点;
控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态;
判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;
若是,则停止移动所述漫游摄像机;若否,则继续移动所述漫游摄像机。
与现有技术相比,本发明实施例提供的3d场景显示控制方法,首先在响应选择指令后生成选定区域,即只需要用户发出选择指令即可,不需要用户再操控其他控件;然后漫游摄像机会自动靠近选定区域,以使选定区域在当前屏幕中处于放大状态,从而达到放大显示选定区域的效果。另外,由于漫游摄像机的透视现象导致远小近大,所以当漫游摄像机不断靠近3d场景中的选定区域时,选定区域从漫游摄像机的角度看会显得越来越大。采用漫游摄像机查看3d场景,基于选择指令即可对选定区域进行放大显示,不需要结合多个控件实现,能够使得3d场景显示控制的操作简单,方便快捷。
作为上述方案的改进,所述选择指令为指示装置发出的长按指令;则所述获取所述选择指令对应的选定区域,具体包括:
获取所述指示装置按下操作时对应的第一触控点以及抬起操作时对应的第二触控点;
根据所述第一触控点以及所述第二触控点构建所述选定区域。
作为上述方案的改进,所述选定区域为矩形区域或圆形区域;其中,
当所述选定区域为矩形区域时,所述第一触控点与所述第二触控点为所述矩形区域中不相邻的两个顶点;
当所述选定区域为圆形区域时,所述第一触控点与所述第二触控点为所述圆形区域的边界点,且所述第一触控点与所述第二触控点连接而成的直线为所述圆形区域的直径。
作为上述方案的改进,所述漫游摄像机的视野范围为一以所述漫游摄像机为顶点的四棱锥,所述四棱锥的底面为当前屏幕的显示区域。
作为上述方案的改进,所述控制所述漫游摄像机靠近所述选定区域,具体包括:
控制所述漫游摄像机沿着预设直线靠近所述选定区域;其中,所述预设直线为所述漫游摄像机在初始位置处与所述选定区域的中心点连接而成的直线。
作为上述方案的改进,所述控制所述漫游摄像机靠近所述选定区域时,还包括:
对所述漫游摄像机的位置以及姿态进行均匀插值。
作为上述方案的改进,所述方法还包括:
控制所述漫游摄像机远离所述选定区域,以使所述选定区域在当前屏幕中处于缩小状态。
为实现上述目的,本发明实施例还提供了一种3d场景显示控制系统,包括:
选定区域获取模块,用于响应选择指令时,在3d场景中获取所述选择指令对应的选定区域;
漫游摄像机控制模块,用于转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点;控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态;
判断模块,用于判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;若是,则停止移动所述漫游摄像机;若否,则继续移动所述漫游摄像机。
作为上述方案的改进,所述选择指令为指示装置发出的长按指令;则所述选定区域获取模块具体用于:
获取所述指示装置按下操作时对应的第一触控点以及抬起操作时对应的第二触控点;
根据所述第一触控点以及所述第二触控点构建所述选定区域。
为实现上述目的,本发明实施例还提供一种3d场景显示控制设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的3d场景显示控制方法。
附图说明
图1是本发明实施例提供的一种3d场景显示控制方法的流程图;
图2是本发明实施例提供的基于3d地图的视频投影技术中视频投影几何模型示意图;
图3是本发明实施例提供的一种3d场景显示控制方法中选定区域的位置示意图;
图4是本发明实施例提供的一种3d场景显示控制方法中漫游摄像机成像示意图;
图5是本发明实施例提供的一种3d场景显示控制系统10的结构示意图;
图6是本发明实施例提供的一种3d场景显示控制设备20的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参见图1,图1是本发明实施例提供的一种3d场景显示控制方法的流程图;包括:
s1、响应选择指令时,在3d场景中获取所述选择指令对应的选定区域;
s2、转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点;
s3、控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态;
s4、判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;
s5、若是,则停止移动所述漫游摄像机;若否,则继续移动所述漫游摄像机。
值得说明的是,本发明实施例所述的3d场景为3d地图,本发明实施例并不适用于2d场景。因为真实的地理空间属于三维的,2d地图无法完全模拟。例如漫游摄像机有高点和低点之分,如果采用2d地图,那么漫游摄像机的高程信息将被过滤掉,同时漫游摄像机是可控的,其控制方向有水平和垂直两个方向,如果采用2d地图,那么只能粗略的计算出球机的水平控制参数。
本发明实施例中所述的漫游摄像机利用了基于3d地图的视频投影技术,该技术是根据视频投影点的位置以及姿态,建立投影平面。如图2所示,局部坐标系01-xyz代表投影点空间位置以及姿态,a、b、c、d是构建的投影平面,该平面是一个矩形,用于替代监控视频画面进行几何计算。其中01点的坐标是球机在真实世界(地理空间)中的位置,也是视频投影点的位置。然后计算3d地图网格顶点在该投影平面上的投影位置,如果投影位置落在abcd区域内,则将视频数据当作纹理信息覆盖在该网格顶点上。而本发明实施例3d场景中会有一个摄像机,这个摄像机是用来将计算机中所构造的3d场景投影显示到显示屏幕上,这个摄像机是虚拟的,存在于计算机3d场景中,通过变换这个漫游摄像机的空间位置,3d场景呈现在显示屏幕上的画面会不断变化,此处的摄像机称为“漫游摄像机”。
具体的,在步骤s1中,响应选择指令时,在3d场景中获取所述选择指令对应的选定区域。优选的,所述选择指令为指示装置发出的长按指令;获取所述指示装置按下操作时对应的第一触控点以及抬起操作时对应的第二触控点;根据所述第一触控点以及所述第二触控点构建所述选定区域。所述指示装置可以为鼠标、触控笔等具有指示作用的指示装置。
优选的,所述选定区域为矩形区域或圆形区域;其中,当所述选定区域为矩形区域时,所述第一触控点与所述第二触控点为所述矩形区域中不相邻的两个顶点;当所述选定区域为圆形区域时,所述第一触控点与所述第二触控点为所述圆形区域的边界点,且所述第一触控点与所述第二触控点连接而成的直线为所述圆形区域的直径。
具体的,参见图3,图3是本发明实施例提供的一种3d场景显示控制方法中选定区域的位置示意图;用户通过长按鼠标,并拖动鼠标,以鼠标按键开始按下以及到鼠标按键抬起的两个位置点(即所述第一触控点和所述第二触控点)构建一个矩形区域abcd。
具体的,在步骤s2中,转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点。优选的,所述漫游摄像机的视野范围为一以所述漫游摄像机为顶点的四棱锥,所述四棱锥的底面为当前显示屏幕的显示区域。
具体的,在步骤s3中,控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态。值得说明的是,这里提到的放大了,是指选定区域在屏幕上的显示面积变大,实际的选定区域的尺寸是固定的。
优选的,所述控制所述漫游摄像机靠近所述选定区域,具体包括:控制所述漫游摄像机沿着预设直线靠近所述选定区域;其中,所述预设直线为所述漫游摄像机在初始位置处与所述选定区域的中心点连接而成的直线。
所述矩形区域abcd只是位于显示屏幕上的一个矩形框,无法确定3d地图中哪些区域被框选,为此,参见图4,本发明实施例以所述漫游摄像机位置(坐标系o-xyz表示所述漫游摄像机的位置与姿态)以及选所述矩形区域abcd构建一个四棱锥o-abcd,并以所述漫游摄像机位置为顶点对四棱锥进行延伸,并计算延伸后的四棱锥与3d地图的交点。在所述漫游摄像机拉近过程中,保证这四个交点在屏幕上的显示位置最靠近屏幕边缘,那么这四个交点所构成的区域将被最大化地显示在屏幕上,以达到所述摄像机根据所述选定区域位置以及大小的方式来实现3d地图细节放大的效果。由于漫游摄像机的透视现象导致远小近大,所以当漫游摄像机不断靠近3d场景中的选定区域时,选定区域从漫游摄像机的角度看会显得越来越大(其实选定区域的实际尺寸没有变化)。
如图4所示,其中s1s2s3s4指的是投影平面(显示屏幕),abcd是用户框选的选定区域(在屏幕上框选的区域)。假设用户框选了矩形区域abcd,根据投影变换关系,可以知道用户选择的是3d地图上的a1b1c1d1区域(延伸后的四棱锥与3d地图的交点),也就是说用户希望更进一步观察a1b1c1d1区域。这里重新定位出a1b1c1d1区域的目的,就是为了响应用户的框选操作(基于屏幕),同时告诉计算机,用户真实框选的区域(基于3d地图)。a1、b1、c1、d1为这四个交点(四个交点不一定都存在),另外,这四个交点不一定在同一个平面上。
进一步的,所述控制所述漫游摄像机靠近所述选定区域时,还包括:对所述漫游摄像机的位置以及姿态进行均匀插值。使得所述漫游摄像机观察画面流畅,消除用户的3d眩晕症。
具体的,在步骤s4~s5中,判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;若是,则停止移动所述漫游摄像机,此时所述选定区域在所述显示屏幕中处于放大显示状态;若否,则继续移动所述漫游摄像机。
进一步的,所述方法还包括:控制所述漫游摄像机远离所述选定区域,以使所述选定区域在当前屏幕中处于缩小状态。或者,当需要缩放所述选定区域时,可以转动所述漫游摄像机,然后框选远景。
具体实施时,假设用户希望观察3d地图某一特定的区域,可以通过拖选框框定该选定区域,漫游摄像机便会自动以便拉近观察视角到一个合适的位置,并且在该位置时,其视野能够完全覆盖之前框选的区域。同时,在摄像机视角拉近框选区域的过程中,通过对漫游摄像机的位置以及姿态进行均匀插值的方式,使得摄像机观察画面流畅,消除用户的3d眩晕症。
与现有技术相比,本发明实施例提供的3d场景显示控制方法,首先在响应选择指令后生成选定区域,即只需要用户发出选择指令即可,不需要用户再操控其他控件;然后漫游摄像机会自动靠近选定区域,以使选定区域在当前屏幕中处于放大状态,从而达到放大显示选定区域的效果。采用漫游摄像机查看3d场景,基于选择指令即可对选定区域进行放大显示,不需要结合多个控件实现,能够使得3d场景显示控制的操作简单,方便快捷。
实施例二
参见图5,图5是本发明实施例提供的一种3d场景显示控制系统10的结构示意图;包括:
选定区域获取模块11,用于响应选择指令时,在3d场景中获取所述选择指令对应的选定区域;
漫游摄像机控制模块12,用于转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点;控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态;
判断模块13,用于判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;若是,则停止移动所述漫游摄像机;若否,则继续移动所述漫游摄像机。
优选的,所述选择指令为指示装置发出的长按指令;则选定区域获取模块11具体用于:获取所述指示装置按下操作时对应的第一触控点以及抬起操作时对应的第二触控点;根据所述第一触控点以及所述第二触控点构建所述选定区域。
优选的,所述选定区域为矩形区域或圆形区域;其中,当所述选定区域为矩形区域时,所述第一触控点与所述第二触控点为所述矩形区域中不相邻的两个顶点;当所述选定区域为圆形区域时,所述第一触控点与所述第二触控点为所述圆形区域的边界点,且所述第一触控点与所述第二触控点连接而成的直线为所述圆形区域的直径。
优选的,所述漫游摄像机的视野范围为一以所述漫游摄像机为顶点的四棱锥,所述四棱锥的底面为当前屏幕的显示区域。
优选的,所述漫游摄像机控制模块12具体用于:控制所述漫游摄像机沿着预设直线靠近所述选定区域;其中,所述预设直线为所述漫游摄像机在初始位置处与所述选定区域的中心点连接而成的直线。所述漫游摄像机控制模块12控制所述漫游摄像机靠近所述选定区域时,还包括:对所述漫游摄像机的位置以及姿态进行均匀插值。
进一步的,所述漫游摄像机控制模块12还用于:控制所述漫游摄像机远离所述选定区域,以使所述选定区域在当前屏幕中处于缩小状态。
具体的所述3d场景显示控制系统10的工作过程请参考上述实施例一所述的3d场景显示控制方法的过程,在此不再赘述。
与现有技术相比,本发明实施例提供的3d场景显示控制系统10,首先选定区域获取模块11在响应选择指令后生成选定区域,即只需要用户发出选择指令即可,不需要用户再操控其他控件;然后漫游摄像机控制模块12控制漫游摄像机自动靠近选定区域,以使选定区域在当前屏幕中处于放大状态,从而达到放大显示选定区域的效果。采用漫游摄像机查看3d场景,基于选择指令即可对选定区域进行放大显示,不需要结合多个控件实现,能够使得3d场景显示控制的操作简单,方便快捷。
实施例三
参见图6,图6是本发明实施例提供的一种3d场景显示控制设备20的结构示意图;该实施例的3d场景显示控制设备20包括:处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述各个3d场景显示控制方法实施例中的步骤,例如图1所示的步骤s1~s5。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如选定区域获取模块11。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述3d场景显示控制设备20中的执行过程。例如,所述计算机程序可以被分割成选定区域获取模块11、漫游摄像机控制模块12和判断模块13,各模块具体功能如下:
选定区域获取模块11,用于响应选择指令时,在3d场景中获取所述选择指令对应的选定区域;
漫游摄像机控制模块12,用于转动漫游摄像机,使得所述漫游摄像机对准所述选定区域的中心点;控制所述漫游摄像机靠近所述选定区域,以使所述选定区域在当前屏幕中处于放大状态;
判断模块13,用于判断所述选定区域的边界点是否超出所述漫游摄像机的视野范围;若是,则停止移动所述漫游摄像机;若否,则继续移动所述漫游摄像机。
所述3d场景显示控制设备20可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述3d场景显示控制设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是3d场景显示控制设备20的示例,并不构成对3d场景显示控制设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述3d场景显示控制设备20还可以包括输入输出设备、网络接入设备、总线等。
所述处理器21可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述3d场景显示控制设备20的控制中心,利用各种接口和线路连接整个3d场景显示控制设备20的各个部分。
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述3d场景显示控制设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述3d场景显示控制设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。