由于OpenGL规范声明所有转换都被设计忽略,但是有一种简单的方法可以像glDrawTex一样绘制纹理,但是之前用矩阵转换像素吗?
答案 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是纹理的大小)
这样可以使用模型视图矩阵修改纹理位置。此外,纹理矩阵可用于修改纹理应用于三角形的方式。