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
Respuesta
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:
- iPhone OpenGL ES – 8 Great Resources For Learning - De ManiacDev,
- OpenGL ES Programming Guide for iOS explica por sí mismo - la propia documentación de Apple, a fondo, un buen comienzo
- iOS based OpenGL ES programming - Algunos más recursos para empezar
- OpenGL ES 2.0 for iPhone Tutorial - Buena introducción Ray Wenderlich
- Pro OpenGL ES for iOS - Gran libro Apress pero no para los principiantes
Gracias. Eso seguramente hepls. – user1414340
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.
- 1. Learning Core Graphics
- 2. Core Graphics & GIF Color Table
- 3. Core Graphics sistema de coordenadas
- 4. Ventajas de utilizar Core Graphics
- 5. Core Graphics Vs Imágenes para un botón personalizado
- 6. Biselando una ruta/forma en Core Graphics
- 7. Ruido Gaussiano solo con Core Graphics?
- 8. ¿Cómo hago un punto usando Core Graphics?
- 9. NSCoding VS Core data
- 10. Cambiar el tamaño de la imagen en Core Graphics
- 11. ¿Qué partes de UIKit, Core Graphics, Core Animation, OpenGL están permitidas en no main-thread?
- 12. ¿Obliga a una ventana a redibujarse utilizando Core Graphics?
- 13. ¿Es seguro este hilo del código de Core Graphics?
- 14. iPhone Core Graphics línea discontinua más gruesa para la subvista
- 15. Cómo dibujar un rectángulo redondeado en Core Graphics/Quartz 2D?
- 16. jQuery core methods vs utility methods
- 17. NSOperation VS GCD para Core-Data
- 18. Intel MKL vs. AMD Math Core Library
- 19. iOS: Unidades de audio vs OpenAL vs Core Audio
- 20. Qt Graphics View, show image! , Widget
- 21. OpenGL Core y compatibilidad
- 22. Core monitoreo Localización región
- 23. GHC Core como "bytecode"?
- 24. Retenido Core Fundación Propiedad
- 25. iPhone Core Data Relationship
- 26. Programación multi core
- 27. Core Animation - Page flip
- 28. Core Animation ... animaciones cíclicas?
- 29. Core Data y multiprocesamiento
- 30. Core data/NSFetchedResultsController error
¿Estás 100% seguro de que la caída de rendimiento es debido al aumento del número de píxeles? – zoul
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