¿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?

One Solution collect form web for “¿Es posible deformar la imagen subyacente con OpenGL ES 2.0?”

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.

  • Google Maps Android API V2 no muestra mapas en Emulator
  • Escena de OpenGL con fondo transparente + widgets nativos por debajo y por encima
  • Vertex Buffer Objects (VBO) no funciona en Android 2.3.3, con GLES20
  • Añadir dinámicamente formas Opengl
  • Android: los hilos no se ejecutan en paralelo
  • Android OpenGL ES 2.0: No obtengo resultados que quiero con Matrix.traslateM
  • Parpadeo de la pantalla de OpenGL ES 2.0
  • Qué superficie utilizar para eglMakeCurrent para el contexto que sólo se convierte en FBOs
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.