Hasta ahora hemos visto una serie de propiedades básicas de los materiales que son constantes al lo largo de toda la superficie. En la practica, casi ningún material de la realidad mantiene constantes sus atributos sobre una superficie. Sólo algunos plásticos y metales (sin suciedad) lo hacen. En general, sea por las impurezas, suciedad o por su origen orgánico, los materiales cambian sus propiedades (como por ejemplo el color) según nos movemos por su superficie. Para simular esta característica en gráficos por computador utilizamos texturas. Una textura es una función espacial que toma como entrada un punto geométrico de una superficie y proporciona como salida un valor con el que podemos modular los atributos del material.


TEXTURAS 3D: Una textura se denomina tridimensional cuando su valor depende de tres coordenadas geométricas. Esas tres coordenadas pueden ser las del propio punto en el espacio 3D o alguna transformación que se aplique (como veremos en la sección de mapeado). Si la textura depende sólo de dos coordenadas será bidimensional.

La pestaña Texture del grupo de botones de material permite gestionar en capas las texturas que se aplican a un objeto. La pila de texturas esta situada en la parte izquierda. Pueden estar activas (botón activado) o desactivadas. A la derecha, en el campo TE: aparece el nom*bre de la textura que se aplica en cada capa, y se pueden aña*dir (pulsando sobre el botón de una capa libre), o eliminar Clear texturas. Como es habitual, el número que aparece en el botón indica el número de ojbetos que están utilizando esa textura. La textura que se aplica finalmente al objeto resulta de la composición de todas las capas de textura con sus propiedades co*rres*pon*dien*tes. Veremos más adelante un ejemplo de uso de varias capas de texturas.


Debido a que el orden de aplicación de las texturas es importante (la situada en la cima de la pila se aplica la última), existen dos botones y que permite ordenar la pila de canales. Además, igual que ocurría con las propiedades de los materiales, las propiedades de mapeado de las texturas (que veremos en la siguiente sección) pueden copiarse y pegarse de un buffer auxiliar, mediante los iconos y respectivamente.
Una vez que hemos añadido una textura en este panel, podremos definir sus propiedades en el subgrupo de botones de textura situados a la derecha de los de material . Existen dos grandes grupos de texturas; las texturas procedurales y las texturas de imagen que estudiaremos a continuación.




Figura 01. Texture.

Texturas Procedurales


Las texturas procedurales son calculadas mediante un algoritmo. Es decir, se codifican directamente dentro del programa o como extensiones. A diferencia de las imágenes, no se necesita almacenar en memoria ningún dato. En los inicios de los gráficos por computador (décadas de los 80s y principios de los 90s) este tipo de texturas se empleaban extensamente, debido a que la memoria de los ordenadores era muy limitada. Hoy en día, aunque se utilizan en menor medida, siguen siendo muy útiles. Además de consumir menos recursos, no añaden la complicación de tener que crear o buscar imágenes para varios tipos de marmol, madera o suciedad. Además, este tipo de texturas se generan en el espacio continuo, por lo que no tienen problemas de resolución.


Blender soporta 10 tipos de texturas procedurales, disponibles en la lista desplegable de la pestaña Texture (ver Figura 2) de los botones de textura . Cuando seleccionamos un tipo de textura de la lista desplegable aparece un nuevo panel con las opciones específicas de ese tipo de textura. Practicamente todos los tipos de texturas soportan la definición de la función de ruido a utilizar Noise Basis y el parámetro Nabla que define la suavidad del ruido (situados normalmente en la parte inferior de la pestaña de propiedades de ese tipo de textura). Podemos distinguir varios tipos de funciones de ruido Noise Basis:

  • CellNoise: Ruido de casillas (bloques). Efecto pixelado.
  • Voronoi: Ruido particionado. Define secciones con líneas aproximadamente rectas.
  • Perlin: Ruido de aspecto orgánico (nubes).



Figura 02. Pestaña Texture.



A continuación estudiaremos los principales tipos de texturas procedurales. Distorted Noise


Opciones Distorted Noise y previsualización.



Este tipo de textura emplea dos parámetros, DistAmnt que indica la cantidad de distorsión, y NoiseSize el tamaño del ruido. Al igual que el resto de texturas, variando la función de ruido base obtenemos diferentes resultados. En al figura se ha empleado CellNoise para obtener un efecto de condensación.
Voronoi


Opciones Voronoi y previsualización.



La fila de botones superior permite configurar la textura con diferentes es quemas de color. Dependiendo de la función de calculo de distancia (en la lista desplegable) el resultado de la textura es totalmente distinto. Este tipo de texturas se emplea para simular cristales rotos, vidrieras, ...
Musgrave


Opciones Musgrave y previsualización.



Textura de aspecto orgánico que funciona muy bien en multitud de situaciones (mapas para generar rocas, suciedad, ...). Los parámetros personalizables permiten además ajustar su comportamiento con mucha precisión. Probablemente es una de las texturas procedurales más versatiles.
Noise


Opciones Noise y previsualización.



Textura de ruido blanco. no admite parámetros adicionales de control.
Blend


Opciones Blend y previsualización.



Textura para generar gradientes de varios tipos.
Magic


Opciones Magic y previsualización.



Esta clase de textura es muy útil si se utiliza para añadir rugosidades en tela (mediante mapas de rugosidad por ejemplo).
Wood


Opciones Wood y previsualización.



Como su nombre indica, esta textura procedural puede utilizarse para simular madera, pero también es útil para definir bandas de color.
Stucci


Opciones Stucci y previsualización.



Textura muy utilizada para añadir ruido y suciedad en asfalto, cemento, etc. También es útil para ser utilizada como mapa de rugosidad en objetos orgánicos.
Marble


Opciones Marble y previsualización.



Textura específica para simular marmol. Permite controlar el nivel de turbulencia, su tipo y nivel de suavidad.
Clouds


Opciones Clouds y previsualización.



Útil para simular nubes, humo...
Texturas de Imagen

Las texturas de imagen emplean un fichero (típicamente de mapa de bits) para obtener los valores. La ventaja evidente es que cualquiera puede realizarlas sin necesidad de programación. Con los actuales programas de edición de imagen tales como Gimp es posible hacer toda clase de variaciones en la texturas disponibles. Ésta es una de las razones por las que este tipo de texturas es tan popular. La desventaja evidente es el uso de memoria. Conviene moderarse en la resolución de las imágenes, sobre todo cuando el impacto final en la imagen es pequeño. Dicho de otra forma, si un objeto va a aparecer en pequeño dentro de la imagen, no merece la pena usar una textura de gran resolución. Esto además incrementa el tamaño de la escena en disco, que se vuelve menos manejable. Existen multitud de sitios en Internet que ofrecen texturas libres. Por mencionar algunos, CG Textures o Texture King ofrecen multitud de texturas de alta calidad para proyectos personales o comerciales.


Empaquetado: En Blender tenemos la posibilidad de empaquetar las texturas dentro del propio fichero. Es bastante recomendable hacerlo ya que evitamos tener que manejar múltiples ficheros y las rutas implicadas. Basta con pinchar sobre el icono del paquete situado a la derecha de la ruta del fichero en la pestaña Image (ver Figura 3). Las texturas pueden posteriormente desempaquetarse pinchando de nuevo sobre el mismo icono.



Figura 03. Opciones de textura de tipo Imagen.



En la pestaña Image permite cargar texturas de imagen fijas (Still activo) o videos (Movie). Este tipo de textura permite definir una serie de propiedades sobre cómo se interpretara la imagen, en la pestaña Map Image:

  • MipMap: Es una técnica que permite utilizar imágenes de menor tamaño precalculadas y filtradas para eliminar pequeños errores de distorsión cuando se utilizan en animaciones.
  • Gauss: Emplea el filtro de gauss para disminuir el aliasing.
  • Interpol: Interpola el valor de los píxeles de la imagen cuando la cámara esta muy cerca y requiere que la textura aumente de tamaño.
  • Rot90: Rota la textura 90 grados.
  • Use Alpha: Si esta activo, se utiliza la información de transparencia (alpha) del fichero (si lo soporta, como por ejemplo PNGs o TGAs).
  • Calc Alpha: Calcula el valor del alpha según el valor RGB. El color negro (0,0,0) es totalmente transparente y el blanco (255,255,255) es totalmente opaco. Los tonos de gris intermedios son parcialmente transparentes.
  • Neg Alpha: Utiliza el valor inverso del Alpha.

Otro de los bloques de botones importantes permite simular texturas infinitas. El efecto de cada uno de estos botones es el siguiente:

  • Extend: Extender el pixel del borde correspondiente.
  • Clip: Fuerza a que la textura no tenga efecto fuera de sus límites.
  • ClipCube: Fuerza a que la textura no tenga efecto fuera de un área con forma de cubo.
  • Repeat: Repetir la textura tantas veces como se indique en los parámetros XRepeat e YRepeat.
  • Checker: Repetir la textura con una disposición similar a un tablero de ajedrez.

Las opciones más usadas son Repeat y Clip. Cuando aplicamos una textura para dar un aspecto determinado a una superficie siempre se espera que se repita. Si por otro lado aplicamos una textura para poner un letrero o una etiqueta, lo que queremos es que no se salga fuera de sus límites (clip). El resto son útiles en situaciones menos frecuentes. En la siguiente sección veremos cómo aplicar texturas, definiendo la función de mapeado.