切割部分纹理

时间:2010-06-30 12:02:35

标签: xcode opengl-es

我正在为iPhone写作,OpenGL ES

你知道我怎么能用特定纹理的一部分绘制四边形?

现在我正在渲染:

 static const GLfloat texCoords[] = {
   0.0, 0.0,
   10.0, 0.0,
   10.0, 10.0,
   0.0, 10.0
  };
 glBindTexture(GL_TEXTURE_2D, atlas_tex[0]);

  GLfloat squareVertices[] = {
   0.0f, 0.0f,
   2000.5f, 0.0f,
   2000.5f,  2000.33f,
   0.0f,  2000.33f
  };


    glVertexPointer(2, GL_FLOAT, 0, squareVertices);
    glEnableClientState(GL_VERTEX_ARRAY);
 glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
 glEnableClientState(GL_TEXTURE_COORD_ARRAY);

    glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

但当然,它显示所有纹理。我不知道如何削减它。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要适当更改texCoords数组。

E.g。尝试这样的事情:

static const GLfloat texCoords[] = {
  0.0, 0.0,
  0.5, 0.0,
  0.5, 0.5,
  0.0, 0.5
};