Кварцевый композитор
![]() | |
![]() Интерфейс Quartz Composer 4.0 и композиция | |
Разработчик(и) | Apple Компьютер |
---|---|
Стабильная версия | 4.6.2 / 12 декабря 2016 г. |
Операционная система | Mac OS X Tiger (версия 2.0) Mac OS X Leopard (версия 3.0) Mac OS X Leopard + iPhone SDK (версия 3.1) Mac OS X Snow Leopard (версия 4.0) macOS Сьерра (версия 4.6.2) |
Доступно в | Английский |
Тип | Язык визуального программирования / Инструмент разработки программного обеспечения |
Лицензия | Собственный |
Веб-сайт | Apple — Quartz Composer (Руководство пользователя) |
Quartz Composer — это система графов узлов , предоставляемая как часть Xcode среды разработки в macOS для обработки и рендеринга графических данных. Он способен создавать сложную анимацию для основных выступлений или презентаций, а также создавать анимированные заставки. [1]
Quartz Composer использует OpenGL (включая GLSL ), OpenCL (только в Mac OS X Snow Leopard и более поздних версиях), OpenAL , Core Image , Core Video , JavaScript и другие технологии для создания API и инструмента разработчика на основе простой парадигмы визуального программирования. Apple глубоко внедрила технологии Quartz в свою операционную систему . Композиции, созданные в Quartz Composer, можно воспроизводить автономно в любом QuickTime . приложении, поддерживающем [2] (хотя только в Mac OS X Tiger и более поздних версиях), в качестве системной заставки , [3] в качестве визуализатора iTunes из приложения Quartz Composer или может быть встроен в приложение Cocoa или Carbon с помощью прилагаемых пользовательского интерфейса виджетов . Хотя Quartz Composer включен в iPhone SDK по состоянию на декабрь 2015 г. [update] невозможно запустить Quartz Compositions на устройствах iOS . Начиная с macOS Catalina, платформа Quartz Composer устарела, хотя она все еще присутствует для совместимости. [4]
Патчи
[ редактировать ]Программирование Quartz с помощью Quartz Composer работает путем внедрения и подключения патчей . [5] Подобно процедурам в традиционных языках программирования, патчи являются базовыми процессорами. Они выполняют и дают результат. Для повышения производительности при выполнении исправлений используется подход отложенной оценки , то есть исправления выполняются только тогда, когда необходимы их выходные данные. Существует три типа патчей: патчи потребителей, процессоров и внешнего ввода, которые могут получать и выводить щелчки мыши, прокрутку и движения; MIDI и аудио; клавиатура; или другие движения. Набор патчей можно объединить в один, называемый макросом. Макросы могут быть вложенными, а их подпрограммы также можно редактировать.
Для управления порядком рендеринга каждому рендереру назначается слой, указанный в его правом верхнем углу. Слои визуализируются последовательно, от нижнего к высшему. Рендереры можно включать или отключать, по сути, включая или отключая этот конкретный слой. Отключение неиспользуемых слоев часто приводит к повышению производительности, поскольку требуется оценивать меньше восходящих исправлений.
Некоторые патчи могут иметь подпатчи, что позволяет изменять глобальные параметры только включенных подпатчей. Это полезно, GLSL помимо прочего, для освещения, 3D-преобразования и шейдеров . Поддержка субпатчей обозначается квадратными углами на патче, а не обычными закругленными углами.
В версии 3.0 стало возможным превращать композиции в виртуальные патчи. Это позволяет пользователю повторно использовать функциональность без необходимости хранить дубликаты в каждой композиции. Редактор Quartz Composer позволяет пользователю сохранять «сведенную» копию (с полностью развернутыми виртуальными патчами внутри) для облегчения распространения. Версия 4.0 еще больше расширила эту функциональность и автоматически включает «сведенные» копии виртуальных исправлений для использования в качестве запасного варианта, если желаемое виртуальное исправление не установлено в хост-системе. Это значительно упрощает распределение состава.
Функциональность сети была значительно улучшена с выпуском Leopard. Стало возможным передавать данные и синхронизировать их через сетевой интерфейс, а также добавлена поддержка передачи и приема Open Sound Control .
Плагины
[ редактировать ]
Также новым в версии 3.0 была возможность писать собственные плагины исправлений с использованием шаблона Xcode и понятие « безопасного режима », в котором плагины и другие небезопасные исправления не загружаются. Это не позволяет вредоносным композициям выполнять опасные или небезопасные операции. Пользовательские патчи, использующие шаблон Apple Xcode, всегда считаются небезопасными.
Для версии 2.0 можно было разработать собственные плагины исправлений, но API был недокументированным, частным и никогда не поддерживался Apple. Со временем были выпущены шаблоны, упрощающие эту процедуру. [6]
Скрытые опции
[ редактировать ]В редакторе Quartz Composer удержание клавиши выбора при выборе «Настройки...» в меню добавляет 3 дополнительные вкладки параметров, которые пользователь может настроить. Эти параметры включают настройки системы, настройки редактора и настройки интеграции QuickTime. Известные опции включают расширенные всплывающие подсказки, программный рендеринг и рендеринг без ограничения частоты кадров. Многосэмпловое сглаживание (MSAA) было добавлено как скрытая опция в версии 4.0, позволяющая сглаживать внутри редактора QC, хотя оно работает только на графических процессорах, поддерживающих MSAA.
Собственные типы данных
[ редактировать ]Данные внутри QC могут быть одного из следующих типов:
- Boolean — логическое значение, 0 или 1.
- Индекс — целое положительное число от 0 до 2147483647.
- Число - число двойной точности с плавающей запятой.
- Строка — в Юникоде. строка
- Цвет — квартет RGBA или CMYK или оттенков серого. значение
- Изображение – 2D-изображение произвольных (возможно, бесконечных) размеров.
- Структура — именованная или упорядоченная коллекция объектов, включая вложенные структуры.
- Виртуальный – любой из вышеперечисленных
В версии 4.0 были введены два дополнительных типа:
- Сетка — набор вершин и нормалей для каждой вершины, текстурных координат и цветов в трехмерном пространстве.
- Взаимодействие — бесполезный тип, используемый для связывания пользовательского ввода с интерактивными пользователем элементами композиции.
Преобразование типов
[ редактировать ]Данные обычно можно прозрачно преобразовать в другие типы. В Quartz Composer 3.0 соединения между патчами меняют цвет, указывая на происходящие преобразования. Желтые соединения означают, что преобразование не происходит, оранжевое указывает на возможную потерю данных в результате преобразования (число в индекс), а красное указывает на серьезное преобразование; Изображение в логическое значение, например.
Композиции
[ редактировать ]Документы Quartz Composer называются композициями . Композиции представляют собой двоичные списки свойств (хотя версии XML также поддерживаются) с расширением имени файла .qtz и com.apple.quartz-composer-composition UTI . [7] Патчи, их соединения и состояния входных портов сохраняются в файле композиции. Изображения также могут храниться внутри композиции, что позволяет создавать автономные композиции со встроенной графикой. При перетаскивании файла фильма в редактор Quartz Composer создается ссылка на файл фильма, предоставляющая изменяющееся изображение, которое можно подключить к средству визуализации.
Композиции также хранят метаданные , такие как автор композиции, авторские права и описание. При желании пользователь также может добавлять произвольные элементы метаданных.
Поддерживаются многие форматы изображений, включая JPEG , JPEG2000 , GIF , PNG , TIFF , TGA , OpenEXR , BMP , ICO , PDF , PICT , ICNS и некоторые типы необработанных цифровых камер. [8] Изображения сохраняются в исходной форме как можно дольше, прежде чем растеризоваться для отображения. Это означает, что Quartz Composer будет сохранять векторные изображения как векторы при обрезке, масштабировании, вращении или перемещении, что позволяет ему работать с очень большими логическими размерами изображений, не потребляя большого количества памяти или времени обработки. Такая функциональность наиболее очевидна при работе с текстовыми изображениями или PDF-файлами.
В версии 3.0 добавлена возможность добавлять аннотации к областям композиции, называемым заметками . Эти примечания параллельны комментариям на других языках программирования. Ноты могут быть желтыми, красными, зелеными, синими или серыми и могут перекрывать другие ноты.
Протоколы состава
[ редактировать ]В версии 3.0 была представлена концепция протоколов композиции. Протоколы предоставляют шаблон обязательных и дополнительных входных и выходных данных для квалификации соответствующих композиций для различных целей. По умолчанию доступны следующие протоколы:
- Графическая анимация. У них нет необходимых входов и выходов, но они необходимы для рендеринга на экране. Графическая анимация полезна для анимированного фона в таких приложениях, как Keynote .
- Фильтр изображений — изменяет изображение с помощью фильтров. Никакие средства рендеринга не допускаются в фильтрах изображений, если только они не находятся внутри среды Render In Image.
- Графический переход — генерирует переход от исходного изображения к целевому изображению в течение фиксированного интервала времени.
- Визуализатор RSS — анализирует и отображает RSS- канал.
- Screen Saver — интегрируется с Finder для создания анимированных заставок.
- Music Visualizer — интегрируется с iTunes для визуализации звука.
Существует дополнительный протокол, который Apple использует в своем частном API:
- Визуализатор фотографий — получает список изображений, предоставляет информацию об общем количестве изображений и отображаемом в данный момент изображении.
В версии 4.0 был добавлен один новый протокол:
- Mesh Filter – деформирует входную сетку.
Официально поддерживаемого способа добавления дополнительных протоколов в Quartz Composer не существует. Однако есть некоторые недокументированные методы, которые могут сделать это возможным в будущем. [9]
Время выполнения композиции
[ редактировать ]Помимо протоколов, композиции также могут соответствовать различным средам выполнения, где доступен Quartz Composer. В Leopard есть среда выполнения Tiger (32-разрядная версия), а также 32-разрядная и 64-разрядная версии среды выполнения Leopard Quartz Composer. Редактор также может указать использованные патчи, которые небезопасны или недоступны в Tiger, чтобы помочь в создании совместимых композиций.
Репозиторий композиций
[ редактировать ]Общесистемный репозиторий композиций доступен начиная с версии 3.0. [10] Это позволяет приложениям совместно использовать общие композиции для эффектов и обработки. Приложения также могут запрашивать в репозитории композиции, соответствующие определенным критериям, например, соответствию протоколу.
Репозиторий распределен по трем местам файловой системы :
- /System/Library/Compositions — составы базовой системы (пользователь обычно их не изменяет)
- /Библиотека/Композиции - композиции доступны всем пользователям
- /Users/username/Library/Compositions — композиции доступны только этому пользователю
Добавить композиции в репозиторий так же просто, как добавить файл композиции в одно из этих мест.
Сравнение составов
[ редактировать ]Появилась возможность сравнивать композиции в Quartz Composer 3.0. Эта функция позволяет пользователю сравнивать входные данные, визуализированные выходные данные и внешний вид графика любых двух композиций.
Сопутствующее программное обеспечение
[ редактировать ]Кварцевый композитор-визуализатор
[ редактировать ]Вместе с Quartz Composer 3.0 был выпущен инструмент разработчика под названием Quartz Composer Visualizer, который позволяет отображать композиции на нескольких экранах на одном компьютере или даже охватывать несколько компьютеров и дисплеев.
Поддержка автоматизатора
[ редактировать ]Поддержка некоторых действий Automator была добавлена с выпуском Leopard.
- Примените фильтр композиции кварца к файлам изображений
- Преобразование кварцевых композиций в фильмы QuickTime
- Рендеринг кварцевых композиций в файлы изображений
История
[ редактировать ]![]() | Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( май 2018 г. ) |
Пьер-Оливье Латур изначально разработал предшественника Quartz Composer под названием PixelShox Studio . [11]
Ссылки
[ редактировать ]- ^ Чен, Джим X. «Руководство по графическим программным инструментам» .
- ↑ Руководство пользователя Quartz Composer. Архивировано 4 марта 2009 г., на Wayback Machine.
- ↑ Руководство пользователя Quartz Composer — Создание заставки. Архивировано 4 марта 2009 г., в Wayback Machine.
- ^ Примечания к выпуску Xcode 11
- ^ Руководство пользователя Quartz Composer — Патчи [ постоянная мертвая ссылка ]
- ^ fdiv.net: Шаблон Xcode для пользовательских патчей Quartz Composer
- ^ Обзор унифицированных идентификаторов типов
- ^ Использование платформы ImageIO
- ^ Создание собственных протоколов
- ^ Руководство пользователя Quartz Composer: Репозиторий композиций [ постоянная мертвая ссылка ]
- ^ «Технология ПиксельШокс» . Архивировано из оригинала 29 января 2017 года . Проверено 8 марта 2009 г.
Внешние ссылки
[ редактировать ]Книги
[ редактировать ]- Книга композитора «Кварц» на японском языке
- Книга и DVD Learning Quartz Composer на английском языке
Учебники и документация
[ редактировать ]- Руководство по программированию Quartz Composer от Apple
- Учебные пособия по Quartz Composer
- Вики-сайт Quartz Composer
- kineme.net QC вики
- кварцкомпозер.com (неофициальный сайт)
- Блог Джорджа Толедо по программированию и дизайну
- Серия обучающих видеороликов по Quartz Composer Роба Дуарте 2015 года
- Руководство Cybero по Quartz Composer JavaScript, блог и другие учебные пособия по Quartz Composer
- Учебные пособия по интерактивному дизайну Quartz Composer
Список рассылки
[ редактировать ]Композиции
[ редактировать ]- Форум QuartzCompositions.com и репозиторий композиций
- Репозиторий композиций kineme.net
- ЗУГАКОУСАКУ
- Справочник композиций кварцевых композиторов
- Файлы GLSL, CoreImage и OpenCL Quartz Composer из тональной синхронизации на машинах dontcare
- Блог Джорджа Толедо по программированию и дизайну
Пользовательские патчи/плагины
[ редактировать ]- Плагины и эффекты vade v002
- Патчи Kineme QC
- Патчи Google Quartz Composer
- Пользовательские патчи Qtzlcodex Quartz Composer
- Плагины _1024 от Франсуа Вуншеля
- Кварцевые композиторские патчи Минуека
- Паоло Манна, королевский адвокат LuaPlugin
- Откройте Emu для контроля качества
- Открытые платформы для контроля качества
- Плагины Тома Баттерворта
- Плагины CoGe от Тамаша Надя
- Блог Джорджа Толедо по программированию и дизайну (множество официальных и неофициальных плагинов API и проектов Xcode)
- I Love QC Новый сайт, посвященный изучению Quartz Composer, созданию файлов и поддержке книги Pearson Education Learning Quartz Composer
- jQC от QCDesigners, среда проектирования взаимодействия для Quartz Composer.
- Facebook Origami, бесплатный набор инструментов для прототипирования дизайна для Quartz Composer.