1.本公开涉及计算机技术领域,尤其涉及一种虚拟场景制作方法、虚拟场景制作装置、计算机可读存储介质与电子设备。
背景技术:2.在虚拟地形上创建各种虚拟场景,是虚拟场景制作过程中的一个重要环节,不同的虚拟场景在虚拟地形上的分布状态各异,针对呈块状分布的虚拟场景来说,例如农田、村落、鱼塘等虚拟场景,在制作前通常需要先明确这些虚拟场景的块状分布形态,以便在特定位置生成特定的虚拟场景。
3.相关技术中,虚拟场景制作人员通常需要预先在地形上手动绘制出虚拟场景的块状分布形态,实现起来较为耗时、费力,在一定程度上影响到了虚拟场景制作的效率。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:5.本公开提供了一种虚拟场景制作方法、虚拟场景制作装置、计算机可读存储介质与电子设备,进而至少在一定程度上解决相关技术中场景制作效率较低的问题。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.根据本公开的第一方面,提供一种虚拟场景制作方法,所述方法包括:从虚拟地形中提取待制作区域,并将所述待制作区域切分为多个待制作子区域,所述多个待制作子区域间存在区域间隙;将所述多个待制作子区域投射至所述虚拟地形中,以在所述待制作子区域中渲染目标虚拟场景。
8.在本公开的一种示例性实施例中,所述从虚拟地形中提取待制作区域,包括:响应作用于所述虚拟地形的区域选取操作,确定位于所述虚拟地形中的待制作区域;获取所述待制作区域在所述虚拟地形中的位置信息,并根据所述待制作区域在所述虚拟地形中的位置信息,从所述虚拟地形对应的网格模型中提取所述待制作区域。
9.在本公开的一种示例性实施例中,在根据从所述虚拟地形对应的网格模型中提取所述待制作区域之前,所述方法还包括:将位于所述虚拟地形中的待制作区域对应的地形细节特征进行模糊化。
10.在本公开的一种示例性实施例中,所述将所述待制作区域切分为多个待制作子区域,包括:将所述待制作区域进行切分处理,得到多个块状区域,并在所述多个块状区域之间生成区域间隙;将各所述块状区域分别进行切分处理,得到多个待制作子区域,并在所述多个待制作子区域之间生成区域间隙。
11.在本公开的一种示例性实施例中,所述将所述待制作区域进行切分处理,得到多个块状区域,包括:基于所述待制作区域的面积,确定块状区域数量;将所述待制作区域切
分成与所述块状区域数量相匹配的块状区域。
12.在本公开的一种示例性实施例中,所述将所述待制作区域切分成与所述块状区域数量相匹配的块状区域,包括:在所述待制作区域中随机生成与所述块状区域数量相匹配的样点;根据各所述样点在所述待制作区域中位置,确定区域切分线,所述区域切分线将各所述样点隔离;采用所述区域切分线将所述待制作区域进行切分,得到多个块状区域。
13.在本公开的一种示例性实施例中,所述区域切分线由连接相邻样点的线段的垂直平分线组成。
14.在本公开的一种示例性实施例中,在确定区域切分线后,所述方法还包括:将所述区域切分线从直线转换为曲线。
15.在本公开的一种示例性实施例中,所述将所述区域切分线从直线转换为曲线,包括:将所述待制作区域用预设多边形进行填充,得到所述待制作区域中各预设多边形的交点;从所述各预设多边形的交点中提取位于所述区域切分线周边的交点,并基于位于所述区域切分线周边的交点,形成弯曲状的区域切分线。
16.在本公开的一种示例性实施例中,所述在所述多个块状区域之间生成区域间隙,包括:将所述多个块状区域之间的共享边分别进行模糊和删除处理,以使所述多个块状区域之间生成区域间隙。
17.在本公开的一种示例性实施例中,所述在所述多个待制作子区域之间生成区域间隙,包括:将所述多个待制作子区域之间的共享边转化为独立边;缩小所述多个待制作子区域,以使所述多个待制作子区域之间生成区域间隙。
18.在本公开的一种示例性实施例中,所述方法还包括:将各所述待制作子区域的边缘进行重采样,得到各所述待制作子区域的边缘采样点;将各所述待制作子区域的边缘采样点分别添加属性噪声,以使待制作子区域的边缘采样点不规则排列;将各所述待制作子区域的边缘采样点分别进行合并,得到各所述待制作子区域的合并采样点;将各所述待制作区域的相邻合并采样点之间的连线进行平滑处理,以使各所述待制作子区域的边缘产生弧度。
19.在本公开的一种示例性实施例中,在将所述多个待制作子区域投射至所述虚拟地形中后,所述方法还包括:对投射至所述虚拟地形上的所述多个待制作子区域进行变形处理。
20.在本公开的一种示例性实施例中,在将所述多个待制作子区域投射至所述虚拟地形中后,所述方法还包括:调节所述多个待制作子区域的地形高度。
21.根据本公开的第二方面,提供一种虚拟场景制作装置,其特征在于,所述装置包括:区域划分模块,用于从虚拟地形中提取待制作区域,并将所述待制作区域切分为多个待制作子区域,所述多个待制作子区域间存在区域间隙;区域投射模块,用于将所述多个待制作子区域投射至所述虚拟地形中,以在所述待制作子区域中渲染目标虚拟场景。
22.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述虚拟场景制作方法。
23.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述虚拟场景制作方法。
24.本公开的技术方案具有以下有益效果:
25.上述虚拟场景制作过程中,从虚拟地形中提取待制作区域,并将待制作区域切分为多个待制作子区域,多个待制作子区域间存在区域间隙;将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。一方面,实现了制作区域的自动划分,提升了场景制作的效率。另一方面,从虚拟地形中提取待制作区域,将待制作区域划分后,再投射至虚拟地形中,使得所划分的待制作区域能够较好的适配于虚拟地形。
26.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
27.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1示出本示例性实施方式中一种虚拟场景制作方法的流程图;
29.图2a示出本示例性实施方式中一种虚拟地形的实例图;
30.图2b示出本示例性实施方式中一种虚拟地形中选取待制作区域的实例图;
31.图2c示出本示例性实施方式中一种从虚拟地形对应的网格模型中提取待制作区域的实例图;
32.图2d示出本示例性实施方式中一种将待制作区域的地形边缘进行模糊处理的实例图;
33.图2e示出本示例性实施方式中一种将待制作区域的地形高度进行模糊处理的实例图;
34.图3示出本示例性实施方式中一种将待制作区域切分为多个待制作子区域的流程图;
35.图4a示出本示例性实施方式中一种待制作区域中样点分布的实例图;
36.图4b示出本示例性实施方式中一种区域切分线分布的实例图;
37.图5a示出本示例性实施方式中一种用预设多边形填充待制作区域的实例图;
38.图5b示出本示例性实施方式中一种待制作区域中预设多边形的交点分布的实例图;
39.图5c示出本示例性实施方式中一种弯曲状的区域切分线的实例图;
40.图5d示出本示例性实施方式中一种在多个块状区域之间生成区域间隙的实例图;
41.图6a出本示例性实施方式中提供了一种待制作子区域分布的实例图;
42.图6b出本示例性实施方式中提供了一种在多个待制作子区域之间生成区域间隙的实例图;
43.图6c出本示例性实施方式中提供了一种将各待制作子区域的边缘重采样的实例图;
44.图6d出本示例性实施方式中提供了一种将各待制作子区域的边缘采样点添加属性噪声的实例图;
45.图6e出本示例性实施方式中提供了一种将边缘采样点进行合并和平滑处理后的待制作子区域的实例图;
46.图7a出本示例性实施方式中提供了一种将多个待制作子区域投射至虚拟地形中的实例图;
47.图7b出本示例性实施方式中提供了一种调节待制作子区域的地形高度的实例图;
48.图8示出本示例性实施方式中一种在虚拟地形上进行区域划分的流程图;
49.图9示出本示例性实施方式中一种虚拟场景制作装置的结构框图;
50.图10示出本示例性实施方式中一种用于实现上述虚拟场景制作方法的电子设备。
具体实施方式
51.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
52.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
53.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
54.相关技术中,虚拟场景制作人员通常需要预先在地形上手动绘制出虚拟场景的块状分布形态,进而基于所绘制的块状分布形态,进行进一步的场景制作。由于手动绘制受人为因素影响较大,难以确保块状分布形态所呈现出的艺术效果,而且实现起来耗时、费力且效率较低。
55.鉴于上述一个或多个问题,本公开的示例性实施方式提供一种虚拟场景制作方法,可应用于呈块状分布的虚拟场景的制作过程中。本公开中的虚拟场景制作方法即可以部署于主流引擎中,也可以部署于自研引擎中,这里对该虚拟场景制作方法所部署的平台不做具体限定。
56.本公开的示例性实施方式提供一种虚拟场景制作方法,如图1所示,具体包括以下步骤s110至步骤s120:
57.步骤s110,从虚拟地形中提取待制作区域,并将待制作区域切分为多个待制作子区域,多个待制作子区域间存在区域间隙;
58.步骤s120,将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。
59.上述虚拟场景制作过程中,一方面,实现了制作区域的自动划分,提升了场景制作的效率。另一方面,从虚拟地形中提取待制作区域,将待制作区域划分后,再投射至虚拟地形中,使得所划分的待制作区域能够较好的适配于虚拟地形。
60.下面分别对图1中的每个步骤进行具体说明。
61.步骤s110,从虚拟地形中提取待制作区域,并将待制作区域切分为多个待制作子区域,多个待制作子区域间存在区域间隙。
62.虚拟地形指的是在数据处理系统中产生的地表或地面系统,描述着地面的高低起伏状态,如图2a中所示的虚拟地形。待制作区域指的是虚拟地形中所需部署某一块状虚拟场景的区域。
63.在一种可选的实施方式中,步骤s110中从虚拟地形中提取待制作区域,具体可通过以下步骤来实现:响应作用于虚拟地形的区域选取操作,确定位于虚拟地形中的待制作区域;获取待制作区域在虚拟地形中的位置信息,并根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域。
64.区域选取操作指的是用户在虚拟地形表面所选取的整块区域。示例性的,用户可以在虚拟地形上绘制封闭的区域轮廓,以确定位于虚拟地形中的待制作区域,或从多个候选制作区域中选取所要处理的区域作为待制作区域。示例性的,如图2b所示,可在虚拟地形中选取区域201作为待制作区域。
65.在确定虚拟地形中的待制作区域后,可以将虚拟地形转化为网格模型,以便于从虚拟地形对应的网格模型中提取待制作区域。以houdini三维计算机图形软件为例,可以通过houdini软件中的转换高度场节点(convert heightfield),将虚拟地形转换为网络模型,进而从虚拟地形对应的网格模型中提取待制作区域。其中houdini是一种创建高级视觉效果的有效工具。
66.其中,待制作区域在虚拟地形中的位置信息可以包括待制作区域的轮廓顶点在中虚拟地形的二维俯视平面中的位置。
67.在根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域时,可以从虚拟地形对应的网格模型中删除除待制作区域以外的其他部分,以提取出待制作区域。以houdini三维计算机图形软件为例,可以通过houdini软件中的删除节点(blast)从虚拟地形对应的网格模型中提取待制作区域。示例性的,从虚拟地形对应的网格模型中提取待制作区域后,可得到如图2c中所示的待制作区域202。
68.上述步骤中,从虚拟地形中选取并提取待制作区域,能够使得所处理的待制作区域的轮廓、大小、所在位置等特征与虚拟地形的契合度较高。从虚拟地形对应的网格模型中提取待制作区域,以便能够快速对待制作区域中的顶点进行定位,进而提升待制作区域切分的精细化程度。
69.在一种可选的实施方式中,在根据从虚拟地形对应的网格模型中提取待制作区域之前,还可以将位于虚拟地形中的待制作区域对应的地形细节特征进行模糊化。
70.地形细节特征可包括待制作区域对应的地形边缘、地形高度等特征。如图2d所示,提供了一种将待制作区域的地形边缘进行模糊处理的实例图;如图2e所示,提供了一种将
待制作区域的地形高度进行模糊处理的实例图。
71.以houdini三维计算机图形软件为例,具体可以通过houdini软件中的高度场模糊节点(heightfield_blur)对待制作区域对应的地形细节特征进行模糊化。
72.上述步骤中,通过将位于虚拟地形中的待制作区域的边缘以及地形高度信息进行模糊处理,以使得被待制作区域覆盖的虚拟地形的高低起伏状态因模糊处理而变平,以便于将待制作区域所覆盖的地形平整化,使得待制作区域能够进一步实现在二维平面上的切分,进而提升区域切分效率。
73.在一种可选的实施方式中,上述将待制作区域切分为多个待制作子区域,如图3所示,具体可通过以下步骤来实现:
74.步骤s310,将待制作区域进行切分处理,得到多个块状区域,并在多个块状区域之间生成区域间隙;
75.步骤s320,将各块状区域分别进行切分处理,得到多个待制作子区域,并在多个待制作子区域之间生成区域间隙。
76.需要说明的是,这里的块状区域是将待制作区域进行第一次切分处理后所得到的区域。其中,块状区域之间的区域间隙以及待制作子区域之间的区域间隙可以用于渲染虚拟道路。
77.图3所示的步骤中,通过两次切分处理,将待制作区域划分成多个区域,以便实现较为精细的切分处理。
78.具体的,在步骤s310中,将待制作区域进行切分处理,得到多个块状区域,并在多个块状区域之间生成区域间隙。
79.在一种可选的实施方式中,步骤s310中将待制作区域进行切分处理,得到多个块状区域,具体可通过以下步骤来来实现:基于待制作区域的面积,确定块状区域数量;将待制作区域切分成与块状区域数量相匹配的块状区域。
80.块状区域数量可与待制作区域的面积之间呈现正相关关系,即待制作区域的面积越大,块状区域数量越多,以便均衡块状区域的大小,避免的单个块状区域过大或过小。
81.需要说明的是,在基于待制作区域的面积,确定块状区域数量之前,可预先获取该待制作区域的面积,以便基于待制作区域的面积属性,确定块状区域数量。以houdini三维计算机图形软件为例,待制作区域的面积可以通过houdini软件中的测量节点(measure)进行获取。
82.在一种可选的实施方式中,在确定块状区域数量之后,上述将待制作区域切分成与块状区域数量相匹配的块状区域,具体可通过以下步骤来实现:在待制作区域中随机生成与块状区域数量相匹配的样点;根据各样点在待制作区域中位置,确定区域切分线,区域切分线将各样点隔离;采用区域切分线将待制作区域进行切分,得到多个块状区域。
83.示例性的,如图4a所示,提供了一种待制作区域中样点分布的实例图,其中包含了4个样点。这里的样点指的是用于定位区域切分线的位置的点,可以位于待制作区域中的任一位置。区域切分线指的是将该待制作区域进行第一次切分处理的分割线。
84.上述步骤中,通过采用区域切分线将各个样点进行隔离,可使得每个块状区域中均包含一个样点,以便通过所抛撒的样点的数量进一步控制所划分的块状区域的个数,能够有效避免所切分的块状区域数过多或过少导致最终所得到待制作子区域分布不均衡。
85.可选的,区域切分线可以由连接相邻样点的线段的垂直平分线组成。示例性的,如图4b所示,提供了一种区域切分线分布的实例图。
86.以houdini三维计算机图形软件为例,可以通过houdini软件中的破碎节点(voronoi fracture),确定区域切分线。
87.在一种可选的实施方式中,在确定区域切分线后,还可以将区域切分线从直线转换为曲线,使得所得到的块状区域形态更加的自然。
88.此外,块状区域之间的间隙可用于渲染虚拟道路,通过将区域切分线从直线转为曲线,可使得虚拟道路变的蜿蜒曲折,使其最终呈现的视觉效果更加的自然。
89.在一种可选的实施方式中,上述将区域切分线从直线转换为曲线,还可以通过以下步骤来实现:将待制作区域用预设多边形进行填充,得到待制作区域中各预设多边形的交点;从各预设多边形的交点中提取位于区域切分线周边的交点,并基于位于区域切分线周边的交点,形成弯曲状的区域切分线。
90.其中预设多边形可以设置为三角形。由于很多软件中已内置三角形填充方法,因而将预设多边形设置为三角形可以很好的利用已有资源,进一步降低处理难度。以预设多边形是三角形为例,图5a提供了一种用预设多边形填充待制作区域的实例图。
91.需要说明的是,预设多边形还可以设置为其他多边形,用于填充的预设多边形的大小具体可根据实际需求进行自定义,这里不做具体限定。
92.以houdini三维计算机图形软件为例,具体可以通过houdini软件中的重新布线节点(remesh),在待制作区域中填充预设多边形。
93.此外,如图5b所示,还提供了一种待制作区域中预设多边形的交点分布的实例图,以获取待制作区域中各预设多边形的交点。
94.在得到待制作区域中各预设多边形的交点后,可从待制作区域中各预设多边形的交点中,提取区域切分线沿线的交点,进而基于区域切分线沿线的交点形成弯曲状的区域切分线。如图5c所示,提供了一种弯曲状的区域切分线的实例图。
95.在一种可选的实施方式中,步骤s310中在多个块状区域之间生成区域间隙,具体可通过以下步骤来实现:将多个块状区域之间的共享边分别进行模糊和删除处理,以使多个块状区域之间生成区域间隙,以便为目标虚拟场景中虚拟道路的渲染预留位置。
96.共享边指的是区域与区域之间相接的边。区域间隙指的是区域与区域之间的间隔。通过将块状区域之间的共享边进行模糊处理,可以使得块状区域的共享边具有一定的宽度;紧接着,删除块状区域之间的共享边,可使得块状区域之间产生一定的区域间隙。示例性的,如图5d所示,提供了一种在多个块状区域之间生成区域间隙的实例图。
97.以houdini三维计算机图形软件为例,可以通过houdini软件中的属性模糊节点(attribblur)去掉固定边界点,进而实现对块状区域之间的共享边的模糊处理;可以通过houdini软件中的划分节点(divide)删除共享边,进而实现对块状区域之间共享边的删除处理。
98.具体的,在步骤s320中,将各块状区域分别进行切分处理,得到多个待制作子区域,并在多个待制作子区域之间生成区域间隙。
99.这里可将每个块状区域切分成多个待制作子区域。如图6a所示,提供了一种待制作子区域分布的实例图。
100.以houdini三维计算机图形软件为例,可以通过houdini软件中的地块细分节点(lot subdivision),将每个块状区域随机划分出多个待制作子区域。
101.在一种可选的实施方式中,步骤s320中在多个待制作子区域之间生成区域间隙,具体可通过以下步骤来实现:将多个待制作子区域之间的共享边转化为独立边;缩小多个待制作子区域,以使多个待制作子区域之间生成区域间隙,以便进一步为目标虚拟场景中虚拟道路的渲染预留位置。
102.独立边指的是独属于某个区域的边。将多个待制作子区域之间的共享边转化为独立边,即为各待制作子区域生成独立的边,可使得每个待制作子区域成为一个独立的个体,以便对待制作子区域进行缩小处理,进而使得多个待制作子区域之间生成区域间隙。如图6b所示,提供了一种在多个待制作子区域之间生成区域间隙的实例图。
103.以houdini三维计算机图形软件为例,可以通过houdini软件中的分面节点(facet unique point)将共享边转化为独立边,使得各待制作子区域相互独立。
104.在将块状区域切分成多个待制作子区域时,若以直线进行切分,所得到的待制作子区域的边缘可能是直的,这种情况下待制作子区域的形态较为僵硬,通过使待制作子区域的边缘产生一定的弧度,可以使得待制作子区域的形态更加自然。
105.在一种可选的实施方式中,还可以通过以下步骤使待制作子区域的边缘产生一定的弧度:将各待制作子区域的边缘进行重采样,得到各待制作子区域的边缘采样点;将各待制作子区域的边缘采样点分别添加属性噪声,以使待制作子区域的边缘采样点不规则排列;将各待制作子区域的边缘采样点分别进行合并,得到各待制作子区域的合并采样点;将各待制作区域的相邻合并采样点之间的连线进行平滑处理,以使各待制作子区域的边缘产生弧度。
106.边缘采样点是从待制作子区域的边缘上采样得到的点。合并采样点是将若干边缘采样点合并后的点。
107.重采样是指根据一类象元的信息内插出另一类象元信息的处理过程。可通过重采样确定各待制作子区域的边缘采样点,如图6c所示,提供了一种将各待制作子区域的边缘重采样的实例图。
108.为边缘采样点添加属性噪声可以使边缘采样点偏离原来所在位置,以改变待制作区域的边缘采样点的规则排列状态,如图6d所示,提供了一种将各待制作子区域的边缘采样点添加属性噪声的实例图。
109.将边缘采样点进行合并处理,示例性的,可以将预设距离内的边缘采样点进行合并,或相邻的多个采样点进行合并,进而得到各待制作子区域的合并采样点。平滑处理指的是将相邻合并采样点之间的连线转变成有弧度的曲线,以使各待制作子区域的边缘产生弧度。如图6e所示,提供了一种将边缘采样点进行合并和平滑处理后的待制作子区域的实例图。
110.以houdini三维计算机图形软件为例,可以通过houdini软件中的重采样节点(resample)将各待制作子区域的边缘进行重采样;可以通过houdini软件中的属性噪声节点(attribnoise),将各待制作子区域的边缘采样点分别添加属性噪声,以打乱待制作子区域的边缘;可以通过houdini软件中的合并节点(fuse)将待制作子区域的边缘采样点进行合并处理;可以通过houdini软件中的平滑节点(smooth)对待制作子区域的边缘进行进一
步的平滑处理,以使各待制作子区域的边缘产生弧度。
111.在得到存在区域间隙的多个待制作子区域后,可继续执行步骤s120。
112.步骤s120,将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。
113.目标虚拟场景,可例如农田、村落、鱼塘等通常呈现块状分布的虚拟场景。
114.以houdini三维计算机图形软件为例,可以通过houdini软件中的高度场遮罩节点(heightfield_maskbyobject)将多个待制作子区域投射至虚拟地形。如图7a所示,提供了一种将多个待制作子区域投射至虚拟地形中的实例图。
115.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以对投射至虚拟地形上的多个待制作子区域进行变形处理。
116.变形处理,即增加待制作子区域的形态在细节上的随机度,从而使得待制作子区域的形态从视觉上更加符合自然地貌。
117.以houdini三维计算机图形软件为例,可以通过houdini软件中的高度场扭曲节点(heightfield_distort)增加待制作子区域的扭曲效果,使得待制作子区域形态发生变化。
118.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以调节多个待制作子区域的地形高度。
119.具体的,可将待制作子区域所对应的当前地形高度增加或减去某个数值,以调节待制作子区域的地形高度,使其更加符合所要渲染场景的地貌环境,进而提升其拟真效果。如图7b所示,提供了一种调节待制作子区域的地形高度的实例图。
120.以在待制作子区域中渲染农田场景为例,可将这些待制作子区域所对应的当前地形高度分别减去一个特定数值,使其更符合农田地貌。
121.此外,如图8所示,还提供一种在虚拟地形上进行区域划分的流程图,具体可包括以下步骤:
122.步骤s801,响应作用于虚拟地形的区域选取操作,确定位于虚拟地形中的待制作区域;
123.步骤s802,将位于虚拟地形中的待制作区域对应的地形细节特征进行模糊化;
124.步骤s803,获取待制作区域在虚拟地形中的位置信息,并根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域,
125.步骤s804,将待制作区域进行切分处理,得到多个块状区域;
126.步骤s805,在多个块状区域之间生成区域间隙;
127.步骤s806,将各块状区域分别进行切分处理,得到多个待制作子区域;
128.步骤s807,在多个待制作子区域之间生成区域间隙;
129.步骤s808,将多个待制作子区域投射至虚拟地形中;
130.步骤s809,对投射至虚拟地形上的多个待制作子区域进行变形处理;
131.步骤s810,调节多个待制作子区域的地形高度,以在待制作子区域中渲染目标虚拟场景。
132.本公开的示例性实施方式还提供一种虚拟场景制作装置,如图9所示,该虚拟场景制作装置900可以包括:
133.区域划分模块910,用于从虚拟地形中提取待制作区域,并将待制作区域切分为多
个待制作子区域,多个待制作子区域间存在区域间隙;
134.区域投射模块920,用于将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。
135.在一种可选的实施方式中,区域划分模块910中从虚拟地形中提取待制作区域,还包括:区域选取模块,用于响应作用于虚拟地形的区域选取操作,确定位于虚拟地形中的待制作区域;区域提取模块,用于获取待制作区域在虚拟地形中的位置信息,并根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域。
136.在一种可选的实施方式中,在根据从虚拟地形对应的网格模型中提取待制作区域之前,虚拟场景制作装置900,还可以包括:区域模糊处理,用于将位于虚拟地形中的待制作区域对应的地形细节特征进行模糊化。
137.在一种可选的实施方式中,区域划分模块910中将待制作区域切分为多个待制作子区域,还包括:第一切分模块,用于将待制作区域进行切分处理,得到多个块状区域,并在多个块状区域之间生成区域间隙;第二切分模块,用于将各块状区域分别进行切分处理,得到多个待制作子区域,并在多个待制作子区域之间生成区域间隙。
138.在一种可选的实施方式中,第一切分模块中将待制作区域进行切分处理,得到多个块状区域,还可以包括:块状区域数量确定模块,用于基于待制作区域的面积,确定块状区域数量;块状区域切分模块,用于将待制作区域切分成与块状区域数量相匹配的块状区域。
139.在一种可选的实施方式中,块状区域切分模块中将待制作区域切分成与块状区域数量相匹配的块状区域,还可以包括:样点生成模块,用于在待制作区域中随机生成与块状区域数量相匹配的样点;区域切分线确定模块,用于根据各样点在待制作区域中位置,确定区域切分线,区域切分线将各样点隔离;块状区域切分子模块,用于采用区域切分线将待制作区域进行切分,得到多个块状区域。
140.在一种可选的实施方式中,区域切分线确定模块中区域切分线可由连接相邻样点的线段的垂直平分线组成。
141.在一种可选的实施方式中,在确定区域切分线后,块状区域切分模块,还可以包括:切分线形态转换模块,用于将区域切分线从直线转换为曲线。
142.在一种可选的实施方式中,切分线形态转换模块中将区域切分线从直线转换为曲线,可以被配置为:将待制作区域用预设多边形进行填充,得到待制作区域中各预设多边形的交点;从各预设多边形的交点中提取位于区域切分线周边的交点,并基于位于区域切分线周边的交点,形成弯曲状的区域切分线。
143.在一种可选的实施方式中,第一切分模块中在多个块状区域之间生成区域间隙,可以被配置为:将多个块状区域之间的共享边分别进行模糊和删除处理,以使多个块状区域之间生成区域间隙。
144.在一种可选的实施方式中,第二切分模块中在多个待制作子区域之间生成区域间隙,可以被配置为:将多个待制作子区域之间的共享边转化为独立边;缩小多个待制作子区域,以使多个待制作子区域之间生成区域间隙。
145.在一种可选的实施方式中,第二切分模块还可以包括:区域边缘调整模块,该区域边缘调整模块可以配配置为:将各待制作子区域的边缘进行重采样,得到各待制作子区域
的边缘采样点;将各待制作子区域的边缘采样点分别添加属性噪声,以使待制作子区域的边缘采样点不规则排列;将各待制作子区域的边缘采样点分别进行合并,得到各待制作子区域的合并采样点;将各待制作区域的相邻合并采样点之间的连线进行平滑处理,以使各待制作子区域的边缘产生弧度。
146.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,该虚拟场景制作装置900,还可以包括:变形处理模块,用于对投射至虚拟地形上的多个待制作子区域进行变形处理。
147.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,该虚拟场景制作装置900,还可以包括:高度调节模块,用于调节多个待制作子区域的地形高度。
148.上述虚拟场景制作装置900中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
149.本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述虚拟场景制作方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
150.具体的,计算机可读存储介质上所存储的程序产品可使电子设备执行以下步骤:
151.从虚拟地形中提取待制作区域,并将待制作区域切分为多个待制作子区域,多个待制作子区域间存在区域间隙;
152.将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。
153.在一种可选的实施方式中,上述从虚拟地形中提取待制作区域,过以下步骤来实现:响应作用于虚拟地形的区域选取操作,确定位于虚拟地形中的待制作区域;获取待制作区域在虚拟地形中的位置信息,并根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域。
154.在一种可选的实施方式中,在根据从虚拟地形对应的网格模型中提取待制作区域之前,还可以执行以下步骤:将位于虚拟地形中的待制作区域对应的地形细节特征进行模糊化。
155.在一种可选的实施方式中,上述将待制作区域切分为多个待制作子区域,可以通过以下步骤来实现:将待制作区域进行切分处理,得到多个块状区域,并在多个块状区域之间生成区域间隙;将各块状区域分别进行切分处理,得到多个待制作子区域,并在多个待制作子区域之间生成区域间隙。
156.在一种可选的实施方式中,上述将待制作区域进行切分处理,得到多个块状区域,可以通过以下步骤来实现:基于待制作区域的面积,确定块状区域数量;将待制作区域切分成与块状区域数量相匹配的块状区域。
157.在一种可选的实施方式中,上述将待制作区域切分成与块状区域数量相匹配的块状区域,可以通过以下步骤来实现:在待制作区域中随机生成与块状区域数量相匹配的样点;根据各样点在待制作区域中位置,确定区域切分线,区域切分线将各样点隔离;采用区域切分线将待制作区域进行切分,得到多个块状区域。
158.在一种可选的实施方式中,上述区域切分线由连接相邻样点的线段的垂直平分线组成。
159.在一种可选的实施方式中,在确定区域切分线后,还可以执行以下步骤:将区域切分线从直线转换为曲线。
160.在一种可选的实施方式中,上述将区域切分线从直线转换为曲线,可以通过以下步骤来实现:将待制作区域用预设多边形进行填充,得到待制作区域中各预设多边形的交点;从各预设多边形的交点中提取位于区域切分线周边的交点,并基于位于区域切分线周边的交点,形成弯曲状的区域切分线。
161.在一种可选的实施方式中,上述在多个块状区域之间生成区域间隙,可以通过以下步骤来实现:将多个块状区域之间的共享边分别进行模糊和删除处理,以使多个块状区域之间生成区域间隙。
162.在一种可选的实施方式中,上述在多个待制作子区域之间生成区域间隙,可以通过以下步骤来实现:将多个待制作子区域之间的共享边转化为独立边;缩小多个待制作子区域,以使多个待制作子区域之间生成区域间隙。
163.在一种可选的实施方式中,还可以执行以下步骤:将各待制作子区域的边缘进行重采样,得到各待制作子区域的边缘采样点;将各待制作子区域的边缘采样点分别添加属性噪声,以使待制作子区域的边缘采样点不规则排列;将各待制作子区域的边缘采样点分别进行合并,得到各待制作子区域的合并采样点;将各待制作区域的相邻合并采样点之间的连线进行平滑处理,以使各待制作子区域的边缘产生弧度。
164.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以执行以下步骤:对投射至虚拟地形上的多个待制作子区域进行变形处理。
165.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以执行以下步骤:调节多个待制作子区域的地形高度。
166.上述虚拟场景制作过程中,一方面,实现了制作区域的自动划分,提升了场景制作的效率。另一方面,从虚拟地形中提取待制作区域,将待制作区域划分后,再投射至虚拟地形中,使得所划分的待制作区域能够较好的适配于虚拟地形。
167.该程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
168.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
169.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介
质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
170.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
171.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
172.本公开的示例性实施方式还提供了一种能够实现上述虚拟场景制作方法的电子设备。下面参照图10来描述根据本公开的这种示例性实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
173.如图10所示,电子设备1000可以以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030和显示单元1040。
174.存储单元1020存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
175.具体的,处理单元1010可执行以下步骤:
176.从虚拟地形中提取待制作区域,并将待制作区域切分为多个待制作子区域,多个待制作子区域间存在区域间隙;
177.将多个待制作子区域投射至虚拟地形中,以在待制作子区域中渲染目标虚拟场景。
178.在一种可选的实施方式中,上述从虚拟地形中提取待制作区域,过以下步骤来实现:响应作用于虚拟地形的区域选取操作,确定位于虚拟地形中的待制作区域;获取待制作区域在虚拟地形中的位置信息,并根据待制作区域在虚拟地形中的位置信息,从虚拟地形对应的网格模型中提取待制作区域。
179.在一种可选的实施方式中,在根据从虚拟地形对应的网格模型中提取待制作区域之前,还可以执行以下步骤:将位于虚拟地形中的待制作区域对应的地形细节特征进行模糊化。
180.在一种可选的实施方式中,上述将待制作区域切分为多个待制作子区域,可以通过以下步骤来实现:将待制作区域进行切分处理,得到多个块状区域,并在多个块状区域之间生成区域间隙;将各块状区域分别进行切分处理,得到多个待制作子区域,并在多个待制作子区域之间生成区域间隙。
181.在一种可选的实施方式中,上述将待制作区域进行切分处理,得到多个块状区域,
可以通过以下步骤来实现:基于待制作区域的面积,确定块状区域数量;将待制作区域切分成与块状区域数量相匹配的块状区域。
182.在一种可选的实施方式中,上述将待制作区域切分成与块状区域数量相匹配的块状区域,可以通过以下步骤来实现:在待制作区域中随机生成与块状区域数量相匹配的样点;根据各样点在待制作区域中位置,确定区域切分线,区域切分线将各样点隔离;采用区域切分线将待制作区域进行切分,得到多个块状区域。
183.在一种可选的实施方式中,上述区域切分线由连接相邻样点的线段的垂直平分线组成。
184.在一种可选的实施方式中,在确定区域切分线后,还可以执行以下步骤:将区域切分线从直线转换为曲线。
185.在一种可选的实施方式中,上述将区域切分线从直线转换为曲线,可以通过以下步骤来实现:将待制作区域用预设多边形进行填充,得到待制作区域中各预设多边形的交点;从各预设多边形的交点中提取位于区域切分线周边的交点,并基于位于区域切分线周边的交点,形成弯曲状的区域切分线。
186.在一种可选的实施方式中,上述在多个块状区域之间生成区域间隙,可以通过以下步骤来实现:将多个块状区域之间的共享边分别进行模糊和删除处理,以使多个块状区域之间生成区域间隙。
187.在一种可选的实施方式中,上述在多个待制作子区域之间生成区域间隙,可以通过以下步骤来实现:将多个待制作子区域之间的共享边转化为独立边;缩小多个待制作子区域,以使多个待制作子区域之间生成区域间隙。
188.在一种可选的实施方式中,还可以执行以下步骤:将各待制作子区域的边缘进行重采样,得到各待制作子区域的边缘采样点;将各待制作子区域的边缘采样点分别添加属性噪声,以使待制作子区域的边缘采样点不规则排列;将各待制作子区域的边缘采样点分别进行合并,得到各待制作子区域的合并采样点;将各待制作区域的相邻合并采样点之间的连线进行平滑处理,以使各待制作子区域的边缘产生弧度。
189.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以执行以下步骤:对投射至虚拟地形上的多个待制作子区域进行变形处理。
190.在一种可选的实施方式中,在将多个待制作子区域投射至虚拟地形中后,还可以执行以下步骤:调节多个待制作子区域的地形高度。
191.上述虚拟场景制作过程中,一方面,实现了制作区域的自动划分,提升了场景制作的效率。另一方面,从虚拟地形中提取待制作区域,将待制作区域划分后,再投射至虚拟地形中,使得所划分的待制作区域能够较好的适配于虚拟地形。
192.存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(rom)1023。
193.存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
194.总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构
的局域总线。
195.电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图10中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
196.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
197.此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
198.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
199.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
200.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。