search
科普丨Oculus Touch「緩衝觸覺」功能詳解

科普丨Oculus Touch「緩衝觸覺」功能詳解

VRPinea 8月15日訊(微信號:VRPinea)

近日,Oculus向其開發人員知識庫添加了新的文檔,這個文檔詳細介紹了Oculus SDK的「Buffered Haptics(緩衝觸覺)」功能,這種功能能為Touch控制器編程更高級的觸覺反饋方式。

Oculus Touch控制器是通過線性執行器提供反饋的,而這種觸覺方式已經開始逐漸取代常見主機手柄中簡單的「隆隆響」的反饋方式。與昔時大量旋轉的馬達相比,線性執行器的運行速度更快,從而實現更多種類的觸覺效果、更快速的響應時間以及更好的控制。Oculus最新的「Buffered Haptics(緩衝觸覺)」功能可以讓開發人員更加精確地控制觸覺反饋。

SDK支持兩種控制器觸覺,一種是緩衝,一種是非緩衝。Oculus建議這兩種方法不要同時使用以避免不可預知的觸覺行為。

非緩衝觸覺更易於概念化和控制,並且相當於以特定頻率(160Hz或者320Hz)和振幅(0255)簡單地切換震動。Oculus表示,非緩衝觸發器「被設計用於沒有緊密延遲要求的簡單效果,因為控制器需要33ms的時間來響應修改觸覺設置的API調用。」

緩衝觸覺不僅響應速度更快(10mz),並且允許更廣泛和更複雜的觸覺效果,「例如圍繞著正弦波或切線函數而形成的振動幅度模式,平穩控制器之間的振動,亦或者是產生各種各樣的低頻載波等等」,Oculus指出。

這種功能允許開發人員排列出一串能表示期望振幅的數節,然後以320Hz順序播放,並允許開發人員以每3.125ms秒細微調整0min)至255max)之間的振幅。

Oculus SDK提供了一個觸覺樣本的App,並給出了通過使用緩衝觸覺就可以實現一些觸覺效果的實例:

1、在每個波周期結束時,平滑的正弦波振動具有「嗡嗡聲逐漸減弱」的效果

2、在左右控制器上進行振動平移,再次在平移循環結束時產生「嗡嗡聲逐漸減弱」效果

3、超低頻嗡嗡聲,基本上是在64Hz的一系列振動

4、基於混亂公式並利用三角波函數切線的「混亂」低頻振動

以下文檔將詳細介紹該功能的工作原理,包括先將所需的觸覺指令排列緩衝,然後再將其發送給控制器:

一個緩衝區由一系列值為0到255的位元組組成,其中0表示沒有振幅(即沒有振動),而255則代表SDK允許的最大振幅(或強度)。在把代碼填充緩衝區的值之後,用戶就可以通過ovr_SubmitControllerVibration,發送一個或兩個緩衝到控制器。

然後緩衝區的每個位元組將以320Hz的速率依次「播放」,其中最大緩衝區大小(即可以一次發送給控制器的最大位元組數,以及控制器內部緩衝區的最大大小)是256個位元組。「播放」一個256位元組的緩衝區所花費的時間是0.8秒(以320Hz的速率播放)。

因此,你可以完全控制振動效應的振幅,直到解析度為3.125ms(相當於320Hz)。但是,頻率只能是320Hz,或者是320Hz的一些整商,例如320/2=160Hz, 320/3=106.7Hz, 320/4=80Hz, 320/5=64Hz等等。用戶可以通過發送零填充的位元組,點綴振幅大於零的位元組來實現這些低頻率。

下面是一些例子:

1、320Hz,全振幅[255, 255, 255, 255, …]

2、160Hz,全振幅[255, 0, 255, 0, 255, 0, 255, 0, …]

3、320Hz,半振幅[127, 127, 127, …, 127, …]

4、160Hz,半振幅[127, 0, 127, 0, 127, 0, …, 127, 0, …]

5、單個尖銳振動(320Hz)[0, 0, 255, 255, 255, 0, 0] [延遲 x ms] [0, 0, 255, 255, 255, 0, 0]

6、單個平鈍振動(160Hz)[0, 255, 0, 255, 0, 255, 0] [延遲 x ms] [0, 255, 0, 255, 0, 255, 0]

一般來說,使用320Hz共振模式來進行更輕、更清晰的動作,而160Hz模式則適用於更重、更鈍的動作。

Oculus還指出,開發人員可以「基於輸入流(控制器的移動或位置)來改變振動效果」,或者在信息傳送到緩衝區之前預混合多個輸入流。根據玩家們在虛擬世界的表現,可能會出現一些有趣的動態觸覺。

本文roadtovr刊發,屬VRPinea原創編譯稿件,轉載請洽:brand@vrpinea.com

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23292次喜歡
留言回覆
回覆
精彩推薦