Cita de: "tamat"creo que deberias enterarte mejor de lo que es el MAG_FILTER y el MIN_FILTER.
Primero tenias problemas con el MAG_FILTER y lo pusiste a NEAR, de ese modo cuando el sprite ocupa en pantalla más espacio que pixeles tiene la textura lo que hace es coger el pixel más cercano, evitando difuminados que matan el pixel art.
Pero el MIN_FILTER es para el caso contrario, cuando el area donde se va a representar el sprite sea más pequeño que la textura, en tal caso coge los pixeles que más cerca quedan, pero se produce ese efecto de parpadeo ya que nada te garantiza que cada vez coja el mismo pixel.
Para evitar eso deberias actiar el MIN_FILTER para que use los mipmaps, es decir, versiones de menor resolucion de la imagen en las que se ha hecho un promedio. Prueba con GL_LINEAR_MIPMAP_LINEAR
Antes de que este hilo se hunda en el foro, comentar una cosilla...
Tal y como comenté en otra réplica, estuve tirando por ahí, por los filtros esos de texturas pero me encontré con un problema que no llegúe a solucionar. Resultaba que cuando usaba otros filtros en el MIN_FILTER diferentes del GL_LINEAR y el GL_NEAREST, me aparecían todas las texturas en pantalla de color blanco (vamos, que no se veía nada).
De todos modos, supongo que para como quiero trabajar, siempre que quiera escalar la escena con un valor constante, creo que me resultará mejor escalar previamente los sprites de las objetos en movimiento por software y crear una nueva textura para ellos.