Unity 之 GoogleVR全景制作过程

386 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6月更文挑战」的第1天,点击查看活动详情

Google VR SDK介绍

Google的VR有两个virtual reality(VR)平台,一个是Cardboard,一个廉价的VR解决方案,2015年Goolgle的I/O推出。另一个就是今年的I/O大会刚刚推出的Daydream,期待着Daydream能够带来更加优质的,性价比高的VR解决方案。

Google VR 服务

Google VR 服务可为 Daydream 和 Cardboard 应用提供虚拟实境功能,包括在进入 VR 时显示通知、将 Daydream 兼容头戴式设备和控制器与 Daydream 兼容手机配对,以及进入和退出 VR 应用。

官方GitHub下载:github.com/googlevr/gv…

全景实现过程:

导入下载好的SDK,两个文件夹(GoogleVR,Plugin) 1

创建一个Sphere 并将其放大3-5倍左右,然后将主摄像机方到球的中心(操作方法:将主摄像机做为球的子物体,Reset一下然后在将主摄像机拖拽出来)

而后创建出一个shader,并命名为DoubleSided,,双击打开编辑,将原来的代码删除,然后将下面代码粘贴进去:

Shader "VRShader/DoubleSided"
{
    Properties
    {
         _Color("Main Color", Color) = (1,1,1,1)
        _MainTex("Texture", 2D) =  "white" {}
    }
        SubShader
    {
        //Ambient pass  
        Pass
        {
            Name "BASE"
            Tags  {"LightMode" = "Always" /* Upgrade NOTE: changed from PixelOrNone to Always */}  
            Color[_PPLAmbient]
            SetTexture[_BumpMap]  
            {
                constantColor(.5,.5,.5)  
                combine constant lerp(texture) previous
            }  
        SetTexture[_MainTex]
    {
        constantColor[_Color]  
        Combine texture * previous DOUBLE, texture *constant
    }

        }

        //Vertex lights
        Pass{
        Name "BASE"
         Tags {"LightMode" = "Vertex"}
        Material
    {
         Diffuse[_Color]
        Emission[_PPLAmbient]
         Shininess[_Shininess]
        Specular[_SpecColor]
    }

        SeparateSpecular On
        Lighting On
        cull off
        SetTexture[_BumpMap]  
        {
            constantColor(.5,.5,.5)
            combine  constant lerp(texture) previous
        }
        SetTexture[_MainTex]  
        {
            Combine texture *previous DOUBLE, texture *primary  
        }
    }

    }

        FallBack "Diffuse", 1
}

而后创建材质球并且将你想看到的图片(视频)赋值给材质球,而后给材质球选择上面设置的shader,结果如下图:

2

而后找到Google文件下的GvrViewerMain预值体,拖拽到场景中即可:

3

运行场景可以就看到效果如下: 4

注意:若想要发布到Android上测试需要java jdk 1.8.0版本,andro sdk 5.0 以上版本,Unity版本5.6以上或GoogleVR1.30以上,,,PlayerSetting设置中Virtual Reality Supported选项勾选上->选择CardBoard(纸板模式)

设置如图:

5