OpenGl ES关于渲染方式有以下两种:
RENDERMODE_CONTINUOUSLY和RENDERMODE_WHEN_DIRTY。
默认渲染方式为RENDERMODE_CONTINUOUSLY,这两种渲染的含义是:
RENDERMODE_CONTINUOUSLY:渲染器会不停地渲染场景,
RENDERMODE_WHEN_DIRTY:只有在创建和调用requestRender()时才会刷新。
setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
//设置渲染模式为主动渲染
一般设置为RENDERMODE_WHEN_DIRTY方式,这样不会让CPU一直处于高速运转状态,提高手机电池使用时间和软件整体性能。
android平台下Opengl纹理系统坐标,左上角为原点。
左上角(0,0),右上角(1.0),左下角(0,1),右下角(1,1)。
float[] textureCoords =
{
0.0f, 1.0f,
1.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f
};
最简捷的办法是:用工具将图片进行180度旋转,这样图片就倒置了。可以节省资源,提高效率~
对当前模型视图进行缩放,在OpenGL ES 1.0中可以使用glScale*函数,而在2.0中需要自己设置缩放矩阵。
如,分别使用sx,sy,sz表示在x,y,z轴上的缩放比例,那么在1.0中可以这样缩放模型视图:
glScalef(sx, sy, sz);
在2.0中你需要这么做:
float scale[16] = {sx, 0, 0, 0,
0, sy, 0, 0,
0, 0, sz, 0,
0, 0, 0, 1 };
glMultiMatrixf(scale);
缩放矩阵的推导过程如下:
vS = (vx vy vz 1) = (vx*sx vy*sy vz*sz 1*1) = v '