Quartz Composer 4.0 практический обзор,
Mac OS X 10.6: Quartz Composer 4.0 практический обзор, новые возможности Многие из улучшений Snow Leopard представляют собой расширения для 64-битных систем и многопоточности, и непосредственно не затрагивают создание видео. Но значимые изменения Quartz Composer очень полезны, и могли бы стать самыми непосредственными поводами для обращения внимания на последнюю версию операционной системы от Apple... Обсудить на форуме |
Постоянный пользователь Mac Антон Марини (Anton Marini) рассматривает эти изменения для CDM.
Примечание редактора: Quartz Composer, интерактивное визуальное средство, включенное в набор бесплатных средств разработки Mac, привлекло внимание виджеев, начиная ещё с его появления в Mac OS X 10.4. (Некоторый из виджеев даже использовали Pixelshox - его предшественника, существовавшего ещё до появления Apple.)
Но это была медленная версия этого инструмента, использовавшая "центральное" визуальное внесения исправлений для создания интерактивных 2D и 3D образов, функции которой впоследствии и были развиты.
Добавьте к этому, способность запускать обновления для Quartz Composer, добавленную в популярном VDMX, и Quartz Composer становится наиболее популярным инструментом под Mac.
Есть в Snow Leopard 10.6 и другие элементы, которые используются виджеями, включая Quicktime X, Open CL, Grand Central Dispatch и общую
оптимизацию работы. Но одной особенностью, которой ожидали многие виджеи, является обновлённый Quartz Composer 4.0 (включая инструменты XCode). Если Вы не знакомы с Quartz Composer, но создаёте своё видео под Mac, посмотрите статьи:
• Apple Developer Documentation (http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/qc_intro/qc_intro.html)
• Quartz Composer tag on CDMo
(http://createdigitalmotion.com/tag/quartz-composer/)
Эстетика и пользовательский интерфейс
Первая вещь, которую Вы заметите это то, что Quartz Composer 4.0 (QC4) выглядит новее и гламурнее. Как выразились в Apple: “Пользовательский интерфейс Quartz Composer был перепроектирован, чтобы заставить Вас улыбнуться.” Довольно много исправлений в QC4 направлены на то, чтобы Ваши композиции занимали на экране меньше места. "Привязка к сетке" помогает выровнять выводы, таким образом, чтобы Ваши соединения выглядели более опрятно, что в свою очередь обеспечивает более быстрое понимание и более легкую отладку.
Вы оцените это, если сделаете соединительные линии большими, подобными спагетти; "привязка к сетке" действительно помогает.
Появилась обновленная панель Library. Таким образом, Вы можете добраться до соответствующих пунктов меню быстрее, легче переходить к определенным группам элементов, импортировать и экспортировать макросы, и вообще работать более спокойно.
Apple также модернизировала использование “Virtual Macros”.
Думайте о них как о композициях, которые Вы повторно используете в других композициях, как о многократно используемых 'абстракциях', или возможно, как о классах в объектно-ориентированном программировании. Многие из новых объектов, которые Вы увидите в Library, фактически являются просто композициями, таким образом,
Вы можете их открыть, редактировать, и учиться на них, как на примерах. Это делает многие из нововведений функционально прозрачными, что важно как для пользователей, которые хотят учиться на примерах так и для опытных пользователей, которые хотят добиться большего и изменить существующие композиции под свои потребности.
Моя единственная жалоба связана с тем, что новая цветовая палитра немного затрудняет различение разных типов элементов по сравнению с более старым QC 3.0 . Потребитель, поставщик и обработчик в QC 3.0 распознавались легче.
Новое большое изменение: OpenCL и меши
Если и есть одна поразительная особенность в Quartz Composer 4.0 то это то, что он теперь содержит импортер 3D моделей. Импортер загружает файлы Collada (.dae) и обрабатывает их с помощью выходного порта нового типа “mesh”. Для тех из Вас, кто плохо знаком с QC, приведу сравнение:
Вы можете управлять геометрией 3D модели, наподобие внесения корректировок в звуковой сигнал на синтезаторе. Это сделано в дополнение к сегодняшним стандартам графических, структурных, цветовых, строковых и числовых типов данных Quartz Composer и соответствующим им типам портов. (Виджеи все еще ждут от Apple реального аудио порта).
Что это означает? Теперь у Вас есть стандартизованное импортирование 3D модели с поддержкой текстур. Формат Collada быстро завоевывает популярность в качестве стандартного формата обмена данными 3D моделей, так что Вы сможете экспортировать 3D модели, созданные в различных приложениях в формат Collada для последующего использования в QC4.
Как это обычно и бывает, в дополнение к существующему импортеру OBJ, ведётся работа над импортером Collada.
Перетащите файл .dae на рабочую область открытой композиции для создания нового объекта Mesh Importer, как показано в этом видео:
Интерактивность в Quartz Composer 4.0, объект "Инерция" от vade из Vimeo.
Итак, возможно, пример моего видео не был особенно креативным, но он демонстрирует интерактивное взаимодействие с произвольными объектами. Просто присоедините объект "Interaction " к любому объекту-потребителю, и Вы можете взаимодействовать с ним в отображаемой сцене, щелкая на нём и перемещая его.
В QC4 добавлена поддержка жестикуляции, как входного воздействия для объектов "Mouse" и "Interaction", позволяющая распознать такие жесты как удар, вращение, и увеличение, совершаемые с использованием двух пальцев на трекпаде, который это поддерживает. Примечание редактора: недавно MacBook и MacBook Pro обзавелись этой функциональностью.
Объединив реакцию на жесты с элементами Feedback, Inertia и Force, Вы добьётесь действительно динамического физического взаимодействия в своих композициях.
Добавлены новые элементы, подобные упомянутым выше, фильтрам мешей: Spring, Clamping Springs и Directional Spring.
Кроме этого QC4 заявляет о выполнении оптимизации. Чтобы проверить это, я запустил несколько видео бенчмарков от Apple из стандартного набора для разработки на одной и той же конфигурации под 10.5/Quartz Composer 3 и под 10.6/Quartz Composer 4. В результате Quartz Composer 4.0 действительно в среднем демонстрирует более высокую частоту кадров для большинства сценариев.
Я выбрал несколько разных композиций для тестирования и запустил их в полноэкранном режиме (1440?900). На QC 4.0 / 10.6 я запускал файл из состава QC 3.0 / 10.5, чтобы быть уверенным в идентичности композиций.
Я тестировал воспроизведение видео с небольшим количеством несложных эффектов; входное видео имело следующие характеристики: сжатие Photo JPEG, частота кадров 24 fps, разрешение 854?480. Использовался импортер видео (Movie Importer) с настройкой ‘Asynchronous’. В этих тестах я не обрезаю выходное видео, таким образом, Quartz Composer и Core Image должным образом производят свёртку входного изображения, и размер изображения на выходе получается намного больше, чем размер входного изображения.
Мы говорим об изображения 3030 x 1700 пикселов приблизительно, что больше похоже на настоящее испытание для меня. Примечание редактора: я бегло прочитал этот текст и подумал, что перевод видео с низкой частотой кадров (до реализации этого эпического разрешения) в обрезанное до разумных размеров видео с большей частотой кадров, был бы превосходным бенчмарком для тестирования производительности.
Вот результаты тестирования:
Видео с применением эффекта Gaussian Blur; QC 3.0: 18 fps, QC 4.0 18 fps
Видео с применением эффекта Zoom Blur; QC 3.0: 10 fps, QC 4.0: 12 fps
Видео с применением эффекта Motion Blur; QC 3.0: 15 fps, QC 4.0 20 fps
Видео с применением цепочки из 4 эффектов: QC 3.0 60 fps, QC 4.0: 60-65 fps
Результаты тестирования на примерах композиций от Apple:
Club Lisa (визуализатор музыки, обратная связь, частицы, интерактивность, 3D)
QC 3.0: ~30 fps, QC 4.0: 30-35 fps
Depth Computation (сложные вычисления, 3D)
QC 3.0: 20-30 fps, QC 4.0: steady 30 fps
Blazed Trail (обратная связь)
QC 3.0: ~30 fps, QC 4.0: 45-60 fps
Psychotic (кэширование изображений, эффекты применяемые над изображениями, цепочка из нескольких эффектов)
QC 3.0: 30-45 fps, QC 4.0: 35-45 fps
Blurrier: (цепочка из нескольких эффектов)
QC 3.0: 45-60 fps, QC 4.0: 60-65 fps
Noise 3D (итеративность, 3D)
QC 3.0: 30 fps, QC 4.0: 25-30 fps
Smooth Rotation (анимация, итеративность, 3D)
QC 3.0: 20 fps, QC 4.0: 18 fps
Wavlet (сложные вычисления с использованием Core Image Kernel)
QC 3.0: 6 fps, QC 4.0: 10-12 fps
Julia iteration (фракталы, Core Image Kernel)
QC 3.0: 20 fps, QC 4.0: 20 fps
Теперь, Quartz Composer - это лучший из бенчмарков для моего старенького ATI x1600. В некоторых случаях, кажется, что в QC4 улучшен GL конвейер, особенно, если имеете дело с обратной связью. Возможно, что Apple уделяло больше внимания более новым машинам с более современными видеокартами, чем в моей системе.
Так что, возможно, что Вы заметите больше усовершенствований на более новых конфигурациях компьютеров. В целом, QC4 лучше QC3.
Примечание редактора: по аналогии, не важно является ли этот прирост производительности результатом обновления драйверов и конвейера рендеринга, Quartz Composer или всего сразу, это уже повод для обновления до Snow Leopard.
Ещё одно замечание - некоторые объекты, существовавшие ещё в QC 3.0, но в бедной реализации, были существенно обновлены. Наиболее известный объект, Render In Image, теперь использует намного более современную систему рендеринга, так как больше не поддерживает макинтоши со старыми графическими картами.
Это - огромный плюс: объединив его с только что появившимся рендерингом мешей, Вы можете сделать обработку всех трехмерных моделей в сцене. Всего лишь перебросьте меши в объект Render In Image и не беспокойтесь по поводу возможных подтормаживаний, которое обычно наблюдались.
Скрытые настройки
Удерживая в нажатом состоянии некоторую опцию и выбирая настройку в QC4, Вы получаете доступ к хорошо документированным “скрытым настройкам”, также как в QC3. Пока ещё не поддерживаемое нововведение в QC4 - опция мультисэмплинга в настройках редактора. Её установка добавляет мультисэмплинговое сглаживание в выходном окне Quartz Composer. Замечу, что не у все системы на базе Intel имеют GPU, поддерживающие мультисэмплинговое сглаживание, и оно применяется только в редакторе Quartz Composer. Разрешение мультисэмплинга не означает, что любой вывод Quartz Composition будет сглажен.
Однако, эта опция полезна, особенно для тех редких храбрецов, которые виджеят прямо в Quartz Composer.
Пример видео без мультисэмплингового сглаживания:
С мультисэмплтнговым сглаживанием:
Простой чекбокс делает мир разнообразнее: он визуально добавляет качества и удаляет уродливые артефакты от эффекта наложения.
Совместимость, стабильность, и подведение итогов
Не смотря на то, что Quartz Composer имеет версию 4.0, в большинстве случаях он ведёт себя как 1.0. Вместе с новыми возможностями возможно появление большего числа ошибок, помимо тех, которые я заметил. У QC 4.0 вероятность падения больше, чем у 3, но, в то же время, он не плох для программирования, но в целом не такой стабильный.
Quartz Composer теперь по умолчанию запускается как 64-битное приложение. Как заявила Apple, он совместим с 10.6, перешедшую на 64-бита, но несёт некоторые потенциальные сложности. Некоторые сторонние плагины, возможно, нельзя будет загрузить в 64-битном Quartz Composer. 64-битное приложение в 10.6 не может загрузить плагин, которая является 32-битным. К счастью, с помощью шаблона плагинов от Apple для XCode плагины собираются и как 32-и 64-битные, но встречаются ситуации, что некоторые функции работают только в 64-битных плагинах.
Чтобы обойти это, Вы должны выбрать, 'Get Info’ в Quartz Composer и указать “Open in 32-bit mode”, тогда 32-битный плагин будет загружен как обычно. Это работало со всеми моими плагинами.
Это проблема в особенности касается плагинов, которые используют низкоуровневые операции QuickTime, поскольку ограничения в QuickTime в 10.6 не позволяют портировать весь его код под 64-битную платформу. К сожалению это коснулось и моего плагина для проигрывания видео, поэтому он функционально ограничен 32-битной платформой. Если Вы установили плагин, а он не запускается, то попытайтесь открыть QC4 в 32-битном режиме и посмотреть загружается ли он; скорее всего, Вы будете приятно удивлены.
Однако, хорошей новостью является то, что большинство плагинов из стандартной поставки
работает с QC 4.0, и лишь несколько существующих плагинов используют функции API, которые полностью не поддерживают 64-битный режим. Kineme, один из основных источников удивительных плагинов для Quartz Composer, уже заявил о совместимости с 10.6. В основном, многие вещей работают и лишь некоторые - нет; остаётся настроится на получение обновлений в ближайшие дни. Тоже самое я могу сказать и про свои плагины.
Многие из них работают, некоторые - нет, ожидаются обновления; так что настраивайтесь!
В целом, Quartz Composer 4.0 является хорошим обновлением. Есть тонны новых возможностей, о которых я здесь не упомянул, и как только ошибки будут исправлены, он станет обязательным обновлением.
Чтобы посмотреть полный список дополнений и изменений, см. Apple’s Release Notes for Quartz Composer 4.0. [PDF].
И если Вы установили Mac OS X 10.6 и Quartz Composer 4.0, то можете изучать множество новых композиций, расположенных в/System/Library/Graphics/Quartz Composer, а так же концептуальные примеры из /Developer/Library/Quartz Composer/Examples.
Веселого времяпрепровождения и счастливого обновления!