Es bonito usar un simple editor de textos para crear un universo de objetos. Con Povray en GNU/Linux es posible hacerlo.
Hace tiempo que Povray está disponible para GNU+Linux y eso es buena cosa. Me enteré de esto en un taller de Zenvoid y flipé tanto que me ví abocado a tener que escribir los primeros pasos y compartirlos.
Espero les guste y les sirva para iniciarse en la scene del povray. Una scene que aún sigue viva y que ha gozado en los años 90 de mucha creatividad.
Instalación en Debian
La scene de Povray sigue viva. Existe gente haciendo renderizados con scripts.
# apt-get install povray povray-examples povray-includes
Eso instalará povray con ejemplos en /usr/share/doc/povray/examples/
Ejemplos que podemos copiarnos a un directorio en nuestro home por si queremos mirar un poco:
cp -pRv /usr/share/doc/povray/examples /home/fanta/tmp/
Un sencillo tutorial en inglés se puede ver aquí: www.povray.org/documentation/3.7.0/t2_2.html#t2_2
Coordenadas
Esto es como en todo. Las coordenadas serán X para el ancho, Y para la altura y Z para la profundidad. De esta forma podemos entender e imaginar el escenario.
Mi primer render con povray en GNU/Linux
Vamos a colocar una cámara, una esfera y una luz y todo con un simple editor de textos (nano, vi, emacs, geany, joe, …).
Lo primero es abrir el editor, en mi caso voy a usar nano pero tu puedes usar el que te de la real gana y sentirte superior:
$ nano esfera.pov
Una vez estamos dentro del archivo esfera.pov añadimos estos includes:
#include "colors.inc" // The include files contain
#include "stones.inc" // pre-defined scene elements
#include "textures.inc" // pre-defined scene elements
#include "shapes.inc"
#include "glass.inc"
#include "metals.inc"
#include "woods.inc"
No vamos a usarlos todos pero no pasa nada por dejarlos allí. Ahora vamos a elegir el color de fondo de la escena y eso es añadiendo esto:
background { color Black }
Cuidado que si pones blue tiene que ser así Blue no blue. Ahora vamos a colocar un objeto en el centro del universo <0,0,0>
sphere {
<0, 0, 0>, 1
texture {
pigment { color White }
}
}
El objeto es una esfera de tamaño 1. Esta en las coordenadas x0 y0 z0 Tiene una textura de pigmento blanco. No te ilusiones que no vas a ver nada aún.
Nos falta añadir una cámara:
camera {
location <0,0,-5>
look_at <0,0,0>
}
La posición (localización) de la cámara esta como ahora mismo tu cara frente al centro del monitor.
Sí el centro del monitor es <0,0,0> digamos que la cámara estaría más o menos por donde tu cara si lo miras de frente.
Está a -5 de profundidad y por tanto se verá la esfera que tiene un tamaño de 1. Si procesamos esto con povray veremos un simple circulo que no es del todo blanco.
Para ello añadimos una fuente de luz.
light_source { <2, 4, -3> color White}
La colocaremos un poco a la derecha, un tanto elevada y entre nuestra cara (la cámara z-5) y el objeto que esta en z0.
Ya podemos guardar. Si quieres copia esto entero en tu editor y guarda. En nano puedes guardar con control+o y luego para salir a la shell control+x
El código completo
Aquí va completo el código de la escena:
#include "colors.inc" // The include files contain
#include "stones.inc" // pre-defined scene elements
#include "textures.inc" // pre-defined scene elements
#include "shapes.inc"
#include "glass.inc"
#include "metals.inc"
#include "woods.inc"
background { color Black }
camera {
location <0,0,-5>
look_at <0,0,0>
}
sphere {
<0, 0, 0>, 1
texture {
pigment { color White }
}
}
light_source { <2, 4, -3> color White}
Ahora vamos a ejecutar povray y ver la escena:
povray esfera.pov
Durante nada de tiempo veremos el proceso de renderizado y se cierra. Se generará un png con el render.
Sí se desea otro tamaño de ancho y alto se puede hacer así:
povray +V +W800 +H600 prueba.pov
Cambiando el ancho (W) y el alto (H) por el que queramos.
Y eso es todo lo que deseaba compartir.
Saludos cordiales.