CN110383269B - 基于多轴可变字体的动画字形 - Google Patents

基于多轴可变字体的动画字形 Download PDF

Info

Publication number
CN110383269B
CN110383269B CN201880015444.9A CN201880015444A CN110383269B CN 110383269 B CN110383269 B CN 110383269B CN 201880015444 A CN201880015444 A CN 201880015444A CN 110383269 B CN110383269 B CN 110383269B
Authority
CN
China
Prior art keywords
outline data
animation
font
glyph
computer device
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
Application number
CN201880015444.9A
Other languages
English (en)
Other versions
CN110383269A (zh
Inventor
S·尚布哈格
W·乔维拉普拉西特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110383269A publication Critical patent/CN110383269A/zh
Application granted granted Critical
Publication of CN110383269B publication Critical patent/CN110383269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

用于使可变字体动画化的方法和设备可以包括接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求。该方法和设备还可以包括基于动画参数而确定设计空间中用于一个或多个字形的动画路径,并计算具有沿动画路径的相应关键帧位置的关键帧集。该方法和设备可以包括为该关键帧集中的每个关键帧构造一个或多个字形的字形轮廓数据。该方法和设备可以包括在关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据,以及传输字形轮廓数据和中间字形轮廓数据。

Description

基于多轴可变字体的动画字形
背景技术
本公开涉及多轴字体,并且更具体地,涉及在计算机设备上使用多轴字体。
字体定义字形的视觉外观,其通常是静态二维(2D)定义,或者最近具有预定义动画的2D定义。文本的外观通常由字体文件(例如,Calibri,Arial)定义。传统上,字体可以在各种应用中重复使用。当任何应用实例化特定大小的字体(例如Arial大小为12)时,针对该字体大小(在该示例中为Arial大小12)而生成的所有字体数据通常通过缓存中间结果来在每个其他应用中可共享,该每个其他应用请求相同字体大小组合用于绘出(draw)文本。例如,当应用需要绘制(render)文本时,应用可能会要求文本处理组件(诸如DirectWrite)创建字体样式,如果缓存了字体样式数据,则DirectWrite将所请求的字体样式返回给应用。如果未缓存字体样式,则DirectWrite从字体文件中读取所需信息,将数据缓存在字体文件中,并且将所请求的字体样式返回给应用,这不适合用于使字体动画化。
对于由应用创建的每个唯一设计轴实例,DirectWrite根据字体文件计算字体轮廓,并且更新字体缓存。动画通常以每秒约60帧的速度重绘。因此,动画文本的应用需要创建大量的字体实例。与非变化文本情况不同,为动画创建的字体实例具有低的跨应用重用概率。因此,在传统的字体缓存中缓存它们会导致大量浪费的空间。更糟糕的结果是,由于为动画创建的字体实例的绝对数目,完全可共享的字体实例可能会因缓存溢出而被逐出。
因此,用于使字形动画化的现有技术或者需要大量的帧上帧处理时间,或者需要帧上帧存储空间,或者需要两者。先前的解决方案包括重复绘制不同的图像内容,诸如在动画化的图形互换格式(GIF)的情况下,这需要大量处理时间来解码每个图像帧以及大量存储空间以将图像帧存储在存储器和持久存储装置中。另外,现有解决方案在显示器的输出分辨率(例如,每英寸点数,每英寸像素数)上不可缩放。
因此,本领域需要动画化字体的改进。
发明内容
以下呈现了本公开的一个或多个实施方式的简化发明内容,以便提供对这些实施方式的基本理解。该发明内容不是所有预期实现的广泛概述,并且既不旨在标识所有实施方式的关键或重要元素,也不旨在描绘任何或所有实施方式的范围。其唯一目的是以简化形式呈现本公开的一个或多个实施方式的一些概念,作为稍后呈现的更详细描述的序言。
一个示例实施方式涉及计算机设备。计算机设备可以包括:用于存储数据和指令的存储器、与存储器通信的处理器、与存储器和处理器通信的操作系统。操作系统可操作的,以接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求,基于动画参数而确定设计空间中用于一个或多个符号中的动画路径,计算具有沿动画路径的相应关键帧位置的关键帧集,为关键帧集中的每个关键帧构造一个或多个字形的字形轮廓数据,在关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据,并传输字形轮廓数据和中间字形轮廓数据。
另一示例实施方式涉及用于使可变字体动画化的方法。该方法可以包括:在执行在计算机设备上的操作系统处,接收基于一个或多个动画参数而在对设计空间中使可变字体的一个或多个字形动画化的请求。该方法还可以包括:在操作系统处,基于动画参数而确定设计空间中用于一个或多个字形的动画路径。另外,该方法可以包括:计算具有沿着动画路径的相应关键帧位置的关键帧集。该方法可以包括:为关键帧集中的每个关键帧构造一个或多个字形的字形轮廓数据。该方法可以包括:在关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据。该方法还可以包括传输字形轮廓数据和中间字形轮廓数据。
另一示例实施方式涉及存储由计算机设备可执行的指令的计算机可读介质。该计算机可读介质可以包括:用于使计算机设备接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求的至少一个指令。该计算机可读介质可以包括:用于使计算机设备基于动画参数而确定设计空间中用于一个或多个字形的动画路径的至少一个指令。该计算机可读介质可以包括:用于使计算机设备计算具有沿动画路径的相应关键帧位置的关键帧集的至少一个指令。该计算机可读介质可以包括:用于使计算机设备为关键帧集中的每个关键帧构造用于一个或多个字形的字形轮廓数据的至少一个指令。该计算机可读介质可以包括:用于使计算机设备在关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据的至少一个指令。该计算机可读介质可以包括:用于使计算机设备传输字形轮廓数据和中间字形轮廓数据的至少一个指令。
与本公开的实施方式有关的其他优点和新颖特征将部分地在以下描述中阐述,并且部分地对于本领域技术人员在检查以下内容或通过实践学习时将变得更加明显。
附图说明
在附图中:
图1是根据本公开的实施方式的示例设备的示意性框图。
图2A和图2B示出了根据本公开的实施方式的可变字体的示例性重量变化轴;
图3A-图3D示出了根据本公开的实施方式的示例性字形轮廓数据;
图4A-图4C示出了根据本公开的实施方式的从默认字形值到非默认字形值的示例变化增量;
图5A-图5C示出了根据本公开的实施方式的示例性字形轮廓数据;
图6示出了根据本公开的实施方式的用于可变字体的示例设计空间;
图7示出了根据本公开的实施方式的通过设计空间的示例动画路径;
图8示出了根据本公开的实施方式的通过设计空间的示例动画路径;
图9A和图9B示出了根据本公开的实施方式的设计空间中的示例性影响区域;
图10示出了根据本公开的实施方式的示例动画路径和与双轴字体的影响区域相关联的对应关键帧的图形;
图11示出了根据本公开的实施方式的使字体随时间动画化的示例的图形;
图12是根据本公开的实施方式的用于使多轴字体动画化的方法的流程图;
图13示出了根据本公开的实施方式的通过多个影响区域的示例动画路径;和
图14是根据本公开的实施方式的示例设备的示意性框图。
具体实施方式
本公开提供了用于以可变字体呈现字形的动画的系统和方法。可变字体可以支持一个或多个变化轴。每个变化轴可以定义用于特定轴的最小值和最大值之间的可能值范围。变化轴可以定义用于使可变字体的字形动画化的变化设计空间。固定轴字体描述单个字样,而多轴可变字体可以描述属于单个字体系列的不确定数目的字样。多轴字体中的各种轴可用于定义字形的动画。动画可以包括但不限于放大和缩小字形、向外和向内拉伸字形、字形在显示器上上下弹跳以及向外移动字形以提供开口,在该开口处可以将新字形插入到句子中并在插入后向内移动字形。本公开提供了对多轴可变字体使用字体字形内插过程以及现有图形处理单元(GPU)字形缓存技术的系统和方法,以显着减少帧上帧处理时间,同时允许使用字体变化增量来紧凑表示各种关键帧。本公开建立了在动画序列中绘制可变字体的高效方式。
本公开以不同于静态文本的方式处理多轴可变字体的动画。与填充字体缓存相反,本公开的系统和方法可以计算沿着应用旨在用于多轴可变字体的动画的动画路径的多个关键帧,并且可以在本地存储关键帧。系统和方法可以评估关键帧位置处的字形轮廓。在中间位置处,系统和方法可以通过在最近的两个关键帧之间内插(例如,在中间位置的每一侧上一个)而在不丢失任何信息的情况下来生成相应的中间字形轮廓。因此,可以通过在关键帧位置处构造字形轮廓数据并将字形轮廓数据暴露给绘制器来促进高效绘制。
现在参考图1,用于结合使可变字体12动画化的示例计算机设备102可以包括由计算机设备102的处理器46和/或存储器44执行的操作系统110。可变字体12可以包括多轴可变字体,其可以描述属于单个字体系列的不定数目的字形15。另外,多轴可变字体可以允许单个可变字体12内的字形15的几何轮廓的外观的大的变化。例如,可以使用重量轴和宽度轴来描述双轴可变字体。字体作者可以根据需要将多个轴和多个字形轮廓15添加到可变字体12中。另外,多轴可变字体12中的各个轴可用于定义字形15的动画。
计算机设备102的存储器44可以被配置用于存储与操作系统110相关联的和/或限定操作系统110的数据和/或计算机可执行指令,并且处理器46可以执行操作系统110。存储器44的示例可以包括但是不限于由计算机可使用的存储器,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。处理器46的示例可以包括但不限于如本文所述的专门编程的任何处理器,包括控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、或其他可编程逻辑或状态机。
计算机设备102可以包括可以连接到网络的任何移动或固定计算机设备。计算机设备102可以是例如计算机设备(诸如台式计算机或膝上型或平板计算机)、蜂窝电话、游戏设备、混合现实或虚拟现实设备、音乐设备、电视、导航系统、相机、个人数字助理(PDA)或手持设备、或具有与一个或多个其他设备和/或通信网络的有线和/或无线连接能力的任何其他计算机设备。
计算机设备102还可以包括可以在显示器上呈现一个或多个可变字体12的一个或多个应用10。应用10还可以被配置为使用一个或多个可变字体12来使字形15动画化。可变字体12可以支持一个或多个变化轴。每个变化轴可以定义用于特定轴的最小值和最大值之间的可能值范围。变化轴可以定义用于使可变字体12的字形15动画化的变化设计空间13。设计空间13可以例如由用户(例如,字体设计者)和/或应用10预定义。在实施方式中,用户可以确定对于每个轴可以支持什么范围的设计空间13以及字形15的设计如何与每个轴的比例对齐。
图2A中示出了示例性重量变化轴200。重量变化轴200示出了沿着重量变化轴200从薄(thin)重量变化201到黑(black)重量变化202的“G”字形的示例范围。此外,用户可以选择支持用于字形15的有限重量范围,如图2B所示。图2B示出了重量变化轴200(图2A)的有限重量范围204。
返回参考图1,可变字体12还可以包括设计空间13内用于字形15的字形轮廓数据19。可变字体12可以具有用于可变字体12内的每个字形15的默认实例。图3A示出用于“G”字形的示例填充默认实例302。图3B示出了用于“G”字形的示例性轮廓默认实例304。默认实例可以具有与设计空间13中的位置对应的坐标,其中坐标可以被设置为用于可变字体12中指定的每个变化轴的默认值。例如,诸如字体设计者的用户可以预定义设计空间13内的默认坐标位置以用于字形15的默认字形轮廓。
字形15的其他实例可以具有用于一个或多个变化轴的非默认坐标值。例如,图3C示出了“G”字形的薄填充实例306,而图3D示出了“G”字形的示例性薄轮廓实例308。变化数据可以基于来自字形的默认值的调整增量来支持字形的非默认实例。图4A示出了叠加在“G”字形的默认实例302上的“G”字形的薄填充实例306的示例。图4B示出了叠加在“G”字形的示例性轮廓默认实例304上的“G”字形的示例性薄轮廓实例308。在图4C中示出示例增量值406和408,其示出了与“G”字形的轮廓默认实例304到“G”字形的薄轮廓实例308的差异。
返回参考图1,用户和/或应用10可以在设计空间13内的不同坐标位置处预定义一个或多个主位置17。主位置17还可以包括用于字形15的字形轮廓数据19。主位置17可以包括从字形15的默认字形轮廓值到主位置17处的字形轮廓数据19的一个或多个变化增量。这样,设计空间13内的默认位置和/或一个或多个主位置17可以包括可变字体12的字形15的完整字形轮廓数据19。通常,可以在每个变化轴上提供变化增量。例如,可以在变化轴的结束值处提供变化增量。还可以沿变化轴在选定位置处提供变化增量。另外,可以在设计空间13中的其他位置提供变化增量。
图5A示出了示例性变化轴500,其中字形轮廓502被设置在变化轴500的最小值处,并且字形轮廓512被设置在变化轴500的最大值处。此外,默认字形轮廓506可以被设置在变化轴500上的默认值处。对于变化轴500上的任何中间位置,可以基于字形轮廓数据502、506和512对中间字形轮廓504、508和510进行内插。
图5B示出了用于两个主位置17的示例性字形轮廓数据。每个主位置17可以为设计空间13(图1)内的不同位置提供完整的字形轮廓数据。字形轮廓502在薄主位置处示出。另外,在黑主位置处示出了字形轮廓512。图5C示出了示例性默认轮廓506。根据两个主位置502和512(图5B),可以导出可变字体12,可变字体12具有用于默认重量506的完整字形轮廓以及用于一个或多个非默认重量(包括最小重量514和最大重量516)的增量。
现在参考图6,示出了示例性二维(2D)设计空间13,其具有变化的水平宽度轴602和变化的垂直重量轴604。设计空间13可以是(例如,由字体作者)预定义的,以包括沿着设计空间13的四个外角的字形轮廓,该四个外角可以具有坐标例如(100,200)、(900,200)、(100,50)和(900,50)。从字形的轮廓,可以通过内插字形轮廓数据来构造位于设计空间13内的任何点的实例。例如,应用10可以通过在运行时指定期望的设计轴坐标值(例如,184,148)来选择在坐标(184,148)处实例化字体。设计空间可以对应于可变字体的轴的数目。这样,随着可变字体的轴的数目增加和/或减少,包括在设计空间中的轴的数目可以分别增加和/或减少。
返回参考图1,当使可变字体12的字形15动画化时,应用10可以确定一个或多个动画参数14以定义动画。动画参数14可以指定应用10旨在用于字形15的动画的通过设计空间13的路径。动画参数14可以包括动画的起点16。例如,起点16可以对应于字形15的初始特征集,诸如默认字形轮廓。另外,起点16可以对应于设计空间13中的初始坐标集。动画参数14还可以包括用于动画的终点18(例如,设计空间13中的终止坐标集)。终点18还可以对应于基于默认字形轮廓数据的变化增量的字形轮廓数据。另外,动画参数14可以包括通过设计空间13在起点16和终点18之间的设计路径21。设计路径21可以是例如穿过设计空间13的直线、弯曲路径或曲折线。另外,设计路径21可以是任何数目的维度(例如,2D、3D、四维、八维)。动画参数14还可以包括动画的定时信息20。定时信息可以包括但不限于:动画的持续时间;动画的速率;以及动画是连续的、循环的还是自动反转的。在实施方式中,应用10可以从用户接收针对各种动画参数14的输入选择。例如,应用10可以在显示器上呈现滑块用户界面元件,允许用户选择一个或多个动画参数14。
应用10可以基于一个或多个动画参数14向文本处理组件28发送请求22以使可变字体12动画化。示例文本处理组件28可以包括DirectWrite。例如,请求22可以包括一个或多个字形15,以与用于所请求的动画的动画参数14一起动画化。例如,应用10可以想要通过向外和向内拉伸字形15来使显示在显示器上的字形15动画化。动画的另一示例可以包括:字形15在显示器上上下弹跳。动画的另一个示例可以包括:字形15向外移动,以提供可以插入新文本的开口;以及一旦插入文本,字形15就向内移动。动画还可以包括放大或缩小字形15。在另一个示例中,字形15可以包含用于表情符号(emoji)的图形轮廓,并且动画可以包括使表情符号动画化。使表情符号动画化可以包括例如微笑的笑脸或执行竖起大拇指动画的竖起大拇指的表情符号。此外,用户界面(UI)图标或其他自定义字符可以被编码为可变字体12。例如,邮件应用可以使用具有动画信封的可变字体12来描绘新邮件。
文本处理组件28可以基于所接收的动画参数14确定动画路径30,以用于使在请求22中标识的一个或多个字形15动画化。例如,当确定动画路径30时,文本处理组件28可以将起点16和终点18之间的设计路径21转换为设计空间13中的设计空间坐标。设计空间坐标还可以包括沿着起点16和终点18之间的动画路径30的多个中间坐标。对于线性动画路径30,起点16和终点18可以是所标识的设计空间坐标。对于非线性动画路径30,可以标识起点16、终点18以及起点16和终点18之间的多个中间坐标。如果动画路径30循环,则动画路径30可以在动画路径30到达终点18时循环回到起点18。图7示出了字形“G”的起点16和终点18之间通过设计空间13的示例动画路径30。图8示出了如何基于图8中所示的动画路径30来使字形“G”动画化。例如,可以基于动画路径30生成字形轮廓数据802、804、806和808。
文本处理组件28可以标识来自可变字体12的多个主位置17,其可以与期望的动画路径30相关。如上所述,用户和/或应用10可以预先确定设计空间13内的可变字体12的多个主位置17。每个主位置17可以包括影响区域33。影响区域33可以从从主位置17到默认坐标位置的坐标位置跨越。另外,影响区域33可以具有由设计空间13中的多个轴限制的多于一个维度。例如,一维设计空间13中的影响区域33可以是线分段。另一示例可以包括二维设计空间13中的矩形影响区域33。另一示例可以包括对于三维或更高维设计空间13的分别由平面或超平面界定的矩形平行六面体表示的影响区域33。
图9A示出了从具有坐标(1,1)的主位置904跨越到默认位置906的示例性影响区域902。此外,影响区域33可以具有由例如用户和/或应用10选择的受限制范围。图9B示出了受限制的影响区域908的示例。当在主位置17的影响区域33内选择坐标位置时,主位置17的字形轮廓数据19可以用于为所选择的坐标位置内插字形轮廓数据19。
另外,文本处理组件28可以计算沿着动画路径30的关键帧32的数目。每个关键帧32可以与不同的字形轮廓数据19相关联,用于基于例如从对应于关键帧位置34的默认字形轮廓数据的变化的增量来使字形15动画化。可以基于例如距动画起点16的距离沿着动画路径30的方向对关键帧位置34进行排序。这样,随着动画沿着动画路径30前进,可以按顺序呈现与每个关键帧32相关联的字形轮廓数据19。
关键帧32之间的转换可以定义可以在显示器上呈现字形15的哪个移动。当通过设计空间13使给定动画路径30动画化时,可以在动画起点16和终点18处计算关键帧32。当动画路径30遇到一个或多个新的影响区域33时(例如,动画路径30与影响区域33相交),当动画路径30越过影响区域33的峰值时,或者当动画路径30在特定轴坐标上从平面的负半部移动到正半部时,可以在起点16和终点18之间计算动画路径30上的附加关键帧32。否则,可以从两个相邻的关键帧32导出中间位置36处的字形轮廓数据38。对于关键帧位置34之间的任何中间位置36,文本处理组件28可以沿着动画路径30在最近的两个关键帧位置34之间进行内插,并返回用于中间位置36的中间字形轮廓数据38。
文本处理组件28可以计算从动画路径30上的起点16到动画路径30的终点18的最小数目的关键帧32。可以通过评估动画路径30与沿动画路径30的任何实例影响区域33之间的交叉点来计算关键帧32的最小数目。关键帧32的最小数目可以是例如基于由每个影响区域定义的几何形状的变化而可以用于在整个动画路径30上使字形15动画化的最小数目的关键帧32。
文本处理组件28可以计算沿着动画路径30的最小数目的关键帧32,并且在可应用的关键帧32之间进行内插,而不是文本处理组件28标识沿着动画路径30的所有增量集,选择其影响区域33影响所考虑的实例的增量集,计算重量的增量和,以及显示由针对每个轮廓点所计算的相应增量而移位的默认轮廓点。因此,可以显着地减少动画字形15所需的计算。另外,文本处理组件28可以在动画发生时创建中间字形轮廓数据38,而不存储中间字形轮廓数据38。这样,由于可以不存储中间字形轮廓数据38,因此可以利用更空间高效的紧凑表示来实现动画。
文本处理组件28可以将用于关键帧位置34的字形轮廓数据19和用于中间位置36的中间字形轮廓数据38传输到图形处理单元24。图形处理单元24可以与绘制器26通信以在显示器上呈现字形轮廓数据19和中间字形轮廓数据38。因此,代替图形处理单元24反复重绘文本以模拟动画,动画可以实时或接近实时地发生,因为当动画路径30进行时,图形处理单元24接收用于字形15的变化的中间字形轮廓数据38。
在实施方式中,绘制器26可以直接从文本处理组件28请求关键帧32,并且可以直接在图形处理单元24上执行关键帧位置34之间的内插。
在实施方式中,应用10还可以向文本处理组件28传输对2D字体的请求,并且文本处理组件28可以从字体缓存42或者备选地当2D字体不在字体缓存42中时从字体文件40中检索所请求的2D字体。文本处理组件28可以将所请求的2D字体返回到图形处理单元24。这样,文本处理组件28可以不同于对静态文本的请求来处理使可变字体12动画化的请求。
现在参照图10,图形1000示出了在示例动画路径30的与示例设计空间13中的示例影响区域33(例如,I2和I4)的交点处的示例关键帧32(例如,K1、K2、K3和K4),如针对双轴可变字体计算的,其中图形1000的x轴定义可变字体的重量,图形200的y轴定义可变字体的宽度。动画路径30从示例动画起点16(例如,A0)延伸穿过设计空间13到示例动画终点18(例如A1)。
可变字体的重量和宽度可以定义主位置I0、I1、I2、I3和I4,其中实例I0指定作为可变字体的字形的完整轮廓的默认轮廓。例如,I0可以是用于字形15的基本特征集(例如,基本重量和基本宽度)。主位置I1、I2、I3和I4可以定义与I0处的默认轮廓和相应的影响区域33的偏移(例如,I2的影响区域和I4的影响区域)。例如,I1、I2、I3和I4可以包括用于字形15的重量和宽度的其他值集合,其可以根据它们在设计空间13中的位置线性地或非线性地变化。如上所述,所选主位置的数目可以由用户(例如字体设计者)预定义。
当应用10期望沿着动画路径30从动画起点16到动画终点18(例如,从A0到A1)使文本动画化时,可以通过沿着从A0到A1的曲线评估与实例影响区域33(例如,I2和I4)的每个交叉点来计算实现动画的最佳关键帧集32。另外,当动画路径30穿过影响区域33的峰值时,或者当动画路径30从特定轴坐标上的平面的负半部移动到正半部时,可以计算关键帧32。图形200示出了关键帧32作为沿动画路径30的点K1、K2、K3和K4,其对应于动画路径30与实例I4和I2的影响区域相交的点(例如,K1、K3和K4),动画路径30与影响区域的峰值I4相交的点(例如,K2),动画路径30与坐标轴交叉的点(例如,K4)。点K1、K2、K3和K4连同动画路径的起始位置A0和结束位置A1可以定义在整个动画路径30上动画化所需的最小关键帧集32。
当可变字体具有多于两个轴时,由不同主位置定义的影响区域可以具有更高的维度,并且可以通过分别由平面或超平面限定的三维或更高维度的矩形平行六面体更好地描述。可以通过使动画路径30与这些较高维度平面和超平面相交来计算关键帧32。
现在参考图11,示出了根据实现的使字体动画化的示例。通常,当应用使显示器上的对象动画化时,应用通过在每次应用重绘对象时稍微改变对象的几何或外观属性(诸如颜色)而在动画持续时间内在显示器上多次重绘该对象。例如,考虑在屏幕上绘出扩展的圆圈。圆圈可以圆圈1102可以以10个单位的半径开始,并且在3秒的持续时间内变为具有25个单位的圆圈1108。
通常,为了动画,重绘速率大约是每秒60次,并且可以被称为每秒帧(FPS)。在图11所示的圆圈示例中,在时间t=0秒和t=1秒之间,应用将尝试通过在每次绘出圆圈时增加圆的半径来重绘圆圈60次。
在圆圈示例中,由于半径在3秒内从10个单位变为25个单位并且可以不需要对半径的其他扰动,因此通过在10和25的半径值之间进行内插,可以在t=0和t=3之间的任何时间计算半径。例如,起始半径可以等于10,结束半径可以等于25,并且可以通过从结束半径减去起始半径来计算半径的变化等于15。因此,在3秒的动画期间,半径变化速率可以等于每秒5个单位。可以通过将半径的变化除以动画的持续时间来计算半径变化速率。
这样,可以使用以下公式对0秒到3秒之间的任何时间“t”的半径值进行内插:时间t处的半径=起始半径+t*半径变化速率。在圆圈示例中,需要指定t=0秒和t=3秒时的半径和中心位置。这样,我们有在t=0秒和t=3秒时的关键帧。例如,可以基于上面的公式使用线性或非线性内插来计算中间圆圈位置1104和1106。
现在参考图12,用于使可变字体动画化的方法1200可以在计算机设备102(图1)的操作系统110(图1)上实现。
在1202处,方法1200可以包括接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求。可变字体可以支持一个或多个变化轴。例如,可变字体可以包括但不限于2D字体、3D字体、四维字体和八维字体。每个变化轴可以定义在用于特定轴的最小值和最大值之间的可能值范围。变化轴可以定义用于使可变字体的字形动画化的变化设计空间。设计空间可以例如由用户(例如,字体设计者)和/或应用预定义。在实施方式中,用户可以确定针对每个轴可以支持什么范围的设计空间以及字形的设计如何与每个轴的比例对齐。
在实施方式中,文本处理组件28(图1)可以从应用10(图1)接收用于使可变字体12(图1)的字形15(图1)动画化的请求22(图1)。例如,应用10可能期望使表情符号动画化,使字体动画化,放大字形,缩小字形,在粗体和常规文本之间切换,向内和/或向外拉伸字形,移动字形以形成开口插入文本,让字形在显示器上上下弹跳,并旋转字形,以及其他可能的动画。请求22可以包括一个或多个动画参数14(图1),其标识用于字形15的动画范围。例如,动画参数14可以包括但不限于动画起点16、动画终点18、动画的定时信息20(例如,动画的速度、动画是否连续、和动画的开始时间和结束时间)和/或用于动画的通过设计空间13的设计路径21。
在1204处,方法1200可以包括基于动画参数而确定设计空间中用于一个或多个字形的动画路径。例如,文本处理组件28可以将起点16和终点18之间的设计路径21转换为设计空间13中的几何参数,以确定用于字形15的动画路径30(图1)。动画路径30可以是通过设计空间13的曲线、直线或曲折线,其连接动画的起点16和终点18。对于非线性(例如,二次或更高阶)动画,曲线可以通过分段线性片来近似,其中每个线性子路径的关键帧被计算为线性动画曲线。
在1206处,方法1200可以包括计算具有沿着动画路径的相应关键帧位置的关键帧集。文本处理组件28可以沿动画路径30计算关键帧集32,每个关键帧具有对应的关键帧位置34。关键帧位置34可以包括动画起点16、动画终点18和动画路径30上的几何动画数据的几何形状非线性变化的位置。例如,可以在动画起点16和终点18处计算关键帧32。此外,当动画路径30遇到一个或多个新的影响区域33(例如,动画路径30与影响区域33相交)时,当动画路径30越过影响区域33的峰值时,或者当动画路径30在特定轴坐标上从平面的负半部移动到正半部时,可以计算关键帧32。例如,可以通过评估动画路径30与沿着动画路径30的任何影响区域33的交叉点来确定关键帧位置34。另外,文本处理组件28可以计算从动画路径30上的起点16到动画路径30的终点18的最小数目的关键帧32。可以通过沿着动画路径30评估与影响区域33的交叉点来计算关键帧32的最小数目。关键帧32的最小数目可以是例如基于由每个影响区域33定义的几何形状的非线性变化而可以用于在整个动画路径30上使字形15动画化的最小数目的关键帧32。
当可变字体具有多于两个轴时,由不同主位置定义的影响区域可以具有更高的维度,并且可以通过分别由平面或超平面限定的三维或更高维度的矩形平行六面体更好地描述。可以通过使动画路径30与这些较高维度平面和超平面相交来计算关键帧32。
在1208处,方法1200可以可选地包括对关键帧集进行排序。文本处理组件28可以基于例如关键帧位置34对关键帧32进行排序。可以基于例如距动画起点16的距离沿着动画路径30的方向对关键帧位置34进行排序。这样,随着动画的进行,可以沿着动画路径30按顺序呈现每个关键帧32。
在1210处,方法1200可以包括为关键帧集中的每个关键帧构造一个或多个字形的字形轮廓数据。文本处理组件28可以确定用于每个关键帧32的字形轮廓数据19。每个关键帧32可以基于例如与对应于关键帧位置34的默认字形轮廓数据的变化的增量来与字形15的不同字形轮廓数据19相关联。
在1212处,方法1200可以包括在关键帧位置之间的中间位置处生成中间字形轮廓数据。文本处理组件28可以标识关键帧位置34之间的一个或多个中间位置36。对于任何中间位置36,文本处理组件28可以沿着动画路径30在最近的两个关键帧位置34(例如,中间位置36的每一侧上的一个)之间进行内插,并返回对应的中间字形轮廓数据38以用于中间位置36。当动画正在发生时,文本处理组件28可以创建中间字形轮廓数据38,而不存储中间字形轮廓数据38。这样,由于可以不存储中间字形轮廓数据38,因此可以利用更空间高效的紧凑表示来实现动画。
在1214处,方法1200可以包括传输字形轮廓数据和中间字形轮廓数据,并且在1216处,方法1200可以包括基于字形轮廓数据和中间字形轮廓数据来绘制一个或多个字形。文本处理组件28可以将用于关键帧位置34的字形轮廓数据19和用于中间位置36的中间字形轮廓数据38传输到图形处理单元24。图形处理单元24可以与绘制器26通信以在显示器上呈现字形轮廓数据19和中间字形轮廓数据38。因此,代替图形处理单元24反复重复重绘文本以模拟动画,动画可以实时或接近实时地发生,因为当动画路径30进行时,图形处理单元24接收用于字形15的变化的中间字形轮廓数据38。
现在参考图13,示出了根据实施方式的通过设计空间13的示例动画路径30。动画路径30可以在影响区域A中的点1处开始并且可以在影响区域C中的点8处结束。另外,动画路径30可以穿过影响区域B和D并且在点4处与垂直轴交叉。
关键帧可以位于动画曲线的开始处(例如,关键帧1)并且位于动画曲线的结束处(例如,关键帧8)。另外,关键帧可以位于进入新影响区域的点(例如,关键帧2、4和5)。关键帧还可以位于离开影响区域的点(例如,关键帧4和7)。关键帧可以位于坐标轴交叉处(例如,关键帧4)。另外,关键帧可以位于与影响区域的峰值坐标交叉的点处(例如,关键帧3和6)。这样,动画路径30可能需要关键帧1、2、3、4、5、6、7和8,以便在整个动画路径30上使一个或多个字形动画化。
另外,关键帧1、2、3、4、5、6、7和8可以沿动画路径30的方向排序。如果动画路径30从点8开始并在点1结束,则关键帧的顺序可能需要反转。例如,关键帧8可以改变为关键帧1,关键帧7可以改变为关键帧2,关键帧6可以改变为关键帧3,直到基于动画路径30的方向对所有关键帧进行重新排序。
现在参考图14,示出了根据实施方式的示例计算机设备102,包括与图1相比的附加组件细节。在一个示例中,计算机设备102可以包括用于执行与本文描述的组件和功能中的一个或多个组件和功能相关联的处理功能的处理器46。处理器46可以包括单组或多组处理器或多核处理器。此外,处理器46可以被实现为集成处理系统和/或分布式处理系统。
计算机设备102还可以包括存储器44,诸如用于存储由处理器46执行的应用的本地版本。存储器44可以包括计算机可用的类型的存储器,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。另外,处理器46和存储器44可以包括并执行操作系统110(图1)。
此外,计算机设备102可以包括通信组件50,其利用如本文所述的硬件、软件和服务来建立和维持与一方或多方的通信。通信组件50可以承载计算机设备102上的组件之间的通信以及计算机设备102和外部设备(诸如,位于通信网络上的设备和/或串行或本地连接到计算机设备102的设备)之间的通信。例如,通信组件50可以包括一个或多个总线,并且还可以包括分别与传输器和接收器相关联的传输链组件和接收链组件,其可操作用于与外部设备接口。
另外,计算机设备102可以包括数据存储装置52,其可以是硬件和/或软件的任何适合的组合,其提供结合本文描述的实施方式使用的信息、数据库和程序的大容量存储装置。例如,数据存储装置52可以是应用10(图1)、文本处理组件28(图1)、字体文件40(图1)和/或字体缓存42(图1)的数据存储库。
计算机设备102还可以包括用户界面组件54,用户界面组件54可操作以从计算机设备102的用户接收输入,并且还可操作以生成输出以呈现给用户。用户界面组件54可以包括一个或多个输入设备,包括但不限于键盘、数字键盘、鼠标、触敏显示器、导航键、功能键、麦克风、语音标识组件、任意能够接收来自用户的输入的其他机制、或其任何组合。此外,用户界面组件54可以包括一个或多个输出设备,包括但不限于显示器、扬声器、触觉反馈机构、打印机、能够向用户呈现输出的任何其他机构、或其任何组合。
在实施方式中,用户界面组件54可以传输和/或接收与应用10、文本处理组件28、字体文件40和/或字体缓存42的操作相对应的消息。另外,处理器46执行应用10、文本处理组件28、字体文件40和/或字体缓存42,并且存储器44或数据存储器52可以存储它们。
如在本申请中所使用的,术语“组件”、“系统”等旨在包括计算机相关实体,例如但不限于硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,在计算机设备上运行的应用和计算机设备都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以通过本地和/或远程过程进行通信,诸如根据具有一个或多个数据分组的信号,诸如来自与本地系统中、分布式系统中和/或通过信号跨过诸如因特网之类的网络与其他系统的另一个组件交互的一个组件的数据。
此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中清楚,否则短语“X使用A或B”旨在表示任何自然的包含性排列。也就是说,通过以下任何一种情况满足短语“X使用A或B”:X使用A;X使用B;或者X使用A和B两者。另外,除非另有说明或从上下文中清楚针对单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常应理解为表示“一个或多个”。
可以根据可以包括多个设备、组件、模块等的系统来呈现各种实现或特征。应理解和了解,各种系统可包括附加的装置、组件、模块等,和/或可不包括结合附图所讨论的所有装置、组件、模块等。还可以使用这些方法的组合。
结合本文中所公开的实施例而描述的方法的各种说明性逻辑、逻辑块和动作可以用以下专门编程来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件、或任何设计用于执行本文所述功能的组件的组合。通用处理器可以是微处理器,或者,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器还可以被实现为计算机设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP内核、或任何其他这样的配置。另外,至少一个处理器可以包括可操作以执行上述步骤和/或动作中的一个或多个步骤和/或动作的一个或多个组件。
此外,结合本文中所公开的实施方案而描述的方法或算法的步骤和/或动作可以直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中已知的任何其他形式的存储介质中。示例性存储介质可以被耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。此外,在一些实施方式中,处理器和存储介质可以驻留在ASIC中。另外,ASIC可以驻留在用户终端中。在替代方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。另外,在一些实施方式中,方法或算法的步骤和/或动作可以作为代码和/或指令的一个或任何组合或集合而驻留在机器可读介质和/或计算机可读介质上,其可以被合并到计算机程序产品中。
在一个或多个实施方案中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实现,则可以将这些功能作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质,通信介质包括便于将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,这种计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备,或者可以用于以指令或数据结构的形式存储所需程序代码并且可以由计算机访问的任何其他介质。这里使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通常用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
虽然已经结合其示例描述了本公开的实施方式,但是本领域技术人员将理解,可以在不脱离本发明的范围的情况下对上述实施方式进行变化和修改。通过考虑说明书或根据本文公开的示例的实践,其他实施方式对于本领域技术人员而言将是显而易见的。

Claims (20)

1.一种计算机设备,包括:
存储器,用于存储数据和指令;
处理器,与所述存储器通信;以及
操作系统,与所述存储器和所述处理器通信,其中所述操作系统可操作以:
接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求;
基于所述动画参数而确定所述设计空间中用于所述一个或多个字形的动画路径;
通过以下操作,计算具有沿所述动画路径的相应关键帧位置的关键帧集:
确定所述设计空间中的一个或多个主位置;
根据沿着所述动画路径的所述一个或多个主位置来确定一个或多个影响区域,其中每个影响区域定义所述可变字体的几何形状非线性变化的区域;
用所述一个或多个影响区域标识所述一个或多个主位置中的一个或多个交叉点;以及
在所述一个或多个交叉点中的每个交叉点处,分配关键帧位置;
为所述关键帧集中的每个关键帧构造所述一个或多个字形的字形轮廓数据;
在所述关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据;以及
传输所述字形轮廓数据和所述中间字形轮廓数据。
2.根据权利要求1所述的计算机设备,其中所述操作系统还可操作以通过以下操作生成中间字形轮廓数据:
在中间位置处,确定在所述中间位置的两侧的两个最近的关键帧位置,并且通过在用于所述两个最近的关键帧位置的所述字形轮廓数据之间进行内插,来生成用于所述中间位置的所述中间字形轮廓数据。
3.根据权利要求1所述的计算机设备,其中所述操作系统还可操作以:
绘制所述字形轮廓数据和所述中间字形轮廓数据;以及
在显示器上呈现所绘制的所述字形轮廓数据和所述中间字形轮廓数据。
4.根据权利要求1所述的计算机设备,其中所述动画参数包括起点、终点、定时信息和设计路径中的一项或多项。
5.根据权利要求1所述的计算机设备,其中所述一个或多个主位置根据所述一个或多个字形的默认轮廓来定义所述一个或多个字形的偏移字形轮廓数据。
6.根据权利要求1所述的计算机设备,其中所述关键帧集是跨所述动画路径进行动画化所需的最小关键帧集。
7.根据权利要求1所述的计算机设备,其中所述可变字体是多轴字体。
8.根据权利要求7所述的计算机设备,其中当所述可变字体包括多于两个轴时,所述关键帧通过使所述动画路径与所述可变字体轴的平面相交来进行计算。
9.一种用于使可变字体动画化的方法,包括:
在执行在计算机设备上的操作系统处,接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求;
在所述操作系统处,基于所述动画参数而确定所述设计空间中用于所述一个或多个字形的动画路径;
通过以下操作,计算具有沿所述动画路径的相应关键帧位置的关键帧集:
确定所述设计空间中的一个或多个主位置;
根据沿着所述动画路径的所述一个或多个主位置来确定一个或多个影响区域,其中每个影响区域定义所述可变字体的几何形状非线性变化的区域;
用所述一个或多个影响区域标识所述一个或多个主位置中的一个或多个交叉点;以及
在所述一个或多个交叉点中的每个交叉点处,分配关键帧位置;
为所述关键帧集中的每个关键帧构造所述一个或多个字形的字形轮廓数据;
在所述关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据;以及
传输所述字形轮廓数据和所述中间字形轮廓数据。
10.根据权利要求9所述的方法,其中生成所述中间字形轮廓数据还包括:
在中间位置处,确定在所述中间位置的两侧的两个最近的关键帧位置,并且通过在用于所述两个最近的关键帧位置的所述字形轮廓数据之间进行内插,来生成用于所述中间位置的所述中间字形轮廓数据。
11.根据权利要求9所述的方法,还包括:
绘制所述字形轮廓数据和所述中间字形轮廓数据;以及
在显示器上呈现所绘制的所述字形轮廓数据和所述中间字形轮廓数据。
12.根据权利要求9所述的方法,其中所述动画参数包括起点、终点、定时信息和设计路径中的一项或多项。
13.根据权利要求9所述的方法,其中所述一个或多个主位置根据所述一个或多个字形的默认轮廓来定义所述一个或多个字形的偏移字形轮廓数据。
14.根据权利要求9所述的方法,其中所述关键帧集是跨所述动画路径进行动画化所需的最小关键帧集。
15.根据权利要求9所述的方法,其中所述可变字体是多轴字体。
16.根据权利要求15所述的方法,其中当所述可变字体包括多于两个轴时,所述关键帧通过使所述动画路径与所述可变字体轴的平面相交来进行计算。
17.一种非暂态计算机可读介质,存储由计算机设备可执行的指令,所述计算机可读介质包括:
用于使所述计算机设备接收基于一个或多个动画参数而在设计空间中使可变字体的一个或多个字形动画化的请求的至少一个指令;
用于使所述计算机设备基于所述动画参数而确定所述设计空间中用于所述一个或多个字形的动画路径的至少一个指令;
用于使所述计算机设备通过以下操作计算具有沿所述动画路径的相应关键帧位置的关键帧集的至少一个指令:
确定所述设计空间中的一个或多个主位置;
根据沿着所述动画路径的所述一个或多个主位置来确定一个或多个影响区域,其中每个影响区域定义所述可变字体的几何形状非线性变化的区域;
用所述一个或多个影响区域标识所述一个或多个主位置中的一个或多个交叉点;以及
在所述一个或多个交叉点中的每个交叉点处,分配关键帧位置;
用于使所述计算机设备为所述关键帧集中的每个关键帧构造用于所述一个或多个字形的字形轮廓数据的至少一个指令;
用于使所述计算机设备在所述关键帧位置之间的一个或多个中间位置处生成中间字形轮廓数据的至少一个指令;以及
用于使所述计算机设备传输所述字形轮廓数据和所述中间字形轮廓数据的至少一个指令。
18.根据权利要求17所述的计算机可读介质,其中所述计算机设备进一步可操作以通过以下操作生成中间字形轮廓数据:
在中间位置处,确定在所述中间位置的两侧的两个最近的关键帧位置,并且通过在用于所述两个最近的关键帧位置的所述字形轮廓数据之间进行内插,来生成用于所述中间位置的所述中间字形轮廓数据。
19.根据权利要求17所述的计算机可读介质,还包括:
用于使所述计算机设备绘制所述字形轮廓数据和所述中间字形轮廓数据的至少一个指令;以及
用于使所述计算机设备在显示器上呈现所绘制的所述字形轮廓数据和所述中间字形轮廓数据的至少一个指令。
20.根据权利要求17所述的计算机可读介质,所述一个或多个主位置根据所述一个或多个字形的默认轮廓来定义所述一个或多个字形的偏移字形轮廓数据。
CN201880015444.9A 2017-03-03 2018-02-26 基于多轴可变字体的动画字形 Active CN110383269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/449,430 2017-03-03
US15/449,430 US10242480B2 (en) 2017-03-03 2017-03-03 Animated glyph based on multi-axis variable font
PCT/US2018/019614 WO2018160472A1 (en) 2017-03-03 2018-02-26 Animated glyph based on multi-axis variable font

Publications (2)

Publication Number Publication Date
CN110383269A CN110383269A (zh) 2019-10-25
CN110383269B true CN110383269B (zh) 2022-12-16

Family

ID=61599652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880015444.9A Active CN110383269B (zh) 2017-03-03 2018-02-26 基于多轴可变字体的动画字形

Country Status (4)

Country Link
US (1) US10242480B2 (zh)
EP (1) EP3590049A1 (zh)
CN (1) CN110383269B (zh)
WO (1) WO2018160472A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10074042B2 (en) 2015-10-06 2018-09-11 Adobe Systems Incorporated Font recognition using text localization
US10007868B2 (en) 2016-09-19 2018-06-26 Adobe Systems Incorporated Font replacement based on visual similarity
CN111221597A (zh) * 2018-11-23 2020-06-02 北京方正手迹数字技术有限公司 字体渲染方法、装置及计算机可读存储介质
CN111221596B (zh) * 2018-11-23 2024-04-09 北京方正手迹数字技术有限公司 字体渲染方法、装置及计算机可读存储介质
US10950017B2 (en) * 2019-07-08 2021-03-16 Adobe Inc. Glyph weight modification
US11295181B2 (en) 2019-10-17 2022-04-05 Adobe Inc. Preserving document design using font synthesis
CN111651959B (zh) * 2020-04-17 2023-02-28 福建天泉教育科技有限公司 一种3d字体的实现方法及终端
US10997770B1 (en) * 2020-05-05 2021-05-04 Adobe Inc. Automated animation of fonts
US11366953B1 (en) * 2021-01-26 2022-06-21 Adobe Inc. Systems for simultaneously modifying multiple variable fonts
US11640491B2 (en) * 2021-02-12 2023-05-02 Adobe Inc. Automatic font value distribution for variable fonts
NL2028052B1 (en) * 2021-04-23 2022-11-02 Helmling Akiem Apparatus and method to generate an animated graphical object
US20230419568A1 (en) * 2022-06-28 2023-12-28 Adobe Inc. Dynamic differential evolution based control for typeface visual accessibility

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2369664A1 (en) * 1999-04-15 2000-10-26 Avid Technology, Inc. Animation of three-dimensional characters along a path
US6504545B1 (en) * 1998-03-27 2003-01-07 Canon Kabushiki Kaisha Animated font characters
US7199805B1 (en) * 2002-05-28 2007-04-03 Apple Computer, Inc. Method and apparatus for titling
CN101465973A (zh) * 2008-11-04 2009-06-24 新奥特(北京)视频技术有限公司 基于曲线轮廓封闭环域和像素掩码矩阵的字幕渲染方法
US8134558B1 (en) * 2007-12-06 2012-03-13 Adobe Systems Incorporated Systems and methods for editing of a computer-generated animation across a plurality of keyframe pairs

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600919A (en) 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US6034697A (en) 1997-01-13 2000-03-07 Silicon Graphics, Inc. Interpolation between relational tables for purposes of animating a data visualization
US6404435B1 (en) 1998-04-03 2002-06-11 Avid Technology, Inc. Method and apparatus for three-dimensional alphanumeric character animation
US6674437B1 (en) 1998-12-24 2004-01-06 B3D, Inc. Key reduction system and method with variable threshold
US6678410B1 (en) 1999-02-17 2004-01-13 Adobe Systems Incorporated Generating a glyph
US7367885B2 (en) 2001-08-09 2008-05-06 Igt 3-D text in a gaming machine
US20050231512A1 (en) * 2004-04-16 2005-10-20 Niles Gregory E Animation of an object using behaviors
US7239319B2 (en) * 2004-08-27 2007-07-03 Microsoft Corporation Rendering outline fonts
US7924285B2 (en) * 2005-04-06 2011-04-12 Microsoft Corporation Exposing various levels of text granularity for animation and other effects
US20060232589A1 (en) * 2005-04-19 2006-10-19 Microsoft Corporation Uninterrupted execution of active animation sequences in orphaned rendering objects
US7730403B2 (en) 2006-03-27 2010-06-01 Microsoft Corporation Fonts with feelings
US8520003B2 (en) * 2006-05-22 2013-08-27 Raphael L Levien Method and apparatus for interactive curve generation
JP4766030B2 (ja) * 2007-10-11 2011-09-07 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
US8234564B2 (en) 2008-03-04 2012-07-31 Apple Inc. Transforms and animations of web-based content
US8704832B2 (en) 2008-09-20 2014-04-22 Mixamo, Inc. Interactive design, synthesis and delivery of 3D character motion data through the web
US8624900B2 (en) 2010-04-09 2014-01-07 Red Hat, Inc. Plug-in architecture for dynamic font rendering enablement
US8907957B2 (en) * 2011-08-30 2014-12-09 Apple Inc. Automatic animation generation
US20130271472A1 (en) * 2012-04-12 2013-10-17 Motorola Mobility, Inc. Display of Value Changes in Between Keyframes in an Animation Using a Timeline
US20140085311A1 (en) 2012-09-24 2014-03-27 Co-Operwrite Limited Method and system for providing animated font for character and command input to a computer
US9443337B2 (en) 2013-09-05 2016-09-13 Pullstring, Inc. Run-time techniques for playing large-scale cloud-based animations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504545B1 (en) * 1998-03-27 2003-01-07 Canon Kabushiki Kaisha Animated font characters
CA2369664A1 (en) * 1999-04-15 2000-10-26 Avid Technology, Inc. Animation of three-dimensional characters along a path
US7199805B1 (en) * 2002-05-28 2007-04-03 Apple Computer, Inc. Method and apparatus for titling
US8134558B1 (en) * 2007-12-06 2012-03-13 Adobe Systems Incorporated Systems and methods for editing of a computer-generated animation across a plurality of keyframe pairs
CN101465973A (zh) * 2008-11-04 2009-06-24 新奥特(北京)视频技术有限公司 基于曲线轮廓封闭环域和像素掩码矩阵的字幕渲染方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Flash动画素材在网络教学中的应用;傅波;《电脑知识与技术》;20090325(第09期);全文 *

Also Published As

Publication number Publication date
WO2018160472A1 (en) 2018-09-07
US10242480B2 (en) 2019-03-26
US20180253883A1 (en) 2018-09-06
CN110383269A (zh) 2019-10-25
EP3590049A1 (en) 2020-01-08

Similar Documents

Publication Publication Date Title
CN110383269B (zh) 基于多轴可变字体的动画字形
US11830143B2 (en) Tessellation method using recursive sub-division of triangles
US8234392B2 (en) Methods and apparatuses for providing a hardware accelerated web engine
JP6736361B2 (ja) 変位係数を用いたテッセレーション方法
US7710417B2 (en) Spatial binning of particles on a GPU
US20100302249A1 (en) Apparatus, systems and methods for layout of scene graphs using node bounding areas
JP2007264989A (ja) 図形描画装置、図形描画方法、およびプログラム
KR20150093689A (ko) 쉘 메쉬에 기초한 최적화된 다각형을 형성하기 위한 방법
US8358311B1 (en) Interpolation between model poses using inverse kinematics
CN111260750B (zh) openFL绘制矢量图形的处理方法、装置及电子设备
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
CN109598672B (zh) 一种地图道路渲染方法及装置
Carmona et al. Error-controlled real-time cut updates for multi-resolution volume rendering
US20130063482A1 (en) Application programming interface for a bitmap composition engine
Talgorn et al. Real-time sketch-based terrain generation
Landreneau et al. Simplification of articulated meshes
CN106716500A (zh) 程序、信息处理装置、深度定义方法及记录介质
Semenov et al. Visualization of Large Scenes with Deterministic Dynamics
Ramos et al. Efficient visualization of 3D models on hardware-limited portable devices
CN108765527B (zh) 动画显示方法、装置、电子设备及存储介质
US11164355B1 (en) Shape aware transformation
US10546399B2 (en) Pencil ink render using high priority queues
NL2028052B1 (en) Apparatus and method to generate an animated graphical object
Argudo et al. Interactive inspection of complex multi-object industrial assemblies
Cao et al. Computer Simulation of Water Flow Animation Based on Two‐Dimensional Navier‐Stokes Equations

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