3d视频播放 原理: 主要参考此文:http://bernieroehl.com/360stereoinunity/ 3d视频播放主要是将每一帧渲染到VR左右眼上,左眼取每帧的左半部分,右眼取右半部分。关键点就是解决如何将每帧分为左右两部分,如何将左右眼摄像头分别对应左右帧图像。 步骤:1 导入包 lrmap.unitypackage,此包是个shader,用来根据UV坐标系,将每帧图像分成左右或者上下两部分。 如红笔所表示的 xy控制左右两部分,zw控制上下两部分。 X=0 y=0.5代表左边部分 x=0.5 y=1代表右半边部分。 2 添加left Quad :GameObject—3d Object – Quad 然后将1中解压出的名字为 tcUVcon 的shader拖到此quad中修改quad的名称为left,然后修改x,y的值为0,0.5. 添加right Quad,同上 只是修改quad的名称为right,然后修改x,y的值为0.5,1 3 添加两个层 left,right,将left Quad层选择为left 同理修改right Quad,选择层为right 4 选择leftCameraT,将culling mask,选择为left, 同理rightCameraT 选择为right。 5 新建脚本 MoivePlay3D.cs 此cs同MoviePlayerSample,需要修改以下 Awake() 中注释掉 //if (GetComponent<Renderer>().material == null || GetComponent<Renderer>().material.mainTexture == null) //{ // Debug.LogError("Can't GetNativeTextureID() for movie surface"); //} void Update()中添加 { //responseGamePadInput(); //leftQuad.renderer.material.mainTexture=movieTex; if (texture == null) { Debug.Log("333333"); }else { Debug.Log("444444"); leftQuad.GetComponent<Renderer>().material.mainTexture = movieTex; rightQuad.GetComponent<Renderer>().material.mainTexture = movieTex; } //rightQuad.renderer.material.mainTexture = movieTex; } 添加全局变量 public GameObject leftQuad, rightQuad; 然后将左右quad 分别拖到脚本对应的leftQuad, rightQuad中
vr 播放3d视频
猜你喜欢
转载自wang-peng1.iteye.com/blog/2303325
今日推荐
周排行