1、高通VR加入leap motion手部追踪!
高通近日向到家展示了其新型VR一体机,据悉,这款VR一体机加入leap motion手部追踪。
当下,不少尚在发展期的的技术可能成为突破 VR 输入障碍的钥匙,手部跟踪技术即是这些关键技术之一,而 Leap Motion 公司则是该领域行业龙头。
Leap Motion 取得的最新进展是手部跟踪技术与移动 VR 头显的结合。去年年底,该追踪系统已正式集成到高通出品的头显上。
这意味着在未来一年内,Leap Motion 的手部追踪系统“版图”或将继续往其他 VR 头显扩张。据 Leap 说,在头显开发过程中,手部跟踪技术完全是可选的,而且价格相对便宜(外部传感器成本仅为80美元),所增重量相对头显整机而言更可忽略不计。
显然,该系统也不需要任何外设或硬件支持,甚至即便采用该技术,是否在应用中开启仍然是开发者/玩家的自由。这一点至关重要:许多第三方或实验版VR外设本就很难在头显制造商处获得支持,而与头显集成的手部追踪技术在使用中的“可选性”则大大降低了它的“侵略性”。开发者不必苦苦寻觅制造商支持,也不必担心相同技术在其他头显上的普及率,同时玩家也能拥有选择的余地。
CES大会上英特尔发布的参考级头显中也搭载了一款相似不同类的手部跟踪系统,但外媒证实高通版更优,因为相较之下后者的实际追踪性能要胜于前者(至少就目前而言)。
此次GDC大会上 Leap 的演示和以往别无二致:用户可以通过用手揉捏、拉伸来制造大小不同的物件。演示内容并非新事,但它在高通头显上的表现甚佳,当然也远非完美:手部动作的错读和手势的识别效率等问题依然存在。
希望Leap Motion能够在手部追踪技术走入消费级头显之前进一步解决这些问题,当然目前它的表现已值得圈点。
最后,Leap Motion存在着和其他手部追踪技术一样的问题:虽然它解放了用户的双手,但在与物件的交互中缺少触觉反馈。玩家仍不能在实际体验中感受到按、推等真实触感。
尽管如此,在Leap Motion公司的设想中,该技术的运行环境仍是那些不一定依赖于触觉反馈的应用。对于Leap和其他手部追踪技术而言,在OculusTouch等VR手柄不停发展的背景下,如何说服别人“手”才是最完美的输入机制、手部追踪系统才是未来VR的必要组件之一或将是该技术发展的关键。
自然,短期内手部追踪技术不会成为VR输入的主要形式,但Leap Motion对此并不“着急”:就目前而言,Leap追踪系统能够作为可选组件轻松添加到移动/PC头显中,而这正是公司将该系统运用在高通头显上的意义;它是对手部追踪技术在头显制造商中的一次推广,并能有机地扩大手部追踪技术的安装版图。
2、leap motion怎么和unity 3d 实现对接
1、下载leap SDK for unity
leap SDK for unity是作为plugin library获取leap数据的,而免费版的U3D不支持native plugins。对此开发者中心也有办法能够使免费版的U3D使用leap SDK。
2、首先新建unity工程
3、在项目根目录下新建Plugins文件夹,从下载好的SDK(https://developer.leapmotion.com/downloads)中找到 ~/LeapSDK/lib/UnityAssets/Plugins,将里面的内容放到Plugins文件夹中。之后找到 ~/Examples/UnitySandbox/Assets/Scripts/Leap/LeapUnityExtensions.cs,同样复制到Plugins文件夹。这时plugins内应有LeapCSharp.bundle,LeapCSharp.NET3.5.dll,以及LeapUnityExtensions.cs,至此SDK就算搞定,十分方便。
4、场景内创建一个plain和一个cube(用以移动)
5、在plugins中新建cs脚本,命名LDCLeapControl.cs,在IDE中添加代码如下:
usingUnityEngine;
usingSystem.Collections;
usingSystem.Collections.Generic;
usingLeap;
publicstaticclassLDCLeapControl
{
publicstaticfloatROTATE_MOD=3.14F;
//membervariables;
staticLeap.Controller_controller;
staticLeap.Frame_frame;
staticLeap.Hand_hand;
staticLDCLeapControl()
{
_controller=newLeap.Controller();
}
//getters
publicstaticLeap.FrameFrame
{
get
{
return_frame;
}
}
publicstaticLeap.HandHand
{
get
{
return_hand;
}
}
//getlatestframecalledeachsecond
publicstaticvoidUpdate()
{
if(_controller!=null)
{
FramelastFrame=_frame==null?Frame.Invalid:_frame;
_frame=_controller.Frame();
if(_frame!=null)
{
if(_frame.Hands.Count>0)
{
_hand=_frame.Hands[0];
}
}
}
}
publicstaticfloatgetHandInput(stringgesture)
{
floatleapData=getLeapData(gesture);
returnleapData;
}
privatestaticfloatgetLeapData(stringgesture)
{
Update();
floatleapData=0.0F;
if(_hand!=null)
{
Vector3PalmPosition=newVector3(0,0,0);
Vector3PalmNormal=newVector3(0,0,0);
Vector3PalmDirection=newVector3(0,0,0);
PalmPosition=_hand.PalmPosition.ToUnityTranslated();
PalmNormal=_hand.PalmNormal.ToUnity();
PalmDirection=_hand.PalmPosition.ToUnity();
if(gesture=="Rotation")
{
leapData=-ROTATE_MOD*PalmNormal.x;
}
}
returnleapData;
}
}
6、这时,LDCLeapControl作为一个native plugin已经可以为我们所用了,在Assets中新建脚本:moveBehaviour.cs,并添加代码如下:
usingUnityEngine;
usingSystem.Collections;
publicclassmoveBehaviour:MonoBehaviour{
publicfloatsmooth=2.0f;
publicfloattiltAngle=60.0f;
publicboolleapIsEnabled=false;
voidUpdate()
{
if(leapIsEnabled)
{
floatrotate=LDCLeapControl.getHandInput("Rotation");
floattiltAroundY=rotate*tiltAngle;
Quaterniontarget=Quaternion.Euler(0,tiltAroundY,0);
transform.rotation=Quaternion.Slerp(transform.rotation,target,Time.deltaTime*smooth);
}
}
}
在这里利用取得的leapData作为object旋转的quaternion值(position移动等变换同理,略),将该行为付给cube(打开leapIsEnabled开关),运行,现在随着你手腕的左右旋转,方块也会在y方向上旋转了。
3、unity只能做游戏吗
不是,Unity除了可以做游戏,还广泛应用在动画、工业仿真、全息投影、虚拟现实、移动端VR、AR、手机APP、体感开发、建筑可视化、场景模拟等领域。
1、动画行业
从独立的“精品制作屋”到面向全球的媒体制作商,世界各地的工作室都在利用实时渲染的威力加快制作速度、解决工作流程中遇到的障碍并通过 Unity 来提高创造力。在动画产业中对于Unity的使用是关乎生存的问题,而不是选择问题。除了节省预算之外,在Unity中动画资产可以重复用于各种目的。过去的单一的动画场景资产现在可以在一个项目中的多个场景中被使用,甚至还能够将它们的用途扩展到游戏和其他各种媒体之中。
2、工业仿真
当今世界工业已经发生了巨大的变化,先进科学技术的应用显现出巨大的威力。Unity3D 引擎已经被世界上一些大型企业广泛地应用到工业仿真的各个环节,对企业提高开发效率,加强数据采集、分析、处理能力,减少决策失误,降低企业风险起到了重要的作用。
3、全息投影
全息投影技术属于3D技术的一种,原指利用干涉原理记录并再现物体真实的三维图像的技术。而后随着科幻电影与商业宣传的引导,全息投影的概念逐渐延伸到舞台表演、展览展示等商用活动中。Unity引擎由于其强大的3D渲染与交互功能,越来越多的成为了全息投影项目开发中,开发者中意的辅助工具
4、虚拟现实
Unity引擎可以实现虚拟室内设计效果,它不仅仅是一个演示媒体,而且还是一个设计工具。它以视觉形式反映了设计者的思想,在装修房屋之前,首先要做的事是对房屋的结构、外形做细致的构思。
5、移动端VR
随着移动VR设备的增多,手机VR眼镜等的普及,移动VR行业也在增长,Unity开发软件发布成手机app,打开后二分屏形式呈现,然后将手机放入盒子中进行观看。
6、手机APP
因为unity是跨平台的,开发完,可以发布到不同的平台。
7、Kinect体感开发/leapmotion开发
leapmotion开发:手势识别的。
Kinect开发:骨骼驱动模型/手势识别/手势触发UI。
这一块统称,体感开发。
8、建筑可视化
通过Unity处理大量的复杂几何体再结合逼真的灯光、表面还有渲染功能,可以做出一个工程或建筑模型。常见的应用制作建筑模型、样板间模型建设,结合VR技术做VR看房等等。
9、模拟
Unity还有一个重要的用途,就是它能模拟各种场景,协助培训或办公,比如现在医疗就用Unity模拟各种实验场景,航空航天模拟各种飞行情况,机械制作可以模拟各种安装和安全等等。用Unity创建各种模拟环境,不仅可以节省成本,还能提高工作效率,使它成为模拟环境中的理想选择,未来也会有更多的使用空间。