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

一种地形贴图处理方法、装置、电子设备及存储介质与流程

2022-11-23 15:57:45 来源:中国专利 TAG:


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.当添加第n个层映射时,n为大于1的整数,获取第1至n个层映射的当前灰度权重,所述当前灰度权重大于0且小于1;
27.根据所述当前灰度权重之和,对各所述层映射的当前灰度权重进行校准,使得第1至n个层映射校准后权重之和为1,将校准后权重作为所述映射层的灰度权重。
28.可选的,在所述根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染之前,所述方法还包括:
29.计算所述地形模型对应的所有地表图层的灰度权重之和;
30.当所述灰度权重之和不等于1时,对所述灰度权重进行调整,以使所述灰度之和等于1;
31.所述根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染,包括:
32.根据所述地表图层及所述地表图层调整后的灰度权重,对所述地形模型进行渲染。
33.可选的,所述根据所述地形高度图及所述层映射的层颜色,生成所述层映射对应的地表图层,包括:
34.判断已添加的两个层映射的层颜色是否相同;
35.当所述两个层映射的层颜色相同时,将所述两个层映射对应的地表图层合并为一个地表图层。
36.可选的,所述获取所述层映射的层颜色,包括:
37.获取所述地形模型对应的地形类型,和/或所述层映射对应的材质类型;
38.根据所述地形类型和/或材质类型确定所述层映射对应的候选颜色集合;
39.根据接收到对所述候选颜色集合中颜色的选择指令,将选定的颜色作为所述层颜色。
40.可选的,根据所述地形高度图及所述层映射的层颜色,生成所述层映射对应的地
表图层,包括:
41.对所述地形高度图中个像素点的灰度值与所述映射层的层颜色进行计算,得到所述层映射中对应地表图层中各像素点的像素值;
42.根据所述地表图层中各像素点的像素值,得到所述地表图层;
43.所述根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染,得到渲染后的第一地形文件,包括:
44.获取所述地形模型中各像素点对应的各地表图层中像素点的像素值及所述地表图层的灰度权重;
45.将所述像素点的像素值与灰度权重进行加权求和,得到所述地形模型中各像素点的像素值;
46.根据所述地形模型中各像素点的像素值,得到渲染后的第一地形文件。
47.可选的,所述根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染,得到渲染后的第一地形文件,包括:
48.获取所述地形模型对应的图层标识;
49.识别带有所述图层标识的地表图层;
50.根据带有所述图层标识的地表图层对所述地形模型进行渲染,得到渲染后的第一地形文件。
51.可选的,所述方法还包括:
52.将所述第一地形文件转换为引擎类型对应格式的第二地形文件,所述引擎类型为所述第一地形文件所需导入游戏引擎的引擎类型;
53.若所述游戏引擎为网格系统类型,获取待生成地图文件对应的网格参数;
54.根据所述网格参数,将所述第二地形文件切分为地图网格,将所述地图网格作为所述引擎类型对应的地图文件;
55.将所述地图网格存储到所述游戏引擎对应的存储位置,由所述游戏引擎根据所述地图网格进行地图展示。
56.可选的,所述方法还包括:
57.根据引擎类型确定所述游戏引擎支持的渲染层数阈值,所述引擎类型为所述第一地形文件所需导入游戏引擎的引擎类型;
58.当所述地形模型对应的地表图层的层数大于所述渲染层数阈值时,根据所述地表图层的灰度权重对所述地表图层进行筛选,得到目标地表图层;
59.调整所述目标地表图层的灰度权重,以使调整后所有目标地表图层的灰度权重之和等于1;
60.根据调整后的所有目标地表图层对所述地形模型进行渲染,得到所述引擎类型对应的地图文件。
61.根据本技术实施例的另一个方面,提供了一种地形贴图处理装置,包括:
62.获取模块,用于获取地形模型对应的地形高度图,所述地形高度图中的像素点对应所述地形模型的顶点,所述像素点的灰度值对应所述顶点的高度值;
63.添加模块,用于根据接收到的图层添加指令添加层映射,获取所述层映射的灰度权重和层颜色;
64.图层生成模块,用于根据所述地形高度图及所述层映射的层颜色,生成所述层映射对应的地表图层,其中,所述地表图层用于对所述地形模型进行贴图处理,所述地表图层的灰度权重为所述地表图层对应的层映射的灰度权重;
65.地形渲染模块,用于根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染,得到渲染后的第一地形文件。
66.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述地形贴图处理方法的步骤。
67.根据本技术实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
68.所述存储器,用于存放计算机程序;
69.所述处理器,用于执行计算机程序时,实现上述地形贴图处理方法的步骤。
70.根据本技术实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述地形贴图处理方法的步骤。
71.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
72.利用地形模型的地形高度图,可根据添加层映射的灰度权重及层颜色自动生成用于贴图的地表图层,无需设计人员手动绘制图层或为地形模型设置各种复杂的参数,并且,后续如果需要修改贴图,可以通过调整其中某个图层即可,无需对所有图层都进行修改,综上,本实施例的地形贴图处理方法可以降低创建和修改地形贴图的难度,提高地形贴图制作效率,且制作的地形贴图在后期能够方便快捷地进行修改。
附图说明
73.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
74.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
75.图1为本技术实施例提供的一种地形贴图处理方法的流程示意图;
76.图2为本技术另一实施例提供的一种地形贴图处理方法的流程示意图;
77.图3为本技术另一实施例提供的一种地形贴图处理方法的流程示意图;
78.图4为本技术另一实施例提供的一种地形贴图处理方法的流程示意图;
79.图5为本技术实施例提供的地形制作工具编辑界面示意图;
80.图6为本技术实施例提供的地形制作工具另一编辑界面示意图;
81.图7为本技术实施例提供的地形制作工具另一编辑界面示意图;
82.图8为本技术实施例提供的地形制作工具另一编辑界面示意图;
83.图9为本技术实施例提供的一种地形贴图处理装置的框图;
84.图10为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
85.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
86.现有地形制作工具,对于地形涉及的宏观特征把控不清楚,迭代效率较低。另外,绘制笔刷的尺寸和细节很难做到精致细腻以及逼真的程度,图层绘制效果不好。
87.本技术实施例提供的地形图层处理方法,提供一种新的地形制作工具,不仅能够帮助设计师高效地制作地形贴图,并且制作的地形贴图在后期能够方便快捷地进行修改,进一步还能够增强对地形宏观特征的把控,提高迭代效率以及地表贴图的逼真效果。
88.下面对本发明实施例所提供的一种地形贴图处理方法进行介绍。
89.实施例一
90.图1为本技术实施例提供的一种地形贴图处理方法的流程示意图。如图1所示,该方法包括以下步骤s11-s14:
91.步骤s11,获取地形模型对应的地形高度图,地形高度图中的像素点对应地形模型的顶点,像素点的灰度值对应顶点的高度值;
92.步骤s12,根据接收到的图层添加指令添加层映射,获取层映射的灰度权重和层颜色;
93.步骤s13,根据地形高度图及层映射的层颜色,生成层映射对应的地表图层,其中,地表图层用于对地形模型进行贴图处理,地表图层的灰度权重为地表图层对应的层映射的灰度权重;
94.步骤s14,根据地表图层及地表图层的灰度权重,对地形模型进行渲染,得到渲染后的第一地形文件。
95.下面对上述实施例方法中的各个步骤进行详细说明。
96.(1)关于步骤s11
97.上述步骤中的地形模型,可以通过地形制作工具构建得到。在该地形制作工具中,可以通过选择初始模型及调整模型参数来快速生成地形模型,并基于地形模型来搭建目标地形。
98.基于该地形模型可以生成地形高度图(heightmap)。地形上每个点的高度被表示为一个矩阵中的一列值,这个矩阵通过地形高度图来表示。地形高度图为灰度图,图中近黑色的、较暗的颜色表示较低的点,接近白色的、较亮的颜色表示较高的点。通过地形高度图中各像素点的灰度值,可以分析得到地形高度图的地形类型、地形参数等信息。
99.本实施例步骤s11中的的地形模型可以通过以下地形构建方法得到,该地形构建方法包括步骤a1-a4。
100.步骤a1,依据接收到的模型选择指令在预设地形模型中确定初始模型,预设地形模型包括基础山脉模型和/或平台山脉模型。
101.其中,预设地形模型还可包括其他地形类型对应的模型,如平原、丘陵、盆地、高原等等,不同地形类型可预设多种不同模型供生成地形时选择。
102.确定初始模型后,可以展示该初始模型对应的编辑面板,在编辑面板上,可对该初始模型的多个模型参数进行调整。在确定初始模型后,也可在设置在显示该初始模型的视图界面上,显示用于调整该初始模型的可调节关键点。
103.步骤a2,依据接收到的模型调整指令调整初始模型的模型参数以生成第一地形模型。
104.该步骤中,可以通过在编辑面板上输入模型参数对应的参数值来对初始模型进行调整;编辑面板上也可以设有模型参数对应的调节控件,如滑块、滚轮、下拉菜单等,通过操作调节控件来调整模型参数的参数值。若该初始模型的视图界面上,显示用于调整该初始模型的可调节关键点,则可通过拖动关键点移动,以达到调节初始模型的目的。
105.步骤a3,利用第一地形模型生成第一目标地形。
106.该步骤中,通过选择初始模型并调节模型参数后生成的地形模型,可以用来生成所需的目标地形。上述生成的地形模型数量可以由多个,可将多个地形模型组合在一起得到目标地形。
107.步骤a4,对第一目标地形进行渲染,得到渲染后的第一地形文件。
108.通过上述实施例的地形创建方式,可以快速生成地形模型,并且由于地形模型是通过调整参数来生成的,后续可以对地形模型再次加以利用而无需重新生成,如需调整,也只需修改模型参数即可,提高地形生成效率,减少游戏地形场景开发时间及工作量。
109.在地形创建过程中,根据设计需要,可以将多个地形模型合并为一个地形。地形模型可以通过上述选择初始模型并调整模型参数的方式生成,也可通过导入的外部地形文件生成。该外部地形文件中可包含生成地形模型所需的地形属性和/或模型参数,通过解析外部地形文件,基于地形属性和/或模型参数,生成其对应的地形模型。
110.另外,可以对形成的地形组合进行侵蚀,以提高地形模拟的真实性。在上述步骤a3中,当接收到侵蚀处理指令后,根据侵蚀处理指令获取地形组合对应的侵蚀规则;根据侵蚀规则对地形组合进行侵蚀处理,得到第一目标地形。通过侵蚀处理可以使得创建的地形更加符合自然规律且更加逼真,使生成的带自然侵蚀效果的地形资源的具有较高的真实程度,既节省人力、时间和工作量,又能够保证了地形资源的真实效果,提高了场景资源的生成效率,缓解了游戏场景资源的生成效率较低的技术问题。
111.(2)关于步骤s12
112.针对创建好的地形模型,可以为该地形模型创建至少一层用于贴图的地表图层(layer)。
113.在本实施例提供的地形制作工具中,可以提供用于添加layer的控件,用户通过对该控件进行操作,根据需要为地形模型添加一层或多层layer。对于该地形制作工具来说,接收到图层添加指令后,添加相应的层映射(cd_ramp),该层映射的层颜色和灰度权重可由设计人员设置。
114.每添加一个层映射,实际上就是添加一层地表图层,该地形制作工具可以根据地形高度图及层映射的相关参数,自动计算得到该层映射对应的地表图层。
115.其中,层映射的灰度权重用于指示在地形模型贴图时,该地表图层对整个地表渲染效果的影响程度。一般由设计人员为每个层映射设置灰度权重。所有地表图层的灰度权重之和应等于1。
116.在地形制作工具的图层编辑界面上,可提供颜色条,设计人员可以在该颜色条上添加一个颜色节点,即添加指定层颜色的映射层,通过在颜色条上滑动该颜色节点对应的滑块,可以调整映射层的层颜色。
117.(3)关于步骤s13
118.对于添加的层映射,地形制作工具根据步骤s11中的地形高度图以及步骤s12中层映射的层颜色,生成该层映射对应的地表图层。
119.上述步骤s13包括:
120.步骤b1,对地形高度图中个像素点的灰度值与映射层的层颜色进行计算,得到层映射中对应地表图层中各像素点的像素值;
121.步骤b2,根据地表图层中各像素点的像素值,得到地表图层。
122.在步骤s11中得到的地形高度图中,每个像素点的灰度值均对应地形模型中顶点的高度信息。在根据层颜色生成层映射对应的地表图层时,通过像素点在地形高度图的灰度值来确定该像素点在地表图层中对应颜色的饱和度。
123.例如,该映射层的层颜色为绿色,在生成的地表图层中,灰度值高的像素点对应的绿色饱和度高,而灰度值低的像素点对应的绿色饱和度低。
124.在可选实施方式中,可以预先设置灰度值与颜色饱和度之间的对应关联,对于添加的层映射,基于地形模型对应的地形高度图中各像素点的灰度值查询对应的颜色饱和度值,根据该颜色饱和度及层映射的层颜色,得到各像素点对应的颜色值,从而得到该层映射对应的地形图层。
125.(4)关于步骤s14
126.在生成地形模型对应的所有地表图层后,由于地表图层的数量一般为多个,因此,涉及到多个图层的叠加。每个地表图层对地表渲染效果的影响程度不同,通过灰度权重来体现。灰度权重高的地表图层,对整个地表渲染效果的影响程度强,而灰度权重低的地表图层,对整个地表渲染效果的影响程度要弱。
127.可选的,上述步骤s14包括步骤c1-c3:
128.步骤c1,获取地形模型中各像素点对应的各地表图层中像素点的像素值及地表图层的灰度权重;
129.步骤c2,将像素点的像素值与灰度权重进行加权求和,得到地形模型中各像素点的像素值;
130.步骤c3,根据地形模型中各像素点的像素值,得到渲染后的第一地形文件。
131.在步骤s14中,对于地形模型上的各个像素点,均将其在各地表图层中的像素值与地表图层的灰度权中进行加权求和,得到该像素点在渲染后地形中的像素值。
132.在另一可选实施方式中,设计人员可能制作多个地表图层,但并非全部地表图层都是有效的,即仅部分图层用于后续渲染。因此,可为有效的地表图层添加图层标识,后续渲染时仅使用带有该图层标识的地表图层进行计算。可选的,上述步骤s14包括步骤d1-d3:
133.步骤d1,获取地形模型对应的图层标识;
134.步骤d2,识别带有图层标识的地表图层;
135.步骤d3,根据带有图层标识的地表图层对地形模型进行渲染,得到渲染后的第一地形文件。
136.例如,有效地表图层的层名称可添加前缀“tm_”,则有效地表图层可以为“tm_layer01”,“tm_layer02
”……
137.在所有地表图层生成完毕后,设计人员人可以对各地表图层进行编辑,或在视窗
中对其进行展示。可选的,该方法还包括:步骤s15,在图层编辑界面上根据接收到的图层选定指令,对被选定的地表图层进行编辑,和/或在视窗中显示被选定的地表图层。在完成地表图层的编辑后,再执行步骤s14,使用编辑后的地表图层对地形模型进行渲染。
138.如图8所示,图中81部分的选定框被选的地表图层,就可进行编辑,并在视窗中显示。
139.上述实施例一,利用地形模型的地形高度图,可根据添加层映射的灰度权重及层颜色自动生成用于贴图的地表图层,无需设计人员手动绘制图层或为地形模型设置各种复杂的参数,并且,后续如果需要修改贴图,可以通过调整其中某个图层即可,无需对所有图层都进行修改,综上,本实施例的地形贴图处理方法可以降低创建和修改地形贴图的难度,提高地形贴图制作效率,且制作的地形贴图在后期能够方便快捷地进行修改。
140.实施例二
141.本实施例中,地表图层可以是对整个地形模型的贴图图层,也可以仅是局部地形的贴图图层。上述实施例一中的步骤s13可包括步骤e1-e3:
142.步骤e1,获取地形模型对应的贴图区域;
143.步骤e2,从地形高度图中,选择贴图区域对应的部分作为目标灰度图;
144.步骤e3,根据目标灰度图及层映射的层颜色,生成贴图区域对应的地表图层。
145.上述步骤e1中的贴图区域,可以是整个地形,也可以是局部地形。对于局部地形生成贴图图层时,根据该局部地形对应的地形高度图进行计算,以生成该局部地形对应的地表图层。
146.本实施例的方案,可以根据设计需要,当仅需要对局部地形进行贴图时,为该局部地形生成地表图层,而无需进行全地图计算,生成整个地形对应的地表图层,这样,大大降低地形贴图计算量,提高了地形贴图制作效率。
147.为实现对贴图区域的按需设置,可以为地形模型设置区域遮罩,区域遮罩的范围指示贴图区域。上述步骤e1包括:识别地形模型中各像素点对应的区域遮罩值;根据区域遮罩值大于预设阈值的像素点,确定贴图区域。
148.例如,可以设置区域遮罩值可为0-1,区域遮罩值非0的区域被识别为贴图区域。如果需要对整个地形进行贴图计算,则可设置整个地形模型各像素点对应的区域遮罩值均大于0。对于区域遮罩值为0的区域,将不会为其创建任何地表图层的信息。
149.如图5所示,可以在地形上手动设置贴图区域,如图中地图上的深色区域,即为标记出的贴图区域。
150.由于通常需要对整个地形进行贴图,因此,如图6所示,在本技术实施例的地形制作工具中可设置一个用于控制对整个地形进行贴图计算的控件(“allmask”按键61),若设计人员点击该控件,则自动为地形模型添加一个所有像素点对应遮罩值为1的区域遮罩。
151.可选的,该区域遮罩值的大小可以根据地形模型中所需涉及的材质的取值范围来控制。例如,区域遮罩值为1(最大)的点分布在所要制作的地图的山岩部分;区域遮罩值在0.5-1之间的点,分布在山坡上的地貌,如山地草,或山地流土等;区域遮罩值在0.1-0.5之间的点,分布在是平原类型的草地,依次等等。这样,通过区域遮罩值的大小,就得到一个地形模型对应的线性灰度图。
152.实施例三
153.上述步骤s11中的地形模型,通常是侵蚀处理后的模型。在完成地形模型的搭建后,可以对形成的地形进行侵蚀,以提高地形模拟的真实性。侵蚀是指在在风、浪、流作用下,岸滩表面物质被逐渐剥落分离的过程,地表物质在外应力作用下从地面分离的过程。
154.对于侵蚀后的地形,在创建贴图图层时,需要引入地形模型的侵蚀效果。
155.如图2所示,本实施例方法还包括:
156.步骤s16,获取地形模型对应的侵蚀信息。
157.上述步骤s14包括:
158.步骤s141,根据侵蚀信息,对地表图层进行侵蚀处理,得到目标地表图层,目标地表图层用于对地形模型进行贴图处理;
159.步骤s142,根据目标地表图层及地表图层的灰度权重,对地形模型进行渲染,得到第一地形文件。
160.本实施例中,根据地形模型的侵蚀信息生成用于渲染的地表图层,并采用该地表图层渲染地形模型,使得最终渲染后的地形更加符合自然规律且更加逼真,使生成的带自然侵蚀效果的地形资源的具有较高的真实程度,既节省人力、时间和工作量,又能够保证了地形资源的真实效果,提高了场景资源的生成效率,缓解了游戏场景资源的生成效率较低的技术问题。
161.实施例四
162.在制作地表图层的过程中,为了实现地形更加细致逼真的效果,通常会为制作多个用于贴图的地表图层。但当添加了多个层映射后,设计人员可能会忽略各层映射的灰度权重之和应等于1,此时,可以根据设计人员为层映射预设的权重,自动计算该层映射所对应的灰度权重。
163.本实施例中,可以在每添加一个层映射时,都对当前所有层映射的灰度权重进行调整,也可以在完成所有地表图层生成后,在渲染前对所有地表图层的灰度权重进行调整。
164.(1)第一种方式
165.每添加一个层映射时,都对当前所有层映射的灰度权重进行调整。上述步骤s12中获取层映射的灰度权重,包括步骤f1和f2:
166.步骤f1,当添加的第n个层映射时,n为大于1的整数,获取第1至n个层映射的当前灰度权重,当前灰度权重大于0且小于1;
167.步骤f2,根据当前灰度权重之和,对各层映射的当前灰度权重进行校准,使得第1至n个层映射校准后权重之和为1,将校准后权重作为映射层的灰度权重。
168.步骤f2中对灰度权重的校准,可以采用多种方式。例如:计算第1至n个层映射当前灰度权重w
′1……w′n之和;基于当前灰度权重之和对各层映射的当前灰度权重w
′i进行如下公式的校准计算,得到第i个层映射的校准后权重wi:
[0169][0170]
例如,设置第一个层映射的当前权重为0.5;添加第二个层映射,其设置的当前权重为0.3,则根据上述公式,计算第一、二个层映射的灰度权重分别为
当添加第三个层映射,其设置的当前权重为0.6,则根据上述公式,计算第一至三个层映射的灰度权重分别为
[0171]
本实施例中,每添加一层映射,都对所有层映射的当前权重进行校准,从而保证校准后当前所有层映射的灰度权重之和为1,此时,基于当前所有层映射生成的地表图层,可以准确体现其对整个地表渲染效果的影响,设计人员在地形制作工具的视窗上,也可以准确观察到各地表图层对地表渲染效果的影响,便于设计人员在地形贴图制作过程中,随时通过调整个地表图层的参数,以调整对地形模型的贴图效果。
[0172]
在该实施例中,对灰度权重的校准也可以有多种。
[0173]
灰度权重最大的地表图层,对整个地形渲染效果影响越大,当所有权重之和大于1时,应保留其重要影响,而优先缩小其他较小的权重。如可以采用以下任一方式校准灰度权重:
[0174]

将除灰度权重最大的灰度权重外,其他所有灰度权重进行缩小;
[0175]

将灰度权重小于第一预设权重的灰度权重缩小;
[0176]

将灰度权重按从小到大排序,依次按顺序缩小灰度权重;
[0177]

若灰度权重之和与1的差值小于灰度权重最小的第三灰度权重,将第三灰度权重减去差值;
[0178]

若灰度权重之和与1的差值大于或等于灰度权重最小的第三灰度权重,将灰度权重按从小到大排序,依次按顺序缩小灰度权重;等等。
[0179]
同理,若灰度权重之和小于1,应优先调整对整个地形渲染效果影响较大的图层权重。如可以采用以下任一方式校准灰度权重:
[0180]

可以将除灰度权重最小的灰度权重外,其他所有灰度权重进行扩大;
[0181]

将灰度权重大于第二预设权重的灰度权重扩大;
[0182]

将灰度权重按从大到小排序,依次按顺序扩大灰度权重;等等。
[0183]
灰度权重的校准方式并不限于此,在此不再赘述。设计人员可以根据需要选择所需的校准方式。
[0184]
(2)第二种方式
[0185]
在完成所有地表图层生成后,在渲染前对所有地表图层的灰度权重进行调整。上述步骤s14之前,该方法还包括:计算地形模型对应的所有地表图层的灰度权重之和;当灰度权重之和不等于1时,对灰度权重进行调整,以使灰度之和等于1。在步骤s14中,根据地表图层及地表图层调整后的灰度权重,对地形模型进行渲染。
[0186]
本实施例中,在生成所有地表图层后,对所有地表图层的灰度权重统一进行调整,从而保证渲染前所有地表图层的灰度权重之和为1。这样,无需每次添加地表图层都重新校准权重,提高图层制作效率。
[0187]
在第二种方式中,权重调整的方法与上述第一种方式中权重校准方法相同,在此不再赘述。设计人员同样可以根据需要选择所需的校准方式。
[0188]
实施例五
[0189]
在步骤s12中,设计人员在添加层映射,为层映射设置层颜色时,可能因疏忽为2个层映射配置相同颜色,此时基于这2个层映射生成的地表图层应相同,如果重复生成,则会浪费计算资源,影响贴图制作效率。
[0190]
因此,在步骤s13中,根据地形高度图和层映射的层颜色生成地表图层时,判断已添加的两个层映射的层颜色是否相同;当两个层映射的层颜色相同时,将两个层映射对应的地表图层合并为一个地表图层。即将层颜色相同的多个层映射作为一个层映射生成对应的地表图层,以节约计算资源,提高贴图制作效率。
[0191]
在实施例一中提到,在地形制作工具的图层编辑界面上提供颜色条,设计人员可以在该颜色条上添加一个颜色节点,来添加指定层颜色的映射层。如图7所示,如果添加的两个颜色节点颜色相同,如图7框71中的两个颜色节点,地形制作工具在生成图层时,将自动将这两个颜色节点合并为一个,生成一个地表图层72。
[0192]
在可选实施例中,层颜色可以由设计人员根据需要配置。但设计人员需要在大量颜色中选择所需颜色,层颜色配置效率较低。因此,可以根据地形类型或材质类型自动为设计人员匹配候选颜色集,以便涉及人员从较少颜色中选择层颜色。
[0193]
上述步骤s12获取层映射的层颜色,包括:
[0194]
步骤g1,获取地形模型对应的地形类型,和/或层映射对应的材质类型;
[0195]
步骤g2,根据地形类型和/或材质类型确定层映射对应的候选颜色集合;
[0196]
步骤g3,根据接收到对候选颜色集合中颜色的选择指令,将选定的颜色作为层颜色。
[0197]
例如,地形类型为基础山脉(basemount),如图7中menu73显示为basemount,在层映射cd_ramp的颜色条提供黄绿蓝色系的候选颜色集合,设计人员可以在该颜色条上选择各层映射对应的层颜色。
[0198]
又例如,层映射对应的材质类型可以为泥土、草地、石头等。对于材质类型为泥土的层映射,地形制作工具匹配的候选颜色集合为黄褐色系的候选颜色集合;材质类型为草地的层映射,地形制作工具匹配的候选颜色集合为黄绿色系的候选颜色集合;材质类型为石头的层映射,地形制作工具匹配的候选颜色集合为灰黑色系的候选颜色集合。
[0199]
可选的,还可同时根据地形类型及材质类型来匹配候选颜色集合。同一材质类型,在不同地形类型中,颜色也会有差别。例如,材质类型为水,对于地形类型为湖泊或海洋,候选集合颜色也不完全相同。
[0200]
在可选实施例中,基于地形类型和/或材质类型来匹配不同的候选颜色集合,不仅提高设计人员配置层颜色的效率,同时,还可以提高颜色配置的准确度和逼真度,使得最终渲染得到的地形颜色与地形类型和/或材质类型相匹配,地形渲染效果更佳逼真。
[0201]
实施例六
[0202]
本实施例中的地形制作工具,在完成地形模型的渲染后,可将最终得到的地形文件导入到游戏引擎中,对渲染后的地形进行展示。
[0203]
如图3所示,本实施例中,该方法还包括步骤s17-s19:
[0204]
步骤s17,获取第一地形文件所需导入的游戏引擎的引擎类型;
[0205]
步骤s18,根据第一地形文件生成引擎类型对应的地图文件;
[0206]
步骤s19,将地图文件导入到游戏引擎。
[0207]
由于游戏引擎的类型不同,而不同类型的游戏引擎,对地形文件的格式要求也不同,因此,在将地形文件导入到游戏引擎之前,需要将地形文件转换为引擎类型所支持的地图文件。
[0208]
如果将地形文件导入网格类型(grid)的游戏引擎,如图4所示,该方法还包括步骤s181-s184:
[0209]
步骤s181,将第一地形文件转换为引擎类型对应格式的第二地形文件,引擎类型为第一地形文件所需导入游戏引擎的引擎类型;
[0210]
步骤s182,若游戏引擎为网格系统类型,获取待生成地图文件对应的网格参数;
[0211]
步骤s183,根据网格参数,将第二地形文件切分为地图网格,将地图网格作为引擎类型对应的地图文件;
[0212]
步骤s184,将地图网格存储到游戏引擎对应的存储位置,由游戏引擎根据地图网格进行地图展示。
[0213]
网格游戏引擎,需要将地图切分成小块分别进行烘焙。例如,网格游戏引擎支持8000
×
8000的网格地图,因此,将格式转换后的地图,切分为8000
×
8000个地图网格,每个地图网格的命名可以为:grid_xxxxx_yyyyy,xxxx、yyyy分别表示地图网格对应的行列号,例如,左上角的地图网格名称为grid_x0000_y0000。将切分后的地图网格作为网格游戏引擎对应的地图文件,存储到一个指定文件夹中。后续网格游戏引擎从该指定文件夹中读取地图网格进行烘焙,以展示地图。
[0214]
由于游戏引擎计算能力的限制,对于地形模型可渲染的图层数量是有限制的,例如部分游戏引擎仅支持渲染最多4层地表图层。在可选实施例中,该方法还包括:
[0215]
步骤k1,根据引擎类型确定游戏引擎支持的渲染层数阈值,引擎类型为第一地形文件所需导入游戏引擎的引擎类型;
[0216]
步骤k2,当地形模型对应的地表图层的层数大于渲染层数阈值时,根据地表图层的灰度权重对地表图层进行筛选,得到目标地表图层;
[0217]
步骤k3,调整目标地表图层的灰度权重,以使调整后所有目标地表图层的灰度权重之和等于1;
[0218]
步骤k4,根据调整后的所有目标地表图层对地形模型进行渲染,得到引擎类型对应的地图文件。
[0219]
在上述步骤k2中,对地表图层的筛选,可以仅保留灰度权重较大的地表图层。例如,在地形制作工具中,为地形模型制作了5层有效的地表图层,分别为layer01、layer02、layer03、layer04、layer05,各地表图层的灰度权重分别为:0.22、0.38、0.08、0.11、0.21。其需输出的游戏引擎支持最多4层地表图层,则可删除灰度权重为0.08的layer03。删除layer03后,可根据实施例四中的方法对剩余四层地表图层的灰度权重进行调整,使得这四个灰度权重之和为1。
[0220]
本实施例,通过将贴图后的地形文件转换为其待导入游戏引擎支持的地图文件,以便在游戏引擎中可以对地图文件进行烘焙,展示出制作出的地图。
[0221]
下述为本技术装置实施例,可以用于执行本技术方法实施例。
[0222]
图9为本技术实施例提供的一种地形贴图处理装置的框图,该装置可以通过软件、
硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,该地形贴图处理装置包括:
[0223]
获取模块91,用于获取地形模型对应的地形高度图,所述地形高度图中的像素点对应所述地形模型的顶点,所述像素点的灰度值对应所述顶点的高度值;
[0224]
添加模块92,用于根据接收到的图层添加指令添加层映射,获取所述层映射的灰度权重和层颜色;
[0225]
图层生成模块93,用于根据所述地形高度图及所述层映射的层颜色,生成所述层映射对应的地表图层,其中,所述地表图层用于对所述地形模型进行贴图处理,所述地表图层的灰度权重为所述地表图层对应的层映射的灰度权重;
[0226]
地形渲染模块94,用于根据所述地表图层及所述地表图层的灰度权重,对所述地形模型进行渲染,得到渲染后的第一地形文件。
[0227]
本技术实施例还提供一种电子设备,如图10所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
[0228]
存储器1503,用于存放计算机程序;
[0229]
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述地形贴图处理方法实施例的步骤。
[0230]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral componentinterconnect,p c i)总线或扩展工业标准结构(extended industry standardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0231]
通信接口用于上述电子设备与其他设备之间的通信。
[0232]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0233]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0234]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述地形贴图处理方法实施例的步骤。
[0235]
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0236]
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包
括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0237]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献