地形绘制方法、装置、存储介质及设备
文献发布时间:2023-06-19 18:29:06
技术领域
本公开涉及计算机技术领域,具体地,涉及一种地形绘制方法、装置、存储介质及设备。
背景技术
三维虚拟场景的制作过程中通常包括三维建模以及模型渲染等操作。其中对地块模型的渲染涉及地形绘制。由于地块模型的面积大,且地形材质种类繁多,因此将建模得到的地块模型以及相应的地形材质加载到图形处理器运行时常常占用大量的加载以及绘制时间,地形绘制效率低。
发明内容
本公开的目的是提供一种地形绘制方法、装置、存储介质及设备,以提高地形绘制效率。
为了实现上述目的,本公开的第一方面提供一种地形绘制方法,所述方法包括:
确定地块模型上顶点对应的待绘制地形;
将用于绘制所述待绘制地形的地形材质的权重信息存储到所述顶点的顶点颜色中,得到初始地块模型;
将所述初始地块模型加载到图形处理器,并基于所述顶点中存储的地形材质的权重信息在所述初始地块模型上绘制地形。
可选地,所述用于绘制所述待绘制地形的地形材质有N种,其中任一种为地形底色,除了地形底色的(N-1)种地形材质的权重信息分别存储在所述顶点的X组顶点颜色中,每一组所述顶点颜色中至少有一个颜色通道存储有一种地形材质的权重信息,其中在每一组所述顶点颜色包括3个颜色通道的情况下,所述X为(N+1)/3,在每一组所述顶点颜色包括4个颜色通道的情况下,所述X为(N+2)/4。
可选地,所述基于所述顶点中存储的地形材质的权重信息在所述初始地块模型上绘制地形,包括:
基于预先编写的着色器获取所述顶点的顶点颜色中存储的地形材质的权重信息,并在所述初始地块模型上进行地形底色的绘制之后,基于所述地形材质的权重信息绘制地形。
可选地,所述方法还包括:
确定用于绘制所述待绘制地形的地形材质的绘制顺序;
所述基于所述顶点中存储的地形材质的权重信息在所述初始地块模型上绘制地形,包括:
基于所述地形材质的绘制顺序以及所述地形材质的权重信息在所述初始地块模型上绘制地形。
可选地,所述方法还包括:
按照预设精度确定所述地块模型中的顶点。
可选地,在基于所述顶点中存储的地形材质的权重信息在所述初始地块模型上绘制地形之前,所述方法还包括:
将用于绘制所述待绘制地形的地形材质加载到所述图形处理器。
可选地,所述预先编写的着色器被配置成将顶点的顶点颜色中存储的数据用于绘制地形。
本公开的第二方面提供一种地形绘制装置,所述装置包括:
第一确定模块,用于确定地块模型上顶点对应的待绘制地形;
存储模块,用于将用于绘制所述待绘制地形的地形材质的权重信息存储到所述顶点的顶点颜色中,得到初始地块模型;
第一加载模块,用于将所述初始地块模型加载到图形处理器,并基于所述顶点中存储的地形材质的权重信息在所述初始地块模型上绘制地形。
本公开的第三方面提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面中任一项所提供的地形绘制方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所提供的地形绘制方法的步骤。
通过上述技术方案,在确定地块模型上顶点对应的待绘制地形的情况下,将用于绘制该待绘制地形的地形材质的权重信息存储在顶点的顶点颜色中,得到初始地块模型。在此基础上,可以在将初始地块模型加载到图形处理器之后,基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形。由于预先将地形材质的权重信息存储到地块模型顶点的顶点颜色中,因此在加载初始地块模型时无需加载地形材质的权重信息,且在进行地形绘制时可以根据顶点颜色中存储的地形材质的权重信息快速进行地形绘制,由此在保证绘制质量的基础上避免出现卡顿,提高地形绘制效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种地形绘制方法的流程图。
图2是根据一示例性实施例示出的一种地形绘制装置的框图。
图3是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
相关技术在加载和绘制地块模型时,通常采用以下两种方式:
方式一,将地块模型涉及的地形数据分块导出,每一块生成不同的精度。在此基础上,根据视角和距离对地形数据的精度进行动态切换。具体地,将距离视角较远的地块采用低精度地形数据,将距离视角较近的地块采用高精度地形数据。方式二,通过地面的海拔高度信息动态生成模型,例如基于遥感测绘数据直接生成地形。
其中,方式一中的地形数据可以包括地形材质以及地形材质的相关信息。方式一解决了可视化过程中由于模型过大、地形材质繁多而导致的卡顿问题,但是由于不停地加载和释放资源(例如上述动态切换地形数据精度的过程),因此容易导致产生较多的内存碎片。并且资源在切换的过程中通常存在视觉残留,如果用户视角移动较快,远距离的高精度地形数据可能加载不及时,由此低精度地形数据在视野中残留较长时间,导致体验感下降。方式二的数据源容易获取,且数据量小,但是仅凭高度信息,往往不足以还原丰富的地貌细节。而且这种方式绘制的地形适用于从高处观看,当用户贴近地面时,则可能出现明显的模型拉伸和失真现象,由此导致沉浸感下降。
有鉴于此,本公开提供一种地形绘制方法、装置、存储介质及设备,该方法预先将地形材质的权重信息存储到地块模型顶点的顶点颜色中,因此在加载初始地块模型时无需加载地形材质的权重信息,且在进行地形绘制时可以根据顶点颜色中存储的地形材质的权重信息快速进行地形绘制,由此在保证绘制质量的基础上避免出现卡顿,提高地形绘制效率,进而提升用户体验感。
参照图1,图1是根据一示例性实施例示出的一种地形绘制方法的流程图。如图1所示,该地形绘制方法包括:
S101,确定地块模型上顶点对应的待绘制地形。
其中,顶点(Vertex)在计算机图形学中可以是存储一系列基本绘图所需属性(Attribute)的基本元素,例如可以是二维或三维空间中的点,还可以是曲面上的点。顶点的属性可以包括顶点位置、顶点颜色(VertexColor)、反射率、纹理坐标以及法向量等。地块模型可以是三维模型,地块模型上的顶点可以用于存储地形绘制所需的信息,不同的顶点可以对应不同的待绘制地形。待绘制地形通常由多种地形材质按照一定的权重比例逐层绘制而成,不同的待绘制地形所涉及的地形材质的种类以及权重不同。待绘制地形可以根据实际情况而定,本公开对此不作具体限定。
在一种可能的实现方式中,可以采用CAD(Management Software Computer AidedDesign,MS-CAD,管理软件计算机辅助设计)工具绘制待绘制地形,并将用于绘制待绘制地形的地形材质以及地形材质的权重信息预先保存。
S102,将用于绘制待绘制地形的地形材质的权重信息存储到顶点的顶点颜色中,得到初始地块模型。
其中,由于地形材质可以体现地形的颜色信息,因此可以借用顶点的顶点颜色存储用于绘制待绘制地形的地形材质的权重信息,并得到相应的初始地块模型。
在一种可能的实现方式中,可以采用CAD工具将用于绘制待绘制地形的地形材质的权重信息烘焙到顶点的顶点颜色上。在此基础上,可以将烘焙后的模型导出,得到初始地块模型。其中初始地块模型的顶点至少可以包括顶点位置以及顶点颜色等信息。
值得说明的是,预先在初始地块模型的顶点存储地形材质的权重信息,可以使得在加载初始地块模型时无需加载地形材质的权重信息,由此可以减少图形处理器加载的地形数据,进而提升地形绘制效率。
S103,将初始地块模型加载到图形处理器,并基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形。
不难理解的是,将顶点存储有地形材质的权重信息的初始地块模型加载到图形处理器(GPU,Graphics Processing Unit),可以直接根据顶点的顶点颜色中存储的地形材质的权重信息快速进行地形绘制,由此在保证绘制质量的基础上避免出现卡顿,提高地形绘制效率。
通过上述技术方案,减少了图形处理器加载的地形数据,由此将初始地块模型以及相应的地形数据加载到图形处理器占用的加载时间减少,并且在将初始地块模型加载到图形处理器后,用于绘制地形的地形数据体量小,图形处理器的绘制压力也相应减小,直接根据顶点的顶点颜色中存储的地形材质的权重信息进行地形绘制还可以进一步提升绘制速度,这样可以从整体上提高地形绘制效率,在保证绘制质量的基础上有效提高生产效率和用户体验感。
此外,对于有大量地形场景需求的虚拟现实项目时,采用本公开的这种方法,在提高地形绘制效率的同时,可以提高制作效率并且降低成本。
可选地,用于绘制待绘制地形的地形材质有N种,其中任一种为地形底色,除了地形底色的(N-1)种地形材质的权重信息分别存储在顶点的X组顶点颜色中,每一组顶点颜色中至少有一个颜色通道存储有一种地形材质的权重信息,其中在每一组顶点颜色包括3个颜色通道的情况下,X为(N+1)/3,在每一组顶点颜色包括4个颜色通道的情况下,X为(N+2)/4。
应说明的是,顶点的顶点颜色通常用于表示物体的表面颜色或预先计算的照明信息等,可以用RGB色彩空间或者RGBA色彩空间表示。其中RGB色彩空间涉及3个颜色通道,RGBA色彩空间涉及4个颜色通道,由此在采用RGB色彩空间表示顶点颜色的基础上,地块模型顶点的顶点颜色可以包括3个颜色通道,在采用RGBA色彩空间表示顶点颜色的基础上,地块模型顶点的顶点颜色可以包括4个颜色通道。其中每一个颜色通道可以存储1字节(Byte)数据,相应地,每一个颜色通道可以存储一种地形材质的权重信息。
还应说明的是,地块模型的顶点可以包括一组或多组顶点颜色。其中顶点颜色的组数X可以根据用于绘制待绘制地形的地形材质的数量以及顶点颜色的颜色通道的数量而定。示例地,若用于绘制待绘制地形的地形材质有N种,且N种地形材质中任选一种作为地形底色,那么可以无需在顶点中存储作为地形底色的地形材质的权重信息,而是将除了地形底色的(N-1)种地形材质的权重信息存储在顶点。在此基础上,若每一组顶点颜色包括3个颜色通道,那么顶点颜色的组数X可以为(N+1)/3,若每一组顶点颜色包括4个颜色通道,那么顶点颜色的组数X可以为(N+2)/4。其中(N+1)/3可以表示将(N-1)除以3的结果向上取整对应的公式,(N+2)/4可以表示将(N-1)除以4的结果向上取整对应的公式。这样可以使得每一组顶点颜色中至少有一个颜色通道存储有一种地形材质的权重信息,也即顶点颜色的数量足以存储(N-1)种地形材质的权重信息。例如,在N为9的情况下,包括3个颜色通道的顶点颜色可以设置3组,包括4个颜色通道的顶点颜色可以设置2组。
由于,顶点颜色的强度值范围通常为0~255,因此,借用顶点颜色存储的地形材质的权重信息的取值范围可以为0~255。
可选地,上述步骤S103中,在将初始地块模型加载到图形处理器后,基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形的步骤可以包括:
基于预先编写的着色器获取顶点的顶点颜色中存储的地形材质的权重信息,并在初始地块模型上进行地形底色的绘制之后,基于地形材质的权重信息绘制地形。
其中,预先编写的着色器被配置成将顶点的顶点颜色中存储的数据用于绘制地形。
应说明的是,相关技术中的顶点着色器(Vertex Shader)通常用于将顶点的顶点颜色中存储的数据传递至像素着色器(Pixel Shader),以使像素着色器进行相应的渲染工作,而不适用于本公开实施例的技术方案。由此,本公开采用预先编写的着色器获取顶点的顶点颜色中存储的地形材质的权重信息,并在初始地块模型上进行地形底色的绘制之后,基于地形材质的权重信息绘制地形。其中预先编写的着色器被配置成将顶点的顶点颜色中存储的数据用于绘制地形。
可选地,本公开实施例提供的技术方案还可以包括:
确定用于绘制待绘制地形的地形材质的绘制顺序。
可以理解的是,在地形材质的种类以及权重等条件相同的情况下,按照不同的绘制顺序绘制得到的地形不同。其中地形材质的绘制顺序可以根据待绘制地形来确定,不同的待绘制地形所涉及的地形材质的种类、权重以及绘制顺序不同。
应说明的是,在采用CAD工具绘制待绘制地形时,可以将用于绘制待绘制地形的地形材质按照绘制顺序编号保存,这样可以在导出初始地块模型时,将用于绘制待绘制地形的地形材质按照绘制顺序导出,以便将该地形材质按照绘制顺序导入可视化引擎,并在图形处理器上进行初始地块模型的地形绘制。
由此,基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形的步骤可以包括:
基于地形材质的绘制顺序以及地形材质的权重信息在初始地块模型上绘制地形。
示例地,基于预先编写的着色器获取顶点的顶点颜色中存储的地形材质的权重信息,并在初始地块模型上进行地形底色的绘制之后,基于地形材质的绘制顺序以及地形材质的权重信息在初始地块模型上绘制地形。
可选地,在基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形的步骤之前,本公开实施例提供的技术方案还可以包括:
将用于绘制待绘制地形的地形材质加载到图形处理器。
在一种可能的实现方式中,可以将用于绘制待绘制地形的地形材质按照绘制顺序加载到图形处理器。
值得说明的是,在将用于绘制待绘制地形的地形材质按照绘制顺序加载到图形处理器之后,可以利用图形处理器的并行能力,重复使用地形材质,从而进一步提升绘制效率。
可选地,本公开实施例提供的技术方案还可以包括:
按照预设精度确定地块模型中的顶点。
其中,预设精度可以根据实际情况而定,本公开对此不作具体限定。
应说明的是,预设精度越高,地块模型中的顶点越多,由此根据顶点中存储的地形材质的权重信息在初始地块模型上绘制的地形越准确,所得到的绘制完成的地块模型的效果越好。
通过上述技术方案,在确定地块模型上顶点对应的待绘制地形的情况下,将用于绘制该待绘制地形的地形材质的权重信息存储在顶点的顶点颜色中,得到初始地块模型。在此基础上,可以在将初始地块模型加载到图形处理器之后,基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形。由于预先将地形材质的权重信息存储到地块模型顶点的顶点颜色中,因此在加载初始地块模型时无需加载地形材质的权重信息,且在进行地形绘制时可以根据顶点颜色中存储的地形材质的权重信息快速进行地形绘制,由此在保证绘制质量的基础上避免出现卡顿,提高地形绘制效率。
基于相同的构思,本公开还提供一种地形绘制装置200,可用于执行上述方法实施例提供的一种地形绘制方法全部或部分的步骤,该地形绘制装置200可以以软件、硬件或者两者相结合的方式实现地形绘制方法。图2是根据一示例性实施例示出的一种地形绘制装置200的框图。参照图2,该地形绘制装置200包括:
第一确定模块201,用于确定地块模型上顶点对应的待绘制地形;
存储模块202,用于将用于绘制待绘制地形的地形材质的权重信息存储到顶点的顶点颜色中,得到初始地块模型;
第一加载模块203,用于将初始地块模型加载到图形处理器,并基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形。
通过上述地形绘制装置,减少了图形处理器加载的地形数据,由此将初始地块模型以及相应的地形数据加载到图形处理器占用的加载时间减少,并且在将初始地块模型加载到图形处理器后,用于绘制地形的地形数据体量小,图形处理器的绘制压力也相应减小,直接根据顶点的顶点颜色中存储的地形材质的权重信息进行地形绘制还可以进一步提升绘制速度,这样可以从整体上提高地形绘制效率,在保证绘制质量的基础上有效提高生产效率和用户体验感。
可选地,用于绘制待绘制地形的地形材质有N种,其中任一种为地形底色,除了地形底色的(N-1)种地形材质的权重信息分别存储在顶点的X组顶点颜色中,每一组顶点颜色中至少有一个颜色通道存储有一种地形材质的权重信息,其中在每一组顶点颜色包括3个颜色通道的情况下,X为(N+1)/3,在每一组顶点颜色包括4个颜色通道的情况下,X为(N+2)/4。
可选地,第一加载模块203被进一步配置为:
基于预先编写的着色器获取顶点的顶点颜色中存储的地形材质的权重信息,并在初始地块模型上进行地形底色的绘制之后,基于地形材质的权重信息绘制地形。
可选地,地形绘制装置200还包括第二确定模块,该第二确定模块用于:
确定用于绘制待绘制地形的地形材质的绘制顺序。
第一加载模块203被进一步配置为:
基于地形材质的绘制顺序以及地形材质的权重信息在初始地块模型上绘制地形。
可选地,地形绘制装置200还包括第三确定模块,该第三确定模块用于:
按照预设精度确定地块模型中的顶点。
可选地,地形绘制装置200还包括第二加载模块,该第二加载模块用于:
在基于顶点中存储的地形材质的权重信息在初始地块模型上绘制地形之前,将用于绘制待绘制地形的地形材质加载到图形处理器。
可选地,预先编写的着色器被配置成将顶点的顶点颜色中存储的数据用于绘制地形。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种电子设备300的框图。如图3所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的地形绘制方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的地形绘制方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的地形绘制方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的地形绘制方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的地形绘制方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
- 视图控件的绘制方法、装置、计算机设备及可读存储介质
- 一种图形的绘制方法、装置、电子设备及存储介质
- 图像绘制方法、装置、计算设备及存储介质
- PET/CT的图像融合绘制方法、装置、设备及存储介质
- Activiti流程图的重绘制方法、装置、计算机设备及存储介质
- 一种地形纹理的绘制方法及装置、电子设备、存储介质
- 一种地形纹理的绘制方法及装置、电子设备、存储介质