凌财进, 曾 婷, 黑霞丽, 张 超
(1.河源职业技术学院 电子与信息工程学院,广东 河源 517000;2.特拉华州立大学 工程学院,美国特拉华 19901)
压力触控下虚拟现实应用框架的探索与研究
凌财进1,2,曾婷1,黑霞丽2,张超2
(1.河源职业技术学院 电子与信息工程学院,广东 河源517000;2.特拉华州立大学 工程学院,美国特拉华19901)
摘要:针对虚拟现实技术传统项目中互动不足问题,提出应用目前移动终端最新的交互技术-压力触控技术和触觉反馈技术,提升虚拟现实应用项目在触觉交互方面的性能.通过对压力触控技术的研究,提出一种基于压力触控的虚拟现实应用开发的技术框架,实现了压力触控技术API交互接口统一封装和虚拟现实应用开发接口的统一管理.在此平台上开发了两个虚拟现实应用项目,证明了技术框架的可行性,以及压力触控技术对虚拟现实系统的交互性能的提升.
关键词:压力触控;压力传感;触觉反馈;虚拟现实;游戏开发
压力触控(Force touch)又称为3D压力触控感应技术,是在触摸(touch)技术基础上再创新和改进,在二维基础上增加了“深度”维度的一种技术,是一种具有时代意义的技术变革,被公认为“一次革命性的交互创新”.原来的手机屏幕只可以进行二维的触摸,但增加这种压力触控技术后手机屏幕具有了“深度”的三维触摸屏.因此,使得这种压力触控屏不仅具备侦测按压技术,还提供了丰富的人机接口,可以通过软件设计实现各种控制键、捷径和触觉反馈的功能.
本文以虚拟现实应用App和游戏开发为载体,以应用压力触控为目标,结合虚拟现实技术与压力触控进行研究与探索.
1相关研究
压力触控技术的应用开始改变人们使用手机和电脑的方式,改变人们对虚拟现实和游戏的操作方式.这一技术的推广与运用将提高游戏和虚拟现实应用水平,提升用户的终端体验.
从发布的专利资料看,最早从事这一技术研究的是一家位于美国加州叫Elo Touchsystems的公司,该公司于1971年成立,最早从事图像处理和各种传感器研究与生产,也是最早生产触摸屏的公司之一.文献[1]显示Elo Touchsystems公司于1999年有关压力触控方面的专利,是最早提出压力触控技术并设计出一种基于电容实现的双传感器压力触摸屏.同样位于加州的Synaptics公司是生产和研究各种触控板的OEM商,是较早从事压力触控技术研究的公司之一,在2009年提出一种基于多传感器的压力测量方法并申请了专利[2].同年9月,苹果公司提出一种具有压力触控和动力反馈的触摸板的专利,专利采用隔层设计和内部光学胶(OCA)的胶材间隙变化原理,将压力感测元件安装在不同层基板上,当表面承受按压力道时,得知按压力量大小及位置[3],这是苹果公司在关于压力触控方面的最早的专利.三星公司作为全球最大的手机生产商对压力触控技术也投入了大量精力研发,2014年申请了名称“一种新型的触摸输入设备和电子设备”的专利,重点强调该技术可以解决屏幕小的问题,新技术可以快速访问图标,瞬间传达更多信息,提高交互效率[4];文献[7]中,三星公司还就压力和电压的形成及压力位置形成申请了专利.2014年底,苹果公司在文献[3]的基础上提出一种基于用户自主选择压力触控接口的设备和接口的实现方法[5,6],进一步把压力触控技术实用化,并于2015年9月中旬正式推出具有压力触控功能的iphone 6S/6S plus手机.Senton公司针对压力触控技术的应用提出了基于压力触控的虚拟键盘接口方面的专利,让压力触控技术在应用层面更进一层.2015年9月初,华为公司在柏林展会上推出Mate S手机.该款手机集成了压力触控技术,率先于苹果公司的iphone 6s/6s plus发布,引起全球关注.从技术资料上看,华为最新的Mate S手机采用的是Synaptics公司的Synaptics 3700系列压力触控技术.此外,国内的中兴通讯公司也推出了基于压力触控的axon型号手机.三星公司宣称将在2016年新推出的 Galaxy S7手机上增加压力触控技术.虽然从专利技术看,较早就有压力触控这项技术了,由于生产技术和集成技术的限制,压力触控技术不能微型化,直到2015年关于压力触控的微型化的相关专利出现.文献[8]中,Li等人提出生产一种无色透明的薄膜状的压力触控层可以应用在塑料、金属板等材料上,并通过简单的接口与外部通讯,若能成功,压力触控不再是几个顶级手机商的游戏.触控技术的出现使得人机交互提升到新的阶段,将改变虚拟现实技术及基于虚拟现实技术的游戏操作方式.
虚拟现实技术是2015年信息技术的“关键词”之一,GOOGLE、微软及苹果公司都整合或收购虚拟现实技术的公司和专利,为虚拟现实的进一步发展蓄力.压力触控技术作为一个全新的实用技术使得屏幕从平面走向“深度”,不仅使得虚拟现实应用在交互接口方面具有良好的人机交互和视窗效果,而且在虚拟现实的“沉浸”体验方面将会有革命性的变化.目前,国内外一些游戏公司在尝试做基于虚拟现实的游戏和应用,但由于要通过各种穿戴装备、3D眼镜、3D手套等来实现,在推广方面并不顺利.因此,压力触控技术下的虚拟现实应用开发面临巨大的机遇,本文将从压力触控技术与虚拟现实技术的融合与应用的角度进行探索研究.
2原理分析
2.1原理机制
最新推出的压力触控屏,结构如图1所示,由屏幕保护层、压力传感层和显示器层构成,在压力传感层四个角安装了压力传感器,用来接收屏幕上的触控的压力[2],如图1所示.在压力触控技术出现前,手机屏结构,只是普通的触摸屏幕,由屏幕保护层和显示器层两层结构构成,只能在x,y轴上进行左右拖动,放大缩小等平面操作.
图1 压力触控屏结构图 图2 触控屏在触控下的变化模拟图
由于压力传感层的存在,使得新型的压力触控型屏幕除了左右上下操作的x,y轴外,还有了深度的操作的Z轴.反应极其灵敏的压力传感器能感受到屏幕不同部位不同力度的触控,屏幕会随着力度产生微小的弯曲变化,如图2所示,(a)图为触压前的模拟图,(b)图为触压时的模拟变化图.
图3 触压键的压力和电压级别
不同厂家会根据需要设置相应的压力级别,例如:三星的压力触控分成五个不同级别,分别对应3V/2.5V/2V/1.5V/1V 五个级别的电压[4,7],如图3所示.当用户按压触摸板的表面,压力传感器可拾取四个相应的压力信号.压力信号可以被压力的信号处理电路进行处理,通过阈值响应对应事件.
2.2触压计算
实际应用生产中,为降低屏幕的厚度和生产成本,通常采用四个压力传感器的布局方式.由于压力传感器不是在屏幕的正下方,因此每一次触压需要通过四个压力传感器计算接触点的真实力度F和坐标位置(x,y). 我们使用基于压力位置信息检测的多元化的叠加测量压力,具体实现方法是通过逆矩阵迭加计算的方法.
设四个压力测量仪器分别为FTL,FFR,FBL,FBR,通过触压位置与压力传感器的位置关系计算.设触压位置变化的起始和终点分别为A(x1,y1),B(x2,y2).设屏幕是一个尺寸为WH的矩形,通过线性模型可以得到(FTL,FFR,FBL,FBR与F1,F2及压力档次之间的关系[2],如公式1所示.
(1)
公式(1)中只有F1,F2是未知数.此外,根据合力关系可得:
F1+F2=FTL+FTR+FBL+FBR
(2)
为更好理解和计算,公式(1)可写成:AX=B
(3)
其中X是一个包含F1,F2的矩阵.利用伪逆矩阵关系,可得:X=(ATA)-1AB
(4)
因此,可以求得A(x1,y1),B(x2,y2)对应的触压力.
2.3触觉反馈原理
图4 触觉反馈原理图
触觉反馈是通过专门的触觉引擎来完成.引擎的基本原理是根据输出电压和频率变化产生脉冲振感.根据不同的定义产生相应的振感,还可结合声音变化来实现.假设当频率在一定范围内从小到大变化,人的手指会感觉由疏松向致密的脉冲振感,如图4触觉反馈原理图所示.
在虚拟现实应用中,触觉反馈非常重要.一直以来研究人员都是通过外置穿戴设备来实现,费用高且不能很好地推广应用.因此,类似手机这样小型的应用平台兼有压力触控和触觉反馈系统的装置是虚拟现实应用的理想平台.
2.4硬软件要求
操作系统定义了对应的压力传感器接口,一方面接受来自压力传感器的变化,另一方面给App开发者提供有关封装接口.因此,基于压力触控技术的应用除了在硬件方面有要求,在操作系统上和传统手机也是不一样的.根据苹果公司实验室开发文档提示,压力触控技术须在IPhone 6s/6s plus以上硬件环境,并且是iOS9.0版本以上操作系统.同理,压力触控技术在Android类手机上的应用也需有对应的硬件和软件环境要求.
3开发技术框架
此框架在压力触控理论的基础上,通过API再封装的形式主要整合了苹果开发者社区SceneKit等五个优势模块,以3D虚拟现实技术应用为重点,结合压力触控新技术和虚拟现实开发API进行整合和封装,以适用压力触控的需要和快速开发的需要.
3.1框架开发环境
目前,由于技术条件等原因,压力触控技术的开发和应用条件相对严格,只有苹果公司公开了其API,框架具体环境参数如表1所示.
表1 框架开发环境
3.2框架介绍
本框架基于苹果开发环境,整合了SceneKit, SpriteKit, Metalt等工具模块,由XCode负责资源打包管理、实时编辑,以swift为主要语言并根据开发需求进行定制的一个实用框架.其中,SpriteKit是一个实用的2D游戏框架,负责3D操作之外的大部分交互;SceneKit是基于虚拟现实的一个3D游戏框架,主要支持粒子系统和物理模型;Metalt 是苹果公司对图形渲染开发的API集,效率比OpenGL高10倍以上,可以实现基于GPU去考虑多线程渲染;GamePlayKit主要提供游戏实体组件系统和一些通用模式,同时它还提供了包路算法、模糊逻辑和规则系统算法在内的各种游戏算法;Model I/O模块主要负责快速加载和导出3D资源文件,以及物理的材质和光照的处理.开发框架构成图如图5所示.
苹果公司在iOS9上提供了三个压力触控的API,分别是主屏幕上快速链接API,程序预览推送及自定义接口.在应用开发中,前两个API是苹果公司预置的功能,主要用来快速、轻松访问,主要用在菜单交互和功能预览等方面.真正能提升应用水准的就落在第三个API的自定义上.
EngineAPI,UTAPI,ForceTouchAPI,VR/ARAPI……
SceneKit SpriteKit MetaltUIKit GameplayKit ModelI/O
SOFTWARELEVEL:iOS9.0+,XCode7.0+,Swift
HARDWARELEVEL:OS+IPhone6S/6SPlus
图5技术框架构成图
3.3压力触控相关类和应用
主要体现在三个API上.一是快速链接应用,包括通过数组直接配置实现的静态快速链接和动态快速链接功能,动态链接功能通过WK Web View UI Application Shortcut Item, UI Mutable Application Shortcut Item,UI Application Shortcut Icon 三个类实现,都是iOS9为了压力触控应用增加的类和方法;二是为了实现程序 Peek 和 Pop功能,iOS9在 UI View Controller 类增加了UI Preview Action,UI Preview Action Group类和UI Preview Action Item协议及通过WK Web View类即可实现WEB类的应用实现Peek 和 Pop功能;第三是自定义接口,主要是通过UI Touch类、force类和maximum Possible Force类来实现.UI Touch类增加了压力触控可用性检测属性UI Force Touch Capability,触摸属性estimated Properties,触摸对象更新属性updated Properties等,新增 Precise Location In View,Precise Previous Location In View等获取X/Y坐标时的精度等API.压力灵敏度属性 Pressure Sensitivity,可以和绘画类及其它创作型软件结合使用,实现根据压力的大小来改变笔触/画线的粗细值等应用.
3.4基本开发流程及说明
使用本框架开发基于压力触控类的应用,只需按照封装好API文档进行调用即可,不需要了解底层的实现.基本开发流程如图6所示.下面对模型对象、虚拟互动和虚拟渲染操作进行简要说明.
利用框架快速实现几何模型对象建立.Scene Kit 中内建了几种简单的几何模型,如盒子、球体、平面、圆锥体等,另外根据开发需要可以加载自定义3D模型.通过制定文件名来导入COLLADA 格式的模型文件,方法如下:let chessPieces=SCNScene(named: “chess pieces”) ,当文件里加载的场景完毕,将其设置成 SCNView 的 scene 即可;也可以选择性加载一部分对象要显示在屏幕上时,通过对象名设定而手动加载到 view 上,代码实现如下:
↓
↓
图6 开发流程图
if let knight =
chessPieces.rootNode.childNodeWithName(“Knight”, recursively:true) {ceneView.scene?.rootNode.addChildNode(knight) }
虚拟互动属于业务逻辑环节,主要通过SceneKit 机制来处理用户输入,如键盘事件、鼠标事件、触摸事件和手势识别.由于SceneKit 中只有一个视图 (sceneview) ,因此处理键盘事件或如捏取、滑动、旋转、深压等互动,需要通过事件捕捉及位置计算来实现,通过-hitTest(_: options:) 来做点测试并返回一个SceneKit 数组,里面存有每个相交的模型对象以及从摄像机投向这个测试点的射线,包括交点坐标、交点表面法线,交点的纹理坐标点.伪代码实现如下:
if let firstHit = sceneView.hitTest(tapLocation, options: nil)?.first as? SCNHitTestResult {
let hitNode = firstHit.node
// do something with the node that was done...
}
虚拟渲染是模拟现实中的重要环节,在本框架中SceneKit是通过插入 shader代码 (GLSL) 来改变默认渲染,此外还提供了对旋转矩阵、模型数据、样本贴图及渲染后输出色值的访问,实现用于完全自定制地进行材质渲染及光照和材质的配置等.SceneKit 使用 SCNTechnique 类来实现延时着色,使用字典创建并定义了绘图步骤、输入输出、shader 文件、符号等,通过计算色值输出场景的颜色和景深.通过获取景深,获取法线和边界检测等操作从而实现轮廓.
4实验
实验目标:应用技术框架开发一个压力触控(正向)应用和触觉反馈(反向)应用,以测试基于压力触控的虚拟现实应用开发框架效果.
图7 守门训练反馈实验图
实验原理:结合压力触控和触觉反馈开发虚拟现实应用,一方面通过手指压力给虚拟物体不同的压力以产生不同的效果,另一方面通过“触觉引擎”实现屏幕控制器的声音和不同频率的震动与不同强度的涟漪震动等反馈,增强沉浸感,加强虚拟现实体验.
4.1实验设计与数据采集
我们以技术框架为基础,开发了拳击比赛和守门训练两个实验项目.实验测试环境是iPhone 6s plus.通过两个实验项目了解压力触控、触觉反馈与虚拟角色的关系,以及了解技术框架的效果.
图8 压力与电压的关系
我们采取双人拳击游戏的模式,通过拳击对抗实现压力触控的检测,使用程序记录游戏者触压力、电压、游戏道具变化等数据.其中,触压(force)并不能直接测出,需根据公式(4)计算;另一方面,通过足球(如图7所示)和拳击两个简单游戏来检测触觉反馈效应,通过游戏者一方操作人员在不同解压下,使用程序记录对抗方在触觉和听觉的脉冲与时间等数据.
4.2实验数据分析
(a) 触压与电压的关系.
当压力在0-110g持续变化时,对应电压相应地变化,如图8.
从图8可知,随着触压变大时,对应的电压变大,并无限接近于4伏特.这变化趋势与文献[4,7]相反,电压的上限也不一样,这一变化与压电式效应接近.
(b) 脉冲与持续时间的关系.
图9 持续触压时脉冲电压的变化 图10 游戏对抗中能量消耗与触压的关系
游戏攻击方的持续攻击(持续增加触压),在游戏对抗方产生强烈的触觉反馈,反馈参数中脉冲(pulse)与持续时间(time)存在以下关系,如图9所示.
(c) 触压与虚拟角色的关系.
实验中,我们关联虚拟角色活动与电压,使触控的压力与虚拟现实角色的性质成对应关系,图10显示了虚拟现实中攻防双方能量消耗与触压的关系.
从图10可知,相同压力下攻击方消耗的能量比对抗方要小,符合游戏原理和现实生活.
5结束语
本文通过压力触控技术原理的研究,提出一种应用压力触控技术与虚拟现实应用相结合的开发思路,并通过API重封装的方式整合苹果多个不同性质的技术框架和压力触控的新API,形成一个实用的虚拟现实应用开发框架.利用此框架可以快速开发基于压力触控技术的虚拟现实应用及游戏产品.通过简单的应用开发实践,证明了触压、电压、触觉和虚拟现实的关系;实验证明了技术框架的可行性.
压力触控技术的应用,使得虚拟现实应用更加丰富.压力触控技术还可以应用在精确测量脉搏和血压等智慧健康领域.从虚拟现实、现实增强和压力触控技术的发展趋势看,苹果公司很快将推出自家的一体化虚拟现实开发平台和硬件设备,基于压力触控技术的虚拟现实应用与游戏将会有更好的前景.
参考文献:
[1]ELO TouchSystems Inc. Dual sensor touchscreen utilizing projective-capacitive and force touch sensors[P]. US:6492979,2002-12-10. http://www.google.com/patents/US6492979.
[2]Synaptics Inc. System and method for measuring individual force in multi-object sensing[P]. US:8570297,2013-10-29. http://www.google.com/patents/US8570297.
[3]Apple Inc. Touch pad with force sensors and actuator feedback[P]. US:8633916,2014-1-21. http://www.google.com/patents/US8633916.
[4]Samsung Inc. The touch input device and an electronic device having the same of the invention[P]. KR:1020140042488, 2015-10-19. http://www.pvsm.ru/news/101349/print/.
[5]Apple Inc. Device, Method, and Graphical User Interface for Selecting User Interface Objects[P]. US:20150067602, 2015-03-5. http://www.google.com/patents/US20150067602.
[6]Apple Inc. Force sensor interface for touch controller[P]. US:8988384, 2015-3-24. http://www.google.com/patents/US8988384 http://www.google.com/patents/US20150268785.
[7]Samsung Inc. Touch display apparatus sensing touch force[P]. US:20150324052,2015-11-12. http://www.google.com/patents/US20150324052.
[8]LI H, MANIAR P. Force-sensing touch screens[C]. SID Symposium Digest, 2015,46(1):1088-1090.
DOI:10.14182/J.cnki.1001-2443.2016.04.008
收稿日期:2016-02-18
基金项目:广东省教育科学“十二五”规划教育信息课题(13JXN035);广东省教育教学改革项目(201401232);广东省高校校长联席会议课题(GDXLHYB037).
作者简介:凌财进(1983-),男,广东河源和平人,硕士,主要研究方向为虚拟现实、物联网安全、机器学习等.
中图分类号:TP311.1
文献标志码:A
文章编号:1001-2443(2016)04-0349-06
The Exploration and Research on the Use of Force Touch in Virtual Reality Applications
LING Cai-jin1,2,ZENG Ting1,HEI Xia-li2,ZHANG Chao2
(1.School of Electronic Information Engineering, Heyuan Polytechnic, Heyuan 517000, China; 2.College of Engineering, Delaware State University,Dover Delaware 19901, U.S.A)
Abstract:Due to the fact that traditional user interaction in virtual reality application is not rich enough, we propose to supplement the current user interaction mechanism by including the latest technology on mobile device, namely: force-touch technology and tactile feedback technology. Our goal is to research and develop a unifying API suitable for developing applications integrating force-touch into virtual reality framework. We developed two applications to demonstrate the feasibility and the effectiveness of the API in enhancing the user interactivity in the realm of virtual reality.
Key words:force touch; force sensing; tactile feedback; virtual reality; game development
引用格式:凌财进,曾婷,黑霞丽,等.压力触控下虚拟现实应用框架的探索与研究[J].安徽师范大学学报:自然科学版,2016,39(3):349-354.