【翻译】 Unity3D VR 教程:2.开始进行VR开发

本文介绍如何使用Unity进行基础VR项目的创建及配置,并提供了在VR环境中调整渲染比例的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础

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


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


创建你的第一个VR项目

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

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

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


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


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

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


步骤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下面成为子对象,然后对父对象进行进行操作。


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


摄像机节点

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

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

public class UpdateEyeAnchors : MonoBehaviour
{
    GameObject[] eyes = new GameObject[2];
    string[] eyeAnchorNames ={ "LeftEyeAnchor", "RightEyeAnchor" };void Update()
    {
        for (int i = 0; i < 2; ++i)
        {
            // If the eye anchor is no longer a child of us, don't use it
            if (eyes[i] != null && eyes[i].transform.parent != transform)
            {
                eyes[i] = null;
            }

            // If we don't have an eye anchor, try to find one or create one
            if (eyes[i] == null)
            {
                Transform t = transform.Find(eyeAnchorNames[i]);
                if (t)
                    eyes[i] = t.gameObject;

                if (eyes[i] == null)
                {
                    eyes[i] = new GameObject(eyeAnchorNames[i]);
                    eyes[i].transform.parent = gameObject.transform;
                }
            }

            // Update the eye transform
            eyes[i].transform.localPosition = InputTracking.GetLocalPosition((VRNode)i);
            eyes[i].transform.localRotation = InputTracking.GetLocalRotation((VRNode)i);
        }
    }
}</span>

VR中的滤镜特效


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


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


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


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


渲染比例(render scale)


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


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

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

namespace VRStandardAssets.Examples
{ 
    public class ExampleRenderScale : MonoBehaviour
    {
        [SerializeField] private float m_RenderScale = 1f;              //The render scale. Higher numbers = better quality, but trades performance

        void Start ()
        {
            VRSettings.renderScale = m_RenderScale;
        }
    }
}</span>

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


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


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


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


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


现在你已经对Unity中的基础VR集成更熟悉了。下一篇文章,VR中的交互,会学习如何在VR中与物体交互。


原文:http://unity3d.com/cn/learn/tutorials/topics/virtual-reality/getting-started-vr-development?playlist=22946

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值