虚拟地貌的生成方法、装置、计算机设备和存储介质与流程

阅读: 评论:0



1.本技术涉及计算机技术领域,具体涉及虚拟地貌的生成方法、装置、计算机设备和存储介质。


背景技术:



2.近年来,随着计算机技术的发展,越来越多的用户通过电子设备来体验各种游戏。在游戏设计中,游戏场景的设计是关键的一环,地貌复杂、多样化的游戏场景能够给用户带来沉浸式的游戏体验。
3.现有技术中,通常是由人工构建游戏场景中的地貌模型,再将构建得到的地貌模型拼接在游戏场景中。然而,这种方式需要人工拼接地貌,费时费力,容易出现不齐等问题,不仅效率低,而且显示效果也差。


技术实现要素:



4.本技术实施例提供虚拟地貌的生成方法、装置、计算机设备和存储介质,不仅生成效率高,还能优化显示效果。
5.本技术实施例提供一种虚拟地貌的生成方法,包括:获取初始虚拟地貌的地形形状;确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;根据所述地表位置点,生成目标虚拟地貌。
6.本技术实施例还提供一种虚拟地貌的生成方法装置,包括:形状生成单元,用于获取初始虚拟地貌的地形形状;确定单元,用于确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;调整单元,用于根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;地貌生成单元,用于根据所述地表位置点,生成目标虚拟地貌。
7.本技术实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本技术实施例所提供的任一种虚拟地貌的生成方法中的步骤。
8.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本技术实施例所提供的任一种虚拟地貌的生成方法中的步骤。
9.本技术实施例可以获取初始虚拟地貌的地形形状;确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;根据所述地表位置点,生成目标虚拟地貌。
10.在本技术中,可以基于经过初始虚拟地貌的地形形状的预设点的预设射线,确定初始虚拟地貌上的碰撞点,通过调整碰撞点,得到目标虚拟地貌的地表位置点。以此,可以
基于初始虚拟地貌的地形形状确定相应的地表位置点,使生成的目标虚拟地貌与初始虚拟地貌的地形形状相关,通过调整碰撞点,可以差异化地调整虚拟地貌的地表高度。以此,可以由初始虚拟地貌自动生成与初始虚拟地貌所在的虚拟场景的适配度高的目标虚拟地貌,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。
附图说明
11.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1a是本技术实施例提供的虚拟地貌的生成系统的场景示意图;
13.图1b是本技术实施例提供的虚拟地貌的生成方法的流程示意图;
14.图1c是本技术实施例提供的确定初始虚拟地貌的示意图;
15.图1d是本技术实施例提供的获取初始虚拟地貌的地形形状的示意图;
16.图1e是本技术实施例提供的面片组件的示意图;
17.图1f是本技术实施例提供的循环过程的示意图;
18.图1g是本技术实施例提供的生成目标虚拟地貌的上表面的面片模型的示意图;
19.图1h是本技术实施例提供的对第一场景地貌进行模糊处理的示意图;
20.图1i是本技术实施例提供的对第二场景地貌进行模糊处理的示意图;
21.图1j是本技术实施例提供的将处理后的第一场景地貌以及处理后的第二场景地貌相减得到的场景地貌的示意图;
22.图1k是本技术实施例提供的目标场景地貌的示意图;
23.图1l是本技术实施例提供的处理前后的场景地貌的数据的线性特征的示意图;
24.图2是本技术另一个实施例提供的虚拟地貌的生成方法的流程示意图;
25.图3是本技术实施例提供的虚拟地貌的生成装置的结构示意图;
26.图4是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.在对本技术实施例进行详细地解释说明之前,先对本技术实施例涉及到的一些名词进行解释说明。
29.其中,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。其中,至少一个是指一个或一个以上,例如,至少一个用户可以是一个用户、两个用户、三个用户等任意大于等于一的整数个用户。而多个是指两个或者两个以上,例如,多个用户可以是两个用户、三个用户等任意大于等于二的整数个用户。
30.其中,虚拟场景是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟角在该虚拟场景中进行移动。
31.其中,虚拟地貌可以为虚拟场景中基于地形的形状形成的物体对象,例如虚拟地貌可以为山地、平原、森林、沙漠、水域、沼泽或者为个性化定制的地形如悬崖等。在对虚拟地貌进行渲染后,可以在终端的游戏画面中呈现与显示世界中地形相似的可视外观。
32.其中,面片模型可以指包括多个面片的模型,通常待渲染模型为3d模型,3d模型可以指以三个维度的数学表现的模型,3d模型处于由三个互相垂直的向量(x,y,z)组成的坐标系对应的控件内。可以将面片模型中的面片划为多个面片组件,例如,树木模型可以包括树叶对应的面片,位于同一枝干上的面片为一个面片组件。
33.本技术实施例提供虚拟地貌的生成方法、装置、计算机设备和存储介质。
34.其中,该虚拟地貌的生成装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(personal computer,pc)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集。
35.在一些实施例中,该虚拟地貌的生成装置还可以集成在多个电子设备中,比如,虚拟地貌的生成装置可以集成在多个服务器中,由多个服务器来实现本技术的虚拟地貌的生成方法。
36.在一些实施例中,服务器也可以以终端的形式来实现。
37.例如,参考图1a,在一些实施方式中提供了一种虚拟地貌的生成系统的场景示意图,该系统可以实现虚拟地貌的生成方法。在该场景中,可以包括服务器和终端。
38.其中,服务器可以获取初始虚拟地貌的地形形状;确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;根据所述地表位置点,生成目标虚拟地貌。
39.以下分别进行详细说明。
40.在本实施例中,提供了一种虚拟地貌的生成方法,如图1b所示,该虚拟地貌的生成方法的具体流程可以如下:
41.110、获取初始虚拟地貌的地形形状。
42.其中,初始虚拟地貌可以指虚拟场景中原始的虚拟地貌,也可以指预设的虚拟地貌。例如,可以从虚拟场景中获取该虚拟场景中原有的山地、平地等虚拟地貌作为初始虚拟地貌,也可以在虚拟场景中预先构建初始虚拟地貌。
43.一些实施方式中,可以在虚拟场景中任意选择初始虚拟地貌,以此可以在虚拟场景自主生成多样化的虚拟地貌。具体地,获取初始虚拟地貌的地形形状之前,可以包括:
44.响应于对虚拟场景中至少一个地貌区域的选择操作,将至少一个地貌区域对应的虚拟地貌确定为初始虚拟地貌。
45.例如,如图1c中的(1)所示,可以在虚拟场景中划定两个区域作为地貌区域,这两个区域被选中后显示为黑,这两个区域内显示的虚拟山地即为初始虚拟地貌。
46.在一些实施方式中,为了提升将初始虚拟地貌转换为地形形状的效率和准确性,可以先对初始虚拟地貌进行模糊处理,以简化初始虚拟地貌的特征。具体地,将至少一个地貌区域对应的虚拟地貌确定为初始虚拟地貌,还可以包括:将至少一个地貌区域对应的虚拟地貌进行模糊处理,得到初始虚拟地貌。
47.例如,在虚拟场景中选中虚拟地貌后,在对该虚拟地貌进行模糊处理后,如图1c所示,对图1c中(1)进行模糊处理后,可以得到图1c中(2)所示的具有模糊效果的虚拟地貌。可以根据地形高度将图1c中(2)所示的虚拟场景转化为网格状的高度场,再设置初始虚拟地貌为可见,虚拟场景中除初始虚拟地貌以外的区域设置为不可见,以此可以得到图1c中(3)所示的由虚拟场景中提取得到的初始虚拟地貌。
48.其中,模糊处理可以指使图像、三维模型等产生模糊效果的处理方法。可以通过均值模糊、中值模糊、高斯模糊等方法进行模糊处理。例如,可以对三维模型的体素(体积元素),通过高斯模糊的原理,取体素周围点的平均值,以使该体素失去细节,将具有多种地形细节的三维虚拟地貌转换为简单简洁的轮廓模型。
49.在一些实施方式中,地形形状可以为形状线条,以此可以以表征初始虚拟地貌的形状的线条构建目标虚拟地貌,使生成的目标虚拟地貌与初始虚拟地貌的地形形状相关,提升目标虚拟地貌与初始虚拟地貌所在的虚拟场景的适配度,以优化显示效果。具体地,获取初始虚拟地貌的地形形状,可以包括:
50.将初始虚拟地貌转换为形状线条,得到地形形状。
51.其中,形状线条可以指用于表征初始虚拟地貌的形状的线条。形状线条可以为初始虚拟地貌边界的线条,也可以为表征初始虚拟地貌骨架线的线条。其中,骨格线可以指用于表征待处理地的地形貌脉络的线条。可以通过提取初始虚拟地貌的中线、缩放初始虚拟地貌等方式提取骨格线。例如,可以将初始虚拟地貌转换为三维模型,以恒定速度将该三维模型的表面向内推进,合并三维模型中的顶点,即收缩该三维模型的体积,直至该三维模型收缩为多边形,再继续将多边形内推,合并多边形中接近的顶点,直至得到线条。
52.在一些实施方式中,为了提升将初始虚拟地貌转换为地形形状的准确性,可以使用骨架线作为初始虚拟地貌的形状线条。具体地,将初始虚拟地貌转换为形状线条,可以包括:
53.提取初始虚拟地貌的骨架线,得到形状线条。
54.例如,通过提取图1c中(3)所示的初始虚拟地貌的骨架线,可以得到如图1d中(1)所示的形状线条。可以理解的是,由初始虚拟地貌生成形状线条的过程,实质上是从初始虚拟地貌中提取位于中线的顶点的过程或合并初始虚拟地貌的顶点以进行缩放的过程,因此,得到的形状线条是由初始虚拟地貌的部分顶点组成。例如,如图1d中(1)所示的形状线条包括多个顶点。
55.在一些实施方式中,地形形状可以为面片模型,以此可以以表征初始虚拟地貌的形状的面片模型构建目标虚拟地貌,使生成的目标虚拟地貌与初始虚拟地貌的地形形状相关,提升目标虚拟地貌与初始虚拟地貌所在的虚拟场景的适配度,以优化显示效果。具体地,获取初始虚拟地貌的地形形状,可以包括:
56.将初始虚拟地貌转换为形状线条;
57.根据形状线条,生成符合形状线条的形状的面片模型,得到地形形状,面片模型包括至少一个面片组件。
58.其中,可以通过拉伸、放样等方式由形状线条生成面片模型。例如,可以将形状线条拉伸或对形状线条进行放样处理,以生成平行于该形状线条的面片模型,对形状线条拉伸或者放样的方向可以为任意方向。
59.其中,在形状线条包括多个分支时,面片模型中的一个面片组件可以指任一分支。例如,通过对如图1d中(1)所示的形状线条进行放样后,可以得到如图1d中(3)所示面片模型,面片模型中可以包括9个面片组件,一个面片组件可以包括至少一个面片。
60.例如,在根据前述方法得到形状线条后,可以先设置形状线条放样的截面为预设形状,预设形状可以为线或面。如预设形状为线,可以沿该线对形状线条进行放样,得到面片模型。可以理解的是,形状线条中相邻的两个顶点在放样后可以组成面片模型中的一个面片。在实际应用中,若形状线条包括多个分支,可以对每个分支分别进行放样,即不同分支的放样的方向或预设形状可以不同。
61.在一些实施方式中,在生成面片模型时,可以将顶点编号存储在预设集合中,以便即时调用。具体地,根据形状线条,生成符合形状线条的形状的面片模型,得到地形形状之后,还可以包括:
62.将面片模型中的顶点编号存储在预设集合中。
63.其中,预设集合可以指预设的、用于存储顶点编号的集合。例如,可以将面片模型中顶点的顶点编号存储在idd的属性文件中。
64.在一些实施方式中,为了增加生成的面片模型的平滑度,可以对形状线条的上的顶点进行归一化处理和重映射。具体地,根据形状线条,生成符合形状线条的形状的面片模型,可以包括:
65.根据形状线条中线条顶点的顶点编号,对线条顶点进行归一化处理,得到顶点的归一化数值;
66.对归一化数值进行重映射,得到处理后的线条;
67.根据处理后的线条,生成符合形状线条的形状的面片模型。
68.其中,归一化处理可以包括形状线条中的任一顶点的顶点编号除以形状线条中最大的顶点编号,也可以包括形状线条中的任一顶点的顶点编号除以形状线条中顶点编号的综合。在形状线条包括多个分支时,还可以对每个分支内顶点的顶点编号分别进行归一化处理。
69.其中,重映射可以指将某个值进行0~1的重映射,该值的取值范围为0~1。例如,通过重映射可以将超过0.8的值重映射为1。通过重映射可以使线条上的点平滑过渡,增加线条的平滑度。
70.例如,在形状线条包括多个分支时,可以将每个分支中的任一顶点的编号除以该分支中所有顶点的编号,得到该顶点的归一化数值,该数值取值范围为0~1,可以对归一化数值进行0~1的重映射后,映射在0~1的线条上,调整线条为0到1再到0,以此可以得到如图1d中(2)所示的处理后的线条。再通过拉伸、放样等方式由处理后的线条生成如图1d中(3)所示面片模型。
71.120、确定预设射线与初始虚拟地貌的碰撞点,预设射线经过目标点。
72.其中,射线在数学中可以指由线段的一端无限延长所形成的直的线。射线仅有一个端点,无法测量长度(它无限长)。本技术实施例中的射线可以由虚拟射线检测技术确定,射线检测技术可以为unity射线检测。射线检测是指从一个固定的点,沿着一个特定的方向,发射一条射线,当和物体发生碰撞后,返回碰撞信息的方法,碰撞信息可以包括与该物体相关的信息。
73.其中,预设射线可以指按照特定的方向发射的射线。该特定的方向即预设射线的方向,可以根据实际需要或应用场景设置,也可以根据地形形状确定。在实际应用中,预设射线可以包括多条,每条预设射线经过的目标点以及方向可以相同也可以不同。可选地,预设射线的端点为目标点。
74.其中,碰撞点可以指预设射线与初始虚拟地貌发生碰撞的点,也可以指由该发生碰撞的点的位置确定的点。
75.其中,目标点可以包括地形形状的预设点。预设点可以指根据实际需要或应用场景设置在地形形状中确定的点,也可以为从地形形状中随机确定的点,还可以为根据预设方向从地形形状中随机确定的点。
76.在实际应用中,若地形形状为形状线条,可以根据实际需要或应用场景设置预设射线的方向,若地形形状为面片模型,可以根据面片组件中顶点的方向设置预设方向。
77.在一些实施方式中,可以根据面片组件中位于不同高度的顶点快速确定预设射线的方向。具体地,获取初始虚拟地貌的地形形状,以及确定预设射线与初始虚拟地貌的碰撞点之间,还可以包括:
78.从面片组件的顶点中确定第一顶点和第二顶点,第一顶点以及第二顶点沿预设方向的高度不同;
79.根据第一顶点和第二顶点,确定预设射线的方向。
80.其中,第一顶点和第二顶点可以指位于面片组件不同高度的顶点,例如第一顶点和第二顶点可以指位于面片组件两侧或两端的顶点。例如,可以沿预设方向将面片组件分为上下两侧,第一顶点和第二顶点分别为位于上侧和下侧的顶点。再如,面片组件沿预设方向一端高、一端低,可以将面片组件相对较高的一端的顶点确定为第一顶点,相对较低的一端的顶点确定为第二顶点。
81.其中,预设方向可以指与初始虚拟地貌的高度相关的方向。例如,预设方向可以为虚拟场景中与高度相关的方向,如预设方向可以为虚拟场景中从上至下的方向,也可以为虚拟场景中从下至上的方向,具体可以根据实际需要进行设置。
82.其中,预设射线的方向可以为第一顶点所在位置指向第二顶点所在位置的方向,也可以为第二顶点所在位置指向所在位置第一顶点的方向。
83.在实际应用中,可以根据要生成的目标虚拟地貌的地形设置预设射线的方向的指向。例如,若要从地形形状的位置向下生成目标虚拟地貌,则预设射线的方向可以为相对较高的第一顶点指向相对较低的第二顶点,反之,若要从地形形状的位置向上生成目标虚拟地貌,则预设射线的方向可以为相对较低的第二顶点指向相对较高的第一顶点。例如,要从地形形状的位置向上生成崖壁,则如图1e所示,可以将面片组件中位于上侧的顶点即图1e中顶点编号为双数的顶点作为第一顶点,位于下侧的顶点即图1e中顶点编号为单数的顶点
作为第二顶点,预设射线的方向可以为第二顶点指向第一顶点。
84.在一些实施方式中,在确定预设射线的方向之前,可以根据面片组件两侧顶点的高度和,快速区分面片组件中相对较高以及较低的一侧,提升确定预设射线的方向的效率。具体地,根据面片组件的顶点沿预设方向的高度,从面片组件的顶点中确定第一顶点和第二顶点,包括:
85.分别获取面片组件中所有第一侧顶点的高度值、以及所有第二侧顶点的高度值,得到第一高度总和以及第二高度总和,第一侧顶点以及第二侧顶点分别位于面片组件的两侧;
86.将第二高度总和以及第二高度总和中,相对较大的一方对应的顶点确定为第一顶点、相对较小的一方对应的顶点确定为第二顶点。
87.其中,第一侧顶点和第二侧顶点可以指位于面片组件两侧的顶点。
88.其中,高度值可以指顶点沿预设方向的高度。
89.在实际应用中,可以根据顶点的编号来区分顶点位于哪一侧。例如,如图1e所示,面片组件由多个四边形面片组成,在生成面片模型时,按照先上后下的顺序依次对每个面片上的顶点进行编号,得到图1e中的顶点编号。显然,图1e中的编号为单号、双号的顶点分别位于面片组件的不同侧,因此可以将编号为单号的顶点作为第一侧顶点,编号为双号的顶点作为第一侧顶点,并统计任一面片组件中所有第一侧顶点的高度的总和(第一高度总和)、以及所有第二侧顶点的高度的总和(第二高度总和),并比较第一高度总和与第二高度总和,将较大的一方对应的该面片组件的一侧确定为较高的一侧,将较小的一方对应的该面片组件的一侧确定为较矮的一侧,以此,可以将该面片组件中位于较高的一侧的顶点确定为第一顶点,位于较矮的一侧的顶点确定为第二顶点。
90.在一些实施方式中,为了快速识别面片组件中位于较高或较矮一侧的顶点,可以将其存储作为最大高度或最小高度。具体地,根据面片组件的顶点沿预设方向的高度,从面片组件的顶点中确定第一顶点和第二顶点,还可以包括:
91.将第一顶点的顶点编号存储为最大高度或将第二顶点的顶点编号存储为最小高度。
92.例如,可以将顶点编号为单号的顶点的高度和存储为height0(第一高度总和),将顶点编号为双号的顶点的高度和存储为height1(第二高度总和);比较height0和height1的大小,并将较小的一方对应顶点的顶点编号存储在heightmin的组(最小高度)中,以此可以直接根据heightmin组中存储的顶点编号,来分辨面片组件中哪一侧是矮的,还可以根据顶点编号未存储在heightmin组中的顶点,来分辨面片组件中哪一侧是高的。
93.在一些实施方式中,可以由面片组件中的多对关联的第一顶点和第二顶点,确定多个预设射线的方向,以此可以根据不同方向生成多条预设射线,得到多个碰撞点以及多个地表位置点,地表位置点越多生成的目标虚拟地貌的精细程度越高,以此可以提升生成的目标虚拟地貌的地表过度拉扯。具体地,面片组件包括至少一个面片,根据第一顶点和第二顶点,确定预设射线的方向,可以包括:
94.根据关联的任一第一顶点以及任一第二顶点,确定任一预设射线的方向。
95.其中,关联可以指相连、或位于同一面片等关系。
96.例如,如图1e所示,对于每个面片组件中的每个面片,可以包括至少一个第一顶点
以及至少一个第二顶点,可以根据相连的第一顶点以及第二顶点,确定一条预设射线的方向,该预设射线的端点可以为第一顶点或第二顶点。也即,对于面片组件中相连的任一第一顶点以及任一第二顶点,可以确定一条预设射线的方向。
97.在一些实施方式中,可以将目标点移动至初始虚拟地貌的碰撞位置得到碰撞点,以使目标点移动生成地表位置点。具体地,确定预设射线与初始虚拟地貌的碰撞点,可以包括:
98.确定预设射线与初始虚拟地貌的碰撞位置;
99.将目标点移动至初始虚拟地貌的碰撞位置,得到碰撞点。
100.例如,可以以第二顶点为射线的端点,沿该第二顶点对应的预设射线的方向射出一个虚拟射线,若该虚拟射线碰到初始虚拟地貌,则将该第二顶点移动至该虚拟射线碰到初始虚拟地貌的位置即碰撞位置,得到碰撞点。
101.130、根据预设方向,调整碰撞点的位置,得到地表位置点。
102.其中,预设方向与初始虚拟地貌的高度相关。例如,预设方向可以为三维虚拟场景中从上至下的方向,也可以为从下至上的方向等。
103.其中,地表位置点可以指位于虚拟地貌的地表的点。例如,若虚拟地貌为山地,地表位置点可以为山体表面上的点,若虚拟地貌为悬崖,地表位置点可以为崖面的点等。
104.例如,可以沿预设方向调整碰撞点的位置,也可以沿与预设方向相关的方向如与预设方向相反的方向调整碰撞点的位置。
105.可以理解的是,由于碰撞点是位于初始虚拟地貌上的点,若根据该碰撞点直接得到目标虚拟地貌,会使得目标虚拟地貌与初始虚拟地貌的地形一致。因此,本技术实施例通过调整碰撞点的位置,可以基于初始虚拟地貌生成与初始虚拟地貌关联,但区别于初始虚拟地貌的目标虚拟地貌。
106.在实际应用中,通过对本技术实施例中预设方向、预设射线的方向以及调整碰撞点的方向的不同设置,可以基于初始虚拟地貌构成多种不同的地形,如坡地、悬崖等。例如,若预设射线的方向从第二顶点指向第一顶点,预设方向可以为从下至上,通过设置向上调整碰撞点位置的位移,可以生成高于初始虚拟地貌的新的地表位置点,以升高初始虚拟地貌的地表位置,生成新的虚拟地貌。由于新的地貌是基于原虚拟地貌(初始虚拟地貌)生成的,其与原虚拟地貌所在的虚拟场景的适配度高,能直接映射在虚拟场景中,不仅效率高,拼接效果也好。
107.可选地,不同碰撞点对应的调整方向相同。例如,若沿相同的方向调整所有碰撞点,可以使所有碰撞点沿该方向同步移动,以同步改变所有碰撞点的位置。可以快速生成新的虚拟地貌(目标虚拟地貌)。
108.在一些实施方式中,可以通过循环的方式确定多个候选位置点,随着循环的重复执行,能沿预设方向由下至上或由上至下逐步调整候选位置点的位置,以提升目标虚拟地貌与原虚拟地貌所在的虚拟场景的适配度高,优化显示效果。具体地,根据预设方向,调整碰撞点的位置,得到地表位置点,可以包括:
109.根据预设方向,调整碰撞点的位置,得到候选位置点;
110.将候选位置点作为目标点,重复执行步骤根据预设射线以及目标点,对初始虚拟地貌进行碰撞检测,确定碰撞点,至步骤根据预设方向,调整碰撞点的位置,得到地表位置
点,直至不存在碰撞点,地表位置点为由候选位置点确定的位置点。
111.其中,候选位置点可以指对碰撞点调整得到的点。
112.例如,循环开始时,可以将地形形状上的任一第二顶点如第二顶点a作为目标点,并从第二顶点a发射虚拟射线a,虚拟射线a的射线方向与该第二顶点对应,若虚拟射线a碰到初始虚拟地貌,则将该第二顶点a移动至虚拟射线a碰到初始虚拟地貌的位置即碰撞位置,并向上调整得到候选位置点a,并可以将候选位置点作为目标点,执行下一循环,即将候选位置点作为目标点,从第二顶点a发射虚拟射线b,该虚拟射线b的射线方向与虚拟射线b的方向平行。若虚拟射线b碰到初始虚拟地貌,则将该候选位置点移动至虚拟射线b碰到初始虚拟地貌的位置即碰撞位置,并向上调整得到新的候选位置点b,并执行下一循环;若虚拟射线b未碰到初始虚拟地貌即不存在碰撞点,则结束循环。如图1f所示,通过上述循环过程,可以使地形形状上的顶点不断上移生成候选位置点,直至到达最高点(地表位置点)则停止。
113.可选地,地表位置点为最后一次循环得到的候选位置点,即最高点。例如,若在循环过程中,向上调整碰撞点位置的位移,可以在循环结束后得到位于初始虚拟地貌上方的多个地表位置点,以此可以由地表位置点构成位于初始虚拟地貌上方的目标虚拟地貌。
114.可选地,地表位置点包括所有候选位置点。以此可以通过循环的方式确定多个地表位置点,随着循环的重复执行,能沿预设方向由下至上或由上至下逐步确定目标虚拟地貌上的地表位置,如可以将循环中的所有候选位置点如包括候选位置点a、候选位置点b等都作为地表位置点,形成坡面。
115.140、根据地表位置点,生成目标虚拟地貌。
116.其中,目标虚拟地貌可以为山地、悬崖等不同的虚拟地貌。
117.可以由地表位置点构成目标虚拟地貌的地表,以生成目标虚拟地貌。例如,在得到面片模型后,可以通过拉伸、填充等方式将面片模型由面转换为体积,以得到三维目标虚拟地貌。例如,若目标虚拟地貌为悬崖,可以向上调整碰撞点位置的位移,将得到的地表位置点相连构成悬崖的上表面,再由该上表面向下挤压成体积(即将上表面的面片模型向下填充),得到目标虚拟地貌。例如,若目标虚拟地貌为山地,如前文,可以将确定地表位置点的循环过程中的所有候选位置点都作为地表位置点,以得到构成山地的坡面的面片模型,并填充该面片模型得到目标虚拟地貌。
118.在一些实施方式中,可以根据地表位置点的高度,调整其他顶点的高度,以构成目标虚拟地貌的一个表面,使目标虚拟地貌能直接应用于虚拟场景中,增加目标虚拟地貌与虚拟场景的适配度,不仅效率高,拼接效果也好。具体地,根据地表位置点,生成目标虚拟地貌,可以包括:
119.当预设点包括第二顶点时,根据地表位置点的高度,调整第一顶点的高度,得到目标位置点;
120.根据地表位置点以及目标位置点,生成目标虚拟地貌。
121.例如,若地表位置点为最后一次循环得到的候选位置点,可以将第一顶点上移至与对应的地表位置点相同的高度,生成目标虚拟地貌。如图1g所示,图1g中(1)表示由形状线条放样得到的面片模型。图1g中(2)表示由地表位置点以及第一顶点组成的面片模型,显然由于第二顶点向上移动至了地表位置点,因此第二顶点的高度高于第一顶点,因此可以
将图1g中(2)表示的面片模型的任一面片中沿预设方向较矮的一侧的顶点(第一顶点)移动至与另一侧顶点(地表位置点)高度相同,得到如图1g中(3)所示的目标虚拟地貌的上表面的面片模型,可以将该上表面的面片模型向下挤压成体积,得到目标虚拟地貌。
122.再如,若地表位置点包括所有候选位置点,以第二顶点作为预设射线的端点,则可以将地表位置点视为由第二顶点上移得到的点,即地表位置点可以组成目标虚拟地貌的坡面。此时,可以将第一顶点上移至与最后一次循环得到的地表位置点相同的高度,由此,可以由上移后的第一顶点以及最后一次循环得到的地表位置点构成平面,由该坡面和平面可以构成封闭形状的目标虚拟地貌。
123.在一些实施方式中,根据地表位置点的高度,调整第一顶点的高度,得到目标位置点,可以包括;根据目标第二顶点对应的地表位置点的高度,调整目标第一顶点的高度,得到目标位置点。其中,目标第二顶点可以指任一第二顶点,目标第二顶点可以指与目标第一顶点关联的第二顶点,目标第二顶点对应的地表位置点可以指由目标第二顶点上移得到的地表位置点。
124.在一些实施方式中,若以第一顶点作为预设射线的端点,可以相应地调整第二顶点的高度,以构成目标虚拟地貌的表面。具体地,根据地表位置点,生成目标虚拟地貌,可以包括:
125.当预设点包括第一顶点时,可以根据地表位置点的高度,调整第一顶点的高度,得到目标位置点;
126.根据地表位置点以及目标位置点,生成目标虚拟地貌。
127.在一些实施方式中,为了避免生成的目标虚拟地貌的地表过度拉扯,导致虚拟地貌变形,可以调整偏移过大的地表位置点。具体地,根据预设方向,调整碰撞点的位置,得到地表位置点之后,还可以包括:
128.若目标点与地表位置点之间的距离大于预设值,根据目标点以及地表位置点,确定目标方向;
129.沿目标方向,调整目标点的位置,以更新地表位置点的位置。
130.其中,预设值可以指预设的距离值,可以为点在二维坐标系或三维坐标系的距离值,也可以为点沿坐标系中至少一个坐标轴方向的距离。
131.其中,目标方向可以指由目标点指向地表位置点的方向。
132.例如,若目标点与地表位置点之间的距离大于预设值,可以将地表位置点在坐标系中的位置减去目标点的位置,得到表征目标方向的向量,再沿该向量的方向,将目标点沿该方向移动预设距离如移动10个单位向量,得到新的位置点,并将该位置更新为地表位置点。需说明的是,在循环过程中,若根据预设值更新了地表位置点,则可以删除更新前的地表位置点,仅将更新后的地表位置点用于构建目标虚拟地貌。
133.在一些实施方式中,为了丰富目标虚拟地貌在虚拟场景中的细节,可以基于初始虚拟地貌在虚拟场景中的高度场,调整目标虚拟地貌在虚拟场景中的高度场。具体地,根据地表位置点,生成目标虚拟地貌之后,还可以包括:
134.获取第一场景地貌以及第二场景地貌,第一场景地貌以及第二场景地貌分别由目标虚拟地貌以及初始虚拟地貌映射到虚拟场景中得到;
135.根据第二场景地貌的高度场,调整第二场景地貌的高度场,得到目标场景地貌。
136.其中,场景地貌可以指虚拟地貌在虚拟场景中呈现的地貌。
137.其中,映射可以指将虚拟地貌拼接或者绘制在虚拟场景中。例如,可以将虚拟地貌移动至虚拟场景中的地貌区域,以生成场景地貌;也可以通过识别虚拟地貌的高度值,以调整虚拟场景中的地貌,得到场景地貌。
138.其中,高度场可以指虚拟场景有效区域(有数据的区域的包围盒)。例如,在三维的虚拟场景中,高度场可以指在xz坐标系上,场景有效区域(的包围盒,高度场本质上是二位数组。
139.例如,可以将目标虚拟地貌映射在虚拟场景中,得到如图1h中的(1)所示的第一场景地貌,其中黑区域为目标虚拟地貌对应的区域。可以获取如图1i中的(1)所示的虚拟场景作为第二场景地貌,该虚拟场景中已经映射有初始虚拟地貌,其中黑区域为初始虚拟地貌对应的区域。
140.在一些实施方式中,为了提升处理效率以及地貌的呈现效果,可以对场景地貌进行模糊处理简化场景地貌的特征,再调整第二场景地貌的高度场。根据第二场景地貌的高度场,调整第二场景地貌的高度场,得到目标场景地貌,可以包括:
141.分别对第一场景地貌以及第二场景地貌进行模糊处理,得到处理后的第一场景地貌以及处理后的第二场景地貌;
142.将处理后的第一场景地貌的高度场以及处理后的第二场景地貌的高度场相减,得到目标场景地貌。
143.其中,对第一场景地貌以及第二场景地貌进行模糊处理的方法可以与前述对初始虚拟地貌进行模糊处理的方式相同。
144.例如,可以分别对图1h中的(1)的第一场景地貌以及图1i中的(1)的第二场景地貌进行模糊处理,得到如图1h中(2)所示处理后的第一场景地貌以及如图1i中(2)所示处理后的第二场景地貌。可以将处理后的第一场景地貌以及处理后的第二场景地貌相减,得到如图1j所示的场景地貌,再将如图1j所示的场景地貌映射到第一场景地貌中,即可得到如图1k所示的目标场景地貌。
145.再如,图1l比较了处理前后的场景地貌的数据的线性特征,如图1l所示,通过对第一场景地貌进行模糊处理后,可以得到较为平滑的线型,以简化场景地貌的特征,降低噪声,再通过处理后的第二场景地貌的高度场来调整第二场景地貌的高度场后,可以使得到的目标场景地貌在噪声较低的情况下,具有较多的细节特征,以增加目标场景地貌的真实感。
146.本技术实施例提供的虚拟地貌的生成方案可以应用在各种虚拟地貌的生成场景中。比如,以生成崖壁为例,获取初始虚拟地貌的地形形状;确定预设射线与初始虚拟地貌的碰撞点,预设射线经过目标点,目标点包括地形形状的预设点;根据预设方向,调整碰撞点的位置,得到地表位置点,预设方向与初始虚拟地貌的高度相关;根据地表位置点,生成目标虚拟地貌。
147.采用本技术实施例提供的方案基于经过初始虚拟地貌的地形形状的预设点的预设射线,确定初始虚拟地貌上的碰撞点,通过调整碰撞点,得到目标虚拟地貌的地表位置点。以此,可以基于初始虚拟地貌的地形形状确定相应的地表位置点,使生成的目标虚拟地貌与初始虚拟地貌的地形形状相关,通过调整碰撞点,可以差异化地调整虚拟地貌的地表
高度。以此,可以由初始虚拟地貌自动生成与初始虚拟地貌所在的虚拟场景的适配度高的目标虚拟地貌,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。
148.根据上述实施例所描述的方法,以下将作进一步详细说明。
149.在本实施例中,将以生成崖壁为例,对本技术实施例的方法进行详细说明。
150.本技术实施例的方法可以应用于多种游戏引擎中,如主流引擎:houdini软件、虚幻4引擎(ue4)等,也可以应用于自研引擎。以下将以本技术实施例的方法应用于houdini进行说明。
151.如图2所示,一种虚拟地貌的生成方法具体流程如下:
152.210、响应于对虚拟场景中至少一个地貌区域的选择操作,将至少一个地貌区域对应的虚拟地貌确定为初始虚拟地貌。
153.例如,可以houdini软件中预先设置虚拟场景的三维地形地图,如图1c中(1)所示,图中黑区域是挑选或者绘制出来想要生成为悬崖的坡地区域(初始虚拟地貌)。在实际应用中,可以直接从三维地形地图中提取该坡地区域,也可以在山周边选中坡地区域。
154.可以使用heightfield_blur节点,对三维地形地图的整个地貌进行模糊,得到如图1c中(2)所示的图形。可以使用convertheightfield将地形高度转化为网格后使用命令@mask《0.5提取出黑区域,提取得到如图1c中(3)所示初始虚拟地貌。
155.地貌是一种高度场(体素),当要将初始虚拟地貌作为多边形编辑时,可以使用convertheightfield节点把初始虚拟地貌转化成为多边形。如图1c中(2)所示黑区域是mask场,当转化为多边形后,多边形的顶点上就会有一个叫做mask的属性数值,即黑区域mask数值就会等于1,非黑区域mask数值等于0,以此可以说设置mask《0.5删除非黑区域,留下图1c中(2)中的黑区域,得到如图1c中(3)所示初始虚拟地貌。
156.220、提取初始虚拟地貌的骨架线,得到形状线条。
157.在使用straight_skeleton_3d(它可以自动尽可能得绘制出接近网格的线)得到如图1d中(1)所示的线段。straight_skeleton_3d是一个集成的内置功能节点,它可以将输入的模型转换为一个体积后,收缩这个体积,直到一定的瘦之后再用算法把体积提取为多边形,然后不断合并接近的点,直到最后剩下一条曲线,例如输出一个月牙形状的模型,即可以得到弧形曲线,输入一个小兔子的头部模型,即可以得到v字形的线条。
158.还可以使用i@id=@ptnum;把得到的线段的所有顶点的编号存储在id的属性中。其中,id属性存储在顶点上,既让每一个顶点都有一个独有的id属性,id属性的数值等于自身的顶点编号。顶点编号是在每个模型被创建时都会有的,相当于他是顶点的名字。例如,可以以顶点编号、顶点的属性的形式存储每个顶点的信息,其中,顶点的属性可以包括顶点的xyz的坐标位置,如0、(1148,40,934)表征该顶点的编号为0,坐标位置为(1148,40,934)。
159.230、根据形状线条,生成符合形状线条的形状的面片模型。
160.例如,可以对如图1d中(1)所示的每一个线段进行for循环,循环里面用vop进行连接,具体地,将每个线段的每个顶点的顶点编号除以总顶点编号得到一个从0-1的数值(归一化处理),然后对这个数值进行reramp(重映射),把这个数值映射在0-1的曲线上后,调整曲线处理为0到1再到0,得到以下如图1d中(2)所示的线条(处理后的线条),该线条包括多个分支(线段),每个分支两端颜较深为黑,中间颜较浅为白。
161.可以使用sweep将处理后的线条中每个分支分别放样为一个面片组件,放样后的
所有面片组件可以组成如图1d中(3)所示的面片模型,并使用i@idd=@ptnum;命令把面片模型的顶点编号储存在idd的属性中。sweep是一个集成的节点,可以将线放样为一个平面。
162.240、从面片组件的顶点中确定第一顶点和第二顶点,第一顶点以及第二顶点沿预设方向的高度不同。
163.例如,针对每个面片组件,可以将顶点编号为单号的顶点的高度和存储为height0(第一高度总和),将顶点编号为双号的顶点的高度和存储为height1(第二高度总和);比较height0和height1的大小,并将较小的一方对应顶点的顶点编号存储在heightmin的组(最小高度)中,以此可以直接根据heightmin组中存储的顶点编号,来分辨面片组件中哪一侧是矮的,还可以根据顶点编号未存储在heightmin组中的顶点,来分辨面片组件中哪一侧是高的。
164.250、根据第一顶点和第二顶点,确定预设射线的方向。
165.例如,对于每个面片组件中的每个面片,可以将相连的第二顶点在三维坐标系中的位置减去第一顶点的位置,得到一个方向向量(预设射线的方向),可以将该方向向量存储在dir上。
166.260、确定预设射线与初始虚拟地貌的碰撞点。
167.例如,可以使用blast把不在heightmin组里的顶点删掉(既只留下矮的顶点)。使用pointwrangle进行foreach循环,并将步骤230中提取得到的如图1c中(3)所示的初始虚拟地貌的三维模型接入在第2个接口。
168.将heightmin对应的顶点(第二顶点)以dir为方向射出一个虚拟的射线,如果射线碰到该三维模型,将该顶点移动至射线碰到三维模型的位置。
169.270、根据预设方向,调整碰撞点的位置,得到地表位置点。
170.例如,可以将移动到碰撞位置的顶点沿y轴(垂直于水平面的方向)升高0.5,并作为目标点以dir为方向射出一个虚拟的射线,如此不断循环,直到目标点发射的射线碰不到三维模型(既到达了三维模型的最高点),以此如图1f所示让第二顶点沿着三维模型不断向上爬,直到最高点停下来,图1f中白的点为不断向上爬的第二顶点,箭头方向为任一第二顶点对应的射线的方向。
171.再如,若顶点新位置(地表位置点)与旧位置(目标点的位置)在三维坐标系中x轴和z轴的偏移较大,即在水平方向上的偏移较大,可以将三维坐标系中新位置减去旧位置得到方向(方向向量),将旧位置在这个方向上偏移10个单位得到新位置,以此可以防止顶点位移过大,导致生成的目标虚拟地貌出现拉扯的面。
172.280、根据地表位置点,生成目标虚拟地貌。
173.例如,可以使用attribcopy将最后一次循环得到的地表位置点赋予到面片模型上,使面片模型由原本图1g中(1)所示的面片模型转换为图1g中(2)所示的面片模型。
174.再如,可以使用foreach对heightmin组进行处理,将图1g中(2)所示的面片模型位于y轴方向上较矮一侧的顶点,移动至较高一侧的顶点的高度,使其成为一个图1g中(3)所示的平面,用作悬崖顶部。并将该平面向下挤出,以将该平面向下填充,得到三维的悬崖模型。
175.生成三维的悬崖模型后,还可以基于初始虚拟地貌,调整该三维的悬崖模型。例如,可以使用heightfield_project,将该三维的悬崖模型映射上三维地形地图中初始虚拟
地貌的区域,可以得到如图1h中(1)所示位于黑区域内的地貌,将该黑区域进行模糊处理,此时得到的如图1h中(2)所示的悬崖区域太光滑没有细节。因此可以对如图1i中(1)所示的三维地形地图中初始虚拟地貌进行模糊处理后得到如图1i中(2)所示的场景地貌。将与如图1h中(2)所示的悬崖区域与如图1i中(2)所示的场景地貌的高度场相减,得到如图1j所示的悬崖的顶部地貌,再将该崖壁的顶部地貌映射在图1h中(2)的悬崖区域,可以得到如图1k所示的最终的悬崖效果。
176.由上可知,本技术实施例可以根据虚拟场景中坡地的地形形状,自适应生成与该坡地地形形状适应的悬崖,且所生成悬崖能随地形坡度变化调整自动适应错落大小。以此,可以由坡地自动生成与坡地所在的虚拟场景的适配度高的悬崖,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。
177.为了更好地实施以上方法,本技术实施例还提供一种虚拟地貌的生成装置,该虚拟地貌的生成装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集。
178.比如,在本实施例中,将以虚拟地貌的生成装置具体集成在服务器为例,对本技术实施例的方法进行详细说明。
179.例如,如图3所示,该虚拟地貌的生成装置可以包括形状生成单元310、确定单元320、调整单元330以及地貌生成单元340,如下:
180.(一)形状生成单元310
181.用于获取初始虚拟地貌的地形形状。
182.在一些实施方式中,形状生成单元310具体可以用于:
183.将初始虚拟地貌转换为形状线条,得到地形形状。
184.在一些实施方式中,形状生成单元310具体可以用于:
185.将初始虚拟地貌转换为形状线条;
186.根据形状线条,生成符合形状线条的形状的面片模型,得到地形形状,面片模型包括至少一个面片组件。
187.(二)确定单元320
188.用于确定预设射线与初始虚拟地貌的碰撞点,预设射线经过目标点,目标点包括地形形状的预设点。
189.在一些实施方式中,确定单元320还可以用于:
190.从面片组件的顶点中确定第一顶点和第二顶点,第一顶点以及第二顶点沿预设方向的高度不同;
191.根据第一顶点和第二顶点,确定预设射线的方向。
192.在一些实施方式中,根据面片组件的顶点沿预设方向的高度,从面片组件的顶点中确定第一顶点和第二顶点,可以包括:
193.分别获取面片组件中所有第一侧顶点的高度值、以及所有第二侧顶点的高度值,得到第一高度总和以及第二高度总和,第一侧顶点以及第二侧顶点分别位于面片组件的两侧;
194.将第一高度总和以及第二高度总和中,相对较大的一方对应的顶点确定为第一顶
点、相对较小的一方对应的顶点确定为第二顶点。
195.在一些实施方式中,根据第一顶点和第二顶点,确定预设射线的方向,可以包括:
196.根据关联的任一第一顶点以及任一第二顶点,确定任一预设射线的方向。
197.在一些实施方式中,确定单元320具体可以用于:
198.述确定预设射线与初始虚拟地貌的碰撞点,可以包括:
199.确定预设射线与初始虚拟地貌的碰撞位置;
200.将目标点移动至初始虚拟地貌的碰撞位置,得到碰撞点。
201.(三)调整单元330
202.用于根据预设方向,调整碰撞点的位置,得到地表位置点,预设方向与初始虚拟地貌的高度相关。
203.在一些实施方式中,调整单元330具体可以用于:
204.根据预设方向,调整碰撞点的位置,得到候选位置点;
205.将候选位置点作为目标点,重复执行步骤根据预设射线以及目标点,对初始虚拟地貌进行碰撞检测,确定碰撞点,至步骤根据预设方向,调整碰撞点的位置,得到候选位置点,直至不存在碰撞点,地表位置点为由候选位置点确定的位置点。
206.在一些实施方式中,调整单元330还可以用于:
207.若目标点与地表位置点之间的距离大于预设值,根据目标点以及地表位置点,确定目标方向;
208.沿目标方向,调整目标点的位置,以更新地表位置点的位置。
209.(四)地貌生成单元340
210.地貌生成单元,用于根据地表位置点,生成目标虚拟地貌。
211.在一些实施方式中,地貌生成单元340具体可以用于:
212.当预设点包括第二顶点时,根据地表位置点的高度,调整第一顶点的高度,得到目标位置点;
213.根据地表位置点以及目标位置点,生成目标虚拟地貌。
214.在一些实施方式中,地貌生成单元340还可以用于:
215.获取第一场景地貌以及第二场景地貌,第一场景地貌以及第二场景地貌分别由目标虚拟地貌以及初始虚拟地貌映射到虚拟场景中得到;
216.根据第二场景地貌的高度场,调整第二场景地貌的高度场,得到目标场景地貌。
217.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
218.由此,本技术实施例可以由初始虚拟地貌自动生成与初始虚拟地貌所在的虚拟场景的适配度高的目标虚拟地貌,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。
219.相应的,本技术实施例还提供一种计算机设备,该计算机设备可以为终端或服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理(personal digital assistant,pda)等终端设备。
220.如图4所示,图4为本技术实施例提供的计算机设备的结构示意图,该计算机设备
400包括有一个或者一个以上处理核心的处理器410、有一个或一个以上计算机可读存储介质的存储器420及存储在存储器420上并可在处理器上运行的计算机程序。其中,处理器410与存储器420电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
221.处理器410是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
222.在本技术实施例中,计算机设备400中的处理器410会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器420中,并由处理器410来运行存储在存储器420中的应用程序,从而实现各种功能:
223.获取初始虚拟地貌的地形形状;确定预设射线与初始虚拟地貌的碰撞点,预设射线经过目标点,目标点包括地形形状的预设点;根据预设方向,调整碰撞点的位置,得到地表位置点,预设方向与初始虚拟地貌的高度相关;根据地表位置点,生成目标虚拟地貌。
224.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
225.可选的,如图4所示,计算机设备400还包括:触控显示屏430、射频电路440、音频电路450、输入单元460以及电源470。其中,处理器410分别与触控显示屏430、射频电路440、音频电路450、输入单元460以及电源470电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
226.触控显示屏430可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏430可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(lcd,liquid crystal display)、有机发光二极管(oled,organic light-emitting diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,并能接收处理器410发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏430而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏430也可以作为输入单元460的一部分实现输入功能。
227.在本技术实施例中,通过处理器410执行游戏应用程序在触控显示屏430上生成图形用户界面,图形用户界面上的虚拟场景中包含至少一个技能控制区域,技能控制区域中
包含至少一个技能控件。该触控显示屏430用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
228.射频电路440可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
229.音频电路450可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路450可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路450接收后转换为音频数据,再将音频数据输出处理器410处理后,经射频电路440以发送给比如另一计算机设备,或者将音频数据输出至存储器420以便进一步处理。音频电路450还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
230.输入单元460可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
231.电源470用于给计算机设备400的各个部件供电。可选的,电源470可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源470还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
232.尽管图4中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
233.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
234.由上可知,本实施例提供的计算机设备可以由初始虚拟地貌自动生成与初始虚拟地貌所在的虚拟场景的适配度高的目标虚拟地貌,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。
235.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
236.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种虚拟地貌的生成方法中的步骤。例如,该计算机程序可以执行如下步骤:
237.获取初始虚拟地貌的地形形状;确定预设射线与初始虚拟地貌的碰撞点,预设射线经过目标点,目标点包括地形形状的预设点;根据预设方向,调整碰撞点的位置,得到地表位置点,预设方向与初始虚拟地貌的高度相关;根据地表位置点,生成目标虚拟地貌。
238.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
239.其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
240.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种虚拟地貌的生成方法中的步骤,因此,可以实现本技术实施例所提供的任一种虚拟地貌的生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
241.以上对本技术实施例所提供的一种虚拟地貌的生成方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。

技术特征:


1.一种虚拟地貌的生成方法,其特征在于,包括:获取初始虚拟地貌的地形形状;确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;根据所述地表位置点,生成目标虚拟地貌。2.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述获取初始虚拟地貌的地形形状,包括:将所述初始虚拟地貌转换为形状线条;根据所述形状线条,生成符合所述形状线条的形状的面片模型,得到地形形状,所述面片模型包括至少一个面片组件。3.如权利要求2所述的虚拟地貌的生成方法,其特征在于,所述获取初始虚拟地貌的地形形状,以及确定预设射线与所述初始虚拟地貌的碰撞点之间,还包括:从所述面片组件的顶点中确定第一顶点和第二顶点,所述第一顶点以及所述第二顶点沿所述预设方向的高度不同;根据所述第一顶点和所述第二顶点,确定预设射线的方向。4.如权利要求3所述的虚拟地貌的生成方法,其特征在于,所述根据所述面片组件的顶点沿所述预设方向的高度,从所述面片组件的顶点中确定第一顶点和第二顶点,包括:分别获取所述面片组件中所有第一侧顶点的高度值、以及所有第二侧顶点的高度值,得到第一高度总和以及第二高度总和,所述第一侧顶点以及所述第二侧顶点分别位于所述面片组件的两侧;将所述第一高度总和以及所述第二高度总和中,相对较大的一方对应的顶点确定为第一顶点、相对较小的一方对应的顶点确定为第二顶点。5.如权利要求3所述的虚拟地貌的生成方法,其特征在于,所述根据所述第一顶点和所述第二顶点,确定预设射线的方向,包括:根据关联的任一所述第一顶点以及任一所述第二顶点,确定任一预设射线的方向。6.如权利要求3所述的虚拟地貌的生成方法,其特征在于,所述根据所述地表位置点,生成目标虚拟地貌,包括:当所述预设点包括所述第二顶点时,根据所述地表位置点的高度,调整所述第一顶点的高度,得到目标位置点;根据所述地表位置点以及所述目标位置点,生成目标虚拟地貌。7.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述获取初始虚拟地貌的地形形状,包括:将所述初始虚拟地貌转换为形状线条,得到地形形状。8.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述确定预设射线与所述初始虚拟地貌的碰撞点,包括:确定所述预设射线与所述初始虚拟地貌的碰撞位置;将所述目标点移动至所述初始虚拟地貌的碰撞位置,得到碰撞点。
9.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述根据预设方向,调整所述碰撞点的位置,得到地表位置点,包括:根据预设方向,调整所述碰撞点的位置,得到候选位置点;将所述候选位置点作为所述目标点,重复执行步骤根据预设射线以及目标点,对所述初始虚拟地貌进行碰撞检测,确定碰撞点,至步骤根据预设方向,调整所述碰撞点的位置,得到候选位置点,直至不存在所述碰撞点,所述地表位置点为由所述候选位置点确定的位置点。10.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述根据预设方向,调整所述碰撞点的位置,得到地表位置点之后,还包括:若所述目标点与所述地表位置点之间的距离大于预设值,根据所述目标点以及所述地表位置点,确定目标方向;沿所述目标方向,调整所述目标点的位置,以更新所述地表位置点的位置。11.如权利要求1所述的虚拟地貌的生成方法,其特征在于,所述根据所述地表位置点,生成目标虚拟地貌之后,还包括:获取第一场景地貌以及第二场景地貌,所述第一场景地貌以及所述第二场景地貌分别由所述目标虚拟地貌以及所述初始虚拟地貌映射到虚拟场景中得到;根据所述第二场景地貌的高度场,调整所述第二场景地貌的高度场,得到目标场景地貌。12.一种虚拟地貌的生成装置,其特征在于,包括:形状生成单元,用于获取初始虚拟地貌的地形形状;确定单元,用于确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;调整单元,用于根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;地貌生成单元,用于根据所述地表位置点,生成目标虚拟地貌。13.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~11任一项所述的虚拟地貌的生成方法中的步骤。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~11任一项所述的虚拟地貌的生成方法中的步骤。

技术总结


本申请实施例公开了虚拟地貌的生成方法、装置、计算机设备和存储介质;本申请实施例获取初始虚拟地貌的地形形状;确定预设射线与所述初始虚拟地貌的碰撞点,所述预设射线经过目标点,所述目标点包括所述地形形状的预设点;根据预设方向,调整所述碰撞点的位置,得到地表位置点,所述预设方向与所述初始虚拟地貌的高度相关;根据所述地表位置点,生成目标虚拟地貌。在本申请实施例中,可以由初始虚拟地貌自动生成与初始虚拟地貌所在的虚拟场景的适配度高的目标虚拟地貌,能直接映射在虚拟场景中,不仅生成效率高,还能优化显示效果。还能优化显示效果。还能优化显示效果。


技术研发人员:

沈忠勇 石皓

受保护的技术使用者:

网易(杭州)网络有限公司

技术研发日:

2022.10.12

技术公布日:

2022/12/26

本文发布于:2023-03-05 17:09:03,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/66467.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地貌   顶点   位置   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图