|
Giramos el objeto en forma de lente sobre el eje Y para que el lado curvo esté orientado hacia la cámara.
intersection{ sphere { <0, 0, 0>, 1 translate -0.5*x } sphere { <0, 0, 0>, 1 translate 0.5*x } pigment { Red } rotate 90*y }
Ahora creamos un cilindro y lo situamos en el centro de la lente.
cylinder { <0, 0, -1> <0, 0, 1>, .35 pigment { Blue } }
Generamos la escena para ver la posición del cilindro y situaremos un bloque
"difference
" alrededor de la intersección anterior
y del nuevo cilindro que acabamos de insertar, tal que:
difference { intersection { sphere { <0, 0, 0>, 1 translate -0.5*x } sphere { <0, 0, 0>, 1 translate 0.5*x } pigment { Red } rotate 90*y } cylinder { <0, 0, -1> <0, 0, 1>, .35 pigment { Blue } } }
Generamos de nuevo la imagen y vemos que la lente tiene ahora un agujero en el centro, justo donde estaba el cilindro. El cilindro ha sido substraído de la intersección. Observe que el pigmento del cilindro se aplica a la superficie que ha sido restada de la lente. Si eliminamos este pigmento la superficie del agujero se verá de color negro -el color que POV-Ray asigna por defecto a los objetos hasta que se les asigna una textura.
Bueno, ahora vamos a por algo más arriesgado. Vamos a "declarar" nuestra lente perforada para darle un nombre. Además eliminaremos todas las texturas en el objeto declarado ya que las insertaremos en la unión final.
#declare Lente_Con_Agujero = difference { intersection { sphere { <0, 0, 0>, 1 translate -0.5*x } sphere { <0, 0, 0>, 1 translate 0.5*x } rotate 90*y } cylinder { <0, 0, -1> <0, 0, 1>, .35 } }
Usaremos una unión para crear una forma compleja compuesta por copias de este objeto.
union { object { Lente_Con_Agujero translate <-.65, .65, 0> } object { Lente_Con_Agujero translate <.65, .65, 0> } object { Lente_Con_Agujero translate <-.65, -.65, 0> } object { Lente_Con_Agujero translate <.65, -.65, 0> } pigment { Red } }
Generemos la escena. Un interesante objeto, por cierto. Pero vamos a hacer algo aún más arriesgado. Convirtámoslo en un objeto semi-transparente añadiendo algo de filtro al bloque de pigmento.
union { object { Lente_Con_Agujero translate <-.65, .65, 0> } object { Lente_Con_Agujero translate <.65, .65, 0> } object { Lente_Con_Agujero translate <-.65, -.65, 0> } object { Lente_Con_Agujero translate <.65, -.65, 0> } pigment { Red filter .5 } }
Generamos el fichero de nuevo. ¿notan cómo se pueden ver partes de las lentes dentro de la unión? Solución: página siguiente.
|