您的位置:首页 > 移动开发 > Android开发

[OpenGL]从零开始写一个Android平台下的全景视频播放器——5.3 如何实现分屏效果

2017-01-29 08:29 645 查看
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项目地址

回到目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐