Textures

  • Francisco Hernández Abad

     Francisco Hernández Abad

    Catedràtic d'Enginyeria Gràfica per la Universitat Politècnica de Catalunya, adscrit a l'Escola Tècnica Superior d'Enginyeria Industrial de Terrassa.

  • Manuel Ochoa Vives

     Manuel Ochoa Vives

    Doctor en Enginyeria Industrial per la Universitat Politècnica de Catalunya.

    Professor titular del Departament d'Expressió Gràfica a l'Enginyeria de la Universitat Politècnica de Catalunya, adscrit a l'Escola Tècnica Superior d'Enginyeria Industrial de Terrassa.

  • Vicente Hernández Abad

     Vicente Hernández Abad

    Professor titular de la Universitat Politècnica de Catalunya.

    Professor titular del Departament d'Expressió Gràfica a l'Enginyeria, adscrit a l'Escola Tècnica Superior d'Enginyers Industrials de Terrassa.

  • Carles Farré Desongles

     Carles Farré Desongles

    Enginyer industrial per la Universitat Politècnica de Catalunya.

    Col·laborador en projectes del Departament d'Expressió Gràfica a l'Enginyeria de la secció de Terrassa, a l'Escola Tècnica Superior d'Enginyers Industrials de Terrassa.

PID_00246187
Cap part d'aquesta publicació, incloent-hi el disseny general i la coberta, no pot ser copiada, reproduïda, emmagatzemada o transmesa de cap manera ni per cap mitjà, tant si és elèctric com químic, mecànic, òptic, de gravació, de fotocòpia o per altres mètodes, sense l'autorització prèvia per escrit dels titulars del copyright.

1.Introducció

La textura és una manera d'aconseguir incrementar el detall de les superfícies dels objectes sense complicar-ne la geometria, de manera que s'aconsegueix una aparença més real.
Si no s'apliquen textures a les superfícies dels objectes, amb l'ombrejat només s'aconsegueix una aparença plàstica uniforme (s'eliminen les arestes de la malla poligonal), típica de les imatges sintètiques, mancades de realisme.
Altres fenòmens visuals que milloren l'aspecte real, com la reflexió especular i les ombres que s'aconsegueixen amb tècniques de traçat de rajos (ray tracing) o la rugositat (relleu, aspresa a la superfície), es poden simular eficientment mitjançant textures amb un estalvi computacional important.
El conjunt de dades, del tipus que sigui (colors, valors, etc.), que pot contenir una textura se sol denominar mapa, i els elements individuals que componen el mapa s'anomenen tèxels.
És freqüent que la textura, en les aplicacions i paquets informàtics especialitzats, es denomini material. Aquests materials o textures informen el model d'il·luminació de les modificacions que ha d'efectuar, i s'obté com a resultat una sèrie de característiques visuals. Els mapes es poden incorporar als materials en els canals que aquests disposin, i afecten els atributs que corresponguin al canal determinat. Les característiques bàsiques sobre les quals poden influir de manera independent o conjunta són:
  • El color de la superfície en general (il·luminació difusa i ambiental).

  • El color de la superfície en un punt (reflexió difusa).

  • La reflexió especular (brillantors).

  • La transparència i opacitat.

  • La posició d'un punt en la superfície (desplaçament per a simular relleu).

  • La normal de la superfície (modifica la geometria).

Els materials que contenen canals amb mapes se solen denominar materials mapats, i l'acte de la seva aplicació a les superfícies dels objectes mapatge o mapping.
Mapatge d'un objecte 3D
Mapatge d'un objecte 3D

2.Textures superposades

2.1.Introducció

El problema consisteix a superposar (enganxar) una textura (o, segons el que hem dit, un material que conté algun mapa en algun canal) a les superfícies de l'objecte, de manera que s'adapti al millor possible (sense que s'estiri o deformi). Amb aquest objectiu i atès que els objectes tenen superfícies molt diverses, es recorre als mètodes de superposició exposats a continuació:

2.2.Mètode directe

Es tracta d'una funció matemàtica unívoca que fa correspondre, a cada punt de l'espai en el qual s'ha definit l'objecte (normalment coordenades x, y, z), un punt en l'espai en el qual s'ha definit la textura (normalment per a diferenciar-les de les coordenades anteriors u, v, w), tenint en compte que segons el tipus de textura aquest espai serà unidimensional, bidimensional o tridimensional.
A través de les coordenades de mapatge, la funció permet controlar on i com s'ha d'enganxar la textura en la geometria de l'objecte i, per tant, com es visualitzarà la imatge.
Esquema dels sistemes de coordenades que intervenen en el procés
Esquema dels sistemes de coordenades que intervenen en el procés

2.3.Mètode projectiu amb superfície intermèdia

Recorrerem a aquest mètode de superposició quan el mètode anterior no proporcioni el resultat volgut, cosa que és corrent en objectes de formes complexes. A la pràctica els programes permeten aplicar aquest mètode a parts de l'objecte.
Primerament es fa correspondre (per projecció) la textura amb una superfície intermèdia, generalment la que més s'aproximi a la malla que defineix la superfície de l'objecte i s'utilitzen freqüentment, entre altres:
  • Pla.

  • Superfície cilíndrica.

  • Semiesfera.

  • Hemicub.

Després es fa correspondre la superfície intermèdia amb la superfície de l'objecte.
Comparació de mètodes
Comparació de mètodes

3.Tipus de textures

3.1.Textures d'una dimensió

És un tipus de textura que només conté informació de color, per la qual cosa el resultat de la seva aplicació a la superfície de l'objecte tridimensional és el d'acolorir la superfície.
En aquesta textura es pot utilitzar informació de color consistent en degradats, útil per exemple per a simular terrenys que varien de color amb la profunditat, etc.
Exemple d'aplicació de textures d'una dimensió
Exemple d'aplicació de textures d'una dimensió

3.2.Textures de dues dimensions

Es tracta de textures amb informació de color que tenen dues dimensions (imatges, etc.), i que aplicada mitjançant una funció específica assigna un punt de la textura a cada punt de la superfície de l'objecte. D'aquesta manera, el color del punt de la textura substituirà o es barrejarà amb el color del punt de l'objecte.
Segons les característiques de la funció emprada es pot aconseguir, per exemple:
  • Textura fixa a la superfície de l'objecte malgrat que aquest es mogui, especificant per a la funció coordenades referides a l'objecte.

  • Textura lliscant sobre la superfície de l'objecte en cas que aquest es mogui, especificant per a la funció coordenades absolutes respecte a l'escena.

  • Un cas particular consisteix en el que es coneix com a mapatge d'entorn (environment mapping), una mica similar a una textura fixa en l'espai universal però no en l'objecte, per la qual cosa si l'objecte es mou la textura sembla hi llisqui. És útil quan es vol simular en l'objecte la reflexió especular d'entorn. En aquest cas la funció depèn de les coordenades del vector normal a la superfície en cada punt.

Primer es projecta l'entorn sobre una superfície intermèdia.
Després es fa correspondre la superfície intermèdia mapada amb la superfície de l'objecte segons la direcció de la reflexió especular, que lògicament depèn del punt de vista.
Diverses aplicacions de textures bidimensionals
Diverses aplicacions de textures bidimensionals
Aplicació en mapes d'entorn
Aplicació en mapes d'entorn

3.3.Textures que alternen les normals de les cares (bump mapping)

Es tracta d'una textura bidimensional que, com a dades, conté vectors normals, i que en ser aplicada sobre una superfície (mapar la superfície) altera les normals originals d'aquesta, la qual cosa produeix un efecte visual de relleu quan la superfície és ombrejada pel model d'il·luminació, i tot això sense alterar realment la geometria original de la superfície.
Les dades de la textura de normals es poden generar de diverses maneres, per exemple, a partir d'una imatge en escala de grisos, amb la qual cosa després del mapatge els diversos tons acaben representant diferents valors de profunditat en el relleu visual obtingut.
Aquestes textures es poden combinar amb altres d'altres tipus (de color, etc.) que enriqueixen l'aparença real de les rugositats, bonys, etc.
Sensació de relleu en la superfície
Sensació de relleu en la superfície

3.4.Textures de desplaçament

Es tracta de textures bidimensionals que contenen dades referents a longituds de desplaçament, que en ser aplicades a les superfícies dels objectes ocasionen desplaçaments reals dels punts de la geometria i no il·lusions òptiques per efecte de la il·luminació com en el cas de les textures de mapatge de relleu o bump mapping. El desplaçament s'aplica en la direcció normal de cada punt.
Per a generar els valors de desplaçament s'utilitzen diversos mètodes, com en el cas de les textures de mapatge de relleu ja esmentades.
Es tracta d'una tècnica complicada que ha de solucionar problemes com la subdivisió dels polígons de la malla que defineix la geometria perquè siguin més grans que els tèxels projectats, a fi que puguin admetre el desplaçament per als detalls. Això condueix a un augment important del nombre de cares i un cost computacional elevat per a qualsevol operació.
Modelització mitjançant textures
Modelització mitjançant textures

3.5.Textures sòlides (de volum o 3D)

En aquest cas es tracta d'una textura amb tres dimensions que conté dades de color encara que també poden ser de normals. Per a mapar se sol utilitzar una funció lineal de manera que les coordenades de textura de cada punt s'obtenen multiplicant per una matriu de coordenades espacials del punt. D'aquesta manera les textures 3D es generen per processos (processals).
Aconsegueixen l'efecte visual que es produiria si submergíssim l'objecte en la textura, per la qual cosa es pot utilitzar eficaçment per a simular materials que tenen una estructura tridimensional, com la fusta o el marbre.
En objectes modelitzats a partir del seu volum com, per exemple, la modelització de vòxels, es pot assignar a cada vòxel un tèxel de textura, amb la qual cosa aconseguim una espècie de mapatge profund o interior, útil per exemple per a observar la textura fins i tot si el cos és seccionat. Aquestes tècniques se solen usar en visualització mèdica.
Textura tridimensional
Textura tridimensional

3.6.Textures de transparència

Aquestes textures s'aconsegueixen en afegir als tèxels de color de l'espai de textura un component de transparència nou, encarregat d'informar sobre el percentatge de transparència del tèxel, és a dir, el percentatge que deixa veure el que hi ha darrere. Aquest component es coneix com a canal alfa o canal de transparència.
Freqüentment, el canal alfa és una imatge en escala de grisos o en blanc i negre, en què el to de cada punt és associat al valor de transparència.
Aquesta textura s'utilitza molt per a substituir objectes amb geometria complexa per objectes plans mapats amb imatges retallades per la transparència, com podrien ser persones, arbres, etc.
També és possible barrejar-la amb altres textures, amb la qual cosa és possible afegir efectes visuals com lletres, empremtes, etc.
Aplicació d'una textura amb transparència per a retallar una imatge
Aplicació d'una textura amb transparència per a retallar una imatge

3.7.Textures animades

Si en una seqüència d'imatges d'un objecte (animació), es mapa la superfície de l'objecte en cada imatge amb una textura diferent, el resultat visual obtingut serà una textura animada.
D'aquesta manera el contingut d'una textura animada consistiria en una sèrie de textures amb el seu espai de textura corresponent. Fins i tot podrien ser imatges, com en una seqüència de vídeo.
Aquest tipus de textures és útil per a simular objectes que presenten variacions de color, forma, etc. en les superfícies respecte al temps, com per exemple l'aigua, un monitor de televisió, etc.
m5e3_rec8.gif

4.Filtratge de textures

4.1.Introducció

En enganxar una textura pot ocórrer que el tèxel, en ser projectat sobre la superfície, sigui més gran o més petit que el píxel que ha de cobrir (en l'espai de visualització), la qual cosa condueix a una pèrdua de qualitat en el resultat. Per això cal introduir el que es coneix com a tècniques de filtratge, que bàsicament s'agrupen en:
  • De precalculat: prefiltren la textura

  • Puntual

  • Lineal

  • Mipmap

  • Suma d'àrees

  • Directes: utilitzen mitjanes ponderades de la imatge inversa de la textura

  • Piramidals

  • Mitjana de pesos el·líptics

A continuació en veurem algunes.

4.2.Filtratge d'ampliació

Aquest cas té lloc quan els tèxels de la textura tenen dimensions molt més grans que els píxels de la imatge. En aquest cas podem actuar de diverses maneres diferents.
4.2.1.Filtratge puntual
Consisteix a escollir com a color del píxel, el del tèxel que més s'aproximi a les coordenades de visualització del píxel esmentat en l'espai textura. Amb això, en el cas d'una textura amb imatges, es perdrà informació i, com a conseqüència, semblança respecte a l'original, que es traduirà en limitis dentats, etc. (poc suavitzat).
Com a avantatge, aquest tipus de filtratge puntual no necessita grans recursos, per la qual cosa convé avaluar si la pèrdua de detall que comporta altera en excés el resultat previst.
Esquema d'actuació del filtratge d'ampliació puntual
Esquema d'actuació del filtratge d'ampliació puntual
4.2.2.Filtratge lineal
Aquest cas consisteix a calcular el color del píxel, per interpolació lineal dels colors dels tèxels que més s'aproximin a les coordenades de visualització del píxel, situades en l'espai textura. Amb la interpolació es perdrà continuïtat de color en la imatge i es desenfocarà, detall que en alguns casos pot ser fins i tot desitjable com, per exemple, per a accentuar la sensació de profunditat.
Esquema d'actuació del filtratge d'ampliació lineal
Esquema d'actuació del filtratge d'ampliació lineal

4.3.Filtratge de reducció

És el cas contrari a l'anterior, en el qual els tèxels de la textura són més petits que els píxels de la imatge que han de cobrir. Els filtres utilitzats més correntment per a aquest menester, com en el cas anterior, són diversos.
4.3.1.Filtratge puntual
En aquest cas s'utilitza com a color del píxel el color que té el tèxel central, entre els tèxels que inclou el píxel segons les seves coordenades de visualització en l'espai textura. Lògicament això soluciona el problema per al mapatge, però també origina, igual com en els casos anteriors, pèrdua de qualitat.
Esquema d'actuació del filtratge de reducció puntual
Esquema d'actuació del filtratge de reducció puntual
4.3.2.Filtratge lineal
En aquest cas el color del píxel és calculat com el color mitjà dels tèxels més pròxims entre els quals inclou el píxel, segons les seves coordenades de visualització situades en l'espai textura. El procés només funcionarà si no hi ha una desproporció excessiva entre tèxels i píxels i, encara que millora el resultat del filtratge puntual, es continua observant poc allisament.
Esquema d'actuació del filtratge de reducció lineal
Esquema d'actuació del filtratge de reducció lineal
4.3.3.Filtratge mipmap
Consisteix a precalcular i emmagatzemar la mateixa textura amb resolucions diferents, amb la qual cosa s'aconsegueix variar la mida del tèxel. A continuació es tria la textura en la qual la mida del tèxel en ser projectat s'aproximi més a la mida del píxel. Finalment, el color del píxel es calcula per interpolació mitjançant una funció lineal aplicada dels tèxels propers a les coordenades de visualització situades en l'espai textura.
Tot el procés es du a terme de manera dinàmica, i es requereixen més capacitats d'emmagatzemament i procés; per contra, ofereix un resultat excel·lent quant a allisament i oscil·lació de colors (efectes visuals de moaré).
Esquema d'actuació del filtre de reducció mipmap
Esquema d'actuació del filtre de reducció mipmap

Exercicis d'autoavaluació

1. Per a què s'utilitzen les textures?

a) Per a eliminar les arestes de la malla dels objectes en renderitzar.
b) Per a aconseguir renderitzar efectes atmosfèrics, entre altres avantatges.
c) Per a incrementar el realisme de la superfície dels objectes sense complicar-ne la geometria.
d) Per a simplificar la geometria d'objectes complexos sense perdre realisme.

2. Com es denomina el conjunt de dades que contenen les textures?

a) Mapa.
b) Píxels.
c) Tèxels.
d) Material.

3. Com se sol denominar l'acció d'aplicar una textura a un objecte?

a) Enganxar.
b) Mapar.
c) Superposar.
d) Projectar.

4. En informàtica gràfica un material és una textura.

a) Sí, perquè modifica les característiques de la superfície de l'objecte i produeix la percepció de textura en la superfície.
b) No, perquè el material només conté informació del color, la brillantor, etc. de la superfície de l'objecte.
c) El material és una textura només quan té canals que contenen mapes.
d) No, un material no té res a veure amb una textura.

5. Quin és el millor mètode a seguir per a mapar un objecte de geometria complexa?

a) Mapar mitjançant projecció per mitjà de la superfície intermèdia disponible que millor s'adapti a tota la superfície de l'objecte, encara que en algunes parts la textura es deformi.
b) Mapar de manera directa, la funció matemàtica corresponent s'encarrega d'obtenir el millor resultat possible.
c) Descompondre'l en parts geomètriques senzilles i mapar-les projectant per mitjà de la superfície intermèdia disponible que millor s'adapti.
d) Com en el cas anterior, però a més manipulant les coordenades de mapatge en cada cas perquè les textures s'uneixin (casin) tan bé com sigui possible.

6. Quins tipus de coordenades estan implicades en el mapatge de superfícies d'un objecte?

a) Coordenades cilíndriques, esfèriques i cartesianes, segons si la superfície de l'objecte és cilíndrica, esfèrica o plana.
b) Coordenades de textura, coordenades de l'objecte i coordenades de visualització per a textures fixes en la superfície de l'objecte.
c) Amb les textures superposades per mètode directe per mitjà de funció matemàtica no s'utilitzen coordenades.
d) Coordenades de textura, coordenades homogènies i coordenades universals en les textures lliscants (mapatge d'entorn).

7. És possible utilitzar les textures per a modelar les superfícies de la geometria d'un objecte?

a) No, és impossible; si no, es tractaria d'un sistema de modelització.
b) Sí, quan la textura conté informació referent a longituds de desplaçament que s'han d'aplicar als punts de la superfície.
c) No, només es pot aconseguir un efecte visual de modelització en la superfície per aplicació del model d'il·luminació en renderitzar.
d) Sí, quan la textura conté imatges en tres dimensions.

8. Mitjançant textures, és possible incloure imatges de persones, plantes, etc. en escenes en 3D?

a) No, per a això cal modelitzar aquests objectes i després incrementar-ne el realisme amb textures.
b) Sí, mitjançant aplicació de textures amb valors de transparència en superfície planes, per la qual cosa només poden ser observades correctament en direcció perpendicular a elles.
c) Sí, mitjançant aplicació de textures amb valors de transparència en objectes 3D, per la qual cosa poden ser observades correctament en qualsevol direcció.
d) No, només podem incloure imatges d'aquest tipus una vegada que l'escena ha estat renderitzada i s'ha convertit en un gràfic digital bidimensional mitjançant processos d'edició digital.

9. Quina és la utilitat bàsica dels filtres en l'aplicació de textures?

a) Controlar la quantitat de dades que es generen, adequant les dades necessàries per a la qualitat d'observació requerida i menyspreant les dades que no són necessàries.
b) Adequar la textura a la superfície de l'objecte de manera directa, sense manipular les coordenades de mapatge.
c) Controlar com intervenen les textures integrants d'una textura composta.
d) No perdre qualitat, adequant la mida dels tèxels als píxels de visualització que han de cobrir.

10. Les textures no poden contenir mai dades del tipus...

a) color, mapa de bits, transparència, etc.
b) musical.
c) procediments, programes que generen textures.
d) animacions.

Exercicis d'autoavaluació
1. a) Incorrecte.
b) Incorrecte.
c) Correcte.
d) Incorrecte.

2. a) Correcte.
b) Incorrecte.
c) Incorrecte.
d) Incorrecte.

3. a) Incorrecte.
b) Correcte.
c) Incorrecte.
d) Incorrecte.

4. a) Correcte.
b) Incorrecte.
c) Incorrecte.
d) Incorrecte.

5. a) Incorrecte.
b) Incorrecte.
c) Incorrecte.
d) Correcte.

6. a) Incorrecte.
b) Correcte.
c) Incorrecte.
d) Incorrecte.

7. a) Incorrecte.
b) Correcte.
c) Incorrecte.
d) Incorrecte.

8. a) Incorrecte.
b) Correcte.
c) Incorrecte.
d) Incorrecte.

9. a) Incorrecte.
b) Incorrecte.
c) Incorrecte.
d) Correcte.

10. a) Incorrecte.
b) Correcte.
c) Incorrecte.
d) Incorrecte.