|
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.
|