渲染方法、计算机设备和存储介质与流程

文档序号:22432628发布日期:2020-10-02 10:18阅读:131来源:国知局
渲染方法、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种渲染方法、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,用户可以在终端上使用地图进行导航;在导航过程中,地图显示界面上的标注信息、路线、区域面、头像信息等需要通过渲染才能显示出来。

渲染在计算机绘图中是指用软件从模型生成图像的过程;对数据进行渲染的过程通常是通过渲染线程来完成,然而,现有技术中的渲染方法中,在应用于导航这类复杂的场景的渲染时,容易出现卡顿的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种渲染方法、计算机设备和存储介质。

一种渲染方法,所述方法包括:

获取待渲染数据;

通过数据线程对所述待渲染数据进行预处理,获得处理后数据,所述处理后数据为可以直接用于渲染的数据;

通过所述数据线程在控制器中为所述处理后数据设置待渲染标识;

在通过渲染线程在所述控制器中查询到所述待渲染标识时,通过所述渲染线程提取所述处理后数据,并对所述处理后数据进行渲染。

一种计算机设备,包括存储区和处理器,所述存储区存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

上述渲染方法、计算机设备和存储介质,在获取到待渲染数据后,先通过数据线程完成对待渲染数据的预处理过程,得到可以直接用于渲染的处理后数据,并在控制器中设置待渲染标识,然后通过渲染线程查询到待渲染标识时,再通过渲染线程提取处理后数据进行渲染处理。通过上述渲染方法,在对数据进行渲染的过程中,渲染线程仅需在通过控制器确定有待渲染标识时,即可判定当前有需要渲染的数据,此时提取数据线程处理得到的数据进行渲染,如此,可以提高渲染的效率。

附图说明

图1为一个实施例中渲染方法的应用环境图;

图2为一个实施例中渲染方法的流程示意图;

图3为一个实施例中通过渲染线程查询到待渲染标识的流程示意图;

图4为另一个实施例中实现渲染方法的框架结构示意图;

图5为一个具体实施例中渲染方法的流程步骤示意图;

图6为一个具体实施例中地图界面的示意图;

图7为一个实施例中渲染装置的结构示意图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的渲染方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。终端获取待渲染数据,其中在一个实施例中待渲染数据可以是从服务器获取的;通过数据线程对待渲染数据进行预处理后,得到可以用于直接渲染的处理后数据,并在控制器中为处理后数据设置待渲染标识;在通过渲染线程查询到待渲染标识时,通过渲染线程提取处理后数据并进行渲染。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种渲染方法,以该方法应用于图1中的终端为例进行说明,包括步骤s210至步骤s230。

步骤s210,获取待渲染数据。

渲染在计算机绘图中是指用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。在本实施例中,将需要渲染的数据(几何、视点、纹理以及照明信息)记为待渲染数据,通常原始的待渲染数据不能直接用于渲染,而是需要经过一定的处理之后才能用于直接渲染;对待渲染数据进行渲染通常包括解析、组装和渲染的步骤。在一个实施例中,待渲染数据可以是用户在终端设置的数据。例如在一个实施例中,待渲染数据可以是地图中的图层或者设置数据,获取待渲染数据为获取地图的图层或者设置数据。当用户设置图层或者设置数据时,终端即可获取到这一待渲染数据。

步骤s220,通过数据线程对待渲染数据进行预处理,获得处理后数据;其中,处理后数据为可以直接用于渲染的数据。

线程是操作系统能够进行运算调度的最小单位;它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在对数据进行渲染的过程中,最常见的涉及到渲染线程。在现有的渲染方法中,通常通过渲染线程完成所有渲染所需要的步骤,包括:对待渲染数据进行解析、组装以及解析组装后得到的数据进行渲染的过程,这样的渲染方式在面对复杂的应用场景(如:地图,导航等)的渲染时,如果某个待渲染的数据出现解析、组装比较耗时,帧率难以保证,相对于性能较差的设备而言,容易出现卡顿的问题。其中,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率)。

在本实施例中,除了用于渲染的渲染线程还引入数据线程,用于对待渲染数据进行预处理(解析、组装)得到可以直接用于渲染的处理后数据。具体包括步骤:在终端获取到待渲染数据后,通过数据线程对待渲染数据进行预处理操作,得到处理后数据。在实际的渲染过程中,终端可能在不同时刻获取到多个待渲染数据,数据线程每次对其中一个待渲染数据进行预处理操作,或者也可以是一个预设时间段内获取到的待渲染数据执行预处理操作。

其中,终端在获取到待渲染数据时,将激活数据线程;在一个实施例中,获取到待渲染数据之后,通过数据线程对待渲染数据进行预处理,获得处理后数据,包括:对待渲染线程进行解析、组装处理后,获得可以直接用于渲染的处理后数据;在本实施例中,将数据线程待渲染数据预处理得到的数据记为处理后数据。

在一个实施例中,通过数据线程对待渲染数据进行预处理后,获得处理后数据时,还包括启动渲染线程。

步骤s230,通过数据线程在控制器中为处理后数据设置待渲染标识。

其中,待渲染标识用于表示当前有新的处理后数据需要渲染。在通过渲染线程进行渲染之前,为了让渲染线程能够知晓当前有需要进行渲染的处理后数据,在本实施例中,在通过数据线程对当前获取的待渲染数据进行预处理得到当前的处理后数据之后,通过数据线程在控制器中为处理后数据设置待渲染标识。

其中,在一个实施例中,在控制器中为处理后数据设置待渲染标识,可以是在通过数据线程处理得到的新的处理后数据,为这一新的处理后数据设置待渲染标识,并将待渲染标识发送至控制器;在本实施例中,待渲染标识与处理后数据对应。或者,也可以是在控制器中设置一个数据处理标识位,并在通过数据线程获得新的处理后数据时,通过数据线程向控制器发送指令,以使控制器中的数据处理标识位修改为待渲染标识。可以理解地,在其它实施例中,也可以是通过其它方式来实现在控制器中为处理后数据设置待渲染标识。

步骤s240,在通过渲染线程在控制器中查询到待渲染标识时,通过渲染线程提取处理后数据,并对处理后数据进行渲染。

在步骤s230中,通过数据线程执行预处理操作获得新的处理后数据之后,在控制器中设置了待渲染标识,因此在本实施例中,利用渲染线程在控制器中查询是否存在待渲染标识来确定当前是否存在需要渲染的处理后数据;当通过渲染线程在控制器中查询到待渲染标识时,判定此时存在新的需要处理的处理后数据。

通过数据线程对待渲染线程进行预处理后得到的处理后数据可以直接用于渲染,即本实施例中的渲染线程无需对待渲染数据进行预处理操作,而是直接提取处理后数据并进行渲染。如此,对待渲染数据进行预处理得到处理后数据,以及提取处理后数据进行渲染,分别由两个不同的线程进行处理,可以理解地,通过渲染线程提取并对处理后数据进行渲染的过程,不会受到通过数据线程对待渲染数据进行预处理过程耗时长短的影响,从而可以提高整体渲染的效率。

进一步地,在一个实施例中,处理后数据可以是点信息、线信息、面信息和头像信息。在本实施例中,对处理后数据进行渲染,包括:将点信息渲染为地图上的标注信息,将线信息渲染为地图上的路线信息,将面信息渲染为地图上的区域面,将图片信息渲染为地图上的头像。

在一个具体实施例中,通过渲染线程对处理后数据进行渲染包括:通过渲染线程调用gl库(graphicslibrary,图形函数库)对处理后数据进行渲染。

其中,可以通过mvc(modelviewcontroller,模型-视图-控制器)框架实现本实施例中的渲染方法。mvc框架是用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。mvc常被用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。其中,模型是应用程序中用于处理应用程序数据逻辑的部分;视图是应用程序中处理数据显示的部分;控制器是应用程序中处理用户交互的部分。在本实施例中,数据线程、渲染线程和控制器分别对应mvc框架的模型层、视图层和控制层,如图3所示,为一个实施例中实现上述渲染方法的框架结构示意图。

上述渲染方法,在获取到待渲染数据后,先通过数据线程完成对待渲染数据的预处理过程,得到可以直接用于渲染的处理后数据,并在控制器中设置待渲染标识,然后通过渲染线程查询到待渲染标识时,再通过渲染线程提取处理后数据进行渲染处理。通过上述渲染方法,在对数据进行渲染的过程中,渲染线程仅需在通过控制器确定有待渲染标识时,即可判定当前有需要渲染的数据,此时提取数据线程处理得到的数据进行渲染,如此,可以提高渲染的效率。

进一步地,在一个实施例中,如图4所示,通过渲染线程在控制器中查询到待渲染标识,包括步骤s410至步骤s430。

步骤s410,通过渲染线程向控制器发送询问请求。

在本实施例中,由于通过数据线程对待渲染数据预处理获得处理后数据之后,需要通过数据线程在控制器中设置待渲染标识,因此在本实施例中,在通过数据线程获得处理后数据,以及在通过渲染线程提取处理后数据之前,还通过渲染线程向控制器发送询问请求,以获知控制器中是否存在待渲染标识;可以理解地,本实施例中的询问请求为通过渲染线程向控制器发起的、用于查询控制器中当前是否存在待渲染标识的请求。

步骤s420,在控制器检测到存在待渲染标识时,向渲染线程返回需要进行渲染的询问响应。

其中,询问响应为控制器在接收到询问请求后向渲染线程返回的响应,其可以是需要进行渲染,也可以是不需要进行渲染。可以理解地,在控制器中检测到存在待渲染标识时,对应返回的询问响应为需要进行渲染;在另一个实施例中,在控制器中未检测到待渲染标识时,向渲染线程返回的询问响应为不需要进行渲染。

步骤s430,在渲染线程接收到需要进行渲染的询问响应时,判定通过渲染线程查询到待渲染标识。

只有在控制器中检测到存在待渲染标识时,才向渲染线程发送需要进行渲染的询问响应,因此在本实施例中,若通过渲染线程接收到控制器发送的需要进行渲染的询问响应时,判定通过渲染线程查询到待渲染标识;此时可以通过渲染线程提取处理后数据。

进一步地,在一个实施例中,对处理后数据进行渲染之后,还包括:取消控制器中的待渲染标识。

由于在前述的步骤中,已经通过渲染线程提取处理后数据,并对其进行渲染,即此时不再需要处理后数据的待渲染标识,因此在本实施例中,在通过渲染线程对处理后数据进行渲染之后,还包括取消控制器中待渲染标识的步骤。

进一步地,在一个实施例中,若在控制器中为处理后数据设置待渲染标识是通过数据线程为新的处理后数据设置待渲染标识,然后向控制器发送待渲染标识的方式来实现的,则取消待渲染标识可以是将控制器中的这一处理后数据的待渲染标识删除。或者在另一个实施例中,在控制器中为处理后数据设置待渲染标识是在获得新的处理后数据之后通过数据线程向控制器发送指令,将控制器中的数据处理标识位修改为待渲染标识来实现的,则取消待渲染标识为:将控制器中这一处理后数据的数据处理标识位修改为表示已渲染的标识。可以理解地,在其它实施例中,也可以通过其它方式实现取消控制器中的待渲染标识。

在一个实施例中,在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第一存储区;其中,第一存储区与数据线程关联。通过渲染线程提取处理后数据,并对处理后数据进行渲染之前,还包括:将处理后数据存入第二存储区;其中,第二存储区与渲染线程关联。通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从关联的第二存储区提取处理后数据,并对处理后数据进行渲染。

在本实施例中,将与数据线程关联的存储区记为第一存储区,将与渲染线程关联的存储区记为第二存储区;将通过数据线程对待渲染数据预处理之后获得的处理后数据,存入第一存储区;而在通过渲染线程提取处理后数据进行渲染之前,再将处理后数据存入第二存储区,从而通过渲染线程可以从第二存储区中提取到处理后数据,并对其进行渲染。

进一步地,在一个实施例中,将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

通过数据线程预处理获得的处理后数据存储在与数据线程关联的第一存储区中,在渲染线程需要提取处理后数据时,将原本的第一存储区设置为第二存储区,设置之后,渲染线程与存储有处理后数据的存储区(原本的第一存储区,设置后的第二存储区)关联;进一步地,还将原本的第二存储区设置为新的第一存储区,使其与数据线程关联。也即是说在本实施例中,通过交换第一存储区和第二存储区的方式来实现将处理后数据存入第二存储区。

进一步地,在一个实施例中,在通过渲染线程在控制器中查询到待渲染标识时,将处理后数据存入第二存储区。即在本实施例中,通过数据线程对获取的待渲染数据进行预处理,将预处理获得的处理后数据存入第一存储区,并在控制器中设置待渲染标识;通过渲染线程在控制器中查询到待渲染标识时,将处理后数据存入第二存储区,即,使存有处理后数据的存储区与渲染线程关联,然后通过渲染线程提取第二存储区中的处理后数据,并进行渲染。

在一个实施例中,通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

其中,在一个实施例中,第一存储区包括数据线程的指针指向的存储区;第二存储区包括渲染线程的指针指向的存储区。

在本实施例中,通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区,包括:

通过控制器将渲染线程的指针,修改为指向数据线程的指针原本指向的第一存储区,以将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将数据线程的指针,修改为指向渲染线程的指针原本指向的第二存储区,以将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在计算机科学中,指针(pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。在本实施例中,将数据线程的指针所指向的存储区记为与数据线程关联的存储区,即第一存储区;将渲染线程的指针所指向的存储区记为与渲染线程关联的存储区,即第二存储区。在需要通过渲染线程提取原本与数据线程关联的存储区中的处理后数据,本实施例中通过控制器交换第一存储区与第二存储区,具体为交换数据线程与渲染线程的指针所指向的存储区。

上述渲染方法中,假设第一存储区为a,第二存储区为b,在通过渲染线程提取处理后数据之前,通过控制器将渲染线程原本用于指向第二存储区b的指针,修改为指向第一存储区a,如此,将渲染线程与原本的第一存储区a关联起来,以使通过渲染线程可以直接从存储有处理后数据的原本的第一存储区a中提取处理后数据,并进行渲染;进一步地,还通过控制器将数据线程原本用于指向第一存储区a的指针,修改为指向原本的第二存储区b,以使数据线程与原本的第二存储区b关联起来,以使后续通过数据线程预处理获得的处理后数据存入原本的第二存储区b。通过控制器交换两个线程的指针所需时间非常短,因此也为渲染线程提取处理后数据并进行渲染减少了时间,提高了渲染效率。

在另一个实施例中,将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:通过控制器提取第一存储区中的处理后数据,并将提取出的处理后数据存入第二存储区。

通过数据线程预处理得到的处理后数据存储在与数据线程关联的第一存储区中,在本实施例中,通过提取第一存储区中的处理后数据,然后存到第二存储区,使渲染线程可以通过与之关联的第二存储区提取到处理后数据,并进行渲染。进一步地,在一个实施例中,在通过控制器将提取的处理后数据存入第二存储区后,取消控制器中的待渲染标识。

在另一个实施例中,将处理后数据存入第二存储区,第二存储区与渲染线程关联,也可以是通过控制器复制第一存储区中的处理后数据,并将复制的处理后数据存入第二存储区。进一步地,在一个实施例中,在通过控制器将复制的处理后数据存入第二存储区之后,取消控制器中的待渲染标识。

可以理解地,在其它实施例中,还可以通过其它方式实现将处理后数据存入第二存储区,第二存储区与渲染线程关联的过程。

在上述渲染方法中,为数据线程和渲染线程分别设置了与各自关联的存储区,如此,通过数据线程对当前的待渲染数据预处理得到当前的处理后数据存入第一存储区,然后通过提取或复制第一存储区中的处理后数据并存入第二存储区,或者通过控制器将第一存储区与第二存储区交换之后,再通过渲染线程提取交换后的第二存储区中的处理后数据,并进行渲染。因此,渲染线程在提取处理后数据的过程中,数据线程可能在对下一时刻的待渲染数据进行预处理,如此避免了渲染线程等待对待渲染数据进行预处理的时间,从而可以提高渲染线程渲染的效率;从显示上来说,可以提高显示的帧率;对于性能较差的终端而言,可以优化显示效果。

在另一个实施例中,在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第三存储区;其中,第三存储区与数据线程和渲染线程关联。

在本实施例中,通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从第三存储区提取存在待渲染标识的处理后数据,并对处理后数据进行渲染。

在上述渲染方法中,设置与数据线程和渲染线程关联的存储区,记为第三存储区;通过数据线程将处理后数据存入第三存储区,并在控制器中为处理后数据设置待渲染标识,在通过渲染线程查询到控制器中存在待渲染标识时,可以确定第三存储区中存在需要进行渲染的处理后数据;此时,通过渲染线程提取第三存储区中的处理后数据,并进行渲染。进一步地,在本实施例中,通过渲染线程从第三存储区中提取存在待渲染标识的处理后数据之后,取消控制器中的待渲染标识。

进一步地,在一个实施例中,第三存储区可以是能同时进行读写的存储器,如此,通过数据线程预处理获得的数据存入第三存储区,以及通过渲染线程从第三存储区中提取处理后数据进行渲染的过程可以同时进行互不干扰,例如可以是通过数据线程对下一时刻的待渲染数据进行预处理获得下一时刻的处理后数据,和通过渲染线程提取当前的处理后数据进行渲染的过程同时进行;其中,渲染线程可以通过待渲染标识识别需要提取进行渲染的待处理数据。

上述渲染方法,由于通过数据线程的预处理过程和通过渲染线程的渲染过程可以同时进行,渲染线程的渲染过程同样无需等待数据预处理过程的时间,可以提高渲染线程的渲染效率。

进一步地,在一个实施例中,上述渲染方法在控制器中取消待渲染标识之后,还包括:删除第二存储区中的处理后数据。如此,可以减少第二存储区中的数据量。

在一个具体实施例中,以通过mvc框架将上述渲染方法应用于地图的渲染为例进行详细描述,其中,将与数据线程关联的存储区记为后缓冲区,将与渲染线程关联的存储区记为前缓冲区;前缓冲区中的数据记为前缓冲数据,后缓冲数据中的数据记为后缓冲数据;在本实施例中,通过图层管理模块管理数据线程、渲染线程和控制器的所有数据处理操作。如图5所示,渲染过程包括以下步骤:

用户通过在客户端或者交互界面添加图层或者设置数据(上述待渲染数据),终端获取到这一待渲染数据,激活数据线程。

通过数据线程对待渲染数据进行解析、组装的预处理,获得处理后数据(对应图中所示将数据解析、预处理到后缓冲区),包括:点信息、线信息、面信息或者头像信息等等;将处理后数据存入后缓冲区;并通过数据线程在控制器中为处理后数据设置待交换标识(上述待渲染标识)。在一个实施例中,通过数据线程对待渲染数据进行预处理之前,数据线程向图层管理模块发送执行预处理的请求。

启动渲染线程,通过渲染线程向控制器发送询问请求(对应图中所示绘制的步骤),在控制器查询到存在待交换标识时,向渲染线程返回需要进行渲染的询问响应,在渲染线程接收到需要进行渲染的询问响应时,判定查询到待渲染标识,此时,通过控制器将渲染线程原本指向前缓冲区的指针,修改为指向后缓冲区,通过控制器将数据线程原本指向后缓冲区的指针,修改为指向前缓冲区,即通过控制器将前后缓冲区交换;以将原本的前缓冲区设置为新的后缓冲区,将原本的后缓冲区设置为新的前缓冲区。

然后通过渲染线程提取新的前缓冲区中的处理后数据,并调取gl库对前缓冲区中的处理后数据进行渲染;将点信息渲染为地图上的标注信息,将线信息渲染为地图上的路线信息,将面信息渲染为地图上的区域面,将图片信息渲染为地图上的头像。进一步地,在通过渲染线程对处理后数据进行渲染之后,取消控制器中的待交换标识。如图6所示,为一个实施例中地图界面的示意图;其中,图中610所示表示标注信息,620所示表示路线信息,630所示表示区域面信息,640所示表示头像信息。

上述渲染方法中,渲染线程致力于只负责渲染相关工作,将那些耗时、复杂的工作(解析组装待渲染数据)全部交于数据线程执行,因此可以大大提升渲染效率,提高显示帧率。

应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,本申请还提供一种渲染装置,包括:数据获取模块710、数据处理模块720、设置模块730和渲染模块740,其中:

数据获取模块710,用于获取待渲染数据。

数据处理模块720,用于通过数据线程对待渲染数据进行预处理,获得处理后数据,处理后数据为可以直接用于渲染的数据。

设置模块730,用于通过数据线程在控制器中为处理后数据设置待渲染标识。

渲染模块740,用于在通过渲染线程在控制器中查询到待渲染标识时,通过渲染线程提取处理后数据,并对处理后数据进行渲染。

上述渲染装置,在获取到待渲染数据后,先通过数据线程完成对待渲染数据的预处理过程,得到可以直接用于渲染的处理后数据,并在控制器中设置待渲染标识,然后通过渲染线程查询到待渲染标识时,再通过渲染线程提取处理后数据进行渲染处理。通过上述渲染方法,在对数据进行渲染的过程中,渲染线程仅需在通过控制器确定有待渲染标识时,即可判定当前有需要渲染的数据,此时提取数据线程处理得到的数据进行渲染,如此,可以提高渲染线程渲染的效率。

关于渲染装置的具体限定可以参见上文中对于渲染方法的限定,在此不再赘述。上述渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储区中,以便于处理器调用执行以上各个模块对应的操作。

图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图8所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现渲染方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行渲染方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的渲染装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该渲染装置的各个程序模块,比如,图7所示的数据获取模块、数据处理模块、设置模块和渲染模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的渲染方法中的步骤。

例如,图8所示的计算机设备可以通过如图7所示的渲染装置中的数据获取模块执行获取待渲染数据的步骤。计算机设备可通过数据处理模块执行通过数据线程对待渲染数据进行预处理,获得处理后数据,处理后数据为可以直接用于渲染的数据的步骤。计算机设备可通过设置模块执行通过数据线程在控制器中为处理后数据设置待渲染标识的步骤。计算机设备可通过渲染模块执行在通过渲染线程在控制器中查询到待渲染标识时,通过渲染线程提取处理后数据,并对处理后数据进行渲染的步骤。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器实现以下步骤:

获取待渲染数据;

通过数据线程对待渲染数据进行预处理,获得处理后数据,处理后数据为可以直接用于渲染的数据;

通过数据线程在控制器中为处理后数据设置待渲染标识;

在通过渲染线程在控制器中查询到待渲染标识时,通过渲染线程提取处理后数据,并对处理后数据进行渲染。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过渲染线程在控制器中查询到待渲染标识,包括:

通过渲染线程向控制器发送询问请求;

在控制器检测到存在待渲染标识时,向渲染线程返回需要进行渲染的询问响应;

在渲染线程接收到需要进行渲染的询问响应时,判定通过渲染线程在控制器中查询到待渲染标识。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第一存储区,第一存储区与数据线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染之前,还包括:将处理后数据存入第二存储区,第二存储区与渲染线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从关联的第二存储区提取处理后数据,并对处理后数据进行渲染。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:

将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:第一存储区包括数据线程的指针指向的存储区;第二存储区包括渲染线程的指针指向的存储区;

通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区,包括:

通过控制器将渲染线程的指针,修改为指向数据线程的指针原本指向的第一存储区,以将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;

通过控制器将数据线程的指针,修改为指向渲染线程的指针原本指向的第二存储区,以将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:

通过控制器提取第一存储区中的处理后数据,并将提取出的处理后数据存入第二存储区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对处理后数据进行渲染之后,还包括:取消控制器中的待渲染标识。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第三存储区,第三存储区与数据线程和渲染线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从第三存储区提取存在待渲染标识的处理后数据,并对处理后数据进行渲染。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待渲染数据,包括:获取地图的图层或者设置数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:处理后数据包括点信息、线信息、面信息和头像信息中的至少一种;

对处理后数据进行渲染,包括下述各方式中的至少一种:将点信息渲染为地图上的标注信息,将线信息渲染为地图上的路线信息,将面信息渲染为地图上的区域面,将图片信息渲染为地图上的头像。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器实现以下步骤:

获取待渲染数据;

通过数据线程对待渲染数据进行预处理,获得处理后数据,处理后数据为可以直接用于渲染的数据;

通过数据线程在控制器中为处理后数据设置待渲染标识;

在通过渲染线程在控制器中查询到待渲染标识时,通过渲染线程提取处理后数据,并对处理后数据进行渲染。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过渲染线程在控制器中查询到待渲染标识,包括:

通过渲染线程向控制器发送询问请求;

在控制器检测到存在待渲染标识时,向渲染线程返回需要进行渲染的询问响应;

在渲染线程接收到需要进行渲染的询问响应时,判定通过渲染线程在控制器中查询到待渲染标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第一存储区,第一存储区与数据线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染之前,还包括:将处理后数据存入第二存储区,第二存储区与渲染线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从关联的第二存储区提取处理后数据,并对处理后数据进行渲染。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:

将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

第一存储区包括数据线程的指针指向的存储区;第二存储区包括渲染线程的指针指向的存储区;

通过控制器将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;通过控制器将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区,包括:

通过控制器将渲染线程的指针,修改为指向数据线程的指针原本指向的第一存储区,以将原本与数据线程关联的第一存储区,设置为与渲染线程关联的第二存储区;

通过控制器将数据线程的指针,修改为指向渲染线程的指针原本指向的第二存储区,以将原本与渲染线程关联的第二存储区,设置为与数据线程关联的第一存储区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将处理后数据存入第二存储区,第二存储区与渲染线程关联,包括:

通过控制器提取第一存储区中的处理后数据,并将提取出的处理后数据存入第二存储区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对处理后数据进行渲染之后,还包括:取消控制器中的待渲染标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在通过数据线程对待渲染数据进行预处理,获得处理后数据之后,还包括:将处理后数据存入第三存储区,第三存储区与数据线程和渲染线程关联;

通过渲染线程提取处理后数据,并对处理后数据进行渲染,包括:通过渲染线程从第三存储区提取存在待渲染标识的处理后数据,并对处理后数据进行渲染。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取待渲染数据,包括:获取地图的图层或者设置数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:处理后数据包括点信息、线信息、面信息和头像信息中的至少一种;

对处理后数据进行渲染,包括下述各方式中的至少一种:将点信息渲染为地图上的标注信息,将线信息渲染为地图上的路线信息,将面信息渲染为地图上的区域面,将图片信息渲染为地图上的头像。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1