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 '



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值