图像处理方法、装置、计算机设备和存储介质与流程

文档序号:26737032发布日期:2021-09-22 22:23阅读:71来源:国知局
图像处理方法、装置、计算机设备和存储介质与流程

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.上述图像处理方法、装置、计算机设备和存储介质,确定待处理图像中的显示对象的对象类别后,针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;然后将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,以通过相应的显示组件基于对象数据,生成对象类别下各显示对象的渲染元素数据。通过相应的显示组件生成的渲染元素数据后,在渲染时则可以根据单个显示组件所生成的渲染元素数据,可以仅提交一个绘制调用指令。然后就可以基于单个显示组件所生成的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。由此能够有效减少图像渲染处理过程中绘制调用指令的数量以及渲染批次的数量,从而能够有效降低图像渲染处理过程中的资源消耗,进而能够有效提高图像渲染效率。
附图说明
29.图1为一个实施例中图像处理方法的应用环境图;
30.图2为一个实施例中图像处理方法的流程示意图;
31.图3为一个实施例中图像类别对应的显示组件的结构示意图;
32.图4为一个实施例中图像类别对应的显示组件的调用流程示意图;
33.图5为一个实施例中文本类别对应的显示组件的结构示意图;
34.图6为一个实施例中文本类别对应的显示组件对应的调用流程示意图;
35.图7为另一个实施例中图像处理方法的流程示意图;
36.图8为一个具体的实施例中图像处理方法的流程示意图;
37.图9为一个实施例中通过显示组件展示显示对象后的图像的界面示意图;
38.图10为另一个实施例中通过显示组件展示显示对象的图像的界面示意图;
39.图11为一个实施例中图像处理装置的结构框图;
40.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
41.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
42.本技术提供的图像处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以从服务器104中获取场景数据,场景数据中包括显示对象对应的对象数据。终端102确定待处理图像中的显示对象的对象类别;针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;显示组件,是用于对同一对象类别下的显示对象合并渲染的自定义组件;将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,并根据对象数据生成对象类别下各显示对象的渲染元素数据;基于对象类别下的各显示对象的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
43.其中,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、计算机视觉技术以及大数据和人工智能平台等基础云计算服务的云服务器。终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
44.云计算(cloud computing)是指it(internet technology,互联网技术)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributedcomputing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
45.在一个实施例中,如图2所示,提供了一种图像处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
46.步骤s202,确定待处理图像中的显示对象的对象类别。
47.其中,待处理图像,是指当前需要处理的图像。在其中一个实施例中,待处理图像,可以是指当前需要处理的图像帧。
48.可以理解,待处理图像,具体可以是虚拟场景中待展示的图像。虚拟场景可以二维场景,也可以是三维场景,本技术在此不作限定。可以理解,在虚拟场景中,观测点的位置和视角不同,所展示的场景画面图像中的显示对象也是不同的。通过展示连续的场景画面对应的图像帧,能够展示动态的虚拟场景。
49.其中,显示对象,是指需要在待处理图像中显示的界面元素,也就是最终需要在终端的界面上展示的界面元素。具体地,待处理图像中的显示对象,是二维的显示对象。
50.可以理解,对象类别,是指显示对象的种类属性。同一对象类别下的显示对象,具有共同的特征。例如,显示对象可以包括图形、图标、文本等中的至少一种。显示对象的对象类别,可以包括图像、文本、文本的字体类别等中的至少一种。
51.可以理解的是,待处理图像可以包括底层图像和显示对象。在对待渲染图像进行渲染处理的过程中,需要对底层图像和显示对象分别进行渲染处理。其中,终端可以先绘制待处理图像中的底层的地图图像,也可以同步绘制底层的地图图像。
52.终端在对待处理图像中的显示对象进行渲染处理的过程中,需要确定待处理图像中的显示对象,以及显示对象的对象类别。然后根据显示对象的对象类别,对同一对象类别下的显示对象进行分批次渲染处理。
53.步骤s204,针对同一对象类别下的显示对象,调用与对象类别相应的显示组件。
54.其中,组件是对数据和函数方法的简单封装,用于实现相应的数据处理和操作的功能。显示组件,是用于对同一对象类别下的显示对象合并渲染的组件。本技术实施例中的显示组件,是用于对同一对象类别下的显示对象合并渲染的自定义组件。
55.可以理解的是,在对图像进行处理之前,预先自定义配置了与每一种对象类别对应的显示组件。一个对象类别对应一个相应的显示组件。
56.终端确定待处理图像中的显示对象的对象类别后,针对同一对象类别下的显示对象,则调用与该对象类别对应的显示组件,以通过对应的显示组件,对同一对象类别下的显示对象进行合并渲染处理。
57.步骤s206,将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,并根据对象数据生成对象类别下各显示对象的渲染元素数据。
58.可以理解,对象数据,是指用于显示每个显示对象时所需的每个显示对象对应的数据。渲染元素数据,是指渲染显示对象所需的渲染数据。
59.终端确定待处理图像中的显示对象后,还获取待处理图像中的显示对象对应的对象数据。终端调用与显示对象的对象类别对应的显示组件后,则将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中。终端进而通过该显示组件,根据所添加的对象数据,分别生成对象类别下每个显示对象对应的渲染元素数据。
60.步骤s208,基于对象类别下的各显示对象的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
61.可以理解,在计算机图形中,渲染是指将场景中的物体,按照设定好的纹理、材质及渲染参数等,二维投影成数字图像的过程,以在终端的屏幕上展示最终的图像效果。
62.其中,渲染批次,也即renderpass,是指对待渲染的图像帧的渲染过程中,就是对一组数据的统一处理过程,也即终端中的应用程序对应于一次向图形处理器提交的渲染指令的集合。单渲染批次,可以理解为一个渲染批次就是渲染管线的单次运行。在渲染场景的过程中,渲染批次可以理解为是一道道图像渲染处理工序。场景中的物体通常需要一次或多次渲染操作,每次渲染操作的结果会被累加到最终的呈现结果上。
63.终端根据所准备的渲染数据发起一个绘制调用指令,对一个绘制调用指令继续处理的过程,就是一个单渲染批次。其中,绘制调用指令,即draw call,是指终端的中央处理器(cpu,central processing unit)根据相应的渲染元素数据,指示终端的图形处理器(gpu,graphics processing unit)进行渲染处理的指令。也就是终端的cpu每一次基于所
准备的数据通知gpu进行处理的过程,则为一个绘制调用指令。
64.终端通过在相应的单个显示组件中,生成同一对象类别下每个显示对象对应的渲染元素数据后,则基于这些渲染元素数据发起一个对应的绘制调用指令,使得终端的图形处理器基于这些渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。由此能够将同一对象类别下每个显示对象,合并在一个绘制调用指令中进行渲染处理。
65.在其中一个实施例中,终端通过在相应的单个显示组件中,生成同一对象类别下每个显示对象对应的渲染元素数据后,还对相应的显示组件所生成的渲染元素数据,添加组件层次标识和元素集合标识。其中,具体可以是对每个渲染元素数据,均添加相同的组件层次标识和元素集合标识。还可以将该显示组件所生成的渲染元素数据添加到渲染元素集合中,然后对这个渲染元素集合添加对应的组件层次标识和元素集合标识。
66.然后终端渲染显示对象时,则根据组件层次标识和元素集合标识,调用一个单绘制调用指令。终端进而根据单绘制调用指令,基于对象类别下的各显示对象的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
67.可以理解的是,终端在渲染处理的过程中,针对相同的组件层次标识和元素集合标识所对应的渲染元素数据,只会调用一个绘制调用指令进行渲染处理。因此,终端则可以将同一对象类别对应的显示组件所生成的渲染元素数据,在一个单渲染批次中进行处理,从而实现单渲染批次中合并渲染相应对象类别下的各显示对象。
68.在其中一个实施例中,通过显示组件对应的绘制调用指令,生成与显示组件对应的蓝图;在与显示组件对应的蓝图中,基于渲染元素数据合并渲染相应对象类别下的各显示对象。由此,可以仅通过一个蓝图就能够展示出同一对象类别下的所有显示对象。
69.可以理解的是,终端在每次调用绘制调用指令之前,cpu首先确定待处理图像中的显示对象,计算每个显示对象的渲染数据,例如包括对象的材质、纹理、着色位置等数据。然后向gpu发送绘制调用指令命令,并将显示对象的渲染数据传递给gpu,以使得gpu进行高速渲染处理。如果绘制调用指令数量过多,就会导致终端的cpu需要进行大量计算,进而导致cpu的过载,影响图像的渲染处理效率以及应用的运行效率。因此在绘制过程中,如果能够减少绘制调用指令的调用,就能够有效提高渲染处理效率。
70.上述图像处理方法中,终端确定待处理图像中的显示对象的对象类别后,针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;然后将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,以通过相应的显示组件基于对象数据,生成对象类别下各显示对象的渲染元素数据。通过相应的显示组件生成的渲染元素数据后,在渲染时则可以根据单个显示组件所生成的渲染元素数据,可以仅提交一个绘制调用指令。然后就可以基于单个显示组件所生成的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。由此能够有效减少图像渲染处理过程中绘制调用指令的数量,以及渲染批次的数量,从而能够有效降低图像渲染处理过程中的资源消耗,进而能够有效提高图像渲染效率。
71.在一个实施例中,将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,并根据对象数据生成对象类别下各显示对象的渲染元素数据,包括:通过相应显示组件中的数据添加接口,将同一对象类别下的显示对象所对应的对象数据添加至显示组件中;通过显示组件中的对象绘制函数,基于添加的对象数据生成对象类别下的各显
示对象的渲染元素数据。
72.其中,显示组件,包括自定义配置的数据添加接口以及自定义配置的对象绘制函数。其中,数据添加接口,用于将对应对象类别下的显示对象对应的对象数据添加至所绑定的数据集合中;对象绘制函数,用于生成对应对象类别下的各显示对象对应的渲染元素数据。
73.具体地,终端针对同一对象类别下的显示对象,调用与对象类别相应的显示组件后,则通过相应显示组件中的数据添加接口,将同一对象类别下的显示对象所对应的对象数据添加至显示组件中,由此能够将显示对象对应的对象数据,与该对象类别对应的一个显示组件绑定。
74.然后,终端通过显示组件中的对象绘制函数,根据所添加的对象数据,分别生成对象类别下的每一个显示对象对应的渲染元素数据。终端进而能够根据该显示组件所生成的渲染元素数据,提交一个绘制调用指令,进而在单渲染批次中对这些渲染元素数据进行合并渲染处理,由此能够有效地将同一对象类别下的所有显示对象,合并一个单渲染批次中进行渲染处理,有效提高了图像中的显示对象的渲染效率。
75.在一个实施例中,上述图像处理方法还包括:通过显示数据生成函数,基于添加的对象数据,生成对象类别下的各显示对象的显示数据。
76.通过显示组件中的对象绘制函数,基于添加的对象数据生成对象类别下的各显示对象的渲染元素数据,包括:通过显示组件中的对象绘制函数,基于对象数据和显示数据,生成对象类别下的各显示对象的渲染元素数据。
77.其中,显示组件还包括自定义配置的显示数据生成函数。显示数据生成函数,用于生成对应对象类别下的各显示对象对应的显示数据。可以理解,显示数据,是指用于展示显示对象所需的数据,例如,显示数据可以包括显示对象的大小、位置、方向、角度等数据中的至少一种。
78.具体地,终端通过相应显示组件中的数据添加接口,将同一对象类别下的显示对象所对应的对象数据添加至显示组件中后,则通过该显示组件中的显示数据生成函数,根据所添加的对象数据,生成对象类别下的各显示对象所对应的显示数据。
79.然后,终端进而通过显示组件中的对象绘制函数,根据每个显示对象对应对象数据和显示数据,分别生成对象类别下的每个显示对象所对应的渲染元素数据。终端进而能够根据该显示组件所生成的渲染元素数据提交一个绘制调用指令,进而在单渲染批次中对同一对象类别下的所有显示对象进行合并渲染处理,有效提高了图像中的显示对象的渲染效率。
80.在其中一个实施例中,在确定待处理图像中的显示对象的对象类别之前,终端预先自定义配置与每一种对象类别分别对应的显示组件。具体地,针对每一种对象类别,首先构建与每一种对象类别对应的显示组件,然后对各显示组件配置自定义的数据添加接口、显示数据生成函数和对象绘制函数,从而得到自定义的与各对象类别相应的显示组件。其中,自定义的显示组件,可以是基于已有的基础显示组件增加新功能或修改相应功能,派生得到的新的扩展组件。
81.在其中一个实施例中,对象类别包括图像类别,显示组件包括与图像类别对应的显示组件。在对待处理图像进行处理之前,预先自定义配置图像类别对应的显示组件。具体
地,可以首先构建对图像类型对应的显示组件,然后对该显示组件配置数据添加接口,然后根据所配置的数据添加接口配置与该显示组件绑定的资源数据集合和描述数据集合。其中,资源数据集合,用于保存显示图像类别下的显示对象所需的原始图像资源。描述数据集合,用于保存图像类别下的显示对象对应的对象描述数据。进一步地,还对该显示组件配置相应的对象绘制函数,该对象绘制函数,用于生成图像类别下的显示对象对应的渲染元素数据。
82.在一个具体的实施例中,可以通过对图像类别对应的基础显示组件进行扩展,以自定义配置图像类别对应的显示组件。具体地,每个图像类别对应的显示组件包括两部分,例如,具有可以包括umultipleimage(可视化复合图像组件)部分和smultipleimage(运行时复合图像组件)部分。如图3所示,为一个实施例中图像类别对应的显示组件的结构示意图。其中,可视化复合图像组件部分继承自uwidget(可视化编辑控件)。其中,可视化复合图像组件部分继承自uwidget(可视化编辑控件),运行时复合图像组件部分继承自swidget(运行控件)。其中,uwidget是控件蓝图(widget blueprint)中的可视化编辑控件,方便开发者直接编辑用户界面和实现相应功能。运行时复合图像组件是运行时真正的控件,具体为一种叶子控件,此类型的控件不能添加子控件。可视化复合图像组件在运行时会转换为运行时复合图像组件。在对每一帧待处理图像进行处理时,都会遍历所有的可视化复合图像组件和运行时复合图像组件,调用显示组件中的绘制函数生成渲染所需要的draw element(渲染元素数据)。
83.其中,图像类别对应的显示组件的可视化复合图像组件部分和运行时复合图像组件部分,均配置有资源数据集合(slatebrushmap)和描述数据集合(mapelementicondatamap)。资源数据集合,用于存储展示图像类别的显示对象所需的原始图像资源。描述数据集合,用于存储显示对象的名称、坐标、大小、角度等显示信息。例如,对于图像类别的显示对象而言,则存储是显示对象对应的图像描述信息,包括对象名称、图像的资源标识、坐标、大小、角度等。
84.图像类别对应的显示组件的可视化复合图像组件部分和运行时复合图像组件部分,均配置有数据添加、数据删除、数据更新对应的函数方法,分别用于添加、删除、更新描述数据集合中的对象描述数据。运行时复合图像组件在数据加载完成后,则加载绘制函数,绘制函数可以包括显示数据生成函数和对象绘制函数。通过显示数据生成函数,根据描述数据集合中的对象描述数据生成对应的显示数据。通过对象绘制函数,根据显示对象对应的原始图像资源和显示数据,分别生成对应的渲染元素数据。
85.如图4所示,为一个实施例中图像类别对应的显示组件的调用流程示意图。终端获取待处理图像后,确定待处理图像中包括图像类别的显示对象,则调用与图像类别对应的显示组件。通过显示组件中的可视化复合图像组件部分配置的数据添加接口,添加各显示对象对应的对象描述数据,并将所添加的对象描述数据传递至该显示组件中的运行时复合图像组件中的描述数据集合。可视化复合图像组件部分根据描述数据集合中的对象描述数据,确定资源数据集合中是否存在与显示对象对应的原始图像资源。若不存在,即如果对象描述数据中有新的图像类别的显示对象的名称,在可视化复合图像组件的资源数据集合中没有使用过,则调用可视化复合图像组件中的对象创建函数来创建新的图像资源数据,并存储在资源数据集合中。
86.当数据添加完成时,调用可视化复合图像组件中的初始化函数方法,初始化加载虚拟场景中所包括的所有图像类别的显示对象所对应的原始图像资源。初始化加载完成后,并且通过可视化复合图像组件将其资源数据集合中的原始图像资源,赋值给运行时复合图像组件的资源数据集合。使得在运行时图像类别的显示组件可直接从资源数据集合读取所需的原始图像资源,进而根据各显示对象对应的对象描述数据和原始图像资源,对各显示对象进行绘制。
87.具体地,当数据添加完成后,通过运行时复合图像组件加载显示数据生成函数,例如,显示数据生成函数可以为getchildgeometry方法函数,通过显示数据生成函数根据显示对象的大小、位置、缩放等级、角度等对象描述数据,构建出当前要绘制的显示对象的fgeometry数据,即显示数据。对象描述数据中包括显示对象的空间数据,空间数据包括大小、坐标、缩放等信息。显示组件在计算每一个显示对象的显示数据时,需要对显示对象的空间数据进行转换,得到在屏幕空间对应的相对值,即需要计算出显示对象在屏幕空间对应的显示数据。
88.图像类别对应的显示组件的运行时复合图像组件部分,通过加载对象绘制函数,循环遍历描述数据集合,得到每一个显示对象的对象描述数据,并根据显示对象的名称,从资源数据集合中得到要绘制的原始图像资源的图像信息。然后根据计算出的每个显示对象的显示数据和对应的原始图像资源,生成每个显示对象对应的渲染元素数据。在对象绘制函数方法中开始遍历描述数据结合中的每一个对象描述数据,开始绘制渲染每个图像类类别的显示对象。其中,每帧绘制渲染的图像类别下的显示对象的对象数量,为添加到描述数据集合中的数据数量。
89.在其中一个实施例中,对象类别包括文本类别,显示组件包括与文本类别对应的显示组件。在对待处理图像进行处理之前,预先自定义配置文本类别对应的显示组件。具体地,可以首先构建对文本类别对应的显示组件,然后对该显示组件配置数据添加接口以及对应的描述数据集合。其中,描述数据集合,用于保存文本类别下的显示对象对应的对象资源数据和对象描述数据,其中,对象资源数据包括文本内容。进一步地,还对该显示组件配置相应的对象绘制函数,该对象绘制函数,用于生成文本类别下的显示对象对应的渲染元素数据。
90.在一个具体的实施例中,可以通过对文本类别对应的基础显示组件进行扩展,以自定义配置文本类别对应的显示组件。具体地,每个文本类别对应的显示组件包括两部分,例如,具体可以包括umultipletextblock(可视化复合文本组件)部分和smultipletextblock(运行时复合文本组件)部分。如图5所示,为一个实施例中文本类别对应的显示组件的结构示意图。其中,可视化复合文本组件部分继承自uwidget(可视化编辑控件),运行时复合文本组件部分继承自swidget(运行控件)。运行时复合文本组件部分是运行时真正的控件,具体为一种叶子控件。
91.其中,文本类别对应的显示组件的可视化复合文本组件部分和运行时复合文本组件部分,均配置有描述数据集合(mapelementtextdatamap),用于存储文本类别的显示对象对应的文本内容和对应的对象描述数据,对象描述数据可以包括大小、坐标、角度和缩放等级等数据。文本类别对应的显示组件的可视化复合文本组件部分和运行时复合文本组件部分,均配置有数据添加、数据删除对应的函数方法,分别用于添加、删除描述数据集合中的
对象描述数据。和运行时复合文本组件部分在数据加载完成后,则加载绘制函数,绘制函数可以包括显示数据生成函数和对象绘制函数。通过显示数据生成函数,根据描述数据集合中的对象描述数据生成对应的显示数据。通过对象绘制函数,根据每个显示对象对应的文本内容和显示数据,分别生成对应的渲染元素数据。
92.如图6所示,为一个实施例中文本类别对应的显示组件对应的调用流程示意图。终端获取待处理图像后,确定待处理图像中包括文本类别的显示对象,则调用与文本类别对应的显示组件。通过文本类别对应的显示组件的运行时复合文本组件的数据添加接口,将文本类别的显示对象的文本内容和对象描述数据添加至对应的描述数据集合中。确定描述数据集合中的数据是否添加完成。当数据添加完成后,通过运行时复合文本组件根据各显示对象对应的文本内容和对象描述数据,对各显示对象进行绘制。具体地,通过运行时复合文本组件中的显示数据生成函数,遍历描述数据集合中每个显示对象对应的文本内容和对象描述数据,生成每个显示对象对应的显示数据。然后结合该显示组件选择的字体,通过对象绘制函数,根据每个显示对象对应的文本内容和显示数据,分别生成与每一个显示对象对应的渲染元素数据。其中,每帧绘制渲染的文本类别下的显示对象的对象数量,为添加到描述数据集合中的数据数量。
93.在一个实施例中,将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,并根据对象数据生成对象类别下各显示对象的渲染元素数据,包括:获取同一对象类别下的显示对象所对应的对象数据;将对象描述数据添加至相应的显示组件中;基于各显示对象对应的对象资源数据和对象描述数据,生成对象类别下各显示对象的渲染元素数据。
94.其中,对象数据包括对象资源数据和对象描述数据。可以理解,对象资源数据,是指展示显示对象所需的资源数据。例如,对于图像类别的显示对象,对应的对象资源数据为原始图像资源;对于文本类别的显示对象,对应的对象资源为该显示对象自身的文本内容。对象描述数据,是指显示对象的属性数据,例如可以包括显示对象的大小、位置、方向、角度、缩放等级等数据。
95.终端确定待处理图像中的显示对象的对象类别,并针对同一对象类别下的显示对象,调用与对象类别对应的显示组件后,通过对应的显示组件的数据添加接口,获取同一对象类别下的显示对象所对应的对象数据,并将获取的对象数据中的对象描述数据添加至对应的显示组件中。具体可以添加至相应显示组件所绑定的描述数据集合中。
96.然后通过对应的显示组件,根据该显示组件所添加的各显示对象对应的对象资源数据和对象描述数据,分别生成对象类别下每个显示对象对应的渲染元素数据。由此能够通过与同一对象类别对应的显示组件,绑定该同一对象类别下的所有显示对象的对象数据,从而能够有效地根据该显示组件所生成的渲染元素数据提交一个绘制调用指令,使得在单渲染批次中对同一对象类别下的所有显示对象进行合并渲染处理,进而有效提高了图像处理效率。
97.在一个实施例中,基于各显示对象对应的对象资源数据和对象描述数据,生成对象类别下各显示对象的渲染元素数据,包括:通过相应的显示组件,根据对象描述数据生成各显示对象对应的显示数据;基于各显示对象对应的对象资源数据和显示数据,生成对象类别下各显示对象的渲染元素数据。
98.可以理解,显示对象的显示数据,具体是指最终在终端上进行显示所需的数据,例如可以包括在终端中进行显示的大小、位置、方向、角度等信息。显示对象的对象描述数据,则可以是对显示对象预设的固定的描述数据,例可以包括显示对象自身的大小、以及场景中的位置、方向、角度等信息。
99.终端通过与对象类别对应的显示组件的数据添加接口,将同一对象类别下的显示对象所对应的对象数据,添加至对应的显示组件中后。则进一步通过对应显示组件的显示数据生成函数,分别根据对象描述数据计算每个显示对象所对应的显示数据。进而根据通过对应显示组件的对象绘制函数,根据每个显示对象对应的对象资源数据和显示数据,分别生成每一个显示对象对应的渲染元素数据。
100.本实施例中,通过与同一对象类别对应的显示组件,绑定该同一对象类别下的所有显示对象的对象资源数据和对象描述数据,进而能够有效地通过这一个显示组件根据每个显示对象的对象资源数据和根据对象描述数据生成的显示数据,生成同一对象类别下的所有显示对象分别对应的渲染元素数据。
101.在一个实施例中,如图7所示,提供了另一种图像处理方法,具体包括以下步骤:
102.步骤s702,确定待处理图像中的显示对象的对象类别。
103.步骤s704,针对同一对象类别下的显示对象,调用与对象类别相应的显示组件。
104.步骤s706,获取同一对象类别下的显示对象所对应的对象数据;对象数据包括对象资源数据和对象描述数据。
105.步骤s708,将对象描述数据添加至相应的显示组件所绑定的描述数据集合中。
106.步骤s710,通过相应的显示组件,遍历描述数据集合中每个显示对象对应的对象描述数据,对各显示对象的对象描述数据进行空间转换,生成各显示对象在屏幕空间对应的显示数据。
107.步骤s712,根据各显示对象对应的对象资源数据和显示数据,生成对象类别下各显示对象的渲染元素数据。
108.步骤s714,基于对象类别下的各显示对象的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
109.其中,对象描述数据被添加至相应的显示组件所绑定的描述数据集合中。可以理解,每个显示组件都具有绑定的描述数据集合,用于存储相应对象类别下的显示对象的对象描述数据。其中,显示数据,包括显示对象在屏幕空间的几何空间信息。
110.终端通过与对象类别对应的显示组件的数据添加接口,将同一对象类别下的显示对象所对应的对象数据,添加至对应的显示组件中后。则进一步通过对应显示组件的显示数据生成函数,循环遍历描述数据集合中每个显示对象对应的对象描述数据,并对所遍历到的每一个显示对象的对象描述数据,进行空间转换,以计算每个显示对象在屏幕空间的几何空间信息,从而生成每个显示对象对应的显示数据。
111.然后,终端通过相应显示组件的对象绘制函数,根据每个显示对象对应的对象资源数据和显示数据,生成每个显示对象对应的渲染元素数据。终端进而基于相应的显示所生成的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
112.本实施例中,通过与同一对象类别对应的显示组件,绑定该同一对象类别下的所有显示对象的对象数据,由此能够有效地通过这一个显示组件,生成同一对象类别下的所
有显示对象分别对应的渲染元素数据,以使得能够将同一对象类别下的所有显示对象,合并在一个单渲染批次中进行渲染处理,进而有效提高了图像中的显示对象的渲染效率。
113.在一个实施例中,基于各显示对象对应的对象资源数据和显示数据,生成对象类别下各显示对象的渲染元素数据,包括:根据各显示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源;通过相应的显示组件,基于各显示对象对应的原始图像资源和显示数据,生成图像类别下各显示对象对应的渲染元素数据。
114.可以理解,显示对象的对象类别,包括图像类别。例如,图像类别的显示对象,可以包括图形、图标、图像等。图像类别的显示对象对应的对象资源数据,包括用于展示显示对象的原始图像资源。
115.其中,资源数据集合,是图像类别的显示组件所绑定的数据集合,用于存储显示图像类别的显示对象所需的原始图像资源。一个原始图像资源用于生成至少一个图像类别的显示对象。
116.终端确定待处理图像中的显示对象的对象类别后,若包括图像类别的显示对象,终端则调用与图像类别对应的显示组件。可以理解,图像类别的显示组件,是用于对图像类别下的显示对象合并渲染的自定义组件。
117.终端则通过图像类别的显示组件的数据添加接口,获取图像类别下的显示对象所对应的对象数据,对象数据包括对象资源数据和对象描述数据。图像类别的显示对象的对象资源数据,即为原始图像资源。
118.其中,图像类别的显示组件包括所绑定的资源数据集合。资源数据集合中,包括了已加载的用于显示图像类别的显示对象所需的原始图像资源。
119.具体地,终端通过图像类别的显示组件,获取各显示对象对应的对象描述数据,并将对象描述数据添加至该显示组件所绑定的描述数据集合中。其中,显示对象对应的对象描述数据中,包括显示对象所对应的原始图像资源的资源标识,例如,资源标识可以为图像名称。
120.终端进而根据描述数据集合中各显示对象的对象描述数据中的资源标识,从该显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源。
121.然后,终端通过相应的显示组件的显示数据生成函数,遍历描述数据集合中每个显示对象对应的对象描述数据,并对每个显示对象的对象描述数据进行空间转换,从而生成各显示对象在屏幕空间对应的显示数据。
122.终端进而通过相应的显示组件的对象绘制函数,根据每个显示对象对应的原始图像资源和显示数据,分别生成图像类别下各显示对象对应的渲染元素数据。
123.本实施例中,通过图像类别对应的显示组件,绑定图像类别下的所有显示对象的对象数据,由此能够有效地通过这一个图像类别对应的显示组件,生成图像类别下的所有显示对象分别对应的渲染元素数据,以使得能够将图像类别下的所有显示对象,合并在一个单渲染批次中进行渲染处理,有效提高了图像中图像类别下的显示对象的渲染效率。
124.在一个实施例中,上述图像处理方法还包括:当相应的显示组件所绑定的资源数据集合中,不存在与显示对象所对应的原始图像资源时,获取与显示对象所对应的原始图像资源;将原始图像资源,加载至显示组件所绑定的资源数据集合中后,返回执行根据各显
示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源的步骤。
125.可以理解,资源数据集合中,包括了已加载的用于显示图像类别的显示对象所需的原始图像资源。例如,已加载的原始图像资源,可以是在虚拟场景运行时,初始化虚拟场景的场景数据的过程中,将虚拟场景中所需的原始图像资源,预加载至图像类别的显示组件所绑定的资源数据集合中。由此,终端在对每一帧待处理图像进行渲染处理时,可以直接从资源数据集合中读取所需的原始图像资源。
126.当图像类别对应的显示组件所绑定的资源数据集合中,不存在与显示对象所对应的原始图像资源时,例如资源数据集合中的原始图像资源为加载成功或丢失时。终端则重新获取与显示对象所对应的原始图像资源,例如,终端可以从本地已加载的虚拟场景的场景数据中获取对应的原始图像资源,或者从与虚拟场景对应的服务器中获取对应的原始图像资源。
127.终端则将获取的原始图像资源,加载至该显示组件所绑定的资源数据集合中。然后终端则返回执行根据各显示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源的步骤。进而通过该显示组件,基于各显示对象对应的原始图像资源和显示数据,生成图像类别下各显示对象对应的渲染元素数据。
128.在一个实施例中,根据各显示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源,包括:当多个显示对象对应的原始图像资源为同一个原始图像资源时,通过显示组件,对资源数据集合中的原始图像资源进行复用,生成与各显示对象对应的复用图像资源。
129.通过显示组件,基于各显示对象对应的原始图像资源和对象描述数据,生成各显示对象对应的渲染元素数据,包括:通过显示组件,根据各显示对象对应的复用图像资源和对象描述数据,生成各显示对象对应的渲染元素数据。
130.可以理解,资源数据集合中存储的每个原始图像资源,用于生成至少一个图像类别的显示对象。也就是多个图像类别的显示对象,可以由一个原始图像资源生成,则资源数据集合中只存储这一个原始图像资源。当多个图像类别的显示对象由一个原始图像资源生成时,在展示每个显示对象时,可以复用这一个原始图像资源。
131.具体地,显示对象对应的对象描述数据中包括所对应的原始图像资源的资源标识。终端则可以根据每个显示对象的对象描述数据中的资源标识,确定资源数据集合中与各显示对象相匹配的原始图像资源。
132.当多个显示对象对应的原始图像资源为同一个原始图像资源时,终端则通过图像类别的显示组件,对资源数据集合中的该原始图像资源进行复用。具体地,终端可以对该原始图像资源进行复制,从而生成与各显示对象对应的复用图像资源,由此能够有效地从资源数据集合中获取与各显示对象相匹配的原始图像资源或复用图像资源。
133.终端进而通过该图像类别的显示组件,根据各显示对象对应的对象描述数据,以及各显示对象对应的原始图像资源或复用图像资源,生成各显示对象对应的渲染元素数据。
134.举例说明,例如待处理图像中图像类别的显示对象包括100个,这100个显示对象
所对应的原始图像资源包括5个。其中,每20个显示对象对应同一个原始图像资源。则图像类别对应的显示组件绑定的资源数据集合中包括已加载的5个原始图像资源。在对待处理图像进行处理时,对于共同一个原始图像资源的20个显示对象,根据每个显示对象的对象描述数据中的资源标识,确定资源数据集合中所对应的原始图像资源,然后对该原始图像资源进行复用,生成分别与20个显示对象对应的复用图像资源。然后根据每个显示对象的对象描述数据和复用图像资源,分别生成与每一个显示对象对应的20条渲染元素数据,以进一步进行渲染处理。
135.本实施例中,通过将图像类别的显示对象所对应的原始图像资源,预先加载至图像类别对应的显示组件绑定的资源数据集合中,在对每一帧待处理图像进行渲染处理时,直接从资源数据集合中读取对应的原始图像资源或复用相匹配的原始图像资源,由此能够有效减少初始化虚拟场景的场景数据时数据的加载次数,从而能够有效减少数据加载过程中的资源消耗。
136.在一个实施例中,将对象描述数据添加至相应的显示组件中,包括:将文本内容和对象描述数据添加至与显示组件绑定的描述数据集合中。
137.基于各显示对象对应的对象资源数据和对象描述数据,生成对象类别下各显示对象的渲染元素数据,包括:基于描述数据集合中的各显示对象对应的文本内容和对象描述数据,生成文本类别下各显示对象的渲染元素数据。
138.可以理解,显示对象的对象类别,包括文本类别。例如,文本类别的显示对象,可以包括文字、字符等。文本类别的显示对象对应的对象资源数据,包括用于展示显示对象的文本内容。
139.终端确定待处理图像中的显示对象的对象类别后,若包括文本类别的显示对象,终端则调用与文本类别对应的显示组件。可以理解,文本类别的显示组件,是用于对文本类别下的显示对象合并渲染的自定义组件。
140.具体地,终端通过文本类别的显示组件中的数据添加接口,获取文本类别下的显示对象所对应的对象数据,对象数据包括文本内容和对象描述数据。文本类别的显示对象的对象资源数据即为文本内容。终端并将每个文本类别的显示对象对应的文本内容和对象描述数据,添加至该显示组件所绑定的描述数据集合中。
141.然后,终端通过文本类别的显示组件中的显示数据生成函数,遍历描述数据集合中每个显示对象对应的对象描述数据,并对每个显示对象的对象描述数据进行空间转换,从而生成各显示对象在屏幕空间对应的显示数据。
142.终端进而通过相应的显示组件的对象绘制函数,根据每个显示对象对应的文本内容和显示数据,分别生成文本类别下各显示对象对应的渲染元素数据。
143.本实施例中,通过文本类别对应的显示组件,绑定文本类别下的所有显示对象对应的对象数据,由此能够有效地通过这一个文本类别对应的显示组件,生成文本类别下的所有显示对象分别对应的渲染元素数据,以使得能够将文本类别下的所有显示对象,合并在一个单渲染批次中进行渲染处理,有效提高了图像中文本类别下的显示对象的渲染效率。
144.在一个实施例中,将对象描述数据添加至相应的显示组件中,包括:将文本内容和对象描述数据添加至与显示组件绑定的描述数据集合中。
145.基于各显示对象对应的对象资源数据和对象描述数据,生成对象类别下各显示对象的渲染元素数据,包括:基于描述数据集合中的各显示对象对应的文本内容和对象描述数据,生成文本的字体类别下各显示对象的渲染元素数据。
146.可以理解,显示对象的对象类别,包括文本的字体类别,其中,文本的字体类别包括多种,每一种文本的字体类别,对应一个显示组件。例如,文本的字体类别的显示对象,可以包括各种字体类别下的文字、字符等。对象资源数据,包括属于文本的字体类别下的显示对象的文本内容。
147.终端确定待处理图像中的显示对象的对象类别后,若包括文本的字体类别的显示对象,终端则调用与文本的字体类别对应的显示组件。可以理解,文本的字体类别对应的显示组件,是用于对同一文本的字体类别下的显示对象合并渲染的自定义组件。
148.具体地,终端通过文本的字体类别对应的显示组件中的数据添加接口,获取文本的字体类别下的显示对象所对应的对象数据,对象数据包括文本内容和对象描述数据。并将每个显示对象对应的文本内容和对象描述数据,添加至该显示组件所绑定的描述数据集合中。
149.然后,终端通过文本的字体类别对应的显示组件中的显示数据生成函数,遍历描述数据集合中每个显示对象对应的对象描述数据,并对每个显示对象的对象描述数据进行空间转换,从而生成各显示对象在屏幕空间对应的显示数据。
150.终端进而通过相应的显示组件的对象绘制函数,根据每个显示对象对应的文本内容和显示数据,分别生成文本的字体类别下各显示对象对应的渲染元素数据。
151.本实施例中,通过文本的字体类别对应的显示组件,绑定文本的字体类别下的所有显示对象对应的对象数据,由此能够有效地通过这一个文本的字体类别对应的显示组件,生成文本的字体类别下的所有显示对象分别对应的渲染元素数据,以使得能够根据该显示组件所生成的渲染元素数据提交一个绘制调用指令,进而在单渲染批次中对文本类别下的所有显示对象进行合并渲染处理,有效提高了图像中文本的字体类别下的显示对象的渲染效率。
152.在一个具体的实施例中,如图8所示,提供了另一种图像处理方法,具体包括以下步骤:
153.步骤802,确定待处理图像中的显示对象的对象类别。
154.步骤804,针对图像类别下的显示对象,调用与图像类别对应的显示组件。
155.步骤806,通过图像类别对应的显示组件,获取图像类别下的显示对象的对象资源数据和对象描述数据,将对象描述数据添加至显示组件绑定的描述数据集合中。
156.步骤808,根据各显示对象对应的对象描述数据,从图像类别对应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源。
157.步骤810,遍历描述数据集合中每个显示对象对应的对象描述数据,对各显示对象的对象描述数据进行空间转换,生成各显示对象在屏幕空间对应的显示数据。
158.步骤812,根据各显示对象对应的原始图像资源和显示数据,生成图像类别下各显示对象对应的渲染元素数据。
159.步骤814,基于图像类别对应的显示组件所生成的渲染元素数据,在单渲染批次中合并渲染图像类别下的各显示对象。
160.步骤816,针对文本类别下的显示对象,调用与文本类别对应的显示组件。
161.步骤818,通过文本类别对应的显示组件,获取文本类别下的显示对象所对应的文本内容和对象描述数据。
162.步骤820,将文本内容和对象描述数据,添加至文本类别对应的显示组件中的描述数据集合中。
163.步骤822,遍历描述数据集合中每个显示对象对应的对象描述数据,对各显示对象的对象描述数据进行空间转换,生成各显示对象在屏幕空间对应的显示数据。
164.步骤824,根据描述数据集合中的各显示对象对应的文本内容和对象描述数据,生成文本类别下各显示对象的渲染元素数据。
165.步骤826,基于文本类别对应的显示组件所生成的渲染元素数据,在单渲染批次中合并渲染文本类别下的各显示对象。
166.本实施例中,对于待展示图像中的图像类别的显示对象,通过调用图像类别对应的显示组件,并绑定图像类别下的所有显示对象所对应的对象数据,以生成图像类别下各显示对象的渲染元素数据,进而能够将图像类别的显示组件所生成的渲染元素数据,在一个单渲染批次中对图像类别下的所有显示对象合进行并渲染。
167.对于待展示图像中的文本类别的显示对象,通过调用文本类别对应的显示组件,并绑定文本类别下的所有显示对象所对应的对象数据,以生成文本类别下各显示对象的渲染元素数据,进而能够将文本类别的显示组件所生成的渲染元素数据,在一个单渲染批次中对文本类别下的所有显示对象合进行并渲染。由此能够有效减少图像渲染处理过程中的绘制调用指令以及渲染批次,从而能够减少图像渲染过程中的资源消耗,进而能够有效提高图像渲染效率。
168.本技术还提供一种应用场景,该应用场景应用上述的图像处理方法,该应用场景为游戏场景。具体地,游戏场景中包括虚拟世界地图。用户对应的终端中部署有该游戏场景对应的游戏应用,用户通过对应的终端运行游戏应用时,在终端展示虚拟世界地图,虚拟世界地图中包括低层的地图图像和显示对象。显示对象可以包括城市、要塞、奇观、联盟成员、建筑、名称以及领地等,每个显示对象包括对应的对象类别。不同的城市类型使用的城市图标不同,城市名称文本使用的字体不同;有些地图显示对象不需要名称,在地图缩放的过程中,图标或者名称根据地图缩放等级需要控制显示隐藏,如下图所示为地图放大最大时,各个地图元素显示的情况。
169.终端在运行时,确定待处理图像中的显示对象的对象类别。例如,用户可以对虚拟世界地图进行缩放,地图缩放等级不同,所要展示的显示对象可能也不同。终端可以根据地图缩放等级,确定需要显示的地图显示对象。如图9所示,为通过显示组件展示显示对象后的图像的界面示意图。从图9中可以看出,地图图像中的显示对象,包括位置图标、各个城市对应的城市图标和各个城市对应的城市名称。例如图9中的a城、b城等,以及对应的图标。其中,每个城市对应的城市图标和城市名称均为显示对象。城市图标的对象类别为图像类别,城市名称的对象类别为文本类别或相应文本的字体类别。
170.再如,游戏世界地图界面中展示虚拟对象的移动路线时,例如虚拟对象集群的行军路线,则可以用多个显示对象进行拼接,例如可以采用箭头图标,用来指示移动的过程、方向意见目的地。移动路线的长度不同,需要显示的箭头图标的数量也不同。可根据移动路
线的长度、箭头图标大小,计算出需要使用的箭头图标数量,以及每个箭头的角度、坐标等对象描述数据,然后通过相应的显示组件来绘制显示这些箭头图标。如图10所示,为另一个具体的实施例中通过显示组件展示显示对象后的图像的界面示意图。从图10中可以看出,地图图像中的显示对象,包括位置图标、箭头图标以及各个城市对应的城市图标和各个城市对应的城市名称。例如图10中的a城、b城等,以及对应的图标,以及。其中,每个位置图标、箭头图标、城市图标和城市名称均为显示对象。
171.终端可以先绘制待处理图像中的底层的地图图像,也可以同步绘制底层的地图图像。终端确定待处理图像中的显示对象的对象类别后,则针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;然后将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,以通过相应的显示组件基于对象数据,生成对象类别下各显示对象的渲染元素数据。由于单个显示组件所生成的渲染元素数据,可以仅提交一个绘制调用指令,进而能够将单个的显示组件所生成的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。由此能够有效减少图像渲染处理过程中绘制调用指令的数量,和渲染批次的数量,从而能够有效降低图像渲染处理过程中的资源消耗,进而能够有效提高图像渲染效率。
172.本技术还另外提供一种应用场景,该应用场景应用上述的图像处理方法,该应用场景为电子地图场景。具体地,用户对应的终端中部署有包括电子地图的应用,用户通过对应的终端运行包括电子地图的应用时,在终端展示电子地图,电子地图中包括低层的地图图像和显示对象。显示对象可以包括城市、道路、建筑以及名称等,每个显示对象包括对应的对象类别。其中,终端可以先绘制待处理图像中的底层的地图图像,也可以同步绘制底层的地图图像。
173.终端确定待处理图像中的显示对象的对象类别后,针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;然后将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,以通过相应的显示组件基于对象数据,生成对象类别下各显示对象的渲染元素数据。由于单个显示组件所生成的渲染元素数据,可以仅提交一个绘制调用指令,进而能够将单个显示组件所生成的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。由此能够有效减少图像渲染处理过程中绘制调用指令的数量,以及渲染批次的数量,从而能够有效降低图像渲染处理过程中的资源消耗,进而能够有效提高图像渲染效率。
174.应该理解的是,虽然图2、图7和图8流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图7和图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
175.在一个实施例中,如图11所示,提供了一种图像处理装置1100,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:对象类别确定模块1102、显示组件调用模块1104、渲染元素生成模块1106和显示对象渲染模块
1108,其中:
176.对象类别确定模块1102,用于确定待处理图像中的显示对象的对象类别。
177.显示组件调用模块1104,用于针对同一对象类别下的显示对象,调用与对象类别相应的显示组件;显示组件,是用于对同一对象类别下的显示对象合并渲染的自定义组件。
178.渲染元素生成模块1106,用于将同一对象类别下的显示对象所对应的对象数据,添加至相应的显示组件中,并根据对象数据生成对象类别下各显示对象的渲染元素数据。
179.显示对象渲染模块1108,用于基于对象类别下的各显示对象的渲染元素数据,在单渲染批次中合并渲染相应对象类别下的各显示对象。
180.在一个实施例中,显示组件,包括自定义配置的数据添加接口以及对象绘制函数;渲染元素生成模块1106还用于通过相应显示组件中的数据添加接口,将同一对象类别下的显示对象所对应的对象数据添加至显示组件中;通过显示组件中的对象绘制函数,基于添加的对象数据生成对象类别下的各显示对象的渲染元素数据。
181.在一个实施例中,显示组件还包括自定义配置的显示数据生成函数;渲染元素生成模块1106还用于通过显示数据生成函数,基于添加的对象数据,生成对象类别下的各显示对象的显示数据;通过显示组件中的对象绘制函数,基于对象数据和显示数据,生成对象类别下的各显示对象的渲染元素数据。
182.在一个实施例中,渲染元素生成模块1106还用于获取同一对象类别下的显示对象所对应的对象数据;对象数据包括对象资源数据和对象描述数据;将对象描述数据添加至相应的显示组件中;基于各显示对象对应的对象资源数据和对象描述数据,生成对象类别下各显示对象的渲染元素数据。
183.在一个实施例中,渲染元素生成模块1106还用于通过相应的显示组件,根据对象描述数据生成各显示对象对应的显示数据;基于各显示对象对应的对象资源数据和显示数据,生成对象类别下各显示对象的渲染元素数据。
184.在一个实施例中,对象描述数据被添加至相应的显示组件所绑定的描述数据集合中;渲染元素生成模块1106还用于遍历描述数据集合中每个显示对象对应的对象描述数据,对各显示对象的对象描述数据进行空间转换,生成各显示对象在屏幕空间对应的显示数据。
185.在一个实施例中,渲染元素生成模块1106还用于对象类别包括图像类别;对象资源数据,包括属于图像类别的显示对象的原始图像资源;根据各显示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源;资源数据集合中,包括已加载的用于显示图像类别的显示对象所需的原始图像资源;一个原始图像资源用于生成至少一个图像类别的显示对象;通过相应的显示组件,基于各显示对象对应的原始图像资源和显示数据,生成图像类别下各显示对象对应的渲染元素数据。
186.在一个实施例中,渲染元素生成模块1106还用于当相应的显示组件所绑定的资源数据集合中,不存在与显示对象所对应的原始图像资源时,获取与显示对象所对应的原始图像资源;将原始图像资源,加载至显示组件所绑定的资源数据集合中后,返回执行根据各显示对象对应的对象描述数据,从相应的显示组件所绑定的资源数据集合中,获取与各显示对象相匹配的原始图像资源的步骤。
187.在一个实施例中,渲染元素生成模块1106还用于当多个显示对象对应的原始图像资源为同一个原始图像资源时,通过显示组件,对资源数据集合中的原始图像资源进行复用,生成与各显示对象对应的复用图像资源;通过显示组件,根据各显示对象对应的复用图像资源和对象描述数据,生成各显示对象对应的渲染元素数据。
188.在一个实施例中,对象类别包括文本类别;对象资源数据,包括属于文本类别的显示对象的文本内容;渲染元素生成模块1106还用于将文本内容和对象描述数据添加至与显示组件绑定的描述数据集合中;基于描述数据集合中的各显示对象对应的文本内容和对象描述数据,生成文本类别下各显示对象的渲染元素数据。
189.在一个实施例中,对象类别包括文本的字体类别;对象资源数据,包括属于文本的字体类别下的显示对象的文本内容;渲染元素生成模块1106还用于将文本内容和对象描述数据添加至与显示组件绑定的描述数据集合中;基于描述数据集合中的各显示对象对应的文本内容和对象描述数据,生成文本的字体类别下各显示对象的渲染元素数据。
190.关于图像处理装置的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。上述图像处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
191.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图像处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
192.本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
193.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
194.在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
195.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
196.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
197.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
198.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1