Изучение графической основы для разработки iPhone - PullRequest
3 голосов
/ 23 декабря 2009

У меня есть некоторый опыт разработки приложений CocoaTouch Layer, Core Service Layer для iPhone.

Теперь мне нужно перейти на некоторые чисто 2-мерные и 3-мерные графические приложения для iPhone.

Для этого, насколько мне известно, для изучения мне необходимы следующие рамки:

1) Базовая графика 2) OpenGL ES 3) Кварцевый сердечник

Я хочу знать, каким должен быть подход, чтобы быстро изучить эту структуру.

Или еще, какие рамки изучать, а какие нет, и используя какой источник я должен изучить эти рамки.

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 23 декабря 2009

Базовая графика

Для этого я бы сначала рекомендовал прочитать Руководство по программированию Quartz 2D . Это лучший набор документации по теме. Затем я прочитал некоторые из вопросов, помеченных core-graphics , quartz-2d или quartz-graphics . В ответах на эти вопросы есть несколько замечательных примеров исходного кода.

OpenGL ES

Здесь много вопросов о том, как начать работу с OpenGL ES, со ссылками на многие ресурсы. К ним относятся:

Я лично рекомендую книгу «Мобильная 3D-графика: с OpenGL ES и M3G» , а также «Руководство по программированию OpenGL ES для iPhone OS» . Мое приложение Molecules имеет открытый исходный код и использует OpenGL ES. Наконец, у Джеффа Ламарша есть замечательная серия учебников по OpenGL ES.

Базовая анимация

Под Quartz Core вы, вероятно, имеете в виду Core Animation. Опять же, я бы начал с Apple Core Animation Programming Guide , а затем взглянул на примеры кода, которые можно найти здесь, под различными core-animation теговыми вопросами. Кроме того, книга Билла Дадни Core Animation для Mac OS X и книга iPhone является очень хорошим введением, а книга Маркуса Зарры и Core Animation Мэтта Лонга содержит более подробные сведения о предмет.

3 голосов
/ 23 декабря 2009

Я не уверен, что есть быстрый способ на самом деле. Документы довольно обширны. И вам нужно довольно твердое знание фундаментальных графических принципов. У меня были проблемы с обдумыванием концепций, и я использовал много графических инструментов.

Пара моментов, которые могут быть полезны:

  • при попытке нарисовать повернутое изображение, вам нужно перевести преобразование координат обратно в КВАРЦ источник (внизу слева), а не в какой-либо пользовательский источник, который вы настроили, например, в верхний левый

  • ТАК, что вам лучше (если вы не знаете, что никто и кто-либо другой, поддерживающий ваш код, никогда не захочет разбирать повернутые изображения), принимая, возможно, новые для вас идеи использования нижних левых координат (где это уместно), а не пытаясь переопределить их, изменяя контекстные CTM

  • не думайте, что Core Graphics может делать все, что вы хотите. Возможно, вам придется самостоятельно манипулировать пикселями для выполнения некоторых задач

  • Конструкция с ограничениями памяти, а также количеством и размерами буферов для обеспечения последовательного выполнения последовательности обработки

  • дизайн с ограничением размера текстур 1024 пикселей

  • убедитесь, что вы используете алгоритмы и подходы, которые находятся в пределах возможностей CPU и / или GPU; сначала протестируйте макет, чтобы выяснить проблемы с производительностью

  • при выполнении 3D-анимации в OpenGL ES убедитесь, что у вас есть возможность согласовать и синхронизировать реальное время с физической моделью того, что вы анимируете

  • рассмотреть управление цветом, затенение и выделение, обратите особое внимание на возможности устройства там

  • где это возможно, используйте Core Animation вместо Core Graphics

...