一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

场景处理方法、装置及电子设备与流程

2022-03-26 13:59:45 来源:中国专利 TAG:


1.本技术涉及虚拟现实技术领域,尤其涉及一种场景处理方法、装置及电子设备。


背景技术:

2.随着虚拟技术不断发展,用户基于虚拟技术自主创作内容的需求越来越多,为方便用户查看自主创作内容,需要持久化保存用户创造内容。由于用户的创作能力有限,用户一般会采用基础素材,对基础素材进行调整,产生对应的自主创作内容。现有基础素材操作复杂、数据处理难度大,导致虚拟场景编辑过程存在编辑处理效率比较低的问题。


技术实现要素:

3.为了解决上述技术问题,本技术实施例提供了一种场景处理方法、装置及电子设备。
4.第一方面,本技术实施例提供了一种场景处理方法,所述方法包括:
5.从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;
6.根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;
7.对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息;
8.根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。
9.第二方面,本技术实施例提供了一种场景处理装置,所述装置包括:
10.获取模块,用于从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;
11.第一生成模块,用于根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;
12.设置模块,用于对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息;
13.第二生成模块,用于根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。
14.第三方面,本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的场景处理方法。
15.第四方面,本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的场景处理方法。
16.上述本技术提供的场景处理方法、装置及电子设备,从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息;根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。
这样,可以通过简单的操作步骤得到场景嵌套结构,对所述场景嵌套结构的第一目标节点素材设置对应的节点信息,从而可以根据所述场景嵌套结构、各第一目标节点素材的节点信息生成场景文件,提高虚拟场景编辑效率。
附图说明
17.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对本技术保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
18.图1示出了本技术实施例提供的场景处理方法的一流程示意图;
19.图2示出了本技术实施例提供的场景处理方法的另一流程示意图;
20.图3示出了本技术实施例提供的素材配置表的一示意图;
21.图4示出了本技术实施例提供的场景处理装置的一结构示意图。
具体实施方式
22.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
23.通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.在下文中,可在本技术的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
25.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
26.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
27.实施例1
28.本公开实施例提供了一种场景处理方法。
29.具体的,参见图1,场景处理方法包括:
30.步骤s101,从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息。
31.在本实施例中,素材库包括用于构建虚拟场景的初始素材,初始素材可以为三维模型,三维模型可以为通过三维建模工具软件生成的模型,三维模型可以为模拟现实世界
的实体而产生的模型,也可以为虚构物体的模型,在此不做限制。举例来说,素材可以包括建筑、动物、植物、人物等。为便于对素材库的素材进行高效管理,可以设置素材配置表,素材配置表包括素材标识、引用或路径,通过素材标识可以在素材配置表中查询到对应的引用或路径,从而根据引用或路径读取到对应的素材。
32.请参阅图2,图2所示为素材配置表的一示意图,该素材配置表中包括素材标识及路径,素材标识为素材的唯一编码,素材的唯一编码有可以称为素材id,路径为素材的存储路径或引用路径,在图2中,素材标识包括建筑001、建筑002、角色001、物件001,建筑001的路径为“/assets/art/building/building001.prefab”、建筑002的路径为“/assets/art/building/building002.prefab”、角色001的路径为“/assets/art/characters/characters001.prefab”、物件001的路径为“/assets/art/props/props001.prefab”。通过各素材标识对应的路径可以获取对应的素材。在图2中仅仅用作举例说明,在素材配置表中还可以包括其他素材及其对应的路径,在此不做限制。
33.举例来说,通过素材标识“建筑001”从素材配置表中查询到其对应的路径为“/assets/art/building/building001.prefab”,通过路径“/assets/art/building/building001.prefab”在素材库中读取“建筑001”对应的素材。
34.在本实施例中,预设嵌套结构为用于建立素材拓扑结构的数据结构,预设嵌套结构可以包括树形嵌套结构和平铺嵌套结构,也可以为其他嵌套结构,在此不做限制。
35.举例来说,若预设嵌套结构为树形嵌套结构,则可以将多个初始素材摆放在树形嵌套结构的根节点的位置,将其他初始素材摆放在根节点的下一级子节点的位置上,依次在树形嵌套结构的各节点的位置上摆放对应的初始素材,完成对树形嵌套结构的所有节点的位置摆放上初始素材,从而完成对场景中各素材的摆放处理。
36.步骤s102,根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构。
37.在本实施例中,所述预设嵌套结构的各节点之间存在级联关系,则各初始素材的摆放位置信息可以用于确定各初始素材在预设嵌套结构的具体节点位置。例如,若预设嵌套结构为树形嵌套结构,则各初始素材的摆放位置信息为各初始素材在树形嵌套结构的节点位置。举例来说,将动物素材、人物素材、建筑素材摆放在预设嵌套结构的对应节点位置,可以得到人物在建筑傍边喂动物的场景嵌套结构。
38.步骤s103,对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息。
39.在本实施例中,场景嵌套结构包括多个节点素材,可以根据需求对一些节点素材进行设置,从而使得一些节点素材可以进行变体,丰富素材能够表达的含义,丰富场景文件的表达内容。具体来说,让节点素材进行变体可以有多种方式,例如,可以对节点素材的形态进行调整,也可以增加或删除节点素材的预设动态渲染功能,使得节点素材实现动态调整。具体来说,可以根据预设场景需求,从场景嵌套结构中选择一个或多个节点素材作为第一目标节点素材,对第一目标节点素材设置节点信息,该节点信息包括变换信息和/或组件对象配置信息,变换信息为用于对节点素材的形态进行调整的信息,例如,变换信息包括节点素材的平移信息、放大信息、缩小信息、旋转信息等。组件对象配置信息为用于增加或减少节点素材的预设动态渲染功能的配置信息。
40.具体的,所述节点信息包括变换信息,所述对所述场景嵌套结构的至少一个第一
目标节点素材设置对应的节点信息,包括:
41.对所述场景嵌套结构的至少一个第一目标节点素材设置所述变换信息,所述变换信息用于调整对应的第一目标节点素材的形态。
42.举例来说,若所述变换信息为放大倍数信息,则可以根据放大倍数信息实现对节点素材的放大处理,使得放大处理后的素材能够更能清晰地展示素材的细节信息。
43.具体的,所述节点信息包括组件对象配置信息,所述对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息,包括:
44.对所述场景嵌套结构的至少一个第一目标节点素材设置所述组件对象配置信息,所述组件对象配置信息用于增加或删除对应的第一目标节点素材的预设动态渲染功能。
45.在本实施例中,组件对象是对于引擎开发而言的概念,通常可以称为component,组件对象主要用于完成预设任务功能,对于本实施例中的素材库中的素材来说,可以在各个素材上挂载多个组件对象,多个组件对象组合起来可以完成一个素材的具体功能。例如,一个素材被其他素材触碰,该被触碰的素材会出现破碎效果,实现该破碎效果功能的组件对象可以称为破碎组件对象(blastcomponent)。
46.在本实施例中,实现增加或删除对应的第一目标节点素材的预设动态渲染功能,可以采用以下方式:
47.通过对第一目标节点素材的渲染模型的渲染子功能设置激活信息或隐藏信息,来改变素材的形态,其中,激活信息用于激活对应的渲染子功能,启动渲染子功能执行对应的渲染处理过程。隐藏信息用于隐藏对应的渲染子功能,禁止该渲染子功能执行对应的渲染处理过程。在第一目标节点素材的第二预设组件对象中记录激活信息或隐藏信息,并将激活信息或隐藏信息与该第一目标节点素材进行关联存储,便于后续进行场景还原。组件对象配置信息可以为所述激活信息和/或所述隐藏信息。
48.在本实施例中,实现增加或删除对应的第一目标节点素材的预设动态渲染功能,还可以采用以下方式:
49.采用第三方数据库提供的预设动态渲染功能,对第一目标节点素材增加第三方数据库提供的预设动态渲染功能。例如,预设动态渲染功能可以为爆破(blast)功能,具体的,可以为第三方库可以为破碎库,破碎库可以提供爆破功能,可以将各个素材生成一堆破碎的小物体,采用区别与第二预设组件对象的其他预设组件对象记录生成破碎小物体所需要的破碎信息。在本实施例中,所述破碎信息为破碎的随机种子。通过记录破碎的随机种子,可以还原节点素材的变体过程。组件对象配置信息可以为所述破碎信息。
50.需要补充说明的是,一般而言,只有用一种确定性的在多次过程中生成同样的结果的库,才有意义。但是应对于不同的需求,爆破(blast)功能虽然产生的随机结果有可能不一致,仍可以达到节点素材变体的目的。
51.在本实施例中,所述场景处理方法还包括:
52.将所述变换信息保存在所述第一目标节点素材的第一预设组件对象中;
53.将所述组件对象配置信息保存在所述第一目标节点素材的第二预设组件对象中。
54.在本实施例中,将变换信息保存在第一预设组件对象中,将组件对象配置信息保存在第二预设组件对象中,可以使得第一目标节点素材自身对节点信息进行控制,不依赖于其他动态保存方案。
55.步骤s104,根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。
56.具体来说,在制作场景时,若预设嵌套结构为树形嵌套结构,以树性数据结构记录各初始素材的摆放位置,操作记录所修改的树形嵌套结构就是需要保存的场景嵌套结果。举例来说,可以从树形嵌套结构的根节点开始保存,也可以从树形嵌套结构的子节点开始保存,只需要保证保存后的场景文件可以进行解析得到对应的虚拟场景即可。
57.在本实施例中,可以对场景文件进行保存,场景文件的格式可以为json格式,也可以为其他格式,需要能够描述场景嵌套结果的信息即可,在此不做限制。
58.在本实施例中,请参阅图3,步骤s104之后,所述场景处理方法还包括:
59.步骤s105,解析所述场景文件,以得到所述场景嵌套结构及各所述第一目标节点素材的节点信息。
60.在本实施例中,解析场景文件可以为按照预设嵌套结构对场景文件的各个节点进行解析,从而获取场景文件中各个节点的素材标识,在节点素材为第一目标节点素材时,还需要解析第一目标节点素材对应的节点信息,根据素材标识确定各个节点的节点素材,将节点素材摆放在预设嵌套结构对应的节点位置上,得到场景嵌套结构。
61.步骤s106,递归查询所述场景嵌套结构的各所述第一目标节点素材及第二目标节点素材,所述第二目标节点素材为所述场景嵌套结构中不具有节点信息的节点素材。
62.在本实施例中,对场景嵌套结构的各节点素材进行递归查询,可以通过递归的方式走遍场景嵌套结构的全部节点,获取场景嵌套结构的各节点的素材,直至递归查询完场景嵌套结构的所有节点的素材,这样,可以避免节点素材遗漏,还原查找到场景嵌套结构的所有节点素材。
63.在本实施例中,对场景文件进行解析后,在得到各第一目标节点素材、各第二目标节点素材之后,可以还原各第一目标节点素材、各第二目标节点素材挂载对应的一个或多个组件对象,还可以还原各第一目标节点素材、各第二目标节点素材的软关联数据,软关联数据是指通过名称、特定的标记查询到的关联数据。
64.在本实施例中,步骤s106可以包括以下步骤:
65.递归查询所述场景嵌套结构的各节点的素材标识;
66.按照所述素材标识从素材库中查询对应的各所述第一目标节点素材和各所述第二目标节点素材。
67.请再次图2,若场景嵌套结构的各节点的素材标识包括建筑001、建筑002、角色001、物件001,角色001,则分别根据建筑001、建筑002、角色001、物件001,角色001的路径“/assets/art/building/building001.prefab”、“/assets/art/building/building002.prefab”、“/assets/art/characters/characters001.prefab”、“/assets/art/props/props001.prefab”获取对应的建筑001素材、建筑002素材、角色001素材、物件001素材,若建筑001素材、建筑002素材具有对应的节点信息,则建筑001素材、建筑002为第一目标素材节点,若角色001素材、物件001素材不具有对应的节点信息,则角色001素材、物件001素材为第二目标素材节点。
68.步骤s107,根据所述第一目标节点素材的节点信息对所述第一目标节点素材进行调整,以得到节点素材变体。
69.在本实施例中,步骤s107可以包括以下步骤:
70.若所述第一目标节点素材的节点信息包括所述变换信息和/或所述组件对象配置信息,则根据所述变换信息对所述节点素材进行形态调整,和/或,根据所述组件对象配置信息增加或者删除所述第一目标节点素材的预设动态渲染功能,以得到节点素材变体。
71.在本实施例中,变换信息包括节点素材的平移信息、放大信息、缩小信息、旋转信息等。组件对象配置信息为用于增加或减少节点素材的预设动态渲染功能的配置信息。对于一个第一目标节点素材,可以同时设置变换信息和组件对象配置信息,也可以只设置变换信息,或者只设置组件对象配置信息,根据用户需求确定,在此不做限制。
72.举例来说,若所述变换信息为平移信息,则可以根据平移信息实现对节点素材的平移处理,使得平移处理后的第一目标节点素材能够处于场景中的合适位置。若组件对象配置信息为激活信息,则激活第一目标节点素材对应的渲染子功能,启动渲染子功能执行对应的渲染处理过程,完善第一目标节点素材的渲染效果。
73.若组件对象配置信息为爆破功能的破碎信息,则第一目标节点素材启动爆破功能,根据破碎信息对第一目标节点素材实现动态爆破功能,还原第一目标节点素材的爆破变体过程。
74.步骤s108,将所述节点素材变体和所述第二目标节点素材放置在所述场景嵌套结构的对应节点,以生成虚拟场景。
75.在虚拟场景生成后,可以通过脚本控制在虚拟场景中有相关对象完成对应的场景操作,例如,虚拟场景中包括人物对象,则可以控制人物对象完成种一朵小草、放一只小羊,控制小羊去吃小草,丰富虚拟场景的内容。这样,可以快速还原生成用户自定义的虚拟场景,提高内容创作的便捷度和操作效率。
76.本实施例中,可以基于素材库的素材构建各种虚拟场景,支持对素材库中的素材进行变体,丰富素材内容,持久化保存用户创造的内容,提高场景多样化的能力,虚拟场景可以应用于编程教学、游戏开发等多领域的场景设计,提高虚拟场景创建效果。
77.本实施例提供的场景处理方法,从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息;根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。这样,可以通过简单的操作步骤得到场景嵌套结构,对所述场景嵌套结构的第一目标节点素材设置对应的节点信息,从而可以根据所述场景嵌套结构、各第一目标节点素材的节点信息生成场景文件,提高虚拟场景编辑效率。
78.实施例2
79.此外,本公开实施例提供了一种场景处理装置。
80.具体的,请参阅图4,场景处理装置400包括:
81.获取模块401,用于从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;
82.第一生成模块402,用于根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;
83.设置模块403,用于对所述场景嵌套结构的至少一个第一目标节点素材设置对应
的节点信息;
84.第二生成模块404,用于根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。
85.在本实施例中,所述节点信息包括变换信息,设置模块403,还用于对所述场景嵌套结构的至少一个第一目标节点素材设置所述变换信息,所述变换信息用于调整对应的第一目标节点素材的形态。
86.在本实施例中,所述节点信息包括组件对象配置信息,设置模块403,还用于对所述场景嵌套结构的至少一个第一目标节点素材设置所述组件对象配置信息,所述组件对象配置信息用于增加或删除对应的第一目标节点素材的预设动态渲染功能。
87.在本实施例中,场景处理装置400还包括:
88.保存模块,用于将所述变换信息保存在所述第一目标节点素材的第一预设组件对象中;
89.将所述组件对象配置信息保存在所述第一目标节点素材的第二预设组件对象中。
90.在本实施例中,场景处理装置400还包括:
91.解析模块,用于解析所述场景文件,以得到所述场景嵌套结构及各所述第一目标节点素材的节点信息;
92.查询模块,用于递归查询所述场景嵌套结构的各所述第一目标节点素材及第二目标节点素材,所述第二目标节点素材为所述场景嵌套结构中不具有节点信息的节点素材;
93.调整模块,用于根据所述第一目标节点素材的节点信息对所述第一目标节点素材进行调整,以得到节点素材变体;
94.生成模块,用于将所述节点素材变体和所述第二目标节点素材放置在所述场景嵌套结构的对应节点,以生成虚拟场景。
95.在本实施例中,查询模块,还用于递归查询所述场景嵌套结构的各节点的素材标识;
96.按照所述素材标识从素材库中查询对应的各所述第一目标节点素材和各所述第二目标节点素材。
97.在本实施例中,调整模块,还用于若所述第一目标节点素材的节点信息包括所述变换信息和/或所述组件对象配置信息,则根据所述变换信息对所述节点素材进行形态调整,和/或,根据所述组件对象配置信息增加或者删除所述第一目标节点素材的预设动态渲染功能,以得到节点素材变体。
98.本实施例提供场景处理装置400可以实现实施例1所提供的场景处理方法,为避免重复,在此不再赘述。
99.本实施例提供的场景处理装置,从素材库获取多个初始素材,按照预设嵌套结构确定各初始素材的摆放位置信息;根据各初始素材及各初始素材的摆放位置信息生成场景嵌套结构;对所述场景嵌套结构的至少一个第一目标节点素材设置对应的节点信息;根据所述场景嵌套结构、各所述第一目标节点素材的节点信息生成场景文件。这样,可以通过简单的操作步骤得到场景嵌套结构,对所述场景嵌套结构的第一目标节点素材设置对应的节点信息,从而可以根据所述场景嵌套结构、各第一目标节点素材的节点信息生成场景文件,提高虚拟场景编辑效率。
100.实施例3
101.此外,本公开实施例提供了一种电子设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述方法实施例1所提供的场景处理方法。
102.本实施例提供的电子设备可以实现实施例1所示的场景处理方法,为避免重复,在此不再赘述。
103.实施例4
104.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序在所述处理器上运行时执行上述方法实施例1所提供的场景处理方法。
105.本实施例提供的电子设备可以实现实施例1所提供的场景处理方法,为避免重复,在此不再赘述。
106.在本实施例中,计算机可读存储介质可以为只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
107.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
108.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
109.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献