Xprize举办VR+机器人解决方案竞赛,奖金达1000万美元

ANA Avatar XPrize是一项为期四年的竞赛,旨在创建一个跨现实的多功能化身系统,通过结合VR / AR技术和机器人解决方案,将人类操作员与能够执行对人类风险过大任务的机器人融合在一起。该竞赛鼓励创造具有真正变革性的VR设备。作为顾问的VR先驱Jacki Morie表示,使用物理化身,人们可以通过触觉和嗅觉来感知他们的环境,比如用物理化身推动轮椅上的母亲或执行紧急医疗处理。维修人员或外科医生不需要亲自出勤,他们可以绑定物理化身并通过VR设备执行必要的操作。实现这个目标可能需要很长时间,但XPrize正在推动不同学科的人团结合作解决这个挑战。
Xprize举办VR+机器人解决方案竞赛,奖金达1000万美元

〔研发〕现在开始,开发你的第一款ARCore应用程序

随着计算机视觉和硬件的进步,AR和VR将成为我们日常生活的一部分。谷歌已经推出了ARCore 1.2.0,面对这一切,我都必须进行尝试和实验。 对于本教程,我们需要一些关于使用Unity的基本知识。对于没有接受过正式Unity学习的我来说,我的第一个任务是寻找合适的在线教程。在掌握了这个工具后,我就可以向更高一阶前进。至于ARCore相关的教程内容似乎非常稀少,似乎有在线学习网站提供课程,但我不确定他们的水平,另外,你需要C#的基本知识。 同时需要注意的是,下面的信息都是基于我个人的理解、知识和经验。我本人也是在不断的学习之中。如果你愿意分享你的想法与经验,我会很高兴。另外,你同时需要一台支持ARCore的设备,我目前正在使用的是Pixel 2。 ARCore主要分为三个部分:理解环境、运动追踪和照明估计。 我们将开始开发我们的第一款应用程序,但在开始之前,我们先准备相应的工具,即便你没有所需的设备,你同样可以继续阅读本文,只是你无法开始构建和部署应用。 在Unity中创建一个新应用,然后将其命名为ARCoreWorld。完成后,我们需要导入我们下载的Unity文件,如要导入,请依次选择Assets → Import Package → Custom Package,选择文件并单击导入。系统应该显示正在导入的项目,在这里,我们将导入所有内容,然后添加预制件(1) ARCore Device和(2) Environmental Light。所有预制件都可以在收藏夹下找到:左下角Project栏中的All Prefabs。 在这种情况下,应用程序属于可构建状态,但要为安卓构建,我们需要切换平台。要访问构建设置,请依次选择从File → Build Settings。选择Android,然后点击Switch Platform。在完成后,点击Player Settings。在这里我们将做出以下更改:在这里我们将提供一个有效的包名称,将最低API级别设置为Android API 24,并且将该目标设置为higest installed。另外,请禁用多线程渲染。在XR设置中,我们将启用ARCore支持。 此时,作为骨架的代码已经准备就绪,但现在运行应用程序只会显示摄像头的实际视图。 点云是一个容器,其包含一组关于现实世界的3D数据点信息,它们用于推导关于真实世界的信息和框架的组成,以便通过虚拟对象来进行增强。 我们需要创建一个材质,材质允许我们为3D模型提供纹理或颜色信息。创建一个名为PointMaterial的材质,并将着色器类型指定为ARCore→PointCloud,我将大小改为15,颜色则是红色。 之后,我们将需要创建一个可以使用这种材质的对象。为此,我们创建一个立方体,然后将材质应用在立方体上。最后,我们需要添加一个名为Pointcloud Visualizer的组件。当前状态下的应用程序将看起来应该是这样。 我们现在已经准备好了舞台。现在我们要把虚拟对象叠加在现实世界中。这个对象是暗黑破坏神。你可以从指定链接中获取模型。下面我们将模型导入Unity,创建一个名为Diablo的文件夹,并将OBJ文件拖放到这里。导入模型后,你会注意到它只是模型的线框,没有纹理。不用担心,模型的开发者同时提供了所需的纹理,但这是DDS格式,所以我们需要将其转换为TGA。你可以采用任何在线工具执行转换。完成后,将TGA文件拖放到Unity。要将TGA文件用作纹理,我们需要从中创建一个材质。创建一个新材质,并将着色器选择为“Unlit/Texture(不亮/纹理)”,然后使用TGA文件。现在将新材质拖放到Diablo模型中,这时你会看到它从灰度模型改变为我们所设想的模型。为了避免模型过大,我减少了尺寸,你可以选择模型,并将比例因子从1减小到0.15,或者按照你的需求进行缩放。完成后,从Diablo模型创建一个预制件,稍后我们将在渲染器上使用它。 现在我们需要查看绘制虚拟对象的平面。为此,我们可以使用Plane Generator和Plane Visualiser组件。 在以后,我们将会把点云立方体的大小减少至5个单位。 下面我们来一点编程。我们已经有了平面,应用纹理后的模型,接下来我们需要将暗黑破坏神叠加在现实世界之中。 创建一个空白对象,并将其命名为DiabloRenderer。现在添加一个新的C#脚本,更新方法应该看起来像这样: ```c# public GameObject DetectedPlanePrefab; public GameObject DiabloGameObject; void Update() { _UpdateApplicationLifecycle(); // Hide snackbar when currently tracking at least one plane Session.GetTrackables(m_AllPlanes); bool showSearchingUI = true; for (int i = 0; i < m_AllPlanes.Count; i++) { if (m_AllPlanes[i].TrackingState == TrackingState.Tracking) { showSearchingUI = false; break; } } // If the player has not touched the screen, we are done with this update Touch touch; if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began) { return; } // Raycast against the location the player touched to search for planes TrackableHit hit; TrackableHitFlags raycastFilter = TrackableHitFlags.PlaneWithinPolygon | TrackableHitFlags.FeaturePointWithSurfaceNormal; if (Frame.Raycast(touch.position.x, touch.position.y, raycastFilter, out hit)) { // Use hit pose and camera pose to check if hittest is from the // back of the plane, if it is, no need to create the anchor if ((hit.Trackable is DetectedPlane) && Vector3.Dot(FirstPersonCamera.transform.position - hit.Pose.position, hit.Pose.rotation * Vector3.up) < 0) { Debug.Log("Hit at back of the current DetectedPlane"); } else { var diabloGameObj = Instantiate(DiabloGameObject, hit.Pose.position, hit.Pose.rotation); diabloGameObj.transform.Rotate(0, k_ModelRotation, 0, Space.Self); var anchor = hit.Trackable.CreateAnchor(hit.Pose); diabloGameObj.transform.parent = anchor.transform; } } } ``` 首先,我们需要公开三个我们需要链接的变量: 1. FirstPersonCamera:这是可以在ARCore设备上找到的摄像头,后者则允许我们浏览虚拟对象。 2. DetectedPlanePreFab:这将用于渲染虚拟对象的平面检测。 3. DiabloGameObject:这是Diablo模型的预制件。 ```c# if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began) { return; } ``` 该函数将检查我们是否点击了屏幕,如果没有,则无绘制。 ```c# if (Frame.Raycast(touch.position.x, touch.position.y, raycastFilter, out hit)) ``` 一旦我们触碰了屏幕,上面的函数将从屏幕坐标获取输入,然后将其放到虚拟物体叠加在真实世界上的位置。 ```c# var diabloGameObj = Instantiate(DiabloGameObject, hit.Pose.position, hit.Pose.rotation); diabloGameObj.transform.Rotate(0, k_ModelRotation, 0, Space.Self); var anchor = hit.Trackable.CreateAnchor(hit.Pose); diabloGameObj.transform.parent = anchor.transform; ``` 在现实世界中,暗黑破坏神将放置在由hit.Pose.position定义的位置上。接下来,为了将模型附加到现实世界中的某个位置(即使我们试图环绕模型走动),我们需要确保将虚拟对象锚定到创建该模型的Pose。因此,我们创建一个Anchor,并将其分配给游戏对象的父级。 我们已经做出了大量的改动,下面我们看看具体的效果吧: ![](https://configreality-web-asset.oss-cn-shenzhen.aliyuncs.com/crnews/8ec808d0cac4b4481338d51e7ed57951.jpg) 为了方便截图,我们将大小减少至0.05。 我们可以360度地浏览虚拟对象,详细参见下面的视频。 [https://v.qq.com/iframe/player.html?vid=p0655q4lddx&auto=0](https://v.qq.com/iframe/player.html?vid=p0655q4lddx&auto=0) 我们已经通过这个ARCore示例进行了讲解,我将继续努力,并尝试进一步地优化应用。
〔研发〕现在开始,开发你的第一款ARCore应用程序

MRTK是一款面向WMR、HoloLens开发的MR开源工具

2018年05月17日,映维网发布了一篇关于Mixed Reality Toolkit-Unity(MRTK)的文章。MRTK是一个用于在Unity中开发混合现实体验的开源项目,它提供了一些常用的交互和用户界面控件的构造块,可以帮助开发者更轻松地在HoloLens和WMR设备上开发应用程序。 文章选择了一些常用的构造块和交互模式进行介绍,并告诉读者如何在MRTK存储库中找到示例场景,并在项目中使用它们。例如,对于输入模块、摄像头、光标和运动控制器的设置,MRTK可以帮助开发者简化操作。 文章还介绍了其他一些构造块,如可交互对象、边界框与应用栏、两手操作、对象集合、求解器系统、语音输入和空间理解等,并提供了相应的示例场景和技术细节。 最后,文章鼓励读者加入MRTK的社区,提出问题、报告漏洞、贡献代码,为混合现实行业的发展做出贡献。
MRTK是一款面向WMR、HoloLens开发的MR开源工具

Valve新官网重申对VR承诺,并展示罕见VR头显原型

据报道,Valve的新官网设计中强调了他们对硬件和虚拟现实(VR)的重视。Valve明确表示,硬件是未来的核心组成部分,而VR则是他们工作的最前沿。Valve在VR领域发挥了关键的作用,其SteamVR平台已经成为VR内容的领先市场。尽管Valve一度对VR技术的兴趣有所减退,但他们最新改版的官网表明他们对硬件和VR的重点和使命有了新的认识。网站中强调了Valve在硬件方面的成就,并暗示了他们正在研发三款新的VR游戏。Valve的招聘页面也暗示了他们对VR研发的重视。Valve表示愿意推迟或取消项目,以确保推出的产品符合内部质量标准。报道指出,Valve比其他厂商更有机会为用户带来VR领域的杀手级应用。
Valve新官网重申对VR承诺,并展示罕见VR头显原型

通过SVVR的Reality Portals和Metaverse倡议,将现实生活事件与虚拟现实相结合

硅谷虚拟现实(SVVR)创立五周年,为此他们推出了多元宇宙计划。该计划的目标是打破VR社区和平台的封闭性,让人们能够根据自己的需求参与VR活动。SVVR在硅谷建立了一个名为SFVR的工作室,用于举办演示和会议活动。他们还创建了一个现实传送门,让人们能够在现实生活中与虚拟世界中的人进行互动,实现低延迟的交流。SVVR计划在未来将多元宇宙应用于大型活动,提供更多的参与方式,并希望成为VR发展的标准之一。这个想法令人兴奋,因为VR的潜力是无限的,它可以打开人类思维对宇宙的所有可能性。所说的是参与到类似High Fidelity的社交VR平台中,然后以某种方式将High Fidelity与类似WebVR的另一个虚拟平台进行融合。通过WebVR与这些人互动,也能够在现实世界中与他们互动。这是一种原型设计,能够将虚拟世界复制到另一个世界中,使不同虚拟世界的人们相互互动,但共享一个虚拟基地。 最初,与虚拟世界和现实生活进行交互需要现实门户,在界面上明确划定了自己生活环境和虚拟世界交互的界限。随着时间的推移,这两者之间的区别将消失,彼此叠加。 作者认为High Fidelity的区块链联盟以及其围绕自主身份的各项倡议将实现这些功能。可以融合不同的虚拟世界,并实现虚拟和现实共存的新方式。作者对不同的倡议是否能够帮助护照计划提供支持表示疑虑。 SVVR正在努力成为一个社区组织者,将人们放在VR社区的核心,并创造出吸引人们参与的活动,真正融合和试验虚拟和现实的融合。SVVR面临的挑战是评估参加会议的价值,并且正在以公益法人公司的形式创建自己,以提供不同的服务。

〔视闻〕Steam VR头显历代原型

广州一家虚拟现实(VR)工作室近日发布了一款名为《九游深海捕手》的VR游戏。该游戏通过VR技术将玩家带入深海中捕捉各种奇特生物的世界。游戏中,玩家需要使用设备来模拟潜水,使用渔网和鱼叉等工具来捕捉海洋生物。游戏还采用了全景展示和触觉反馈等技术,以增强玩家的沉浸感。玩家可以在游戏中探索美丽的海底世界,并挑战各种不同的任务。该游戏已经在九游VRhALL体验店正式上线,并得到了玩家的积极评价。该工作室表示,他们将继续探索和开发更多创新的VR游戏,为玩家带来更丰富的虚拟现实体验。

Antilatency为Oculus Go推出6 DoF增强外设,售价99美元

Antilatency追踪器团队通过Reddit分享了他们如何在15小时内制作出一个6自由度的Oculus Go头显。他们表示,他们的追踪器在Unity3D中集成了所有的设备,效果同样好。他们用5分钟来欣赏头显,确定安装追踪器的位置,稍微改动了程序代码,并用他们的Gear VR应用程序测试了这个新的Oculus Go头显。Alt系统应用包含放置功能,允许用户自行改变追踪器的位置,并创建定制的追踪环境。研究团队将参考棒作为追踪特征点,以降低系统的CPU消耗。“只占10%的性能”。Antilatency追踪器团队计划以99美元定价该产品,他们表示产品已接近正式发售,“我们已经开始准备量产,我希望在7月-8月期间开始发货第一批产品。”关于设备的耗能情况,Antilatency追踪器团队表示最终版本只消耗85mah电量,而开发套件则为130mah,套件包括3个Alt追踪器、4个红外参考棒和2个控制器。
Antilatency为Oculus Go推出6 DoF增强外设,售价99美元

用Sensor Bounds测试Oculus Rift传感器追踪量,帮助你布局游玩空间

这款免费的应用程序称为Sensor Bounds,可以帮助用户了解Oculus Rift传感器的覆盖范围。它可以在VR中显示每个传感器的追踪范围,以帮助用户设置房间规模和传感器布局。该应用已经对CPU和GPU进行了优化,非常轻量级。用户可以动态调整房间大小,并且可以看到游玩空间与总空间的边缘相关。用户还可以轻松找到双手和控制器与传感器视场的交叉位置。如果用户在现实世界中移动或调整传感器,应用程序会立即进行相应的调整,但需要注意这可能会影响Guardian系统和地板高度。另外,该应用程序还支持Dash,但还未对DK2进行测试。要切换显示的传感器,用户只需按下Touch控制器上的A/X键或按下Remote遥控器上的选择键。
用Sensor Bounds测试Oculus Rift传感器追踪量,帮助你布局游玩空间