Primitivas
En VRML existe una serie de objetos predefinidos que forman el conjunto de
primitivas de geometría. Estas primitivas son:
- Box (paralelepípedos genéricos: cubos, cajas)
- Sphere (esfera)
- Cone (cono)
- Cylinder (cilindro)
Cada una de estas primitivas es un node.
El node Shape
Para poder visualizar estas primitivas, es necesario utilizar el node
Shape. Este node tiene dos fields: geometry
y appearance. El segundo lo veremos en el apartado siguiente
(Materiales I).
El field geometry es donde se
especifica la geometría de algún objeto 3D. Es a través de este field
que se especifican las primitivas. A continuación se muestra como definir cada
una de las primitivas existentes:
Box:
Shape { geometry Box { size 4 3 5 }
} |
Aquí definimos una caja de 4 unidades de ancho, 3 de alto y 5 de fondo (size
4 3 5). Si quisiéramos definir un cubo perfecto de 10 unidades por
lado, pondríamos las tres cifras iguales a 10 (size 10 10 10).
(NOTA: Al visualizar el ejemplo vemos una masa de color gris uniforme debido
a que aún no hemos definido un material para el objeto. Esto lo veremos en el
apartado siguiente).
El objeto queda definido de forma que su centro
coincide con el origen de coordenadas locales, y que en este caso, como no se han
aplicado transformaciones, coincide también con el origen de coordenadas
globales o de mundo.
Sphere:
Shape { geometry Sphere { radius 5 }
} |
Aquí definimos una esfera de 5 unidades de
radio (radius 5). También queda centrada en el origen de
coordenadas.
Cone:
Shape { geometry Cone {
bottomRadius 3
height 2
}
} |
Aquí definimos un cono con una base de 3
unidades de radio (bottomRadius 3) y una altura de 2 unidades (height
2). También queda centrado en el origen de coordenadas.
Cylinder:
Shape { geometry Cylinder {
radius 4
height 5
}
} |
Aquí definimos un cilindro con una base de 4 unidades de radio (radius
4) y una altura de 5 unidades (height 5). También queda
centrado en el origen de coordenadas.
Materiales
Para definir una apariencia de nuestras primitivas (y en general de todos
los objetos) debemos definir un color o una textura a aplicar a su superficie.
En este apartado tan solo veremos cómo definir un color y dejaremos la
definición completa de texturas para un módulo posterior.
Así pues, tal y como hemos visto arriba, el node Shape dispone
de un field llamado appearance donde definiremos
las características del material del objeto. Y para hacerlo utilizaremos el node
Appearance de VRML.
Este node tiene diversos fields pero de momento sólo nos
concentraremos en su field material. Para definir este field
debemos utilizar el node Material. Aquí también sólo nos
concentraremos en un field de este node: el field
diffuseColor, que hace referencia al color que refleja el objeto, es
decir, el color del objeto.
Tal y como hemos visto en el módulo "Ejes
y Unidades", los colores en VRML se definen en RGB (Red-Green-Blue o
Rojo-Verde-Azul). Los valores de R, G y B deben estar dentro del rango [0,1].
Veamos un ejemplo:
Ejemplo1: Queremos definir la caja de antes de color rojo
(RGB = [1,0,0]).Shape { geometry Box { size 4 3 5 }
appearance Appearance {
material Material {
diffuseColor 1 0 0
}
}
} |
Como se puede apreciar, la caja que antes no se distinguía por el hecho de
no tener una apariencia asignada que le confiriera características de
superfície, ahora se ve claramente y del color rojo que hemos definido.
Otro ejemplo:
Ejemplo2: Queremos definir el cilindro de antes, de color
cian (azul claro) (RGB = [0,1,1]).Shape { geometry Cylinder {
radius 4
height 5
}
appearance Appearance {
material Material {
diffuseColor 0 1 1
}
}
} |
No hay comentarios:
Publicar un comentario
Gracias por participar en esta página.