用于表面计算的基于物理学仿真的交互的制作方法

文档序号:6594601阅读:206来源:国知局
专利名称:用于表面计算的基于物理学仿真的交互的制作方法
用于表面计算的基于物理学仿真的交互背景计算设备的技术能力越来越高,其中,这样的设备可以在有限的设备空间内提供 多种功能。计算设备可以是,但不限于,移动通信设备、台式计算机、膝上型计算机、蜂窝电 话、PDA、寻呼机、平板计算机、信使设备、手持式设备、袖珍翻译器、条形码扫描仪、智能电 话、扫描仪、便携式手持式扫描仪,以及可以进行数据交互的任何其他计算设备。虽然对于 用户而言,每一个设备都使用特定功能,但是设备已经被开发为允许重叠功能,以便吸引消 费者的需要。换言之,计算设备已经结合了多个特征和/或应用程序,使得设备侵占了彼此 的功能。例如,蜂窝电话可以提供蜂窝式服务、电话簿、日历、游戏、语音邮件、寻呼、web浏 览、视频捕捉、图像捕捉、声音便笺、语音识别、高端移动电话(例如,智能电话在特征和功 能方面变得越来越类似于便携式计算机/膝上型计算机)等等。结果,个人计算设备已包括了用于输入信息的各种技术和/或方法。个人计算 设备便于使用诸如,但不限于,键盘、小键盘、触摸板、触摸屏、扬声器、指示笔(例如,识别 笔)、书写板等等之类的设备来输入信息。然而,诸如小键盘、扬声器和书写板之类的输入设 备产生其中每一个用户可以不类似地利用数据输入技术(例如,声音,和/或写入)的用户 个性化缺陷。例如,在美国使用书写识别的消费者可以用英语书写,可是具有相异和/或不 同的字母变体。在各种输入技术和/或方法中,表面计算可使得用户能够利用物理接触或交互来 操纵数据。例如,对象可以被显示,且表面计算或表面技术可以允许用户利用他的或她的手 来移动、编辑对象或与对象进行交互。然而,由于数据交互的量和能力随着表面计算或表面 技术而增长,因此用户通常偏好与基本上类似于现实世界中的数据的数据的交互。概述下面呈现了本发明的摘要,以便提供此处所描述的某些方面的基本概念。此小结 不是所要求保护的主题的详尽的概述。既不旨在标识所要求保护的主题的关键或重要元 素,也不旨在描绘本发明的范围。唯一的目的是以简化形式呈现所要求保护的主题的某些 概念,作为稍后呈现的比较详细的描述的前序。本发明涉及便于将物理学结合到表面计算和数据交互中的系统和/或方法。表面 检测组件可以动态地检测表面输入,并利用物理学引擎将物理学仿真结合到这样的表面输 入中。一般而言,可以使用表面输入以便与所显示数据进行交互,其中物理学引擎可以对于 诸如质量、速度和/或摩擦等应用物理学仿真建模。具体而言,物理学引擎可以为检测到的 表面输入的轮廓生成多个代理对象。物理学引擎还可以在第一帧和第二帧之间应用物理学 仿真更新,以便提供与所显示数据的交互。根据本发明的另一方面,流组件可以提供用于表面输入的运动计算,以便提供运 动跟踪。此外,操纵器还可以提供操纵保真度(例如,碰撞力的影响、以静摩擦和动摩擦对 抗手轮廓和手指提供高保真度等等),收集(例如,实现每次操纵一个以上的对象等等),操 纵3D对象,提供布和软体(例如,提供非刚性对象,软体仿真,布仿真,流体仿真等等)。在 所要求保护的主题的其他方面,提供了促进向物质对象的数据表示和表面输入之间的交互施加物理量的方法。下面的描述和附图详细地阐述了所要求保护的主题的某些说明性方面。然而,这 些方面只是表示可以使用本发明的原理的各种方式中的一些方式,并且所要求保护的主题 旨在包括所有这些方面和等效内容。通过与附图一起阅读下面的本发明的详细描述,所要 求保护的主题的其他优点和新颖的特点将变得显而易见。附图简述

图1示出了便于将物理学结合到表面计算和数据交互中的示例性系统的框图。图2示出了便于将物理量应用到物质对象的数据表示和表面输入之间的交互的 示例性系统的框图。图3示出了便于为操纵一部分所显示数据的用户提供增强的表面计算的示例性 系统的框图。图4示出了便于利用与表面计算相关联的数据交互复制牛顿物理学的示例性系 统的框图。图5示出了便于允许表面技术的操纵样式的示例性系统的框图。图6示出了便于将物理学结合到表面计算和数据交互中的示例性系统的框图。图7示出了用于将物理量应用到物质对象的数据表示和表面输入之间的交互的 示例性方法。图8示出了便于利用与表面计算相关联的数据交互复制牛顿物理学的示例性方 法。图9示出了其中可以使用所要求保护的主题的新颖方面的示例性网络环境。图10示出了根据所要求保护的主题可以使用的示例性操作环境。详细描述现在参考附图来描述所要求保护的主题,在所有附图中通篇使用相同的附图标记 来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对本发明的全 面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他 情况下,以框图形式示出了各个已知的结构和设备以便于描述本发明。如此处所使用的,术语“组件”、“系统”、“数据存储”、“引擎”、“操纵器”等等旨在是 指与计算机有关的实体,无论是硬件、软件(例如,运行中的软件)和/或固件。例如,组件 可以是,在处理器上运行的进程、处理器、对象、可执行件、程序、函数、库、子例程,和/或计 算机或者软件和硬件的组合。作为说明,在服务器上运行的应用程序和服务器两者都可以 是组件。一个或多个组件可以驻留在进程中,且组件可以位于一个计算机上和/或分布在 两个或更多计算机之间。此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、 固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。如这里 所使用的术语“制品”旨在包含可以从任何计算机可读的设备、载体或介质进行访问的计算 机程序。例如,计算机可读介质可以包括,但不仅限于,磁存储设备(例如,硬盘、软盘、磁 条…)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)…)、智能卡,以及闪存设备(例如, 卡、棒、键驱动器…)。另外,应该理解,可以使用载波携带计算机可读电子数据,如那些在传 输和接收电子邮件或在访问诸如因特网或局域网(LAN)之类的网络时所使用的。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的情况下可以对这 一配置进行许多修改。此外,在此使用词语“示例性”意指用作示例、实例或说明。此处作 为“示例性的”所描述的任何方面或设计不一定被理解为优于或胜于其他方面或设计。现在转向附图,图1示出了便于将物理学结合到表面计算和数据交互中的系统 100的框图。系统100可包括表面检测组件102,该表面检测组件102可以经由界面组件 106检测表面输入,以便允许与一部分数据进行交互。系统还可以包括物理学引擎104,该 物理学引擎104可以对于至少一个量应用基于物理学的仿真,其中该量是力、质量、速度或 摩擦这几项中的至少一个。换言之,物理学引擎104可结合数据交互和/或与一部分所显 示数据有关的表面输入一起提供现实的物理学仿真。例如,可以显示一部分数据,其中,用户可以与其进行交互。具体而言,用户可以提 供表面输入(例如,触摸事件、手姿势等等),以便操纵该部分所显示数据。例如,可以显示 诸如立方体之类的物质对象,其中用户可以使用通过表面计算检测到的表面输入,以便操 纵(例如,移动、删除、收缩、放大、旋转等等)立方体。所要求保护的主题可以允许这样的 操纵具有与力、质量、速度、摩擦等等相关联的现实世界的物理特征。在另一示例中,可以用图形方式表示和显示螺栓和螺母,其中用户可以抓取此类 用图形方式显示的对象中的任一个并与之进行交互。根据所要求保护的主题,物理学引擎 104可以向对象和/或与这样的对象的交互提供物理量(例如,力、转矩、重力、质量、速度等 等)。如此,用户可以抓取螺母,并尝试利用相关联的现实世界的物理量将这样的螺母拧到 螺栓上。可以使用系统100,以便捕捉与一部分所显示数据有关的触摸事件、表面输入,和 /或表面接触。可以理解,这样的捕捉到或检测到的事件、输入或接触可以是姿势、手的运 动、手的交互、对象交互,和/或与表示物质对象的一部分数据的任何其他交互。例如,可以 将手的交互转换成显示器上相对应的数据交互。具体而言,用户可以物理地操纵一部分所 显示数据,其中,可以检测和转换这样的手姿势以便进行数据交互。如此,触摸事件检测可 以由表面检测组件102来实现。可以理解,触摸事件可以是任何物理交互,一部分所显示数 据,检测到的表面输入,和/或其任何合适的组合。另外,系统100可包括任何合适的和/或所需的接口组件106(此处称为“接口 106”),该组件提供各种适配器、连接器、信道、通信路径等等,以将表面检测组件102和/或 物理学引擎104集成到几乎任何操作系统和/或数据库系统和/或彼此集成。另外,接口 106可以提供各种适配器、连接器、信道、通信路径等等,用于与表面检测组件102、物理学 引擎104、表面输入,以及与系统100相关联的任何其他设备和/或组件进行交互。图2示出了便于将物理量应用到物质对象的数据表示与表面输入之间的交互的 系统200。系统200还可以包括数据存储204,该数据存储204可包括与表面检测组件102、 物理学引擎104、表面输入等等有关的任何合适的数据。例如,数据存储204可包括,但不 仅限于,包括,物理量、物理特征、物理属性、物理方程、用户偏好、用户口令、用户名、映射、 图像处理数据、图像处理技术、二进制数据、物理数据、代理对象数据、粒子代理(particle proxy)数据、流数据、操纵数据等等。可以理解,数据存储204可以是,例如,易失性存储器或非易失性存储器,或者可 包括易失性和非易失性存储器两者。作为说明,而不是限制,非易失性存储器可包括只读存储器(ROM)、可编程序ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)或 闪存。易失性存储器可包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明 而不是限制,RAM可以有许多形式,如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM (SDRAM)、 双倍数据速率 SDRAM (DDR SDRAM)、增强型 SDRAM (ESDRAM)、同步链路(Synchlink) DRAM (SLDRAM)、直接存储器总线(Rambus) RAM (RDRAM),直接存储器总线动态RAM (DRDRAM), 以及存储器总线动态RAM (RDRAM)。本系统和方法的数据存储204旨在包括,而不仅限于,这 些以及任何其他合适类型的存储器。另外,还可以理解,数据存储204可以是服务器、数据 库、硬盘驱动器、笔式驱动器、外部硬盘驱动器、便携式硬盘驱动器等等。图3示出了便于为操纵一部分所显示数据的用户提供增强的表面计算的系统 300。系统300可包括图像处理组件302,该图像处理组件302可以利用任何合适的图像处 理技术以便使从用户306收集到的表面输入与显示器304上的投影图像对准。例如,可以检 测表面输入,并可以计算显示器304上的投影图像中的对应点。在另一示例中,可以将用户 的手或手指置于可以对其执行与所显示数据的交互的表面上。在此示例中,手指或手可以 操纵该部分所显示数据,其中,这样的数据可以以物理准确的结果(例如,力、质量、速度、 摩擦等等)作出响应。例如,图像处理组件302可以使用二进制化、图像分析、所捕捉图像 的分析等等。此外,还可以理解,显示器304可以是任何合适的显示组件,诸如但不限于,监 视器、电视机、液晶显示器(LCD)、等离子、背投显示器、前投显示器、阴极射线管(CRT)监视 器、平板显示器、计算设备的显示器、便携式数字助理(PDA)屏幕、膝上型显示器、计算机监 视器、智能电话显示器、蜂窝设备屏幕、移动通信设备显示器、便携式游戏设备显示器等等。图4示出了便于利用与表面计算相关联的数据交互来复制牛顿物理学的系统 400。系统400可包括代理对象组件402,该代理对象组件402可以通过为检测到的每一个 表面输入创建代理对象来将表面输入结合到物理学仿真中。系统400还可以包括粒子代理 组件404,该粒子代理组件404利用沿着表面输入的轮廓放置的多个代理对象建模表面输 入的形状,代理对象的轮廓是特定代理。系统400还可以包括流组件406,该流组件406可 以通过跟踪第一帧和第二帧之间的运动来计算粒子代理的运动。本发明可以探索新兴的表面技术之间的交叉,能够感测多个接触,以及甚至形状 信息及高级游戏物理学引擎。定义了用于将从这样的表面感测到的数据建模为物理学仿真 内的输入的强大而新颖的技术。这给用户提供了以类似于操纵真实物体的方式来与数字对 象进行交互的能力。本发明可以提供能够建模多个触点和诸如整只手或其他物理对象之类 的更加复杂的形状信息,并能够将此用户输入映射到物理学世界内的摩擦力和碰撞力。这 允许各种细粒度和不经意的交互,支持基于手指的,整只手的,以及有形的输入。该技术可 以被用来向交互式表面(例如,基于视觉的桌面等等)添加真实世界动态学,从而创建流畅 且自然的体验。此方法可以使应用程序开发人员不会感觉到使用物理学引擎所固有的许多 复杂性,从而使得能在无需预编程交互行为或姿势识别的情况下创建应用程序。新兴的交互式表面技术的其中一个吸引力是,它们可允许人们通过直接触摸和操 纵屏幕上的内容来与数字对象进行交互。使用这样的系统的人常常评论,这种用于伸展和 触摸数字内容的能力向交互添加了物理或有形性质,从而使虚拟感觉起来更加真实。许多 基于交互式表面的应用程序尝试通过仔细地设计展现真实世界的行为的感觉的界面对象 来进一步强调此伪物理性。一个这样的示例是在桌面应用程序中发现的旋转和平移行为,其中,交互类似于利用一根或多根手指在平坦表面上移动真实的一张纸。虽然这样的交互 的响应可能感觉起来逼真,但是,此行为是预编程的。例如,数字照片如何旋转或平移是通 过现有的交互逻辑来预定义的。如此,这样的技术具有固有的以脚本编写的特性,一旦用户 以开发人员料想不到的方式与系统进行交互,这种特性就会毁坏。本发明提供了用于在新兴的表面技术(例如,能够感应多个触摸点和/或更加复 杂的形状信息的系统)上支持伪物理交互的不同的方法。具体而言,可以使用计算机游戏 中所使用的模仿牛顿物理学的物理学引擎,如此,通过建模诸如但不仅限于,力、质量、速 度、摩擦、转矩之类的量,和/或任何其他合适的物理量或度量来与数字对象进行交互。这 样的引擎可允许用户通过与现实世界中的交互更相似的更丰富的参数集来控制和操纵数 字对象。尽管物理学引擎是全面的,但是,这样的引擎却难以掌握。可以向应用程序开发 人员展示许多系数和参数,并且建模用户输入是不平凡的,特别是对于超出单个触点的数 据。本发明可以提供用于建模从表面技术感测到的丰富数据作为物理学仿真内的输入的强 有力技术。所要求保护的主题可以建模一个或多个触点,诸如从多触摸表面感测到的那些 触点,并且还可以扩展以表示诸如整只手或表面附近的有形对象的略图之类的更复杂的形 状。这可以允许用户通过施加诸如摩擦和碰撞之类的力来与对象进行交互并控制对象,但 是避免了使用户和应用程序设计员面临物理学引擎(例如,物理学引擎104)的复杂性。通过将此技术与游戏物理学引擎以及基于视觉的交互式表面组合起来,可以将真 实世界的动态学添加到数字应用程序中。所要求保护的主题可以创建自然并流畅的基于物 理学的交互,无需显式地将此行为编程到系统中或者识别手势。进一步提供了高级物理学 仿真器用以允许用户与诸如软体和布之类的更复杂材料进行交互的能力。本发明进一步探索了在开发这样的上面所讨论的技术试验的替换的方法的折衷。 所要求保护的主题可以允许实践者理解每一种方法的细微差别,以便他们还可以进一步探 索表面和物理学之间的交叉点。此外,还探索了在实践中使用这样的技术的早期经验。交互式表面技术可以有广泛的不同。可以演示电阻性的和电容性单触摸和多触摸 系统,以及能够对指尖和诸如整只手或其他物理对象之类的更加复杂的形状信息进行成像 的计算机视觉系统。本发明可以支持这样的广泛的表面输入,而不是开发为一种技术度身 定制的技术。交互式表面上的接触信息(例如,指尖触摸表面)可以被表示为离散的2D点。即 使有关于接触的形状的更多信息可用,也可以将相邻的传感器像素分组到相邻的区域或连 接的组件中。在很多情况下,每一个不同的接触都可以通向一个组件,该组件又通向单个2D 点——该特定组件的计算出的质心。如此,此方法将每一个接触聚焦到基于点的表示,而不 管其形状如何。由如此多的表面技术所使用的基于单点和多点的输入模型可以得到支持。然而, 如果有所需的数据可用,则支持更复杂的形状表示有多个优点。可以更广泛地定义触点 (其已经变成与2D触摸点同义),以便不仅定义指尖,而且还定义的其他接触形状,诸如手 掌,或者甚至有形对象。用于计算关于接触形状的更多数据的一个更高保真度方法可以是确定每一个组 件中的像素的长轴和短轴,以便获取大致匹配形状的椭圆模型。这对于椭圆形状的接触(例如,指尖)好使,但是,对于复杂形状,不太有效。替换地,可以通过计算被表示为闭合回 路的每一个接触的轮廓来将形状更准确地表示为多边形网格。另一种技术是通过使用过滤 器(例如,索贝尔(Sobel)等等)来计算空间梯度来获得位于轮廓附近的像素。这样的方法使得用户输入的更复杂表示得到支持。这种带有高级物理学仿真的输 入的宽阔的保真度可以允许藉由其可以操纵数字对象的词汇表的扩展。例如,所要求保护 的主题可以使用丰富且各式各样的交互技术和策略来在更少脚本的情况下作出对数字对 象的操纵。物理学引擎104可以允许在图形应用程序中创建真实世界的机制和行为,同时隐 藏计算复杂度。物理学引擎104可以使用许多物理学概念诸如,但不仅限于,加速度、动量、 力、摩擦、扭矩、碰撞等等。除刚体之外,许多系统建模粒子(例如,对于烟、灰尘等等)、流 体、毛发、衣服等等。虚拟接头和弹簧可以给布洋娃娃角色和车辆提供适当的灵活性和阻 力,并且材料可被编程为具有特定属性——以便例如使得冰是光滑的。所要求保护的主题 可以涉及诸如由于所仿真的物体之间的碰撞和摩擦而产生的接触力之类的接触力。对碰撞的处理可以被分成碰撞检测、确定刚体是否接触,以及碰撞响应——如果 它们接触,则施加适当的力。例如,可以通过考虑定义立方体的面与地板的面的交叉来检测 落在地板上的立方体的碰撞。作为结果(例如,响应),立方体的运动中的变化是质量、惯 性、速度,以及与地板接触的点等等因素的函数。摩擦力可以描述当一个主体与另一个主体的表面保持接触时阻碍运动的力。如果 两个表面相对于彼此移动,则动摩擦可以对抗使主体移动的力。如果两个表面相对于彼此 静止,则静摩擦可以对抗否则将导致其中一个对象运动的力。为了与物理学引擎104中的虚拟对象进行交互,可以在仿真内表示表面接触。这 样的引擎可以具有巨大的潜力和灵活性。因此,对于在物理学世界建模表面输入,有许多策 略。例如,有下面的策略(1)直接力-触点可以被表示成力,而没有在对象上的特定点处 应用的几何或视觉表示。可以根据接触的速度和大小(如果可用的话)计算出力方向和大 小。( 虚拟接头和弹簧-每一个接触都可以连接到虚拟对象,以使得只要它位于表面上, 对象就跟随触点。( 代理对象-可以通过诸如立方体或球体之类的实心几何对象来表示 触点。这些对象是触摸表面的触点的近似,并通过碰撞和摩擦力拉起与其他虚拟对象进行 交互。⑷粒子-在关于接触的形状的附加信息可用的情况下,可以将多个实心对象或粒子 结合起来,以更严密地近似接触的形状和运动。这可以允许建模与整只手或诸如有形对象 之类的其他换能器的交互。( 可变形的2D/3D网格-用于建模更复杂的形状的另一种方 法是基于传感器数据中的特征来构建2D或者甚至3D网格(如果有数据可用的话)。乍一看,似乎手的可变形3D网格可以实现最高保真度。但是,利用此方法存在多 个难点。首先,交互式表面在表面上或表面附近提供感测,并非完全3D形状。类似地,由于 被操纵的对象存在于(例如,平坦的)投影表面上,因此,手的3D形状,如果被捕捉,将不会 符合对象,从而不会反映抓握真实物体的真实手的形状。最后,构建这样的动画化网格是困 难的,要求对3D对象的特征和精确变形进行稳健跟踪。本发明可以提供与查找在这些高级物理学仿真内仿真表面输入的技术相关联的 解决方案。所要求保护的主题可以涉及保持基于网格的表示的优点——特别是交互的高保 真度——但是对于应用程序设计员而言相当容易实现的新颖的代理/粒子技术。
在物理学仿真内,应用程序可以通过直接施加一个或多个力来控制刚体的移动。 例如,游戏中的宇宙飞船可以在其机身的任一侧具有助推器。可以通过在两个助推器的位 置施加前向力来将飞船向前推。如果在相反的方向上施加其中一个力,则飞船将转动。旋 转是扭矩的副产物,其在偏离(质量)中心地施加力时发生,因为机身的不同的部分以不同 的速度移动。从程序员的观点来看,此方法不同于通过设置飞船的绝对位置来移动飞船。可以 计算将对象移到其目标位置所需的准确的力和扭矩,这是被称为“动力学控制”的概念。这 种定位对象的方法可以确保与仿真中的其他主体的正确的碰撞响应。比较起来,在仿真内 直接设置主体的位置会导致不稳定且不可预测的结果。在某些方面,绝对定位将类似于将 真实物体从一个位置运输到另一个位置。在对象部分地被嵌入在彼此中的情况下,会出现 诸如相互渗透的问题。因此,用于在交互式表面上移动对象的策略是考虑到触摸刚体的每一个接触都根 据接触的运动(以及推测的质量),向主体提供摩擦力。可以向主体施加这多个摩擦力,如 在上文所讨论的宇宙飞船的示例中那样。此方法所存在的问题在于,为计算匹配接触的移 动所需的力,作用于主体的所有其他外力可被计及和抵消。这些可包括对于应用程序开发 人员而言难以或不可能获取的摩擦力和碰撞响应。这一难点延伸到考虑与表面接触相对应的力。在多个接触的情况下,可以(例如, 同时地)确定与每一个接触相对应的正确的摩擦力。考虑接触中的一个或多个表现出静摩 擦的情况。回想一下,静摩擦施加一个力,该力抵消否则将导致主体运动的力。例如,一个 接触固定住一个对象,以使得它将由于另一个接触的运动而旋转,由于其中一个接触的正 确的摩擦力的施加会要求知道由于另一个接触而导致的摩擦力。事实上,物理学引擎104的核心是解决此问题的复杂的约束解算机。在没有在物 理学引擎内基本构建新解算机的情况下,或者在没有对现有的解算机的内部构件进行访问 的情况下,似乎不可能直接正确地施加接触力。即使可以改变解算机或嵌入另一个,但是这 样的方法将违反所要求保护的主题的精神,其中,利用现有的完全物理学引擎,而不是从头 开始构建。最初,似乎解决方案是作为动力学来处理摩擦的。但是,这在进行固定的示例中也 造成问题。由于动摩擦力只在存在相对运动的情况下才起作用,因此,使对象的被固定部分 静止的反作用力会首先移动。如此,当移动对象时,此方法会导致有点粘滞并且稍微不可预 测的感觉。另一种动力学方法是使用接头来连接虚拟对象和输入接触。将此视为具有在特定 锚点绑定到对象的预定义的长度的不可见绳的段。然后,使用此绳索拉对象。弹簧添加弹 性,从而允许连接伸展和回弹。通过连接偏离中心的接头,对象会遭受到力和扭矩——使用单一连接即可使对象 移动和旋转。在前面的示例中,附接到第一触点的一个接头和对象的一个角可以充当枢轴 点。将另一个接头附连到描述角运动的对角和触点将导致对象围绕第一触点旋转。此方法可能不适用于多个同时的触点,特别是在相反的方向拉的触点。在真实世 界中,甚至最刚硬的材料也会通过它们的原子结构的变形来吸收从相反的力产生的能量。 这在所有计算都可以使用建模质量的影响的质心和惯性张量来执行的物理学仿真中是不可能的。实际主体及其体积用于碰撞检测和呈现,并且不可以基于动态学计算来操纵。如 此,通常将使刚性对象变形或将其撕碎的一组力会导致不稳定系统——通常导致对象快速 地振荡,并表现得无法预测。弹簧可以通过在连接中提供更大的柔性来部分地减轻这些问题中的某些。然而, 弹簧的弹性和接触所连接对象的响应性如何之间存在折衷(例如,弹簧应该相当短和刚 硬,以允许更快的响应)。另一种方法是允许接头或弹簧在这些情况下断开,但是,这会容易 导致对象将飞到用户的范围之外的情形。可以在启用单点物理学的应用程序中使用上文所描述的两种技术,其中,就建模 多个接触讨论了这样的限制。首先,接触可能不是离散的2D点,并可能需要接近地匹配接触输入的形状。不清 楚如何利用这些方法中的任何一种来建模更复杂的形状和轮廓。其次,上面的对象操纵技 术解决了用户直接触摸对象从而通过摩擦力移动对象的情况。这些方法中没有哪一个是通 过碰撞力(例如,从施加于对象的侧面的接触力)来解决对象的移动的。所要求保护的主题提供解决框架中的摩擦力和碰撞力并可以轻松地被扩展以处 理任意轮廓的形状的技术。这样,它解决了以前的技术的许多难题。系统400可包括可以生成根据本发明的代理对象的代理对象组件402。代理对 象的用于将表面输入结合到物理学仿真中的方法是在仿真中引入刚体,每一个表面接触一 个。可以在动力学方面控制这些体,以匹配表面接触的位置,并且可以通过碰撞或者摩擦来 与场景中的其他刚体进行交互。这样的代理对象可以被视为物理学仿真内的触点的化身 (incarnation)0此代理方法可以带有各种好处,诸如对程序员隐藏了力计算的复杂性(事实上, 隐藏大多数物理学方面),而同时避开了以前所描述的方法的难题。它利用碰撞以及摩擦力 (例如,静摩擦的、动摩擦的等等)来建模丰富的交互,诸如,但不仅限于,推、抓取、夹紧、拖 曳等等。代理对象可以通过由物理学引擎104所提供的技术来与仿真中的其他对象进行交 互。此外,此方法可以避免对解算机上的不必要的应变(例如,插入极端的力值)以及所产 生的不稳定的仿真状态。为每一个触点创建和定位代理对象。诸如立方体或球体之类的单一形状原语可以 用于每一个接触。当一个接触最初出现时,执行光线投射计算,以确定代理的位置和高度, 以便它触摸底层对象。在另一示例中,可以使用球体或立方体来作为代理形状,以创建从平 面附近的3D摄像机伸展到所触摸对象的表面的细胶囊,箱子,或柱体。这种代理可以不仅 与同所触摸对象(例如,地板,等等)位于同一个平面上的对象碰撞,而且还与位于半空中 的或堆放在其他对象(例如,其他平面)上的对象等等发生碰撞。这样的行为可以更紧密 地对应于用户所预期的东西。随着感测系统(例如,表面检测组件10 向接触位置提供更新,可以在动力学上 控制对应的代理对象,以匹配已更新的位置。这是通过施加必要的力以将代理对象(具有 已知质量)带到准确的位置来执行的。此方案可以允许用户利用碰撞力来将对象推来推去 或通过从两个相对的侧触摸对象来抓取对象。动力学控制中的细微变化可以允许代理对象在其落在另一刚体上时施加摩擦力 (如,例如,当用户触摸虚拟对象的顶表面时)。具体而言,可以施加与所触摸对象相切的力,以匹配接触位置。如同动态主体那样,可以包括重力作为外力。在重力被定向到桌子上 的情况下,代理如此向其他对象施加向下的力,并导致摩擦力。这种对于对象的混合型动力 学-动态学控制可以通过向代理刚体直接施加力或通过对该主体的运动施加的棱柱接头 约束来实现。可以通过改变代理对象的质量来调整手指在对象上的模仿的重量,同时可以 通过改变静摩擦和动摩擦系数来调整虚拟对象的材料特性。代理-对象技术的一个优点是,它利用物理学引擎104的内置功能来模拟摩擦和 碰撞接触力。此外,由于对接触力的计算可以通过内置物理学引擎解算机(例如,物理学引 擎104)来处理,因此,可以处理由于多个代理对象所造成的同时的静摩擦力和动摩擦力的 组合影响。这些摩擦力可以使用户能够平移和旋转直接触摸的对象(通过相反的力方向)。系统400还可以包括粒子代理组件404。每一个触摸点都可以被近似为单个代理 对象。这可以允许快速实现,并有助于提供只报告接触位置而不报告形状信息的感测系统, 以及适用于支持与食指指尖或指示笔笔尖的交互的应用程序。某些交互式表面可以提供形状信息,如有朝向的椭圆,边界框或完整的多边形轮 廓。粒子代理的思想是通过沿着检测到的接触的轮廓放置的多个代理对象(例如,粒子) 来建模接触形状。粒子可以随着轮廓改变大小和形状而添加和删除。示例实现可以涉及在 每一个仿真帧的开始处为轮廓创建新的一组代理对象,并且在已更新物理学仿真之后销毁 所有代理对象。尽管在物理学更新之后可以销毁代理,但是,在更新期间每一个代理都可以 施加碰撞和摩擦力。粒子代理方法的优点是双重的。首先,碰撞看起来更正确,因为它们紧密地跟随接 触的形状。这在使用手的手掌或侧面、有形对象,或除指尖以外的一般接触时,特别重要。此 外,可以准确地建模一个对象顶部的摩擦力的分布和大小。例如,手掌可以比手指的指尖施 加更大的摩擦力,因为更多粒子被指派给它。同样,单个接触在一个位置转动可以施加摩擦 力以旋转对象。与单代理模型不同,可以分开放置每一个粒子(例如,光线投射),以使得接 触可以符合形状不规则的3D虚拟对象。如在单个代理对象模型中那样,可以在动力学上控制每一粒子,以匹配它所属的 接触的移动。一般而言,可以通过检查前一帧中接触的轮廓来计算轮廓上的点的速度。此 计算可以非常快,如同椭圆模型那样,或更加复杂,如同多边形轮廓那样。系统400可包括流组件406。将速度计算基于被跟踪的接触的一个问题在于,跟踪 可能会失败,特别是当用户正在使用诸如手的边或手掌而不是更光标类的食指的束缚力不 太强的抓握姿势时。在这些情况下,组件可以以不与如何看到物理输入的方式相对应的方 式拆分和合并,从而导致错误的速度计算,且最终,在物理学仿真的情况下,导致不可预测 的运动。—种替换方法可以是独立于被跟踪的接触信息来计算粒子的运动。例如,图像的 局部特征可替代地从前一帧来跟踪以计算速度。光流中所使用的那种简单块匹配法是一种 这样的技术。当使用本地运动估计时,可以通过将代理粒子放在带有高空间梯度的图像位置 (例如,索贝尔过滤器等等)来完全避开对离散的接触对象和轮廓的跟踪。这些像素可以落 在接触轮廓上或附近。基于流的粒子代理方法/技术的形状和运动计算的瞬时分段特征具有多个优点。首先,摩擦和接触力导致比根据离散的被跟踪对象计算形状和运动的情况更稳定的物理学 仿真结果。其次,几乎不对用户可以执行的操纵施加限制,无论是导致碰撞、摩擦力或其组合。首先,尽管在真实世界中可以施加或多或少的力来控制摩擦,但是,所描述的系统 可能不具有用户有多用力地按下的感觉。当使用粒子代理时,施加的摩擦的大小替代地与 施加于对象的代理的数量成比例,而施加于对象的代理的数量本身又与触摸的表面积相 关。例如,一根手指在对象上移动将比多根手指施加更小的摩擦。此外,设备还可以感测可 以被转换为若干个代理上的力的表面类的压力。第二个问题可以是,通过将两根手指或者两只手放在任何一侧来抓握虚拟对象在 我们探索的许多技术中会是困难的(如果不是不可能的话)。这样的操纵要求在虚拟对 象上放置永久静止接触。基于粒子的方法(其中,每一个粒子都可以被重新放在每一个帧 中),将把与抓握手指相对应的代理放在对象上,如此,使抓握它的尝试无效。单代理对象方 法使用永久代理,从而可允许抓握被搁在地板上的对象。也可以扩展粒子方法,以在似乎适 当时允许代理保持在给定深度,或使用其中同时使用粒子和单代理技术的混合式方法。例如,所描述的系统能够通过将输入图像的灰度级解释为轻触摸或重触摸来感测 压力。对于基于代理的技术,此可以通过改变代理的质量来实现。提供每像素深度信息的 新范围感测摄像机也是适当的。可以使用每像素深度来构建手的丰富的3D模型,从而开启 了建模抓握行为的新机会。它也可以有助于抓握对象,以便将它提起,并将它放到另一个对 象上。所要求保护的主题可以提供用于将交互式表面输入基本要素结合到实时物理学 仿真中的多种技术。所描述的技术可以利用由基于视觉的交互式表面所提供的感测保真 度,且以在虚拟域中实现一系列在真实世界中可为我们所用的对象操纵策略为目标。图5示出了便于允许表面技术的操纵样式的系统500。系统500可包括可以提供 操纵保真度、收集、对3维(3D)对象的操纵,或刚性仿真这几项中的至少一项的操纵器。通 过向物理学仿真中提供比较详细的表面输入类型,本发明可以允许从真实世界体验中汲取 各种操纵形式。所要求保护的主题可以提供操纵保真度、收集、操纵3D对象、布和软体中的 至少一个。当考虑对对象进行操纵时,利用详细的形状和运动信息的能力具有重要性。可以 通过组合了相对于手和手指的轮廓的碰撞与静摩擦和动摩擦的各种策略中的一种策略来 移动自由移动的虚拟对象。至少部分地基于同时使用的所有三种力,印象是非常高的保真 度中的一个。一个示例可以是对能够在表面上自由地滚动的球的操纵可以使用单次轻触 摸、多次触摸,或用于制动能力的手掌来以惊人准确的方式迫使它滚动、旋转、停止或弹跳。 还可以无成本地集成物理对象,从而允许各种有趣的有形的行为。操纵器502可以提供感测和处理轮廓,以及跨虚拟空间分段地分布摩擦力的能 力,这允许一次对两个或更多对象进行操纵,就像可以移动分散在一个桌子或表面上的一 组小对象那样。用户可以使用他们的手的边缘(例如,或者甚至手臂)来一次碰撞许多对 象,或者使用多只手的手掌来施加摩擦力。对于能够感应物理对象的交互式表面,一种有趣 的可能性是使用尺子或任何其他直边的对象来移动和对齐多个对象。以3D建模虚拟对象和输入实现有趣的但熟悉的交互。例如,被搁在较大的平坦对象上的小的平坦对象可通过轻敲其侧面或施加摩擦来移动。取决于所涉及的质量和摩擦, 可能需要将较大的对象保留在原位。显而易见,设计人员可以利用操纵器502来调整质量、 摩擦和外观以匹配用户的期望。然而,如果交互仅限于来自侧面的碰撞力和来自顶部的摩擦力,则可以提供用户 可以将较小的对象放在另一个的顶部的方式。坡道、跷跷板,及其他结构也是可以的,如果 构思出了某种东西的话。在一个示例中,通过向对象的一侧施加足够的摩擦力,可能可以将 一个对象翻转到另一个对象上。当要堆积的对象是薄的时,诸如表示文档的卡片,使用操纵器502的一种技术是 为每一对象的顶表面和底表面提供曲面形状,该形状允许用户通过按下一端而翘起另一 端。然后,用户可以将另一类似尺寸的卡移到倾斜的卡片的下面。此行为可以与在真实世 界中我们的感知相对应。甚至诸如,但不仅限于,卡片、纸、信用卡等等之类的平坦对象也具 有可以被直观地用于操纵的3D形状。诸如箱子、球体等等之类的刚体可以解释所描述的交互技术。然而,在真实世界 中,对象可能不是刚性的;相反,它们可以是软的,有韧性的,并且可以在施加力之后变形或 分解。示例可包括,但不仅限于,包括橡胶、布、纸、塑料、软金属等等。除刚体动态学之外,操纵器502可以提供对于软体仿真、布仿真和/或流体仿真提 供某种形式的支持的物理学仿真。因为可以通过碰撞或摩擦力进行与所要求保护的主题相 关联的模型中的所有交互,因此,它可以应用于任意虚拟对象。例如,可以通过使用一只手 的所有手指的抓握交互弄皱一块布。然后,可以通过将手放平,向下压,来将该被弄皱的布 弄直。甚至可以通过在两个角的相对的方向施加力来将纸类对象撕开。此外,操纵器502可以允许软的容器体被压扁,以便放入空腔中,或压缩以便在其 他对象下面滑过。软材料还可以用于制作地形;可以由用户将他们的手指挖到地形中,使用 他们的整只手来形成山谷,或使用杯状手势以产生高地,来触发变形。可以进一步提供与粒 子系统(例如,模仿沙子)和流体的更开放且自由形态的交互(例如,在游戏上下文中,等
等) O图6示出了使用智能来助益物理学自动地结合将到表面计算和数据交互中的系 统600。系统600可包括表面检测组件102、物理学引擎104,以及界面106,它们可以基本 上类似于前面附图中所描述的相应的引擎、组件、界面。系统600还包括智能组件602。智 能组件602可以被物理学引擎104用来助益连同表面计算一起来将牛顿物理学以及相关特 性与表面计算结合到数据交互。例如,智能组件602可以推断质量、力、速度、摩擦、代理对 象、粒子代理、速度计算、数据交互等等。智能组件602可以使用信息价值(VOI)计算,以便标识由显示的数据表示的对象 的量。例如,通过利用VOI计算,可以标识和实施最理想和/或适当的物理特性。此外,还 可以理解,智能组件602可以从经由事件和/或数据捕捉到的一组观察结果推理或推断出 系统、环境和/或用户的状态。可以使用推断来识别特定上下文或操作,或者可以生成,例 如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算在感兴趣 状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技 术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或操作,不 管事件在时间上是否紧密相关,以及事件和数据是来自一个还是多个事件和数据源。可以与执行涉及所要求保护的主题的自动的和/或推断操作一起,使用各种分类(经显式地和 /或隐式地训练的)方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信念 网络、模糊逻辑、数据合成引擎,等等)。分类器是将输入属性矢量χ = (xl,x2, x3, x4, xn)映射到该输入属于某一个类的 置信度的函数,即,f(x)=置信度(类)。这样的分类可以使用基于概率和/或统计的分析 (例如,分解成分析效用和成本)来预测或推断用户希望自动地执行的动作。支持矢量机 (SVM)是可以使用的分类器的一个示例。SVM通过发现可能的输入的空间中的超曲面来操 作,该超曲面试图将触发准则与非触发事件分离。直观地,这使得分类可以校正近乎与训练 数据接近但又不完全相同的测试数据。其他有向和无向的模型分类方法包括,例如,朴素贝 叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型,也可以使用提供不同独立性模式的概 率分类模型。如这里所使用的分类还包括被用来开发优先级模型的统计回归。物理学引擎104还可以利用呈现组件604,该呈现组件604提供各种类型的用户 界面,以便于用户和耦合到物理学引擎104的任何组件之间的交互。如所描绘的,呈现组件 604是可以与物理学引擎104 —起使用的单独实体。然而,可以理解,呈现组件604和/或 类似的查看组件可被结合到物理学引擎104中和/或作为独立单元。呈现组件604可以提 供一个或多个图形用户界面(GUI)、命令行界面等等。例如,可以呈现向用户提供用于对数 据进行加载、导入、读取等等操作的区域或手段,并可包括演示这样的操作的结果的区域的 ⑶I。这些区域可以包括已知的文本和/或图形区域,包括对话框、静态控件、下拉菜单、列 表框、弹出式菜单、编辑控件、组合框、单选按扭、复选框、按钮,以及图形框。另外,还可以使 用便于呈现的实用程序,如用于导航的垂直和/或水平滚动条和确定某一区域是否可查看 的工具栏按扭。例如,用户可以与耦合到和/或结合到物理学引擎104的组件中的一个或 多个进行交互。用户还可以与经由各种设备(诸如,例如,鼠标、滚球、触摸板、小键盘、键盘、触摸 屏、笔和/或话音激话、人体运动检测)选择和提供信息的区域进行交互。通常,可以使用诸 如按钮或键盘上的回车键之类的机制来连续输入信息,以便启动搜索。然而,可以理解,所 要求保护的主题没有这样的限制。例如,只突出显示一复选框可以启动信息传输。在另一 示例中,可以使用命令行界面。例如,命令行界面可以(例如,经由显示器上的文本消息和 音频音调)向用户提示经由提供文本消息来提供信息。然后,用户可以提供合适的信息,如 与界面提示中所提供的选项相对应字母数字输入或对在提示中提出的问题的回答。可以理 解,命令行界面可以与GUI和/或API结合使用。另外,命令行界面还可以与硬件(例如, 视频卡)和/或具有有限的图形支持的显示器(例如,黑白、EGA、VGA、SVGA等等),和/或 低带宽通信信道结合使用。图7-8示出了根据所要求保护的主题的方法和/或流程图。为了简洁起见,作为 一系列动作描绘和描述了方法。可以理解和明白,本发明不仅限于所示出的动作和/或动 作的顺序。例如,一些动作可以按各种顺序和/或并行地进行,并带有其他此处未呈现和描 述的其他动作。此外,并非所有的所示出的动作都是实现根据所要求保护的主题的方法所 必需的。另外,本领域的技术人员将了解和明白,方法也可以替代地经由状态图或事件表示 为一系列相互相关联的状态。另外,还应该进一步理解,下面以及整个说明书中所公开的方 法能够存储在一种制品中,以促进将这样的方法传送和传输到计算机中。如这里所使用的术语“制品”可以包含可以从任何计算机可读的设备、载体或介质进行访问的计算机程序。图7示出了便于将物理量应用到物质对象的数据表示和表面输入之间的交互的 方法700。在附图标记702,可以检测表面输入。例如,可以使用任何合适的图像处理技术, 以便将从用户收集到的表面输入与显示器上的投影图像对准。例如,可以检测表面输入,并 可以计算显示器上的投影图像中的对应点。在另一示例中,可以将用户的手或手指置于可 以对其执行与所显示数据的交互的表面上。在此示例中,手指或手可以操纵该部分所显示 数据,其中,这样的数据可以以物理准确的结果(例如,力、质量、速度、摩擦等等)作出响 应。在附图标记704,可以生成表面输入的代理对象。可以将代理对象映射到任何合适 的检测到的表面输入,其中可以将表面输入结合到物理学仿真中。可以为每一个触点创建 和定位代理对象(例如,表面输入、检测到的姿势、移动等等)。可以理解,代理对象可与同 所触摸对象(例如,地板)位于同一个平面上的对象发生碰撞,而且还与位于半空中的或堆 放在其他对象上的对象等等发生碰撞。在附图标记706,可以利用两个或更多代理粒子对象来动态地建模代理对象轮廓。 一般而言,可以通过沿着这样的表面输入和/或接触的轮廓放置的多个代理对象来建模接 触或表面输入。例如,指尖可包括围绕表面输入的轮廓或指尖在表面上的接触的多个代理 对象。在附图标记708,可以至少部分地基于动态地建模的代理粒子来提供对于表面输入的 物理学仿真。具体而言,可以创建在每一仿真帧的开始时的轮廓的一组代理对象。在应用 物理学仿真更新之后,可以销毁代理对象,同时在这样的更新期间施加碰撞和/或摩擦力。图8示出了用于利用与表面计算相关联的数据交互复制牛顿物理学的方法400。 在附图标记802,可以检测表面接触。例如,表面接触可以涉及一部分所显示数据的触摸事 件、表面输入等等。可以理解,这样的捕捉到的或检测到的事件、输入或接触可以是姿势、手 的运动、手的交互、对象交互,和/或与代表物质对象的数据的一部分的任何其他交互。例 如,可以将手的交互转换成显示器上的对应的数据交互。具体而言,用户可以物理地操纵表 面上的一部分所显示数据,其中,可以检测和转换这样的手姿势,为了进行数据交互。在附图标记804,可以利用多个粒子代理对象来建模表面接触的轮廓形状。在附图 标记806,可以将物理学更新应用于表面检测的第一帧和第二帧之间的粒子代理对象。通 过建模表面接触轮廓,可以准确地建模和/或使用分布和/或摩擦力。另外,可以在动力方 面控制每一粒子,以匹配它所属的接触的移动。物理学更新可以与应用诸如但不仅限于,质 量、速度、摩擦、力等等之类的物理量相关联。在附图标记808,可以跟踪第一帧和第二帧之 间的表面接触的特征,以便估计运动。为了提供用于实现所要求保护的主题的各个方面的附加的上下文,图9-10以及 下面的讨论旨在提供其中可以实现本发明的各个方面的合适的计算环境的简要的、一般描 述。例如,可以在这样的合适的计算环境中实现可以将现实的物理学结合到一部分所显示 数据中的物理学引擎,如前面的附图所描述的。尽管上文是在可以在本地计算机和/或远 程计算机上运行的计算机程序的计算机可执行指令的一般上下文中来描述所要求保护的 主题的,但是,本领域的技术人员将认识到,本发明也可以与其他程序模块相结合地实现。 一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据 结构等。
此外,本领域的技术人员将了解,可以利用其他计算机系统配置来实施本发明的 方法,包括单处理器和/或多处理器计算机系统,小型计算机、大型计算机,以及个人计算 机,手持式计算设备、基于微处理器的和/或可编程消费电子产品等等,上述每一种设备都 可以可操作地与一个或多个相关联的设备进行通信。所要求保护的主题的所说明的方面也 可以在其中某些任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。 然而,本发明的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计 算环境中,程序模块可以位于本地和/或远程存储器存储设备中。图9是所要求保护的主题可以与其进行交互的示例计算环境900的示意框图。系 统900包括一个或多个客户机910。客户机910可以是硬件和/或软件(例如,线程、进程、 计算设备)。系统900还包括一个或多个服务器920。服务器920也可以是硬件和/或软 件(例如,线程、进程、计算设备)。服务器920可以,例如,通过使用本发明,容纳执行变换 的线程。客户机910和服务器920之间的一种可能的通信可以是适用于在两个或更多计算 机进程之间传输的数据包的形式。系统900包括通信框架940,该通信框架940可以被用来 促进客户机910和服务器920之间的通信。类似地,客户机910可操作地连接到一个或多 个客户机数据存储器950,可以使用这些客户机数据存储器950来存储客户机910本地的信 息。类似地,服务器920可操作地连接到一个或多个服务器数据存储器930,可以使用这些 服务器数据存储器930来存储服务器920本地的信息。参考图10,用于实现所要求保护的主题的各方面的示例性环境1000可以包括计 算机1012。计算机1012包括处理单元1014、系统存储器1016,以及系统总线1018。系统 总线1018将系统组件,包括,但不仅限于,系统存储器1016耦合到处理单元1014。处理单 元1014可以是各种处理器中的任一种。还可以使用双微处理器及其他多处理器体系结构 作为处理单元1014。系统总线1018可以是若干类型的总线结构中的任一种,包括使用各种可用的总 线体系结构中的任一种的存储器总线或存储器控制器、外围总线或外部总线,和/或局部 总线,总线体系结构包括,但不仅限于,工业标准体系结构(ISA)、微通道体系结构(MCA)、 扩展的ISA(EISA)、智能驱动器电子(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、 卡总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际联合会总线 (PCMCIA)、火线(IEEE 1394),以及小型计算机系统接口(SCSI)。系统存储器1016包括易失性存储器1020和非易失性存储器1022。基本输入 /输出系统(BIOS)通常存储在非易失性存储器1022中,包含例如在启动期间帮助在计 算机1012内的元件之间传输信息的基本例程。作为说明,而不是限制,非易失性存储器 1022可包括只读存储器(ROM)、可编程序ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程 ROM(EEPROM)或闪存。易失性存储器1020包括充当外部高速缓冲存储器的随机存取存储 器(RAM)。作为说明而不是限制,RAM可以有许多形式,如静态RAM(SRAM)、动态RAM(DRAM)、 同步DRAM (SDRAM)、双倍数据速率SDRAM (DDRSDRAM)、增强的SDRAM (ESDRAM)、同步链路 (Synchlink)DRAM(SLDRAM)、直接存储器总线(Rambus)RAM(RDRAM),直接存储器总线动态 RAM (DRDRAM),以及存储器总线动态RAM(RDRAM)。计算机1012还包括可移动的/不可移动的,易失性/非易失性计算机存储介质。图10示出了例如盘存储1024。盘存储IOM包括但不仅限于,诸如磁盘驱动器、软盘驱动器、 磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒之类的设备。另外, 盘存储IOM还可包括存储介质,分开地或与其他存储介质相结合,包括,但不仅限于,诸如 紧致盘ROM设备之类的光盘驱动器(⑶-ROM)、⑶可记录驱动器(⑶-R驱动器)、⑶可重写 驱动器(⑶-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为便于盘存储设备IOM 连接到系统总线1018,通常使用诸如接口 10 之类的可移动或不可移动接口。可以理解,图10描述了在合适的操作环境1000中在用户和所描述的基本计算机 资源之间的中介的软件。这样的软件包括操作系统1(^8。可以存储在盘存储IOM上的操 作系统10 用于控制和分配计算机系统1012的资源。系统应用程序1030利用由操作系 统10 通过存储在系统存储器1016或者存储在盘存储IOM上的程序模块1034和程序数 据1034对资源的管理。可以理解,所要求保护的主题可以利用各种操作系统或操作系统的 组合来实现。用户通过输入设备1036向计算机1012输入命令或信息。输入设备1036包括,但 不限于,诸如鼠标、跟踪球、指示笔、触摸板之类的指点设备、键盘、麦克风、游戏杆、游戏手 柄、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数字视频摄像机、网络摄像头等等。这 些及其他输入设备通过系统总线1018经由接口端口 1038连接到处理单元1014。接口端口 1038包括,例如,串行端口、并行端口、游戏端口,以及通用串行总线(USB)。输出设备1040 与输入设备1036使用一些相同类型的端口。如此,例如,可以使用USB端口来向计算机1012 提供输入,以及从计算机1012向输出设备1040输出信息。提供了输出适配器1042,以示出 有诸如监视器、扬声器,以及打印机之类的一些输出设备1040,还有需要专用适配器的其他 输出设备1040。输出适配器1042包括,作为例示而不是限制,在输出设备1040和系统总线 1018之间提供连接手段的视频卡和声卡。应该注意,其他设备和/或设备的系统提供输入 和输出两种能力,诸如远程计算机1044。计算机1012可以使用到诸如远程计算机1044之类的一个或多个远程计算机的 逻辑连接来在联网环境中操作。远程计算机1044可以是个人计算机、服务器、路由器、网 络PC、工作站、基于微处理器的电器、对等设备或其他公共网络节点等等,并通常包括上文 参考计算机1012所描述的许多或全部元件。为了简洁起见,与远程计算机1044—起,只示 出了存储器设备1046。远程计算机1044通过网络接口 1048在逻辑上连接到计算机1012, 然后,经由通信连接1050在物理上连接。网络接口 1048包含诸如局域网(LAN)和广域网 (WAN)之类的有线或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式 数据接口(CDDI)、以太网、令牌环网等等。WAN技术包括,但不限于,点对点链路、电路交换 网,如综合业务数字网(ISDN)以及其变体,分组交换网络,以及数字订户线(DSL)。通信连接1050是指用来将网络接口 1048连接到总线1018的硬件/软件。尽管 用于例示起见,通信连接1050被示为在计算机1012内部,但是,它也可以位于计算机1012 外部。连接到网络接口 1048所需的硬件/软件包括,只作示例,内部和外部技术,诸如,调 制解调器,包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器, 以及以太网卡。上文所描述的包括本发明的示例。当然,不可能出于描述所要求保护的主题的目 的而描述组件或方法的每个可能的组合,但是,本领域技术人员可以认识到,本发明的许多进一步的组合和置换都是可能的。因此,所要求保护的主题旨在包含在所附权利要求书的 精神和范围内的所有这样的更改、修改和变化。具体来说,对于由上述组件、设备、电路、系统等等执行的各种功能,除非另外指 明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行 此处在所要求保护的主题的示例性方面所示的功能的所描述的组件的指定功能(例如,功 能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应 认识到,本发明还包括了具有用于执行所要求保护的主题的各种方法的动作和/或事件的 计算机可执行指令的系统以及计算机可读介质。有多种实现本发明的方式,例如,使应用程序和服务能使用本发明的广告技术的 适当API、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等。所要求保 护的主题还从API (或其他软件对象)的观点以及从依照本发明根据广告技术操作的软件 或硬件对象构想用途。如此,此处所描述的本发明的各种实现可以具有完全以硬件,部分以 硬件而部分以软件,以及以软件来实现的方面。如前所述的系统是利用多个组件之间的交互来描述的。可以了解,这样的系统和 组件可以包括这些组件或指定的子组件,某些指定的组件或子组件,和/或附加的组件,以 及根据前述的内容的各种置换和组合。子组件也可以作为可通信地耦合到其他组件的组件 来实现,而不是包括在父组件内(分层的)。另外,应该注意,一个或多个组件也可以合并到 提供聚合功能的单个组件中,或者也可以分成多个分开的子组件,并且可以提供诸如管理 层之类的任一个或更多中间层,以通信地耦合到这样的子组件,以便提供集成的功能。此处 所描述的任何组件也可以与一个或多个此处没有专门描述的但本领域技术人员广泛地知 道的其他组件进行交互。此外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但 这一特征可以如对任何给定或特定应用所需且有利地与其他实现的一个或多个其他特征 相组合。此外,就在具体实施方式
或者权利要求书中使用术语“包括”、“具有”、“包含”或其 变体,以及其他类似的词语而言,这些术语旨在以与术语“包括”相似的方式为包含性的,作 为开放的过渡词,而不会排除任何附加的或其他的元素。
权利要求
1.一种便于增强用于数据操纵的交互式表面技术的系统,包括表面检测组件,所述表面检测组件采用多触摸表面技术来检测表面输入,所述检测到 的表面输入实现与表面上的一部分显示的数据的物理交互(10 ;以及物理学引擎,所述物理学引擎将牛顿物理学的一部分集成到与该部分所显示数据的交 互中,以便建模与该部分所显示数据相关联的至少一个量,所述量是力、质量、速度或摩擦 中的至少一个(104)。
2.如权利要求1所述的系统,其特征在于,还包括呈现该部分所显示数据的显示器。
3.如权利要求2所述的系统,其特征在于,所述显示器是监视器、电视机、液晶显示器 (IXD)、等离子、背投显示器、前投显示器、阴极射线管(CRT)监视器、平板、计算设备的显示 器、便携式数字助理(PDA)屏幕、膝上型显示器、计算机监视器、智能电话显示器、蜂窝式设 备屏幕、移动通信设备显示器、或便携式游戏设备显示器中的至少一个。
4.如权利要求1所述的系统,其特征在于,还包括为所述检测到的表面输入生成代理 对象的代理对象组件,所述表面输入被结合到物理学仿真中。
5.如权利要求4所述的系统,其特征在于,还包括利用多个代理对象建模所述表面输 入的轮廓形状的粒子代理组件,所述多个代理对象的所述轮廓是粒子代理。
6.如权利要求5所述的系统,其特征在于,所述物理学引擎将与牛顿物理学的所述部 分有关的物理学更新用于第一仿真帧和第二仿真帧之间的所述粒子代理。
7.如权利要求6所述的系统,其特征在于,所述物理学引擎使用所述物理学更新来制 定碰撞力或摩擦力中的至少一个。
8.如权利要求6所述的系统,其特征在于,所述物理学引擎使用所述物理学更新来制 定以下两项中的至少一个收集两个或更多对象、或者堆积两个或更多对象。
9.如权利要求6所述的系统,其特征在于,所述物理学引擎实现对软体仿真、布体仿 真,或流体仿真中的至少一个的支持。
10.如权利要求1所述的系统,其特征在于,所述物理学引擎施加与施加于对象的代理 的数量成比例的一定量的摩擦力,所述摩擦力与触摸的表面积相关。
11.如权利要求1所述的系统,其特征在于,还包括流组件,所述流组件通过跟踪第一 帧和第二帧之间的运动来计算粒子代理的运动,所述粒子代理的所述运动独立于所跟踪的 接触信息。
12.如权利要求11所述的系统,其特征在于,所述流组件使用与光流有关的块匹配来 计算速度。
13.如权利要求12所述的系统,其特征在于,流组件通过比较每一个连续的边缘图像 来计算与所述粒子代理有关的点的表面运动。
14.如权利要求12所述的系统,其特征在于,所述流组件通过对图像点进行光线投射 并将图像点投射到由3D点和对象法线所形成的切面上来计算切向运动。
15.如权利要求1所述的系统,其特征在于,还包括操纵器,所述操纵器提供操纵保真 度、收集、对3维(3D)对象的操纵,或刚性仿真中的至少一个。
16.一种结合表面计算来促进仿真物理学的计算机实现的方法,包括检测表面输入(702,802);为所述表面输入生成代理对象(704,804);标识所述表面输入的轮廓(706,804);利用两个或更多代理粒子对象来动态地建模所述代理对象的所述轮廓(706,804);以及在表面输入检测的第一帧和第二帧之间对于每一个代理粒子对象使用力、速度或摩擦 中的至少一个(708,806)。
17.如权利要求16所述的方法,其特征在于,还包括提供软体仿真、布体仿真,或流体 仿真中的至少一个。
18.如权利要求16所述的方法,还包括施加与施加于对象的代理的数量成比例的一定量的摩擦力,所述摩擦力与触摸的表面 积相关;以及感测被转换成所述数量个代理上的力的表面类压力。
19.如权利要求16所述的方法,其特征在于,还包括通过跟踪第一帧和第二帧之间的 运动来计算粒子代理的运动,所述粒子代理的所述运动独立于所跟踪的接触信息。
20.一种便于增强用于数据操纵的交互式表面技术的计算机实现系统,包括用于实现多触摸表面技术来检测表面输入的装置,所述检测到的表面输入实现与表面 上的一部分所显示数据的物理交互(102,702,80 ;以及用于将牛顿物理学的一部分整合到与该部分所显示数据的交互中以便建模与该部分 所显示数据相关的至少一个量的装置,所述量是力、质量、速度或摩擦中的至少一个(104, 708,806);用于为所述检测到的表面输入生成代理对象的装置,所述表面输入被结合到物理学仿 真中(104,402,704,804);用于利用多个代理对象建模所述表面输入的轮廓形状的装置,所述多个代理对象的所 述轮廓是粒子代理(104,404,706,804);以及用于将与牛顿物理学的所述部分有关的物理学更新用于第一仿真帧和第二仿真帧之 间的所述粒子代理的装置(104,402,404,708,806)。
全文摘要
所要求保护的主题提供便于增强用于数据操纵的交互式表面技术的系统和/或方法。表面检测组件可以使用多接触表面技术来检测表面输入,其中检测到的表面输入实现与表示物质对象的一部分所显示数据的物理交互。物理学引擎可以将牛顿物理学的一部分整合到与该部分所显示数据的交互中,以便建模与物质对象相关联的至少一个量,该量是力、质量、速度或摩擦中的至少一个。
文档编号G06F15/16GK102132253SQ200980133840
公开日2011年7月20日 申请日期2009年5月22日 优先权日2008年6月24日
发明者A·D·威尔逊, A·加西亚-门多萨, D·柯克, O·希尔戈斯, S·伊扎迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1