基于WebGL的图形绘制方法、装置、运行器及可读存储介质制造方法及图纸

技术编号:22166162 阅读:35 留言:0更新日期:2019-09-21 10:16
本申请公开了一种基于WebGL的图形绘制方法、装置、运行器以及可读存储介质。该方法包括:运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。通过该技术方案,可以解决图形绘制整体效率较低的问题。

Graphic Rendering Method, Device, Operator and Readable Storage Media Based on WebGL

【技术实现步骤摘要】
基于WebGL的图形绘制方法、装置、运行器及可读存储介质
本申请涉及计算机图形绘制
,尤其涉及一种基于WebGL的图形绘制方法、装置、运行器及可读存储介质。
技术介绍
在网络游戏、动画展现等应用场景中,需要进行大量的多维图形(比如2D图形或3D图形)绘制工作,图形绘制的快慢在较大程度上决定到各种应用、程序对用户进行相应操作的响应速度,进而影响到该应用或程序的用户使用量。为提高图形绘制效率,在不依赖于浏览器为载体的情况下,一般可以使用专门开发的运行器(runtime)。通常,运行器基于原生native(例如iOS、android原生框架)开发而成,支持原生APP,其包含JS解析引擎和C++引擎框架。当需要在运行器内运行JS代码编写的JS项目时,由运行器内的JS解析引擎对JS代码项目进行解析,然后将解析后的JS语言通过JS解析引擎中的引擎接口调用至C++引擎框架,再通过OpenGLES进行渲染,最后完成预定的图形绘制。在大多数情况下,运行器的运行需要Web端引擎的配合,但是,开发Web端引擎的引擎商较多,各自具有各自不同的Web端引擎。为兼容各家的Web端引擎,业界需要将配合某特定Web端引擎的运行器由“专用”变为“通用”。为达到该目的,现有技术中的一种做法是在开发运行器时,针对多维图形绘制(无论是2D还是3D或者其他图形),均采用标准的WebGL接口。由于采用标准WebGL接口规范,其能够兼容不同引擎商的Web端引擎,具有较高的灵活性和较强扩展性。同时,由于开发Web端引擎的引擎商按照标准WebGL接口开发,对接口事先熟知,增强了其对Web端引擎的控制能力。然而,尽管采用WebGL标准接口开发运行器能够达到灵活性高、扩展性强、控制力好的技术效果,但是,由于在绘制多维图形的应用场景中往往涉及大量计算,这些计算在Web端引擎的JS代码层面完成,而JS代码的优势并不在其运算能力,导致采用WebGL接口的运行器的整体绘制效率无法得到保障。
技术实现思路
本申请实施例提供一种基于WebGL的图形绘制方法和装置,用于解决现有技术中WebGL接口的运行器的整体绘制效率较低的问题。一方面,本申请实施例提供的基于WebGL的图形绘制方法包括:运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。另一方面,本申请实施例提供的图形绘制方法包括:接收对目标图形的绘制请求,所述绘制请求中包含图形绘制规则指令以及作为所述图形绘制指令参数的预定的操作类型和操作对象;根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。再一方面,本申请实施例提供的基于WebGL的图形绘制装置包括:接收单元,用于接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;绘制单元,用于根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。又一方面,本申请实施例提供的运行器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法的步骤。再一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例提供的技术方案,运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。该技术方案分工明确,充分发挥运行器的优势,有效解决了图形绘制的整体效率问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为现有技术中图形绘制方法的流程示意图;图2为本申请的一个实施例图形绘制方法的示意图;图3为本申请的一个实施例中一节点树结构示意图;图4为本申请的一个实施例中另一节点树结构示意图;图5为本申请的一个实施例图形绘制装置的结构示意图;图6为本申请的一个实施例运行器的结构示意图。具体实施方式在对本申请的各种实施例进行充分介绍之前,为便于理解,先对一些基本背景进行介绍。随着计算机技术的发展,人们对计算机信息处理的响应速度要求越来越高,尤其在一些实时应用场景之中,更是如此。比如,常见的网络对战型的实时性网络游戏,这些游戏通常涉及大量目标对象的动作、场景、角色、能力值、武器装备等的迅速变换,为更好呈现视觉效果,需要进行“任务艰巨”的图形绘制,图形绘制成为这类软件吸引用户量的关键瓶颈。HTML5协议在网络展现上的广泛、深入的发展,对网络Web画面的显现提出了更高的要求,早期,人们通过canvas(画布)提供的标准绘图API实现丰富画面的展现。但是,这种方式的效果有限,后续逐步出现了WebGL(英文全称:WebGraphicsLibrary)接口协议,该接口协议能够对显卡GPU进行直接控制,为HTML5Canvas提供硬件加速渲染,大大提高了2D或3D的显示效率和显示效果。WebGL接口与HTML5协议类似,在项目应用层上,使用JavaScript语言(以下简称JS语言)开发。在将Web端引擎的JS项目导入到运行器中运行时,将涉及到大量的JavaScript语言与以C++语言为基础的运行器之间的调用、协调工作。不仅如此,如前述
技术介绍
所言及,采用WebGL接口的JS项目在Web端引擎仍将可能面临大量的计算工作。参见图1所示,JS项目代码可能要调用大量的绘图函数(比如,图中示意性展示的DrawImage),这些大量的绘图函数将完成各种复杂的矩阵计算、顶点数据合并、数据修改等运算,然后才能调用WebGL接口中的函数,传递到运行器。这些运算工作与JS项目代码的“分内能力”相悖,影响到整个图形绘制的效率。为了解决上述问题,本申请实施例提供一种基于WebGL的图形绘制方法,参见图2,该图示出的实施例方法包括:S201:运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;S202:运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。为了更好理解该技术方案,在前述背景介绍的基础上,对该方案中的一些重要信息进行说明:上述技术方案中步骤S201、S202涉及的执行主体为“运行器”,运行器中通常包含三部分:一是JS解析引擎部分,比如,具有该功能的V8、JSC等。从Web端引擎获得的代码尽管包含WebGL接口的一些内容,但仍然是JS代码,需要通过该JS解析引擎解析、识别,转换成运行器其他部分可操作的目本文档来自技高网
...

【技术保护点】
1.一种基于WebGL的图形绘制方法,其特征在于,包括:运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。

【技术特征摘要】
1.一种基于WebGL的图形绘制方法,其特征在于,包括:运行器接收对目标图形的绘制请求,所述绘制请求中包含基于WebGL的图形绘制规则指令以及作为所述图形绘制规则指令参数的预定操作类型和操作对象;运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制。2.如权利要求1所述的方法,其特征在于,所述操作对象为操作对象索引,则运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,包括:运行器根据所述操作对象索引从数据区中获取所述操作对象索引对应的操作数据;运行器根据所述图形绘制规则指令按照所述预定操作类型对所述操作数据进行操作。3.如权利要求2所述的方法,其特征在于,所述数据区包括全局数据区和局部数据区,所述操作对象索引包括全局数据区内第一操作数据的全局索引和局部数据区内第二操作数据的局部索引,则运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,包括:运行器根据所述全局索引从全局数据区获取第一操作数据;根据所述局部索引从局部数据区内获取第二操作数据;运行器根据所述图形绘制规则指令按照所述预定操作类型对第一操作数据和第二操作数据进行操作。4.根据权利要求3所述的方法,其特征在于,所述全局数据区由Web端引擎设置,在图形绘制之前或之时由Web端引擎同步到运行器的数据区。5.根据权利要求1所述的方法,其特征在于,所述基于WebGL的图形绘制规则指令为包含至少一条图形绘制规则指令的图形绘制规则指令集,所述图形绘制规则指令集中各条图形绘制规则指令均具有对应的预定操作类型和操作对象,则运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,以对所述目标图形进行绘制,包括:运行器根据图形绘制规则指令集内的每条所述图形绘制规则指令以及该条图形绘制规则指令对应的预定操作类型对相应的操作对象进行操作;运行器根据预定规则对多个操作结果进行合并提交操作,以对所述目标图形进行绘制。6.根据权利要求1所述的方法,其特征在于,所述预定规则包括判断对操作对象进行操作的着色器、着色器参数、纹理参数、渲染状态中的至少一个是否相同,如果相同,则对相同的多个操作结果进行合并提交。7.根据权利要求1所述的方法,其特征在于,所述基于WebGL的图形绘制规则指令为图形绘制规则指令索引,则运行器根据所述图形绘制规则指令以及所述预定操作类型对所述操作对象进行操作,包括:运行器根据所述绘制请求中包含的图形绘制规则指令索引,确定与所述图形绘制规则指令索引对应的图形绘制规则指令集,所述指令集中包含对所述目标图形进行绘制的多条图形绘制规则指令;根据所述指令集中包含的多条图形绘制规则指令以及各图形绘制规则指令对应的预定操作类型对各自相应的操作对象进行操作。8.如权利要求1所述的方法,其特征在于,所述方法还...

【专利技术属性】
技术研发人员:谢成鸿王亚伟
申请(专利权)人:搜游网络科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1