翻转精灵(Flip Sprites)是指在OpenGL ES中通过修改像素的x和y坐标来实现纹理的翻转,从而可以绘制翻转的动画效果。OpenGL ES本身是一种基于顶点的渲染器,通过编写代码可以控制场景中所有的物体。这里要说明的是OpenGL ES本身并不支持翻转效果,而是我们应用层需要在绘制时通过翻转坐标来实现。
以下是几种在OpenGL ES中翻转精灵/纹理的方法:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data);
glViewport(0, 0, width, height);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, width, 0, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data);
glViewport(0, height, width, 0);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, height, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data);
float flip = 1.0f + random_float(); // 以0到1区间内的随机数作为翻转开关。
float tx = flip * -texture_data_width / 2.0f; // x坐标翻转
float ty = flip * -texture_data_height / 2.0f; // y坐标翻转
领取专属 10元无门槛券
手把手带您无忧上云