《墨水呈现.pdf》由会员分享,可在线阅读,更多相关《墨水呈现.pdf(26页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102939575 A (43)申请公布日 2013.02.20 C N 1 0 2 9 3 9 5 7 5 A *CN102939575A* (21)申请号 201180029214.6 (22)申请日 2011.05.31 12/814,632 2010.06.14 US G06F 3/01(2006.01) G06F 9/44(2006.01) (71)申请人微软公司 地址美国华盛顿州 (72)发明人 SR马里森 (74)专利代理机构上海专利商标事务所有限公 司 31100 代理人潘明婳 (54) 发明名称 墨水呈现 (57) 摘要 描述了墨水呈现技术。在一个实。
2、现中,输入由 可在计算设备的一个或多个处理器上执行的一个 或多个模块识别为将由该计算设备的显示设备呈 现的墨水笔划。墨水笔划是由一个或多个模块使 用三角形条纹构建的,而且三角形条纹被发送到 图形处理单元以呈现墨水笔划。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.12.13 (86)PCT申请的申请数据 PCT/US2011/038579 2011.05.31 (87)PCT申请的公布数据 WO2011/159461 EN 2011.12.22 (51)Int.Cl. 权利要求书2页 说明书11页 附图12页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利。
3、要求书 2 页 说明书 11 页 附图 12 页 1/2页 2 1.一种方法,所述方法包括: 由可在计算设备的一个或多个处理器上执行的一个或多个模块将输入识别为将由所 述计算设备的显示设备呈现的墨水笔划; 由所述一个或多个模块使用三角形条纹构建所述墨水笔划;以及 将所述三角形条纹发送到图形处理单元以呈现所述墨水笔划。 2.如权利要求1所述的方法,其特征在于,还包括,响应于标识所述墨水笔划中超出阈 值的弯曲,用具有所述弯曲的几何的戳记替换所述弯曲。 3.如权利要求1所述的方法,其特征在于,还包括分别使用戳记描述所述墨水笔划的 开始和结束。 4.如权利要求1所述的方法,其特征在于,所述三角形条纹具。
4、有由所述墨水笔划的宽 度分隔开并在所述墨水笔划的一方向的切线上的顶点。 5.如权利要求1所述的方法,其特征在于,所述发送是作为对所述图形处理单元的单 次调用来执行的。 6.如权利要求1所述的方法,其特征在于,还包括将所述墨水笔划与使用另一个三角 形条纹构建的另一个墨水笔划缝合,且其中所述发送是使用所缝合的墨水笔划作为对所述 图形处理单元的单次调用来执行的。 7.如权利要求6所述的方法,其特征在于,所述缝合包括引入退化三角形,以便响应于 所述墨水笔划和所述其他墨水笔划不共享顶点的判断将所述墨水笔划与所述其它墨水笔 划缝合在一起。 8.一种方法,所述方法包括: 由可在计算设备的一个或多个处理器上执。
5、行的一个或多个模块将输入识别为将由所 述计算设备的显示设备呈现的墨水笔划; 确定与所述墨水笔划中的点相对应的速度和压力;以及 基于所确定的速度和压力调整所述墨水笔划中的所述点的显示特征以呈现所述点。 9.如权利要求8所述的方法,其特征在于,所述输入是至少部分地使用所述计算设备 的触摸屏功能来检测的。 10.如权利要求8所述的方法,其特征在于,所述显示特征是不透明度。 11.如权利要求8所述的方法,其特征在于,所述显示特性是所述墨水笔划的宽度。 12.如权利要求8所述的方法,其特征在于,所述显示特征是墨水吸收度。 13.如权利要求8所述的方法,其特征在于,点的吸收度值是如下对所述点计算的: 最终。
6、阿尔法=阿尔法*min(1,吸收度/粒度), 其中阿尔法是给定像素处的抗混叠效果的阿尔法值,吸收度等于给定像素处的墨水的 吸收度值,且粒度等于纸粒度值,被表示为高度图并被取样为二维纹理。 14.如权利要求8所述的方法,其特征在于,所述调整是使用其中x表示将被衰减的压 力或速度的值,a0表示常量衰减,a1表示线性衰减,a2表示平方衰减,且a3表示立方衰减 的表达式而执行的: f(x)=min(1,max(0,a0+(x*a1)+(x*x*a2)+(x*x*x*a3). 15.一种方法,所述方法包括: 由可在计算设备的一个或多个处理器上执行的一个或多个模块将输入识别为将由所 权 利 要 求 书CN。
7、 102939575 A 2/2页 3 述计算设备的显示设备呈现的墨水笔划; 通过将描述顶点处以像素计的所述墨水笔划的宽度的数据编码、将描述所述顶点是描 述所述墨水笔划的左边还是右边的数据编码和将描述将对所述顶点处的所述墨水笔划的 一个或多个所述边应用的以像素计的抗混叠厚度的数据编码而将所述输入的数据编码。 将所编码的数据作为所述墨水笔划的几何的一部分传递给图形处理单元以由所述图 形处理单元计算阿尔法值从而基于所编码的数据产生抗混叠效果。 权 利 要 求 书CN 102939575 A 1/11页 4 墨水呈现 0001 背景 0002 用户能够与计算设备交互的方式正在不断增长。例如,最初提供。
8、了键盘以使用户 可向计算机键入输入。随后开发了光标控制设备(例如,“鼠标”)以允许用户经由图形用户 界面与计算设备交互。 0003 然而,被开发用于用户交互的这些和后续技术对于用户来说可能仍然具有人工的 “外观和感觉”。例如,由计算设备用来呈现墨水笔划的传统技术可被呈现得看起来很人工。 另外,被开发用于提供墨水笔划更逼真的外观的传统技术可使得笔划不适用于诸如墨水分 析的其它应用。因此,传统技术通常迫使开发者在具有有限功能的逼真的外观或增加了功 能但相对人工的外观之间作出决定。 0004 概述 0005 描述了墨水呈现技术。在一个实现中,输入由可在计算设备的一个或多个处理器 上执行的一个或多个模。
9、块识别为将由该计算设备的显示设备呈现的墨水笔划。墨水笔划是 由一个或多个模块使用三角形条纹构建的,而且三角形条纹被发送到图形处理单元以呈现 墨水笔划。 0006 在各实现中,输入由可在计算设备的一个或多个处理器上执行的一个或多个模块 识别为将由该计算设备的显示设备呈现的墨水笔划。确定与墨水笔划中的点相对应的速度 和压力,并调整墨水笔划中的点的显示特性以基于所确定的速度和压力来呈现点。 0007 在各实现中,输入由可在计算设备的一个或多个处理器上执行的一个或多个模块 识别为将由该计算设备的显示设备呈现的墨水笔划。通过将描述顶点处以像素计的墨水笔 划的宽度的数据编码、将描述顶点是描述墨水笔划的左边。
10、还是右边的数据编码和将描述将 对该顶点处墨水笔划的一个或多个所述边应用的以像素计的抗混叠厚度的数据编码而将 输入的数据编码。将所编码的数据作为墨水笔划的几何的一部分传递给图形处理单元以由 图像处理单元计算阿尔法值,从而基于所编码的数据产生抗混叠效果。 0008 在各实现中,将掩膜笔划绘制到图形处理单元的模版缓冲区以指示在掩膜笔划中 涉及了哪些像素。通过绘制如模版缓冲区所示不与在掩膜笔划中涉及的像素相对应的一个 或多个墨水笔划的像素和不绘制如模版缓冲区所示与在掩膜笔划中涉及的像素相对应的 一个或多个墨水笔划的像素来绘制逻辑上与掩膜笔划相对应的一个或多个墨水笔划。 0009 提供本概述以便以简化的。
11、形式介绍将在以下详细描述中进一步描述的一些概念。 本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所 要求保护的主题的范围。 0010 附图简述 0011 参考附图来描述具体实施例。在附图中,附图标记最左边的数字标识该附图标记 首次出现的附图。在说明书和附图的不同实例中使用相同的附图标记可指示相似或相同的 项目。 0012 图1是示例实现中的可用于采用此处所描述的墨水呈现技术的环境的图示。 0013 图2是示出在其中多个设备通过中央计算设备互联的环境中实现的图1的墨水呈 说 明 书CN 102939575 A 2/11页 5 现模块的示例系统的图示。 0014 图3。
12、是图1的输入/输出模块中其中根据几何构建墨水笔划的几何模块的示例实 现中的系统的图示。 0015 图4示出图1的输入/输出模块中其中根据各自的几何构建的墨水笔划被缝合在 一起的几何模块的示例实现中的系统。 0016 图5是描绘其中描述了涉及墨水笔划的几何的墨水呈现技术的示例实现中的过 程的流程图。 0017 图6示出图1的输入/输出模块中其中使用压力和速度来调整墨水笔划的显示特 征的压力和速度模块的示例实现中的系统。 0018 图7是描绘其中描述了涉及墨水笔划的压力和速度的墨水呈现技术的示例实现 中的过程的流程图。 0019 图8描绘图1的输入/输出模块中其中采用编码技术向墨水笔划提供抗混叠功。
13、能 的抗混叠模块的示例实现中的系统。 0020 图9描绘了其中实现用于擦除墨水笔划的一部分的掩膜模块的示例实现中的系 统。 0021 图10是描绘其中采用掩膜笔划技术以擦除墨水笔划的一部分的示例实现中的过 程的流程图。 0022 图11描绘其中实现图1的突出显示工具模块以突出显示墨水笔划的示例实现中 的过程。 0023 图12示出可被实现为参考图1-2来描述的任何类型的便携式和/或计算机设备 以实现本文描述的墨水呈现技术的实施例的示例设备的各种组件。 具体实施方式 0024 概述 0025 由计算设备用来呈现墨水笔划的传统技术可最终看起来很人工。另外,被开发来 用于提供墨水笔划更逼真的外观的技。
14、术可使得笔划不适用于诸如墨水分析的其它应用。因 此,传统技术通常迫使开发者在具有有限功能的更逼真的外观或增加了功能但相对人工的 外观之间作出决定。 0026 描述了墨水呈现技术。在各实现中,提供了墨水呈现技术,该墨水呈现技术可创造 逼真外观的墨水,但仍允许墨水分析基于墨水笔划的几何表示来运行,诸如通过通过使用 三角形条纹构建墨水笔划而进行的矢量呈现。可使用这些技术通过像素着色器和纹理的 使用来模拟纸、笔和绘制特征(例如,压力和速度),随后可对墨水笔划应用这些特征用于呈 现。以此方式,可使用逼真的墨水呈现效果而同时仍支持墨水分析,例如用于搜索和索引。 各种不同的墨水呈现技术的进一步讨论可相关以下。
15、各节找到。 0027 在以下讨论中,首先描述可用于采用本文所述墨水呈现技术的示例环境。随后描 述技术和过程的示例图示,该技术和过程可在示例环境中以及在其他环境中采用。因此,该 示例环境并不限于执行示例技术和过程。同样,该示例技术和过程并不限于在示例环境中 的实现。 0028 示例环境 说 明 书CN 102939575 A 3/11页 6 0029 图1是示例实现中可用于采用墨水呈现技术的环境100的图示。所示的环境100 包括可通过各种方式来配置的计算设备102的示例。例如,计算设备102可被配置为传统 计算机(例如,台式个人计算机、膝上型计算机等)、移动站、娱乐设备、通信耦合到电视的机 顶。
16、盒、无线电话、上网本、游戏控制台等,如在图2中进一步描述的。因而,计算设备102的 范围可以是从具有充足存储器和处理器资源的全资源设备(如个人计算机、游戏控制台)到 具有有限存储器和/或处理资源的低资源设备(如传统机顶盒、手持式游戏控制台)。计算 设备102还可与使得计算设备102执行一个或多个操作的软件相关。 0030 计算设备102被示为包括输入/输出模块104。输入/输出模块104表示与计算 设备102的输入和输出相关的功能。例如,输入/输出模块104可被配置成从键盘、鼠标接 收输入以标识姿势并且使得对应于姿势的操作得以执行等等。输入可由输入/输出模块 104以各种不同的方式来标识。 0。
17、031 例如,输入/输出模块104可被配置成识别经由显示设备106的触摸屏功能从指 示笔110等接收的输入,诸如接近于计算设备102的显示设备106的用户手108的手指。该 输入可以有各种不同的形式,诸如用来识别指示笔110和/或用户手108的手指在显示设 备106上的移动,诸如,轻击、绘制线等。在各实现中,这些输入可被识别为姿势。 0032 尽管以下讨论可描述输入的具体示例,但在各实例中,输入的类型可切换(例如, 触摸可用于替换指示笔,反之亦然)甚至移除(例如,可使用触摸或指示笔来提供两种输入) 而不背离其精神和范围。此外,尽管在以下讨论中的实例中姿势被示为使用触摸屏功能 来输入,但姿势可由。
18、各种不同的设备使用各种不同的技术来输入,诸如作为自然用户接口 (NUI)的一部分由相机的检测。 0033 计算设备102还被示为包括表示应用各种不同的技术以呈现墨水笔划114的功能 的墨水呈现模块112,例如以显示在计算设备102的显示设备106上。这些技术的示例通 过几何模块116、压力和速度模块118、抗混叠模块120、掩膜模块122和突出显示工具模块 124来表示。这些技术的每一个的进一步讨论可在以下示例环境的实现示例中的相应节中 找到。 0034 图2示出了包括参考图1描述的计算设备102的示例系统200。示例系统200实 现了用于当在个人计算机(PC)、电视设备和/或移动设备上运行应。
19、用时的无缝用户体验的 普遍存在的环境。服务和应用在所有三个环境中基本相似地运行,以便当使用应用、玩视频 游戏、看视频等时在从一个设备转换到下一设备时得到共同的用户体验。 0035 在示例系统200中,多个设备通过中央计算设备互联。中央计算设备可以是多个 设备本地的,或者可以位于多个设备的远程。在一个实施例中,中央计算设备是通过网络、 因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。在一个实施 例中,该互联体系结构使得功能能够跨多个设备递送以向多个设备的用户提供共同且无缝 的体验。多个设备的每一个可具有不同的物理要求和能力,且中央计算设备使用一平台来 使得为设备特制且又对所有。
20、设备共同的体验能被递送到该设备。在一个实施例中,创建目 标设备的类,且为通用设备类定制体验。设备类可由设备的物理特征、用途类型、或其他共 同特性来定义。 0036 在各实现中,客户端设备102可采取各种不同配置,诸如用于计算机202、移动 204、和电视机206的用途。这些配置中的每一个包括可具有一般不同的构造和能力的设 说 明 书CN 102939575 A 4/11页 7 备,并且因而计算设备102可根据不同的设备类中的一个或多个来配置。例如,计算设备 102可被实现为计算机202设备类,该计算机设备类包括个人计算机、台式计算机、多屏幕 计算机、膝上型计算机、上网本等。 0037 计算设备。
21、102还可被实现为移动204设备类,该移动设备类包括诸如移动电话、便 携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等的移动设备。计算设备102 还可被实现为电视206设备类,该电视设备类包括在休闲观看环境中具有或连接到一般更 大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。此处所描述的墨水呈现技 术可由客户端设备102的这些各种配置来支持,并且不限于此处所述的墨水呈现技术的具 体示例。 0038 云208包括和/或表示内容服务212的平台210。平台210抽象云208的硬件(如, 服务器)和软件资源的底层功能。内容服务212可包括可在计算机处理在位于客户端设备 102远程。
22、的服务器上执行时利用的应用和/或数据。内容服务212可作为因特网上和/或 通过诸如蜂窝或Wi-fi网络之类的订户网络上的服务来提供。 0039 平台210可抽象资源和功能以将计算设备102与其他计算设备相连接。平台210 还可用于抽象资源的缩放以向经由平台210实现的内容服务212所遇到的需求提供对应的 缩放级别。因此,在互连设备实施例中,墨水呈现模块112的功能的实现可分布在遍及系统 200上。例如,墨水呈现模块112可部分地在计算设备102上以及经由抽象云208的功能的 平台210来实现。 0040 一般而言,此处描述的任何功能可使用软件、固件、硬件(例如,固定逻辑电路)、或 这些实现的组。
23、合来实现。此处使用的术语“模块”、“功能”和“逻辑”一般表示软件、固件、 硬件或其组合。在软件实现的情况下,模块、功能,或逻辑表示当在处理器(例如,一个或多 个CPU)上执行时执行指定任务的程序代码。程序代码可被储存在一个或多个计算机可读 存储器设备中。下面所描述的墨水呈现技术的特征是平台无关的,意味着本发明的技术可 以在具有各种处理器的各种商业计算平台上实现。 0041 墨水呈现实现示例 0042 描述了各种墨水呈现技术。在各实现中,提供了墨水呈现技术,该墨水呈现技术可 创造逼真外观的墨水,但仍允许墨水分析基于墨水笔划的几何表示来运行,诸如经由通过 使用三角形条纹构建墨水笔划而进行的矢量呈现。
24、。可使用这些技术通过像素着色器和纹理 的使用来模拟纸、笔和绘制特征(例如,压力和速度),随后可对墨水笔划应用这些技术用于 呈现。以此方式,可使用逼真的墨水呈现效果而同时仍支持墨水分析,例如用于搜索和索 引。尽管以下讨论是出于组织的目的而分开的,应显而易见的是,这些技术可被组合和/或 进一步划分而不背离本发明的精神和范围。 0043 墨水笔划的几何表示 0044 图3描绘图1的输入/输出模块112中其中根据几何构建墨水笔划的几何模块 116的示例实现中的系统300。在此示例中,墨水呈现模块112的功能是使用图1的计算设 备102的处理器302和图形处理单元304而实现的。几何模块116被示为可由。
25、处理器302 执行的一个或多个可执行模块,该处理器302可作为计算设备102的通用处理器而实现。例 如,通用处理器可执行抽象计算设备102的功能供几何模块116使用的操作系统。 0045 处理器302不受形成它的材料或者其中采用的处理机制的限制。例如,处理器302 说 明 书CN 102939575 A 5/11页 8 可表示由一个或多个核组成的一个或多个处理器。此外,处理器302可以由半导体和/或 晶体管(例如,电子集成电路(IC)构成。在这一上下文中,处理器可执行指令可以是可电 子地执行的指令。或者,用于处理器或其中的机制,以及由此用于计算设备或其中的机制可 以包括但不限于,量子计算、光学。
26、计算、机械计算(例如,使用纳米技术)等。另外,尽管几何 模块116被示为在处理器302上被执行,几何模块116可在计算机可读介质中维护,计算机 可读介质例如诸如随机存取存储器(RAM)、硬盘存储器、可移动存储介质和其它类型的计算 机可读介质的存储介质。 0046 几何模块116被示为接收描述墨水笔划的输入。输入可通过各种方式接收,诸如 使用计算设备102的触摸屏功能、经由自然用户接口中的相机等等检测用户手108的手指 或指示笔110。随后几何模块116被示为使用矢量表示墨水笔划306。 0047 在此示例中,墨水笔划306作为三角形条纹308而构建。为了构建三角形条纹308, 添加由墨水笔划的。
27、宽度隔开并与笔划的一方向相切的两个顶点。然后可将这些顶点附连到 之前或后续切线上的之前或后续顶点以形成三角形。还可采用附加功能来表示墨水笔划 306,诸如相关于图5更详细描述的通过戳记的使用。 0048 然后可将三角形条纹308传递给图形处理单元304用于由显示设备106呈现。在 一实现中,三角形条纹308是经由对图形处理单元304的单次调用传递的,从而节省计算设 备102的资源。还可采用纹理和/或像素着色器来模拟纸、笔和其它绘制特性,其示例可在 以下各节中找到。以此方式,仍可使用三角形条纹308对墨水笔划306应用墨水分析技术 (例如,搜索和索引)并同时提供墨水笔划的逼真表示。此外,墨水笔划。
28、306的表示(例如,三 角形条纹308)可与其它墨水笔划的表示组合以进一步优化计算设备102的性能,其示例可 相关于以下附图找到。 0049 图4描绘图1的输入/输出模块112中其中根据各自的几何所构建的墨水笔划被 缝合在一起的几何模块116的示例实现中的系统400。此示例中的墨水笔划402被组合成 更大的三角形条纹。以此方式,笔划402可被组合起来以进行单次“绘制”调用从而由图形 处理单元304一次绘制大量笔划。 0050 为了做到这一点,可利用缝合技术。如三角形条纹404中所示,可将退化 (degenerate)的三角形引入到条纹中。可引入这些三角形以提供各种功能,诸如将不共享 公共顶点的。
29、几何组合起来。 0051 在所示的示例中,三角形条纹404涉及用于连接沿着笔划的指定点处的圆形戳记 而发生的缝合。使用圆形戳记以表示展示比阈值量大的弯曲的墨水笔划402的部分。以此 方式,可通过否则被用来表示墨水笔划402的大量三角形之上的那些实例处的简化几何表 示弯曲。 0052 这些缝合使用图4的三角形条纹404中将所示示例中的几何连接到一起的直线示 出。在各实现中,缝合不被呈现,而是被利用来提供如前所述支持对图形处理单元304的单 次绘制调用的关系。对缝合的进一步讨论可相关于以下过程找到。 0053 图5描绘了其中描述了涉及墨水笔划的几何的墨水呈现技术的示例实现中的过 程。以下讨论描述了。
30、可利用上述系统和设备来实现的墨水呈现技术。这些过程中的每一流 程的各方面可用硬件、固件、软件、或其组合来实现。过程被示为一组框,它们指定由一个或 多个设备执行的操作,不一定仅限于所示出的用于由相应的框执行操作的顺序。在下面讨 说 明 书CN 102939575 A 6/11页 9 论的某些部分,将参考图1的环境100和分别参考图3和4的系统300和400。 0054 将输入识别为要由计算设备的显示设备绘制的墨水笔划(框502)。例如,可使用计 算设备102的触摸屏功能来检测用户手108的手指、指示笔110等。在另一示例中,可将输 入识别为通过与自然用户接口的交互而输入的姿势。还构想了各种其他示。
31、例。 0055 使用三角形条纹构建墨水笔划(框504)。例如几何模块116可将由墨水笔划的宽 度分隔开并在墨水笔划的一方向的切线上的三角形的顶点定位在墨水笔划中的各点上。然 而,在某些情况下,以这种方式表示墨水笔划可导致资源的使用比如果使用其它表示进行 时大。因此,也可采用其它表示来表示墨水笔划。 0056 例如,响应于关于墨水笔划中的弯曲超过阈值的指示,可用具有该弯曲的几何的 戳记取代该弯曲(框506)。以此方式,可在这种情况下利用单个几何表示。 0057 同样,可分别使用戳记描述墨水笔划的开始和结束(框508)。例如,如图3所示,墨 水笔划306的开始和结束可使用圆形的几何表示以便为否则将。
32、会使用大量三角形表示的 墨水笔划提供逼真的样子。然而,应显而易见的是,还可构想其它实现,诸如如前所述使用 三角形表示墨水笔划的开始、结束和/或弯曲。 0058 墨水笔划还可与另一个墨水笔划缝合(框510)。如相关于图4所述的,可利用缝合 将三角形条纹组合起来用于对图形处理单元304的单次绘制调用,从而节省计算设备102 的资源并提高计算设备102的效率。 0059 随后将三角形条纹发送到图形处理单元以呈现墨水笔划(框512)。以此方式,可通 过支持墨水分析的方式描述墨水笔划的几何。此外,几何还可支持可被利用来提供墨水笔 划的逼真外观的技术,例如纹理和像素着色器的功能。可使用几何支持的显示特性的。
33、示例 可相关于下节找到。 0060 用于呈现墨水的压力和速度技术 0061 图6描绘在图1的输入/输出模块112中其中利用压力和速度来调整墨水笔划的 显示特性的压力和速度模块118的示例实现中的系统600。可关于线602的显示特性使用 各种其它因素,不仅仅是将被绘制的实际的线,其在所示的实例中是使用指示笔110绘制 的不规则线。 0062 例如,当使用传统的笔和纸绘制线时,诸如速度和压力的特性可影响线是如何被 绘制的,诸如线的宽度、线的不透明度、纸对线的墨水的吸收度等等。因此,压力和速度模块 118可被配置为基于压力和速度调整线602的显示特性以模仿笔在纸上的“外观和感觉”, 其进一步讨论可相。
34、关于以下附图找到。 0063 图7是描绘其中描述了涉及墨水笔划的压力和速度的墨水呈现技术的示例实现 中的过程的流程图。以下讨论描述了可利用上述系统和设备来实现的墨水呈现技术。这些 过程中的每一流程的各方面可用硬件、固件、软件、或其组合来实现。过程被示为一组框,它 们指定由一个或多个设备执行的操作,不一定仅限于所示出的用于由相应的框执行操作的 顺序。在以下讨论的部分中将参考图1的环境100和图6的系统600。 0064 将输入识别为指示墨水笔划(框702)。如前所述,可利用触摸屏功能、NUI功能等 等来检测指示墨水笔划将由计算设备102呈现的输入。 0065 确定与墨水笔划中的点相对应的速度和压。
35、力(框704)。例如,计算设备102可使用 触摸屏功能基于用户手108的手指、指示笔110等在显示设备106上的移动有多快来检测 说 明 书CN 102939575 A 7/11页 10 速度。还可构想其他示例,诸如在自然用户接口(NUI)中确定速度。 0066 同样,还可以通过各种方式确定压力量,诸如放置在显示设备106下面的压力传 感器、应变仪、检测输入源的表面区域中的改变(例如,根据用户手108的手指对显示设备 按压的更用力些还是更轻些)、根据外设(例如,指示笔110的压力传感器)等等。 0067 基于所确定的速度和压力调整墨水笔划中的点的一个或多个显示特性(框706)。 例如,可将显示。
36、特性调整为模仿速度和压力在用传统的笔和纸书写的墨水上的效果。 0068 所确定的速度和压力,例如可基于所确定速度和压力影响墨水笔划中的点的不透 明度(框708)。因此,在此示例中当速度增加时不透明度可降低以模仿较少量的墨水被沉淀 在纸上。然而,当压力增加时不透明度也可增加,以模仿被应用到纸上的墨水量的增加。因 此,这些因素在将由计算设备102呈现的墨水上可有不同的效果。 0069 例如,墨水笔划中的点的不透明度可使用以下表达式定义: 0070 O=O*f(P)*f(S) 0071 其中“O”是计算出的点的不透明度,“O”是墨水笔划的最大不透明度,“P”是该点 处的压力,且“S”是该点处的速度。。
37、在一实现中,可使用函数“f”来衰减压力和/或速度。 0072 例如,可采用以下衰减表达式作为以上表达式中的“f”: 0073 f(x)=min(1,max(0,a0+(x*a1)+(x*x*a2)+(x*x*x*a3) 0074 其中x表示将被衰减的压力或速度的值,a0表示常量衰减,a1表示线性衰减,a2 表示平方衰减,且a3表示立方衰减。 0075 同样,可基于所确定的速度和压力影响墨水笔划中的点的宽度(框710)。在此示例 中,当速度增加时墨水笔划的宽度可减少,以模仿较少量的墨水被沉淀在纸上。然而,当压 力增加时墨水笔划的宽度可被增加,以模仿被应用到纸上的墨水量的增加。 0076 如上,墨。
38、水笔划中的点的宽度可使用以下表达式定义: 0077 W=W*f(P)*f(S) 0078 其中“W”是计算出的点的不透明度,“W”是墨水笔划的最大宽度,“P”是该点处的 压力,且“S”是该点处的速度。 0079 另外,可使用函数“f”来衰减在此示例中是宽度的显示特性上的压力和/或速度。 如之前的不透明度的示例,可采用以下衰减表达式作为以上表达式中的函数“f”: 0080 f(x)=min(1,max(0,a0+(x*a1)+(x*x*a2)+(x*x*x*a3) 0081 其中x表示将被衰减的压力或速度的值,a0表示常量衰减,a1表示线性衰减,a2 表示平方衰减,且a3表示立方衰减。 0082。
39、 还可基于所确定的速度和压力影响墨水笔划中的点的墨水吸收度(框712),诸如 用于模仿被在其上书写的介质的不同的和/或变化的吸收性,介质例如纸和构成纸的粒 度。 0083 墨水笔划中的点的吸收度值(例如“A”)可使用以下表达式定义: 0084 A=f(P)*f(S) 0085 其中“P”是该点处的压力且“S”是该点处的速度。可使用如上所述的函数“f”来 衰减显示特性上的压力和/或速度。 0086 在此示例中,可将吸收度值传递给图形处理单元的像素着色器以影响将被呈现的 墨水笔划中的点的最终阿尔法值。另外,可在阿尔法值因其它目的被计算了以后应用此效 说 明 书CN 102939575 A 10 8。
40、/11页 11 果,其它目的诸如在以下相对应的节中进一步描述的抗混叠。例如,最终阿尔法值可由图形 处理单元使用以下表达式计算: 0087 最终阿尔法=阿尔法*min(1,吸收度/粒度), 0088 其中阿尔法是给定像素处的抗混叠效果的阿尔法值,吸收度等于给定像素处的墨 水的吸收度值,且粒度等于纸粒度值,它可被表示为高度图并被采样为二维纹理。也可以设 想各种显示特性而不背离其精神和范围。 0089 输出墨水笔划中的点以显示在具有用所确定的速度和压力来调整的一个或多个 显示特性的显示设备上(框712)。如果可选,选择墨水笔划中的另一个点(框716),且过程 被重复。继续之前的示例,可由图形处理单元。
41、304输出该点以用于由显示设备与其它点一 起显示以呈现墨水笔划。 0090 用于呈现墨水的抗混叠技术 0091 图8描绘图1的输入/输出模块112中其中采用编码技术向墨水笔划提供抗混叠 功能的抗混叠模块120的示例实现中的系统800。一般采用抗混叠技术以使线的锯齿形边 缘平滑。在此示例中,抗混叠技术涉及将额外的数据编码进墨水笔划的顶点中,这可如下执 行。 0092 将数据编码以向将由计算设备呈现的墨水笔划提供抗混叠功能(框802)。例如, 值“AA”可以是被定义来用于存储笔划中的每个顶点处的抗混叠数据的浮点矢量。可将描 述顶点处以像素计的墨水笔划的宽度的数据编码(框804),该数据可被表示为“。
42、AA.x.”。 0093 还可将描述顶点是指墨水笔划的左边还是右边的数据编码(框806)。例如,如果顶 点表示墨水笔划的左边那么可将值“AA.y.”设为“0.0”,或者如果顶点表示墨水笔划的右 边则该值被设为“1.0”。 0094 还可将描述将应用在顶点处的墨水笔划的一个或多个边上的以像素计的抗混叠 厚度的数据编码(框808)。例如,值“AA.z.”可描述将被应用在墨水笔划的每个边上的像素 数目。可将各种其它数据编码进顶点以便由被抗混叠技术使用。 0095 将所编码的数据作为墨水笔划的几何的一部分传递给顶点着色器(框810)。如相 关于附图3-5所述,墨水笔划的几何可使用三角形条纹和戳记来表示。
43、以允许墨水分析技术 被采用,且使用纹理和像素着色器的富显示技术被采用。可将几何与所编码的数据一起传 递给顶点着色器以由图形处理单元呈现,这包括使用所编码的数据采用抗混叠技术。 0096 随后顶点着色器可将所编码的数据传递给未变化的像素着色器(框812)。随后可 基于所编码的数据计算阿尔法值以产生抗混叠效果(框814)。例如,像素着色器可采用通过 以下伪代码表示的逻辑: 0097 说 明 书CN 102939575 A 11 9/11页 12 0098 因此,可由像素着色器计算阿尔法值以提供抗混叠功能。另外,可结合在前一节中 描述的吸收度值而计算这些阿尔法值以得到每个像素的最终阿尔法值。 009。
44、9 用于呈现墨水的掩膜技术 0100 图9描绘在其中实现了用于擦除墨水笔划的部分的掩膜模块122的示例实现中的 系统900。在此示例中,计算设备102被示为在显示设备106上显示墨水笔划902。计算设 备102还被示为采用用于擦除墨水笔划902的部分的功能。 0101 例如,输入/输出模块104可被配置为区分指示笔的第一和第二端904、906。指示 笔110的第一端904可通过与计算设备102的交互来配置以提供写输入,诸如绘制墨水笔 划902。指示笔110的第二端906可通过与计算设备102的交互来配置以执行擦除操作。 对擦除操作的检测于是可使得掩膜模块122采用掩膜墨水技术来“擦除”墨水笔划。
45、902的 相对应的部分,其进一步讨论可相关于以下附图找到。 0102 图10描述在其中采用了用于擦除墨水笔划的一部分的掩膜笔划技术的示例实现 中的过程1000。将图形处理单元的模版缓冲区值清除(框1002),例如,设为0。例如,掩膜 模块122可与图形处理单元的模版缓冲区通信以设置值。 0103 将掩膜笔划绘制到图形处理单元的模版缓冲区以指示哪些像素与掩膜笔划相对 应(框1004)。继续之前的示例,可将掩膜笔划绘制到模版缓冲区以指示哪些像素与掩膜笔 划相对应以及由此的擦除操作。在此示例中,对为掩膜笔划绘制的每一个像素将模版缓冲 区的值递增1。 0104 然后绘制逻辑上与掩膜笔划相对应的一个或多。
46、个墨水笔划(框1006),例如,至少 有“位于”掩膜笔划“之下”的墨水笔划的一部分。在此示例中,绘制不与如模版缓冲区所 指示的掩膜笔划中涉及的像素相对应的一个或多个墨水笔划的像素(框1008),例如,在模 版缓冲区中有为0的值。不绘制与如模版缓冲区所指示的掩膜笔划中涉及的像素相对应的 一个或多个墨水笔划的像素(框1010),例如,在模版缓冲区中有为1的值。以此方式,墨水 笔划902的“未掩膜”的部分被呈现而掩膜的部分不被呈现,由此给出擦除墨水笔划的部分 的效果。 0105 在此示例中可随后将掩膜笔划重新绘制到模版缓冲区中以清除模版值(框1012), 例如,回到0。因此,可对新掩膜笔划重复过程1。
47、000。尽管掩膜笔划被描述为使用指示笔的 特定端来输入,应当显而易见的是,掩膜笔划可通过各种方式指定,诸如使用用户手108的 手指、光标控制设备、在自然用户接口(NUI)中等等。 0106 用于呈现墨水的突出显示工具技术 0107 图11描绘在其中实现了用于突出显示墨水笔划的突出显示工具模块124的示例 实现中的过程1100。对于突出显示工具墨水的这个实现,使用了图形处理单元(GPU)上的 MIN(最小)混合以产生比其它常见方案更准确的突出显示工具墨水。MIN混合是通过如以 下示例所示将“混合操作”呈现状态设置为“MIN”而在GPU上设置的。 0108 识别以在计算设备的显示设备上显示突出显示。
48、工具墨水的输入(框1102)。例如, 用户手108的手指、指示笔110、自然用户接口(NUI)中的姿势、光标控制设备等可提供输入 (例如,通过菜单、图标等中的选择等)以突出显示显示的一部分。可突出显示各种不同的部 分,诸如文本、图像、绘图等等。 0109 响应于该识别,突出显示工具模块124在图形处理单元上将混合操作呈现状态设 说 明 书CN 102939575 A 12 10/11页 13 置为“MIN”(框1104)。例如,突出显示工具模块124可标识将被突出显示的部分并将混合 操作呈现状态设置为“MIN”以执行突出显示。由此,将被突出显示的部分可与由突出显示 工具所使用的墨水相混合以得到。
49、用于显示的最终输出。与输入相对应的突出显示的部分被 显示在显示设备上(框1106)。 0110 示例设备 0111 图12示出了可被实现为参考图1和2来描述的任何类型的便携式和/或计算机 设备以实现此处描述的姿势技术的各实施例的示例设备1200的各种组件。设备1200包括 允许设备数据1204(例如,接收到的数据、正被接收的数据、安排用于广播的数据、数据的数 据包等)的有线和/或无线通信的通信设备1202。设备数据1204或其他设备内容可以包 括设备的配置设置、存储在设备上的媒体内容和/或与设备用户相关联的信息。存储在设 备1200上的媒体内容可以包括任何类型的音频、视频和/或图像数据。设备1200包括经 由其可接收任何类型的数据、媒体内容、和/或输入的一个或多个数据输入1206,诸如用户 可选输入、消息、音乐、电视。