2012-05-24 14 views
6

Tworzę aplikację, która wykorzystuje podstawowe funkcje Core Graphics. Aplikacja działa dość dobrze na Ipad2, ale na ekranie Ipad3 występuje efekt wydajności z powodu wyświetlania siatkówki, co powoduje, że rysowanie odbywa się na liczbie pikseli 4 razy wcześniej. Próbowałem kilku hacków, by poprawić wydajność, ale ponieważ rysowanie odbywa się na gestach w moim kodzie, myślę, że będę musiał włączyć inną alternatywę. Chciałem zapytać, czy Core Image oferuje wszystkie funkcje, które można wykonać za pomocą Core Graphics, aby móc korzystać z możliwości przetwarzania GPU. Jeśli nie, jaka może być najlepsza alternatywa, aby móc korzystać z tych samych funkcjonalności i lepszych możliwości przetwarzania.Core Image vs Core Graphics

+0

Czy jesteś w 100% pewien, że spadek wydajności z powodu zwiększonej liczby pikseli? – zoul

+0

Tak. Ponieważ wydajność pokazuje pewną poprawę, gdy niektóre operacje rysowania są usuwane lub rysowane są ekrany zamiast całego ekranu. – user1414340

Odpowiedz

9

Obraz podstawowy i grafika rdzenia są bardzo różne. Core Image to technologia przetwarzania obrazu. Możesz zastosować gotowe filtry, takie jak sepia, czarno-biały i odwrócony kolor, lub możesz tworzyć niestandardowe filtry. Core Graphics to renderujący interfejs API wykorzystujący technologie Quartz 2D, które pozwalają na kompleksowe rysowanie.

GPUImage Brada Larsona to świetna alternatywa/dodatek do Core Image. Możesz go znaleźć here.

Jeśli chcesz poprawić wydajność, możesz wypróbować API niskiego poziomu, takie jak OpenGL. Jest to trudne do opanowania, ale oto kilka linków na początek:

+0

Dzięki. To na pewno hepls. – user1414340

1

Spóźniam się o rok, ale spójrz na Sesje WWDC 2010 na temat animacji rdzenia: 424 i 425. Oba są ważne, ale istnieją pewne dobre szczegóły dotyczące dostrajania wydajności w 425 na około 11:00 .

Krótkie streszczenie, jest to, że istnieją trzy potencjalne wąskie gardła, i musisz zidentyfikować, zoptymalizować i zachować iterację, aż uzyskasz gładki 60 FPS. Potencjalne ograniczenia to:

  • przepustowości odczytu
  • zapisu przepustowość
  • przetwarzania/karnety renderingu.

Sesja 425 (Core Animation in Practice, Part 2) obejmuje techniki radzenia sobie z powyższym.

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

Powiązane problemy