POV-Ray: Formas basicas (sphere, box, cone, cylinder, plane, torus)
6 May 2011 9 comentarios
Ilustracion de la sintaxis de las formas basicas de POV-Ray (sphere, box, cone, cylinder, plane, torus). Como actualmente llevo la materia de Graficacion y en nuestro grupo vamos a usar POV-Ray para modelar todo lo aprendido pues en esta casion quiero mostrar la sintaxis basica de las 6 formas mas basicas de POV-Ray; la esfera, el cubo, el cono, el cilindro, los 3 planos X,Y,Z y el toroide. Tambien muestro un ejemplo de codigo y doy por hecho que ya te has descargado e instalado el software, sino es asi Aqui puedes empezar http://www.povray.org/download/.
Una introduccion rapida: Los programas como POV-Ray (trazadores de rayos) son programas que permiten definir escenas con una camara simulada (camara sintetica), figuras geometricas y fuentes de luz (algo asi como focos de luz del color que nosotros deseemos) para hacer todo esto se utiliza un lenguaje de script para definir toda la escena. Al indicarle al programa que interprete (renderize) el mismo software dibuja y calcula donde inciden los rayos de luz sobre los objetos (ya no digo mas porque se pierde el objetivo de esta entrada de blog). Yo tengo instalada la version 3.6.1 de POV, como se muestra en la siguiente imagen:
Voi a ir mostrando primeramente la sintaxis de cada figura y a continuacion un ejemplo de codigo en POV-Ray seguido de la imagen que se genera, por pasos, empezamosss…
1.- OBJETO ESFERA (sphere)
Esta figura basicamente se define especificando las coordenadas del centro de la esfera y el tamaño del radio como se observa en la siguiente imagen:
Ejemplo de codigo fuente en POV-Ray:
-
/*
-
Descripcion: Posicion de la camara, dibujo de una esfera y creacion de una fuente de luz
-
Author: Gonzalo Silverio
-
Archivo: practica1.pov
-
Tutorial PovRay: 3.1.6 Definiendo una fuente de luz
-
*/
-
#include «colors.inc»
-
//Definicion de la camara sintetica
-
camera {
-
location <5,2,–4>
-
look_at <0,1,2>
-
}
-
// Definicion del objeto esfera
-
sphere {
-
<0,1,2>,1.5
-
texture{
-
// OTRAs FORMAS DE DEFINIR EL COLOR
-
//pigment {color Yellow}
-
//pigment {color red 0.5 green 0.8 blue 0.8}
-
//pigment { color rgb<0.5,0.8,0.8> }
-
pigment { rgb<0, 0, 1> }
-
}
-
}
-
//fuente de luz
-
light_source {<2,4,–4> color White }
En el codigo anterior se puede onbservar que en la linea 15 se a definido una esfera en las coordenadas 0 en X, 1 en Y y 2 en Z. La Imagen de la Escena que se genera es esta:
2.- OBJETO CAJA (box)
Una caja es una especie de cubo. Para definir un box (caja) se hace especificando dos coordenadas; la primera coordenada es la de una esquina de la caja y la otra coordenada es la otra esquina opuesta a la primera, en la siguiente imagen e puesto dos ejemplos para que esto quede mas claro. Se puede utilizar cualquiera esquinas para definir la caja.
Ejemplo de codigo fuente en POV-Ray:
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto Box (caja)
-
Author: Gonzalo Silverio
-
Archivo: practica2.pov
-
Tutorial PovRay: 3.2.1 Objeto Caja (Box)
-
*/
-
#include «colors.inc»
-
#include «stones.inc»
-
//posicion de la camara sintetica
-
camera {
-
location <8,8,–8>
-
look_at <2,2,–2>
-
}
-
//Definicion de un objeto caja
-
box {
-
<0,0,0>,
-
<4,4,4>
-
texture{
-
T_Stone25
-
//Escalar la textura
-
scale 19
-
}
-
//rotate <0,20,0> //Rotar 20 grados respecto a eje Y
-
//El sentido de los giros se hacen usando la regla de la mano izquierda
-
rotate y*-15 //-15 grados en y
-
rotate z*30 //30 grados en z
-
}
-
// fuente de luz
-
light_source {
-
<6,6,–8> color rgb <0.5,1,0.8>
-
}
Como se ve en el codigo de POV-Ray he definido una caja con una esquina en el origen del sistema de coordenadas 3D (0,0,0, linea 17) y la otra esquina con 4 unidades en X, 4 en Y, y 4 unidades positivas en Z (linea 18). Ademas, le e asigando una textura estilo tipo roca (stone, linea 20), dicha textura la e escalado 19 unidades (linea 22) y por tambien e rotado la caja en Y y en Z (linea 26 y 27). La Imagen de la Escena que se genera es esta:
3.- OBJETO CONO (cone)
Un objeto cono se define en POV-Ray especificando las coordenadas del centro de sus dos extremos y sus respectivos radios como lo e indicado en la siguiente imagen. La palabra ‘open’ en gris se puede omitir; si esta palabra no esta el cono TIENE tapas, si esta palabra se pone entonces el cono NO TIENE tapas en sus extremos (esta abierto).
Si deseamos que alguno de los extremos termine en pico, entonces en uno de sus extremos indicamos un R=0 depende de donde deseamos el pico; como se observa en la siguiente imagen:
Ejemplo de codigo fuente en POV-Ray con un cono al cual se le quitan las tapas (open):
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto cone (cono)
-
Author: Gonzalo Silverio
-
Archivo: practica3.pov
-
Tutorial PovRay: 3.2.2 Objeto Cono
-
*/
-
#include «colors.inc»
-
#include «stones.inc»
-
//Posicion de la camara sintetica
-
camera {
-
location <8,8,–8>
-
look_at <0,0,2>
-
}
-
// Definicion del objeto cono
-
cone {
-
<4,0,0>,1
-
<4,5,–3>,1.2
-
open //quitar tapas (abierto)
-
texture {
-
pigment { color rgb <0.6,0.4,1> }
-
}
-
}
-
//posicion de fuente de luz 1
-
light_source {<4,5,–6> color White }
-
//otra fuente de luz 2
-
light_source {<8,5,6> color White }
Como se observa en el codigo he definido un cono con extremo en las coordenadas 4 unidades en X, o en Y y 0 en Z; el tamaño del radio es de una unidad. El otro extremo esta igual 4 unidades en X, 5 unidades arriba en Y y -3 unidades en Z. Recordemos que la unidades positivas en X ‘entran’ en el plano 3D y las coordenas negativas ‘salen’ del plano; es por esto que el cono se ve como se estuviera inclinado hacia nosotros en el plano. En realidad tambien podemos definir un cilindro con el objeto cone; basta con definir el mismo radio en ambos extremos. La Imagen de la Escena que se genera es esta:
4.- OBJETO CILINDRO (cylinder)
La sintaxis del objeto cilindro es casi identica a la del objeto cono con la diferencia de que solamente se especifica un radio debido a que un cilindro tiene el mismo radio en ambos extremos (si fueran diferentes pasaria a ser un cono, jejejejj). A continuacion una imagen que aclara todo:
Nuevamente la palabra clave ‘open’ quita las tapas del cilindro.
Ejemplo de codigo fuente en POV-Ray que muestra un cilindro color gris:
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto cylinder (cilindro) para dibujar los ejes X,Y,Z
-
Author: Gonzalo Silverio
-
Archivo: practica4.pov
-
Tutorial PovRay: 3.2.3 Objeto Cilindro
-
*/
-
#include «colors.inc»
-
//Posicion de la camara sintetica
-
camera {
-
location <10,10,–10>
-
look_at <0,–5,0>
-
}
-
//Definicion del objeto cilindro
-
cylinder {
-
<6,0,–3>,
-
<5,4,–3>,
-
0.5
-
pigment { color rgb<1,1,1> }
-
}
-
//A CONTINUACION SE VAN A DIBUJAR LOS 3 EJES TRIDIMENSIONALES
-
//Dibujar el eje X
-
cylinder {
-
<0,0,0>,
-
<20,0,0>,
-
0.1
-
pigment { color Green}
-
}
-
//Dibujar el eje Y
-
cylinder {
-
<0,0,0>,
-
<0,20,0>,
-
0.1
-
pigment { color Green }
-
}
-
//Dibujar el eje Z
-
cylinder {
-
<0,0,0>,
-
<0,0,–20>,
-
0.1
-
pigment {color Green }
-
}
-
// fuente de luz
-
light_source { <8,6,–6> color White }
Como se observa en el codigo e puesto la camara sintetica 10 unidades lejos del origen y he definido 3 cilindros de 20 unidades de largo en cada eje y un radio muy pequeño. Si alejaramos la camara por ejemplo a 30 unidades lejos del origen se veria donde terminan los cilindros pero la e puesto cerca para que esto de la impresion de los ejes X,Y y Z. La Imagen de la Escena que se genera es esta:
5.- OBJETO PLANO (plane)
Un plano en POV-Ray yo lo veo como un piso o techo (plano y) o como una pared (plano X y Z). Como se observa en la siguiente imagen hay dos maneras de especificar un plano; uno es con la sintaxis de vectores < , , >; mas claro para definir el plano X se hace con el vector <1,0,0>, para definir el plano Y se hace con el vector <0,1,0> o para definir el plano Z se hace con el vector <0,0,1>. Para abreviar esto; los desarrolladores de POV-Ray crearon un identificador para cada vector de tal modo que hay 3 identificadores llamados x,y y z. Ademas de especificar el plano se debe especificar un desplazamiento del plano en sistema de coordenadas, para el caso del plano X el desplazamiento es hacia la derecha (+) o a la izquierda (-), para el caso del plano Y el desplamiento es hacia arriba (+) o hacia abajo (-) y por ultimo para el caso del plano Z el desplamiento es hacia adentro (+) o hacia afuera (-). Una imagen dice mas que 1000 palabras:
Ejemplo de codigo fuente en POV-Ray que muestra el plano Y (agredrezado):
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto plane (plano)
-
Author: Gonzalo Silverio
-
Archivo: practica5.pov
-
Tutorial PovRay: 3.2.4 Objeto Plano
-
*/
-
#include «colors.inc»
-
//Posicion de la camara sintetica
-
camera {
-
location <12,12,–12>
-
look_at <0,0,0>
-
}
-
//Mostrar el plano de X
-
/*
-
plane {
-
<1,0,0>,-1
-
//x,-1 Otra forma de definir este plano
-
pigment {
-
//checker color Red, color Blue
-
color White
-
}
-
}
-
*/
-
//Mostrar el plano de Y
-
plane {
-
y,–1
-
//<0,1,0>,-1 Otra forma de definir este plano
-
pigment {
-
checker color Red, color Yellow
-
}
-
}
-
//Mostrar el plano de Z
-
/*
-
plane {
-
<0,0,1>,1
-
//z,1 Otra forma de definir este plano
-
pigment {
-
checker color Red, color White
-
}
-
}
-
*/
-
//A CONTINUACION SE VAN A DIBUJAR LOS 3 EJES TRIDIMENSIONALES
-
//Dibujar el eje X
-
cylinder {
-
<0,0,0>
-
<20,0,0>
-
0.1
-
pigment { color Green }
-
}
-
//Dibujar el eje Y
-
cylinder {
-
<0,0,0>
-
<0,20,0>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
//Dibujar el eje Z
-
cylinder {
-
<0,0,0>
-
<0,0,–20>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
//fuente de luz
-
light_source {
-
<4,4,–6> color White
-
}
-
//otra fuente de luz
-
light_source {
-
<0,3,–3> color White
-
}
Como ves; con agredrezado me refiero a que el plano esta formado por dos colores que se repiten en forma de cuadros dando la impresion de lejania o cercania. La Imagen de la Escena que se genera es esta si se ve como un piso ¿o no?:
…Si descomentamos las lineas 19-26 para mostrar el plano X y el codigo que muestra el plano del eje Z (lineas 39-46), el codigo se veria asi:
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto plane (plano)
-
Author: Gonzalo Silverio
-
Archivo: practica5.pov
-
Tutorial PovRay: 3.2.4 Objeto Plano
-
*/
-
#include «colors.inc»
-
//Posicion de la camara sintetica
-
camera {
-
location <12,12,–12>
-
look_at <0,0,0>
-
}
-
//Mostrar el plano de X
-
plane {
-
<1,0,0>,–1
-
//x,-1 Otra forma de definir este plano
-
pigment {
-
//checker color Red, color Blue
-
color White
-
}
-
}
-
//Mostrar el plano de Y
-
plane {
-
y,–1
-
//<0,1,0>,-1 Otra forma de definir este plano
-
pigment {
-
checker color Red, color Yellow
-
}
-
}
-
//Mostrar el plano de Z
-
plane {
-
<0,0,1>,1
-
//z,1 Otra forma de definir este plano
-
pigment {
-
checker color Red, color White
-
}
-
}
-
//A CONTINUACION SE VAN A DIBUJAR LOS 3 EJES TRIDIMENSIONALES
-
//Dibujar el eje X
-
cylinder {
-
<0,0,0>
-
<20,0,0>
-
0.1
-
pigment { color Green }
-
}
-
//Dibujar el eje Y
-
cylinder {
-
<0,0,0>
-
<0,20,0>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
//Dibujar el eje Z
-
cylinder {
-
<0,0,0>
-
<0,0,–20>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
//fuente de luz
-
light_source {
-
<4,4,–6> color White
-
}
-
//otra fuente de luz
-
light_source {
-
<0,3,–3> color White
-
}
Y la Imagen de la Escena que se genera es esta:
6.- OBJETO TOROIDE (torus)
Y ya por ultimo la forma basica de POV-Ray que quiero mostrar es esta. El Toroide es una figura muy parecida a una rosquilla o ‘donita’. Creo que es la que tiene la sintaxis mas facil de todas las demas; pues solo se define especificando su radio externo y un espesor o grosor como lo he indicado en la siguiente imagen:
Ejemplo de codigo fuente en POV-Ray que muestra un toroide con centro en el origen y desplazado 2 unidades arriba en el je Y:
-
/*
-
Instituto Tecnologico de Zacatepec, Mor.
-
Descripcion: Uso del objeto torus (toroide)
-
Author: Gonzalo Silverio
-
Archivo: practica6.pov
-
Tutorial PovRay: 3.2.5 Objeto Toroide
-
*/
-
#include «colors.inc»
-
camera {
-
location <12,12,–12>
-
look_at <0,0,0>
-
}
-
torus { 4, 1 // radio externo y grosor del toro
-
translate 2*y //Trasladar 2 unidades en eje Y
-
pigment { Blue }
-
}
-
//A CONTINUACION SE VAN A DIBUJAR LOS 3 EJES TRIDIMENSIONALES
-
//Dibujar el eje X
-
cylinder {
-
<0,0,0>
-
<20,0,0>
-
0.1
-
pigment { color Green }
-
}
-
//Dibujar el eje Y
-
cylinder {
-
<0,0,0>
-
<0,20,0>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
//Dibujar el eje Z
-
cylinder {
-
<0,0,0>
-
<0,0,–20>
-
0.1
-
texture
-
{
-
pigment { color Green }
-
}
-
}
-
light_source {
-
<6,6,–6> color White
-
}
La Imagen de la Escena que se genera es esta:
Uff al fin acabe, sinceramente si me tarde en acabar esta entrada del blog y ps espero que a alguien le sirva. Como siempre; si estas interesado en el codigo fuente basta con dejar tu e-mail para que te lo envie. Suerte !!
Comentarios recientes