导言

这几天做产品,发现了一项很厉害的国外技术Acer公司的裸眼3d显示屏SpatialLabs View Pro 具其官网所描述

旨在为您提供开发在采用SpatialLabs技术的设备上运行的沉浸式体验所需的信息。虽然SpatialLabs的硬件和外形都是独一无二的,但SpatialLabs应用程序与VR应用程序非常相似,因为两者都是立体渲染,并且都有Unreal虚拟摄像机在3D空间中跟踪用户的头部。尽管如此,SpatialLabs自带一套独特的功能,您可以在项目中使用这些功能,提供AR/VR设备无法提供的体验。

通俗来讲,就是实时最终你的眼球,拿你眼球的信息去实时捕捉,进行偏移,最后让你看到屏幕中的画面是3d立体的。 接下来就是我在开发时遇到的所有的坑和难点,其实如此项目经验是十分宝贵的,因为Acer家官网做的实在…

概念以及原理

1

游戏引擎 : 使用 SpatialLabs 插件, Unreal 渲染你的场景的立体效果,产生一对图像,每只眼睛一对。 眼球追踪摄像机 : 通过向每只眼睛投射不同的图像来感知深度。由于不涉及可穿戴设备,所以安装在设备上的一对立体摄像机在三维空间中跟踪用户眼睛的位置。 双凸透镜 : 使用来自Unreal的渲染图像对和相机跟踪的用户眼睛位置,镜头可以将左图像的像素投影到左眼,反之亦然,创建3D效果。我们说镜头“编织”了立体图像对,这样最终的合成图像就显示了,帧中的每个像素都指向正确的眼睛。

环境配置

环境 要开发SpatialLabs体验,需要以下内容:

安装了SpatialLabs Experience Center 带有SpatialLabs技术的Acer设备。可以在非Spatial Labs设备上开发您的项目。但是,您将需要一个能够预览、测试和运行您的应用程序。Unreal项目只能在SpatialLabs Pro版本上运行。 使用兼容版本的Unreal Engine的正常安装 SpatialLabs Unreal插件的副本添加到您的项目(说明如下) 为了打包您的项目,您将需要安装 Visual Studio (推荐 VS2019 ),同时安装“用 C ++开发桌面”和“用 c ++进行游戏开发”的工作负载,并包括“虚幻引擎安装程序”组件

下载插件 下载位置下载后安装到项目的Plugins文件夹下就可以(没有就创建) 打开插件 在插件中禁用OpenXR全家桶 在项目设置中设置 在你项目工程的Config文件下 搜索一个叫GameUserSettings.ini的文件(没有就创建)注意是工程文件,不是引擎文件 添加

[/Script/Engine.GameUserSettings]

ResolutionSizeX=3840

ResolutionSizeY=2160

FullscreenMode=1

程序逻辑

这个甚至都没有任何程序逻辑,按照官网,你只需要按照这样建一个Xr_Pawn的pawn类就可以 然后就可以在SpatialLabs View Pro设备上测试了,我们先按照如图示去演示 一跑演示,果然,SpatialLabs View Pro设备上真是什么东西都没有呢,一查文档发现 需要安装一个驱动,且屏幕分辨率都得为3840*2160 驱动链接 只需要填入你的设备的序列号就可以获得驱动(SpatialLabs View Pro链接需要一根hdmi和一根usb-typec,usb-typec具有特殊协议,手机的usb-typec是不兼容的,别问我怎么知道的) 一切都配置好了之后,正确显示了,这里因为涉密我就不放画面了,但是问题来了,为什么图像没有 凸出来,而是在屏幕里面立体显示 一查文档发现

这么摆放,就会导致图像呈现在屏幕里面 需要这么摆放 但是Acer!你知道吗,你大错特错了,或者说写你家文档的项目经理,你大错特错了,ue4/5都不支持在摄像机外成像,摄像机外的物品就是永远不会显示的,我们花了很长时间去解决这个问题,最后我们可算是测试出来了 只需要这么处理他们的位置关系就可以了,我想这也是Acer他们产品部的本意,可是不知道被哪个大聪明给搞砸了。 最后,Acer的官网真的很乱,文档也是,可技术又真的很牛,找那个驱动驱动链接找了七八个小时。 author:Dacimal

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。