HTC vive Eye pro眼动追踪初识
1, 安装 VIVE_SRanipalInstaller_1.0.3.0
https://download.csdn.net/download/moonlightpeng/11237948
官方的下载地址
https://developer.vive.com/resources/?site=cn
https://developer.vive.com/resources/downloads/?site=cn
2,在unity工程中导入相应的package
Vive-SRanipal-Unity-Plugin.unitypackage
https://download.csdn.net/download/moonlightpeng/11237918
3, 标定
方案1 在没有运行工程时,直接在头盔中通过手柄来标定。
方案2 用unitypackage里面的标定功能。
4, 在工程中用红色的小球表示眼睛的注视点,把自动的紫色的射线不显示。
直接把Line Renderer不要勾选。
5 修改对应的脚本 SRanipal_GazeRaySample.cs
//========= Copyright 2018, HTC Corporation. All rights reserved. ===========
using UnityEngine;
using UnityEngine.Assertions;namespace ViveSR
{namespace anipal{namespace Eye{public class SRanipal_GazeRaySample : MonoBehaviour{private GameObject gazePointer;public int LengthOfRay = 25;[SerializeField] private LineRenderer GazeRayRenderer;private void Start(){gazePointer = new GameObject();gazePointer = GameObject.Find("GazePointer");if (gazePointer){gazePointer.GetComponent<MeshRenderer>().enabled = false;}else{Debug.LogError("cannot find object of gazePointer");}if (!SRanipal_Eye_Framework.Instance.EnableEye){enabled = false;return;}Assert.IsNotNull(GazeRayRenderer);}private void Update(){if (SRanipal_Eye_Framework.Status != SRanipal_Eye_Framework.FrameworkStatus.WORKING &&SRanipal_Eye_Framework.Status != SRanipal_Eye_Framework.FrameworkStatus.NOT_SUPPORT) return;Vector3 GazeOriginCombinedLocal, GazeDirectionCombinedLocal;if (SRanipal_Eye.GetGazeRay(GazeIndex.COMBINE, out GazeOriginCombinedLocal, out GazeDirectionCombinedLocal)) { }else if (SRanipal_Eye.GetGazeRay(GazeIndex.LEFT, out GazeOriginCombinedLocal, out GazeDirectionCombinedLocal)) { }else if (SRanipal_Eye.GetGazeRay(GazeIndex.RIGHT, out GazeOriginCombinedLocal, out GazeDirectionCombinedLocal)) { }else return;Vector3 GazeDirectionCombined = Camera.main.transform.TransformDirection(GazeDirectionCombinedLocal);GazeRayRenderer.SetPosition(0, Camera.main.transform.position - Camera.main.transform.up * 0.05f);GazeRayRenderer.SetPosition(1, Camera.main.transform.position + GazeDirectionCombined * LengthOfRay);Ray ray = new Ray(Camera.main.transform.position - Camera.main.transform.up * 0.05f, GazeDirectionCombined);Debug.DrawLine(Camera.main.transform.position - Camera.main.transform.up * 0.05f, Camera.main.transform.position + GazeDirectionCombined * LengthOfRay, Color.red); //这个就是绘制出的射线了,包含发射位置,发射距离和射线的颜色; RaycastHit hitInfo;if (Physics.Raycast(ray, out hitInfo, 100)){DrawLineInGame(hitInfo.point);GameObject hitme = hitInfo.collider.gameObject; }else{gazePointer.GetComponent<MeshRenderer>().enabled = false;}}void DrawLineInGame(Vector3 point){//render the position of spheregazePointer.GetComponent<MeshRenderer>().enabled = true;gazePointer.transform.position = point;}}}}
}
HTC vive Eye pro眼动追踪初识相关推荐
- HTC VIVE EYE+Unity眼动追踪
软件准备工作 下载SRanipal SDK和SR SRanipal SDK:允许开发人员跟踪和整合用户的眼睛运动,(读取+模拟) 需要在通知托盘中SR运行时,显示当前眼动追踪的状态, 1.运行Stea ...
- 中国眼动追踪市场趋势报告、技术动态创新及市场预测
[出版商]贝哲斯咨询 [免费目录下载]眼动追踪技术通过记录用户的眼睛位置和动作来跟踪用户的视线.眼动追踪数据可提供有关人类行为和状况的独特见解,将人们与机器和设备交互的方式数字化,从而为企业提供开发创 ...
- 全球与中国眼动追踪硬件市场现状及未来发展趋势2022-2028
根据QYR(恒州博智)的统计及预测,2021年全球眼动追踪硬件市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028).地区层面来看,中国市场在过去 ...
- 交互技术前沿学习心得——利用眼动追踪改良广告界面
在上一篇文章中,我分享了一篇来自<The Wiley Handbook of Human Computer Interaction>的文章<Improving Ad Interfac ...
- 交互技术前沿学习分享——利用眼动追踪改良广告界面
通过之前的学习,我们接触了许许多多的交互方式,并通过p5/processing等初步接触了一些简单的用户交互方式.那么,当下最先进,或者未来有可能实现的交互模式是怎样的呢?今天我就来介绍一篇关于眼动追 ...
- 如何让女性乳房更具吸引力?整形医生可以用眼动追踪技术大显神通吗?
全文共2806字,预计学习时长9分钟 图源:Unsplash 自古以来,乳房就被看做女性身体的象征,古希腊艺术家雕刻的裸体女性和文艺复兴时期欧洲画家创作的美丽女神中,都会突出完美的乳房.乳房不但用来哺 ...
- Nature Neuroscience:利用深度神经网络进行基于磁共振的眼动追踪
文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 观察行为为了解认知和健康等多个核心方面提供了一扇窗,它也是许多功能磁共振成像(fMRI)研究中感兴趣或容易混淆的重要变量.为了让眼动追踪在 ...
- Unity HoloLens2 开发笔记(六):使用眼动追踪 追踪物体
注:只有 HoloLens 2 支持眼动追踪,1代HoloLens并不支持. 1.确保启用了眼动追踪功能 Mixed Reality Toolkit > Utilities > Confi ...
- 通过精准且价格合理的智能手机眼动追踪加快眼动研究
近几十年来,眼动追踪已广泛用于视觉研究,语言和可用性.但是,大多数先前的研究都集中在使用专门的眼动仪的大型台式显示器上,这种显示器价格昂贵并且无法扩展.尽管手机的眼动行为无处不在且花费了大量时间,但人 ...
- 眼动追踪:用户体验设计利器_眼动追踪:如何观察点击之间的差距(以及原因)
眼动追踪:用户体验设计利器 Photo: kellinahandbasket 照片: kellinahandbasket Information overload is becoming an epi ...
最新文章
- 动画性能优化-requestAnimationFrame、GPU等
- java 多模块模块变灰色_到底谁需要Java模块?
- 移动办公计算机,最适合移动办公的三款掌上电脑点评
- 蓝桥杯-组素数-java
- sql管理:索引超出范围必须为非负值并小于集合大小_java面试基础知识-数据库基础知识(数据库索引部分)...
- 精选| 2020年12月R新包推荐(第49期)
- java 怎么调用clojure_如何从Java调用Clojure宏?
- sap成本流怎么看_SAP FICO成本结算的流程到底是怎样的?
- Linux操作系统常用小操作
- 反汇编IDA WinDbg
- MOSS 2010:Visual Studio 2010开发体验(13)——列表开发之列表实例
- 奇葩事情,某些网页打不开
- UI设计是什么要学习哪些软件
- 计算机导论真题(一)
- 运放电路中何时加入偏置电流补偿电阻-运算放大器
- Windows自带录屏
- Android APP开发框架选择——JSBridge既个人心得和技巧
- 怎么实时查看mysql当前连接数呢
- Xcode7报App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insec
- 牛客网-推理判断练习
热门文章
- 大数据面试3分钟自我介绍_大数据开发工程师面试主要面试内容
- linux centos 安装mysql,linux/centos安装mysql
- 重t2加权是什么意思_魔兽世界怀旧服:详解盗贼T2.5套装,别犹豫真香
- 基于PWM调宽的呼吸灯算法
- 决胜未来,2019年前端开发十大战略性技术布局
- 2019年春节加班机暴增 人潮多考验桃园机场准点率
- ntp 服务导致kudu集群不可用
- 从规范去看Function.prototype.call到底是怎么工作的?
- Django模型(model)系统
- java,mysql,hadoop,cdh,hive,spark,ntp,zookeeper,kafka,storm,redis,flume,git 安装详解