前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >科普丨Oculus Touch“缓冲触觉”功能详解

科普丨Oculus Touch“缓冲触觉”功能详解

作者头像
VRPinea
发布2018-05-14 16:44:14
7920
发布2018-05-14 16:44:14
举报
文章被收录于专栏:VRPineaVRPinea

近日,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还指出,开发人员可以“基于输入流(控制器的移动或位置)来改变振动效果”,或者在信息传送到缓冲区之前预混合多个输入流。根据玩家们在虚拟世界的表现,可能会出现一些有趣的动态触觉。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VRPinea 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档