CN111880918A - 路网前端渲染方法、装置及电子设备 - Google Patents
路网前端渲染方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111880918A CN111880918A CN202010742162.8A CN202010742162A CN111880918A CN 111880918 A CN111880918 A CN 111880918A CN 202010742162 A CN202010742162 A CN 202010742162A CN 111880918 A CN111880918 A CN 111880918A
- Authority
- CN
- China
- Prior art keywords
- thread
- rendering
- road network
- task
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 213
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000007781 pre-processing Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种路网前端渲染方法、装置及电子设备,其中,该方法包括:通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务;根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种路网前端渲染方法、装置及电子设备。
背景技术
渲染的处理方式是:按照得到的模型在前端渲染。但是现有的渲染方式仅仅是通过单一线程进行全流程的处理,这种渲染效率较低,仅能在小规模实现流畅渲染和人工交互,在大范围渲染需求下则容易形成卡顿。
发明内容
有鉴于此,本申请实施例的目的在于提供一种路网前端渲染方法、装置及电子设备。能够达到更快速地实现前端渲染的效果。
第一方面,本申请实施例提供了一种路网前端渲染方法,包括:
通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务,所述渲染任务包括路网加载、路网预处理、路网渲染任务;
根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;
通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
在一种可选地实施方式中,所述渲染任务包括:渲染数据加载任务,所述渲染数据加载任务中包括数据地址,所述目标子线程包括第一目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第一目标子线程从所述数据地址中异步获取渲染数据;
将获取的所述渲染数据存入缓存中;
将所述渲染数据的获取结果发送给所述主线程。
本申请实施例提供的路网前端渲染方法,采用一个子线程专门处理数据的获取的任务,从而可以减少对主线程的阻塞,从而可以提高前端渲染的效率。
在一种可选地实施方式中,所述渲染任务包括:渲染预处理任务,所述目标子线程包括第二目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第二目标子线程从所述缓存中获取所述渲染数据;
对所述渲染数据进行解析,以确定初始图形模型;
根据所述初始图形模型对所述渲染数据进行预处理,得到目标图形模型,并将预处理结果发送给所述主线程。
本申请实施例提供的路网前端渲染方法,采用一个子线程专门处理模型的建立的任务,从而可以减少对主线程的阻塞,从而可以提高前端渲染的效率。
在一种可选地实施方式中,所述渲染任务包括:渲染执行任务,所述目标子线程包括第三目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第三目标子线程,根据所述目标图形模型进行实例化渲染处理,并将渲染结果发送给所述主线程。
本申请实施例提供的路网前端渲染方法,采用一个子线程专门处理渲染任务,从而可以减少对主线程的阻塞,从而可以提高前端渲染的效率。
在一种可选地实施方式中,所述根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程的步骤,包括:
轮询所述线程池内所有线程;
若所述线程池中存在空闲的子线程,则确定任一空闲的子线程作为目标子线程;
若所述线程池中的所有子线程均处于工作状态,根据所有子线程执行当前任务所需时长,确定出一子线程作为目标子线程。
本申请实施例提供的路网前端渲染方法,采用轮询的方式选出最利于执行任务的子线程执行任务,从而可以提高任务执行的效率,从而可以使任务能够更快被执行,也能够使线程池中的线程能够充分被利用起来,进一步地也能够提高渲染的效率。
在一种可选地实施方式中,应用于电子设备,所述方法还包括:
根据所述电子设备的处理器的参数建立所述线程池;
对所述线程池进行初始化处理。
本申请实施例提供的路网前端渲染方法,根据处理器的参数建立合适的线程池,从而能够使建立的线程池更匹配当前执行路网前端渲染方法的设备的处理能力。
在一种可选地实施方式中,所述方法还包括:
每隔预设时长轮询所述线程池,判断所述线程池中是否存在僵尸线程;
若存在僵尸线程,则将所述僵尸线程进行初始化处理。
本申请实施例提供的路网前端渲染方法,还可以对线程池中的僵尸线程进行处理,从而可以减少僵尸线程影响渲染任务的执行。
第二方面,本申请实施例还提供路网前端渲染装置,包括:
发布模块,用于通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务,所述渲染任务包括路网加载、路网预处理、路网渲染任务;
确定模块,用于根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;
执行模块,用于通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中的方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中的方法的步骤。
本申请实施例提供的路网前端渲染方法、装置、电子设备及计算机可读存储介质,采用主线程实现主要的流程管控,例如,任务发布,子线程执行渲染过程中的各项任务,从而减少执行渲染过程中的各项任务使对主线程的阻塞,从而可以提高渲染效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的方框示意图。
图2为本申请实施例提供的路网前端渲染方法的流程图。
图3为本申请实施例提供的路网前端渲染方法的步骤204的详细流程图。
图4为本申请实施例提供的另一路网前端渲染方法的流程图。
图5为本申请实施例提供的路网前端渲染装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
随着云计算、交通大数据分析技术的快速发展,各城市纷纷建设综合交通数据中心,将公交、轨道、路网、停车等数据实时汇聚,并基于此开发相关分析模型对于综合交通运行状态进行实时监测。
在交通数据的可视化中,通过视频或图像的形式展示路网数据,例如相关运行指标(车速、流量)。但是发明人对现有的路网数据的渲染的研究,确定以往采用传统技术路网渲染效率较低,仅能在小规模或者部分等级道路网情况下保证流畅渲染和人工交互,在大范围路网规模下则容易形成卡顿。基于上述研究本申请实施例提供了一种路网前端渲染方法、装置、电子设备及计算机可读存储介质。
本申请实施例通过多线程技术,将路网数据请求和解析放在子线程中进行计算,不阻塞主线程执行,大大提高交互流畅度。同时,基于实例化渲染框架开发路网渲染实例化模型,借助并行计算能力,将网络渲染时耗降至最低,大大提高路网渲染效率。下面通过几个具体的实施例进行详细描述。
实施例一
为便于对本实施例进行理解,首先对执行本申请实施例所公开的路网前端渲染方法的电子设备进行详细介绍。
如图1所示,是电子设备的方框示意图。电子设备100可以包括存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115、显示单元116。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
上述的存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115及显示单元116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器113用于执行存储器中存储的可执行模块。
其中,存储器111可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器113中,或者由处理器113实现。
上述的处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述的外设接口114将各种输入/输出装置耦合至处理器113以及存储器111。在一些实施例中,外设接口114,处理器113以及存储控制器112可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元115用于提供给用户输入数据。所述输入输出单元115可以是,但不限于,鼠标和键盘等。
上述的显示单元116在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
本实施例中的电子设备100可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述路网前端渲染方法的实现过程。
实施例二
请参阅图2,是本申请实施例提供的路网前端渲染方法的流程图。下面将对图2所示的具体流程进行详细阐述。
步骤202,通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务。
本实施例中,渲染任务可以包括路网加载、路网预处理、路网渲染任务。
可选地,上述的渲染任务可以是渲染过程中可能需要执行的任务,例如:渲染数据加载任务、渲染预处理任务、以及渲染执行任务等。
可选地,主线程在发布任务时,同时发布当前需要执行的渲染任务对应的任务信息。示例性地,该任务信息可以包括任务编号、任务类型等。
本实施例中的路网前端渲染方法可以应用于电子设备,本实施例中的线程调度算法还可以包括对线程池的构建。具体地,在步骤202之前,所述方法还可以包括:步骤201,根据所述电子设备的处理器的参数建立所述线程池,对所述线程池进行初始化处理。
可选地中,可以根据电子设备的中央处理器(CPU,central processing unit)的数量确定线程池中的线程的数量。示例性地,电子设备的中央处理器的数量越多,初始化的线程池中的线程数量也就越多。
可选地,线程池中的线程数量可以根据线程等待时间、线程CPU时间以及中央处理器的数量确定。在一个实例中,线程池中的线程数量=(线程等待时间/线程CPU时间+1)*CPU数量。
本实施例,上述的CPU数量可以是指物量上的CPU数量。CPU数量也可以指中央处理器的核心数量。例如,双核就是包括两个相对独立的CPU核心单元组,四核就包含四个相对独立的CPU核心单元组。
本实施例中,上述的渲染任务可以是网页端的渲染任务。
步骤204,根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程。
在一种实施方式中,如图3所示,步骤204的线程调度算法可以包括以下步骤。
步骤2041,轮询所述线程池内所有线程。
示例性地,主线程可以依次向子线程发出询问,询问子线程是否在执行任务,或询问子线程是否执行完成当前任务。
步骤2042,若所述线程池中存在空闲的子线程,则确定任一空闲的子线程作为目标子线程。
本实施例中,当对其中一子线程的询问结果是未执行任务,则可以将该子线程作为目标子线程,将当前需要执行的渲染任务发送给该子线程。
步骤2043,若所述线程池中的所有子线程均处于工作状态,根据所有子线程执行当前任务所需时长,确定出一子线程作为目标子线程。
本实施例中,轮询时,可以获取子线程当前执行的任务类型、任务编号以及任务执行的进度等信息。
可选地,可以根据任务类型及任务执行的进度确定出各个在执行任务的子线程执行当前任务所需时长。
可选地,可以根据任务类型确定出该各个渲染任务对应的执行总时长。
可以将正在执行的任务的执行总时长最短的任务对应的子线程作为目标子线程。
步骤206,通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
本实施例中,上述执行结果可以包括:表征执行成功与否的信息、任务编号、任务类型等。
本实施例中的大规模路网包括都市圈级、城市级别的所有等级、无等级的道路网络等层级的路网。
可选地,可以根据所需渲染的路网内容可以多次批量渲染路网。
示例性地,需要展示路网中各个路段的速度指标时,则首先通过步骤202-206渲染路网中各个路段的速度指标。
示例性地,需要展示路网中各个路段的延误指标时,在则第二轮任务时,则可以通过步骤202-206渲染路网中的各个路段的延误指标。
示例性地,需要展示路网的中各个路段的通行能力指标时,则可以通过步骤202-206渲染路网的中所有路段的通行能力指标。
示例性地,需要展示其他不同城市的路网相关指标时,则可以通过步骤202-206渲染其他不同城市的路网相关指标。
示例性地,渲染任务包括:渲染数据加载任务,渲染数据加载任务中包括数据地址。上述的目标子线程可以包括第一目标子线程。步骤206可以包括:通过所述第一目标子线程从所述数据地址中异步获取渲染数据;将获取的所述渲染数据存入缓存中;将所述渲染数据的获取结果发送给所述主线程。
可选地,可以将线程池中的一子线程固定用于执行数据加载任务。从而可以使该子线程能够持续性地进行数据加载,为渲染执行任务的有效进行。
可选地,主线程每次发布的渲染任务可以对应有任务编号,该任务编号用于标识对应的渲染任务。进一步地,子线程在向主线程发送执行结果时,也可以包括任务编号。
示例性地,渲染任务包括:渲染预处理任务,上述的目标子线程包括第二目标子线程。步骤206可以包括:通过所述第二目标子线程从所述缓存中获取所述渲染数据;对所述渲染数据进行解析,以确定初始图形模型;根据所述初始图形模型对所述渲染数据进行预处理,得到目标图形模型,并将预处理结果发送给所述主线程。
可选地,上述的渲染数据可以是路网数据。示例性地,该路网数据可以是通过安装在各个道路上的监控摄像头采集到的图像数据。
示例性地,可以对根据获得的路网数据对建立出初始的道路图像模型。示例性地,道路图像模型可以包括道路上个各个车辆、人物、公共交通设施等对象的模型。
可选地,上述的对所述渲染数据进行预处理可以包括:对渲染数据中的无效数据的剔除。
可选地,上述的对所述渲染数据进行预处理可以包括:空间拓补。示例性地,也就是初始的道路图像模型中存在不完整的区域。例如,两段道路中间存在脱节现象,例如,两段道路衔接不上,则可以通过图像补充的方式将两段道路连接。
示例性地,渲染任务包括:渲染执行任务,目标子线程包括第三目标子线程。步骤206可以包括:通过所述第三目标子线程,根据所述目标图形模型进行实例化渲染处理,并将渲染结果发送给所述主线程。
可选地,在执行渲染之前,还可以对目标图形模型进行实例化处理。示例性地,实例化处理可以包括:顶点坐标转换、顶点渲染顺序、顶点渲染色彩、顶点偏移等处理。
可选地,可以基于shader语言设计并实现路网实例化渲染算法。
示例性地,本实施例中的路网前端渲染方法可以基于WebGL(Web GraphicsLibrary,Web图形库)技术实现本实施例中渲染的实现。
可选地,上述的步骤202-204可以对当前已经获得的渲染数据进行渲染显示。可选地,上述的步骤202-204也可以实时地对接收到的渲染数据进行渲染显示。
如图4所示,本实施例中的路网前端渲染方法还可以包括以下步骤。
步骤208,每隔预设时长轮询所述线程池,判断所述线程池中是否存在僵尸线程。
本实施例中,步骤208的轮询方式可以与步骤2041的轮询方式相同。
步骤210,若存在僵尸线程,则将所述僵尸线程进行初始化处理。
示例性地,僵尸线程的初始化处理可以包括:为该僵尸线程重新分配内存空间;地址赋值给引用变量;初始化对象。
可选地,本实施例中的方法可以用于对路网数据的渲染。本实施例中的方法也可以用于对其它图像数据的渲染,例如,视频数据的渲染等。
本申请实施例提供的路网前端渲染方法,采用主线程实现主要的流程管控,例如,任务发布,子线程执行渲染过程中的各项任务,从而减少执行渲染过程中的各项任务使对主线程的阻塞,从而可以提高渲染效率。
进一步地,针对大体量的地理信息系统(Geographic Information System或Geo-Information system,GIS)路网数据的前端渲染,本申请实施例提供了多线程,多线程的数据处理。通过把多线程和实例化渲染整合在一起,针对地理信息系统路网的互动操作这个场景可以节约大量渲染时间。通过多线程的调度算法,更加高效地实现路网数据的渲染。
实施例三
基于同一申请构思,本申请实施例中还提供了与路网前端渲染方法对应的路网前端渲染装置,由于本申请实施例中的装置解决问题的原理与前述的路网前端渲染方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图5,是本申请实施例提供的路网前端渲染装置的功能模块示意图。本实施例中的路网前端渲染装置中的各个模块用于执行上述方法实施例中的各个步骤。路网前端渲染装置包括:发布模块301、确定模块302以及执行模块303;其中,
发布模块301,用于通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务,所述渲染任务包括路网加载、路网预处理、路网渲染任务;
确定模块302,用于根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;
执行模块303,用于通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
一种可能的实施方式中,所述渲染任务包括:渲染数据加载任务,所述渲染数据加载任务中包括数据地址,所述目标子线程包括第一目标子线程,执行模块303,用于:
通过所述第一目标子线程从所述数据地址中异步获取渲染数据;
将获取的所述渲染数据存入缓存中;
将所述渲染数据的获取结果发送给所述主线程。
一种可能的实施方式中,所述渲染任务包括:渲染预处理任务,所述目标子线程包括第二目标子线程,执行模块303,用于:
通过所述第二目标子线程从所述缓存中获取所述渲染数据;
对所述渲染数据进行解析,以确定初始图形模型;
根据所述初始图形模型对所述渲染数据进行预处理,得到目标图形模型,并将预处理结果发送给所述主线程。
一种可能的实施方式中,所述渲染任务包括:渲染执行任务,所述目标子线程包括第三目标子线程,执行模块303,用于:
通过所述第三目标子线程,根据所述目标图形模型进行实例化渲染处理,并将渲染结果发送给所述主线程。
一种可能的实施方式中,确定模块302,还用于:
轮询所述线程池内所有线程;
若所述线程池中存在空闲的子线程,则确定任一空闲的子线程作为目标子线程;
若所述线程池中的所有子线程均处于工作状态,根据所有子线程执行当前任务所需时长,确定出一子线程作为目标子线程。
一种可能的实施方式中,应用于电子设备,本实施例中的路网前端渲染装置还包括:建立模块,用于:
根据所述电子设备的处理器的参数建立所述线程池;
对所述线程池进行初始化处理。
一种可能的实施方式中,本实施例中的路网前端渲染装置还包括:判断模块,用于:
每隔预设时长轮询所述线程池,判断所述线程池中是否存在僵尸线程;
若存在僵尸线程,则将所述僵尸线程进行初始化处理。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的路网前端渲染方法的步骤。
本申请实施例所提供的路网前端渲染方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的路网前端渲染方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种路网前端渲染方法,其特征在于,包括:
通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务,所述渲染任务包括路网加载、路网预处理、路网渲染任务;
根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;
通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
2.根据权利要求1所述的方法,其特征在于,所述渲染任务包括:渲染数据加载任务,所述渲染数据加载任务中包括数据地址,所述目标子线程包括第一目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第一目标子线程从所述数据地址中异步获取渲染数据;
将获取的所述渲染数据存入缓存中;
将所述渲染数据的获取结果发送给所述主线程。
3.根据权利要求2所述的方法,其特征在于,所述渲染任务包括:渲染预处理任务,所述目标子线程包括第二目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第二目标子线程从所述缓存中获取所述渲染数据;
对所述渲染数据进行解析,以确定初始图形模型;
根据所述初始图形模型对所述渲染数据进行预处理,得到目标图形模型,并将预处理结果发送给所述主线程。
4.根据权利要求3所述的方法,其特征在于,所述渲染任务包括:渲染执行任务,所述目标子线程包括第三目标子线程,所述通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程的步骤,包括:
通过所述第三目标子线程,根据所述目标图形模型进行实例化渲染处理,并将渲染结果发送给所述主线程。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程的步骤,包括:
轮询所述线程池内所有线程;
若所述线程池中存在空闲的子线程,则确定任一空闲的子线程作为目标子线程;
若所述线程池中的所有子线程均处于工作状态,根据所有子线程执行当前任务所需时长,确定出一子线程作为目标子线程。
6.根据权利要求1-4任意一项所述的方法,其特征在于,应用于电子设备,所述方法还包括:
根据所述电子设备的处理器的参数建立所述线程池;
对所述线程池进行初始化处理。
7.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:
每隔预设时长轮询所述线程池,判断所述线程池中是否存在僵尸线程;
若存在僵尸线程,则将所述僵尸线程进行初始化处理。
8.一种路网前端渲染装置,其特征在于,包括:
发布模块,用于通过线程池中的主线程按照设定的线程间的通信规则向线程池中的子线程发布渲染任务,所述渲染任务包括路网加载、路网预处理、路网渲染任务;
确定模块,用于根据线程调度算法从所述线程池中确定出用于执行所述渲染任务的目标子线程;
执行模块,用于通过所述目标子线程执行大规模路网动态渲染的所述渲染任务,并将执行结果发送给所述主线程。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742162.8A CN111880918B (zh) | 2020-07-28 | 2020-07-28 | 路网前端渲染方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742162.8A CN111880918B (zh) | 2020-07-28 | 2020-07-28 | 路网前端渲染方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111880918A true CN111880918A (zh) | 2020-11-03 |
CN111880918B CN111880918B (zh) | 2021-05-18 |
Family
ID=73200995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010742162.8A Active CN111880918B (zh) | 2020-07-28 | 2020-07-28 | 路网前端渲染方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880918B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882707A (zh) * | 2021-03-09 | 2021-06-01 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN113342493A (zh) * | 2021-06-15 | 2021-09-03 | 上海哔哩哔哩科技有限公司 | 任务执行方法、装置及计算机设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622198A (zh) * | 2012-02-29 | 2012-08-01 | 中山大学 | 一种对数据进行可视化处理的方法及系统 |
CN103970580A (zh) * | 2014-05-05 | 2014-08-06 | 华中科技大学 | 一种面向多核集群的数据流编译优化方法 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
CN104991821A (zh) * | 2015-06-29 | 2015-10-21 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
CN105549820A (zh) * | 2015-12-11 | 2016-05-04 | 魅族科技(中国)有限公司 | 一种显示图形用户界面的方法及终端 |
CN106713944A (zh) * | 2016-12-30 | 2017-05-24 | 北京奇虎科技有限公司 | 一种流数据任务的处理方法和装置 |
CN106709041A (zh) * | 2016-12-29 | 2017-05-24 | 深圳岂凡网络有限公司 | 一种网页图形图像渲染系统及方法 |
CN109710716A (zh) * | 2018-12-24 | 2019-05-03 | 成都四方伟业软件股份有限公司 | 地图流畅渲染方法、终端设备及计算机可读存储介质 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN111026541A (zh) * | 2019-05-22 | 2020-04-17 | 珠海随变科技有限公司 | 渲染资源调度方法、装置、设备及存储介质 |
-
2020
- 2020-07-28 CN CN202010742162.8A patent/CN111880918B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622198A (zh) * | 2012-02-29 | 2012-08-01 | 中山大学 | 一种对数据进行可视化处理的方法及系统 |
CN103970580A (zh) * | 2014-05-05 | 2014-08-06 | 华中科技大学 | 一种面向多核集群的数据流编译优化方法 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
CN104102488B (zh) * | 2014-07-18 | 2017-09-22 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
CN104991821A (zh) * | 2015-06-29 | 2015-10-21 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
CN105549820A (zh) * | 2015-12-11 | 2016-05-04 | 魅族科技(中国)有限公司 | 一种显示图形用户界面的方法及终端 |
CN106709041A (zh) * | 2016-12-29 | 2017-05-24 | 深圳岂凡网络有限公司 | 一种网页图形图像渲染系统及方法 |
CN106713944A (zh) * | 2016-12-30 | 2017-05-24 | 北京奇虎科技有限公司 | 一种流数据任务的处理方法和装置 |
CN109710716A (zh) * | 2018-12-24 | 2019-05-03 | 成都四方伟业软件股份有限公司 | 地图流畅渲染方法、终端设备及计算机可读存储介质 |
CN111026541A (zh) * | 2019-05-22 | 2020-04-17 | 珠海随变科技有限公司 | 渲染资源调度方法、装置、设备及存储介质 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882707A (zh) * | 2021-03-09 | 2021-06-01 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN112882707B (zh) * | 2021-03-09 | 2024-02-09 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN113342493A (zh) * | 2021-06-15 | 2021-09-03 | 上海哔哩哔哩科技有限公司 | 任务执行方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111880918B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182649B2 (en) | Generation of synthetic images for training a neural network model | |
CN110097625B (zh) | 片段着色器执行顶点着色器计算 | |
CN111880918B (zh) | 路网前端渲染方法、装置及电子设备 | |
KR102631245B1 (ko) | 감소된 전력 렌더링을 갖는 혼합 현실 시스템 | |
US11418852B2 (en) | Detecting latency anomalies from pipeline components in cloud-based systems | |
US8890880B2 (en) | Graphics pipeline scheduling architecture utilizing performance counters | |
CN104036537A (zh) | 多分辨率一致光栅化 | |
US20190163254A1 (en) | Core off sleep mode with low exit latency | |
CN106776939A (zh) | 一种图像无损标注方法及系统 | |
CN104050705A (zh) | 处置光栅操作中的post-z覆盖数据 | |
CN104050706A (zh) | 用于低功率图形渲染的像素着色器旁路 | |
CN111127590B (zh) | 一种二阶贝塞尔曲线绘制方法及装置 | |
GB2473513A (en) | Measuring the time taken to process a unit of data | |
CN103870213A (zh) | 经由管线化的状态包触发性能事件捕获 | |
CN114529658A (zh) | 一种图形渲染方法及其相关设备 | |
CN103871019A (zh) | 优化三角形拓扑用于路径渲染 | |
CN106796536A (zh) | 用于多操作系统的内存访问方法、装置和电子设备 | |
US20190278574A1 (en) | Techniques for transforming serial program code into kernels for execution on a parallel processor | |
CN111950707B (zh) | 基于行为共现网络的行为预测方法、装置、设备及介质 | |
CN117237502A (zh) | 一种三维渲染方法、装置、设备及介质 | |
CN115423919B (zh) | 图像的渲染方法、装置、设备以及存储介质 | |
WO2022007839A1 (zh) | 信息显示方法、第一服务请求端、系统及电子设备 | |
CN112506976B (zh) | 数据流向的展示方法、装置、电子设备及存储介质 | |
US11966765B2 (en) | Memory bandwidth throttling for virtual machines | |
US10546559B2 (en) | Multi-layer rendering for visualizations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |