|
A las fuentes de luz se les puede asignar la palabra clave shadowless
y no se proyectarán sombras debido a su presencia en la escena.
Algunas veces las escenas son difíciles de iluminar usando adecuadamente
las luces que hemos elegido para iluminar nuestros objetos. No es práctico
ni realista aplicar un valor alto de ambient a la textura de cada objeto
de nuestra escena. En su lugar, podríamos colocar un par de fill
lights (luces de relleno) alrededor de la escena. Las luces de relleno,
son simplemente luces de poca intensidad con la palabra reservada shadowless que actúan para incrementar la iluminación de zonas de
la escena que podrían no estar muy bien iluminadas. Probémoslo
usando una en nuestra escena.
¿Recuerdas las tres luces de color puntuales de superficie? Volvamos a ellas, quitémosle los comentarios y comentemos el resto de las fuentes. Añadamos lo siguiente:
light_source {
<0, 20, 0>
color Gray50
shadowless
}
Ésta es una bonita luz de poca intensidad situada a 20 unidades sobre el
centro de nuestra escena. Le dará una ligera iluminación
a todos los objetos de nuestra escena, incluyendo al plano de la parte
posterior. Tracémosla y veamos.
Las fuentes de luz son invisibles. Son sólo una posición
desde donde la luz se emite. Ellas no tienen tamaño real o forma.
Si nosotros queremos que nuestra fuente de luz tenga una forma visible,
podemos usar el comando looks_like. Podemos especificar que nuestra
fuente de luz se parezca a cualquier objeto que elijamos. Cuando usamos
la palabra looks_like, la sentencia no_shadow es aplicada al objeto automáticamente.
Esto se hace para evitar que el objeto bloquee cualquier iluminación
proveniente de la fuente de luz. Si queremos que ocurra un bloqueo (como
en una lámpara apantallada), es mejor y más simple usar una
unión para hacer lo mismo. Añadamos tales objetos a nuestra
escena. Aquí tenemos una bombilla creada para este propósito:
#declare Lightbulb = union {
merge {
sphere { <0,0,0>,1 }
cylinder {
<0,0,1>, <0,0,0>, 1
scale <0.35, 0.35, 1.0>
translate 0.5*z
}
texture {
pigment {color rgb <1, 1, 1>}
finish {ambient .8 diffuse .6}
}
}
cylinder {
<0,0,1>, <0,0,0>, 1
scale <0.4, 0.4, 0.5>
texture { Brass_Texture }
translate 1.5*z
}
rotate -90*x
scale .5
}
Le añadimos la fuente de luz:
light_source {
<0, 2, 0>
color White
looks_like { Lightbulb }
}
Trazando la escena, veremos que ahora una bombilla con apariencia
bastante realista ilumina la escena. Sin embargo, si nosotros no especificamos
un valor alto de ambient la bombilla no estará iluminada por la
fuente de luz. Por otro lado, todas las sombras provienen de la bombilla,
justamente como sería en una situación real. Las sombras
son marcadas, así que convirtamos nuestra bombilla en un área de
luz:
light_source {
<0, 2, 0>
color White
area_light <1, 0, 0>, <0, 1, 0>, 2, 2
adaptive 1
jitter
looks_like { Lightbulb }
}
Apreciamos que hemos situado esta área de luz en el plano x-y en lugar
del plano x-z. También notamos que la apariencia actual de la bombilla
no se ve afectada de ninguna manera por la fuente de luz. La bombilla debe
ser iluminada por alguna otra fuente de luz o, como en este caso, proporcionar
un valor alto de ambient .
Si lo que queremos es realismo, no lo sería que un plano esté
iluminado hasta el horizonte. En la vida real, la luz se dispersa a medida
que se propaga y disminuye su capacidad de iluminar los objetos según
van estando más alejados de la fuente de luz. Para simular esto,
Pov-Ray usa las siguiente dos palabras claves: fade_distance,
la cual nos permite especificar la distancia hasta la cual la iluminación
es plena, y fade_power, un valor exponencial que determina la
proporción real de la atenuación. Apliquemos estas sentencias
a nuestra luz de relleno.
Primero, hagamos nuestra luz de relleno un poco más brillante
cambiando Gray50 por Gray75. Cambiemos la luz de relleno
como sigue:
light_source {
<0, 20, 0>
color Gray75
fade_distance 5
fade_power 1
shadowless
}
Esto significa que el valor completo de nuestra luz de relleno llegará
hasta una distancia de 5 unidades desde la fuente de luz. El valor fade_power
de 1 significa que la atenuación será lineal (la luz decaerá
con un valor constante). Tracemos esto para ver el resultado.
¡Esto funciona!. Probemos un fade_power de 2 y una fade_distance de 10 . De nuevo, esto funciona bien. La atenuación es más rápida con un fade_power de 2 por ello incrementamos el valor de fade_distance a 10.
|