EN
首页 新闻动态 行业新闻 Varjo产品提供可定制开发能力

Varjo产品提供可定制开发能力

1. Varjo专注于研发企业级的头戴显示器

Varjo是一家芬兰VR头显制造商,专注于研发企业级的头戴显示器,为专业人士提供先进的虚拟和混合现实解决方案。Varjo产品从外观、体验和技术方面都为业内高水平设定了新的标准。

Varjo第三代产品使用了人眼仿生技术,使其在115°的视野范围内达到70PPD人眼分辨率,从而提供无与伦比的真实感和可见性;除了能够匹配99%以上SRGB色彩空间反应现实世界之外,还集成眼动追踪 (200 Hz) 和 Ultraleap (v5) 手部追踪提供自然且直观的交互能力;完全支持Unity、Unreal、SteamVR和数百种其它设计软件工具,可以使用您熟悉的工具进行二次开发或定制化开发,让专业用户可以更加直观地体验真实与虚拟世界无缝融合。

2. Varjo产品提供可定制开发能力

2.1 目前支持以下开发平台

<a class='light-link' href='https://varjo.com/' target='_blank'>Varjo</a>二次开发1.png

2.2  Varjo人眼级分辨率开发简介

2.2.1 Varjo人眼仿生显示技术

Varjo头显开发时,可以创建高分辨率的视频输入,而不会影响整体性能。Varjo与其他品牌的头显设备的成像原理相似。主要区别在,要以Bionic Display(仿生显示器)的最佳分辨率渲染图像,应用程序必须提交四个视图,普通头显只需两个。因此每只眼睛有两个显示画面:一个人眼分辨率的焦点显示区域和一个高分辨率的外围显示区域。焦点显示区域在外围显示器的前面,并与之无缝融合。


2.2.2 注视点渲染

VarjoXR-3、VR-3 和Aero 头显除了固定焦点显示外,还使用注视点渲染功能。注视点渲染需要使用眼动追踪,仅在用户当前正在查看的区域中以全分辨率渲染图像。这可以显著提高性能和帧速率,使质量损失达到最小甚至没有。这种方法模仿了我们的眼睛在现实生活中的工作方式,捕捉到我们注视中心周围的最大细节。

<a class='light-link' href='https://varjo.com/' target='_blank'>Varjo</a>二次开发3.jpeg

当Unity 或 Unreal 使用 Varjo XR 插件时,这些功能默认启用

2.3 眼动追踪开发功能介绍

Varjo头显左右眼各具有20个眼部位置追踪器,您可以通过Varjo 二次开发SDK获取头显使用者眼睛的注视数据并进行分析,也可以将这些数据用于内容交互。眼动追踪数据将以 .csv 文件的形式记录,之后可以在视频记录的顶部进行可视化或单独分析。

2.3.1 注视点数据格式

  • CSV 包含每个样本的以下数据:通用注视数据,也可从 Varjo API 获得。

  • 视频采集相关数据:投影的 XY 坐标,可用于将注视坐标直接映射到视频像素坐标。

  • 相对于视频开始的时间戳。

2.4 手势识别开发原理介绍

Varjo XR-3、VR-3 和 VR-2 Pro 头显集成了 Ultraleap 的手部追踪功能。手部追踪让您无需使用物理控制器即可用手进入虚拟世界。诸如捏合、抓取和与对象交互等手势可让您在应用程序中获得新的沉浸感。

<a class='light-link' href='https://varjo.com/' target='_blank'>Varjo</a>二次开发4.png

 XR-3 和 VR-3 的手部跟踪偏移


XR-3使用以下偏移量(根据您选择的引擎,您可能需要使用不同的比例):

Y:      -0.0112 m

Z:       0.0999 m

X tilt:  0°

或者:

Y:      -11.2 mm
Z:       99.9 mm
X tilt:  0°

VR-2 Pro 的手部跟踪偏移,使用以下偏移量(根据您选择的引擎,您可能需要使用不同的比例):

Y:      -0.025734 m
Z:       0.068423 m
X tilt:  5.0°

或者:

Y:      -25.734 mm
Z:       68.423 mm
X tilt:  5.0

2.5 混合现实功能开发原理介绍

Varjo XR-3 和 XR-1 开发者版头显将 VR 和 AR 功能结合到一个设备中。头显前面板上的两个摄像头可让您看到真实世界,其中放置了虚拟物体。相反,您可以选择将现实世界的一小部分放入更大的虚拟环境中。

2.5.1 Varjo XR-3 和 Varjo XR-1 开发者版

  • 在头显的前板上,XR-3 和 XR-1 开发者版都配备了两个高分辨率 1200万像素摄像头,可用于混合现实应用和透视功能。两款头显的工作频率均为 90 Hz。XR-1 Developer Edition 提供 94 度圆形视角,而 XR-3 具有改进的 106x94 度 (HxV) 立体 FoV。

  • 为了提供清晰的图像并避免过多的数据传输,Varjo XR 设备在用户不关注的区域缩小图像。

  • 校准眼动追踪后,您正在注视的区域始终以最大分辨率显示。

  • 如果禁用眼动追踪,则以最大分辨率显示的区域固定在视图的中心。

  • 这独立于物理焦点和外围显示器,它们保持静态。

2.5.2 将物理世界与虚拟世界对齐

  • 在高层次上,真实世界视图被混合为 Varjo 合成器中的背景层。如果来自 VR 应用程序的虚拟内容是透明的,那么来自现实世界的视频信号将是可见的。

  • 您可以使用与虚拟模型相关联的 Vive Tracker 对齐虚拟世界和现实世界。

  • 有关如何使用 Vive Tracker 的信息,请参阅 SDK 文件夹中的 Benchmark 示例。如果您没有 Vive 追踪器,您可以使用应用程序中的控件简单地将虚拟对象移动到位。

  • 要让静态物理对象遮挡虚拟内容,首先以 1:1 的比例创建真实对象(例如,飞机驾驶舱或汽车)的模型。然后,您可以将此模型与现实世界对齐,并使其透明以在其位置上查看现实世界。

2.5.3 Masking (遮盖)

在为 XR-3 和 XR-1 Developer Edition 进行开发时,您可以屏蔽特定对象以充当进入现实世界的“窗口”。如果您想在虚拟环境中查看真实世界的元素,例如仪器或控制器设备,这将特别有用。它主要可以做到以下功能:

  • 将现实模型添加到虚拟世界环境中

  • 将虚拟内容添加到现实世界

2.5.4 Varjo 标记

Varjo 标记是 XR-3 和 XR-1 开发版上的视频直通摄像头跟踪的物理标记。不同类型的标记可用于不同目的。例如,Varjo Markers 可用作电子追踪器(如 Vive 追踪器)的廉价替代品。每个打印跟踪器的成本显著降低,并且标记不需要电源即可运行。标记分为:对象标记、参考标记

  • 对象标记对象标记用于跟踪用户环境中的静态或动态对象。您可以在 XR 和 VR 应用程序中使用对象标记。每个标记都有一个唯一的 ID,您不应在任何给定环境中多次使用同一个标记。为了提高精度,应用程序可以使用多个标记来跟踪单个对象。例如,您可以通过在每个角落放置一个标记来跟踪监视器。

  • 参考标记:参考标记用于提高 Varjo 内向外跟踪 (Beta) 的准确性。阅读有关使用参考标记的更多信息。一次只能使用一个参考标记,并且仅提供一种尺寸的参考标记。

2.5.5 Chroma Key

Chroma Key是一种使用虚拟内容替换预定义颜色的视频技术。通常被替换的颜色是亮绿色或亮蓝色,因为这些颜色与人类皮肤的对比最强烈。我们在原生 API 中添加了以下新功能:

  • 启用/禁用视频直通图像的Chroma Key。

  • 管理Chroma Key的配置参数。

  • 通过添加新层标志来控制客户端应用程序层屏蔽。

Chroma Key API 可用于多种用例,例如模拟器。一个例子是拥有真实世界的物理控制和驾驶舱,并为外部世界 VR 投影提供绿/蓝屏幕。另一种选择是在绿/蓝屏幕环境中仅使用物理现实世界控制(例如操纵杆、油门、方向盘、踏板),而驾驶舱和外部世界在 VR 中呈现。还有其他用例,例如遮蔽驾驶舱中的虚拟触摸显示器。Chroma Key功能使多个用户可以在共享的绿屏环境中体验相同的虚拟内容。

注意:我们建议在使用Chroma Key时启用眼动追踪。启用眼动追踪后,用户将获得更准确的Chroma Key计算和掩码过滤结果。

Varjo Base 中实现了Chroma Key API 的简化版本。Varjo Base 中的Chroma Key UI提供了一种简单的方法来试验该功能。对于更复杂的应用程序,Chroma Key API 提供了更多的功能和灵活性。

2.5.6 相机渲染位置

Varjo 头显使用视频直通摄像头来创建混合现实图像。摄像头位于用户眼前约 10 厘米(3.9 英寸)处,这会导致深度感知发生偏移,因此视频直通图像中的现实世界对象看起来比现实生活中的更大。下图直观地展示了相机所见与用户在现实生活中所见之间的差异。


对于靠近用户的物体,这种放大效果很明显——例如,他们的手在图像中可能显得不自然地大。效果随着距离的增加而减弱,因此距离 2 米的物体已经看起来接近它们的实际尺寸,并且尺寸最终会收敛到无穷大。请注意,虽然对象的大小可能不同,但它们的几何形状、相对大小、位置等仍然准确。放大效果的程度最终取决于应用程序本身和用户的生理机能,因为人类视觉系统在这种类型的设置中具有高度的适应性。

在将视频传递图像与虚拟内容混合时,它们的相对几何形状(位置、大小和视差)相互匹配非常重要。为此,Varjo 的软件会在启用视频直通功能( API 中的Varjo_MRSetVideoRender)时自动将虚拟现实摄像机放置在与物理摄像机相同的位置。当一起查看时,这允许虚拟和现实世界的内容出现在相同的距离和相同的平面上。虽然与纯 VR 内容相比,这可以看作是虚拟对象位置的明显跳跃,但这不会导致对象几何或位置的任何失真;只有观看者的位置发生了变化。

在某些情况下,移动 VR 内容以匹配真实世界的位置可能是不可取的。您可以覆盖偏移量(API 中的Varjo_MRSetVROffset),以便 VR 内容从用户眼睛的位置呈现,而视频直通图像使用相机位置。哪种设置对您的应用程序最有利取决于内容类型和用例。您可以在下面找到一些示例,以帮助您为应用程序选择最佳渲染设置:

案例 1:并排比较虚拟和现实世界的对象

您想要比较虚拟和现实世界的对象,例如,虚拟汽车与真实汽车相邻。通常从 1 米(3 英尺)以上的距离查看内容。在这种情况下,我们建议您使用摄像机位置进行 VR 渲染。这是混合现实的默认设置。

Varjo_MRSetVRViewOffset(session,1.0f)

好处:

  • 虚拟和现实世界的对象以相同的大小出现。

  • 虚拟对象在其环境中看起来很稳定,不会“浮动”。

  • 深度遮挡可用于在场景中显示真实的手。手将出现在相对于虚拟和现实世界对象的正确位置。

  • 虚拟世界和现实世界的物体都显得稍大一些,好像从几厘米/英寸更近的地方观察。

  • 近距离观察虚拟物体时(小于 1 米/3 英尺),移动头部会导致它们移动不切实际。

案例二:近距离观察虚拟物体

例如,您想近距离检查 VR 对象,以查看其外观或纹理的细节。现实世界的对象通常在场景的背景中或不太重要。在这种情况下,我们建议您使用物理眼睛位置进行 VR 渲染。

Varjo_MRSetVRViewOffset(session,0.0f);

好处:

  • 虚拟对象以正确的大小出现,就像它们在现实生活中一样。

  • 当您转头时,虚拟对象的行为自然。

  • 与现实世界的物体相比,虚拟物体看起来要小一些。

  • 虚拟对象可能看起来漂浮在现实世界环境中。

  • 通过深度遮挡显示的真实世界内容将与 VR 内容的大小和位置不匹配。

如果您仍想在应用程序中使用手部跟踪,我们建议您使用虚拟手部而不是深度遮挡。在这种情况下,VR 手将与 VR 对象保持同步并出现在自然位置。

案例 3:与真实和物理对象交互

您想用虚拟内容扩展或替换现实世界的某些部分。一个典型的用例是带有真实仪表板、开关和按钮的物理模拟器设置或控制室,您可以在其中将虚拟内容(例如显示器或控件)叠加在现实世界之上。VR 内容也可以显示为模拟器的背景场景。在这种情况下,我们建议您使用摄像机位置进行 VR 渲染。这是混合现实的默认设置。

Varjo_MRSetVRViewOffset(session,1.0f);

好处:

  • VR 对象将自然而逼真地放置在现实世界环境中。

  • 您可以自由选择是否使用深度遮挡将用户的手可视化为虚拟手或真实手。相对于 VR 和现实世界的对象,手将始终出现在正确的位置。

  • 虚拟和现实世界的物体都显得更大一些,好像从几厘米/英寸的距离观察。

  • 近距离观察虚拟物体时(小于 1 米/3 英尺),移动头部会导致它们移动不切实际。

案例 4:在虚拟和混合现实环境之间切换

在观察虚拟对象时,您需要经常在完全虚拟和混合现实模式之间切换。在这种情况下,我们建议您测试这两个位置,看看哪种设置最适合您。

  • 如果您仅将真实世界的图像用作场景的背景,则物理眼睛位置可能是更好的选择。一个好处是虚拟对象保持不变并且在两个场景中以相同的大小出现。* 如果您使用真实世界的图像来比较虚拟和真实世界的对象,那么相机位置可能是更好的选择。它的好处是现实世界和虚拟对象在并排查看时以相同的大小和比例显示。

  • 提示:Varjo API 还支持 0.0 到 1.0 之间的偏移值。您可以使用它在两个渲染位置之间创建平滑的动画过渡,以防您需要在会话期间从一个位置更改到另一个位置。

2.5.6 环境设置

  • 光照度

最佳照度水平为 1000 lux或更高。远低于 150 lux的水平将对色度和混合现实质量产生负面影响。

  • 色温

您的照明应具有 3000–6500K 的色温。更重要的是,色温应该保持恒定。日光泄漏到您的物理环境中(例如,通过窗户)会改变照明设置并极大地影响色度键的性能。我们建议您阻挡色度键设置中的所有自然光。当使用蓝色作为色度时,这一点尤其重要,因为日光很容易导致误报。混合不同色温的灯光也会影响色度性能。

  • 灯光类型

为避免闪烁伪影,我们建议您使用带逆变器的 LED 或荧光灯。工作频率超过 1 kHz 的灯效果最佳。也可以使用工作在 50 或 60 Hz 的灯,虽然不是首选,但也可以使用。在这种情况下,我们建议您使用 Varjo API 中提供的闪烁补偿功能。尝试使用覆盖更大区域的漫射灯而不是聚光灯。尽可能使用间接照明。应放置灯光,使用户不会直视它们。

  • Chroma色度表面

对于您的色度键表面,请使用反射尽可能少的光的哑光织物。高度饱和的纯色是优选的。在匹配虚拟和真实内容时,您的渲染引擎应该考虑您的相机设置。请注意,相机设置可能会随着时间而改变(例如,由于自动白平衡)。如果这对您的引擎造成困难,您可以锁定相机设置。

  • 3D重建

3D重建相关API目前还在完善之中,在目前的版本中,Varjo MR Experimental API 提供了使用Varjo XR-3头显实时重建和查询真实世界几何的方法。支持点云API 和网格API。


3. 适配兼容第三方定位系统开发原理

3.1 跟踪插件API

  • 下方案描述了 Varjo 插件 API 的流程

<a class='light-link' href='https://varjo.com/' target='_blank'>Varjo</a>二次开发10.png

  • 用于用户配置的跟踪插件API,您可以指定用户可以在 Varjo Base 中编辑的持久配置选项。将此功能添加到您的插件中,如下所示:修改您的plugin.manifest并添加configurationOptions以指定用户可以编辑的内容。例如:

 "configurationOptions":[{

"id":"serverAddress",

"label":"ServerIP address",

"type":"text",

"defaultValue":"192.168.0.1"

}]


使用 PluginUtilityAPIGetConfigurationStringC++APISetConfigurationString来SyncConfiguration访问配置。有关更多详细信息,请参阅 Varjo 插件 SDK。安装插件并重新启动 Varjo Base 后,您应该会在 Varjo Base 的System选项卡中看到配置选项。然后,您可以选择您的插件,更改配置,然后选择提交以将值提交给您的插件。您可以使用 PluginUtilityAPISetPluginSystemState将插件状态传达给 Varjo Base。插件状态显示在配置选项上方。

3.2 系统定义:

  • 坐标系:HMD 的坐标系是右手坐标系:从 HMD 用户的角度来看,正 X 向右,正 Y 向上,负 Z 向前。

  • 头显追踪点:HMD 的跟踪点位于镜头之间,如下图所示。

<a class='light-link' href='https://varjo.com/' target='_blank'>Varjo</a>二次开发6.png

4. 支持多任务多应用同步运行

Varjo Base 引入了对同时运行多个应用程序的支持,允许使用多个应用程序构建图像。这些应用程序可以使用不同的引擎或图像生成器进行。示例应用包括:

  • 训练和模拟:使用特定的 IG 渲染地形,同时使用 Unity 或 Unreal 应用程序渲染驾驶舱、手部跟踪和任务选择。

  • 设计与研究:使用特定的应用程序通过 Varjo 标记或定制的 SteamVR 应用程序将 3D 对象带到另一个虚拟场景之上。

  • 研究与分析:访问眼动追踪数据,同时使用另一个应用程序呈现视觉效果。

请注意,同时运行多个应用程序可能会对整体系统性能造成很大负担。在许多情况下,您可能需要降低视觉质量以获得令人满意的性能。可以使用多个 GPU 来提高性能,但请记住,这需要特定的应用程序支持。请注意,目前没有对 Unity 或 Unreal 的多 GPU 支持。

5. 官方授权产品与技术服务


北京和远科技有限公司是Varjo官方授权合作伙伴,为您提供官方正品产品与专业技术服务,所售产品享受官方维保服务。公司具备有Untiy、Unreal、C++等专业的开发技术团队,可以提供技术路线验证、功能开发等需要相应的技术交流及支持,欢迎联系我们和远科技北京办公室提供Varjo产品Demo体验,欢迎来电咨询。