|
La parte final de una textura de POV-Ray es el acabado (finish)
.
Éste controla las propiedades de la superficie de un objeto. Puede hacerla brillante
y reflexiva, o apagada y mate. También puede especificar qué le sucede a la
luz que atraviesa pigmentos transparentes, qué le pasa a la luz que es
dispersada por superficies que no son perfectamente lisas, y qué sucede con la
luz que es reflejada por las superficies con propiedades de interferencia de película
fina.
POV-Ray dispone de doce propiedades distintas para especificar el acabado de
cualquier objeto. Estas propiedades son controladas por los siguientes
identificadores:
ambient (ambiente)
,
diffuse (luz difusa)
,
brilliance (brillo)
,
phong (brillo phong)
,
specular (brillo especular)
,
metallic (brillo metálico)
,
reflection (reflexión)
,
crand (granulado aleatorio)
e
iridescence (iridiscencia)
.
Diseñemos un par de texturas para poder utilizar estos parámetros.
Ya que los objetos en POV-Ray son iluminados por fuentes de luz, las porciones
de estos objetos que queden en sombra se verían completamente negros si no fuera
por las dos primeras propiedades de los acabados,
ambient (ambiente)
y
diffuse (luz difusa)
.
Ambiente es usado para simular la luz dispersada por toda la escena que no
viene directamente de una fuente de luz.
La luz difusa determina que cantidad de la luz que se ve, viene directamente
de una fuente de luz. Estos dos identificadores trabajan juntos para
controlar la simulación de la luz ambiental.
Volvamos a nuestra esfera gris para demostrar esto. También cambiemos el pigmento
de nuestro plano al que tenía originalmente, el patrón a cuadros verde y blanco.
plane { y, -1.5 pigment {checker Green, White} } sphere { <0,0,0>, 1 pigment { Gray75 } finish { ambient .2 diffuse .6 } }
En el ejemplo superior, se usaron los valores por defecto de ambiente y luz
difusa. Generamos esto para ver cuál es el efecto y luego realizamos el siguiente
cambio en el bloque finish
de acabado.
ambient 0 diffuse 0
La esfera es negra porque hemos especificado que nada de la luz que viene
de cualquier fuente sea reflejada por la esfera. Cambiemos el valor de
diffuse
nuevamente al valor por defecto de 0.6.
Ahora vemos el color gris de la superficie en las partes donde la luz que viene
de la fuente llega directamente a la esfera, pero la parte con sombra sigue
absolutamente negra.
Cambiemos diffuse
a 0.3 y ambient
a 0.3.
Ahora la esfera parece casi sin profundidad. Esto sucede porque hemos
especificado un grado bastante alto de luz ambiente y sólo una pequeña porción
de la luz proveniente de las fuentes es reflejada difusamente hacia la
cámara. Los valores por defecto de ambient
y diffuse
son una media bastante buena y un buen punto de partida. En la mayoría de los
casos, un valor de ambiente de 0.1 ... 0.2 es suficiente y un valor de luz
difusa de entre 0.5 ... 0.7 funcionará bien. Hay algunas excepciones.
Si tenemos una superficie completamente transparente con valores altos de
refracción y/o reflexión, valores bajos de ambiente y luz difusa pueden ser
más apropiados. Aquí hay un ejemplo:
sphere { <0,0,0>, 1 pigment { White filter 1 } finish { ambient 0 diffuse 0 reflection .25 specular 1 roughness .001 } interior { ior 1.33 } }
Esto es vidrio, obviamente. El vidrio es un material que toma casi toda su
apariencia de sus alrededores. Muy poco de la superficie se ve porque transmite
o refleja prácticamente toda la luz que cae sobre él. Vea glass.inc
para otros ejemplos.
Si alguna vez necesitamos que un objeto esté completamente iluminado independientemente de la iluminación de la escena, podemos lograrlo artificialmente especificando un valor ambiente de 1, y 0 de luz difusa. Ello eliminaría todo el sombreado y le daría al objeto su color más brillante en todos sus puntos. Esto sirve para simular objetos que emiten luz como las bombillas de luz y cielos en las escenas donde éste no pueda ser iluminado apropiadamente por otros medios.
Probémoslo con nuestra esfera.
sphere { <0,0,0>, 1 pigment { White } finish { ambient 1 diffuse 0 } }
Al generar esto nos encontramos con una esfera blanca cegadora sin brillos superficiales o partes sombreadas. Podría ser la luz de un poste de calle.
En el ejemplo del vidrio, vimos que había pequeños puntos brillantes sobre
la superficie. Esto le dio a la esfera una apariencia dura y brillante.
POV-Ray nos ofrece dos modos de especificar los brillos superficiales. El primero
se llama brillo Phong. Generalmente, los brillos Phong se describen
usando dos identificadores: phong
y
phong_size
. El número
de coma flotante que sigue a phong
determina la luminosidad
del brillo mientras que el número que sigue a phong_size
determina
su tamaño. Probémoslo.
sphere { <0,0,0>, 1 pigment { Gray50 } finish { ambient .2 diffuse .6 phong .75 phong_size 25 } }
Al generar vemos un brillo bastante amplio y suave que le da a la esfera
una apariencia un poco plástica. Ahora cambiemos phong_size
a 150. Esto da un brillo mucho más pequeño que da una apariencia de ser más
duro y brillante.
Existe otro tipo de brillo que es calculado por otros medios llamado
brillo especular. Se especifica con el identificador
specular
y opera en conjunción con otro identificador llamado
roughness (aspereza)
.
Estos dos identificadores trabajan juntos de un modo muy similar al de phong
y phong_size
para crear brillos que alteran la brillantez aparente
de la superficie. Probemos el brillo especular en nuestra esfera.
sphere { <0,0,0>, 1 pigment { Gray50 } finish { ambient .2 diffuse .6 specular .75 roughness .1 } }
Viendo el resultado vemos un brillo amplio y suave similar al que obtuvimos
cuando usamos un phong_size
de 25. Cambiemos roughness
a .001 y generemos nuevamente. Ahora vemos un brillo pequeño más definido, parecido
al que obtuvimos con phong_size
a 150. Generalmente, el brillo
especular es más preciso y por ello levemente más realista que el brillo phong,
pero deberías probar ambos métodos al diseñar una textura. Hay incluso ocasiones
en que, tanto el brillo phong como el especular, pueden ser usados en un mismo
acabado.
Existe otro parámetro de superficie que va de la mano con los brillos, la
reflexión
. Las superficies
que son muy brillantes generalmente tienen un grado de reflexión. Veamos un ejemplo.
sphere { <0,0,0>, 1 pigment { Gray50 } finish { ambient .2 diffuse .6 specular .75 roughness .001 reflection { .5 } } }
Observamos que ahora nuestra esfera refleja el plano a cuadros verde y blanco
y el fondo negro, pero el color gris de la esfera parece fuera de lugar. Éste es otro caso donde un valor bajo de luz difusa es necesario.
Generalmente, cuanto más alto es el valor de reflection
, más bajo
debe ser el valor de diffuse
.
Bajamos el valor de la luz difusa a 0.3 y el ambiente a 0.1 y generamos la imagen
nuevamente. Así esta mucho mejor. Ahora hagamos que nuestra esfera sea
tan brillante y pulida como una cuenta de oro.
sphere { <0,0,0>, 1 pigment { BrightGold } finish { ambient .1 diffuse .1 specular 1 roughness .001 reflection { .75 } } }
Eso se acerca pero hay algo que no anda muy bien, el color del reflejo y
del brillo. Para hacer que la superficie se asemeje más a un metal se utiliza
el identificador metallic
.
Añadámoslo para ver la diferencia.
sphere { <0,0,0>, 1 pigment { BrightGold } finish { ambient .1 diffuse .1 specular 1 roughness .001 reflection { .75 metallic } } }
La reflexión posee más del color dorado que del color de sus alrededores. El último detalle, el brillo. Agregamos otra instancia del identificador metallic, esta vez al bloque del acabado (finish) y no dentro del bloque de reflexión.
sphere { <0,0,0>, 1 pigment { BrightGold } finish { ambient .1 diffuse .1 specular 1 roughness .001 metallic reflection { .75 metallic } } }
Vemos que el brillo ha tomado el color de la superficie en lugar del de la fuente de luz. Esto hace que la superficie tenga una apariencia más metálica.
Iridiscencia es lo que vemos en la superficie de una capa de aceite
cuando el sol brilla sobre ella. El efecto de arco-iris es creado por algo llamado
interferencia de película fina
(lea la sección "Iridiscencia" para
más detalles). Por ahora sólo tratemos de usarla. La iridiscencia se especifica
mediante la declaración de irid
y tres valores: amount (cantidad), thickness
(espesor) y turbulence
(turbulencia).
La cantidad es la contribución al color total de la superficie. Usualmente
de 0.1 a 0.5 es suficiente.
El espesor afecta la "concurrencia" del efecto. Mantenga esto entre
0.25 y 1 para tener buenos resultados. La turbulencia es un poco diferente a la
turbulencia de los pigmentos o normales. No podemos especificar octavas
,
lambda
u omega
pero sí podemos especificar un valor
que afectará el espesor de manera un tanto diferente al identificador
thickness
. Los valores entre 0.25 y 1 son los que funcionan mejor
aquí también. Finalmente, la iridiscencia responde a la normal de la
superficie ya que depende del ángulo de incidencia de los rayos de luz que
llegan a ésta. Con todo esto en mente, agreguemos un poco de iridiscencia a
nuestra esfera de vidrio.
sphere { <0,0,0>, 1 pigment { White filter 1 } finish { ambient .1 diffuse .1 reflection .2 specular 1 roughness .001 irid { 0.35 thickness .5 turbulence .5 } } interior{ ior 1.5 fade_distance 5 fade_power 1 caustics 1 } }
Podemos cambiar los valores de amount, thickness y turbulence para ver qué variaciones causan. También podemos probar añadiendo un bloque de normal
y observar qué ocurre.
|