unity开发立体影像全景视频播放
一、谷歌开发的vr SDK已经支持了全景视频和全景图片的观看,在sdk的包中还有3d立体影像播放的例子,但是仅限于android和ios native平台,在unity中并不支持。
二、主要是对材质球的设置,本人这里只是简单的实现。
1.建立两个球模型,并给两个球建立标签。
2.新建3个材质球,分别命名为 left,right,sphere
3.这里说一下要想观看全景图还需要写一个shader,下面给出
// Based on Unlit shader, but culls the front faces instead of the back
Shader "InsideVisible" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
Cull front // ADDED BY BERNIE, TO FLIP THE SURFACES
LOD 100
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
v.texcoord.x = 1 - v.texcoord.x; // ADDED BY BERNIE, TO FLIP THE DIRECTION OF THE TEXTURE
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.texcoord);
return col;
}
ENDCG
}
}
}
4.处理三个材质球,如图:
sphere材质是看普通全景视频的。
left和right是看立体影像全景视频的。
看普通全景两个球都用sphere材质。
看立体全景两个球一个left,一个right。
5.如果使用cardboard的话直接对预设里边的左右camera进行设置,左眼遮罩不看右眼,右眼不看左眼。
请大神指导!!!!!