Core Image vs Core Graphics

Fac o aplicație care folosește funcțiile de bază ale graficii. Aplicația rulează în mod rezonabil pe Ipad2, dar există o lovitură de performanță pe Ipad3 din cauza afișării retinei, ceea ce face ca desenul să fie făcut pe un număr de pixeli de 4 ori față de cel anterior. Am incercat cateva hack-uri pentru a imbunatati performantele, dar din moment ce desenul are loc in gesturi in codul meu, cred ca va trebui sa trec la o alta alternativa. Vroiam să întreb dacă Core Image oferă toate funcționalitățile care pot fi realizate utilizând Core Graphics, astfel încât să pot folosi capacitatea de procesare GPU. Dacă nu, ce ar putea fi cea mai bună alternativă, astfel încât să pot utiliza aceleași funcționalități cu o capacitate de procesare mai bună.

0
Da. Deoarece performanța arată unele îmbunătățiri atunci când unele operații de desen sunt îndepărtate sau porțiuni ale ecranelor sunt desenate în locul întregului ecran.
adăugat autor user1414340, sursa
Sunteți 100% sigur că scăderea performanței se datorează creșterii numărului de pixeli?
adăugat autor zoul, sursa

2 răspunsuri

Imaginea de bază și Core Graphics sunt foarte diferite. Imaginea de bază este o tehnologie de procesare a imaginii . Puteți aplica filtre pre-făcute cum ar fi sepia, alb-negru și culoarea inversă sau puteți crea filtre personalizate. Core Graphics este un API de redare utilizând tehnologii Quartz 2D care permit desenarea complexă.

GPUImage-ul lui Brad Larson este o alternativă excelentă/plus față de Core Image. Puteți găsi aici .

Dacă doriți performanță îmbunătățită, puteți încerca un API de nivel scăzut, cum ar fi OpenGL. Este dificil de învățat, dar aici sunt câteva linkuri pentru a începe:

0
adăugat
Mulțumiri. Asta se întâmplă cu siguranță.
adăugat autor user1414340, sursa

Un an târziu, știu, dar să aruncăm o privire la WWDC 2010 Sessions on Core Animation: 424 și 425. Ambele sunt importante, dar există câteva detalii despre reglarea performanței în 425 la aproximativ 11:00.

Sinopsisul scurt, este că există trei blocaje potențiale și trebuie să identificați, să optimizați și să păstrați iterarea până când veți obține un FPS neted. Blocajele potențiale sunt:

  • citiți lățimea de bandă
  • scrieți lățimea de bandă
  • pass-uri de procesare/redare.

Sesiunea 425 (Core Animation in Practice, Partea 2) cuprinde tehnici de abordare a celor de mai sus.

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

0
adăugat
iOS dezvoltatori, România — Moldova
iOS dezvoltatori, România — Moldova
21 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro, @seo_ro Android: @ro_android