掌桥专利:专业的专利平台
掌桥专利
首页

场景切换方法及装置、存储介质

文献发布时间:2023-06-19 11:26:00


场景切换方法及装置、存储介质

本申请是申请日为2019年11月30日、申请号为201911208538.0、发明名称为“场景切换方法及装置、存储介质”的发明专利申请的分案申请。

技术领域

本公开的实施例涉及一种基于三维模型和全景天空盒的场景切换方法、场景切换装置及存储介质。

背景技术

随着技术的发展,虚拟现实(Virtual Reality,VR)技术在诸多领域得到广泛应用,例如医疗、教育、娱乐等领域。常见的VR产品例如包括VR游戏、VR影院、VR图库等。VR技术使用户具有身临其境的体验,在视觉、听觉甚至触觉上产生与现实世界一样的感知,极大提高了用户的使用体验。

发明内容

本公开至少一实施例提供一种基于三维模型和全景天空盒的场景切换方法,适用于一计算装置,所述方法包括:构建所述三维模型,并基于第一场景的第一全景图和第二场景的第二全景图构建所述全景天空盒,所述第一全景图包括在第一图片获取位置的多张第一场景图片,所述第二全景图包括在第二图片获取位置的多张第二场景图片;在由第一场景切换至第二场景的过程中,使用所述三维模型中的第一虚拟相机进行渲染以用于显示,并基于所述第一全景图和所述第二全景图来获得混合纹理,将所述混合纹理应用于所述三维模型;所述第一场景为所述三维模型对应的整个虚拟环境中的部分场景,所述第二场景为所述整个虚拟环境中的部分场景,所述第一场景和所述第二场景不同;在由所述第一场景切换至所述第二场景的过程中,在所述三维模型中,将所述第一虚拟相机从所述第一场景对应的第一视点位置移动至所述第二场景对应的第二视点位置以实现所述第一场景至所述第二场景的切换,所述第一视点位置和所述第二视点位置不同。

例如,在本公开至少一实施例提供的场景切换方法中,所述全景天空盒还包括第二虚拟相机,所述场景切换方法还包括:在显示所述第一场景时,使所述第二虚拟相机位于所述第一场景对应的第一视点位置;在显示所述第二场景时,使所述第二虚拟相机位于所述第二场景对应的第二视点位置;所述第二虚拟相机和所述第一虚拟相机是同一个虚拟相机,或是不同的虚拟相机。

例如,在本公开至少一实施例提供的场景切换方法中,构建所述全景天空盒,包括:获取所述第一场景的第一全景图;获取所述第二场景的第二全景图;基于所述第一图片获取位置的坐标得到所述第一视点位置;基于所述第二图片获取位置的坐标得到所述第二视点位置;基于所述第一场景的第一全景图或所述第二场景的第二全景图构建所述全景天空盒,所述全景天空盒的中心位于坐标轴的原点,在所述第一场景下,所述全景天空盒的纹理包括旋转和位移后的多张第一场景图片,在所述第二场景下,所述全景天空盒的纹理包括旋转和位移后的多张第二场景图片,所述多张第一场景图片的位移信息和所述多张第二场景图片的位移信息分别根据所述第一视点位置的坐标和所述第二视点位置的坐标确定。

例如,在本公开至少一实施例提供的场景切换方法中,在所述三维模型中,将所述第一虚拟相机从所述第一场景对应的第一视点位置移动至所述第二场景对应的第二视点位置,包括:在将所述第一虚拟相机从所述第一视点位置移动至所述第二视点位置过程中,使所述混合纹理中第一全景图的透明度沿时间轴递减,并使所述混合纹理中第二全景图的透明度沿所述时间轴递增,所述时间轴包括将所述第一虚拟相机从所述第一视点位置移动至所述第二视点位置的时间,所述混合纹理中第一全景图的透明度与所述混合纹理中第二全景图的透明度之和为1。

例如,在本公开至少一实施例提供的场景切换方法中,在由所述第一场景切换至所述第二场景的过程中,在显示所述第一场景时,所述第一全景图的透明度为1,所述第二全景图的透明度为0;在显示所述第二场景时,所述第一全景图的透明度为0,所述第二全景图的透明度为1。

例如,本公开至少一实施例提供的场景切换方法,还包括:将所述第一虚拟相机从所述第一视点位置移动至所述第二视点位置后,使用所述第二虚拟相机显示所述第二视点位置对应的第二场景。

例如,本公开至少一实施例提供的场景切换方法,还包括:在由所述第一场景切换至所述第二场景的过程开始前,使用所述第二虚拟相机进行渲染以显示所述第一视点位置对应的第一场景。

例如,在本公开至少一实施例提供的场景切换方法中,将所述第一虚拟相机从所述第一场景对应的第一视点位置移动至所述第二场景对应的第二视点位置,包括:根据所述第一视点位置和所述第二视点位置得到移动向量,并使所述第一虚拟相机以所述第一视点位置为起始点沿所述移动向量移动至所述第二视点位置。

例如,在本公开至少一实施例提供的场景切换方法中,所述第一虚拟相机的位置和所述第二虚拟相机的位置分别与所述第一图片获取位置和所述第二图片获取位置对应。

例如,在本公开至少一实施例提供的场景切换方法中,所述三维模型基于图片获取场景的墙体数据确定。

例如,在本公开至少一实施例提供的场景切换方法中,当检测到由第一视点位置切换至第二视点位置的触发事件时,使用所述三维模型中的第一虚拟相机进行渲染以用于显示。

本公开至少一实施例还提供一种基于三维模型和全景天空盒的场景切换方法,适用于一计算装置,所述方法包括:构建所述三维模型,并基于第一场景的第一全景图和第二场景的第二全景图构建所述全景天空盒,所述第一全景图包括在第一图片获取位置的多张第一场景图片,所述第二全景图包括在第二图片获取位置的多张第二场景图片;所述第一场景为所述三维模型对应的整个虚拟环境中的部分场景,所述第二场景为所述整个虚拟环境中的部分场景,所述第一场景和所述第二场景不同;使用所述全景天空盒显示所述第一场景,当在所述第一场景中接收到点击所述第二场景的点击标记的指令时,则执行下面的方法:使用所述三维模型中的第一虚拟相机进行渲染以用于显示,并基于所述第一全景图和所述第二全景图来获得混合纹理,将所述混合纹理应用于所述三维模型;在由所述第一场景切换至所述第二场景的过程中,在所述三维模型中,将所述第一虚拟相机从所述第一场景对应的第一视点位置移动至所述第二场景对应的第二视点位置以实现所述第一场景至所述第二场景的切换,所述第一视点位置和所述第二视点位置不同,所述第一视点位置对应所述第一场景的点击标记处,所述第二视点位置对应所述第二场景的点击标记处;执行所述第一场景至所述第二场景的切换后,使用所述全景天空盒显示所述第二场景。

本公开至少一实施例还提供一种基于三维模型和全景天空盒的场景切换装置,包括:构建单元,构建所述三维模型,并基于第一场景的第一全景图和第二场景的第二全景图构建所述全景天空盒和所述三维模型,其中,所述第一全景图包括在第一图片获取位置的多张第一场景图片,所述第二全景图包括在第二图片获取位置的多张第二场景图片;控制单元,配置为在由第一场景切换至第二场景的过程中,使用所述三维模型中的第一虚拟相机进行渲染以用于显示,并基于所述第一全景图和所述第二全景图来获得混合纹理,将所述混合纹理应用于所述三维模型,所述第一场景和所述第二场景不同;所述控制单元配置为在由所述第一场景切换至所述第二场景的过程中,在所述三维模型中,将所述第一虚拟相机从所述第一场景对应的第一视点位置移动至所述第二场景对应的第二视点位置以实现所述第一场景至所述第二场景的切换,所述第一视点位置和所述第二视点位置不同。

例如,在本公开至少一实施例提供的场景切换装置中,所述全景天空盒还包括第二虚拟相机,所述控制单元还配置为:在显示所述第一场景时,使所述第二虚拟相机位于所述第一场景对应的第一视点位置;在显示所述第二场景时,使所述第二虚拟相机位于所述第二场景对应的第二视点位置;所述第二虚拟相机和所述第一虚拟相机是同一个虚拟相机,或是不同的虚拟相机。

本公开至少一实施例还提供一种基于三维模型和全景天空盒的场景切换装置,包括:处理器;存储器;一个或多个计算机程序模块,其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行本公开任一实施例提供的场景切换方法的指令。

本公开至少一实施例还提供一种存储介质,非暂时性地存储计算机可读指令,当所述计算机可读指令由计算机执行时可以执行本公开任一实施例提供的场景切换方法。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1为本公开至少一实施例提供的一种场景切换方法的流程图;

图2为本公开至少一实施例提供的一种构建全景天空盒的方法的流程图;

图3A为本公开至少一实施例提供的一种第一全景图或第二全景图的示意图;

图3B为本公开至少一实施例提供的一种全景天空盒中的六面体的示意图;

图3C为本公开至少一实施例提供的一种全景天空盒的示意图;

图4为本公开至少一实施例提供的一种将第一全景图和第二全景图应用于构建的三维模型的方法的流程图;

图5为本公开至少一实施例提供的另一种场景切换方法的流程图;

图6为本公开至少一实施例提供的一种场景切换系统的示意图;

图7为本公开至少一实施例提供的一种场景切换装置的示意框图;

图8为本公开至少一实施例提供的另一种场景切换装置的示意框图;

图9为本公开至少一实施例提供的一种电子设备的结构示意图;以及

图10为本公开至少一实施例提供的一种存储介质的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

为了使用户具有身临其境的体验,可以应用VR技术搭建虚拟场景。虚拟场景的搭建方式有两种:第一种是通过三维建模来实现;第二种是使用全景图片来代替三维模型。

全景图片,又称为3D实景,是基于实景照片,通过拼合、处理以合成视点图像,从而使用户产生置身于画境之中的感觉。在使用全景图片搭建VR场景的情形中,当进行VR场景的切换时,只能使用户观看的场景从一组全景图片呈现的场景中切换至另一组全景图片呈现的场景中,不能使用户体验到在场景切换过程中的空间漫游效果,从而降低了用户的沉浸感,影响用户的使用体验。因此,如何在场景切换过程中实现空间漫游效果以提高用户的使用体验成为当前亟需解决的技术问题之一。

本公开至少一实施例提供基于三维模型和全景天空盒的场景切换方法,适用于一计算装置,该方法包括:构建全景天空盒和三维模型,在显示第一场景时,全景天空盒包括第一场景对应的纹理,在显示第二场景时,全景天空盒包括第二场景对应的纹理,第一场景和第二场景不同;在由第一场景切换至第二场景的过程中,使用三维模型中的第一虚拟相机进行渲染以用于显示;在由第一场景切换至第二场景的过程中,在三维模型中,将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换,第一视点位置和第二视点位置不同。

本公开一些实施例还提供对应于上述场景切换方法的场景切换装置和存储介质。

本公开上述实施例提供的基于三维模型和全景天空盒的场景切换方法可以实现不同场景的切换,且在场景切换的过程中具有空间漫游的效果,有明显的空间移动感,提升了用户的使用体验。

下面结合附图对本公开的实施例及其示例进行详细说明。

本公开至少一实施例提供一种场景切换方法,例如,可以应用于虚拟看房等。图1本公开至少一实施例提供的一种场景切换方法的一个示例的流程图。例如,该场景切换方法可以以软件、硬件、固件或其任意组合的方式实现,由例如手机、平板电脑、笔记本电脑、桌面电脑、网络服务器等设备中的处理器加载并执行,可以实现不同场景的切换,且在场景切换的过程中具有空间漫游的效果,从而可以提升了用户的使用体验。

例如,该场景切换方法适用于一计算装置,该计算装置是包括具有计算功能的任何电子设备,例如可以为手机、笔记本电脑、平板电脑、台式计算机、网络服务器等,可以加载并执行该场景切换方法,本公开的实施例对此不作限制。例如,该计算装置可以包括中央处理单元(Central Processing Unit,CPU)或图形处理单元(Graphics Processing Unit,GPU)等具有具有数据处理能力和/或指令执行能力的其它形式的处理单元、存储单元等,该计算装置上安装有操作系统、应用程序编程接口(例如,OpenGL(Open Graphics Library)、Metal等)等,通过运行代码或指令的方式实现本公开实施例提供的场景切换方法。例如,该计算装置还可以包括显示部件,该显示部件例如为液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light Emitting Diode,OLED)显示屏、量子点发光二极管(Quantum Dot Light Emitting Diode,QLED)显示屏、投影部件、VR头戴式显示设备(例如VR头盔、VR眼镜)等,本公开的实施例对此不作限制。该显示部件可以显示多个场景(例如虚拟场景)。

如图1所示,该场景切换方法包括步骤S110至步骤S120。

步骤S110:构建全景天空盒和三维模型,在显示第一场景时,全景天空盒包括第一场景对应的纹理,在显示第二场景时,全景天空盒包括第二场景对应的纹理,第一场景和第二场景不同。

步骤S120:在由第一场景切换至第二场景的过程中,使用三维模型中的第一虚拟相机进行渲染以用于显示,且在由第一场景切换至第二场景的过程中,在三维模型中,将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换,第一视点位置和第二视点位置不同。

下面以该基于三维模型和全景天空盒的场景切换方法应用于虚拟看房的场景为例进行说明,当然还可以应用于例如游戏、教育等其他应用场景中,本公开的实施例对此不作限制。例如,当用户通过例如手机、电脑等计算装置进行虚拟看房时,可以进行上述场景切换方法。

对于步骤S110,例如,在进行单个场景的显示时,即未进行场景切换时,可以通过全景天空盒显示各个场景的图片。例如,在显示第一场景(例如,进行场景切换之前)时,全景天空盒包括第一场景对应的纹理,即可以通过该全景天空盒显示第一场景;在显示第二场景(例如,完成场景切换之后)时,全景天空盒包括第二场景对应的纹理,即可以通过该全景天空盒显示第二场景。

在本公开的实施例中,在不进行场景切换时,可以根据需要显示的场景,将第一场景对应的纹理或第二场景对应的纹理在相应的时间段分别应用于同一个全景天空盒上,从而可以通过一个全景天空盒分别显示第一场景和第二场景,即第一场景和第二场景可以共用一个全景天空盒。需要注意的是,该全景天空盒还可以展示更多的场景,不限于上述第一场景和第二场景,本公开的实施例对此不作限制。

例如,第一场景为第一视点位置处所能观察到的虚拟场景,第二场景为第二视点位置处所能观察到的虚拟场景。例如,在一些示例中,第一场景和第二场景不同,相应地,第一视点位置和第二视点位置也不同。例如,第一场景与第二场景可以是完全不同的场景,例如,第一场景可以位于客厅,第二场景可以位于卧室,或者,例如,第一场景可以是位于客厅的入口位置,第二场景可以是位于客厅的出口位置;或者,第一场景与第二场景相似度较高但具有视差,例如由于用户的观看角度不同或相机的聚焦位置不同等原因产生一定程度的视差,本公开的实施例对此不作限制。

例如,第一场景对应的纹理表示在第一场景获取的全景图贴在全景天空盒上后展示出来的图像,即第一场景下全景天空盒的纹理。例如,第二场景对应的纹理表示在第二场景获取的全景图贴在全景天空盒上后展示出来的图像,即第二场景下全景天空盒的纹理。

例如,第一视点位置和第二视点位置即位于全景天空盒中,又位于三维模型中。

图2为本公开至少一实施例提供的一种构建全景天空盒的方法的流程图。也就是说,图2为图1中所示的步骤S110的一些示例的流程图。例如,在图2所示的示例中,该构建全景天空盒的方法包括步骤S111至步骤S1115。下面,结合图2对本公开至少一实施例提供的构建全景天空盒的方法进行详细地介绍。

步骤S111:获取第一场景的第一全景图,其中,第一全景图包括在第一图片获取位置的多张第一场景图片。

步骤S112:获取第二场景的第二全景图,其中,第二全景图包括在第二图片获取位置的多张第二场景图片。

步骤S113:基于第一图片获取位置的坐标得到第一视点位置。

步骤S114:基于第二图片获取位置的坐标得到第二视点位置。

步骤S115:基于第一场景的第一全景图或第二场景的第二全景图构建全景天空盒。

对于步骤S111,例如,第一全景图可以在第一图片获取位置拍摄得到或基于第一图片获取位置绘制得到。第一全景图例如为一组图片,包括多张第一图片获取位置的第一场景图片。例如,第一全景图包括以第一图片获取位置为圆心,通过移动相机的角度以柱形的方式拍摄该第一图片获取位置处的例如前、后、左、右、上、下等多个方位的第一场景图片。例如,在一些示例中,当第一图片获取位置位于某一房间内时,可以将相机设置于该第一图片获取位置,并且拍摄该第一图片获取位置的前、后、左、右等四面墙的第一场景图片(即照片),并且拍摄该第一图片获取位置上方天花板的第一场景图片(即照片)以及下方地板的第一场景图片(即照片)。例如,将该多张第一场景图片进行无缝拼接,由此,可以得到第一全景图。例如,该无缝拼接技术可以通过GPU实现,在此不再赘述。

需要说明的是,本公开的实施例中,第一全景图可以通过拍摄得到,也可以基于第一图片获取位置绘制(例如计算机绘图或人工绘图)得到,还可以基于第一图片获取位置通过图像算法生成,具体实现方式可以根据实际需求而定,本公开的实施例对此不作限制。

例如,在一些示例中,第一全景图可以包括6张不同方位的场景图片,也即是,包括第一图片获取位置处的前、后、左、右、上、下等6个方位的场景图片,从而可以在后续步骤中呈现完整且全面的场景。例如,在另一些示例中,第一全景图可以包括5张不同方位的第一场景图片,也即是,包括第一图片获取位置处的前、后、左、右、上等5个方位的第一场景图片,而不再包括第一图片获取位置下方的第一场景图片。例如,当第一图片获取位置位于某一房间内时,由于地板的纹理在该房间内几乎一致,不会随着地点的变化而变化,而且,用户也无需观察地板的纹理,因此,第一全景图中可以省略第一图片获取位置下方的第一场景图片,仅包括第一图片获取位置处的前、后、左、右、上等5个方位的第一场景图片,从而可以减少数据量。

例如,在步骤S112中,第二全景图可以在第二图片获取位置拍摄得到或基于第二图片获取位置绘制得到。第二全景图例如为一组图片,包括多张第二图片获取位置的第二场景图片。例如,第二全景图包括以第二图片获取位置为圆心,通过移动相机的角度以柱形的方式拍摄该第二图片获取处的例如前、后、左、右、上、下等多个方位的场景图片。与第一全景图的获取方式类似,第二全景图可以在第二图片获取位置通过拍摄得到,也可以基于第二图片获取位置绘制(例如计算机绘图或人工绘图)得到,还可以基于第二图片获取位置通过图像算法生成,这可以根据实际需求而定,本公开的实施例对此不作限制。

例如,在一些示例中,第二全景图可以包括6张不同方位的第二场景图片,也即是,包括第二图片获取位置处的前、后、左、右、上、下等6个方位的第二场景图片,从而可以在后续步骤中呈现完整且全面的场景。例如,在另一些示例中,第二全景图可以包括5张不同方位的第二场景图片,也即是,包括第二图片获取位置处的前、后、左、右、上等5个方位的第二场景图片,而不再包括第二图片获取位置处下方的第二场景图片。当第二全景图中省略第二图片获取位置下方的场景图片,仅包括第二图片获取位置处的前、后、左、右、上等5个方位的第二场景图片时,可以减少数据量。

需要说明的是,本公开的实施例中,第一全景图的获取方式可以与第二全景图的获取方式相同,例如均为拍摄得到,或者均为绘制得到,从而可以保证用户视觉效果的一致性。当然,本公开的实施例不限于此,第一全景图的获取方式也可以与第二全景图的获取方式不同,以满足多样化的应用需求。例如,第一全景图与第二全景图相似度较高但具有视差,或者第一全景图与第二全景图完全不同。

例如,在步骤S113中,第一图片获取位置为实际场景中的地点,根据第一图片获取位置的坐标,可以得到第一视点位置。例如,第一视点位置为虚拟场景中的位置,该虚拟场景对应于该第一图片获取位置处的实际场景,因此,该第一视点位置对应于实际场景中的第一图片获取位置。

例如,在一些示例中,可以根据实际场景生成二维平面图,将第一图片获取位置在实际场景中的坐标标注到该二维平面图中,标注点即为第一视点位置。例如,由于在实际应用中,用户在虚拟场景中的移动通常为水平移动,因此,第一图片获取位置的坐标可以为二维坐标(即水平面内的坐标),根据该二维坐标在二维平面图中标注得到第一视点位置,这样可以减少数据量。

当然,本公开的实施例不限于此,在其他示例中,第一图片获取位置的坐标也可以为三维坐标(即既包括水平面内的坐标,又包括海拔高度),相应地,需要根据实际场景生成三维立体图,根据三维坐标在三维立体图中标注得到第一视点位置。

例如,在步骤S114中,第二图片获取位置为实际场景中的地点,根据第二图片获取位置的坐标,可以得到第二视点位置。例如,第二视点位置为虚拟场景中的位置,该虚拟场景对应于该实际场景,第二视点位置对应于实际场景中的第二图片获取位置。

例如,在一些示例中,与得到第一视点位置的方式类似,可以根据实际场景生成二维平面图,将第二图片获取位置在实际场景中的坐标标注到该二维平面图中,标注点即为第二视点位置。第二图片获取位置的坐标采用二维坐标,并采用二维平面图标注得到第二视点位置,可以减少数据量。当然,本公开的实施例不限于此,在其他示例中,第二图片获取位置的坐标也可以为三维坐标,相应地,需要根据实际场景生成三维立体图,根据三维坐标在三维立体图中标注得到第二视点位置。

例如,第一图片获取位置不同于第二图片获取位置。例如,第一图片获取位置和第二图片获取位置可以为同一房间内的不同地点,第一图片获取位置和第二图片获取位置也可以位于不同的房间内。例如,第一图片获取位置与第二图片获取位置可以相距1米、2米或其他任意距离。相应地,第一视点位置和第二视点位置可以为虚拟场景中的同一房间内的不同位置,第一视点位置和第二视点位置也可以位于虚拟场景中的不同的房间内。

需要说明的是,第一图片获取位置和第二图片获取位置也可以为户外的地点,第一视点位置和第二视点位置也可以为户外场景中的位置,这可以根据实际需求而定,本公开的实施例不限于此。

例如,在步骤S115中,构建一个如图3B所示的六面体,在显示第一场景时,将第一全景图中的多张第一场景图片贴合到该六面体的不同表面上,从而构建全景天空盒,使得在显示第一场景时,该全景天空盒包括第一场景对应的纹理;在显示第二场景时,将第二全景图中的多张第二场景图片贴合到该六面体的不同表面上,从而重新构建该全景天空盒,使得在显示第二场景时,该全景天空盒包括第二场景对应的纹理。例如,可以通过调用图形程序接口(如,OpenGL)在例如图形处理单元等处理单元中进行的渲染操作实现将第一全景图中的多张场景图片贴合到该六面体的不同表面上或将第二全景图中的多张场景图片贴合到该六面体的不同表面上,从而构建全景天空盒。

例如,如图3A所示,第一全景图或第二全景图包括6张不同方位的场景图片,分别为前、后、左、右、上、下等不同方位的场景图片。例如,将前、后、左、右、上、下等不同方位的场景图片贴合到如图3B所示的六面体的对应方位的表面,从而可以得到在不同场景下包括不同纹理的全景天空盒。

例如,如图3C所示,全景天空盒为立方体,全景天空盒的中心为其几何中心,例如,该几何中心位于3维坐标系的原点,即全景天空盒的中心位于坐标轴的原点,例如,如图3C所示的坐标轴的原点(0,0,0)。第一视点位置A和第二视点位置B均位于该全景天空盒内,且位于该全景天空盒中的不同位置。

为了能够交互式地浏览虚拟场景,需要根据用户的旋转角度显示出虚拟场景中对应的可见部分,因此,当利用全景天空盒呈现对应的场景时,需要在全景天空盒中设置第二虚拟相机,当利用三维模型呈现对应的场景时,在三维模型中设置第一虚拟相机。例如,该第一虚拟相机和第二虚拟相机用于渲染虚拟场景中用户可见的部分,例如,通过相应的程序代码实现第一虚拟相机和第二虚拟相机,以用于渲染,具体可参考本领域的设计,在此不再赘述。

例如,第二虚拟相机和第一虚拟相机是同一个虚拟相机,或是不同的虚拟相机。例如,第一虚拟相机和第二虚拟相机可以是两个相同的相机,也可以是两个不同的相机,从而可以使得全景天空盒和三维模型的切换更加灵活,当然也可以使用同一个虚拟相机替代上述第一虚拟相机和第二虚拟相机用于全景天空盒和三维模型中,本公开的实施例对此不作限制。例如,第一虚拟相机的位置和所述第二虚拟相机的位置分别与实际图片获取位置对应。例如,第一虚拟相机的位置和第二虚拟相机的位置分别与第一图片获取位置和第二图片获取位置对应。

例如,在该示例中,当使用全景天空盒展示场景时,该场景切换方法还包括:在显示第一场景时,使第二虚拟相机位于全景天空盒中第一场景对应的第一视点位置A;在显示第二场景时,使第二虚拟相机位于全景天空盒中第二场景对应的第二视点位置B,从而可以使用户在不同的视点位置分别看到对应不同场景的完整的空间画面。关于利用第一虚拟相机和第二虚拟相机并根据用户的旋转角度进行渲染的方法可以参考本领域的设计,此处不再详述。

例如,在第一场景下,全景天空盒的纹理包括旋转和位移后的多张第一场景图片,在第二场景下,全景天空盒的纹理包括旋转和位移后的多张第二场景图片。例如,多张第一场景图片的位移信息和多张第二场景图片的位移信息分别根据第一视点位置的坐标和第二视点位置的坐标确定。

由于第二虚拟相机不位于全景天空盒的中心(即坐标原点(0,0,0)),为了在对应的视点位置看到完整的空间画面,因此,应用到全景天空盒的纹理中的多张场景照片根据第二虚拟相机所在的视点位置也进行一定的位移,以使得第二虚拟相机位于第一视点位置或第二视点位置时,使用户可以看到完整的空间画面。例如,在显示第一场景时,对应第一场景的第一全景图中的多张第一场景图片的位移信息与第一视点位置A与坐标原点(0,0,0)之间的位移信息对应;在显示第二场景时,对应第二场景的第二全景图中的多张第二场景图片的位移信息与第二视点位置B与坐标原点(0,0,0)之间的位移信息对应。

例如,在图片获取位置拍摄的照片可能存在倾斜等,因此,可以对多张第一场景图片和多张第二场景图片进行旋转校正,以保证通过该虚拟相机看到的场景可以和实际场景看到的一致,从而提高用户的体验。

例如,在一些示例中,第一全景图和第二全景图为同一房间的场景图片,因此,全景天空盒呈现的第一场景和第二场景是同一房间的场景。由于第一视点位置不同于第二视点位置,因此虽然位于同一房间,第一场景和第二场景具有一定的视差。例如,在另一些示例中,第一全景图和第二全景图为不同房间的场景图片,因此,全景天空盒呈现的第一场景和第二场景是不同房间的场景。需要说明的是,本公开的实施例中,第一全景图和第二全景图可以为任意的场景图片,可以为房间的图片(例如室内图片),也可以为户外图片,本公开的实施例对此不作限制。

需要说明的是,本公开的实施例中,利用第一全景图或第二全景图生成全景天空盒的方式不限于上文描述的方式,可以采用任意适用的天空盒生成方法,只需使全景天空盒呈现的是第一全景图对应的第一场景或第二全景图对应的第二场景即可,本公开的实施例对此不作限制。

需要说明的是,本公开的实施例中,全景天空盒的形状不限于立方体,也可以为长方体、六棱柱等任意适用的形状,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,在一些示例中,当全景天空盒呈现的是某一异形房间对应的场景时,该异形房间例如不是通常的四面墙,而是六面墙时,则全景天空盒可以包括六棱柱,相应地,第一全景图和第二全景图分别包括8张不同方位的场景图片,这8张场景图片对应贴合到该六棱柱的不同表面上。

需要说明的是,本公开的实施例中,当第一全景图和第二全景图分别包括6张不同方位的场景图片时,生成的全景天空盒的6个表面均具有纹理;当第一全景图和第二全景图分别包括5张不同方位的场景图片时,生成的全景天空盒的前、后、左、右、上这5个方向的表面具有纹理,而下方的表面没有纹理,此时全景天空盒均为天空穹。例如,当全景天空盒下方的表面没有纹理时,可以采用图像算法生成下方表面的图像,或者采用颜色填充下方表面。

通常的三维模型需要的数据量比较大,开发成本高,文件较大,渲染计算量较大,从而容易导致卡顿,使系统产生延迟等。

例如,在本公开的一些实施例中,三维模型基于图片获取场景(例如,经纪人实际拍摄房间)的墙体数据确定,可以极大地减少运行该三维模型时所需要的数据量,从而可以减少资源占用空间,降低系统功耗,且操作简单,可以保证系统的流畅性,避免卡顿,提高用户体验。三维模型的具体构建方法可以参考本领域的设计,在此不再赘述。

例如,可以提供构建单元,并通过该构建单元构建全景天空盒和三维模型;例如,也可以通过中央处理单元(CPU)、图像处理器(GPU)、张量处理器(TPU)、现场可编程逻辑门阵列(FPGA)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元以及相应计算机指令来实现该构建单元。例如,该处理单元可以为通用处理器或专用处理器,可以是基于X86或ARM架构的处理器等。

对于步骤S120,当在场景切换过程中采用上述三维模型显示时,需要将第一全景图和第二全景图应用于上述构建的三维模型。例如,当检测到由第一视点位置切换至第二视点位置的触发事件时,使用三维模型中的第一虚拟相机进行渲染以用于显示,例如展示由第一场景切换至第二场景过程中的动画,从而可以在场景切换过程中产生空间漫游的效果。

图4为本公开至少一实施例提供的一种将第一全景图和第二全景图应用于上述构建的三维模型的方法的流程图。例如,如图4所示,该场景切换方法还包括步骤S121和步骤S122。

步骤S121:基于第一全景图和第二全景图来获得混合纹理。

步骤S122:将混合纹理应用于三维模型。

对于步骤S121,例如,将第一全景图和第二全景图按一定的透视变换进行混合,以获得混合纹理。即混合纹理中既包括第一全景图也包括第二全景图,例如,通过调节混合纹理中第一全景图的透明和第二全景图的透明度,从而可以实现由第一全景图对应的第一场景至第二全景图对应的第二场景的切换,从而可以在三维模型中实现空间漫游的效果。具体的混合方法可参考本领域的设计,在此不再赘述。

对于步骤S122,例如,将混合纹理中包括的第一全景图和第二全景图应用到三维模型中,由于三维模型中原本包括深度信息,再将该混合纹理应用至三维模型中的相应位置,可以使得三维模型中显示具有深度信息的图像和照片中图像中一样,避免了门窗等具体场景的位置误差带来的失真,从而可以提高显示的真实感,提高用户体验。

例如,在将第一虚拟相机从第一视点位置移动至第二视点位置过程中,使混合纹理中第一全景图的透明度沿时间轴递减,并使混合纹理中第二全景图的透明度沿时间轴递增。例如,将第一全景图的透明度和第二全景图的透明归一化。例如,第一全景图的透明度在某一时段内从1减少至0,第二全景图的透明度在同一时段内从0增加至1。例如,第一全景图的透明度为1表示第一全景图不透明,第二全景图的透明为0表示第二全景图透明,所以显示的是第一场景;例如,第二全景图的透明度为1表示第二全景图不透明,第一全景图的透明为0表示第一全景图透明,所述显示的是第二场景。由此,使得三维模型中呈现的第一场景逐渐消失且三维模型中呈现的第二场景逐渐显现,从而在三维模型中将第一全景图对应的第一场景切换至第二全景图对应的第二场景。

在本公开的实施例中,通过在三维模型中实现该操作方法,使得用户看到的场景切换过程不仅具有淡入淡出的切换效果,同时还在该场景切换过程中具有空间漫游的效果,提升了用户体验。

例如,第一全景图的透明度和第二全景图的透明度分别按时间线性变化,从而可以具有较为均匀的切换效果。当然,本公开的实施例不限于此,第一全景图的透明度和第二全景图的透明度也可以分别按时间进行非线性变化,以实现个性化的切换效果。

例如,第一全景图的透明度和第二全景图的透明度在同一时段内变化。当第一全景图的透明度开始变化时,第二全景图的透明度也开始变化。当第一全景图的透明度完成变化时,第二全景图的透明度也完成变化。

例如,时间轴包括将第一虚拟相机从第一视点位置移动至第二视点位置的时间,混合纹理中第一全景图的透明度与混合纹理中第二全景图的透明度之和为1。也即是,在第一全景图的透明度和第二全景图的透明度的变化过程中,两者的和始终保持为1。

例如,在由第一场景切换至第二场景的过程中,在显示第一场景时,第一全景图的透明度为1(即第一全景图不透明),第二全景图的透明度为0(即第二全景图透明);在显示第二场景时,第一全景图的透明度为0(即第一全景图透明),第二全景图的透明度为1(即第二全景图不透明)。例如,在场景切换过程中,当第一全景图的纹理透明度为0.8时,第二全景图的透明度为0.2。例如,在场景切换过程中,当第一全景图的透明度为0.5时,第二全景图的透明度为0.5。例如,在完成场景切换之后,第一全景图的透明度为0,第二全景图的透明度为1,此时用户看到的是第二全景图对应的第二场景。

通过这种方式,可以使用户看到的纹理(即用户看到的三维模型上的混合纹理中的第一全景图的透明度和第二全景图的透明度的叠加纹理)的透明度始终保持为1,从而保证用户视觉效果的一致性。

例如,在由第一场景切换至第二场景的过程开始前,即显示单个场景(即第一场景)时,此时使用全景天空盒显示,例如,使用全景天空盒中的第二虚拟相机显示第一视点位置对应的第一场景。

例如,将第一虚拟相机从第一视点位置移动至第二视点位置后,即显示单个场景(即第二场景)时,例如,使用全景天空盒中的第二虚拟相机显示第二视点位置对应的第二场景,即完成场景切换后,将三维模型隐藏,继续使用全景天空盒显示第二场景。

例如,此时将三维模型中展示的第二全景图应用到全景天空盒上,以替换掉全景天空盒上的第一全景图,从而在完成场景切换后,通过全景天空盒显示第二全景图对应的第二场景。

例如,如图3C所示,将第一虚拟相机从第一视点位置移动至第二视点位置的方式为:根据第一视点位置A和第二视点位置B得到移动向量uAuuBr,并使第一虚拟相机以第一视点位置A为起始点沿移动向量uAuuBr移动至第二视点位置B。例如,第一虚拟相机的移动路线为直线,也即是,第一虚拟相机沿A、B两点之间的直线移动。例如,第一虚拟相机可以匀速移动,也可以变速移动,本公开的实施例对此不作限制。关于第一虚拟相机的位置变换算法可以参考常规设计,此处不再详述。

需要说明的是,本公开的实施例中,改变第一全景图的透明度和第二全景图的透明度这一操作与将第一虚拟相机从第一视点位置移动至第二视点位置这一操作是同时进行的。例如,第一虚拟相机的移动时间等于第一全景图和第二全景图的透明度的变化时间,并且,第一虚拟相机开始移动的时刻等于第一全景图和第二全景图的透明度开始变化的时刻。例如,第一虚拟相机的移动时间(也即第一全景图和第二全景图的透明度的变化时间)可以为1s、5s、10s、30s、1min或其他任意的时间,该时间为将第一视点位置的场景切换至第二视点位置的场景的切换时间,这可以根据实际需求而定,本公开的实施例对此不作限制。

在通常的场景切换方法中,不同的场景通过不同的天空盒实现,例如用于呈现不同场景的两个天空盒的中心位于同一点,例如均位于坐标原点,或位于不同点。相应地,场景切换过程仅通过虚拟相机从一个天空盒移动到另一个天空盒实现。因此,在场景切换过程中,用户感受不到空间漫游的效果,且切换效果较为突兀,这与用户在实际环境中的感受差异较大。

与此不同,在本公开实施例提供的场景切换方法中,在进行场景切换前或进行场景切换后(即不进行场景切换时)的场景均由同一个全景天空盒展示,并非通过不同的全景天空盒呈现,且在场景切换过程中,通过将三维模型中的第一虚拟相机从第一视点位置A移动至第二视点位置B,以在场景切换的过程中可以实现让用户观看动画的效果,从而可以使用户产生空间漫游的感觉,这与用户在实际环境中的感受较为相似,从而提升了用户的使用体验。

例如,本公开实施例提供的场景切换方法可用于看房软件。用户通过电子终端(例如手机、电脑等)浏览各个房间的场景(虚拟场景),从而无需实地看房,提高了看房效率,也提高了用户体验。当然,本公开的实施例不限于此,该场景切换方法可用于任意场景,例如还可用于游戏、教育等领域,这可以根据实际需求而定,本公开的实施例对此不作限制。

例如,可以提供控制单元,并通过该控制单元在由第一场景切换至第二场景的过程中,使用三维模型中的第一虚拟相机进行渲染以用于显示;例如,也可以通过中央处理单元(CPU)、图像处理器(GPU)、张量处理器(TPU)、现场可编程逻辑门阵列(FPGA)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元以及相应计算机指令来实现该控制单元。

本公开至少一个实施例还提供一种基于三维模型和全景天空盒的场景切换方法,该方法适用于一计算装置。该场景切换方法包括:构建全景天空盒和三维模型,在显示第一场景时,全景天空盒包括第一场景对应的纹理,在显示第二场景时,全景天空盒包括第二场景对应的纹理,第一场景和第二场景不同;使用全景天空盒显示第一场景,当在第一场景中接收到点击第二场景的点击标记的指令时,则执行下面的方法:使用三维模型中的第一虚拟相机进行渲染以用于显示,在三维模型中,将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换,第一视点位置和第二视点位置不同,第一视点位置对应第一场景的点击标记处,第二视点位置对应第二场景的点击标记处;执行完第一场景至第二场景的切换后,使用全景天空盒中的第二虚拟相机显示第二场景。

图5为本公开至少一实施例提供的另一种场景切换方法的流程图。如图5所示,该场景切换方法包括步骤S210和步骤S240。

步骤S210:构建全景天空盒和三维模型。

例如,在显示第一场景时,全景天空盒包括第一场景对应的纹理,在显示第二场景时,全景天空盒包括第二场景对应的纹理,第一场景和第二场景不同。例如,该步骤S210的具体操作过程可以参考步骤S110的具体描述,在此不再赘述。

步骤S220:使用全景天空盒显示第一场景。

例如,当位置标记位于第一场景的点击标记处时,使用全景天空盒中的第二虚拟相机显示第一场景。例如,当使用手机或电脑执行该场景切换方法并显示各个场景时,例如,该位置标记可以是利用手指点击触摸屏、触摸板或鼠标点击的光标。

例如,该位置标记通过计算装置的显示屏(例如,手机或电脑的显示屏)显示。

需要注意的是,位置标记和点击标记并不是必须设置的,只要可以实现在不进行场景切换时使用全景天空盒显示,在进行场景切换时,使用三维模型显示即可,本公开的实施例对此不作限制。

例如,该第一场景的点击标记处对应第一视点位置。光标位于该第一场景的点击标记处,即位于第一视点位置,此时是单场景显示,不存在场景切换,因此使用全景天空盒中的第二虚拟相机显示第一场景。

步骤S230:当在第一场景中接收到点击第二场景的点击标记的指令时,使用三维模型中的第一虚拟相机进行渲染以用于显示。

例如,当在计算装置的显示屏上通过手指触控或鼠标点击第二场景的电极标记时,计算装置的处理器会在第一场景中接收到点击第二场景的点击标记的指令,从而调用例如存储在存储器中的程序代码执行相应的场景切换操作。

例如,在有内部地面漫游点时,例如,当点击标记为例如在地面上的小圆圈时,可以允许手指或鼠标在该点击标记位置处的一定范围内点击,例如,以点击标记为中心15度范围内点击即可;例如,在没有地面漫游点时,当点击标记例如为箭头时,需要在该箭头处点击才可以实现触发场景切换的指令,当然本公开的实施例对此不作限制。

例如,在三维模型中,将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换,第一视点位置和第二视点位置不同,第一视点位置对应第一场景的点击标记处,第二视点位置对应第二场景的点击标记处。

例如,该步骤S230的具体操作过程可参考图1中所示的步骤S120的具体描述,在此不再赘述。

步骤S240:执行第一场景至第二场景的切换后,使用全景天空盒显示第二场景。

例如,执行第一场景至第二场景的切换后,即位置标记位于第二场景的点击标记处时,此时,使用全景天空盒中的第二虚拟相机显示第二场景。例如,位置标记位于第二场景的点击标记处,即光标位于第二场景对应的第二视点位置处,此时场景切换结束,即显示单个场景,即第二场景,从而使用全景天空盒中的第二虚拟相机显示第二场景。

需要说明的是,在本公开的实施例中,本公开上述各个实施例提供的场景切换方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文描述的场景切换方法的流程包括特定顺序出现的多个操作,但是应该清楚地了解,多个操作的顺序并不受限制。上文描述的场景切换方法可以执行一次,也可以按照预定条件执行多次。

本公开上述各个实施例提供的基于三维模型和全景天空盒的场景切换方法可以实现不同场景的切换,且在场景切换的过程中具有空间漫游的效果,有明显的空间移动感,提升了用户的使用体验。

例如,上述各个实施例提供的场景切换方法可以通过图6所示的场景切换系统实现。如图6所示,该场景切换系统10可以包括用户终端11、网络12、服务器13以及数据库14。

用户终端11可以是例如图6中示出的电脑11-1、手机11-2。可以理解的是,用户终端11可以是能够执行数据处理的任何其他类型的电子设备,其可以包括但不限于台式电脑、笔记本电脑、平板电脑、智能手机、智能家居设备、可穿戴设备、车载电子设备、监控设备等。用户终端也可以是设置有电子设备的任何装备,例如车辆、机器人等。

用户可以对安装在用户终端11上的应用程序进行操作,应用程序通过网络12将用户行为数据传输给服务器13,用户终端11还可以通过网络12接收服务器13传输的数据。用户终端11可以通过运行子程序或子线程的方式实施本公开实施例提供的场景切换方法。

例如,当用户在用户终端11上使用看房软件时,服务器13通过网络12将用户浏览的房源信息传输给用户终端11,这些房源信息包括房源的虚拟场景以及呈现虚拟场景所需要的三维模型、全景天空盒和相关数据。用户终端11上的看房软件显示房源的虚拟场景,用户通过点击房源的虚拟场景中的不同视点位置,可以进行场景的切换。例如,用户终端11可以包括触摸屏,因此用户可以用手指直接点击屏幕上的位置以实现场景的切换。例如,用户终端11也可以包括鼠标,因此用户利用鼠标点击屏幕上光标所在的位置以实现场景的切换。

在一些实施例中,可以利用用户终端11的处理单元执行本公开实施例提供的场景切换方法。在一些实现方式中,用户终端11可以利用用户终端11内置的应用程序执行场景切换方法。在另一些实现方式中,用户终端11可以通过调用用户终端11外部存储的应用程序执行本公开至少一实施例提供的场景切换方法。

在另一些实施例中,用户终端11将接收的点击不同场景的点击标记(即视点位置)的指令经由网络12发送至服务器13,并由服务器13执行场景切换方法。在一些实现方式中,服务器13可以利用服务器内置的应用程序执行场景切换方法。在另一些实现方式中,服务器13可以通过调用服务器13外部存储的应用程序执行场景切换方法。

网络12可以是单个网络,或至少两个不同网络的组合。例如,网络12可以包括但不限于局域网、广域网、公用网络、专用网络等中的一种或几种的组合。

服务器13可以是一个单独的服务器,或一个服务器群组,群组内的各个服务器通过有线的或无线的网络进行连接。一个服务器群组可以是集中式的,例如数据中心,也可以是分布式的。服务器13可以是本地的或远程的。

数据库14可以泛指具有存储功能的设备。数据库13主要用于存储从用户终端11和服务器13工作中所利用、产生和输出的各种数据。例如,数据库14中存储有大量房源信息,服务器13从数据库14中读取用户所需要的房源信息,并将该房源信息通过网络12发送至用户终端11,用户终端11显示该房源的虚拟场景,从而便于用户浏览以及进行场景的切换。数据库14可以是本地的,或远程的。数据库14可以包括各种存储器、例如随机存取存储器(Random Access Memory(RAM))、只读存储器(Read Only Memory(ROM))等。以上提及的存储设备只是列举了一些例子,该系统可以使用的存储设备并不局限于此。

数据库14可以经由网络12与服务器13或其一部分相互连接或通信,或直接与服务器13相互连接或通信,或是上述两种方式的结合。

在一些实施例中,数据库15可以是独立的设备。在另一些实施例中,数据库15也可以集成在用户终端11和服务器14中的至少一个中。例如,数据库15可以设置在用户终端11上,也可以设置在服务器14上。又例如,数据库15也可以是分布式的,其一部分设置在用户终端11上,另一部分设置在服务器14上。

例如,在一些示例中,上述场景切换方法可以应用于多个异地终端同步展示。例如,当位于不同地区的多个用户想看同一套房子时,上述场景切换方法可以应用于多个异地终端同步展示,从而可以实现高效同步漫游展示。例如,多个异地终端可以是例如位于上海、武汉和北京等不同地区的不同用户使用的终端设备,例如,手机或电脑。例如,该多个不同的用户可以是在不同地区的一家人同时看一套房子以方便协商,也可以是多个互不相关的用户。例如,该多个异地终端作为被控制端,均受作为主控制端的终端设备的控制显示。例如,主控制端可以是例如在上海的经纪人使用的终端设备。例如,该经纪人可以在其使用的作为主控制端的终端设备上进行第一场景或第二场景的展示以及第一场景至第二场景的切换等操作,对应地,当主控制端进行相应操作时,计算装置会发送相应的操作指令至位于其余各个不同地区(例如,上述上海、武汉和北京)的作为被控制端的终端设备,以控制其同时显示与该主控制端相同的操作展示,从而实现多个异地终端同步展示。

例如,在该示例中,位于不同地区的作为被控制端的多台终端设备进行同步漫游显示时,不需要均传输数据量较大的图像数据至该多台终端设备,仅需要将该数据量较大的图像数据传输至作为主控制端的终端设备进行相应的场景显示和切换,做为被控制端的终端设备只需在主控制端发送的操作指令的控制下进行与主控制端相同的展示即可,从而可以实现多个异地终端同步漫游展示,从而可以有效地减少数据传输量,降低传输功耗,操作简单,响应及时,进一步提高用户的使用体验。

图7为本公开至少一实施例提供的一种场景切换装置的示意框图。例如,在图7所示的示例中,该场景切换装置100包括构建单元110和控制单元120。例如,这些单元可以通过硬件(例如电路)模块或软件模块等实现,以下是实施例与此相同,不再赘述。例如,可以通过中央处理单元(CPU)、图像处理器(GPU)、张量处理器(TPU)、现场可编程逻辑门阵列(FPGA)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元以及相应计算机指令来实现这些单元。

构建单元110配置为构建全景天空盒和三维模型,其中,在显示第一场景时,全景天空盒包括第一场景对应的纹理,在显示第二场景时,全景天空盒包括第二场景对应的纹理,第一场景和第二场景不同。例如,该构建单元110可以实现步骤S110,其具体实现方法可以参考步骤S110的相关描述,在此不再赘述。

控制单元120配置为在由第一场景切换至第二场景的过程中,使用三维模型中的第一虚拟相机进行渲染以用于显示,控制单元配置为在三维模型中,将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换,第一视点位置和第二视点位置不同。例如,该控制单元120可以实现步骤S120,其具体实现方法可以参考步骤S120的相关描述,在此不再赘述。

需要注意的是,在本公开的实施例中,该场景切换装置100可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。

图8为本公开至少一实施例提供的另一种场景切换装置的示意框图。例如,如图8所示,该场景切换装置200包括处理器210、存储器220以及一个或多个计算机程序模块221。

例如,处理器210与存储器220通过总线系统230连接。例如,一个或多个计算机程序模块221被存储在存储器220中。例如,一个或多个计算机程序模块221包括用于执行本公开任一实施例提供的场景切换方法的指令。例如,一个或多个计算机程序模块221中的指令可以由处理器210执行。例如,总线系统230可以是常用的串行、并行通信总线等,本公开的实施例对此不作限制。

例如,该处理器210可以是中央处理单元(CPU)、数字信号处理器(DSP)、图像处理器(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,可以为通用处理器或专用处理器,并且可以控制场景切换装置200中的其它组件以执行期望的功能。

存储器220可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器210可以运行该程序指令,以实现本公开实施例中(由处理器210实现)的功能以及/或者其它期望的功能,例如场景切换方法等。在该计算机可读存储介质中还可以存储各种应用程序和各种数据,例如第一视点位置、第二视点位置、移动位移以及应用程序使用和/或产生的各种数据等。

需要说明的是,为表示清楚、简洁,本公开实施例并没有给出该场景切换装置200的全部组成单元。为实现场景切换装置200的必要功能,本领域技术人员可以根据具体需要提供、设置其他未示出的组成单元,本公开的实施例对此不作限制。

关于不同实施例中的场景切换装置100和场景切换装置200的技术效果可以参考本公开的实施例中提供的场景切换方法的技术效果,这里不再赘述。

场景切换装置100和场景切换装置200可以用于各种适当的电子设备(例如图6中的终端设备或服务器)。图9为本公开至少一实施例提供的一种电子设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

例如,如图9所示,在一些示例中,电子设备300包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有计算机系统操作所需的各种程序和数据。处理装置301、ROM302以及RAM303通过总线304被此相连。输入/输出(I/O)接口305也连接至总线304。

例如,以下部件可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储装置309。虽然图9示出了包括各种装置的电子设备300,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。

例如,该电子设备300还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置309可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。

例如,电子设备可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的电子设备及硬件的组合,本公开的实施例对此不作限制。

例如,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述验证码处理功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的各个实施例中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

本公开至少一实施例还提供一种存储介质。图10为本公开至少一实施例提供的一种存储介质的示意图。例如,如图10所示,该存储介质400非暂时性地存储计算机可读指令401,当非暂时性计算机可读指令由计算机(包括处理器)执行时可以执行本公开任一实施例提供的场景切换方法。

例如,该存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含构建全景天空盒和三维模型的计算机可读的程序代码,另一个计算机可读存储介质包含将第一虚拟相机从第一场景对应的第一视点位置移动至第二场景对应的第二视点位置以实现第一场景至第二场景的切换的计算机可读的程序代码。例如,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如本公开任一实施例提供的场景切换方法。

例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。

有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。

相关技术
  • 场景切换方法及装置、存储介质
  • 一种3D控制室场景切换方法、装置、设备及存储介质
技术分类

06120112921851