2012-05-24 13 views
6

Estoy haciendo una aplicación que utiliza funciones básicas de gráficos básicos. La aplicación se ejecuta razonablemente bien en Ipad2, pero hay un golpe de rendimiento en Ipad3 debido a la visualización de la retina, lo que hace que el dibujo se realice en una cantidad de píxeles 4 veces mayor a la anterior. Probé algunos hacks para mejorar el rendimiento, pero dado que el dibujo tiene lugar en los gestos de mi código, creo que tendré que cambiar a otra alternativa. Quería preguntar si Core Image proporciona todas las funcionalidades que se pueden realizar usando Core Graphics, para que pueda usar la capacidad de procesamiento de GPU. Si no, ¿cuál podría ser la mejor alternativa para que pueda usar las mismas funcionalidades con una mejor capacidad de procesamiento?Core Image vs Core Graphics

+0

¿Estás 100% seguro de que la caída de rendimiento es debido al aumento del número de píxeles? – zoul

+0

Sí. Porque el rendimiento muestra alguna mejora cuando se eliminan algunas operaciones de dibujo o se dibujan partes de las pantallas en lugar de toda la pantalla. – user1414340

Respuesta

9

La imagen principal y los gráficos principales son muy diferentes. Core Image es una tecnología de procesamiento de imágenes . Puede aplicar filtros prefabricados como sepia, blanco y negro e inversión de color, o puede crear filtros personalizados. Core Graphics es una API de renderizado que utiliza tecnologías Quartz 2D que permite el dibujo complejo.

La GPUImage de Brad Larson es una gran alternativa/adición a Core Image. Puede encontrarlo here.

Si desea un rendimiento mejorado, puede probar una API de bajo nivel como OpenGL. Es difícil de aprender, pero aquí hay algunos enlaces para empezar:

+0

Gracias. Eso seguramente hepls. – user1414340

1

Un año más tarde, lo sé, pero eche un vistazo a las sesiones WWDC 2010 en Core Animation: 424 y 425. Ambos son importantes, pero hay algunos buenos detalles sobre ajuste de rendimiento en 425 aproximadamente a las 11:00 .

La breve sinopsis es que hay tres posibles cuellos de botella, y debe identificar, optimizar y seguir iterando hasta obtener 60 FPS sin problemas. Los posibles cuellos de botella son:

  • ancho de banda de lectura
  • ancho de banda de escritura
  • procesamiento/pases de renderizado.

La sesión 425 (Core Animation in Practice, Part 2) cubre las técnicas para hacer frente a lo anterior.

https://developer.apple.com/videos/wwdc/2010/