opengl es 渲染方式与 纹理坐标设定 ,OpenGL ES 模型视图之缩放操作

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 '



你可能感兴趣的:(opengl,opengl,es)