Кварцевые фундаментальные понятия композитора

Кварцевый Композитор является средством разработки, предоставленным OS X v10.5 для обработки и рендеринга графических данных. Его визуальная среда программирования подходит для:

После установки инструментов разработчика обеспечил OS X v10.5, можно найти Кварцевое средство разработки Композитора в:

/Developer/Applications

Кварцевый Композитор объединяет богатый набор графических и неграфических технологий, включая Кварц 2D, Базовое Изображение, Базовое Видео, OpenGL, QuickTime, Core MIDI Services, RSS (Лента новостей), XML и т.д.

В этой главе описываются фундаментальные понятия, необходимо понять Кварцевого Композитора. Это определяет основные элементы (составы и патчи), описывает поток данных в составе, иллюстрирует систему координат и представляет репозиторий состава.

Составы

Вы используете Кварцевого редактора Композитора для создания Кварцевых составов, которые являются программами графики предложения процедурного характера, создаваемыми путем сборки существующих ранее модулей (названный патчами) в потоке операций для обработки данных и рендеринга. Рисунок 1-1 показывает простой состав.

Рисунок 1-1  Кварцевый состав
A Quartz composition

Составы могли ввести параметры и приводят к выходным результатам. Вывод, произведенный составом, показанным на рисунке 1-1, является вращающимся кубом, поверхности которого показывают видео, полученное камерой, подключенной к компьютеру (см. рисунок 1-2).

  Анимационная графика рисунка 1-2 производится составом
Motion graphics produced by a composition

Состав может работать автономно, но для любого приложения Mac также возможно связаться с составом и интегрировать состав в его существующий поток операций. (См. Кварцевое Руководство по программированию Композитора для подробных данных об интегрирующихся составах в приложения.) Составы сохранены как Кварцевые файлы Композитора с .qtz расширение.

Патчи

Основные элементы Кварцевого Композитора являются патчами. Подобный подпрограммам в традиционных языках программирования, патчи являются основными блоками обработки. Они выполняют и приводят к результату. Патчи эквивалентны следующему:

Result = function (time, {0 or more input parameters})

В отличие от традиционных подпрограмм, патчи являются визуальными объектами (см. рисунок 1-3), что Вы добавляете к визуальной среде программирования. Круги на патче представляют порты с входными портами на левой стороне патча и выходных портов на правой стороне. Порты передают данные через них — можно думать о портах как о параметрах.

  Демонстрационные патчи рисунка 1-3
Sample patches

Как подпрограммы, не все патчи берут входные параметры. Рисунок 1-3 показывает три патча, демонстрирующие различные конфигурации, которые могут иметь порты. Патч Низкочастотного осциллятора (LFO) имеет оба порта ввода и вывода. Эти шесть входных портов — Тип, точка, Фаза, Амплитуда, Смещение и Отношение PWM — предоставляют данные, использующиеся для вычисления амплитуды колебания в определенное время. Расчетное амплитудное значение доступно на выходном порту патча.

Информационные патчи Композитора Средства импорта и Кварца Изображения не имеют никаких входных портов, но у каждого есть выходной порт. Патч Средства импорта Изображения производит изображение, в то время как Кварцевый Информационный патч Композитора производит значение, указывающее версию Кварцевого Композитора, работающего на системе. Патч Sprite, имеет много входных портов, но никакой выходной порт. Вместо этого патч Sprite представляет свой результат месту назначения. Соединения между портами определяют, как потоки данных, когда работает состав.

Режимы выполнения

Патчи разделены на группы, определяющие их режим выполнения — потребитель, процессор или провайдер. Потребитель представляет результат месту назначения. Патч Куба на рисунке 1-1 является примером потребителя. Это рисует текстурированный куб на экран. Потребительский патч имеет эти способы поведения:

  • Если Разрешать ввод установлен в, выполняется True.

  • Выполняется в определенном порядке. Отметьте число в верхнем правом из патча Куба. Это называет порядок выполнения (также названным уровнем рендеринга) относительно других потребительских патчей. Потребительские патчи выполняются в числовом порядке от самого низкого до самого высокого.

  • Данные получений по запросу от процессоров и провайдеров.

Процессор обрабатывает данные в указанных интервалах или в ответ на изменение входных значений. Патч Интерполяции на рисунке 1-1 является примером патча процессора. Это возвращает значение, вычисленное путем интерполяции между запуском и окончанием значения в течение данного времени. Когда входные значения или время изменяются, патч Интерполяции обновляет свое выходное значение. В этом случае выходное значение изменяется на основе продолжительности интерполяции и повторного режима.

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

Строки заголовка патчей являются цветом, кодированным для указания их режима выполнения. Процессоры являются зелеными, провайдеры являются синими, и потребители являются розовыми. Просто путем рассмотрения цвета, можно определить режим выполнения каждого патча на рисунке 1-1.

Иерархия патча

Кварцевый состав подобен любому комплексу C или программе Objective C, имеющей основную подпрограмму и много подпрограмм. Корневой макро-патч подобен в понятии основной подпрограмме. Макро-патч (или просто макрос) подобен подпрограмме в традиционной программе. Как подпрограммы, макрос может использовать (или вызов) другой макрос, что означает, что макросы могут быть вложены, формируя иерархию патча в составе.

Кварцевый Композитор обеспечивает несколько макро-патчей, требующих, чтобы Вы добавили подпатчи к ним. Например, патч Освещения является макросом. Для использования этого патча для освещения объекта Вы помещаете в патче Освещения, патчи, создающие объект, который Вы хотите осветить. Можно также создать пользовательские макросы. При упаковке наборов патча, поскольку макросы сохраняют сложные составы управляемыми и простыми читать. Макро-патчи отличаются от других патчей. Макросы имеют квадратные углы, в то время как другие патчи имеют скругленные углы, как Вы видите путем рассмотрения выбора патчей на рисунке 1-4.

  Патчи Макроса рисунка 1-4 имеют квадратные углы; другие патчи имеют скругленные углы
Macro patches have squared corners; other patches have rounded corners

Путь оценки

Кварцевый путь оценки Композитора определяет, когда и как часто выполняется каждый патч в составе. Когда Кварцевый Композитор выполняет состав, он пересекает иерархию патча, от корневого макро-уровня установки патча для понижения уровней, и пытается выполнить макро-патчи. Рисунок 1-5 показывает путь оценки для состава с многократными уровнями. Оценка начинается на корневом уровне с макро-патча. Кварцевый Композитор должен переместиться в уровень 1 для получения данных, в которых он нуждается для макро-патча на корневом уровне. Уровень 1 содержит макрос, который должен быть оценен, таким образом, оценка перемещается в уровень 2. Тот уровень содержит макрос, таким образом, оценка перемещается в уровень 3. Уровень 3 не содержит макросов, таким образом, начинается оценка. После того, как уровень 3 оценен, Кварцевый Композитор перемещается в уровень 2 для завершения той оценки и затем перемещается в уровень 1 для завершения той оценки.

Рисунок 1-5  путь оценки для иерархического состава
The evaluation path for a hierarchical composition

Из макро-патча Кварцевый Композитор выполняет потребителей сначала, начиная с потребителя, рендеринг которого уровня является самым низким. Процессор и патчи провайдера выполняются, когда потребитель исправляет данные получения по запросу от них. Рисунок 1-6 показывает содержание макро-патча, представляющего спрайт. Положение мыши управляет позицией спрайта. Низкочастотное колебание управляет шириной и высотой спрайта.

Рисунок 1-6  содержание макро-патча, представляющего спрайт
The contents of a macro patch that renders a sprite

Рисунок 1-7 показывает порядок оценки макроса, показанного на рисунке 1-6. Существует два потребительских патча — Ясны и Sprite. Вспомните, что потребители оценивают в числовом порядке от самого низкого до самого высокого. Например, на рисунке 1-7, Ясном, оценивает сначала, затем Sprite. Это означает, что Кварцевый Композитор очищает область просмотра прежде, чем представить спрайт. Но для патча Sprite для завершения его выполнения патч вытягивает данные сначала от патча Мыши, затем от патча LFO, и наконец от Математического патча. После того, как патч Sprite имеет все данные, в которых требуется, это может тогда представить свой результат.

  Порядок Оценки рисунка 1-7
Evaluation order

Система координат

Кварцевый Композитор использует трехмерную систему однородной координаты, как показано на рисунке 1-8. Источник в центре экрана. Ось X является горизонталью, и ось y является вертикальной. Ось z является ортогональной к осям x и y, так, чтобы она вышла из экрана к средству просмотра. Левые и правые границы экрана имеют координаты –1.0 и +1.0, соответственно. (См. ось X в числе.) Координаты верхних и нижних границ (ось y в числе) зависят от экранного форматного соотношения (AR). В случае 4:3 форматное соотношение, значения на границах +1.0 / AR = +0.75 и –1.0 / AR = –0.75, соответственно.

Также возможно иметь форматное соотношение, для которого верхние и нижние границы экрана имеют координаты –1.0 и +1.0, соответственно, в то время как левые и правые границы +1.0 / AR и –1.0 / AR, соответственно. Например, 3:4 форматное соотношение.

Рисунок 1-8  Кварцевая система координат Композитора
The Quartz Composer coordinate system

Кварцевая система координат Композитора отображается на место назначения рендеринга. Полная ширина места назначения рендеринга является 2,0 модулями — один модуль в положительной оси X, добавленной к одному модулю в отрицательной оси X. Можно установить размер представляющейся графики. Размер 2,0 указывает для использования полной ширины места назначения рендеринга. Размер, который меньше чем 2,0 модуля указывают для использования пропорции места назначения рендеринга (1.0 указывает для использования половины, 1.5, указывает для использования 75%, и т.д).

По умолчанию непреобразованная система координат идентична глазной системе координат. Т.е. проекция 3D объекта на 2D место назначения рендеринга с точки зрения средства просмотра, расположенного непосредственно перед монитором с осью z, перемещаясь перпендикуляр в монитор.

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

Кварцевый состав обеспечивает стандартный способ выразить анимационную графику в OS X, является ли это для обработки эффектов или анимации. По этой причине OS X v10.5 включает репозиторий состава — центральное расположение для хранения составов. Любое приложение, с помощью Кварцевой платформы Композитора, может запросить репозиторий для определенных типов составов или просто просмотреть репозиторий для наблюдения то, что доступно. Репозиторий находится через эти папки:

Любой состав, сохраненный в репозитории, должен соответствовать одному из протоколов, перечисленных в Таблице 1-1. Кварцевый Композитор обеспечивает шаблоны для каждого из этих протоколов, которые доступны, когда Вы запускаете Кварцевого Композитора (см. рисунок 1-9), или путем выбора File> New From Template. При выборе шаблона в Кварцевом пользовательском интерфейсе Композитора Вы будете видеть подробное описание для того протокола вместе с информацией о требуемых и дополнительных параметрах. После изменения шаблона можно сохранить состав в репозитории, чтобы позволить другим приложениям использовать состав.

Табличные 1-1  протоколы Состава

Протокол

Требуемые входные параметры

Дополнительные входные параметры

Выходные параметры

Графическая анимация

Ни один

Основной цвет, дополнительный цвет, темп и режим предварительного просмотра

Ни одно требуемое, но должен представить на экран

Графический переход

Исходное изображение, конечное изображение

Режим Preview

Ни одно требуемое

Фильтр изображения

Изображение

Позиция центра эффекта, режима предварительного просмотра

Изображение

Музыка visualizer

Аудио пик, спектр звука

Информация дорожки, позиция дорожки, отслеживает сигнал

Ни одно требуемое

RSS visualizer

URL для канала RSS

Продолжительность дисплея

Ни одно требуемое

Экранная заставка

Ни один

Отображаемое изображение, режим предварительного просмотра

Ни один не потребовал, веб-страница дополнительный URL

Кварцевый интерфейс программирования Композитора обеспечивает классы Objective C (QCCompositionRepository и QCComposition) это позволяет разработчикам получать доступ к репозиторию программно и предоставлять поддержку в приложении для просмотра и выбора составов. Вы не должны знать, что Objective C создает состав для репозитория, но необходимо знать, что Objective C получает доступ к репозиторию программно. Кварцевый интерфейс программирования Композитора упрощает для разработчиков поддерживать вид анимационной графики, которую использует приложение как iMovie и iDVD. Для получения дополнительной информации посмотрите Кварцевый Ссылочный Набор Композитора.

  Шаблоны рисунка 1-9, доступные в Кварцевом Композиторе
Templates available in Quartz ComposerTemplates available in Quartz Composer