Quartz Composer es un sistema de gráficos de nodos que se incluye en el entorno de desarrollo Xcode de macOS para procesar y renderizar datos gráficos. Es capaz de crear animaciones sofisticadas para Keynote o presentaciones, así como salvapantallas animados. [ 1 ]
Quartz Composer utiliza OpenGL (incluido GLSL ), OpenCL (solo en Mac OS X Snow Leopard y versiones posteriores), OpenAL , Core Image , Core Video , JavaScript y otras tecnologías para crear una API y una herramienta de desarrollo basada en un paradigma de programación visual simple. Apple ha integrado profundamente las tecnologías Quartz en el sistema operativo . Las composiciones creadas en Quartz Composer se pueden reproducir de forma independiente en cualquier aplicación compatible con QuickTime [ 2 ] (aunque solo en Mac OS X Tiger y versiones posteriores), como un salvapantallas del sistema [ 3 ] , como un visualizador de iTunes, desde dentro de la aplicación Quartz Composer, o se pueden integrar en una aplicación Cocoa o Carbon mediante widgets de interfaz de usuario proporcionados . Si bien Quartz Composer está incluido en el SDK del iPhone, a partir de diciembre de 2015 No hay forma de ejecutar Quartz Compositions en dispositivos iOS . A partir de macOS Catalina , el framework Quartz Composer ha quedado obsoleto, aunque todavía está presente por motivos de compatibilidad. [ 4 ]
Parches
La programación Quartz a través de Quartz Composer funciona implementando y conectando patches . [ 5 ] De forma similar a las rutinas en los lenguajes de programación tradicionales, los patches son unidades de procesamiento básicas. Se ejecutan y producen un resultado. Para un mejor rendimiento, la ejecución de patches sigue un enfoque de evaluación perezosa , lo que significa que los patches solo se ejecutan cuando se necesita su salida. Hay tres tipos de patches: Consumidores, Procesadores y Patches de entrada externa que pueden recibir y emitir clics, desplazamientos y movimientos del ratón; MIDI y audio; teclado; u otros movimientos. Una colección de patches se puede fusionar en uno, llamado macro. Las macros se pueden anidar y sus subrutinas también se pueden editar.
Para controlar el orden de renderizado, a cada renderizador se le asigna una capa, indicada en su esquina superior derecha. Las capas se renderizan secuencialmente, de la más baja a la más alta. Los renderizadores se pueden activar o desactivar, lo que equivale a encender o apagar esa capa en particular. Desactivar las capas no utilizadas suele resultar en un mejor rendimiento, ya que se requiere evaluar menos parches previos.
Algunos parches pueden contener subparches, lo que permite modificar parámetros globales únicamente en los subparches incluidos. Esto resulta útil para la iluminación, las transformaciones 3D y los sombreadores GLSL , entre otras cosas. La compatibilidad con subparches se indica mediante esquinas cuadradas en el parche, en lugar de las típicas esquinas redondeadas.

Con la versión 3.0, fue posible convertir composiciones en parches virtuales. Esto permite al usuario reutilizar la funcionalidad sin tener que almacenar copias duplicadas en cada composición. El editor Quartz Composer permite guardar una copia "aplanada" (con los parches virtuales completamente expandidos) para facilitar su distribución. La versión 4.0 amplió aún más esta funcionalidad e incluye automáticamente copias "aplanadas" de parches virtuales como alternativa si el parche virtual deseado no está instalado en el sistema anfitrión. Esto simplifica enormemente la distribución de composiciones.
La funcionalidad de red mejoró notablemente con el lanzamiento de Leopard. Se hizo posible transmitir datos y sincronizarlos a través de una interfaz de red, y también se añadió compatibilidad con la transmisión y recepción de Open Sound Control .
Plugins

Otra novedad de la versión 3.0 fue la posibilidad de escribir complementos de parches personalizados mediante una plantilla de Xcode , así como la implementación de un " modo seguro " que impide la carga de complementos y otros parches no seguros. Esto evita que composiciones maliciosas realicen operaciones peligrosas o inseguras. Los parches personalizados que utilizan la plantilla de Xcode de Apple siempre se consideran no seguros.
Era posible desarrollar complementos de parche personalizados para la versión 2.0, pero la API no estaba documentada, era privada y nunca recibió soporte de Apple. Finalmente, se publicaron plantillas para simplificar este procedimiento. [ 6 ]
Opciones ocultas
En el editor Quartz Composer, al mantener pulsada la tecla Opción y seleccionar "Preferencias..." en el menú, se añaden tres pestañas de opciones configurables. Estas opciones incluyen Ajustes del sistema, Ajustes del editor y Ajustes de integración con QuickTime. Entre las opciones más destacadas se encuentran las sugerencias ampliadas, la renderización por software y la renderización con velocidad de fotogramas ilimitada. El antialiasing multisample (MSAA) se añadió como opción oculta en la versión 4.0, permitiendo el antialiasing dentro del editor QC, aunque solo funciona en tarjetas gráficas compatibles con MSAA.
Tipos de datos nativos
Los datos dentro del control de calidad pueden ser de uno de los siguientes tipos:
- Booleano : un valor booleano, 0 o 1.
- Índice: un número entero positivo entre 0 y 2147483647
- Número: un número de coma flotante de doble precisión
- Cadena: una cadena Unicode
- Color: un cuarteto RGBA o CMYK , o un valor de escala de grises.
- Imagen: una imagen bidimensional de dimensiones arbitrarias (posiblemente infinitas).
- Estructura: una colección de objetos con nombre u orden, incluidas las estructuras anidadas.
- Virtual: cualquiera de los anteriores
En la versión 4.0 se introdujeron dos tipos adicionales:
- Malla: una colección de vértices y normales por vértice, coordenadas de textura y colores en el espacio tridimensional.
- Interacción: un tipo sin valor que se utiliza para asociar la entrada del usuario con los elementos interactivos del usuario de la composición.
Conversión de tipo
Los datos generalmente se pueden convertir a otros tipos de forma transparente. En Quartz Composer 3.0, las conexiones entre los parches cambian de color para indicar las conversiones que se están realizando. Las conexiones amarillas indican que no se está realizando ninguna conversión, las naranjas indican una posible pérdida de datos durante la conversión (de número a índice) y las rojas indican una conversión importante; por ejemplo, de imagen a booleano.
Composiciones
Los documentos de Quartz Composer se denominan composiciones . Las composiciones son listas de propiedades binarias (aunque también se admiten versiones XML ) con la extensión de archivo .qtz y un com.apple.quartz-composer-compositionUTI . [ 7 ] Los parches, sus conexiones y los estados de sus puertos de entrada se guardan en el archivo de composición. También se pueden almacenar imágenes dentro de una composición, lo que permite crear composiciones autónomas con gráficos integrados. Al arrastrar un archivo de vídeo al editor de Quartz Composer, se crea una referencia a dicho archivo, lo que proporciona una imagen cambiante que se puede conectar a un renderizador.
Las composiciones también almacenan metadatos como el autor, los derechos de autor y la descripción. El usuario también puede añadir metadatos personalizados si lo desea.
Se admiten muchos formatos de imagen, incluidos JPEG , JPEG2000 , GIF , PNG , TIFF , TGA , OpenEXR , BMP , ICO , PDF , PICT , ICNS y algunos tipos de cámaras digitales RAW. [ 8 ] Las imágenes se mantienen en su formato original el mayor tiempo posible antes de rasterizarlas para su visualización. Esto significa que Quartz Composer mantendrá las imágenes vectoriales como vectores al recortarlas, escalarlas, rotarlas o trasladarlas, lo que le permite trabajar con dimensiones lógicas de imagen muy grandes sin consumir grandes cantidades de memoria o tiempo de procesamiento. Esta funcionalidad es más evidente al trabajar con imágenes basadas en texto o PDF.
La versión 3.0 incorporó la posibilidad de añadir anotaciones a áreas específicas de la composición, denominadas notas . Estas notas son similares a los comentarios en otros lenguajes de programación. Pueden ser amarillas, rojas, verdes, azules o grises, y superponerse a otras notas.
Protocolos de composición
En la versión 3.0 se introdujo el concepto de Protocolos de Composición. Los protocolos proporcionan una plantilla de entradas y salidas obligatorias y opcionales para cualificar composiciones conformes para diversos fines. Los siguientes protocolos están disponibles por defecto:
- Animación gráfica: estas no requieren entradas ni salidas, pero son necesarias para mostrarse en pantalla. Las animaciones gráficas son útiles para fondos animados en aplicaciones como Keynote .
- Filtro de imagen: modifica una imagen mediante filtros. No se permiten renderizadores en los filtros de imagen, a menos que se encuentren dentro de un entorno de renderizado en imagen.
- Transición gráfica: genera una transición desde una imagen de origen a una imagen de destino en un intervalo de tiempo fijo.
- Visualizador RSS: analiza y muestra una fuente RSS .
- Protector de pantalla: se integra con Finder para ofrecer protectores de pantalla animados.
- Visualizador de música: se integra con iTunes para la visualización de audio.
Existe un protocolo adicional que Apple utiliza en su API privada:
- Visualizador de fotos: recibe una lista de imágenes y proporciona información sobre el número total de imágenes y la imagen que se muestra actualmente.
En la versión 4.0 se añadió un nuevo protocolo:
- Filtro de malla: deforma una malla de entrada.
No existe una forma oficialmente compatible de agregar protocolos adicionales a Quartz Composer. Sin embargo, existen algunos métodos no documentados que podrían hacerlo posible en el futuro. [ 9 ]
Entornos de ejecución de composición
Además de los protocolos, las composiciones también pueden adaptarse a diferentes entornos de ejecución donde Quartz Composer esté disponible. En Leopard, existen entornos de ejecución para Tiger (32 bits), así como versiones de 32 y 64 bits del entorno de ejecución Leopard Quartz Composer. El editor también puede indicar los parches utilizados que no son seguros o no están disponibles en Tiger para facilitar la creación de composiciones compatibles.
Repositorio de composición
A partir de la versión 3.0, está disponible un repositorio de composiciones para todo el sistema. [ 10 ] Esto permite que las aplicaciones compartan y utilicen composiciones comunes para efectos y procesamiento. Además, las aplicaciones pueden consultar el repositorio para encontrar composiciones que cumplan ciertos criterios, como la conformidad con el protocolo.
El repositorio está distribuido en 3 ubicaciones del sistema de archivos :
- /System/Library/Compositions – composiciones principales del sistema (el usuario normalmente no las modifica)
- /Biblioteca/Composiciones – composiciones disponibles para todos los usuarios
- /Usuarios/nombredeusuario/Biblioteca/Composiciones: composiciones disponibles solo para este usuario.
Agregar composiciones al repositorio es tan sencillo como agregar el archivo de composición a una de estas ubicaciones.
Comparación de composiciones
En Quartz Composer 3.0 ahora es posible comparar composiciones. Esta función permite al usuario comparar las entradas, la salida renderizada y la apariencia gráfica de dos composiciones cualesquiera.
Software relacionado
Visualizador de Quartz Composer
Junto con Quartz Composer 3.0, se lanzó una herramienta para desarrolladores llamada Quartz Composer Visualizer que permite renderizar composiciones en varias pantallas de un mismo equipo, o incluso distribuirlas entre varios equipos y monitores.
Soporte de Automator
Con el lanzamiento de Leopard se añadió compatibilidad con algunas acciones de Automator.
- Aplicar el filtro de composición Quartz a los archivos de imagen.
- Convertir composiciones de Quartz a películas QuickTime
- Convierta composiciones de Quartz a archivos de imagen.
Historia
- 2002 - Apple adquirió la base de su Quartz Composer de Pierre-Olivier Latour , quien originalmente desarrolló la herramienta bajo el nombre de PixelShox Studio . [ 11 ]
- 2005 - Apple utilizó esta tecnología fundamental para desarrollar Quartz Composer, lanzado por primera vez en Mac OS X Tiger (versión 10.4) como parte del paquete Xcode . [ 12 ]
- 2007 - Mac OS X Leopard (versión 10.5) mejoró el rendimiento de Quartz Composer, incluyendo la integración con OpenCL, la renderización en estado inactivo y las canalizaciones de geometría eficientes para GPU. [ 13 ] El sistema obtuvo una interfaz de usuario rediseñada, soporte multitáctil y nuevas herramientas de flujo de trabajo como macros virtuales, colocación interactiva y una biblioteca de parches mejorada. [ 13 ] Esto mejoró el rendimiento y la renderización por hardware.
- 2009 - Junto con Mac OS X Snow Leopard (versión 10.6), se lanzó Quartz Composer 4.0, que introdujo mejoras menores en el rendimiento. La interfaz de usuario se perfeccionó para una mejor usabilidad, incluyendo una función de "ajuste a la cuadrícula". También se añadió compatibilidad con un nuevo importador de modelos 3D compatible con el formato de archivo Collada (.dae), lo que permite gestionar mallas 3D texturizadas dentro de las composiciones. [ 14 ]
- 2011 - La herramienta se integró más en el conjunto de herramientas de Xcode 4.0.
- 2014 - Con el lanzamiento de Mac OS Yosemite , Apple lanzó la API Metal diseñada para reemplazar las bibliotecas integradas de OpenGL y mejorar el rendimiento en dispositivos iOS. [ 15 ] Como resultado, este cambio marcó el declive de Quartz Composer, ya que dependía en gran medida de las tecnologías OpenGL que Metal reemplazó. Aunque aún era compatible con Yosemite, carecía de actualizaciones importantes y se consideraba cada vez más obsoleto .
- 2019 - Quartz Composer se volvió cada vez más inestable y, a partir de Mac OS 10.15 , Apple lo marcó oficialmente como obsoleto y lo eliminó de Xcode. [ 16 ] Sin embargo, se mantuvo presente por motivos de compatibilidad, pero se instó a los usuarios a migrar a frameworks más recientes, como Metal , SceneKit y Core Image . [ 16 ]
- 2021 - En Mac OS Monterey , se eliminó el complemento QuartzComposer.mdimporte, lo que indica que Apple dejó de dar soporte a los componentes de Quartz Composer. [ 17 ] Desde entonces, varios usuarios han informado que el software no funciona en portátiles Apple M1 .
Imágenes de progresión
Leopardo de QC (2007)
Leopardo de las Nieves de Quebec (2009)
QC (2010)
Control de calidad (2010+)
Referencias
- ↑ Chen, Jim X. "Guía de herramientas de software gráfico" .
- ↑ Guía del usuario de Quartz Composer. Archivada el 4 de marzo de 2009 en Wayback Machine .
- ↑ Guía del usuario de Quartz Composer: Cómo crear un protector de pantalla. Archivado el 4 de marzo de 2009 en Wayback Machine .
- ↑ Notas de la versión de Xcode 11
- ↑ Guía del usuario de Quartz Composer - Patches
- ↑ fdiv.net: Plantilla de Xcode para parches personalizados de Quartz Composer
- ↑ Descripción general de los identificadores de tipo uniforme
- ↑ Uso del marco de trabajo ImageIO
- ↑ Creación de tus propios protocolos
- ↑ Guía del usuario de Quartz Composer: Repositorio de composiciones
- ↑ "Tecnología PixelShox" . Archivado del original el 29 de enero de 2017. Consultado el 8 de marzo de 2009 .
- ↑ "Sunsetting Quartz Composer en VDMX6" . VDMX - SOFTWARE PARA VJ DE MAC . 26 de noviembre de 2024. Consultado el 15 de junio de 2025 .
- 1 2 "Notas de lanzamiento de Quartz Composer" . developer.apple.com . Consultado el 15 de junio de 2025 .
- ↑ vade (31 de agosto de 2009). "Mac OS X 10.6: Análisis práctico de Quartz Composer 4.0, nuevas funciones" . CDM Create Digital Music . Consultado el 15 de junio de 2025 .
- ↑ Smith, Ryan. "Algunas reflexiones sobre la API Metal de Apple" . www.anandtech.com . Archivado del original el 4 de junio de 2014. Consultado el 15 de junio de 2025 .
- 1 2 "Notas de la versión de Xcode 11" . Documentación para desarrolladores de Apple . Consultado el 15 de junio de 2025 .
- ↑ hoakley (14 de diciembre de 2021). "¿Qué ha cambiado en Monterey 12.1?" . The Eclectic Light Company . Consultado el 15 de junio de 2025 .
Enlaces externos
Libros
- Libro de composición Quartz en japonés
- Libro y DVD para aprender a componer con Quartz en inglés
Tutoriales y documentación
Guía de programación de Quartz Composerde Apple (ya no disponible)- Tutoriales de Quartz Composer
- Wiki de Quartz Composer
- Wiki de control de calidad de kineme.net
quartzcomposer.com (sitio web no oficial)(ya no está disponible)- Blog de programación y diseño de George Toledo. Archivado el 20 de septiembre de 2012 en Wayback Machine .
- Serie de vídeos tutoriales de Quartz Composer de Rob Duarte de 2015
- Guía de Cybero sobre Quartz Composer para JavaScript, blog y otros tutoriales de Quartz Composer.
- Tutoriales de diseño de interacción de Quartz Composer. Archivado el 23 de febrero de 2014 en Wayback Machine .
Lista de correo
- Lista de correo
- Archivo de listas de correo
- Foro de Kineme Quartz Composer, Patches y Plugins
Composiciones
- Foro y repositorio de composiciones de QuartzCompositions.com
- kineme.net Repositorio de composiciones
- ZUGAKOUSAKU
- Directorio de composiciones de Quartz Composer
- Archivos GLSL, CoreImage y OpenCL Quartz Composer de toneburst en machinesdontcare
- Blog de programación y diseño de George Toledo. Archivado el 20 de septiembre de 2012 en Wayback Machine .
Parches/plugins personalizados
- Plugins y efectos v002 de Vade
- Parches de control de calidad de Kineme
- Parches de Google Quartz Composer
- Parches personalizados de Qtzlcodex Quartz Composer archivados el 28 de agosto de 2008 en la Wayback Machine .
- _1024 complementos de Francois Wunschel
- Parches de composición Quartz de Minuek
- Paolo Manna QC LuaPlugin
- Open Emu para control de calidad
- Marcos abiertos para el control de calidad
- Complementos de Tom Butterworth
- Plugins CoGe de Tamas Nagy
- Blog de programación y diseño de George Toledo (una variedad de complementos API oficiales y no oficiales y proyectos de Xcode). Archivado el 20 de septiembre de 2012 en Wayback Machine .
- Me encanta QC. Nuevo sitio web dedicado al aprendizaje de Quartz Composer, la creación de archivos y el apoyo al libro de Pearson Education "Learning Quartz Composer".
- jQC de QCDesigners, un marco de diseño de interacción para Quartz Composer. Archivado el 23 de febrero de 2014 en Wayback Machine .
- Facebook Origami, un kit de herramientas gratuito para la creación de prototipos de diseño para Quartz Composer.
Imágenes y vídeos
- Compositor de cuarzo en Flickr
- Compositor de Quartz en Vimeo
- lenguajes de programación visual
- Desarrollo de macOS