Základní koncepty v Quartz Composeru (4)

Obvody

Základními prvky Quartz Composeru jsou obvody. Obvody jsou základní procesní jednotky, rutiny podobné v tradičních programovacích jazycích. Vykonají se a poskytnou výsledek. Obvody jsou ekvivalentní následujícímu kódu:

Result = function(time, {0 nebo více vstupních parametrů})

Narozdíl od tradičních rutin jsou obvody vizuálními prvky (viz obrázek níže) které vkládáme do programovacího prostředí. Kruhy na obvodech představují porty, vstupní jsou na levés straně a výstupní na pravé straně. Porty přenáší data obvody, můžete si je představit jako parametry.


Příklady obvodů

Stejně jako rutiny ne všechny obvody přijímají vstupní parametry. Na obrázku výše jsou ukáaány tři obvody které představují různé konfigurace portů. LFO (Low Frequency Oscilator - oscilátor nízké frekvence) obvod má oboje vstupní i výstupní porty. Šest vstupních portů - Type, Period, Phase, Ampltude, Offset a PWM Ratio poskytují data která jsou použita pro výpočet amplitudy oscilace za daný čas. Vypočítaná hodnota amplitudy je poslána na výstupní port obvodu.

Obvody Image Importer a Quartz Composer Info nemají žádné vstupní porty, ale oba mají jeden výstupní port. Výstupem obvodu Image Importer je obrázek, zatímco Quartz Composer Info produkuje hodnotu udávající verzi Quartz Composeru na daném systému. Obvod Sprite má mnoho vstupních portů ale ani jeden výstupní port. Jednoduše vykreslí výsledek svých operací na nějaké místo určení. Spoje mezi obvody definují datový tok za běhu kompozice.

Módy zpracování

Obvody jsou rozděleny do skupin podle módu zpracování - konzument, procesor nebo poskytovatel. Konzument vykresluje výsledek na místo určení. Obvod Cube na prvním obrázku je příklad konzumenta. Vykresluje texturovanou krychli na obrazovku. Konzument vykazuje následující chování:

Procesor zpracovává data v urřitých intervalech nebo jako odpověď na změnu vstupních hodnot. Obvod Interpolation na prvním obrázku je příkladem procesoru. Vrací hodnotu vypočtenou interpolací mezi počáteční a koncovou hodnotou za daný časový okamžik. Obvod Interpolation pak aktualizuje svou výstupní hodnotu pokaždé když se změní vstupní hodnota nebo čas. V tomto případě se výstupní hodnota mění v závislosti na délce trvání interpolace a módu opakování.

Poskytovatel poskytuje data z vnějšího zdroje do kompozice. Tento typ obvodu se provádí na požádání, to znamená kdykoli se od něj požadují data, ale maximálně jednou za snímek. Obvod Video Input na na prvním obrázku je příkladem poskytovatele. Poskytuje obrázky zachycené z externího zdroje videa.

Popisky obvodů mají různé barvy které označují jejich módy zpracování. Procesory jsou zelené, poskytovatelé modří a konzumenti růžoví. Podle barvy jednodušše rozpoznáte mód zpracování každého obvodu na prvním obrázku.

Hierarchie obvodů

Quartz kompozice jsou podobné jakýmkoli jiným, komplexním programům v C nebo Objective-C který má hlavní rutinu a hodně subrutin. Podobným konceptem hlavní rutině je kořenový makro obvod. Makro obvod (zjednodušeně makro) je podobný subrutině v tradičním programu. Podobně jako subrutiny může makro používat (nebo volat) jiné makro, což znamená že makra mohou být vnořená do sebe a tvořit tak hierarchii obvodů umístěné v kompozici.

Quartz Composer poskytuje mnoho makro obvodů které od vás vyžadují vložení jiných obvodů. Například obvod Lighting je makro. Pokud chceme tento obvod k osvícení nějakého objektu, vložíme do obvodu Lighting obvody které tvoří objekt jenž chceme osvítit. Také lze vytvářet vlastní makra. Ucelením kolekcí obvodů do maker ulehčuje údržbu a přehlednost složitých kompozicí. Makro obvody vypadají odlišně od ostatních obvodů. makro obvody mají hranaté rohy zatémco ostatní obvody je mají zaoblené jak je možné vidět na uspořádání obvodů níže:


Makro obvody mají ostré rohy, ostatní obvody je mají zaoblené