[OpenGL]从零开始写一个Android平台下的全景视频播放器——5.3 如何实现分屏效果
2017-01-29 08:29
645 查看
Github项目地址
为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过不会继续更新(保留在初始版本)
回到目录
分屏就是分两个区域显示,以配合眼镜实现一定的3D效果,这两个区域的内容理论上应该不同,但是很多播放器都是使用完全相同的内容进行显示。
实际上,如果只有一路视频输入,那么视差也只能是伪视差
所以分屏还是很简单,只要绘制两次就好了,效果如图:
仔细看会发现有一些变形了,这是因为我们的可视区域和投影矩阵没有保持一致(可视区域的宽减半了)
Matrix.perspectiveM(projectionMatrix, 0, 90, ratio/2, 1f, 500f);
将
好像正常点,不过不是很明显哈
Github项目地址
回到目录
为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过不会继续更新(保留在初始版本)
回到目录
分屏就是分两个区域显示,以配合眼镜实现一定的3D效果,这两个区域的内容理论上应该不同,但是很多播放器都是使用完全相同的内容进行显示。
实际上,如果只有一路视频输入,那么视差也只能是伪视差
简易版
GLES20.glViewport(0,0,screenWidth/2,screenHeight); sphere.draw(); GLES20.glViewport(screenWidth/2,0,screenWidth-screenWidth/2,screenHeight); sphere.draw();
glViewport用来控制显示的区域,由于我们没有清空显示的内容,所以两次绘制会覆盖上一次的内容(按照深度剪裁)
所以分屏还是很简单,只要绘制两次就好了,效果如图:
仔细看会发现有一些变形了,这是因为我们的可视区域和投影矩阵没有保持一致(可视区域的宽减半了)
Matrix.perspectiveM(projectionMatrix, 0, 90, ratio/2, 1f, 500f);
将
projectionMatrix的修改变成这样,再看看效果如何:
好像正常点,不过不是很明显哈
复杂版
两侧使用不同的MVP矩阵,可以独立控制,视角、视域等都可以根据具体机型自由调节,在此不展开叙述。Github项目地址
回到目录
相关文章推荐
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——3.1 全景视频是如何实现的
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.2 使用GLSurfaceView和MediaPlayer播放一个平面视频(中)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.3 使用GLSurfaceView和MediaPlayer播放一个平面视频(下)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.8 使用MediaPlayer播放在线视频
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.2 使用旋转矢量传感器改变球的朝向
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.1 使用GLSurfaceView和MediaPlayer播放一个平面视频(上)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.2 使用GLSurfaceView和MediaPlayer播放一个平面视频(中)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——1.3 用OpenGL ES 2.0显示一张图片(上)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——目录
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.6 播放器的UI制作
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.3 使用GLSurfaceView和MediaPlayer播放一个平面视频(下)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——3.2 使用OpenGL ES 2.0绘制一个球
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——4.1 传感器类型以及数据收集方法
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——1.1 OpenGL ES 2.0基础知识
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——4.3 怎么都搞不清楚的几个坐标系
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——4.2 屏幕朝向,手机姿态的相关概念
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——目录
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.4 响应用户的单指触控事件(平移)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.5 响应用户的多指触控事件(缩放)
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——5.1 使用OpenGL把全景视频贴到球上