[Investor Relations]  |  官方微博

Unity3D培训

美国上市公司 · 亿元级外企unity3D培训企业

  • 全国服务监督电话4008270010
Unity3D培训 > Unity3D教程 > Unity VR教程--如何开始自己的第一个VR项目?
  • Unity VR教程--如何开始自己的第一个VR项目?

    发布:Unity3D培训  来源:Unity3D教程  时间: 2017年03月10日

  • 开始用unity进行基础VR开发之前,先确认硬件和软件已经进行了设置。配置好并且安装好unity以后,在打开unity之前,保证DK2已经连接好,并且已经启动,具体VR项目就和unity培训的小编一起来完成吧...

  • 基础

    开始用unity进行基础VR开发之前,先确认硬件和软件已经进行了设置。

    配置好并且安装好unity以后,在打开unity之前,保证DK2已经连接好,并且已经启动。在进行接下来的操作之前,先检查一下Oculus的 配置工具是否正常工作。可能需要先设置一个新用户来运行Demo场景。

    创建你的第一个VR项目

    先创建一个测试项目,然后创建一个能在VR中观察的立方体作为开始。如果你打算研究更详细的现成的VR示例,可以下载在概述中提到的VR示例项目

    步骤1:在Unity启动时跳出的对话框中,创建一个空工程。

    步骤2:平台选择里,选择PC, Mac & Linux Standalone。在最上面的菜单栏里选 File > Build Settings。

    【Unity VR教程 如何开始自己的第一个VR项目】

    步骤3:在新建的空场景中,创建一个立方体(Game Object > 3D Object > Cube) 然后用移动工具把它的位置调整到默认的住摄像机前。

    【Unity VR教程 如何开始自己的第一个VR项目】

    步骤4:保存当前场景(File > Save Scene)。

    步骤5:Edit > Project Settings >Player 打开Player 设置面板,检查是否已经勾选了“Virtual Reality Supported" 。

    【Unity VR教程 如何开始自己的第一个VR项目】

    步骤6:点击界面上方的Play按钮,进入Play模式

    现在应该可以在DK2上看到这个场景了,同时电脑屏幕的Game窗口里有摄像机的镜像。在DK2中向周围看一下,在Unity中会改变同样的位置或者旋转。

    解决故障:如果你不能在DK2中看到场景, 一下的几个提示可能会有帮助:

    ·确认DK2在打开Unity 项目之前,已经正确的介入,并且已经打开。

    ·检查Occulus Configuration Utility(Occulus 配置程序)中的Demo Scene(示例场景) 是不是能够正常查看。

    ·升级显卡驱动

    ·确认已经安装了Oculus Runtime 0.8或者更高。

    更多VR方面的援助,请到Unity VR Forum(Unity VR 官方论坛)

    VR开发的实用信息

    VR开发和标准Unity开发时很相似的,但是有一些需要注意的区别。

    Editor中的(Frame Rate)帧数

    在editor中查看项目时,需要注意因为渲染了两次同样的内容,可能觉得有一些延迟和抖动。渲染Unity IDE 同样会有一些复旦,所以最好是时常build一下项目,然后直接运行,来测试项目在设备上的性能。

    摄像机移动

    你不能直接在Unity中移动VR摄像机。如果希望移动或者旋转摄像机,需要把摄像机放到另一个GameObject下面成为子对象,然后对父对象进行进行操作。

    【Unity VR教程 如何开始自己的第一个VR项目】

    比方说这个例子,VR Samples 项目中的Flayer and Maze。如果你希望获取这些节点的位置,需要使用InputTracking 类。

    摄像机节点

    左眼右眼并不是在Unity中创建的,如果需要获取场景中各个眼睛所在的位置,使用以下的脚本,然后添加到摄像机上。

    [csharp]

    1. <span style="font-family:SimSun;font-size:14px;">using UnityEngine;  

    2. using UnityEngine.VR;  

    3. publicclass UpdateEyeAnchors : MonoBehaviour  

    4. {  

    5.     GameObject[] eyes = new GameObject[2];  

    6.     string[] eyeAnchorNames ={ "LeftEyeAnchor", "RightEyeAnchor" };void Update()  

    7.     {  

    8.         for (int i = 0; i < 2; ++i)  

    9.         {  

    10.             // If the eye anchor is no longer a child of us, don't use it

    11.             if (eyes[i] != null && eyes[i].transform.parent != transform)  

    12.             {  

    13.                 eyes[i] = null;  

    14.             }  

    15.             // If we don't have an eye anchor, try to find one or create one

    16.             if (eyes[i] == null)  

    17.             {  

    18.                 Transform t = transform.Find(eyeAnchorNames[i]);  

    19.                 if (t)  

    20.                     eyes[i] = t.gameObject;  

    21.                 if (eyes[i] == null)  

    22.                 {  

    23.                     eyes[i] = new GameObject(eyeAnchorNames[i]);  

    24.                     eyes[i].transform.parent = gameObject.transform;  

    25.                 }  

    26.             }  

    27.             // Update the eye transform

    28.             eyes[i].transform.localPosition = InputTracking.GetLocalPosition((VRNode)i);  

    29.             eyes[i].transform.localRotation = InputTracking.GetLocalRotation((VRNode)i);  

    30.         }  

    31.     }  

    32. }</span>  

    VR中的滤镜特效

    VR项目中,很多图像滤镜效果都很消耗资源。由于渲染了两次场景,每只眼一次,大多数滤镜都会对帧数和性能有很大影响而没有使用。

    由于VR是 把眼睛放在虚拟场景中来展示画面的,一些图像滤镜并没有什么意义。举例说明,景深,模糊,镜头光晕,基本上没有什么用,因为他们也不会在真实世界中看到。如果VR 头戴设备最终支持了眼球追踪,那景深就有道理了。

    有一些可以使用的滤镜:抗锯齿会很有用(特别是在低画质的时候),颜色分级 也是当然需要的(查看实用的Unity 博客获取更多信息),然后Bloom滤镜在某些游戏里会有效果,所以比较好的想法是去试验看看具体什么滤镜在游戏中有用。

    Unity提供了一些合适的图像滤镜来给你使用(Assets > Import Package > Effects),Asset Store 中也有很多很棒的图像滤镜,例如Colorful,Chromatica,Amplify Color 和 其他。

    渲染比例(render scale)

    根据正在运行的VR场景的复杂度,可能需要调整渲染尺寸。这会影响纹理:镜头前的像素比例修正,意味着我们会牺牲更多的性能和锐度。

    这个只能通过代码来设置, 参考文档:http://docs.Unity3D.com/ScriptReference/VR.VRSettings.html,按照如下的代码设置比较容易:

    [csharp]

    using UnityEngine;

    using System.Collections;

    using UnityEngine.VR;

    namespace VRStandardAssets.Examples

    {

    publicclass ExampleRenderScale : MonoBehaviour

    {

    [SerializeField] privatefloat m_RenderScale = 1f; //The render scale. Higher numbers = better quality, but trades performance

    void Start ()

    {

    VRSettings.renderScale = m_RenderScale;

    }

    }

    }

    我们的VR演示项目里有个基础的例子,在Scenes/Examples/RenderScale 场景中。在MainMenu场景中也用到了。

    修改渲染比例示例:Unity中默认的渲染比例是1.0:

    【Unity VR教程 如何开始自己的第一个VR项目】

    如果把渲染比例调整到1.5,模型看起来更清晰:

    【Unity VR教程 如何开始自己的第一个VR项目】

    最后,如果把渲染比例调整到0.5,图像看起来更像素化:

    【Unity VR教程 如何开始自己的第一个VR项目】

    根据场景的运行状况,有可能需要降低渲染尺寸来增进显示性能,或者增加渲染比例来提高显示的锐利度。

    现在你已经对Unity中的基础VR集成更熟悉了。

    相信很多同学对VR不太了解,没有关系,达内 unity3d培训班成就你的VR梦 不用交学费也能学Unity

  • 上一篇:Unity3D-通过SystemInfo获取设备信息

    下一篇:没有下一篇了

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56