otros usos del mapeo de textura texturas (2) - …cs.uns.edu.ar/cg/clasespdf/5.2-mastexturas.pdf ·...
TRANSCRIPT
1
Texturas (2)
+ =
Otros usos del mapeo de textura
Los mapas de textura se usan para adicionar complejidad a una escena.
Es más sencillo pintar o capturar una imagen que la geometría
Modelar reflectancia Adicionar un mapa de textura a un parámetro
Modelar luz Mapas de ambiente
Mapas de luces
Modelar geometría Bump maps
Mapas de normales
Mapas de desplazamiento
Mapas de opacidad y billboards
S. Castro, N. Gazcón CG 2015
Mapeo de Textura
• ¿Cómo se calcula la iluminación en cada punto del objeto?
• El valor de la iluminación no se calcula con ninguno de los métodos
vistos sino que I se reemplaza por el valor de la textura. El reemplazo
se hace para cada componente RGB.
S. Castro, N. Gazcón CG 2015
I = T(s,t)IE
El brillo especular es del color de la luz, no del objeto
Mapeo de Textura
• Modulación por el coeficiente de reflexión
El color de un objeto es el color de su componente de luz difusa;
si se utiliza el método de Phong ¿cómo se calcularía la
Iluminación?.
S. Castro, N. Gazcón CG 2015
¿IPhong = kaIa + fat Ip (kd (L·N) + ks (R·V)n)?
IPhong = kaIa + fat Ip (T(s,t) * (L·N)+ ks (R·V)n)
Un ejemplo de Mapeo de textura
¿Qué realiza el siguiente programa de fragmentos? …
in vec3 normal;
in vec3 luz;
in vec2 texcoord;
uniform sampler2D miTextura;
out vec4 colorFrag;
void main( )
{ vec3 N = normalize(normal);
vec3 L = normalize(luz);
vec4 color = texture2D(miTextura, texcoord);
float NdotL = dot(L, N);
float difusa = 0.5 * NdotL + 0.5;
colorFrag = color*vec4(vec3(difusa),1.0);
}
Un sampler encapsula un objeto de textura y todos sus parámetros. Los
samplers se pasan de la aplicación a los shaders como variables uniformes. Los
shaders de fragmentos usan texture*() para muestrear la textura del sampler*
S. Castro, N. Gazcón CG 2015
Mapeo de Textura
• ¿Qué ocurre en este caso?
S. Castro, N. Gazcón CG 2015
¿Qué ocurre si utiliza el método de Cook y Torrance?
¿Como se ve afectada la componente especular?
2
Mapas de Ambiente
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Los mapas de ambiente
crean una imagen del
ambiente que rodea al
objeto como se ve desde el
objeto mismo.
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
El mapeo de ambiente puede realizarse tomando distintas superficies
intermedias.
De acuerdo a esto pueden realizarse distintos mapeos como el
mapeo cúbico, el esférico, …
Esto determina la forma de la superficie sobre la cual reside el mapa
y también cómo éste se indexa.
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Distintos mapas de ambiente
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapeo esférico
En un mapeo esférico de ambiente, la imagen
se proyecta primero sobre el interior de la
esfera y ésta constituye el mapa.
Luego el mapa se proyecta sobre el objeto o
los objetos que necesitan el mapeo de
ambiente y que son puestos dentro de la
esfera.
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapa Esférico
El mapa almacena la radiación que llega al objeto
3
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapa esférico
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapeo Esférico
Éste es un mapeo esférico
de ambiente.
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapas cúbicos
En el mapeo cúbico, 6 vistas diferentes representan una vista
simplificada del ambiente teniendo en cuenta cómo éste es visto
desde el objeto
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
Mapas cúbicos
Mapeo de Ambiente
El cubo es el objeto
intermedio más
natural para una
habitación.
S. Castro, N. Gazcón CG 2015
Mapeo de Ambiente
S. Castro, N. Gazcón CG 2015
El cubo simplifica los cálculos
4
Un ejemplo de Mapeo de Ambiente
Un mapa cúbico consta de 6 imágenes de textura cuadradas que
constituyen un cubo centrado en el origen.
S. Castro, N. Gazcón CG 2015
Accederemos al mapa cúbico
mediante un vector. Este vector se
origina en el centro del cubo e
intersecta una de las 6 caras del
mapa.
El resultado del acceso a esta
textura es el color filtrado en el
punto de intersección del vector
con una de las caras del cubo.
El mapa cúbico se genera
ubicándose en el centro del objeto
y tomando las 6 vistas.
Un ejemplo de Mapeo de Ambiente
Cuando se mire desde un punto de vista una superficie altamente
reflectiva, reflejará en ese punto el rayo incidente I en el
ambiente.
S. Castro, N. Gazcón CG 2015
Las características del rayo
reflejado dependen de este
rayo incidente I y de la normal
a la superficie en el punto. Lo
que se ve no es la superficie
misma sino cómo es el
ambiente en la dirección del
rayo reflejado.
Un ejemplo de Mapeo de ambiente
S. Castro, N. Gazcón CG 2015
Veamos cómo escribimos nuestros programas de vértices y de
fragmentos.
El programa de vértices calcula el rayo incidente y el reflejado.
El programa de fragmentos busca en el mapa de ambiente y lo usa
para adicionar la reflexión al color final del fragmento.
Un ejemplo de Mapeo de ambiente
Programa de vértices …
out vec3 reflectVector;
void main( )
{
vec3 ECposition = vec3( uModelViewMatrix * aVertex );
vec3 EyeDir = ECposition - posEye; // vector from eye to pt
vec3 Normal = normalize( uNormalMatrix * aNormal );
vec3 reflectVector = reflect( EyeDir, Normal );
gl_Position = uModelViewProjectionMatrix * aVertex;
}
Programa de fragmentos …
uniform samplerCube ReflectUnit;
in vec3 reflectVector;
out vec4 fFragColor;
void main( )
{
vec4 newcolor = textureCube( ReflectUnit, reflectVector );
fFragColor = newcolor;
}
S. Castro, N. Gazcón CG 2015
Un ejemplo de Mapeo de ambiente
S. Castro, N. Gazcón CG 2015
¿Cómo se obtiene la siguiente imagen?
¿Aplica mapeo de texturas para obtener las imágenes que se
muestran debajo? ¿Cómo las obtiene?
Mapas de Luces
5
Mapeo de Luces
S. Castro, N. Gazcón CG 2015
Mapas de Luces
Textura x Mapa Textura
Mapa
Mapeo de Luces
S. Castro, N. Gazcón CG 2015
Mapas de Luces
Modulan el color con un mapa de luces
Mapeo de Luces
Mapas de Luces
S. Castro, N. Gazcón CG 2015
Mapeo de Luces
Mapas de Luces
S. Castro, N. Gazcón CG 2015
Mapa de luces
Mapeo de Textura de Radiancia Textura de Radiancia+Mapa de Luces
Textura Proyectiva
S. Castro, N. Gazcón CG 2015
Se trata a la textura como la imagen proyectada por un
proyector.
No es necesario especificar explicitamente coordenadas de
textura y es una buena alternativa para renderizar variaciones
debido a la iluminación.
Textura Proyectiva
S. Castro, N. Gazcón CG 2015
Se usa el mapa de profundidad visto desde la luz para
determinar si el punto muestreado es visible.
Punto en sombra visible
para el ojo pero no para
la luz.
Ojo Luz
6
Bump Mapping
S. Castro, N. Gazcón CG 2015
Bump Mapping
Bump Mapping
S. Castro, N. Gazcón CG 2015
El mapeo de textura básico pinta sobre una superficie suave.
¿Cómo hacer que esa superficie parezca rugosa?
- Modelar la superficie con muchos polígonos pequeños
- Alterar las normales antes de calcular la iluminación
Bump Mapping
S. Castro, N. Gazcón CG 2015
El mapa de textura es un mapa que guarda la
alteración que deben sufrir las normales.
La orientación de las normales de la superficie se
alteran durante el proceso de sombreado.
Bump Mapping
S. Castro, N. Gazcón CG 2015
Cuando se renderiza el objeto la textura parece ser 3D. Son una forma
efectiva para crear texturas realistas y complejas, especialmente en objetos
que no están demasiado cercanos a la cámara o en objetos que deben
aparecer con forma algo irregular.
Cuando los objetos están demasiado cercanos a la cámara se observa la
silueta de los objetos sin alteraciones porque la geometría NO se altera
Bump Mapping
S. Castro, N. Gazcón CG 2015
7
Bump Mapping
S. Castro, N. Gazcón CG 2015
El embossing es un tipo de bump mapping.
Bump Mapping
S. Castro, N. Gazcón CG 2015
El canal alfa también puede usarse como mapa de textura para realizar
este tipo de mapeo. Así, se asociará mayor o menor deformación de la
superficie de acuerdo a los valores almacenados en el mapa.
Bump Mapping
S. Castro, N. Gazcón CG 2015
Bump map y mapa de color a la derecha.
Bump Mapping
S. Castro, N. Gazcón CG 2015
El bump mapping combina la iluminación por fragmento con las
perturbaciones a las normales de la superficie (suministradas en una
textura) para simular las interacciones de la luz sobre superficies con
elevaciones.
Esto se logra sin afectar la superficie. Se capturan las características
detalladas de la superficie sin aumentar la complejidad geométrica del
objeto. Las ventajas son:
• Alto nivel de complejidad visual sin adicionar más geometría
• Codificación del detalle de la superficie en texturas en lugar de
diseñar modelos altamente detallados.
• Se pueden aplicar diferentes mapas bump a diferentes instancias del
mismo modelo para dar a cada instancia una apariencia distinta de la
superficie.
Bump Mapping
S. Castro, N. Gazcón CG 2015
El bump map codifica el cambio en la dirección del vector
normal.
¿En qué sistema de coordenadas?
Actualmente esto se realiza en el espacio de coordenadas local
a la superficie (también denominado espacio tangente).
Bump Mapping
S. Castro, N. Gazcón CG 2015
En el espacio de coordenadas local a la superficie:
• Cada punto tiene coordenadas (0,0,0)
• En este punto:
• el vector normal sin perturbar tiene coordenadas (0,0,1)
• el vector tangente tiene coordenadas (1,0,0)
• el vector bitangente tiene coordenadas (0,1,0)
Es necesario almacenar (o calcular) el vector tangente en cada
punto
8
Bump Mapping
S. Castro, N. Gazcón CG 2015
Un tipo de bump mapping perturba el vector normal en las
direcciones de la tangente y la bitangente de modo tal que:
- Un canal de textura codifica la
magnitud de la perturbación en la
dirección tangente.
- Un canal de textura codifica la
magnitud de la perturbación en la
dirección bitangente.
Bump Mapping
S. Castro, N. Gazcón CG 2015
Un tipo de bump mapping perturba el vector normal en las
direcciones de la tangente y la bitangente de modo tal que:
- Un canal de textura codifica la
magnitud de la perturbación en la
dirección tangente.
- Un canal de textura codifica la
magnitud de la perturbación en la
dirección bitangente.
Bump Mapping
S. Castro, N. Gazcón CG 2015
0______128______255
sin perturbación
0______128______255
perturbación +
0______128______255
perturbación -
Un tipo de bump mapping perturba el vector normal en las
direcciones de la tangente y la bitangente de modo tal que:
Bump Mapping
Si la perturbación de la normal se define en coordenadas locales
de la superficie, tenemos que:
• Transformar los vectores de luz y de vista a las coordenadas
locales de la superficie o
• Transformar el vector normal perturbado al sistema de
coordenadas en que se lleve a cabo la iluminación
S. Castro, N. Gazcón CG 2015
Bump Mapping
Dados los vectores te (tangente) be (bitangente) y ne (normal) en
coordenadas del ojo, la matriz
transforma vectores que están en coordenadas locales de la
superficie a coordenadas del ojo y la matriz de rotación:
transforma vectores de coordenadas del ojo a coordenadas
locales a la superficie.
S. Castro, N. Gazcón CG 2015
|||
|||eyeeyeeyeeye
sup nbtR
eye
eye
eye
sup
eye
eye
sup
n
b
t
RRT
Un ejemplo de Bump Mapping
S. Castro, N. Gazcón CG 2015
En el programa de vértices: • Obtener los vectores L y V en coordenadas del ojo
• Obtener los vectores normal, tangente y bitangente en
coordenadas del ojo
• Formar la matriz
• Calcular las direcciones de vista y de la luz en coordenadas
locales de la superficie como variables de salida
En el programa de fragmentos: • Buscar la perturbación en la textura
• Construir el vector normal perturbado en coordenadas locales de
la superficie
• Calcular el color del fragmento usando la normal perturbada y las
direcciones de la luz y de vista
9
Bump Mapping
S. Castro, N. Gazcón CG 2015
Bump Mapping
• P es un punto sobre la superficie y tiene normal N. B=B(u,v)
para todo u,v entre 0 y un máximo. Es el mapa de bumps.
S. Castro, N. Gazcón CG 2015
NvuBPP
PPN vu
,
DNPBPBN
NPBPNBN
NBPNBPN
vvuu
uvvu
vvuu
2
,,2
,,
tsBtsBB
tsBtsBB
v
u
Variación de la normal en
dirección u y v
Mapas de normales
Normal Mapping
S. Castro, N. Gazcón CG 2015
El concepto de Normal Mapping es similar al de Bump Mapping:
la alteración de las normales. Los valores RGB del mapa se
interpretan como las normales y no como la perturbación de las
normales.
Mapa de
altura
Mapa de
normales
Normal Mapping
S. Castro, N. Gazcón CG 2015
La textura almacena las tres componentes de la normal perturbada en
lugar de las dos componentes de la perturbación.
Normal Mapping
S. Castro, N. Gazcón CG 2015
La mayoría de los mapas de normales se derivan de los campos de
altura. En lugar de codificar vectores, una textura de campos de altura
codifica la altura o elevación de cada texel.
10
Normal Mapping
S. Castro, N. Gazcón CG 2015
La conversión del campo de altura a un mapa de normales es un
proceso automático que se realiza en una etapa de pre-
procesamiento.
Normal Mapping
S. Castro, N. Gazcón CG 2015
Para cada texel en el campo de altura se muestrea la altura de dicho
texel así como los texels de arriba y de la derecha del texel dado. El
vector normal es la versión normalizada del producto vectorial de los
dos vectores diferencia (1,0,ha-ht) y (0,1, hd-ht).
El producto vectorial de estos dos vectores es un tercer vector
perpendicular a la superficie y que apunta hacia afuera de ésta.
Normalizando este vector creamos una normal adecuada para el
normal mapping.
y esta normal debe normalizarse
y almacenarse en una textura
RGB sin signo.
tdta hhhhnormal ,1,0,0,1
Normal Mapping
S. Castro, N. Gazcón CG 2015
La textura almacena las tres componentes de la normal perturbada en
lugar de las dos componentes de la perturbación.
El canal rojo codifica la desviación en x, el verde la desviación en y y el
azul la desviación en z.
Como los valores de color son reales entre 0 y 1 y cada una de las
componentes de las normales normalizadas están en el rango [-1,1],
debemos mapear los valores de las normales al rango [0,1].
Esto se realiza con:
compCol=0.5*compNorm+0.5
El mapeo inverso lo realizamos con compNorm=2*(compCol-0.5)
Mapas de desplazamiento
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015
Mapas de desplazamiento
Estos mapas literalmente desplazan la
superficie, cambiando la geometría del objeto.
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015 from www.robot-frog.com
Mapas de desplazamiento
Para almacenar el mapa de
desplazamiento pueden utiizarse
los colores de la textura 2D o el
canal alfa.
Se usa en general para la
generación de terrenos.
11
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015
Mapas de desplazamiento
Los mapas pueden mezclarse con
métodos procedurales.
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015
Mapas de desplazamiento
Estos mapas literalmente desplazan la superficie, cambiando la geometría
del objeto.
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015
Mapas de desplazamiento
Estos mapas alteran la geometría del objeto cambiando tanto las normales a la
superficie como la posición 3D de los puntos de la superficie misma.
Los mapas de desplazamiento se usan habitualmente para crear terrenos 3D
que incluyen montañas y valles.
Los mapas de terrenos pueden construirse con mapas
de desplazamiento que están basados en imágenes
fotográficas de vistas aéreas en las que las elevaciones
están codificadas con distintos tonos de grises. Los
terrenos tridimensionales también pueden crearse
generando imágenes 2D con técnicas fractales y
usando estas imágenes como mapas de
desplazamiento.
Mapeo de la Textura
S. Castro, N. Gazcón CG 2015
Bump mapping Mapas de desplazamiento
Mapas de transparencia y billboards
Mapas de Transparencia
S. Castro, N. Gazcón CG 2015
Mapas de transparencias
Una estrategia para simular transparencia consiste en aplicar mapas de
transparencia a la superficie de un objeto 3D.
Un mapa de transparencia consiste en una imagen bidimensional que se aplica
sobre la superficie del objeto 3D con el propósito de hacer todo o parte del
objeto transparente. Algunos programas usan los valores de negro para indicar
zonas completamente transparentes; otros usan el blanco para tal fin. Los
tonos de grises indican objetos traslúcidos.
12
Mapas de Transparencia
S. Castro, N. Gazcón CG 2015
Blending del mapa
Estas técnicas determinan la forma en que distintas capas de la
superficie, incluyendo los mapas de textura, se mezclan con la
superfice de un objeto, así como con otras capas de la misma.
El blending de un mapa de imagen con otras capas de la superficie
puede controlarse de distintas formas.
Algunas de las formas incluyen blending total, blending por tipo de
iluminación, blending con el canal alfa y blending con técnicas de
matting.
Mapas de Transparencia
S. Castro, N. Gazcón CG 2015
Mapas de Transparencia
Usar el canal alfa para que determinadas
partes de la textura sean transparentes. Es
más barato que el modelado explícito.
Canales RGB
Canal alfa
Mapas de Transparencia
S. Castro, N. Gazcón CG 2015
Blending del mapa
El blending puede usarse entonces para mostrar o
cubrir distintas porciones de las capas que
constituyen la superficie de un objeto.
En este ejemplo, el resultado final puede
obtenerse:
- Poniendo un mapa de imagen y su canal alfa
sobre una esfera azul, mostrándose así el azul sólo
a través de los pixels negros del canal alfa.
- Con un mapa más simple sin canal alfa y usando
los pixels blancos en el mapa para dejar ver la
superficie azul que está debajo.
Billboards
S. Castro, N. Gazcón CG 2015
Reemplazar geometría compleja con polígonos de textura mapeados
con texturas transparentes.
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
¿Dónde se adicionan las texturas?
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
¿Dónde se adicionan las texturas?
13
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
Se definen las coordenadas de textura (parametrización)
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
¿Dónde se adicionan las texturas?
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
Se determinan las coord. de textura para cada fragmento y ...
Pipeline 3D
S. Castro, N. Gazcón CG 2015
Espacios
Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar División w
Transformación
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterización
Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
... se tiene acceso a la textura para procesar los fragmentos.
CO CO CM COjo COjo
Pantalla 3D (CND)
T.Model.
Pipeline 3D
S. Castro, N. Gazcón CG 2015
CP CP CP
T.Mundo T.Vista Iluminación T.Perspectiva
CClip
División
Perspectiva (/w)
T. Viewport
Rasterización Proc.fragmento,
Texturado, Ilum
fragmento, …
Operaciones
Raster
CP
Procesamiento Geométrico (de vértices)
Procesamiento de Fragmentos
Texturas Volumétricas
14
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Las texturas volumétricas o texturas sólidas son texturas que están definidas
para un volumen. Éstas pueden ser mapas 3D o estar definidas proceduralmente.
El efecto sugiere un bloque sólido de material, más que una superficie. Si se
corta un cubo de textura sólida, la nueva superficie exhibirá los cortes en el
grano.
En el mundo real, la mayoría de las texturas
correspondientes a distintos materiales tiene
cualidades 3D. La veta de la madera, por
ejemplo, no es completamente plana como la
fórmica sino que tiene pequeñas variaciones
que atrapan la luz de modos más complejos
que los que pueden generarse por un simple
mapeo de textura.
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
¿Es necesaria una forma de mapeo intermedia?
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
¿Cuál es el mapeo en este caso?
En la tetera arriba-izquierda los
anillos se producen tomando las
coordenadas x,y para calcular la
distancia del centro del objeto. Si
es par, rojo; si no, blanco ¿En las
otras?
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Mod(x,a)/a (Sen(x)+1)/2
Las funciones siguientes están en el rango 0-1. Una de ellas es una
rampa. ¿Cuál? ¿Por qué?
Para generar una textura se puede usar
una función en lugar de una imagen.
// vertex shader
in vec4 posV;
out vec3 pos;
...
pos = posV.xyz;
...
// fragment shader
in vec3 pos;
...
color = sin(pos.x)*sin(pos.y);
...
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Ruido de reticulado Ruido de gradiente
15
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Interpolación trilineal de la textura.
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Objeto original Ruido trilineal Ruido Tricuadrático
No debemos preocuparnos en cómo mapear el ruido al objeto. En
cada punto (x,y,z) utilizamos el valor de la textura en la coordenada
correspondiente.
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Este valor usado como
índice en una tabla look up
consistente de :
Ejemplo de mármol
Texturas volumétricas
S. Castro, N. Gazcón CG 2015
Textura de Turbulencia (ruido de distintas frecuencias, sumado)
Para obtener mármol podemos usar la turbulencia como operando en una
función.
)),,(**sin( zyxTurbAxfMármol
La frecuencia f de la función sin controla la cantidad y el grosor de las venas y la
amplitud (A) de la Turbulencia controla la distorsión de las mismas.
Bibliografía
S. Castro, N. Gazcón CG 2015
ACM SIGGRAPH Proceedings
Angel, E., Shreiner, D. Interactive Computer Graphics: A top-down approach
with shader-based OpenGL, Addison Wesley, 2011, 6th. Ed.
Bailey, M., Cunningham, S., Graphics Shaders: Theory and Practice, CRC
Press, 2012, 2nd Edition.
Foley, J., van Dam, A., Feiner, S. y Hughes, J., Computer Graphics. Principles
and Practice, Addison Wesley, 1992, 2nd Edition.
Hearn, D., Baker, M.P., Computer Graphics, C Version, Prentice Hall Inc.,
2003, 3rd Edition.
Hill, F. Jr, Kelley, S., Computer Graphics Using OpenGL, Prentice Hall., 2006,
3rd Ed.
Rost, R., Licea-Kane, B., Ginsburg, D., Kessenich, J., OpenGL Shading
Language, Addison-Wesley Professional, 3rd Edition, 2009.
Watt, A., Watt, M., Advanced Animation and Rendering Techniques: Theory
and Practice, Addison-Wesley Publishing Company, 1993.
S. Castro, N. Gazcón CG 2015