Compositor de cuarzo

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Lenguaje de programación visual basado en nodos

Quartz Composer es un lenguaje de programación visual basado en nodos que se proporciona como parte del entorno de desarrollo Xcode en macOS para procesar y representar datos gráficos.

Quartz Composer utiliza OpenGL (incluido GLSL), OpenCL (solo en Mac OS X Snow Leopard y versiones posteriores), Core Image, Core Video, JavaScript y otras tecnologías para crear una API y una herramienta de desarrollo en torno a 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 (aunque solo en Mac OS X Tiger y posteriores), como protector de pantalla del sistema, como visualizador de iTunes, desde dentro de la aplicación Quartz Composer o se pueden incrustar en una aplicación Cocoa o Carbon a través de los widgets de interfaz de usuario suministrados. Si bien Quartz Composer se incluye con el SDK de iPhone, a partir de diciembre de 2015 no hay forma de ejecutar Quartz Compositions en dispositivos iOS. A partir de macOS Catalina, el marco Quartz Composer ha quedado obsoleto, aunque todavía está presente por motivos de compatibilidad.

Parches

La programación de Quartz a través de Quartz Composer funciona implementando y conectando parches. Al igual que las rutinas en los lenguajes de programación tradicionales, los parches son unidades de procesamiento base. Ejecutan y producen un resultado. Para un mejor rendimiento, la ejecución de parches sigue un enfoque de evaluación diferida, lo que significa que los parches sólo se ejecutan cuando su resultado es necesario. Hay tres tipos de parches: consumidores, procesadores y parches de entrada externa que pueden recibir y generar clics, desplazamientos y movimientos del mouse; MIDI y audio; teclado; u otros movimientos. Una colección de parches se puede fusionar en uno solo, lo que se denomina macro. Las macros se pueden anidar y también editar sus subrutinas.

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 menor a mayor. Los renderizadores se pueden habilitar o deshabilitar, esencialmente activando o desactivando esa capa en particular. Desactivar las capas no utilizadas a menudo da como resultado un mejor rendimiento, ya que es necesario evaluar menos parches ascendentes.

Algunos parches pueden tener subparches, lo que permite cambios de parámetros globales solo en los subparches incluidos. Esto es útil para iluminación, transformación 3D y sombreadores GLSL, entre otras cosas. La compatibilidad con subparches se indica mediante esquinas cuadradas en un parche, en lugar de las típicas esquinas redondeadas.

Con la versión 3.0, fue posible convertir composiciones en parches virtuales. Estos permiten al usuario reutilizar funciones sin tener que almacenar copias duplicadas en cada composición. El editor Quartz Composer permite al usuario guardar un archivo "aplanado" copia (con los parches virtuales completamente expandidos en su interior), para una fácil distribución. La versión 4.0 amplió aún más esta funcionalidad e incluye automáticamente etiquetas "aplanadas" copias de parches virtuales para usar como respaldo si el parche virtual deseado no está instalado en el sistema host. Esto simplifica enormemente la distribución de la composición.

La funcionalidad de la red mejoró enormemente con el lanzamiento de Leopard. Se hizo posible transmitir datos y sincronizar a través de una interfaz de red, y también agregó soporte para la transmisión y recepción de Open Sound Control.

Complementos

La interfaz Quartz Composer 3.0.

Otra novedad en la versión 3.0 fue la posibilidad de escribir complementos de parches personalizados, utilizando una plantilla Xcode, y la noción de un "modo seguro", donde los complementos y otros parches no seguros no se cargan. Esto evita que composiciones maliciosas realicen operaciones peligrosas o inseguras. Los parches personalizados que utilizan la plantilla Xcode de Apple siempre se consideran inseguros.

Fue posible desarrollar complementos de parches personalizados para la versión 2.0, pero la API no estaba documentada y era privada, y Apple nunca la admitió. Finalmente, se publicaron plantillas para simplificar este procedimiento.

Opciones ocultas

En el editor de Quartz Composer, manteniendo presionada la tecla de opción mientras seleccionas "Preferencias..." desde el menú agrega 3 pestañas adicionales de opciones para que el usuario las configure. Estas opciones incluyen configuración del sistema, configuración del editor y configuración de integración de QuickTime. Las opciones notables incluyen información sobre herramientas ampliada, renderizado de software y renderizado de velocidad de fotogramas sin límite. El antialiasing multimuestra (MSAA) se agregó como una opción oculta en la versión 4.0, lo que permite el antialiasing dentro del QC Editor, aunque solo funciona en GPU que admiten 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 entero positivo entre 0 y 2147483647
  • Número de punto flotante de doble precisión
  • Pendiente - una cadena unicode
  • Color - un cuarteto RGBA o CMYK, o un valor Grayscale
  • Imagen - una imagen 2D de dimensiones arbitrarias (posiblemente infinitas)
  • Estructura - una colección nombrada o ordenada de objetos, incluyendo estructuras anidadas
  • Virtual - cualquiera de los anteriores

Se introdujeron dos tipos adicionales en la versión 4.0:

  • Mesh - una colección de vertices, y per-vertex normales, coordenadas de textura y colores en 3-espacio
  • Interacción - un tipo sin valor utilizado para asociar la entrada del usuario con elementos interactivos del usuario de la composición

Conversión de tipo

Los datos generalmente se pueden convertir a otros tipos de manera transparente. En Quartz Composer 3.0, las conexiones entre parches cambian de color para indicar las conversiones que están teniendo lugar. Las conexiones amarillas significan que no hay conversión, Orange indica una posible pérdida de datos de la conversión (Número al índice), y Red indica una conversión severa; Imagen a Booleano, por ejemplo.

Composiciones

Los documentos de Quartz Composer se denominan composiciones. Las composiciones son listas de propiedades binarias (aunque también se admiten versiones XML) con una extensión de nombre de archivo .qtz y una UTI com.apple.quartz-composer-composition. Los parches, sus conexiones y los estados de sus puertos de entrada se guardan en el archivo de composición. Las imágenes también se pueden almacenar dentro de una composición, lo que crea composiciones independientes con gráficos integrados. Al arrastrar un archivo de película al editor Quartz Composer, se crea una referencia al archivo de película, lo que proporciona una imagen cambiante que se puede conectar a un renderizador.

Las composiciones también almacenan metadatos como el autor de la composición, los derechos de autor y la descripción. El usuario también puede agregar elementos de metadatos arbitrarios, 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 sin formato. Las imágenes se mantienen en su forma nativa durante el mayor tiempo posible antes de rasterizarlas para su visualización. Esto significa que Quartz Composer mantendrá las imágenes vectoriales como vectores al recortar, escalar, rotar o traducir, lo que le permite trabajar con dimensiones de imagen lógicas muy grandes sin consumir grandes cantidades de memoria o tiempo de procesamiento. Esta funcionalidad es más evidente cuando se trabaja con imágenes basadas en texto o archivos PDF.

La versión 3.0 agregó la capacidad de agregar anotaciones a áreas de la composición, llamadas notas. Estas notas son paralelas a comentarios en otros lenguajes de programación. Las notas pueden ser amarillas, rojas, verdes, azules o grises y pueden 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 requeridas y opcionales para calificar composiciones conformes para diversos fines. Los siguientes protocolos están disponibles de forma predeterminada:

  • Animación gráfica - Estos no tienen entradas o salidas necesarias, pero son necesarios para renderizar a la pantalla. Las animaciones gráficas son útiles para los fondos animados en aplicaciones como Keynote.
  • Filtro de imagen - Modifica una imagen usando filtros. No se permiten renderizadores en Filtros de Imagen, a menos que estén dentro de un entorno Render In Image.
  • Transición gráfica - Genera una transición de una imagen fuente a una imagen de destino a través de un intervalo de tiempo fijo.
  • Visualizador RSS - Parses y Muestra una alimentación RSS.
  • Screen Saver - Integra con Finder para protectores de pantalla animados.
  • Music Visualizer - Integra con iTunes para la visualización de audio.

Existe un protocolo adicional que Apple utiliza en su API privada:

  • Photo Visualizer - Recibe una lista de imágenes, proporciona información sobre el recuento total de imágenes y la imagen actualmente mostrada.

Se agregó un nuevo protocolo en la versión 4.0:

  • Filtro de malla - deforma una malla de entrada.

No existe una forma oficialmente admitida de agregar protocolos adicionales a Quartz Composer. Sin embargo, existen algunos métodos no documentados que pueden hacer que esto sea posible en el futuro.

Tiempos de ejecución de composición

Además de los protocolos, las composiciones también pueden ajustarse a diferentes tiempos de ejecución en los que Quartz Composer está disponible. En Leopard, existen tiempos de ejecución para Tiger (32 bits), así como versiones de 32 y 64 bits del tiempo de ejecución de Leopard Quartz Composer. El editor también puede indicar parches usados que no son seguros o no están disponibles en Tiger para ayudar a crear composiciones compatibles.

Repositorio de composiciones

Hay disponible un repositorio de composición para todo el sistema a partir de la versión 3.0. Esto permite que las aplicaciones compartan y utilicen composiciones comunes para efectos y procesamiento. También es posible que las aplicaciones consulten el repositorio en busca de composiciones que coincidan con ciertos criterios, como la conformidad con el protocolo.

El repositorio se distribuye en 3 ubicaciones del sistema de archivos:

  • /System/Library/Compositions - composiciones del sistema central (el usuario normalmente no modifica estos)
  • /Libro/Composiciones - composiciones disponibles para todos los usuarios
  • /Usuarios/nombre de usuario/Library/Compositions - composiciones disponibles sólo para este usuario

Agregar composiciones al repositorio es tan simple como agregar el archivo de composición a una de estas ubicaciones.

Comparando composiciones

Se hizo posible comparar composiciones en Quartz Composer 3.0. Esta característica permite al usuario comparar entradas, salidas renderizadas y apariencia gráfica de dos composiciones cualesquiera.

Software relacionado

Visualizador de compositor de cuarzo

Con Quartz Composer 3.0 se lanzó una herramienta de desarrollo llamada Quartz Composer Visualizer que permite renderizar composiciones en varias pantallas en una sola máquina, o incluso distribuirlas en varias máquinas y pantallas.

Soporte de automatizador

Se agregó compatibilidad con algunas acciones de Automator con el lanzamiento de Leopard.

  • Aplicar filtro de composición de cuarzo a archivos de imagen
  • Convertir Composiciones de cuarzo en Películas de tiempo rápido
  • Render Quartz Compositions to Image Files

Historia

Pierre-Olivier Latour desarrolló originalmente el predecesor de Quartz Composer bajo el nombre de PixelShox Studio.

Contenido relacionado

Historia de la cámara

La historia de la cámara comenzó incluso antes de la introducción de la fotografía. Las cámaras evolucionaron desde la cámara oscura a través de muchas...

Tubo de vacío

Un tubo de vacío, tubo de electrones o válvula termoiónica, es un dispositivo que controla el flujo de corriente eléctrica en un alto vacío entre...

Tecnología en la Edad Antigua

Durante el crecimiento de las civilizaciones antiguas, la tecnología antigua fue el resultado de los avances en ingeniería en la antigüedad. Estos avances...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save