本文内容为在绘制之前,设置相机和投影矩阵的一些基本内容,仅适合初学OpenGL ES的新手观看,如果大神们在浏览时发现了错误,请留言联系本人修改,谢谢。
在绘制图形时(不了解绘制流程的看官可以去查看我的另一篇文章OpenGL ES绘制平面图形流程),onSurfaceChanged中需要设置视口、相机矩阵、投影矩阵。一般运行结果不报错但是屏幕上只有背景色就很有可能是这部分出错了。结果不报错说明图形绘制成功,但是屏幕上没有显示说明图形没有画在用户可见区域内,而onSurfaceChanged所做的这几步操作就是用来设置在整个空间坐标系中,用户能看到的部分。
一般在onSurfaceChanged中会进行三步操作
1、设置视口
调用的函数为:GLES20.glViewport(int x, int y, int width, int height);
如上图所见,x,y为视口左下角在SurfaceView中的坐标位置,width,height为视口的宽和高。
2、设置相机矩阵
调用的函数为:Matrix.setLookAtM(float[] rm, int rmOffset, float eyeX, float eyeY, float eyeZ, float centerX,