CN115599491A - Svg矢量图展现方法、装置、设备及存储介质 - Google Patents
Svg矢量图展现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115599491A CN115599491A CN202211598532.0A CN202211598532A CN115599491A CN 115599491 A CN115599491 A CN 115599491A CN 202211598532 A CN202211598532 A CN 202211598532A CN 115599491 A CN115599491 A CN 115599491A
- Authority
- CN
- China
- Prior art keywords
- svg
- data format
- vector diagram
- target data
- svg vector
- 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.)
- Pending
Links
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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种SVG矢量图展现方法、装置、设备及存储介质,涉及图形显示技术领域。其中,该方法包括:在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件;将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式;当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。本发明可以明显降低SVG矢量图的展现延时。
Description
技术领域
本发明涉及图形显示技术领域,具体而言,涉及一种SVG矢量图展现方法、装置、设备及存储介质。
背景技术
可缩放矢量图形(scalable vector graphics,SVG)也称为SVG矢量图,使用可扩展标记语言(extensible markup language,XML)格式定义图像,是由万维网联盟(worldwide web consortium,W3C)进行开发的。
在游戏引擎(unity,也称开发工具)中使用SVG矢量图时,通常的做法是使用矢量图形(vectorgraphics)包体,经过对SVG文件的处理生成网格(mesh)模型的方式来展现SVG矢量图。这种方式的核心算法为VectorUtils.TessellateScene算法。
但是,VectorUtils.TessellateScene在运算时需要较长的时间,导致SVG矢量图的展现延时较高。对于游戏场景而言,当用户(或称为玩家)打开一张SVG图的时间太长时,会严重影响用户的游戏体验。
发明内容
基于上述现有技术存在的SVG矢量图的展现延时较高的问题,本发明提供一种SVG矢量图展现方法、装置、设备及存储介质,可以明显降低SVG矢量图的展现延时。
第一方面,本发明提供一种SVG矢量图展现方法,所述方法包括:在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件;将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式;当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组;其中,每个块组包括多个子图,每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引。
可选地,按照目标数据格式存储的mesh数据,还包括:头部数据;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
可选地,每个块组还包括块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值。
第二方面,本发明提供一种SVG矢量图展现装置,所述装置包括:获取单元,用于在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件;转换单元,用于将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式;显示单元,用于当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组;其中,每个块组包括多个子图,每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引。
可选地,按照目标数据格式存储的mesh数据,还包括:头部数据;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
可选地,每个块组还包括块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值。
第三方面,本发明提供一种SVG矢量图展现方法,所述方法包括:获取按照目标数据格式进行存储的mesh数据;mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;目标数据格式为游戏引擎能够直接读取的数据格式;响应于展现SVG矢量图的请求,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组和头部数据;其中,每个块组包括多个子图、块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
第四方面,本发明提供一种SVG矢量图展现装置,所述装置包括:获取单元,用于获取按照目标数据格式进行存储的mesh数据;mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;目标数据格式为游戏引擎能够直接读取的数据格式;显示单元,用于响应于展现SVG矢量图的请求,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组和头部数据;其中,每个块组包括多个子图、块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
第五方面,本发明提供一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面或第三方面所述的方法。
第六方面,本发明提供一种存储介质(如计算机可读存储介质),存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面或第三方面所述的方法。
第七方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面或第三方面所述的方法。
本发明通过在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件,将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式,具体地,目标数据格式为压缩的自定义二进制数据格式;当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图,可以实现游戏引擎在展现SVG矢量图时,没有了将SVG文件转换为mesh数据的过程,仅需要读取加载按照目标数据格式存储的mesh数据,即可展现SVG矢量图,大大降低了SVG矢量图的展现延时。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的SVG矢量图展现方法的流程示意图;
图2为本发明实施例提供的SVG矢量图展现方法的另一流程示意图;
图3示出了本发明实施例提供的SVG矢量图展现装置的结构示意图;
图4示出了本发明实施例提供的SVG矢量图展现装置的另一结构示意图;
图5示出了本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,本发明中附图仅起到说明和描述的目的,并不用于限定本发明的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本发明中使用的流程图示出了根据本发明的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本发明内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,本发明所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。还应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本发明的描述中,还需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
可缩放矢量图形(scalable vector graphics,SVG)也称为SVG矢量图,使用可扩展标记语言(extensible markup language,XML)格式定义图像,是由万维网联盟(worldwide web consortium,W3C)进行开发的。
在游戏引擎(unity,也称开发工具)中使用SVG矢量图时,通常的做法是使用矢量图形(vectorgraphics)包体,经过对SVG文件的处理生成网格(mesh)模型的方式来展现SVG矢量图。这种方式的核心算法为VectorUtils.TessellateScene算法。
但是,VectorUtils.TessellateScene在运算时需要较长的时间,导致SVG矢量图的展现延时较高。例如,尤其在处理体量大、复杂程度高的SVG时,可能需要10至30秒时间,耗费了大量的时间。
对于游戏场景而言,当用户(或称为玩家)打开一张SVG图的时间太长时,会严重影响用户的游戏体验。
基于上述现有技术存在的SVG矢量图的展现延时较高的问题,本发明实施例提供了一种SVG矢量图展现方法,可以明显降低SVG矢量图的展现延时。
该方法的执行主体可以是游戏引擎,或者服务器,又或者计算机等设备。本发明对执行主体不作限制。
一些实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本发明对服务器的具体实现方式也不作限制。
在本发明实施例中,延时也可以称为时延,本发明对名称不作限制。
图1为本发明实施例提供的SVG矢量图展现方法的流程示意图。如图1所示,该SVG矢量图展现方法,可以包括:
S101、在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件。
例如,SVG文件可以是XML格式,SVG文件中可以记录SVG矢量图。
S102、将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式。
示例性地,可以基于VectorUtils.TessellateScene算法,使用矢量图形(vectorgraphics)包体,对SVG文件进行处理,将SVG文件转换为网格mesh数据。转换得到的网格mesh数据可以存储为目标数据格式。游戏引擎能够直接对按照目标数据格式存储的数据直接进行读取加载。具体地,目标数据格式为压缩的自定义二进制数据格式。
需要说明的是,本发明实施例中,S101和S102是在展现SVG矢量图之前执行的。也即,在本发明实施例中,在展现SVG矢量图之前,需要预先将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储。
S103、当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
示例性地,游戏引擎可以直接将按照目标数据格式存储的mesh数据进行读取,并加载按照目标数据格式存储的mesh数据。游戏引擎通过读取并加载按照目标数据格式存储的mesh数据,可以展现出上述SVG矢量图。
在本发明实施例中,目标数据格式可以被定义为JVG格式。本发明实施例相当于可以把SVG转化Mesh的运算放在后端进行,相当于提前计算好,转换成指定的JVG格式并保存起来。游戏引擎在进行读取的时候直接使用JVG格式,没有了SVG矢量图转换Mesh数据的转换过程,加载读取速度可以大大提高,例如,可以直接从原来的10至30秒提高到0.5秒到2秒。
由上所述,本发明实施例通过在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件,将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式,具体地,目标数据格式为压缩的自定义二进制数据格式;当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图,可以实现游戏引擎在展现SVG矢量图时,没有了将SVG文件转换为mesh数据的过程,仅需要读取加载按照目标数据格式存储的mesh数据,即可展现SVG矢量图,大大降低了SVG矢量图的展现延时。
一些实施例中,按照目标数据格式存储的mesh数据,包括:多个块组(HeadGroup);其中,每个块组包括多个子图,每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引。
示例性地,块组中有一些标注的类型,类型可以是线条、色块、或其他。每个块组下有很多个子图,可以是Line、Block等;每个子图集记录了材质、编号、三角形顶点数据(vertice)、和三角形顶点索引数据(indice)。
一些实施例中,按照目标数据格式存储的mesh数据,还包括:头部数据;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
一些实施例中,每个块组还包括块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值。
示例性地,下述表1示出了本发明实施例提供的SVG矢量图展现方法中,按照目标数据格式存储的mesh数据的结构图。
表1
头部数据 | 精度类型 | 是否材质 | 块数量 | 文件版本号 | 宽度 | 高度 | |
块组数据1 | HeadGroup1 | 类型 | 材质 | 子图数量 | 顶点数量 | 索引数量 | 色彩值 |
每个子图形数据 | 子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | ||
子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | |||
子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | |||
块组数据2 | HeadGroup2 | 类型 | 材质 | 子图数量 | 顶点数量 | 索引数量 | 色彩值 |
每个子图形数据 | 子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | ||
子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | |||
子图中心位置 | 子图大小 | 子图颜色 | 子图顶点 | 子图顶点索引 | |||
块组数据n | HeadGroupn | 类型 | 材质 | 子图数量 | 顶点数量 | 索引数量 | 色彩值 |
如表1所示,按照目标数据格式存储的mesh数据,包括:多个块组和头部数据;其中,每个块组包括多个子图、块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
当mesh数据按照表1所示的结构,实现按照目标数据格式存储时,游戏引擎能够直接读取加载mesh数据,以展现SVG矢量图。
示例性地,按照目标数据格式存储的mesh数据的结构体可以参见下述代码(以下代码仅为示例性说明):
[StructLayout(LayoutKind.Sequential)]
public struct JasonSvgHeadInfo
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
public string layerName; //大层名称,名字不能超过50个字符
public ushort headType; //类型,0:表示线条,1:表涂色块,2:表示渐变色线条
//public bool isblock; //是否填充
public ushort headMat; //材质编号
public ushort blockNum; //有多少子对象,有block
public ushort verticesnum; //有多少个顶点 , 这个不会大于65k
public int indicesnum; //有多少个Indices , 这个会大于65k
public ushort r; //整个info的总色彩,一般是line的第一个块颜色
public ushort g;
public ushort b;
public ushort decorationNum; //有多少子线带有颜色
public int yuliu1;
public int yuliu2;
public int yuliu3;
public int yuliu4;
public int yuliu5;
}
[StructLayout(LayoutKind.Sequential)]
public struct JasonSvgHead
{
public ushort headver; //存储结构版本
public bool isPic; //是否有材质
public ushort layernum; //有几个层
public ushort svgWidth; //svg的宽度
public ushort svgHeight; //svg的高度
public bool half; //是全精度还是半精度
public int yuliu1;
public int yuliu2;
public int yuliu3;
public int yuliu4;
public int yuliu5;
public int yuliu6;
public int yuliu7;
public int yuliu8;
}
以上代码中所涉及的具体字段的含义可以参见上述“//”后的注释内容,不再赘述。
基于前述实施例,本发明实施例还提供一种SVG矢量图展现方法,该方法的执行主体可以是游戏引擎或者运行游戏引擎的终端设备,如手机、电脑等。
图2为本发明实施例提供的SVG矢量图展现方法的另一流程示意图。如图2所示,该SVG矢量图展现方法,可以包括:
S201、获取按照目标数据格式进行存储的mesh数据;mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;目标数据格式为游戏引擎能够直接读取的数据格式。
S202、响应于展现SVG矢量图的请求,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
示例性地,以执行主体为游戏引擎为例,游戏引擎可以从游戏的应用包中获取按照目标数据格式进行存储的mesh数据。游戏的应用包中包含的按照目标数据格式进行存储的mesh数据,可以是由游戏服务器或者游戏提供方预先生成的。预先生成的方式可以参考前述实施例中所述。
当用户在游戏中进行操作时,可以触发生成展现SVG矢量图的请求,游戏引擎可以响应于展现SVG矢量图的请求,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
该方法所具备的有益效果可以参见前述实施例中所述,不再赘述。
示例性地,按照目标数据格式存储的mesh数据,包括:多个块组和头部数据;其中,每个块组包括多个子图、块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
基于前述方法实施例所述的SVG矢量图展现方法,本发明实施例还提供一种SVG矢量图展现装置,可以用于实现该SVG矢量图展现方法。所述装置应用于上述服务器或游戏引擎。图3示出了本发明实施例提供的SVG矢量图展现装置的结构示意图。如图3所示,该SVG矢量图展现装置可以包括:获取单元301、转换单元302、以及显示单元303。
获取单元301,用于在展现SVG矢量图之前,获取SVG矢量图对应的SVG文件。
转换单元302,用于将SVG文件转换为网格mesh数据,并将转换得到的mesh数据按照目标数据格式进行存储;其中,目标数据格式为游戏引擎能够直接读取的数据格式。
显示单元303,用于当需要展现SVG矢量图时,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组;其中,每个块组包括多个子图,每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引。
可选地,按照目标数据格式存储的mesh数据,还包括:头部数据;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
可选地,每个块组还包括块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值。
基于前述方法实施例所述的SVG矢量图展现方法,本发明实施例还提供一种SVG矢量图展现装置,可以用于实现该SVG矢量图展现方法。所述装置应用于上述游戏引擎。图4示出了本发明实施例提供的SVG矢量图展现装置的另一结构示意图。如图4所示,该SVG矢量图展现装置可以包括:获取单元401、以及显示单元402。
获取单元401,用于获取按照目标数据格式进行存储的mesh数据;mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;目标数据格式为游戏引擎能够直接读取的数据格式。
显示单元402,用于响应于展现SVG矢量图的请求,读取并加载按照目标数据格式存储的mesh数据,以展现SVG矢量图。
可选地,按照目标数据格式存储的mesh数据,包括:多个块组和头部数据;其中,每个块组包括多个子图、块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;每个子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;头部数据包括:精度类型、是否有材质、块组数量、SVG矢量图的宽度和高度、SVG文件的文件版本号。
上述装置可以集成于服务器、游戏引擎或其他具有数据处理能力的计算设备,本发明在此不作限制。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,该装置的具体工作过程,可以参考前述方法实施例中所述的SVG矢量图展现方法的对应过程,本发明中亦不再赘述。
应该理解,以上所描述的装置实施例仅仅是示意性的,本发明实施例所揭露的装置和方法,也可以通过其它的方式实现。例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得用户终端或车载终端执行本发明各个实施例所述方法的全部或部分步骤。
也即,本领域内的技术人员应明白,本发明实施例可以采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式中的任一种实现。
基于此,本发明实施例还提供一种程序产品,该程序产品可以是U盘、移动硬盘、ROM、RAM、磁碟或者光盘等存储介质,存储介质上可以存储有计算机程序,计算机程序被处理器运行时执行如前述方法实施例中所述的SVG矢量图展现方法。具体实现方式和技术效果类似,在此不再赘述。
可选地,本发明实施例还提供一种电子设备,该电子设备可以是上述第游戏引擎或服务器,又或者运行游戏引擎的终端设备,图5示出了本发明实施例提供的电子设备的结构示意图。
如图5所示,该电子设备可以包括:处理器510、存储介质520和总线530,存储介质520存储有处理器510可执行的机器可读指令,当电子设备运行时,处理器510与存储介质520之间通过总线通信,处理器510执行机器可读指令,以执行时执行如前述实施例中所述的SVG矢量图展现方法。具体实现方式和技术效果类似,在此同样不再赘述。
为了便于说明,在上述电子设备中仅描述了一个处理器。然而,应当注意,一些实施例中,本发明中的电子设备还可以包括多个处理器,因此本发明中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。
示例性地,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述实施例中所述的SVG矢量图展现方法。
以上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种SVG矢量图展现方法,其特征在于,所述方法包括:
在展现SVG矢量图之前,获取所述SVG矢量图对应的SVG文件;
将所述SVG文件转换为网格mesh数据,并将转换得到的所述mesh数据按照目标数据格式进行存储;其中,所述目标数据格式为游戏引擎能够直接读取的数据格式;
当需要展现所述SVG矢量图时,读取并加载按照所述目标数据格式存储的所述mesh数据,以展现所述SVG矢量图。
2.根据权利要求1所述的方法,其特征在于,所述按照所述目标数据格式存储的所述mesh数据,包括:多个块组;
其中,每个所述块组包括多个子图,每个所述子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引。
3.根据权利要求2所述的方法,其特征在于,所述按照所述目标数据格式存储的所述mesh数据,还包括:头部数据;
所述头部数据包括:精度类型、是否有材质、块组数量、所述SVG矢量图的宽度和高度、所述SVG文件的文件版本号。
4.根据权利要求2或3所述的方法,其特征在于,每个所述块组还包括所述块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值。
5.一种SVG矢量图展现方法,其特征在于,所述方法包括:
获取按照目标数据格式进行存储的mesh数据;所述mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;所述目标数据格式为游戏引擎能够直接读取的数据格式;
响应于展现所述SVG矢量图的请求,读取并加载所述按照所述目标数据格式存储的所述mesh数据,以展现所述SVG矢量图。
6.根据权利要求5所述的方法,其特征在于,所述按照所述目标数据格式存储的所述mesh数据,包括:多个块组和头部数据;
其中,每个所述块组包括多个子图、所述块组对应的名称、类型、材质、子图数量、顶点数量、索引数量、以及色彩值;
每个所述子图中记录了以下至少一种信息:子图中心位置、子图大小、子图颜色、子图顶点、以及子图顶点索引;
所述头部数据包括:精度类型、是否有材质、块组数量、所述SVG矢量图的宽度和高度、所述SVG文件的文件版本号。
7.一种SVG矢量图展现装置,其特征在于,所述装置包括:
获取单元,用于在展现SVG矢量图之前,获取所述SVG矢量图对应的SVG文件;
转换单元,用于将所述SVG文件转换为网格mesh数据,并将转换得到的所述mesh数据按照目标数据格式进行存储;其中,所述目标数据格式为游戏引擎能够直接读取的数据格式;
显示单元,用于当需要展现所述SVG矢量图时,读取并加载按照所述目标数据格式存储的所述mesh数据,以展现所述SVG矢量图。
8.一种SVG矢量图展现装置,其特征在于,所述装置包括:
获取单元,用于获取按照目标数据格式进行存储的mesh数据;所述mesh数据为对SVG矢量图对应的SVG文件进行mesh转换得到的;所述目标数据格式为游戏引擎能够直接读取的数据格式;
显示单元,用于响应于展现所述SVG矢量图的请求,读取并加载所述按照所述目标数据格式存储的所述mesh数据,以展现所述SVG矢量图。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至6任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211598532.0A CN115599491A (zh) | 2022-12-14 | 2022-12-14 | Svg矢量图展现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211598532.0A CN115599491A (zh) | 2022-12-14 | 2022-12-14 | Svg矢量图展现方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599491A true CN115599491A (zh) | 2023-01-13 |
Family
ID=84854141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211598532.0A Pending CN115599491A (zh) | 2022-12-14 | 2022-12-14 | Svg矢量图展现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599491A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858842A (zh) * | 2023-02-23 | 2023-03-28 | 北京德风新征程科技股份有限公司 | 矢量图形发布方法、装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008053597A1 (fr) * | 2006-11-01 | 2008-05-08 | Digital Media Professionals Inc. | Dispositif pour accélérer le traitement d'un cache de vertex de primitives étendues |
CN106709863A (zh) * | 2016-12-28 | 2017-05-24 | 杭州趣维科技有限公司 | 一种基于gpu的高效2d矢量图形渲染方法 |
CN110119380A (zh) * | 2018-01-12 | 2019-08-13 | 武汉斗鱼网络科技有限公司 | 一种可缩放矢量图文件的存储、读取方法及装置 |
CN110287431A (zh) * | 2019-06-27 | 2019-09-27 | 北京金山安全软件有限公司 | 图像文件的加载方法、装置、电子设备和存储介质 |
CN110286960A (zh) * | 2019-06-27 | 2019-09-27 | 北京金山安全软件有限公司 | 图像文件的加载方法、装置、电子设备和存储介质 |
CN111389014A (zh) * | 2020-03-16 | 2020-07-10 | 深圳市腾讯信息技术有限公司 | 游戏资源数据监控方法、装置、计算机设备和存储介质 |
CN114637731A (zh) * | 2022-03-30 | 2022-06-17 | 广东博智林机器人有限公司 | 一种基于svg文件的格式转换方法及装置 |
-
2022
- 2022-12-14 CN CN202211598532.0A patent/CN115599491A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008053597A1 (fr) * | 2006-11-01 | 2008-05-08 | Digital Media Professionals Inc. | Dispositif pour accélérer le traitement d'un cache de vertex de primitives étendues |
CN106709863A (zh) * | 2016-12-28 | 2017-05-24 | 杭州趣维科技有限公司 | 一种基于gpu的高效2d矢量图形渲染方法 |
CN110119380A (zh) * | 2018-01-12 | 2019-08-13 | 武汉斗鱼网络科技有限公司 | 一种可缩放矢量图文件的存储、读取方法及装置 |
CN110287431A (zh) * | 2019-06-27 | 2019-09-27 | 北京金山安全软件有限公司 | 图像文件的加载方法、装置、电子设备和存储介质 |
CN110286960A (zh) * | 2019-06-27 | 2019-09-27 | 北京金山安全软件有限公司 | 图像文件的加载方法、装置、电子设备和存储介质 |
CN111389014A (zh) * | 2020-03-16 | 2020-07-10 | 深圳市腾讯信息技术有限公司 | 游戏资源数据监控方法、装置、计算机设备和存储介质 |
CN114637731A (zh) * | 2022-03-30 | 2022-06-17 | 广东博智林机器人有限公司 | 一种基于svg文件的格式转换方法及装置 |
Non-Patent Citations (2)
Title |
---|
张琦,代晓波,郭利川: "基于网络的GML数据可视化方法研究" * |
袁家政;须德;鲍泓;: "基于XML矢量图形SVG应用的软件体系结构研究" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858842A (zh) * | 2023-02-23 | 2023-03-28 | 北京德风新征程科技股份有限公司 | 矢量图形发布方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN109389661B (zh) | 一种动画文件转化方法及装置 | |
CN110674227A (zh) | 数据可视化图表和页面的生成方法、系统、介质及终端 | |
CN107301046B (zh) | 图标的处理方法和装置、计算机设备和存储介质 | |
CN115599491A (zh) | Svg矢量图展现方法、装置、设备及存储介质 | |
CN111930697B (zh) | 一种基于3d信息的数据传输方法、计算设备及系统 | |
CN112489183A (zh) | 基于Unity3D的骨骼动画渲染方法及系统 | |
CN112330532A (zh) | 图像解析处理方法及设备 | |
CN114489640A (zh) | 一种可视化页面生成方法、存储介质和装置 | |
CN111061896B (zh) | 基于glTF的3D图形的加载方法、装置、设备及介质 | |
CN110413721B (zh) | 一种矢量地图的生成方法及装置 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
US20090228863A1 (en) | Populating information contained in java annotations into existing emf models | |
CN106920270B (zh) | 动画处理方法和装置 | |
CN111598988B (zh) | 一种基于d3的知识图谱数据节点渲染方法及系统 | |
CN113094038A (zh) | 函数编程积木块的处理方法、装置、终端及存储介质 | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN111290996A (zh) | 文档格式转换方法、装置、设备及可读存储介质 | |
CN113781658B (zh) | 一种流式处理3d模型数据的方法及装置 | |
CN115375812A (zh) | Cad数据渲染方法、装置、电子设备及存储介质 | |
CN112906091A (zh) | 一种基于cad的地理信息绘制方法、装置、终端及介质 | |
CN104392410B (zh) | 皮肤系统中的图片整合方法、皮肤绘制方法及设备 | |
CN112416489A (zh) | 工程图纸显示方法及相关装置 | |
CN113835890A (zh) | 一种渲染数据处理方法、装置、设备和存储介质 | |
CN114791986A (zh) | 三维信息模型的处理方法和装置 |
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 |