发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种画面更新方法、装置、计算机可读存储介质及终端设备。
根据本公开实施例的一个方面,提供了一种画面更新方法,应用于终端设备,所述方法包括:
在三维模型展示场景下,接收用户的第一输入操作;其中,在所述三维模型展示场景下,所述终端设备的显示屏上具有第一画面层和第二画面层,所述第二画面层覆盖所述第一画面层,所述第二画面层为非可见层,所述第一画面层为可见层,所述第一输入操作为在所述第二画面层上的输入操作;
根据所述第一输入操作,确定相应的场景数据更新信息;
将所述场景数据更新信息发送至服务器,并接收所述服务器根据所述场景数据更新信息返回的画面数据;
控制所述第一画面层切换至展示所述画面数据对应的三维画面。
在一个可选示例中,所述确定场景数据更新信息之后,所述方法还包括:
根据所述场景数据更新信息,渲染得到相应的三维画面;
控制所述第二画面层切换至展示渲染得到的三维画面;
其中,渲染得到的三维画面的清晰度低于所述画面数据对应的三维画面。
在一个可选示例中,
所述根据所述场景数据更新信息,渲染得到相应的三维画面,包括:
根据所述场景数据更新信息和所述终端设备存储的三维场景数据,渲染得到相应的三维画面;
所述方法还包括:
对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行数据同步。
在一个可选示例中,所述根据所述场景数据更新信息和所述终端设备存储的三维场景数据,渲染得到相应的三维画面,包括:
根据所述场景数据更新信息,对所述终端设备存储的三维场景数据进行更新;
利用所述终端设备存储的,经更新后的所述三维场景数据,渲染得到相应的三维画面。
在一个可选示例中,所述方法还包括:
在所述第一输入操作用于添加或选中目标模型的情况下,在对所述终端设备存储的三维场景数据进行更新之后,将所述第二画面层展示的所述目标模型置于锁定状态;
在接收到所述服务器返回的目标反馈信息的情况下,将所述目标模型切换为解锁状态;其中,所述目标反馈信息用于表征所述服务器根据所述场景数据更新信息,对所述服务器存储的三维场景数据进行了更新;
在所述目标模型处于所述锁定状态的情况下,所述终端设备不响应第二输入操作,否则,所述终端设备响应第二输入操作;其中,所述第二输入操作为在所述第二画面层上的,针对所述目标模型的输入操作。
在一个可选示例中,所述对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行数据同步,包括:
按照第一同步策略,对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行模型数据的同步;
按照第二同步策略,对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行相机数据的同步。
在一个可选示例中,所述终端设备存储的三维场景数据包括N个模型的N个模型数据,所述服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
所述按照第一同步策略,对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行模型数据的同步,包括:
获取所述N个模型与N个校验数据之间的对应关系;其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据;
将所述对应关系发送至所述服务器,并接收所述服务器根据所述对应关系返回的差量信息;其中,所述差量信息用于表征所述M个模型数据与所述N个模型数据的差异;
根据所述差量信息,向所述服务器发送所述N个模型数据中的相应差量数据。
根据本公开实施例的另一个方面,提供了一种画面更新方法,应用于服务器,所述方法包括:
接收终端设备在三维模型展示场景下,根据用户的第一输入操作发送的场景数据更新信息;其中,在所述三维模型展示场景下,所述终端设备的显示屏上具有第一画面层和第二画面层,所述第二画面层覆盖所述第一画面层,所述第二画面层为非可见层,所述第一画面层为可见层,所述第一输入操作为在所述第二画面层上的输入操作;
根据所述场景数据更新信息,向所述终端设备返回相应的画面数据,以供所述终端设备的所述第一画面层切换至展示相应三维画面。
在一个可选示例中,
所述根据所述场景数据更新信息,向所述终端设备返回相应的画面数据,包括:
根据所述场景数据更新信息和所述服务器存储的三维场景数据,渲染得到相应的三维画面;
向所述终端设备返回渲染得到的三维画面所对应的画面数据;
所述方法还包括:
对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行数据同步。
在一个可选示例中,所述对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行数据同步,包括:
按照第一同步策略,对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行模型数据的同步;
按照第二同步策略,对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行相机数据的同步。
在一个可选示例中,所述终端设备存储的三维场景数据包括N个模型的N个模型数据,所述服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
所述按照第一同步策略,对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行模型数据的同步,包括:
接收所述终端设备发送的,所述N个模型与N个校验数据之间的对应关系;
获取所述M个模型与M个校验数据之间的对应关系;
将所接收的对应关系与所得到的对应关系进行比较,以确定差量信息;其中,所述差量信息用于表征所述M个模型数据与所述N个模型数据的差异;
将所述差量信息发送至所述终端设备;
接收所述终端设备根据所述差量信息返回的差量数据,并根据所述差量数据,更新所述M个模型数据;
其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据。
根据本公开实施例的再一个方面,提供了一种画面更新装置,应用于终端设备,所述装置包括:
第一接收模块,用于在三维模型展示场景下,接收用户的第一输入操作;其中,在所述三维模型展示场景下,所述终端设备的显示屏上具有第一画面层和第二画面层,所述第二画面层覆盖所述第一画面层,所述第二画面层为非可见层,所述第一画面层为可见层,所述第一输入操作为在所述第二画面层上的输入操作;
确定模块,用于根据所述第一输入操作,确定相应的场景数据更新信息;
传输模块,用于将所述场景数据更新信息发送至服务器,并接收所述服务器根据所述场景数据更新信息返回的画面数据;
第一处理模块,用于控制所述第一画面层切换至展示所述画面数据对应的三维画面。
在一个可选示例中,所述装置还包括:
获取模块,用于在确定场景数据更新信息之后,根据所述场景数据更新信息,渲染得到相应的三维画面;
第二处理模块,用于控制所述第二画面层切换至展示渲染得到的三维画面;
其中,渲染得到的三维画面的清晰度低于所述画面数据对应的三维画面。
在一个可选示例中,
所述获取模块,具体用于:
根据所述场景数据更新信息和所述终端设备存储的三维场景数据,渲染得到相应的三维画面;
所述装置还包括:
第一数据同步模块,用于对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行数据同步。
在一个可选示例中,所述获取模块,包括:
更新单元,用于根据所述场景数据更新信息,对所述终端设备存储的三维场景数据进行更新;
获取单元,用于利用所述终端设备存储的,经更新后的所述三维场景数据,渲染得到相应的三维画面。
在一个可选示例中,所述装置还包括:
第三处理模块,用于在所述第一输入操作用于添加或选中目标模型的情况下,在对所述终端设备存储的三维场景数据进行更新之后,将所述第二画面层展示的所述目标模型置于锁定状态;
第四处理模块,用于在接收到所述服务器返回的目标反馈信息的情况下,将所述目标模型切换为解锁状态;其中,所述目标反馈信息用于表征所述服务器根据所述场景数据更新信息,对所述服务器存储的三维场景数据进行了更新;
在所述目标模型处于所述锁定状态的情况下,所述终端设备不响应第二输入操作,否则,所述终端设备响应第二输入操作;其中,所述第二输入操作为在所述第二画面层上的,针对所述目标模型的输入操作。
在一个可选示例中,所述第一数据同步模块,包括:
第一同步单元,用于按照第一同步策略,对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行模型数据的同步;
第二同步单元,用于按照第二同步策略,对所述终端设备存储的三维场景数据和所述服务器存储的三维场景数据进行相机数据的同步。
在一个可选示例中,所述终端设备存储的三维场景数据包括N个模型的N个模型数据,所述服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
所述第一同步单元,包括:
第一获取子单元,用于获取所述N个模型与N个校验数据之间的对应关系;其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据;
传输子单元,用于将所述对应关系发送至所述服务器,并接收所述服务器根据所述对应关系返回的差量信息;其中,所述差量信息用于表征所述M个模型数据与所述N个模型数据的差异;
第一发送子单元,用于根据所述差量信息,向所述服务器发送所述N个模型数据中的相应差量数据。
根据本公开实施例的又一个方面,提供了一种画面更新装置,应用于服务器,所述装置包括:
第二接收模块,用于接收终端设备在三维模型展示场景下,根据用户的第一输入操作发送的场景数据更新信息;其中,在所述三维模型展示场景下,所述终端设备的显示屏上具有第一画面层和第二画面层,所述第二画面层覆盖所述第一画面层,所述第二画面层为非可见层,所述第一画面层为可见层,所述第一输入操作为在所述第二画面层上的输入操作;
处理模块,用于根据所述场景数据更新信息,向所述终端设备返回相应的画面数据,以供所述终端设备的所述第一画面层切换至展示相应三维画面。
在一个可选示例中,
所述处理模块,包括:
渲染单元,用于根据所述场景数据更新信息和所述服务器存储的三维场景数据,渲染得到相应的三维画面;
返回单元,用于向所述终端设备返回渲染得到的三维画面所对应的画面数据;
所述装置还包括:
第二数据同步模块,用于对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行数据同步。
在一个可选示例中,所述第二数据同步模块,包括:
第三同步单元,用于按照第一同步策略,对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行模型数据的同步;
第四同步单元,用于按照第二同步策略,对所述服务器存储的三维场景数据与所述终端设备存储的三维场景数据进行相机数据的同步。
在一个可选示例中,所述终端设备存储的三维场景数据包括N个模型的N个模型数据,所述服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
所述第三同步单元,包括:
接收子单元,用于接收所述终端设备发送的,所述N个模型与N个校验数据之间的对应关系;
第二获取子单元,用于获取所述M个模型与M个校验数据之间的对应关系;
确定子单元,用于将所接收的对应关系与所得到的对应关系进行比较,以确定差量信息;其中,所述差量信息用于表征所述M个模型数据与所述N个模型数据的差异;
第二发送子单元,用于将所述差量信息发送至所述终端设备;
处理子单元,用于接收所述终端设备根据所述差量信息返回的差量数据,并根据所述差量数据,更新所述M个模型数据;
其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据。
根据本公开实施例的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述画面更新方法。
根据本公开实施例的又一个方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述画面更新方法。
本公开的实施例中,在三维模型展示场景下,接收用户在属于不可见层的第二画面层上的第一输入操作之后,终端设备可以根据第一输入操作,确定相应的场景数据更新信息,并将场景数据更新信息发送至服务器;再之后,终端设备可以接收服务器根据场景数据更新信息返回的画面数据,并控制属于可见层的第一画面层切换至展示画面数据对应的三维画面,以呈现用户的操作结果。可见,本公开的实施例中,在三维模型展示场景下,通过作用于第二画面层上的输入操作,终端设备可以向服务器提供相应的场景数据更新信息,服务器处可以执行渲染操作,终端设备依据服务器返回的画面数据做画面展示即可,因此,与现有技术相比,本公开的实施例能够降低对终端设备的性能要求。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
示例性方法
为了解决现有技术存在的问题,本公开的实施例从终端设备和服务器的角度分别提供了一种画面更新方法,下面首先对本公开的实施例从终端设备的角度提供的画面更新方法进行说明。
图1是本公开一示例性实施例提供的画面更新方法的流程示意图。图1所示的方法应用于手机、平板电脑等终端设备,图1所示的方法可以包括步骤101、步骤102、步骤103和步骤104,下面对各步骤分别进行说明。
步骤101,在三维模型展示场景下,接收用户的第一输入操作;其中,在三维模型展示场景下,终端设备的显示屏上具有第一画面层和第二画面层,第二画面层覆盖第一画面层,第二画面层为非可见层,第一画面层为可见层,第一输入操作为在第二画面层上的输入操作。
这里,三维模型展示场景可以为云游戏场景、网上看房场景等。
这里,第二画面层与第一画面层可以完全重叠,第二画面层可以为透明且不可见层,具体地,图2中的lay0可以作为第一画面层,图2中的lay1可以作为第二画面层。需要指出的是,由于第二画面层为非可见层,第一画面层为可见层,第二画面层上展示的画面无法呈现给用户,而第一画面层上展示的画面能够呈现给用户。
这里,用户的第一输入操作包括但不限于在第二画面层上的鼠标输入操作、键盘输入操作、触控输入操作等。具体地,第一输入操作可以为移动操作、拖拽操作、点击操作等。
步骤102,根据第一输入操作,确定相应的场景数据更新信息。
一般而言,在三维模型展示场景下,终端设备展示的任一三维画面与相应三维场景数据对应,三维场景数据中可以包括模型数据和相机数据,模型数据可以包括模型(例如图2中的橱柜、微波炉、图3中的桌子等)的坐标、朝向、材质等信息,相机数据可以包括相机的位置、朝向、张角等信息。
在接收到第一输入操作的情况下,可以认为相应的操作事件被触发。终端设备可以具有解析能力,利用该解析能力,终端设备可以对被触发的操作事件进行解析,以确定用户意图,并得到相应的场景数据更新信息;其中,场景数据更新信息可以用于表征终端设备当前呈现给用户的三维画面需要发生何种变化。
例如,在终端设备当前呈现给用户的三维画面如图3所示的情况下,场景数据更新信息可以用于表征以下内容:桌子的材质需要更新为材质Z、桌子的朝向需要更新为朝向X、桌子需要向右移动距离L、桌子的尺寸需要缩小一半、桌子需要置为选中态、相机朝向需要更新为朝向J等。在场景数据更新信息表征桌子需要置为选中态时,场景数据更新信息中可以包括桌子的模型ID。
步骤103,将场景数据更新信息发送至服务器,并接收服务器根据场景数据更新信息返回的画面数据。
这里,场景数据更新信息可以通过网络发送给服务器。服务器可以具有渲染能力,利用该渲染能力,服务器可以依据场景数据更新信息,渲染得到相应的三维画面,并将渲染得到的三维画面对应的画面数据直接通过网络返回,或者将渲染得到的三维画面对应的画面数据压缩后再通过网络返回。
步骤104,控制第一画面层切换至展示画面数据对应的三维画面。
在服务器返回的画面数据为未经压缩的画面数据的情况下,可以直接控制第一显示屏切换至展示画面数据对应的三维画面;在服务器返回的画面数据为经压缩后的画面数据的情况下,可以将画面数据解压后再控制第一显示屏切换至展示画面数据对应的三维画面。这样,在场景数据更新信息用于表征相机朝向需要更新为朝向J时,终端设备向用户呈现的是相机朝向为朝向J时的三维画面;在场景数据更新信息用于表征桌子需要置为选中态时,终端设备向用户呈现的三维画面中的桌子处于选中态,例如,桌子被一个矩形框圈设。
本公开的实施例中,在三维模型展示场景下,接收用户在属于不可见层的第二画面层上的第一输入操作之后,终端设备可以根据第一输入操作,确定相应的场景数据更新信息,并将场景数据更新信息发送至服务器;再之后,终端设备可以接收服务器根据场景数据更新信息返回的画面数据,并控制属于可见层的第一画面层切换至展示画面数据对应的三维画面,以呈现用户的操作结果。可见,本公开的实施例中,在三维模型展示场景下,通过作用于第二画面层上的输入操作,终端设备可以向服务器提供相应的场景数据更新信息,服务器处可以执行渲染操作,终端设备依据服务器返回的画面数据做画面展示即可,因此,与现有技术相比,本公开的实施例能够降低对终端设备的性能要求。
在一个可选示例中,确定场景数据更新信息之后,该方法还包括:
根据场景数据更新信息,渲染得到相应的三维画面;
控制第二画面层切换至展示渲染得到的三维画面;
其中,渲染得到的三维画面的清晰度低于画面数据对应的三维画面。
需要说明的是,终端设备也可以具有一定的渲染能力,终端设备的渲染能力可以弱于服务器。
本公开的实施例中,由于第二画面层覆盖第一画面层,用户可以在第二画面层上执行第一输入操作,终端设备可以利用自身的解析能力,根据第一输入操作确定相应的场景数据更新信息。
接下来,终端设备不仅可以将场景数据更新信息提供给服务器,以便服务器返回相应的画面数据,终端设备还可以利用自身的渲染能力,依据场景数据更新信息渲染得到相应的三维画面;其中,终端设备渲染得到的三维画面可以在第二画面层上展示,服务器返回的画面数据对应的三维画面可以在第一画面层上展示。
由于终端设备的渲染能力弱于服务器,终端设备渲染得到的三维画面的清晰度可以低于服务器返回的画面数据对应的三维画面,例如,终端设备渲染得到的三维画面可以为图2中位于右上角的三维画面,服务器返回的画面数据对应的三维画面可以为图2中位于左上角的三维画面。
由于第二画面层是非可见层,可以认为第二画面层上的三维画面是不可见的,用户通过肉眼仅能看到第一画面层上展示的是三维画面,也即,终端设备最终呈现给用户的是由服务器得到的清晰度较高的三维画面。
可见,本公开的实施例中,在三维展示场景下,通过作用于第二画面层上的输入操作,第一画面层和第二画面层上展示的三维画面均能够进行相应更新,这样有利于保证后续作用于第二画面层上的其他输入操作令第一画面层展示用户所需的三维画面。另外,本公开的实施例中,终端设备渲染得到的三维画面的清晰度低于画面数据对应的三维画面,这样,终端设备的渲染能力可以比较差,因此,本公开的实施例对终端设备的性能要求也较低。
在一个可选示例中,
根据场景数据更新信息,渲染得到相应的三维画面,包括:
根据场景数据更新信息和终端设备存储的三维场景数据,渲染得到相应的三维画面;
该方法还包括:
对终端设备存储的三维场景数据和服务器存储的三维场景数据进行数据同步。
需要说明的是,终端设备和服务器均可以存储有三维场景数据,服务器存储的三维场景数据可以与第一画面层当前展示的三维画面对应,终端设备存储的三维场景数据可以与第二画面层当前展示的三维画面对应。
在确定出场景数据更新信息之后,终端设备可以根据场景数据更新信息和自身存储的三维场景数据,渲染得到相应的三维画面。在一种具体实施方式中,根据场景数据更新信息和终端设备存储的三维场景数据,渲染得到相应的三维画面,包括:
根据场景数据更新信息,对终端设备存储的三维场景数据进行更新;
利用终端设备存储的,经更新后的三维场景数据,渲染得到相应的三维画面。
具体地,在场景数据更新信息用于表征图3中的桌子的材质需要更新为材质Z的情况下,可以将终端设备存储的三维场景数据中,用于表征桌子的材质的数据更新为Z;在场景数据更新信息用于表征图3中的桌子的朝向需要更新为朝向X的情况下,可以将终端设备存储的三维场景数据中,用于表征桌子的朝向的数据更新为X。
之后,终端设备可以利用自身的渲染能力,依据终端设备存储的,经更新后的三维场景数据,渲染得到相应的三维画面,并控制第二画面层切换至展示渲染得到的三维画面。由于在执行渲染操作之前,终端设备存储的三维场景数据基于用户的第一输入操作进行了更新,这样有利于保证在第二画面层上展示的三维画面与用户需求相符。
当然,根据场景数据更新信息和终端设备存储的三维场景数据,渲染得到相应的三维画面的方式并不局限于此,例如,在场景数据更新信息用于表征图3中的桌子的材质需要更新为材质Z的情况下,可以从三维场景数据中提取除了用于表征桌子的材质的数据之外的数据,并基于提取出的数据,以及用于表征桌子的材质为Z的数据,渲染得到相应的三维画面。
需要指出的是,在接收到来自终端设备的场景数据更新信息的情况下,为了向用户返回画面数据,服务器也需要根据场景数据更新信息和自身存储的三维场景数据,渲染得到相应的三维画面,具体过程可以参照上述针对终端设备的说明,在此不再赘述。
本公开的实施例中,第二画面层展示的三维画面与终端设备存储的三维场景数据关联,第一画面层展示的三维画面与服务器存储的三维场景数据关联,且终端设备存储的三维场景数据和服务器存储的三维场景数据会进行数据同步,这样能够保证第一画面层与第二画面层两者的画面同步,从而保证作用于第二画面层上的输入操作令第一画面层展示用户所需的三维画面,也即,终端设备最终呈现给用户的是用户所需的三维画面。
在一个可选示例中,该方法还包括:
在第一输入操作用于添加或选中目标模型的情况下,在对终端设备存储的三维场景数据进行更新之后,将第二画面层展示的目标模型置于锁定状态;
在接收到服务器返回的目标反馈信息的情况下,将目标模型切换为解锁状态;其中,目标反馈信息用于表征服务器根据场景数据更新信息,对服务器存储的三维场景数据进行了更新;
在目标模型处于锁定状态的情况下,终端设备不响应第二输入操作,否则,终端设备响应第二输入操作;其中,第二输入操作为在第二画面层上的,针对目标模型的输入操作。
这里,第二输入操作包括但不限于鼠标输入操作、键盘输入操作、触控输入操作等。具体地,第二输入操作可以为移动操作、拖拽操作、点击操作等。
假设第一输入操作用于选中图3中的桌子(此时桌子相当于目标模型),则终端设备可以将自身存储的三维场景数据中,用于表征桌子的选择状态的数据更新为已选中,终端设备还可以将第二画面层展示的桌子置于锁定状态,并周期性地判断是否接收到服务器返回的目标反馈信息。
如果判断结果为否,这说明服务器还未依据场景数据更新信息,进行三维场景数据的更新,此时,如果接收到用于修改桌子的材质、朝向等的输入操作(相当于第二输入操作)并对其进行响应,则有可能造成终端设备存储的三维场景数据与服务器存储的三维场景数据的差异化,因此,这种情况下,可以不响应第二输入操作,且保持桌子的锁定状态。
如果判断结果为是,这说明服务器已经进行了三维场景数据的更新,终端设备存储的三维场景数据与服务器存储的三维场景数据是一致的,那么,可以将桌子切换为解锁状态,以保证对第二输入操作的正常响应(即根据第二输入操作,确定场景数据更新信息并进行后续处理)。
可见,本公开的实施例中,通过目标模型的锁定和解锁,能够保证终端设备存储的三维场景数据与服务器存储的三维场景数据的一致性。
在一个可选示例中,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行数据同步,包括:
按照第一同步策略,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行模型数据的同步;
按照第二同步策略,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行相机数据的同步。
需要说明的是,对于相机数据而言,其具有前帧会被后帧覆盖的特性,所以相机数据变化过程中丢包无需进行处理,而模型数据不具有该特性。有鉴于此,本公开的实施例中,可以针对模型数据和相机数据,分别采用相应的同步策略进行同步,以实现终端设备存储的三维场景数据与服务器存储的三维场景数据的一致性。
在一个可选示例中,终端设备存储的三维场景数据包括N个模型的N个模型数据,服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
按照第一同步策略,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行模型数据的同步,包括:
获取N个模型与N个校验数据之间的对应关系;其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据;
将对应关系发送至服务器,并接收服务器根据对应关系返回的差量信息;其中,差量信息用于表征M个模型数据与N个模型数据的差异;
根据差量信息,向服务器发送N个模型数据中的相应差量数据。
这里,N可以为1、2、3、4、5或者其他取值,M也可以为1、2、3、4、5或者其他取值,N和M可以相同,也可以不同。
这里,预设的校验运算包括但不限于哈希运算、MD5(消息摘要算法第五版)运算等。
本公开的实施例中,针对终端设备存储的三维场景数据中的每个模型数据,可以对其进行哈希运算,以得到相应的哈希值,每个模型数据对应的哈希值即为该模型数据对应的校验数据。按照类似的方式,可以得到N个模型数据与N个校验数据之间的对应关系,N个模型数据与N个校验数据之间的对应关系可以通过网络发送至服务器,这样,服务器可以接收到来自终端设备的对应关系。
按照与上段中类似的方式,服务器还可以得到M个模型与M个校验数据之间的对应关系。之后,服务器可以将所接收的对应关系与所得到的对应关系进行比较,以确定差量信息。假设服务器所接收的对应关系如下面的表1所示,服务器所得到的对应关系如下面的表2所示,则可以确定包括桌子的ID的差量信息,并将包括桌子的ID的差量信息发送至终端设备。
模型 |
校验数据 |
桌子 |
哈希值1 |
吊灯 |
哈希值2 |
沙发 |
哈希值3 |
表1
表2
需要说明的是,由于差量信息包括桌子的ID,终端设备可以根据差量信息,向服务器返回自身存储的,桌子的模型数据(其相当于差量数据)。之后,服务器可以将自身存储的桌子的模型数据更新为所接收的模型数据,以实现服务器存储的M个模型数据的更新。
可见,本公开的实施例中,按照第一同步策略,通过终端设备与服务器之间的交互,能够实现模型数据的差量同步,从而能够保证同步效率。
当然,按照第一同步策略,进行模型数据的同步的方式并不局限于此,例如,按照第一同步策略,终端设备可以在设定的模型数据同步时间达到的情况下,将自身存储的各模型数据发送给服务器。
需要说明的是,按照第二同步策略,进行相机数据的同步的方式也可以有多种,例如,终端设备可以在设定的相机数据同步时间达到的情况下,将自身存储的相机数据发送给服务器;或者,终端设备可以在第一输入操作结束之后,将自身存储的相机数据发送给服务器。
下面对本公开的实施例从服务器的角度提供的画面更新方法进行说明。
图4是本公开再一示例性实施例提供的画面更新方法的流程示意图。图4所示的方法应用于服务器,图4所示的方法可以包括步骤401和步骤402,下面对各步骤分别进行说明。
步骤401,接收终端设备在三维模型展示场景下,根据用户的第一输入操作发送的场景数据更新信息;其中,在三维模型展示场景下,终端设备的显示屏上具有第一画面层和第二画面层,第二画面层覆盖第一画面层,第二画面层为非可见层,第一画面层为可见层,第一输入操作为在第二画面层上的输入操作;
步骤402,根据场景数据更新信息,向终端设备返回相应的画面数据,以供终端设备的第一画面层切换至展示相应三维画面。
这里,三维模型展示场景可以为云游戏场景、网上看房场景等。
这里,场景数据更新信息可以用于表征终端设备当前呈现给用户的三维画面需要发生何种变化,场景数据更新信息的可能情况参照上述步骤102中相应部分的说明即可,在此不再赘述。
在一个可选示例中,
根据场景数据更新信息,向终端设备返回相应的画面数据,包括:
根据场景数据更新信息和服务器存储的三维场景数据,渲染得到相应的三维画面;
向终端设备返回渲染得到的三维画面所对应的画面数据;
该方法还包括:
对服务器存储的三维场景数据与终端设备存储的三维场景数据进行数据同步。
在一个可选示例中,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行数据同步,包括:
按照第一同步策略,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行模型数据的同步;
按照第二同步策略,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行相机数据的同步。
在一个可选示例中,终端设备存储的三维场景数据包括N个模型的N个模型数据,服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
按照第一同步策略,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行模型数据的同步,包括;
接收终端设备发送的,N个模型与N个校验数据之间的对应关系;
获取M个模型与M个校验数据之间的对应关系;
将所接收的对应关系与所得到的对应关系进行比较,以确定差量信息;其中,差量信息用于表征M个模型数据与N个模型数据的差异;
将差量信息发送至终端设备;
接收终端设备根据差量信息返回的差量数据,并根据差量数据,更新M个模型数据;
其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据。
可见,本公开的实施例中,在三维模型展示场景下,终端设备可以向服务器提供相应的场景数据更新信息,服务器处可以执行渲染操作,终端设备依据服务器返回的画面数据做画面展示即可,因此,与现有技术相比,本公开的实施例能够降低对终端设备的性能要求。
下面结合图2、图5、图6,对本公开的实施例中的画面更新原理进行说明。
需要说明的是,终端设备可以具有解析能力和低模渲染能力;服务器可以具有高模渲染能力。在云游戏场景下,如图2所示,终端设备的显示屏上可以具有作为第一画面层的lay0和作为第二画面层的lay1,lay0也可以认为是高模层,lay1也可以认为是低模层。
如图5所示,可以在终端设备与服务器之间同步初始数据,终端设备和服务器均可以加载初始数据(相当于终端设备和服务器存储相同的三维场景数据)。这样,终端设备侧可以依据初始数据,加载低清模型,以在lay1展示相应的初始三维画面(假设其为画面1);服务器侧可以依据相同的初始数据,加载高清模型,并在渲染后,向终端设备返回初始画面数据,终端设备可以据此在lay0展示相应的初始三维画面(假设其为画面2)。这里,画面1和画面2的画面内容相同,但画面1的清晰度低于画面2。
在lay1展示画面1的情况下,当用户操作低模时,可以认为接收到了用户的第一输入操作,这时可以根据第一输入操作,确定相应的场景数据更新信息。
在第一输入操作为用户拖拽屏幕的操作的情况下,通过处理屏幕拖拽事件,可以计算出相机朝向的变化量,以得到包括相机的最终朝向的场景数据更新信息。在第一输入操作为用户点击屏幕以选中模型的操作的情况下,通过处理点击事件,可以计算出用户在低模层选中的模型的ID,并得到包括选中的模型的ID的场景数据更新信息。在第一输入操作为模型拖拽操作的情况下,通过处理模型拖拽事件,可以计算出模型的变化(大小、位置、旋转等),以得到能够表征模型变化后的大小、位置等的模型矩阵,并得到包括模型矩阵的场景数据更新信息。
在得到场景数据更新信息之后,终端设备可以利用场景数据更新信息,更新自身存储的三维场景数据,并且,终端设备还可以利用自身存储的,经更新后的三维场景数据,渲染得到相应的三维画面(假设其为画面3),终端设备可以将lay1展示的三维画面由画面1切换为画面3。
另外,在得到场景数据更新信息之后,终端设备还可以将场景数据更新信息通过网络发送给服务器,以使服务器据此对自身存储的三维场景数据进行更新。之后,服务器还可以根据自身存储的,经更新后的三维场景数据,渲染得到相应的三维画面(假设其为画面4),服务器可以将画面4压缩后发送至终端设备,终端设备可以在对其进行解压后,将lay0展示的三维画面由画面2切换为画面4。
需要说明的是,在第一输入操作为用户拖拽屏幕的操作的情况下,画面3和画面4均为相机朝向变更后的画面;在第一输入操作为用户点击屏幕以选中模型的操作的情况下,画面3和画面4中的被选中的模型处于选中态。
容易看出,用户的所有操作可以作用于低模层,由终端设备将用户对低模的操作进行处理,转化为模型数据更新信息,并通过网络传输给服务器;服务器可以接收模型数据更新信息,并将相应画面数据传输回终端设备。
可选地,如图6所示,在第一输入操作用于增加或者选中某一模型(相当于上文中的目标模型)的情况下,可以将该模型置于锁定状态,并向服务器发送相应的场景数据更新信息。在等待1秒之后,可以判断是否接收到来自服务器的回执(相当于上文中的目标反馈信息)。
如果判断结果为否,则该模型保持锁定状态。
如果判断结果为是,则该模型可以切换为解锁状态,这样,在接收到针对该模型的第二输入操作的情况下,终端设备会响应第二输入操作,例如,在第二输入操作为模型拖拽操作的情况下,lay0和lay1展示的三维画面中该模型的大小、位置等均会发生相应变化。
可见,本公开的实施例中,终端设备可以负责场景数据更新信息的确定,这样一来,服务器只需要负责画面渲染,而不需要确定场景数据更新信息,服务器的负载压力下降,服务器的研发成本也能够降低,并且,业务的更新迭代速度能够得到提升。
示例性装置
下面对本公开的实施例从终端设备的角度提供的画面更新装置进行说明。
图7是本公开一示例性实施例提供的画面更新装置的结构示意图。图7所示的装置应用于终端设备,包括第一接收模块701、确定模块702、传输模块703和第一处理模块704。
第一接收模块701,用于在三维模型展示场景下,接收用户的第一输入操作;其中,在三维模型展示场景下,终端设备的显示屏上具有第一画面层和第二画面层,第二画面层覆盖第一画面层,第二画面层为非可见层,第一画面层为可见层,第一输入操作为在第二画面层上的输入操作;
确定模块702,用于根据第一输入操作,确定相应的场景数据更新信息;
传输模块703,用于将场景数据更新信息发送至服务器,并接收服务器根据场景数据更新信息返回的画面数据;
第一处理模块704,用于控制第一画面层切换至展示画面数据对应的三维画面。
在一个可选示例中,该装置还包括:
获取模块,用于在确定场景数据更新信息之后,根据场景数据更新信息,渲染得到相应的三维画面;
第二处理模块,用于控制第二画面层切换至展示渲染得到的三维画面;
其中,渲染得到的三维画面的清晰度低于画面数据对应的三维画面。
在一个可选示例中,
获取模块,具体用于:
根据场景数据更新信息和终端设备存储的三维场景数据,渲染得到相应的三维画面;
该装置还包括:
第一数据同步模块,用于对终端设备存储的三维场景数据和服务器存储的三维场景数据进行数据同步。
在一个可选示例中,获取模块,包括:
更新单元,用于根据场景数据更新信息,对终端设备存储的三维场景数据进行更新;
获取单元,用于利用终端设备存储的,经更新后的三维场景数据,渲染得到相应的三维画面。
在一个可选示例中,该装置还包括:
第三处理模块,用于在第一输入操作用于添加或选中目标模型的情况下,在对终端设备存储的三维场景数据进行更新之后,将第二画面层展示的目标模型置于锁定状态;
第四处理模块,用于在接收到服务器返回的目标反馈信息的情况下,将目标模型切换为解锁状态;其中,目标反馈信息用于表征服务器根据场景数据更新信息,对服务器存储的三维场景数据进行了更新;
在目标模型处于锁定状态的情况下,终端设备不响应第二输入操作,否则,终端设备响应第二输入操作;其中,第二输入操作为在第二画面层上的,针对目标模型的输入操作。
在一个可选示例中,第一数据同步模块,包括:
第一同步单元,用于按照第一同步策略,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行模型数据的同步;
第二同步单元,用于按照第二同步策略,对终端设备存储的三维场景数据和服务器存储的三维场景数据进行相机数据的同步。
在一个可选示例中,终端设备存储的三维场景数据包括N个模型的N个模型数据,服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
第一同步单元,包括:
第一获取子单元,用于获取N个模型与N个校验数据之间的对应关系;其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据;
传输子单元,用于将对应关系发送至服务器,并接收服务器根据对应关系返回的差量信息;其中,差量信息用于表征M个模型数据与N个模型数据的差异;
第一发送子单元,用于根据差量信息,向服务器发送N个模型数据中的相应差量数据。
下面对本公开的实施例从服务器的角度提供的画面更新装置进行说明。
图8是本公开一示例性实施例提供的画面更新装置的结构示意图。图8所示的装置应用于服务器,包括第二接收模块801和处理模块802。
第二接收模块801,用于接收终端设备在三维模型展示场景下,根据用户的第一输入操作发送的场景数据更新信息;其中,在三维模型展示场景下,终端设备的显示屏上具有第一画面层和第二画面层,第二画面层覆盖第一画面层,第二画面层为非可见层,第一画面层为可见层,第一输入操作为在第二画面层上的输入操作;
处理模块802,用于根据场景数据更新信息,向终端设备返回相应的画面数据,以供终端设备的第一画面层切换至展示相应三维画面。
在一个可选示例中,
处理模块802,包括:
渲染单元,用于根据场景数据更新信息和服务器存储的三维场景数据,渲染得到相应的三维画面;
返回单元,用于向终端设备返回渲染得到的三维画面所对应的画面数据;
该装置还包括:
第二数据同步模块,用于对服务器存储的三维场景数据与终端设备存储的三维场景数据进行数据同步。
在一个可选示例中,第二数据同步模块,包括:
第三同步单元,用于按照第一同步策略,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行模型数据的同步;
第四同步单元,用于按照第二同步策略,对服务器存储的三维场景数据与终端设备存储的三维场景数据进行相机数据的同步。
在一个可选示例中,终端设备存储的三维场景数据包括N个模型的N个模型数据,服务器存储的三维场景数据包括M个模型的M个模型数据,M和N均为大于0的整数;
第三同步单元,包括:
接收子单元,用于接收终端设备发送的,N个模型与N个校验数据之间的对应关系;
第二获取子单元,用于获取M个模型与M个校验数据之间的对应关系;
确定子单元,用于将所接收的对应关系与所得到的对应关系进行比较,以确定差量信息;其中,差量信息用于表征M个模型数据与N个模型数据的差异;
第二发送子单元,用于将差量信息发送至终端设备;
处理子单元,用于接收终端设备根据差量信息返回的差量数据,并根据差量数据,更新M个模型数据;
其中,任一模型数据对应的校验数据为对本模型数据进行预设的校验运算后得到的数据。
示例性电子设备
下面,参考图9来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图9图示了根据本公开实施例的电子设备90的框图。需要说明的是,电子设备90既可能是上文中的终端设备,也可能是上文中的服务器。
如图9所示,电子设备90包括一个或多个处理器91和存储器92。
处理器91可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备90中的其他组件以执行期望的功能。
存储器92可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器91可以运行所述程序指令,以实现上文所述的本公开的各个实施例的画面更新方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备90还可以包括:输入装置93和输出装置94,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在电子设备90是第一设备或第二设备时,该输入装置93可以是麦克风或麦克风阵列。在电子设备90是单机设备时,该输入装置93可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置93还可以包括例如键盘、鼠标等等。
该输出装置94可以向外部输出各种信息。该输出装置94可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图9中仅示出了该电子设备90中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备90还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的画面更新方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的画面更新方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。