随着下一代移动VR/AR经验即将到来,我们的团队不断推进我们的VR UX开发工具包的边界。金宝搏牛牛最近,我们创建了一个快速VR雕塑原型,它结合了最新和最好的这些工具。

了解如何优化移动虚拟现实体验的下一代你# VR项目。点击鸣叫跳跃运动188bet让球交互引擎允许开发人金宝搏牛牛员赋予他们的虚拟对象被拾取的能力,投掷,轻推,被击打,闷热的,或戳。With our new Graphic Renderer Module,您还可以使用武器级的性能优化耗电的桌面VR和耗电的移动VR。

在这篇文章中,我们将步行通过使用这些工具建立了一个小项目。这将提供技术和工作流概述,作为可能的一个示例——以及一些VR UX设计探索和性能优化。更多的技术细节和教程,,check out our documentation.

在大跃进运动的快速原型开发188bet让球

在我们工具的早期,我们带领他们进行一系列的安定巡航,确定我们试图使用这些工具的微型项目。本着冰淇淋原理,最快的评估方法,压力测试,告知我们的工具的特征集是我们自己去品尝它们——用它们来构建一些东西。这种哲学告诉我们所做的一切,从VR设计冲刺到我们内部的黑客攻击。


从上个月的跳跃运动内部Hackathon的场景。188bet让球球队的概念,可以增强虚拟现实–跳棋在外层空间的手,becoming a baseball pitcher,或者小猫和僵尸之间的奇怪混搭。因此,我们学习了很多开发人员如何使用我们的工具进行构建。金宝搏牛牛

压力测试工具最快的方法是什么?Build something!!点击鸣叫Picking something appropriate for this type of project is a constraints-based challenge.你要问什么:

  • 是站起来为原型,提供即时的见解非常快??
  • 给开发团队最丰富的反馈??
  • 压力测试工具以及过去它性能的限制??
  • 通过发现尽可能多的边缘情况来发现最多的bug??
  • 彰显特色不预期的初步发展??
  • 可以非常灵活和适应迅速变化的需求??
  • 继续探索使用手进行VR交互??
  • 准备好失败了吗??
  • Make something interesting?(额外贷款!))

这个长长的约束列表使得它变得有趣而有趣(真的!(在选择要制造的东西时有问题空间)。当然,这很有挑战性,但如果你满足这些条件,then you have a valuable nugget.

活雕塑

在游戏中工作时孢子,Will Wright spoke about how creative constraints can help us find a maximum"“可能性空间."That concept has stuck with me over the years.制作一个雕塑的自由开放思想提供了最基本的组织原则。从那里,我们可以开始定义雕塑可能是什么,通过从需要测试的特性制作积木。

优化#1-使用图形渲染器。我们要看的第一个工具是图形渲染器,通过动态批处理大量对象以减少绘制调用,优化了大量对象的运行时性能。即使它们针对各自的特性具有不同的值,也可能发生这种情况。

记住这一点,我们可以通过改变形状来创建有趣的单个对象,颜色,尺寸,变形变换,and glow qualities – all while leveraging and testing the module.从那里,每个对象都可以与交互引擎进行交互,并给予自定义精心设计的行为以对您的手作出反应。最后,通过制造和控制这些对象的数组,we have the basis for a richly reactive sculpture that satisfies all our rapid prototyping constraints.

利用图形绘制器绘制形状

我们的旅程从玛雅开始,where we take just a few minutes to polymodel an initial shape.另一个约束出现-形状需要有一个低顶点计数!!这是因为会有很多人,图形绘制器的动态批处理限制由Unity的动态批处理限制限定。

这不仅意味着顶点数量等事项,而且数量属性在这些顶点上影响动态批处理限制。因此,一组顶点被计数几次,对于它的每个属性,例如位置,紫外线正常的,颜色,等。也,我们希望我们的对象有更多的视觉丰富和有趣的几个属性。

作为一个反应变形行为的基础,the shape gets copied and has its vertices moved around to create a morph target with an eye toward what would make an interesting transformation.然后对形状的UV布局可以有一个纹理贴图来控制生长的地方。此对象作为FBX文件导出到Maya。

团结!在这里,我们首先通过向空转换添加LeapGraphicRenderer组件来设置LeapGraphicRenderer。现在我们开始添加作为LeapGraphicRenderer对象的子对象的形状。通常情况下,我们可以通过简单的拖动添加这些对象在我们的FBXs。但是,要为图形渲染器创建对象,我们从一个空转换开始,并添加LeapMeshGraphic组件。这就是我们分配,来到我们的FBX网格形状。

看到我们的第一个目标,it needs to be added to a GrapicRenderer Group.A group can be created in the Inspector for the LeapGraphicRenderer component.然后,可以在检查器中为我们的对象选择该组——并且我们的对象将出现。为了我们的团队,我们使用的是图形渲染的动态绘制方法,因为我们希望用户的手在对象接近时对其进行更改。

现在我们开始添加图形功能,我们的雕塑渲染组。Graphic Renderer支持一组特性,我们一直在内部使用这些特性来构建高性能UI,但是这些基本特征可以用于大多数典型的3D对象。After these features are set up,他们可以通过脚本来创建的反应行为。由于在图形渲染器的检查器中添加了这些特性,相应的特性将出现在对象的LeapMeshGraphic组件中。

  • 图形特征:纹理–_glowmask–控制对象在发光
  • 图形特征:混合形状——用于使用FBX的混合形状添加变形目标
  • 图形特征:颜色通道-背景颜色-对象的主要颜色
  • 图形特征:控制发光的颜色–_glowcolor–通道,we use the Graphic Renderer's custom channel that will be paired with a corresponding _GlowColor and _GlowMask in a custom variant of one of the shaders included with the Graphic Renderer Module

As these features are added to the GraphicRenderer Group,corresponding features appear in the LeapMeshGraphic for any objects attached to that Group.

第一对象的初始安装后,可重复填充雕塑的对象集合。这给我们带来了一个性能优化。

优化# 2–创建图形渲染对象池。While it's easier to populate the object array in script using Unity's GameObject.Instantiate() method,这将创建在App大幅放缓,而所有这些对象都是催生并添加到图形渲染器组。相反,我们创建一个对象池,仅仅是脱离了图形渲染器开始,使它们看不见。

创建这个雕塑有助于揭示附加和分离对象的需要。图形渲染器的detach()和TryAttach()方法可以在显示和隐藏具有许多组件的UI时派上用场。

下一步,a shader is needed that can work with the Graphic Renderer and be customized to support the main color,辉光颜色,and glow mask features that were added to the LeapMeshGraphic components of the sculpture objects.图形渲染器的船舶多着色器,工作为出发点。在这种情况下,我们开始与包括dynamicsurface着色和添加_glowcolor和_glowmask和混合的颜色与_backgroundcolor性质。由此产生的dynamicsurfaceglow.shader被分配在每一组中的graphicrenderer。

在经验设计创意的限制帮助我们找到最大的可能性空间。点击鸣叫图形渲染器的一个当前限制是总顶点和元素计数,幸运的是,每个渲染组可以批处理,这是通过创建图形渲染器组件的多组,给他们同样的功能和设置容易处理。然后您可以选择雕塑对象池中的100个子组,并将它们分配给新组。While future versions of the Graphic Renderer won't have this vertex-per-group-count limitation (partly because of what we found in this ice-cream project!)Groups特性允许您为不同的对象集合设置不同的特性集和呈现技术。

优化#3-自动纹理贴图。图形渲染器的另一个方便的特性,自动创建一个纹理贴图纹理atlassing结合场景中的其他个体的纹理。While this texture is larger,它允许所有具有它所包含的纹理的对象被呈现为单个遍历(而不是使用每个纹理的对象的单独遍历)。所以我们的雕塑,每个对象可以具有专门为该对象制作的唯一发光掩模。

自动纹理atlassing通过添加一个纹理通道下/ renderingsettings /阿特拉斯/ extratextures.then图形渲染器设置组督察,由于将这些纹理组合到地图集可能需要时间,手册更新阿特拉斯button is provided,which indicates when the atlas needs to be compiled.你不需要与阿特拉斯互动,可以与你个人的纹理作为一种典型的工作流。

虽然图形渲染器的性能优化能力需要不同的资产工作流和一些设置,its rendering acceleration is invaluable in resource-tight VR projects.严格管理绘制函数的调用应用程序是关键。作为一个简单的措施,我们可以看到在游戏窗口的统计小组,我们节省高达584的绘制调用从我们的现场配料。这转化为渲染速度的显著提高。

我们的雕塑的对象设置图形渲染器的特点,我们有一个丰富的基础,探索一些跳跃运动的互动引擎的能力,并推动那些图形特征与手部动作。188bet让球

雕塑是刻意使物体的数量动态变化,显示比图形渲染或交互引擎可以处理多个对象。这既是为了测试这些工具的限制,也是为了改进它们的工作流程(当然也是为了继续研究手如何影响虚拟对象)。在下一篇文章,我们要使雕塑在各种有趣的方式我们的手的反应。

An interaction engineer at 188bet让球Leap Motion,Barrett has been working at the intersection of game design,information visualization and animation craft for 20 years as a producer,游戏设计师和动画师。

LinkedIn