Как перевернуть изображение в OpenGL? - PullRequest
1 голос
/ 19 сентября 2011

Мне неприятно задавать такой тупой вопрос, но я просто не могу понять, как перевернуть изображение с помощью Android OpenGL.

Я пытаюсь использовать gl.glScalef(-1,y,z) android gl.glRotatef(180,0,1,0), но когда я делаю это, изображение переворачивается, но оно также меняет позиции, которые я не хочу.Я уверен, что есть простой способ сделать это, я просто не получаю.

Вот мой код розыгрыша:

public void draw(GL10 gl){
    gl.glLoadIdentity();
    gl.glTranslatef(position.x, position.y, 0);
    gl.glRotatef(angle, rotX, rotY, rotZ);
    gl.glScalef(scaleX, scaleY, scaleZ);

    gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId[0]);

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glEnable(GL10.GL_BLEND);

    gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertexsBuffer);
    gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);

    gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_SHORT, indexBuffer);

    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glDisable(GL10.GL_BLEND);

    if(animation == true){
        PlayAnimations();
    }
}

Ответы [ 2 ]

2 голосов
/ 19 сентября 2011
  1. центрирование объекта (запомните перевод)
  2. выполните переворачивание путем масштабирования до -1 относительно требуемой оси.
  3. , затем "переведите обратный перевод" объекта.

Для получения дополнительной информации, пожалуйста, возьмите с собой копию компьютерной графики Джеймса Д. Фоли.http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406

1 голос
/ 19 сентября 2011

Вы можете использовать другой набор координат текстуры или матрицу текстуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...