iPhone / ipad преобразовать рисование линий quartz2d в opengl

Это вопрос для новичков, но я ищу руководство для начинающих с opengl. У меня есть приложение, которое использует кварц 2d для рисования статических линий в представлении. Это работает нормально, но мы сталкиваемся с некоторыми проблемами производительности на ipad 1, и мы не чувствуем, что можем оптимизировать его больше, чтобы попытаться ускорить его.

Мы хотим переписать представление, чтобы использовать opengl, чтобы улучшить производительность рендеринга, однако у нас нет опыта работы с opengl. Я искал в Интернете и играл, но без особого успеха. Я использовал приведенный пример здесь (прямая ссылка ), но мне было интересно, может ли кто-нибудь написать немного кода, чтобы показать нам, как рисовать набор линий в представлении.


person Thomas    schedule 27.09.2011    source источник


Ответы (1)


В любом случае мой ответ здесь можно будет приблизительно оценить. Я расскажу кое-что из нашего опыта. Мы создавали приложение для iPhone / iPad, которое работало с диаграммами (Line / Column / Pie / ...). Меня попросили изучить, какую технологию использовать. В конце концов, мы выбрали OpenGL ES, так как это гораздо более гибкий и низкоуровневый графический движок. Наконец, когда мы столкнулись с множеством проблем с OpenGL, при рисовании этих диаграмм в UITableViews мы создали фоновые потоки и добычу, а также множество корректировок, чтобы получить производительность и исключить сбои приложений, которые сохранялись. В конце концов мы поняли, что наши диаграммы не так гладко рисуются, как многие другие существующие приложения. Покадровое рисование архитектуры может быть эффективным, когда вычислений не так много, но в нашем случае это было очень медленно, даже если большая часть вершин была рассчитана заранее. В конце концов мы решили перейти на Quartz2D и фактически выиграли войну. Все диаграммы нарисованы фреймворком iOS, который является родным и оптимизирован для быстрого и плавного рисования. Поэтому, если вы пытаетесь нарисовать только линию и думаете, что улучшите производительность, перейдя от кварца к opengl es, я считаю, что этого не следует делать. Удачи.

person Oleg Danu    schedule 27.09.2011
comment
Это интересная находка. Все, что делает наше представление, - это рисует линии, когда пользователь рисует на экране. Он отлично работает на ipad 2, но на ipad 1 время выборки слишком велико, поэтому мы пытаемся его уменьшить. Мы уже делаем такие вещи, как перерисовка только части экрана с помощью r-дерева и т. Д., Но мы не можем уменьшить время рисования и думали, что opengl может помочь - person Thomas; 27.09.2011