¿Es posible deformar la imagen subyacente con OpenGL ES 2.0?

Tengo una aplicación de Android 4.0 que utiliza el método GL_OES_EGL_image_external de representación de vídeo como una superficie OpenGL. Eso funciona muy bien. Además, me gustaría estirar / deformar algunos parches en la parte superior de eso. Actualmente sombreo aquellas áreas que me gustaría que se deformen con algunos shaders adicionales en algunos quads encima de esas áreas. Estoy atascado en cómo conseguir el color subyacente. ¿Cómo el sombreado en mi quad en la parte superior del video quad deformación de la imagen subyacente? ¿Es posible?

Estoy en iOS, pero mi aplicación hace algo muy similar.

Cómo lo he logrado se basa en algún código de ejemplo de Apple (mira RippleModel.m en particular). Cómo funciona es que coloca el vídeo de textura de vídeo no en un cuadrante, pero en una cuadrícula muy mosaico, por lo que tiene una tonelada de triángulos con una tonelada de coordenadas de textura. Crea los vértices de esta cuadrícula mediante programación y, lo que es más importante, crea también las coordenadas de textura de forma programática y los mantiene en una matriz.

Para cada trama, itera a través de todos los vértices y actualiza las coordenadas de textura para cada uno, 'deformándolos' en un patrón ondulado, basado en donde el usuario ha tocado, y basado en la cantidad de textura que los vértices circundantes tienen. Así que la geometría no se cambia en absoluto, y no realizan la deformación en el sombreador, todo se hace en las coordenadas de textura; El sombreador es simplemente hacer la búsqueda de textura recta en las coordenadas que ha recibido.

Por lo tanto, es difícil decir si este enfoque funcionará para sus necesidades, pero si las urdimbres sólo suceden en 2d, y si puede averiguar cómo definir su urdimbre como ajustes de coordenadas de textura, esto puede ayudar.

  • Cómo dibujar círculo básico en OpenGL ES 2.0 Android
  • Parpadeo de la pantalla de OpenGL ES 2.0
  • GLSL ES falla las variables locales?
  • Cómo utilizar la cámara con Android OpenGL ES para trabajar?
  • Mostrar un texto como textura con OpenGL ES 2.0
  • Carga rápida de texturas en OpenGL 2.0
  • referencia indefinida glBindVertexArrayOES en eclipse
  • Android se congela en OpenGL | ES (la CPU puede estar vinculada.
  • ¿Dónde está la documentación para OpenGL ES 2.0 en Android?
  • Detectar si OpenGl ES 2.0 está disponible o no
  • Android - OpenGL ES 2.0: Emulador (Works) - Dispositivo (no)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.