當前位置:
首頁 > 科技 > Oculus Touch「緩衝觸覺」功能詳解

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

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

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

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

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

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

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

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

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


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 VRPinea 的精彩文章:

七家公司聯合打造全球首個情緒跟蹤平台——VR Insight
IO Industries將與微軟合作,創造全新全息AR技術

TAG:VRPinea |

您可能感興趣

Python super 詳解
乾貨詳解 Linux phantomJs install course
詳解Elasticsearch的基友Logstash
Tensorboard 詳解
聚合查詢慢——詳解Global Ordinals與High Cardinality
詳解下一代Oculus Rift——Half Dome VR原型機
詳解Pony最新妝容-Flower that booms at night
Linux的chown和chmod授權詳解
FAQ詳解「Meltdown和Spectre」問題,接踵而來的「Skyfall和Solace」是否僅是騙局?
基於Python Selenium Unittest PO設計模式詳解
iOS Airplay Screen Mirroring 同屏技術詳解
VulnHub中LazySysAdmin 題目詳解
Spring Cloud限流詳解
async/await使用深入詳解
MyBatis 配置 typeHandlers 詳解
ThreadLocal實現原理詳解
Spring Security 5.0 的 DelegatingPasswordEncoder 詳解
Symantec NetBackup 部署需要調整Linux內核詳解
Paint API之 Xfermode與PorterDuff詳解
這次我們不談音質——拆機詳解Soundcore Flare無線藍牙音箱