CURSO DE VRML 2.0

 Lic. Mirta Echeverría

[email protected]

Para La Web del Programador

 

Entrega Nº 3:

Color y Texturas

 

Apariencia y Materiales:

Muchos de Ustedes se preguntarán bueno pero y esto es realidad virtual. Unas figuras blancas? Y el Color y la Textura y el Sonido y la Interactividad ? Bueno, Bueno, despacio ya vamos llegando. Hoy comenzaremos a trabajar el tema de los colores.

Cada vez que vemos un objeto en el mundo virtual, está compuesto por dos tipos de información : su geometría (geometry) que habla de la forma del objeto: cúbica, esférica... mientras que material(material) cubre la información de las cualidades de la superficie de esa forma: color, brillo... Juntas definen el objeto visible.

Nodo Appearance:

Vimos en la entrega anterior las cuatro formas preconstruidas que tiene el lenguaje VRML. El nodo Shape tiene otro campo además del geometry que define su apariencia y se llama appearance, que define las cualidades de la superficie(aquí appearance es campo de Shape) pero Appearance como nodo tiene a su vez tres campos. Nosotros ya mencionamos en la tabla con los distintos tipos de datos, que había nodos que a su vez funcionaban como campos de otros, lo que permitía anidar y esto flexibizaba y aumentaba la potencia del VRML.

Appearance { # como nodo con mayúsculas tiene tres campos

material #SFNode

texture #SFNode

textureTransform #SFNode

}

Ahora nos centraremos en el campo material. En realidad el campo material convoca al Nodo material y este define la "pintura" que aplicamos a las formas. Este nodo Material especifica las cualidades de la superficie del objeto: color y luz.

Material { #como nodo contiene seis campos

ambientIntensity #SFColor (rango de 0 a 1)

diffuseColor #SFColor

emissiveColor #SFColor

shininess # SFFloat (rango de 0 a 1)

specularColor # SFColor

transparency # SFFloat (rango de 0 a 1)

}

Vamos a detenernos en cada uno de estos campos para poder diferenciarlos y aplicarlos correctamente. Luego con unos ejercicios se va a ver más claro, esta doble personalidad o doble uso de material como campo y Material como Nodo.

Estos campos que determinan el color y el brillo del objeto pueden incluirse u omitirse. El campo utilizado para establecer el color básico de una figura se denomina diffuseColor (difumar Color). Este campo debe especificar tres con números entre 0 y 1, que corresponden a la intensidad de rojo, verde y azul, que forman el color requerido. Tomamos como ejemplo la creación de un Sol, como queremos un Sol color amarillo, según la teoría del color (que vale también para el VRML) el amarillo se forma con rojo y verde. Como queremos un Sol muy brillante, vamos a saturar el color mediante el valor uno (el valor cero será lo opuesto a la saturación ya que proporciona el color negro).

Ejercicio N 4:

#VRML V2.0 utf8

Shape {

appearance Appearance {

material Material {

diffuseColor 1 1 0

}

}

geometry Sphere {

radius 10

}

}

Hay otros campos que podemos agregar a este Sol amarillo brillante. Si usamos el campo emissiveColor ( color de emisión) en lugar de diffuseColor, estamos definiendo la cantidad de color emitida desde la superficie del objeto y el sol irradiará luminosidad de inmediato. En realidad emissiveColor toma los mismos valores de rojo, verde y azul que diffuseColor pero su efecto es distinto como podemos ver en el siguiente ejemplo.

Ejercicio Nº 5:

#VRML V2.0 utf8

Shape {

appearance Appearance {

material Material {

diffuseColor 0 0 0

emissiveColor 1 1 0

}

}

geometry Sphere {

radius 10

}

}

Otros posibles campos son: shininess (brillantez), transparency (transparencia), ambientColor (Color ambiental) y specularColor (color especular o reflejos). Experimenta con los diversos componentes para observar los posibles resultados. El nodo Material te permite generar un amplio rango de efectos pues cualquiera de los campos puede utilizarse en combinación con otros o de manera individual.

Shininess y SpecularColor:

Los campos shininess (brillo de una zona) y specularColor (reflejos) están intimamente relacionados con los efectos que produce el reflejo de la luz sobre una superficie y su rebote hacia nosotros.

El siguiente ejercicio muestra una esfera roja con reflejos azules, lo que le dá un efecto anaranjado:

Ejercicio Nº 7:

#VRML V2.0 utf8

Shape {

appearance Appearance {

material Material {

diffuseColor 0.35 0.35 0.35#gris oscuro

specularColor 1 1 1 # reflejos claros

shininess 1 #brillo

}

}

geometry Box { size 10 0.1 10 }#debemos movernos para verla mejor

}

Si no queremos estos efectos de luces sobre un objeto dejamos el specularColor y el emissiveColor por defecto y su valor será 0 0 0 . O sea no necesitamos definirlos si no los usamos.

Transparencia:

El valor 1.0 es completamente transparente, por lo tanto el valor 0 es opaco. Entre estos dos valores nosotros elegimos que grado de transparencia le otorgamos al objeto. Para verlo nada mejor que un ejemplo:

Ejercicio N 8:

#VRML V2.0 utf8

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 1

transparency 0.9 #Aquí está el valor de la transparencia.

}

}

geometry Sphere {

radius 10

}

}

Ejercicios Opcionales:

Para aquellos que tengan tiempo y ganas de seguir trabajando les propongo estos ejercicios:

La próxima semana les dejo las respuestas para que chequeen los resultados.

Las Respuestas de los ejercicios opcionales de la Entrega anterior se pueden bajar de: Tarea1 y los ejercicios de esta entrega de Aquí

Entrega 1 - Entrega 2 - Entrega 3 - Entrega 4 - Entrega 5 - Entrega 6 - Entrega 7 - Entrega 8 - Entrega 9 - Entrega 10

Hasta la próxima. Cualquier consulta o comentario [email protected]

www.geocities.com/SiliconValley/Garage/6472