Texturas
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
7,959
On Slideshare
5,143
From Embeds
2,816
Number of Embeds
4

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 2,816

http://blog.espol.edu.ec 2,812
http://www.slideshare.net 2
http://207.46.192.232 1
http://www.google.com.mx 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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