POV-Ray

Hace muchos años (muchos más de los que pensáis 😉 ) me pasaba las horas trasteando con el programa POV-Ray. Esto coincidió más o menos con la aparición de la versión 3.0 en el verano de 1997, en pleno apogeo del Duke Nukem 3D, y aunque las versiones no han avanzado demasiado desde entonces (van por la 3.6) POV-Ray sigue de plena vigencia. De aquella época incluso guardo recortes de alguna revista PC-Manía en la que publicaron alguna cosa realizada por mí y que supongo que algún día escanearé y compartiré con vosotros.

Antes de nada os voy a hablar un poco sobre POV-Ray, pues a más de uno le sonará a nombre de personaje de Star Trek o similares. POV-Ray es en realidad un lenguaje de creación de escenas tridimensionales que son compiladas gracias al programa que nosotros instalamos en nuestro ordenador, que está disponible en multitud de plataformas (Windows, Linux y MacOS) y que podeis descargar de forma completamente gratuíta.

Precisamente sus siglas vienen de «Persistance Of Vision Raytracer», significando la palabra Raytracer «trazador de rayos», que es el método que emplea el programa para calcular las escenas. Como ya sabréis vemos las cosas gracias a que la luz se refleja en ellas y esos rayos de luz llegan a nuestras retinas. Pues bien, POV-Ray funciona a la inversa: calcula cómo es el punto que vería uno de los «pixels» de nuestras retinas a través de complejos cálculos matemáticos que quedan fuera del ámbito de esta entrada.

El lenguaje de POV-Ray consiste en una descripción de los elementos de la escena a través de una serie de funciones para tratar la cámara, las luces, los objetos (que se crean a través de primitivas como cubos, esferas, elipsoides, SORs… y operaciones booleanas entre ellas), las texturas de los elementos, la atmósfera… Todo esto va en un archivo ASCII con extensión .pov que es lo que el programa que genera las escenas (un compilador al fin y al cabo) entiende y traduce en un fichero de imagen.

Para entender un poco mejor de qué va el tema os voy a colocar a continuación el código de una escena muy simple y a continuación el resultado que se obtiene una vez que se ha renderizado (palabra que se usa para definir la creación de la imagen final):

————————————————————————————————————————

#version 3.6;

#include «colors.inc»

global_settings {
assumed_gamma 1.0
max_trace_level 5
}

camera {
location <0.0, 0.5, -4.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0>
}

sky_sphere {
pigment {
gradient y
color_map {
[0.0 rgb <0.6,0.7,1.0>]
[0.7 rgb <0.0,0.1,0.8>]
}
}
}

light_source {
<0, 0, 0> // light’s position (translated below)
color rgb <1, 1, 1> // light’s color
translate <-30, 30, -30>
}

plane { // checkered floor
y, -1
texture
{
pigment {
checker
color rgb 1
color rgb 0
scale 0.5
}
finish{
diffuse 0.8
ambient 0.1
}
}
}

sphere { // reflective sphere
0.0, 1
texture {
pigment {
color rgb <0.8,0.8,1.0>
}
finish{
diffuse 0.3
ambient 0.0
specular 0.6
reflection {
0.8
metallic
}
conserve_energy
}
}
}

————————————————————————————————————————

Como podéis ver, la filosofía del lenguaje POV se basa en la descripción de los elementos de la escena, la texturización de los mismos y la inclusión de la cámara (imprescindible, claro) y las fuentes de luz así como de otras variables de entorno.

La fuerza de POV-Ray reside en que sus escenas no están basadas en mallas de triángulos, puesto que al ser elementos definidos de forma matemática podríamos renderizar una imagen a 80000 * 60000 pixels y tener un nivel de detalle en las texturas y en las formas de los objetos absolutamente alucinante.

Me estoy empezando a extender demasiado y no es eso lo que pretendía, así que os voy a comentar un par de cosillas interesantes y voy a dejar ya el tema para continuarlo en una posible futura entrada:

Para aquellos a los que el lenguaje POV les tire un poco para atrás (hay que reconocer que es un poco complejo y se parece al lenguaje de programación C) existe una alternativa llamada Moray que consiste en un editor al estilo del 3D-Studio con las tres vistas clásicas de diseño tridimensional y que exporta el resultado de la imagen creada a un archivo .pov ya que, como habréis podido imaginar, una de las principales complejidades del lenguaje de POV-Ray es que la imagen hay que irla «visualizando en la cabeza» a medida que la creamos.

Hasta ahora Moray era un programa shareware que tras 30 días había que registrar para continuar usándolo, pero recientemente ha aparecido la noticia de que ahora Moray ha sido adquirido por POV-Ray y por lo tanto es completamente gratuíto. Hasta que aparezca una nueva versión en la página del programa en la página oficial nos indican que tras descargarlo introduzcamos el siguiente identificador y código para disfrutar del programa sin ningún tipo de restricciones:

Name: POV-Ray User

Code: BFDDE769

Bueno, después de todo el rollo que os he soltado hoy espero que a alguno de vosotros le haya picado la curiosidad con todo esto y le de una oportunidad a POV-Ray porque de verdad que es un programa muy entretenido, educativo y que con un poco de dedicación consigue resultados muy vistosos.

¡Un saludo! 🙂

3 pensamientos en “POV-Ray

  1. hola, me puedes decir como se hace eso? quiero decir.. se necesita cual programa??? que más? para que?

    he visto este blog gracias a lo de las gafas polarizadas jeje, oye yo soy deportista, me recomiendas las polarizadas, no me gusta gastar mucho en este tipo de cosas.

    el blog muy chulo, un saludo y adelante.

    Me gusta

  2. ¡Hola!

    Pues si eres usuario de Windows no necesitas más que el programa Pov-Ray que te puedes bajar gratuitamente de su web http://www.povray.org , pues en dicha versión viene integrado un editor de código y en la ayuda tienes todo lo necesario para aprender el lenguaje de programación. Supongo que en el resto de las versiones será igual, pero no lo sé seguro porque no las he probado.

    Por cierto, con respecto a las gafas polarizadas para hacer deporte, yo las he usado y van bien, pues te evitan el molesto reflejo del sol en el asfalto al salir a correr a primera y última hora del día.

    Un saludo y muchas gracias por tu comentario 🙂

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.