OpenGL ES 2.0 摄像机与投影

Posted Msnow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL ES 2.0 摄像机与投影相关的知识,希望对你有一定的参考价值。

1.摄像机的设置

  • 摄像机的位置坐标
  • 摄像机的位置
  • 摄像机up方向
1 Matrix.setLookAtM(
2     mVMatrix,    //存储生成矩阵元素的float[]类型数组    
3     0,               //填充起始偏移量   
4     cx,cy,cz,       //摄像机位置的x,y,z坐标
5     tx,ty,tz,        //观察目标点x,y,z坐标    
6     upx,upy,upz //up向量在x,y,z轴上的分量   
7 );    

2.投影方式-正交投影

设置视口

1 GLES20.glViewport(x,y,width,height);

 

正交投影是平行投影的一种,其投影线(物体的顶点与近平面投影点的连线)是平行的。投影到近平面的图形不会产生真实世界中"近大远小"的效果。

1 Matrix.orthoM(
2     mProjMatrix,    //存储生成矩阵元素的float[]类型数组
3     0,        //填充起始偏移量
4     left,right,    //near面的left、right
5     bottom,top,    //near面的bottom,top
6     near,far    //near面、far面与视点的距离
7 );

3.投影方式-透视投影

透视投影的投影线是不平行的,他们相交于视点。通过透视可以产生现实世界中"近大远小"的效果。

1 Matrix.frustumM(
2     mProjMatrix,    //存储生成矩阵元素的float[]类型数组
3     0,        //填充起始偏移量
4     left,right,    //near面的left、right
5     bottom,top,    //near面的bottom,top
6     near,far    //near面、far面与视点的距离
7 );

 

以上是关于OpenGL ES 2.0 摄像机与投影的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上使用 OpenGL-ES 2.0 设置横向正交投影的正确方法是啥?

OpenGL ES 2.0:投影矩阵和宽高比之间的联系是什么?

OpenGL ES 2.0 卷绕和背面剪裁

如何在 OpenGL ES 2.0 中将视图/模型/投影矩阵传递给我的顶点着色器?

OpenGL ES 2.0 雾

用于模糊的 OpenGL ES 2.0 片段着色器速度慢且质量低