2016年是VR元年,这一年度多少少做了点东西,都是关于VR&AR的,虽然现在是冷冬期,个人认为前景还是有的,只不过会曲折前进,工业革命还分好几次呢,对吧!

好了,最近比较空闲,会整理一些VR&AR的一些经验。

这一篇会讲一下如何在Unity中播放全景视频,以及对全景视频的优化。

楼主写这篇教程一用ouclus 为例。

一、Unity播放视频

新建一个工程,写放进去一个全景视频,如果放不进去就安装个quicktime,这个具体的网上有很多前辈已经写了教程,这里我就不多说了,导入视频后显示成这样:

如果显示成白的,就是没有导入成功。

播放视频我们这里用的Unity自带的MovieTexture,条件好的话可以使用Untiy的插件AV Pro.

我们新建一个场景,场景中新建一个Sphere,命名为UntiySphere,

然后新建一个材质,这个材质的shader设置成Particles/Alpha Blended,把这个材质给到UnitySphere,然后把全景视频拖到Particle Texture上

然后新建一个脚本,叫做PlayMovie,加入下面两行代码:

MovieTexture mov = (MovieTexture)GetComponent<MeshRenderer>().material.mainTexture;mov.Play();

将此脚本挂到UnitySphere上,然后将相机的Transform Reset,这个操作是把相机放到原点,坐标旋转置为0,大小设为1,

同样我们把UntiySphere的Transform也Reset,然后将大小改到3,就是把相机包含到球里面。

我们连接好Ouclus,将Untiy的PlayerSettings设置为VR Supported,ouclus,如下图所示:

然后我们运行,就可以看到播放的全景视频

戴上oculus头显可以360度自由旋转。

当然到这里你可能疑问,为啥没有声音,这里很简单,在UnitySphere上添加组件AudioSource,

然后把全景视频下的音频文件拖进去,让它自动播放:

好了播放去全景视频就是这么简单,代码只需要两行就好了。

二、全景视频的优化

但是这里我们往头顶上看的时候会发现一个问题,头顶的图片看的不是连接自然的,能看到明显的缝隙,如图:

那下面我们就来优化这个问题,有三种思路:

1.从Untiy这边解决

从Untiy这边解决就是,我们不用Untiy自带的Sphere,因为它自带的贴图uv分部不均匀,极点会产生Twist效果,我们自己使用Mesh建立一个自己的Octahedron球,就是正八面体拆分的球,然后贴图吻合,材质我们使用跟上面一致的,具体这个球的怎么建立的详见我之前写的关于球的两篇博客:

Mesh画球    Mesh给球贴图

然后我们播放全景视频的代码做稍稍改动:

// Use this for initializationIEnumerator Start(){//此处等待是为了保证Mesh创建球的时间,实际根据电脑性能或调整脚本执行顺序即可忽略yield return new WaitForSeconds(1f);MovieTexture mov = (MovieTexture)GetComponent<MeshRenderer>().material.mainTexture;mov.Play();}

这样运行后的效果如图:

2.从模型发面解决

上面这种方法是基于Untiy原生的改变解决问题,如果你觉得太麻烦的话就不需要如此做,找模型制作的同事帮忙制作了一个比较规则的球,它的uv贴图展开的特别均匀,如图所示:

直接把场景中的UntiySphere替换成模型的ball,其它的一样,这样运行的结果如图:

这样也能达到一样的效果,性能上还省了我们Untiy创建球的时间,空间上这个模型也不大才69kb

与第一种比起来第二种更好,但是mesh的底层研究知道肯定比不知道好。

3.替换MeshFilter

楼主研究了下AVPRo插件里的全景视频的播放,发现它播放的不但很清楚,而且也没有twist的问题,一开始以为是它自己写的shader也能解决这个问题,于是把Untiy自带的Sphere赋予插件里的shader,发现问题依然存在,后来仔细研究一下,发现原来它替换了一个MeshFilter,它的MeshFilter是一个Octahedron的球,跟我们Mesh建立球的思路一样,但是它不是Untiy创建的,而是一个创建好了的片,这样比第二种方法的模型还要方便。
这个片如图所示:
我们把UnitySphere的MeshFilter替换成这个片运行后如图所示:
同样解决了哈,方法三比前面两种似乎更加方便呢。
工程下载地址

Unity VRAR Unity播放全景视频及优化极点变形twist问题相关推荐

  1. Unity中使用AVproVideo播放全景视频(HTCVIVE)

    Unity中使用HTCVIVE播放全景视频(AVProVideo插件) 1.前言 刚入职第一周做了一项目小demo,接下来给大家分享一下我的感悟吧! 1.1.Unity中播放全景视频有很多种方法,但都 ...

  2. Unity硬解播放8k视频

    Unity硬解播放8k视频 1,不用涉及什么代码实现的硬解8k,(自己动手操作过了的,文采是短板看个大概就行,等有空了再去优化语句),解决了的请点个赞,遇到我写错了的麻烦提醒我一下,大佬请自动忽略: ...

  3. Unity使用AVProVideo播放透明视频

    目录 一.目的 1.想知道:Unity使用AVProVideo播放透明视频 二.参考 1.[Unity3d]在Unity3d中播放视频:AVPro Video的使用 三.注意: 1.最终发现:还是使用 ...

  4. openGL ES进阶教程(五)制作一个简单的VR播放器,播放全景视频

    之前写过全景(VR)图片,和用openGL ES+MediaPlayer 渲染播放视频+滤镜效果 这一篇就在之前的基础上实现一个最简单的VR播放器,播放全景视频. 概述: 全景视频是一种用3D摄像机进 ...

  5. UE4中如何播放全景视频/全景视频如何在VR设备中播放

    UE4中如何播放全景视频/全景视频如何在VR头显中播放 1.全景视频的播放与普通视频在UE4中播放的前序流程基本一致 2.在项目的Content下新建一个Movies文件夹,把装备好的全景视频放进去 ...

  6. Unity 渲染 Android播放的视频画面

    码字不易,转载请注明出处喔 https://blog.csdn.net/newchenxf/article/details/119565585 1. 前言 Unity本身可以直接播放本地视频或网络视频 ...

  7. 流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频

    一.直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上. 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电 ...

  8. GLSurfaceView+openGL播放VR视频/全景视频(VR解码器)

    OpenGL ES/SDL渲染,FFmpeg :VR分屏之OpenGL-OpenGL ES来播放视频.MediaPlayer+GLSurfaceView+openGL  (推荐 )MD360 VR- ...

  9. 如何使用Autopano Video Pro进行全景视频拼接?

    from:http://news.expoon.com/c/20160816/15281.html 如何使用Autopano Video Pro进行全景视频拼接? 全景摄影一直很受欢迎,但是很少有摄影 ...

最新文章

  1. java消息推送怎么实现_调用钉钉接口实现机器人推送消息
  2. 五十七、教用Python中的turtle海龟画图(下篇)
  3. Boost:自定义静态向量
  4. 徐州事业单位计算机软件类,徐州计算机办公应用软件
  5. 括号的匹配(表达式的合法性检查)
  6. Keras-数据准备
  7. gearman初探(一、编译和安装)
  8. 实现verilog设计控制交通灯
  9. labview报表生成工具包_后台开发java 常见工具包 netty、mq 、分布式锁等,干货
  10. Django之modelform
  11. iOS could not set nil as the value for the key
  12. id门禁卡复制到手机_手机NFC也可以刷ID卡门禁?无聊测试居然成功了!
  13. 如何解决windows资源管理器已停止工作?两种方法教会你
  14. vue-cli 项目打包后 代理接口报404错误 解决办法!
  15. 最近看到需要去学习的点(持续记录)
  16. Overload resolution ambiguity. All these functions match. kotlin 开发问题日常记录
  17. python决策树算法代码_决策树算法的Python实例
  18. Failed to resolve: com.github.chrisbanes:PhotoView:1.2.6 Show in File Show i
  19. Matplotlib 多子图绘制
  20. Django实现简单网页弹出警告

热门文章

  1. 短视频拍摄5大景别及11种运镜手法,新手必备拍摄干货丨国仁网络资讯
  2. 微波雷达传感器感应模块,智能安防过滤雨水树叶干扰技术应用
  3. PageHelper处理分页问题,total总数不对
  4. 港大火星实验室最新工作:用于精确实时3D SLAM的高效概率自适应体素地图
  5. 大于2TB的卷的知识.主要关于windows, EFI,GPT
  6. 社交网络分析方法以及基本图例
  7. RGBD相机的标定和图像配准
  8. JAVA基于局域网的聊天室系统(源代码+论文)
  9. elementUI的input使用扫描枪,回显值后重新刷新页面
  10. 思科计算机网络第五章考试,思科第一学期第五章试题和答案