我有一个Android应用程序,它在OpenGL ES上显示渲染内容。这不是超越Unity或任何其他引擎。它是一个自定义引擎,包含NDK中所有相关的代码部分。
现在我想把这个应用到虚拟现实设备上,比如Google Cardboard和类似的设备,手机被放进一个有镜头的盒子里。
如何从NDK内部的智能手机传感器获得头部方向?可能陀螺仪和加速度计的值是必需的吗?如何获得NDK内部的那些以及如何将其转换为所需的头部方向?
谢谢!
PS:目前使用android-ndk-r10e, adt-bundle-windows-x86_64-20140702, jdk1.8.0_45,目标是Android-19。
是需要传感器。应该有一些图书馆已经这样做了,但据我所知还没有。你想要获得的值来自Android API,这主要是通过JNI调用(从C/c++调用java)访问的(读:"仅")。你想要的东西似乎都列在这里了
我在Android下发现的用于头部跟踪的Java库如下。但是它们没有随JNI调用一起在NDK中使用,这些需要手动添加。如果有人有样例代码或指令这样做,请添加到这个线程。
- 蔡司VR One SDK通过功能double[] getRotation()
- Google Cardboard SDK通过headTransform.getHeadView()函数