【问题标题】:Google Cardboard VR sensors谷歌 Cardboard VR 传感器
【发布时间】:2015-01-03 17:31:30
【问题描述】:

我正在使用 Google Cardboard(它的 HeadTracker 类)来检测 AR 应用程序中有关设备旋转的某些事情。效果很好。

但是,在某些设备上,它不起作用(没有任何反应)。我认为这是因为他们没有必要的传感器。我的问题:

1) 我想在运行时检测当前设备是否支持 HeadTracker,即它有可用的必要传感器。为此,我需要知道 HeadTracker 使用了哪些传感器,以便查询这些传感器是否存在。这些传感器是什么?

2) 有没有办法在 AndroidManifest 中指定必要的传感器?据我所知,没有办法。因此,如果用户下载我的应用程序,该应用程序必须在运行时通知用户他的设备不受支持。这不好。有什么想法吗?

【问题讨论】:

  • 我正在做这种类型的任务..但没有成功..你能帮帮我吗..?我已经完成了,之前创建了一个 VR 表面并在其中设置了图像。但我希望这张图片与头部运动一起使用。我该怎么做..
  • 我假设您的清单中已经有uses-feature android:glEsVersion="0x00020000"?你能详细说明“什么都没有发生”吗?你的意思是你没有得到任何加速度计数据?
  • 是的,没有数据。

标签: java android augmented-reality google-cardboard


【解决方案1】:

Google Cardboard 的网站有一个设备compatibility list: 它似乎有些不完整,所以我尝试查看 Cardboard.jar 的 source code。 HeadTracker.java 似乎有以下逻辑:

SensorManager sensorManager = (SensorManager)HeadTracker.this.mContext.getSystemService("sensor");

for (int sensorType : HeadTracker.INPUT_SENSORS) {
  Sensor sensor = sensorManager.getDefaultSensor(sensorType);
  sensorManager.registerListener(HeadTracker.this.mSensorEventListener, sensor, 0, handler);
}

将 INPUT_SENSORS 定义在与

相同的文件中

{TYPE_ACCELEROMETER, TYPE_GYROSCOPE};

我不确定 HeadTracker 是否可以在只有其中一个传感器的手机上工作。我的猜测是两者都是必要的。

您的应用可能需要某些审查器才能运行(甚至在 android 市场上可见),您的清单中包含以下行:

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />

您还可以使用 SensorManager 的在运行时检查传感器是否可用于您的应用 public Sensor getDefaultSensor (int type)函数。

【讨论】:

  • 帮助很大,谢谢。抱歉,我错过了赏金截止日期(我昨天不在),所以它似乎是系统自动授予的。
  • 虽然它听加速度计但是得到预测的 gl 矩阵似乎使用了最后一个陀螺仪值,如果设备没有陀螺仪,它将始终为零。如果您的 Cardboard 应用程序仅适用于加速度计,请告诉我
  • 您在兼容性列表中发布了错误的链接。我在哪里可以找到这份清单?
【解决方案2】:

谷歌 Cardboard 耳机不能只使用加速度计,它需要陀螺仪。

加速度计可以检测施加在手机上的力。这包括读取地球的引力,因此手机可以估计“向下”的位置。但是加速度计不能准确地告诉你你在 3d 空间中的方向是什么,它只能根据它读取的力来近似。

这对于 VR 来说精度太低了,所以这就是你需要陀螺仪的原因。

如果您下定决心让它在非陀螺仪手机上运行,​​您可以根据加速度计数据编写一段自己的代码来近似手机方向,但请记住,这与真正令人满意的 VR 相去甚远经验。

【讨论】:

    【解决方案3】:

    如果您希望您的游戏在没有陀螺仪手机的情况下运行,请使用 Fibrum SDK

    例如尝试

    Space X Hunter VR:

    https://play.google.com/store/apps/details?id=com.creation3d.spacexhuntervr

    VR 碗:

    https://play.google.com/store/apps/details?id=com.creation3d.vrbowl

    Fibrum 的游戏

    【讨论】:

    • 欢迎来到 Stack Overflow!虽然这理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多