有没有办法转换DrawTex绘制的矩形?

时间:2012-02-06 01:06:06

标签: opengl-es

由于OpenGL规范声明所有转换都被设计忽略,但是有一种简单的方法可以像glDrawTex一样绘制纹理,但是之前用矩阵转换像素吗?

1 个答案:

答案 0 :(得分:0)

难道你不能简单地修改glDrawTex函数的x / y / z参数来转换你想要的纹理吗? 但是如果你想旋转纹理,那么只需使用两个三角形绘制纹理四边形。这很简单。假设你有OpenGL ES 1.1版:

const float v[] = {
    0,   0,    0, 0,
    0, 128,    0, 1,
  128,   0,    1, 0,
  128, 128,    1, 1,
};

glBindTexture(GL_TEXTURE_2D, texId);
glEnable(GL_TEXTURE_2D);

glTexCoordPointer(2, GL_FLOAT, 4*4, &v[2]);
glVertexPointer(2, GL_FLOAT, 4*4, &v[0]);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);

glDrawArrays( GL_TRIANGLE_STRIP, 0, 4);

(我假设你正在使用正交投影,而128是纹理的大小)

这样可以使用模型视图矩阵修改纹理位置。此外,纹理矩阵可用于修改纹理应用于三角形的方式。