发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种用于实现三维空间场景互动的方法、用于实现三维空间场景互动的装置、存储介质以及电子设备。
根据本公开实施例的一个方面,提供了一种用于实现三维空间场景互动的方法,包括:若检测到用户需要在三维空间场景中设置足迹信息,获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点;确定所述第一像素点对应的三维模型;确定所述用户的足迹信息在所述三维模型中的模型位置;在所述模型位置处设置所述用户的足迹信息;其中,所述用户的足迹信息用于显示给所述三维空间场景的浏览用户。
在本公开一实施方式中,所述足迹信息包括:文本、图片、音频、视频以及三维模型中的至少一个。
在本公开又一实施方式中,所述获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点,包括:获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,所述中心像素点被作为第一像素点。
在本公开再一实施方式中,所述确定所述第一像素点对应的三维模型,包括:判断针对所述第一像素点是否设置有三维模型;如果针对所述第一像素点设置有三维模型,则将所述针对所述第一像素点设置的三维模型作为所述第一像素点对应的三维模型;如果针对所述第一像素点未设置有三维模型,则将针对所述当前可视全景图中的其他像素点设置的三维模型作为所述第一像素点对应的三维模型。
在本公开再一实施方式中,所述将针对所述当前可视全景图中的其他像素点设置的三维模型作为所述第一像素点对应的三维模型,包括:以所述第一像素点为起点,根据预设遍历规则,对所述三维空间场景中的当前视角所对应的当前可视全景图中的其他像素点进行遍历,如果遍历到设置有三维模型的像素点,则将所述第一像素点更新为所述设置有三维模型的像素点,获得所述第一像素点对应的三维模型,并停止所述遍历。
在本公开再一实施方式中,所述获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点,包括:根据所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中设置足迹信息目标位置的操作,获取所述足迹信息目标位置对应的当前可视全景图中的像素点,该像素点被做为第一像素点。
在本公开再一实施方式中,所述确定所述第一像素点对应的三维模型,包括:判断针对所述第一像素点是否设置有三维模型;如果针对所述第一像素点设置有三维模型,则将所述针对所述第一像素点设置的三维模型作为所述第一像素点对应的三维模型;如果针对所述第一像素点未设置有三维模型,则输出更新足迹信息目标位置的提示信息,并在判断出针对更新后的足迹信息目标位置对应的当前可视全景图中的像素点设置有三维模型时,将该设置有三维模型的像素点作为第一像素点,获得所述第一像素点对应的三维模型。
在本公开再一实施方式中,所述确定所述用户的足迹信息在所述三维模型中的模型位置,包括:获取所述第一像素点在所述三维模型中的模型位置,且所述第一像素点在所述三维模型中的模型位置被作为所述用户的足迹信息在所述三维模型中的模型位置。
在本公开再一实施方式中,所述方法还包括:对于所述三维空间场景的任一浏览用户,确定该浏览用户在所述三维空间场景中的当前视角所对应的足迹区域;确定所述三维模型中的属于所述足迹区域的足迹信息;在该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图中,显示所述属于所述足迹区域的足迹信息。
在本公开再一实施方式中,所述确定该浏览用户在所述三维空间场景中的当前视角所对应的足迹区域,包括:获取该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图的中心像素点;以所述中心像素点为圆心,以预定长度为半径,确定所述当前可视全景图中的足迹区域。
在本公开再一实施方式中,所述在该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图中,显示所述属于所述足迹区域的足迹信,包括:对于所述属于所述足迹区域,且具有不同模型位置的多个足迹信息,根据所述多个足迹信息分别在所述当前可视全景图中的图像位置,在所述当前可视全景图中显示所述多个足迹信息;对于所述属于所述足迹区域,且具有相同模型位置的不同足迹信息,在所述当前可视全景图中为所述不同足迹信息分配不同的图像位置,并根据所述分配的图像位置,在所述当前可视全景图中显示所述不同足迹信息。
在本公开再一实施方式中,所述方法还包括:确定所述三维模型中的不属于所述足迹区域/当前可视全景图的至少一足迹信息;以弹幕的形式,在该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图中,显示所述至少一足迹信息。
根据本公开实施例的另一个方面,提供了一种用于实现三维空间场景互动的装置,该装置包括:获取像素点模块,用于若检测到用户需要在三维空间场景中设置足迹信息,获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点;确定三维模型模块,用于确定所述第一像素点对应的三维模型;确定模型位置模块,用于确定所述用户的足迹信息在所述三维模型中的模型位置;设置足迹信息模块,用于在所述模型位置处设置所述用户的足迹信息;其中,所述用户的足迹信息用于显示给所述三维空间场景的浏览用户。
在本公开一实施方式中,所述足迹信息包括:文本、图片、音频、视频以及三维模型中的至少一个。
在本公开又一实施方式中,所述获取像素点模块,包括:第一子模块,用于获取所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,所述中心像素点被作为第一像素点。
在本公开再一实施方式中,所述确定三维模型模块,包括:第二子模块,用于判断针对所述第一像素点是否设置有三维模型;第三子模块,用于如果所述第二子模块的判断结果为针对所述第一像素点设置有三维模型,则将所述针对所述第一像素点设置的三维模型作为所述第一像素点对应的三维模型;第四子模块,用于如果所述第二子模块的判断结果为针对所述第一像素点未设置有三维模型,则将针对所述当前可视全景图中的其他像素点设置的三维模型作为所述第一像素点对应的三维模型。
在本公开再一实施方式中,所述第四子模块进一步用于:如果所述第二子模块的判断结果为针对所述第一像素点未设置有三维模型,则以所述第一像素点为起点,根据预设遍历规则,对所述三维空间场景中的当前视角所对应的当前可视全景图中的其他像素点进行遍历,如果遍历到设置有三维模型的像素点,则将所述第一像素点更新为所述设置有三维模型的像素点,获得所述第一像素点对应的三维模型,并停止所述遍历。
在本公开再一实施方式中,所述获取像素点模块,包括:第五子模块,用于根据所述用户在所述三维空间场景中的当前视角所对应的当前可视全景图中设置足迹信息目标位置的操作,获取所述足迹信息目标位置对应的当前可视全景图中的像素点,该像素点被做为第一像素点。
在本公开再一实施方式中,所述确定三维模型模块,包括:第六子模块,用于判断针对所述第一像素点是否设置有三维模型;第七子模块,用于如果所述第六子模块的判断结果为针对所述第一像素点设置有三维模型,则将所述针对所述第一像素点设置的三维模型作为所述第一像素点对应的三维模型;第八子模块,用于如果所述第六子模块的判断结果为针对所述第一像素点未设置有三维模型,则输出更新足迹信息目标位置的提示信息,并在判断出针对更新后的足迹信息目标位置对应的当前可视全景图中的像素点设置有三维模型时,将该设置有三维模型的像素点作为第一像素点,获得所述第一像素点对应的三维模型。
在本公开再一实施方式中,所述确定模型位置模块进一步用于:获取所述第一像素点在所述三维模型中的模型位置,且所述第一像素点在所述三维模型中的模型位置被作为所述用户的足迹信息在所述三维模型中的模型位置。
在本公开再一实施方式中,所述装置还包括:确定足迹区域模块,用于对于所述三维空间场景的任一浏览用户,确定该浏览用户在所述三维空间场景中的当前视角所对应的足迹区域;确定足迹信息模块,用于确定所述三维模型中的属于所述足迹区域的足迹信息;显示足迹信息模块,用于在该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图中,显示所述属于所述足迹区域的足迹信息。
在本公开再一实施方式中,所述确定足迹区域模块进一步用于:获取该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图的中心像素点;以所述中心像素点为圆心,以预定长度为半径,确定所述当前可视全景图中的足迹区域。
在本公开再一实施方式中,所述显示足迹信息模块进一步用于:对于所述属于所述足迹区域,且具有不同模型位置的多个足迹信息,根据所述多个足迹信息分别在所述当前可视全景图中的图像位置,在所述当前可视全景图中显示所述多个足迹信息;对于所述属于所述足迹区域,且具有相同模型位置的不同足迹信息,在所述当前可视全景图中为所述不同足迹信息分配不同的图像位置,并根据所述分配的图像位置,在所述当前可视全景图中显示所述不同足迹信息。
在本公开再一实施方式中,所述装置还包括:弹幕显示模块,用于:确定所述三维模型中的不属于所述足迹区域/当前可视全景图的至少一足迹信息;以弹幕的形式,在该浏览用户在所述三维空间场景中的当前视角所对应的当前可视全景图中,显示所述至少一足迹信息。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述用于实现三维空间场景互动的方法。
根据本公开实施例的又一方面,提供一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述用于实现三维空间场景互动的方法。
基于本公开上述实施例提供的一种用于实现三维空间场景互动的方法和装置,通过利用需要设置足迹信息的用户的当前可视全景图中的第一像素点,获得第一像素点对应的三维模型以及足迹信息在该三维模型中的位置,使用户设置的足迹信息可以与相应三维模型的相应位置产生关联,这样,在基于用户的当前视角,利用全景图来呈现三维模型,以形成三维空间场景时,可以使用户的足迹信息呈现在三维空间场景的适当位置处,从而本公开有利于使用户对三维空间场景中的具体部位的感受,精准的呈现在三维空间场景的相应位置处。由此可知,本公开提供的技术方案实现了用户与三维空间场景的互动,不仅有利于提高用户自身的参与感和沉浸感,而且,用户留下的足迹信息还可以为该三维空间场景的至少一浏览用户带来更丰富的VR全景体验;最终有利于提升三维空间场景的商业价值。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
具体实施方式
下面将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或者两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可以存在三种关系,如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开的实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与终端设备、计算机系统或者服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施。在分布式云计算环境中,任务可以是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本公开概述
在实现本公开的过程中,发明人发现,在用户通过调整其当前视角来感受三维空间场景的过程中,往往会产生一些情绪以及想法等感受。如果用户能够将用于表征其感受的足迹信息设置到三维空间场景中,则不仅有利于提高用户自身的参与感,而且,用户留下的足迹信息还可以为观看该三维空间场景的其他用户带来更丰富的VR全景体验。
示例性概述
下面结合图1,对本公开提供的用于实现三维空间场景互动的技术的应用场景的一个例子,进行说明。
在房产领域,可以利用VR全景技术为待出租房屋或者待出售房屋,设置三维空间场景。任一用户均可以通过网络访问,随时随地的观看相应房屋的三维空间场景。在用户观看相应房屋的三维空间场景的过程中,本公开允许该用户针对其所浏览的房屋留下自己的足迹信息,而且,本公开可以将该用户自己针对该房屋留下的足迹信息和其他用户针对该房屋留下的足迹信息,一并呈现给该用户。
在一个具体的例子中,假设用户正在浏览**小区中的一个两室一厅的房屋的三维空间场景,基于该用户的当前视角所看到的当前可视全景图如图1所示。
其他用户针对该两室一厅的房屋的三维空间场景留下的足迹信息包括:“喜欢这组沙发,棒棒哒”、“这个装饰隔断不错”、“这个沙发不错,高级上档次”、“组合搭配很用心,赞赞赞”、“茶几造型设计的很独特~文案最长二十个字啊”以及图1右上角所示的三维模型100。为浏览该房屋的三维空间场景的用户呈现其他用户针对该房屋的三维空间场景所留下的足迹信息,有利于使该用户了解其他用户对该房屋的感受,从而有利于加深用户对该房屋的认知,进而有利于提高用户对该房屋的浏览体验。
另外,用户在观看该房屋的三维空间场景的过程中,也可以发表自己对该房屋的感受,即在该三维空间场景中留下自己的足迹信息。例如,用户可以在图1所示的柱子的位置处设置“这个柱子让房屋看起来更具特色”等足迹信息。用户自己设置的足迹信息可以即时显示在图1所示的三维空间场景中,即用户可以在观看该房屋的三维空间场景的过程中看到自己留下的足迹信息,从而有利于提升用户的参与感。
再有,所有用户针对该房屋设置的不属于图1所示的三维空间场景的其他足迹信息,可以以弹幕的形式呈现给用户,从而有利于提升用户浏览该房屋的其他位置的三维空间场景的兴趣。
本公开提供的用于实现三维空间场景互动的技术还可以应用在其他多种场景中,例如,用户在浏览图书馆的三维空间场景时,可以针对图书馆中的一本书或者座椅或者咖啡机等设置相应的足迹信息。用户针对书设置的足迹信息可以是用户针对书的观感或者用户当前阅读到的页数等。在此对本公开提供的用于实现三维空间场景互动的技术所能应用的场景,不再一一举例说明。
示例性方法
图2为本公开的用于实现三维空间场景互动的方法一个实施例的流程图。图2所示的实施例的方法包括:S200、S201、S202以及S203。下面对各步骤分别进行说明。
S200、若检测到用户需要在三维空间场景中设置足迹信息,获取该用户在该三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点。
本公开中的三维空间场景可以是指利用预先设置的全景图和三维模型,为用户呈现出的具有三维立体感的空间场景。例如,三维空间场景可以为针对图书馆设置的三维空间场景、针对房屋设置的三维空间场景、针对咖啡馆设置的三维空间场景、或者针对商场设置的三维空间场景等。
本公开可以在用户触发在三维空间场景中设置足迹信息的功能时,检测到用户需要在该三维空间场景中设置足迹信息。例如,在用户点击用于设置足迹信息的按钮或者菜单上的相应选项时,本公开检测到用户需要在三维空间场景中设置足迹信息。再例如,用户可以使用预先设置的快捷方式触发在三维空间场景中设置足迹信息的功能。本公开中的用户的足迹信息可以为能够表示出用户曾经到访过该三维空间场景的信息。该足迹信息可以认为是用户的来访痕迹信息。
本公开中的用户在三维空间场景中的当前视角可以是指:用户当前观看三维空间场景的位置和角度。用户在三维空间场景中的当前视角通常会随着用户的操作,而发生变化。例如,用户通过在触摸屏上执行拖拽等操作,可以控制其在三维空间场景中的当前视角。用户在三维空间场景中的当前视角决定了用户当前所能看到的全景图的内容/区域,即用户在三维空间场景中的当前视角决定了当前可视全景图。
本公开中的第一像素点为当前可视全景图中的一个像素点。本公开可以根据预先设置的缺省规则,获得第一像素点。例如,第一像素点可以为当前可视全景图中的一个特定像素点,也可以为当前可视全景图中的任意一个像素点。
S201、确定该第一像素点对应的三维模型。
本公开中的三维空间场景通常由多个三维模型形成。当然,本公开中的三维空间场景也可以由一个三维模型形成。用户看到的当前可视全景图中的一个像素点可以是三维模型中的一个点的呈现。用户看到的当前可视全景图中的一个像素点也可以不是三维模型中的任一点的呈现。也就是说,在通常情况下,三维空间场景中的任一三维模型中的任一点均可以呈现在全景图中,而全景图中的点所呈现的可能并不是三维空间场景中的所有三维模型中的点。当然,本公开也不排除三维空间场景中的三维模型中的部分点未被呈现在全景图中的可能性。
在第一像素点用于呈现三维模型中的点时,该点所在的三维模型即为第一像素点对应的三维模型。
在第一像素点用于呈现非三维模型中的点时,本公开可以利用当前可视全景图中的其他像素点来更新第一像素点。当然,本公开也可以不对第一像素点进行更新处理,此时,第一像素点对应的三维模型可以为:当前可视全景图中与第一像素点相近的用于呈现三维模型中的点的其他像素点所对应的三维模型。也就是说,在第一像素点用于呈现非三维模型中的点,且本公开不更新第一像素点的情况下,本公开可以将当前可视全景图中其他像素点对应的三维模型作为第一像素点对应的三维模型。
S202、确定该用户的足迹信息在该三维模型中的模型位置。
由于全景图中的至少部分像素点与三维模型中的点存在映射关系,因此,本公开可以获得上述第一像素点或者上述其他像素点在三维模型中的位置,即模型位置。该模型位置即为用户的足迹信息的模型位置。
本公开中的三维空间场景中的所有三维模型可以分别设置有各自的三维坐标系,也可以具有同一的三维坐标系。用户的足迹信息在三维模型中的模型位置可以通过(x,y,z)来表示。即本公开中的用户的足迹信息是具有深度的。
S203、在该模型位置处设置该用户的足迹信息。
本公开在该模型位置处设置该用户的足迹信息可以包括:为该用户的足迹信息设置三维模型标识以及三维坐标,并存储三维模型标识、三维坐标以及用户的足迹信息的对应关系。
本公开中的用户的足迹信息可以用于显示给该三维空间场景的浏览用户(如所有浏览用户或者部分浏览用户)。本公开中的三维空间场景的浏览用户可以包括设置该足迹信息的用户。
本公开通过利用需要设置足迹信息的用户的当前可视全景图中的第一像素点,获得第一像素点对应的三维模型以及足迹信息在该三维模型中的位置,使用户设置的足迹信息可以与相应三维模型的相应位置产生关联,这样,在基于用户的当前视角,利用全景图来呈现三维模型,以形成三维空间场景时,可以使用户的足迹信息呈现在三维空间场景的适当位置处,从而本公开有利于使用户对三维空间场景中的具体部位的感受,精准的呈现在三维空间场景的相应位置处。由此可知,本公开提供的技术方案实现了用户与三维空间场景的互动,不仅有利于提高用户自身的参与感以及沉浸感,并提升用户在三维空间场景中的停留时长,而且,用户留下的足迹信息还可以为该三维空间场景的至少一浏览用户带来更丰富的VR全景体验;最终有利于提升三维空间场景的商业价值。
在一个可选示例中,本公开中的足迹信息包括:文本、图片、音频、视频以及三维模型中的至少一个。本公开中的文本可以认为是字符(如文字、字母、数字或者符号等)形式的留言。本公开中的图片可以认为是图像(如照片或者表情符号等)形式的留言。本公开中的音频可以认为是声音形式的留言(也可以称为留音等)。本公开中的视频可以认为是影像形式的留言。本公开中的三维模型可以认为是立体形式的留言。本公开中的用户的足迹信息可以称为用户的留言。用户设置的一条足迹信息可以同时包括:文本、图片、音频、视频以及三维模型中的一种或者多种。本公开通过使用户的足迹信息包括文本、图片、音频、视频以及三维模型中的至少一个,有利于使用户的足迹信息的表现形式更加丰富,从而有利于丰富用户与三维空间场景的互动方式。
在一个可选示例中,本公开获取用户在三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点的一种实现方式可以为:获取用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,并将该中心像素点作为第一像素点。例如,假设用户在三维空间场景中的当前视角,通过点击按钮或者菜单上的选项等方式触发了在三维空间场景中设置足迹信息的功能,此时,本公开可以直接将当前可视全景图的中心像素点作为第一像素点。本公开中的中心像素点可以认为是本公开针对用户的足迹信息设置的缺省像素点,用户可以通过拖拽等方式对该缺省像素点进行更改。在一个例子中,本公开中的中心像素点可以认为是当前可视全景图的中心区域中的一个像素点。当前可视全景图的中心区域可以包括一个像素点或者多个像素点。本公开通过直接将当前可视全景图的中心像素点作为第一像素点,不仅有利于快速获得第一像素点,而且,有利于使用户设置的足迹信息在当前可视全景图中位于较为显著的位置。
在一个可选示例中,本公开获取用户在三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点的另一种实现方式可以为:根据用户在三维空间场景中的当前视角所对应的当前可视全景图中设置足迹信息目标位置的操作,获取足迹信息目标位置对应的当前可视全景图中的像素点,该像素点被作为第一像素点。也就是说,在用户执行设置足迹信息目标位置的操作的情况下,本公开可以将该操作在当前可视全景图中形成的足迹信息目标位置所在的像素点,作为第一像素点。
可选的,本公开中的设置足迹信息目标位置的操作可以为用于确定足迹信息的起始目标位置的操作,也可以为用于确定足迹信息的终止目标位置的操作,还可以为用于确定足迹信息的中心目标位置的操作。
可选的,本公开中的设置足迹信息目标位置的操作可以具体为基于鼠标或者键盘等工具的点击操作或者滚动操作或者拖动操作等,也可以具体为基于触摸屏的点击操作或者拖拽操作等。本公开对设置足迹信息目标位置的具体操作不作限定。
本公开通过根据用户的设置足迹信息目标位置的操作来确定第一像素点,有利于使用户设置的足迹信息位于用户期望的位置,从而有利于提高设置足迹信息的灵活性,并有利于使足迹信息的位置更为恰当。
可选的,假设在用户基于其在三维空间场景中的当前视角观看当前可视全景图浏览的过程中,用户通过点击按钮或者菜单上的选项等方式触发了在三维空间场景中设置足迹信息的功能,此时,用户可以利用鼠标左键点击、键盘中的上下左右键移动光标或者点击触摸屏中的相应位置等方式,来设置其所希望的足迹信息在当前可视全景图中的位置,从而本公开可以将该位置所在的像素点作为第一像素点。
可选的,假设在用户基于其在三维空间场景中的当前视角观看当前可视全景图浏览的过程中,用户通过点击按钮或者菜单上的选项等方式触发了在三维空间场景中设置足迹信息的功能,此时,本公开可以先将当前可视全景图的中心像素点作为第一像素点。如果用户不对该第一像素点进行更改,则本公开将该中心像素点作为最终的第一像素点。如果用户利用鼠标左键的拖动操作、键盘中的上下左右键移动光标操作或者用手指在触摸屏上的拖动操作等方式,来更改第一像素点,则本公开将操作结果获得的具体位置所在的像素点作为第一像素点。
在一个可选示例中,本公开确定第一像素点对应的三维模型的实现方式可以如图3所示。
图3中,S300、获取用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,并将该中心像素点作为第一像素点。
可选的,本公开中的中心像素点可以认为是本公开针对用户的足迹信息设置的缺省像素点。在一个例子中,假设当前可视全景图为(2n+1)×(2m+1)的图像(其中的n和m均为大于1的整数),则本公开可以直接将当前可视全景图中的像素点(n+1,m+1)作为中心像素点。在另一个例子中,假设当前可视全景图为2n×2m的图像(其中的n和m均为大于1的整数),则本公开可以将当前可视全景图中的像素点(n,m)、像素点(n+1,m)、像素点(n,m+1)以及像素点(n+1,m+1)作为当前可视全景图的中心区域,从而本公开可以将中心区域中的其中任一像素点作为中心像素点。
S301、判断针对第一像素点是否设置有三维模型。如果针对第一像素点设置有三维模型,则到S302。如果针对第一像素点未设置有三维模型,则到S303。
可选的,由于并不是当前可视全景图中的所有像素点均为三维模型中的相应点的呈现,而本公开需要将用户的足迹信息设置在三维模型中的相应位置处,因此,本公开需要判断针对第一像素点是否设置有三维模型,即本公开需要判断第一像素点是否为用于呈现三维模型中的相应点的像素点。
S302、将针对第一像素点设置的三维模型作为第一像素点对应的三维模型。
S303、将针对当前可视全景图中的其他像素点设置的三维模型作为第一像素点对应的三维模型。
可选的,本公开中的当前可视全景图中的其他像素点为当前可视全景图中的设置有三维模型的像素点。本公开可以根据预设规则来寻找设置有三维模型的像素点。在一个例子中,寻找到的其他像素点可以为在某一个方向(如左方向、右方向、上方向或者下方向)上距离第一像素点最近的像素点。
可选的,本公开可以以第一像素点为起点,根据预设遍历规则,对三维空间场景中的当前视角所对应的当前可视全景图中的像素点进行遍历,如果遍历到设置有三维模型的像素点,则获得第一像素点对应的三维模型,并停止本次遍历过程。例如,本公开可以以第一像素点为起点,向左遍历当前可视全景图中的像素点,并判断是否针对当前遍历到的像素点设置了三维模型,如果判断结果为针对当前遍历到的像素点设置有三维模型,则停止本次遍历过程,并将当前遍历获得的三维模型作为第一像素点对应的三维模型。另外,本公开可以利用遍历到的设置有三维模型的像素点更新第一像素点,当然,也可以不更新第一像素点。
本公开通过判断第一像素点是否设置有三维模型,并根据判断结果执行不同的操作,有利于避免在针对第一像素点未设置有三维模型的情况下,存在的无法将用户的足迹信息设置在三维模型中的相应模型位置处的现象。进一步的,本公开通过利用预设遍历规则,获得设置有三维模型的其他像素点,并将针对该其他像素点设置的三维模型作为第一像素点对应的三维模型,有利于快速获得第一像素点对应的三维模型。
在一个可选示例中,本公开确定第一像素点对应的三维模型的实现方式可以如图4所示。
图4中,S400、根据用户在三维空间场景中的当前视角所对应的当前可视全景图中设置足迹信息目标位置的操作,获取足迹信息目标位置对应的当前可视全景图中的像素点,该像素点被作为第一像素点。
可选的,本公开可以允许用户在当前可视全景图中自行设置足迹信息的具体位置(即足迹信息目标位置),例如,在用户触发在三维空间场景中设置足迹信息的功能后,用户可以通过在触摸屏上点击、滑动、拖拽等操作,在当前可视全景图中设置足迹信息目标位置。该足迹信息目标位置可以为文本框的左上顶点、左下顶点、右上顶点或者右下顶点等。该足迹信息目标位置可以为图片的左上顶点、左下顶点、右上顶点或者右下顶点等。本公开中的足迹信息目标位置可以是当前可视全景图中的一个像素点,该像素点即为第一像素点。
S401、判断针对第一像素点是否设置有三维模型。如果针对第一像素点设置有三维模型,则到S402。如果针对第一像素点未设置有三维模型,则到S403。
S402、将针对第一像素点设置的三维模型作为第一像素点对应的三维模型。
S403、输出更新足迹信息目标位置的提示信息。
可选的,本公开中的提示信息用于提示用户更新其当前设置的足迹信息目标位置。即提示信息用于提示用户其当前设置的足迹信息目标位置不能设置足迹信息,用户应重新设置足迹信息目标位置。本公开可以通过文字或者音频或者图形等形式输出提示信息。在输出提示信息后,本公开应等待用户的后续操作,如果用户此时触发了取消设置足迹信息的功能,则图4所示的流程结束。
S404、在检测到用户执行更新足迹信息目标位置的操作时,将更新后的足迹信息目标位置对应的当前可视全景图中的像素点作为第一像素点。返回S401。
可选的,如果用户当前执行了更新足迹信息目标位置的操作,则本公开再次获得足迹信息目标位置。本公开再次获得的足迹信息目标位置同样可以是当前可视全景图中的一个像素点,该像素点即为第一像素点。也就是说,前次获得的第一像素点被当前获得的足迹信息目标位置所在的相似度更新。
本公开通过判断用户自行设置的足迹信息目标位置是否设置有三维模型,并根据判断结果执行不同的操作,有利于避免在针对足迹信息目标位置未设置有三维模型的情况下,存在的无法将用户的足迹信息设置在三维模型中的相应模型位置处的现象。本公开通过利用S401至S404的循环过程,有利于促使用户将其足迹信息最终设置在三维模型的相应位置处,从而有利于使足迹信息的位置更为恰当。
在一个可选示例中,在本公开中的第一像素点设置有三维模型的情况下,由于当前可视全景图中的第一像素点与三维模型中的点存在映射关系,因此,本公开可以基于该映射关系获得第一像素点所对应的三维模型中的点,该点的位置即为第一像素点在三维模型中的模型位置,本公开可以直接将第一像素点在三维模型中的模型位置作为用户的足迹信息在三维模型中的模型位置,从而有利于快捷准确的获得用户的足迹信息在三维模型中的模型位置。
在一个可选示例中,在浏览用户观看三维空间场景的过程中,本公开可以为该浏览用户呈现至少一用户在该三维空间场景中留下的足迹信息。一个例子如图5所示。
图5中,S500、对于三维空间场景的任一浏览用户,确定该浏览用户在三维空间场景中的当前视角所对应的足迹区域。
可选的,本公开中的浏览用户包括在该三维空间场景中设置其足迹信息的用户。本公开中的足迹区域可以认为是针对需要显示的足迹信息设置的区域。该足迹区域可以为基于当前可视全景图的足迹区域,也可以为基于三维模型的足迹区域。足迹区域的大小可以是预先设置的。足迹区域的形状可以为长方形或者圆形或者三角形等。
可选的,在足迹区域为基于当前可视全景图的足迹区域时,本公开确定足迹区域的一种实现方式可以为:首先,获取浏览用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,之后,以该中心像素点为圆心,以预定长度(如三维空间场景中的1.5米等,且1.5米可以被换算为当前可视全景图中的长度)为半径,确定当前可视全景图中的足迹区域。由于当前可视全景图中的足迹区域中的至少部分像素点与三维模型中的点存在映射关系,因此,本公开利用当前可视全景图中的足迹区域,可以便捷的获得当前需要显示的足迹信息。另外,本公开的当前可视全景图中的足迹区域可以认为是一个圆形,即当前可视全景图中的足迹区域不具有深度信息。
可选的,在足迹区域为基于三维模型的足迹区域时,本公开确定足迹区域的一种实现方式可以为:首先,获取浏览用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,并确定该中心像素点是否设置有三维模型,如果该中心像素点设置有三维模型,则确定该中心像素点在该三维模型中的模型位置,之后,以该模型位置为圆心,以预定长度(如三维空间场景中的1.5米等)为半径,确定三维模型中的足迹区域。该足迹区域可能会完全位于一个三维模型中,也可能会跨多个三维模型。另外,本公开的三维模型中的足迹区域可以认为是一个圆柱体,即三维模型中的足迹区域具有深度信息。
S501、确定三维模型中的属于该足迹区域的足迹信息。
可选的,在足迹区域为基于当前可视全景图的足迹区域时,本公开可以遍历足迹区域中的每一个像素点是否与三维模型中的点存在映射关系,如果存在映射关系,再判断与像素点存在映射关系的三维模型中的点是否设置有足迹信息,如果设置有足迹信息,则可以将该足迹信息认为是属于该足迹区域的足迹信息。
可选的,在足迹区域为基于三维模型的足迹区域时,本公开可以遍历足迹区域中的每一个点是否设置有足迹信息,如果设置有足迹信息,则可以将该足迹信息认为是属于该足迹区域的足迹信息。
S502、在该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图中,显示属于该足迹区域的足迹信息。
可选的,本公开可以根据各足迹信息的模型位置,确定出属于该足迹区域的各足迹信息分别在当前可视全景图中的位置,从而可以根据各足迹信息分别在当前可视全景图中的位置显示各足迹信息。在显示足迹信息的过程中,可以尽量避免不同足迹信息在当前可视全景图中的重叠显示现象。
可选的,本公开获得的多个足迹信息可能具有不同的模型位置,也可能具有相同的模型位置(即足迹信息的模型位置冲突)。对于属于足迹区域的具有不同位置的多个足迹信息,本公开可以直接根据多个足迹信息分别在当前可视全景图中的图像位置,在当前可视全景图中显示各足迹信息,且本公开可以允许显示的各足迹信息部分重叠,也可以通过位置控制使各足迹信息互不重叠。对于属于足迹范围区域的具有相同模型位置的不同足迹信息,本公开可以在当前可视全景图中为不同足迹信息分别分配不同的图像位置,并根据分配的图像位置,在当前可视全景图中显示上述具有相同模型位置的不同足迹信息,从而有利于避免不同足迹信息在当前可视全景图中的重叠显示现象。
可选的,本公开可以显示属于该足迹区域的所有足迹信息,也可以显示属于该足迹区域的部分足迹信息。例如,在属于该足迹区域的所有足迹信息的数量过于庞大(例如,数量超过预定数量)时,本公开可以按照预定规则,从中选取部分足迹信息,并在当前可视全景图中显示选取出的部分足迹信息。
可选的,本公开可以从属于该足迹区域的所有足迹信息中随机选取出预定数量的足迹信息,并在当前可视全景图中显示随机选取出的部分足迹信息。
可选的,本公开可以从属于该足迹区域的所有足迹信息中优先选取浏览用户自己设置的足迹信息,还可以优先选取质量好的足迹信息等,并在当前可视全景图中显示选取出的部分足迹信息。
在一个可选示例中,本公开可以采用弹幕的形式,为浏览用户显示当前可视全景图之外的足迹信息。例如,本公开可以先确定三维模型中的不属于当前可视全景图的所有足迹信息,并以弹幕的形式,在该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图中,显示上述所有足迹信息或者部分足迹信息。
在一个可选示例中,本公开可以采用弹幕的形式,为浏览用户显示足迹区域之外的足迹信息。例如,本公开可以先确定三维模型中的不属于足迹区域的所有足迹信息,并以弹幕的形式,在该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图中,显示上述所有足迹信息或者部分足迹信息。
本公开通过采用弹幕的形式,显示不属于足迹区域/当前可视全景图的足迹信息,不仅有利于促使浏览用户探查该三维空间场景的其他部分,提高浏览用户的沉浸感,而且有利于进一步提升浏览用户的VR全景体验,从而有利于提升三维空间场景的商业价值。
示例性装置
图6为本公开的用于实现三维空间场景互动的装置一个实施例的结构示意图。该实施例的装置可用于实现本公开上述各方法实施例。
如图6所示,本实施例的装置包括:获取像素点模块600、确定三维模型模块601、确定模型位置模块602以及设置足迹信息模块603。另外,本公开的装置还可以包括:确定足迹区域模块604、确定足迹信息模块605、显示足迹信息模块606以及弹幕显示模块607。
获取像素点模块600用于若检测到用户需要在三维空间场景中设置足迹信息,获取用户在三维空间场景中的当前视角所对应的当前可视全景图中的第一像素点。
可选的,本公开中的足迹信息可以包括:文本、图片、音频、视频以及三维模型中的至少一个。
可选的,获取像素点模块600可以包括:第一子模块6001。该第一子模块6001用于获取用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,中心像素点被作为第一像素点。
可选的,获取像素点模块600可以包括:第五子模块6002。该第五子模块6002用于根据用户在三维空间场景中的当前视角所对应的当前可视全景图中设置足迹信息目标位置的操作,获取足迹信息目标位置对应的当前可视全景图中的像素点,第五子模块6002可以将该像素点做为第一像素点。
确定三维模型模块601用于确定获取像素点模块600获取到的第一像素点对应的三维模型。
可选的,在获取像素点模块600包括第一子模块6001的情况下,确定三维模型模块601可以包括:第二子模块6011、第三子模块6012以及第四子模块6013。其中的第二子模块6011用于判断针对第一像素点是否设置有三维模型。其中的第三子模块6012用于如果第二子模块6011的判断结果为针对第一像素点设置有三维模型,则将针对第一像素点设置的三维模型作为第一像素点对应的三维模型。其中的第四子模块6013用于如果第二子模块6011的判断结果为针对第一像素点未设置有三维模型,则将针对当前可视全景图中的其他像素点设置的三维模型作为第一像素点对应的三维模型。例如,如果第二子模块6011的判断结果为针对第一像素点未设置有三维模型,则第四子模块6013可以以第一像素点为起点,根据预设遍历规则,对三维空间场景中的当前视角所对应的当前可视全景图中的其他像素点进行遍历,如果遍历到设置有三维模型的像素点,则将第一像素点更新为设置有三维模型的像素点,获得第一像素点对应的三维模型,并停止本次遍历。
在获取像素点模块600包括第五子模块6002的情况下,确定三维模型模块601可以包括:第六子模块6014、第七子模块6015以及第八子模块6016。其中的第六子模块6014用于判断针对第一像素点是否设置有三维模型。如果第六子模块6014的判断结果为针对第一像素点设置有三维模型,则第七子模块6015将针对第一像素点设置的三维模型作为第一像素点对应的三维模型。如果第六子模块6014的判断结果为针对第一像素点未设置有三维模型,则第八子模块6016可以输出更新足迹信息目标位置的提示信息,并在第六子模块6014判断出针对更新后的足迹信息目标位置对应的当前可视全景图中的像素点设置有三维模型时,将该设置有三维模型的像素点作为第一像素点,第八子模块6016获得第一像素点对应的三维模型。
确定模型位置模块602用于确定用户的足迹信息在确定三维模型模块601确定出的三维模型中的模型位置。例如,确定模型位置模块602可以获取第一像素点在三维模型中的模型位置,且确定模型位置模块602可以将第一像素点在三维模型中的模型位置作为用户的足迹信息在三维模型中的模型位置。
设置足迹信息模块603用于在确定模型位置模块602确定出的模型位置处设置用户的足迹信息。其中,设置足迹信息模块603设置的用户的足迹信息用于显示给三维空间场景的浏览用户。
确定足迹区域模块604用于对于三维空间场景的任一浏览用户,确定该浏览用户在三维空间场景中的当前视角所对应的足迹区域。例如,确定足迹区域模块604可以先获取该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图的中心像素点,然后,确定足迹区域模块604以该中心像素点为圆心,以预定长度为半径,确定当前可视全景图中的足迹区域。
确定足迹信息模块605用于确定三维模型中的属于确定足迹区域模块604确定出的足迹区域的足迹信息。
显示足迹信息模块606用于在该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图中,显示确定足迹信息模块605确定出的属于足迹区域的足迹信息。
可选的,对于属于足迹区域,且具有不同模型位置的多个足迹信息而言,显示足迹信息模块606可以根据多个足迹信息分别在当前可视全景图中的图像位置,在当前可视全景图中显示所述多个足迹信息。
可选的,对于属于足迹区域,且具有相同模型位置的不同足迹信息而言,显示足迹信息模块606可以在当前可视全景图中为不同足迹信息分配不同的图像位置,并根据分配的图像位置,在当前可视全景图中显示不同足迹信息。
弹幕显示模块607用于确定三维模型中的不属于足迹区域/当前可视全景图的至少一足迹信息,弹幕显示模块607以弹幕的形式,在该浏览用户在三维空间场景中的当前视角所对应的当前可视全景图中,显示该至少一足迹信息。
上述各模块及其包括的子模块具体执行的操作可以参见上述方法实施例中针对图2-图5的描述,在此不再详细说明。
示例性电子设备
下面参考图7来描述根据本公开实施例的电子设备。图7示出了根据本公开实施例的电子设备的框图。如图7所示,电子设备71包括一个或多个处理器711和存储器712。
处理器711可以是中央处理单元(CPU)或者具有用于实现三维空间场景互动的能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备71中的其他组件以执行期望的功能。
存储器712可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器,例如,可以包括:随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器,例如,可以包括:只读存储器(ROM)、硬盘以及闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器711可以运行所述程序指令,以实现上文所述的本公开的各个实施例的用于实现三维空间场景互动的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备71还可以包括:输入装置713以及输出装置714等,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备713还可以包括例如键盘、鼠标等等。该输出装置714可以向外部输出各种信息。该输出设备714可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备71中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备71还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于实现三维空间场景互动的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于实现三维空间场景互动的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列举)可以包括:具有一个或者多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势以及效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备以及系统。诸如“包括”、“包含、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述,以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改等对于本领域技术人员而言,是非常显而易见的,并且在此定义的一般原理可以应用于其他方面,而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式中。尽管以上已经讨论了多个示例方面以及实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。