Primitivas de Filtro de Relleno

Estas primitivas de filtro ofrecen algunos tipos de Relleno que se aplican a la zona sobre la que actúa el filtro.

Relleno

Como su nombre indica, la primitiva Relleno rellena la Zona de Efectos del Filtro con un color y opacidad especificados. Esta primitiva de filtro resulta más útil cuando se utiliza en combinación con otras primitivas.

Filtro Relleno.
Un ejemplo de aplicación de la primitiva Relleno. De izquierda a derecha: 1. El círculo original. 2. Después de haber aplicado la primitiva Relleno con un color azul claro. Observe que la Zona de Efectos del Filtro predeterminada es más amplia que la caja de contorno del círculo. 3. El círculo después de haber añadido al filtro la primitiva Composición en el modo de funcionamiento Dentro. La primera entrada de esta primitiva es la salida de la primitiva Relleno, y la segunda entrada es el Gráfico de origen. 4. El Relleno del círculo se ha sustituido por el patrón Tela (mediante el cuadro de diálogo Relleno y borde), y el modo de funcionamiento de la primitiva Composición se ha cambiado a Aritmético con K1 = 0.5, K2 = 0.0, K3 = 0.5 y K4 = 0.0.

Imagen

Parcialmente Implementada.

La primitiva de filtro Imagen permite representar un archivo gráfico externo, o un objeto SVG interno. Mediante esta primitiva, desde un filtro complejo se puede hacer referencia a más de un objeto (siendo el primero el gráfico representado con esta primitiva).

Esta primitiva de filtro es muy útil, pero desgraciadamente todavía no está completamente implementada en Inkscape, ya que actualmente solo admite imágenes externas. Al aplicar esta primitiva, la interfaz gráfica del programa crea una referencia al archivo de la imagen externa mediante una dirección absoluta. Si se quiere sustituir esta dirección absoluta del archivo por una dirección relativa, hay que utilizar el Editor XML para hacerlo.

De forma predeterminada, la primitiva encoge o estira la imagen para ajustarla dentro de la caja de contorno del objeto al que se aplica el filtro.

Imágenes.
Ejemplos de una misma imagen aplicada a dos objetos diferentes mediante la primitiva de filtro Imagen. Los rectángulos rojos indican las cajas de contorno de los objetos.

La colocación de la imagen dentro de la caja de contorno se puede controlar mediante los parámetros x, y, width y height. El sistema de coordenadas es el mismo que el utilizado para el objeto. Hay que usar el Editor XML para modificar los valores de estos parámetros. Inkscape no admite el parámetro adicional preserveAspectRatio.

[Nota]Nota

Firefox, Opera y Batik representan la imagen de manera diferente a como lo hace Inkscape. Esos programas utilizan la Zona de Efectos del Filtro predeterminada para establecer la ubicación de la imagen (incluso si en el filtro se ha definido otra). Así mismo, estos programas por defecto conservan la proporción entre las dimensiones de la imagen.

Imágenes.
Ejemplos de la misma imagen aplicada a dos objetos con la primitiva de filtro Imagen especificando diferentes zonas para la imagen en cada caso. A la izquierda, el valor del parámetro x es de 60 px, y el del parámetro width 60 px. A la derecha, x es −60 px, y width 180 px.

Embaldosar

No implementada.

La primitiva de filtro Embaldosar rellena una zona rectangular con la repetición de una imagen que es la entrada de la primitiva.

Esta primitiva no dispone de opciones.

Turbulencia

La primitiva de filtro Turbulencia permite la creación de texturas artificiales como superficies de mármol o nubes. Está basada en el trabajo de Ken Perlin que ganó un Oscar de la Academia de Hollywood por la creación por ordenador de texturas realistas. Perlin resolvió el problema de utilizar números aleatorios para crear fluctuaciones suaves y aleatorias de color. Una versión simplificada de su método sirve para generar intensidades aleatorias a intervalos especificados y después conectar suavemente estos puntos.

Hay que advertir de que los programas Firefox, Opera, y Batik representarán esta primitiva de forma diferente a como lo hace Inkscape si no se añade el atributo color-interpolation-filters="sRGB" en la definición del filtro.

Las siguientes figuras dan una idea de cómo se implementaría el filtro en una dimensión:

Turbulencia: 1D.
Ilustración en una dimensión del método de Perlin para generar ruido. En la columna de la izquierda se muestra Ruido Fractal y en la columna derecha Turbulencia. La Frecuencia Base se ha fijado en 0.05 lo que produce una longitud de onda de 20 píxeles (indicada por las líneas verticales discontinuas). En la figura se muestran individualmente las contribuciones de tres Octavas y en la fila inferior la suma de las mismas.

Cada una de las componentes RGB y Alfa del color se tratan de forma separada.

Turbulencia: Componentes.
Las componentes de un filtro Turbulencia en el modo Ruido Fractal. De izquierda a derecha: Rojo, verde, azul, alfa y la combinación de todas. Hay un rectángulo negro detrás de la mitad derecha de la última figura. Se ha utilizado la primitiva de filtro Matriz de Colores para extraer las componentes individuales.

Esta primitiva permite generar dos Tipos de ruido: Ruido Fractal o Turbulencia. El tipo Turbulencia tiende a producir zonas oscuras más dramáticas ya que se utiliza los valores absolutos de los términos de ruido, creándose cúspides visuales. [14]

Turbulencia: Tipos.
Los dos tipos de ruidos disponibles en esta primitiva. Izquierda: Ruido Fractal. Derecha: Turbulencia. Arriba: Solo la componente roja. Abajo: Todas las componentes. Hay rectángulos negros detrás de la mitad derecha de estas dos últimas figuras.

La Frecuencia Base está definida de forma predeterminada en términos del inverso del número de Píxeles de pantalla. Por ejemplo, a una frecuencia de 0.1 le correspondería una longitud de onda de 10 píxeles. Inkscape todavía no es capaz de crear ruido que sea independiente de la resolución. Valores razonables para este parámetro varían desde 0.01 (para una textura que varía suavemente) hasta 0.2 (para una textura con una variación rápida).

Turbulencia: Frecuencia Base.
Aspecto del Ruido Fractal en función del valor fijado para la frecuencia base. De izquierda a derecha: 0.05, 0.10, 0.20. Arriba: Solo la componente roja. Abajo: Todas las componentes. Se ha colocado un rectángulo negro detrás de la mitad derecha de estas tres últimas figuras.

El número de octavas utilizadas determina la complejidad del ruido generado, cuantas más octavas, mayor es la complejidad. Cada octava añade un término con un valor doble de la frecuencia pero la mitad de amplitud. Utilizar más de cuatro o cinco octavas no resulta útil ya que las variaciones espaciales y de color llegan a ser demasiado pequeñas para poder ser apreciadas (y también aumenta el trabajo del microprocesador).

Turbulencia: Octavas.
Aspecto del Ruido Fractal en función del número de octavas utilizadas. En todos estos ejemplos se ha usado una misma frecuencia base de 0.05. De izquierda a derecha: 1 octava, 2 octavas, 3 octavas. Arriba: Solo la componente roja. Abajo: Todas las componentes. Se ha colocado un rectángulo negro detrás de la mitad derecha de estas tres últimas figuras.

La primitiva de filtro Turbulencia utiliza un generador de números seudo-aleatorios. En principio, se debería usar el mismo generador en la representación de esta primitiva con diferentes visualizadores SVG y por lo tanto, deberían obtenerse las mismas texturas (a la misma escala). Si se aplica la primitiva dos veces a dos objetos idénticos, las texturas producidas deberían ser iguales. Por otro lado, si se cambia la semilla del generador de números seudo-aleatorios, se forzará a que la secuencia de números aleatorios sea diferente y por lo tanto, las texturas creadas también serán distintas.



[14] Ver http://www.noisemachine.com/talk1/22.html.