欢迎来到天天文库
浏览记录
ID:42663804
大小:52.84 KB
页数:9页
时间:2019-09-19
《Android N VR代码简析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、AndroidNVR代码简析虽然Google早在2016的IO大会上就说DayDream会随着AndroidN发布,但是从AndroidN的前几个版本的代码来看,都是没有集成的,直到Android-7.0.0_r14这个版本,才可以看到DayDream的一些简单代码,跟之前预见的一样,DayDream跟三星的GearVR采用的是同样的架构,都分离出来一个单独的VRSDK,比如三星的OculusSDK,Google的GoogleVRSDK,应用基于他们的SDK开发应用程序,然后运行在支持这些SDK的Android系统上面。单独分离出一个SDK,除了方便应用开发者之外,主要的
2、目的是用来把VR的一些核心算法隐藏起来,比如用来减少延迟的ATW异步时间扭曲算法就是被封装在这里,是闭源不公开的,众所周知,在手机上面运行VR的时候一个最大的挑战就是延迟,当一副画面的延迟超过20MS,人就会感觉不舒服恶心,严重影响用户体验,一个好的VR产品都会尽量避免延迟。目前在MobileVR上主要有以下几种方式来减少延迟:1、硬件层面的优化·提升传感器的采样频率,减少刷新率与传感器频率的同步等待时间消耗。·提升传感器的精度,减少对采样数据进行稳定性过滤产生的延迟。·采用有线传输也有一部分原因是出于延迟的考虑。·屏幕使用OLED替代LCD,减少像素颜色切换的时间。·提
3、升屏幕刷新率,主流的屏幕是60Hz,那每帧就是16.67ms;如果提升到90Hz,那每帧就是11.11ms.·双GPU渲染,一个GPU负责左眼的画面,一个GPU负责右眼的渲染。2、软件层面的优化·多分辨率渲染,VR画面的中心部分可以高分辨率渲染,周边部分低分辨率渲染·上面提过的ATW算法,一个具有高优先级的线程,以一定的帧率,不断的根据Android渲染出来的画面生成一个新的画面,然后投递到屏幕。·FrontBufferRender,即只有一个renderbuffer,应用赶在下一个屏幕刷新周期到来之前把画面更新到这个renderbuffer,然后屏幕使用这个render
4、buffer更新显示内容,这个需要修改GPU和Display的Driver部分代码。AndroidN的DayDream对硬件和软件的一些需求,其实都是根据上面这些优化手段提出来的,具体到AndroidN的代码来说,它提供了一个SDK,应该是解决了ATW算法和多分辨率渲染等优化问题,然后新增了一个系统服务VrManagerService和vrHAL层,应用通过VrManagerService来设置系统进入VR模式,VrManagerService又是通过vrHAL层去实现具体模式的切换的。ImplementthisHALtoreceivecallbackswhenavirt
5、ualreality(VR)applicationisbeingused.VRapplicationscharacteristicallyhaveanumberofspecialdisplayandperformancerequirements,including:·LowsensorlatencyTotalend-to-endlatencyfromtheIMU,accelerometer,andgyrotoanapplication-visiblecallbackmustbeextremelylow(<5mstypically).ThisisrequiredforHIF
6、Isensorsupport.·LowdisplaylatencyTotalend-to-endlatencyfromtheGPUdrawcallstotheactualdisplayupdatemustbeaslowaspossible.ThisisachievedbyusingSurfaceFlingerinasingle-bufferedmode,andassuringthatdrawcallsaresynchronizedwiththedisplayscanoutcorrectly.ThisbehaviorisexposedviaanEGLextensiontoa
7、pplications.SeebelowfortheEGLextensionsneededforthis.·Low-persistencedisplayDisplaypersistencesettingsmustbesetaslowaspossiblewhilestillmaintainingareasonablebrightness.Foratypicaldisplayrunningat60Hz,pixelsshouldbeilluminatedfor<=3.5mstobeconsideredlow-persistence.
此文档下载收益归作者所有