CN115270032B - 一种基于WebGL的动态高清文字显示方法及系统 - Google Patents
一种基于WebGL的动态高清文字显示方法及系统 Download PDFInfo
- Publication number
- CN115270032B CN115270032B CN202210953737.XA CN202210953737A CN115270032B CN 115270032 B CN115270032 B CN 115270032B CN 202210953737 A CN202210953737 A CN 202210953737A CN 115270032 B CN115270032 B CN 115270032B
- Authority
- CN
- China
- Prior art keywords
- distance field
- field information
- signed distance
- type
- text
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于WebGL的动态高清文字显示方法及系统,方法包括:获取包括待显示文字对象的第一字符集;基于前端的第一缓存数据将文字对象分为第一、第二类文字对象,第一类文字对象在第一缓存数据中缓存有多通道有符号距离场信息;从第一缓存数据中提取出对应于第一类文字对象的多通道有符号距离场信息,并构建得到第一多通道有符号距离场信息集;基于第二类文字对象对应构建得到第二多通道有符号距离场信息集,其中第二多通道有符号距离场信息集包括:第二类文字对象的多通道有符号距离场信息;基于多通道有符号距离场信息集进行渲染以显示文字对象。本发明所提供的方法及系统可以在一定程度上缓解文字的失真问题并实现海量文字的动态显示。
Description
技术领域
本发明涉及计算机图形Web显示技术领域,具体地涉及一种基于WebGL的动态高清文字显示方法及系统。
背景技术
当涉及到对海量动态字符的实时显示的应用场景时,特别是涉及到多国语言环境等字符量较大的场景时,往往是基于单通道带符号距离场(SDF)的方式实现的。但是,基于SDF 的文字显示也存在一些问题。例如,基于SDF生成的字体无法满足高清缩放要求,这类字体在放大渲染过程中存在三角变圆角等问题。如图1和图2所示,图1、图2分别为16像素和32像素的SDF字符“A”的渲染效果,两个SDF字符“A”在放大渲染后都会有三角变圆角问题。同时,动态的SDF生成字符的方式对相应系统的硬件性能要求较高,并且实时显示字符数量越多,其对计算机硬件性能的要求也更高,相应地实施成本也越高。
发明内容
本发明的目的在于提供一种基于WebGL的动态高清文字显示的方法及系统,以部分地解决或缓解现有技术中的上述不足,
为了解决上述所提到的技术问题,本发明具体采用以下技术方案:
本发明的第一方面,提供了一种基于WebGL的动态高清文字显示方法,包括步骤:
获取第一字符集,所述第一字符集包括:预期的待显示文字对象;
基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,所述第一类文字对象在所述第一缓存数据中存在对应的多通道有符号距离场信息;
从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第一多通道有符号距离场信息集;
基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集,其中,所述第二多通道有符号距离场信息集包括:所述第二类文字对象所对应的所述多通道有符号距离场信息;
基于对应的多通道有符号距离场信息集进行渲染,以显示所述文字对象。
进一步地,在一些实施例中,基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集的步骤包括:
基于后端的第二缓存数据对所述第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,所述第三类文字对象在所述第二缓存数据中存在对应的多通道有符号距离场信息;
从所述第二缓存数据中提取出与所述第三类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第三多通道有符号距离场信息集;
基于所述第四类文字对象对应生成多通道有符号距离场信息,并对应构建得到第四多通道有符号距离场信息集;
基于第三、第四多通道有符号距离场信息集对应得到所述第二多通道有符号距离场信息集。
进一步地,在一些实施例中,还包括步骤:
基于所述第一类文字对象对所述第一缓存数据中的各个多通道有符号距离场信息的当前时间戳和使用频次进行更新;
其中,所述当前时间戳为所述多通道有符号距离场信息所对应的所述第一类文字对象的最近显示时间。
进一步地,在一些实施例中,还包括步骤:
获取所述第四多通道有符号距离场信息集的数据大小;
获取所述前端剩余的缓存空间大小,其中,所述缓存空间用于缓存所述第一缓存数据;
判断所述数据大小是否小于或等于剩余的所述缓存空间大小,且当判断结果为是时,将所述第四多通道有符号距离场信息集缓存入所述缓存空间,当判断结果为否时,则基于所述第一缓存数据中的所述多通道有符号距离场信息的优先级对所述第一缓存数据进行部分清除,使得剩余的所述缓存空间大小不小于所述数据大小,并将所述第四多通道有符号距离场信息集缓存入所述缓存空间。
进一步地,在一些实施例中,所述第二缓存数据包括第一缓存部分和第二缓存部分,其中,所述第一缓存部分缓存于所述后端的第一存储空间,所述第二缓存部分缓存于所述后端的第二存储空间,且所述第一存储空间的数据读写速度大于所述第二存储空间的数据读写速度。
进一步地,在一些实施例中,还包括步骤:
对所述第一缓存部分中的各个多通道有符号距离场信息的当前时间戳和使用频次进行更新,其中,所述当前时间戳为所述多通道有符号距离场信息所对应的所述文字对象的最近显示时间;
基于所述当前时间戳和所述使用频次判断是否需要对所述第一缓存部分进行部分更新,以将所述第一缓存部分中的部分多通道有符号距离场信息缓存入所述第二存储空间,其中,所述部分多通道有符号距离场信息指的是优先级大于第一预设优先级的多通道有符号距离场信息。
进一步地,在一些实施例中,所述第一字符集中的所述文字对象不重复。
本发明第二方面在于,还提供一种基于WebGL的动态高清文字显示系统,包括:
第一字符集获取模块,被配置为用于获取第一字符集,所述第一字符集包括:预期的待显示文字对象;
第一分类模块,被配置为用于基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,所述第一类文字对象在所述第一缓存数据中存在对应的多通道有符号距离场信息;
第一信息集构建模块,被配置为用于从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第一多通道有符号距离场信息集;
第二信息集构建模块,被配置为基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集,其中,所述第二多通道有符号距离场信息集包括:所述第二类文字对象所对应的所述多通道有符号距离场信息;
渲染模块,被配置为用于基于对应的多通道有符号距离场信息集进行渲染,以显示所述文字对象。
进一步地,在一些实施例中,所述第二信息集构建模块进一步包括:
分类单元,被配置为用于基于后端的第二缓存数据对所述第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,所述第三类文字对象在所述第二缓存数据中存在对应的多通道有符号距离场信息;
第一信息集构建单元,被配置为用于从所述第二缓存数据中提取出与所述第三类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第三多通道有符号距离场信息集;
第二信息集构建单元,被配置为用于基于所述第三类文字对象对应生成多通道有符号距离场信息,并对应构建得到第四多通道有符号距离场信息集;
第三信息集构建单元,被配置为用于基于第三、第四多通道有符号距离场信息集对应得到所述第二多通道有符号距离场信息集。
进一步地,在一些实施例中,所述第一字符集中的所述文字对象不重复。
有益技术效果:
本发明所提供的一种基于WebGL的动态高清文字显示方法选用了多通道有符号距离场(MSDF)技术,有效地缓解了文字在放大渲染过程中的失真问题(如在放大过程中三角变圆角的问题),从而实现对文字对象的高清显示。
并且,本发明还通过设置在前端的第一缓存数据对该方法进行进一步地优化,减少并优化了CPU和GPU传送数据的逻辑,在一定程度上提高了字幕渲染性能和效率。
进一步地,本发明优选地通过前后端缓存(也即双端缓存)的方式进行数据缓存,双端缓存的方式不会对某一端的缓存造成过大压力;并且,双端缓存的方式便于对缓存数据进行合理的分配与管理,以进一步地协调与平衡前端缓存、网络请求、后端并发、后端缓存、 MSDF生成等多方压力,基于多方压力的综合协调使得每次渲染时所需要的PC资源都是最小且最优的。基于对多方压力的协调与平衡,该方法极大地降低了在实时动态地文字显示过程中,前端、后端在运行过程中所产生的请求和响应数据,从而有效地减少了网络数据传送压力、后端的并发压力以及前端的解析时间,进而有效加快了文字的生成、显示效率。同时,该方法还极大地减少了MSDF信息实时/动态生成的时耗和性能消耗,以进一步地加快文字显示的整体效率。
并且,每次只对浏览器中未存在缓存的字符集,申请生成新的MSDF信息请求,极大的减少了请求和响应数据,有利的减少了网络数据传送压力和服务端的并发压力。
因此,本发明能够很好地适应于海量、动态的文字显示场景。例如,涉及中文、日文、韩文等具有超大字符集的语言的动态高清显示;又例如,涉及到多国语言如英文、阿拉伯文等多国语言的动态高清显示的场景。
本发明所提供的文字显示方法可以很好地应用于各类字符量较大的文字的实时动态显示场景,尤其是文字内容、文字数量以及文字大小(即文字缩放状态)快速变化的显示场景(也即涉及到多重变化的文字显示场景)。例如,数据星空图等,特别是涉及到快速旋转、缩放等操作的GraphXR场景。如图11a-图11c所示,在GraphXR中,可以显示海量高清文字,且可对文字进行缩放、旋转等操作。在GraphXR的文字动态显示过程中,当用户希望查看某一部分数据时,可以对数据进行拖动以对部分数据进行高清放大显示。在此过程中,可能存在大量文字在短时间内快速地从不可见转为高清可见的状态,也即当前界面所显示的文字的内容、数量将随着用户的操作快速地实时变化(例如,当用户进行放大操作时,当前界面的高清可见的文字数量会在瞬间迅速增大,且文字也被迅速渲染放大)。而本申请一方面选用将MSDF技术应用到文字的动态显示上,可以有效地实现文字在快速渲染放大过程中的高清显示。同时,本申请优选地通过前后端缓存的方式极大的优化和减少MSDF信息的合成时间,同时也优化了CPU和GPU传送数据的逻辑,在一定程度上提高了字幕渲染性能和效率,能够很好地适应于这种显示内容变化迅速且显示字符数较多的动态文字显示场景。因此,本申请通过MSDF技术与前后端缓存相结合的方式,可在短时间内实时且快速地生成待显示的文字对象,并能够对实时变化的文字对象进行动态、高清地缩放显示。
本发明的优选适用的应用场景还包括:数据类型较多且数据总量海量的显示场景(如星空数据图),在这一类显示场景中,涉及到的数据类型众多,用户可以基于不同的检索模式/分析模式对不同的类型的数据进行针对性地显示。因此,当用户基于应用需求实时切换分析/检索模式时,当前所要显示的文字对象将会迅速变化。可以理解的是,本发明的优选适应场景还包括:在数据库(文字库)实时更新的显示场景。在这一类显示场景中,当前的数据库处于实时的动态更新状态(也即有外部的数据实时导入)。因此,在该显示场景中,当前所显示的文字对象也可能存在实时地动态变化,并且涉及到的文字对象众多难以预估,本发明中所提出的文字显示方法可以很好地适应这种文字内容动态变化且文字库(数据库)海量的应用场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为基于SDF技术生成的16像素的SDF字符“A”的渲染效果示意图;
图2为基于SDF技术生成的32像素的SDF字符“A”的渲染效果示意图;
图3为本发明一示例性实施例中的一种基于WebGL的动态高清文字显示方法的流程示意图;
图4为本发明一示例性实施例中的第二MSDF信息集的构建流程示意图;
图5为本发明一示例性实施例中所生成的16像素的MSDF字符“A”的渲染效果示意图;
图6为本发明一具体实施例中文字对象的显示效果示意图;
图7为本发明一具体实施例中的方法流程示意图;
图8为本发明一具体实施例中文字对象的分类关系示意图;
图9为本发明一示例性实施例中的一种基于WebGL的动态高清文字显示系统的模块结构示意图;
图10a为本发明一示例性实施例中的字符“AB”的MSDF信息中的PNG图片;
图10b为本发明一示例性实施例中的字符“AB”的MSDF信息中JSON信息;
图11a为本发明的示例性应用场景GraphXR的第一操作状态示意图;
图11b为本发明的示例性应用场景GraphXR的第二操作状态示意图;
图11c为本发明的示例性应用场景GraphXR的第一操作状态示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本文中,术语“上”、“下”、“内”、“外”、“前”、“后”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本文中,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本文中“和/或”包括任何和所有一个或多个列出的相关项的组合。
本文中“多个”意指两个或两个以上,即其包含两个、三个、四个、五个等。
本文中,“WebGL”是一项用来在网页上绘制和渲染复杂二维、三维图形(3D图形),并允许用户与之进行交互的技术。
本文中,“前端”指的是网站前台部分,运行在个人计算机(PC端),移动端等浏览器上展现各类文字对象给用户浏览的网页,例如浏览器。“后端”指的是通过浏览器和用户交互的服务器。
本文中,MSDF(Multi-channel signed distance field)也即多通道有符号距离场(或多通道带符号距离场),可以理解为MSDF字符为发光体,并能够向左右上下四个方向发出不一样的光,对应的光的颜色依次为红绿蓝白,产生对应的RGBA值,变成MSDF图片(也即 PNG图)如图5所示。并且,GPU只能识别颜色信息,所处理的都是用颜色(红绿蓝透明:RGBA)表示的数据。当GPU拿到MSDF图片之后会使用一个相应的算法来处理,当出现 RGBA中的中位数值大于0.5的时候显示,否则就不显示。如此可间接地把字符图片变成了矢量图形(可以基于对应的算法进行处理),因而在字符在缩放过程中不会出现失真的问题 (如三角变圆角的问题)。
实施例一
本发明第一方面在于,提供了一种基于WebGL的动态高清文字显示方法,如图3所示,该方法包括步骤:
S101获取第一字符集,第一字符集包括:预期的待显示文字对象;其中,文字对象为待显示的字符。
S102基于前端的第一缓存数据对文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,第一类文字对象在第一缓存数据中存在对应的MSDF信息(也即多通道有符号距离场信息),第二类文字对象在第一缓存数据中则不存在对应的MSDF信息;
S103从第一缓存数据中提取出与第一类文字对象所对应的MSDF信息,并对应构建得到第一MSDF信息集;
S104基于第二类文字对象对应构建得到第二MSDF信息集,其中,第二MSDF信息集包括:第二类文字对象所对应的MSDF信息;
S105基于对应的MSDF信息集进行渲染,以显示文字对象。
在一些实施例中,MSDF信息包括:PNG图片,以及JSON信息。
例如,在一具体实施例中,MSDF字符“AB”的PNG42像素图片信息如图10a所示,其JSON信息的展开如图10b所示。
在一些实施例中,步骤S104具体包括:针对未在第一缓存数据中提取到可用MSDF信息的文字对象,向MSDF服务器发送相应的第一请求,且第一请求包括:第二类文字对象。MSDF服务器基于所接收到的第一请求对应生成第二类文字对象的MSDF信息,并对应得构建得到第二MSDF信息集。例如,本实施例中,当在第一缓存数据中存在所需MSDF信息时,则从第一缓存数据中提取出现有的所需MSDF信息,对于剩余未提取到现有的MSDF信息的文字对象,则可以基于MSDF服务器实时生成相应的MSDF信息。待得到所有待显示文字对象的MSDF信息均获取到后,则对这些所获取到的MSDF信息进行渲染,以对文字对象进行显示。
本实施例中,选用了多通道带符号距离场(MSDF)技术动态地生成需要显示的文字对象。其中,基于MSDF技术生成的文字对象能够良好地适应缩放变化,如图5所示,基于MSDF技术生成的16×16像素的“A”字符在放大渲染后不会存在图1、2中出现的三角变圆角的问题。并且,本实施例中通过在前端缓存有第一缓存数据,使得在文字对象的生成过程中,可以优先地从第一缓存数据中选取需要的MSDF信息,从而在一定程度上减小MSDF 信息的生成时耗以及对MSDF服务器性能的占用,提高整体的MSDF信息的生成效率。同时,由于仅针对未存在缓存信息的文字对象提出生成MSDF信息的请求,可以有效地减少请求数据和响应数据,由此可以有效减少网络数据传输压力(如减少服务端和浏览器端的传输数据量)和服务器的并发压力。
可以理解的是,当所需要生成的文字对象(或MSDF信息)越多时,所需要响应和传送的时间会越长,从而可能导致服务端压栈的请求越多以至于服务端的并发能力指数下降。因此,尤其是针对动态显示数据海量的情况下,通过第一缓存数据对部分文字对象提供MSDF 信息,可以在一定程度上减小服务端的并发压力。
优选地,在一些实施例中,如图4所示,步骤S104包括:
S401基于后端的第二缓存数据对第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,第三类文字对象在第二缓存数据中存在对应的MSDF信息,第四类文字对象在第二缓存数据中则不存在对应的MSDF信息;
S402从第二缓存数据中提取出与第三类文字对象所对应的MSDF信息,并对应构建得到第三MSDF信息集;
S403基于第四类文字对象对应生成MSDF信息,并对应构建得到第四MSDF信息集;
S404基于第三、第四MSDF信息集对应得到第二MSDF信息集。
在一些实施例中,S403具体包括步骤:向MSDF服务器发送生成MSDF信息的第二请求,且第二请求包括:第四类文字对象;MSDF服务器基于接收到的第二请求生成对应于第四类文字对象的MSDF信息。本实施例中,每次仅针对前端(如浏览器)以及后端(即服务器)未存在缓存信息的文字对象,生成申请生成MSDF信息的请求,极大地减少了请求和响应数据,即减少了MSDF服务器的生成压力,也减少了服务端并发压力。
本实施例中,选用前后端缓存的方式进一步地缓解了后端(也即服务端)以及MSDF服务器的运行压力。其中,通过前端的第一缓存数据可以有效地减少发送至MSDF服务器的请求数据量(换言之,也即减少了不同端口之间的网络数据传输量),并减少后端需要处理(包括缓存、发送等)的数据量。通过后端的第二缓存数据,可以进一步地减小MSDF服务器的实时生产MSDF信息的压力。换句话说,本实施例中的前后端缓存方式为MSDF生产操作提供了可靠的重用优化,进一步地减少了MSDF信息的生产耗时以及MSDF服务器的性能消耗。并且,前后端缓存相结合既能够保证更高效的文字显示过程,同时不会为前端造成更多地负载压力,不会对浏览器的性能造成过多耗用。
并且,本实施例中的前后端缓存方式尤其适合应用在文字对象量多,且具有一定的重复性的显示场景中,例如,地图导航系统的显示。
优选地,在一些实施例中,第一缓存数据中包括:历史显示过的文字对象的MSDF信息。
优选地,在一些实施例中,第二缓存数据中包括:历史显示过的文字对象的MSDF信息。
具体地,在一些实施例中,第一、二缓存数据中的MSDF信息为在浏览器端曾经显示过的文字对象的MSDF信息,也即为当前的MSDF服务器在历史一段时间内所生成的 MSDF信息。
可以理解的是,为了避免对资源的无效占用,第一、二缓存数据中的MSDF信息不存在重复。
进一步地,在一些实施例中,还包括步骤:
基于第一类文字对象对第一缓存数据中的各个MSDF信息的当前时间戳和使用频次进行更新;
其中,当前时间戳为MSDF信息所对应的第一类文字对象的最近显示时间。
进一步地,在一些实施例中,还包括步骤:
获取第四MSDF信息集的数据大小(或信息集大小);
获取前端剩余的缓存空间大小,其中,缓存空间用于缓存第一缓存数据;
判断数据大小是否小于或等于剩余的缓存空间大小,且当判断结果为是时,将第四 MSDF信息集缓存入缓存空间,当判断结果为否时,则基于第一缓存数据中的MSDF信息的优先级对第一缓存数据进行部分清除,使得剩余的缓存空间大小不小于数据大小,并将第四 MSDF信息集缓存入缓存空间。
例如,在一些具体的实施例中,基于第一类文字对象信息对第一缓存数据中的相关信息(包括MSDF信息的当前时间戳以及使用频次)进行更新。具体地,将MSDF信息所对应的文字对象的最近使用时间(或最近显示时间)为当前时间戳,使用频次加1。在缓存第二文字对象的MSDF信息时,需要检查剩余的缓存空间的大小。例如,当检查到剩余的缓存空间大小为x,而当前的第二文字对象(优选地为在第一、二缓存空间中都不存在的文字对象) 的大小为y,当y≥x时(或者,在另一些实施例中,当y≥x·λ,则开始对缓存空间进行清除。其中,λ为安全系数,小于1,例如,λ可设为0.8、0.9等等),则需要按最近使用时间和使用频次确定各个缓存MSDF信息的优先级信息,并基于优先级信息对其中的部分缓存 MSDF信息进行依次清除,清除出部分可用缓存空间,使得第二文字对象的MSDF信息可以正常存入。最后将第二文字对象的MSDF信息缓存入第一缓存数据中,实现对第一缓存数据的动态更新。
或者,在另一些实施例中,当文字对象在当前时间内出现两次或多次时,使用频次也对应地增加两次或多次。
本实施例中,通过对第一缓存数据的动态更新管理,保证当前的第一缓存数据与当前的待显示内容具有较强的关联性(也即,在之后的显示过程中,所产生的第一字符集中的文字对象在第一缓存数据中缓存有对应MSDF信息的概率相对较高)。
优选地,在一些实施例中,为了提高文字的显示效率,减化显示系统的复杂性,第一字符集中的文字对象不重复。
优选地,在一些实施例中,对于各个文字对象还标记有出现次数,其中出现次数为该文字对象在当前待显示区域内的出现总次数。
进一步地,在一些实施例中,MSDF信息的对应优先级为:
W=aT-bF (1)
其中,W为优先级,a、b为权重,T为当前时间与所述当前时间戳之间的时间差,F 为所述使用频次。上述式(1)为基于当前时间戳、使用频次确定的MSDF信息优先级的数学模型。可以理解的是,a、b的具体数值可以基于工作人员进行自行设定。
例如,在一些实施例中,当W越大,则对应MSDF信息的优先级更靠前,在进行数据清除时也会优先处理。也即是本实施例中的优先级代表MSDF信息的清除优先级。
进一步地,在一些实施例中,当第一缓存数据中的部分MSDF信息被清除/删除时,将这部分被清除/删除的MSDF信息缓存至位于后端的第二缓存数据中。
进一步地,在一些实施例中,第二缓存数据包括第一缓存部分和第二缓存部分,其中,第一缓存部分缓存于后端的第一存储空间,第二缓存部分缓存于后端的第二存储空间,且第一存储空间的数据读写速度大于第二存储空间的数据读写速度。
例如,在一些实施例中,从第一缓存数据中清除的缓存数据优先地缓存至第二缓存数据中的第一缓存部分。
进一步地,在一些实施例中,还包括步骤:
对所述第一缓存部分中的各个MSDF信息的当前时间戳和使用频次进行更新,其中,所述当前时间戳为所述MSDF信息所对应的所述文字对象的最近显示时间;
基于所述当前时间戳和所述使用频次判断是否需要对所述第一缓存部分进行部分更新,以将所述第一缓存部分中的部分所述MSDF信息缓存入所述第二存储空间,其中,部分MSDF信息指的是优先级大于第一预设优先级的MSDF信息。
在一些实施例中,第二缓存数据中的MSDF优先级的确定方式可以参见上述式(1),其中,第一预设优先级可以由工作人员进行自由设定。
例如,在一些实施例中,第一存储空间为后端的内存区域(也即内存储器),第二存储空间为后端的外存储区(也即外存储器)或高速缓冲存储器,如硬盘、软盘等。
本实施例中,第二缓存数据主要存储于后端也即服务端,在服务端的存储空间(包括第一、二存储空间)相对充足时,通常不会清除缓存。但是,为了加快文字显示效率,同时考虑到第一、二存储空间的存储空间大小以及读取速度的特点,可以基于最近使用时间和使用频次对第一、二存储空间的缓存数据进行合理的分区规划,将相对不常用的MSDF信息从第一存储空间(如内存)转移到第二存储空间(硬盘)中。其中,第一缓存部分读取速度相对较快,更有助于提升MSDF信息的读取速度,从而提高文字显示的整体效率。
本实施例中,对当前时间戳较近的文字对象或近期内使用频次相对较高的文字对象进行实时地缓存与信息更新,使得缓存于前端的第一缓存数据既不会占据过多的存储空间,并且能够节省网络请求时间以及缓解MSDF服务器的生成压力。具体地,MSDF信息中包括PNG 图片以及JSON文字对应的位置信息,动态管理下的第一缓存数据可以有效减少前后端之间的MSDF信息的传输量,相应地对网络数据传输的要求也更低,前端所需的解析JSON和分解MSDF图片时间(也即PNG图片)越短。并且,由于第一缓存数据处于动态的更新管理中,所占据的存储空间有限,不会对浏览器的内存、电脑CPU计算性能等造成不利限制。另一方面,缓存于后端的第二缓存数据可以进一步地缓解MSDF服务器的运行压力,减小MSDF 信息的生成时间。
优选地,在一些实施例中,由最近使用时间和使用频次两者决定,且最近使用时间是主要权重。
优选地,在一些实施例中,为了提高文字的显示效率,减化显示系统的复杂性,第一字符集中的文字对象不重复。
例如,在一些实施例中,首先获取到待显示的所有文字对象,并对各个文字对象进行筛选,以过滤除去重复的文字对象,使得相同的字符在第一字符集中仅出现一次。也即对于出现两次或两次以上的文字对象仅生成一次。
优选地,在一具体实施例中,如图7所示,该方法的具体执行流程如下:浏览器端(也即前端)获取到WebGL场景中的可见字符集,且可见字符集中的文字对象不重复。随后,判断浏览器是否缓存了整个字符集所对应的MSDF信息,若是,则直接基于缓存的MSDF信息实现对文字对象的显示(对于浏览器缓存的MSDF信息无需经过解析);若否,则按照是否有缓存对字符集进行拆分,并将没有缓存信息的字符集发送至MSDF服务器。MSDF服务器依次检测每个字符是否有缓存在服务端(也即后端),若是,则提取相应的MSDF信息并响应给浏览器端;若否则针对未缓存的文字对象生成相应的MSDF信息,并在服务端缓存,随后将缓存的MSDF信息响应给浏览器。浏览器按字符缓存相应的MSDF信息,收集到以上各个步骤所获取得到的MSDF信息,并对后端所发送到浏览器的MSDF信息进行解析(可以理解的是,由后端发送到浏览器的MSDF信息在传输时可能会出现格式变更,因此需要浏览器将MSDF信息解析为当前便于读取的格式),配合BufferGeometry传送至GPU(图形处理器) 完成渲染显示。
优选地,在一些实施例中,当判断出当前待缓存的第四MSDF信息集的数据大小大于剩余的缓存空间的大小时,则触发清除缓存的逻辑,且当前触发清除缓存的逻辑的时间与上一次进行部分清除(也即清除缓存)的时间间隔大于预设时长时,则基于当前待缓存的第四MSDF信息集的数据大小确定缓存空间的空间增量。
或者,在另一些实施例中,当判断出当前待缓存的第四MSDF信息集的数据大小大于缓存空间时,则基于当前的数据大小确定缓存空间的空间增量,使得扩充后的缓存空间可以缓存当前的第四MSDF信息集。
可以理解的是,空间增量的设置使得扩充后的缓存空间大于或等于待缓存的数据大小即可。具体地,空间增量的数值可直接由工作人员自行设定。
例如,在一具体实施例中,前端当前设置的存储阀值(或存储阈值)可存储的字符数为M1(如1000个字符),且最大不超过M2(如5000个字符)。如果出现以下情况:
1、当前新增字符集长度大于缓存剩余空间长度,则触发清除缓存的逻辑,如果触发的时间距离上一次对第一缓存数据进行清除的时间>预设时长(例如,4S、8S或其他自定义的预设时长);
或者,2、新增待缓存字符集长度大于缓存剩余空间长度,且大于总缓存空间一定比例M’(如60%);
或者,3、新增待缓存字符集长度大于总缓存空间长度;
则缓存阀值增加Ma”(使得前端存储空间可以容纳新的缓存字符集即可),直到阀值到M2,则不再增加。本实施例中,前端的可用的存储阀值(用于存储第一缓存数据的存储空间的大小)可以基于第一缓存数据被清理的频率和渲染性能进行动态管理。
本实施例中,用于存储第一缓存数据的缓存空间并不是固定不变的,而是可以基于实时的待缓存字符数量以及第一缓存数据进行灵活地调整规划。从而能够动态地适应不同时段或不同应用场景下的文字显示需求。而对于后端的第二缓存数据则优选地采用全缓存的方式,也即不对第二缓存数据进行清除。需要注意的是,此处的不对第二缓存数据进行清除指的是不会将第二缓存数据从后端直接删除,但并不排除对第二缓存数据在后端的存储区域进行调整。换句话说,本实施例中的前后端分别选用了部分缓存、全缓存的方式对第一、二缓存数据进行缓存与管理,并分别基于部分缓存、全缓存的特性实现了对第一、二缓存数据的动态管理(包括缓存、清除、存储位置转移等操作)。
在一些实施例中,文字对象包括以下一种或多种类型:单个字符、由两个或多个字符组成的短语或词组。
实施例二
本发明还提供了另一种基于WebGL的动态高清文字显示方法,与实施例一相同的是,该方法同样地包括如图3、图4所示的步骤:
获取第一字符集,所述第一字符集包括:预期的待显示文字对象;
基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,所述第一类文字对象在所述第一缓存数据中存在对应的MSDF信息;
从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述MSDF信息,并对应构建得到第一MSDF信息集;
基于所述第二类文字对象对应构建得到第二MSDF信息集,其中,所述第二MSDF 信息集包括:所述第二类文字对象所对应的所述MSDF信息;
基于对应的MSDF信息集进行渲染,以显示所述文字对象。
进一步地,在一些实施例中,基于所述第二类文字对象对应构建得到第二MSDF信息集的步骤包括:
基于后端的第二缓存数据对所述第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,所述第三类文字对象在所述第二缓存数据中存在对应的MSDF信息;
从所述第二缓存数据中提取出与所述第三类文字对象所对应的所述MSDF信息,并对应构建得到第三MSDF信息集;
基于所述第四类文字对象对应生成MSDF信息,并对应构建得到第四MSDF信息集;
基于第三、第四MSDF信息集对应得到所述第二MSDF信息集。
本实施例优选地通过前后端缓存的方式进行数据缓存,在保证高效快速地进行动态显示的同时,实现了对前端文字渲染,前端缓存、网络请求、服务端并发、服务端缓存、MSDF 生成等各方压力之间的协调与平衡。具体地,前后端缓存方式使得每次进行渲染所需PC资源都是最少和最优的,并对生成MSDF操作提供了可靠的重用优化,极大地减小MSDF信息生成的时耗与性能消耗。
在一些实施例中,文字对象包括以下一种或多种类型:单个字符、由两个或多个字符组成的短语或词组。
例如,当待显示的文字对象包括中文时,第一字符集中的文字对象包括:“是”、“的”、“新闻”、“信息”、“媒介”等等。
对应地,第一、二缓存数据中可能包括:“是”对应的MSDF信息、“新闻”对应的MSDF信息、“媒介”所对应的MSDF信息。也即是说,本实施例中第一、二缓存数据中所缓存的各个MSDF信息可以对应于单个字符(如单个汉字),也可以对应为特定的短语或词组。
又例如,在一些实施例中,当待显示的文字对象为英文时,第一字符集中的文字对象优选地为单词,以及英语短语或词组(term)。具体地,在一些实施例中,在第一、二缓存数据中所存储的MSDF信息则可分别对应于一些常用单词、词组或短语,例如,“immediate”、“therefore”、“a lot”“supposed to”、“as a result of”等等。
本实施例中,第一、二缓存数据中的MSDF信息可以以单个字符、短语或词组为单位进行存储,进一步地考虑到了文字表达的实际特点,进一步地增强了缓存数据与实际应用场景之间的关联性(也即增强了缓存数据的实用性)。
与实施例一不同的是,本实施例中针对第一、二缓存数据选用了另一种动态管理方式,相应地,该方法还包括步骤:
采集文字对象在第一预设时间内的出现频次,当文字对象的出现频次大于预设的第一阈值时,将文字对象所对应的MSDF信息存入第一缓存数据中。
优选地,本实施例中,对于第一预设时间(例如,一个月,一个季度)内高频出现的文字对象的MSDF信息进行缓存。这种优选的筛选方式为MSD信息的生成过程提供了可靠的重用优化,同时优化了GPU和CPU传送数据的逻辑。
优选地,在一些实施例中,还包括步骤:
当文字对象在第一预设时间内的出现频次大于预设的第二阈值,且小于或等于第一阈值时,将文字对象所对应的MSDF信息存入第二缓存数据。
例如,在一些实施例中,对于当文字对象在第一预设时间内出现频次大于第二阈值时,则将文字对象所对应的MSDF信息存入第二缓存数据中。待检测到文字对象在出现频次逐渐增加并大于第一阈值时,则对应的MSDF从第二缓存数据转移至第一缓存数据中。
例如,在一些实施例中,将在一个月内出现15次以上的文字对象当作高频词,存入第一缓存数据中。将一个月内出现8-14次的文字对象当作次高频词,存入第二缓存数据中。
或者,在另一些实施例中,还包括步骤:
当第一缓存数据中的文字对象在第二预设时间内的出现频次小于第三阈值时,将对应的MSDF信息保存至第二缓存数据中,其中,第三阈值小于第一阈值。
例如,在一些实施例中,当第一、二预设时间均为1个月时,第一阈值设为15,第三阈值设为12。
在一些实施例中,第一预设时间和第二预设时间可以相同。
当然,在另一些实施例中,第一预设时间和第二预设时间也可以不同。
本实施例中,对于在一段时间内出现频次略有降低文字对象,并不会立即将其转入第二缓存数据。可以理解的是,在实际的文字显示应用场景中,文字对象的显示规律并不是固定不变的,可能存在部分文字对象的出现频次在大于第一阈值,以及第一阈值与第三阈值之间等不同范围之间来回变动(或者说,文字对象的出现频次存在一定的波动性)。本实施例中通过增设第三阈值对缓存数据的管理方式进行进一步地优化,避免针对相同的文字对象出现频繁地缓存、清除等操作,以进一步地简化前端对缓存数据的管理压力。并且,本实施例通过第三阈值的设置可以进一步地适应文字风格多变的显示场景,增加该方法的可靠性。
当然,可以理解的是,第一阈值、第二阈值以及第三阈值的设置可以由工作人员基于前端、后端的实际运行情况进行自适应地设定。
优选地,在一些实施例中,为了对避免对服务器资源的无效占用,当第二缓存数据中的文字对象在第一预设时间内的出现频次小于预设的第二阈值时,对第二缓存数据中对应的 MSDF信息进行清除。
或者,在另一些实施例中,为了避免出现频繁的缓存、清除操作,当文字对象的出现频次小于预设的第四阈值时,才对第二缓存数据中对应的MSDF信息进行清除。
本实施例中,不仅可以动态地生成待显示的文字对象,同时针对第一、二缓存数据也有效地实现了动态地管理。并且,本实施例中对缓存数据的动态管理综合地考虑了前后端的存储特点(包括存储空间、读取方式等)以及MSDF信息的应用特点(即出现频次),对前后端的存储空间以及MSDF信息进行了合理地规划与分配。
优选地,在一些实施例中,为了提高文字的显示效率,减小显示系统的复杂,第一字符集中的文字对象不重复。
例如,在一些实施例中,首先获取到待显示的所有文字对象,并对各个文字对象进行筛选,以过滤除去重复的文字对象,使得相同的字符在第一字符集中仅出现一次。也即对于出现两次或两次以上的文字对象仅生成一次。
在一些实施例中,以上的各个预设时间可以由工作人员基于实际应用需求进行自行设置,例如将第一预设时间设为一个月。
优选地,在一些实施例中,还包括步骤:
对应用场景的类型进行识别,并基于应用场景的类型选取高频文字对象,对应构建得到第二字符集;
基于第二字符集对应生成相应的第五MSDF信息集;
将第五MSDF信息集对应地缓存于第一缓存数据或第二缓存数据中。
本实施例尤其适应于文字对象显示海量,具有文字重复性较高(或者说,所出现的文字对象具有一定的规律性)的应用场景,如图11a-图11c所示的GraphXR显示场景。
优选地,针对这些特殊的应用场景,可以预先地对应用场景进行分析识别,并基于对应用场景的分析识别预先缓存相应的MSDF信息。或者,基于对应用场景的分析识别,设定第一、二缓存数据的缓存条件(如设定第一、二阈值等)。
例如,在涉及到地图的三维显示中,所需要显示的文字对象的范围基本可以预见。因此,可以针对常见地名进行预先的MSDF信息缓存。或者,等到在实际显示过程中生成常用字的MSDF信息时,可对这些MSDF信息优先进行缓存。
再例如,在涉及到对人物信息(如姓名、籍贯等)的三维显示中时,所需要显示的文字对象范围也基本可以预见。具体地,可以优先针对常用词如百家姓等进行预先的MSDF信息生成,并将最常见的姓氏(例如,使用人数的前一百位姓氏)存入第一缓存数据,并将其余姓氏存入第二缓存数据。
本实施例中,通过对应用场景的类型进行针对性地识别,可以进一步地提高该方法的通用性。
在一些实施例中,对应用场景的类型的识别可以由工作人员进行人工识别与设定。
在一具体实施例中,文字渲染效果如图6所示。
可以理解的是,该方法可以通过仅选用前端缓存的方式实施,也可以仅通过后端缓存的方式实施。优选地,该方法通过前后端缓存的方式实施。
本发明这种前后端缓存的方案具有很好的自主学习能力与适应能力。当该方法在某一具体应用场景中的使用时间越长,越能够熟悉该应用场景的特性(如高频词、次高频词等),对该应用场景的适应性也更佳。
实施例三
基于上述实施例一,本发明第三方面在于,还对应上述方法提供了一种基于WebGL的动态高清文字显示系统,如图9所示,该系统包括:
第一字符集获取模块01,被配置为用于获取第一字符集,第一字符集包括:预期的待显示文字对象;
第一分类模块02,被配置为用于基于前端的第一缓存数据对文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,第一类文字对象在第一缓存数据中存在对应的MSDF信息;
第一信息集构建模块03,被配置为用于从第一缓存数据中提取出与第一类文字对象所对应的MSDF信息,并对应构建得到第一MSDF信息集;
第二信息集构建模块04,被配置为基于第二类文字对象对应构建得到第二MSDF信息集,其中,第二MSDF信息集包括:第二类文字对象所对应的MSDF信息;
渲染模块05,被配置为用于基于对应的MSDF信息集进行渲染,以显示文字对象。
进一步地,在一些实施例中,第二信息集构建模块04进一步包括:
分类单元41,被配置为用于基于后端的第二缓存数据对第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,第三类文字对象在第二缓存数据中存在对应的MSDF信息;
第一信息集构建单元42,被配置为用于从第二缓存数据中提取出与第三类文字对象所对应的MSDF信息,并对应构建得到第三MSDF信息集;
第二信息集构建单元43,被配置为用于基于第四类文字对象对应生成MSDF信息,并对应构建得到第四MSDF信息集;
第三信息集构建单元44,被配置为用于基于第三、第四MSDF信息集对应得到第二MSDF信息集。
进一步地,在一些实施例中,所述系统还包括:
第一更新模块,被配置为用于基于所述第一类文字对象对所述第一缓存数据中的各个 MSDF信息的当前时间戳和使用频次进行更新;其中,所述当前时间戳为所述MSDF信息所对应的所述第一类文字对象的最近显示时间。
进一步地,在一些实施例中,所述系统还包括:第二更新模块,且所述第二更新模块包括:
第一单元,被配置为用于获取所述第四MSDF信息集的数据大小;
第二单元,被配置为用于获取所述前端剩余的缓存空间大小,其中,所述缓存空间用于缓存所述第一缓存数据;
更新单元,被配置为用于判断所述数据大小是否小于或等于所述缓存空间大小,且当判断结果为是时,将所述第四MSDF信息集缓存入所述缓存空间,当判断结果为否时,则基于所述第一缓存数据中的MSDF信息的优先级对所述第一缓存数据进行部分清除,使得剩余的所述缓存空间大小不小于所述数据大小,并将所述第四MSDF信息集缓存入所述缓存空间。
进一步地,在一些实施例中,所述MSDF信息的优先级为:W=aT-bF;
其中,W为优先级,a、b为权重,T为当前时间与所述当前时间戳之间的时差,F为所述使用频次。
进一步地,在一些实施例中,所述第二缓存数据包括第一缓存部分和第二缓存部分,其中,所述第一缓存部分缓存于所述后端的第一存储空间,所述第二缓存部分缓存于所述后端的第二存储空间,且所述第一存储空间的数据读写速度大于所述第二存储空间的数据读写速度。
例如,在一些实施例中,第一存储空间为后端的内存区域(也即内存储器),第二存储空间为后端的外存储区(也即外存储器)或高速缓冲存储器,如硬盘、软盘等。
进一步地,在一些实施例中,所述系统还包括:
第三更新模块,被配置为用于对所述第一缓存部分中的各个MSDF信息的当前时间戳和使用频次进行更新,其中,所述当前时间戳为所述MSDF信息所对应的所述文字对象的最近显示时间;
第四更新模块,被配置为用于基于所述当前时间戳和所述使用频次判断是否需要对所述第一缓存部分进行部分更新,以将所述第一缓存部分中的部分所述MSDF信息缓存入所述第二存储空间,其中,所述部分MSDF信息指的是优先级大于第一预设优先级的MSDF信息。
优选地,在一些实施例中,所述第一字符集中的所述文字对象不重复。
实施例四
本发明第四方面在于,还对应上述实施例二提供了一种基于WebGL的动态高清文字显示系统,如图9所示,该系统包括:
第一字符集获取模块01,被配置为用于获取第一字符集,第一字符集包括:预期的待显示文字对象;
第一分类模块02,被配置为用于基于前端的第一缓存数据对文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,第一类文字对象在第一缓存数据中存在对应的MSDF信息;
第一信息集构建模块03,被配置为用于从第一缓存数据中提取出与第一类文字对象所对应的MSDF信息,并对应构建得到第一MSDF信息集;
第二信息集构建模块04,被配置为基于第二类文字对象对应构建得到第二MSDF信息集,其中,第二MSDF信息集包括:第二类文字对象所对应的MSDF信息;
渲染模块05,被配置为用于基于对应的MSDF信息集进行渲染,以显示文字对象。
进一步地,在一些实施例中,第二信息集构建模块04进一步包括:
分类单元41,被配置为用于基于后端的第二缓存数据对第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,第三类文字对象在第二缓存数据中存在对应的MSDF信息;
第一信息集构建单元42,被配置为用于从第二缓存数据中提取出与第三类文字对象所对应的MSDF信息,并对应构建得到第三MSDF信息集;
第二信息集构建单元43,被配置为用于基于第四类文字对象对应生成MSDF信息,并对应构建得到第四MSDF信息集;
第三信息集构建单元44,被配置为用于基于第三、第四MSDF信息集对应得到第二MSDF信息集。
优选地,在一些实施例中,第一字符集中的文字对象不重复。
例如,在一些实施例中,当检测到WebGL端要显示的文字内容为:“新闻是指报纸电台电视台互联网等媒体经常使用的记录与传播信息的一种文体”时,对应得到的第一字符集如图8所示,首先基于第一分类模块对第一字符集中的文字对象进行分类,对应得到第一、二类文字对象。随后进一步地基于分类单元对第二类文字对象进行分类,对应得到第三、四类文字对象。
进一步地,在一些实施例中,该系统还包括:
第一缓存数据管理模块,被配置为用于采集各个所述文字对象在第一预设时间内的出现频次,当所述文字对象的出现频次大于预设的第一阈值时,将所述文字对象所对应的所述 MSDF信息存入所述第一缓存数据中。
进一步地,在一些实施例中,该系统还包括:
第二缓存数据管理模块,被配置为用于当所述文字对象在第一预设时间内的出现频次大于预设的第二阈值,且小于或等于所述第一阈值时,将所述文字对象所对应的所述MSDF 信息存入第二缓存数据。
进一步地,在一些实施例中,所述第二缓存数据管理模块还被配置为用于当所述文字对象在所述第一预设时间内的出现频次小于预设的第二阈值时,对(第二缓存数据中)对应的所述MSDF信息进行清除。
进一步地,在一些实施例中,所述第一缓存数据管理模块还被配置为用于当所述第一缓存数据中的所述文字对象在第二预设时间内的出现频次小于第三阈值时,将对应的所述 MSDF信息保存至所述第二缓存数据中。
实施例五
本发明的第五方面,在于提供了一种用在计算机系统上的用于基于WebGL的动态高清文字显示的计算机程序产品,所述计算机程序产品包括之上具有计算机可读程序代码的计算机可用介质,所述计算机可读程序代码包括:用于获取第一字符集的程序代码,所述第一字符集包括:预期的待显示文字对象;用于基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象的程序代码,其中,所述第一类文字对象在所述第一缓存数据中存在对应的MSDF信息;用于从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述MSDF信息,并对应构建得到第一MSDF信息集的程序代码;用于基于所述第二类文字对象对应构建得到第二MSDF信息集的程序代码,其中,所述第二MSDF 信息集包括:所述第二类文字对象所对应的所述MSDF信息;用于基于对应的MSDF信息集进行渲染,以显示所述文字对象的程序代码。
用于实现本发明的一个或多个实施例的示例性硬件和软件环境包括可以支持WebGL 的计算机,其可以是可以支持WebGL的用户/客户端计算机、服务器计算机,也可以是数据库计算机。计算机包括处理器和存储器,如随机存取存储器(RAM)。计算机可以与其他设备耦合和/或集成,包括输入/输出(I/O)设备,如键盘、光标控制设备(如鼠标、指向设备、笔和平板电脑、触摸屏、多点触控设备等)和打印机。在一个或多个实施例中,计算机可以耦合到或组成便携式或媒体观看设备(例如,MP3播放器、iPodTM、NookTM、便携式数字视频播放器、蜂窝设备、个人数字助理等)。在另一个实施例中,计算机可包括在各种平台和操作系统上执行的多点触摸设备、移动电话、游戏系统、支持互联网的电视、电视机顶盒或其他支持互联网的设备。
优选地,在一些实施例中,用于实现本发明的一个或多个实施例的示例性硬件和软件环境为可以支持WebGL的设备。例如,个人电脑、手机、VR设备(例如,Oculus、HTC VIVE、HoloLens等VR设备)等。
在一个实施例中,计算机通过通用处理器操作,在操作系统的控制下执行由计算机程序定义的指令。计算机程序和/或操作系统可存储在存储器中,并可与用户和/或其他设备连接以接受输入和命令,并根据计算机程序和操作系统所定义的输入和命令和指令,提供输出和结果。
输出/结果可以显示在显示器上,也可以提供给其他设备以供显示或进一步处理或操作。在一个实施例中,显示器包括具有多个单独可寻址液晶的液晶显示器(LCD)。或者,显示器可以包括发光二极管(LED)显示器,该显示器具有一起驱动的红色、绿色和蓝色二极管簇以形成全彩像素。显示器的每个液晶或像素变为不透明或半透明状态,以形成显示器上图像的一部分,以响应处理器根据计算机程序和/或操作系统的指令对输入和命令的应用而产生的数据或信息。
在本发明的各种实施例中,显示器是一种3D显示设备,可包括3D使能显示器(例如, 3D电视机或显示器)、头戴显示器(例如,带有两个小LCD或OLED[有机发光二极管]显示器的头盔或眼镜,这些显示器带有放大镜,每个眼睛一个)、主动或被动3D观看器(例如,LC快门眼镜、线偏振眼镜、圆偏振眼镜等)等。在这方面,任何可用于查看3D立体图像的技术都由显示器表示。此外,一个或多个立体相机可配置为与计算机通信,以使在3D显示器上的3D显示成为可能。
可以通过图形用户界面(GUI)模块提供3D图像。尽管GUI模块被描述为一个单独的模块,但执行GUI功能的指令可以驻留或分布在操作系统、计算机程序中,或者使用特殊用途的内存和处理器实现。
在一个或多个实施例中,显示器与计算机集成,并包括具有触摸感应表面(例如,履带吊舱或触摸屏)的多触控设备,该设备具有识别与该表面存在两个或多个接触点的能力。多点触控设备的例子包括移动设备(如iPhoneTM、Nexus STM、DroidTM设备等)、平板电脑(如iPadTM、 HP TouchpadTM)、便携式/手持游戏/音乐/视频播放器/控制台设备(如iPodTouchTM、MP3播放器、任天堂3DSTM、PlayStation portableTM等)、触摸桌面和墙壁(如通过丙烯酸和/或玻璃投影图像,然后用led背光图像)。
计算机根据计算机程序指令所执行的部分或全部操作可以在专用处理器中实现。在本实施例中,计算机程序的部分或全部指令可以通过存储在只读存储器(ROM)、可编程只读存储器(PROM)或闪存中的固件指令实现,该只读存储器位于专用处理器或存储器中。还可以通过电路设计对专用处理器进行硬连线,以执行实现本发明的部分或全部操作。此外,专用处理器可能是一种混合处理器,它包括用于执行功能子集的专用电路,以及用于执行更通用的功能(如响应计算机程序指令)的其他电路。在一个实施例中,专用处理器是一种应用专用集成电路(ASIC)。
计算机也可以实现编译器,它允许用编程语言(如COBOL、Pascal、c++、FORTRAN 或其他语言)编写的应用程序或计算机程序被翻译成处理器可读的代码。或者,编译器可以是一个解释器,它可以直接执行指令/源代码,将源代码转换为要执行的中间表示,或者执行存储的预编译代码。这样的源代码可以用各种编程语言编写,如JavaTM、PerlTM、BasicTM等。完成后,应用程序或计算机程序使用编译器生成的关系和逻辑,访问和操作从I/O设备接收并存储在计算机的内存中的数据。
计算机还可选地包括外部通信设备,如调制解调器、卫星链路、以太网卡或用于从其他计算机接受输入并向其提供输出的其他设备。
在一个实施例中,实现操作系统、计算机程序和编译器的指令有形地包含在非瞬态计算机可读介质中,例如,数据存储设备,该介质可以包括一个或多个固定或可移动的数据存储设备,例如压缩驱动器、软盘驱动器、硬盘驱动器、CD-ROM驱动器、磁带驱动器等。此外,操作系统和计算机程序由计算机程序指令组成,当计算机访问、读取和执行这些指令时,会使计算机执行必要的步骤。
当然,这方面的技术人员会认识到,上述组件的任意组合,或任意数量的不同组件、外设和其他设备,都可能与计算机一起使用。
分布式计算机系统使用网络将客户机计算机连接到服务器计算机。典型的资源组合可能包括网络,其中包括Internet、lan(局域网)、wan(广域网)、SNA(系统网络体系结构)网络,或者类似的个人计算客户端。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台计算机终端(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (8)
1.一种基于WebGL的动态高清文字显示方法,其特征在于,包括步骤:
获取第一字符集,所述第一字符集包括:预期的待显示文字对象;
基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,所述第一类文字对象在所述第一缓存数据中存在对应的多通道有符号距离场信息;
从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第一多通道有符号距离场信息集;
基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集,其中,所述第二多通道有符号距离场信息集包括:所述第二类文字对象所对应的所述多通道有符号距离场信息;
基于对应的多通道有符号距离场信息集进行渲染,以显示所述文字对象;
其中,基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集的步骤包括:
基于后端的第二缓存数据对所述第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,所述第三类文字对象在所述第二缓存数据中存在对应的多通道有符号距离场信息;
从所述第二缓存数据中提取出与所述第三类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第三多通道有符号距离场信息集;
基于所述第四类文字对象对应生成多通道有符号距离场信息,并对应构建得到第四多通道有符号距离场信息集;
基于第三、第四多通道有符号距离场信息集对应得到所述第二多通道有符号距离场信息集。
2.根据权利要求1所述的方法,其特征在于,还包括步骤:
基于所述第一类文字对象对所述第一缓存数据中的各个多通道有符号距离场信息的当前时间戳和使用频次进行更新;
其中,所述当前时间戳为所述多通道有符号距离场信息所对应的所述第一类文字对象的最近显示时间。
3.根据权利要求2所述的方法,其特征在于, 还包括步骤:
获取所述第四多通道有符号距离场信息集的数据大小;
获取所述前端剩余的缓存空间大小,其中,所述缓存空间用于缓存所述第一缓存数据;
判断所述数据大小是否小于或等于剩余的所述缓存空间大小,且当判断结果为是时,将所述第四多通道有符号距离场信息集缓存入所述缓存空间,当判断结果为否时,则基于所述第一缓存数据中的所述多通道有符号距离场信息的优先级对所述第一缓存数据进行部分清除,使得剩余的所述缓存空间大小不小于所述数据大小,并将所述第四多通道有符号距离场信息集缓存入所述缓存空间。
4.根据权利要求1所述的方法,其特征在于,所述第二缓存数据包括第一缓存部分和第二缓存部分,其中,所述第一缓存部分缓存于所述后端的第一存储空间,所述第二缓存部分缓存于所述后端的第二存储空间,且所述第一存储空间的数据读写速度大于所述第二存储空间的数据读写速度。
5.根据权利要求4所述的方法,其特征在于,还包括步骤:
对所述第一缓存部分中的各个多通道有符号距离场信息的当前时间戳和使用频次进行更新,其中,所述当前时间戳为所述多通道有符号距离场信息所对应的所述文字对象的最近显示时间;
基于所述当前时间戳和所述使用频次判断是否需要对所述第一缓存部分进行部分更新,以将所述第一缓存部分中的部分多通道有符号距离场信息缓存入所述第二存储空间,其中,所述部分多通道有符号距离场信息指的是优先级大于第一预设优先级的多通道有符号距离场信息。
6.根据权利要求1所述的方法,其特征在于,所述第一字符集中的所述文字对象不重复。
7.一种基于WebGL的动态高清文字显示系统,其特征在于,包括:
第一字符集获取模块,被配置为用于获取第一字符集,所述第一字符集包括:预期的待显示文字对象;
第一分类模块,被配置为用于基于前端的第一缓存数据对所述文字对象进行分类,对应分为第一类文字对象和第二类文字对象,其中,所述第一类文字对象在所述第一缓存数据中存在对应的多通道有符号距离场信息;
第一信息集构建模块,被配置为用于从所述第一缓存数据中提取出与所述第一类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第一多通道有符号距离场信息集;
第二信息集构建模块,被配置为基于所述第二类文字对象对应构建得到第二多通道有符号距离场信息集,其中,所述第二多通道有符号距离场信息集包括:所述第二类文字对象所对应的所述多通道有符号距离场信息;
渲染模块,被配置为用于基于对应的多通道有符号距离场信息集进行渲染,以显示所述文字对象;
其中,所述第二信息集构建模块进一步包括:
分类单元,被配置为用于基于后端的第二缓存数据对所述第二类文字对象进行分类,对应分为第三类文字对象和第四类文字对象,其中,所述第三类文字对象在所述第二缓存数据中存在对应的多通道有符号距离场信息;
第一信息集构建单元,被配置为用于从所述第二缓存数据中提取出与所述第三类文字对象所对应的所述多通道有符号距离场信息,并对应构建得到第三多通道有符号距离场信息集;
第二信息集构建单元,被配置为用于基于所述第三类文字对象对应生成多通道有符号距离场信息,并对应构建得到第四多通道有符号距离场信息集;
第三信息集构建单元,被配置为用于基于第三、第四多通道有符号距离场信息集对应得到所述第二多通道有符号距离场信息集。
8.根据权利要求7所述的系统,其特征在于,所述第一字符集中的所述文字对象不重复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210953737.XA CN115270032B (zh) | 2022-08-10 | 2022-08-10 | 一种基于WebGL的动态高清文字显示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210953737.XA CN115270032B (zh) | 2022-08-10 | 2022-08-10 | 一种基于WebGL的动态高清文字显示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115270032A CN115270032A (zh) | 2022-11-01 |
CN115270032B true CN115270032B (zh) | 2023-04-25 |
Family
ID=83750804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210953737.XA Active CN115270032B (zh) | 2022-08-10 | 2022-08-10 | 一种基于WebGL的动态高清文字显示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115270032B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992602A (zh) * | 2022-11-29 | 2024-05-07 | 上海图客科技有限公司 | 基于WebGL的动态高性能批量文本渲染方法、系统及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911734A (zh) * | 2017-11-10 | 2018-04-13 | 青岛海信电器股份有限公司 | 字幕显示方法、装置以及计算机可存储介质 |
CN109448137A (zh) * | 2018-10-23 | 2019-03-08 | 网易(杭州)网络有限公司 | 交互方法、交互装置、电子设备及存储介质 |
CN111788611A (zh) * | 2017-12-22 | 2020-10-16 | 奇跃公司 | 密集3d重建数据的缓存和更新 |
CN112667831A (zh) * | 2020-12-25 | 2021-04-16 | 上海硬通网络科技有限公司 | 素材存储方法、装置及电子设备 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3413236B2 (ja) * | 1993-03-26 | 2003-06-03 | コニカ株式会社 | 文字認識方法 |
US7190367B2 (en) * | 2003-03-25 | 2007-03-13 | Mitsubishi Electric Research Laboratories, Inc. | Method, apparatus, and system for rendering using a progressive cache |
US6982724B2 (en) * | 2003-03-25 | 2006-01-03 | Mitsubishi Electric Research Labs, Inc. | Method for antialiasing an object represented as a two-dimensional distance field in object-order |
US7106332B2 (en) * | 2003-03-25 | 2006-09-12 | Mitsubishi Electric Research Laboratories, Inc. | Method for converting two-dimensional pen strokes to distance fields |
US6917369B2 (en) * | 2003-03-25 | 2005-07-12 | Mitsubishi Electric Research Labs, Inc. | Method and apparatus for rendering cell-based distance fields using texture mapping |
JP2010211829A (ja) * | 2010-06-07 | 2010-09-24 | Canon Inc | 情報処理装置と情報処理方法及びコンピュータ読み出し可能な記録媒体 |
US11024014B2 (en) * | 2016-06-28 | 2021-06-01 | Microsoft Technology Licensing, Llc | Sharp text rendering with reprojection |
WO2019092218A1 (en) * | 2017-11-09 | 2019-05-16 | Arivis Ag | Correcting segmented surfaces to align with a rendering of volumetric data |
EP3762901A4 (en) * | 2018-03-08 | 2021-11-17 | Simile Inc. | METHODS AND SYSTEMS FOR THE PRODUCTION OF CONTENT IN ENVIRONMENTS WITH MULTIPLE REALITIES |
US11074724B2 (en) * | 2018-12-07 | 2021-07-27 | Microsoft Technology Licensing Llc | GPU calculation of signed distance fields |
US10936793B2 (en) * | 2019-02-06 | 2021-03-02 | Sparxteq, Inc. | Edited character strings |
US11909517B2 (en) * | 2019-05-29 | 2024-02-20 | CEO Vision, Inc | Systems and methods for secure, low bandwidth replicated virtual worlds for shared space computing |
CN112449230B (zh) * | 2019-08-28 | 2022-05-10 | 腾讯数码(天津)有限公司 | 字符串显示处理方法、装置、终端及存储介质 |
CN114026603B (zh) * | 2019-09-23 | 2023-06-13 | 苹果公司 | 渲染计算机生成现实文本 |
DE202019105917U1 (de) * | 2019-10-24 | 2020-02-03 | Fraport Ag Frankfurt Airport Services Worldwide | Vorrichtungsanordnung zur interaktiven Großdarstellung von Fortbewegungsinformationen bewegter Objekte |
US11069119B1 (en) * | 2020-02-28 | 2021-07-20 | Verizon Patent And Licensing Inc. | Methods and systems for constructing a shader |
US11605173B2 (en) * | 2020-12-29 | 2023-03-14 | Waymo Llc | Three-dimensional point cloud labeling using distance field data |
CN112836467B (zh) * | 2020-12-30 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 一种图像处理方法及装置 |
EP4033451A1 (en) * | 2021-01-20 | 2022-07-27 | Siemens Healthcare GmbH | Interactive image editing using signed distance fields |
CN113077539B (zh) * | 2021-04-08 | 2022-06-14 | 网易(杭州)网络有限公司 | 目标虚拟模型的渲染方法、装置及电子设备 |
CN113177172B (zh) * | 2021-04-26 | 2024-09-27 | 上海新迪数字技术有限公司 | 基于WebGL的大批量三维文字高效显示的方法 |
CN113888694B (zh) * | 2021-09-08 | 2024-10-01 | 武汉大学 | 一种基于sdf场可微渲染的透明物体重建的方法及系统 |
CN114253647B (zh) * | 2021-12-21 | 2024-08-20 | 北京字跳网络技术有限公司 | 元素展示方法、装置、电子设备及存储介质 |
CN114627212A (zh) * | 2022-03-15 | 2022-06-14 | 南京师范大学 | 一种基于纹理的三角带字符表示和实例化渲染方法及系统 |
-
2022
- 2022-08-10 CN CN202210953737.XA patent/CN115270032B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911734A (zh) * | 2017-11-10 | 2018-04-13 | 青岛海信电器股份有限公司 | 字幕显示方法、装置以及计算机可存储介质 |
CN111788611A (zh) * | 2017-12-22 | 2020-10-16 | 奇跃公司 | 密集3d重建数据的缓存和更新 |
CN109448137A (zh) * | 2018-10-23 | 2019-03-08 | 网易(杭州)网络有限公司 | 交互方法、交互装置、电子设备及存储介质 |
CN112667831A (zh) * | 2020-12-25 | 2021-04-16 | 上海硬通网络科技有限公司 | 素材存储方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115270032A (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
CN110096277B (zh) | 一种动态页面展示方法、装置、电子设备及存储介质 | |
US8878851B2 (en) | Method and system for streaming documents, e-mail attachments and maps to wireless devices | |
JP6549806B1 (ja) | コンテンツをキャプチャするスクリーンショット画像のピクセルに基づくコンピューティングデバイス上に表示されたコンテンツの領域へのセグメント分け | |
WO2020107920A1 (zh) | 合并贴图的获取方法、装置、存储介质、处理器及终端 | |
EP4080469A2 (en) | Method and apparatus of recognizing text, device, storage medium and smart dictionary pen | |
US10430040B2 (en) | Method and an apparatus for providing a multitasking view | |
US11681409B2 (en) | Systems and methods for augmented or mixed reality writing | |
CN103839479A (zh) | 一种高效电子地图注记交互方法 | |
CN115270032B (zh) | 一种基于WebGL的动态高清文字显示方法及系统 | |
US20220392101A1 (en) | Training method, method of detecting target image, electronic device and medium | |
CN109739611A (zh) | 列表视图绘制方法、装置、终端和存储介质 | |
CN112487871B (zh) | 笔迹数据处理方法、装置及电子设备 | |
CN110597900A (zh) | 一种gdb数据实时按需生成矢量切片的方法 | |
JP2022526514A (ja) | 文字列表示処理方法並びにその、装置、端末及びコンピュータプログラム | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
CN113805864A (zh) | 一种项目工程的生成方法、装置、电子设备及存储介质 | |
US20150138077A1 (en) | Display system and display controll device | |
CN117270834A (zh) | 地图渲染方法、装置、电子设备和存储介质 | |
CN109800039B (zh) | 一种用户界面展示方法、装置、电子设备及存储介质 | |
CN111767490A (zh) | 用于展示图像的方法、装置、设备以及存储介质 | |
EP3032492B1 (en) | Image processing apparatus and method | |
US11877036B2 (en) | Rendering scrolling captions | |
EP2703958A1 (en) | Method and apparatus for optimizing handwriting input method | |
CN116186240B (zh) | 基于WebGL的动态高性能批量文本渲染方法、系统及程序产品 |
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 |