两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

文檔序號:6594601閱讀:234來源:國知局
專利名稱:用于表面計算的基于物理學仿真的交互的制作方法
用于表面計算的基于物理學仿真的交互背景計算設備的技術能力越來越高,其中,這樣的設備可以在有限的設備空間內提供 多種功能。計算設備可以是,但不限于,移動通信設備、臺式計算機、膝上型計算機、蜂窩電 話、PDA、尋呼機、平板計算機、信使設備、手持式設備、袖珍翻譯器、條形碼掃描儀、智能電 話、掃描儀、便攜式手持式掃描儀,以及可以進行數(shù)據交互的任何其他計算設備。雖然對于 用戶而言,每一個設備都使用特定功能,但是設備已經被開發(fā)為允許重疊功能,以便吸引消 費者的需要。換言之,計算設備已經結合了多個特征和/或應用程序,使得設備侵占了彼此 的功能。例如,蜂窩電話可以提供蜂窩式服務、電話簿、日歷、游戲、語音郵件、尋呼、web瀏 覽、視頻捕捉、圖像捕捉、聲音便箋、語音識別、高端移動電話(例如,智能電話在特征和功 能方面變得越來越類似于便攜式計算機/膝上型計算機)等等。結果,個人計算設備已包括了用于輸入信息的各種技術和/或方法。個人計算 設備便于使用諸如,但不限于,鍵盤、小鍵盤、觸摸板、觸摸屏、揚聲器、指示筆(例如,識別 筆)、書寫板等等之類的設備來輸入信息。然而,諸如小鍵盤、揚聲器和書寫板之類的輸入設 備產生其中每一個用戶可以不類似地利用數(shù)據輸入技術(例如,聲音,和/或寫入)的用戶 個性化缺陷。例如,在美國使用書寫識別的消費者可以用英語書寫,可是具有相異和/或不 同的字母變體。在各種輸入技術和/或方法中,表面計算可使得用戶能夠利用物理接觸或交互來 操縱數(shù)據。例如,對象可以被顯示,且表面計算或表面技術可以允許用戶利用他的或她的手 來移動、編輯對象或與對象進行交互。然而,由于數(shù)據交互的量和能力隨著表面計算或表面 技術而增長,因此用戶通常偏好與基本上類似于現(xiàn)實世界中的數(shù)據的數(shù)據的交互。概述下面呈現(xiàn)了本發(fā)明的摘要,以便提供此處所描述的某些方面的基本概念。此小結 不是所要求保護的主題的詳盡的概述。既不旨在標識所要求保護的主題的關鍵或重要元 素,也不旨在描繪本發(fā)明的范圍。唯一的目的是以簡化形式呈現(xiàn)所要求保護的主題的某些 概念,作為稍后呈現(xiàn)的比較詳細的描述的前序。本發(fā)明涉及便于將物理學結合到表面計算和數(shù)據交互中的系統(tǒng)和/或方法。表面 檢測組件可以動態(tài)地檢測表面輸入,并利用物理學引擎將物理學仿真結合到這樣的表面輸 入中。一般而言,可以使用表面輸入以便與所顯示數(shù)據進行交互,其中物理學引擎可以對于 諸如質量、速度和/或摩擦等應用物理學仿真建模。具體而言,物理學引擎可以為檢測到的 表面輸入的輪廓生成多個代理對象。物理學引擎還可以在第一幀和第二幀之間應用物理學 仿真更新,以便提供與所顯示數(shù)據的交互。根據本發(fā)明的另一方面,流組件可以提供用于表面輸入的運動計算,以便提供運 動跟蹤。此外,操縱器還可以提供操縱保真度(例如,碰撞力的影響、以靜摩擦和動摩擦對 抗手輪廓和手指提供高保真度等等),收集(例如,實現(xiàn)每次操縱一個以上的對象等等),操 縱3D對象,提供布和軟體(例如,提供非剛性對象,軟體仿真,布仿真,流體仿真等等)。在 所要求保護的主題的其他方面,提供了促進向物質對象的數(shù)據表示和表面輸入之間的交互施加物理量的方法。下面的描述和附圖詳細地闡述了所要求保護的主題的某些說明性方面。然而,這 些方面只是表示可以使用本發(fā)明的原理的各種方式中的一些方式,并且所要求保護的主題 旨在包括所有這些方面和等效內容。通過與附圖一起閱讀下面的本發(fā)明的詳細描述,所要 求保護的主題的其他優(yōu)點和新穎的特點將變得顯而易見。附圖簡述

圖1示出了便于將物理學結合到表面計算和數(shù)據交互中的示例性系統(tǒng)的框圖。圖2示出了便于將物理量應用到物質對象的數(shù)據表示和表面輸入之間的交互的 示例性系統(tǒng)的框圖。圖3示出了便于為操縱一部分所顯示數(shù)據的用戶提供增強的表面計算的示例性 系統(tǒng)的框圖。圖4示出了便于利用與表面計算相關聯(lián)的數(shù)據交互復制牛頓物理學的示例性系 統(tǒng)的框圖。圖5示出了便于允許表面技術的操縱樣式的示例性系統(tǒng)的框圖。圖6示出了便于將物理學結合到表面計算和數(shù)據交互中的示例性系統(tǒng)的框圖。圖7示出了用于將物理量應用到物質對象的數(shù)據表示和表面輸入之間的交互的 示例性方法。圖8示出了便于利用與表面計算相關聯(lián)的數(shù)據交互復制牛頓物理學的示例性方 法。圖9示出了其中可以使用所要求保護的主題的新穎方面的示例性網絡環(huán)境。圖10示出了根據所要求保護的主題可以使用的示例性操作環(huán)境。詳細描述現(xiàn)在參考附圖來描述所要求保護的主題,在所有附圖中通篇使用相同的附圖標記 來指代相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細節(jié)以提供對本發(fā)明的全 面理解。然而,很明顯,所要求保護的主題可以在沒有這些具體細節(jié)的情況下實施。在其他 情況下,以框圖形式示出了各個已知的結構和設備以便于描述本發(fā)明。如此處所使用的,術語“組件”、“系統(tǒng)”、“數(shù)據存儲”、“引擎”、“操縱器”等等旨在是 指與計算機有關的實體,無論是硬件、軟件(例如,運行中的軟件)和/或固件。例如,組件 可以是,在處理器上運行的進程、處理器、對象、可執(zhí)行件、程序、函數(shù)、庫、子例程,和/或計 算機或者軟件和硬件的組合。作為說明,在服務器上運行的應用程序和服務器兩者都可以 是組件。一個或多個組件可以駐留在進程中,且組件可以位于一個計算機上和/或分布在 兩個或更多計算機之間。此外,所要求保護的主題可以使用產生控制計算機以實現(xiàn)所公開的主題的軟件、 固件、硬件或其任意組合的標準編程和/或工程技術而被實現(xiàn)為方法、裝置或制品。如這里 所使用的術語“制品”旨在包含可以從任何計算機可讀的設備、載體或介質進行訪問的計算 機程序。例如,計算機可讀介質可以包括,但不僅限于,磁存儲設備(例如,硬盤、軟盤、磁 條…)、光盤(例如,緊致盤(CD)、數(shù)字多功能盤(DVD)…)、智能卡,以及閃存設備(例如, 卡、棒、鍵驅動器…)。另外,應該理解,可以使用載波攜帶計算機可讀電子數(shù)據,如那些在傳 輸和接收電子郵件或在訪問諸如因特網或局域網(LAN)之類的網絡時所使用的。當然,本領域的技術人員將會認識到,在不背離所要求保護的主題的范圍或精神的情況下可以對這 一配置進行許多修改。此外,在此使用詞語“示例性”意指用作示例、實例或說明。此處作 為“示例性的”所描述的任何方面或設計不一定被理解為優(yōu)于或勝于其他方面或設計?,F(xiàn)在轉向附圖,圖1示出了便于將物理學結合到表面計算和數(shù)據交互中的系統(tǒng) 100的框圖。系統(tǒng)100可包括表面檢測組件102,該表面檢測組件102可以經由界面組件 106檢測表面輸入,以便允許與一部分數(shù)據進行交互。系統(tǒng)還可以包括物理學引擎104,該 物理學引擎104可以對于至少一個量應用基于物理學的仿真,其中該量是力、質量、速度或 摩擦這幾項中的至少一個。換言之,物理學引擎104可結合數(shù)據交互和/或與一部分所顯 示數(shù)據有關的表面輸入一起提供現(xiàn)實的物理學仿真。例如,可以顯示一部分數(shù)據,其中,用戶可以與其進行交互。具體而言,用戶可以提 供表面輸入(例如,觸摸事件、手姿勢等等),以便操縱該部分所顯示數(shù)據。例如,可以顯示 諸如立方體之類的物質對象,其中用戶可以使用通過表面計算檢測到的表面輸入,以便操 縱(例如,移動、刪除、收縮、放大、旋轉等等)立方體。所要求保護的主題可以允許這樣的 操縱具有與力、質量、速度、摩擦等等相關聯(lián)的現(xiàn)實世界的物理特征。在另一示例中,可以用圖形方式表示和顯示螺栓和螺母,其中用戶可以抓取此類 用圖形方式顯示的對象中的任一個并與之進行交互。根據所要求保護的主題,物理學引擎 104可以向對象和/或與這樣的對象的交互提供物理量(例如,力、轉矩、重力、質量、速度等 等)。如此,用戶可以抓取螺母,并嘗試利用相關聯(lián)的現(xiàn)實世界的物理量將這樣的螺母擰到 螺栓上。可以使用系統(tǒng)100,以便捕捉與一部分所顯示數(shù)據有關的觸摸事件、表面輸入,和 /或表面接觸??梢岳斫?,這樣的捕捉到或檢測到的事件、輸入或接觸可以是姿勢、手的運 動、手的交互、對象交互,和/或與表示物質對象的一部分數(shù)據的任何其他交互。例如,可以 將手的交互轉換成顯示器上相對應的數(shù)據交互。具體而言,用戶可以物理地操縱一部分所 顯示數(shù)據,其中,可以檢測和轉換這樣的手姿勢以便進行數(shù)據交互。如此,觸摸事件檢測可 以由表面檢測組件102來實現(xiàn)。可以理解,觸摸事件可以是任何物理交互,一部分所顯示數(shù) 據,檢測到的表面輸入,和/或其任何合適的組合。另外,系統(tǒng)100可包括任何合適的和/或所需的接口組件106(此處稱為“接口 106”),該組件提供各種適配器、連接器、信道、通信路徑等等,以將表面檢測組件102和/或 物理學引擎104集成到幾乎任何操作系統(tǒng)和/或數(shù)據庫系統(tǒng)和/或彼此集成。另外,接口 106可以提供各種適配器、連接器、信道、通信路徑等等,用于與表面檢測組件102、物理學 引擎104、表面輸入,以及與系統(tǒng)100相關聯(lián)的任何其他設備和/或組件進行交互。圖2示出了便于將物理量應用到物質對象的數(shù)據表示與表面輸入之間的交互的 系統(tǒng)200。系統(tǒng)200還可以包括數(shù)據存儲204,該數(shù)據存儲204可包括與表面檢測組件102、 物理學引擎104、表面輸入等等有關的任何合適的數(shù)據。例如,數(shù)據存儲204可包括,但不 僅限于,包括,物理量、物理特征、物理屬性、物理方程、用戶偏好、用戶口令、用戶名、映射、 圖像處理數(shù)據、圖像處理技術、二進制數(shù)據、物理數(shù)據、代理對象數(shù)據、粒子代理(particle proxy)數(shù)據、流數(shù)據、操縱數(shù)據等等。可以理解,數(shù)據存儲204可以是,例如,易失性存儲器或非易失性存儲器,或者可 包括易失性和非易失性存儲器兩者。作為說明,而不是限制,非易失性存儲器可包括只讀存儲器(ROM)、可編程序ROM(PROM)、電可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)或 閃存。易失性存儲器可包括充當外部高速緩沖存儲器的隨機存取存儲器(RAM)。作為說明 而不是限制,RAM可以有許多形式,如靜態(tài)RAM(SRAM)、動態(tài)RAM(DRAM)、同步DRAM (SDRAM)、 雙倍數(shù)據速率 SDRAM (DDR SDRAM)、增強型 SDRAM (ESDRAM)、同步鏈路(Synchlink) DRAM (SLDRAM)、直接存儲器總線(Rambus) RAM (RDRAM),直接存儲器總線動態(tài)RAM (DRDRAM), 以及存儲器總線動態(tài)RAM (RDRAM)。本系統(tǒng)和方法的數(shù)據存儲204旨在包括,而不僅限于,這 些以及任何其他合適類型的存儲器。另外,還可以理解,數(shù)據存儲204可以是服務器、數(shù)據 庫、硬盤驅動器、筆式驅動器、外部硬盤驅動器、便攜式硬盤驅動器等等。圖3示出了便于為操縱一部分所顯示數(shù)據的用戶提供增強的表面計算的系統(tǒng) 300。系統(tǒng)300可包括圖像處理組件302,該圖像處理組件302可以利用任何合適的圖像處 理技術以便使從用戶306收集到的表面輸入與顯示器304上的投影圖像對準。例如,可以檢 測表面輸入,并可以計算顯示器304上的投影圖像中的對應點。在另一示例中,可以將用戶 的手或手指置于可以對其執(zhí)行與所顯示數(shù)據的交互的表面上。在此示例中,手指或手可以 操縱該部分所顯示數(shù)據,其中,這樣的數(shù)據可以以物理準確的結果(例如,力、質量、速度、 摩擦等等)作出響應。例如,圖像處理組件302可以使用二進制化、圖像分析、所捕捉圖像 的分析等等。此外,還可以理解,顯示器304可以是任何合適的顯示組件,諸如但不限于,監(jiān) 視器、電視機、液晶顯示器(LCD)、等離子、背投顯示器、前投顯示器、陰極射線管(CRT)監(jiān)視 器、平板顯示器、計算設備的顯示器、便攜式數(shù)字助理(PDA)屏幕、膝上型顯示器、計算機監(jiān) 視器、智能電話顯示器、蜂窩設備屏幕、移動通信設備顯示器、便攜式游戲設備顯示器等等。圖4示出了便于利用與表面計算相關聯(lián)的數(shù)據交互來復制牛頓物理學的系統(tǒng) 400。系統(tǒng)400可包括代理對象組件402,該代理對象組件402可以通過為檢測到的每一個 表面輸入創(chuàng)建代理對象來將表面輸入結合到物理學仿真中。系統(tǒng)400還可以包括粒子代理 組件404,該粒子代理組件404利用沿著表面輸入的輪廓放置的多個代理對象建模表面輸 入的形狀,代理對象的輪廓是特定代理。系統(tǒng)400還可以包括流組件406,該流組件406可 以通過跟蹤第一幀和第二幀之間的運動來計算粒子代理的運動。本發(fā)明可以探索新興的表面技術之間的交叉,能夠感測多個接觸,以及甚至形狀 信息及高級游戲物理學引擎。定義了用于將從這樣的表面感測到的數(shù)據建模為物理學仿真 內的輸入的強大而新穎的技術。這給用戶提供了以類似于操縱真實物體的方式來與數(shù)字對 象進行交互的能力。本發(fā)明可以提供能夠建模多個觸點和諸如整只手或其他物理對象之類 的更加復雜的形狀信息,并能夠將此用戶輸入映射到物理學世界內的摩擦力和碰撞力。這 允許各種細粒度和不經意的交互,支持基于手指的,整只手的,以及有形的輸入。該技術可 以被用來向交互式表面(例如,基于視覺的桌面等等)添加真實世界動態(tài)學,從而創(chuàng)建流暢 且自然的體驗。此方法可以使應用程序開發(fā)人員不會感覺到使用物理學引擎所固有的許多 復雜性,從而使得能在無需預編程交互行為或姿勢識別的情況下創(chuàng)建應用程序。新興的交互式表面技術的其中一個吸引力是,它們可允許人們通過直接觸摸和操 縱屏幕上的內容來與數(shù)字對象進行交互。使用這樣的系統(tǒng)的人常常評論,這種用于伸展和 觸摸數(shù)字內容的能力向交互添加了物理或有形性質,從而使虛擬感覺起來更加真實。許多 基于交互式表面的應用程序嘗試通過仔細地設計展現(xiàn)真實世界的行為的感覺的界面對象 來進一步強調此偽物理性。一個這樣的示例是在桌面應用程序中發(fā)現(xiàn)的旋轉和平移行為,其中,交互類似于利用一根或多根手指在平坦表面上移動真實的一張紙。雖然這樣的交互 的響應可能感覺起來逼真,但是,此行為是預編程的。例如,數(shù)字照片如何旋轉或平移是通 過現(xiàn)有的交互邏輯來預定義的。如此,這樣的技術具有固有的以腳本編寫的特性,一旦用戶 以開發(fā)人員料想不到的方式與系統(tǒng)進行交互,這種特性就會毀壞。本發(fā)明提供了用于在新興的表面技術(例如,能夠感應多個觸摸點和/或更加復 雜的形狀信息的系統(tǒng))上支持偽物理交互的不同的方法。具體而言,可以使用計算機游戲 中所使用的模仿牛頓物理學的物理學引擎,如此,通過建模諸如但不僅限于,力、質量、速 度、摩擦、轉矩之類的量,和/或任何其他合適的物理量或度量來與數(shù)字對象進行交互。這 樣的引擎可允許用戶通過與現(xiàn)實世界中的交互更相似的更豐富的參數(shù)集來控制和操縱數(shù) 字對象。盡管物理學引擎是全面的,但是,這樣的引擎卻難以掌握。可以向應用程序開發(fā) 人員展示許多系數(shù)和參數(shù),并且建模用戶輸入是不平凡的,特別是對于超出單個觸點的數(shù) 據。本發(fā)明可以提供用于建模從表面技術感測到的豐富數(shù)據作為物理學仿真內的輸入的強 有力技術。所要求保護的主題可以建模一個或多個觸點,諸如從多觸摸表面感測到的那些 觸點,并且還可以擴展以表示諸如整只手或表面附近的有形對象的略圖之類的更復雜的形 狀。這可以允許用戶通過施加諸如摩擦和碰撞之類的力來與對象進行交互并控制對象,但 是避免了使用戶和應用程序設計員面臨物理學引擎(例如,物理學引擎104)的復雜性。通過將此技術與游戲物理學引擎以及基于視覺的交互式表面組合起來,可以將真 實世界的動態(tài)學添加到數(shù)字應用程序中。所要求保護的主題可以創(chuàng)建自然并流暢的基于物 理學的交互,無需顯式地將此行為編程到系統(tǒng)中或者識別手勢。進一步提供了高級物理學 仿真器用以允許用戶與諸如軟體和布之類的更復雜材料進行交互的能力。本發(fā)明進一步探索了在開發(fā)這樣的上面所討論的技術試驗的替換的方法的折衷。 所要求保護的主題可以允許實踐者理解每一種方法的細微差別,以便他們還可以進一步探 索表面和物理學之間的交叉點。此外,還探索了在實踐中使用這樣的技術的早期經驗。交互式表面技術可以有廣泛的不同??梢匝菔倦娮栊缘暮碗娙菪詥斡|摸和多觸摸 系統(tǒng),以及能夠對指尖和諸如整只手或其他物理對象之類的更加復雜的形狀信息進行成像 的計算機視覺系統(tǒng)。本發(fā)明可以支持這樣的廣泛的表面輸入,而不是開發(fā)為一種技術度身 定制的技術。交互式表面上的接觸信息(例如,指尖觸摸表面)可以被表示為離散的2D點。即 使有關于接觸的形狀的更多信息可用,也可以將相鄰的傳感器像素分組到相鄰的區(qū)域或連 接的組件中。在很多情況下,每一個不同的接觸都可以通向一個組件,該組件又通向單個2D 點——該特定組件的計算出的質心。如此,此方法將每一個接觸聚焦到基于點的表示,而不 管其形狀如何。由如此多的表面技術所使用的基于單點和多點的輸入模型可以得到支持。然而, 如果有所需的數(shù)據可用,則支持更復雜的形狀表示有多個優(yōu)點。可以更廣泛地定義觸點 (其已經變成與2D觸摸點同義),以便不僅定義指尖,而且還定義的其他接觸形狀,諸如手 掌,或者甚至有形對象。用于計算關于接觸形狀的更多數(shù)據的一個更高保真度方法可以是確定每一個組 件中的像素的長軸和短軸,以便獲取大致匹配形狀的橢圓模型。這對于橢圓形狀的接觸(例如,指尖)好使,但是,對于復雜形狀,不太有效。替換地,可以通過計算被表示為閉合回 路的每一個接觸的輪廓來將形狀更準確地表示為多邊形網格。另一種技術是通過使用過濾 器(例如,索貝爾(Sobel)等等)來計算空間梯度來獲得位于輪廓附近的像素。這樣的方法使得用戶輸入的更復雜表示得到支持。這種帶有高級物理學仿真的輸 入的寬闊的保真度可以允許藉由其可以操縱數(shù)字對象的詞匯表的擴展。例如,所要求保護 的主題可以使用豐富且各式各樣的交互技術和策略來在更少腳本的情況下作出對數(shù)字對 象的操縱。物理學引擎104可以允許在圖形應用程序中創(chuàng)建真實世界的機制和行為,同時隱 藏計算復雜度。物理學引擎104可以使用許多物理學概念諸如,但不僅限于,加速度、動量、 力、摩擦、扭矩、碰撞等等。除剛體之外,許多系統(tǒng)建模粒子(例如,對于煙、灰塵等等)、流 體、毛發(fā)、衣服等等。虛擬接頭和彈簧可以給布洋娃娃角色和車輛提供適當?shù)撵`活性和阻 力,并且材料可被編程為具有特定屬性——以便例如使得冰是光滑的。所要求保護的主題 可以涉及諸如由于所仿真的物體之間的碰撞和摩擦而產生的接觸力之類的接觸力。對碰撞的處理可以被分成碰撞檢測、確定剛體是否接觸,以及碰撞響應——如果 它們接觸,則施加適當?shù)牧?。例如,可以通過考慮定義立方體的面與地板的面的交叉來檢測 落在地板上的立方體的碰撞。作為結果(例如,響應),立方體的運動中的變化是質量、慣 性、速度,以及與地板接觸的點等等因素的函數(shù)。摩擦力可以描述當一個主體與另一個主體的表面保持接觸時阻礙運動的力。如果 兩個表面相對于彼此移動,則動摩擦可以對抗使主體移動的力。如果兩個表面相對于彼此 靜止,則靜摩擦可以對抗否則將導致其中一個對象運動的力。為了與物理學引擎104中的虛擬對象進行交互,可以在仿真內表示表面接觸。這 樣的引擎可以具有巨大的潛力和靈活性。因此,對于在物理學世界建模表面輸入,有許多策 略。例如,有下面的策略(1)直接力-觸點可以被表示成力,而沒有在對象上的特定點處 應用的幾何或視覺表示??梢愿鶕佑|的速度和大小(如果可用的話)計算出力方向和大 小。( 虛擬接頭和彈簧-每一個接觸都可以連接到虛擬對象,以使得只要它位于表面上, 對象就跟隨觸點。( 代理對象-可以通過諸如立方體或球體之類的實心幾何對象來表示 觸點。這些對象是觸摸表面的觸點的近似,并通過碰撞和摩擦力拉起與其他虛擬對象進行 交互。⑷粒子-在關于接觸的形狀的附加信息可用的情況下,可以將多個實心對象或粒子 結合起來,以更嚴密地近似接觸的形狀和運動。這可以允許建模與整只手或諸如有形對象 之類的其他換能器的交互。( 可變形的2D/3D網格-用于建模更復雜的形狀的另一種方 法是基于傳感器數(shù)據中的特征來構建2D或者甚至3D網格(如果有數(shù)據可用的話)。乍一看,似乎手的可變形3D網格可以實現(xiàn)最高保真度。但是,利用此方法存在多 個難點。首先,交互式表面在表面上或表面附近提供感測,并非完全3D形狀。類似地,由于 被操縱的對象存在于(例如,平坦的)投影表面上,因此,手的3D形狀,如果被捕捉,將不會 符合對象,從而不會反映抓握真實物體的真實手的形狀。最后,構建這樣的動畫化網格是困 難的,要求對3D對象的特征和精確變形進行穩(wěn)健跟蹤。本發(fā)明可以提供與查找在這些高級物理學仿真內仿真表面輸入的技術相關聯(lián)的 解決方案。所要求保護的主題可以涉及保持基于網格的表示的優(yōu)點——特別是交互的高保 真度——但是對于應用程序設計員而言相當容易實現(xiàn)的新穎的代理/粒子技術。
在物理學仿真內,應用程序可以通過直接施加一個或多個力來控制剛體的移動。 例如,游戲中的宇宙飛船可以在其機身的任一側具有助推器??梢酝ㄟ^在兩個助推器的位 置施加前向力來將飛船向前推。如果在相反的方向上施加其中一個力,則飛船將轉動。旋 轉是扭矩的副產物,其在偏離(質量)中心地施加力時發(fā)生,因為機身的不同的部分以不同 的速度移動。從程序員的觀點來看,此方法不同于通過設置飛船的絕對位置來移動飛船??梢?計算將對象移到其目標位置所需的準確的力和扭矩,這是被稱為“動力學控制”的概念。這 種定位對象的方法可以確保與仿真中的其他主體的正確的碰撞響應。比較起來,在仿真內 直接設置主體的位置會導致不穩(wěn)定且不可預測的結果。在某些方面,絕對定位將類似于將 真實物體從一個位置運輸?shù)搅硪粋€位置。在對象部分地被嵌入在彼此中的情況下,會出現(xiàn) 諸如相互滲透的問題。因此,用于在交互式表面上移動對象的策略是考慮到觸摸剛體的每一個接觸都根 據接觸的運動(以及推測的質量),向主體提供摩擦力??梢韵蛑黧w施加這多個摩擦力,如 在上文所討論的宇宙飛船的示例中那樣。此方法所存在的問題在于,為計算匹配接觸的移 動所需的力,作用于主體的所有其他外力可被計及和抵消。這些可包括對于應用程序開發(fā) 人員而言難以或不可能獲取的摩擦力和碰撞響應。這一難點延伸到考慮與表面接觸相對應的力。在多個接觸的情況下,可以(例如, 同時地)確定與每一個接觸相對應的正確的摩擦力??紤]接觸中的一個或多個表現(xiàn)出靜摩 擦的情況?;叵胍幌拢o摩擦施加一個力,該力抵消否則將導致主體運動的力。例如,一個 接觸固定住一個對象,以使得它將由于另一個接觸的運動而旋轉,由于其中一個接觸的正 確的摩擦力的施加會要求知道由于另一個接觸而導致的摩擦力。事實上,物理學引擎104的核心是解決此問題的復雜的約束解算機。在沒有在物 理學引擎內基本構建新解算機的情況下,或者在沒有對現(xiàn)有的解算機的內部構件進行訪問 的情況下,似乎不可能直接正確地施加接觸力。即使可以改變解算機或嵌入另一個,但是這 樣的方法將違反所要求保護的主題的精神,其中,利用現(xiàn)有的完全物理學引擎,而不是從頭 開始構建。最初,似乎解決方案是作為動力學來處理摩擦的。但是,這在進行固定的示例中也 造成問題。由于動摩擦力只在存在相對運動的情況下才起作用,因此,使對象的被固定部分 靜止的反作用力會首先移動。如此,當移動對象時,此方法會導致有點粘滯并且稍微不可預 測的感覺。另一種動力學方法是使用接頭來連接虛擬對象和輸入接觸。將此視為具有在特定 錨點綁定到對象的預定義的長度的不可見繩的段。然后,使用此繩索拉對象。彈簧添加彈 性,從而允許連接伸展和回彈。通過連接偏離中心的接頭,對象會遭受到力和扭矩——使用單一連接即可使對象 移動和旋轉。在前面的示例中,附接到第一觸點的一個接頭和對象的一個角可以充當樞軸 點。將另一個接頭附連到描述角運動的對角和觸點將導致對象圍繞第一觸點旋轉。此方法可能不適用于多個同時的觸點,特別是在相反的方向拉的觸點。在真實世 界中,甚至最剛硬的材料也會通過它們的原子結構的變形來吸收從相反的力產生的能量。 這在所有計算都可以使用建模質量的影響的質心和慣性張量來執(zhí)行的物理學仿真中是不可能的。實際主體及其體積用于碰撞檢測和呈現(xiàn),并且不可以基于動態(tài)學計算來操縱。如 此,通常將使剛性對象變形或將其撕碎的一組力會導致不穩(wěn)定系統(tǒng)——通常導致對象快速 地振蕩,并表現(xiàn)得無法預測。彈簧可以通過在連接中提供更大的柔性來部分地減輕這些問題中的某些。然而, 彈簧的彈性和接觸所連接對象的響應性如何之間存在折衷(例如,彈簧應該相當短和剛 硬,以允許更快的響應)。另一種方法是允許接頭或彈簧在這些情況下斷開,但是,這會容易 導致對象將飛到用戶的范圍之外的情形。可以在啟用單點物理學的應用程序中使用上文所描述的兩種技術,其中,就建模 多個接觸討論了這樣的限制。首先,接觸可能不是離散的2D點,并可能需要接近地匹配接觸輸入的形狀。不清 楚如何利用這些方法中的任何一種來建模更復雜的形狀和輪廓。其次,上面的對象操縱技 術解決了用戶直接觸摸對象從而通過摩擦力移動對象的情況。這些方法中沒有哪一個是通 過碰撞力(例如,從施加于對象的側面的接觸力)來解決對象的移動的。所要求保護的主題提供解決框架中的摩擦力和碰撞力并可以輕松地被擴展以處 理任意輪廓的形狀的技術。這樣,它解決了以前的技術的許多難題。系統(tǒng)400可包括可以生成根據本發(fā)明的代理對象的代理對象組件402。代理對 象的用于將表面輸入結合到物理學仿真中的方法是在仿真中引入剛體,每一個表面接觸一 個??梢栽趧恿W方面控制這些體,以匹配表面接觸的位置,并且可以通過碰撞或者摩擦來 與場景中的其他剛體進行交互。這樣的代理對象可以被視為物理學仿真內的觸點的化身 (incarnation)0此代理方法可以帶有各種好處,諸如對程序員隱藏了力計算的復雜性(事實上, 隱藏大多數(shù)物理學方面),而同時避開了以前所描述的方法的難題。它利用碰撞以及摩擦力 (例如,靜摩擦的、動摩擦的等等)來建模豐富的交互,諸如,但不僅限于,推、抓取、夾緊、拖 曳等等。代理對象可以通過由物理學引擎104所提供的技術來與仿真中的其他對象進行交 互。此外,此方法可以避免對解算機上的不必要的應變(例如,插入極端的力值)以及所產 生的不穩(wěn)定的仿真狀態(tài)。為每一個觸點創(chuàng)建和定位代理對象。諸如立方體或球體之類的單一形狀原語可以 用于每一個接觸。當一個接觸最初出現(xiàn)時,執(zhí)行光線投射計算,以確定代理的位置和高度, 以便它觸摸底層對象。在另一示例中,可以使用球體或立方體來作為代理形狀,以創(chuàng)建從平 面附近的3D攝像機伸展到所觸摸對象的表面的細膠囊,箱子,或柱體。這種代理可以不僅 與同所觸摸對象(例如,地板,等等)位于同一個平面上的對象碰撞,而且還與位于半空中 的或堆放在其他對象(例如,其他平面)上的對象等等發(fā)生碰撞。這樣的行為可以更緊密 地對應于用戶所預期的東西。隨著感測系統(tǒng)(例如,表面檢測組件10 向接觸位置提供更新,可以在動力學上 控制對應的代理對象,以匹配已更新的位置。這是通過施加必要的力以將代理對象(具有 已知質量)帶到準確的位置來執(zhí)行的。此方案可以允許用戶利用碰撞力來將對象推來推去 或通過從兩個相對的側觸摸對象來抓取對象。動力學控制中的細微變化可以允許代理對象在其落在另一剛體上時施加摩擦力 (如,例如,當用戶觸摸虛擬對象的頂表面時)。具體而言,可以施加與所觸摸對象相切的力,以匹配接觸位置。如同動態(tài)主體那樣,可以包括重力作為外力。在重力被定向到桌子上 的情況下,代理如此向其他對象施加向下的力,并導致摩擦力。這種對于對象的混合型動力 學-動態(tài)學控制可以通過向代理剛體直接施加力或通過對該主體的運動施加的棱柱接頭 約束來實現(xiàn)??梢酝ㄟ^改變代理對象的質量來調整手指在對象上的模仿的重量,同時可以 通過改變靜摩擦和動摩擦系數(shù)來調整虛擬對象的材料特性。代理-對象技術的一個優(yōu)點是,它利用物理學引擎104的內置功能來模擬摩擦和 碰撞接觸力。此外,由于對接觸力的計算可以通過內置物理學引擎解算機(例如,物理學引 擎104)來處理,因此,可以處理由于多個代理對象所造成的同時的靜摩擦力和動摩擦力的 組合影響。這些摩擦力可以使用戶能夠平移和旋轉直接觸摸的對象(通過相反的力方向)。系統(tǒng)400還可以包括粒子代理組件404。每一個觸摸點都可以被近似為單個代理 對象。這可以允許快速實現(xiàn),并有助于提供只報告接觸位置而不報告形狀信息的感測系統(tǒng), 以及適用于支持與食指指尖或指示筆筆尖的交互的應用程序。某些交互式表面可以提供形狀信息,如有朝向的橢圓,邊界框或完整的多邊形輪 廓。粒子代理的思想是通過沿著檢測到的接觸的輪廓放置的多個代理對象(例如,粒子) 來建模接觸形狀。粒子可以隨著輪廓改變大小和形狀而添加和刪除。示例實現(xiàn)可以涉及在 每一個仿真幀的開始處為輪廓創(chuàng)建新的一組代理對象,并且在已更新物理學仿真之后銷毀 所有代理對象。盡管在物理學更新之后可以銷毀代理,但是,在更新期間每一個代理都可以 施加碰撞和摩擦力。粒子代理方法的優(yōu)點是雙重的。首先,碰撞看起來更正確,因為它們緊密地跟隨接 觸的形狀。這在使用手的手掌或側面、有形對象,或除指尖以外的一般接觸時,特別重要。此 外,可以準確地建模一個對象頂部的摩擦力的分布和大小。例如,手掌可以比手指的指尖施 加更大的摩擦力,因為更多粒子被指派給它。同樣,單個接觸在一個位置轉動可以施加摩擦 力以旋轉對象。與單代理模型不同,可以分開放置每一個粒子(例如,光線投射),以使得接 觸可以符合形狀不規(guī)則的3D虛擬對象。如在單個代理對象模型中那樣,可以在動力學上控制每一粒子,以匹配它所屬的 接觸的移動。一般而言,可以通過檢查前一幀中接觸的輪廓來計算輪廓上的點的速度。此 計算可以非??欤缤瑱E圓模型那樣,或更加復雜,如同多邊形輪廓那樣。系統(tǒng)400可包括流組件406。將速度計算基于被跟蹤的接觸的一個問題在于,跟蹤 可能會失敗,特別是當用戶正在使用諸如手的邊或手掌而不是更光標類的食指的束縛力不 太強的抓握姿勢時。在這些情況下,組件可以以不與如何看到物理輸入的方式相對應的方 式拆分和合并,從而導致錯誤的速度計算,且最終,在物理學仿真的情況下,導致不可預測 的運動?!N替換方法可以是獨立于被跟蹤的接觸信息來計算粒子的運動。例如,圖像的 局部特征可替代地從前一幀來跟蹤以計算速度。光流中所使用的那種簡單塊匹配法是一種 這樣的技術。當使用本地運動估計時,可以通過將代理粒子放在帶有高空間梯度的圖像位置 (例如,索貝爾過濾器等等)來完全避開對離散的接觸對象和輪廓的跟蹤。這些像素可以落 在接觸輪廓上或附近?;诹鞯牧W哟矸椒?技術的形狀和運動計算的瞬時分段特征具有多個優(yōu)點。首先,摩擦和接觸力導致比根據離散的被跟蹤對象計算形狀和運動的情況更穩(wěn)定的物理學 仿真結果。其次,幾乎不對用戶可以執(zhí)行的操縱施加限制,無論是導致碰撞、摩擦力或其組合。首先,盡管在真實世界中可以施加或多或少的力來控制摩擦,但是,所描述的系統(tǒng) 可能不具有用戶有多用力地按下的感覺。當使用粒子代理時,施加的摩擦的大小替代地與 施加于對象的代理的數(shù)量成比例,而施加于對象的代理的數(shù)量本身又與觸摸的表面積相 關。例如,一根手指在對象上移動將比多根手指施加更小的摩擦。此外,設備還可以感測可 以被轉換為若干個代理上的力的表面類的壓力。第二個問題可以是,通過將兩根手指或者兩只手放在任何一側來抓握虛擬對象在 我們探索的許多技術中會是困難的(如果不是不可能的話)。這樣的操縱要求在虛擬對 象上放置永久靜止接觸?;诹W拥姆椒?其中,每一個粒子都可以被重新放在每一個幀 中),將把與抓握手指相對應的代理放在對象上,如此,使抓握它的嘗試無效。單代理對象方 法使用永久代理,從而可允許抓握被擱在地板上的對象。也可以擴展粒子方法,以在似乎適 當時允許代理保持在給定深度,或使用其中同時使用粒子和單代理技術的混合式方法。例如,所描述的系統(tǒng)能夠通過將輸入圖像的灰度級解釋為輕觸摸或重觸摸來感測 壓力。對于基于代理的技術,此可以通過改變代理的質量來實現(xiàn)。提供每像素深度信息的 新范圍感測攝像機也是適當?shù)???梢允褂妹肯袼厣疃葋順嫿ㄊ值呢S富的3D模型,從而開啟 了建模抓握行為的新機會。它也可以有助于抓握對象,以便將它提起,并將它放到另一個對 象上。所要求保護的主題可以提供用于將交互式表面輸入基本要素結合到實時物理學 仿真中的多種技術。所描述的技術可以利用由基于視覺的交互式表面所提供的感測保真 度,且以在虛擬域中實現(xiàn)一系列在真實世界中可為我們所用的對象操縱策略為目標。圖5示出了便于允許表面技術的操縱樣式的系統(tǒng)500。系統(tǒng)500可包括可以提供 操縱保真度、收集、對3維(3D)對象的操縱,或剛性仿真這幾項中的至少一項的操縱器。通 過向物理學仿真中提供比較詳細的表面輸入類型,本發(fā)明可以允許從真實世界體驗中汲取 各種操縱形式。所要求保護的主題可以提供操縱保真度、收集、操縱3D對象、布和軟體中的 至少一個。當考慮對對象進行操縱時,利用詳細的形狀和運動信息的能力具有重要性??梢?通過組合了相對于手和手指的輪廓的碰撞與靜摩擦和動摩擦的各種策略中的一種策略來 移動自由移動的虛擬對象。至少部分地基于同時使用的所有三種力,印象是非常高的保真 度中的一個。一個示例可以是對能夠在表面上自由地滾動的球的操縱可以使用單次輕觸 摸、多次觸摸,或用于制動能力的手掌來以驚人準確的方式迫使它滾動、旋轉、停止或彈跳。 還可以無成本地集成物理對象,從而允許各種有趣的有形的行為。操縱器502可以提供感測和處理輪廓,以及跨虛擬空間分段地分布摩擦力的能 力,這允許一次對兩個或更多對象進行操縱,就像可以移動分散在一個桌子或表面上的一 組小對象那樣。用戶可以使用他們的手的邊緣(例如,或者甚至手臂)來一次碰撞許多對 象,或者使用多只手的手掌來施加摩擦力。對于能夠感應物理對象的交互式表面,一種有趣 的可能性是使用尺子或任何其他直邊的對象來移動和對齊多個對象。以3D建模虛擬對象和輸入實現(xiàn)有趣的但熟悉的交互。例如,被擱在較大的平坦對象上的小的平坦對象可通過輕敲其側面或施加摩擦來移動。取決于所涉及的質量和摩擦, 可能需要將較大的對象保留在原位。顯而易見,設計人員可以利用操縱器502來調整質量、 摩擦和外觀以匹配用戶的期望。然而,如果交互僅限于來自側面的碰撞力和來自頂部的摩擦力,則可以提供用戶 可以將較小的對象放在另一個的頂部的方式。坡道、蹺蹺板,及其他結構也是可以的,如果 構思出了某種東西的話。在一個示例中,通過向對象的一側施加足夠的摩擦力,可能可以將 一個對象翻轉到另一個對象上。當要堆積的對象是薄的時,諸如表示文檔的卡片,使用操縱器502的一種技術是 為每一對象的頂表面和底表面提供曲面形狀,該形狀允許用戶通過按下一端而翹起另一 端。然后,用戶可以將另一類似尺寸的卡移到傾斜的卡片的下面。此行為可以與在真實世 界中我們的感知相對應。甚至諸如,但不僅限于,卡片、紙、信用卡等等之類的平坦對象也具 有可以被直觀地用于操縱的3D形狀。諸如箱子、球體等等之類的剛體可以解釋所描述的交互技術。然而,在真實世界 中,對象可能不是剛性的;相反,它們可以是軟的,有韌性的,并且可以在施加力之后變形或 分解。示例可包括,但不僅限于,包括橡膠、布、紙、塑料、軟金屬等等。除剛體動態(tài)學之外,操縱器502可以提供對于軟體仿真、布仿真和/或流體仿真提 供某種形式的支持的物理學仿真。因為可以通過碰撞或摩擦力進行與所要求保護的主題相 關聯(lián)的模型中的所有交互,因此,它可以應用于任意虛擬對象。例如,可以通過使用一只手 的所有手指的抓握交互弄皺一塊布。然后,可以通過將手放平,向下壓,來將該被弄皺的布 弄直。甚至可以通過在兩個角的相對的方向施加力來將紙類對象撕開。此外,操縱器502可以允許軟的容器體被壓扁,以便放入空腔中,或壓縮以便在其 他對象下面滑過。軟材料還可以用于制作地形;可以由用戶將他們的手指挖到地形中,使用 他們的整只手來形成山谷,或使用杯狀手勢以產生高地,來觸發(fā)變形。可以進一步提供與粒 子系統(tǒng)(例如,模仿沙子)和流體的更開放且自由形態(tài)的交互(例如,在游戲上下文中,等
等) O圖6示出了使用智能來助益物理學自動地結合將到表面計算和數(shù)據交互中的系 統(tǒng)600。系統(tǒng)600可包括表面檢測組件102、物理學引擎104,以及界面106,它們可以基本 上類似于前面附圖中所描述的相應的引擎、組件、界面。系統(tǒng)600還包括智能組件602。智 能組件602可以被物理學引擎104用來助益連同表面計算一起來將牛頓物理學以及相關特 性與表面計算結合到數(shù)據交互。例如,智能組件602可以推斷質量、力、速度、摩擦、代理對 象、粒子代理、速度計算、數(shù)據交互等等。智能組件602可以使用信息價值(VOI)計算,以便標識由顯示的數(shù)據表示的對象 的量。例如,通過利用VOI計算,可以標識和實施最理想和/或適當?shù)奈锢硖匦?。此外,還 可以理解,智能組件602可以從經由事件和/或數(shù)據捕捉到的一組觀察結果推理或推斷出 系統(tǒng)、環(huán)境和/或用戶的狀態(tài)。可以使用推斷來識別特定上下文或操作,或者可以生成,例 如狀態(tài)上的概率分布。推斷可以是概率性的,即,基于對數(shù)據和事件的考慮來計算在感興趣 狀態(tài)上的概率分布。推斷也可以是指用于從一組事件和/或數(shù)據構成較高級別的事件的技 術。這樣的推斷導致從一組觀察到的事件和/或存儲的事件數(shù)據構建新的事件或操作,不 管事件在時間上是否緊密相關,以及事件和數(shù)據是來自一個還是多個事件和數(shù)據源??梢耘c執(zhí)行涉及所要求保護的主題的自動的和/或推斷操作一起,使用各種分類(經顯式地和 /或隱式地訓練的)方案和/或系統(tǒng)(例如,支持向量機、神經網絡、專家系統(tǒng)、貝葉斯信念 網絡、模糊邏輯、數(shù)據合成引擎,等等)。分類器是將輸入屬性矢量χ = (xl,x2, x3, x4, xn)映射到該輸入屬于某一個類的 置信度的函數(shù),即,f(x)=置信度(類)。這樣的分類可以使用基于概率和/或統(tǒng)計的分析 (例如,分解成分析效用和成本)來預測或推斷用戶希望自動地執(zhí)行的動作。支持矢量機 (SVM)是可以使用的分類器的一個示例。SVM通過發(fā)現(xiàn)可能的輸入的空間中的超曲面來操 作,該超曲面試圖將觸發(fā)準則與非觸發(fā)事件分離。直觀地,這使得分類可以校正近乎與訓練 數(shù)據接近但又不完全相同的測試數(shù)據。其他有向和無向的模型分類方法包括,例如,樸素貝 葉斯、貝葉斯網絡、決策樹、神經網絡、模糊邏輯模型,也可以使用提供不同獨立性模式的概 率分類模型。如這里所使用的分類還包括被用來開發(fā)優(yōu)先級模型的統(tǒng)計回歸。物理學引擎104還可以利用呈現(xiàn)組件604,該呈現(xiàn)組件604提供各種類型的用戶 界面,以便于用戶和耦合到物理學引擎104的任何組件之間的交互。如所描繪的,呈現(xiàn)組件 604是可以與物理學引擎104 —起使用的單獨實體。然而,可以理解,呈現(xiàn)組件604和/或 類似的查看組件可被結合到物理學引擎104中和/或作為獨立單元。呈現(xiàn)組件604可以提 供一個或多個圖形用戶界面(GUI)、命令行界面等等。例如,可以呈現(xiàn)向用戶提供用于對數(shù) 據進行加載、導入、讀取等等操作的區(qū)域或手段,并可包括演示這樣的操作的結果的區(qū)域的 ⑶I。這些區(qū)域可以包括已知的文本和/或圖形區(qū)域,包括對話框、靜態(tài)控件、下拉菜單、列 表框、彈出式菜單、編輯控件、組合框、單選按扭、復選框、按鈕,以及圖形框。另外,還可以使 用便于呈現(xiàn)的實用程序,如用于導航的垂直和/或水平滾動條和確定某一區(qū)域是否可查看 的工具欄按扭。例如,用戶可以與耦合到和/或結合到物理學引擎104的組件中的一個或 多個進行交互。用戶還可以與經由各種設備(諸如,例如,鼠標、滾球、觸摸板、小鍵盤、鍵盤、觸摸 屏、筆和/或話音激話、人體運動檢測)選擇和提供信息的區(qū)域進行交互。通常,可以使用諸 如按鈕或鍵盤上的回車鍵之類的機制來連續(xù)輸入信息,以便啟動搜索。然而,可以理解,所 要求保護的主題沒有這樣的限制。例如,只突出顯示一復選框可以啟動信息傳輸。在另一 示例中,可以使用命令行界面。例如,命令行界面可以(例如,經由顯示器上的文本消息和 音頻音調)向用戶提示經由提供文本消息來提供信息。然后,用戶可以提供合適的信息,如 與界面提示中所提供的選項相對應字母數(shù)字輸入或對在提示中提出的問題的回答。可以理 解,命令行界面可以與GUI和/或API結合使用。另外,命令行界面還可以與硬件(例如, 視頻卡)和/或具有有限的圖形支持的顯示器(例如,黑白、EGA、VGA、SVGA等等),和/或 低帶寬通信信道結合使用。圖7-8示出了根據所要求保護的主題的方法和/或流程圖。為了簡潔起見,作為 一系列動作描繪和描述了方法。可以理解和明白,本發(fā)明不僅限于所示出的動作和/或動 作的順序。例如,一些動作可以按各種順序和/或并行地進行,并帶有其他此處未呈現(xiàn)和描 述的其他動作。此外,并非所有的所示出的動作都是實現(xiàn)根據所要求保護的主題的方法所 必需的。另外,本領域的技術人員將了解和明白,方法也可以替代地經由狀態(tài)圖或事件表示 為一系列相互相關聯(lián)的狀態(tài)。另外,還應該進一步理解,下面以及整個說明書中所公開的方 法能夠存儲在一種制品中,以促進將這樣的方法傳送和傳輸?shù)接嬎銠C中。如這里所使用的術語“制品”可以包含可以從任何計算機可讀的設備、載體或介質進行訪問的計算機程序。圖7示出了便于將物理量應用到物質對象的數(shù)據表示和表面輸入之間的交互的 方法700。在附圖標記702,可以檢測表面輸入。例如,可以使用任何合適的圖像處理技術, 以便將從用戶收集到的表面輸入與顯示器上的投影圖像對準。例如,可以檢測表面輸入,并 可以計算顯示器上的投影圖像中的對應點。在另一示例中,可以將用戶的手或手指置于可 以對其執(zhí)行與所顯示數(shù)據的交互的表面上。在此示例中,手指或手可以操縱該部分所顯示 數(shù)據,其中,這樣的數(shù)據可以以物理準確的結果(例如,力、質量、速度、摩擦等等)作出響 應。在附圖標記704,可以生成表面輸入的代理對象??梢詫⒋韺ο笥成涞饺魏魏线m 的檢測到的表面輸入,其中可以將表面輸入結合到物理學仿真中。可以為每一個觸點創(chuàng)建 和定位代理對象(例如,表面輸入、檢測到的姿勢、移動等等)??梢岳斫?,代理對象可與同 所觸摸對象(例如,地板)位于同一個平面上的對象發(fā)生碰撞,而且還與位于半空中的或堆 放在其他對象上的對象等等發(fā)生碰撞。在附圖標記706,可以利用兩個或更多代理粒子對象來動態(tài)地建模代理對象輪廓。 一般而言,可以通過沿著這樣的表面輸入和/或接觸的輪廓放置的多個代理對象來建模接 觸或表面輸入。例如,指尖可包括圍繞表面輸入的輪廓或指尖在表面上的接觸的多個代理 對象。在附圖標記708,可以至少部分地基于動態(tài)地建模的代理粒子來提供對于表面輸入的 物理學仿真。具體而言,可以創(chuàng)建在每一仿真幀的開始時的輪廓的一組代理對象。在應用 物理學仿真更新之后,可以銷毀代理對象,同時在這樣的更新期間施加碰撞和/或摩擦力。圖8示出了用于利用與表面計算相關聯(lián)的數(shù)據交互復制牛頓物理學的方法400。 在附圖標記802,可以檢測表面接觸。例如,表面接觸可以涉及一部分所顯示數(shù)據的觸摸事 件、表面輸入等等??梢岳斫猓@樣的捕捉到的或檢測到的事件、輸入或接觸可以是姿勢、手 的運動、手的交互、對象交互,和/或與代表物質對象的數(shù)據的一部分的任何其他交互。例 如,可以將手的交互轉換成顯示器上的對應的數(shù)據交互。具體而言,用戶可以物理地操縱表 面上的一部分所顯示數(shù)據,其中,可以檢測和轉換這樣的手姿勢,為了進行數(shù)據交互。在附圖標記804,可以利用多個粒子代理對象來建模表面接觸的輪廓形狀。在附圖 標記806,可以將物理學更新應用于表面檢測的第一幀和第二幀之間的粒子代理對象。通 過建模表面接觸輪廓,可以準確地建模和/或使用分布和/或摩擦力。另外,可以在動力方 面控制每一粒子,以匹配它所屬的接觸的移動。物理學更新可以與應用諸如但不僅限于,質 量、速度、摩擦、力等等之類的物理量相關聯(lián)。在附圖標記808,可以跟蹤第一幀和第二幀之 間的表面接觸的特征,以便估計運動。為了提供用于實現(xiàn)所要求保護的主題的各個方面的附加的上下文,圖9-10以及 下面的討論旨在提供其中可以實現(xiàn)本發(fā)明的各個方面的合適的計算環(huán)境的簡要的、一般描 述。例如,可以在這樣的合適的計算環(huán)境中實現(xiàn)可以將現(xiàn)實的物理學結合到一部分所顯示 數(shù)據中的物理學引擎,如前面的附圖所描述的。盡管上文是在可以在本地計算機和/或遠 程計算機上運行的計算機程序的計算機可執(zhí)行指令的一般上下文中來描述所要求保護的 主題的,但是,本領域的技術人員將認識到,本發(fā)明也可以與其他程序模塊相結合地實現(xiàn)。 一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據類型的例程、程序、組件、數(shù)據 結構等。
此外,本領域的技術人員將了解,可以利用其他計算機系統(tǒng)配置來實施本發(fā)明的 方法,包括單處理器和/或多處理器計算機系統(tǒng),小型計算機、大型計算機,以及個人計算 機,手持式計算設備、基于微處理器的和/或可編程消費電子產品等等,上述每一種設備都 可以可操作地與一個或多個相關聯(lián)的設備進行通信。所要求保護的主題的所說明的方面也 可以在其中某些任務由通過通信網絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實現(xiàn)。 然而,本發(fā)明的某些方面,如果不是所有方面的話,可以在獨立計算機上實施。在分布式計 算環(huán)境中,程序模塊可以位于本地和/或遠程存儲器存儲設備中。圖9是所要求保護的主題可以與其進行交互的示例計算環(huán)境900的示意框圖。系 統(tǒng)900包括一個或多個客戶機910??蛻魴C910可以是硬件和/或軟件(例如,線程、進程、 計算設備)。系統(tǒng)900還包括一個或多個服務器920。服務器920也可以是硬件和/或軟 件(例如,線程、進程、計算設備)。服務器920可以,例如,通過使用本發(fā)明,容納執(zhí)行變換 的線程??蛻魴C910和服務器920之間的一種可能的通信可以是適用于在兩個或更多計算 機進程之間傳輸?shù)臄?shù)據包的形式。系統(tǒng)900包括通信框架940,該通信框架940可以被用來 促進客戶機910和服務器920之間的通信。類似地,客戶機910可操作地連接到一個或多 個客戶機數(shù)據存儲器950,可以使用這些客戶機數(shù)據存儲器950來存儲客戶機910本地的信 息。類似地,服務器920可操作地連接到一個或多個服務器數(shù)據存儲器930,可以使用這些 服務器數(shù)據存儲器930來存儲服務器920本地的信息。參考圖10,用于實現(xiàn)所要求保護的主題的各方面的示例性環(huán)境1000可以包括計 算機1012。計算機1012包括處理單元1014、系統(tǒng)存儲器1016,以及系統(tǒng)總線1018。系統(tǒng) 總線1018將系統(tǒng)組件,包括,但不僅限于,系統(tǒng)存儲器1016耦合到處理單元1014。處理單 元1014可以是各種處理器中的任一種。還可以使用雙微處理器及其他多處理器體系結構 作為處理單元1014。系統(tǒng)總線1018可以是若干類型的總線結構中的任一種,包括使用各種可用的總 線體系結構中的任一種的存儲器總線或存儲器控制器、外圍總線或外部總線,和/或局部 總線,總線體系結構包括,但不僅限于,工業(yè)標準體系結構(ISA)、微通道體系結構(MCA)、 擴展的ISA(EISA)、智能驅動器電子(IDE)、VESA局部總線(VLB)、外圍組件互連(PCI)、 卡總線、通用串行總線(USB)、高級圖形端口(AGP)、個人計算機存儲器卡國際聯(lián)合會總線 (PCMCIA)、火線(IEEE 1394),以及小型計算機系統(tǒng)接口(SCSI)。系統(tǒng)存儲器1016包括易失性存儲器1020和非易失性存儲器1022?;据斎?/輸出系統(tǒng)(BIOS)通常存儲在非易失性存儲器1022中,包含例如在啟動期間幫助在計 算機1012內的元件之間傳輸信息的基本例程。作為說明,而不是限制,非易失性存儲器 1022可包括只讀存儲器(ROM)、可編程序ROM(PROM)、電可編程ROM(EPROM)、電可擦可編程 ROM(EEPROM)或閃存。易失性存儲器1020包括充當外部高速緩沖存儲器的隨機存取存儲 器(RAM)。作為說明而不是限制,RAM可以有許多形式,如靜態(tài)RAM(SRAM)、動態(tài)RAM(DRAM)、 同步DRAM (SDRAM)、雙倍數(shù)據速率SDRAM (DDRSDRAM)、增強的SDRAM (ESDRAM)、同步鏈路 (Synchlink)DRAM(SLDRAM)、直接存儲器總線(Rambus)RAM(RDRAM),直接存儲器總線動態(tài) RAM (DRDRAM),以及存儲器總線動態(tài)RAM(RDRAM)。計算機1012還包括可移動的/不可移動的,易失性/非易失性計算機存儲介質。圖10示出了例如盤存儲1024。盤存儲IOM包括但不僅限于,諸如磁盤驅動器、軟盤驅動器、 磁帶驅動器、Jaz驅動器、Zip驅動器、LS-100驅動器、閃存卡或記憶棒之類的設備。另外, 盤存儲IOM還可包括存儲介質,分開地或與其他存儲介質相結合,包括,但不僅限于,諸如 緊致盤ROM設備之類的光盤驅動器(⑶-ROM)、⑶可記錄驅動器(⑶-R驅動器)、⑶可重寫 驅動器(⑶-RW驅動器)或數(shù)字多功能盤ROM驅動器(DVD-ROM)。為便于盤存儲設備IOM 連接到系統(tǒng)總線1018,通常使用諸如接口 10 之類的可移動或不可移動接口??梢岳斫?,圖10描述了在合適的操作環(huán)境1000中在用戶和所描述的基本計算機 資源之間的中介的軟件。這樣的軟件包括操作系統(tǒng)1(^8??梢源鎯υ诒P存儲IOM上的操 作系統(tǒng)10 用于控制和分配計算機系統(tǒng)1012的資源。系統(tǒng)應用程序1030利用由操作系 統(tǒng)10 通過存儲在系統(tǒng)存儲器1016或者存儲在盤存儲IOM上的程序模塊1034和程序數(shù) 據1034對資源的管理??梢岳斫?,所要求保護的主題可以利用各種操作系統(tǒng)或操作系統(tǒng)的 組合來實現(xiàn)。用戶通過輸入設備1036向計算機1012輸入命令或信息。輸入設備1036包括,但 不限于,諸如鼠標、跟蹤球、指示筆、觸摸板之類的指點設備、鍵盤、麥克風、游戲桿、游戲手 柄、圓盤式衛(wèi)星天線、掃描儀、TV調諧器卡、數(shù)碼相機、數(shù)字視頻攝像機、網絡攝像頭等等。這 些及其他輸入設備通過系統(tǒng)總線1018經由接口端口 1038連接到處理單元1014。接口端口 1038包括,例如,串行端口、并行端口、游戲端口,以及通用串行總線(USB)。輸出設備1040 與輸入設備1036使用一些相同類型的端口。如此,例如,可以使用USB端口來向計算機1012 提供輸入,以及從計算機1012向輸出設備1040輸出信息。提供了輸出適配器1042,以示出 有諸如監(jiān)視器、揚聲器,以及打印機之類的一些輸出設備1040,還有需要專用適配器的其他 輸出設備1040。輸出適配器1042包括,作為例示而不是限制,在輸出設備1040和系統(tǒng)總線 1018之間提供連接手段的視頻卡和聲卡。應該注意,其他設備和/或設備的系統(tǒng)提供輸入 和輸出兩種能力,諸如遠程計算機1044。計算機1012可以使用到諸如遠程計算機1044之類的一個或多個遠程計算機的 邏輯連接來在聯(lián)網環(huán)境中操作。遠程計算機1044可以是個人計算機、服務器、路由器、網 絡PC、工作站、基于微處理器的電器、對等設備或其他公共網絡節(jié)點等等,并通常包括上文 參考計算機1012所描述的許多或全部元件。為了簡潔起見,與遠程計算機1044—起,只示 出了存儲器設備1046。遠程計算機1044通過網絡接口 1048在邏輯上連接到計算機1012, 然后,經由通信連接1050在物理上連接。網絡接口 1048包含諸如局域網(LAN)和廣域網 (WAN)之類的有線或無線通信網絡。LAN技術包括光纖分布式數(shù)據接口(FDDI)、銅線分布式 數(shù)據接口(CDDI)、以太網、令牌環(huán)網等等。WAN技術包括,但不限于,點對點鏈路、電路交換 網,如綜合業(yè)務數(shù)字網(ISDN)以及其變體,分組交換網絡,以及數(shù)字訂戶線(DSL)。通信連接1050是指用來將網絡接口 1048連接到總線1018的硬件/軟件。盡管 用于例示起見,通信連接1050被示為在計算機1012內部,但是,它也可以位于計算機1012 外部。連接到網絡接口 1048所需的硬件/軟件包括,只作示例,內部和外部技術,諸如,調 制解調器,包括常規(guī)電話級調制解調器、電纜調制解調器和DSL調制解調器、ISDN適配器, 以及以太網卡。上文所描述的包括本發(fā)明的示例。當然,不可能出于描述所要求保護的主題的目 的而描述組件或方法的每個可能的組合,但是,本領域技術人員可以認識到,本發(fā)明的許多進一步的組合和置換都是可能的。因此,所要求保護的主題旨在包含在所附權利要求書的 精神和范圍內的所有這樣的更改、修改和變化。具體來說,對于由上述組件、設備、電路、系統(tǒng)等等執(zhí)行的各種功能,除非另外指 明,否則用于描述這些組件的術語(包括對“裝置”的引用)旨在對應于執(zhí)行所描述的執(zhí)行 此處在所要求保護的主題的示例性方面所示的功能的所描述的組件的指定功能(例如,功 能上等效)的任何組件,即使這些組件在結構上不等效于所公開的結構。關于這一點,還應 認識到,本發(fā)明還包括了具有用于執(zhí)行所要求保護的主題的各種方法的動作和/或事件的 計算機可執(zhí)行指令的系統(tǒng)以及計算機可讀介質。有多種實現(xiàn)本發(fā)明的方式,例如,使應用程序和服務能使用本發(fā)明的廣告技術的 適當API、工具包、驅動程序代碼、操作系統(tǒng)、控件、獨立或可下載的軟件對象等等。所要求保 護的主題還從API (或其他軟件對象)的觀點以及從依照本發(fā)明根據廣告技術操作的軟件 或硬件對象構想用途。如此,此處所描述的本發(fā)明的各種實現(xiàn)可以具有完全以硬件,部分以 硬件而部分以軟件,以及以軟件來實現(xiàn)的方面。如前所述的系統(tǒng)是利用多個組件之間的交互來描述的??梢粤私?,這樣的系統(tǒng)和 組件可以包括這些組件或指定的子組件,某些指定的組件或子組件,和/或附加的組件,以 及根據前述的內容的各種置換和組合。子組件也可以作為可通信地耦合到其他組件的組件 來實現(xiàn),而不是包括在父組件內(分層的)。另外,應該注意,一個或多個組件也可以合并到 提供聚合功能的單個組件中,或者也可以分成多個分開的子組件,并且可以提供諸如管理 層之類的任一個或更多中間層,以通信地耦合到這樣的子組件,以便提供集成的功能。此處 所描述的任何組件也可以與一個或多個此處沒有專門描述的但本領域技術人員廣泛地知 道的其他組件進行交互。此外,盡管可相對于若干實現(xiàn)中的僅一個實現(xiàn)來公開本發(fā)明的一個特定特征,但 這一特征可以如對任何給定或特定應用所需且有利地與其他實現(xiàn)的一個或多個其他特征 相組合。此外,就在具體實施方式
或者權利要求書中使用術語“包括”、“具有”、“包含”或其 變體,以及其他類似的詞語而言,這些術語旨在以與術語“包括”相似的方式為包含性的,作 為開放的過渡詞,而不會排除任何附加的或其他的元素。
權利要求
1.一種便于增強用于數(shù)據操縱的交互式表面技術的系統(tǒng),包括表面檢測組件,所述表面檢測組件采用多觸摸表面技術來檢測表面輸入,所述檢測到 的表面輸入實現(xiàn)與表面上的一部分顯示的數(shù)據的物理交互(10 ;以及物理學引擎,所述物理學引擎將牛頓物理學的一部分集成到與該部分所顯示數(shù)據的交 互中,以便建模與該部分所顯示數(shù)據相關聯(lián)的至少一個量,所述量是力、質量、速度或摩擦 中的至少一個(104)。
2.如權利要求1所述的系統(tǒng),其特征在于,還包括呈現(xiàn)該部分所顯示數(shù)據的顯示器。
3.如權利要求2所述的系統(tǒng),其特征在于,所述顯示器是監(jiān)視器、電視機、液晶顯示器 (IXD)、等離子、背投顯示器、前投顯示器、陰極射線管(CRT)監(jiān)視器、平板、計算設備的顯示 器、便攜式數(shù)字助理(PDA)屏幕、膝上型顯示器、計算機監(jiān)視器、智能電話顯示器、蜂窩式設 備屏幕、移動通信設備顯示器、或便攜式游戲設備顯示器中的至少一個。
4.如權利要求1所述的系統(tǒng),其特征在于,還包括為所述檢測到的表面輸入生成代理 對象的代理對象組件,所述表面輸入被結合到物理學仿真中。
5.如權利要求4所述的系統(tǒng),其特征在于,還包括利用多個代理對象建模所述表面輸 入的輪廓形狀的粒子代理組件,所述多個代理對象的所述輪廓是粒子代理。
6.如權利要求5所述的系統(tǒng),其特征在于,所述物理學引擎將與牛頓物理學的所述部 分有關的物理學更新用于第一仿真幀和第二仿真幀之間的所述粒子代理。
7.如權利要求6所述的系統(tǒng),其特征在于,所述物理學引擎使用所述物理學更新來制 定碰撞力或摩擦力中的至少一個。
8.如權利要求6所述的系統(tǒng),其特征在于,所述物理學引擎使用所述物理學更新來制 定以下兩項中的至少一個收集兩個或更多對象、或者堆積兩個或更多對象。
9.如權利要求6所述的系統(tǒng),其特征在于,所述物理學引擎實現(xiàn)對軟體仿真、布體仿 真,或流體仿真中的至少一個的支持。
10.如權利要求1所述的系統(tǒng),其特征在于,所述物理學引擎施加與施加于對象的代理 的數(shù)量成比例的一定量的摩擦力,所述摩擦力與觸摸的表面積相關。
11.如權利要求1所述的系統(tǒng),其特征在于,還包括流組件,所述流組件通過跟蹤第一 幀和第二幀之間的運動來計算粒子代理的運動,所述粒子代理的所述運動獨立于所跟蹤的 接觸信息。
12.如權利要求11所述的系統(tǒng),其特征在于,所述流組件使用與光流有關的塊匹配來 計算速度。
13.如權利要求12所述的系統(tǒng),其特征在于,流組件通過比較每一個連續(xù)的邊緣圖像 來計算與所述粒子代理有關的點的表面運動。
14.如權利要求12所述的系統(tǒng),其特征在于,所述流組件通過對圖像點進行光線投射 并將圖像點投射到由3D點和對象法線所形成的切面上來計算切向運動。
15.如權利要求1所述的系統(tǒng),其特征在于,還包括操縱器,所述操縱器提供操縱保真 度、收集、對3維(3D)對象的操縱,或剛性仿真中的至少一個。
16.一種結合表面計算來促進仿真物理學的計算機實現(xiàn)的方法,包括檢測表面輸入(702,802);為所述表面輸入生成代理對象(704,804);標識所述表面輸入的輪廓(706,804);利用兩個或更多代理粒子對象來動態(tài)地建模所述代理對象的所述輪廓(706,804);以及在表面輸入檢測的第一幀和第二幀之間對于每一個代理粒子對象使用力、速度或摩擦 中的至少一個(708,806)。
17.如權利要求16所述的方法,其特征在于,還包括提供軟體仿真、布體仿真,或流體 仿真中的至少一個。
18.如權利要求16所述的方法,還包括施加與施加于對象的代理的數(shù)量成比例的一定量的摩擦力,所述摩擦力與觸摸的表面 積相關;以及感測被轉換成所述數(shù)量個代理上的力的表面類壓力。
19.如權利要求16所述的方法,其特征在于,還包括通過跟蹤第一幀和第二幀之間的 運動來計算粒子代理的運動,所述粒子代理的所述運動獨立于所跟蹤的接觸信息。
20.一種便于增強用于數(shù)據操縱的交互式表面技術的計算機實現(xiàn)系統(tǒng),包括用于實現(xiàn)多觸摸表面技術來檢測表面輸入的裝置,所述檢測到的表面輸入實現(xiàn)與表面 上的一部分所顯示數(shù)據的物理交互(102,702,80 ;以及用于將牛頓物理學的一部分整合到與該部分所顯示數(shù)據的交互中以便建模與該部分 所顯示數(shù)據相關的至少一個量的裝置,所述量是力、質量、速度或摩擦中的至少一個(104, 708,806);用于為所述檢測到的表面輸入生成代理對象的裝置,所述表面輸入被結合到物理學仿 真中(104,402,704,804);用于利用多個代理對象建模所述表面輸入的輪廓形狀的裝置,所述多個代理對象的所 述輪廓是粒子代理(104,404,706,804);以及用于將與牛頓物理學的所述部分有關的物理學更新用于第一仿真幀和第二仿真幀之 間的所述粒子代理的裝置(104,402,404,708,806)。
全文摘要
所要求保護的主題提供便于增強用于數(shù)據操縱的交互式表面技術的系統(tǒng)和/或方法。表面檢測組件可以使用多接觸表面技術來檢測表面輸入,其中檢測到的表面輸入實現(xiàn)與表示物質對象的一部分所顯示數(shù)據的物理交互。物理學引擎可以將牛頓物理學的一部分整合到與該部分所顯示數(shù)據的交互中,以便建模與物質對象相關聯(lián)的至少一個量,該量是力、質量、速度或摩擦中的至少一個。
文檔編號G06F15/16GK102132253SQ200980133840
公開日2011年7月20日 申請日期2009年5月22日 優(yōu)先權日2008年6月24日
發(fā)明者A·D·威爾遜, A·加西亞-門多薩, D·柯克, O·希爾戈斯, S·伊扎迪 申請人:微軟公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
牡丹江市| 东港市| 广丰县| 精河县| 南平市| 日喀则市| 黔西县| 金塔县| 清徐县| 天长市| 汝南县| 长葛市| 犍为县| 南木林县| 林甸县| 金溪县| 临颍县| 六安市| 修水县| 遂川县| 大冶市| 会昌县| 昌平区| 天气| 永靖县| 定安县| 宜黄县| 伊宁县| 广德县| 泽州县| 洱源县| 镇平县| 和政县| 阿拉善右旗| 克拉玛依市| 华阴市| 龙泉市| 乌兰县| 乐平市| 灵台县| 安徽省|