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

  • OpenGL ES 2.0 vs OpenGL 3 - Similitudes y diferencias
  • ¿Se descarta mal el rendimiento del programa en OpenGL?
  • Vertex Buffer Objects (VBO) no funciona en Android 2.3.3, con GLES20
  • Multiplicación apropiada de matrices para rotación / traducción
  • Aplicando textura a Cubo, textura diferente en cada cara de cubo
  • La forma correcta de dibujar texto en OpenGL ES 2
  • Uso del flujo de vídeo como textura abierta de GL ES 2.0
  • Tamaños de textura razonables en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.