Oculus ha aggiornato la documentazione per i suoi sviluppatori spiegando nel dettagli la funzione ‘buffered haptics’ presente nell’Oculus SDK, un metodo per programmare effetti aptici avanzati con i controller Touch

Gli Oculus Touch usano attuatori lineari per fornire il feedback, una tecnologia aptica che ha sostituito la classica vibrazione presente da tempo nei gamepad delle console. Gli attuatori lineari possono muoversi molto più velocemente dei motorini a masse rotanti presenti nei gamepad, permettendo una varietà di effetti molto più ampia.

L’SDK supporta due differenti approcci agli effetti aptici, Buffered e Non-buffered. Oculus mette in guardia gli sviluppatori dall’usarli in contemporanea, per evitare effetti non previsti.

Gli effetti non-buffered sono molto semplici sia da comprendere che da controllare, si tratta in pratica di una vibrazione che può essere accesa o spenta, con una frequenza che va da 160Hz ai 320Hz e 256 possibili valori di intensità. Oculus scrive che gli effetti aptici non-buffered sono pensati per situazioni semplici dove la latenza non è fondamentale, dal momento che il controller richiede 33ms per rispondere alle richieste.

Gli effetti buffered non sono solamente più veloci (10ms di latenza nella risposta), ma permettono anche un insieme più grande e complesso di effetti, come patter di vibrazione che seguono onde sinusoidali o funzioni trigonometriche, possono far scorrere il treno di vibrazioni lungo il controller, generare una varietà di armoniche a bassa frequenza, ecc… Questa funzione permette agli sviluppatori di accodare una sequenza di byte che rappresenta delle ampiezze, riprodotto in sequenza a 320Hz, permettendo quindi di regolare l’ampiezza in modo fine ad intervalli di 3.125ms

In generale, treni di vibrazioni da 320Hz saranno utili per simulare azioni rapide e leggere, mentre quelli da 160Hz restituiranno le sensazioni di interazione con oggetti più lenti e pesanti.

Oculus fa inoltre notare che gli sviluppatori possono modificare gli effetti in base all’input, come per esempio il movimento del controller o la sua posizione, preparando in anticipo questi pacchetti ed inviandoli appunto al buffer che a sua volta li invierà al controller.