stringtranslate.com

Композитор кварца

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 года нет возможности запускать композиции Quartz на устройствах iOS . Начиная с macOS Catalina, фреймворк Quartz Composer устарел, хотя он все еще присутствует для совместимости. [4]

Патчи

Программирование Quartz через Quartz Composer работает путем внедрения и соединения патчей . [5] Подобно процедурам в традиционных языках программирования, патчи являются базовыми блоками обработки. Они выполняются и производят результат. Для лучшей производительности выполнение патчей следует подходу ленивой оценки , что означает, что патчи выполняются только тогда, когда требуется их вывод. Существует три типа патчей: потребители, процессоры и внешние входные патчи, которые могут получать и выводить щелчки мыши, прокрутки и движения; MIDI и аудио; клавиатуру; или другие движения. Набор патчей можно объединить в один, называемый макросом. Макросы могут быть вложенными, а их подпрограммы также редактировать.

Для управления порядком рендеринга каждому рендереру назначается слой, указанный в правом верхнем углу. Слои рендерятся последовательно, от самого низкого к самому высокому. Рендереры можно включать и отключать, по сути, включая или выключая этот конкретный слой. Отключение неиспользуемых слоев часто приводит к повышению производительности, поскольку требуется оценивать меньшее количество патчей восходящего потока.

Некоторые патчи могут иметь подпатчи, что позволяет изменять глобальные параметры только для включенных подпатчей. Это полезно для освещения, 3D-преобразований и шейдеров GLSL , среди прочего. Поддержка подпатчей обозначается квадратными углами на патче, а не типичными закругленными углами.

С версии 3.0 стало возможным превращать композиции в виртуальные патчи. Это позволяет пользователю повторно использовать функциональность без необходимости хранить дубликаты копий в каждой композиции. Редактор Quartz Composer позволяет пользователю сохранять «сглаженную» копию (с виртуальными патчами, полностью развернутыми внутри) для простого распространения. Версия 4.0 расширила эту функциональность еще больше и автоматически включает «сглаженные» копии виртуальных патчей для использования в качестве резерва, если желаемый виртуальный патч не установлен в хост-системе. Это значительно упрощает распространение композиций.

С выпуском Leopard функциональность сети была значительно улучшена. Стало возможным передавать данные и синхронизировать через сетевой интерфейс, а также была добавлена ​​поддержка передачи и приема Open Sound Control .

Плагины

Интерфейс Quartz Composer 3.0

Также новым в версии 3.0 стала возможность писать пользовательские плагины патчей с использованием шаблона Xcode и понятие " безопасного режима ", в котором плагины и другие небезопасные патчи не загружаются. Это предотвращает выполнение вредоносными композициями опасных или небезопасных операций. Пользовательские патчи с использованием шаблона Xcode от Apple всегда считаются небезопасными.

Можно было разрабатывать пользовательские плагины патчей для версии 2.0, но API был недокументированным и закрытым и никогда не поддерживался Apple. В конце концов, были выпущены шаблоны для упрощения этой процедуры. [6]

Скрытые опции

В редакторе Quartz Composer удержание клавиши Option при выборе пункта меню «Preferences...» добавляет 3 дополнительные вкладки параметров для настройки пользователем. Эти параметры включают системные настройки, настройки редактора и настройки интеграции QuickTime. Среди примечательных параметров — расширенные подсказки, программный рендеринг и рендеринг с неограниченной частотой кадров. Многовыборочное сглаживание (MSAA) было добавлено как скрытый параметр в версии 4.0, что позволяет использовать сглаживание внутри редактора QC, хотя оно работает только на графических процессорах, поддерживающих MSAA.

Собственные типы данных

Данные внутри QC могут быть одного из следующих типов:

В версии 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 была введена концепция Composition Protocols. Протоколы предоставляют шаблон обязательных и необязательных входов и выходов для квалификации соответствующих композиций для различных целей. По умолчанию доступны следующие протоколы:

Apple использует в своем частном API дополнительный протокол:

В версии 4.0 был добавлен один новый протокол:

Официально поддерживаемого способа добавления дополнительных протоколов в Quartz Composer нет. Однако есть некоторые недокументированные методы, которые могут сделать это возможным в будущем. [9]

Время выполнения композиции

В дополнение к протоколам, композиции также могут соответствовать различным средам выполнения, где доступен Quartz Composer. В Leopard есть среды выполнения для Tiger (32-бит), а также 32-битные и 64-битные версии среды выполнения Leopard Quartz Composer. Редактор также может указывать используемые патчи, которые небезопасны или недоступны в Tiger, чтобы помочь в создании совместимых композиций.

Репозиторий составов

Системный репозиторий композиций доступен с версии 3.0. [10] Это позволяет приложениям совместно использовать и использовать общие композиции для эффектов и обработки. Также приложения могут запрашивать в репозитории композиции, соответствующие определенным критериям, таким как соответствие протоколу.

Репозиторий распределен по 3 локациям файловой системы :

Добавление композиций в репозиторий так же просто, как добавление файла композиции в одно из этих мест.

Сравнение композиций

В Quartz Composer 3.0 стало возможным сравнивать композиции. Эта функция позволяет пользователю сравнивать входные данные, визуализированный вывод и внешний вид графика любых двух композиций.

Сопутствующее программное обеспечение

Визуализатор Quartz Composer

В Quartz Composer 3.0 был выпущен инструмент разработчика под названием Quartz Composer Visualizer, который позволяет отображать композиции на нескольких экранах на одном компьютере или даже на нескольких компьютерах и дисплеях.

Поддержка автоматизатора

Поддержка некоторых действий Automator была добавлена ​​с выпуском Leopard.

История

Первоначально Пьер-Оливье Латур разработал предшественника Quartz Composer под названием PixelShox Studio. [11]

Ссылки

  1. ^ Чен, Джим Икс. «Руководство по графическим программным инструментам».
  2. Руководство пользователя Quartz Composer. Архивировано 4 марта 2009 г. на Wayback Machine.
  3. ^ Руководство пользователя Quartz Composer — Создание заставки. Архивировано 4 марта 2009 г. на Wayback Machine.
  4. ^ Заметки о выпуске Xcode 11
  5. ^ Руководство пользователя Quartz Composer - Патчи [ постоянная неработающая ссылка ]
  6. ^ fdiv.net: Шаблон Xcode для пользовательских патчей Quartz Composer
  7. ^ Обзор унифицированных идентификаторов типов
  8. ^ Использование фреймворка ImageIO
  9. ^ Создание собственных протоколов
  10. ^ Руководство пользователя Quartz Composer: Репозиторий композиций [ постоянная неработающая ссылка ]
  11. ^ "PixelShox Technology". Архивировано из оригинала 29 января 2017 г. Получено 8 марта 2009 г.

Внешние ссылки

Книги

Учебники и документация

Список рассылки

Композиции

Пользовательские патчи/плагины

Изображения и видео