Texturas

7,256 views

Published on

Published in: Design, Travel, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,256
On SlideShare
0
From Embeds
0
Number of Embeds
2,878
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Texturas

  1. 1. MÓDULO C: VISUALIZACIÓN Y REPRODUCCIÓN (RENDERING)<br /> C.III. TÉCNICAS AVANZADAS<br />
  2. 2. Texturas<br /><ul><li>Utilizadas para generar el detalle de las superficies.</li></li></ul><li>Texturas<br /><ul><li>Basadas mayoritariamente en técnicas de mapeo (Catmull 1974)
  3. 3. Cuidar el aliasing (efecto escalera).
  4. 4. En los último años ha pasado del software al hardware de altas prestaciones</li></li></ul><li>Texturas<br />Mapeo de texturas<br />Mapeo de una textura bidimensional sobre un objeto de caras poligonales.<br />Tan estándar como para estar incluida en cualquier biblioteca software o en hardware<br />
  5. 5. Texturas<br />Mapeo de texturas<br />Consiste en una transformación de coordenadas, pasamos de 2D (u,v) a 3D (x,y,z).<br />El color del pixel se modifica en función del color de la correspondiente imagen a mapear<br />
  6. 6. Texturas<br />Mapeo de texturas<br />La imagen es habitualmente una matriz de muestras, reconstruiremos una imagen continua a partir de esas muestras.<br />Se transforma para adaptarse a la deformación del objeto sobre el que se mapea.<br />Finalmente se aplica un filtro para evitar el aliasing (habitual el mipmapping)<br />
  7. 7. Texturas<br />Mapeo de texturas<br />La técnica básica se aplica una imagen a un polígono, ajustanto los vértices a las coordenadas de la textura e interpolando en los puntos interiores al polígono.<br />
  8. 8. Texturas<br />Mapeo de texturas<br />Para superficies más complejas, una primera técnica utiliza superficies intermedias, cuyas funciones de transformación son conocidas (cilindros, esferas, ...)<br />
  9. 9. Texturas<br />Ejemplo Mapeo de texturas: Cilindro<br />Intuitivamente<br />v<br />u<br />
  10. 10. y<br />x<br />z<br />Texturas<br />Ejemplo Mapeo de texturas: Esfera<br />La esfera paramétricamente<br />
  11. 11. Texturas<br />Ejemplo Mapeo de texturas: Esfera<br />Restringimos a nuestra zona escogida<br />
  12. 12. Texturas<br />Ejemplo Mapeo de texturas: Esfera<br />Se asume una función de mapeo lineal, conocemos las esquinas, resolvemos<br />
  13. 13. Texturas<br />Ejemplo Mapeo de texturas: Parche esférico<br />
  14. 14. Texturas<br />Mapeo de texturas<br />
  15. 15. Texturas<br />Mapeo de texturas<br />
  16. 16. Texturas<br />Mapeo de texturas<br />En general los objetos son más complejos, por ello se realizan dos mapeos: <br /><ul><li>Mapeo S: A una superficie intermedia simple: Plano, cilindro, cubo o esfera (los ejemplos vistos)
  17. 17. Mapeo O: De la textura ya en 3D (sobre la superficie intermedia) al objeto final.</li></li></ul><li>Texturas<br />Mapeo de texturas<br />
  18. 18. Texturas<br />Mapeo O de la textura ya en 3D al objeto final.<br /><ul><li> El rayo reflejado intersecta con la superficie intermedia (similar a mapeo del entorno).
  19. 19. Intersección de la normal que parte de la superficie intermedia.</li></li></ul><li>Texturas<br />Mapeo O de la textura ya en 3D al objeto final.<br /><ul><li> Intersección con una línea que parte del centroide.
  20. 20. Intersección de la normal que parte de la superficie intermedia.</li></li></ul><li>Texturas<br />Mapeo O de la textura ya en 3D al objeto final.<br />
  21. 21.
  22. 22. Texturas. Anti aliasing<br />Pero sólo hemos indicado el mapeo de las esquinas, ¿qué hacemos en los puntos interiores?<br />Habitualmente se utiliza una imagen virtual de mayor resolución, y el tono del pixel viene dado por el promedio de una serie de pixels de dicha imagen virtual.<br />
  23. 23. B<br />G<br />R<br />Texturas. Anti aliasing.<br />Mip-mapping.<br /><ul><li> Rectángulo de tamaño variable, exige precómputo.
  24. 24. Una textura se representa utilizando varias imágenes que van sucesivamente promediando la original (la mitad en cada sucesiva).</li></li></ul><li>B<br />G<br />R<br />Texturas. Anti aliasing<br />Mip-mapping.<br /><ul><li> La figura muestra el de una imagen RGB (si es 512x512 la adaptación ocupa 1024x1024).
  25. 25. Tres coordenadas (u,v,d) nos permiten acceder al mid-map, las dos primeras son espaciales y la tercera nos define la compresión. d es crucial, si es pequeña hay aliasing, si es grande aparece ruido (blur).</li></li></ul><li>Texturas<br />Anti aliasing<br />El valor de d es continuo, y en base a él se escogen los dos niveles más cercanos del árbol que mediante interpolación bilineal (por u y v) en cada nivel seguida de una lineal (en base a d) nos dan la intensidad del punto.<br />
  26. 26. v<br />v<br />u<br />u<br />Texturas<br />Mapeo sobre superficies paramétricas<br />Utilizamos los parámetros que definen la superficie para movernos en el espacio de textura.<br />
  27. 27. Texturas<br />Mapeos dependientes de la vista<br />(cambia con las transformaciones)<br />Afín al trazado de rayos.<br />Para cada pixel se construye un rayo, el pixel está asociado a un polígono.<br />Para cada vértice del polígono hemos calculado una normal (Phong), calculamos con la normal su vector de reflexión o refracción, y este vector nos asignará un valor de la textura al proyectar el rayo sobre la zona de textura.<br />
  28. 28. Texturas<br />Mapeos dependientes de la vista(cambia con las transformaciones)<br /><ul><li>Cromo
  29. 29. Refracción
  30. 30. Mapeo del entorno</li></li></ul><li>Texturas<br />Cromo<br /><ul><li>El rayo reflejado acaba en un mapa bidimensional.
  31. 31. Da efecto de movimiento en el entorno con poco coste.
  32. 32. La textura de un punto cambia con el punto de vista.
  33. 33. Suele usarse una esfera como superficie intermedia.</li></li></ul><li>Texturas<br />Cromo<br />
  34. 34. Texturas<br />Cromo<br />
  35. 35. Texturas<br />Refracción<br />Utilizamos el rayo de refracción proyectado directamente sobre un plano.<br />
  36. 36. Con latitud y longitud accedemos a R=(x, y, z)<br />Texturas<br />Mapeo del entorno<br /><ul><li>El objeto se rodea con una superficie cerrada sobre la que se proyecta el entorno.
  37. 37. Los rayos reflejados tocan esa superficie.</li></ul>El rayo reflejado (sobre el vector V)<br />
  38. 38. Texturas<br />Mapeo del entorno<br />
  39. 39. Texturas<br />Mapeo del entorno<br />El mejor resultado se obtiene rodeando el objeto en cuestión por una esfera que rodea la escena, y calculando la intersección del rayo con ella<br />
  40. 40. Texturas<br />Bump Mapping (Blinn 1978)<br /><ul><li>Los mapeos producen superficies suaves.
  41. 41. Para la rugosidad se introduce en la definición de la superficie una variación aleatoria sobre la definición de la superficie.
  42. 42. Esta variación genera una nueva superficie Q’(u,w).</li></li></ul><li><ul><li>La normal de la nueva superficie</li></ul>Texturas<br />Bump Mapping<br /><ul><li> Podemos calcular la nueva normal (perturbada) de la nueva superficie Q’(u,w), resultando N’.</li></li></ul><li>Texturas<br />Bump Mapping<br />
  43. 43. Texturas<br />Bump Mapping<br />Podemos calcular el producto vectorial de las parciales para obtener la nueva normal<br />
  44. 44. Texturas<br />Bump Mapping<br />Planteando el producto vectorial, y suponiendo una perturbación pequeña obtenemos la nueva normal:<br />
  45. 45. Texturas<br />Bump Mapping<br />
  46. 46.
  47. 47. Texturas<br />Texturas 3D (Peachey, Perlin y Gardner 1985)<br />RGB: El color asignado es el de la posición 3D, es decir, para el punto del espacio (x y z) tomamos el color del punto (x y z) del espacio RGB.<br />
  48. 48. Texturas<br />Texturas 3D (Peachey, Perlin y Gardner 1985)<br />Una textura sólida puede verse como la creación de un espacio de color tridimensional que rodea al objeto.<br />Al pintar el objeto o simplemente quitamos el espacio sobrante.<br />Ebert hace uso de ruido y turbulencias para tal fin, e incluso la transparencia de una textura sólida.<br />
  49. 49. Texturas<br />Texturas 3D<br />Madera: Se suponen cilindros concéntricos (años del árbol). Aquellos valores (x y z) pertenecientes a un cilindro toman el valor oscuro o en otro caso el valor claro (rangos de r).<br />Cilindros<br />
  50. 50. Texturas<br />Texturas 3D<br />Podemos además torcer el cilindro a lo largo de su eje.<br />a y b son constantes en este ejemplo.<br />Madera<br />Para simular la desviación de los cilindros aplicamos por ejemplo una sinusoidal al radio. q=tan-1(x/z)<br />
  51. 51. Texturas<br />Texturas 3D<br />
  52. 52.
  53. 53.
  54. 54. Texturas procedimentales<br />Animando espacios sólidos<br />Aplicado a gases y otros espacios sólido definidos procedimentalmente.<br />Variantes:<br /><ul><li> Introduce un parámetro que cambie la definición del espacio sólido en función del tiempo
  55. 55. Sin cambiar el espacio, movemos el punto en el volumen en función del tiempo. Se crea un movimiento a lo largo de un camino, se transforma de pantalla a coordenadas 3D del mundo, y de ahí a coordenadas del espacio de turbulencias</li></li></ul><li>Texturas procedimentales<br />Animando espacios sólidos<br />Ebert utiliza trayectorias helicoidales.<br />Razones: los gases no se mueven en trayectorias rectas (turbulencias, viento, ...), su observación de este tipo de comportamiento, y además son trayectorias sencillas de calcular<br />Una trayectoria helicoidal se puede diseñar basada en una rotación sobre un eje y un desplazamiento a lo largo de dicho eje. <br />
  56. 56. Texturas procedimentales<br />Animando espacios sólidos<br />Un ejemplo que rota sobre el eje z cada 100 frames<br />theta=(nframe%100)*(2*M_PI/100);<br />path.x=cos(theta);<br />path.y=sin(theta);<br />path.z=theta*veloc_lineal;<br />
  57. 57. Texturas procedimentales<br />Animando espacios sólidos<br />Aplicar sobre la textura las dos variantes tiene efectos distintos<br />El mármol se obtiene gracias a la mezcla turbulenta de franjas de rocas diferentes.<br />Con la primera aproximación podemos obtener el proceso de formación del mármol.<br />El proceso se consigue incrementando la turbulencia en función del tiempo, así en el primer instante sólo el seno define el color del pixel.<br />
  58. 58. Texturas procedimentales<br />Animando espacios sólidos<br />Imagen formación del mármol<br />
  59. 59. Texturas procedimentales<br />Animando espacios sólidos<br />Las primeras imágenes no tendrán variación, es decir, la turbulencia será nula, el color vendrá dado por el seno.<br />Aumentando el número de frame la turbulencia se irá incrementando, deformando las bandas<br />Cambiar el color del mármol puede ayudar a dar mayor realismo, simulando el calentamiento antes y durante la deformación, dependerá nuevamente del frame en el que nos encontremos<br />
  60. 60. Texturas procedimentales<br />Animando espacios sólidos<br />La otra variante, es decir, mover el punto por el espacio de turbulencia ofrece un efecto diferente.<br />Puede elegirse una trayectoria lineal, o aplicarle una turbulencia, o una helicoidal (el resultado más interesante)<br />Recorremos hacia abajo por lo que tenemos la sensación de movimiento hacia arriba<br />
  61. 61. Texturas procedimentales<br />Animando espacios sólidos<br />
  62. 62. Texturas procedimentales<br />Animando volúmenes gaseosos<br />
  63. 63. Texturas procedimentales<br />Animando volúmenes gaseosos<br />
  64. 64. Texturas procedimentales<br />Animando volúmenes gaseosos<br />
  65. 65. Texturas procedimentales<br />Animando espacios sólidos<br />
  66. 66. Fractales<br />La curva de von Koch<br />
  67. 67. Fractales<br />Calculemos su longitud considerando que el original mide 3 unidades<br />
  68. 68. Fractales<br />En la figura ejemplo la longitud es , esto indica que no puede medirse o describirse con una medida unidimensional. Por otro lado su área es nula, luego tampoco puede describirse con una medida bidimensional. ¿Cómo describirlo? ¿Qué regla puede medirlo? Asignamos una dimensión fraccionaria entre 1 y 2, la dimensión fractal, dimensión en la que sí podremos medir el objeto.<br />
  69. 69. Fractales<br />Estamos habituados a utilizar sólo cuatro escalas de medidas, son las distintas dimensiones<br /> Dimensión 0, contar<br /> Dimensión 1, longitud<br /> Dimensión 2, área<br /> Dimensión 3, volumen<br />Para estos objetos diferentes buscaremos una dimensión donde su expresión para el límite cuando k no sea ni 0 ni , en definitiva, que ofrezca un valor medible. Para este tipo de fractales deterministas la dimensión se obtiene como<br />
  70. 70. Fractales<br />Los utilizaremos para generar objetos con apariencia más natural, en la naturaleza encontramos autosimilitud hasta cierto orden, como en los fractales.<br />
  71. 71. Fractales<br />
  72. 72. Fractales<br />
  73. 73. Fractales<br />
  74. 74. Fractales<br />
  75. 75. Fractales<br />IFS (Iterated Function Systems)<br />Para obtenerlo hemos visto que partimos de una imagen original a la que sustituimos en base a una regla. Para von Koch el elemento inicial se escalaba a 1/3 de su longitud y se formaba un nuevo elemento a partir de cuatro copias escaladas del original, si bien los nuevos elementos se trasladaban y rotaban también<br />
  76. 76. Fractales<br /><ul><li> Sucede que no importa cual es el elemento inicial.
  77. 77. Partiendo de un segmento recto o de una R, al final obtenemos un fractal idéntico.
  78. 78. Un fractal puede almacenarse simplemente conociendo la regla de sustitución (las transformaciones), y podremos aplicarla incluso a un punto. </li></li></ul><li>Fractales<br />IFS<br />Veamos esta regla de sustitución<br />
  79. 79. Fractales<br />IFS<br /><ul><li> Unas transformaciones son suficientes para almacenar este objeto.
  80. 80. Esta es la razón que ha llevado a trabajar en compresión de imágenes utilizando fractales.</li></li></ul><li>Fractales<br />IFS<br />
  81. 81. Fractales<br />
  82. 82. Fractales<br />Montañas con un esquema similar a Sierpinski, pero en lugar de escoger el punto medio introducimos un desplazamiento aleatorio, y sin olvidar el triángulo central.<br />
  83. 83. Fractales<br />Montañas<br />
  84. 84. Fractales<br />Una función de movimiento browniano (fBm) resulta un movimiento homogéneo (igual en todas partes) e isotrópico (igual en todas direcciones) <br />La naturaleza no es así, necesitamos funciones heterogéneas<br />
  85. 85. Fractales<br />Los multifractales son fractales que requieren multiplicidad de medidas (dimensiones fractales) para caracterizarlos<br />Son fractales cuya dimensión varía según la posición<br />
  86. 86. Fractales<br />Nubes<br />Representación de nubes delgadas en un cielo azul, basta con una fBm con umbral, por debajo de un valor aplicamos cielo azul.<br />
  87. 87. Fractales<br />Nubes<br />Parecen más algodón que una nube<br />
  88. 88. Fractales<br />Distorsión de cirros<br />Falta tener en cuenta el comportamiento de la atmósfera terrestre, los ciclones y anticiclones. <br />Con un vórtice<br />
  89. 89. Fractales<br />Circulación. Efecto de Coriolis<br />
  90. 90. Fractales<br />Fuego<br />Utiliza una fBm, variando la distorsión exponencialmente con la altura<br />
  91. 91. Fractales<br />Fuego<br />
  92. 92. Fractales<br />Agua<br />Utilizando bump mapping, se necesita una fBm para cada coordenada.<br />El resultado perturba la normal utilizando una función fractal con dos octavos.<br />
  93. 93. Fractales<br />Agua<br />Pero en la realidad hay menos homogeneidad, el viento afecta, es un flujo turbulento, un fractal<br />
  94. 94. Fractales<br />Tierra<br />Estratos<br />
  95. 95. Fractales<br />Tierra<br />Estratos simulados utilizando una tabla look-up de color según la altura, y perturbar el índice de altura con un fBm<br />
  96. 96. Fractales<br />Planeta<br />Proceso para creación de un planeta<br />
  97. 97. Fractales<br />Creación de continentes y océanos:<br /><ul><li> Un parámetro controla el nivel del mar, permite controlar terrenos y costas heterogéneas.
  98. 98. Una tabla look-up para asociar latitud con zonas climáticas.
  99. 99. Se perturba con un fractal la coloración, teniendo en cuenta a demás la altura del terreno que puede afectar al clima.
  100. 100. Expande los desiertos.
  101. 101. Coloreamos el mar en función de la profundidad.
  102. 102. Se perturba el color del desierto para evitar la apariencia plana</li></li></ul><li>Fractales<br />Planeta<br />Proceso para creación de la luna<br />Los cráteres consisten en un pico central, un suelo no perturbado y un contorno en forma de anillo con bordes aleatorios, es decir, un fractal<br />
  103. 103. Fractales<br />Planeta<br />
  104. 104. Fractales<br />Planeta<br />
  105. 105. Fractales<br />Coloración<br />
  106. 106. Fractales<br />Terrenos fractales<br />Los paisajes aparecieron trazando una función de dimensión 1.2<br />Recordaba al perfil de una montaña<br />Extensión a 2D<br />
  107. 107. Fractales<br />Dimensión 2.2 obtenemos un paisaje rugoso pero homogéneo<br />La dimensión da información sobre la rugosidad del objeto.<br />Aumentando la dimensión fractal añadimos tensión.<br />Variando de 2.0 a 3.0 (derecha)<br />
  108. 108. Fractales<br />Terrenos fractales<br />Los mismos procedimientos utilizados para generar texturas pueden emplearse para generar terrenos, el valor devuelto no indicará un color sino la altura.<br />Musgrave comenzó realizando subdivisión poligonal, el resultado tiene el aspecto de homogeneidad<br />
  109. 109. Fractales<br />Terrenos fractales<br />
  110. 110. Fractales<br />Terrenos fractales<br />Las técnicas procedimentales permiten escoger el detalle<br />
  111. 111. Fractales<br />Terrenos fractales<br />
  112. 112. Fractales<br />Terrenos fractales<br />Incluir aspectos como la erosión lo hacen más natural<br />Utilizando multifractales<br />
  113. 113. Fractales<br />
  114. 114. Fractales<br />Terrenos fractales<br />Un campo de altura es una matriz de datos bidimensional, cada punto tiene una altura asociada. Existen distintos formatos de ficheros.<br />La limitación de una altura por punto impide la existencia de cuevas, y no resulta sencilla de evitar.<br />El campo de altura se adapta muy bien a trazadores de rayos<br />
  115. 115. Fractales<br />Terrenos fractales<br />Hasta Manuel Gamito en 1998<br />
  116. 116. Fractales<br />La perspectiva y su influencia a gran escala, los objetos alejados pierden contraste debido a la atmósfera <br />Son procesos de dispersión:<br /><ul><li> La dispersión de Rayleigh nos presemta el cielo azul.
  117. 117. La de Mie lo presenta blanquecino.</li></li></ul><li>Fractales<br />
  118. 118. Fractales<br />
  119. 119. Fractales<br />Terrenos fractales<br />Modelos de terreno heterogéneos<br />Los terrenos reales son heterogéneos, hay erosión, comportamientos tectónicos etcétera.<br />Un primer detalle, los terrenos más bajos suelen ser más suaves, la áreas altas suelen ser más afiladas<br />
  120. 120. Fractales<br />Terrenos fractales<br />Modelos de terreno heterogéneos<br />
  121. 121. Fractales<br />Terrenos fractales<br />Modelos de terreno heterogéneos<br />
  122. 122. Fractales<br />
  123. 123. Fractales<br />Terrenos fractales<br />Modelos de terreno heterogéneos<br />Los valles son suaves a cualquier altura, escalando altas frecuencias ...<br />
  124. 124. Fractales<br />Terrenos fractales<br />
  125. 125. Fractales<br />Musgrave<br />
  126. 126. Fractales<br />Musgrave<br />
  127. 127. Fractales<br />Musgrave<br />
  128. 128. Fractales<br />Musgrave<br />http://www.cs.umbc.edu/pub/texture/musgrave/<br />http://www.mrl.nyu.edu/~perlin/demox/Planet.html<br />http://www.cs.umbc.edu/pub/texture/musgrave/TextureCCode/<br />
  129. 129. Fractales<br /> Una familia de fractales da idea de comportamiento dinámico conocido como caos determinista.<br /><ul><li> Las reglas de generación son sencillas aunque no lineales.
  130. 130. Existen dos conjuntos sencillos que parten de la regla</li></ul>Un nuevo número complejo, zn+1 , se calcula a partir de otro previo, zn , al que le sumamos una constante compleja. Ambos conjuntos Julia y Mandelbrot utilizan el plano complejo como área de dibujo.<br />
  131. 131. Fractales<br />Con el esquema de Julia se escoge un valor para c, y siendo éste conocido recorremos todo el plano complejo, en cada punto tomamos z0como las coordenadas del punto e iteramos. <br />Si después de realizar n iteraciones el valor actual de z no se ha disparado asociamos al pixel el color negro, en otro caso asociamos al pixel un color asociado a la iteración en la que se superó un cierto umbral. Variando c obtenemos distintas figuras.<br />
  132. 132. Fractales<br />El esquema de Mandelbrot cambia ligeramente al asociar c con las coordenadas del punto del plano complejo y escogiendo z0=0.<br />
  133. 133. Fractales<br />
  134. 134. Fractales<br />
  135. 135. Fractales<br />

×